BR112012025275B1 - Método para realizar predição de múltiplas hipóteses localizada durante codificação de vídeo de uma unidade de codificação e aparelho associado - Google Patents

Método para realizar predição de múltiplas hipóteses localizada durante codificação de vídeo de uma unidade de codificação e aparelho associado Download PDF

Info

Publication number
BR112012025275B1
BR112012025275B1 BR112012025275-5A BR112012025275A BR112012025275B1 BR 112012025275 B1 BR112012025275 B1 BR 112012025275B1 BR 112012025275 A BR112012025275 A BR 112012025275A BR 112012025275 B1 BR112012025275 B1 BR 112012025275B1
Authority
BR
Brazil
Prior art keywords
subcoding
unit
units
encoding
motion
Prior art date
Application number
BR112012025275-5A
Other languages
English (en)
Other versions
BR112012025275A2 (pt
BR112012025275B8 (pt
Inventor
Jian-Liang Lin
Yu-Pao Tsai
Shaw-Min Lei
Original Assignee
Hfi Innovation Inc
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 Hfi Innovation Inc filed Critical Hfi Innovation Inc
Publication of BR112012025275A2 publication Critical patent/BR112012025275A2/pt
Publication of BR112012025275B1 publication Critical patent/BR112012025275B1/pt
Publication of BR112012025275B8 publication Critical patent/BR112012025275B8/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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

Landscapes

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

Abstract

MÉTODO PARA REALIZAR PREVISÃO DE MÚLTIPLAS HIPÓTESES LOCALIZADA DURANTE CODIFICAÇÃO DE VÍDEO DE UMA UNIDADE DE CODIFICAÇÃO E APARELHO ASSOCIADO. Trata-se de um método para realizar previsão de múltiplas hipóteses localizada durante codificação de vídeo de uma unidade de codificação que inclui: dividir a unidade de codificação em uma pluralidade de unidades de subcodificação; e realizar previsão de vetor de movimento de cada uma unidades de subcodificação Mais particularmente, etapa de realização de previsão de vetor de movimento de cada uma das unidades de subcodificação inclui ainda obter uma pluralidade de vetores de movimento para compensação de movimento de múltiplas hipóteses de uma unidade de subcodificação especifica das unidades de subcodificação a partir de uma pluralidade de outras unidades de subcodificação/codifi- cação. O método inclui ainda realizar compensação de movimentos de múltiplas hipóteses na unidade de subcodificação particularmente, inclui utilizar uma combinação linear de uma pluralidade de valores de pixel da pluralidade de outras unidades de sobcodificação/ codificação como um valor de pixel previsto da unidade de subcodificação especifica. Um aparelho associado é também fornecido.

Description

ANTECEDENTES DA INVENÇÃO Referência Cruzada A Pedidos Relacionados
Este pedido reivindica o benefício do Pedido Provisório no U.S. 61/323.948, o qual foi depositado em 14 de abril de 2010 e intitulado “MULTIHYPOTHESIS PREDICTION IN VIDEO CODING” e é incorporado na presente invenção a título de referência. Este pedido reivindica adicionalmente o benefício do Pedido no U.S. 13/080.668, o qual foi depositado em 6 de abril de 2010 e intitulado “METHOD FOR PERFORMING LOCALIZED MULTIHYPOTHESIS PREDICTION DURING VIDEO CODING OF A CODING UNIT, AND ASSOCIATED APPARATUS“ e é incorporado na presente invenção a título de referência.
Campo da Invenção
A presente invenção refere-se ao processamento de vídeo em relação à compensação de movimento e, mais particularmente, a um método para realizar a predição de múltiplas hipóteses localizada durante a codificação de vídeo de uma unidade de codificação e a um aparelho associado.
Descrição da Técnica Relacionada
A compensação de movimento é uma técnica utilizada na codificação e decodificação de dados de vídeo para compressão e descompressão de vídeo. Com o auxílio da compensação de movimento, uma gravura atual pode ser representada em termos de algumas porções de uma ou mais gravuras de referência, em que as gravuras de referência podem ser anteriores no tempo ou mesmo provenientes do futuro. Tipicamente, quando a compensação de movimento é utilizada, as imagens podem ser sintetizadas precisamente a partir das imagens transmitidas/armazenadas anteriormente e a eficácia de compressão pode ser melhorada. Conforme as técnicas de codificação avançam, os projetos em relação a padrões mais novos foram introduzidos. Parece pouco provável que esquemas de compensação de movimento convencionais possam sempre funcionar apropriadamente. Por exemplo, em algumas situações, um problema de eficácia de codificação baixa pode existir. Dessa forma, um método novo é exigido para aprimorar a eficácia de codificação na codificação de vídeo.
BREVE SUMÁRIO DA INVENÇÃO
É, portanto, um objetivo da invenção reivindicada fornecer um método para realizar predição de múltiplas hipóteses localizada durante a codificação de vídeo de uma unidade de codificação e fornecer um aparelho associado, a fim de resolver o problema mencionado acima.
Uma modalidade exemplificativa de um método para realizar a predição de múltiplas hipóteses localizada durante a codificação de vídeo de uma unidade de codificação compreende: dividir a unidade de codificação em uma pluralidade de unidades de subcodificação; e processar cada uma das unidades de subcodificação. Mais particularmente, a etapa de processar cada uma das unidades de subcodificação compreende adicionalmente: obter informações de movimento de um primeiro conjunto de unidades codificadas para a compensação de movimento de múltiplas hipóteses de uma unidade de subcodificação específica dentre as unidades de subcodificação; utilizar uma combinação linear de uma pluralidade de valores de pixel derivado das informações de movimento do primeiro conjunto de unidades codificadas como um valor de pixel previsto da unidade de subcodificação específica; e derivar um valor de pixel previsto de outra unidade de subcodificação na unidade de codificação utilizando-se as informações de movimento de um segundo conjunto de unidades codificadas, em que o segundo conjunto de unidade codificada compreende pelo menos uma unidade codificada que não está no primeiro conjunto de unidades codificadas.
Uma modalidade exemplificativa de um aparelho para realizar a predição de múltiplas hipóteses localizada durante a codificação de vídeo de uma unidade de codificação compreende um circuito de processamento disposto para realizar a codificação de vídeo na unidade de codificação, em que o circuito de processamento compreende um módulo de pré-processamento e pelo menos um módulo de codificação. O módulo de pré-processamento é disposto para dividir a unidade de codificação em uma pluralidade de unidades de subcodificação e para processar cada uma das unidades de subcodificação. Mais particularmente, o módulo de pré-processamento obtém as informações de movimento de um primeiro conjunto de unidades codificadas para a compensação de movimento de múltiplas hipóteses de uma unidade de subcodificação específica das unidades de subcodificação e realiza a compensação de movimento de múltiplas hipóteses na unidade de subcodificação específica de acordo com as informações de movimento, em que o módulo de pré-processamento utiliza uma combinação linear de uma pluralidade de valores de pixel derivada das informações de movimento do primeiro conjunto das unidades codificadas como um valor de pixel previsto da unidade de subcodificação específica. Adicionalmente, o pelo menos um módulo de codificação é disposto para realizar a codificação de vídeo na unidade de codificação com base na compensação de movimento de múltiplas hipóteses realizada pelo módulo de pré-processamento. Adicionalmente, o módulo de pré-processamento deriva um valor de pixel previsto de outra unidade de subcodificação na unidade de codificação utilizando-se as informações de movimento de um segundo conjunto de unidades codificadas que compreende pelo menos uma unidade codificada que não está no primeiro conjunto de unidades codificadas.
Uma modalidade exemplificativa de um método para realizar a predição de múltiplas hipóteses localizada durante a codificação de vídeo de uma unidade de codificação compreende: dividir a unidade de codificação em uma pluralidade de unidades de subcodificação; e processar cada uma das unidades de subcodificação. Mais particularmente, a etapa de processar cada uma das unidades de subcodificação compreende adicionalmente: obter informações de movimento de uma pluralidade de unidades codificadas para a compensação de movimento de múltiplas hipóteses de uma unidade de subcodificação específica das unidades de subcodificação; utilizar uma soma ponderada de uma pluralidade de valores de pixel derivada das informações de movimento das unidades codificadas como um valor de pixel previsto da unidade de subcodificação específica; e derivar um valor de pixel previsto de outra unidade de subcodificação na unidade de codificação utilizando-se uma soma ponderada diferente dos valores de pixel derivados das informações de movimento das unidades codificadas.
Esses e outros objetivos da presente invenção irão, sem dúvida, se tornar óbvio àqueles versados na técnica apos ler a seguinte descrição detalhada da modalidade preferencial que é ilustrada nas várias figuras e desenhos.
BREVE DESCRIÇÃO DOS DESENHOS
A Figura 1A é um diagrama de um aparelho para realizar uma predição de múltiplas hipóteses localizada durante a codificação de vídeo de uma unidade de codificação de acordo com uma primeira modalidade da presente invenção.
A Figura 1B ilustra o módulo de Inter/Intra-Predição mostrado na Figura 1 A de acordo com uma modalidade da presente invenção.
A Figura 1C ilustra as operações de compensação de movimento de múltiplas hipóteses exemplificativas do circuito de Inter-Predição de múltiplas hipóteses mostrado na Figura IB de acordo com uma modalidade da presente invenção.
A Figura 2 é um fluxograma de um método para realizar a predição de múltiplas hipóteses localizada durante a codificação de vídeo de uma unidade de codificação de acordo com uma modalidade da presente invenção.
A Figura 3 ilustra blocos codificados exemplificativos envolvidos com o método mostrado na Figura 2 de acordo com uma modalidade da presente invenção.
A Figura 4 ilustra detalhes de implantação envolvidos com o método mostrado na Figura 2 de acordo com uma modalidade da presente invenção.
As Figuras 5A a 5D ilustra alguns detalhes de implantação da predição de múltiplas hipóteses envolvidos com o método mostrado na Figura 2 de acordo com diferentes modalidades da presente invenção.
As Figuras 6A a 6B ilustram fontes exemplificativas para obter informações de movimento que são envolvidas com o método mostrado na Figura 2 de acordo com diferentes modalidades da presente invenção.
As Figuras 7A a 7B ilustram respectivamente vetores de movimento temporal e espacial (MVs) envolvidos com o método mostrado na Figura 2 de acordo com diferentes modalidades da presente invenção.
As Figuras 8A a 8C ilustram fontes exemplificativas para obter vetores de movimento que são envolvidos com o método mostrado na Figura 2 de acordo com algumas modalidades da presente invenção.
A Figura 9 ilustra detalhes de implantação envolvidos com o método mostrado na Figura 2 de acordo com uma modalidade da presente invenção.
A Figura 10 ilustra alguns detalhes de implantação envolvidos com o método mostrado na Figura 2 de acordo com uma modalidade da presente invenção.
A Figura 11 ilustra detalhes de implantação envolvidos com o método mostrado na Figura 2 de acordo com uma modalidade da presente invenção.
DESCRIÇÃO DETALHADA DA INVENÇÃO
Certos termos usados por toda a seguinte descrição e reivindicações que se referem a componentes particulares. Conforme um versado na técnica irá apreciar, fabricantes de equipamento eletrônico podem referir a um componente por diferentes nomes. Este documento não pretende distinguir entre os componentes que se diferem no nome, mas não na função. Na seguinte descrição e reivindicações, os termos “incluir” e “compreender” são usados de uma maneira irrestrita e, assim, devem ser interpretados no sentido de “incluem, mas não limitados a”. Também, o termo “acoplar” pretende significar uma conexão elétrica ou direta ou indireta. Consequentemente, se um dispositivo é acoplado a outro dispositivo, essa conexão pode ser através de uma conexão elétrica direta ou através de uma conexão elétrica indireta por meio de outros dispositivos e conexões.
Referir-se à Figura 1A, que ilustra um diagrama de um aparelho 100 para realizar a predição de múltiplas hipóteses localizada durante a codificação de vídeo de uma unidade de codificação de acordo com uma primeira modalidade da presente invenção. O aparelho 100 compreende um módulo de Inter/Intra-Predição 110 (rotulado como “Inter/Intra-Predição” na Figura 1A), uma unidade aritmética 120, um módulo de transformação e quantização 130 (rotulado como “Transformação e Quantização” na Figura 1A), um circuito de codificação de entropia 140 (rotulado como “Codificação de Entropia” na Figura 1A), um módulo de transformação inversa e quantização inversa 150 (rotulado como “Transformação Inversa e Quantização Inversa” na Figura 1A), um circuito de reconstrução 160 (rotulado como “REC” na Figura 1A), um filtro de desbloqueio 170 e um armazenamento temporário de quadro 180. Referindo-se à Figura IB, o módulo de Inter/Intra-Predição 110 mencionado acima pode compreender um circuito de Inter-Predição de múltiplas hipóteses 112 (rotulado como “Inter-Predição de Múltiplas Hipóteses” na Figura IB), um circuito de Inter-Predição 114 (rotulado como “Inter-Predição” na Figura IB), um circuito de Intra-Predição 116 (rotulado como “Intra- Predição” na Figura IB) e um circuito de comutação 118.
De acordo com a modalidade mostrada na Figura 1A, o aparelho 100 srealiza a codificação de vídeo em um sinal original 109 e gera um sinal de saída que carrega resultados de codificação, tal como a saída do circuito de codificação de entropia 140. Por exemplo, o sinal original 109 pode representar o vídeo de entrada que carrega dados da unidade de codificação e a saída do circuito de codificação de entropia 140 pode ser um fluxo de bits de saída (ou fluxo de bits). Adicionalmente, o módulo de Inter/Intra- Predição 110 é disposto para realizar a Inter/Intra-Predição e, mais particularmente, para realizar a Inter-Predição de múltiplas hipóteses, Inter-Predição e Intra-Predição utilizando-se o circuito de Inter-Predição de múltiplas hipóteses 112, o circuito de Inter- Predição 114 e o circuito de Intra-Predição 116 mostrados na Figura IB, respectivamente.
Conforme mostrado na Figura 1A, a unidade aritmética 120 é disposta para realizar uma operação aritmética tal como uma operação de subtração no sinal original 109 (que pode representar o vídeo de entrada que carrega dados da unidade de codificação, por exemplo) e o sinal de predição 119 gerado pelo módulo de Inter/Intra- Predição 110. Adicionalmente, o módulo de transformação e quantização 130, o circuito de codificação de entropia 140, o módulo de transformação inversa e quantização inversa 150 e o circuito de reconstrução 160 são dispostos para realizar a transformação e quantização, codificação de entropia, transformação inversa e quantização inversa e operações de reconstrução, respectivamente. Como um resultado, o circuito de reconstrução 160 gera um sinal temporariamente reconstruído 169 que carrega resultados reconstruídos das operações de reconstrução. Adicionalmente, o filtro de desbloqueio 170 é disposto para realizar a filtragem de desbloqueio no sinal reconstruído 169, a fim de gerar um sinal desbloqueado 179 que carrega dados desbloqueados para serem armazenados no armazenamento temporário de quadro 180 para a Inter-Predição das gravuras de codificação sucessiva e o módulo de Inter/Intra-Predição 110 tem a capacidade de acessar o sinal temporariamente reconstruído 169 e os dados desbloqueados das gravuras decodificadas anteriores carregados por um sinal restaurado 189. Isso é para propósitos ilustrativos somente e não deve ser uma limitação da presente invenção. De acordo com algumas variações dessa modalidade, em uma situação em que o filtro de desbloqueio 170 e a filtragem de desbloqueio do mesmo podem ser omitidos, os resultados reconstruídos carregados pelo sinal temporariamente reconstruído 169 podem ser armazenados no armazenamento temporário de quadro 180 e o módulo de Inter/Intra-Predição 110 tem a capacidade de acessar o sinal temporariamente reconstruído 169 da gravura de codificação atual e os resultados reconstruídos das gravuras decodificadas anteriores através do sinal restaurado 189.
Referindo-se à Figura IB, o circuito de Inter-Predição de múltiplas hipóteses 112 é disposto para realizar a Inter-Predição de múltiplas hipóteses de acordo com o sinal original 109 e os resultados reconstruídos das gravuras decodificadas anteriores através do sinal restaurado 189 para gerar uma saída de Inter-Predição de múltiplas hipóteses 113, o circuito de Inter-Predição 114 é disposto para realizar a Inter- Predição de acordo com o sinal original 109 e os resultados reconstruídos das gravuras decodificadas anteriores através do sinal restaurado 189 para gerar uma saída de Inter- Predição 115 e o circuito de Intra-Predição 116 é disposto para realizar a Intra-Predição de acordo com o sinal original 109 e o sinal temporariamente reconstruído 169 para gerar uma Intra-Predição output 117, em que o circuito de comutação 118 é disposto para selecionar dinamicamente uma dentre a saída de Inter-Predição de múltiplas hipóteses 113, a saída de Inter-Predição 115 e a saída de Intra-Predição 117 como o sinal de predição 119 mencionado acima.
Na prática, pelo menos uma porção (por exemplo, uma porção ou todo) do aparelho 100 pode ser implantada utilizando-se os circuitos de hardware. Por exemplo, o aparelho 100 pode ser implantado com um circuito de processamento disposto para realizar a codificação de vídeo na unidade de codificação, em que o circuito de processamento pode compreender um módulo de pré-processamento que compreende o módulo de Inter/Intra-Predição 110 e pode compreender adicionalmente pelo menos um módulo de codificação que compreende a unidade aritmética 120, o módulo de transformação e quantização 130, o circuito de codificação de entropia 140, o módulo de transformação inversa e quantização inversa 150, o circuito de reconstrução 160 e o filtro de desbloqueio 170. Mais particularmente, um ou mais componentes do aparelho 100 podem ser implantados com técnicas de processamento de sinal digital. Isso é para propósitos ilustrativos somente e não deve ser uma limitação da presente invenção. De acordo com algumas variações dessa modalidade, elo menos uma porção do aparelho 100 pode ser implantada por software e/ou firmware. Por exemplo, o circuito de processamento pode ser um processador que executa uma pluralidade de códigos de programa, em que o processador que executa uma primeira porção dos códigos de programa pode realizar as mesmas operações ou operações similares do módulo de pré- processamento mencionado acima e o processador que executa uma segunda porção dos códigos de programa pode realizar as mesmas operações ou operações similares do módulo de codificação mencionado acima.
Não importa se pelo menos uma porção (por exemplo, uma porção ou todo) do aparelho 100 é implantada utilizando-se circuitos de hardware ou utilizando-se realização de software, o aparelho 100 tem a capacidade de realizar a codificação de vídeo em unidades das unidades de codificação. Por exemplo, as unidades de codificação podem ser macroblocos (MBs). Em outro exemplo, as unidades de codificação podem ser as unidades de codificação de um tamanho entre uma unidade de codificação maior (LCU) predeterminada e uma unidade de codificação menor (SCU) predeterminada. A gravura é primeiro dividida em uma pluralidade de LCUs e cada uma das LCUs é adaptativamente dividida em unidades de codificação menores até unidades de codificação de folha serem alcançadas. De acordo com essa modalidade, o módulo de pré-processamento mencionado acima tem a capacidade de dividir a unidade de codificação mencionada anteriormente em uma pluralidade de unidades de subcodificação (por exemplo, divididas por vários tipos de partições, tal como partições quadradas e não quadradas) e tem a capacidade de realizar a predição para cada uma das unidades de subcodificação. Mais particularmente, o módulo de pré-processamento pode realizar a Inter-Predição, Intra-Predição ou compensação de movimento de múltiplas hipóteses em cada unidade de subcodificação. Quando a compensação de movimento de múltiplas hipóteses é selecionada para uma unidade de subcodificação específica, o módulo de pré-processamento calcula uma combinação linear de uma pluralidade de valores de pixel obtida de acordo com uma pluralidade de outras unidades codificadas e utiliza o resultado calculado como um valor de pixel previsto da unidade de subcodificação específica. A pluralidade de outras unidades codificadas pode ser unidades de subcodificação codificadas, unidades de codificação codificadas ou uma combinação das mesmas. Adicionalmente, o pelo menos um módulo de codificação mencionado anteriormente é disposto para realizar a codificação de vídeo na unidade de codificação com base na compensação de movimento de múltiplas hipóteses realizada pelo módulo de pré-processamento.
A Figura 1C ilustra as operações de compensação de movimento de múltiplas hipóteses exemplificativas do módulo de Inter/Intra-Predição 110 mostrado na Figura 1B de acordo com uma modalidade da presente invenção. Nessa modalidade, as notações F(to - 3), F(to - 2), F(to - 1) e F(to) são utilizadas para representar uma porção de uma pluralidade de quadros subsequentes {F(t)}, com o quadro F(t0) sendo o quadro atual. O quadro atual F(t0) pode compreender uma pluralidade de unidades de codificação {CU(t0)} e uma unidade de codificação CU(t0) pode compreender uma pluralidade de unidades de subcodificação {SubCU(t0)}. O módulo de pré-processamento mencionado acima respectivamente obtém as informações de movimento tais como vetores de movimento {vk} de uma pluralidade de outras unidades de subcodificação/codificação, que significa que o módulo de pré-processamento utiliza os vetores de movimento da pluralidade de outras unidades de subcodificação/codificação como os vetores de movimento {vk} para a compensação de movimento de múltiplas hipóteses da unidade de subcodificação específica. De acordo com essa modalidade, o módulo de pré- processamento pode realizar a compensação de movimento de múltiplas hipóteses na unidade de subcodificação específica tal como a unidade de subcodificação SubCU(t0) mostrada na Figura 1C de acordo com a pluralidade de vetores de movimento {vk}.
Em geral, o módulo de pré-processamento calcula uma combinação linear de uma pluralidade de valores de pixel de referência {y} obtida pelas informações de movimento de uma pluralidade de outras unidades de subcodificação/codificação. A combinação linear é um valor de pixel previsto yp da unidade de subcodificação específica. Por exemplo, as informações de movimento do primeiro conjunto de unidades codificadas compreendem um ou uma combinação de vetor(es) de movimento, índice(s) de quadro de referência e direção(ões) de predição e, mais particularmente, compreende alguns vetores de movimento que são derivados de uma única unidade de subcodificação/unidade de codificação. Em outro exemplo, as informações de movimento podem ser vetor(es) de movimento, índice(s) de quadro de referência, direção(ões) de predição ou qualquer combinação dos acima. Os vetores de movimento são usados como um exemplo das informações de movimento nas seguintes modalidades. Note que a combinação linear pode ser uma soma ponderada de uma pluralidade de valores de pixel de referência, que significa que o módulo de pré-processamento utiliza a soma ponderada de uma pluralidade de valores de pixel como o valor de pixel previsto da unidade de subcodificação específica. Por exemplo, em uma situação em que o pixel previsto específico que tem o valor de pixel previsto yp pertence à i-ésima unidade de subcodificação (por exemplo, a unidade de subcodificação SubCU(t0) mostrada na Figura 1C) e é localizado na posição x (por exemplo, um vetor que indica a posição, tal como um vetor bidimensional no plano de imagem do quadro atual F(t0)), o valor de pixel previsto yp pode ser reescrito como yp (i, x) e o valor de pixel previsto yp (i, x) pode ser expresso conforme segue:
Figure img0001
em que o índice k pode variar dentro do conjunto K, com a notificação hk(i, x) representando um parâmetro ponderado associado ao índice k. Por exemplo, em uma situação em que o número de Valores possíVeis de k é maior que um, a soma dos parâmetros ponderados {hk(i, x)} pode ser igual a um, para simplicidade.
Conforme mostrado na Figura 1C, os Vetores de moVimento {Vk} podem compreender os Vetores de moVimento VA e VB das unidades de subcodificação A e B de outras unidades de codificação dentro do quadro atual F(t0) e compreendem adicionalmente um Vetor de moVimento VT de uma unidade de subcodificação T de uma unidade de codificação CU(to - 1) dentro de outro quadro tal como o quadro anterior F(to - 1). Por exemplo, em uma situação em que as unidades de codificação são blocos, a unidade de codificação CU(to - 1) pode ser um bloco colocado com respeito à unidade de codificação CU(t0). Como um resultado, aplicando-se os parâmetros ponderados {hk(i, x)} aos valores de pixel de referência {yr} obtidos pelos vetores de movimento {vk}, o módulo de pré-processamento pode mesclar/misturar as imagens parciais indicadas pelos vetores de movimento {vk} tal como VA, VB e VT a fim de gerar uma imagem de soma ponderada e utiliza a imagem de soma ponderada como a imagem parcial prevista da unidade de subcodificação específica tal como a unidade de subcodificação SubCU(t0) mostrada na Figura 1C. Refira-se à Figura 2 para detalhes adicionais em relação às operações reveladas acima.
A Figura 2 é um fluxograma de um método 910 para realizar a predição de múltiplas hipóteses localizada durante a codificação de vídeo de uma unidade de codificação de acordo com uma modalidade da presente invenção. O método 910 pode ser aplicado ao aparelho 100 mostrado na Figura 1A e, mais particularmente, ao circuito de processamento mencionado acima. O método é descrito conforme segue.
Na Etapa 912, o módulo de pré-processamento mencionado acima divide a unidade de codificação CU(t0) (por exemplo, a unidade de codificação sob consideração) em uma pluralidade de unidades de subcodificação tal como as unidades de subcodificação {SubCU(t0)} e realiza a predição em cada uma das unidades de subcodificação {SubCU(t0)}. Em particular, o módulo de pré-processamento obtém as informações de movimento, tal como os vetores de movimento {vk} revelados acima, para a compensação de movimento de múltiplas hipóteses da unidade de subcodificação específica SubCU(t0) das unidades de subcodificação {SubCU(t0)} de uma pluralidade de outras unidades codificadas mencionadas acima (por exemplo, uma pluralidade de outras unidades de subcodificação/codificação, que pode compreender: outra(s) unidade(s) de subcodificação da unidade de codificação CU(t0); unidade(s) de subcodificação de pelo menos uma outra unidade de codificação; e/ou outra unidade(s) de codificação). De acordo com uma modalidade da presente invenção, tal como essa mostrada na Figura 3, a unidade de codificação CU(t0) pode ser um bloco sob processamento (rotulado como “Bloco processado” na Figura 3) e a unidade de subcodificação específica SubCU(t0) pode ser um sub-bloco SB, em que as porções sombreadas ilustradas na Figura 3 podem representar pelo menos uma porção das unidades codificadas/blocos codificados {CB}.
Referindo-se à Figura 3, os blocos codificados {CB} podem compreender um bloco codificado esquerdo CBL, um bloco codificado esquerdo superior CBUL, um bloco codificado superior CBU e um bloco codificado direito superior CBUR. Por exemplo, os vetores de movimento {vk} podem compreender vetores de movimento de pelo menos uma porção (por exemplo, uma porção ou todos) dos blocos codificados {CB}, tal como um ou mais dos blocos codificados CBL, CBUL, CBU e CBUR.
Na Etapa 914, o módulo de pré-processamento mencionado anteriormente realiza a compensação de movimento de múltiplas hipóteses na unidade de subcodificação específica SubCU(t0) de acordo com a pluralidade de vetores de movimento {vk}. Em particular, o módulo de pré-processamento utiliza uma combinação linear de uma pluralidade de valores de pixel da pluralidade de outras unidades codificadas mencionadas na Etapa 912 (por exemplo, a pluralidade de outras unidades de subcodificação/codificação), tal como a combinação linear dos valores de pixel de referência {yr} dos pixels de referência dentro da pluralidade de outras unidades codificadas mencionado acima, como o valor de pixel previsto yp da unidade de subcodificação específica. Por exemplo, cada unidade de codificação (por exemplo, a unidade de codificação CU(t0)) pode ser um bloco e, mais particularmente, um bloco que compreende um arranjo de pixels, tal como um macrobloco estendido, um macrobloco ou uma porção de um macrobloco. Dessa forma, uma unidade de subcodificação pode ser referenciada como um sub-bloco. De acordo com uma modalidade da presente invenção, tal como essa mostrada na Figura 3, o módulo de pré-processamento mencionado anteriormente pode realizar a compensação de movimento de múltiplas hipóteses no bloco sob processamento (rotulado como “Bloco processado” na Figura 3) de acordo com os vetores de movimento {vk} revelado acima, em que o módulo de pré-processamento pode mesclar/misturar os valores de pixel de referência {yr} dos pixels de referência dentro de pelo menos uma porção (por exemplo, uma porção ou todos) dos blocos codificados {CB}, tal como um ou mais dos blocos codificados CBL, CBUL, CBU e CBUR. Nessa modalidade, os blocos codificados {CB} podem ser blocos compensados por movimento.
De acordo com essa modalidade, o módulo de pré-processamento é disposto para processar cada uma das unidades de subcodificação mencionadas na Etapa 912. Por exemplo, o módulo de pré-processamento obtém informações de movimento de um primeiro conjunto de unidades codificadas para a compensação de movimento de múltiplas hipóteses de uma primeira unidade de subcodificação das unidades de subcodificação mencionadas na Etapa 912, tal como a unidade de subcodificação específica SubCU(t0) e realiza a compensação de movimento de múltiplas hipóteses na primeira unidade de subcodificação tal como a unidade de subcodificação específica de acordo com as informações de movimento. Mais particularmente, o módulo de pré- processamento utiliza uma combinação linear de uma pluralidade de valores de pixel derivada das informações de movimento do primeiro conjunto de unidades codificadas como um valor de pixel previsto da primeira unidade de subcodificação tal como a unidade de subcodificação específica. Adicionalmente, o pelo menos um módulo de codificação mencionado anteriormente é disposto para realizar a codificação de vídeo na unidade de codificação com base na compensação de movimento de múltiplas hipóteses realizada pelo módulo de pré-processamento. Adicionalmente, o módulo de pré- processamento deriva um valor de pixel previsto de outra unidade de subcodificação na unidade de codificação, tal como uma segunda unidade de subcodificação das unidades de subcodificação mencionadas na Etapa 912, utilizando-se as informações de movimento de um segundo conjunto de unidades codificadas, em que a segunda unidade de subcodificação se difere da primeira unidade de subcodificação.
Em relação à primeira unidade de subcodificação, o primeiro conjunto de unidades codificadas pode compreender: outra(s) unidade(s) de subcodificação da unidade de codificação CU(t0) (isto é, unidade(s) de subcodificação da unidade de codificação CU(t0) exceto a primeira unidade de subcodificação); unidade(s) de subcodificação de pelo menos uma outra unidade de codificação (isto é, unidade(s) de subcodificação de pelo menos uma unidade de codificação que se difere da unidade de codificação CU(t0)); e/ou outra(s) unidade(s) de codificação, tal como uma ou mais unidades de codificação que se diferem da unidade de codificação CU(t0). Adicionalmente, em relação à segunda unidade de subcodificação, o segundo conjunto de unidades codificadas pode compreender: outra(s) unidade(s) de subcodificação da unidade de codificação CU(t0) (isto é, unidade(s) de subcodificação da unidade de codificação CU(t0) exceto a segunda unidade de subcodificação); unidade(s) de subcodificação de pelo menos uma outra unidade de codificação (isto é, unidade(s) de subcodificação de pelo menos uma unidade de codificação que se difere da unidade de codificação CU(t0)); e/ou outra(s) unidade(s) de codificação, tal como uma ou mais unidades de codificação que se diferem da unidade de codificação CU(t0). Note que o segundo conjunto de unidades codificadas compreende pelo menos uma unidade codificada que não está no primeiro conjunto de unidades codificadas. Isso é para propósitos ilustrativos somente e não deve ser uma limitação da presente invenção. De acordo com algumas variações dessa modalidade, o segundo conjunto de unidades codificadas e o primeiro conjunto de unidades codificadas podem ser o mesmo conjunto de unidades codificadas. Entretanto, o módulo de pré-processamento utiliza diferentes combinações lineares de uma pluralidade de valores de pixel derivada das informações de movimento do mesmo conjunto de unidades codificadas como os respectivos valores de pixel previstos da primeira unidade de subcodificação e da segunda unidade de subcodificação, respectivamente. Por exemplo, o módulo de pré-processamento utiliza uma primeira combinação linear que corresponde a um primeiro conjunto de parâmetros ponderados para a pluralidade de valores de pixel como o valor de pixel previsto da primeira unidade de subcodificação e utiliza uma segunda combinação linear corresponde a um segundo conjunto de parâmetros ponderados para a pluralidade de valores de pixel como o valor de pixel previsto da segunda unidade de subcodificação. Em outro exemplo, o módulo de pré-processamento utiliza uma primeira soma ponderada de uma pluralidade de valores de pixel derivada das informações de movimento do primeiro conjunto de unidades codificadas como o valor de pixel previsto da primeira unidade de subcodificação tal como a unidade de subcodificação específica e deriva o valor de pixel previsto da segunda unidade de subcodificação utilizando-se uma segunda soma ponderada dos valores de pixel derivados das informações de movimento do mesmo conjunto de unidades codificadas (isto é, o primeiro conjunto de unidades codificadas), em que a primeira soma ponderada é diferente da segunda soma ponderada.
Em algumas modalidades tal como variações da modalidade mostrada na Figura 3, cada uma das outras unidades codificadas mencionadas na Etapa 912 é uma unidade de codificação/subcodificação codificada. Por exemplo, em uma porção dessas variações, a pluralidade de outras unidades codificadas mencionadas na Etapa 912 compreende pelo menos uma unidade de codificação/subcodificação espacialmente codificada (por exemplo, um ou mais dos blocos codificados {CB} no quadro atual F(t0) ou um ou mais sub-blocos codificados dentro do bloco sob processamento ou dentro do bloco codificado) e/ou pelo menos uma unidade de codificação/subcodificação temporariamente codificada (por exemplo, um ou mais sub-blocos codificados/blocos em outro quadro que se difere do quadro atual F(t0)). Em outro exemplo, em uma porção dessas variações, cada uma das outras unidades codificadas mencionadas na Etapa 912 em uma unidade de codificação/subcodificação compensada por movimento. De acordo com algumas dessas variações, os vetores de movimento {vk} podem ser obtidos a partir da estimativa de movimento.
A Figura 4 ilustra alguns detalhes de implantação envolvidos com o método 910 mostrado na Figura 2 de acordo com uma modalidade da presente invenção. De acordo com essa modalidade, o módulo de pré-processamento pode utilizar uma soma ponderada de uma pluralidade de valores de pixel mencionada na Etapa 914 (por exemplo, ∑keK(hk(i, x) Tr(x + vk))) nessa modalidade, como o valor de pixel previsto yp da unidade de subcodificação específica tal como o i-ésimo sub-bloco bi mostrado na Figura 4. Para melhor compreensão, os blocos codificados CBL, CBUL, CBU e CBUR podem ser os mesmos que os mostrados na Figura 3, respectivamente. Por exemplo, os valores de pixel de referência {yr} dos pixels de referência para calcular o valor de pixel previsto yp podem ser obtidos a partir de um ou mais dos blocos codificados CBL, CBUL, CBU e CBUR e a pluralidade de vetores de movimento {vk} pode compreender um ou mais dos respectivos vetores de movimento e dos blocos codificados CBL, CBUL, CBU e CBUR
Mais particularmente, para cada sub-bloco tal como o sub-bloco bi mostrado na Figura 4, um valor de pixel previsto tal como o valor de pixel previsto yp(i, x) pode ser derivado da mescla/mistura dos valores de pixel de referência {yr} de alguns pixels de referência dentro dos blocos codificados {CB} e pode ainda ser expresso conforme segue:
Figure img0002
em que o índice k pode variar dentro do conjunto K e as notações vk e hk(i, x) podem ser utilizadas para representar o k-ésimo Vetor de moVimento de referência e o parâmetro ponderado associado, respectivamente. Por exemplo, bi e Bm e a notação Bm representam o conjunto de sub-blocos do bloco sob processamento (rotulado como “Bloco processado” na Figura 4). Conforme mostrado na Figura 4, um vetor de moVimento exemplificatiVo Vk dos Vetores de moVimento {Vk} é ilustrado dentro do bloco codificado CBU que significa que os Vetores de moVimento {Vk} compreendem o Vetor de moVimento VU do bloco codificado CBU nessa situação.
Em uma modalidade, tal como uma Variação da modalidade mostrada na Figura 4, o módulo de pré-processamento pode realizar a filtração de Wiener ótima em uma pluralidade de valores de pixel tal como os valores de pixel de referência {yr} com respeito a um valor de pixel real VREAL (i, x) do pixel atual sob consideração, a fim de ajustar os respectiVos parâmetros ponderados {hk (i, x)} para a pluralidade de Valores de pixel tal como os valores de pixel de referência {vr} e para gerar a soma ponderada (isto é, ∑keK(hk(i, x) vIJr(x + vk))) nessa variação. Por exemplo, os parâmetros ponderados {hk(i, x)} podem ser obtidos utilizando-se um filtro de Wiener ótimo dentro do módulo de pré- processamento conforme segue:
Figure img0003
que significa que os parâmetros ponderados {hk(i, x)} podem ser obtidos pesquisando-se por um conjunto de (h0*, ..., hK*) que corresponde a um valor mínimo de |(¥REAL(Í, x)) -∑keK(hk(i, x) 'Pr(\ + Vk))| durante a filtração de Wiener ótima realizada pelo módulo de pré-processamento. Isso é para propósitos ilustrativos somente e não deve ser uma limitação da presente invenção. De acordo com uma variação da modalidade mostrada na Figura 4, o módulo de pré-processamento pode determinar os respectivos parâmetros ponderados {hk(i, x)} para a pluralidade de valores de pixel de acordo com os conteúdos de pelo menos uma unidade de codificação vizinha, tal como os conteúdos de um ou mais dos blocos codificados CBL, CBUL, CBU e CBUR, a fim de gerar a soma ponderada (isto é, ∑keK(hk(i, x) Tr(x + vk))nessa variação). De acordo com outra variação da modalidade mostrada na Figura 4, o módulo de pré-processamento pode determinar os respectivos parâmetros ponderados {hk(i, x)} para a pluralidade de valores de pixel de acordo com os conteúdos da pluralidade de outras unidades de codificação mencionadas a pluralidade de, (por exemplo, o primeiro conjunto de unidades codificadas), a fim de gerar a soma ponderada (isto é, ∑keK(hk(i, x) Tr(x + vk)) nessa variação).
Em algumas outras modalidades, tal como algumas variações da modalidade mostrada na Figura 4, o módulo de pré-processamento pode determinar os respectivos parâmetros ponderados {hk(i, x)} para a pluralidade de valores de pixel pelo treinamento fora de linha ou pelo treinamento em linha, a fim de gerar a soma ponderada (isto é, ∑keK(hk(i, x) vIJr(x + vk)) nessas variações). De acordo com outra variação da modalidade mostrada na Figura 4, o módulo de pré-processamento pode utilizar uma média da pluralidade de valores de pixel como o valor de pixel previsto da unidade de subcodificação específica, que significa que quaisquer dois dentre os parâmetros ponderados {hk(i, x)} são iguais um ao outro. Mais particularmente, nessa variação, cada um dos parâmetros ponderados {hk(i, x)} é igual a 1/n(K), em que o n(K) representa o número de valores possíveis de k dentro do conjunto K.
As Figuras 5A a 5D ilustram alguns detalhes de implantação da predição de múltiplas hipóteses que são envolvidas com o método 910 mostrado na Figura 2 de acordo com diferentes modalidades da presente invenção, em que a combinação linear mencionada na Etapa 914 pode ser considerada como a soma ponderada (isto é, ∑keK(hk(i, x) Tr(x + vk)) nessas modalidades). Para melhor compreensão, os blocos codificados CBL, CBUL, CBU e CBUR podem ser os mesmos que os mostrados na Figura 3, respectivamente. Adicionalmente, o i-ésimo sub-bloco bi é ilustrado como um exemplo da unidade de subcodificação específica SubCU(t0).
Referindo-se à Figura 5A, as unidades de subcodificação A, B, C e D pertencem ao bloco sob processamento (rotulado como “Bloco processado” na Figura 5A) ou outras unidades codificadas (tal como CBUL, CBU, CBUR, CBL,). Mais particularmente, em relação ao i-ésimo sub-bloco bi mostrado na Figura 5A, a unidade de subcodificação A é a unidade de subcodificação adjacente esquerda, a unidade de subcodificação B é a unidade de subcodificação adjacente superior, a unidade de subcodificação C é a unidade de subcodificação adjacente direita superior e a unidade de subcodificação D é a unidade de subcodificação adjacente superior esquerda. Nessa modalidade, os vetores de movimento {vk} podem ser obtidos a partir das unidades de subcodificação A, B, C, e/ou D mostradas na Figura 5A e, portanto, podem incluir os respectivos vetores de movimento VA, VB, VC, e/ou VD dos mesmos. Por exemplo, os vetores de movimento {vk} podem incluir todos os vetores de movimento VA, VB, VC, e VD das unidades de subcodificação A, B, C e D. Em outro exemplo, os vetores de movimento {vk} podem incluir os vetores de movimento VA, VB e VC se a unidade de subcodificação C para a unidade de subcodificação específica tal como o i-ésimo sub- bloco bi existir. Em outro exemplo, os vetores de movimento {vk} podem incluir os vetores de movimento VA, VB e VD se a unidade de subcodificação C para a unidade de subcodificação específica tal como o i-ésimo sub-bloco bi não existir.
Assim, a combinação linear mencionada na Etapa 914 pode ser a soma ponderada revelada acima ∑keK(hk(i, x) Tr(x + vk)) com os vetores de movimento {vk} incluindo os vetores de movimento VA, VB, VC, e/ou VD. Para a brevidade, o valor de pixel previsto yp pode ser expresso conforme segue:
Figure img0004
em que a notação Soma_Ponderada representa a soma ponderada na situação revelada acima.
De acordo com uma variação da modalidade mostrada na Figura 5, o módulo de pré-processamento utiliza uma média da pluralidade de valores de pixel como o valor de pixel previsto da unidade de subcodificação específica, que significa que a combinação linear mencionada na Etapa 914 pode ser considerada como a média. Nessa situação, quaisquer dois parâmetros ponderados {hk(i, x)} são iguais um ao outro. Para a brevidade, o valor de pixel previsto yp pode ser expresso conforme segue:
Figure img0005
em que a notação Média representa a média nessa situação. As descrições similares não são repetidas em detalhes para essa variação.
Referindo-se à Figura 5B, as unidades de subcodificação α1, α2, α3, α4, α5, α6, α7 e α8 pertencem ao bloco codificado esquerdo CBL, as unidades de subcodificação β1, β2, β3, β4, β5, β6, β7 e β8 pertencem ao bloco codificado superior CBU e as unidades de subcodificação β9 e δ pertencem ao bloco codificado direito superior CBUR e o bloco codificado esquerdo superior CBUL, respectivamente. Mais particularmente, em relação ao i-ésimo sub-bloco bi mostrado na Figura 5B (por exemplo, um sub-bloco dentro do quadrante direito superior do bloco sob processamento nessa modalidade), os vetores de movimento {vk} podem ser obtidos a partir das unidades de subcodificação A, B, C, e/ou D dessa modalidade, em que a unidade de subcodificação A pode ser definida como a unidade de subcodificação mais próxima dentro do bloco codificado esquerdo CBL, a unidade de subcodificação B pode ser definida como a unidade de subcodificação mais próxima dentro do bloco codificado superior CBU, a unidade de subcodificação C pode ser definida como a unidade de subcodificação adjacente direita da unidade de subcodificação B e a unidade de subcodificação D pode ser definida como a unidade de subcodificação adjacente esquerda da unidade de subcodificação B. na situação mostrada na Figura 5B, as unidades de subcodificação A, B, C e D são as unidades de subcodificação α1, α5, α6, α7 e α5, respectivamente.
Nessa modalidade, os vetores de movimento {vk} podem ser obtidos a partir das unidades de subcodificação A, B, C, e/ou D mostradas na Figura 5A e, portanto, podem incluir os respectivos vetores de movimento VA, VB, VC, e/ou VD dos mesmos. Por exemplo, os vetores de movimento {vk} podem incluir todos os vetores de movimento VA, VB, VC e VD das unidades de subcodificação A, B, C e D. Em outro exemplo, os vetores de movimento {vk} podem incluir os vetores de movimento VA, VB e VC se a unidade de subcodificação C para a unidade de subcodificação específica tal como o i- ésimo sub-bloco bi existir. Em outro exemplo, os vetores de movimento {vk} podem incluir os vetores de movimento VA, VB e VD se a unidade de subcodificação C para a unidade de subcodificação específica tal como o i-ésimo sub-bloco bi não existir.
Assim, a combinação linear mencionada na Etapa 914 pode ser a soma ponderada revelada acima ∑keK(hk(i, x) Tr(x + vk)) com os vetores de movimento {vk} incluindo os vetores de movimento VA, VB, VC, e/ou VD. Para a brevidade, o valor de pixel previsto yp pode ser expresso conforme segue:
Figure img0006
em que a notação Soma_Ponderada representa a soma ponderada na situação revelada acima. Por exemplo, o módulo de pré-processamento pode determinar o tamanho da unidade de subcodificação específica para ser um tamanho de transformação em relação à codificação de vídeo da unidade de codificação e o tamanho das unidades de subcodificação tal como os sub-blocos mostrados na Figura 5B pode ser os mesmos que o tamanho de transformação (por exemplo, 4 por 4, 8 por 8, 16 por 16 e assim por diante).
De acordo com uma variação da modalidade mostrada na Figura 5B, o módulo de pré-processamento utiliza uma média da pluralidade de valores de pixel como o valor de pixel previsto da unidade de subcodificação específica, que significa que a operação para obter a combinação linear mencionada na Etapa 914 pode ser considerada como uma operação média. Nessa situação, quaisquer dois parâmetros ponderados {hk(i, x)} são iguais um ao outro. Para a brevidade, o valor de pixel previsto yp pode ser expresso conforme segue:
Figure img0007
em que a notação Média representa a média nessa situação. As descrições similares não são repetidas em detalhes para essa variação.
Referindo-se à Figura 5C, as definições das unidades de subcodificação {α1, α2, α3, α4, α5, α6, α7, α8, β1, β2, β3, β4, β5, β6, β7, β8, β9 e δ} são as mesmas que essas da modalidade mostrada na Figura 5B. Adicionalmente, em relação ao i-ésimo sub-bloco bi mostrado na Figura 5B (por exemplo, um sub-bloco dentro do quadrante direito superior do bloco sob processamento nessa modalidade), os vetores de movimento {vk} podem ser obtidos a partir das unidades de subcodificação A, B, C, D, E, F e/ou Z dessa modalidade, em que as definições das unidades de subcodificação A, B, C e D são as mesmas que essas da modalidade mostrada na Figura 5B, a unidade de subcodificação E pode ser definida como a unidade de subcodificação adjacente superior da unidade de subcodificação A, a unidade de subcodificação F pode ser definida como a unidade de subcodificação adjacente inferior da unidade de subcodificação A e a unidade de subcodificação Z pode ser definida como a unidade de subcodificação mais próxima dentro do bloco codificado esquerdo superior CBUL. Na situação mostrada na Figura 5C, as unidades de subcodificação A, B, C, D, E, F e Z são as unidades de subcodificação α4, β6, β7, β5, α3, α5 e δ, respectivamente.
Nessa modalidade, os vetores de movimento {vk} podem ser obtidos a partir das unidades de subcodificação, B, C, D, E, F e/ou Z dessa modalidade e, portanto, podem incluir os respectivos vetores de movimento VA, VB, VC, VD, VE, VF e/ou Vz das mesmas. Por exemplo, os vetores de movimento {vk} podem incluir todos os vetores de movimento VA, VB, VC, VD, VE, VF e Vz das unidades de subcodificação A, B, C, D, E, F e Z. Em outro exemplo, os vetores de movimento {vk} podem incluir os vetores de movimento VA, VB, VC, VD, VE e VF se a unidade de subcodificação E para a unidade de subcodificação específica tal como o i-ésimo sub-bloco bi existir. Em outro exemplo, os vetores de movimento {vk} podem incluir os vetores de movimento VA, VB, VC, VD, VE, VF e Vz se a unidade de subcodificação E para a unidade de subcodificação específica tal como o i-ésimo sub-bloco bi não existir. Em outro exemplo, os vetores de movimento {vk} podem incluir os vetores de movimento VA, VB, VD, VE, VF e Vz se as unidades de subcodificação C e E para a unidade de subcodificação específica tal como o i-ésimo sub- bloco bi não existirem.
Assim, a combinação linear mencionada na Etapa 914 pode ser a soma ponderada revelada acima ∑keK(hk(i, x) Tr(x + vk))com os vetores de movimento {vk} incluindo os vetores de movimento VA, VB, VC, VD, VE, VF e/ou Vz. Para a brevidade, o valor de pixel previsto yp pode ser expresso conforme segue:
Figure img0008
em que a notação Soma_Ponderada representa a soma ponderada na situação descrita acima. Por exemplo, o módulo de pré-processamento pode determinar o tamanho da unidade de subcodificação específica para ser um tamanho de transformação com relação à codificação de vídeo da unidade de codificação e o tamanho das unidades de subcodificação tais como os sub-blocos mostrados na iigura 5e pode ser o mesmo que o tamanho de transformação (por exemplo, 4 por 4, 8 por 8, 16 por 16, e assim por diante).
De acordo com uma variação da modalidade mostrada na iigura 5e, o módulo de pré-processamento utiliza uma média da pluralidade de valores de pixel como o valor de pixel previsto da unidade de subcodificação específica, o que significa que a operação de obtenção da combinação linear mencionada na Etapa 914 pode ser relacionada como uma operação de média. Nessa situação, quaisquer dois dos parâmetros ponderados {hk(i, x)} são iguais entre si. Para brevidade, o valor de pixel previsto 0p pode ser expresso conforme segue:
Figure img0009
em que a notação Média representa a média nessa situação. Descrições similares não são repetidas em detalhes para essa variação.
Referindo-se à iigura 5D, as definições das unidades de subcodificação {α1, α2, α3, α4, α5, α6, α7, α8, β1, β2, β3, β4, β5, β6, β7, β8, β9, δ} são as mesmas que aquelas da modalidade mostrada na iigura 5B. Adicionalmente, com relação ao i-ésimo sub- bloco bi mostrado na iigura 5D (por exemplo, um sub-bloco dentro do quarto direito e fundo do bloco sob processamento nessa modalidade), os vetores de movimento {vk} pode ser obtidos a partir das unidades de subcodificação A, B, e e/ou D dessa modalidade, em que as definições das unidades de subcodificação A, B, e e D são as mesmas que aquelas da modalidade mostrada na iigura 5B. Na situação mostrada na iigura 5e, as unidades de subcodificação A, B, C e D são as unidades de subcodificação α5, β6, β7 e β5, respectivamente.
Nessa modalidade, os vetores de movimento {vk} podem ser obtidos a partir das unidades de subcodificação A, B e, e/ou D dessa modalidade e, sendo assim, podem incluir os respectivos vetores de movimento VA, VB, Ve, e/ou VD dos mesmos. Por exemplo, os vetores de movimento {vk} podem incluir todos os vetores de movimento VA, VB, Ve, e/ou VD das unidades de subcodificação A, B, e e D. Em outro exemplo, os vetores de movimento {vk} podem incluir os vetores de movimento VA, VB e Ve se a unidade de subcodificação e para a unidade de subcodificação específica tal como o i- ésimo sub-bloco bi existir. Em outro exemplo, os vetores de movimento {vk} podem incluir os vetores de movimento VA, VB e VD de a unidade de subcodificação e para a unidade de subcodificação específica tal como o i-ésimo sub-bloco bi não existir.
Adicionalmente, um parâmetro ponderado hk(i, x) dessa modalidade pode ser inversamente proporcional a uma distância entre a unidade de subcodificação específica e aquela associada das outras unidades codificadas mencionadas na Etapa 912. Por exemplo, o parâmetro ponderado hk(i, x) pode ser reescrito como wk(i) que não depende da posição x e o parâmetro ponderado wk(i) é inversamente proporcional a (dk(i))m (isto é, wk(i) 1/(dk(i))m), em que a notação dk(i) representa a distância entre a unidade de subcodificação específica (por exemplo, o i-ésimo sub-bloco bi) e a outra unidade de subcodificação/codificação associada que tem k-ésimo vetor de movimento de referência vk (por exemplo, a k-ésima unidade de subcodificação dentro das unidades de subcodificação A, B, C e D) e a notação m representa uma constante positiva. Assim, o valor de pixel previsto Tp pode ser expresso conforme segue:
Figure img0010
em que os Vetores de moVimento {Vk} podem incluir os Vetores de moVimento VA, VB, VC e/ou VD. Na situação mostrada na Figura 5D, os Vetores de moVimento {Vk} incluem os Vetores de moVimento VA, VB e VC e as notações dist_w, dist_h e dist_h' representam as distâncias dA(i), dB(i) e dC(i), respectiVamente. Como resultado, o valor de pixel previsto Tp pode ser expresso conforme segue:
Figure img0011
em que WA°<= 1(dist_w)m, WB“- 1(dist_h)me w^c 1(dist_h’)m
Em algumas Variações das modalidades mostradas em 5A a 5D, os módulos de pré-processamento podem triar um conjunto de Vetores de moVimento por descarte de pelo menos um Vetor de moVimento extremo nas informações de moVimento de múltiplas unidades codificadas e, mais particularmente, por descarte de pelo menos um Vetor de moVimento extremo do conjunto de Vetores de moVimento, a fim de selecionar uma porção remanescente do conjunto de Vetores de moVimento como as informações de moVimento para deriVar o Valor de pixel preVisto (por exemplo, as informações de moVimento do primeiro conjunto de unidades codificadas). Por exemplo, o anteriormente mencionado pelo menos um Vetor de moVimento extremo pode compreender um ou mais Vetores de moVimento que são muito diferentes dos outros do conjunto de Vetores de moVimento, com os comprimentos e/ou as direções dos mesmos sendo considerados.
De acordo com algumas variações das modalidades mostradas nas Figuras 5A a 5D, o módulo de pré-processamento pode seletivamente operar em qualquer modo de uma pluralidade de modos que compreende os Modos 1, 2, 3 e 4, em que as respectivas operações dos Modos 1, 2, 3 e 4 podem ser as mesmas ou similares àquelas reveladas nas modalidades mostradas nas Figuras 5A a 5D, respectivamente. Por exemplo, no Modo 1, o módulo de pré-processamento pode operar de acordo com o mesmo método das modalidades mostradas na Figura 5A, enquanto em outro modo tal como qualquer um dos Modos 2, 3 e 4, o módulo de pré-processamento pode operar de acordo com o mesmo método da modalidade associada tal como a modalidade correspondente dentro daquela mostrada nas Figuras 5B a 5D, respectivamente. Adicionalmente, os Modos 1, 2, e 3 mencionados acima permitem que o aparelho 100 processo com facilidade em comparação a algum(ns) outro(s) modo(s) e são úteis no aumento da velocidade de processamento geral do aparelho 100 e, sendo assim, podem ser referidos como modos simplificados.
De acordo com uma variação de qualquer uma das modalidades mostradas nas Figuras 5A a 5D, na Etapa 912, o módulo de pré-processamento pode dividir a unidade de codificação na pluralidade de unidades de subcodificação com base em pelo menos um modo de pelo menos uma unidade de codificação próxima, tal como os Modos 1, 2, 3 e/ou 4 de um ou mais dos blocos codificados CBL, CBu, CBUR e CBUL. De acordo com outra variação de qualquer uma das modalidades mostradas nas Figuras 5A a 5D, na Etapa 912, o módulo de pré-processamento pode dividir a unidade de codificação na pluralidade de unidades de subcodificação com base nos conteúdos de pelo menos uma unidade de codificação próxima tal como um ou mais dos blocos codificados CBL, CBu, CBUR e CBUL.
As Figuras 6A a 6B ilustram fontes exemplificativas para obter informações de movimento que estão envolvidas com o método 910 mostrado na Figura 2 de acordo com diferentes modalidades da presente invenção. Para melhor compreensão, os blocos codificados CBL, CBUL, CBu e CBUR podem ser os mesmos que aqueles mostrados na Figura 3, respectivamente.
Nessa modalidade, em uma situação em que o tamanho da unidade de subcodificação específica SubCU(t0) é estendido até o tamanho da unidade de codificação CU(t0), a divisão/partição da unidade de codificação CU(t0) não é necessária na Etapa 912. Assim, na Etapa 912, o módulo de pré-processamento mencionado acima pode realizar a predição de vetor de movimento da unidade de codificação CU(t0), e mais particularmente, obter uma pluralidade de vetores de movimento, tal como os vetores de movimento {vk} revelados acima, para compensação de movimentos de múltiplas hipóteses da unidade de codificação CU(t0) a partir de uma pluralidade de outras unidades codificadas tal como pelo menos uma porção dos blocos codificados {CB} (por exemplo um ou mais dos blocos codificados CBL, CBUL, CBu e CBUR). Adicionalmente, na Etapa 914, o módulo de pré-processamento pode realizar a compensação de movimentos de múltiplas hipóteses na unidade de codificação CU(t0) de acordo com informações de movimento tal como a pluralidade de vetores de movimento {vk}, e mais particularmente, utilizar uma combinação linear de uma pluralidade de valores de pixel da pluralidade de outras unidades de codificação como um valor de pixel previsto da unidade de codificação, tal como o valor de pixel previsto Tp(x) não tendo a necessidade de usar o índice i. Similarmente, o valor de pixel previsto Tp(x) pode ser expresso conforme segue:
Figure img0012
Na prática, a pluralidade de modos pode compreender ainda alguns modos de salto que correspondem respectiVamente a diferentes tamanhos de bloco de moVimento (por exemplo, 16 por 16, 32 por 32, etc.). De acordo com essa modalidade, a notação A pode ser utilizada para representar uma unidade de subcodificação/codificação que compreende pelo menos uma porção (por exemplo, uma porção ou todo) do bloco codificado CBL, a notação D pode ser utilizada para representar uma unidade de subcodificação/codificação que compreende pelo menos uma porção (exemplo, uma porção ou todo) do bloco codificado CBUL, a notação B pode ser utilizada para representar uma unidade de subcodificação/codificação que compreende pelo menos uma porção (exemplo, uma porção ou todo) do bloco codificado CBU e a notação CTAMANHO tal como C16, C32, etc. pode ser utilizada para representar uma unidade de subcodificação/codificação que compreende pelo menos uma porção (exemplo, uma porção ou todo) do bloco codificado CBUR, em que o sufixo TAMANHO da notação CTAMANHO representa o tamanho da unidade de codificação CU(t0) tal como o bloco sob processamento (identificado como "bloco processado" nas Figuras 6A a 6B). Por exemplo, em uma situação em que o bloco sob processamento inclui (32 * 32) pixels, a unidade de subcodificação/codificação CTAMANHO pode ser a unidade de subcodificação/codificação C32 mostrada na Figura 6A. Em outro exemplo, em uma situação em que o bloco sob processamento inclui (16 * 16) pixels, a unidade de subcodificação/codificação CTAMANHO pode ser a unidade de subcodificação/codificação C16 mostrada na Figura 6B. Assim, a localização da unidade de subcodificação/codificação CTAMANHO é independente do tamanho de bloco de movimento.
De acordo com essa modalidade, os vetores de movimento {vk} podem incluir todos os vetores de movimento VA, VB, VC e VD da unidade de subcodificação/unidades de codificação A, B, CTAMANHO e D. Assim, a combinação linear dessa modalidade pode ser a soma ponderada ∑keK(hk(x) Tr(x + vk)) com os vetores de movimento {vk} incluindo os vetores de movimento VA, VB, VC e VD. Para brevidade, o valor de pixel previsto Tp pode ser expresso conforme segue:
Figure img0013
em que a notação Soma_Ponderada representa a soma ponderada na situação revelada acima.
De acordo com uma variação da modalidade mostrada nas Figuras 6A-6B, o módulo de pré-processamento utiliza uma média da pluralidade de valores de pixel da pluralidade de outras unidades de codificação como o valor de pixel previsto da unidade de codificação, o que significa que a combinação linear mencionada acima pode ser relacionada como a média. Nessa situação, quaisquer dois dos parâmetros ponderados {hk(x)} são iguais entre si. Para brevidade, o valor de pixel previsto Tp pode ser expresso conforme segue:
Figure img0014
em que a notação Média representa a média nessa situação. Descrições similares não são repetidas em detalhes para essa variação.
As Figuras 7A a 7B respectivamente ilustram vetores de movimento temporais e espaciais (MVs) envolvidos no método 910 mostrado na Figura 2 de acordo com diferentes modalidades da presente invenção. Para melhor compreensão, os blocos codificados CBL, CBUL, CBU e CBUR podem ser os mesmos que aqueles mostrados na Figura 3, respectivamente. Adicionalmente, o i-ésimo sub-bloco bi é ilustrado como um exemplo da unidade de subcodificação específica SubCU(t0).
Na modalidade mostrada na Figura 7A, os vetores de movimento {vk} mencionados na Etapa 912 podem compreender um ou mais vetores de movimento temporais {vT, k} com relação a uma janela que fecha a unidade de subcodificação específica SubCU(t0) tal como o i-ésimo sub-bloco bi mostrado na Figura 7A, em que a janela pode ter um tamanho predeterminado. Na modalidade mostrada na Figura 7B, os vetores de movimento {vk} mencionados na Etapa 912 podem compreender um ou mais vetores de movimento espaciais {vS, k}, tal como aquele do bloco codificado CBU mostrado na Figura 7B. De acordo com algumas variações das modalidades mostradas nas Figuras 7A a 7B, os vetores de movimento {vk} mencionados na Etapa 912 podem compreender os vetores de movimento temporais {vT, k} e os vetores de movimento espaciais {vS, k}. Descrições similares não são repetidas em detalhes para essas modalidades/variações.
As Figuras 8A a 8C ilustram fontes exemplificativas para obter vetores de movimento que estão envolvidos com o método 910 mostrado na Figura 2 de acordo com diferentes modalidades da presente invenção. Para melhor compreensão, os blocos codificados CBL, CBUL, CBU e CBUR podem ser os mesmos que aqueles mostrados na Figura 3, respectivamente. Adicionalmente, o i-ésimo sub-bloco bi é ilustrado como um exemplo da unidade de subcodificação específica SubCU(t0).
Referindo-se à Figura 8A, os vetores de movimento temporais {vT, k} revelados acima podem compreender um vetor de movimento temporal vT0 que é tipicamente obtido a partir de uma unidade de subcodificação colocalizada de outro quadro, tal como um sub-bloco T colocalizado com relação ao i-ésimo sub-bloco bi mostrada na Figura 8A. Assim, o vetor de movimento temporal vT0 pode ser relacionado como um vetor de movimento colocalizado. Referindo-se à Figura 8B, os vetores de movimento espaciais {vS, k} revelados acima podem compreender pelo menos uma porção (por exemplo, uma porção ou todo) dos vetores de movimento vA, vB, vC, vD, vE, vF e vZ das unidades de subcodificação A, B, C, D, E, F e Z.
Assim, a combinação linear mencionada na Etapa 914 pode ser a soma ponderada revelada acima ∑keK(hk(i, x) Tr(x + vk)) com os vetores de movimento {vk} que compreendem tanto o vetor de movimento temporal vT0 quanto os vetores de movimento vA, vB, vC, vD, vE, vF e/ou vZ. Por exemplo, em uma situação em que os vetores de movimento {vk} compreende o vetor de movimento temporal vT0 e os vetores de movimento VA, VB, vc, VD, VE, VF e vz, o valor de pixel previsto Tp pode ser expresso conforme se segue:
Figure img0015
em que a notação Soma_Ponderada representa a soma ponderada na situação revelada acima. Descrições similares não são repetidas em detalhes para essa modalidade.
De acordo com uma variação da modalidade mostrada nas Figuras 8A a 8B, o módulo de pré-processamento utiliza uma média da pluralidade de valores de pixel como o valor de pixel previsto da unidade de codificação específica, o que significa que a combinação linear mencionada na Etapa 914 pode ser relacionada como a média. Nessa situação, quaisquer dois dos parâmetros ponderados {hk(i, x)} são iguais entre si. Para brevidade, o valor de pixel previsto Tp pode ser expresso conforme segue:
Figure img0016
em que a notação Média representa a média nessa situação. Descrições similares não são repetidas em detalhes para essa variação.
Referindo-se à Figura 8c, os vetores de movimento temporais {vT, k} revelados acima podem compreender o vetor de movimento temporal vT0 revelado acima e alguns outros vetores de movimento temporais vTUL, vTU, vTUR, vTL, vTR, vTDL e vTDR que são obtidos a partir de unidades de subcodificação proximamente colocalizadas de outro quadro, tal como aquelas adjacentes ao sub-bloco T que tem o vetor de movimento temporal vT0, isto é, os sub-blocos TUL, TU, TUR, TL,TR, TDL, TD e TDR mostrados na Figura 8c, respectivamente. Adicionalmente, os vetores de movimento espaciais {vS, k} revelados acima podem compreender pelo menos uma porção (por exemplo, uma porção ou todo) dos vetores de movimento vA, vB, vC, vD, vE, vF e vZ das unidades de subcodificação A, B, C, D, E, F e Z, mostradas na Figura 8B.
Assim, a combinação linear mencionada na Etapa 914 pode ser a soma ponderada revelada acima ∑keK(hk(i, x) Tr(x + vk)) com os vetores de movimento {vk} que compreendem tanto os vetores de movimento temporais vr0, vTUL, vTU, vTUR, vTL, vTR, vTDL, vTD e vTDR quanto os vetores de movimento vA, vB, vC, vD, vE, vF e/ou vZ. Por exemplo, em uma situação em que os vetores de movimento {vk} compreende os vetores de movimento temporais vr0, vTUL, vTU vTUR, vTL, vTR, vTDL, vTD e vTDR e os vetores de movimento VA, VB, vc, VD, VE, VF e vz, o valor de pixel previsto Tp pode ser expresso conforme segue:
Figure img0017
em que a notação Soma_Ponderada representa a soma ponderada na situação revelada acima. Descrições similares não são repetidas em detalhes para essa modalidade.
De acordo com uma variação da modalidade mostrada na Figura 8c, o módulo de pré-processamento utiliza uma média da pluralidade de valores de pixel como o valor de pixel previsto da unidade de codificação específica, o que significa que a combinação linear mencionada na Etapa 914 pode ser relacionada como a média. Nessa situação, quaisquer dois dos parâmetros ponderados {hk(i, x)} são iguais entre si. Para brevidade, o valor de pixel previsto Tp pode ser expresso conforme segue:
Figure img0018
em que a notação Média representa a média nessa situação. Descrições similares não são repetidas em detalhes para essa variação.
De acordo com uma modalidade, tal como uma variação de qualquer uma das modalidades/variações reveladas acima, o módulo de pré-processamento pode dinamicamente selecionar um conjunto de vetores de movimento a partir de uma pluralidade de conjuntos de vetores de movimento (que podem ser relacionados como vetores de movimento candidatos) e utilizar o conjunto selecionado de vetores de movimento como a pluralidade de vetores de movimento {vk}. Mais particularmente, o módulo de pré-processamento dinamicamente seleciona o conjunto de vetores de movimento mencionado acima a partir da pluralidade de conjuntos de vetores de movimento e utiliza o conjunto selecionado de vetores de movimento como as informações de movimento da pluralidade de outras unidades codificadas mencionadas na Etapa 912 (por exemplo, o primeiro conjunto de unidades codificadas) com base em uma sinalização explícita e utiliza o conjunto selecionado de vetores de movimento para derivar o valor de pixel previsto da unidade de subcodificação específica. Por exemplo, a pluralidade de conjuntos de vetores de movimento pode compreender um primeiro conjunto de vetores de movimento tal como os vetores de movimento temporais {vr, k} revelados acima e compreende ainda um segundo conjunto de vetores de movimento tal como os vetores de movimento espaciais {vs, k} descritos acima. Na prática, o módulo de pré-processamento pode realizar a predição de múltiplas hipóteses com base em uma sinalização (por exemplo, a sinalização explícita) que indica dinamicamente o conjunto que é selecionado. Descrições similares não são repetidas em detalhes para essa modalidade.
De acordo com outra modalidade, tal como uma variação que qualquer uma das modalidades/variações reveladas acima, o módulo de pré-processamento pode obter pelo menos um vetor de movimento da unidade de codificação CU(t0) por realização de estimativa de movimento, para uso de otimização de distorção de taxa de desempenho, a fim de obter o valor de pixel previsto da unidade de subcodificação específica. Por exemplo, na Etapa 912, o módulo de pré-processamento obtém pelo menos uma porção da pluralidade de vetores de movimento {vk} para compensação de movimentos de múltiplas hipóteses da unidade de subcodificação específica SubCU(t0) por realização de estimativa de movimento. Adicionalmente, na Etapa 914, o módulo de pré-processamento pode ainda utilizar uma combinação linear de uma pluralidade de valores de pixel {Tr} de unidades de subcodificação/codificação associadas à pluralidade de vetores de movimento {vk} como o valor de pixel previsto Tp da unidade de subcodificação específica SubCU(t0). Por exemplo, em uma situação em que o pixel previsto específico que tem o valor de pixel previsto Tp está localizado na posição x (por exemplo, um vetor que indica a posição, tal como um vetor bidimensional no plano de imagem do quadro atual F(t0)), o valor de pixel previsto Tp pode ser reescrito como Tp(x) e o valor de pixel previsto Tp(x) pode ser expresso conforme segue:
Figure img0019
em que o índice k pode variar dentro do conjunto K, com a notação hk(x) representando o parâmetro ponderado associado ao índice k e o vetor de movimento estimado vo é o vetor de movimento a ser estimado durante a estimativa de movimento, com a notação ho(x) representando o parâmetro ponderado associado ao sufixo o do vetor de movimento estimado vo.
Durante a otimização da distorção da taxa mencionada acima, o módulo de pré-processamento pode calcular um indicador de distorção IDIST, em que o indicador de distorção tipicamente representa a diferença entre a imagem parcial original da unidade de subcodificação específica SubCU(to) e a imagem parcial reconstruída da unidade de subcodificação específica SubCU(to) após predição de múltiplas hipóteses com relação a um estado possível (por exemplo, o comprimento e o ângulo) do vetor de movimento estimado vo. Por exemplo, o indicador de distorção IDIST e a diferença de vetor de movimento associada MVD podem ser expressos conforme segue:
Figure img0020
em que a notação TREAL(x) representa o valor de pixel real do pixel atual sob consideração e a notação MVP representa o previsor de vetor de movimento. Mais particularmente, dentro das equações acima, a superior para o indicador de distorção IDIST pode ser redisposta conforme segue:
Figure img0021
em que rREAL(x) = TREAL(X) - ∑keK(hk(x) Tr(x + Vk)))/ ho(x). Na equação acima, o termo rREAL(x) e o termo (TREAL(X)) - ∑keK(hk(x) Tr(x + Vk))) são independentes do vetor de movimento estimado vo e, sendo assim, pelo menos um desses termos, tal como o termo rREAL(x) e/ou o termo (TREAL(X)) - ∑keK(hk(x) Tr(x + vk))), pode ser calculado antecipada e temporariamente armazenado para ser acessado a fim de aumentar a velocidade de processamento do aparelho 100 de acordo com essa modalidade.
De acordo com essa modalidade, o módulo de pré-processamento dessa modalidade pode otimizar o vetor de movimento estimado v0 por busca do melhor estado que corresponde à função de Lagrange mínima do indicador de distorção IDIST e os bits usados para codificar a diferença de vetor de movimento MVD, entre outros estados possíveis do vetor de movimento estimado v0. Assim, a combinação linear dessa modalidade pode ser a soma ponderada ∑keK (hk(x) Tr(\ + vk)) + ho(x) Tr(\ + vo) com o vetor de movimento estimado v0 foi obtida e o módulo de pré-processamento pode utilizar a soma ponderada ∑keK (hk(x) Tr(x + vk)) + ho(x) Tr(x + vo) como o valor de pixel previsto Tp da unidade de subcodificação específica SubCU(t0). Descrições similares não são repetidas em detalhes para essa modalidade.
A Figura 9 ilustra alguns detalhes de implantação com o método 91o mostrada na Figura 2 de acordo com uma modalidade da presente invenção, em que o módulo de pré-processamento pode realizar predição de múltiplas hipóteses de partição de variável, e mais particularmente, pode de modo adaptativo determinar a partição da unidade de codificação CU(to) em resposta à partição de pelo menos uma unidade de codificação próxima. Para melhor compreensão, os blocos codificados CBL, CBUL, CBU e CBUR podem ser os mesmos que aqueles mostrados na Figura 3, respectivamente.
De acordo com essa modalidade, na Etapa 912, o módulo de pré- processamento pode dividir a unidade de codificação CU(to) tal como o bloco sob processamento (indicado por "bloco processado" na Figura 9) na pluralidade de unidades de subcodificação {SubCU(to)} com base na partição de pelo menos uma unidade de codificação próxima (por exemplo, um ou mais dos blocos codificados CBL, CBUL, CBU e CBUR). Por exemplo, a pluralidade de unidades de subcodificação {SubCU(to)} pode compreender os sub-blocos b11, b12, b13, b21, b22, b23, b31, b32, b33, b41, b42 e b43, cujos tamanhos correspondem à partição dos blocos codificados próximos tais como os blocos codificados CBL e CBU, e mais particularmente, os tamanhos associados de alguns sub- blocos desses blocos codificados próximos. Na situação mostrada na Figura 9, os sub- blocos desses blocos codificados próximos são aqueles adjacentes ao bloco sob processamento, em que os sub-blocos são compartilhados e ilustrados com padrões diferentes, respectivamente. Descrições similares não são repetidas em detalhes para essa modalidade.
A Figura 10 ilustra alguns detalhes de implantação envolvidos com o método 910 mostrado na Figura 2 de acordo com outra modalidade da presente invenção, em que o módulo de pré-processamento pode de modo adaptativo determinar os pesos de mistura (por exemplo, os parâmetros ponderados {hk(i, x)} revelados acima) de acordo com os conteúdos de pelo menos uma unidade de codificação próxima. Para melhor compreensão, os blocos codificados CBL, CBUL, CBU e CBUR podem ser os mesmos que aqueles mostrados na Figura 3, respectivamente. Adicionalmente, o sub-bloco SB é ilustrado como um exemplo da unidade de subcodificação específica SubCU(t0).
Por exemplo, os vetores de movimento {vk} podem compreender os vetores de movimento vA, vB e vC das unidades de subcodificação A, B e C, em que a unidade de subcodificação A pertence ao bloco codificado esquerdo CBL e as unidades de subcodificação B e C pertencem ao bloco codificado superior CBU. Durante o processamento de geração da soma ponderada ∑keK (hk(i, x) Tr(x + vk) (por exemplo, a soma ponderada Soma_Ponderada (Tr(vA), ^r(vβ), ^r(vc)) na situação mostrada na Figura 10), em que as unidades de subcodificação B e C são unidades de subcodificação de textura (por exemplo, sub-blocos de textura) e a unidade de subcodificação A é uma unidade de subcodificação de não textura (por exemplo, um sub-bloco de não textura), o módulo de pré-processamento pode de modo adaptativo determinar que os parâmetros ponderados hB(i, x) e hC(i, x) associados aos vetores de movimento vB e vC das unidades de subcodificação B e C sejam maiores que o parâmetro ponderado hA(i, x) associado ao vetor de movimento vA da unidade de subcodificação A, respectivamente. Descrições similares não são repetidas em detalhes para essa modalidade.
A Figura 11 ilustra alguns detalhes de implantação envolvidos com o método 910 mostrado na Figura 2 de acordo com uma modalidade da presente invenção. De acordo com essa modalidade, o módulo de pré-processamento divide ainda a unidade de codificação CU(t0) (por exemplo, a unidade de codificação sob consideração) na pluralidade de unidades de subcodificação tal como a unidades de subcodificação {SubCU(t0)} e realiza a predição em cada uma das unidades de subcodificação {SubCU(t0)} na Etapa 912. No entanto, no momento/antes da obtenção das informações de movimento tal como os vetores de movimento {vk} revelados acima, o módulo de pré- processamento pode designar um vetor de movimento (por exemplo, um vetor de movimento de referência) para cada unidade de subcodificação assim esse pode ser referido posteriormente por outra(s) unidade(s) de subcodificação/unidade(s) de codificação. A regra para a designação de vetor de movimento pode ser arbitrária já que essa precisa ser ajustada e cumprida tanto pelos codificadores quanto pelos decodificadores. Algumas regras predeterminadas para designação de vetor de movimento incluem previsor de vetor de movimento definido em H.264, predição de vetor de movimento definida em H.264, mas com escalonamento de vetor de movimento, enchimento do bloco esquerdo, enchimento do bloco superior e enchimento do bloco esquerdo ou superior. De acordo com uma modalidade de enchimento do bloco esquerdo ou superior, o módulo de pré-processamento designa um vetor de movimento que utiliza o vetor de movimento de uma unidade de subcodificação de outra unidade de codificação (exceto para a unidade de codificação CU(t0) sob consideração), tal como uma unidade de subcodificação codificada de uma unidade de codificação adjacente CUADJ(t0) que é adjacente à unidade de codificação CU(t0). Mais particularmente, com relação à unidade de subcodificação específica SubCU(t0), a unidade de subcodificação da outra unidade de codificação (por exemplo, a unidade de codificação CUADJ(t0)) é a unidade de subcodificação mais próxima dentro da outra unidade de codificação e o módulo de pré- processamento pode utilizar o vetor de movimento da unidade de subcodificação mais próxima dentro da outra unidade de codificação (por exemplo, a unidade de codificação CUADJ(t0)) como o vetor de movimento designado para a unidade de subcodificação específica SubCU(t0). O vetor de movimento designado para uma unidade de codificação ou uma unidade de subcodificação é principalmente usado como um vetor de movimento de referência para outras unidades de codificação ou unidades de subcodificação, em que não é necessário ser usado para predição de movimento.
Conforme mostrado na Figura 11, com relação à unidade de codificação CU(t0) tal como o bloco sob processamento (indicado por "bloco processado" na Figura 11), as unidades de codificação adjacentes (CUADJ(t0)) que estão envolvidas nessa modalidade podem compreender pelo menos uma porção do bloco codificado esquerdo CBL, do bloco codificado superior CBU, do bloco codificado CBUR direito superior e do bloco codificado esquerdo superior CBUL, em que as unidades de subcodificação nesses blocos codificados CBL, CBU, CBUR e CBUL podem ser relacionadas como sub-blocos. Para melhor compreensão, os vetores de movimento y1, y2, y3, y4, y5, y6, y7 e y8 da coluna mais a direita de unidades de subcodificação dentro do bloco codificado esquerdo CBL são indicados na coluna mais a direita de unidades de subcodificação, respectivamente. Similarmente, os vetores de movimento x1, x2, x3, x4, X5, X6, X7 e x8da linha mais inferior de unidades de subcodificação dentro do bloco codificado superior CBU são indicados na linha mais ao fundo de unidades de subcodificação, respectivamente. Adicionalmente, o vetor de movimento d da unidade de subcodificação direita inferior dentro do bloco codificado esquerdo superior CBUL e o vetor de movimento x9 da unidade de subcodificação esquerda inferior dentro do bloco codificado direito superior CBUR são indicados na mesma, respectivamente.
De acordo com essa modalidade, o módulo de pré-processamento recebe a unidade de codificação CU(t0) que compreende uma pluralidade de unidades de subcodificação {SubCU(t0)} e analisa os dados da unidade de codificação CU(t0) e designa um vetor de movimento de referência da unidade de subcodificação específica SubCU(t0) das unidades de subcodificação {SubCU(t0)} de acordo com uma regra predeterminada, em que o vetor de movimento de referência é utilizado para referência por pelo menos uma outra unidade de subcodificação e não é utilizado para predição de vetor de movimento da unidade de subcodificação específica SubCU(t0). Com os vetores de movimento de referência sendo utilizados para referência, o módulo de pré- processamento pode operar rapidamente, não tendo necessidade de aguardar por conclusão de qualquer cálculo complicado com relação ao vetor de movimento real da unidade de subcodificação específica SubCU(t0). Na prática, o módulo de pré- processamento pode designar esse vetor de movimento (isto é, o vetor de movimento de referência mencionado acima) para ser um vetor de movimento de pelo menos uma porção de uma unidade de codificação adjacente. Mais particularmente, a pelo menos uma porção da unidade de codificação adjacente pode ser uma porção que está mais próxima à unidade de subcodificação específica dentro da unidade de codificação próxima.
Por exemplo, suponha-se que a unidade de subcodificação específica SubCU(t0) represente o j-ésimo sub-bloco de uma certa linha de sub-blocos no bloco sob processamento (por exemplo, o bloco processado mostrado na Figura 11), em que j pode variar de 1 a 8. Em uma primeira regra de designação tal como "designação vertical", o módulo de pré-processamento pode utilizar o vetor de movimento xj da unidade de subcodificação mais próxima dentro do bloco codificado superior CBU como o vetor de movimento de referência da unidade de subcodificação específica SubCU(t0).
Em outro exemplo, suponha-se que a unidade de subcodificação específica SubCU(t0) represente o j-ésimo sub-bloco de uma certa coluna de sub-blocos no bloco sob processamento (por exemplo, o bloco processado mostrado na Figura 11), em que j pode variar de 1 a 8. Em uma segunda regra de designação tal como "designação horizontal", o módulo de pré-processamento pode utilizar o vetor de movimento yj da unidade de subcodificação mais próxima dentro do bloco codificado esquerdo CBL como o vetor de movimento de referência da unidade de subcodificação específica SubCU(t0).
Em outro exemplo, uma terceira regra de designação tal como "designação híbrida" pode ser selecionada para determinar o vetor de movimento de referência. Suponha-se que a unidade de subcodificação específica SubCU(t0) represente o j-ésimo sub-bloco da quarta/outava linha de sub-blocos no bloco sob processamento (indicado por "Bloco processado" na Figura 11), em que j pode variar de 1 a 8. Referindo-se à Figura 11, conforme ilustrado com a seta que aponta para o j-ésimo sub-bloco da quarta/outava linha de sub-blocos, o módulo de pré-processamento utiliza o vetor de movimento xj da unidade de subcodificação mais próxima dentro do bloco codificado superior CBU como o vetor de movimento de referência da unidade de subcodificação específica SubCU(t0). Adicionalmente, suponha-se que a unidade de subcodificação específica SubCU(t0) represente o j-ésimo sub-bloco da quarta/oitava coluna de sub- blocos no bloco sob processamento (indicado por "Bloco processado" na Figura 11), em que j pode variar de 1 a 7 exceto por 4. Referindo-se à Figura 11, conforme ilustrado com a seta que aponta para o j-ésimo sub-bloco da quarta/oitava coluna de sub-blocos, o módulo de pré-processamento utiliza o vetor de movimento yj da unidade de subcodificação mais próxima dentro do bloco codificado esquerdo CBL como o vetor de movimento de referência da unidade de subcodificação específica SubCU(t0). Nessa modalidade, os vetores de movimento de referência das unidades de subcodificação remanescentes dentro da unidade de codificação CU(t0) podem ser obtidos por utilização do mesmo método ou método similar em qualquer uma das modalidades/variações reveladas acima. Descrições similares não são repetidas em detalhes para essa modalidade.
Deve-se perceber que, em algumas modalidades tais como algumas variações da modalidade acima, o módulo de pré-processamento pode controlar as operações reveladas por utilização de uma sinalização, e mais particularmente, por envio explícito de uma sinalização. Por exemplo, um codificador implantado de acordo com uma dessas modalidades pode enviar uma sinalização indicando se a regra de designação a ser aplicada é uma dentre "designação vertical" e "designação horizontal" (e mesmo uma "designação híbrida"), então por recebimento de um fluxo de bits que leva a sinalização, um decodificador associado pode ser notificado da regra de designação a ser aplicada.
Adicionalmente, em algumas modalidades, vários métodos de vetor de movimento designação revelados acima (por exemplo, "designação vertical" e "designação horizontal" e mesmo "designação híbrida") podem ser utilizados para realizar derivação de vetor de movimento local. Por exemplo, em uma situação em que "designação vertical" é aplicada, os vetores de movimento de cada linha de unidades de subcodificação são derivados das localizações correspondentes dentro do bloco codificado superior CBU (por exemplo, a unidade de subcodificação mais próxima dentro do bloco codificado superior CBU), respectivamente.É uma vantagem da presente invenção que os métodos e aparelhos da presente invenção podem realizar apropriadamente a predição de múltiplas hipóteses localizada, e mais particularmente, podem realizar apropriadamente compensações de movimento de múltiplas hipóteses nas unidades de subcodificação da unidade de codificação sob consideração com facilidade. Como resultado da utilização do método e aparelho da presente invenção, tanto as operações de predição de vetor de movimento quanto as operações de compensação de movimento de múltiplas hipóteses podem ser 5 realizadas sem introdução de qualquer problema da técnica relacionada tal como baixa eficácia de codificação.
Aqueles versados na técnica observarão facilmente que numerosas modificações e alterações do dispositivo e método podem ser feitas enquanto de mantêm os ensinamentos da invenção. Dessa forma, a revelação acima deve ser interpretada como 10 limitada apenas pelas distribuições e ligações das reivindicações anexas.

Claims (20)

1. Método para realizar predição de múltiplas hipóteses localizada durante codificação de vídeo de uma unidade de codificação, sendo que o método é CARACTERIZADO pelo fato de compreender:dividir a unidade de codificação em uma pluralidade de unidades de subcodificação; eprocessar cada uma das unidades de subcodificação, em que a etapa de processamento de cada uma das unidades de subcodificação compreende ainda:obter informações de movimento de um primeiro conjunto de unidades codificadas, em que as unidades codificadas são compensadas por movimento e a informação de movimento compreende um primeiro vetor de movimento e um segundo vetor de movimento correspondendo a unidades de subcodificação de outras unidades de codificação dentro de um quadro atual onde a unidade de codificação está localizada;obter uma pluralidade de valores de pixel das informações de movimento do primeiro conjunto de unidades codificadas;utilizar uma combinação linear da pluralidade de valores de pixel como um valor de pixel de predição de uma unidade de subcodificação específica das unidades de subcodificação; ederivar um valor de pixel de predição de outra unidade de subcodificação na unidade de codificação por utilização das informações de movimento de um segundo conjunto de unidades codificadas, em que o segundo conjunto de unidades codificadas compreende pelo menos uma unidade codificada que não está no primeiro conjunto de unidades codificadas.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a etapa de utilização da combinação linear da pluralidade de valores de pixel como o valor de pixel de predição da unidade de subcodificação específica compreende ainda:utilizar uma soma ponderada da pluralidade de valores de pixel como o valor de pixel de predição da unidade de subcodificação específica.
3. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que a etapa de utilização da combinação linear da pluralidade de valores de pixel como o valor de pixel de predição da unidade de subcodificação específica compreende ainda:realizar filtragem de Wiener ideal na pluralidade de valores de pixel com relação a um valor de pixel real de um pixel atual, a fim de ajustar os parâmetros ponderados respectivos para a pluralidade de valores de pixel e para gerar a soma ponderada.
4. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que a etapa de utilização da combinação linear da pluralidade de valores de pixel como o valor de pixel de predição da unidade de subcodificação específica compreende ainda:determinar os respectivos parâmetros ponderados para a pluralidade de valores de pixel de acordo com os conteúdos de pelo menos uma unidade de codificação próxima, a fim de gerar a soma ponderada.
5. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que a etapa de utilização da combinação linear da pluralidade de valor de pixel como o valor de pixel de predição da unidade de subcodificação específica compreende ainda:determinar os respectivos parâmetros ponderados para a pluralidade de valores de pixel de acordo com os conteúdos do primeiro conjunto de unidades codificadas, a fim de gerar a soma ponderada.
6. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que a etapa de utilização da combinação linear da pluralidade de valor de pixel como o valor de pixel de predição da unidade de subcodificação específica compreende ainda:determinar os respectivos parâmetros ponderados para a pluralidade de valores de pixel por treinamento off-line, a fim de gerar a soma ponderada.
7. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que a etapa de utilização da combinação linear da pluralidade de valor de pixel como o valor de pixel de predição da unidade de subcodificação específica compreende ainda:determinar os respectivos parâmetros ponderados para a pluralidade de valores de pixel por treinamento on-line, a fim de gerar a soma ponderada.
8. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que as informações de movimento do primeiro conjunto de unidades codificadas compreendem pelo menos um ou uma combinação de vetor de movimento, índice de quadro de referência e direção de predição.
9. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a etapa de processamento de cada uma das unidades de subcodificação compreende ainda:selecionar dinamicamente um conjunto de vetores de movimento a partir de uma pluralidade de conjuntos de vetores de movimento e utilizar o conjunto selecionado de vetores de movimento como as informações de movimento do primeiro conjunto de unidades codificadas com base em uma sinalização explícita.
10. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a etapa de divisão da unidade de codificação na pluralidade de unidades de subcodificação compreende ainda:determinar um tamanho da unidade de subcodificação específica para ser um tamanho de transformação com relação à codificação de vídeo da unidade de codificação.
11. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a etapa de divisão da unidade de codificação na pluralidade de unidades de subcodificação compreende ainda:dividir a unidade de codificação na pluralidade de unidades de subcodificação com base em pelo menos um modo de pelo menos uma unidade de codificação próxima.
12. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a etapa de divisão da unidade de codificação na pluralidade de unidades de subcodificação compreende ainda:dividir a unidade de codificação na pluralidade de unidades de subcodificação com base nos conteúdos/partição de pelo menos uma unidade de codificação próxima.
13. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que as unidades codificadas compreendem pelo menos uma unidade de subcodificação/codificação espacialmente codificada e/ou pelo menos uma unidade de subcodificação/codificação temporalmente codificada.
14. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a etapa de processamento de cada uma das unidades de subcodificação compreende ainda:obter pelo menos um vetor de movimento da unidade de codificação por realização de estimativa de movimento, para uso de realizar otimização da taxa de distorção, a fim de obter o valor de pixel de predição da unidade de subcodificação específica.
15. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a etapa de processamento de cada uma das unidades de subcodificação compreende ainda:quando obtidas as informações de movimento, designar um vetor de movimento de referência para cada unidade de subcodificação.
16. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a informação de movimento da unidade de codificação compreende adicionalmente um terceiro vetor de movimento correspondendo a uma unidade de subcodificação de outra unidade de codificação localizada dentro de outro quadro que não é o quadro atual onde a unidade de codificação está localizada.
17. Método, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que a etapa de designação do vetor de movimento de referência compreende ainda: designar o vetor de movimento de referência com a utilização de um vetor de movimento de uma unidade de subcodificação de outra unidade de codificação.
18. Aparelho para realizar predição de múltiplas hipóteses localizada durante codificação de vídeo de uma unidade de codificação, sendo que o aparelho é CARACTERIZADO pelo fato de compreender ainda: um circuito de processamento disposto para realizar codificação de vídeo na unidade de codificação, em que o circuito de processamento compreende:um módulo de pré-processamento disposto para dividir a unidade de codificação em uma pluralidade de unidades de subcodificação e para processar as unidades de subcodificação, em que o módulo de pré-processamento obtém as informações de movimento de um primeiro conjunto de unidades codificadas, onde as unidades codificadas são compensadas por movimento e a informação de movimento compreende um primeiro vetor de movimento e um segundo vetor de movimento correspondendo a unidades de subcodificação de outras unidades de codificação dentro de um quadro atual onde a unidade de codificação está localizada e realiza a compensação de movimentos de múltiplas hipóteses na unidade de subcodificação específica da unidade de subcodificação de acordo com as informações de movimento e o módulo de pré-processamento utiliza uma combinação linear de uma pluralidade de valores de pixel obtidos das informações de movimento do primeiro conjunto de unidades codificadas como um valor de pixel de predição da unidade de subcodificação específica; epelo menos um módulo de codificação disposto para realizar codificação de vídeo na unidade de codificação com base na compensação de movimentos de múltiplas hipóteses realizada pelo módulo de pré-processamento;em que o módulo de pré-processamento deriva um valor de pixel de predição de outra unidade de subcodificação na unidade de codificação por utilização das informações de movimento de um segundo conjunto de unidades codificadas que compreende pelo menos uma unidade codificada que não está no primeiro conjunto de unidades codificadas, o segundo conjunto de unidades codificadas são unidades de codificação compensadas por movimento.
19. Aparelho, de acordo com a reivindicação 18, CARACTERIZADO pelo fato de que o módulo de pré-processamento utiliza uma soma ponderada da pluralidade de valores de pixel como o valor de pixel de predição da unidade de subcodificação específica.
20. Aparelho, de acordo com a reivindicação 18, CARACTERIZADO pelo fato de que o módulo de pré-processamento divide a unidade de codificação na pluralidade de unidades de subcodificação com base em pelo menos um modo, conteúdo ou partição de pelo menos uma unidade de codificação próxima.
BR112012025275A 2010-04-14 2011-04-14 método para realizar predição de múltiplas hipóteses localizada durante codificação de vídeo de uma unidade de codificação e aparelho associado BR112012025275B8 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US32394810P 2010-04-14 2010-04-14
US61/323,948 2010-04-14
US13/080,668 2011-04-06
US13/080,668 US8879620B2 (en) 2010-04-14 2011-04-06 Method for performing localized multihypothesis prediction during video coding of a coding unit, and associated apparatus
PCT/CN2011/072783 WO2011127828A1 (en) 2010-04-14 2011-04-14 Method for performing localized multihypothesis prediction during video coding of a coding unit, and associated apparatus

Publications (3)

Publication Number Publication Date
BR112012025275A2 BR112012025275A2 (pt) 2016-06-21
BR112012025275B1 true BR112012025275B1 (pt) 2021-08-03
BR112012025275B8 BR112012025275B8 (pt) 2021-08-24

Family

ID=44788180

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112012025275A BR112012025275B8 (pt) 2010-04-14 2011-04-14 método para realizar predição de múltiplas hipóteses localizada durante codificação de vídeo de uma unidade de codificação e aparelho associado

Country Status (11)

Country Link
US (3) US8837592B2 (pt)
EP (2) EP3220646A1 (pt)
JP (1) JP5211263B2 (pt)
KR (1) KR101452921B1 (pt)
CN (5) CN102223542A (pt)
AU (1) AU2011240486B2 (pt)
BR (1) BR112012025275B8 (pt)
IL (2) IL222337A (pt)
RU (1) RU2530318C2 (pt)
TW (4) TWI520586B (pt)
WO (1) WO2011127828A1 (pt)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8971400B2 (en) * 2010-04-14 2015-03-03 Mediatek Inc. Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
US9118929B2 (en) 2010-04-14 2015-08-25 Mediatek Inc. Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
US9462272B2 (en) * 2010-12-13 2016-10-04 Electronics And Telecommunications Research Institute Intra prediction method and apparatus
WO2012081895A1 (ko) 2010-12-13 2012-06-21 한국전자통신연구원 인트라 예측 방법 및 그 장치
US9955155B2 (en) * 2010-12-31 2018-04-24 Electronics And Telecommunications Research Institute Method for encoding video information and method for decoding video information, and apparatus using same
CN105959706B (zh) * 2011-01-12 2021-01-08 三菱电机株式会社 图像编码装置和方法、以及图像译码装置和方法
CN103748877B (zh) * 2011-08-17 2017-05-10 联发科技(新加坡)私人有限公司 帧内预测方法和装置
US9736489B2 (en) * 2011-09-17 2017-08-15 Qualcomm Incorporated Motion vector determination for video coding
US9386305B2 (en) 2011-11-28 2016-07-05 Qualcomm Incorporated Largest coding unit (LCU) or partition-based syntax for adaptive loop filter and sample adaptive offset in video coding
WO2013095616A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Apparatus and method for selecting elements of a vector computation
WO2013107028A1 (en) * 2012-01-19 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of amvp simplification
PL2805511T3 (pl) 2012-01-20 2019-09-30 Sun Patent Trust Sposoby i urządzenie do kodowania i dekodowania wideo przy użyciu predykcji wektora ruchu w czasie
MX2013008942A (es) 2012-02-03 2013-09-12 Panasonic Corp Metodo de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de codificacion de imagenes, aparato de decodificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
CA2866121C (en) 2012-03-06 2018-04-24 Panasonic Intellectual Property Corporation Of America Moving picture coding method, moving picture decoding method, moving picture coding apparatus, moving picture decoding apparatus, and moving picture coding and decoding apparatus
US9544612B2 (en) * 2012-10-04 2017-01-10 Intel Corporation Prediction parameter inheritance for 3D video coding
BR112016012009B1 (pt) * 2013-11-27 2023-11-07 Hfi Innovation Inc Método de sinalização de modo de codificação incluindo um modo intrabc para uma imagem
CN111193930B (zh) * 2013-12-16 2021-11-30 浙江大学 一种前向双假设编码图像块的编解码方法和装置
KR101789954B1 (ko) * 2013-12-27 2017-10-25 인텔 코포레이션 차세대 비디오 코딩을 위한 콘텐츠 적응적 이득 보상된 예측
JP6482191B2 (ja) * 2014-06-12 2019-03-13 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
GB2531001B (en) 2014-10-06 2019-06-05 Canon Kk Method and apparatus for vector encoding in video coding and decoding
US11330284B2 (en) * 2015-03-27 2022-05-10 Qualcomm Incorporated Deriving motion information for sub-blocks in video coding
TWI610558B (zh) * 2016-05-26 2018-01-01 晨星半導體股份有限公司 位元分配方法及視訊編碼裝置
CN116866593A (zh) * 2016-11-28 2023-10-10 韩国电子通信研究院 对图像编码/解码的方法和设备及存储比特流的记录介质
WO2018128345A2 (ko) * 2017-01-04 2018-07-12 삼성전자 주식회사 복호화 방법 및 그 장치
WO2019152283A1 (en) 2018-02-02 2019-08-08 Apple Inc. Techniques of multi-hypothesis motion compensation
US11924440B2 (en) 2018-02-05 2024-03-05 Apple Inc. Techniques of multi-hypothesis motion compensation
EP3766247A4 (en) 2018-04-02 2022-01-19 MediaTek Inc. VIDEO PROCESSING METHODS AND APPARATUS FOR SUBBLOCK MOTION COMPENSATION IN VIDEO CODING SYSTEMS
US10986343B2 (en) * 2018-04-15 2021-04-20 Arris Enterprises Llc Reducing overhead for multiple-hypothesis temporal prediction
CN116684594A (zh) * 2018-04-30 2023-09-01 寰发股份有限公司 照度补偿方法及相应的电子装置
WO2019229683A1 (en) * 2018-05-31 2019-12-05 Beijing Bytedance Network Technology Co., Ltd. Concept of interweaved prediction
TW202025776A (zh) 2018-06-19 2020-07-01 北京字節跳動網絡技術有限公司 不具運動向量預測截斷的選擇運動向量差精確度
TWI723446B (zh) * 2018-07-02 2021-04-01 大陸商北京字節跳動網絡技術有限公司 具有lic的lut
CN110602493B (zh) * 2018-09-19 2022-06-10 北京达佳互联信息技术有限公司 一种仿射运动补偿的交织预测的方法及设备
WO2020058886A1 (en) 2018-09-19 2020-03-26 Beijing Bytedance Network Technology Co., Ltd. Fast algorithms for adaptive motion vector resolution in affine mode
CN110944171B (zh) * 2018-09-25 2023-05-09 华为技术有限公司 一种图像预测方法和设备
CN111050164B (zh) * 2018-10-15 2022-05-17 华为技术有限公司 一种编解码的方法和装置
WO2020101559A1 (en) * 2018-11-15 2020-05-22 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking in a video encoder and/or video decoder
WO2020140951A1 (en) 2019-01-02 2020-07-09 Beijing Bytedance Network Technology Co., Ltd. Motion vector derivation between color components
EP3895429A4 (en) 2019-01-31 2022-08-10 Beijing Bytedance Network Technology Co., Ltd. CONTEXT FOR CODE AN ADAPTIVE MOTION VECTOR RESOLUTION IN AFFINE MODE
EP3918804A4 (en) 2019-03-14 2023-02-08 HFI Innovation Inc. METHODS AND APPARATUS FOR VIDEO PROCESSING USING MOTION DECOMPOSITION AND SUB-PARTITION BASE FILLING
CN110852500B (zh) * 2019-11-01 2023-04-07 聊城大学 一种资源受限混合流水车间优化方法

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2231751B (en) 1989-04-27 1993-09-22 Sony Corp Motion dependent video signal processing
DE69027966T2 (de) 1989-10-06 1997-02-06 Philips Electronics Nv Adaptive Schaltung zur Geisterbildauslöschung
US5134475A (en) 1990-12-11 1992-07-28 At&T Bell Laboratories Adaptive leak hdtv encoder
KR970002964B1 (ko) 1993-12-24 1997-03-13 대우전자 주식회사 영상신호의 시간축 내삽필터
EP1274253A3 (en) * 1995-08-29 2005-10-12 Sharp Kabushiki Kaisha Video coding device and video decoding device with a motion compensated interframe prediction
WO1997046020A2 (en) 1996-05-24 1997-12-04 Philips Electronics N.V. Motion vector processing
JP3633159B2 (ja) * 1996-12-18 2005-03-30 ソニー株式会社 動画像信号符号化方法及び装置、並びに動画像信号伝送方法
US6807231B1 (en) * 1997-09-12 2004-10-19 8×8, Inc. Multi-hypothesis motion-compensated video image predictor
US6532265B1 (en) 1999-03-25 2003-03-11 Imec Vzw Method and system for video compression
JP2000299864A (ja) * 1999-04-12 2000-10-24 Canon Inc 動画像処理方法
US6633677B1 (en) 1999-12-30 2003-10-14 Stmicroelectronics, Inc. Method and apparatus for processing an image in an image compression/decompression system that uses hierachical coding
US6438168B2 (en) 2000-06-27 2002-08-20 Bamboo Media Casting, Inc. Bandwidth scaling of a compressed video stream
US20040001546A1 (en) * 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US20040141555A1 (en) * 2003-01-16 2004-07-22 Rault Patrick M. Method of motion vector prediction and system thereof
US7184602B2 (en) * 2003-05-02 2007-02-27 Microsoft Corp. System and method for low bandwidth video streaming for face-to-face teleconferencing
HUP0301368A3 (en) * 2003-05-20 2005-09-28 Amt Advanced Multimedia Techno Method and equipment for compressing motion picture data
CN100594730C (zh) 2003-06-25 2010-03-17 汤姆森许可贸易公司 帧间的快速模式确定编码方法及其装置
MXPA06002210A (es) * 2003-08-26 2006-05-19 Thomson Licensing Metodo y aparato para la decodificacion de bloques intra-inter codificados hibridos.
US7599438B2 (en) * 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
JP3880985B2 (ja) * 2004-08-05 2007-02-14 松下電器産業株式会社 動きベクトル検出装置および動きベクトル検出方法
US7447337B2 (en) * 2004-10-25 2008-11-04 Hewlett-Packard Development Company, L.P. Video content understanding through real time video motion analysis
RU2368095C1 (ru) * 2005-07-22 2009-09-20 Мицубиси Электрик Корпорейшн Кодер изображения и декодер изображения, способ кодирования изображения и способ декодирования изображения, программа кодирования изображения и программа декодирования изображения и компьютерно-считываемый носитель записи, на котором записана программа кодирования изображения, и компьютерно-считываемый носитель записи, на котором записана программа декодирования изображения
JP2007142521A (ja) 2005-11-15 2007-06-07 Sharp Corp 動きベクトル算出装置および動きベクトル算出方法
JP4763549B2 (ja) * 2006-08-18 2011-08-31 富士通セミコンダクター株式会社 フレーム間予測処理装置、画像符号化装置、及び画像復号化装置
CN101222627A (zh) * 2007-01-09 2008-07-16 华为技术有限公司 一种多视点视频编解码***以及预测向量的方法和装置
KR101366241B1 (ko) * 2007-03-28 2014-02-21 삼성전자주식회사 영상 부호화, 복호화 방법 및 장치
JP4325708B2 (ja) * 2007-07-05 2009-09-02 ソニー株式会社 データ処理装置、データ処理方法およびデータ処理プログラム、符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム
JP4786612B2 (ja) * 2007-08-14 2011-10-05 Kddi株式会社 動画像符号化装置の予測動きベクトル生成装置
US8000411B2 (en) * 2008-01-04 2011-08-16 Qualcomm Incorporated Decoding scheme using multiple hypotheses about transmitted messages
JP4990927B2 (ja) 2008-03-28 2012-08-01 三星電子株式会社 動きベクトル情報の符号化/復号化方法及び装置
US8195001B2 (en) 2008-04-09 2012-06-05 Intel Corporation In-loop adaptive wiener filter for video coding and decoding
US20110261882A1 (en) 2008-04-11 2011-10-27 Thomson Licensing Methods and apparatus for template matching prediction (tmp) in video encoding and decoding
US8908763B2 (en) * 2008-06-25 2014-12-09 Qualcomm Incorporated Fragmented reference in temporal compression for video coding
WO2010035733A1 (ja) 2008-09-24 2010-04-01 ソニー株式会社 画像処理装置および方法
US8634457B2 (en) * 2008-09-26 2014-01-21 Qualcomm Incorporated Determining availability of video data units
US8660176B2 (en) * 2008-09-26 2014-02-25 Qualcomm Incorporated Resolving geometric relationships among video data units
US8724697B2 (en) * 2008-09-26 2014-05-13 Qualcomm Incorporated Locating motion vectors for video data units
KR101279573B1 (ko) * 2008-10-31 2013-06-27 에스케이텔레콤 주식회사 움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
JP4957780B2 (ja) 2009-11-20 2012-06-20 カシオ計算機株式会社 動き補償予測符号化装置、動き補償予測符号化方法及びプログラム

Also Published As

Publication number Publication date
CN105872558B (zh) 2019-06-07
KR101452921B1 (ko) 2014-10-23
EP3220646A1 (en) 2017-09-20
IL222337A0 (en) 2012-12-31
RU2530318C2 (ru) 2014-10-10
US20110255598A1 (en) 2011-10-20
AU2011240486A1 (en) 2012-10-11
US20120027097A1 (en) 2012-02-02
JP5211263B2 (ja) 2013-06-12
WO2011127828A1 (en) 2011-10-20
KR20120126115A (ko) 2012-11-20
US8891608B2 (en) 2014-11-18
TW201511524A (zh) 2015-03-16
BR112012025275A2 (pt) 2016-06-21
CN102223542A (zh) 2011-10-19
TW201218776A (en) 2012-05-01
TW201143462A (en) 2011-12-01
CN102907095A (zh) 2013-01-30
TWI514855B (zh) 2015-12-21
TW201511525A (zh) 2015-03-16
TWI445411B (zh) 2014-07-11
CN105872558A (zh) 2016-08-17
EP2559250A1 (en) 2013-02-20
JP2012513179A (ja) 2012-06-07
IL222337A (en) 2016-05-31
US8879620B2 (en) 2014-11-04
CN102907095B (zh) 2016-10-12
TWI520586B (zh) 2016-02-01
US20110255600A1 (en) 2011-10-20
RU2012141233A (ru) 2014-06-10
CN107071472A (zh) 2017-08-18
TWI469645B (zh) 2015-01-11
US8837592B2 (en) 2014-09-16
BR112012025275B8 (pt) 2021-08-24
EP2559250A4 (en) 2016-01-06
AU2011240486B2 (en) 2014-02-13
CN105791858A (zh) 2016-07-20
CN105791858B (zh) 2019-11-15
IL245480B (en) 2018-01-31
IL245480A0 (en) 2016-06-30
EP2559250B1 (en) 2020-07-08

Similar Documents

Publication Publication Date Title
BR112012025275B1 (pt) Método para realizar predição de múltiplas hipóteses localizada durante codificação de vídeo de uma unidade de codificação e aparelho associado
TWI729402B (zh) 加權交織預測
BR112019027261A2 (pt) refinamento de vetor de movimento para previsão de multirreferências
BR112020014654A2 (pt) compensação de movimento afim em codificação de vídeo
CN111886870B (zh) 使用整数像素分辨率的运动矢量修正搜索
US9154790B2 (en) Methods for encoding/decoding of video using common merging candidate set of asymmetric partitions
JP2022044613A (ja) 画像予測方法および関連装置
TW201739252A (zh) 具有仿射運動補償的視訊編碼的方法以及裝置
US11902563B2 (en) Encoding and decoding method and device, encoder side apparatus and decoder side apparatus
BR112019017252A2 (pt) derivando informação de vetor de movimento em um decodificador de vídeo
CN115243050B (zh) 用于运动向量修正的受限存储器访问窗口
KR20170125086A (ko) 화상 예측 방법 및 관련 장치
BR112012019560B1 (pt) Método para gerenciar candidatos a vetor de movimento predito, e, aparelhos de codificação e de decodificação de vídeo
BR112012009142B1 (pt) Dispositivo de codificação de imagem móvel, dispositivo de decodificação de imagem móvel, método de codificação de imagem móvel e método de decodificação de imagem móvel
BR122021006834B1 (pt) Método para decodificar uma imagem
BR122020002121B1 (pt) Método e aparelho para gerar candidatos a preditores de vetor de movimento
BR112013017208B1 (pt) Método de codificação preditiva e dispositivo de codificação preditiva de vetor de movimento, e método de decodificação preditiva e dispositivo de decodificação preditivade vetor de movimento
CN111201792B (zh) 指向分数像素点位置的运动矢量的修正运动矢量
TWI821408B (zh) 塊級別的運動向量平面模式
BR122015013885B1 (pt) Aparelho para decodificar uma imagem
CN111010571B (zh) 组合仿射Merge候选的生成和使用
BR112020026988A2 (pt) Método e aparelho de refinamento exato de subpixel baseado em superfície de erro para refinamento de vetor de movimento do lado do decodificador
BR112021012414A2 (pt) Dispositivo de decodificação de imagem em movimento, dispositivode codificação de imagem em movimento e métodos relacionados
BR122021004640B1 (pt) Método de compensação de movimento

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: HFI INNOVATION, INC. (CN)

B15K Others concerning applications: alteration of classification

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

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B25K Entry of change of name and/or headquarter and transfer of application, patent and certificate of addition of invention: republication

Owner name: HFI INNOVATION INC. (CN)

Free format text: RETIFICACAO DO DESPACHO 25.1 ? TRANSFERENCIA DE TITULAR PUBLICADO NA RPI NO 2428, DE 18/07/2017, QUANTO AO ITEM (71) - DEPOSITANTE.ONDE SE LE: HFI INNOVATION, INC.LEIA-SE: HFI INNOVATION INC.

B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 14/04/2011, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.

B16C Correction of notification of the grant [chapter 16.3 patent gazette]

Free format text: REF. RPI 2639 DE 03/08/2021 QUANTO AO ENDERECO.