BR112021001156A2 - sistema e método para codificação de vídeo - Google Patents

sistema e método para codificação de vídeo Download PDF

Info

Publication number
BR112021001156A2
BR112021001156A2 BR112021001156-0A BR112021001156A BR112021001156A2 BR 112021001156 A2 BR112021001156 A2 BR 112021001156A2 BR 112021001156 A BR112021001156 A BR 112021001156A BR 112021001156 A2 BR112021001156 A2 BR 112021001156A2
Authority
BR
Brazil
Prior art keywords
motion vector
partition
image
motion
block
Prior art date
Application number
BR112021001156-0A
Other languages
English (en)
Inventor
Ru Ling LIAO
Chong Soon Lim
Hai Wei Sun
Han Boon Teo
Jing Ya LI
Kiyofumi Abe
Takahiro Nishi
Tadamasa Toma
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 BR112021001156A2 publication Critical patent/BR112021001156A2/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
    • 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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

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

Abstract

"SISTEMA E MÉTODO PARA CODIFICAÇÃO DE VÍDEO". Um codificador ou decodificador de imagem inclui um conjunto de circuitos e uma memória. O conjunto de circuitos, em operação, prevê um primeiro conjunto de amostras para uma primeira partição com um ou mais vetores de movimento, incluindo um primeiro vetor de movimento, e prevê um segundo conjunto de amostras para uma primeira parte da primeira partição com um ou mais vetores de movimento a partir de uma segunda partição. As amostras do primeiro conjunto de amostras da primeira parte da primeira partição, e do segundo conjunto de amostras da primeira parte da primeira partição, são ponderadas. Um vetor de movimento para a primeira parte da primeira partição é armazenado e baseado em um ou ambos o primeiro vetor de movimento e o segundo vetor de movimento. A primeira partição é codificada ou decodificada utilizando-se pelo menos as amostras ponderadas da primeira parte da primeira partição.

Description

