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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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.