Relatório Descritivo da Patente de Invenção para "SISTE- MA E MÉTODO PARA CODIFICAÇÃO DE VÍDEO". Campo Técnico
[001] Essa descrição refere-se à codificação de vídeo e, particu- larmente, a sistemas de codificação e decodificação de vídeo, compo- nentes e métodos para realizar uma função de interprevisão a fim de construir uma previsão de um quadro atual com base em um quadro de referência. Técnica Fundamental
[002] Com o avanço na tecnologia de codificação de vídeo, a par- tir de H.261 e MPEG-1 para H.264/AVC (Codificação de Vídeo Avan- çada), MPEG-LA, H.265/HEVC (Codificação de Vídeo de Alta Eficiên- cia) e H.266/VVC (Codec de Vídeo Versátil), ainda resta uma necessi- dade constante de fornecimento de aperfeiçoamentos e otimizações para a tecnologia de codificação de vídeo para processar uma quanti- dade sempre crescente de dados de vídeo digital em várias aplica- ções. Essa descrição se refere aos avanços, aperfeiçoamentos e oti- mizações adicionais na codificação de vídeo, particularmente em uma função de interprevisão para se construir uma previsão de um quadro atual com base em um quadro de referência. Sumário da Invenção
[003] Em um aspecto, um codificador de imagem inclui um con- junto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, prevê um primeiro conjunto de amostras para uma primeira partição de uma imagem atual com um ou mais vetores de movimento incluindo um primeiro vetor de movimento e prevê um segundo conjunto de amostras para uma primeira parte da primeira partição com um ou mais vetores de movimento a partir de uma segunda partição, diferente da primeira partição. As amostras do primeiro conjunto de amostras da primeira parte da primeira partição, e do segundo conjunto de amostras da primeira parte da primeira parti- ção, são ponderadas. Um vetor de movimento para a primeira parte da primeira partição é armazenado e baseado em um ou em ambos o primeiro vetor de movimento e o segundo vetor de movimento. A pri- meira partição é codificada utilizando-se as amostras ponderadas da primeira parte da primeira partição.
[004] Em um aspecto, um codificador de imagem compreende um divisor que, em operação, recebe e divide uma imagem original em blocos, um primeiro somador que, em operação, recebe os blocos do divisor e previsões de um controlador de previsão, e subtrai cada pre- visão de seu bloco correspondente para enviar um residual, um trans- formador que, em operação, realiza uma transformação nos residuais enviados a partir do somador para enviar os coeficientes de transfor- mação, um quantizador que, em operação, quantiza os coeficientes de transformação para gerar coeficientes de transformação quantizados, um codificador por entropia que, em operação, codifica os coeficientes de transformação quantizados para gerar uma sequência de bits, um quantizador e transformador inverso que, em operação, quantiza de forma inversa os coeficientes de transformação quantizados para obter coeficientes de transformação e transforma de forma inversa os coefi- cientes de transformação para obter residuais, um segundo somador que, em operação, adiciona os residuais enviados a partir do quanti- zador e transformador inversos e as previsões enviadas a partir do controlador de previsão para reconstruir os blocos, e o controlador de previsão acoplado a um interprevisor, a um intraprevisor e a uma me- mória. O interprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de refe- rência codificada. O intraprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência codificado em uma imagem atual. O interprevisor, em operação, prevê um primeiro conjunto de amostras para uma primeira partição de uma imagem atu- al com um ou mais vetores de movimento, incluindo um primeiro vetor de movimento, e prevê um segundo conjunto de amostras para uma primeira parte da primeira partição com um ou mais vetores de movi- mento a partir de uma segunda partição, diferente da primeira partição. As amostras do primeiro conjunto de amostras da primeira parte da primeira partição, e do segundo conjunto de amostras da primeira par- te da primeira partição, são ponderadas. Um vetor de movimento para a primeira parte da primeira partição é armazenado e baseado em um ou ambos o primeiro vetor de movimento e o segundo vetor de movi- mento. A primeira partição é codificada utilizando-se as amostras pon- deradas da primeira parte da primeira partição.
[005] Em um aspecto, um método de codificação compreende prever um primeiro conjunto de amostras para uma primeira partição de uma imagem atual com um ou mais vetores de movimento incluindo um primeiro vetor de movimento e prever um segundo conjunto de amostras para uma primeira parte da primeira partição com um ou mais vetores de movimento a partir de uma segunda partição, diferen- te da primeira partição. As amostras do primeiro conjunto de amostras da primeira parte da primeira partição, e o segundo conjunto de amos- tras da primeira parte da primeira partição, são ponderadas. Um vetor de movimento para a primeira parte da primeira partição é armazena- do e baseado em um ou ambos o primeiro vetor de movimento e o se- gundo vetor de movimento. A primeira partição é codificada utilizando- se pelo menos as amostras ponderadas da primeira parte da primeira partição.
[006] Em um aspecto, um decodificador de imagem inclui o con- junto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, prevê um primeiro conjunto de amostras para uma primeira partição de uma imagem atual com um ou mais vetores de movimento incluindo um primeiro vetor de movimento e prevê um segundo conjunto de amostras para uma primeira parte da primeira partição com um ou mais vetores de movimento a partir de uma segunda partição, diferente da primeira partição. As amostras do primeiro conjunto de amostras da primeira parte da primeira partição, e do segundo conjunto de amostras da primeira parte da primeira parti- ção, foram ponderadas. Um vetor de movimento para a primeira parte da primeira partição foi armazenado e é baseado em um ou ambos o primeiro vetor de movimento e o segundo vetor de movimento. A pri- meira partição é decodificada utilizando-se pelo menos as amostras ponderadas da primeira parte da primeira partição.
[007] Em um aspecto, um decodificador de imagem compreende um codificador por entropia que, em operação, recebe e decodifica uma sequência de bits codificados para obter os coeficientes de trans- formação quantizados, um quantizador e um transformador inversos que, em operação, quantiza de forma inversa os coeficientes de trans- formação quantizados, para obter coeficientes de transformação, e transforma de forma inversa os coeficientes de transformação, para obter residuais, um somador que, em operação, adiciona os residuais enviados a partir do quantizador e do transformador inversos e previ- sões enviadas a partir de um controlador de previsão para reconstruir blocos, e o controlador de previsão acoplado a um interprevisor, a um intraprevisor e a uma memória. O interprevisor, em operação gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência decodificada. O intraprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de refe- rência codificado em uma imagem atual. O interprevisor, em operação, prevê um primeiro conjunto de amostras para uma primeira partição de uma imagem atual com um ou mais vetores de movimento incluindo um primeiro vetor de movimento e prevê um segundo conjunto de amostras para uma primeira parte da primeira partição com um ou mais vetores de movimento a partir de uma segunda partição, diferen- te da primeira partição. As amostras do primeiro conjunto de amostras da primeira parte da primeira partição, e do segundo conjunto de amostras da primeira parte da primeira partição, são ponderadas. Um vetor de movimento para a primeira parte da primeira partição é arma- zenado e é baseado em um ou ambos o primeiro vetor de movimento e o segundo vetor de movimento. A primeira partição é decodificada utilizando-se pelo menos as amostras ponderadas da primeira parte da primeira partição.
[008] Em um aspecto, um método de decodificação compreende prever um primeiro conjunto de amostras para uma primeira partição de uma imagem atual com um ou mais vetores de movimento incluindo um primeiro vetor de movimento e prever um segundo conjunto de amostras para uma primeira parte da primeira partição com um ou mais vetores de movimento a partir de uma segunda partição, diferen- te da primeira partição. As amostras do primeiro conjunto de amostras da primeira parte da primeira partição, e do segundo conjunto de amostras da primeira parte da primeira partição, são ponderadas. Um vetor de movimento para a primeira parte da primeira partição é arma- zenado e é baseado em um ou ambos o primeiro vetor de movimento e o segundo vetor de movimento. A primeira partição é decodificada utilizando-se pelo menos as amostras ponderadas da primeira parte da primeira partição.
[009] Algumas implementações das modalidades da presente descrição podem aperfeiçoar uma eficiência de codificação, podem simplesmente ser um processo de codificação/decodificação, podem acelerar a velocidade de um processo de codificação/decodificação; podem selecionar eficientemente componentes/operações adequados utilizados na codificação e decodificação, tal como filtro adequado, ta-
manho de bloco, vetor de movimento, imagem de referência, bloco de referência, etc.
[0010] Benefícios e vantagens adicionais das modalidades descri- tas se tornarão aparentes a partir da especificação e dos desenhos. Os benefícios e/ou vantagens podem ser obtidos individualmente pe- las várias modalidades e características da especificação e dos dese- nhos, nem todo os quais previsão ser fornecidos a fim de se obter um ou mais desses benefícios e/o vantagens.
[0011] Deve-se notar que as modalidades gerais ou específicas podem ser implementadas como um sistema, um método, um circuito integrado, um programa de computador, um meio de armazenamento ou qualquer combinação seletiva dos mesmos. Breve Descrição dos Desenhos
[0012] A figura 1 é um diagrama em bloco ilustrando uma configu- ração funcional de um codificador, de acordo com uma modalidade.
[0013] A figura 2 é um fluxograma indicando um exemplo de um processo de codificação geral realizado pelo codificador.
[0014] A figura 3 é um diagrama conceitual ilustrando um exemplo de divisão de bloco.
[0015] A figura 4A é um diagrama conceitual ilustrando um exem- plo de uma configuração de fatia.
[0016] A figura 4B é um diagrama conceitual ilustrando um exem- plo de uma configuração de “tile”.
[0017] A figura 5A é um gráfico indicando funções básicas de transformação para vários tipos de transformação.
[0018] A figura 5B é um diagrama conceitual ilustrando transfor- mações espacialmente variáveis ilustrativas (SVT).
[0019] A figura 6A é um diagrama conceitual ilustrando um exem- plo de um formato de filtro utilizado em um filtro de circuito adaptativo (ALF).
[0020] A figura 6B é um diagrama conceitual ilustrando outro exemplo de um formato de filtro utilizado em um ALF.
[0021] A figura 6C é um diagrama conceitual ilustrando outro exemplo de um formato de filtro utilizado em um ALF.
[0022] A figura 7 é um diagrama em bloco indicando um exemplo de uma configuração específica de um filtro de circuito que funciona como um filtro de desbloqueio (DBF).
[0023] A figura 8 é um diagrama conceitual indicando um exemplo de um filtro de desbloqueio possuindo uma característica de filtragem simétrica com relação a um limite de bloco.
[0024] A figura 9 é um diagrama conceitual para ilustrar um limite de bloco no qual um processo de filtro de desbloqueio é realizado.
[0025] A figura 10 é um diagrama conceitual indicando os exem- plos de valores Bs.
[0026] A figura 11 é um fluxograma ilustrando um exemplo de um processo realizado por um processador de previsão do codificador.
[0027] A figura 12 é um fluxograma ilustrando outro exemplo de um processo realizado pelo processador de previsão do codificador.
[0028] A figura 13 é um fluxograma ilustrando outro exemplo de um processo realizado pelo processador de previsão do codificador.
[0029] A figura 14 é um diagrama conceitual ilustrando sessenta e sete modos de intraprevisão utilizados na intraprevisão em uma moda- lidade.
[0030] A figura 15 é um fluxograma ilustrando um fluxo de proces- samento básico ilustrativo de interprevisão.
[0031] A figura 16 é um fluxograma ilustrando um exemplo de de- rivação de vetores de movimento.
[0032] A figura 17 é um fluxograma ilustrando outro exemplo de derivação de vetores de movimento.
[0033] A figura 18 é um fluxograma ilustrando outro exemplo de derivação de vetores de movimento.
[0034] A figura 19 é um fluxograma ilustrando um exemplo de in- terprevisão no intermodo normal.
[0035] A figura 20 é um fluxograma ilustrando um exemplo de in- terprevisão no modo de mistura.
[0036] A figura 21 é um diagrama conceitual para ilustrar um exemplo de um processo de derivação de vetor de movimento no mo- do de mistura.
[0037] A figura 22 é um fluxograma ilustrando um exemplo do pro- cesso de conversão ascendente de taxa de quadro (FRUC).
[0038] A figura 23 é um diagrama conceitual para ilustrar um exemplo de combinação de padrão (combinação bilateral) entre dois blocos ao longo de uma trajetória de movimento.
[0039] A figura 24 é um diagrama conceitual para ilustrar um exemplo da combinação de padrão (combinação de gabarito) entre um gabarito em uma imagem atual e um bloco em uma imagem de refe- rência.
[0040] A figura 25A é um diagrama conceitual para ilustrar um exemplo de derivação de um vetor de movimento para cada sub-bloco com base nos vetores de movimento dentre uma pluralidade de blocos vizinhos.
[0041] A figura 25B é um diagrama conceitual para ilustrar um exemplo de derivação de um vetor de movimento para cada sub-bloco no modo afim no qual três pontos de controle são utilizados.
[0042] A figura 26A é um diagrama conceitual para ilustrar um mo- do de mistura afim.
[0043] A figura 26B é um diagrama conceitual para ilustrar um mo- do de mistura afim no qual dois pontos de controle são utilizados.
[0044] A figura 26C é um diagrama conceitual para ilustrar um modo de mistura afim no qual três pontos de controle são utilizados.
[0045] A figura 27 é um fluxograma ilustrando um exemplo de um processo no modo de mistura afim.
[0046] A figura 28A é um diagrama conceitual para ilustrar um in- termodo afim no qual dois pontos de controle são utilizados.
[0047] A figura 28B é um diagrama conceitual para ilustrar um in- termodo afim no qual três pontos de controle são utilizados.
[0048] A figura 29 é um fluxograma ilustrando um exemplo de um processo no intermodo afim.
[0049] A figura 30A é um diagrama conceitual para ilustrar um in- termodo afim no qual um bloco atual possui três pontos de controle e um bloco vizinho possui dois pontos de controle.
[0050] A figura 30B é um diagrama conceitual para ilustrar um in- termodo afim no qual um bloco atual possui dois pontos de controle e um bloco vizinho possui três pontos de controle.
[0051] A figura 31A é um fluxograma ilustrando um processo de modo de mistura incluindo refinamento de vetor de movimento de de- codificador (DMVR).
[0052] A figura 31B é um diagrama conceitual para ilustrar um exemplo de um processo DMVR.
[0053] A figura 32 é um fluxograma ilustrando um exemplo de ge- ração de uma imagem de previsão.
[0054] A figura 33 é um fluxograma ilustrando outro exemplo de geração de uma imagem de previsão.
[0055] A figura 34 é um fluxograma ilustrando outro exemplo de geração de uma imagem de previsão.
[0056] A figura 35 é um fluxograma ilustrando um exemplo de um processo de correção de imagem de previsão realizado por um pro- cesso de compensação de movimento de bloco sobreposto (OBMC).
[0057] A figura 36 é um diagrama conceitual para ilustrar um exemplo de um processo de correção de imagem de previsão realiza-
do por um processo OBMC.
[0058] A figura 37 é um diagrama conceitual para ilustrar a gera- ção de duas imagens de previsão retangulares.
[0059] A figura 38 é um diagrama conceitual para ilustrar um mo- delo assumindo um movimento linear uniforme.
[0060] A figura 39 é um diagrama conceitual para ilustrar um exemplo de um método de geração de imagem de previsão utilizando um processo de correção de luminescência realizado por um processo de compensação de iluminação local (LIC).
[0061] A figura 40 é um diagrama em bloco ilustrando um exemplo de montagem do codificador.
[0062] A figura 41 é um diagrama em bloco ilustrando uma confi- guração funcional de um decodificador de acordo com uma modalida- de.
[0063] A figura 42 é um fluxograma ilustrando um exemplo de um processo de decodificação geral realizado pelo decodificador.
[0064] A figura 43 é um fluxograma ilustrando um exemplo de um processo realizado por um processador de previsão do decodificador.
[0065] A figura 44 é um fluxograma ilustrando outro exemplo de um processo realizado pelo processador de previsão do decodificador.
[0066] A figura 45 é um fluxograma ilustrando um exemplo da in- terprevisão no intermodo normal no decodificador.
[0067] A figura 46 é um diagrama em bloco ilustrando um exemplo de montagem do decodificador.
[0068] A figura 47 é um fluxograma ilustrando um fluxo de proces- so geral de divisão de um bloco de imagem em uma pluralidade de partições incluindo pelo menos uma primeira partição, que possui um formato não retangular (por exemplo, um triângulo), e uma segunda partição e realizando o processamento adicional de acordo com uma modalidade.
[0069] A figura 48 ilustra dois métodos ilustrativos de divisão de um bloco de imagem em uma primeira partição que possui um formato não retangular (por exemplo, um triângulo) e uma segunda partição (também possuindo um formato não retangular nos exemplos ilustra- dos).
[0070] A figura 49 ilustra um exemplo de um processo de suaviza- ção de limite envolvendo a ponderação dos primeiros valores dos pixels de limite previstos com base na primeira partição e segundos valores dos pixels de limite previstos com base na segunda partição.
[0071] A figura 50 ilustra três amostras adicionais de um processo de suavização de limite envolvendo a ponderação dos primeiros valo- res de pixels de limite previstos com base na primeira partição e se- gundos valores dos pixels de limite previstos com base na segunda partição.
[0072] A figura 51 é uma tabela de parâmetros de amostra ("pri- meiros valores de índice") e conjuntos de informação codificados res- pectivamente pelos parâmetros.
[0073] A figura 52 é uma tabela ilustrando a banalização dos pa- râmetros (valores de índice).
[0074] A figura 53 é um fluxograma ilustrando um processo de di- visão de um bloco de imagem em uma pluralidade de partições inclu- indo uma primeira partição possuindo um formato não retangular e uma segunda partição.
[0075] A figura 54 ilustra exemplos de divisão de um bloco de ima- gem em uma pluralidade de partições que incluem uma partição que possui um formato não retangular, que é um triângulo nos exemplos ilustrados, e uma segunda partição.
[0076] A figura 55 ilustra exemplos adicionais de divisão de um bloco de imagem em uma pluralidade de partições que incluem uma primeira partição possuindo um formato não retangular, que é um polí-
gono com pelo menos cinco lados e ângulos nos exemplos ilustrados, e uma segunda partição.
[0077] A figura 56 é um fluxograma ilustrando um processo de su- avização de limite envolvendo a ponderação dos primeiros valores de pixels de limite previstos com base na primeira partição e segundos valores dos pixels de limite previstos com base na segunda partição.
[0078] A figura 57A ilustra um exemplo de um processo de suavi- zação de limite onde os pixels de limite para os quais os primeiros va- lores a serem ponderados são previstos com base na primeira partição e segundos valores a serem ponderados são previstos com base na segunda partição.
[0079] A figura 57B ilustra um exemplo de um processo de suavi- zação de limite onde os pixels de limite, para os quais os primeiros va- lores a serem ponderados são previstos com base na primeira parti- ção, e os segundos valores a serem ponderados, são previstos com base na segunda partição.
[0080] A figura 57C ilustra um exemplo de um processo de suavi- zação de limite onde os pixels de limite, para os quais os primeiros va- lores a serem ponderados são previstos com base na primeira parti- ção, e os segundos valores a serem ponderados são previstos com base na segunda partição.
[0081] A figura 57D ilustra um exemplo de um processo de suavi- zação de limite onde os pixels de limite para os quais os primeiros va- lores a serem ponderados são previstos com base na primeira partição e os segundos valores a serem ponderados são previstos com base na segunda partição.
[0082] A figura 58 é um fluxograma ilustrando um método realiza- do no lado do codificador de divisão de um bloco de imagem em uma pluralidade de partições incluindo uma primeira partição que possui um formato não retangular e uma segunda partição, com base em um pa-
râmetro de partição indicativo da divisão, e escrevendo um ou mais parâmetros, incluindo o parâmetro de partição em uma sequência de bits na codificação por entropia.
[0083] A figura 59 é um fluxograma ilustrando um método realiza- do no lado do decodificador de análise de um ou mais parâmetros a partir de uma sequência de bits, que inclui um parâmetro de partição indicativo da divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição, e dividindo o bloco de imagem na pluralidade de partições com base no parâmetro de partição, e decodi- ficando a primeira partição e a segunda partição.
[0084] A figura 60 é uma tabela de parâmetros de partição de amostra ("primeiros valores de índice") que indicam, respectivamente, a divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular, e uma segunda partição, e configura a informação que pode ser codifi- cada em conjunto pelos parâmetros de partição, respectivamente.
[0085] A figura 61 é uma tabela de combinações de amostra de um primeiro parâmetro e de um segundo parâmetro, um dos quais é um parâmetro de partição, indicativo da divisão de um bloco de ima- gem, em uma pluralidade de partições incluindo uma primeira partição que possui um formato não retangular, e uma segunda partição.
[0086] A figura 62 é um fluxograma ilustrando um exemplo de um fluxo de processo de previsão de um primeiro conjunto de amostras para uma primeira partição de uma imagem atual com um primeiro ve- tor de movimento, previsão de um segundo conjunto de amostras para uma primeira parte incluída na primeira partição com um segundo ve- tor de movimento, ponderação dos primeiro e segundo conjuntos de amostras, armazenamento de pelo menos um dos primeiro e segundo vetores de movimento da primeira partição, e codificação ou decodifi-
cação da primeira partição utilizando amostras ponderadas, e realiza- ção de processamento adicional de acordo com uma modalidade.
[0087] A figura 63 é um diagrama conceitual para ilustrar os méto- dos ilustrativos de divisão de um bloco de imagem em uma primeira partição e uma segunda partição.
[0088] A figura 64 é um diagrama conceitual para ilustrar partições espacialmente vizinhas adjacentes e não adjacentes de uma primeira partição.
[0089] A figura 65 é um diagrama conceitual para ilustrar candida- tos a vetor de movimento de uniprevisão e biprevisão para um bloco de imagem.
[0090] A figura 66 é um diagrama conceitual para ilustrar exemplos de uma primeira parte de uma primeira partição e primeiro e segundo conjuntos de amostras.
[0091] A figura 67 é um diagrama conceitual para ilustrar uma pri- meira parte de uma primeira partição, que é uma parte da primeira par- tição que se sobrepõe a uma parte de uma partição adjacente.
[0092] A figura 68 é um diagrama conceitual para ilustrar um caso ilustrativo no qual um primeiro vetor de movimento e um segundo vetor de movimento são vetores de movimento de uniprevisão apontando para imagens diferentes em listas de imagem de referência diferentes.
[0093] A figura 69 é um diagrama conceitual para ilustrar um caso ilustrativo no qual o primeiro vetor de movimento e o segundo vetor de movimento são vetores de movimento de uniprevisão apontando para imagens em uma única lista de imagens de referência.
[0094] A figura 70 é um diagrama conceitual para ilustrar casos ilustrativos nos quais o primeiro vetor de movimento e o segundo vetor de movimento são vetores de movimento de uniprevisão apontando para a mesma imagem de referência na mesma lista de imagens de referência.
[0095] A figura 71 é um diagrama conceitual para ilustrar casos ilustrativos nos quais o primeiro vetor de movimento e o segundo vetor de movimento são vetores de movimento de uniprevisão apontando para a mesma imagem de referência na mesma lista de imagens de referência.
[0096] A figura 72 é um diagrama conceitual para ilustrar casos ilustrativos nos quais o primeiro vetor de movimento e o segundo vetor de movimento são vetores de movimento de uniprevisão apontando para a mesma imagem de referência na mesma lista de imagens de referência.
[0097] A figura 73 é um diagrama em bloco ilustrando uma confi- guração geral de um sistema de fornecimento de conteúdo para im- plementar um serviço de distribuição de conteúdo.
[0098] A figura 74 é um diagrama conceitual ilustrando um exem- plo de uma estrutura de codificação na codificação escalonável.
[0099] A figura 75 é um diagrama conceitual ilustrando um exem- plo de uma estrutura de codificação na codificação escalonável.
[00100] A figura 76 é um diagrama conceitual ilustrando um exem- plo de uma tela de exibição de uma página da rede.
[00101] A figura 77 é um diagrama conceitual ilustrando um exem- plo de uma tela de exibição de uma página da rede.
[00102] A figura 78 é um diagrama em bloco ilustrando um exemplo de um smartphone.
[00103] A figura 79 é um diagrama em bloco ilustrando um exemplo de uma configuração de um smartphone. Descrição das Modalidades
[00104] Doravante, as modalidades serão descritas por referência aos desenhos. Note-se que as modalidades descritas abaixo ilustram, cada uma, um exemplo geral ou específico. Os valores numéricos, formatos, materiais, componentes, a disposição e conexão dos com-
ponentes, etapas, a relação e ordem de etapas, etc., indicados nas modalidades a seguir são meros exemplos, e não devem limitar o es- copo das reivindicações.
[00105] As modalidades de um codificador e de um decodificador serão descritas agora. As modalidades são exemplos de um codifica- dor e de um decodificador aos quais os processos e/ou configurações, apresentados na descrição dos aspectos da presente descrição, são aplicáveis. Os processos e/ou configurações também podem ser im- plementados em um codificador e um decodificador diferentes dos de acordo com as modalidades. Por exemplo, com referência aos proces- sos e/ou configurações, como aplicados às modalidades, qualquer um dos seguintes podem ser aplicados:
[00106] (1) Qualquer um dos componentes do codificador ou do de- codificador, de acordo com as modalidades apresentadas na descrição dos aspectos da presente descrição podem ser substituídos ou combi- nados com outro componente apresentado em outro local na descrição dos aspectos da presente descrição.
[00107] (2) No codificador ou no decodificador, de acordo com as modalidades, mudanças discricionárias podem ser feitas às funções ou processos realizados por um ou mais componentes do codificador ou decodificador, tal como adição, substituição, remoção, etc., das funções ou processos. Por exemplo, qualquer função ou processo po- de ser substituída ou combinada com outra função ou processo apre- sentado em qualquer outro local na descrição dos aspectos da presen- te descrição.
[00108] (3) Nos métodos implementados pelo codificador ou decodi- ficador, de acordo com as modalidades, as mudanças discricionárias podem ser feitas tal como por adição, substituição e remoção de um ou mais dos processos incluídos no método. Por exemplo, qualquer processo no método pode ser substituído ou combinado com outro processo apresentado em qualquer outro local na descrição dos as- pectos da presente descrição.
[00109] (4) Um ou mais componentes incluídos no codificador ou decodificador, de acordo com as modalidades, podem ser combinados com um componente apresentado em qualquer outro local na descri- ção dos aspectos da presente descrição, podem ser combinados com um componente incluindo uma ou mais funções apresentadas em qualquer outro local na descrição dos aspectos da presente descrição, e podem ser combinados com um componente que implementa um ou mais processos implementados por um componente apresentado na descrição dos aspectos da presente descrição.
[00110] (5) Um componente incluindo uma ou mais funções do codi- ficador ou do decodificador, de acordo com as modalidades, ou um componente que implemente um ou mais processos do codificador ou do decodificador, de acordo com as modalidades, podem ser combi- nados ou substituídos por um componente apresentado em qualquer local na descrição dos aspectos da presente descrição, com um com- ponente incluindo uma ou mais funções apresentadas em qualquer outro local na descrição dos aspectos da presente descrição, ou com um componente que implementa um ou mais processos apresentados em qualquer outro local na descrição dos aspectos da presente descri- ção.
[00111] (6) Nos métodos implementados pelo codificador ou pelo decodificador, de acordo com as modalidades, qualquer um dos pro- cessos incluídos no método podem ser substituídos ou combinados com um processo apresentado em qualquer outro local na descrição dos aspectos da presente descrição ou com qualquer processo cor- respondente ou equivalente.
[00112] (7) Um ou mais processos incluídos nos métodos imple- mentados pelo codificador ou pelo decodificador, de acordo com as modalidades, podem ser combinados com um processo apresentado em qualquer outro local na descrição dos aspectos da presente descri- ção.
[00113] (8) A implementação dos processos e/ou configurações apresentados na descrição dos aspectos da presente descrição não está limitada ao codificador ou ao decodificador, de acordo com as modalidades. Por exemplo, os processos e/ou configurações podem ser implementados em um dispositivo utilizado para uma finalidade diferente do codificador de imagem em movimento ou decodificador de imagem em movimento descrito nas modalidades. Codificador
[00114] Primeiro, um codificador de acordo com uma modalidade será descrito. A figura 1 é um diagrama em bloco ilustrando uma con- figuração funcional do codificador 100 de acordo com a modalidade. O codificador 100 é um codificador de vídeo que codifica um vídeo em unidades de um bloco.
[00115] Como ilustrado na figura 1, o codificador 100 é um aparelho que codifica uma imagem em unidades de um bloco, e inclui o divisor 102, o subtraidor 104, o transformador 106, o quantizador 108, o codi- ficador por entropia 110, o quantizador inverso 112, o transformador inverso 114, o somador 116, a memória de bloco 118, o filtro de circui- to 120, a memória de quadro 122, o intraprevisor 124, o interprevisor 126 e o controlador de previsão 128.
[00116] O codificador 100 é implementado como, por exemplo, um processador genérico e uma memória. Nesse caso, quando um pro- grama de software, armazenado na memória, é executado pelo pro- cessador, o processador funciona como um divisor 102, subtraidor 104, transformador 106, quantizador 108, codificador por entropia 110, quantizador inverso 112, transformador inverso 114, somador 116, fil- tro de circuito 120, intraprevisor 124, interprevisor 126, e controlador de previsão 128. Alternativamente, o codificador 100 pode ser imple- mentado como um ou mais circuitos eletrônicos dedicados correspon- dentes ao divisor 102, subtraidor 104, transformador 106, quantizador 108, codificador por entropia 110, quantizador inverso 112, transfor- mador inverso 114, somador 116, filtro de circuito 120, intraprevisor 124, interprevisor 126 e controlador de previsão 128.
[00117] Doravante, um fluxo geral de processos realizados pelo co- dificador 100 será descrito e, então, cada um dos elementos consti- tuintes incluídos no codificador 100 será descrito. Fluxo Geral do Processo de Codificação
[00118] A figura 2 é um fluxograma indicando um exemplo de um processo de codificação geral realizado pelo codificador 100.
[00119] Primeiro, o divisor 102 do codificador 100 divide cada uma das imagens incluídas na imagem de entrada, que é um vídeo, em uma pluralidade de blocos possuindo um tamanho fixo (por exemplo, 128 x 128 pixels) (Etapa Sa_1). O divisor 102, então, seleciona um padrão de divisão para o bloco de tamanho fixo (também referido co- mo um formato de bloco) (Etapa Sa_2). Em outras palavras, o divisor 102 divide adicionalmente o bloco de tamanho fixo em uma pluralidade de blocos que formam o padrão de divisão selecionado. O codificador 100 realiza, para cada um dentre a pluralidade de blocos, as Etapas Sa_3 a Sa_9 para o bloco (que é o bloco atual a ser codificado).
[00120] Em outras palavras, um processador de previsão, que inclui todos ou parte de intraprevisor 124, interprevisor 126 e controlador de previsão 128 gera um sinal de previsão (também referido como um bloco de previsão) do bloco atual a ser codificado (também referido como um bloco atual) (Etapa Sa_3).
[00121] A seguir, o subtraidor 104 gera uma diferença entre o bloco atual e um bloco de previsão como um residual de previsão (também referido como um bloco de diferença) (Etapa Sa_4).
[00122] A seguir, o transformador 106 transforma o bloco de dife- rença e o quantizador 108 quantiza o resultado, para gerar uma plura- lidade de coeficientes quantizados (Etapa Sa_5). Deve-se notar que o bloco possuindo a pluralidade de coeficientes quantizados também é referido como um bloco de coeficiente.
[00123] A seguir, o codificador por entropia 110 codifica (especifi- camente, codifica por entropia) o bloco de coeficiente e um parâmetro de previsão relacionado com a geração de um sinal de previsão para gerar um sinal codificado (Etapa Sa_6). Deve-se notar que o sinal co- dificado também é referido como uma sequência de bits codificados, uma sequência de bits comprimidos ou uma sequência.
[00124] A seguir, o quantizador inverso 112 realiza a quantização inversa do bloco de coeficiente e o transformador inverso 114 realiza a transformação inversa do resultado, para restaurar uma pluralidade de residuais de previsão (isso é, um bloco de diferença) (Etapa Sa_7).
[00125] A seguir, o somador 116 adiciona o bloco de previsão ao bloco de diferença restaurado para reconstruir o bloco atual como uma imagem reconstruída (também referida como um bloco reconstruído ou um bloco de imagem decodificada). (Etapa Sa_8). Dessa forma, a imagem reconstruída é gerada.
[00126] Quando a imagem reconstruída é gerada, o filtro de circuito 120 realiza a filtragem da imagem reconstruída como necessário (Eta- pa Sa_9).
[00127] O codificador 100, então, determina se a codificação de to- da a imagem foi terminada (Etapa Sa_10). Quando determina que a codificação ainda não foi terminada (Não na Etapa Sa_10), os proces- sos da Etapa Sa_2 são executados repetidamente.
[00128] Apesar de o codificador 100 selecionar um padrão de divi- são para um bloco de tamanho fixo, e codificar cada bloco de acordo com o padrão de divisão no exemplo descrito acima, deve-se notar que cada bloco pode ser codificado de acordo com um padrão corres- pondente dentre uma pluralidade de padrões de divisão. Nesse caso, o codificador 100 pode avaliar um custo para cada um dentre a plurali- dade de padrões de divisão e, por exemplo, pode selecionar o sinal codificado obtenível pela codificação de acordo com o padrão de divi- são que resulta no menor custo como um sinal codificado que é envia- do.
[00129] Como ilustrado, os processos nas Etapas Sa_1 a Sa_10 são realizados sequencialmente pelo codificador 100. Alternativamen- te, dois ou mais dos processos podem ser realizados em paralelo, os processos podem ser reordenados, etc. Divisor
[00130] O divisor 102 divide cada uma das imagens incluídas em um vídeo de entrada em uma pluralidade de blocos e envia cada bloco para o subtraidor 104. Por exemplo, o divisor 102 primeiro divide uma imagem em blocos de um tamanho fixo (por exemplo, 128 x 128). Ou- tros tamanhos de bloco fixos podem ser empregados. O bloco de ta- manho fixo também é referido como uma unidade de árvore de codifi- cação (CTU). O divisor 102, então, divide cada bloco de tamanho fixo em blocos de tamanhos variáveis (por exemplo, de 64 x 64 ou menor), com base na divisão de bloco quadtree recursiva e/ou de árvore biná- ria. Em outras palavras, o divisor 102 seleciona um padrão de divisão. O bloco de tamanho variável também é referido como unidade de codi- ficação (CU), uma unidade de previsão (PU), ou uma unidade de transformação (TU). Deve-se notar que, em vários tipos de exemplos de processamento, não há necessidade de se diferenciar entre CU, PU e TU; todos ou alguns dos blocos em uma imagem podem ser pro- cessados em unidades de uma CU, uma PU ou uma TU.
[00131] A figura 3 é um diagrama conceitual ilustrando um exemplo de divisão de bloco de acordo com uma modalidade. Na figura 3, as linhas sólidas representam os limites de bloco dos blocos divididos por divisão de bloco quadtree, e as linhas tracejadas representam os limi- tes de bloco dos blocos divididos por divisão de bloco de árvore biná- ria.
[00132] Aqui, o bloco 10 é um bloco quadrado possuindo 128 x 128 pixels (bloco de 128 x 128). Esse bloco de 128 x 128 10 é primeira- mente dividido em quatro blocos quadrados de 64 x 64 (divisão de blo- co quadtree).
[00133] O bloco superior esquerdo de 64 x 64 é adicionalmente ver- ticalmente dividido em dois blocos retangulares de 32 x 64, e o bloco esquerdo de 32 x 64 é adicionalmente verticalmente dividido em dois blocos retangulares de 16 x 64 (divisão de bloco de árvore binária). Como resultado disso, o bloco superior esquerdo de 64 x 64 é dividido em dois blocos de 16 x 64 11 e 12 e um bloco de 32 x 64 13.
[00134] O bloco superior direito de 64 x 64 é horizontalmente dividi- do em dois blocos retangulares de 64 x 32 14 e 15 (divisão de bloco de árvore binária).
[00135] O bloco inferior esquerdo de 64 x 64 é primeiramente divi- dido em quatro blocos quadrados de 32 x 32 (divisão de bloco qua- dtree). O bloco superior esquerdo e o bloco inferior direito, dentre os quatro blocos de 32 x 32 são adicionalmente divididos. O bloco superi- or esquerdo de 32 x 32 é verticalmente dividido em dois blocos retan- gulares de 16 x 32, e o bloco direito de 16 x 32 é adicionalmente hori- zontalmente dividido em dois blocos de 16 x 16 (divisão de bloco de árvore binária). O bloco inferior direito de 32 x 32 é horizontalmente dividido em dois blocos de 32 x 16 (divisão de bloco de árvore binária). Como resultado disso, o bloco inferior esquerdo de 64 x 64 é dividido em um bloco de 16 x 32 16, dois blocos de 16 x 16 17 e 18, dois blo- cos de 32 x 32 19 e 20 e dois blocos de 32 x 16 21 e 22.
[00136] O bloco inferior direito de 64 x 64 23 não é dividido.
[00137] Como descrito acima, na figura 3, o bloco 10 é dividido em treze blocos de tamanho variável de 11 a 23 com base na divisão de bloco quadtree recursiva e de árvore binária. Esse tipo de divisão tam- bém é referido como divisão quadtree mais árvore binária (QTBT).
[00138] Deve-se notar que, na figura 3, um bloco é dividido em qua- tro ou dois blocos (divisão de bloco quadtree ou de árvore binária), mas a divisão não está limitada a esses exemplos. Por exemplo, um bloco pode ser dividido em três blocos (divisão de bloco ternário). A divisão incluindo tal divisão de bloco ternário também é referida como divisão de árvore de múltiplos tipos (MBT). Estrutura de Imagem: Fatia/”tile”
[00139] Uma imagem pode ser configurada em unidades de uma ou mais fatias ou “tiles” a fim de decodificar a imagem em paralelo. A imagem configurada em unidades de uma ou mais fatias ou “tiles” po- de ser configurada pelo divisor 102.
[00140] Fatias são unidades de codificação básica incluídas em uma imagem. Uma imagem pode incluir, por exemplo, uma ou mais fatias. Adicionalmente, uma fatia inclui uma ou mais unidades de árvo- re de codificação sucessivas (CTU).
[00141] A figura 4A é um diagrama conceitual ilustrando um exem- plo de uma configuração de fatia. Por exemplo, uma imagem inclui CTUs de 11 x 8 e é dividida em quatro fatias (fatias de 1 a 4). A fatia 1 inclui dezesseis CTUs, a fatia 2 inclui vinte e uma CTUs, a fatia 3 inclui vinte e nove CTUs, e a fatia 4 inclui vinte e duas CTUs. Aqui, cada CTU na imagem pertence a uma das fatias. O formato de cada fatia é um formato obtenível pela divisão da imagem horizontalmente. Um li- mite de cada fatia não precisa coincidir com um final da imagem, e po- de coincidir com qualquer um dos limites entre as CTUs na imagem. A ordem de processamento das CTUs em uma fatia (uma ordem de co- dificação ou uma ordem de decodificação) é, por exemplo, uma ordem de digitalização “raster”. Uma fatia inclui informação de cabeçalho e dados codificados. As características da fatia podem ser descritas na informação de cabeçalho. As características incluem um endereço de CTU, de uma CTU superior na fatia, um tipo de fatia, etc.
[00142] Um “tile” é uma unidade de uma região retangular incluída em uma imagem. Cada um dos “tiles” pode receber um número referi- do como TileId na ordem de digitalização “raster”.
[00143] A figura 4B é um diagrama conceitual indicando um exem- plo de uma configuração de “tile”. Por exemplo, uma imagem inclui CTUs de 11 x 8 e é dividida em quatro “tiles” de regiões retangulares (“tiles” de 1 a 4). Quando os “tiles” são utilizados, a ordem de proces- samento das CTUs é alterada da ordem de processamento, no caso onde nenhum “tile” é utilizado. Quando nenhum “tile” é utilizado, as CTUs em uma imagem são processadas na ordem de digitalização “raster”. Quando “tiles” são utilizados, pelo menos uma CTU em cada um dos “tiles” é processada na ordem de digitalização “raster”. Por exemplo, como ilustrado na figura 4B, a ordem de processamento das CTUs incluídas no “tile” 1 é a ordem que começa da extremidade es- querda da primeira fileira do “tile” 1 na direção da extremidade direita da primeira fileira do “tile” 1 e, então, começa a partir da extremidade esquerda da segunda fileira do “tile” 1 na direção da extremidade direi- ta da segunda fileira do “tile” 1.
[00144] Deve-se notar que um “tile” pode incluir uma ou mais fatias, e uma fatia pode incluir um ou mais “tiles”. Subtraidor
[00145] O subtraidor 104 subtrai um sinal de previsão (amostra de previsão que é registrada a partir do controlador de previsão 128 indi- cado abaixo) a partir de um sinal original (amostra original) em unida- des de bloco registrado a partir do divisor 102 e dividido pelo divisor
102. Em outras palavras, o subtraidor 104 calcula os erros de previsão
(também referidos como residuais) de um bloco a ser codificado (dora- vante também referido como um bloco atual). O subtraidor 104, então, envia os erros de previsão calculados (residuais) para o transformador
106.
[00146] O sinal original é um sinal que foi registrado no codificador 100 e representa uma imagem de cada imagem incluída em um vídeo (por exemplo, um sinal de luminescência e dois sinais de crominância). Doravante, um sinal representando uma imagem também é referido como uma amostra. Transformador
[00147] O transformador 106 transforma os erros de previsão em domínio espacial em coeficientes de transformação no domínio de fre- quência, e envia os coeficientes de transformação para o quantizador
108. Mais especificamente, o transformador 106 aplica, por exemplo, uma transformação de cosseno discreto definida (DCT) ou transforma- ção de seno discreto (DST) a erros de previsão no domínio espacial. A DCT ou DST definida pode ser predefinida.
[00148] Deve-se notar que o transformador 106 pode selecionar de forma adaptativa um tipo de transformação dentre uma pluralidade de tipos de transformação, e os erros de previsão de transformação em coeficientes de transformação pela utilização de uma função básica de transformação correspondendo ao tipo de transformação selecionado. Esse tipo de transformação também é referido como transformação de múltiplos núcleos explícita (EMT) ou múltiplas transformações adapta- tivas (AMT).
[00149] Os tipos de transformação incluem, por exemplo, DCT-II, DCT-V, DCT-VIII, DST-I e DST-VII. A figura 5A é um gráfico indicando funções básicas de transformação para os tipos de transformação ilus- trativos. Na figura 5A, N indica o número de pixels de entrada. Por exemplo, a seleção de um tipo de transformação, dentre a pluralidade de tipos de transformação, pode depender de um tipo de previsão (um dentre intraprevisão e interprevisão), e pode depender de um modo de intraprevisão.
[00150] A informação que indica se aplica tal EMT ou AMT (referida como, por exemplo, indicador EMT ou indicador AMT) e a informação que indica o tipo de transformação selecionado é normalmente sinali- zada no nível de CU. Deve-se notar que a sinalização de tal informa- ção não precisa, necessariamente, ser realizada no nível de CU, e po- de ser realizada em outro nível (por exemplo, no nível de sequência de bit, nível de imagem, nível de fatia, nível de “tile” ou nível de CTU).
[00151] Adicionalmente, o transformador 106 pode realizar uma no- va transformação dos coeficientes de transformação (resultado de transformação). Tal nova transformação também é referida como transformação secundária adaptativa (AST) ou transformação secun- dária não separável (NSST). Por exemplo, o transformador 106 realiza a nova transformação em unidades de um sub-bloco (por exemplo, o sub-bloco de 4 x 4) incluído em um bloco de coeficientes de transfor- mação que corresponde a um erro de intraprevisão. A informação que indica se aplica NSST e a informação relacionada com uma matriz de transformação para uso na NSST é normalmente sinalizada no nível de CU. Deve-se notar que a sinalização de tal informação não precisa, necessariamente, ser realizada no nível de CU, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de imagem, nível de fatia, nível de “tile” ou nível de CTU).
[00152] O transformador 106 pode empregar uma transformação separável ou uma transformação não separável. Uma transformação separável é um método no qual uma transformação é realizada várias vezes pela realização, em separado, de uma transformação para cada uma dentre as várias direções, de acordo com o número de dimensões de entrada. Uma transformação não separável é um método de reali-
zação de uma transformação coletiva na qual duas ou mais dimensões nas entradas multidimensionais são coletivamente consideradas uma única dimensão.
[00153] Em um exemplo de uma transformação não separável, quando uma entrada é um bloco de 4 x 4, o bloco de 4 x 4 é conside- rado um único conjunto incluindo dezesseis elementos, e a transfor- mação aplica uma matriz de transformação de 16 x 16 ao conjunto.
[00154] Em outro exemplo de uma transformação não separável, um bloco de entrada de 4 x 4 é considerado um único conjunto incluin- do dezesseis elementos, e, então, uma transformação (transformação de Givens de hipercubo), na qual a revolução de Givens é realizada no conjunto várias vezes, pode ser realizada.
[00155] Na transformação no transformador 106, os tipos de bases a serem transformadas no domínio de frequência, de acordo com as regiões em uma CU, podem ser comutadas. Exemplos incluem trans- formações espacialmente variáveis (SVT). Em SVT, como ilustrado na figura 5B, as CUs são divididas em duas regiões iguais, horizontal- mente ou verticalmente, e apenas uma das regiões é transformada no domínio de frequência. Um tipo de base de transformação pode ser determinado para cada região. Por exemplo, DST7 e DST8 são utiliza- dos. Nesse exemplo, apenas uma dessas duas regiões na CU é trans- formada, e a outra não é transformada. No entanto, ambas essas regi- ões podem ser transformadas. Adicionalmente, o método de divisão não está limitado à divisão em duas regiões iguais e pode ser mais flexível. Por exemplo, a CU pode ser dividida em quatro regiões iguais, ou a informação que indica a divisão pode ser codificada separada- mente e sinalizada da mesma forma que a divisão de CU. Deve-se no- tar que SVT também é referida como uma transformação de sub-bloco (SBT). Quantizador
[00156] O quantizador 108 quantiza os coeficientes de transforma- ção enviados a partir do transformador 106. Mais especificamente, o quantizador 108 digitaliza, em uma ordem de digitalização determina- da, os coeficientes de transformação do bloco atual e quantiza os coe- ficientes de transformação digitalizados com base nos parâmetro de quantização (QP) correspondentes aos coeficientes de transformação. O quantizador 108, então, envia os coeficientes de transformação quantizados (doravante também referidos como coeficientes quantiza- dos) do bloco atual para o codificador por entropia 110 e o quantizador inverso 112. A ordem de digitalização determinada pode ser predeter- minada.
[00157] Uma ordem de digitalização determinada é uma ordem para coeficientes de transformação de quantização/quantização inversa. Por exemplo, uma ordem de digitalização determinada pode ser defi- nida como a ordem ascendente de frequência (da frequência baixa pa- ra a alta) ou a ordem descendente de frequência (da frequência alta para a baixa).
[00158] Um parâmetro de quantização (QP) é um parâmetro que define uma etapa de quantização (largura de quantização). Por exem- plo, quando o valor do parâmetro de quantização aumenta, a etapa de quantização também aumenta. Em outras palavras, quando o valor do parâmetro de quantização aumenta, o erro de quantização aumenta.
[00159] Adicionalmente, uma matriz de quantização pode ser utili- zada para quantização. Por exemplo, vários tipos de matrizes de quan- tização podem ser utilizados de forma correspondente aos tamanhos de transformação de frequência, tal como 4 x 4 e 8 x 8, modos de pre- visão, tal como intraprevisão e interprevisão, e componentes de pixel, tal como componentes de pixel de luminescência e crominância. Deve- se notar que quantização significa a digitalização de valores amostra- dos em intervalos determinados de forma correspondente aos níveis determinados. Nesse campo técnico, a quantização pode ser referida utilizando-se outras expressões, tal como arredondamento e escalo- namento, e podem empregar o arredondamento e o escalonamento. Os intervalos e níveis determinados podem ser predeterminados.
[00160] Os métodos utilizando as matrizes de quantização incluem um método utilizando uma matriz de quantização que foi configurada diretamente no lado do codificador e um método utilizando uma matriz de quantização que foi configurada como um padrão (matriz padrão). No lado do codificador, uma matriz de quantização adequada para as características de uma imagem pode ser configurada pela configura- ção direta de uma matriz de quantização. Esse caso, no entanto, apre- senta uma desvantagem de aumentar uma quantidade de codificação para a codificação da matriz de quantização.
[00161] Existe um método para quantização de um coeficiente de alta frequência e de um coeficiente de baixa frequência sem se utilizar uma matriz de quantização. Deve-se notar que esse método é equiva- lente a um método utilizando uma matriz de quantização (matriz plana) cujos coeficientes possuem o mesmo valor.
[00162] A matriz de quantização pode ser especificada utilizando- se, por exemplo, um conjunto de parâmetros de sequência (SPS) ou um conjunto de parâmetros de imagem (PPS). SPS inclui um parâme- tro que é utilizado para uma sequência, e PPS inclui um parâmetro que é utilizado para uma imagem. Cada um dentre SPS e PPS pode ser simplesmente referido como um conjunto de parâmetros. Codificador por Entropia
[00163] O codificador por entropia 110 gera um sinal codificado (sequência de bits codificados) com base em coeficientes quantizados que foram registrados a partir do quantizador 108. Mais especifica- mente, o codificador por entropia 110, por exemplo, binariza os coefi- cientes quantizados, e codifica de forma aritmética o sinal binário, e envia uma sequência de bits comprimidos. Quantizador Inverso
[00164] O quantizador inverso 112 quantiza de forma inversa os coeficientes quantizados que foram registrados a partir do quantizador
108. Mais especificamente, o quantizador inverso 112 quantiza de forma inversa, em uma ordem de digitalização determinada, os coefi- cientes quantizados do bloco atual. O quantizador inverso 112, então, envia os coeficientes de transformação quantizados de forma inversa do bloco atual para o transformador inverso 114. A ordem de digitali- zação determinada pode ser predeterminada. Transformador Inverso
[00165] O transformador inverso 114 restaura os erros de previsão (residuais) pela transformação inversa dos coeficientes de transforma- ção que foram registrados a partir do quantizador inverso 112. Mais especificamente, o transformador inverso 114 restaura os erros de previsão do bloco atual pela aplicação de uma transformação inversa correspondente à transformação aplicada pelo transformador 106 aos coeficientes de transformação. O transformador inverso 114, então, envia os erros de previsão restaurados para o somador 116.
[00166] Deve-se notar que visto que a informação é perdida na quantização, os erros de previsão restaurados não combinam com os erros de previsão calculados pelo subtraidor 104. Em outras palavras, os erros de previsão restaurados normalmente incluem erros de quan- tização. Somador
[00167] O somador 116 reconstrói o bloco atual pela adição de er- ros de previsão que foram registrados a partir do transformador inver- so 114 e amostras de previsão que foram registradas a partir do con- trolador de previsão 128. O somador 116, então, envia o bloco recons- truído para a memória de bloco 118 e filtro de circuito 120. Um bloco reconstruído também é referido como um bloco decodificado local. Memória de Bloco
[00168] A memória de bloco 118 é, por exemplo, o armazenador para armazenar os blocos em uma imagem a ser codificada (doravan- te referida como uma imagem atual), que é referida na intraprevisão. Mais especificamente, a memória de bloco 118 armazena os blocos reconstruídos enviados a partir do somador 116. Memória de Quadro
[00169] A memória de quadro 112 é, por exemplo, o armazenador para armazenar imagens de referência para uso na interprevisão, e também é referida como um armazenador de quadro. Mais especifi- camente, a memória de quadro 122 armazena os blocos reconstruídos filtrados pelo filtro de circuito 120. Filtro de Circuito
[00170] O filtro de circuito 120 aplica um filtro de circuito aos blocos reconstruídos pelo somador 116, e envia os blocos reconstruídos fil- trados para a memória de quadro 122. Um filtro de circuito é um filtro utilizado em um circuito de codificação (filtro em circuito) e inclui, por exemplo, um filtro de desbloqueio (DF ou DBF), um desvio adaptativo de amostra (SAO), e um filtro de circuito adaptativo (ALF).
[00171] Em um ALF, um filtro de erro de quadrado médio, para re- moção de artefatos de compressão, é aplicado. Por exemplo, um filtro selecionado dentre uma pluralidade de filtros, com base na direção e atividade de gradientes locais, é aplicado a cada um dos sub-blocos de 2 x 2 no bloco atual.
[00172] Mais especificamente, primeiro, cada sub-bloco (por exem- plo, cada sub-bloco de 2 x 2) é categorizado em uma dentre uma plu- ralidade de classes (por exemplo, quinze ou vinte e cinco classes). A classificação do sub-bloco é baseada na direcionalidade e atividade de gradiente. Por exemplo, o índice de classificação C (por exemplo, C =
5D + A) é derivado com base na direcionalidade de gradiente D (por exemplo, de 0 a 2 ou de 0 a 4) e a atividade de gradiente A (por exemplo, de 0 a 4). Então, com base no índice de classificação C, ca- da sub-bloco é categorizado em uma dentre uma pluralidade de clas- ses.
[00173] Por exemplo, a direcionalidade de gradiente D é calculada pela comparação dos gradientes de uma pluralidade de direções (por exemplo, a direção horizontal, vertical e duas direções diagonais). Ademais, por exemplo, a atividade de gradiente A é calculada pela adição de gradientes dentre uma pluralidade de direções e pela quan- tização do resultado da adição.
[00174] O filtro a ser utilizado para cada sub-bloco é determinado dentre a pluralidade de filtros com base no resultado de tal categoriza- ção.
[00175] O formato do filtro a ser utilizado em um ALF é, por exem- plo, um formato de filtro simétrico circular. As figuras de 6A a 6C ilus- tram exemplos de formatos de filtro utilizados em ALFs. A figura 6A ilustra um filtro em formato de diamante de 5 x 5, a figura 6B ilustra um filtro em formato de diamante de 7 x 7 e a figura 6C ilustra um filtro em formato de diamante de 9 x 9. A informação que indica o formato do filtro é normalmente sinalizada no nível de imagem. Deve-se notar que a sinalização de tal informação que indica o formato de filtro não preci- sa, necessariamente, ser realizada no nível de imagem, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível de “tile”, nível de CTU ou nível de CU).
[00176] O LIGAR ou o DESLIGAR do ALF é determinado, por exemplo, no nível de imagem ou nível de CU. Por exemplo, a decisão de se aplica ALF à luminescência pode ser tomada no nível de CU, e a decisão de se aplica ALF à crominância pode ser tomada no nível de imagem. A informação que indica o LIGAR ou DESLIGAR do ALF é normalmente sinalizada no nível de imagem ou nível de CU. Deve-se notar que a sinalização da informação que indica o LIGAR ou DESLI- GAR do ALF não precisa, necessariamente, ser realizada no nível de imagem ou nível de CU, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível de “tile” ou nível de CTU).
[00177] O coeficiente determinado para a pluralidade de filtros sele- cionáveis (por exemplo, quinze ou até vinte e cinco filtros) é normal- mente sinalizado no nível de imagem. Deve-se notar que a sinalização do coeficiente determinado não precisa, necessariamente, ser realiza- da no nível de imagem, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível de “tile”, nível de CTU, nível de CU ou nível de sub-bloco). Filtro de Circuito > Filtro de Desbloqueio
[00178] Em um filtro de desbloqueio, o filtro de circuito 120 realiza um processo de filtro em um limite de bloco em uma imagem recons- truída, de modo a reduzir a distorção que ocorre no limite de bloco.
[00179] A figura 7 é um diagrama em bloco ilustrando um exemplo de uma configuração específica do filtro de circuito 120 que funciona como um filtro de desbloqueio.
[00180] O filtro de circuito 120 inclui o determinador de limite 1201; o determinador de filtro 1203; o executor de filtragem 1206; o determi- nador de processador 1208; o determinador de característica de filtro 1207; e os comutadores 1202, 1204 e 1206.
[00181] O determinador de limite 1201 determina se um pixel a ser filtrado por desbloqueio (isso é, um pixel atual) está presente em torno de um limite de bloco. O determinador de limite 1201, então, envia o resultado da determinação para o comutador 1202 e o determinador de processamento 1208.
[00182] No caso no qual o determinador de limite 1201 determinou que um pixel atual está presente em torno de um limite de bloco, o comutador 1202 envia uma imagem não filtrada para o comutador
1204. No caso oposto no qual o determinador de limite 1201 determi- nou que nenhum pixel atual está presente em torno de um limite de bloco, o comutador 1202 envia uma imagem não filtrada para o comu- tador 1206.
[00183] O determinador de filtro 1203 determina se realiza a filtra- gem de desbloqueio do pixel atual, com base no valor de pixel de pelo menos um pixel circundante localizado em torno do pixel atual. O de- terminador de filtro 1203, então, envia o resultado de determinação para o comutador 1204 e o determinador de processamento 1208.
[00184] No caso no qual o determinador de filtro 1203 determinou a realização da filtragem de desbloqueio do pixel atual, o comutador 1204 envia a imagem não filtrada obtida através do comutador 1202 para o executor de filtragem 1205. No caso oposto, no qual o determi- nador de filtro 1203 determinou a não realização da filtragem de des- bloqueio do pixel atual, o comutador 1204 envia a imagem não filtrada obtida através do comutador 1202 para o comutador 1206.
[00185] Quando da obtenção da imagem não filtrada através dos comutadores 1202 e 1204, o executor de filtragem 1205 executa, para o pixel atual, a filtragem de desbloqueio com a característica de filtro determinada pelo determinador de característica de filtro 1207. O exe- cutor de filtragem 1205, então, envia o pixel filtrado para o comutador
1206.
[00186] Sob o controle do determinador de processamento 1208, o comutador 1206 envia seletivamente um pixel que não foi filtrado por desbloqueio e um pixel que foi filtrado por desbloqueio pelo executor de filtragem 1205.
[00187] O determinador de processamento 1208 controla o comu- tador 1206 com base nos resultados da determinação tomada pelo de-
terminador de limite 1201 e determinador de filtro 1203. Em outras pa- lavras, o determinador de processamento 1208 faz com que o comu- tador 1206 envie o pixel que foi filtrado por desbloqueio quando o de- terminador de limite 1201 determinar que o pixel atual está presente em torno do limite de bloco e o determinador de filtro 1203 tiver deter- minado a realização da filtragem de desbloqueio do pixel atual. Adicio- nalmente, além do caso acima, o determinador de processamento 1208 faz com que o comutador 1206 envie o pixel que não foi filtrado por desbloqueio. Uma imagem filtrada é enviada do comutador 1206 pela repetição do envio de um pixel dessa forma.
[00188] A figura 8 é um diagrama conceitual indicando um exemplo de um filtro de desbloqueio possuindo uma característica de filtragem simétrica com relação a um limite de bloco.
[00189] Em um processo de filtro de desbloqueio, um dos dois fil- tros de desbloqueio possuindo características diferentes, isso é, um filtro forte e um filtro fraco, é selecionado utilizando-se valores de pixel e parâmetros de quantização. No caso de filtro forte, os pixels p0 a p2 e os pixels q0 a q2 estão presentes através de um limite de bloco co- mo ilustrado na figura 8, os valores de pixel do pixel respectivo de q0 a q2 são alterados para valores de pixel q'0 a q'2 pela realização, por exemplo, de computações de acordo com as expressões abaixo. q'0 = (p1 + 2 x p0 + 2 x q0 + 2 q1 + q2 + 4)/8 q'1 = (p0 + q0 + q1 + q2 +2)/4 q'2 = (p0 + q0 + q1 + 3 x q2 + 2 x q3 + 4)/8
[00190] Deve-se notar que, nas expressões acima, p0 a p2 e q0 a q2 são os valores de pixel dos pixels respectivos p0 a p2 e dos pixels q0 a q2. Adicionalmente, q3 é o valor de pixel do pixel vizinho q3 loca- lizado no lado oposto do pixel q2 com relação ao limite de bloco. Adi- cionalmente, no lado direito de cada uma das expressões, os coefici- entes que são multiplicados pelos valores de pixel respectivos, dos pixels a serem utilizados para a filtragem de desbloqueio, são coefici- entes de filtro.
[00191] Adicionalmente, na filtragem de desbloqueio, a fixação po- de ser realizada de modo que os valores de pixel calculados não se- jam determinados acima de um valor limite. No processo de fixação, os valores de pixel calculados de acordo com as expressões acima são fixados a um valor obtido de acordo com "um valor de pixel de computação +/- 2 x um valor limite" utilizando o valor limite determina- do com base em um parâmetro de quantização. Dessa forma, é possí- vel se impedir a suavização excessiva.
[00192] A figura 9 é um diagrama conceitual para ilustrar um limite de bloco no qual um processo de filtro de desbloqueio é realizado. A figura 10 é um diagrama conceitual indicando exemplos de valores Bs.
[00193] O limite de bloco no qual o processo de filtro de desblo- queio é realizado é, por exemplo, um limite entre as unidades de pre- visão (PU) possuindo blocos de 8 x 8 pixels, como ilustrado na figura 9, ou um limite entre as unidades de transformação (TU). O processo de filtro de desbloqueio pode ser realizado em unidades de quatro filei- ras ou quatro colunas. Primeiro, os valores de intensidade de limite (Bs) são determinados, como indicado na figura 10, para o bloco P e bloco Q, ilustrados na figura 9.
[00194] De acordo com os valores Bs na figura 10, se realiza os processos de filtro de desbloqueio dos limites de bloco pertencentes à mesma imagem utilizando intensidades diferentes é determinado. O processo de filtro de desbloqueio para um sinal de crominância é reali- zado quando um valor Bs é igual a 2. O processo de filtro de desblo- queio para um sinal de luminescência é realizado quando um valor Bs é igual a 1 ou mais e uma condição determinada é satisfeita. A condi- ção determinada pode ser predeterminada. Deve-se notar que as con- dições para se determinar os valores Bs não estão limitadas às indica-
das na figura 10, e um valor Bs pode ser determinado com base em outro parâmetro. Processador de Previsão (Intraprevisor, Interprevisor, Controlador de Previsão)
[00195] A figura 11 é um fluxograma ilustrando um exemplo de um processo realizado pelo processador de previsão do codificador 100. Deve-se notar que o processador de previsão inclui todos ou parte dos elementos constituintes a seguir: intraprevisor 124; interprevisor 126; e controlador de previsão 128.
[00196] O processador de previsão gera uma imagem de previsão de um bloco atual (Etapa Sb_1). Essa imagem de previsão também é referida como um sinal de previsão ou um bloco de previsão. É notado que o sinal de previsão, por exemplo, é um sinal de intraprevisão ou um sinal de interprevisão. Especificamente, o processador de previsão gera a imagem de previsão do bloco atual utilizando uma imagem re- construída que já foi obtida através da geração de um bloco de previ- são, geração de um bloco de diferença, geração de um bloco de coefi- cientes, restauração de um bloco de diferença, e geração de um bloco de imagem decodificado.
[00197] A imagem reconstruída pode ser, por exemplo, uma ima- gem em uma imagem de referência, ou uma imagem de um bloco co- dificado em uma imagem atual que é a imagem que inclui o bloco atu- al. O bloco codificado na imagem atual, por exemplo, é um bloco vizi- nho do bloco atual.
[00198] A figura 12 é um fluxograma ilustrando outro exemplo de um processo realizado pelo processador de previsão do codificador
100.
[00199] O processador de previsão gera uma imagem de previsão utilizando um primeiro método (Etapa Sc_1a), gera uma imagem de previsão utilizando um segundo método (Etapa Sc_1b), e gera uma imagem de previsão utilizando um terceiro método (Etapa Sc_1c). O primeiro método, o segundo método e o terceiro método podem ser métodos mutuamente diferentes para gerar uma imagem de previsão. Cada um dos primeiro a terceiro métodos pode ser um método de in- terprevisão, um método de intraprevisão, ou outro método de previsão. A imagem reconstruída descrita acima pode ser utilizada nesses mé- todos de previsão.
[00200] A seguir, o processador de previsão seleciona qualquer um dentre uma pluralidade de métodos de previsão gerados nas Etapas Sc_1a, Sc_1b e Sc_1c (Etapa Sc_2). A seleção da imagem de previ- são, que é a seleção de um método ou um modo para obter uma ima- gem de previsão final, pode ser realizada pelo cálculo de um custo pa- ra cada uma das imagens de previsão geradas e com base no custo. Alternativamente, a seleção da imagem de previsão pode ser realizada com base em um parâmetro que é utilizado em um processo de codifi- cação. O codificador 100 pode transformar a informação para identifi- car uma imagem de previsão selecionada, um método, ou um modo em um sinal codificado (também referido como uma sequência de bits codificados). A informação pode ser, por exemplo, um indicador ou si- milar. Dessa forma, o decodificador é capaz de gerar uma imagem de previsão de acordo com o método ou o modo selecionado com base na informação no codificador 100. Deve-se notar que, no exemplo ilus- trado na figura 12, o processador de previsão seleciona qualquer uma das imagens de previsão depois de as imagens de previsão serem ge- radas utilizando-se os métodos respectivos. No entanto, o processador de previsão pode selecionar um método ou um modo com base em um parâmetro para uso no processo de codificação descrito acima, antes da geração de imagens de previsão, e pode gerar uma imagem de previsão de acordo com o método ou modo selecionado.
[00201] Por exemplo, o primeiro método e o segundo método po-
dem ser intraprevisão e interprevisão, respectivamente, e o processa- dor de previsão pode selecionar uma imagem de previsão final para um bloco atual a partir das imagens de previsão geradas de acordo com os métodos de previsão.
[00202] A figura 13 é um fluxograma ilustrando outro exemplo de um processo realizado pelo processador de previsão do codificador
100.
[00203] Primeiro, o processador de previsão gera uma imagem de previsão utilizando a intraprevisão (Etapa Sd_1a), e gera uma imagem de previsão utilizando a interprevisão (Etapa Sd_1b). Deve-se notar que a imagem de previsão gerada pela intraprevisão também é referi- da como uma imagem de intraprevisão, e a imagem de previsão gera- da pela interprevisão é referida também como uma imagem de inter- previsão.
[00204] A seguir, o processador de previsão avalia cada imagem de intraprevisão e a imagem de interprevisão (Etapa Sd_2). Um custo po- de ser utilizado na avaliação. Em outras palavras, o processador de previsão calcula o custo C para cada uma dentre a imagem de intra- previsão e a imagem de interprevisão. O custo C pode ser calculado de acordo com uma expressão de um modelo de otimização R-D, por exemplo, C = D +  x R. Nessa expressão, D indica uma distorção de codificação de uma imagem de previsão, e é representado como, por exemplo, uma soma das diferenças absolutas entre o valor de pixel de um bloco atual e o valor de pixel de uma imagem de previsão. Adicio- nalmente, R indica uma quantidade de codificação prevista de uma imagem de previsão, especificamente, a quantidade de codificação necessária para se codificar a informação de movimento para gerar uma imagem de previsão, etc. Adicionalmente,  indica, por exemplo, um multiplicador, de acordo com o método do multiplicador Lagrange.
[00205] O processador de previsão, então, seleciona a imagem de previsão para a qual o menor custo C foi calculado dentre a imagem de intraprevisão e a imagem de interprevisão, como a imagem de pre- visão final para o bloco atual (Etapa Sd_3). Em outras palavras, o mé- todo ou modo de previsão para geração de imagem de previsão para o bloco atual é selecionado. Intraprevisor
[00206] O intraprevisor 124 gera um sinal de previsão (sinal de in- traprevisão) pela realização da intraprevisão (também referida como previsão intraquadro) do bloco atual por referência a um bloco ou blo- cos na imagem atual e armazenado na memória de bloco 118. Mais especificamente, o intraprevisor 124 gera um sinal de intraprevisão pela realização da intraprevisão por referência às amostras (por exemplo, valores de luminescência e/ou crominância) de um bloco ou blocos vizinhos do bloco atual, e, então, envia o sinal de intraprevisão para o controlador de previsão 128.
[00207] Por exemplo, o intraprevisor 124 realiza a intraprevisão pela utilização de um modo a partir de uma pluralidade de modos de intra- previsão que foram definidos. Os modos de intraprevisão incluem um ou mais modos de previsão não direcional e uma pluralidade de mo- dos de previsão direcional. Os modos definidos podem ser predefini- dos.
[00208] Os um ou mais modos de previsão não direcional incluem, por exemplo, o modo de previsão plana e o modo de previsão DC de- finidos no padrão H.265/codificação de vídeo de alta eficiência (HEVC).
[00209] A pluralidade de modos de previsão direcional inclui, por exemplo, trinta e três modos de previsão direcional definidos no pa- drão H.265/HEVC. Deve-se notar que a pluralidade de modos de pre- visão direcional pode incluir, adicionalmente, trinta e dois modos de previsão direcional em adição aos trinta e três modos de previsão dire-
cional (para um total de sessenta e cinco modos de previsão direcio- nal). A figura 14 é um diagrama conceitual ilustrando sessenta e sete modos de intraprevisão no total que podem ser utilizados na intrapre- visão (dois modos de previsão não direcional e sessenta e cinco mo- dos de previsão direcional). As setas sólidas representam as trinta e três direções definidas no padrão H.265/HEVC, e as setas tracejadas representam as trinta e duas direções adicionais (os dois modos de previsão não direcionais não são ilustrados na figura 14).
[00210] Em vários tipos de exemplos de processamento, um bloco de luminescência pode ser referido na intraprevisão de um bloco de crominância. Em outras palavras, um componente de crominância do bloco atual pode ser previsto com base em um componente de lumi- nescência do bloco atual. Tal intraprevisão também é referida como uma previsão de modelo linear de componente cruzado (CCLM). O modo de intraprevisão para um bloco de crominância no qual tal bloco de luminescência é referido (também referido, por exemplo, como um modo CCLM) pode ser adicionado como um dos modos de intraprevi- são para os blocos de crominância.
[00211] O intraprevisor 124 pode corrigir os valores de pixel intra- previstos com base nos gradientes de pixel de referência horizon- tal/vertical. A intraprevisão acompanhada desse tipo de correção tam- bém é referida como uma combinação de intraprevisão dependente de posição (PDPC). A informação indicando se aplica PDPC (referida como, por exemplo, um indicador PDPC) é normalmente sinalizada no nível de CU. Deve-se notar que a sinalização de tal informação não precisa, necessariamente, ser realizada no nível de CU, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de imagem, nível de fatia, nível de “tile” ou nível de CTU). Interprevisor
[00212] O interprevisor 126 gera um sinal de previsão (sinal de in-
terprevisão) pela realização da interprevisão (também referida como previsão interquadro) do bloco atual por referência a um bloco ou blo- cos em uma imagem de referência, que é diferente da imagem atual e é armazenada na memória de quadro 122. A interprevisão é realizada em unidades de um bloco atual ou um sub-bloco atual (por exemplo, um bloco de 4 x 4) no bloco atual. Por exemplo, o interprevisor 126 realiza a estimativa de movimento em uma imagem de referência para o bloco atual ou sub-bloco atual, e descobre um bloco de referência ou um sub-bloco que melhor combina com o bloco atual ou sub-bloco atual. O interprevisor 126, então, obtém a informação de movimento (por exemplo, um vetor de movimento) que compensa um movimento ou uma mudança do bloco de referência ou sub-bloco para o bloco ou sub-bloco atual. O interprevisor 126 gera um sinal de interprevisão do bloco ou sub-bloco atual pela realização da compensação de movi- mento (ou previsão de movimento) com base na informação de movi- mento. O interprevisor 126 envia o sinal de interprevisão gerado para o controlador de previsão 128.
[00213] A informação de movimento utilizada na compensação de movimento pode ser sinalizada como sinais de interprevisão em várias formas. Por exemplo, um vetor de movimento pode ser sinalizado. Como outro exemplo, a diferença entre um vetor de movimento e um previsor de vetor de movimento pode ser sinalizada. Fluxo Básico de Interprevisão
[00214] A figura 15 é um fluxograma ilustrando um fluxo de proces- samento básico ilustrativo de interprevisão.
[00215] Primeiro, o interprevisor 126 gera um sinal de previsão (Etapas Se_1 a Se_3). A seguir, o subtraidor 104 gera a diferença en- tre um bloco atual e uma imagem de predição como um residual de previsão (Etapa Se_4).
[00216] Aqui, na geração da imagem de previsão, o interprevisor
126 gera a imagem de previsão através da determinação de um vetor de movimento (MV) do bloco atual (Etapas Se_1 e Se_2) e a compen- sação de movimento (Etapa Se_3). Adicionalmente, na determinação de um MV, o interprevisor 126 determina o MV através da seleção de um candidato a vetor de movimento (candidato a MV) (Etapa Se_1) e derivação de um MV (Etapa Se_2). A seleção do candidato a MV é feita, por exemplo, pela seleção de pelo menos um candidato a MV a partir de uma lista de candidatos a MV. Alternativamente, na derivação de um MV, o interprevisor 126 pode selecionar, adicionalmente, pelo menos um candidato a MV a partir de pelo menos um candidato a MV, e determinar o pelo menos um candidato a MV selecionado como o MV para o bloco atual. Alternativamente, o interprevisor 126 pode de- terminar o MV para o bloco atual pela realização da estimativa em uma região de imagem de referência especificada por cada um do pelo me- nos um candidato a MV selecionado. Deve-se notar que a estimativa em uma região de imagem de referência pode ser referida como esti- mativa de movimento.
[00217] Adicionalmente, apesar de as Etapas Se_1 a Se_3 serem realizadas pelo interprevisor 126 no exemplo descrito acima, um pro- cesso que é, por exemplo, Etapa Se_1, Etapa Se_2 ou similares, pode ser realizado por outro elemento constituinte incluído no codificador
100. Fluxo de Derivação de Vetor de Movimento
[00218] A figura 16 é um fluxograma ilustrando um exemplo de de- rivação de vetores de movimento.
[00219] O interprevisor 126 deriva um MV de um bloco atual em um modo para codificar a informação de movimento (por exemplo, um MV). Nesse caso, por exemplo, a informação de movimento é codifi- cada como um parâmetro de previsão, e é sinalizada. Em outras pala- vras, a informação de movimento codificada é incluída em um sinal codificado (também referido como uma sequência de bits codificados).
[00220] Alternativamente, o interprevisor 126 deriva um MV em um modo no qual a informação de movimento não é codificada. Nesse ca- so, nenhuma informação de movimento está incluída em um sinal codi- ficado.
[00221] Aqui, os modos de derivação de MV podem incluir um in- termodo normal, um modo de mistura, um modo FRUC, um modo afim, etc. que serão descritos posteriormente. Os modos nos quais a informação de movimento é codificada entre os modos incluem o in- termodo normal, o modo de mistura, o modo afim (especificamente, um intermodo afim e um modo de mistura afim), etc. Deve-se notar que a informação de movimento pode incluir não apenas um MV, mas também a informação de seleção de previsor de vetor de movimento que será descrita posteriormente. Os modos nos quais nenhuma in- formação de movimento é codificada incluem o modo FRUC, etc. O interprevisor 126 seleciona um modo para derivar um MV do bloco atual a partir de modos, e deriva o MV do bloco atual utilizando o modo selecionado.
[00222] A figura 17 é um fluxograma ilustrando outro exemplo de derivação de vetores de movimento.
[00223] O interprevisor 126 deriva um MV de um bloco atual em um modo no qual uma diferença de MV é codificada. Nesse caso, por exemplo, a diferença de MV é codificada como um parâmetro de pre- visão, e é sinalizada. Em outras palavras, a diferença de MV codifica- da é incluída em um sinal codificado. A diferença de MV é a diferença entre o MV do bloco atual e o previsor de MV.
[00224] Alternativamente, o interprevisor 126 deriva um MV em um modo no qual nenhuma diferença de MV é codificada. Nesse caso, nenhuma diferença de MV codificada será incluída em um sinal codifi- cado.
[00225] Aqui, como descrito acima, os modos de derivação de MV incluem o intermodo normal, o modo de mistura, o modo FRUC, o mo- do afim, etc. que serão descritos posteriormente. Os modos nos quais uma diferença de MV é codificada, dentre os modos, incluem o inter- modo normal, o modo afim (especificamente, o intermodo afim), etc. Os modos nos quais nenhuma diferença de MV é codificada incluem o modo FRUC, o modo de mistura, o modo afim (especificamente, o modo de mistura afim), etc. O interprevisor 126 seleciona um modo para derivar um MV do bloco atual a partir da pluralidade de modos, e deriva o MV do bloco atual utilizando o modo selecionado. Fluxo de Derivação de Vetor de Movimento
[00226] A figura 18 é um fluxograma ilustrando outro exemplo de derivação de vetores de movimento. Os modos de derivação de MV, que são os modos de interprevisão, incluem uma pluralidade de mo- dos e são aproximadamente divididos em modos nos quais uma dife- rença de MV é codificada e modos nos quais nenhuma diferença de vetor de movimento é codificada. Os modos nos quais nenhuma dife- rença de MV é codificada incluem o modo de mistura, o modo FRUC, o modo afim (especialmente, o modo de mistura afim), etc. Esses mo- dos são descritos em detalhes posteriormente. De forma simples, o modo de mistura é um modo para derivar um MV de um bloco atual pela seleção de um vetor de movimento a partir de um bloco circun- dante codificado, e o modo FRUC é um modo para derivar um MV de um bloco atual pela realização da estimativa entre as regiões codifica- das. O modo afim é um modo para derivar, como um MV de um bloco atual, um vetor de movimento de cada um dentre uma pluralidade de sub-blocos incluídos no bloco atual, assumindo a transformação afim.
[00227] Mais especificamente, como ilustrado quando a informação de modo de interprevisão indica 0 (0 em Sf_1), o interprevisor 126 de- riva um vetor de movimento utilizando o modo de mistura (Sf_2).
Quando a informação de modo de interprevisão indica 1 (1 em Sf_1), o interprevisor 126 deriva um vetor de movimento utilizando o modo FRUC (Sf_3). Quando a informação do modo de interprevisão indica 2 (2 em Sf_1), o interprevisor 126 deriva um vetor de movimento utili- zando um modo afim (especificamente, o modo de mistura afim) (Sf_4). Quando a informação de modo de interprevisão indica 3 (3 em Sf_1), o interprevisor 126 deriva um vetor de movimento utilizando um modo no qual uma diferença de MV é codificada (por exemplo, um in- termodo normal (Sf_5)). Derivação de MV > Intermodo Normal
[00228] O intermodo normal é um modo de interprevisão para deri- var um MV de um bloco atual com base em um bloco similar à imagem do bloco atual a partir de uma região de imagem de referência especi- ficada por um candidato a MV. Nesse intermodo normal, uma diferen- ça de MV é codificada.
[00229] A figura 19 é um fluxograma ilustrando um exemplo de in- terprevisão no intermodo normal.
[00230] Primeiro, o interprevisor 126 obtém uma pluralidade de candidatos a MV para um bloco atual com base na informação, tal co- mo MVs dentre uma pluralidade de blocos codificados temporalmente ou espacialmente que circundam o bloco atual (Etapa Sg_1). Em ou- tras palavras, o interprevisor 126 gera uma lista de candidatos a MV.
[00231] A seguir, o interprevisor 126 extrai N (um inteiro igual a 2 ou maior) candidatos a partir da pluralidade de candidatos a MV obtida na Etapa Sg_1, como candidatos a previsor de vetor de movimento (tam- bém referidos como candidatos a previsor de MV), de acordo com uma ordem de prioridade determinada (Etapa Sg_2). Deve-se notar que a ordem de prioridade pode ser determinada antecipadamente para ca- da um dos N candidatos a MV.
[00232] A seguir, o interprevisor 126 seleciona um candidato a pre-
visor de vetor de movimento a partir dos N candidatos a previsor de vetor de movimento, como o previsor de vetor de movimento (também referido como um previsor de MV) do bloco atual (Etapa Sg_3). Nesse momento, o interprevisor 126 codifica, em uma sequência, a informa- ção de seleção de previsor de vetor de movimento para identificar o previsor de vetor de movimento selecionado. Deve-se notar que a se- quência é um sinal codificado ou uma sequência de bits codificada como descrito acima.
[00233] A seguir, o interprevisor 126 deriva um MV de um bloco atual por referência a uma imagem de referência codificada (Etapa Sg_4). Nesse momento, o interprevisor 126 codifica adicionalmente, na sequência, o valor de diferença entre o MV derivado e o previsor de vetor de movimento como uma diferença de MV. Deve-se notar que a imagem de referência codificada é uma imagem que inclui uma plurali- dade de blocos que foram reconstruídos depois de terem sido codifi- cados.
[00234] Por fim, o interprevisor 126 gera uma imagem de previsão para o bloco atual pela realização da compensação de movimento do bloco atual utilizando o MV derivado e a imagem de referência codifi- cada (Etapa Sg_5). Deve-se notar que a imagem de previsão é um sinal de interprevisão como descrito acima.
[00235] Adicionalmente, a informação que indica o modo de inter- previsão (o intermodo normal no exemplo acima) utilizado para gerar a imagem de previsão é, por exemplo, codificada como um parâmetro de previsão.
[00236] Deve-se notar que a lista de candidatos a MV também pode ser utilizada como uma lista para uso em outro modo. Adicionalmente, os processos relacionados com a lista de candidatos a MV pode ser aplicado aos processos relacionados com a lista para uso em outro modo. Os processos relacionados com a lista de candidatos a MV in-
cluem, por exemplo, a extração ou seleção de um candidato a MV a partir da lista de candidatos a MV, a reordenação dos candidatos a MV, ou a eliminação de um candidato a MV. Derivação de MV > Modo de Mistura
[00237] O modo de mistura é um modo de interprevisão para sele- cionar um candidato a MV a partir de uma lista de candidatos a MV como um MV de um bloco atual, derivando, assim, o MV.
[00238] A figura 20 é um fluxograma ilustrando um exemplo de in- terprevisão no modo de mistura.
[00239] Primeiro, o interprevisor 126 obtém uma pluralidade de candidatos a MV para um bloco atual com base na informação, tal co- mo MVs de uma pluralidade de blocos codificados que circundam temporalmente ou espacialmente o bloco atual (Etapa Sh_1). Em ou- tras palavras, o interprevisor 126 gera uma lista de candidatos a MV.
[00240] A seguir, o interprevisor 126 seleciona um candidato a MV a partir da pluralidade de candidatos a MV obtidos na Etapa Sh_1, de- rivando, assim, um MV do bloco atual (Etapa Sh_2). Nesse momento, o interprevisor 126 codifica, em uma sequência, a informação de sele- ção de MV para identificar o candidato a MV selecionado.
[00241] Por fim, o interprevisor 126 gera uma imagem de previsão para o bloco atual pela realização da compensação de movimento do bloco atual utilizando o MV derivado e a imagem de referência codifi- cada (Etapa Sh_3).
[00242] Adicionalmente, a informação que indica o modo de inter- previsão (modo de mistura no exemplo acima) utilizado para gerar a imagem de previsão e incluída no sinal codificado é, por exemplo, co- dificada como um parâmetro de previsão.
[00243] A figura 21 é um diagrama conceitual para ilustrar um exemplo de um processo de derivação de vetor de movimento de uma imagem atual no modo de mistura.
[00244] Primeiro, uma lista de candidatos a MV, na qual os candida- tos a previsor de MV são registrados, é gerada. Exemplos dos candi- datos a previsor de MV incluem: previsores de MV espacialmente vizi- nhos que são MVs de uma pluralidade de blocos codificados localiza- dos espacialmente em torno de um bloco atual; previsores de MV tem- poralmente vizinhos, que são MVs de blocos circundantes nos quais a posição de um bloco atual, em uma imagem de referência codificada, é projetada; previsores de MV combinados que são MVs gerados pela combinação do valor de MV de um previsor de MV espacialmente vizi- nho e o MV de um previsor de MV temporalmente vizinho; e um previ- sor de MV zero que é um MV possuindo um valor igual a zero.
[00245] A seguir, um previsor de MV é selecionado a partir de uma pluralidade de previsores de MV registrados em uma lista de previso- res de MV, e o previsor de MV selecionado é determinado como o MV de um bloco atual.
[00246] Adicionalmente, o codificador de comprimento variável des- creve e codifica, em uma sequência, merge_idx, que é um sinal indi- cando que previsor de MV foi selecionado.
[00247] Deve-se notar que os previsores de MV registrados na lista de previsores de MV descrita na figura 21 são exemplos. O número de previsores de MV pode ser diferente do número de previsores de MV no diagrama, a lista de previsores de MV pode ser configurada de tal forma que alguns dos tipos de previsores de MV no diagrama possam não ser incluídos, ou que um ou mais previsores de MV, além dos ti- pos de previsores de MV no diagrama, sejam incluídos.
[00248] Um MV final pode ser determinado pela realização de um processo de refinamento de vetor de movimento de decodificador (DVMR) a ser descrito posteriormente utilizando o MV do bloco atual derivado no modo de mistura.
[00249] Deve-se notar que os candidatos a previsor de MV são candidatos a MV descritos acima, e a lista de previsor de MV é a lista de candidatos a MV descrita acima. Deve-se notar que a lista de can- didatos a MV pode ser referida como uma lista de candidatos. Adicio- nalmente, merge_idx é a informação de seleção de MV. Derivação de MV > Modo FRUC
[00250] A informação de movimento pode ser derivada no lado do decodificador sem ser sinalizada a partir do lado do codificador. Deve- se notar que, como descrito acima, o modo de mistura definido no pa- drão H.265/HEVC pode ser utilizado. Adicionalmente, por exemplo, a informação de movimento pode ser derivada pela realização da esti- mativa de movimento no lado do decodificador. Em uma modalidade, no lado do decodificador, a estimativa de movimento é realizada sem se utilizar qualquer valor de pixel em um bloco atual.
[00251] Aqui, um modo de realização da estimativa de movimento no lado do decodificador é descrito. O modo de realização da estimati- va de movimento no lado do decodificador pode ser referido como um modo de derivação de vetor de movimento de padrão combinado (PMMVD), ou um modo de conversão ascendente de taxa de quadro (FRUC).
[00252] Um exemplo de um processo FRUC na forma de um fluxo- grama é ilustrado na figura 22. Primeiro, uma lista dentre uma plurali- dade de candidatos, cada um possuindo um previsor de vetor de mo- vimento (MV) (isso é, uma lista de candidatos a MV que também pode ser utilizada como uma lista de mistura) é gerada por referência a um vetor de movimento em um bloco codificado que é espacialmente ou temporalmente vizinho de um bloco atual (Etapa Si_1). A seguir, um melhor candidato a MV é selecionado a partir da pluralidade de candi- datos a MV registrados na lista de candidatos a MV (Etapa Si_2). Por exemplo, os valores de avaliação dos candidatos a MV respectivos, incluídos na lista de candidatos a MV são calculados, e um candidato a MV é selecionado com base nos valores de avaliação. Com base nos candidatos a vetor de movimento selecionados, um vetor de mo- vimento para o bloco atual é, então, derivado (Etapa Si_4). Mais espe- cificamente, por exemplo, o candidato a vetor de movimento selecio- nado (melhor candidato a MV) é derivado diretamente como o vetor de movimento para o bloco atual. Adicionalmente, por exemplo, o vetor de movimento para o bloco atual pode ser derivado utilizando-se a com- binação de padrão em uma região circundante de uma posição em uma imagem de referência, onde a posição na imagem de referência corresponde ao candidato a vetor de movimento selecionado. Em ou- tras palavras, a estimativa utilizando a combinação de padrão e os va- lores de avaliação pode ser realizada na região circundante do melhor candidato a MV, e quando houver um MV que resulte em um melhor valor de avaliação, o melhor candidato a MV pode ser atualizado para o MV que resulta no melhor valor de avaliação, e o MV atualizado po- de ser determinado como o MV final para o bloco atual. Uma configu- ração na qual nenhum processo desses, para atualizar o melhor can- didato a MV para o MV possuindo um melhor valor de avaliação, é rea- lizado, também é possível.
[00253] Por fim, o interprevisor 126 gera uma imagem de previsão para o bloco atual pela realização da compensação de movimento do bloco atual utilizando o MV derivado e a imagem de referência codifi- cada (Etapa Si_5).
[00254] Um processo similar pode ser realizado em unidades de um sub-bloco.
[00255] Os valores de avaliação podem ser calculados de acordo com vários tipos de métodos. Por exemplo, uma comparação é feita entre uma imagem reconstruída em uma região em uma imagem de referência que corresponde a um vetor de movimento, e uma imagem reconstruída em uma região determinada (a região pode ser, por exemplo, uma região em outra imagem de referência ou uma região em um bloco vizinho de uma imagem atual, como indicado abaixo). A região determinada pode ser predeterminada.
[00256] A diferença entre os valores de pixel de duas imagens re- construídas pode ser utilizada para um valor de avaliação de vetores de movimento. Deve-se notar que um valor de avaliação pode ser cal- culado utilizando-se a informação além do valor de diferença.
[00257] A seguir, um exemplo de combinação de padrão é descrito em detalhes. Primeiro, um candidato a MV incluído em uma lista de candidatos a MV (por exemplo, uma lista de mistura) é selecionado como um ponto de partida de estimativa pela combinação de padrão. Por exemplo, como a combinação de padrão, uma primeira combina- ção de padrão ou uma segunda combinação de padrão pode ser utili- zada. A primeira combinação de padrão e a segunda combinação de padrão também são referidas como combinação bilateral e combina- ção de gabarito, respectivamente. Derivação de MV > FRUC > Combinação Bilateral
[00258] Na primeira combinação de padrão, a combinação de pa- drão é realizada entre dois blocos ao longo de uma trajetória de movi- mento de um bloco atual, que são dois blocos em duas imagens de referência diferentes. De acordo, na primeira combinação de padrão, uma região em outra imagem de referência, ao longo da trajetória de movimento do bloco atual, é utilizada como uma região determinada para se calcular o valor de avaliação do candidato descrito acima. A região determinada pode ser predeterminada.
[00259] A figura 23 é um diagrama conceitual para ilustrar um exemplo da primeira combinação de padrão (combinação bilateral) en- tre os dois blocos nas duas imagens de referência ao longo da trajetó- ria de movimento. Como ilustrado na figura 23, na primeira combina- ção de padrão, dois vetores de movimento (MV0, MV1) são derivados pela estimativa de um par que melhor combina entre os pares nos dois blocos nas duas imagens de referência diferentes (Ref0, Ref1), que são dois blocos ao longo da trajetória de movimento do bloco atual (Cur block). Mais especificamente, uma diferença entre a imagem re- construída em um local especificado na primeira imagem de referência codificada (Ref0), especificada por um candidato a MV e a imagem reconstruída em um local especificado na segunda imagem de refe- rência codificada (Ref1), especificada por um MV simétrico, obtido pelo escalonamento do candidato a MV em um intervalo de tempo de exibi- ção, é derivada para o bloco atual, e um valor de avaliação é calculado utilizando-se o valor da diferença obtida. É possível se selecionar, co- mo o MV final, o candidato a MV que resulta no melhor valor de avali- ação, dentre a pluralidade de candidatos a MV, e que tem mais chan- ces de produzir bons resultados.
[00260] Considerando-se uma trajetória de movimento contínua, os vetores de movimento (MV0, MV1), que especificam os dois blocos de referência, são proporcionais às distâncias temporais (TD0, TD1) entre a imagem atual (Cr Pic) e duas imagens de referência (Ref0, Ref1). Por exemplo, quando a imagem atual é localizada temporalmente en- tre as duas imagens de referência e as distâncias temporais, a partir da imagem atual para as duas imagens de referência respectivas, são iguais uma à outra, os vetores de movimento bidirecional simétricos e espelhados são derivados na primeira combinação de padrão. Derivação de MV > FRUC > Combinação de Gabarito
[00261] Na segunda combinação de padrão (combinação de gabari- to), a combinação de padrão é realizada entre um bloco em uma ima- gem de referência e um gabarito na imagem atual (o gabarito é um bloco vizinho do bloco atual na imagem atual (o bloco vizinho é, por exemplo, um bloco vizinho superior e/ou esquerdo)). De acordo, na segunda combinação de padrão, o bloco vizinho do bloco atual na imagem atual é utilizado como a região determinada para se calcular o valor de avaliação do candidato descrito acima.
[00262] A figura 24 é um diagrama conceitual para ilustrar um exemplo de combinação de padrão (combinação de gabarito) entre um gabarito e uma imagem atual e um bloco em uma imagem de referên- cia. Como ilustrado na figura 24, na segunda combinação de padrão, o vetor de movimento do bloco atual (Cur block) é derivado por estimati- va, na imagem de referência (Ref0), o bloco que melhor combina com o bloco vizinho ao bloco atual na imagem atual (Cur Pic). Mais especi- ficamente, é possível que a diferença entre uma imagem reconstruída em uma região codificada, que é vizinha pelo lado esquerdo e por ci- ma, ou pelo lado esquerdo ou por cima, e uma imagem reconstruída, que está em uma região correspondente na imagem de referência co- dificada (Ref0) e é especificada por um candidato a MV, seja derivada, um valor de avaliação seja calculado utilizando o valor da diferença obtida, e o candidato a MV, que resulta no melhor valor de avaliação dentre uma pluralidade de candidatos a MV, seja selecionado como o melhor candidato a MV.
[00263] Tal informação que indica se aplica o modo FRUC (referido como, por exemplo, um indicador FRUC) pode ser sinalizada no nível de CU. Adicionalmente, quando o modo FRUC é aplicado (por exem- plo, quando um indicador FRUC é verdadeiro), a informação que indi- ca um método de combinação de padrão aplicável (a primeira combi- nação de padrão ou a segunda combinação de padrão) pode ser sina- lizada no nível de CU. Deve-se notar que a sinalização de tal informa- ção não precisa, necessariamente, ser realizada no nível de CU, e po- de ser realizada em outro nível (por exemplo, no nível de sequência, nível de imagem, nível de fatia, nível de “tile”, nível de CTU ou nível de sub-bloco). Derivação de MV > Modo Afim
[00264] A seguir, o modo afim para derivar um vetor de movimento em unidades de um sub-bloco, com base nos vetores de movimento dentre uma pluralidade de vetores de movimento, é descrito. Esse modo também é referido como um modo de previsão de compensação de movimento afim.
[00265] A figura 25A é um diagrama conceitual para ilustrar um exemplo de derivação de um vetor de movimento de cada sub-bloco com base nos vetores de movimento dentre uma pluralidade de blocos vizinhos. Na figura 25A, o bloco atual inclui dezesseis sub-blocos de 4 x 4. Aqui, o vetor de movimento V0 em um ponto de controle do canto superior esquerdo no bloco atual é derivado com base em um vetor de movimento de um bloco vizinho, e, da mesma forma, o vetor de movi- mento V1 em um ponto de controle do canto superior direito no bloco atual é derivado com base em um vetor de movimento de um sub- bloco vizinho. Dois vetores de movimento v0 e v1 podem ser projetados de acordo com uma expressão (1A) indicada abaixo, e os vetores de movimento (vx, vy) para os sub-blocos respectivos no bloco atual po- dem ser derivados. Matemática 1
[00266] Aqui, x e y indicam a posição horizontal e a posição vertical do sub-bloco, respectivamente, e w indica um coeficiente de pondera- ção determinado. O coeficiente de ponderação determinado pode ser predeterminado.
[00267] Tal informação que indica o modo afim (por exemplo, refe- rido como um indicador afim) pode ser sinalizado no nível de CU. É notado que a sinalização da informação que indica o modo afim não precisa, necessariamente, ser realizada no nível de CU, e pode ser realizada em outro nível (por exemplo, no nível de sequência, no nível de imagem, no nível de fatia, no nível de “tile”, no nível de CTU ou no nível de sub-bloco).
[00268] Adicionalmente, o modo afim pode incluir vários modos pa- ra diferentes métodos de derivação de vetores de movimento nos pon- tos de controle de canto superior esquerdo e superior direito. Por exemplo, o modo afim inclui dois modos que são o intermodo afim (também referido como um intermodo normal afim) e o modo de mistu- ra afim. Derivação de MV > Modo Afim
[00269] A figura 25B é um diagrama conceitual para ilustrar um exemplo de derivação de um vetor de movimento de cada sub-bloco no modo afim no qual três pontos de controle são utilizados. Na figura 25B, o bloco atual inclui dezesseis blocos de 4 x 4. Aqui, o vetor de movimento V0 no ponto de controle do canto superior esquerdo para o bloco atual é derivado com base em um vetor de movimento de um bloco vizinho e, da mesma forma, o vetor de movimento V1 no ponto de controle do canto superior direito para o bloco atual é derivado com base em um vetor de movimento de um bloco vizinho, e o vetor de movimento V2 no ponto de controle do canto inferior esquerdo para o bloco atual é derivado com base em um vetor de movimento de um bloco vizinho. Três vetores de movimento v0, v1 e v2 podem ser proje- tados de acordo com uma expressão (1B) indicada abaixo, e os veto- res de movimento (vx, vy) para os sub-blocos respectivos no bloco atu- al podem ser derivados. Matemática 2
[00270] Aqui, x e y indicam a posição horizontal e a posição vertical do centro do sub-bloco, respectivamente, w indica a largura do bloco atual, e h indica a altura do bloco atual.
[00271] Os modos afim, nos quais números diferentes de pontos de controle (por exemplo, dois e três pontos de controle) são utilizados, podem ser comutados e sinalizados no nível de CU. Deve-se notar que a informação que indica o número de pontos de controle no modo afim, utilizada no nível de CU, pode ser sinalizada em outro nível (por exemplo, nível de sequência, nível de imagem, nível de fatia, nível de “tile”, nível de CTU ou nível de sub-bloco).
[00272] Adicionalmente, tal modo afim, no qual três pontos de con- trole são utilizados, pode incluir diferentes métodos de derivação de vetores de movimento nos pontos de controle do canto superior es- querdo, superior direito, e inferior esquerdo. Por exemplo, os modos afim incluem dois modos que são o intermodo afim (também referido como o intermodo normal afim) e o modo de mistura afim. Derivação de MV > Modo de Mistura Afim
[00273] As figuras 26A, 26B e 26C são diagramas conceituais para ilustrar o modo de mistura afim.
[00274] Como ilustrado na figura 26A, no modo de mistura afim, por exemplo, os previsores de vetor de movimento nos pontos de controle respectivos de um bloco atual são calculados com base em uma plura- lidade de vetores de movimento que correspondem aos blocos codifi- cados de acordo com o modo afim, dentre o bloco A codificado (es- querdo), bloco B (superior), bloco C (superior direito), bloco D (inferior esquerdo), e bloco E (superior esquerdo), que é vizinho do bloco atual. Mais especificamente, o bloco A codificado (esquerdo), o bloco B (su- perior), o bloco C (superior direito), o bloco D (inferior esquerdo) e o bloco E (superior esquerdo) são verificados na ordem listada, e o pri- meiro bloco efetivo codificado de acordo com o modo afim é identifica- do. Os previsores de vetor de movimento nos pontos de controle do bloco atual são calculados com base em uma pluralidade de vetores de movimento que correspondem ao bloco identificado.
[00275] Por exemplo, como ilustrado na figura 26A, quando o bloco A, que é vizinho pelo lado esquerdo, do bloco atual foi codificado de acordo com um modo afim, no qual dois pontos de controle são utiliza- dos, os vetores de movimento v3 e v4 projetados na posição de canto superior esquerdo e posição de canto superior direito do bloco codifi- cado, incluindo o bloco A, são derivados. O previsor de vetor de movi- mento v0, no ponto de controle de canto superior esquerdo do bloco atual e o previsor de vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual são, então, calculados a partir dos vetores de movimento derivados v3 e v4.
[00276] Por exemplo, como ilustrado na figura 26C, quando o bloco A, que é vizinho pelo lado esquerdo, do bloco atual foi codificado de acordo com um modo afim, no qual três pontos de controle são utiliza- dos, os vetores de movimento v3, v4 e v5 projetados na posição de can- to superior esquerdo, posição de canto superior direito e posição de canto inferior esquerdo do bloco codificado, incluindo o bloco A, são derivados. O previsor de vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual, o previsor de vetor de mo- vimento v1 no ponto de controle do canto superior direito do bloco atu- al, e o previsor de vetor de movimento v2 no ponto de controle do can- to inferior esquerdo do bloco atual são, então, calculados a partir dos vetores de movimento derivado v3, v4 e v5.
[00277] Deve-se notar que esse método de derivação dos previso- res de vetor de movimento pode ser utilizado para derivar os previso- res de vetor de movimento dos pontos de controle respectivos do blo- co atual na Etapa Sj_1 na figura 29 descrita posteriormente.
[00278] A figura 27 é um fluxograma ilustrando um exemplo do mo- do de mistura afim.
[00279] No modo de mistura afim, como ilustrado, primeiro, o inter-
previsor 126 deriva os previsores de MV dos pontos de controle res- pectivos de um bloco atual (Etapa Sk_1). Os pontos de controle são um ponto de canto superior esquerdo do bloco atual e um ponto de canto superior direito do bloco atual, como ilustrado na figura 25A, ou um ponto de canto superior esquerdo do bloco atual, um ponto de can- to superior direito do bloco atual, e um ponto de canto inferior esquer- do do bloco atual, como ilustrado na figura 25B.
[00280] Em outras palavras, como ilustrado na figura 26A, o inter- previsor 16 verifica o bloco codificado (superior esquerdo) na ordem listada, e identifica o primeiro bloco efetivo codificado de acordo com o modo afim.
[00281] Quando o bloco A é identificado e o bloco A possui dois pontos de controle, como ilustrado na figura 26B, o interprevisor 126 calcula o vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual e o vetor de movimento v1 no ponto de contro- le do canto superior direito do bloco atual a partir dos vetores de mo- vimento v3 e v4 no canto superior esquerdo e no canto superior direito do bloco codificado, incluindo o bloco A. Por exemplo, o interprevisor 126 calcula o vetor de movimento v0 no ponto de controle do canto su- perior esquerdo do bloco atual e o vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual pela projeção de veto- res de movimento v3 e v4 no canto superior esquerdo e no canto supe- rior direito do bloco codificado no bloco atual.
[00282] Alternativamente, quando o bloco A é identificado e o bloco A possui três pontos de controle, como ilustrado na figura 26C, o inter- previsor 126 calcula o vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual, o vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual e o vetor de movimento v2 no ponto de controle do canto inferior esquerdo do bloco atual a partir dos vetores de movimento v3, v4 e v5 no canto superior esquerdo, no canto superior direito, e no canto inferior esquerdo do bloco codificado incluindo o bloco A. Por exemplo, o interprevisor 126 calcula o vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual, o vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual, e o vetor de movimento v2 no ponto de controle do canto inferior esquerdo do bloco atual pela proje- ção de vetores de movimento v3, v4 e v5, como o canto superior es- querdo, o canto superior direito e o canto inferior esquerdo do bloco codificado no bloco atual.
[00283] A seguir, o interprevisor 126 realiza a compensação de mo- vimento de cada um dentre uma pluralidade de sub-blocos incluídos no bloco atual. Em outras palavras, o interprevisor 126 calcula, para cada um dentre a pluralidade de sub-blocos, um vetor de movimento do sub-bloco como um MV afim, pela utilização de (i) dois previsores de vetor de movimento v0 e v1 e a expressão (1A) descrita cima ou (ii) três previsores de vetor de movimento v0, v1 e v2 e a expressão (1B) descrita acima (Etapa Sk_2). O interprevisor 126, então, realiza a compensação de movimento dos sub-blocos utilizando esses MVs afim e as imagens de referência codificadas (Etapa Sk_3). Como re- sultado disso, a compensação de movimento do bloco atual é realiza- da para gerar uma imagem de previsão do bloco atual. Derivação de MV > Intermodo Afim
[00284] A figura 28A é um diagrama conceitual para ilustrar um in- termodo afim no qual dois pontos de controle são utilizados.
[00285] No intermodo afim, como ilustrado na figura 28A, um vetor de movimento selecionado a partir dos vetores de movimento do bloco A codificado, bloco B e Bloco C, que são vizinhos do bloco atual, é uti- lizado como o previsor de vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual. Da mesma forma, um vetor de movimento, selecionado a partir dos vetores de movimento do blo-
co D e bloco E codificados, que são vizinhos do bloco atual, é utilizado como o previsor de vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual.
[00286] A figura 28B é um diagrama conceitual para ilustrar um in- termodo afim no qual três pontos de controle são utilizados.
[00287] No intermodo afim, como ilustrado na figura 28B, um vetor de movimento, selecionado a partir dos vetores de movimento do blo- co A, bloco B e bloco C codificados, que são vizinhos do bloco atual, é utilizado como o previsor de vetor de movimento v0 no ponto de contro- le do canto superior esquerdo do bloco atual. Da mesma forma, um vetor de movimento selecionado a partir dos vetores de movimento do bloco D e bloco E codificados, que são vizinhos do bloco atual, é utili- zado como o previsor de vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual. Adicionalmente, um vetor de movimento selecionado a partir dos vetores de movimento do bloco F e do bloco G codificados, que são vizinhos do bloco atual, é utilizado como o previsor de vetor de movimento v2 no ponto de controle do canto inferior esquerdo do bloco atual.
[00288] A figura 29 é um fluxograma ilustrando um exemplo de um intermodo afim.
[00289] No intermodo afim, como ilustrado, primeiro, o interprevisor 126 deriva os previsores de MV (v0, v1) ou (v0, v1, v2) dos respectivos dois ou três pontos de controle de um bloco atual (Etapa Sj_1). Os pontos de controle são um ponto de canto superior esquerdo do bloco atual e um ponto de canto superior direito do bloco atual, como ilustra- do na figura 25A, ou um ponto de canto superior esquerdo do bloco atual, um ponto de canto superior direito do bloco atual, e um ponto de canto inferior esquerdo do bloco atual, como ilustrado na figura 25B.
[00290] Em outras palavras, o interprevisor 126 deriva os previsores de vetor de movimento (v0, v1) ou (v0, v1, v2) dos respectivos dois ou três pontos de controle do bloco atual pela seleção de vetores de mo- vimento de qualquer um dos blocos dentre os blocos codificados nas proximidades dos pontos de controle respectivos do bloco atual ilus- trado na figura 28A ou na figura 28B. Nesse momento, o interprevisor 126 codifica, em uma sequência, a informação de seleção de previsor de vetor de movimento para identificar os dois vetores de movimento selecionados.
[00291] Por exemplo, o interprevisor 126 pode determinar, utilizan- do uma avaliação de custo ou similar, o bloco a partir do qual um vetor de movimento, como um previsor de vetor de movimento em um ponto de controle, é selecionado dentre os blocos codificados, vizinhos do bloco atual, e pode descrever, em uma sequência de bits, um indica- dor indicando que previsor de vetor de movimento foi selecionado.
[00292] A seguir, o interprevisor 126 realiza a estimativa de movi- mento (Etapa Sj_3 e Sj_4) enquanto atualiza um previsor de vetor de movimento selecionado ou derivado na Etapa Sj_1 (Etapa Sj_2). Em outras palavras, o interprevisor 126 calcula, como um MV afim, um ve- tor de movimento de cada um dos sub-blocos, que corresponde a um previsor de vetor de movimento atualizado, utilizando a expressão (1A) ou a expressão (1B) descritas acima (Etapa Sj_3). O interprevisor 126, então, realiza a compensação de movimento dos sub-blocos utilizando esses MVs afim e imagens de referência codificadas (Etapa Sj_4). Como resultado disso, por exemplo, o interprevisor 126 determina o previsor de vetor de movimento que resulta no menor custo como um vetor de movimento em um ponto de controle em um circuito de esti- mativa de movimento (Etapa Sj_5). Nesse momento, o interprevisor 126 codifica adicionalmente, na sequência, o valor de diferença entre o MV determinado e o previsor de vetor de movimento como uma dife- rença de MV.
[00293] Por fim, o interprevisor 126 gera uma imagem de previsão para o bloco atual pela realização da compensação de movimento do bloco atual utilizando o MV determinado e a imagem de referência co- dificada (Etapa Sj_6). Derivação de MV > Intermodo Afim
[00294] Quando os modos afim, nos quais números diferentes de pontos de controle (por exemplo, dois e três pontos de controle) são utilizados, podem ser comutados e sinalizados no nível de CU, o nú- mero de pontos de controle em um bloco codificado e o número de pontos de controle em um bloco atual podem ser diferentes um do ou- tro. A figura 30A e a figura 30B são diagramas conceituais para ilustrar os métodos para derivar os previsores de vetor de movimento nos pontos de controle, quando o número de pontos de controle em um bloco codificado e o número de pontos de controle em um bloco atual são diferentes um do outro.
[00295] Por exemplo, como ilustrado na figura 30A, quando um blo- co atual possui três pontos de controle no canto superior esquerdo, no canto superior direito e no canto inferior esquerdo, e o bloco A, que é vizinho pelo lado esquerdo do bloco atual, foram codificados de acordo com um modo afim, no qual dois pontos de controle são utilizados, os vetores de movimento v3 e v4, projetados na posição de canto superior esquerdo e posição de canto superior direito no bloco codificado, inclu- indo o bloco A, são derivados. O previsor de vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual e o previ- sor de vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual são, então, calculados a partir dos vetores de movimento derivados v3 e v4. Adicionalmente, o previsor de vetor de movimento v2 no ponto de controle do canto inferior esquerdo é calcu- lado a partir dos vetores de movimento derivado v0 e v1.
[00296] Por exemplo, como ilustrado na figura 30B, quando um blo- co atual possui dois pontos de controle no canto superior esquerdo e no canto superior direito, e o bloco A, que é vizinho pelo lado esquerdo do bloco atual, foi codificado, de acordo com o modo afim, no qual três pontos de controle são utilizados, os vetores de movimento v3, v4 e v5 projetados na posição do canto superior esquerdo, na posição do can- to superior direito e na posição do canto inferior esquerdo no bloco co- dificado, incluindo o bloco A, são derivados. O previsor de vetor de movimento v0 no ponto de controle do canto superior esquerdo do blo- co atual, e o previsor de vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual são, então, calculados a partir dos vetores de movimento derivados v3, v4 e v5.
[00297] Deve-se notar que esse método de derivação de previsores de vetor de movimento pode ser utilizado para derivar os previsores de vetor de movimento dos pontos de controle respectivos do bloco atual na Etapa Sj_1 na figura 29. Derivação de MV > DMVR
[00298] A figura 31A é um fluxograma ilustrando uma relação entre o modo de mistura e DMVR.
[00299] O interprevisor 126 deriva um vetor de movimento de um bloco atual de acordo com o modo de mistura (Etapa Sl_1). A seguir, o interprevisor 126 determina se realiza a estimativa de um vetor de mo- vimento, isso é, a estimativa de movimento (Etapa Sl_2). Aqui, quando da determinação da não realização da estimativa de movimento (Não na Etapa Sl_2), o interprevisor 126 determina o vetor de movimento derivado na Etapa Sl_1 como o vetor de movimento final para o bloco atual (Etapa Sl_4). Em outras palavras, nesse caso, o vetor de movi- mento do bloco atual é determinado de acordo com o modo de mistu- ra.
[00300] Quando da determinação da realização da estimativa de movimento na Etapa Sl_1 (Sim na Etapa Sl_2), o interprevisor 126 de- riva o vetor de movimento final para o bloco atual pela estimativa de uma região circundante da imagem de referência especificada pelo vetor de movimento derivado na Etapa Sl_1 (Etapa Sl_3). Em outras palavras, nesse caso, o vetor de movimento do bloco atual é determi- nado de acordo com DMVR.
[00301] A figura 31B é um diagrama conceitual para ilustrar um exemplo de um processo DMVR para determinação de um MV.
[00302] Primeiro, (por exemplo, no modo de mistura), o melhor MVP, que foi configurado para o bloco atual, é determinado como sen- do um candidato a MV. Um pixel de referência é identificado a partir de uma primeira imagem de referência (L0) que é uma imagem codificada na direção LO de acordo com um candidato a MV (LO). Da mesma forma, um pixel de referência é identificado a partir de uma segunda imagem de referência (L1) que é uma imagem codificada na direção L1, de acordo com um candidato a MV (L1). Um gabarito é gerado pe- lo cálculo de uma média desses pixels de referência.
[00303] A seguir, cada uma das regiões circundantes dos candida- tos a MV da primeira imagem de referência (L0) e da segunda imagem de referência (L1) é estimada, e o MV que resulta no menor custo é determinado como sendo o MV final. Deve-se notar que o valor de custo pode ser calculado, por exemplo, utilizando-se um valor de dife- rença entre cada um dos valores de pixel no gabarito e um valor cor- respondente dentre os valores de pixel na região de estimativa, os va- lores de candidatos a MV, etc.
[00304] Deve-se notar que os processos, configurações e opera- ções descritos acima são tipicamente e basicamente comuns entre o codificador e um decodificador a ser descrito posteriormente.
[00305] Exatamente os mesmos processos ilustrativos descritos aqui nem sempre precisam ser realizados. Qualquer processo para permitir a derivação do MV final por estimativa nas regiões circundan- tes dos candidatos a MV pode ser utilizado.
Compensação de Movimento > BIO/OBMC
[00306] A compensação de movimento envolve um modo de gera- ção de uma imagem de previsão, e a correção da imagem de previsão. O modo é, por exemplo, BIO e OBMC a serem descritos posteriormen- te.
[00307] A figura 32 é um fluxograma ilustrando ume exemplo de geração de uma imagem de previsão.
[00308] O interprevisor 126 gera uma imagem de previsão (Etapa Sm_1), e corrige a imagem de previsão, por exemplo, de acordo com qualquer um dos modos descritos acima (Etapa Sm_2).
[00309] A figura 33 é um fluxograma ilustrando outro exemplo de geração de uma imagem de previsão.
[00310] O interprevisor 126 determina um vetor de movimento de um bloco atual (Etapa Sn_1). A seguir, o interprevisor 126 gera uma imagem de previsão (Etapa Sn_2), e determina se realiza um processo de correção (Etapa Sn_3). Aqui, quando da determinação da realiza- ção de um processo de correção (Sim na Etapa Sn_3), o interprevisor 126 gera a imagem de previsão final pela correção da imagem de pre- visão (Etapa Sn_4). Quando da determinação da não realização de um processo de correção (Não na Etapa Sn_3), o interprevisor 126 envia a imagem de previsão como a imagem de previsão final sem corrigir a imagem de previsão (Etapa Sn_5).
[00311] Adicionalmente, a compensação de movimento envolve um modo de correção de uma luminescência de uma imagem de previsão quando da geração da imagem de previsão. O modo é, por exemplo, LIC a ser descrito posteriormente.
[00312] A figura 34 é um fluxograma ilustrando outro exemplo de geração de uma imagem de previsão.
[00313] O interprevisor 126 deriva um vetor de movimento de um bloco atual (Etapa So_1). A seguir, o interprevisor 126 determina se realiza um processo de correção de luminescência (Etapa So_2). Aqui, quando da determinação da realização de um processo de correção de luminescência (Sim na Etapa So_2), o interprevisor 126 gera a imagem de previsão enquanto realiza um processo de correção de lu- minescência (Etapa So_3). Em outras palavras, a imagem de previsão é gerada utilizando-se LIC. Quando da determinação da não realiza- ção de um processo de correção de luminescência (Não na Etapa So_2), o interprevisor 126 gera uma imagem de previsão pela realiza- ção da compensação de movimento normal sem realizar um processo de correção de luminescência (Etapa So_4). Compensação de Movimento > OBMC
[00314] Deve-se notar que um sinal de interprevisão pode ser gera- do utilizando-se a informação de movimento para um bloco vizinho em adição à informação de movimento para o bloco atual obtida a partir da estimativa de movimento. Mais especificamente, o sinal de interprevi- são pode ser gerado em unidades de um sub-bloco no bloco atual pela realização de uma adição ponderada de um sinal de previsão com ba- se na informação de movimento obtida a partir da estimativa de movi- mento (na imagem de referência) e um sinal de previsão com base na informação de movimento para um bloco vizinho (na imagem atual). Tal interprevisão (compensação de movimento) também é referida como compensação de movimento de bloco sobreposto (OBMC).
[00315] No modo OBMC, a informação indicando um tamanho de sub-bloco para OBMC (referido como, por exemplo, um tamanho de bloco OBMC) pode ser sinalizada no nível de sequência. Ademais, a informação indicando se aplica o modo OBMC (referido como, por exemplo, um indicador OBMC) pode ser sinalizada no nível de CU. Deve-se notar que a sinalização de tal informação não precisa, neces- sariamente, ser realizada no nível de sequência e nível de CU, e pode ser realizada em outro nível (por exemplo, no nível de imagem, nível de fatia, nível de “tile”, nível de CTU ou nível de sub-bloco).
[00316] Exemplos do modo OBMC serão descritos em maiores de- talhes. As figuras 35 e 36 são um fluxograma e um diagrama conceitu- al para ilustrar uma linha geral de um processo de correção de ima- gem de previsão realizado por um processo OBMC.
[00317] Primeiro, como ilustrado na figura 36, uma imagem de pre- visão (Pred) é obtida através da compensação de movimento normal utilizando um vetor de movimento (MV) designado para o bloco alvo de processamento (atual). Na figura 36, a seta "MV" aponta para uma imagem de referência, e indica a que o bloco atual da imagem atual se refere a fim de obter uma imagem de previsão.
[00318] A seguir, uma imagem de previsão (Pred_L) é obtida pela aplicação de um vetor de movimento (MV_L), que já foi derivado para o bloco codificado vizinho pelo lado esquerdo do bloco atual, ao bloco atual (reutilizando o vetor de movimento para o bloco atual). O vetor de movimento (MV_L) é indicado por uma seta "MV_L" indicando uma imagem de referência a partir de um bloco atual. Uma primeira corre- ção de uma imagem de previsão é realizada pela sobreposição de du- as imagens de previsão Pred e Pred_L. Isso fornece um efeito de mis- tura do limite entre os blocos vizinhos.
[00319] Da mesma forma, uma imagem de previsão (Pred_U) é ob- tida pela aplicação de um vetor de movimento (MV_U), que já foi deri- vada para o bloco codificado vizinho por cima do bloco atual, ao bloco atual (reutilizando o vetor de movimento para o bloco atual). O vetor de movimento (MV_U) é indicado por uma seta "MV_U", indicando uma imagem de referência a partir de um bloco atual. Uma segunda corre- ção de uma imagem de previsão é realizada pela sobreposição da imagem de previsão Pred_U às imagens de previsão (por exemplo, Pred e Pred_L), onde a primeira correção foi realizada. Isso fornece um efeito de mistura do limite entre os blocos vizinhos. A imagem de previsão obtida pela segunda correção é uma dentre o limite entre os blocos vizinhos foi misturado (suavizado), e, dessa forma, é a imagem de previsão final do bloco atual.
[00320] Apesar de o exemplo acima ser um método de correção de dois percursos utilizando os blocos vizinhos da esquerda e de cima, deve-se notar que o método de correção pode ser o método de corre- ção de três ou mais percursos utilizando também o bloco vizinho do lado direito e/ou o bloco vizinho inferior.
[00321] Deve-se notar que a região na qual tal sobreposição é rea- lizada pode ser apenas parte de uma região perto de um limite de blo- co em vez da região de pixel de todo o bloco.
[00322] Deve-se notar que o processo de correção de imagem de previsão, de acordo com OBMC, para obtenção de uma imagem de previsão Pred a partir de uma imagem de referência, pela sobreposi- ção da imagem de previsão adicional Pred_L e Pred_U, foi descrito acima. No entanto, quando uma imagem de previsão é corrigida com base em uma pluralidade de imagens de referência, um processo simi- lar pode ser aplicado a cada uma dentre a pluralidade de imagens de referência. Em tal caso, depois de as imagens de previsão corrigidas serem obtidas a partir das imagens de referência respectivas, pela rea- lização da correção de imagem OBMC, com base na pluralidade de imagens de referência, as imagens de previsão corrigidas obtidas são adicionalmente sobrepostas para obter a imagem de previsão final.
[00323] Deve notar que, no OBMC, a unidade de um bloco atual pode ser a unidade de um bloco de previsão ou a unidade de um sub- bloco obtida pela divisão adicional do bloco de previsão.
[00324] Um exemplo de um método de determinação de se aplica um processo OBMC, ou não, é um método para utilizar um obmc_flag, que é um sinal que indica se aplica um processo OBMC, ou não. Co- mo um exemplo específico, um codificador determina se o bloco atual pertence a uma região possuindo movimento complicado. O codifica- dor configura obmc_flag para um valor igual a "1", quando o bloco per- tence a uma região possuindo movimento complicado e aplica um pro- cesso OBMC quando da codificação, e configura obmc_flag para um valor igual a "0" quando o bloco não pertence a uma região possuindo movimento complicado, e codifica o bloco sem aplicação de um pro- cesso OBMC. O decodificador comuta entre a aplicação e não aplica- ção de um processo OBMC pela decodificação de obmc_flag escrito na sequência (por exemplo, uma sequência comprimida), e decodifica o bloco pela comutação entre a aplicação e não aplicação do processo OBMC de acordo com o valor de indicador.
[00325] O interprevisor 126 gera uma imagem de previsão retangu- lar para um bloco atual retangular no exemplo acima. No entanto, o interprevisor 126 pode gerar uma pluralidade de imagens de previsão, cada uma possuindo um formato diferente de um retângulo para o blo- co atual retangular, e pode combinar a pluralidade de imagens de pre- visão para gerar a imagem de previsão retangular final. O formato dife- rente de um retângulo pode ser, por exemplo, um triângulo.
[00326] A figura 37 é um diagrama conceitual para ilustrar a gera- ção de duas imagens de previsão triangulares.
[00327] O interprevisor 126 gera uma imagem de previsão triangu- lar pela realização da compensação de movimento de uma primeira partição, possuindo um formato triangular em um bloco atual, pela uti- lização de um primeiro MV da primeira partição, para gerar uma ima- gem de previsão triangular. Da mesma forma, a interprevisão 126 gera uma imagem de previsão triangular pela realização da compensação de movimento de uma segunda partição, possuindo um formato trian- gular em um bloco atual, pela utilização de um segundo MV da segun- da partição, para gerar uma imagem de previsão triangular. O interpre- visor 126, então, gera uma imagem de previsão, possuindo o mesmo formato retangular que o formato retangular do bloco atual, pela com- binação dessas imagens de previsão.
[00328] É notado que, apesar de a primeira partição e a segunda partição serem triangulares no exemplo ilustrado na figura 37, a pri- meira partição e a segunda partição podem ser trapezoides, ou outros formatos diferentes um do outro. Adicionalmente, apesar de o bloco atual incluir duas partições no exemplo ilustrado na figura 37, o bloco atual pode incluir três ou mais partições.
[00329] Adicionalmente, a primeira partição e a segunda partição podem se sobrepor uma à outra. Em outras palavras, a primeira parti- ção e a segunda partição podem incluir a mesma região de pixel. Nes- se caso, uma imagem de previsão para um bloco atual pode ser gera- da utilizando-se uma imagem de previsão na primeira partição e uma imagem de previsão na segunda partição.
[00330] Adicionalmente, apesar de um exemplo, no qual uma ima- gem de previsão é gerada para cada uma das duas partições utilizan- do a interprevisão, uma imagem de previsão pode ser gerada para pe- lo menos uma partição utilizando a intraprevisão. Compensação de Movimento > BIO
[00331] A seguir, um método de derivação de um vetor de movi- mento é descrito. Primeiro, um modo de derivação de um vetor de mo- vimento, com base em um modelo que assume o movimento linear uniforme, será descrito. Esse modo também é referido como um modo de fluxo ótico bidirecional (BIO).
[00332] A figura 38 é um diagrama conceitual para ilustrar um mo- delo assumindo um movimento linear uniforme. Na figura 38, (vx, vy) indica um vetor de velocidade e 0 e 1 indicam as distâncias tempo- rais entre uma imagem atual (Cur Pic) e duas imagens de referência (Ref0, Ref1). (MVx0, MVy0) indicam os vetores de movimento corres- pondentes à imagem de referência Ref0, e (MVx1, MVy1) indicam os vetores de movimento correspondentes à imagem de referência Ref1.
[00333] Aqui, considerando-se o movimento linear uniforme exibido pelos vetores de velocidade (vx, vy), (MVx0, MVy0) e (MVx1, MVy1) são representados como (vx0, vy0) e (-vx1, -vy1), respectivamente, e a seguinte equação de fluxo ótico (2) pode ser empregada. Matemática 3 I(k)/t + xI(k)/x + yI(k)/y = 0 (2)
[00334] Aqui, I(k) indica um valor de luminescência de movimento compensado da imagem de referência k (k = 0, 1). Essa equação de fluxo ótico ilustra que a soma de (i) derivação de tempo do valor de luminescência, (ii) produto da velocidade horizontal e do componente horizontal do gradiente espacial de uma imagem de referência e (iii) 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 a partir de, por exemplo, uma lista de mistura, pode ser corrigido em unidades de um pixel, com base em uma combinação da equação de fluxo ótico e interpolação Hermite.
[00335] Deve-se notar que um vetor de movimento pode ser deriva- do no lado do decodificador utilizando-se um método além da deriva- ção de um vetor de movimento, com base em um modelo que assume o movimento linear uniforme. Por exemplo, um vetor de movimento pode ser derivado em unidades de um sub-bloco com base nos veto- res de movimento dos blocos vizinhos. Compensação de Movimento > LIC
[00336] A seguir, um exemplo de um modo no qual uma imagem de previsão (prediction) é gerada pela utilização de um processo de com- pensação de iluminação local (LIC) será descrito.
[00337] A figura 39 é um diagrama conceitual para ilustrar um exemplo de um método de geração de imagem de previsão utilizando um processo de correção de luminescência realizado por um processo
LIC.
[00338] Primeiro, um MV é derivado de uma imagem de referência codificada, e uma imagem de referência correspondente ao bloco atual é obtida.
[00339] A seguir, a informação indicando como o valor de lumines- cência mudou entre a imagem de referência e a imagem atual é extra- ída para o bloco atual. Essa extração é realizada com base nos valo- res de pixel de luminescência para a região de referência vizinha pelo lado esquerdo codificada (região de referência circundante) e a região de referência vizinha por cima codificada (região de referência circun- dante), e o valor de pixel de luminescência na posição correspondente na imagem de referência especificada pelo MV derivado. Um parâme- tro de correção de luminescência é calculado pela utilização da infor- mação que indica como o valor de luminescência mudou.
[00340] A imagem de previsão para o bloco atual é gerada pela rea- lização de um processo de correção de luminescência no qual o parâ- metro de correção de luminescência é aplicado à imagem de referên- cia na imagem de referência especificada pelo MV.
[00341] Deve-se notar que o formato da região de referência cir- cundante ilustrado na figura 39 é apenas um exemplo; a região de re- ferência circundante pode ter um formato diferente.
[00342] Ademais, apesar de o processo, no qual uma imagem de previsão é gerada a partir de uma imagem de referência singular, ter sido descrito aqui, casos nos quais uma imagem de previsão é gerada a partir de uma pluralidade de imagens de referência podem ser des- critos da mesma forma. A imagem de previsão pode ser gerada depois da realização de um processo de correção de luminescência das ima- gens de referência obtidas a partir das imagens de referência da mesma forma que a descrita acima.
[00343] Um exemplo de um método de determinação de se aplica um processo LIC, ou não, é um método para utilizar um lic_flag que é um sinal indicando se aplica o processo LIC, ou não. Como um exem- plo específico, o codificador determina se o bloco atual pertence a uma região possuindo uma mudança de luminescência. O codificador con- figura lic_flag para um valor igual a "1" quando o bloco pertence a uma região possuindo uma mudança de luminescência e aplica um proces- so LIC quando da decodificação, e configura lic_flag para um valor igual a "0" quando o bloco não pertence a uma região possuindo uma mudança de luminescência e codifica o bloco atual sem aplicar um processo LIC. O decodificador pode decodificar lic_flag escrito na se- quência e decodificar o bloco atual pela comutação entre a aplicação e a não aplicação de um processo LIC, de acordo com o valor do indica- dor.
[00344] Um exemplo de um método diferente de determinação de se aplica um processo LIC, ou não, é um método de determinação de acordo com o fato de se um processo LIC foi aplicado, ou não, a um bloco circundante. Em um exemplo específico, quando o modo de mis- tura é utilizado no bloco atual, se um processo LIC foi aplicado na co- dificação do bloco codificado circundante, selecionado depois da deri- vação do MV no processo de modo de mistura, é determinado. De acordo com o resultado, a codificação é realizada pela comutação en- tre a aplicação e a não aplicação de um processo LIC. Deve-se notar que, também nesse exemplo, os mesmos processos são aplicados aos processos no lado do decodificador.
[00345] Uma modalidade do processo de correção de luminescên- cia (LIC), descrita com referência à figura 39, é descrita em detalhes abaixo.
[00346] Primeiro, o interprevisor 126 deriva um vetor de movimento para obter uma imagem de referência que corresponde a um bloco atual a ser codificado a partir de uma imagem de referência que é uma imagem codificada.
[00347] A seguir, o interprevisor 126 extrai a informação indicando como o valor de luminescência da imagem de referência foi alterado para o valor de luminescência da imagem atual, utilizando o valor de pixel de luminescência de uma região de referência circundante codifi- cada, que é vizinha pelo lado esquerdo ou por cima do bloco atual, e o valor de luminescência na posição correspondente na imagem de refe- rência especificada por um vetor de movimento, e calcula um parâme- tro de correção de luminescência. Por exemplo, assume-se que o valor de pixel de luminescência de um determinado pixel na região de refe- rência circundante na imagem atual seja p0, e que o valor de pixel de luminescência do pixel correspondendo ao pixel determinado na região de referência circundante na imagem de referência seja p1. O inter- previsor 126 calcula os coeficientes A e B para otimizar A x p1 + B = p0 como o parâmetro de correção de luminescência para uma plurali- dade de pixels na região de referência circundante.
[00348] A seguir, o interprevisor 126 realiza um processo de corre- ção de luminescência utilizando o parâmetro de correção de lumines- cência para a imagem de referência na imagem de referência especifi- cada pelo vetor de movimento, para gerar uma imagem de previsão para o bloco atual. Por exemplo, assume-se que o valor de pixel de luminescência na imagem de referência seja p2, e que o valor de pixel de luminescência com luminescência corrigida da imagem de previsão seja p3. O interprevisor 126 gera a imagem de previsão depois de ser submetida ao processo de correção de luminescência pelo cálculo de A x p2 + B = p3 para cada um dos pixels na imagem de referência.
[00349] Deve-se notar que o formato da região de referência cir- cundante ilustrada na figura 39 é um exemplo; um formato diferente além do formato da região de referência circundante pode ser utiliza- do. Adicionalmente, parte da região de referência circundante ilustrada na figura 39 pode ser utilizada. Por exemplo, uma região possuindo um número determinado de pixels extraídos de cada um dentre um pixel vizinho superior e um pixel vizinho esquerdo pode ser utilizado como uma região de referência circundante. O número determinado de pixels pode ser predeterminado.
[00350] Adicionalmente, a região de referência circundante não está limitada a uma região que é vizinha do bloco atual, e pode ser uma região que não é vizinha do bloco atual. No exemplo ilustrado na figura 39, a região de referência circundante na imagem de referência é uma região especificada por um vetor de movimento em uma imagem atual, a partir de uma região de referência circundante na imagem atual. No entanto, uma região especificada por outro vetor de movimento tam- bém é possível. Por exemplo, o outro vetor de movimento pode ser um vetor de movimento em uma região de referência circundante na ima- gem atual.
[00351] Apesar de operações realizadas pelo codificador 100 terem sido descritas aqui, deve-se notar que o decodificador 200 realiza, tipi- camente, operações similares.
[00352] Deve-se notar que o processo LIC pode ser aplicado não apenas à luminescência, mas também à crominância. Nesse momen- to, um parâmetro de correção pode ser derivado individualmente para cada um dentre Y, Cb e Cr, ou um parâmetro de correção comum po- de ser utilizado para qualquer um dentre Y, Cb e Cr.
[00353] Adicionalmente, o processo LIC pode ser aplicado a unida- des de um sub-bloco. Por exemplo, um parâmetro de correção pode ser derivado utilizando-se uma região de referência circundante em um sub-bloco atual e uma região de referência circundante em um sub- bloco de referência em uma imagem de referência especificada por um MV do sub-bloco atual. Controlador de Previsão
[00354] O interprevisor 128 seleciona um dentre um sinal de intra- previsão (um sinal enviado a partir do intraprevisor 124) e um sinal de interprevisão (um sinal enviado a partir do interprevisor 126), e envia o sinal selecionado para o subtraidor 104 e somador 116 como um sinal de previsão.
[00355] Como ilustrado na figura 1, em vários tipos de exemplos de codificador, o controlador de previsão 128 pode enviar um parâmetro de previsão que é registrado no codificador por entropia 110. O codifi- cador por entropia 110 pode gerar uma sequência de bits codificados (ou uma sequência), com base no parâmetro de previsão que é regis- trado a partir do controlador de previsão 128 e coeficientes quantiza- dos que são registrados a partir do quantizador 108. O parâmetro de previsão pode ser utilizado em um decodificador. O decodificador pode receber e decodificar a sequência de bits codificados, e realizar os mesmos processos que os processos de previsão realizados pelo in- traprevisor 124, interprevisor 126 e controlador de previsão 128. O pa- râmetro de previsão pode incluir (i) um sinal de previsão de seleção (por exemplo, um vetor de movimento, um tipo de previsão, ou um modo de previsão utilizado pelo intraprevisor 124 ou interprevisor 126) ou (ii) um índice opcional, um indicador, ou um valor que seja baseado em um processo de previsão realizado em cada um dentre o intrapre- visor 124, interprevisor 126, e controlador de previsão 128, ou que in- dique o processo de previsão. Exemplo de Montagem do Codificador
[00356] A figura 40 é um diagrama em bloco ilustrando um exemplo de montagem do codificador 100. O codificador 100 inclui o processa- dor a1 e a memória a2. Por exemplo, a pluralidade de elementos cons- tituintes do codificador 100 ilustrado na figura 1 são montados no pro- cessador a1 e na memória a2, ilustrados na figura 40.
[00357] O processador a1 é um conjunto de circuitos que realiza o processamento de informação e é acessível à memória a2. Por exem- plo, o processador a1 é um conjunto de circuitos eletrônicos dedicado ou geral que codifica um vídeo. O processador a1 pode ser um pro- cessador, tal como uma CPU. Adicionalmente, o processador a1 pode ser um agregado de uma pluralidade de circuitos eletrônicos. Adicio- nalmente, por exemplo, o processador a1 pode assumir os papeis de dois ou mais elementos constituintes a partir da pluralidade de elemen- tos constituintes do codificador 100 ilustrado na figura 1, etc.
[00358] A memória a2 é uma memória dedicada ou geral para ar- mazenar a informação que é utilizada pelo processador a1 para codifi- car um vídeo. A memória a2 pode ser um conjunto de circuitos eletrô- nicos, e pode ser conectada ao processador a1. Adicionalmente, a memória a2 pode ser incluída no processador a1. Adicionalmente, a memória a2 pode ser um agregado de uma pluralidade de circuitos eletrônicos. Adicionalmente, a memória a2 pode ser um disco magné- tico, um disco ótico, ou similares, ou pode ser representada como um armazenador, um meio de gravação, ou similares. Adicionalmente, a memória a2 pode ser memória não volátil ou memória volátil.
[00359] Por exemplo, a memória a2 pode armazenar um vídeo a ser codificado ou uma sequência de bits correspondente a um vídeo codificado. Adicionalmente, a memória a2 pode armazenar um pro- grama para fazer com que o processador a1 codifique um vídeo.
[00360] Adicionalmente, por exemplo, a memória a2 pode assumir os papeis de dois ou mais elementos constituintes para o armazena- mento da informação a partir da pluralidade de elementos constituintes do codificador 100 ilustrado na figura 1, etc. Por exemplo, a memória a2 pode assumir os papeis da memória de bloco 118 e memória de quadro 122 ilustrados na figura 1. Mais especificamente, a memória a2 pode armazenar um bloco reconstruído, uma imagem reconstruída, etc.
[00361] Deve-se notar que, no codificador 100, todos dentre a plu- ralidade de elementos constituintes indicados na figura 1, etc. podem não ser implementados, e todo os processos descritos acima podem não ser realizados. Parte dos elementos constituintes indicados na fi- gura 1, etc. podem ser incluídos em outro dispositivo, ou parte dos processos descritos acima podem ser realizados por outros dispositi- vo. Decodificador
[00362] A seguir, um decodificador capaz de decodificar um sinal codificado (sequência de bits codificada) enviado, por exemplo, a partir do codificador 100 descrito acima, será descrito. A figura 41 é um dia- grama em bloco ilustrando uma configuração funcional do decodifica- dor 200 de acordo com uma modalidade. O decodificador 200 é um decodificador de vídeo que decodifica um vídeo em unidades de um bloco.
[00363] Como ilustrado na figura 41, o decodificador 200 inclui o decodificador por entropia 202, o quantizador inverso 204, o transfor- mador inverso 206, o somador 208, a memória de bloco 210, o filtro de circuito 212, a memória de quadro 214, o intraprevisor 216, o interpre- visor 218, e o controlador de previsão 220.
[00364] O decodificador 200 é implementado como, por exemplo, um processador genérico e memória. Nesse caso, quando um pro- grama de software armazenado na memória é executado pelo proces- sador, o processador funciona como o decodificador por entropia 202, o quantizador inverso 204, o transformador inverso 206, o somador 208, o filtro de circuito 212, o intraprevisor 216, o interprevisor 218 e o controlador de previsão 220. Alternativamente, o decodificador 200 pode ser implementado como um ou mais circuitos eletrônicos dedica- dos correspondendo ao decodificador por entropia 202, ao quantizador inverso 204, ao transformador inverso 206, ao somador 208, ao filtro de circuito 212, ao intraprevisor 216, ao interprevisor 218 e ao contro- lador de previsão 220.
[00365] Doravante, um fluxo geral dos processos realizados pelo decodificador 200 é descrito, e, então, cada um dos elementos consti- tuintes incluídos no decodificador 200 será descrito. Fluxo Geral do Processo de Decodificação
[00366] A figura 42 é um fluxograma ilustrando um exemplo de um processo de decodificação geral realizado pelo decodificador 200.
[00367] Primeiro, o decodificador por entropia 202, do decodificador 200, identifica um padrão de divisão de um bloco possuindo um tama- nho fixo (por exemplo, de 128 x 128 pixels) (Etapa Sp_1). Esse padrão de divisão é um padrão de divisão selecionado pelo codificador 100. O decodificador 200, então, realiza os processos da Etapa Sp_2 a Sp_6 para cada um dentre uma pluralidade de blocos do padrão de divisão.
[00368] Em outras palavras, o decodificador por entropia 202 deco- difica (especificamente, decodifica por entropia) os coeficientes quanti- zados codificados e um parâmetro de previsão de um bloco atual a ser decodificado (também referido como um bloco atual) (Etapa Sp_2).
[00369] A seguir, o quantizador inverso 204 realiza a quantização inversa dentre a pluralidade de coeficientes quantizados e o transfor- mador inverso 206 realiza a transformação inversa do resultado, para restaurar uma pluralidade de residuais de previsão (isso é, um bloco de diferença) (Etapa Sp_3).
[00370] A seguir, o processador de previsão, incluindo todos ou par- te do intraprevisor 216, do interprevisor 218, e do controlador de previ- são 220 gera um sinal de previsão (também referido como um bloco de previsão) do bloco atual (Etapa Sp_4).
[00371] A seguir, o somador 208 adiciona o bloco de previsão ao bloco de diferença para gerar uma imagem reconstruída (também refe- rida como um bloco de imagem decodificado) do bloco atual (Etapa
Sp_5).
[00372] Quando a imagem reconstruída é gerada, o filtro de circuito 212 realiza a filtragem da imagem reconstruída (Etapa Sp_6).
[00373] O decodificador 200, então, determina se a decodificação de toda a imagem foi terminada (Etapa Sp_7). Quando da determina- ção de que a decodificação ainda não foi terminada (Não na Etapa Sp_7), o decodificador 200 executa repetidamente os processos co- meçando com a Etapa Sp_1.
[00374] Como ilustrado, os processos das Etapas Sp_1 a Sp_7 são realizados sequencialmente pelo decodificador 200. Alternativamente, dois ou mais dos processos podem ser realizados em paralelo, a or- dem de processamento de dois ou mais dos processos pode ser modi- ficada, etc. Decodificador por Entropia
[00375] O decodificador por entropia 202 decodifica por entropia uma sequência de bits codificada. Mais especificamente, por exemplo, o decodificador por entropia 202 decodifica aritmeticamente uma se- quência de bits codificada em um sinal binário. O decodificador por entropia 202, então, desbinariza o sinal binário. Com isso, o decodifi- cador por entropia 202 envia os coeficientes quantizados de cada blo- co para o quantizador inverso 204. O decodificador por entropia 202 pode enviar um parâmetro de previsão incluído em uma sequência de bits codificada (ver figura 1) para o intraprevisor 216, o interprevisor 218 e o controlador de previsão 220. O intraprevisor 216, o interprevi- sor 218, e o controlador de previsão 220 em uma modalidade podem executar os mesmos processos de previsão que os realizados pelo intraprevisor 124, o interprevisor 126 e o controlador de previsão 128 no lado do codificador. Quantizador Inverso
[00376] O quantizador inverso 204 quantiza de forma inversa os coeficientes quantizados de um bloco a ser decodificado (doravante referido como um bloco atual) que são registrados a partir do decodifi- cador por entropia 202. Mais especificamente, o quantizador inverso 204 quantiza de forma inversa os coeficientes quantizados do bloco atual, com base nos parâmetros de quantização correspondentes aos coeficientes quantizados. O quantizador inverso 204, então, envia os coeficientes de transformação quantizados de forma inversa do bloco atual para o transformador inverso 206. Transformador Inverso
[00377] O transformador inverso 206 restaura os erros de previsão pela transformação inversa dos coeficientes de transformação que são registrados a partir do quantizador inverso 204.
[00378] Por exemplo, quando a informação analisada a partir de uma sequência de bits codificados indicar que EMT ou AMT deve ser aplicada (por exemplo, quando um indicador AMT for verdadeiro), o transformador inverso 206 transforma de forma inversa os coeficientes de transformação do bloco atual com base na informação, indicando o tipo de transformação analisada.
[00379] Ademais, por exemplo, quando a informação analisada a partir de uma sequência de bits codificada indicar que NSST deve ser aplicada, o transformador inverso 206 aplica uma transformação inver- sa secundária aos coeficientes de transformação. Somador
[00380] O somador 208 reconstrói o bloco atual pela adição de er- ros de previsão que são registrados a partir do transformador inverso 206 e amostras de previsão que são registradas a partir do controlador de previsão 220. O somador 208, então, envia o bloco reconstruído para a memória de bloco 210 e o filtro de circuito 212. Memória de Bloco
[00381] A memória de bloco 210 é o armazenador para armazenar os blocos em uma imagem a ser codificada (doravante referida como uma imagem atual) e a ser referida na intraprevisão. Mais especifica- mente, a memória de bloco 210 armazena os blocos reconstruídos en- viados a partir do somador 208. Filtro de Circuito
[00382] O filtro de circuito 212 aplica um filtro de circuito aos blocos reconstruídos pelo somador 208, e envia os blocos reconstruídos fil- trados para a memória de quadro 214, o dispositivo de exibição, etc.
[00383] Quando a informação que indica o LIGAR ou DESLIGAR de um ALF analisado a partir de uma sequência de bits codificados indi- car que um ALF está LIGADO, um filtro, dentre uma pluralidade de fil- tros, é selecionado com base na direção e atividade dos gradientes locais, e o filtro selecionado é aplicado ao bloco reconstruído. Memória de Quadro
[00384] A memória de quadro 214 é, por exemplo, o armazenador para armazenar imagens de referência para uso na interprevisão, e também é referido como um armazenador de quadro. Mais especifi- camente, a memória de quadro 214 armazena um bloco reconstruído filtrado pelo filtro de circuito 212. Processador de Previsão (Intraprevisor, Interprevisor, Controlador de Previsão)
[00385] A figura 43 é um fluxograma ilustrando um exemplo de um processo realizado por um processador de previsão do decodificador
200. É notado que o processador de previsão inclui todos ou parte dos elementos constituintes a seguir: intraprevisor 216; interprevisor 218 e controlador de previsão 220.
[00386] O processador de previsão gera uma imagem de previsão de um bloco atual (Etapa Sq_1). Essa imagem de previsão também é referida como um sinal de previsão ou um bloco de previsão. Deve-se notar que o sinal de previsão é, por exemplo, um sinal de intraprevisão ou um sinal de interprevisão. Especificamente, o processador de pre- visão gera a imagem de previsão do bloco atual utilizando uma ima- gem reconstruída que já foi obtida através da geração de um bloco de previsão, geração de um bloco de diferença, geração de um bloco de coeficiente, restauração de um bloco de diferença e geração de um bloco de imagem decodificada.
[00387] A imagem reconstruída pode ser, por exemplo, uma ima- gem em uma imagem de referência, ou uma imagem de um bloco de- codificado em uma imagem atual que é a imagem que inclui o bloco atual. O bloco decodificado na imagem atual é, por exemplo, um bloco vizinho ao bloco atual.
[00388] A figura 44 é um fluxograma ilustrando outro exemplo de um processo realizado pelo processador de previsão do decodificador
200.
[00389] O processador de previsão determina um método ou um modo de geração de uma imagem de previsão (Etapa Sr_1). Por exemplo, o método ou modo pode ser determinado com base, por exemplo, em um parâmetro de previsão, etc.
[00390] Quando da determinação de um primeiro método como um modo de geração de uma imagem de previsão, o processador de pre- visão gera uma imagem de previsão de acordo com o primeiro método (Etapa Sr_2a). Quando da determinação de um segundo método como um modo de geração de uma imagem de previsão, o processador de previsão gera uma imagem de previsão de acordo com o segundo mé- todo (Etapa Sr_2b). Quando da determinação de um terceiro método como um modo de geração de uma imagem de previsão, o processa- dor de previsão gera uma imagem de previsão de acordo com o tercei- ro método (Etapa Sr_2c).
[00391] O primeiro método, o segundo método, e o terceiro método podem ser métodos mutuamente diferentes para gerar uma imagem de previsão. Cada um dos primeiro ao terceiro métodos pode ser um método de interprevisão, um método de intraprevisão, ou outro método de previsão. A imagem reconstruída descrita acima pode ser utilizada nesses métodos de previsão. Intraprevisor
[00392] O intraprevisor 216 gera um sinal de previsão (sinal de in- traprevisão) pela realização da intraprevisão por referência a um bloco ou blocos na imagem atual armazenada na memória de bloco 210, com base no modo de intraprevisão analisado a partir da sequência de bits codificada. Mais especificamente, o intraprevisor 216 gera um si- nal de intraprevisão pela realização da intraprevisão por referência às amostras (por exemplo, valores de luminescência e/ou crominância) de um bloco ou blocos vizinhos ao bloco atual, e, então, envia o sinal de intraprevisão para o controlador de previsão 220.
[00393] Deve-se notar que quando um modo de intraprevisão, no qual um bloco de luminescência é referido na intraprevisão de um blo- co de crominância, é selecionado, o intraprevisor 216 pode prever o componente de crominância do bloco atual com base no componente de luminescência do bloco atual.
[00394] Ademais, quando a informação analisada a partir de uma sequência de bits codificada indicar que PDPC deve ser aplicado, o intraprevisor 216 corrige os valores de pixel intraprevistos com base nos gradientes de pixel horizontal/vertical. Interprevisor
[00395] O interprevisor 218 prevê o bloco atual por referência a uma imagem de referência armazenada na memória de quadro 214. O interprevisor é realizado em unidades de um bloco atual ou um sub- bloco (por exemplo, um bloco de 4 x 4) no bloco atual. Por exemplo, o interprevisor 218 gera um sinal de interprevisão do bloco atual ou do sub-bloco pela realização da compensação de movimento pela utiliza-
ção da informação de movimento (por exemplo, um vetor de movimen- to) analisada a partir de uma sequência de bits codificada (por exem- plo, um parâmetro de previsão enviado a partir do decodificador por entropia 202), e envia o sinal de interprevisão para o controlador de previsão 220.
[00396] Deve-se notar que quando a informação analisada a partir da sequência de bits codificada indicar que o modo OBMC deve ser aplicado, o interprevisor 218 gera o sinal de interprevisão utilizando a informação de movimento de um bloco vizinho em adição à informação de movimento do bloco atual obtida a partir da estimativa de movimen- to.
[00397] Ademais, quando a informação analisada a partir da se- quência de bits codificados indicar que o modo FRUC deve ser aplica- do, o interprevisor 218 deriva a informação de movimento pela realiza- ção da estimativa de movimento de acordo com o método de combi- nação de padrão (combinação bilateral ou combinação de gabarito) analisado a partir da sequência de bits codificados. O interprevisor 218, então, realiza a compensação de movimento (previsão) utilizando a informação de movimento derivada.
[00398] Ademais, quando o modo BIO deve ser aplicado, o inter- previsor 218 deriva um vetor de movimento com base em um modelo assumindo-se o movimento linear uniforme. Ademais, quando a infor- mação analisada a partir da sequência de bits codificados indicar que o modo de previsão de compensação de modo afim deve ser aplicado, o interprevisor 218 deriva um vetor de movimento de cada sub-bloco com base nos vetores de movimento dos blocos vizinhos. Derivação de MV > Intermodo Normal
[00399] Quando a informação analisada a partir de uma sequência de bits codificados indicar que o intermodo normal deve ser aplicado, o interprevisor 218 deriva um MV com base na informação analisada a partir da sequência de bits codificados e realiza a compensação de movimento (previsão) utilizando o MV.
[00400] A figura 45 é um fluxograma ilustrando um exemplo da in- terprevisão no intermodo normal no decodificador 200.
[00401] O interprevisor 218 do decodificador 200 realiza a compen- sação de movimento para cada bloco. O interprevisor 218 obtém uma pluralidade de candidatos a MV para um bloco atual com base na in- formação, tal como MVs de uma pluralidade de blocos decodificados, temporalmente ou espacialmente circundantes do bloco atual (Etapa Ss_1). Em outras palavras, o interprevisor 218 gera uma lista de can- didatos a MV.
[00402] A seguir, o interprevisor 218 extrai N (um inteiro igual a 2 ou mais) candidatos a MV da pluralidade de candidatos a MV obtidos na Etapa Ss_1, como os candidatos a previsor de vetor de movimento (também referidos como candidatos a previsor de MV), de acordo com uma ordem de prioridade predeterminada (Etapa Ss_2). Deve-se notar que a ordem de prioridade pode ser determinada antecipadamente pa- ra cada um dos N candidatos a previsor de MV.
[00403] A seguir, o interprevisor 218 decodifica a informação de se- leção de previsor de vetor de movimento a partir de uma sequência de entrada (isso é, uma sequência de bits codificados) e seleciona um candidato a previsor de MV a partir dos N candidatos a previsor de MV utilizando a informação de seleção de previsor de vetor de movimento decodificada, como um vetor de movimento (também referido como um previsor de MV) do bloco atual (Etapa Ss_3).
[00404] A seguir, o interprevisor 218 decodifica uma diferença de MV a partir da sequência de entrada, e deriva um MV para um bloco atual pela adição de um valor de diferença que é a diferença de MV decodificada e um previsor de vetor de movimento selecionado (Etapa Ss_4).
[00405] Por fim, o interprevisor 218 gera uma imagem de previsão para o bloco atual pela realização da compensação de movimento do bloco atual utilizando o MV derivado e a imagem de referência decodi- ficada (Etapa Ss_5). Controlador de Previsão
[00406] O controlador de previsão 220 seleciona o sinal de intrapre- visão ou o sinal de interprevisão, e envia o sinal de previsão selecio- nado para o somador 208. Como um todo, as configurações, funções e processos do controlador de previsão 220, do intraprevisor 216 e do interprevisor 218 no lado do decodificador podem corresponder às configurações, funções e processos do controlador de previsão 128, intraprevisor 124, e interprevisor 126 no lado do codificador. Exemplo de Montagem do Decodificador
[00407] A figura 46 é um diagrama em bloco ilustrando um exemplo de montagem do decodificador 200. O decodificador 200 inclui o pro- cessador b1 e a memória b2. Por exemplo, a pluralidade de elementos constituintes do decodificador 200 ilustrado na figura 41 é montada no processador b1 e na memória b2 ilustrados na figura 46.
[00408] O processador b1 é um conjunto de circuitos que realiza o processamento da informação e é acessível à memória b2. Por exem- plo, o processador b1 é um conjunto de circuitos eletrônicos dedicado ou geral que decodifica um vídeo (isso é, uma sequência de bits codi- ficados). O processador b1 pode ser um processador, tal como uma CPU. Adicionalmente, o processador b1 pode ser um agregado de uma pluralidade de circuitos eletrônicos. Adicionalmente, por exemplo, o processador b1 pode assumir os papeis de dois ou mais elementos constituintes a partir da pluralidade de elementos constituintes do de- codificador 200 ilustrado na figura 41, etc.
[00409] A memória b2 é uma memória dedicada ou geral para ar- mazenar a informação que é utilizada pelo processador b1 para deco-
dificar uma sequência de bits codificados. A memória b2 pode ser um conjunto de circuitos eletrônicos, e pode ser conectada ao processador b1. Adicionalmente, a memória b2 pode ser incluída no processador b1. Adicionalmente, a memória b2 pode ser um agregado de uma plu- ralidade de circuitos eletrônicos. Adicionalmente, a memória b2 pode ser um disco magnético, um disco ótico, ou similares, ou pode ser re- presentada como um armazenador, um meio de gravação ou simila- res. Adicionalmente, a memória b2 pode ser uma memória não volátil, ou uma memória volátil.
[00410] Por exemplo, a memória b2 pode armazenar um vídeo ou uma sequência de bits. Adicionalmente, a memória b2 pode armaze- nar um programa para fazer com que um processador b1 decodifique uma sequência de bits codificada.
[00411] Adicionalmente, por exemplo, a memória b2 pode assumir os papeis de dois ou mais elementos constituintes para armazenar in- formação a partir da pluralidade de elementos constituintes do decodi- ficador 200 ilustrados na figura 41, etc. Especificamente, a memória b2 pode assumir os papeis da memória de bloco 210 e da memória de quadro 214 ilustradas na figura 41. Mais especificamente, a memória b2 pode armazenar um bloco reconstruído, uma imagem reconstruída, etc.
[00412] Deve-se notar que, no decodificador 200, todos dentre a pluralidade de elementos constituintes ilustrados na figura 41, etc. po- dem não ser implementados, e todos os processos descritos acima podem não ser realizados. Parte dos elementos constituintes indicados na figura 41, etc. pode ser incluída em outro dispositivo, ou parte dos processos descritos acima pode ser realizada por outro dispositivo. Definições dos Termos
[00413] Os termos respectivos podem ser definidos, como indicado abaixo, como exemplos.
[00414] Uma imagem é um conjunto de amostras de luminescência no formato monocromático ou um conjunto de amostras de lumines- cência e dois conjuntos correspondentes de amostras de crominância no formato colorido de 4:2:0 e 4:4:4. Uma imagem pode ser um quadro ou um campo.
[00415] Um quadro é a composição de um campo superior e um campo inferior, onde as fileiras de amostra 0, 2, 4,...originam do campo superior e as fileiras de amostras 1, 3, 5...originam do campo inferior.
[00416] Uma fatia é um número inteiro de unidades de árvore de codificação contidas em um segmento de fatia independente e todos os segmentos de fatia dependentes subsequentes (se algum) que pre- cedem o próximo segmento de fatia independente (se algum) dentro da mesma unidade de acesso.
[00417] Um “tile” é uma região retangular dos blocos de árvore de codificação dentro de uma coluna de “tile” em particular e uma fileira de “tile” em particular em uma imagem. Um “tile” pode ser uma região retangular do quadro que é designada para poder ser decodificada e codificada independentemente, apesar de a filtragem de circuito atra- vés das bordas de “tile” ainda poder ser aplicada.
[00418] Um bloco é um conjunto de M x N (M colunas por N fileiras) de amostras, ou um conjunto M x N de coeficientes de transformação. Um bloco pode ser uma região quadrada ou retangular de pixels inclu- indo uma matriz de Luminescência e duas matrizes de Crominância.
[00419] Uma unidade de árvore de codificação (CTU) pode ser um bloco de árvore de codificação de amostras de luminescência de uma imagem que possui três conjuntos de amostras, ou dois blocos de ár- vore de codificação correspondentes de amostras de crominância. Al- ternativamente, um CTU pode ser um bloco de árvore de codificação de amostras de uma dentre uma imagem monocromática e uma ima- gem que é codificada utilizando-se três planos de cores separados e estruturas de sintaxe utilizadas para codificar as amostras. Um super bloco pode ser um bloco quadrado de 64 x 64 pixels que consiste de 1 ou 2 blocos de informação de modo ou é dividido de forma recursiva em quatro blocos de 32 x 32, que, propriamente ditos, podem ser divi- didos adicionalmente. Partição Não Retangular
[00420] No controlador de previsão 128, acoplado ao intraprevisor 124 e ao interprevisor 126 no lado do codificador (ver figura 1), além de no controlador de previsão 220, acoplado ao intraprevisor 216 e ao interprevisor 218 no lado do decodificador (ver figura 41), partições até agora (ou blocos ou sub-blocos de tamanho variável) obtidas a partir da partição de cada bloco, para os quais a informação de movimento (por exemplo, vetores de movimento) é obtida, são invariavelmente retangulares, como ilustrado na figura 3. Os inventores descobriram que a geração de partições possuindo um formato não retangular, tal como um formato triangular, resulta em um aperfeiçoamento na quali- dade de imagem e eficiência de codificação dependendo do conteúdo de uma imagem em uma imagem em várias implementações. Abaixo, várias modalidades serão descritas, nas quais pelo menos uma divisão de partição, a partir de um bloco de imagem, para fins de previsão, possui um formato não retangular. Note-se que essas modalidades são igualmente aplicáveis ao lado do codificador (controlador de previ- são 128 acoplado ao intraprevisor 124 e interprevisor 126) e ao lado do decodificador (controlador de previsão 220 acoplado ao intraprevi- sor 216 e ao interprevisor 218), e podem ser implementadas no codifi- cador da figura 1 ou similar, ou no decodificador da figura 41 ou simi- lar.
[00421] A figura 47 é um fluxograma ilustrando ume exemplo de um processo de divisão de um bloco de imagem em partições que incluem pelo menos uma partição que possui um formato não retangular (por exemplo, um triângulo) e uma segunda partição, e realização de pro- cessamento adicional que inclui a codificação (ou decodificação) do bloco de imagem como uma combinação reconstruída das primeira e segunda partições.
[00422] Na etapa S1001, um bloco de imagem é dividido em parti- ções que incluem uma primeira partição, que possui um formato não retangular, e uma segunda partição, que pode ou não ter um formato não retangular. Por exemplo, como ilustrado na figura 48, um bloco de imagem pode ser dividido a partir de um canto superior esquerdo do bloco de imagem para um canto inferior direito do bloco de imagem para criar uma primeira partição e uma segunda partição, ambas as quais possuem um formato não retangular (por exemplo, um triângulo), ou um bloco de imagem pode ser dividido a partir de um canto superior direito do bloco de imagem para um canto inferior esquerdo do bloco de imagem para criar uma primeira partição e uma segunda partição, ambas possuindo um formato não retangular (por exemplo, um triân- gulo). Vários exemplos de partição não retangular serão descritos abaixo com referência às figuras 48 e de 53 a 55.
[00423] Na etapa S1002, o processo prevê um primeiro vetor de movimento para a primeira partição e prevê um segundo vetor de mo- vimento para a segunda partição. Por exemplo, a previsão dos primei- ro e segundo vetores de movimento pode incluir a seleção do primeiro vetor de movimento a partir de um primeiro conjunto de candidatos a vetor de movimento e selecionar o segundo vetor de movimento a par- tir de um segundo conjunto de candidatos a vetor de movimento.
[00424] Na etapa S1003, um processo de compensação de movi- mento é realizado para se obter a primeira partição utilizando o primei- ro vetor de movimento, que é derivado na etapa S1002 acima, e para obter a segunda partição utilizando-se o segundo vetor de movimento, que é derivado na etapa S1002 acima.
[00425] Na etapa S1004, um processo de previsão é realizado para o bloco de imagem como uma combinação (reconstruída) da primeira partição e da segunda partição. O processo de previsão pode incluir um processo de suavização de limite para suavizar o limite entre a primeira partição e a segunda partição. Por exemplo, o processo de suavização de limite pode envolver a ponderação de primeiros valores de pixels de limite, previstos com base na primeira partição, e segun- dos valores de pixels de limite, previstos com base na segunda parti- ção. Várias implementações do processo de suavização de limite se- rão descritas abaixo com referência às figuras 49, 50, 56 e 57A-57D.
[00426] Na etapa S1005, o processo codifica ou decodifica o bloco de imagem utilizando um ou mais parâmetros incluindo um parâmetro de partição que indica a divisão do bloco de imagem na primeira parti- ção, que possui um formato não retangular, e na segunda partição. Como resumido em uma tabela da figura 51, por exemplo, o parâmetro de partição ("o primeiro valor de índice") pode codificar em conjunto, por exemplo, uma direção de divisão aplicada à divisão (por exemplo, a partir do canto superior esquerdo para o canto inferior direito ou do canto superior direito para o canto inferior esquerdo, como ilustrado na figura 48) e os primeiro e segundo vetores de movimento derivados na etapa S1002 acima. Detalhes de tal operação de sintaxe de partição, envolvendo os um ou mais parâmetros, que incluem o parâmetro de partição, serão descritos em detalhes abaixo com referência às figuras 51, 52 e de 58 a 61.
[00427] A figura 53 é um fluxograma ilustrando um processo 2000 de divisão de um bloco de imagem. Na etapa S2001, o processo divide uma imagem em uma pluralidade de partições incluindo uma primeira partição, que possui um formato não retangular ,e uma segunda parti- ção, que pode ou não possuir um formato não retangular. Como ilus- trado na figura 48, um bloco de imagem pode ser dividido em uma primeira partição, que possui um formato triangular, e uma segunda partição, que também possui um formato triangular. Existem inúmeros outros exemplos nos quais um bloco de imagem é dividido em uma pluralidade de partições, incluindo uma primeira partição e uma se- gunda partição, das quais pelo menos a primeira partição possui um formato não retangular. O formato não retangular pode ser um triângu- lo, um trapezoide, e um polígono com pelo menos cinco lados e ângu- los.
[00428] Por exemplo, como ilustrado na figura 54, um bloco de ima- gem pode ser dividido em duas partições de formato triangular; um bloco de imagem pode ser dividido em mais de duas partições de for- mato triangular (por exemplo, três partições de formato triangular); um bloco de imagem pode ser dividido em uma combinação de partições de formato triangular e partições de formato retangular; ou um bloco de imagem pode ser dividido em uma combinação de partições de formato triangular e partições de formato poligonal.
[00429] Como ilustrado adicionalmente na figura 55, um bloco de imagem pode ser dividido em uma partição em formato de L (formato poligonal e uma partição em formato retangular; um bloco de imagem pode ser dividido em uma partição de formato pentagonal (polígono) e uma partição de formato triangular; um bloco de imagem pode ser di- vidido em uma partição de formato hexagonal (polígono) e uma parti- ção de formato pentagonal (polígono); ou um bloco de imagem pode ser dividido em múltiplas partições de formato poligonal.
[00430] Com referência novamente à figura 53, na etapa S2002, o processo prevê um primeiro vetor de movimento para a primeira parti- ção, por exemplo, pela seleção da primeira partição a partir de um primeiro conjunto de candidatos a vetor de movimento e prevê um se- gundo vetor de movimento para a segunda partição, por exemplo, pela seleção da segunda partição a partir de um segundo conjunto de can-
didatos a vetor de movimento. Por exemplo, o primeiro conjunto de candidatos a vetor de movimento pode incluir os vetores de movimento das partições vizinhas da primeira partição, e o segundo conjunto de candidatos a vetor de movimento pode incluir os vetores de movimento das partições vizinhas da segunda partição. As partições vizinhas po- dem ser uma ou ambas as partições espacialmente vizinhas e as par- tições temporalmente vizinhas. Alguns exemplos das partições espaci- almente vizinhas incluem uma partição localizada no canto esquerdo, inferior esquerdo, inferior, inferior direito, direito, superior direito, supe- rior ou superior esquerdo da partição que está sendo processada. Exemplos das partições temporalmente vizinhas são partições de mesma localização nas imagens de referência do bloco de imagem.
[00431] Em várias implementações, as partições vizinhas da primei- ra partição e as partições vizinhas da segunda partição podem estar fora do bloco de imagem do qual a primeira partição e a segunda par- tição foram divididas. O primeiro conjunto de candidatos a vetor de movimento pode ser igual a, ou diferente do segundo conjunto de can- didatos a vetor de movimento. Adicionalmente, pelo menos um dentre o primeiro conjunto de candidatos a vetor de movimento e o segundo conjunto de candidatos a vetor de movimento pode ser igual a outro terceiro conjunto de candidatos a vetor de movimento preparado para o bloco de imagem.
[00432] Em algumas implementações, na etapa S2002, em respos- ta à determinação de que a segunda partição, similar à primeira parti- ção, também possui um formato não retangular (por exemplo, um tri- ângulo), o processo 2000 cria o segundo conjunto de candidatos a ve- tor de movimento (para a segunda partição de formato não retangular) que inclui os vetores de movimento das partições vizinhas da segunda partição excluindo a primeira partição (excluindo o vetor de movimento da primeira partição). Por outro lado, em resposta à determinação de que a segunda partição, diferentemente da primeira partição, possui um formato retangular, o processo 2000 cria o segundo conjunto de candidatos a vetor de movimento (para a segunda partição de formato retangular) que inclui os vetores de movimento das partições vizinhas da segunda partição incluindo a primeira partição.
[00433] Na etapa S2003, o processo codifica ou decodifica a primei- ra partição utilizando o primeiro vetor de movimento derivado na etapa S2002 acima, e codifica ou decodifica a segunda partição utilizando o segundo vetor de movimento derivado na etapa S2002 acima.
[00434] Um processo de divisão de bloco de imagem, como o pro- cesso 2000 da figura 53, pode ser realizado por um codificador de imagem, como ilustrado na figura 1, por exemplo, que inclui o conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O con- junto de circuitos, em operação, realiza: a divisão de um bloco de ima- gem em uma pluralidade de partições, incluindo uma primeira partição, que possui um formato não retangular, e uma segunda partição (etapa S2001); a previsão de um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição (etapa S2002); e a codificação da primeira partição utilizando o primei- ro vetor de movimento e o segundo vetor de movimento utilizando o segundo vetor de movimento (etapa S2003).
[00435] De acordo com outra modalidade, como ilustrado na figura 1, um codificador de imagem é fornecido incluindo um divisor 102 que, em operação, recebe e divide uma imagem original em blocos; um somador 104 que, em operação, recebe os blocos do divisor e previ- sões de um controlador de previsão 128, e subtrai cada previsão de seu bloco correspondente para enviar um residual; um transformador 106 que, em operação, realiza uma transformação de residuais envia- dos a partir do somador 104 para enviar os coeficientes de transfor- mação; um quantizador 108 que, em operação, quantiza os coeficien-
tes de transformação para gerar os coeficientes de transformação quantizados; um codificador por entropia 110 que, em operação, codi- fica os coeficientes de transformação quantizados para gerar uma se- quência de bits; e o controlador de previsão 128 acoplado a um inter- previsor 1267, um intraprevisor 124 e uma memória 118, 122, onde o interprevisor 126, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência codificada e o intraprevisor 124, em operação, gera uma previsão de um bloco atual com base em um bloco de referência codificado em uma imagem atual. O controlador de previsão 128, em operação, divi- de os blocos em uma pluralidade de partições, incluindo uma primeira partição, que possui um formato não retangular, e uma segunda parti- ção (figura 53, etapa S2001); prevê um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a se- gunda partição (etapa S2002); e codifica a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o se- gundo vetor de movimento (etapa S2003).
[00436] De acordo com outra modalidade, um decodificador de imagem, como ilustrado na figura 41, por exemplo, é fornecido e inclui o conjunto de circuitos e uma memória acoplada ao conjunto de circui- tos. O conjunto de circuitos, em operação, realiza a divisão de um blo- co de imagem em uma pluralidade de partições incluindo uma primeira partição que possui um formato não retangular e uma segunda parti- ção (figura 53, etapa S2001); a previsão de um primeiro vetor de mo- vimento para a primeira partição e um segundo vetor de movimento para a segunda partição (etapa S2002); e a decodificação da primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento (etapa S2003).
[00437] De acordo com uma modalidade adicional, um decodifica- dor de imagem, como ilustrado na figura 41, é fornecido incluindo um decodificador por entropia 202 que, em operação, recebe e decodifica uma sequência de bits codificados para obter os coeficientes de trans- formação quantizados; um quantizador inverso 204 e transformador 206 que, em operação, quantiza de forma inversa os coeficientes de transformação quantizados para obter os coeficientes de transforma- ção e transforma de forma inversa os coeficientes de transformação para obter residuais; um somador 208 que, em operação, adiciona os residuais enviados a partir do quantizador inverso 204 e o transforma- dor 206 e previsões enviadas a partir de um controlador de previsão 220 para reconstruir os blocos; e o controlador de previsão 220 aco- plado a um interprevisor 218, a um intraprevisor 216 e a uma memória 210, 214, onde o interprevisor 218, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma ima- gem de referência decodificada e o intraprevisor 216, em operação, gera uma previsão de um bloco atual com base em um bloco de refe- rência decodificado em uma imagem atual. O controlador de previsão 220, em operação, divide um bloco de imagem em uma pluralidade de partições incluindo uma primeira partição que possui um formato não retangular e uma segunda partição (figura 53, etapa S2001); prevê um primeiro vetor de movimento para a primeira partição e um segundo vetor de movimento para a segunda partição (etapa S2002); e decodi- fica a primeira partição utilizando o primeiro vetor de movimento e a segunda partição utilizando o segundo vetor de movimento (etapa S2003). Suavização de Limite
[00438] Como descrito acima na figura 47, a etapa S1004, de acor- do com várias modalidades, realizando um processo de previsão para o bloco de imagem como uma combinação (reconstruída) da primeira partição que possui um formato não retangular e a segunda partição pode envolver a aplicação de um processo de suavização de limite ao longo do limite entre a primeira partição e a segunda partição.
[00439] Por exemplo, a figura 57B ilustra um exemplo de um pro- cesso de suavização de limite envolvendo a ponderação dos primeiros valores de pixels de limite, que são primeiro previstos com base na primeira partição, e os segundos valores de pixels de limite, que são previstos em segundo lugar com base na segunda partição.
[00440] A figura 56 é um fluxograma ilustrando um processo de su- avização de limite geral 3000 envolvendo a ponderação de primeiros valores de pixels de limite previstos em primeiro lugar com base na primeira partição e segundos valores de pixels de limite previstos em segundo lugar com base na segunda partição, de acordo com uma modalidade. Na etapa S3001, um bloco de imagem é dividido em uma primeira partição e uma segunda partição ao longo de um limite no qual pelo menos a primeira partição possui um formato não retangular, como ilustrado na figura 57A ou nas figuras 48, 54 e 55 descritas aci- ma.
[00441] Na etapa S3002, os primeiros valores (por exemplo, cor, luminescência, transparência, etc.) de um conjunto de pixels ("pixels de limite" na figura 57A) da primeira partição ao longo do limite são previstos primeiro, onde os primeiros valores são previstos primeiro utilizando-se a informação da primeira partição. Na etapa S3003, os segundos valores do (mesmo) conjunto de pixels da primeira partição ao longo do limite são previstos em segundo lugar, onde os segundos valores são previstos em segundo lugar utilizando a informação da se- gunda partição. Em algumas implementações, pelo menos uma dentre a primeira previsão e a segunda previsão é um processo de interprevi- são que prevê os primeiros valores e os segundos valores com base em uma partição de referência em uma imagem de referência codifi- cada. Com referência à figura 57D, em algumas implementações, o processo de previsão prevê os primeiros valores de todos os pixels da primeira partição ("o primeiro conjunto de amostras") incluindo o con- junto de pixels através do qual a primeira partição e a segunda parti- ção se sobrepõem, e prevê os segundos valores de apenas o conjunto de pixels ("o segundo conjunto de amostras") através dos quais as primeira e segunda partições se sobrepõem. Em outra implementação, pelo menos uma dentre a primeira previsão e a segunda previsão é um processo de intraprevisão que prevê os primeiros valores e os se- gundos valores com base em uma partição de referência codificada em uma imagem atual. Em algumas implementações, um método de previsão utilizado na primeira previsão é diferente de um método de previsão utilizado na segunda previsão. Por exemplo, a primeira previ- são pode incluir um processo de interprevisão e a segunda previsão pode incluir um processo de intraprevisão. A informação utilizada para primeiro prever os primeiros valores ou para prever, em segundo lugar, os segundos valores pode ser vetores de movimento, direções de in- traprevisão, etc. da primeira ou segunda partição.
[00442] Na etapa S3004, os primeiros valores, previstos utilizando- se a primeira partição, e os segundos valores previstos utilizando-se a segunda partição são ponderados. Na etapa S3005, a primeira parti- ção é codificada ou decodificada utilizando-se os primeiro e segundo valores ponderados.
[00443] A figura 57B ilustra um exemplo de uma operação de sua- vização de limite na qual a primeira partição e a segunda partição se sobrepõem a cinco pixels (no máximo) de cada fileira ou cada coluna. Isso é, o número de conjunto de pixels de cada fileira ou cada coluna, para os quais os primeiros valores são previstos com base na primeira partição, e os segundos valores são previstos com base na segunda partição, é igual a 5 no máximo. A figura 57C ilustra outro exemplo de uma operação de suavização de limite na qual a primeira partição e a segunda partição se sobrepõem a três pixels (no máximo) de cada fi-
leira ou cada coluna. Isso é, o número do conjunto de pixels de cada fileira ou cada coluna, para o qual os primeiros valores são previstos, com base na primeira partição, e os segundos valores são previstos com base na segunda partição, é igual a três no máximo.
[00444] A figura 49 ilustra outro exemplo da operação de suaviza- ção de limite, onde a primeira partição e a segunda partição se sobre- põem a quatro pixels (no máximo) de cada fileira ou cada coluna. Isso é, o número do conjunto de pixels de cada fileira ou cada coluna, para o qual os primeiros valores são previstos, com base na primeira parti- ção, e os segundos valores são previstos, com base na segunda parti- ção, é igual a quatro no máximo. No exemplo ilustrado, os pesos de 1/8, 1/4, 3/4 e 7/8 podem ser aplicados aos primeiros valores dos qua- tro pixels no conjunto, respectivamente, e os pesos de 7/8, 3/4, 1/4 e 1/8 podem ser aplicados aos segundos valores dos quatro pixels no conjunto, respectivamente.
[00445] A figura 50 ilustra exemplos adicionais de uma operação de suavização de limite onde a primeira partição e a segunda partição se sobrepõem a zero pixels de cada fileira ou cada coluna (não se sobre- põem), se sobrepõem a um pixel (no máximo) de cada fileira ou cada coluna, e se sobrepõem a dois pixels (no máximo) de cada fileira ou cada coluna, respectivamente. No exemplo no qual as primeira e se- gunda partições não se sobrepõem, pesos zero são aplicados. No exemplo no qual as primeira e segunda partições se sobrepõem a um pixel de cada fileira ou cada coluna, um peso de 1/2 pode ser aplicado aos primeiros valores dos pixels no conjunto previsto com base na primeira partição, e um peso de 1/2 pode ser aplicado aos segundos valores dos pixels no conjunto previsto com base na segunda partição. No exemplo no qual as primeira e segunda partições se sobrepõem a dois pixels de cada fileira ou cada coluna, os pesos de 1/3 e 2/3 po- dem ser aplicados aos primeiros valores dos dois pixels no conjunto previsto com base na primeira partição, respectivamente, e os pesos de 2/3 e 1/3 podem ser aplicados aos segundos valores dos dois pixels no conjunto previsto com base na segunda partição, respecti- vamente.
[00446] De acordo com as modalidades descritas acima, o número de pixels no conjunto, através do qual a primeira partição e a segunda partição se sobrepõem, é um inteiro. Em outras implementações, o número de pixels de sobreposição no conjunto pode ser não inteiro e pode ser fracionado, por exemplo. Além disso, os pesos aplicados aos primeiro e segundo valores do conjunto de pixels podem ser fraciona- dos ou inteiros dependendo de cada aplicação.
[00447] Um processo de suavização de limite, como o processo 3000 da figura 56, pode ser realizado por um codificador de imagem, como ilustrado na figura 1, por exemplo, que inclui o conjunto de circui- tos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira partição que possui um for- mato não retangular e uma segunda partição, que são divididas a par- tir de um bloco de imagem (figura 56, etapa S3001). A operação de suavização de limite inclui: a primeira previsão dos primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, a uti- lização da informação da primeira partição (etapa S3002); a segunda previsão dos segundos valores do conjunto de pixels da primeira parti- ção ao longo do limite, a utilização da informação da segunda partição (etapa S3003); a ponderação dos primeiros valores e dos segundos valores (etapa S3004); e a codificação da primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados (etapa S3005).
[00448] De acordo com outra modalidade, como ilustrado na figura 1, um codificador de imagem é fornecido incluindo um divisor 102 que,
em operação, recebe e divide uma imagem original em blocos; um somador 104 que, em operação, recebe os blocos do divisor e previ- sões de um controlador de previsão 128, e subtrai cada previsão de seu bloco correspondente para enviar um residual; um transformador 106 que, em operação, realiza uma transformação nos residuais envi- ados a partir do somador 104 para enviar os coeficientes de transfor- mação; um quantizador 108 que, em operação, quantiza os coeficien- tes de transformação para gerar os coeficientes de transformação quantizados; um codificador por entropia 110 que, em operação, codi- fica os coeficientes de transformação quantizados para gerar uma se- quência de bits; e o controlador de previsão 128 acoplado a um inter- previsor 126, a um intraprevisor 124 e a uma memória 118, 122, onde o interprevisor 126, em operação, gera uma previsão de um bloco atu- al com base em um bloco de referência em uma imagem de referência codificada e o intraprevisor 124, em operação, gera uma previsão de um bloco atual com base em um bloco de referência codificado em uma imagem atual. O controlador de previsão 128, em operação, reali- za uma operação de suavização de limite ao longo deum limite entre uma primeira partição, que possui um formato não retangular, e uma segunda partição, que são divididas a partir de um bloco de imagem (figura 56, etapa S3001). A operação de suavização de limite inclui prever primeiro os primeiros valores de um conjunto de pixels da pri- meira partição ao longo do limite, utilizando a informação sobre a pri- meira partição (etapa S3002); prever em segundo lugar os segundos valores do conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da segunda partição (etapa S3003); ponderar os primeiros valores e os segundos valores (etapa S3004); e codificar a primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados (etapa S3005).
[00449] De acordo com outra modalidade, um decodificador de imagem é fornecido, como ilustrado na figura 41 por exemplo, incluin- do um conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira parti- ção, que possui um formato não retangular, e uma segunda partição, que são divididas a partir de um bloco de imagem (figura 56, etapas S3001). A operação de suavização de limite inclui prever, primeiro, os primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando a informação da primeira partição (etapa S3002), prever, em segundo lugar, os segundos valores do conjunto de pixel das primeira partição ao longo do limite, utilizando a informa- ção da segunda partição (etapa S3003); ponderar os primeiros valores e os segundos valores (etapa S3004); e decodificar a primeira partição utilizando os primeiros valores ponderados e os segundos valores ponderados (etapa S3005).
[00450] De acordo com outra modalidade, um decodificador de imagem, como ilustrado na figura 41, é fornecido incluindo um decodi- ficador por entropia 202 que, em operação, recebe e decodifica uma sequência de bits codificada para obter os coeficientes de transforma- ção quantizados; um quantizador 204 e transformador 206 inversos que, em operação, quantiza de forma inversa os coeficientes de trans- formação quantizados para obter coeficientes de transformação e transforma de forma inversa os coeficientes de transformação para obter residuais; um somador 208 que, em operação, adiciona os resi- duais enviados a partir do quantizador inverso 204 e o transformador 206 e previsões enviadas a partir de um controlador de previsão 220 para reconstruir os blocos; e o controlador de previsão 220 acoplado a um interprevisor 218, a um intraprevisor 216 e a uma memória 210, 214, onde o interprevisor 218, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência decodificada, e o intraprevisor 216, em operação, gera uma previsão de um bloco atual com base em um bloco de referência de- codificado em uma imagem atual. O controlador de previsão 220, em operação, realiza uma operação de suavização de limite ao longo de um limite entre uma primeira partição, que possui um formato não re- tangular, e uma segunda partição, que são divididas a partir de um bloco de imagem. (Figura 56, etapa S3001). A operação de suaviza- ção de limite inclui prever primeiro os primeiros valores de um conjunto de pixels da primeira partição ao longo do limite, utilizando informação da primeira partição (etapa S3002); prever, em segundo lugar, os se- gundos valores do conjunto de pixels da primeira partição ao longo do limite; utilizando a informação da segunda partição (etapa S3003); ponderar os primeiros valores e os segundos valores (etapa S3004); e decodificar a primeira partição utilizando os primeiros valores ponde- rados e os segundos valores ponderados (etapa S3005). Codificação por Entropia e Decodificação utilizando a Sintaxe de Pa- râmetro de Partição
[00451] Como descrito na figura 47, etapa S1005, de acordo com várias modalidades, o bloco de imagem dividido em uma primeira par- tição, que possui um formato não retangular, e uma segunda partição, pode ser codificado ou decodificado utilizando um ou mais parâmetros que incluem um parâmetro de partição indicativo da divisão não retan- gular do bloco de imagem. Em várias modalidades, tal parâmetro de partição pode codificar em conjunto, por exemplo, uma direção de divi- são aplicada à divisão (por exemplo, do canto superior esquerdo para o canto inferior direito ou do canto superior direito para o canto inferior esquerdo, ver figura 48) e os primeiro e segundo vetores de movimen- to previstos na etapa S1002, como será totalmente descrito abaixo.
[00452] A figura 51 é uma tabela de parâmetros de partição de amostras ("o primeiro valor de índice") e conjuntos de informação codi-
ficados em conjunto pelos parâmetros de partição, respectivamente. Os parâmetros de partição ("os primeiros valores de índice") variam de 0 a 6 e codificam em conjunto a direção de divisão de um bloco de imagem em uma primeira partição e uma segunda partição, ambas as quais são triângulos (ver figura 48), o primeiro vetor de movimento previsto para a primeira partição (figura 47, etapa S1002), e o segundo vetor de movimento previsto para a segunda partição (figura 47, etapa S1002). Especificamente, o parâmetro de partição 0 codifica a direção de divisão do canto superior esquerdo para o canto inferior direito, o primeiro vetor de movimento é o "segundo" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a pri- meira partição, e o segundo vetor de movimento é o "primeiro" vetor de movimento listado no segundo conjunto de candidatos a vetor de mo- vimento para a segunda partição.
[00453] O parâmetro de partição 1 codifica a direção de divisão do canto superior direito para o canto inferior esquerdo, o primeiro vetor de movimento é o "primeiro" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "segundo" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição. O parâmetro de partição 2 codifica a direção de divisão do canto superior direito para o canto inferior esquerdo, o pri- meiro vetor de movimento é o "segundo" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a pri- meira partição, e o segundo vetor de movimento é o "primeiro" vetor de movimento listado no segundo conjunto de candidatos a vetor de mo- vimento para segunda partição. O parâmetro de partição 3 codifica a direção de divisão do canto superior esquerdo para o canto inferior di- reito, o primeiro vetor de movimento é o "segundo" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "segundo" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição. O parâmetro de partição 4 co- difica a direção de divisão do canto superior direito para o canto inferi- or esquerdo, o primeiro vetor de movimento é o "segundo" vetor de movimento listado no primeiro conjunto de candidatos a vetor de mo- vimento para a primeira partição, e o segundo vetor de movimento é o "terceiro" vetor de movimento listado no segundo conjunto de candida- tos a vetor de movimento para a segunda partição. O parâmetro de partição 5 codifica a direção de divisão do canto superior esquerdo pa- ra o canto inferior direito, o primeiro vetor de movimento é o "terceiro" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movi- mento é o "primeiro" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição. O pa- râmetro de partição 6 codifica a direção de divisão do canto superior esquerdo para o canto inferior direito, o primeiro vetor de movimento é o "quarto" vetor de movimento listado no primeiro conjunto de candida- tos a vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "primeiro" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição.
[00454] A figura 58 é um fluxograma ilustrando um método 4000 realizado no lado do codificador. Na etapa S4001, o processo divide um bloco de imagem em uma pluralidade de partições incluindo uma primeira partição, que possui um formato não retangular, e uma se- gunda partição, com base em um parâmetro de partição indicativo da divisão. Por exemplo, como ilustrado na figura 51 descrita acima, o parâmetro de partição pode indicar a direção de divisão de um bloco de imagem (por exemplo do canto superior direito para o canto inferior esquerdo ou do canto superior esquerdo para o canto inferior direito).
Na etapa S4002, o processo codifica a primeira partição e a segunda partição. Na etapa S4003, o processo escreve um ou mais parâmetros incluindo o parâmetro de partição em uma sequência de bits, que o lado do decodificador pode receber e decodificar para obter os um ou mais parâmetros para realizar o mesmo processo de previsão (que o realizado no lado do codificador) para as primeira e segunda partições no lado do decodificador. Os um ou mais parâmetros, incluindo o pa- râmetro de partição, podem codificar, em conjunto ou separadamente, várias partes da informação, tal como o formato não retangular da pri- meira partição, o formato da segunda partição, a direção de divisão utilizada para dividir um bloco de imagem para obter as primeira e se- gunda partições, o primeiro vetor de movimento da primeira partição, o segundo vetor de movimento da segunda partição, etc.
[00455] A figura 59 é um fluxograma ilustrando um método 5000 realizado no lado do decodificador. Na etapa S5001, o processo anali- sa um ou mais parâmetros a partir de uma sequência de bits, onde os um ou mais parâmetros incluem um parâmetro de partição indicativo da divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição. Os um ou mais parâmetros, incluindo o pa- râmetro de partição analisado a partir da sequência de bits, podem co- dificar, em conjunto ou separadamente, várias partes da informação necessárias para que o lado do decodificador realize o mesmo proces- so de previsão que o realizado no lado do codificador, tal como o for- mato não retangular da primeira partição, o formato da segunda parti- ção, a direção de divisão utilizada para dividir um bloco de imagem para obter as primeira e segunda partições, o primeiro vetor de movi- mento da primeira partição, o segundo vetor de movimento da segun- da partição, etc. Na etapa S5002, o processo 5000 divide o bloco de imagem na pluralidade de partições com base no parâmetro de parti-
ção analisado a partir da sequência de bits. Na etapa S5003, o pro- cesso decodifica a primeira partição e a segunda partição, como divi- dido a partir do bloco de imagem.
[00456] A figura 60 é uma tabela dos parâmetros de partição de amostras ("o primeiro valor de índice") e conjuntos de informação codi- ficados em conjunto pelos parâmetros de partição, respectivamente, similares, em natureza, à tabela de amostras descrita acima na figura
51. Na figura 60, os parâmetros de partição ("os primeiros valores de índice") variam de 0 a 6 e codificam, em conjunto, o formato das pri- meira e segunda partições divididas a partir de um bloco de imagem, a direção de divisão de um bloco de imagem nas primeira e segunda partições, o primeiro vetor de movimento previsto para a primeira par- tição (figura 47, etapa S1002), e o segundo vetor de movimento previs- to para a segunda partição (figura 47, etapa S1002). Especificamente, o parâmetro de partição 0 codifica que nenhuma das primeira e se- gunda partições possui um formato triangular, e, dessa forma, a infor- mação de direção de divisão é "N/A", a informação de primeiro vetor de movimento é "N/A" e a informação de segundo vetor de movimento é "N/A".
[00457] O parâmetro de partição 1 codifica as primeira e segunda partições em triângulos, a direção de divisão é do canto superior es- querdo para o canto inferior direito, o primeiro vetor de movimento é o "segundo" vetor de movimento no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movimento é o "primeiro" vetor de movimento listado no segundo con- junto de candidatos a vetor de movimento para a segunda partição. O parâmetro de partição 2 codifica as primeira e segunda partições como triângulos, a direção de divisão ocorre do canto superior direito para o canto inferior esquerdo, o primeiro vetor de movimento é o "primeiro" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movi- mento é o "segundo" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição.
O pa- râmetro de partição 3 codifica as primeira e segunda partições como triângulos, a direção de divisão ocorre do canto superior direito para o canto inferior esquerdo, o primeiro vetor de movimento é o "segundo" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movi- mento é o "primeiro" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição.
O pa- râmetro de partição 4 codifica as primeira e segunda partições como triângulos, a direção de divisão ocorre do canto superior esquerdo pa- ra o canto inferior direito, o primeiro vetor de movimento é o "segundo" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movi- mento é o "segundo" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição.
O pa- râmetro de partição 5 codifica as primeira e segunda partições como triângulos, a direção de divisão ocorre do canto superior direito para o canto inferior esquerdo, o primeiro vetor de movimento é o "segundo" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição, e o segundo vetor de movi- mento é o "terceiro" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição.
O pa- râmetro de partição 6 codifica as primeira e segunda partições como triângulos, a direção de divisão ocorre do canto superior esquerdo pa- ra o canto inferior direito, o primeiro vetor de movimento é o "terceiro" vetor de movimento listado no primeiro conjunto de candidatos a vetor de movimento para a primeira partição e o segundo vetor de movimen- to é o "primeiro" vetor de movimento listado no segundo conjunto de candidatos a vetor de movimento para a segunda partição.
[00458] De acordo com algumas implementações, os parâmetros de partição (valores de índice) podem ser binarizados de acordo com um esquema de binarização, que é selecionado dependendo de um valor de pelo menos um ou um ou mais parâmetros. A figura 52 ilustra um esquema de binarização de amostra da binarização de valores de índice (os valores de parâmetro de partição).
[00459] A figura 61 é uma tabela de combinações de amostras de um primeiro parâmetro e um segundo parâmetro, onde um dos quais é um parâmetro de partição indicativo da divisão de um bloco de ima- gem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição. Nesse exemplo, o parâmetro de partição pode ser utilizado para indicar a di- visão de um bloco de imagem sem codificação em conjunto com outra informação, que é codificada por um ou mais dos outros parâmetros.
[00460] No primeiro exemplo na figura 61, o primeiro parâmetro é utilizado para indicar um tamanho de bloco de imagem, e o segundo parâmetro é utilizado como o parâmetro de partição (um indicador) pa- ra indicar que pelo menos uma dentre uma pluralidade de partições, divididas a partir de um bloco de imagem, possui um formato triangu- lar. Tal combinação dos primeiro e segundo parâmetros pode ser utili- zada para indicar, por exemplo, (1) quando o tamanho do bloco de imagem é superior a 64 x 64, não existe partição de formato triangular, ou (2) quando a razão da largura e da altura de um bloco de imagem é superior a 4 (por exemplo, 64 x 64), não existe partição de formato tri- angular.
[00461] No segundo exemplo da figura 61, o primeiro parâmetro é utilizado para indicar um modo de previsão, e o segundo parâmetro é utilizado como o parâmetro de partição (um indicador) para indicar que pelo menos uma dentre uma pluralidade de partições, divididas a partir de um bloco de imagem, possui um formato triangular. Tal combinação dos primeiro e segundo parâmetros pode ser utilizada para indicar, por exemplo, (1) quando um bloco de imagem é codificado no intramodo, não existe partição triangular.
[00462] No terceiro exemplo da figura 61, o primeiro parâmetro é utilizado como o parâmetro de partição (um indicador) para indicar que pelo menos uma dentre uma pluralidade de partições, divididas a partir de um bloco de imagem, possui um formato triangular, e o segundo parâmetro é utilizado para indicar um modo de previsão. Tal combina- ção dos primeiro e segundo parâmetros pode ser utilizada para indicar, por exemplo, (1) quando a pelo menos uma dentre a pluralidade de partições, divididas a partir de um bloco de imagem, possui um forma- to triangular, o bloco de imagem deve ser intercodificado.
[00463] No quarto exemplo da figura 61, o primeiro parâmetro indi- ca o vetor de movimento de um bloco vizinho, o segundo parâmetro é utilizado como o parâmetro de partição que indica a direção de divisão de um bloco de imagem em dois triângulos. Tal combinação dos pri- meiro e segundo parâmetros pode ser utilizada para indicar, por exemplo, (1) quando o vetor de movimento de um bloco vizinho é uma direção diagonal, a direção de divisão do bloco de imagem em dois triângulos é do canto superior esquerdo para o canto inferior direito.
[00464] No quinto exemplo da figura 61, o primeiro parâmetro indica a direção de intraprevisão de um bloco vizinho, e o segundo parâmetro é utilizado como o parâmetro de partição que indica a direção de divi- são de um bloco de imagem em dois triângulos. Tal combinação dos primeiro e segundo parâmetros é utilizada como o parâmetro de parti- ção que indica a direção de divisão de um bloco de imagem em dois triângulos. Tal combinação dos primeiro e segundo parâmetros pode ser utilizada para indicar, por exemplo, (1) quando a direção de intra- previsão de um bloco vizinho é uma direção diagonal inversa, a dire-
ção da divisão do bloco de imagem em dois triângulos ocorrendo do canto superior direito para o canto interior esquerdo.
[00465] Deve-se compreender que as tabelas de um ou mais parâ- metros, incluindo o parâmetro de partição, e que informação é codifi- cada em conjunto ou separadamente, como ilustrado nas figuras 51, 60 e 61 são apresentadas como exemplos apenas e inúmeras outras formas de codificação, em conjunto ou separadamente, de várias in- formações como parte da operação de sintaxe de partição descrita acima estão dentro do escopo da presente descrição. Por exemplo, o parâmetro de partição pode indicar que a primeira partição é um triân- gulo, um trapezoide, ou um polígono com pelo menos cinco lados e ângulos. O parâmetro de partição pode indicar que a segunda partição possui um formato não retangular, tal como um triângulo, um trapezoi- de e um polígono com pelo menos cinco lados e ângulos. O parâmetro de partição pode indicar uma ou mais partes da informação sobre a divisão, tal como o formato não retangular da primeira partição, o for- mato da segunda partição (que pode ser não retangular ou retangular), a direção de divisão aplicada à divisão de um bloco de imagem em uma pluralidade de partições (por exemplo, de um canto superior es- querdo do bloco de imagem para um canto inferior direito do mesmo, e de um canto superior direito do bloco de imagem para um canto inferi- or esquerdo do mesmo). O parâmetro de partição pode codificar em conjunto informações adicionais, tal como o primeiro vetor de movi- mento da primeira partição, o segundo vetor de movimento da segun- da partição, o tamanho de bloco de imagem, o modo de previsão, o vetor de movimento de um bloco vizinho, a direção de intraprevisão de um bloco vizinho, etc. Alternativamente, qualquer informação adicional pode ser codificada separadamente por um ou mais parâmetros além do parâmetro de partição.
[00466] Uma operação de sintaxe de partição, como o processo
4000 da figura 58, pode ser realizada por um codificador de imagem, como ilustrado na figura 1, por exemplo, que inclui o conjunto de circui- tos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza uma operação de sintaxe de partição incluindo a divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição com base em um parâmetro de partição indicativo da divisão (figura 58, etapa S4001); a codificação da primeira partição e da segunda partição (S4002); e a escrita de um ou mais parâmetros incluindo o parâmetro de partição em uma se- quência de bits (S4003).
[00467] De acordo com outra modalidade, como ilustrado na figura 41, um codificador de imagem é fornecido incluindo um divisor 102 que, em operação, recebe e divide uma imagem original em blocos; um somador 104 que, em operação, recebe os blocos do divisor e as previsões de um controlador de previsão 128, e subtrai cada previsão de seu bloco correspondente para enviar um residual; um transforma- dor 106 que, em operação, realiza uma transformação nos residuais enviados a partir do somador 104 para enviar os coeficientes de trans- formação; um quantizador 108 que, em operação, quantiza os coefici- entes de transformação para gerar os coeficientes de transformação quantizados; um codificador por entropia 110 que, em operação, codi- fica os coeficientes de transformação quantizados para gerar uma se- quência de bits; e o controlador de previsão 128 acoplado a um inter- previsor 126, a um intraprevisor 124 e a uma memória 118, 122, onde o interprevisor 126, em operação, gera uma previsão de um bloco atu- al com base em um bloco de referência em uma imagem de referência codificada e o intraprevisor 124, em operação, gera uma previsão de um bloco atual com base em um bloco de referência codificado em uma imagem atual. O controlador de previsão 128, em operação, divi-
de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição, com base em um parâmetro de partição indicativo da divisão (figura 58, etapa S4001), e codifica a primeira partição e a segunda partição (etapa S4002). O codificador por entropia 110, em operação, escreve um ou mais parâmetros, incluindo o parâmetro de partição em uma sequência de bits (etapa S4003).
[00468] De acordo com outra modalidade, um decodificador de imagem é fornecido, como ilustrado na figura 41, por exemplo, incluin- do o conjunto de circuitos e uma memória acoplada ao conjunto de circuitos. O conjunto de circuitos, em operação, realiza uma operação de sintaxe de partição incluindo a análise de um ou mais parâmetros a partir de uma sequência de bits, onde os um ou mais parâmetros in- cluem um parâmetro de partição indicativo da divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira par- tição que possui um formato não retangular e uma segunda partição (figura 59, etapa S5001); a divisão do bloco de imagem na pluralidade de partições com base no parâmetro de partição (S5002); e a decodifi- cação da primeira partição e da segunda partição (S5003).
[00469] De acordo com uma modalidade adicional, um decodifica- dor de imagem, como ilustrado na figura 41, é fornecido incluindo um decodificador por entropia 202 que, em operação, recebe e decodifica uma sequência de bits codificados para obter coeficientes de transfor- mação quantizados; um quantizador inverso 204 e transformador in- verso 206 que, em operação quantiza de forma inversa os coeficientes de transformação quantizados para obter coeficientes de transforma- ção, e transforma de forma inversa os coeficientes de transformação para obter residuais; um somador 208 que, em operação, adiciona os residuais enviados a partir do quantizador inverso 204 e o transforma- dor inverso 206 e previsões enviadas a partir de um controlador de previsão 220 para reconstruir os blocos; e o controlador de previsão 220 acoplado a um interprevisor 218, a um intraprevisor 216 e a uma memória 210, 214, onde o interprevisor 218, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência decodificada e o intraprevisor 216, em ope- ração, gera uma previsão de um bloco atual com base em um bloco de referência decodificado em uma imagem atual. O decodificador por entropia 202, em operação, analisa um ou mais parâmetros a partir de uma sequência de bits, onde os um ou mais parâmetros incluem um parâmetro de partição indicativo da divisão de um bloco de imagem em uma pluralidade de partições, incluindo uma primeira partição que possui um formato não retangular e uma segunda partição (figura 59, etapa S5001); divide o bloco de imagem na pluralidade de partições, com base no parâmetro de partição (S5002); e decodifica a primeira partição e a segunda partição (S5003) em cooperação com o controla- dor de previsão 220 em algumas implementações.
[00470] De acordo com outros exemplos, um interprevisor pode rea- lizar o processo a seguir.
[00471] Todos os candidatos a vetor de movimento incluídos no primeiro conjunto de candidatos a vetor de movimento podem ser veto- res de movimento de uniprevisão. Isso é, o interprevisor pode determi- nar apenas os vetores de movimento de uniprevisão como candidatos a vetor de movimento no primeiro conjunto de candidatos a vetor de movimento.
[00472] O interprevisor pode selecionar apenas os candidatos a ve- tor de movimento de uniprevisão a partir do primeiro conjunto de can- didatos a vetor de movimento.
[00473] Em uma modalidade, apenas o vetor de movimento de uni- previsão pode ser utilizado para prever um bloco pequeno. O vetor de movimento de biprevisão pode ser utilizado para prever um bloco grande. Como um exemplo, o processo de previsão pode incluir o jul- gamento de um tamanho do bloco de imagem. Quando o tamanho do bloco de imagem é considerado maior do que um limite, a previsão pode incluir a seleção do primeiro vetor de movimento a partir de um primeiro conjunto de candidatos a vetor de movimento, e o primeiro conjunto de candidatos a vetor de movimento pode conter vetores de movimento de uniprevisão e/ou biprevisão. Quando o tamanho do blo- co de imagem for considerado inferior ao limite, a previsão pode incluir a seleção do primeiro vetor de movimento a partir de um primeiro con- junto de candidatos a vetor de movimento, e o primeiro conjunto de candidatos a vetor de movimento pode conter apenas os vetores de movimento de uniprevisão. Método de armazenamento de Vetores de Movimento para a Área Ponderada
[00474] A figura 62 é um fluxograma ilustrando um exemplo de um fluxo de processo 6000 para prever um primeiro conjunto de amostras para uma primeira partição de uma imagem atual com um primeiro ve- tor de movimento, obter um segundo vetor de movimento a partir de uma segunda partição diferente da primeira partição, prever um se- gundo conjunto de amostras para uma primeira parte incluída na pri- meira partição com o segundo vetor de movimento, ponderar os pri- meiro e segundo conjuntos de amostras, armazenar pelo menos um dentre os primeiro e segundo vetores de movimento para a primeira partição, e codificar ou decodificar a primeira partição utilizando as amostras ponderadas, e realizar o processamento adicional de acordo com uma modalidade. O fluxo de processo 6000 pode ser realizado, por exemplo, pelo codificador 100 da figura 1, pelo decodificador 200 da figura 41, etc.
[00475] Na etapa S6001, um primeiro conjunto de amostras para uma primeira partição de uma imagem atual é previsto com um ou mais vetores de movimento incluindo um primeiro vetor de movimento. A primeira partição pode ou não ter um formato não retangular. O pri- meiro conjunto de amostras pode ser, por exemplo, blocos de pixel possuindo vetores de movimento associados, e componentes de pixel de luminescência e crominância. Por exemplo, cada amostra pode ser um bloco de 4 x 4 pixels associado ao primeiro vetor de movimento e possuindo componentes de pixel de luminescência e crominância as- sociados.
[00476] A primeira partição pode ser, por exemplo, uma partição de um bloco de imagem que foi dividido em uma pluralidade de partições. A figura 63 é um diagrama conceitual para ilustrar métodos ilustrativos de divisão de um bloco de imagem em uma primeira partição e uma segunda partição. Ver também as figuras 48, 54 e 55. Por exemplo, como ilustrado na figura 63, um bloco de imagem pode ser dividido em duas ou mais partições possuindo vários formatos. As ilustrações ilus- trativas da figura 63 incluem um bloco de imagem dividido a partir de um canto superior esquerdo do bloco de imagem para um canto inferi- or direito do bloco de imagem para criar uma primeira partição e uma segunda partição, ambas possuindo um formato não retangular (por exemplo, um formato triangular); um bloco de imagem, dividido em uma partição em formato de L e uma partição em formato retangular; um bloco de imagem, dividido em uma partição em formato pentagonal e uma partição de formato triangular; um bloco de imagem, dividido em uma partição de formato hexagonal e uma partição de formato penta- gonal; e um bloco de imagem, dividido em duas partições de formato poligonal. Os vários formatos de partição ilustrados podem ser forma- dos pela divisão de um bloco de imagem de outras formas. Por exem- plo, duas partições de formato triangular podem ser formadas pela di- visão de um bloco de imagem a partir de um canto superior direito do bloco de imagem para um canto inferior esquerdo do bloco de imagem para criar uma primeira partição e uma segunda partição, ambas pos- suindo um formato triangular. Em algumas modalidades, duas ou mais partições de um bloco de imagem podem ter uma parte sobreposta.
[00477] Em algumas modalidades, o primeiro vetor de movimento pode ser obtido utilizando-se um processo de estimativa de movimen- to. Em algumas modalidades, o primeiro vetor de movimento pode ser analisado a partir de uma sequência de bits. Em algumas modalida- des, o primeiro vetor de movimento pode ser um vetor de movimento previsto a partir de um conjunto de candidatos a vetor de movimento para pelo menos a primeira partição. Os candidatos a vetor de movi- mento de uma lista de candidatos a vetor de movimento podem incluir candidatos a vetor de movimento derivados das partições espacial- mente ou temporalmente vizinhas da pelo menos uma primeira parti- ção, ou podem derivar de uma lista de candidatos a vetor de movimen- to para um bloco de imagem para um modo de previsão, tal como um modo de mistura, um modo de pulo ou um intermodo.
[00478] A figura 64 é um diagrama conceitual para ilustrar partições espacialmente vizinhas adjacentes e não adjacentes de uma primeira partição de uma imagem atual. A partição espacialmente vizinha adja- cente é uma partição adjacente à primeira partição na imagem atual. A partição vizinha espacialmente não adjacente é uma partição espaça- da da primeira partição na imagem atual. Em algumas modalidades, um conjunto de candidatos a vetor de movimento pode ser derivado das partições espacialmente vizinhas da pelo menos uma primeira par- tição na imagem atual.
[00479] O primeiro vetor de movimento pode ser, por exemplo, um vetor de movimento de uniprevisão ou um vetor de movimento de bi- previsão. A figura 65 é um diagrama conceitual para ilustrar os candi- datos a vetor de movimento de uniprevisão e biprevisão para um bloco de imagem de uma imagem atual. Um candidato a vetor de movimento de uniprevisão é um vetor de movimento singular para o bloco atual na imagem atual com relação a uma única imagem de referência. Como ilustrado na parte superior da figura 65, o candidato a vetor de movi- mento de uniprevisão é um vetor de movimento de um bloco de uma imagem atual para um bloco de uma imagem de referência, com a imagem de referência aparecendo antes da imagem atual em uma or- dem de exibição. Em algumas modalidades, a imagem de referência pode aparecer depois da imagem atual na ordem de exibição.
[00480] Um candidato a vetor de movimento de biprevisão compre- ende dois vetores de movimento: um primeiro vetor de movimento pa- ra o bloco atual com relação a uma primeira imagem de referência e um segundo vetor de movimento para o bloco atual com relação a uma segunda imagem de referência. Como ilustrado na figura 65, o candi- dato a vetor de movimento de biprevisão no canto inferior esquerdo possui um primeiro vetor de movimento, a partir do bloco de imagem atual para um bloco de uma primeira imagem de referência, e um se- gundo vetor de movimento do bloco da imagem atual até um bloco de uma segunda imagem de referência. Como ilustrado, as primeira e se- gunda imagens de referência aparecem antes da imagem atual em uma ordem de exibição. O candidato a vetor de movimento de biprevi- são no canto inferior direito da figura 65 possui um primeiro vetor de movimento do bloco da imagem atual até um bloco de uma primeira imagem de referência, e um segundo vetor de movimento do bloco da imagem atual até um bloco de uma segunda imagem de referência. A primeira imagem de referência aparece antes da imagem atual em uma ordem de exibição, e a segunda imagem de referência aparece depois da imagem atual na ordem de exibição.
[00481] Em algumas modalidades, alguns formatos de partição po- dem ser associados a um tipo de vetor de movimento de previsão. Por exemplo, em algumas modalidades, as partições de formato triangular podem ser associadas aos candidatos a vetor de movimento de uni- previsão.
[00482] A previsão do primeiro conjunto de amostras pode incluir um processo de compensação de movimento com um ou mais vetores de movimento incluindo o primeiro vetor de movimento, e o processo de compensação de movimento pode prever as amostras a partir de uma imagem atual (intrabloco) ou prever amostras de uma segunda imagem diferente (interbloco), ou combinações das mesmas.
[00483] Na etapa S6002, um ou mais vetores de movimento, inclu- indo um segundo vetor de movimento, são obtidos a partir de uma se- gunda partição, diferente da primeira partição. A segunda partição po- de ser, por exemplo, uma partição espacialmente ou temporalmente localizada em conjunto da primeira partição. Uma parte da segunda partição pode se sobrepor espacialmente a uma parte da primeira par- tição. O segundo vetor de movimento pode ser obtido utilizando-se um processo de estimativa de movimento. Em algumas modalidades, o segundo vetor de movimento pode ser analisado a partir de uma se- quência de bits. Em algumas modalidades, o segundo vetor de movi- mento pode ser um vetor de movimento previsto a partir de um conjun- to de candidatos a vetor de movimento para pelo menos a segunda partição. Os candidatos a vetor de movimento de uma lista de candida- tos a vetor de movimento podem incluir candidatos a vetor de movi- mento derivados das partições espacialmente ou temporalmente vizi- nhas da segunda partição, ou podem derivar de uma lista de candida- tos a vetor de movimento para um bloco de imagem para um modo de previsão, tal como um modo de mistura, um modo de pulo ou outros intermodos. O segundo vetor de movimento pode ser um vetor de mo- vimento de uniprevisão ou um vetor de movimento de biprevisão.
[00484] Na etapa S6003, um segundo conjunto de amostras é pre- visto para uma parte da primeira partição com um ou mais vetores de movimento incluindo o segundo vetor de movimento. A primeira parte da primeira partição é menor do que a primeira partição e é posiciona- da adjacente a uma borda da primeira partição e se sobrepõe ao pri- meiro conjunto de amostras. A previsão do segundo conjunto de amostras pode incluir um processo de compensação de movimento com um ou mais vetores de movimento incluindo o segundo vetor de movimento, e o processo de compensação de movimento pode prever as amostras de uma imagem atual (intrabloco) ou prever amostras de uma imagem diferente (interbloco), ou combinações das mesmas. O segundo conjunto de amostras pode ser, por exemplo, blocos de pixel possuindo vetores de movimento associados, e componentes de pixel de luminescência e crominância. Por exemplo, cada amostra do se- gundo conjunto de amostras pode ser um bloco de 4 x 4 pixels associ- ado ao segundo vetor de movimento e possuindo componentes de pixel de luminescência e crominância associados.
[00485] A figura 66 é um diagrama conceitual para ilustrar exemplos da primeira parte da primeira partição e os primeiro e segundo conjun- tos de amostras. A primeira parte pode ser, por exemplo, um quarto da largura ou altura da primeira partição. Em outro exemplo, a primeira parte pode ter uma largura correspondente a N amostras adjacentes a uma borda da primeira partição, onde N é um inteiro superior a zero, por exemplo, N pode ser um inteiro igual a 2. Como ilustrado, o exem- plo à direita da figura 66 ilustra uma partição retangular possuindo uma parte retangular com uma largura que é um quarto da largura da pri- meira partição, com o primeiro conjunto de amostras incluindo amos- tras fora da primeira parte e amostras dentro da primeira parte, e o se- gundo conjunto de amostras incluindo amostras dentro da primeira parte. O exemplo no centro da figura 66 ilustra uma partição retangular possuindo uma parte retangular com uma altura que é um quarto da altura da primeira partição, com o primeiro conjunto de amostras inclu-
indo amostras fora da primeira parte e amostras dentro da primeira parte, e o segundo conjunto de amostras incluindo amostras dentro da primeira parte. O exemplo à esquerda da figura 66 ilustra uma partição triangular possuindo uma parte poligonal com uma altura que corres- ponde a duas amostras, com o primeiro conjunto de amostras incluin- do amostras fora da primeira parte e amostras dentro da primeira par- te, e o segundo conjunto de amostras incluindo amostras dentro da primeira parte.
[00486] A primeira parte pode ser uma parte da primeira partição que se sobrepõe a uma partição adjacente. A figura 67 é um diagrama conceitual para ilustrar uma primeira parte de uma primeira partição, que é uma parte da primeira partição que se sobrepõe a uma parte de uma partição adjacente. Para facilitar a ilustração, uma partição retan- gular, possuindo uma parte sobreposta a uma partição retangular es- pacialmente adjacente, é ilustrada. As partições possuindo outros for- matos, tal como partições triangulares, podem ser empregadas, e as partes sobrepostas podem se sobrepor a uma partição espacialmente ou temporalmente adjacente. A partição adjacente pode ser a segunda partição.
[00487] Na etapa S6004, um processo de ponderação é realizado para a primeira parte incluída na primeira partição utilizando um sub- conjunto do primeiro conjunto de amostras incluído na primeira parte, e o segundo conjunto de amostras incluído na primeira parte. A ponde- ração pode ser realizada como parte de um processo de suavização de limite, tal como um processo de compensação de movimento de bloco sobreposto (OBMC, ver figuras 35 e 36 e a descrição das mes- mas), os processos de suavização de limite descritos com referência às figuras de 47 a 61, etc. Por exemplo, os pixels do primeiro conjunto de amostras na primeira parte podem receber vários pesos, por exem- plo, com base em uma distância de uma amostra de uma borda da primeira partição com a qual a primeira parte está alinhada. Amostras mais próximas da borda podem receber pesos menores do que as amostras mais distantes da borda. De forma similar, os pixels do se- gundo conjunto de amostras na primeira parte da primeira partição po- dem receber vários pesos, por exemplo, com base em uma distância de uma amostra de uma borda da primeira partição com a qual a pri- meira parte está alinhada. Amostras mais próximas da borda podem receber pesos maiores do que as amostras mais distantes da borda.
[00488] Na etapa S6005, um ou mais vetores de movimento são armazenados para a primeira parte da primeira partição, os vetores de movimento armazenados sendo baseados em um ou ambos o primeiro vetor de movimento e o segundo vetor de movimento. Em algumas modalidades, os vetores de movimento armazenados podem levar em consideração as listas de imagem de referência para as quais o pri- meiro e o segundo vetores de movimento apontam.
[00489] Por exemplo, a figura 68 é um diagrama conceitual para ilustrar um caso ilustrativo no qual o primeiro vetor de movimento e o segundo vetor de movimento são vetores de movimento de uniprevi- são, apontando para imagens diferentes em listas de imagens de refe- rência diferentes. Em algumas modalidades, quando o primeiro vetor de movimento e o segundo vetor de movimento são vetores de movi- mento de uniprevisão apontando para imagens diferentes em listas de imagens de referência diferentes, os primeiro e segundo vetores de movimento podem ser combinados e armazenados como um vetor de movimento de biprevisão para a primeira parte da primeira partição. Como ilustrado na figura 68, a imagem atual é POC 4. O primeiro vetor de movimento Mv1 é um vetor de movimento de uniprevisão apontan- do para a imagem de referência POC 0 da lista de imagens de refe- rência L0, que inclui as imagens de referência POC 0 a POC 8. O se- gundo vetor de movimento Mv2 é um vetor de movimento de uniprevi-
são apontando para a imagem de referência POC 16 da lista de ima- gens de referência L1, que inclui as imagens de referência POC 8 a POC 16. O primeiro vetor de movimento Mv1 e o segundo vetor de movimento Mv2 são combinados e armazenados como um vetor de movimento de biprevisão para a primeira parte da primeira partição.
[00490] Em outro exemplo, a figura 69 é um diagrama conceitual para ilustrar um caso no qual o primeiro vetor de movimento e o se- gundo vetor de movimento são vetores de movimento de uniprevisão apontando para imagens em uma única lista de imagens de referência. Um vetor de movimento de biprevisão aponta para duas listas de ima- gens de referência diferentes. Dessa forma, a simples combinação dos primeiro e segundo vetores não produzirá um vetor de movimento de biprevisão. Em algumas modalidades, quando primeiro vetor de movi- mento e o segundo vetor de movimento são vetores de movimento de uniprevisão, apontando para imagens de referência diferentes de uma única lista de imagens de referência, se uma das imagens de referên- cia apontada for, por exemplo, incluída em outra lista de imagens de referência, o vetor de movimento associado a essa imagem (por exemplo, o segundo vetor de movimento se a imagem de referência para a qual aponta for incluída em ambas as listas de imagens de refe- rência) pode ser representado por um vetor de movimento apontando para a mesma imagem de referência na outra lista de imagens de refe- rência. Os primeiro e segundo vetores de movimento podem ser com- binados pela substituição do vetor de movimento associado pela ima- gem de referência com um vetor de movimento de substituição apon- tando para a imagem de referência na outra lista de imagens de refe- rência, e armazenados como um vetor de movimento de biprevisão para a primeira parte da primeira partição. Como ilustrado na figura 69, a imagem atual é POC 4. O primeiro vetor de movimento Mv1 é um vetor de movimento de uniprevisão apontando para a imagem de refe-
rência POC 0 da lista de imagens de referência L0, que inclui as ima- gens de referência POC 0 a POC 8. O segundo vetor de movimento Mv2 é um vetor de movimento de uniprevisão apontando para a ima- gem de referência POC 8 da lista de imagens de referência L0. A ima- gem de referência POC 8 também é incluída na lista de imagens de referência L1. O segundo vetor de movimento Mv2 é substituído pelo vetor de movimento de substituição Mv2', que aponta para a imagem de referência POC 8 na lista de imagens de referência L1. O primeiro vetor de movimento Mv1 e o segundo vetor de movimento de substi- tuição Mv2' são combinados e armazenados como um vetor de movi- mento de biprevisão para a primeira parte da primeira partição. Em outras palavras, listas diferentes podem ser utilizadas e apontam para a mesma imagem.
[00491] Em outro exemplo, as figuras 70, 71 e 72 são diagramas conceituais para ilustrar um caso ilustrativo no qual o primeiro vetor de movimento e o segundo vetor de movimento são vetores de movimen- to de uniprevisão apontando para a mesma imagem de referência na mesma lista de imagens de referência. Em algumas modalidades, quando o primeiro vetor de movimento e o segundo vetor de movimen- to são vetores de movimento de uniprevisão apontando para a mesma imagem de referência na mesma lista de imagens de referência, o pri- meiro vetor de movimento é armazenado como um vetor de movimen- to de uniprevisão para a primeira parte da primeira partição. Como ilustrado na figura 70, a imagem atual é POC 4. O primeiro vetor de movimento Mv1 é um vetor de movimento de uniprevisão apontando para a imagem de referência POC 0 da lista de imagens de referência L0, que inclui as imagens de referência POC 0 a POC 8. O segundo vetor de movimento Mv2 é um vetor de movimento de uniprevisão apontando para a imagem de referência POC 0 da lista de imagens de referência L0. O primeiro vetor de movimento Mv1 é armazenado co-
mo um vetor de movimento de uniprevisão para a primeira parte da primeira partição.
[00492] Em algumas modalidades, quando o primeiro vetor de mo- vimento e o segundo vetor de movimento são vetores de movimento de uniprevisão, apontando para a mesma imagem de referência na mesma lista de imagens de referência, o segundo vetor de movimento é armazenado como um vetor de movimento de uniprevisão para a primeira parte da primeira partição. Como ilustrado na figura 71, a imagem atual é POC 4. O primeiro vetor de movimento Mv1 é um vetor de movimento de uniprevisão apontando para a imagem de referência POC 0 da lista de imagens de referência L0, que inclui as imagens de referência POC 0 a POC 8. O segundo vetor de movimento Mv2 é um vetor de movimento de uniprevisão que aponta para a imagem de refe- rência POC 0 da lista de imagens de referência L0. O segundo vetor de movimento Mv2 é armazenado como um vetor de movimento de uniprevisão para a primeira parte da primeira partição.
[00493] Em algumas modalidades, quando o primeiro vetor de mo- vimento e o segundo vetor de movimento são vetores de movimento de uniprevisão, apontando para a mesma imagem de referência na mesma lista de imagens de referência, o segundo vetor de movimento é substituído por um vetor de movimento virado que aponta para uma imagem de referência de outra lista de imagens de referência, e o pri- meiro vetor de movimento e o vetor de movimento virado são combi- nados e armazenados como um vetor de movimento de biprevisão pa- ra a primeira parte da primeira partição. Como ilustrado na figura 72, a imagem atual é POC 4. O primeiro vetor de movimento Mv1 é um vetor de movimento de uniprevisão apontando para a imagem de referência POC 0 da lista de imagens de referência L0, que inclui as imagens de referência POC 0 a POC 8. O segundo vetor de movimento Mv2 é um vetor de movimento de uniprevisão apontando para a imagem de refe-
rência POC 0 da lista de imagens de referência L0. O segundo vetor de movimento Mv2 é substituído por um vetor de movimento virado Mv2' apontando para uma imagem de referência na lista de imagens de referência L1, ilustrada como a imagem de referência POC 9 da lista de imagens de referência L1. O primeiro vetor de movimento Mv1 e o vetor de movimento virado Mv2' são combinados e armazenados como o vetor de movimento de biprevisão para a primeira parte da primeira partição. A imagem de referência de outra lista de imagens de referência pode ser selecionada de várias formas. Por exemplo, uma imagem de referência, em uma mesma posição na lista de imagens de referência L1 que a posição da imagem de referência à qual o segun- do vetor de movimento aponta na lista de imagens de referência L0, pode ser selecionada, uma imagem de referência na lista de imagens de referência L1, que está à mesma distância na ordem de exibição da imagem atual que a distância na ordem de exibição da imagem de re- ferência para a qual o segundo vetor de movimento aponta na lista de imagens de referência L0, pode ser selecionada, etc. O vetor de mo- vimento virado pode ser escalonado como necessário dependendo da imagem de referência de outra lista de imagens de referência para a qual o vetor de movimento virado aponta.
[00494] Em algumas modalidades, um vetor de previsão bidirecio- nal, com base nos primeiro e segundo vetores de movimento, é arma- zenado para a primeira parte da primeira partição quando for possível se fazer isso sem virar ou escalonar um dentre o primeiro e segundo vetores de movimento (ver, por exemplo, as modalidades da figura 68 e figura 69), e um vetor de movimento de uniprevisão é armazenado para a primeira parte da primeira partição quando não for possível se gerar um vetor de movimento de biprevisão sem virar ou escalonar um dos primeiro e segundo vetores de movimento (ver, por exemplo, figu- ras 70 e 71), onde um dentre o primeiro vetor de movimento ou o se-
gundo vetor de movimento é armazenado como um vetor de movimen- to de uniprevisão para a primeira parte da primeira partição.
[00495] Em outro exemplo, quando os primeiro e segundo vetores de movimento são vetores de movimento de uniprevisão apontando para uma mesma imagem de referência, os primeiro e segundo veto- res de movimento podem ser calculados para gerar um vetor de mo- vimento de uniprevisão que é armazenado como um vetor de movi- mento de uniprevisão para a primeira parte da primeira partição.
[00496] Em outro exemplo, um dos primeiro e segundo vetores de movimento pode ser um vetor de movimento de biprevisão, e o outro pode ser um vetor de movimento de uniprevisão. O vetor de movimen- to de biprevisão pode ser armazenado como o vetor de movimento pa- ra a primeira parte da primeira partição.
[00497] Em outro exemplo, ambos os primeiro e segundo vetores de movimento podem ser vetores de movimento de biprevisão e as imagens de referência do primeiro vetor de movimento podem ser iguais às do segundo vetor de movimento. Os primeiro e segundo ve- tores de movimento podem ser calculados para se gerar um vetor de movimento de biprevisão que é armazenado como um vetor de movi- mento de biprevisão para a primeira parte da primeira partição.
[00498] Em outro exemplo, ambos os primeiro e segundo vetores de movimento podem ser vetores de movimento de biprevisão e as imagens de referência do primeiro vetor de movimento podem ser dife- rentes das do segundo vetor de movimento. O segundo vetor de mo- vimento pode ser escalonado para as imagens de referência do primei- ro vetor de movimento, e calculado com o primeiro vetor de movimen- to, gerando um vetor de movimento de biprevisão médio, que pode ser armazenado como um vetor de movimento de biprevisão da primeira parte da primeira partição.
[00499] Em outro exemplo, o primeiro vetor de movimento pode ser armazenado como o vetor de movimento da primeira parte da primeira partição, por exemplo, sempre, ou quando determinadas condições existirem. Em outro exemplo, o segundo vetor de movimento pode ser armazenado como o vetor de movimento da primeira parte da primeira partição, por exemplo, sempre, ou quando determinadas condições existirem. Na etapa S6006, a primeira partição é codificada ou decodi- ficada utilizando-se pelo menos as amostras ponderadas da primeira parte da primeira partição. Por exemplo, os valores de componente de pixel ponderado (por exemplo, valores de luminescência, valores de crominância) de uma amostra do primeiro conjunto de amostras e os valores de componente de pixel ponderado de uma amostra corres- pondente do segundo conjunto de amostras podem ser combinados para determinar os valores de componente de pixel empregados no processo de codificação ou decodificação. Ver, por exemplo, figuras de 47 a 61 e as descrições correspondentes das mesmas.
[00500] As modalidades descritas introduzem métodos de armaze- namento de um vetor de movimento de uma área ponderada (por exemplo, a primeira parte da primeira partição nos exemplos descri- tos). Isso pode aperfeiçoar a precisão da previsão de vetor de movi- mento para a próxima partição de codificação, o que pode aperfeiçoar a eficiência da codificação. Deve-se notar que os vetores de movimen- to de uma área ponderada podem ser tipicamente armazenados para blocos de quatro pixels. Por exemplo, cada amostra pode ser um bloco de 4 x 4 pixels para o qual um vetor de movimento é armazenado. Um vetor de movimento de uniprevisão ou um vetor de movimento de bi- previsão para uma área ponderada pode ser armazenado sem resultar em um aumento significativo, ou em qualquer um, na quantidade de memória empregada para armazenar os vetores de movimento para a área ponderada.
[00501] É notado que o termo "codificação" utilizado na descrição para o método de codificação e o processo de codificação realizados por um dispositivo de codificação de imagem pode ser substituído pelo termo "decodificação" para um método de decodificação e um proces- so de decodificação realizados por um dispositivo de decodificação de imagem. Todos os processos e elementos descritos nem sempre são necessários, e um ou mais dos processos descritos podem ser omiti- dos em algumas modalidades.
[00502] Um ou mais dos aspectos descritos aqui podem ser reali- zados pela combinação de pelo menos parte de outros aspectos na presente descrição. Adicionalmente, um ou mais dos aspectos descri- tos aqui podem ser realizados pela combinação, com outros aspectos, de parte dos processos indicados em qualquer um dos fluxogramas, de acordo com os aspectos, parte da configuração de qualquer um dos dispositivos, parte das sintaxes, etc. Implementações e Aplicações
[00503] Como descrito em cada uma das modalidades acima, cada bloco funcional ou operacional pode ser tipicamente realizado como uma MPU (unidade de microprocessamento) e memória, por exemplo. Ademais, os processos realizados por cada um dos blocos funcionais pode ser realizado como uma unidade de execução de programa, tal como um processador que lê e executa software (um programa) gra- vado em um meio de gravação, tal como ROM. O software pode ser distribuído. O software pode ser gravado em uma variedade de meios de gravação, tal como memória semicondutora. Note-se que cada blo- co funcional também pode ser realizado como hardware (circuito dedi- cado). Várias combinações de hardware e software podem ser empre- gadas.
[00504] O processamento descrito em cada uma das modalidades pode ser realizado através de processamento integrado utilizando um único aparelho (sistema), e, alternativamente, pode ser realizado atra-
vés do processamento descentralizado utilizando uma pluralidade de aparelhos. Ademais, o processador que executa o programa descrito acima pode ser um processador singular ou uma pluralidade de pro- cessadores. Em outras palavras, o processamento integrado pode ser realizado, e, alternativamente, o processamento descentralizado pode ser realizado.
[00505] As modalidades da presente descrição não estão limitadas às modalidades ilustrativas acima; várias modificações podem ser fei- tas às modalidades ilustrativas, os resultados das quais também são incluídos no escopo das modalidades da presente descrição.
[00506] A seguir, os exemplos de aplicação do método de codifica- ção de imagem em movimento (método de codificação de imagem) e o método de decodificação de imagem em movimento (método de deco- dificação de imagem) descritos em cada uma das modalidades acima serão descritos, além de vários sistemas que implementam os exem- plos de aplicativo. Tal sistema pode ser 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 de- codificação de imagem, ou um codificador-decodificador que inclui ambos o codificador de imagem e o decodificador de imagem. Outras configurações de tal sistema podem ser modificadas caso a caso. Exemplos de Utilização
[00507] A figura 73 ilustra uma configuração geral do sistema de fornecimento de conteúdo ex100 adequado para implementar um ser- viço de distribuição de conteúdo. A área na qual o serviço de comuni- cação é fornecido é dividida em células de tamanhos desejados, e as estações base ex106, ex107, ex108, ex109 e ex110, que são estações sem fio fixas no exemplo ilustrado, estão localizadas em células res- pectivas.
[00508] No sistema de fornecimento de conteúdo ex100, os disposi-
tivos que incluem o computador ex111, o dispositivo de jogos ex112, a câmera ex113, o eletrodoméstico ex114, e o smartphone ex115 são conectados à Internet ex101 através do provedor de serviço de Inter- net ex102 ou rede de comunicações ex104 e estações base ex106 a ex110. O sistema de fornecimento de conteúdo ex100 pode combinar e conectar qualquer combinação dos dispositivos acima. Em várias implementações, os dispositivos podem ser conectados, direta ou indi- retamente, juntos através de uma rede de telefonia ou comunicação de campo próximo, em vez de através de estações base ex106 a ex110. Adicionalmente, o servidor de transmissão ex103 pode ser conectado aos dispositivos incluindo o computador ex111, o dispositivo de jogos ex112, a câmera ex113, o eletrodoméstico ex114, e o smartphone ex115 através, por exemplo, da Internet ex101. O servidor de trans- missão ex103 também pode ser conectado, por exemplo, a um termi- nal em um hotspot na aeronave ex117 através do satélite ex116.
[00509] Note-se que em vez das estações base ex106 a ex110, os pontos de acesso sem fio ou hotspots podem ser utilizados. O servidor de transmissão ex103 pode ser conectado à rede de comunicações ex104 diretamente em vez de através da Internet ex101 ou do prove- dor de serviço de Internet ex102, e pode ser conectado à aeronave ex117 diretamente em vez de através do satélite ex116.
[00510] A câmera ex113 é um dispositivo capaz de capturar ima- gens estáticas e vídeo, tal como uma câmera digital. O smartphone ex115 é um dispositivo smartphone, um telefone celular, ou um telefo- ne do sistema de handyphone pessoal (PHS) que pode operar sob os padrões do sistema de comunicações móveis dos sistemas 2G, 3G, 3,9G e 4G, além do sistema 5G de próxima geração.
[00511] O eletrodoméstico ex114 é, por exemplo, um refrigerador ou um dispositivo incluído em um sistema de geração conjunta de cé- lula de combustível doméstica.
[00512] No sistema de fornecimento de conteúdo ex100, um termi- nal, incluindo uma função de captura de imagem e/ou vídeo é capaz de, por exemplo, transmitir ao vivo por conexão ao servidor de trans- missão ex103 através, por exemplo, da estação base ex106. Quando da transmissão ao vivo, um terminal (por exemplo, um computador ex111, um dispositivo de jogos ex112, uma câmera ex113, um eletro- doméstico ex114, um smartphone ex115 ou um terminal na aeronave ex117) pode realizar o processamento de codificação descrito nas modalidades acima no conteúdo de imagem estática ou vídeo captu- rado por um usuário através do terminal, pode multiplexar dados de vídeo obtidos através da codificação e dados de áudio obtidos pela codificação de áudio correspondendo ao vídeo, e pode transmitir os dados obtidos para o servidor de transmissão ex103. Em outras pala- vras, o terminal funciona como o codificador de imagem de acordo com um aspecto da presente descrição.
[00513] O servidor de transmissão ex103 transmite os dados de conteúdo transmitidos para os clientes que solicitam a transmissão. Exemplos de clientes incluem o computador ex111, o dispositivo de jogos ex112, a câmera ex113, o eletrodoméstico ex114, o smartphone ex115, e os terminais dentro da aeronave ex117, que podem decodifi- car os dados codificados descritos acima. Os dispositivos que rece- bem os dados transmitidos podem decodificar e reproduzir os dados recebidos. Em outras palavras, os dispositivos podem, cada um, funci- onar como o decodificador de imagem, de acordo com um aspecto da presente descrição. Processamento Descentralizado
[00514] O servidor de transmissão ex103 pode ser realizado como uma pluralidade de servidores ou computadores entre os quais as ta- refas, tal como processamento, gravação e transmissão de dados são divididas. Por exemplo, o servidor de transmissão ex103 pode ser rea-
lizado como uma rede de distribuição de conteúdo (CDN) que transmi- te conteúdo através de uma rede conectando múltiplos servidores de borda localizados por todo o mundo. Em uma CDN, um servidor de borda fisicamente próximo do cliente pode ser dinamicamente desig- nado para o cliente. O conteúdo é armazenado temporariamente e transmitido para o servidor de borda para reduzir os tempos de carga. No caso, por exemplo, de algum tipo de erro ou mudança na conecti- vidade decorrente, por exemplo, de um pico no tráfego, é possível se transmitir os dados de forma estável em altas velocidades, visto que é possível se evitar as partes afetadas da rede, por exemplo, pela divi- são do processamento entre uma pluralidade de servidores de borda, ou comutação das tarefas de transmissão para um servidor de borda diferente e continuando com a transmissão.
[00515] A descentralização não está limitada apenas à divisão de processamento para transmissão; a codificação dos dados capturados pode ser dividida entre e realizada pelos terminais, no lado do servi- dor, ou ambos. Em um exemplo, na codificação típica, o processamen- to é realizado em dois circuitos. O primeiro circuito serve para detectar o quão complicada a imagem é, quadro a quadro, ou cena a cena, ou detectar a carga de codificação. O segundo circuito serve para o pro- cessamento que mantém a qualidade de imagem e aperfeiçoa a efici- ência de codificação. Por exemplo, é possível se reduzir a carga de processamento dos terminais e aperfeiçoar a qualidade e eficiência de codificação do conteúdo fazendo que os terminais realizem o primeiro circuito de codificação e fazendo com que o lado de servidor que rece- beu o conteúdo realize o segundo circuito de codificação. Em tal caso, depois do recebimento de uma solicitação de decodificação, é possível que os dados codificados, resultantes do primeiro circuito realizado por um terminal, sejam recebidos e reproduzidos em outro terminal quase que em tempo real. Isso possibilita a realização da transmissão suave em tempo real.
[00516] Em outro exemplo, a câmera ex113, ou similar, extrai uma quantidade de característica (uma quantidade de características) de uma imagem, comprime os dados relacionados com a quantidade de características como metadados, e transmite os metadados comprimi- dos para um servidor. Por exemplo, o servidor determina a significân- cia de um objeto com base na quantidade de característica e altera a precisão de quantização de acordo para realizar a compressão ade- quada para o significado (ou significância de conteúdo) da imagem. Os dados de quantidade de característica são particularmente eficientes no fornecimento de precisão e eficiência da previsão de vetor de mo- vimento durante a segunda passagem de compressão realizada pelo servidor. Ademais, a codificação que possui uma carga de processa- mento relativamente baixa, tal como codificação de comprimento vari- ável (VLC), pode ser manuseada pelo terminal, e a codificação que possui uma carga de processamento relativamente alta, tal como a codificação aritmética binária adaptativa de contexto (CABAC), pode ser manuseada pelo servidor.
[00517] Em ainda outro exemplo, existem casos nos quais uma plu- ralidade de vídeos quase que da mesma cena é capturada por uma pluralidade de terminais, por exemplo, em um estágio, shopping cen- ter, ou fábrica. Em tal caso, por exemplo, a codificação pode ser des- centralizada pela divisão de tarefas de processamento entre a plurali- dade de terminais que capturaram os vídeos e, se necessário, outros terminais que não capturaram os vídeos, e o servidor, com base em unidade. As unidades podem ser, por exemplo, grupos de imagens (GOP), imagens ou “tiles” resultando da divisão de uma imagem. Isso pode possibilitar a redução dos tempos de carga e alcançar a trans- missão que é mais próxima do tempo real.
[00518] Visto que os vídeos são aproximadamente da mesma cena,
o gerenciamento e/ou as instruções podem ser realizados pelo servi- dor de modo que os vídeos capturados pelos terminais possam sofrer referência cruzada. Adicionalmente, o servidor pode receber dados codificados dos terminais, alterar a relação de referência entre os itens de dados, ou corrigir ou substituir imagens propriamente ditas, e, en- tão, realizar a codificação. Isso possibilita a geração de uma sequência com qualidade e eficiência aumentadas para os itens individuais de dados.
[00519] Adicionalmente, o servidor pode transmitir dados de vídeo depois da realização da transcodificação para converter o formato de codificação de dados de vídeo. Por exemplo, o servidor pode converter o formato de codificação de MPEG para VP (por exemplo, VP9), pode converter H.264 a H.265, etc.
[00520] Dessa forma, a codificação pode ser realizada por um ter- minal ou um ou mais servidores. De acordo, apesar de o dispositivo, que realiza a codificação, ser referido como um "servidor" ou "terminal" na descrição a seguir, alguns ou todos os processos realizados pelo servidor podem ser realizados pelo terminal, e, da mesma forma, al- guns ou todos os processos realizados pelo terminal podem ser reali- zados pelo servidor. Isso também se aplica a processos de decodifica- ção. 3D, Múltiplos Ângulos
[00521] Tem havido um aumento na utilização de imagens ou ví- deos combinados a partir de imagens ou vídeos de cenas diferentes capturadas simultaneamente, ou da mesma cena capturada a partir de ângulos diferentes, por uma pluralidade de terminais, tal como a câme- ra ex113 e/ou smartphone ex115. Os vídeos capturados pelos termi- nais podem ser combinados com base, por exemplo, na relação de posição relativa obtida separadamente entre os terminais, ou regiões em um vídeo possuindo pontos de característica coincidentes.
[00522] Em adição à codificação de imagens em movimento bidi- mensionais, o servidor pode codificar uma imagem estática com base na análise de cena de uma imagem em movimento, automaticamente ou em um momento especificado pelo usuário, e transmitir a imagem estática codificada para um terminal de recepção. Adicionalmente, quando o servidor pode obter a relação de posição relativa entre os terminais de captura de vídeo, em adição às imagens em movimento bidimensionais, o servidor pode gerar a geometria tridimensional de uma cena com base no vídeo da mesma cena, capturado a partir de ângulos diferentes. O servidor pode codificar separadamente os dados tridimensionais gerados a partir de, por exemplo, uma nuvem de pon- tos e, com base em um resultado de reconhecimento ou rastreamento de uma pessoa ou objeto, utilizando os dados tridimensionais, pode selecionar ou reconstruir e gerar um vídeo a ser transmitido para um terminal de recepção a partir dos vídeos capturados por uma plurali- dade de terminais.
[00523] Isso permite que o usuário aproveite uma cena pela sele- ção livre de vídeos que correspondem aos terminais de captura de ví- deo, e permite que o usuário aproveite o conteúdo obtido pela extra- ção de um vídeo em um ponto de vista selecionado a partir de dados tridimensionais reconstruídos a partir de uma pluralidade de imagens ou vídeos. Adicionalmente, como com o vídeo, o som pode ser grava- do a partir de ângulos relativamente diferentes, e o servidor pode mul- tiplexar o áudio a partir de um ângulo ou espaço específico com o ví- deo correspondente, e transmitir o vídeo e áudio multiplexados.
[00524] Recentemente, o conteúdo, que é um composto de mundo real e um mundo virtual, tal como conteúdo de realidade virtual (VR) e a realidade aumentada (AR), também tem se tornado popular. No caso de imagens VR, o servidor pode criar imagens a partir do ponto de vis- ta de ambos os olhos esquerdo e direito, e realizar a codificação que tolera a referência entre as duas imagens de ponto de vista, tal como a codificação de múltiplas visualizações (MVC), e, alternativamente, po- de codificar as imagens como sequências separadas sem referência. Quando as imagens são decodificadas como sequências separadas, as sequências podem ser sincronizadas quando reproduzidas, de mo- do a recriar um espaço tridimensional virtual de acordo com o ponto de vista do usuário.
[00525] No caso de imagens AR, o servidor pode sobrepor a infor- mação de objeto virtual existente em um espaço virtual à informação de câmera que representa um espaço no mundo real, com base em uma posição tridimensional ou movimento da perspectiva do usuário. O decodificador pode obter ou armazenar a informação de objeto vir- tual e dados tridimensionais, gerar as imagens bidimensionais com base no movimento da perspectiva do usuário e, então, gerar os dados sobrepostos pela conexão contínua das imagens. Alternativamente, o decodificador pode transmitir, para o servidor, o movimento da pers- pectiva do usuário, em adição a uma solicitação por informação de ob- jeto virtual. O servidor pode gerar dados sobrepostos com base em dados tridimensionais armazenados no servidor, de acordo com o mo- vimento recebido, e codificar e transmitir os dados sobrepostos gera- dos para o decodificador. Note-se que os dados sobrepostos incluem, tipicamente, em adição aos valores RGB, um valor  que indica trans- parência, e o servidor configura o valor  para seções além do objeto gerado a partir dos dados tridimensionais para, por exemplo 0, e pode realizar a codificação enquanto essas seções estão transparentes. Al- ternativamente, o servidor pode configurar o fundo para um valor RGB determinado, tal como uma chave de crominância, e gerar dados em áreas nas quais outros, além do objeto, são configurados como fundo. O valor RGB determinado pode ser predeterminado.
[00526] A decodificação de dados transmitidos de forma similar po-
de ser realizada pelo cliente (por exemplo, os terminais), no lado do servidor, ou dividida entre os mesmos. Em um exemplo, um terminal pode transmitir uma solicitação de recepção para um servidor, o con- teúdo solicitado pode ser recebido e decodificado por outro terminal, e um sinal decodificado pode ser transmitido para um dispositivo pos- suindo um monitor. É possível se reproduzir dados com alta qualidade de imagem pela descentralização do processamento e seleção ade- quada do conteúdo independentemente da capacidade de processa- mento do terminal de comunicações propriamente dito. Em outro exemplo, enquanto uma TV, por exemplo, está recebendo dados de imagem que são maiores em tamanho, uma região de uma imagem, tal como um “tile” obtido pela divisão da imagem, pode ser decodifica- da e exibida em um terminal ou terminais pessoais de um espectador ou espectadores da TV. Isso possibilita que os espectadores comparti- lhem uma visão de imagem grande além de que cada espectador veri- fique sua área designada, ou inspecione uma região em maiores deta- lhes.
[00527] Em situações nas quais uma pluralidade de conexões sem fio são possíveis através de distâncias próximas, intermediárias e grandes, internamente ou externamente, pode ser possível se receber, de forma contínua, o conteúdo utilizando um padrão de sistema de transmissão, tal como MPEG-DASH. O usuário pode comutar entre dados em tempo real, enquanto seleciona livremente um decodificador ou aparelho de exibição incluindo o terminal do usuário, monitores dis- postos internamente ou externamente, etc. Ademais, utilizando-se, por exemplo, a informação sobre a posição do usuário, a decodificação pode ser realizada enquanto se comuta que terminal manuseia a de- codificação e que terminal manuseia a exibição do conteúdo. Isso pos- sibilita o mapeamento e exibição da informação, enquanto o usuário está em movimento em rota para um destino, na parede de um edifício próximo no qual um dispositivo, capaz de exibir o conteúdo, é embuti- do, ou em parte do chão. Ademais, é possível também se comutar a taxa de bits dos dados recebidos com base na acessibilidade aos da- dos codificados em uma rede, tal como quando os dados codificados são armazenados temporariamente em um servidor prontamente acessível a partir do terminal de recepção, ou quando os dados codifi- cados são copiados para um servidor de borda em um serviço de dis- tribuição de conteúdo. Codificação Escalonável
[00528] A comutação de conteúdo será descrita com referência a uma transmissão escalonável, ilustrada na figura 74, que é a codifica- da por compressão através da implementação do método de codifica- ção de imagem em movimento descrito nas modalidades acima. O servidor pode possuir uma configuração na qual o conteúdo é comuta- do enquanto faz uso da capacidade de escalonamento temporal e/ou espacial de uma transmissão, que é alcançada pela divisão e codifica- ção de camadas, como ilustrado na figura 74. Note-se que pode haver uma pluralidade de transmissões individuais que são iguais ao mesmo conteúdo, mas de qualidade diferente. Em outras palavras, pela de- terminação de que camada decodificar, com base nos fatores internos, tal como capacidade de processamento no lado do decodificador, e fatores externos, tal como largura de banda de comunicação, o lado decodificador pode comutar livremente entre o conteúdo de baixa re- solução e o conteúdo de alta resolução durante a decodificação. Por exemplo, em um caso no qual o usuário deseja continuar a assistir, por exemplo, em casa em um dispositivo, tal como uma TV conectada à Internet, a um vídeo que o usuário esteve assistindo previamente no smartphone ex115 enquanto estava em movimento, o dispositivo pode decodificar simplesmente a mesma transmissão até uma camada dife- rente, o que reduz a carga do lado do servidor.
[00529] Adicionalmente, em adição à configuração descrita acima, na qual a capacidade de escalonamento é alcançada como resultado das imagens sendo codificadas por camada, com a camada de aper- feiçoamento estando acima da camada de base, a camada de aperfei- çoamento pode incluir metadados com base, por exemplo, na informa- ção estatística na imagem. O lado do decodificador pode gerar conte- údo de alta qualidade de imagem pela realização da criação de ima- gem de super resolução em uma imagem na camada de base com ba- se nos metadados. A criação de imagem de super resolução pode aperfeiçoar a razão SN, enquanto se mantém a resolução e/ou se au- menta a resolução. Os metadados incluem a informação para identifi- car um coeficiente de filtro linear ou não linear, como utilizado no pro- cessamento de super resolução, ou informação identificando um valor de parâmetro no processamento de filtro, aprendizado de máquina, ou método de quadrados médios utilizado no processamento de super resolução.
[00530] Alternativamente, uma configuração pode ser evitada, na qual uma imagem é dividida, por exemplo, em “tiles” de acordo com, por exemplo, o significado de um objeto na imagem. No lado do deco- dificador, apenas uma região parcial é decodificada pela seleção de um “tile” a ser decodificado. Adicionalmente, pelo armazenamento de um atributo do objeto (pessoa, carro, bola, etc.) e uma posição do ob- jeto no vídeo (coordenadas nas imagens idênticas) como metadados, o lado do decodificador pode identificar a posição de um objeto dese- jado com base nos metadados e determinar que “tile” ou “tiles” incluem esse objeto. Por exemplo, como ilustrado na figura 75, os metadados podem ser armazenados utilizando-se uma estrutura de armazena- mento de dados diferente dos dados de pixel, tal como uma mensa- gem SEI (informação de aperfeiçoamento suplementar) em HEVC. Es- ses metadados indicam, por exemplo, a posição, o tamanho, ou cor do objeto principal.
[00531] Os metadados podem ser armazenados em unidades den- tre uma pluralidade de imagens, tal como uma transmissão, sequên- cia, ou unidades de acesso randômico. O lado do decodificador pode obter, por exemplo, o momento no qual uma pessoa específica apare- ce no vídeo, e pelo encaixe da informação de tempo com a informação de unidade de imagem, pode identificar uma imagem na qual o objeto está presente, e pode determinar a posição do objeto na imagem. Otimização de Página da Rede
[00532] A figura 76 ilustra um exemplo de uma tela de exibição de uma página da rede no computador ex111, por exemplo. A figura 77 ilustra um exemplo de uma tela de exibição de uma página da rede no smartphone ex115, por exemplo. Como ilustrado na figura 76 e na fi- gura 77, uma página da rede pode incluir uma pluralidade de links de imagem que são links para conteúdo de imagem, e a aparência da pá- gina da rede pode diferir dependendo do dispositivo utilizado para vi- sualizar a página da rede. Quando uma pluralidade de links de ima- gem é visualizável na tela, até que o usuário selecione explicitamente um link de imagem, ou até que o link de imagem esteja no centro aproximado da tela, ou que todo o link de imagem encaixe na tela, o aparelho de exibição (decodificador) pode exibir, como os links de imagem, imagens estáticas incluídas no conteúdo ou imagens I; pode exibir vídeo, tal como um gif animado, utilizando uma pluralidade de imagens estáticas ou imagens I; ou pode receber apenas a camada de base, e decodificar e exibir o vídeo.
[00533] Quando um link de imagem é selecionado pelo usuário, o aparelho de exibição realiza a decodificação enquanto, por exemplo, fornece a maior prioridade para a camada de base. Note-se que se houver informação no código HTML da página de rede indicando que o conteúdo é escalonável, o aparelho de exibição pode decodificar até a camada de aperfeiçoamento. Adicionalmente, a fim de se garantir a reprodução em tempo real, antes de uma seleção ser feita ou quando a largura de banda é seriamente limitada, o aparelho de exibição pode reduzir o retardo entre o momento no qual a imagem dianteira é deco- dificada e o momento no qual a imagem decodificada é exibida (isso é, o retardo entre o início da decodificação do conteúdo até a exibição do conteúdo) pela decodificação e exibição apenas de imagens de refe- rência dianteiras (imagem I, imagem P, imagem B de referência dian- teira). Adicionalmente ainda, o aparelho de exibição pode ignorar pro- positadamente a relação de referência entre as imagens, e decodificar de forma aproximada todas as imagens B e P como imagens de refe- rência dianteiras, e, então, realizar a decodificação normal à medida que o número de imagens recebidas com o tempo diminui. Direção Autônoma
[00534] Quando da transmissão e recepção de dados de imagem estática ou vídeo, tal como informação de mapa bi ou tridimensional, para a direção autônoma ou direção assistida de um automóvel, o ter- minal de recepção pode receber, em adição aos dados de imagem pertencentes a uma ou mais camadas, informação, por exemplo, sobre o clima ou obras na estrada, como metadados, e associar os metada- dos aos dados de imagem depois da decodificação. Note-se que os metadados podem ser designados por camada e, alternativamente, podem ser simplesmente multiplexados com os dados de imagem.
[00535] Em tal caso, visto que o automóvel, drone, aeronave, etc., contendo o terminal de recepção, é móvel, o terminal de recepção po- de receber continuamente, e realizar a decodificação enquanto comuta entre as estações base, dentre as estações base ex106 a ex110, pela transmissão da informação que indica a posição do terminal de recep- ção. Ademais, de acordo com a seleção realizada pelo usuário, a situ- ação do usuário, e/ou a largura de banda da conexão, o terminal de recepção pode selecionar dinamicamente até que ponto os metadados são recebidos, ou até que ponto a informação de mapa, por exemplo, está atualizada.
[00536] No sistema de fornecimento de conteúdo ex100, o cliente pode receber, decodificar e reproduzir, em tempo real, a informação codificada transmitida pelo usuário. Transmissão de Conteúdo Individual
[00537] No sistema de fornecimento de conteúdo ex100, em adição, ao conteúdo longo, de alta qualidade de imagem, distribuído por uma entidade de distribuição de vídeo, a transmissão de unidifusão ou mul- tidifusão de um conteúdo curto e de baixa qualidade de imagem a par- tir de um indivíduo, também é possível. Tal conteúdo de indivíduos tem chances de crescer em termos de popularidade. O servidor pode, pri- meiro, realizar o processo de edição no conteúdo antes do processa- mento de codificação, a fim de refinar o conteúdo de indivíduo. Isso pode ser alcançado utilizando-se a configuração a seguir, por exem- plo.
[00538] Em tempo real, enquanto se captura conteúdo de vídeo ou imagem, ou depois de o conteúdo ter sido capturado e acumulado, o servidor realiza o processamento de reconhecimento com base nos dados brutos ou dados codificados, tal como processamento de erro de captura, processamento de busca por cena, análise de significado, e/ou processamento de detecção de objeto. Então, com base no resul- tado do processamento de reconhecimento, o servidor – seja quando avisado ou automaticamente – edita o conteúdo, exemplos do qual in- cluem: correção, tal como correção de foco e/ou mancha de movimen- to; remoção de cenas de baixa prioridade, tal como cenas que apre- sentam pouco brilho em comparação com outras imagens, ou fora de foco; ajuste de borda de objeto; e ajuste de tom de cor. O servidor co- difica os dados editados com base no resultado da edição. É sabido que vídeos excessivamente longos tendem a receber menos visualiza- ções. De acordo, a fim de se manter o conteúdo dentro de um com- primento específico que se compare ao comprimento do vídeo original, o servidor pode, em adição às cenas de baixa prioridade descritas acima, remover automaticamente as cenas com baixo movimento, com base em um resultado do processamento de imagem. Alternativamen- te, o servidor pode gerar e codificar um resumo do vídeo com base em um resultado de uma análise do significado de uma cena.
[00539] Existem casos nos quais o conteúdo individual pode incluir conteúdo que infringe direitos autorais, direitos morais, direitos de imagem, etc. Tais casos podem resultar em uma situação desfavorável para o criador, tal como quando o conteúdo é compartilhado além do escopo pretendido pelo criador. De acordo, antes da codificação, o servidor pode, por exemplo, editar imagens de modo a desfocar os rostos das pessoas na periferia da tela ou desfocar o interior de uma casa, por exemplo. Adicionalmente, o servidor pode ser configurado para reconhecer os rostos das pessoas, além de uma pessoa registra- da nas imagens a serem codificadas, e quando tais rostos surgem em uma imagem, pode aplicar um filtro tipo mosaico, por exemplo, ao ros- to da pessoa. Alternativamente, como pré ou pós-processamento para codificação, o usuário pode especificar, por motivos de direito autoral, uma região de uma imagem que inclui uma pessoa ou uma região do fundo a ser processado. O servidor pode processar a região especifi- cada, por exemplo, substituindo a região por uma imagem diferente, ou desfocando a região. Se a região incluir uma pessoa, a pessoa po- de ser rastreada na imagem em movimento, e a região da cabeça da pessoa pode ser substituída por outra imagem à medida que a pessoa se move.
[00540] Visto que existe uma demanda por visualização em tempo real do conteúdo produzido por indivíduos, que tende a ser pequeno em tamanho de dados, o decodificador pode primeiro receber a cama- da de base como a prioridade mais alta, e realizar a decodificação e a reprodução, apesar de isso poder diferir dependendo da largura de banda. Quando o conteúdo é reproduzido duas ou mais vezes, tal co- mo quando o decodificador recebe a camada de aperfeiçoamento du- rante a codificação e reprodução da camada de base e cria um circuito de reprodução, o decodificador pode reproduzir um vídeo com alta qualidade de imagem incluindo a camada de aperfeiçoamento. Se a transmissão for codificada utilizando-se tal codificação escalonável, o vídeo pode ter baixa qualidade quando em um estado não selecionado ou no início do vídeo, mas pode oferecer uma experiência na qual a qualidade de imagem da transmissão aumenta progressivamente de uma forma inteligente. Isso não está limitado apenas à codificação es- calonável, a mesma experiência pode ser oferecida pela configuração de uma transmissão singular a partir de uma transmissão de baixa qualidade reproduzida pela primeira vez e uma segunda transmissão codificada utilizando-se a primeira transmissão como uma referência. Outras Implementações e Exemplos de Aplicação
[00541] A codificação e decodificação podem ser realizadas por LSI (conjunto de circuitos de integração em grande escala) ex500 (ver figu- ra 73), que é tipicamente incluído em cada terminal. LSI ex500 pode ser configurada a partir de um único chip ou uma pluralidade de chips. O software para codificação e decodificação de imagens em movimen- to pode ser integrado 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, por exemplo, pelo computador ex111, e a codificação e decodificação po- dem ser realizadas utilizando-se software. Adicionalmente, quando o smartphone ex115 é equipado com uma câmera, os dados de vídeo obtidos pela câmera podem ser transmitidos. Nesse caso, os dados de vídeo podem ser codificados pela LSI ex500 incluída no smartphone ex115.
[00542] Note-se que LSI ex500 pode ser configurada para descar- regar e ativar um aplicativo. Em tal caso, o terminal primeiro determina se é compatível com o esquema utilizado para codificar o conteúdo, ou se é capaz de executar um serviço específico. Quando o terminal 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 pode, primeiro, descarregar um codec ou software de aplicativo e, en- tão, obter e reproduzir o conteúdo.
[00543] Além do exemplo de sistema de fornecimento de conteúdo ex100 que utiliza a Internet ex101, pelo menos o codificador de ima- gem em movimento (codificador de imagem) ou o decodificador de imagem em movimento (decodificador de imagem), descritos nas mo- dalidades acima, podem ser implementados em um sistema de difusão digital. O mesmo processamento de codificação e processamento de decodificação podem ser aplicados para transmitir e receber ondas de rádio de difusão sobrepostas aos dados de áudio e vídeo multiplexa- dos utilizando, por exemplo, um satélite, apesar de ser direcionado pa- ra a multidifusão, ao passo que a unidifusão é mais fácil com o sistema de fornecimento de conteúdo ex100. Configuração de Hardware
[00544] A figura 78 ilustra detalhes adicionais do smartphone ex115 ilustrado na figura 73. A figura 79 ilustra um exemplo de configuração de smartphone ex115. O smartphone ex115 inclui a antena ex450, pa- ra transmitir e receber as ondas de rádio para e da estação base ex110, a câmera ex465, capaz de capturar imagens de vídeo e estáti- cas, e o monitor ex458, que exibe os dados decodificados, tal como o vídeo capturado pela câmera ex465 e o vídeo recebido pela antena ex450. O smartphone ex115 inclui, adicionalmente, a interface de usu- ário ex466 tal como um painel de toque, uma unidade de saída de áu-
dio ex457, tal como um alto falante para enviar fala ou outro áudio, uma unidade de entrada de áudio ex456, tal como um microfone para entrada de áudio, memória ex467 capaz de armazenar dados decodifi- cados, tal como vídeo ou imagens estáticas capturados, áudio grava- do, vídeo ou imagens estáticas recebidas, e correio eletrônico, além de dados decodificados, e a partição ex464, que é uma interface para SIM ex468 para autorizar o acesso a uma rede e vários dados. Note- se que a memória externa pode ser utilizada no lugar da memória ex467.
[00545] O controlador principal ex460, que pode controlar de forma profunda o monitor ex458 e a interface de usuário ex466, o circuito de suprimento de energia ex461, o controlador de entrada de interface de usuário ex462, o processador de sinal de vídeo ex455, a interface de câmera ex463, o controlador de exibição ex459, o modula- dor/demodulador ex452, o multiplexador/desmultiplexador ex453, o processador de sinal de áudio ex454, a partição ex464 e a memória ex467, são conectados através do barramento ex470.
[00546] Quando o usuário liga o botão de energia do circuito de su- primento de energia ex461, o smartphone ex115 é energizado para um estado operacional, e cada componente é suprido com energia de um pacote de bateria.
[00547] O smartphone ex115 realiza o processamento, por exem- plo, para chamadas e transmissão de dados, com base no controle realizado pelo controlador principal ex460, que inclui uma CPU, ROM e RAM. Quando realizando as chamadas, um sinal de áudio gravado pela unidade de entrada de áudio ex456 é convertido em um sinal de áudio digital pelo processador de sinal de áudio ex454, ao qual o pro- cessamento de espectro de espalhamento é aplicado pelo modula- dor/demodulador ex452 e a conversão digital-analógica, e o proces- samento de conversão de frequência é aplicado pelo transmis-
sor/receptor ex451, e o sinal resultante é transmitido através da antena ex450. Os dados recebidos são amplificados, convertidos em frequên- cia e convertidos de analógicos para digitais, processados pelo espec- tro de espalhamento inverso pelo modulador/demodulador ex452, con- vertidos em um sinal de áudio analógico pelo processador de sinal de áudio ex454, e, então, enviados da unidade de saída de áudio ex457. No modo de transmissão de dados, dados de texto, de imagem estáti- ca ou de vídeo podem ser transmitidos sob o controle do controlador principal ex460 através do controlador de entrada de interface ex462 com base na operação da interface de usuário ex466 do corpo princi- pal, por exemplo, O processamento de transmissão e recepção similar é realizado. No modo de transmissão de dados, quando do envio de 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 codifi- cação de imagem em movimento descrito nas modalidades acima, um sinal de vídeo armazenado na memória ex467 ou uma entrada de sinal de vídeo da câmera ex465, e transmite os dados de vídeo codificados para o multiplexador/desmultiplexador ex453. 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 um vídeo ou imagem estática, e transmite os dados de áudio codificados para o multiplexador/desmultiplexador ex453. O multiplexa- dor/desmultiplexador ex453 multiplexa os dados de vídeo codificados e os dados de áudio codificados utilizando um esquema determinado, modula e converte os dados utilizando o modulador/demodulador (cir- cuito modulador/demodulador) ex452 e o transmissor/receptor ex451, e transmite o resultado através da antena ex450. O esquema determi- nado pode ser predeterminado.
[00548] Quando o vídeo anexado a um e-mail ou a um chat, ou um vídeo com link de uma página da rede, é recebido, por exemplo, a fim de decodificar os dados multiplexados recebidos através da antena ex450, o multiplexador/desmultiplexador ex453 desmultiplexa os da- dos multiplexados para dividir os dados multiplexados em uma se- quência de bits de dados de vídeo e uma sequência de bits dos dados de áudio, supre os dados de vídeo codificados para o processador de sinal de vídeo ex455 através do barramento sincronizado ex470, e su- pre os dados de áudio codificados para o processador de sinal de áu- dio ex454 através do barramento sincronizado ex470. O processador de sinal de vídeo ex455 decodifica o sinal de vídeo utilizando um mé- todo de decodificação de imagem em movimento correspondendo ao método de codificação de imagem em movimento descrito nas modali- dades acima, e o vídeo ou uma imagem estática incluído no arquivo de imagem em movimento com link é exibido no monitor ex458 através do controlador de exibição ex459. O processador de sinal de áudio ex454 decodifica o sinal de áudio e envia o áudio a partir da unidade de envio de áudio ex457. Visto que a transmissão em tempo real está se tor- nando cada vez mais popular, pode haver casos nos quais a reprodu- ção de áudio pode ser socialmente inadequada, dependendo do ambi- ente do usuário. De acordo, como um valor inicial, uma configuração na qual apenas os dados de vídeo são reproduzidos, isso é, o sinal de áudio não é reproduzido, pode ser preferível; o áudio pode ser sincro- nizado e reproduzido apenas quando um registro, tal como quando o usuário clicar nos dados de vídeo, for recebido.
[00549] Apesar de o smartphone ex115 ter sido utilizado no exem- plo acima, outras implementações são concebíveis; um terminal trans- ceptor, incluindo ambos um codificador e um decodificador; um termi- nal transmissor, incluindo apenas um codificador; e um terminal recep- tor, incluindo apenas um decodificador. Na descrição do sistema de difusão digital, um exemplo é fornecido, no qual os dados multiplexa- dos, obtidos como resultado dos dados de vídeo serem multiplexados com dados de áudio, são recebidos ou transmitidos. Os dados multi- plexados, no entanto, podem ser dados de vídeo multiplexados com dados além de dados de áudio, tal como dados de texto relacionados com o vídeo. Adicionalmente, os dados de vídeo propriamente ditos, ao invés dos dados multiplexados, podem ser recebidos ou transmiti- dos.
[00550] Apesar de o controlador principal ex460, incluindo uma CPU, ser descrito como controlando os processos de codificação ou decodificação, vários terminais frequentemente incluem GPUs. De acordo, uma configuração é aceitável, na qual uma grande área é pro- cessada de uma vez fazendo-se uso da capacidade de desempenho da GPU através da memória compartilhada pela CPU e GPU, ou me- mória incluindo um endereço que é gerenciado de modo a permitir a utilização comum pela CPU e GPU. Isso possibilita o encurtamento do tempo de codificação, a manutenção da natureza de tempo real da transmissão e a redução do retardo. Em particular, o processamento referente à estimativa de movimento, filtragem de desbloqueio, desvio adaptativo de amostra (SAO), e transformação/quantização, pode ser efetivamente realizado pela GPU em vez de pela CPU em unidades de imagens, por exemplo, todos de uma vez.

Claims (64)

REIVINDICAÇÕES
1. Codificador de imagem, caracterizado pelo fato de com- preender: um conjunto de circuitos; e uma memória acoplada ao conjunto de circuitos; onde o conjunto de circuitos, em operação: prevê um primeiro conjunto de amostras para uma primeira partição de uma imagem atual com um ou mais vetores de movimento incluindo um primeiro vetor de movimento; prevê um segundo conjunto de amostras para uma primeira parte da primeira partição com um ou mais vetores de movimento a partir de uma segunda partição diferente da primeira partição; pondera as amostras do primeiro conjunto de amostras da primeira parte da primeira partição e do segundo conjunto de amostras da primeira parte da primeira partição; armazena um vetor de movimento para a primeira parte da primeira partição com base em um ou ambos o primeiro vetor de mo- vimento e o segundo vetor de movimento; e codifica a primeira partição utilizando pelo menos as amos- tras ponderadas da primeira parte da primeira partição.
2. Codificador, de acordo com a reivindicação 1, caracteri- zado pelo fato de o conjunto de circuitos, em operação: gerar o segundo vetor de movimento.
3. Codificador, de acordo com a reivindicação 1, caracteri- zado pelo fato de o primeiro vetor de movimento ser um vetor de mo- vimento de uniprevisão.
4. Codificador, de acordo com a reivindicação 3, caracteri- zado pelo fato de o segundo vetor de movimento ser um vetor de mo- vimento de uniprevisão.
5. Codificador, de acordo com a reivindicação 4, caracteri-
zado pelo fato de o vetor de movimento armazenado ser um vetor de movimento de biprevisão incluindo o primeiro vetor de movimento e o segundo vetor de movimento.
6. Codificador, de acordo com a reivindicação 4, caracteri- zado pelo fato de o vetor de movimento armazenado ser um vetor de movimento de biprevisão incluindo um dentre o primeiro e segundo vetores de movimento e um vetor de substituição do outro dentre os primeiro e segundo vetores de movimento.
7. Codificador, de acordo com a reivindicação 4, caracteri- zado pelo fato de o vetor de movimento armazenado ser um vetor de movimento de biprevisão incluindo um dentre o primeiro e o segundo vetores de movimento, e um vetor virado do outro dentre os primeiro e segundo vetores de movimento.
8. Codificador, de acordo com a reivindicação 4, caracteri- zado pelo fato de o vetor de movimento armazenado ser um dentre o primeiro vetor de movimento e o segundo vetor de movimento.
9. Codificador, de acordo com a reivindicação 4, caracteri- zado pelo fato de o vetor de movimento armazenado ser um vetor de movimento de uniprevisão gerado pela realização da média do primei- ro vetor de movimento e do segundo vetor de movimento.
10. Codificador, de acordo com a reivindicação 1, caracteri- zado pelo fato de a primeira partição ser uma partição de formato tri- angular.
11. Codificador, de acordo com a reivindicação 1, caracteri- zado pelo fato de a segunda partição ser uma partição de formato tri- angular.
12. Codificador, de acordo com a reivindicação 10, caracte- rizado pelo fato de a segunda partição ser uma partição de formato triangular.
13. Codificador, de acordo com a reivindicação 4, caracteri-
zado pelo fato de o conjunto de circuitos, em operação: gerar o vetor de movimento armazenado com base nas lis- tas de imagens de referência associadas aos primeiro e segundo veto- res de movimento.
14. Codificador, de acordo com a reivindicação 13, caracte- rizado pelo fato de o conjunto de circuitos, em operação: determinar se uma lista de imagens de referência associa- da ao primeiro vetor de movimento está associada ao segundo vetor de movimento; em resposta a uma determinação de que a lista de imagens de referência associada com o primeiro vetor de movimento está as- sociada ao segundo vetor de movimento, armazenar um dos primeiro e segundo vetores de movimento como um vetor de movimento de uniprevisão para a primeira parte da primeira partição; e em resposta a uma determinação de que a lista de imagens de referência associada com o primeiro vetor de movimento não está associada ao segundo vetor de movimento, armazenar um vetor de movimento de biprevisão incluindo o primeiro vetor de movimento e o segundo vetor de movimento da primeira parte da primeira partição.
15. Codificador, de acordo com a reivindicação 13, caracte- rizado pelo fato de o conjunto de circuitos, em operação: determinar se uma lista de imagens de referência associa- da ao primeiro vetor de movimento está associada ao segundo vetor de movimento; em resposta a uma determinação de que a lista de imagens de referência, associada ao primeiro vetor de movimento, está associ- ada ao segundo vetor de movimento, determinar se uma imagem de referência associada a um dos primeiro e segundo vetores de movi- mento está incluída em outra lista de imagens de referência; e em resposta a uma determinação de que uma imagem de referência, associada a um dentre o primeiro vetor de movimento e o segundo vetor de movimento, está incluída em outra lista de imagens de referência; gerar um vetor de movimento de substituição para um dos primeiro e segundo vetores de movimento, o vetor de substituição apontando para a imagem de referência em outra lista de imagens de referência; e armazenar um vetor de movimento de biprevisão incluindo o vetor de movimento de substituição e o outro dentre os primeiro e segundo vetores de movimento como o vetor de movimento armaze- nado para a primeira parte da primeira partição.
16. Codificador, de acordo com a reivindicação 15, caracte- rizado pelo fato de o conjunto de circuitos, em operação: em resposta a uma determinação de que uma imagem de referência, associada com o primeiro vetor de movimento, e uma ima- gem de referência, associada ao segundo vetor de movimento, não estão incluídas em outra lista de imagens de referência, armazenar um dos primeiro e segundo vetores de movimento como o vetor de movi- mento armazenado para a primeira parte da primeira partição.
17. Codificador de imagem, caracterizado pelo fato de compreender: um divisor que, em operação, recebe e divide uma imagem original em blocos; um primeiro somador que, em operação, recebe os blocos do divisor e previsões de um controlador de previsão, e subtrai cada previsão de seu bloco correspondente para enviar um residual, um transformador que, em operação, realiza uma transformação nos resi- duais enviados a partir do somador para enviar coeficientes de trans- formação; um quantizador que, em operação, quantiza os coeficientes de transformação para gerar os coeficientes de transformação quanti-
zados; um codificador por entropia que, em operação, codifica os coeficientes de transformação quantizados para gerar uma sequência de bits; um quantizador e um transformador inversos que, em ope- ração, quantiza de forma inversa os coeficientes de transformação quantizados para obter os coeficientes de transformação, e transforma de forma inversa os coeficientes de transformação para obter os resi- duais; um segundo somador que, em operação, soma os residuais enviados a partir do quantizador e transformador inversos e as previ- sões enviadas a partir do controlador de previsão para reconstruir os blocos, e o controlador de previsão acoplado a um interprevisor, um intraprevisor, e uma memória, onde o interprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência codificada e o intraprevisor, em opera- ção, gera uma previsão de um bloco atual com base em um bloco de referência codificado em uma imagem atual, onde o interprevisor, em operação, prevê um primeiro conjunto de amostras para uma primeira partição de uma imagem atual com um ou mais vetores de movimento incluindo um primeiro vetor de movimento; prevê um segundo conjunto de amostras para uma primeira parte da primeira partição com um ou mais vetores de movimento a partir de uma segunda partição diferente da primeira partição; pondera as amostras do primeiro conjunto de amostras da primeira parte da primeira partição e do segundo conjunto de amostras da primeira parte da primeira partição; armazena um vetor de movimento para a primeira parte da primeira partição com base em um ou ambos o primeiro vetor de mo- vimento e o segundo vetor de movimento; e codifica a primeira partição utilizando pelo menos as amos- tras ponderadas da primeira parte da primeira partição.
18. Codificador de imagem, de acordo com a reivindicação 17, caracterizado pelo fato de o interprevisor, em operação: gerar o segundo vetor de movimento.
19. Codificador de imagem, de acordo com a reivindicação 17, caracterizado pelo fato de o primeiro vetor de movimento ser um vetor de movimento de uniprevisão e o segundo vetor de movimento ser um vetor de movimento de uniprevisão.
20. Codificador de imagem, de acordo com a reivindicação 19, caracterizado pelo fato de o vetor de movimento armazenado ser um vetor de movimento de biprevisão incluindo o primeiro vetor de movimento e o segundo vetor de movimento.
21. Codificador de imagem, de acordo com a reivindicação 19, caracterizado pelo fato de o vetor de movimento armazenado ser um vetor de movimento de biprevisão incluindo um dentre o primeiro e o segundo vetores de movimento e um vetor de substituição de outro dentre o primeiro e o segundo vetores de movimento.
22. Codificador de imagem, de acordo com a reivindicação 19, caracterizado pelo fato de o vetor de movimento armazenado ser um dentre o primeiro vetor de movimento e o segundo vetor de movi- mento.
23. Codificador de imagem, de acordo com a reivindicação 19, caracterizado pelo fato de a primeira partição ser uma partição em formato triangular.
24. Codificador de imagem, de acordo com a reivindicação 19, caracterizado pelo fato de o interprevisor, em operação: gerar o vetor de movimento armazenado com base nas lis- tas de imagem de referência associadas aos primeiro e segundo veto- res de movimento.
25. Codificador de imagem, de acordo com a reivindicação 24, caracterizado pelo fato de o interprevisor, em operação: determinar se uma lista de imagens de referência, associa- da ao primeiro vetor de movimento, é associada ao segundo vetor de movimento; em resposta a uma determinação de que a lista de imagens de referência, associada ao primeiro vetor de movimento, é associada ao segundo vetor de movimento, armazenar um dos primeiro e segun- do vetores de movimento, como um vetor de movimento de uniprevi- são para a primeira parte da primeira partição; e em resposta a uma determinação de que a lista de imagens de referência, associada ao primeiro vetor de movimento, não é asso- ciada ao segundo vetor de movimento, armazenar um vetor de movi- mento de biprevisão incluindo o primeiro vetor de movimento e o se- gundo vetor de movimento para a primeira parte da primeira partição.
26. Codificador de imagem, de acordo com a reivindicação 24, caracterizado pelo fato de o interprevisor, em operação: determinar se uma lista de imagens de referência, associa- da ao primeiro vetor de movimento, está associada ao segundo vetor de movimento; em resposta a uma determinação de que a lista de imagens de referência, associada ao primeiro vetor de movimento, está associ- ada ao segundo vetor de movimento, determinar se uma imagem de referência, associada a um dos primeiro e segundo vetores de movi- mento, está incluída em outra lista de imagens de referência; e em resposta a uma determinação de que uma imagem de referência, associada a um dentre o primeiro vetor de movimento e o segundo vetor de movimento, está incluída em outra lista de imagens de referência; gerar um vetor de movimento de substituição para um den-
tre os primeiro e segundo vetores de movimento, o vetor de substitui- ção apontando para a imagem de referência em outra lista de imagens de referência; e armazenar um vetor de movimento de biprevisão incluindo o vetor de movimento de substituição e outro dos primeiro e segundo vetores de movimento como o vetor de movimento armazenado para a primeira parte da primeira partição.
27. Codificador de imagem, de acordo com a reivindicação 26, caracterizado pelo fato de o interprevisor, em operação: em resposta a uma determinação de que uma imagem de referência associada ao primeiro vetor de movimento e uma imagem de referência associada ao segundo vetor de movimento não estão incluídas em outra lista de imagens de referência, armazenar um dos primeiro e segundo vetores de movimento como o vetor de movimento armazenado para a primeira parte da primeira partição.
28. Método de codificação de imagem, caracterizado pelo fato de compreender: prever um primeiro conjunto de amostras para uma primeira partição de uma imagem atual com um ou mais vetores de movimento incluindo um primeiro vetor de movimento; prever um segundo conjunto de amostras para uma primei- ra parte da primeira partição com um ou mais vetores de movimento a partir de uma segunda partição diferente da primeira partição; ponderar as amostras do primeiro conjunto de amostras da primeira parte da primeira partição e o segundo conjunto de amostras da primeira parte da primeira partição; armazenar um vetor de movimento para a primeira parte da primeira partição com base em um ou ambos o primeiro vetor de mo- vimento e o segundo vetor de movimento; e codificar a primeira partição utilizando pelo menos as amos- tras ponderadas da primeira parte da primeira partição.
29. Método de codificação de imagem, de acordo com a reivindicação 28, caracterizado pelo fato de o primeiro vetor de movi- mento ser um vetor de movimento de uniprevisão e o segundo vetor de movimento ser um vetor de movimento de uniprevisão.
30. Método de codificação de imagem, de acordo com a reivindicação 29, caracterizado pelo fato de compreender: gerar o vetor de movimento armazenado com base nas lis- tas de imagens de referência associadas aos primeiro e segundo veto- res de movimento.
31. Método de codificação de imagem, de acordo com a reivindicação 30, caracterizado pelo fato de compreender: determinar se uma lista de imagens de referência, associa- da ao primeiro vetor de movimento, é associada ao segundo vetor de movimento; em resposta a uma determinação de a lista de imagens de referência, associada ao primeiro vetor de movimento, está associada ao segundo vetor de movimento, armazenar um dos primeiro e segun- do vetores de movimento como um vetor de movimento de uniprevisão para a primeira parte da primeira partição; e em resposta a uma determinação de que a lista de imagens de referência, associada ao primeiro vetor de movimento, não está as- sociada ao segundo vetor de movimento, armazenar um vetor de mo- vimento de biprevisão incluindo o primeiro vetor de movimento e o se- gundo vetor de movimento para a primeira parte da primeira partição.
32. Método de codificação de imagem, de acordo com a reivindicação 30, caracterizado pelo fato de compreender: determinar se uma lista de imagens de referência, associa- da ao primeiro vetor de movimento, está associada ao segundo vetor de movimento; em resposta a uma determinação de que a lista de imagens de referência, associada ao primeiro vetor de movimento, está associ- ada ao segundo vetor de movimento, determinar se uma imagem de referência, associada a um dentre os primeiro e segundo vetores de movimento, está incluída em outra lista de imagens de referência; e em resposta a uma determinação de que uma imagem de referência associada a um dentre o primeiro vetor de movimento e o segundo vetor de movimento está incluída em outra lista de imagens de referência: gerar um vetor de movimento de substituição para um den- tre o primeiro e segundo vetores de movimento, o vetor de substituição apontando para a imagem de referência em outra lista de imagens de referência; e armazenar um vetor de movimento de biprevisão incluindo o vetor de movimento de substituição e o outro dentre o primeiro e se- gundo vetores de movimento como o vetor de movimento armazenado para a primeira parte da primeira partição.
33. Método de codificação de imagem, de acordo com a reivindicação 32, caracterizado pelo fato de compreender: em resposta a uma determinação de que uma imagem de referência associada ao primeiro vetor de movimento e uma imagem de referência associada ao segundo vetor de movimento não estão incluídas em outra lista de imagens de referência, armazenar um dos primeiro e segundo vetores de movimento como o vetor de movimento armazenado para a primeira parte da primeira partição.
34. Decodificador de imagem, caracterizado pelo fato de compreender: um conjunto de circuitos; e uma memória acoplada ao conjunto de circuitos;
onde o conjunto de circuitos, em operação: prevê um primeiro conjunto de amostras para uma primeira partição de uma imagem atual com um ou mais vetores de movimento incluindo um primeiro vetor de movimento; prevê um segundo conjunto de amostras para uma primeira parte da primeira partição com um ou mais vetores de movimento a partir de uma segunda partição, diferente da primeira partição; pondera as amostras do primeiro conjunto de amostras da primeira parte da primeira partição e do segundo conjunto de amostras da primeira parte da primeira partição; armazena um vetor de movimento para a primeira parte da primeira partição com base em um ou ambos o primeiro vetor de mo- vimento e o segundo vetor de movimento; e decodifica a primeira partição utilizando pelo menos as amostras ponderadas da primeira parte da primeira partição.
35. Decodificador, de acordo com a reivindicação 34, carac- terizado pelo fato de o primeiro vetor de movimento ser um vetor de movimento de uniprevisão.
36. Decodificador, de acordo com a reivindicação 35, carac- terizado pelo fato de o segundo vetor de movimento ser um vetor de movimento de uniprevisão.
37. Decodificador, de acordo com a reivindicação 36, carac- terizado pelo fato de o vetor de movimento armazenado ser um vetor de movimento de biprevisão incluindo o primeiro vetor de movimento e o segundo vetor de movimento.
38. Decodificador, de acordo com a reivindicação 36, carac- terizado pelo fato de o vetor de movimento armazenado ser um vetor de movimento de biprevisão incluindo um dos primeiro e segundo ve- tores de movimento e um vetor de substituição do outro dentre os pri- meiro e segundo vetores de movimento.
39. Decodificador, de acordo com a reivindicação 36, carac- terizado pelo fato de o vetor de movimento armazenado ser um vetor de movimento de biprevisão incluindo um dentre o primeiro e segundo vetores de movimento e um vetor virado do outro dentre os primeiro e segundo vetores de movimento.
40. Decodificador, de acordo com a reivindicação 36, carac- terizado pelo fato de o vetor de movimento armazenado ser um dentre o primeiro vetor de movimento e o segundo vetor de movimento.
41. Decodificador, de acordo com a reivindicação 36, carac- terizado pelo fato de o vetor de movimento armazenado ser um vetor de movimento de uniprevisão gerado pela realização da média do pri- meiro vetor de movimento e do segundo vetor de movimento.
42. Decodificador, de acordo com a reivindicação 34, carac- terizado pelo fato de a primeira partição ser uma partição de formato triangular.
43. Decodificador, de acordo com a reivindicação 34, carac- terizado pelo fato de a segunda partição ser uma partição de formato triangular.
44. Decodificador, de acordo com a reivindicação 43, carac- terizado pelo fato de a segunda partição ser uma partição de formato triangular.
45. Decodificador, de acordo com a reivindicação 36, carac- terizado pelo fato de o conjunto de circuitos, em operação: gerar o vetor de movimento armazenado com base nas lis- tas de imagens de referência associadas aos primeiro e segundo veto- res de movimento.
46. Decodificador, de acordo com a reivindicação 45, carac- terizado pelo fato de o conjunto de circuitos, em operação: determinar se uma lista de imagens de referência, associa- da ao primeiro vetor de movimento, está associada ao segundo vetor de movimento; em resposta a uma determinação de que a lista de imagens de referência, associada ao primeiro vetor de movimento, está associ- ada ao segundo vetor de movimento, armazenar um dentre os primeiro e segundo vetores de movimento como um vetor de movimento de uniprevisão para a primeira parte da primeira partição; e em resposta a uma determinação de que a lista de imagens de referência associada ao primeiro vetor de movimento não está as- sociada ao segundo vetor de movimento, armazenar um vetor de mo- vimento de biprevisão incluindo o primeiro vetor de movimento e o se- gundo vetor de movimento para a primeira parte da primeira partição.
47. Decodificador, de acordo com a reivindicação 45, carac- terizado pelo fato de o conjunto de circuitos, em operação: determinar se uma lista de imagens de referência, associa- da ao primeiro vetor de movimento, está associada ao segundo vetor de movimento: em resposta a uma determinação de que a lista de imagens de referência, associada ao primeiro vetor de movimento, está associ- ada ao segundo vetor de movimento, determinar se uma imagem de referência, associada a um dos primeiro e segundo vetores de movi- mento, está incluída em outra lista de imagens de referência; e em resposta a uma determinação de que uma imagem de referência, associada a um dos primeiro vetor de movimento e segun- do vetor de movimento, está incluída em outra lista de imagens de re- ferência: gerar um vetor de movimento de substituição para um dos primeiro e segundo vetores de movimento, o vetor de substituição apontando para a imagem de referência em outra lista de imagens de referência; e armazenar um vetor de movimento de biprevisão incluindo o vetor de movimento de substituição e o outro dentre o primeiro e se- gundo vetores de movimento, como o vetor de movimento armazena- do para a primeira parte da primeira partição.
48. Decodificador, de acordo com a reivindicação 47, carac- terizado pelo fato de o conjunto de circuitos, em operação: em resposta a uma determinação de que uma imagem de referência, associada ao primeiro vetor de movimento, e uma imagem de referência, associada ao segundo vetor de movimento, não estão incluídas em outra lista de imagens de referência, armazenar um dos primeiro e segundo vetores de movimento como o vetor de movimento armazenado para a primeira parte da primeira partição.
49. Decodificador de imagem, caracterizado pelo fato de compreender: um decodificador por entropia que, em operação, recebe e decodifica uma sequência de bits codificados para obter os coeficien- tes de transformação quantizados, um quantizador e transformador inversos que, em operação quantiza de forma inversa os coeficientes de transformação quantizados para obter coeficientes de transforma- ção e transforma de forma inversa os coeficientes de transformação para obter residuais; um somador que, em operação, adiciona os residuais envi- ados a partir do quantizador inverso e transformador inverso e previ- sões enviadas a partir de um controlador de previsão para reconstruir blocos; e o controlador de previsão acoplado a um interprevisor, um intraprevisor, e uma memória, onde o interprevisor, em operação, gera uma previsão de um bloco atual com base em um bloco de referência em uma imagem de referência decodificada e o intraprevisor, em ope- ração, gera uma previsão de um bloco atual com base em um bloco de referência codificado em uma imagem atual, onde o interprevisor, em operação, prevê um primeiro conjunto de amostras para uma primeira partição de uma imagem atual com um ou mais vetores de movimento, incluindo um primeiro vetor de movimento; prevê um segundo conjunto de amostras para uma primeira parte da primeira partição com um ou mais vetores de movimento a partir de uma segunda partição, diferente da primeira partição; pondera as amostras do primeiro conjunto de amostras da primeira parte da primeira partição e do segundo conjunto de amostras da primeira parte da primeira partição; armazena um vetor de movimento para a primeira parte da primeira partição com base em um ou ambos o primeiro vetor de mo- vimento e o segundo vetor de movimento; e decodifica a primeira partição utilizando pelo menos as amostras ponderadas da primeira parte da primeira partição.
50. Decodificador de imagem, de acordo com a reivindica- ção 49, caracterizado pelo fato de o primeiro vetor de movimento ser um vetor de movimento de uniprevisão e o segundo vetor de movimen- to ser um vetor de movimento de uniprevisão.
51. Decodificador de imagem, de acordo com a reivindica- ção 50, caracterizado pelo fato de o vetor de movimento armazenado ser um vetor de movimento de biprevisão, incluindo o primeiro vetor de movimento e o segundo vetor de movimento.
52. Decodificador de imagem, de acordo com a reivindica- ção 50, caracterizado pelo fato de o vetor de movimento armazenado ser um vetor de movimento de biprevisão, incluindo um dentre o pri- meiro e o segundo vetores de movimento e um vetor de substituição de outro dentre os primeiro e segundo vetores de movimento.
53. Decodificador de imagem, de acordo com a reivindica- ção 50, caracterizado pelo fato de o vetor de movimento armazenador ser um dentre o primeiro vetor de movimento e o segundo vetor de movimento.
54. Decodificador de imagem, de acordo com a reivindica- ção 50, caracterizado pelo fato de a primeira partição ser uma partição de formato triangular.
55. Decodificador de imagem, de acordo com a reivindica- ção 50, caracterizado pelo fato de o interprevisor, em operação: gerar o vetor de movimento armazenado com base nas lis- tas de imagens de referência associadas aos primeiro e segundo veto- res de movimento.
56. Decodificador de imagem, de acordo com a reivindica- ção 55, caracterizado pelo fato de o interprevisor, em operação: determinar se uma lista de imagens de referência, associa- da ao primeiro vetor de movimento, é associada ao segundo vetor de movimento; em resposta a uma determinação de que a lista de imagens de referência, associada ao primeiro vetor de movimento, é associada ao segundo vetor de movimento, armazenar um dos primeiro e segun- do vetores de movimento como um vetor de movimento de uniprevisão para a primeira parte da primeira partição; e em resposta a uma determinação de que a lista de imagens de referência associada ao primeiro vetor de movimento, não é asso- ciada ao segundo vetor de movimento, armazenar um vetor de movi- mento de biprevisão incluindo o primeiro vetor de movimento e o se- gundo vetor de movimento para a primeira parte da primeira partição.
57. Decodificador de imagem, de acordo com a reivindica- ção 55, caracterizado pelo fato de o interprevisor, em operação: determinar se uma lista de imagens de referência, associa- da ao primeiro vetor de movimento, é associada ao segundo vetor de movimento; em resposta à determinação de que a lista de imagens de referência, associada ao primeiro vetor de movimento, é associada ao segundo vetor de movimento, determinar se uma imagem de referên- cia, associada a um dos primeiro e segundo vetores de movimento es- tá incluída em outra lista de imagens de referência; e em resposta a uma determinação de que uma imagem de referência, associada a um dentre o primeiro vetor de movimento e o segundo vetor de movimento, está incluída em outra lista de imagens de referência: gerar um vetor de movimento de substituição para um dos primeiro e segundo vetores de movimento, o vetor de substituição apontando para a imagem de referência em outra lista de imagens de referência; e armazenar um vetor de movimento de biprevisão incluindo o vetor de movimento de substituição e outro dentre o primeiro e se- gundo vetores de movimento como o vetor de movimento armazenado para a primeira parte da primeira partição.
58. Decodificador de imagem, de acordo com a reivindica- ção 57, caracterizado pelo fato de o interprevisor, em operação: em resposta a uma determinação de que uma imagem de referência, associada ao primeiro vetor de movimento, e uma imagem de referência, associada ao segundo vetor de movimento, não está incluída em outra lista de imagens de referência, armazenar um dos primeiro e segundo vetores de movimento como o vetor de movimento armazenado para a primeira parte da primeira partição.
59. Método de decodificação de imagem, caracterizado pe- lo fato de compreender: prever um primeiro conjunto de amostras para uma primeira partição de uma imagem atual com um ou mais vetores de movimento incluindo um primeiro vetor de movimento; prever um segundo conjunto de amostras para uma primei-
ra parte da primeira partição com um ou mais vetores de movimento a partir de uma segunda partição, diferente da primeira partição; ponderar as amostras do primeiro conjunto de amostras da primeira parte da primeira partição e do segundo conjunto de amostras da primeira parte da primeira partição; armazenar um vetor de movimento para a primeira parte da primeira partição com base em um ou ambos o primeiro vetor de mo- vimento e o segundo vetor de movimento; e decodificar a primeira partição utilizando pelo menos as amostras ponderadas da primeira parte da primeira partição.
60. Método de decodificação de imagem, de acordo com a reivindicação 59, caracterizado pelo fato de o primeiro vetor de movi- mento ser um vetor de movimento de uniprevisão e o segundo vetor de movimento ser um vetor de movimento de uniprevisão.
61. Método de decodificação de imagem, de acordo com a reivindicação 60, caracterizado pelo fato de compreender: gerar o vetor de movimento armazenado com base nas lis- tas de imagens de referência associadas aos primeiro e segundo veto- res de movimento.
62. Método de decodificação de imagem, de acordo com a reivindicação 61, caracterizado pelo fato de compreender: determinar se uma lista de imagens de referência, associa- da ao primeiro vetor de movimento, é associada ao segundo vetor de movimento; em resposta a uma determinação de que a lista de imagens de referência, associada ao primeiro vetor de movimento, é associada ao segundo vetor de movimento, armazenar um dos primeiro e segun- do vetores de movimento como um vetor de movimento de uniprevisão para a primeira parte da primeira partição; e em resposta a uma determinação de que a lista de imagens de referência, associada ao primeiro vetor de movimento, não é asso- ciada ao segundo vetor de movimento, armazenar um vetor de movi- mento de biprevisão, incluindo o primeiro vetor de movimento e o se- gundo vetor de movimento para a primeira parte da primeira partição.
63. Método de decodificação de imagem, de acordo com a reivindicação 61, caracterizado pelo fato de compreender: determinar se uma lista de imagens de referência, associa- da ao primeiro vetor de movimento, é associada ao segundo vetor de movimento; em resposta a uma determinação de que a lista de imagens de referência, associada ao primeiro vetor de movimento, é associada ao segundo vetor de movimento, determinar se uma imagem de refe- rência, associada a um dos primeiro e segundo vetores de movimento, está incluída em outra lista de imagens de referência, e em resposta a uma determinação de que uma imagem de referência, associada a um dentre o primeiro vetor de movimento e segundo vetor de movimento está incluída em outra lista de imagens de referência; gerar um vetor de movimento de substituição para um dos primeiro e segundo vetores de movimento, o vetor de substituição apontando para a imagem de referência na outra lista de imagens de referência; e armazenar um vetor de movimento de biprevisão incluindo o vetor de movimento de substituição e outro dos primeiro e segundo vetores de movimento, como o vetor de movimento armazenado para a primeira parte da primeira partição.
64. Método de decodificação de imagem, de acordo com a reivindicação 63, caracterizado pelo fato de compreender: em resposta a uma determinação de que uma imagem de referência, associada ao primeiro vetor de movimento, e uma imagem de referência, associada ao segundo vetor de movimento, não estão incluídas em outra lista de imagens de referência, armazenar um dos primeiro e segundo vetores de movimento como o vetor de movimento armazenado para a primeira parte da primeira partição.
BR112021001156-0A 2018-09-07 2019-09-03 sistema e método para codificação de vídeo BR112021001156A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862728364P 2018-09-07 2018-09-07
US62/728,364 2018-09-07
PCT/JP2019/034657 WO2020050283A1 (en) 2018-09-07 2019-09-03 System and method for video coding

Publications (1)

Publication Number Publication Date
BR112021001156A2 true BR112021001156A2 (pt) 2021-04-27

Family

ID=68051879

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021001156-0A BR112021001156A2 (pt) 2018-09-07 2019-09-03 sistema e método para codificação de vídeo

Country Status (8)

Country Link
US (3) US11153569B2 (pt)
JP (2) JP2021536191A (pt)
KR (1) KR20210049822A (pt)
CN (1) CN112640466A (pt)
BR (1) BR112021001156A2 (pt)
MX (1) MX2021002557A (pt)
TW (1) TWI832891B (pt)
WO (1) WO2020050283A1 (pt)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018012366A1 (ja) * 2016-07-13 2018-01-18 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号装置、符号化装置、復号方法及び符号化方法
WO2020050283A1 (en) * 2018-09-07 2020-03-12 Panasonic Intellectual Property Corporation Of America System and method for video coding
KR20210062055A (ko) * 2018-09-21 2021-05-28 인터디지털 브이씨 홀딩스 인코포레이티드 양방향 예측을 사용하는 비디오 인코딩 및 디코딩을 위한 방법 및 장치
EP3850846A4 (en) * 2018-10-08 2021-12-15 Huawei Technologies Co., Ltd. DEVICES AND METHODS FOR PREDICTING A TRIANGULAR PARTITION OF AN ENCODING BLOCK
CN113852815B (zh) * 2018-12-25 2022-12-27 北京达佳互联信息技术有限公司 利用三角形形状预测单元的视频编码方法、设备及介质
US11102476B2 (en) * 2018-12-28 2021-08-24 Qualcomm Incorporated Subblock based affine motion model
US11523112B2 (en) * 2020-04-09 2022-12-06 Tencent America LLC Intra coding with L-type partitioning tree
WO2023059100A1 (ko) * 2021-10-06 2023-04-13 현대자동차주식회사 기하학적 분할 모드를 이용한 비디오 부호화/복호화 방법 및 장치
CN114339249B (zh) * 2021-12-27 2023-12-05 安谋科技(中国)有限公司 视频解码方法、可读介质及其电子设备
US20240137540A1 (en) * 2022-10-18 2024-04-25 Tencent America LLC Template matching refinement for affine motion

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7894530B2 (en) 2004-05-07 2011-02-22 Broadcom Corporation Method and system for dynamic selection of transform size in a video decoder based on signal content
CN101502119B (zh) * 2006-08-02 2012-05-23 汤姆逊许可公司 用于视频编码的自适应几何分割方法和设备
US20080095238A1 (en) * 2006-10-18 2008-04-24 Apple Inc. Scalable video coding with filtering of lower layers
JP2011501508A (ja) * 2007-10-12 2011-01-06 トムソン ライセンシング 幾何学分割された双方向予測モードパーティションのビデオエンコーディング及びデコーディングのための方法及び装置
US9185425B2 (en) * 2009-07-03 2015-11-10 France Telecom Prediction of a movement vector of a current image partition pointing to a reference zone that covers several reference image partitions and encoding and decoding using one such prediction
WO2011046008A1 (ja) * 2009-10-16 2011-04-21 シャープ株式会社 動画像符号化装置、および、動画像復号装置
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
US9357229B2 (en) * 2010-07-28 2016-05-31 Qualcomm Incorporated Coding motion vectors in video coding
US9380314B2 (en) * 2010-12-20 2016-06-28 Texas Instruments Incorporated Pixel retrieval for frame reconstruction
RU2649770C1 (ru) * 2011-01-07 2018-04-04 Нтт Докомо, Инк. Способ прогнозирующего кодирования, устройство прогнозирующего кодирования и программа прогнозирующего кодирования вектора движения и способ прогнозирующего декодирования, устройство прогнозирующего декодирования и программа прогнозирующего декодирования вектора движения
JP5298140B2 (ja) * 2011-01-12 2013-09-25 株式会社エヌ・ティ・ティ・ドコモ 画像予測符号化装置、画像予測符号化方法、画像予測符号化プログラム、画像予測復号装置、画像予測復号方法、及び画像予測復号プログラム
CN103563386A (zh) * 2011-05-31 2014-02-05 Jvc建伍株式会社 动图像编码装置、动图像编码方法及动图像编码程序、以及动图像解码装置、动图像解码方法及动图像解码程序
FI4164224T3 (fi) * 2011-06-28 2024-05-07 Lg Electronics Inc Videodekoodauslaitteisto ja videokoodauslaitteisto
JP5485969B2 (ja) * 2011-11-07 2014-05-07 株式会社Nttドコモ 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法及び動画像予測復号プログラム
US9883203B2 (en) * 2011-11-18 2018-01-30 Qualcomm Incorporated Adaptive overlapped block motion compensation
US9986236B1 (en) * 2013-11-19 2018-05-29 Google Llc Method and apparatus for encoding a block using a partitioned block and weighted prediction values
KR101789954B1 (ko) * 2013-12-27 2017-10-25 인텔 코포레이션 차세대 비디오 코딩을 위한 콘텐츠 적응적 이득 보상된 예측
JP6483028B2 (ja) * 2014-05-23 2019-03-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 画像符号化方法及び画像符号化装置
US10856001B2 (en) * 2015-02-24 2020-12-01 Lg Electronics Inc. Polygon unit-based image processing method, and device for same
CN108293131B (zh) * 2015-11-20 2021-08-31 联发科技股份有限公司 基于优先级运动矢量预测子推导的方法及装置
US20170150186A1 (en) * 2015-11-25 2017-05-25 Qualcomm Incorporated Flexible transform tree structure in video coding
US10368083B2 (en) * 2016-02-15 2019-07-30 Qualcomm Incorporated Picture order count based motion vector pruning
US10863189B2 (en) * 2016-03-18 2020-12-08 Telefonaktiebolaget Lm Ericsson (Publ) Motion vector reconstruction order swap
CN109328461B (zh) * 2016-04-29 2023-09-05 世宗大学校产学协力团 视频信号编码/解码方法和设备
CN116389738A (zh) * 2016-11-21 2023-07-04 松下电器(美国)知识产权公司 图像编码方法、图像解码方法及非暂时性的存储介质
WO2019124191A1 (ja) * 2017-12-18 2019-06-27 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
WO2020050283A1 (en) * 2018-09-07 2020-03-12 Panasonic Intellectual Property Corporation Of America System and method for video coding
EP3847814A4 (en) * 2018-11-06 2021-07-14 Beijing Bytedance Network Technology Co. Ltd. POSITION DEPENDENT STORAGE, MOVEMENT INFORMATION
CN113170106A (zh) * 2018-11-28 2021-07-23 北京字节跳动网络技术有限公司 帧内块复制模式中运动参考的扩展方法
US11122272B2 (en) * 2018-12-26 2021-09-14 Mediatek Inc. Triangle prediction with applied-block settings and motion storage settings
US11570442B2 (en) * 2019-06-05 2023-01-31 Qualcomm Incorporated Reducing motion field storage for prediction of video data using non-rectangular prediction modes

Also Published As

Publication number Publication date
JP2021536191A (ja) 2021-12-23
MX2021002557A (es) 2021-04-29
US11812027B2 (en) 2023-11-07
JP2023164617A (ja) 2023-11-10
TWI832891B (zh) 2024-02-21
US20200084452A1 (en) 2020-03-12
CN112640466A (zh) 2021-04-09
WO2020050283A1 (en) 2020-03-12
TW202037168A (zh) 2020-10-01
KR20210049822A (ko) 2021-05-06
US20210409721A1 (en) 2021-12-30
US11153569B2 (en) 2021-10-19
US20240007644A1 (en) 2024-01-04

Similar Documents

Publication Publication Date Title
US11856217B2 (en) Image encoder and related non-transitory computer readable medium for image decoding
US10869051B2 (en) Image decoder and image decoding method capable of boundary smoothing operation between triangle partitions
US11758166B2 (en) Image encoder, image decoder, image encoding method, and image decoding method
US11876992B2 (en) Image decoder and decoding method
TWI808218B (zh) 用於視訊寫碼之系統及方法
US11812027B2 (en) System and method for video coding
BR112020025664A2 (pt) dispositivo codificador, dispositivo decodificador, método de codificação e método de decodificação
BR112020022773A2 (pt) codificador, decodificador, método de codificação e método de decodificação
WO2020171046A1 (en) Image encoder and image decoder
BR112021014711A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
BR112021009596A2 (pt) codificador, decodificador, método de codificação, e método de decodificação
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
BR112021001245A2 (pt) codificador, decodificador, método de codificação e método de decodificação
BR112021011019A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
BR112021000616A2 (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
BR112021001890A2 (pt) codificador, decodificador, método de codificação e método de decodificação
US11490093B2 (en) Encoder, decoder, encoding method, and decoding method
BR112020019800A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
KR20220024007A (ko) 부호화 장치, 복호 장치, 부호화 방법, 및 복호 방법
CN114128284A (zh) 用于视频编码的***和方法