BR112020024666A2 - método e aparelho de obtenção de vetor de movimento - Google Patents

método e aparelho de obtenção de vetor de movimento Download PDF

Info

Publication number
BR112020024666A2
BR112020024666A2 BR112020024666-2A BR112020024666A BR112020024666A2 BR 112020024666 A2 BR112020024666 A2 BR 112020024666A2 BR 112020024666 A BR112020024666 A BR 112020024666A BR 112020024666 A2 BR112020024666 A2 BR 112020024666A2
Authority
BR
Brazil
Prior art keywords
block
sub
motion vector
target
location
Prior art date
Application number
BR112020024666-2A
Other languages
English (en)
Inventor
Huanbang Chen
Yin Zhao
Haitao Yang
Jianle Chen
Original Assignee
Huawei Technologies Co., Ltd.
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 Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Publication of BR112020024666A2 publication Critical patent/BR112020024666A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/567Motion estimation based on rate distortion criteria

Landscapes

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

Abstract

MÉTODO E APARELHO DE OBTENÇÃO DE VETOR DE MOVIMENTO. Esse pedido fornece um método e aparelho de obtenção de vetor de movimento. O método inclui: determinar um vetor de deslocamento alvo de um bloco e informações identificadoras de uma imagem alvo, em que o bloco compreende pelo menos um sub-bloco; determinar uma localização do subbloco; determinar, como uma localização alvo de um sub-bloco colocalizado, uma localização obtida realizando-se uma operação de recorte em uma localização inicial do sub-bloco colocalizado em uma faixa, em que a localização inicial é determinada com base na localização do sub-bloco e do vetor de deslocamento alvo; e obtenção de um vetor de movimento do sub-bloco com base em um vetor de movimento correspondente à localização alvo. Desse modo, uma faixa do vetor de deslocamento alvo é limitada, de modo que uma quantidade de vezes de leitura de memória pode ser reduzida em um processo de obtenção do vetor de movimento do sub-bloco colocalizado.

Description

UTT “MÉTODO E APARELHO DE OBTENÇÃO DE VETOR DE MOVIMENTO” CAMPO DA TÉCNICA
[0001] Esse pedido se relaciona ao campo de tecnologias de codificar e decodificar vídeo, e mais especificamente, a um método e aparelho de obtenção de vetor de movimento.
FUNDAMENTOS
[0002] Capacidades de vídeo digital podem ser incorporadas em uma ampla variedade de aparelhos, incluindo televisões digitais, sistemas digitais de difusão ao vivo, sistemas de difusão sem fio, assistentes digitais pessoais (PDA), computadores tipo laptop ou de mesa, computadores tipo tablet, leitores de livro digital, câmeras digitais, aparelhos de gravação digital, aparelhos de reprodução de mídia digital, aparelhos de vídeo game, consoles de vídeo game, telefones via rádio celulares ou por satélite (os chamados "telefones inteligentes"), aparelhos de videoconferência, aparelhos de streaming de vídeo, e semelhantes. Aparelhos de vídeo digital implantam tecnologias de compactação de vídeo, por exemplo, tecnologias de compactação de vídeo descritas em padrões definidos por MPEG-2, MPEG-4, H.263 da ITU-T, e H.264/MPEG-4 parte 10 de codificação de vídeo avançada (AVC) da ITU-T, o padrão de codificação de vídeo H.265/padrão de codificação de vídeo de alta eficiência (high efficiency video coding, HEVC), e extensões de tais padrões. Os aparelhos de vídeo podem transmitir, receber, codificar, decodificar, e/ou armazenar informações de vídeo digital mais eficientemente implantando-se tais tecnologias de compactação de vídeo.
[0003] As tecnologias de compactação de vídeo são usadas para realizar predição espacial (imagem intra) e/ou predição temporal (imagem inter) para reduzir ou remover redundância inerente em sequências de vídeo. Em codificação de vídeo com base em bloco, uma fatia de vídeo (isto é, um quadro de vídeo ou uma parte de um quadro de vídeo) pode ser dividida em diversos blocos de imagem, e o bloco de imagem pode também ser referido como um bloco árvore, uma unidade de codificação (coding unit, CU), e/ou um nó de codificação. Um bloco de imagem em uma fatia a ser codificada intra (1) de uma imagem é codificado através de predição espacial com base em uma amostra de referência em um bloco vizinho na mesma imagem. Para um bloco de imagem em uma fatia de uma imagem a ser codificada inter (P ou B), predição espacial com base em uma amostra de referência em um bloco vizinho na mesma imagem ou predição temporal com base em uma amostra de referência em uma outra imagem de referência pode ser usada. A imagem pode ser referida como um quadro, e a imagem de referência pode ser referida como uma imagem de referência.
[0004] Vários padrões de codificação de vídeo incluindo o padrão HEVC propõem um modo de codificação preditivo usado para um bloco de imagem. Para ser específico, um bloco a ser codificado atual é predito com base em um bloco de dados de vídeo codificados. Em um modo de predição intra, um bloco atual é predito com base em um ou mais blocos vizinhos previamente decodificados na mesma imagem que o bloco atual. Em um modo de predição inter, um bloco atual é predito com base em um bloco decodificado em uma imagem diferente.
[0005] Em predição inter de HEVC, compensação de movimento é realizada em todas as amostras em uma CU usando-se as mesmas informações de movimento, para se obter valores preditos das amostras na CU. No entanto, as amostras na CU não têm necessariamente um mesmo recurso de movimento. Portanto, predizer todas as amostras na CU usando-se as mesmas informações de movimento pode reduzir a exatidão de compensação de movimento, e adicionalmente aumentar informações residuais.
[0006] Para resolver o supracitado problema, uma tecnologia de predição de vetor de movimento temporal avançado (advanced temporal motion vector prediction, ATMVP) é proposta em uma solução existente.
[0007] Um processo de realizar predição usando-se a tecnologia
ATMVP inclui principalmente:
[0008] (1) Determinar um vetor de deslocamento de um bloco a ser processado atual.
[0009] (2) Determinar, em uma imagem correspondente, um sub- bloco colocalizado de um sub-bloco a ser processado com base no vetor de deslocamento e em uma localização do sub-bloco a ser processado no bloco a ser processado atual.
[0010] (3) Determinar um vetor de movimento do sub-bloco a ser processado atual com base em um vetor de movimento do sub-bloco colocalizado.
[0011] (4) Realizar predição compensada por movimento no sub- bloco a ser processado com base no vetor de movimento do sub-bloco a ser processado, para se obter um valor de amostra predito do sub-bloco a ser processado.
[0012] No entanto, na tecnologia ATMVP, uma faixa do sub-bloco colocalizado determinado na imagem correspondente é incerta, e informações de movimento do sub-bloco colocalizado precisam ser frequentemente lidas a partir da imagem correspondente. Consequentemente, a largura de banda de leitura de memória aumenta, e a complexidade do processo de predição aumenta.
SUMÁRIO
[0013] Esse pedido fornece um método e aparelho para obtenção de vetor de movimento, para reduzir uma quantidade de vezes de leitura de memória.
[0014] De acordo com um primeiro aspecto, um método de obtenção de vetor de movimento é fornecido. O método inclui: determinar uma primeira faixa de valores e uma segunda faixa de valores; determinar um vetor de deslocamento alvo de um bloco a ser processado e informações de identificador de uma imagem alvo, onde o bloco a ser processado inclui pelo menos um sub-
bloco a ser processado; determinar, na imagem alvo com base em uma localização do sub-bloco a ser processado e no vetor de deslocamento alvo, um sub-bloco colocalizado do sub-bloco a ser processado; e determinar um vetor de movimento do sub-bloco a ser processado com base em um vetor de movimento do sub-bloco colocalizado.
[0015] Um valor de um componente do vetor de deslocamento alvo em uma primeira direção cai dentro da primeira faixa de valores, um valor de um componente do vetor de deslocamento alvo em uma segunda direção cai dentro da segunda faixa de valores, e a primeira direção e a segunda direção estão em uma relação ortogonal.
[0016] Deve ser entendido que o pelo menos um sub-bloco a ser processado pode ser obtido dividindo-se novamente o bloco a ser processado. Além disso, quando o bloco a ser processado é uma unidade de codificação CU, o sub-bloco a ser processado é uma sub- CU obtida depois que a CU é dividida.
[0017] Além disso, um bloco (imagem) que está na imagem alvo e que corresponde ao bloco a ser processado pode ser referido como um bloco correspondente, o bloco correspondente inclui pelo menos um sub-bloco colocalizado, e o vetor de deslocamento alvo é usado para determinar o (uma localização do) bloco correspondente que é do bloco a ser processado e que está na imagem alvo. Deve ser entendido que o vetor de deslocamento alvo no presente documento é diferente do vetor de movimento comum. O vetor de deslocamento alvo no presente documento é usado para determinar o bloco correspondente. No entanto, um vetor de movimento é normalmente usado para determinar um bloco de predição de um bloco de imagem, de modo a se obter um valor de amostra predito do bloco de imagem. Além disso, o vetor de deslocamento pode também ser referido como um vetor temporal (temporal vector), e a imagem alvo pode também ser referida como uma imagem correspondente.
[0018] A primeira faixa de valores e a segunda faixa de valores podem ser indicadas usando-se um mesmo elemento de sintaxe.
[0019] Especificamente, a primeira faixa de valores inclui um primeiro limiar e um segundo limiar, e a segunda faixa de valores inclui um terceiro limiar e um quarto limiar. O primeiro limiar pode ser obtido analisando-se o elemento de sintaxe. O segundo limiar, o terceiro limiar, e o quarto limiar têm, cada um deles, uma relação múltipla específica (ou uma outra relação numérica) com o primeiro limiar. Dessa maneira, depois que o primeiro limiar é obtido, o segundo limiar para ao quarto limiar podem ser obtidos com base na relação múltipla entre o primeiro limiar e cada um do segundo limiar ao quarto limiar.
[0020] Opcionalmente, as informações de identificador da imagem alvo são uma contagem de ordem de imagem POC da imagem alvo em uma sequência de imagem.
[0021] Deve ser entendido que a POC é usada para indicar uma localização efetiva da imagem em uma sequência de imagem original. Para se distinguir de uma ordem de codificação/uma ordem de decodificação, a POC pode também ser referida como uma ordem de exibição ou uma ordem de reprodução.
[0022] Opcionalmente, as informações de identificador da imagem alvo são informações de índice ou um valor índice da imagem alvo.
[0023] Nesse pedido, porque o valor de componente do vetor de deslocamento alvo cai dentro de uma faixa de valores específica, o sub-bloco colocalizado que é do sub-bloco a ser processado e que é determinado na imagem alvo com base no vetor de deslocamento alvo também cai dentro de uma faixa específica da imagem alvo. Portanto, a largura de banda de memória e uma quantidade de vezes de leitura de memória podem ser reduzidas por pré- leitura de um campo de vetor de movimento temporal na faixa específica da imagem alvo.
[0024] Com referência ao primeiro aspecto, em algumas implantações do primeiro aspecto, antes da determinação de um vetor de movimento do sub-
bloco a ser processado com base em um vetor de movimento do sub-bloco colocalizado, o método adicionalmente inclui: obter um vetor de movimento de uma amostra em uma área pré-estabelecida na imagem alvo, onde a área pré- estabelecida é uma área na qual o sub-bloco colocalizado do sub-bloco a ser processado pode aparecer.
[0025] Nesse pedido, porque uma área na qual o sub-bloco cColocalizado aparece na imagem alvo é determinada, uma quantidade de vezes de leitura de um vetor de movimento a partir da imagem alvo pode ser reduzida por pré-obtenção de um vetor de movimento em uma área específica na imagem alvo. Em outras palavras, uma quantidade de vezes de leitura de memória é reduzida. Além disso, porque o vetor de movimento é obtido somente na área específica na imagem alvo, largura de banda de memória pode ser reduzida.
[0026] Deve ser entendido que a primeira faixa de valores pode ser uma faixa de valores incluindo o primeiro limiar e o segundo limiar, e a segunda faixa de valores pode ser uma faixa de valores incluindo o terceiro limiar e o quarto limiar. O primeiro limiar é menor que o segundo limiar, e o terceiro limiar é menor que o quarto limiar.
[0027] Opcionalmente, a primeira faixa de valores é qualquer uma dentre (o primeiro limiar, o segundo limiar), (o primeiro limiar, o segundo limiar], [o primeiro limiar, o segundo limiar), e [0 primeiro limiar, o segundo limiar].
[0028] Opcionalmente, a segunda faixa de valores é qualquer uma dentre (o terceiro limiar, o quarto limiar), (o terceiro limiar, o quarto limiar], [o terceiro limiar, o quarto limiar), e [o terceiro limiar, o quarto limiar].
[0029] Em outras palavras, a primeira faixa de valores e a segunda faixa de valores podem ser, cada uma delas, qualquer uma dentre uma faixa aberta, uma faixa fechada, e uma faixa metade aberta e metade fechada.
[0030] Deve ser entendido que, quando a primeira faixa de valores é (o primeiro limiar, o segundo limiar), o valor do componente do vetor de deslocamento alvo na primeira direção cair dentro da primeira faixa de valores
7IT7 inclui: o valor do componente do vetor de deslocamento alvo na primeira direção é maior que o primeiro limiar e menor que o segundo limiar.
[0031] Quando a primeira faixa de valores é [o primeiro limiar, o segundo limiar], o valor do componente do vetor de deslocamento alvo na primeira direção cair dentro da primeira faixa de valores inclui: o valor do componente do vetor de deslocamento alvo na primeira direção é maior ou igual ao primeiro limiar e menor ou igual ao segundo limiar.
[0032] Com referência ao primeiro aspecto, em algumas implantações do primeiro aspecto, a determinação de um vetor de deslocamento alvo de um bloco a ser processado inclui: determinar um vetor de deslocamento inicial do bloco a ser processado; e quando um valor de um componente do vetor de deslocamento inicial na primeira direção cai dentro da primeira faixa de valores, e um valor de um componente do vetor de deslocamento inicial na segunda direção cai dentro da segunda faixa de valores, determinar o vetor de deslocamento inicial como o vetor de deslocamento alvo; ou quando um valor de um componente do vetor de deslocamento inicial na primeira direção excede a primeira faixa de valores e/ou um valor de um componente do vetor de deslocamento inicial na segunda direção cai fora da segunda faixa de valores, realizar recorte em uma parte que é do valor do componente do vetor de deslocamento inicial na primeira direção e que excede a primeira faixa de valores e/ou uma parte que é do valor do componente do vetor de deslocamento inicial na segunda direção e que excede a segunda faixa de valores, e determinar um vetor de deslocamento inicial obtido depois do recorte como o vetor de deslocamento alvo.
[0033] Valores de componentes que são do vetor de deslocamento inicial obtido depois do recorte e que estão na primeira direção e na segunda direção respectivamente se encontram dentro da primeira faixa de valores e da segunda faixa de valores.
[0034] Os valores dos componentes do vetor de deslocamento inicial na primeira direção e na segunda direção são limitados, de modo que os valores dos componentes do vetor de deslocamento alvo finalmente obtido na primeira direção e na segunda direção possam respectivamente cair dentro da primeira faixa de valores e da segunda faixa de valores.
[0035] Opcionalmente, quando o valor do componente do vetor de deslocamento inicial na primeira direção cai fora da primeira faixa de valores e/ou o valor do componente do vetor de deslocamento inicial na segunda direção cai fora da segunda faixa de valores, a realização de recorte em uma parte que é do valor do componente do vetor de deslocamento inicial na primeira direção e que excede a primeira faixa de valores e/ou uma parte que é do valor do componente do vetor de deslocamento inicial na segunda direção e que excede a segunda faixa de valores, e determinar um vetor de deslocamento inicial obtido depois do recorte como o vetor de deslocamento alvo inclui: quando o valor do componente do vetor de deslocamento inicial na primeira direção cai dentro da primeira faixa de valores, e o valor do componente do vetor de deslocamento inicial na segunda direção excede a segunda faixa de valores, realizar recorte na parte que é do componente do vetor de deslocamento inicial na segunda direção e que excede a segunda faixa de valores, e determinar um vetor de deslocamento inicial obtido depois do recorte como o vetor de deslocamento alvo; ou quando o valor do componente do vetor de deslocamento inicial na primeira direção excede a primeira faixa de valores, e o valor do componente do vetor de deslocamento inicial na segunda direção cai dentro da segunda faixa de valores, realizar recorte na parte que é do componente do vetor de deslocamento inicial na primeira direção e que excede a primeira faixa de valores, e determinar um vetor de deslocamento inicial obtido depois do recorte como o vetor de deslocamento alvo; ou quando o valor do componente do vetor de deslocamento inicial na primeira direção excede a primeira faixa de valores, e o valor do componente do vetor de deslocamento inicial na segunda direção excede a segunda faixa de valores, realizar recorte na parte que é do componente do vetor de deslocamento inicial na primeira direção e que excede a primeira faixa de valores, realizar recorte na parte que é do componente do vetor de deslocamento inicial na segunda direção e que excede a segunda faixa de valores, e determinar um vetor de deslocamento inicial obtido depois do recorte como o vetor de deslocamento alvo.
[0036] Deve ser entendido que, quando um valor de um componente do vetor de deslocamento inicial em uma direção excede um valor máximo na direção, recortar é efetivamente truncar uma parte que é do valor do componente e que excede o valor máximo, de modo que um valor do componente obtido depois do truncamento seja menor ou igual ao valor máximo. Quando um valor de um componente do vetor de deslocamento inicial em uma direção é menor que um valor mínimo na direção, recortar é efetivamente compensar o valor do componente, isto é, aumentar o valor do componente, de modo que um valor do componente obtido depois da compensação seja maior ou igual ao valor mínimo.
[0037] Com referência ao primeiro aspecto, em algumas implantações do primeiro aspecto, a determinação de um vetor de deslocamento inicial do bloco a ser processado inclui: determinar um vetor de movimento de um bloco espacialmente pré-estabelecido vizinho do bloco a ser processado como o vetor de deslocamento inicial.
[0038] Opcionalmente, a determinação de um vetor de movimento de um bloco espacialmente pré-estabelecido vizinho do bloco a ser processado como o vetor de deslocamento inicial inclui: determinar um vetor de movimento do primeiro bloco espacialmente vizinho disponível como o vetor de deslocamento inicial em uma ordem pré-estabelecida.
[0039] O vetor de movimento do primeiro bloco espacialmente vizinho disponível é diretamente determinado como o vetor de deslocamento inicial, de modo que um processo de determinar o vetor de deslocamento inicial possa ser simplificado.
[0040] Com referência ao primeiro aspecto, em algumas implantações do primeiro aspecto, a determinação de um vetor de deslocamento alvo de um bloco a ser processado inclui: determinar um bloco espacialmente vizinho alvo em blocos espacialmente pré-estabelecidos vizinhos do bloco a ser processado, onde um valor de um componente de um vetor de movimento do bloco espacialmente vizinho alvo na primeira direção cai dentro da primeira faixa de valores, e um valor de um componente do vetor de movimento do bloco espacialmente vizinho alvo na segunda direção cai dentro da segunda faixa de valores; e usar o vetor de movimento do bloco espacialmente vizinho alvo como o vetor de deslocamento alvo.
[0041] O vetor de movimento que é do bloco espacialmente vizinho e cujos valores do componente caem dentro da primeira faixa de valores e da segunda faixa de valores é diretamente determinado como o vetor de deslocamento alvo, de modo que um processo de determinar o vetor de deslocamento alvo possa ser simplificado.
[0042] Com referência ao primeiro aspecto, em algumas implantações do primeiro aspecto, a determinação de uma primeira faixa de valores e de uma segunda faixa de valores inclui: determinar a primeira faixa de valores e a segunda faixa de valores com base em uma localização e um tamanho do bloco a ser processado, uma localização e um tamanho de uma unidade de árvore de codificação CTU na qual o bloco a ser processado está localizado, e uma faixa de extensão pré-estabelecida de um campo de vetor de movimento temporal da CTU.
[0043] Opcionalmente, a determinação da primeira faixa de valores com base em uma localização e um tamanho do bloco a ser processado, uma localização e um tamanho de uma unidade de árvore de codificação CTU na qual o bloco a ser processado está localizado, e uma faixa de extensão pré- estabelecida de um campo de vetor de movimento temporal da CTU inclui:
determinar o primeiro limiar e o segundo limiar com base na localização e no tamanho do bloco a ser processado, na localização e no tamanho da unidade de árvore de codificação CTU na qual o bloco a ser processado está localizado, e na faixa de extensão pré-estabelecida do campo de vetor de movimento temporal da CTU, onde o primeiro limiar é um valor mínimo disponível para o componente do vetor de deslocamento alvo na primeira direção, e o segundo limiar é um valor máximo disponível para o componente do vetor de deslocamento alvo na primeira direção; e obtenção da primeira faixa de valores com base no primeiro limiar e no segundo limiar.
[0044] Opcionalmente, a determinação da segunda faixa de valores com base em uma localização e um tamanho do bloco a ser processado, uma localização e um tamanho de uma unidade de árvore de codificação CTU na qual o bloco a ser processado está localizado, e uma faixa de extensão pré- estabelecida de um campo de vetor de movimento temporal da CTU inclui: determinar o terceiro limiar e o quarto limiar com base na localização e no tamanho do bloco a ser processado, na localização e no tamanho da unidade de árvore de codificação CTU na qual o bloco a ser processado está localizado, e na faixa de extensão pré-estabelecida do campo de vetor de movimento temporal da CTU, onde o terceiro limiar é um valor mínimo disponível para o componente do vetor de deslocamento alvo na segunda direção, e o quarto limiar é um valor máximo disponível para o componente do vetor de deslocamento alvo na segunda direção; e obtenção da segunda faixa de valores com base no terceiro limiar e no quarto limiar.
[0045] Com referência ao primeiro aspecto, em algumas implantações do primeiro aspecto, a faixa de extensão do campo de vetor de movimento temporal da CTU inclui faixas de extensão do campo de vetor de movimento temporal da CTU na primeira direção e na segunda direção.
[0046] Opcionalmente, a primeira direção é uma direção horizontal, e a segunda direção é uma direção vertical.
[0047] Opcionalmente, quando a primeira direção é a direção horizontal, e a segunda direção é a direção vertical, a faixa de extensão do campo de vetor de movimento temporal da CTU inclui faixas de extensão do campo de vetor de movimento temporal da CTU em uma direção ascendente, uma direção descendente, uma direção para a esquerda, e uma direção para a direita.
[0048] Com referência ao primeiro aspecto, em algumas implantações do primeiro aspecto, informações sobre a faixa de extensão do campo de vetor de movimento temporal da CTU são portadas em pelo menos um de um conjunto de parâmetros de sequência SPS, um conjunto de parâmetros de imagem PPS, e um campo de cabeçalho.
[0049] Opcionalmente, a faixa de extensão do campo de vetor de movimento temporal da CTU é pré-estabelecida.
[0050] Com referência ao primeiro aspecto, em algumas implantações do primeiro aspecto, a determinação de um vetor de movimento do sub-bloco a ser processado com base em um vetor de movimento do sub-bloco colocalizado inclui: escalonar o vetor de movimento do sub-bloco colocalizado com base em uma contagem de ordem de imagem POC de uma imagem incluindo o sub-bloco a ser processado, uma POC de uma imagem de referência alvo da imagem incluindo o sub-bloco a ser processado, uma POC da imagem alvo, e uma POC de uma imagem de referência alvo da imagem alvo, para se obter o vetor de movimento do sub-bloco a ser processado.
[0051] Opcionalmente, o escalonamento do vetor de movimento do sub-bloco colocalizado com base em uma contagem de ordem de imagem POC de uma imagem incluindo o sub-bloco a ser processado, uma POC de uma imagem de referência alvo da imagem incluindo o sub-bloco a ser processado, uma POC da imagem alvo, e uma POC de uma imagem de referência alvo da imagem alvo, para se obter o vetor de movimento do sub-bloco a ser processado inclui: determinar uma diferença entre a contagem de ordem de imagem POC da imagem incluindo o sub-bloco a ser processado e a POC da imagem de referência alvo da imagem incluindo o sub-bloco a ser processado como uma primeira diferença; determinar uma diferença entre a POC da imagem alvo e a POC da imagem de referência alvo da imagem alvo como uma segunda diferença; e escalonar o vetor de movimento do sub-bloco colocalizado com base em uma razão da primeira diferença para a segunda diferença, para se obter o vetor de movimento do sub-bloco a ser processado.
[0052] Opcionalmente, o escalonamento do vetor de movimento do sub-bloco colocalizado com base em uma razão da primeira diferença para a segunda diferença, para se obter o vetor de movimento do sub-bloco a ser processado inclui: determinar a razão da primeira diferença para a segunda diferença como uma primeira razão; e determinar um produto da primeira razão e o vetor de movimento do sub-bloco colocalizado como o vetor de movimento do sub-bloco a ser processado.
[0053] Com referência ao primeiro aspecto, em algumas implantações do primeiro aspecto, o vetor de movimento do sub-bloco a ser processado é obtido de acordo com a seguinte fórmula:
[0054] No presente documento, P1 representa a POC da imagem incluindo o sub-bloco a ser processado, P2 representa a POC da imagem de referência alvo da imagem incluindo o sub-bloco a ser processado, P3 representa a POC da imagem alvo, P4 representa a POC da imagem de referência alvo da imagem alvo, MV representa o vetor de movimento do sub- bloco colocalizado, e MVs representa o vetor de movimento do sub-bloco a ser processado.
[0055] Opcionalmente, MV é decomposto em um vetor de movimento de direção horizontal MVx e um vetor de movimento de direção vertical MV,, e um vetor de movimento de direção horizontal MVsx e um vetor de movimento de direção vertical MVs, são separadamente obtidos através de cálculo de acordo com a supracitada fórmula.
[0056] De acordo com um segundo aspecto, um método de obtenção de vetor de movimento é fornecido. O método inclui: determinar um vetor de deslocamento alvo de um bloco a ser processado e informações de identificador de uma imagem alvo, onde o bloco a ser processado inclui pelo menos um sub- bloco a ser processado; determinar, com base em uma localização do sub-bloco a ser processado e no vetor de deslocamento alvo, uma localização inicial de um sub-bloco colocalizado que é do sub-bloco a ser processado e que está na imagem alvo; determinar a localização inicial como uma localização alvo quando a localização inicial está dentro de uma área pré-estabelecida da imagem alvo; ou determinar uma localização que está na área pré-estabelecida e que está mais próxima da localização inicial como uma localização alvo quando a localização inicial está fora da área pré-estabelecida; e determinar um vetor de movimento do sub-bloco a ser processado com base em um vetor de movimento correspondente à localização alvo.
[0057] Deve ser entendido que o bloco a ser processado pode incluir o pelo menos um sub-bloco a ser processado, e a obtenção de um vetor de movimento do bloco a ser processado pode ser decomposta em obtenção de um vetor de movimento de cada sub-bloco a ser processado. Além disso, o bloco a ser processado pode ser uma CU, e o sub-bloco a ser processado é uma sub- Cu.
[0058] Um bloco que está na imagem alvo e que corresponde ao bloco a ser processado pode ser referido como um bloco correspondente, o bloco correspondente inclui pelo menos um sub-bloco colocalizado, e o vetor de deslocamento alvo é usado para determinar o (uma localização do) bloco correspondente que é do bloco a ser processado e que está na imagem alvo.
[0059] Deve ser entendido que o vetor de deslocamento alvo é diferente de um vetor de movimento comum. O vetor de deslocamento alvo no presente documento é usado para determinar o bloco correspondente. No entanto, um vetor de movimento é normalmente usado para determinar um bloco de predição de um bloco de imagem, de modo a se obter um valor de amostra predito do bloco de imagem. Além disso, o vetor de deslocamento pode também ser referido como um vetor temporal (temporal vector), e a imagem alvo pode também ser referida como uma imagem correspondente.
[0060] Deve ser entendido que a localização correspondente é relativa à área pré-estabelecida. Quando um único ponto é usado como uma unidade de composição básica da área pré-estabelecida, a localização correspondente também existe em uma forma de um único ponto. Quando um conjunto de pontos é usado como uma unidade de composição básica da área pré-estabelecida, a localização correspondente também existe em uma forma de um conjunto de pontos. Correspondentemente, uma distância entre uma localização na área pré-estabelecida e a localização correspondente é uma distância entre um único ponto na área pré-estabelecida e a localização correspondente ou uma distância entre um conjunto de pontos na área pré- estabelecida e um conjunto de pontos da localização correspondente.
[0061] Nesse pedido, a localização alvo dentro da área pré- estabelecida é encontrada com base na localização inicial e na área pré- estabelecida da imagem alvo, e então o vetor de movimento do sub-bloco a ser processado é determinado com base em um vetor de movimento em uma faixa específica da imagem alvo. Portanto, a largura de banda de memória e uma quantidade de vezes de leitura de memória podem ser reduzidas por pré-leitura de um campo de vetor de movimento temporal na faixa específica da imagem alvo.
[0062] Opcionalmente, antes da determinação de um vetor de movimento do sub-bloco a ser processado com base em um vetor de movimento do sub-bloco colocalizado, o método adicionalmente inclui: obter um vetor de movimento de uma amostra na área pré-estabelecida na imagem alvo, onde a área pré-estabelecida é uma área na qual o sub-bloco colocalizado do sub-bloco a ser processado pode aparecer.
[0063] Nesse pedido, porque uma área na qual o sub-bloco colocalizado aparece na imagem alvo é determinada, uma quantidade de vezes de leitura de um vetor de movimento a partir da imagem alvo pode ser reduzida por pré-obtenção de um vetor de movimento em uma área específica na imagem alvo. Em outras palavras, uma quantidade de vezes de leitura de memória é reduzida. Além disso, porque o vetor de movimento é obtido somente na área específica na imagem alvo, a largura de banda de memória pode ser reduzida.
[0064] Com referência ao segundo aspecto, em algumas implantações do segundo aspecto, a área pré-estabelecida é determinada com base em uma localização e um tamanho de uma unidade de árvore de codificação CTU na qual o bloco a ser processado está localizado, um tamanho da imagem alvo, e uma faixa de extensão pré-estabelecida de um campo de vetor de movimento temporal da CTU.
[0065] Opcionalmente, a área pré-estabelecida pode ser representada usando-se a faixa de valores de coordenada horizontal e uma faixa de valores de coordenada vertical.
[0066] Com * referência ao segundo aspecto, em algumas implantações do segundo aspecto, a faixa de extensão do campo de vetor de movimento temporal da CTU inclui faixas de extensão do campo de vetor de movimento temporal da CTU em uma primeira direção e uma segunda direção.
[0067] Opcionalmente, a primeira direção é uma direção horizontal, e a segunda direção é uma direção vertical.
[0068] Opcionalmente, quando a primeira direção é a direção horizontal, e a segunda direção é a direção vertical, a faixa de extensão do campo de vetor de movimento temporal da CTU inclui faixas de extensão do campo de vetor de movimento temporal da CTU em uma direção ascendente, uma direção descendente, uma direção para a esquerda, e uma direção para a direita.
[0069] Com referência ao segundo aspecto, em algumas implantações do segundo aspecto, informações sobre a faixa de extensão do campo de vetor de movimento temporal da CTU são portadas em pelo menos um dentre um conjunto de parâmetros de sequência SPS, um conjunto de parâmetros de imagem PPS, e um campo de cabeçalho.
[0070] Opcionalmente, a faixa de extensão do campo de vetor de movimento temporal da CTU é pré-estabelecida.
[0071] Com referência ao segundo aspecto, em algumas implantações do segundo aspecto, a determinação de um vetor de movimento do sub-bloco a ser processado com base em um vetor de movimento correspondente à localização alvo inclui: escalonar o vetor de movimento correspondente à localização alvo com base em uma contagem de ordem de imagem POC de uma imagem incluindo o sub-bloco a ser processado, uma POC de uma imagem de referência alvo da imagem incluindo o sub-bloco a ser processado, uma POC da imagem alvo, e uma POC de uma imagem de referência alvo da imagem alvo, para se obter o vetor de movimento do sub- bloco a ser processado.
[0072] Opcionalmente, o escalonamento do vetor de movimento correspondente à localização alvo com base em uma contagem de ordem de imagem POC de uma imagem incluindo o sub-bloco a ser processado, uma POC de uma imagem de referência alvo da imagem incluindo o sub-bloco a ser processado, uma POC da imagem alvo, e uma POC de uma imagem de referência alvo da imagem alvo, para se obter o vetor de movimento do sub- bloco a ser processado inclui: determinar uma diferença entre a contagem de ordem de imagem POC da imagem incluindo o sub-bloco a ser processado e a POC da imagem de referência alvo da imagem incluindo o sub-bloco a ser processado como uma terceira diferença; determinar uma diferença entre a POC da imagem alvo e a POC da imagem de referência alvo da imagem alvo como uma quarta diferença; e escalonar o vetor de movimento do sub-bloco colocalizado com base em uma razão da terceira diferença para a quarta diferença, para se obter o vetor de movimento do sub-bloco a ser processado.
[0073] Opcionalmente, o escalonamento do vetor de movimento do sub-bloco colocalizado com base em uma razão da terceira diferença para a quarta diferença, para se obter o vetor de movimento do sub-bloco a ser processado inclui: determinar a razão da terceira diferença para a quarta diferença como uma segunda razão; e determinar um produto da segunda razão e o vetor de movimento do sub-bloco colocalizado como o vetor de movimento do sub-bloco a ser processado.
[0074] Com referência ao segundo aspecto, em algumas implantações do segundo aspecto, o vetor de movimento do sub-bloco a ser processado é obtido de acordo com a seguinte fórmula: 107, = 2EE2% P3—-P4 .
[0075] No presente documento, P1 representa a POC da imagem incluindo o sub-bloco a ser processado, P2 representa a POC da imagem de referência alvo da imagem incluindo o sub-bloco a ser processado, P3 representa a POC da imagem alvo, P4 representa a POC da imagem de referência alvo da imagem alvo, MV representa o vetor de movimento correspondente à localização alvo, e MV; representa o vetor de movimento do sub-bloco a ser processado.
[0076] Opcionalmente, MV é decomposto em um vetor de movimento de direção horizontal MVx e um vetor de movimento de direção vertical MV,, e um vetor de movimento de direção horizontal MVsx e um vetor de movimento de direção vertical MVs, são separadamente obtidos através de cálculo de acordo com a supracitada fórmula.
[0077] De acordo com um terceiro aspecto, um aparelho de obtenção de vetor de movimento é fornecido. O aparelho inclui módulos configurados para realizar o método em qualquer implantação do primeiro aspecto ou do segundo aspecto.
[0078] De acordo com um quarto aspecto, um aparelho de obtenção de vetor de movimento é fornecido, incluindo uma memória não volátil e um processador que são acoplados entre si. O processador invoca código de programa armazenado na memória para realizar algumas das ou todas as etapas do método em qualquer implantação do primeiro aspecto ou do segundo aspecto.
[0079] De acordo com um quinto aspecto, uma mídia de armazenamento legível por computador é fornecida. A mídia de armazenamento legível por computador armazena código de programa, e o código de programa inclui uma instrução usada para realizar algumas ou todas as etapas do método em qualquer implantação do primeiro aspecto ou do segundo aspecto.
[0080] De acordo com um sexto aspecto, um produto de programa de computador é fornecido. Quando o produto de programa de computador é rodado em um computador, o computador é habilitado a executar uma instrução de algumas das ou de todas as etapas do método em qualquer implantação do primeiro aspecto ou do segundo aspecto.
BREVE DESCRIÇÃO DOS DESENHOS
[0081] A Figura 1 é um diagrama esquemático de um processo de codificação de vídeo;
[0082] A Figura 2 é um diagrama esquemático de um processo de decodificação de vídeo;
[0083] A Figura 3 é um fluxograma esquemático de um método de obtenção de vetor de movimento de acordo com uma modalidade desse pedido;
[0084] A Figura 4 é um diagrama esquemático de blocos vizinhos de um bloco a ser processado;
[0085] A Figura 5 é um diagrama esquemático de um sub-bloco a ser processado incluído em uma imagem atual e um sub-bloco colocalizado em uma imagem alvo;
[0086] A Figura 6 é um diagrama esquemático de um vetor de movimento de um sub-bloco a ser processado e um vetor de movimento de um sub-bloco colocalizado;
[0087] A Figura 7 é um diagrama esquemático de uma faixa de extensão de um campo de vetor de movimento temporal de uma CTU;
[0088] A Figura 8 é um diagrama esquemático de faixas de extensão de campos de vetor de movimento temporal de uma CTU atual e uma CTU à esquerda;
[0089] A Figura 9 é um fluxograma esquemático de um método de obtenção de vetor de movimento de acordo com uma modalidade desse pedido;
[0090] A Figura 10 é um diagrama esquemático de determinar uma localização inicial de um sub-bloco a ser processado;
[0091] A Figura 11 é um diagrama esquemático de determinar uma localização alvo;
[0092] A Figura 12 é um diagrama esquemático de um vetor de movimento de um sub-bloco a ser processado e um vetor de movimento de uma localização alvo;
[0093] A Figura 13 é um fluxograma de um método de obtenção de vetor de movimento de acordo com uma modalidade desse pedido;
[0094] A Figura 14 é um fluxograma de um método de obtenção de vetor de movimento de acordo com uma modalidade desse pedido;
[0095] A Figura 15 é um fluxograma de um método de obtenção de vetor de movimento de acordo com uma modalidade desse pedido;
[0096] A Figura 16 é um diagrama esquemático de determinar um sub- bloco colocalizado de um sub-bloco a ser processado em uma solução existente;
[0097] A Figura 17 é um diagrama esquemático de determinar um sub- bloco colocalizado de um sub-bloco a ser processado de acordo com esse pedido;
[0098] A Figura 18 mostra um processo de construção de lista de informações de candidato em um modo de fusão existente;
[0099] A Figura 19 mostra um processo de construção de lista de informações de candidato em um modo de fusão para o qual uma tecnologia SMVP é aplicada;
[0100] A Figura 20 é um diagrama de blocos esquemático de um aparelho de obtenção de vetor de movimento de acordo com uma modalidade desse pedido;
[0101] A Figura 21 é um diagrama de blocos esquemático de um aparelho de obtenção de vetor de movimento de acordo com uma modalidade desse pedido;
[0102] A Figura 22 é um diagrama de blocos esquemático de um codificador de vídeo de acordo com uma modalidade desse pedido;
[0103] A Figura 23 é um diagrama de blocos esquemático de um decodificador de vídeo de acordo com uma modalidade desse pedido;
[0104] A Figura 24 é um diagrama de blocos esquemático de um sistema de transmissão de vídeo de acordo com uma modalidade desse pedido;
[0105] A Figura 25 é um diagrama de blocos esquemático de um aparelho de codificação e decodificação de vídeo de acordo com uma modalidade desse pedido; e
[0106] A Figura 26 é um diagrama de blocos esquemático de um sistema de codificação e decodificação de vídeo de acordo com uma modalidade desse pedido.
DESCRIÇÃO DE MODALIDADES
[0107] A seguir se descreve soluções técnicas desse pedido com referência aos desenhos anexos.
[0108] Para melhor entender um processo de um método de obtenção de vetor de movimento nas modalidades desse pedido, a seguir se descreve brevemente primeiramente um processo inteiro de codificação e decodificação de vídeo com referência à Figura 1 e à Figura 2.
[0109] A Figura 1 é um diagrama esquemático de um processo de codificação de vídeo.
[0110] Conforme mostrado na Figura 1, quando predição é realizada em um bloco atual de imagem em um quadro atual Fn, ou predição intra ou predição inter pode ser realizada. Especificamente, codificação intra ou codificação inter pode ser selecionada com base em um tipo do quadro atual Fn. Por exemplo, quando o quadro atual Fn é um quadro |, a predição intra é usada; ou quando o quadro atual Fn é um quadro P ou um quadro B, a predição inter é usada. Quando a predição intra é usada, um valor de amostra de uma amostra no bloco atual de imagem pode ser predito usando-se um valor de amostra de uma amostra em uma área reconstruída no quadro atual Fn. Quando a predição inter é usada, um valor de amostra de uma amostra no bloco atual de imagem pode ser predito usando-se um valor de amostra de uma amostra em um bloco de referência que está em uma imagem de referência F'n1 e que pareia o bloco atual de imagem.
[0111] Depois que um bloco de predição do bloco atual de imagem é obtido através da predição inter ou da predição intra, uma diferença entre o valor de amostra da amostra no bloco atual de imagem e um valor de amostra de uma amostra no bloco de predição é calculado para se obter informações residuais, e transformada, quantização, e codificação de entropia são realizadas nas informações residuais para se obter um fluxo de bits codificados. Além disso, no processo de codificação, superposição precisa adicionalmente ser realizada em informações residuais do quadro atual Fn e informações preditas do quadro atual Fn, e uma operação de filtração é realizada, para se obter um quadro reconstruído F'n do quadro atual. O quadro reconstruído F'n é usado como uma imagem de referência para codificação subsequente.
[0112] A Figura 2 é um diagrama esquemático de um processo de decodificação de vídeo.
[0113] O processo de decodificação de vídeo mostrado na Figura 2 é equivalente a um processo inverso ao processo de codificação de vídeo mostrado na Figura 1. Durante a decodificação, decodificação de entropia, desquantização, e transformada inversa são realizadas para se obter informações residuais, e se predição intra ou predição inter é ou não realizada em um bloco atual de imagem é determinado com base em um fluxo de bits decodificado. Se predição intra é realizada, informações preditas são construídas usando-se um valor de amostra de uma amostra em uma área reconstruída em um quadro atual de acordo com um método de predição intra. Se predição inter é realizada, informações de movimento precisam ser obtidas através de análise, um bloco de referência em uma imagem reconstruída é determinado com base nas informações de movimento obtidas através de análise, um valor de amostra de uma amostra no bloco de referência é usado como informações preditas, então superposição é realizada nas informações preditas e nas informações residuais, e uma operação de filtração é realizada para se obter informações reconstruídas.
[0114] O método de obtenção de vetor de movimento nas modalidades desse pedido pode ser aplicado tanto para o processo de codificação quanto para o processo de decodificação. Em outras palavras, tanto um lado de codificador quanto um lado de decodificador podem realizar o método de obtenção de vetor de movimento nas modalidades desse pedido. Especificamente, o método de obtenção de vetor de movimento nas modalidades desse pedido pode ser aplicado aos processos de predição inter mostrados na Figura 1 e na Figura 2.
[0115] Em HEVC, existem dois modos de predição inter: um modo de predição de vetor de movimento avançado (advanced motion vector prediction, AMVP) e um modo de fusão. O método de obtenção de vetor de movimento nas modalidades desse pedido pode ser aplicado ao modo de fusão de predição inter.
[0116] A Figura 3 é um fluxograma esquemático de um método de obtenção de vetor de movimento de acordo com uma modalidade desse pedido. O método mostrado na Figura 3 pode ser realizado por um aparelho de codificação e decodificação de vídeo, um codec de vídeo, um sistema de codificação e decodificação de vídeo, e um outro dispositivo tendo uma função de codificação e decodificação de vídeo.
[0117] O método mostrado na Figura 3 inclui da etapa 110 até a etapa
140. A seguir se descreve da etapa 110 à etapa 140 em detalhes.
[0118] 110: Determinar uma primeira faixa de valores e uma segunda faixa de valores.
[0119] Opcionalmente, a primeira faixa de valores é uma faixa de valores incluindo um primeiro limiar e um segundo limiar, e a segunda faixa de valores é uma faixa de valores incluindo um terceiro limiar e um quarto limiar. O primeiro limiar é menor que o segundo limiar, e o terceiro limiar é menor que o quarto limiar.
[0120] Deve ser entendido que, a primeira faixa de valores e a segunda faixa de valores podem, cada uma delas, ser qualquer uma dentre uma faixa aberta, uma faixa fechada, e uma faixa metade aberta e metade fechada.
[0121] A forma de representação específica da primeira faixa de valores pode ser (o primeiro limiar, o segundo limiar), (o primeiro limiar, o segundo limiar], ou [o primeiro limiar, o segundo limiar].
[0122] A forma de representação específica da segunda faixa de valores pode ser (o terceiro limiar, o quarto limiar), (o terceiro limiar, o quarto limiar], ou [o terceiro limiar, o quarto limiar].
[0123] 120: Determinar um vetor de deslocamento alvo de um bloco a ser processado e informações de identificador de uma imagem alvo.
[0124] O bloco a ser processado inclui pelo menos um sub-bloco a ser processado, um valor de um componente do vetor de deslocamento alvo em uma primeira direção cai dentro da primeira faixa de valores, um valor de um componente do vetor de deslocamento alvo em uma segunda direção cai dentro da segunda faixa de valores, e a primeira direção e a segunda direção estão em uma relação ortogonal.
[0125] Um bloco (de imagem) que está na imagem alvo e que corresponde ao bloco a ser processado pode ser referido como um bloco correspondente, o bloco correspondente inclui pelo menos um sub-bloco colocalizado, e o vetor de deslocamento alvo é usado para determinar o (uma localização do) bloco correspondente que é do bloco a ser processado e que está na imagem alvo. O vetor de deslocamento alvo é diferente de um vetor de movimento comum. O vetor de deslocamento alvo é usado para determinar o bloco correspondente. No entanto, um vetor de movimento é normalmente usado para determinar um bloco de predição de um bloco de imagem, de modo a se obter um valor de amostra predito do bloco de imagem. Além disso, o vetor de deslocamento pode também ser referido como um vetor temporal, e a imagem alvo pode também ser referida como uma imagem correspondente.
[0126] As informações de identificador da imagem alvo podem ser especificamente uma contagem de ordem de imagem (picture order count, POC) de um quadro de imagem na sequência de imagem, ou podem ser informações de índice ou um valor índice da imagem alvo.
[0127] Deve ser entendido que a POC é usada para indicar uma localização efetiva da imagem em uma sequência de imagem original. Para distinguir de uma ordem de codificação/uma ordem de decodificação, a POC pode também ser referida como uma ordem de exibição ou uma ordem de reprodução.
[0128] Deve ser entendido que o pelo menos um sub-bloco a ser processado pode ser obtido dividindo-se o bloco a ser processado, e o pelo menos um sub-bloco a ser processado pode formar o bloco a ser processado. Quando o bloco a ser processado é uma CU, a CU pode incluir pelo menos uma sub- CU. Além disso, a primeira direção e a segunda direção podem ser respectivamente uma direção horizontal e uma direção vertical.
[0129] Quando uma forma da primeira faixa de valores varia, existem as seguintes formas específicas nas quais o valor do componente do vetor de deslocamento alvo na primeira direção cai dentro da primeira faixa de valores:
[0130] (1) quando a primeira faixa de valores é (o primeiro limiar, o segundo limiar), o valor do componente do vetor de deslocamento alvo na primeira direção é maior que o primeiro limiar e menor que o segundo limiar.
[0131] (2) quando a primeira faixa de valores é (o primeiro limiar, o segundo limiar], o valor do componente do vetor de deslocamento alvo na primeira direção é maior que o primeiro limiar e menor ou igual ao segundo limiar.
[0132] (3) quando a primeira faixa de valores é [o primeiro limiar, o segundo limiar], o valor do componente do vetor de deslocamento alvo na primeira direção é maior ou igual ao primeiro limiar e menor ou igual ao segundo limiar.
[0133] Similarmente, quando uma forma da segunda faixa de valores varia, existem as seguintes formas específicas nas quais o valor do componente do vetor de deslocamento alvo na segunda direção cai dentro da segunda faixa de valores:
[0134] (4) quando a segunda faixa de valores é (o terceiro limiar, o quarto limiar), o valor do componente do vetor de deslocamento alvo na segunda direção é maior que o terceiro limiar e menor que o quarto limiar.
[0135] (5) quando a segunda faixa de valores é (o terceiro limiar, o quarto limiar], o valor do componente do vetor de deslocamento alvo na segunda direção é maior que o terceiro limiar e menor ou igual ao quarto limiar.
[0136] (6) quando a segunda faixa de valores é [o terceiro limiar, o quarto limiar], o valor do componente do vetor de deslocamento alvo na segunda direção é maior ou igual ao terceiro limiar e menor ou igual ao quarto limiar.
[0137] Na etapa 120, o vetor de deslocamento alvo pode ser determinado em uma pluralidade de maneiras. Especificamente, um vetor de deslocamento inicial (o qual pode também ser referido como um vetor de deslocamento de partida) pode ser determinado primeiro, e então valores de componentes do vetor de deslocamento inicial na primeira direção e na segunda direção são respectivamente limitados à primeira faixa de valores e à segunda faixa de valores, para se obter o vetor de deslocamento alvo final. Alternativamente, um vetor de movimento cujos valores do componente na primeira direção e na segunda direção respectivamente caem dentro da primeira faixa de valores e da segunda faixa de valores podem ser diretamente selecionados a partir de uma pluralidade de vetores de movimento como o vetor de deslocamento alvo. A seguir se descreve em detalhes as duas maneiras de determinar o vetor de deslocamento alvo.
[0138] Uma primeira maneira inclui: determinar o vetor de deslocamento inicial, e limitar os valores dos componentes do vetor de deslocamento inicial na primeira direção e na segunda direção, para se obter o vetor de deslocamento alvo.
[0139] Especificamente, na primeira maneira, a determinação do vetor de deslocamento alvo inclui da etapa 1201 à etapa 1203. A seguir se descreve da etapa 1201 à etapa 1203 em detalhes.
[0140] 1201: Determinar um vetor de deslocamento inicial do bloco a ser processado.
[0141] Opcionalmente, um vetor de movimento de um bloco espacialmente pré-estabelecido vizinho do bloco a ser processado é determinado como o vetor de deslocamento inicial.
[0142] Especificamente, um vetor de movimento do primeiro bloco vizinho espacialmente pré-estabelecido obtido disponível pode ser determinado como o vetor de deslocamento inicial em uma ordem específica.
[0143] Por exemplo, conforme mostrado na Figura 4, Ao, A1, Bo, Bi, e B2 são blocos espacialmente vizinhos do bloco a ser processado, T é um bloco temporalmente vizinho do bloco a ser processado, e C é um bloco de imagem que está em uma imagem de referência do bloco a ser processado e que está dentro de uma mesma localização que o bloco a ser processado. Quando o vetor de deslocamento inicial do bloco a ser processado é determinado, um vetor de movimento do primeiro bloco vizinho encontrado disponível pode ser determinado como o vetor de deslocamento inicial em uma ordem de A1, B1, Bo e Ao.
[0144] O vetor de movimento do primeiro bloco espacialmente vizinho disponível é diretamente determinado como o vetor de deslocamento inicial, de modo que um processo de determinar o vetor de deslocamento inicial pode ser simplificado.
[0145] 1202: Quando um valor de um componente do vetor de deslocamento inicial na primeira direção cai dentro da primeira faixa de valores, e um valor de um componente do vetor de deslocamento inicial na segunda direção cai dentro da segunda faixa de valores, determinar o vetor de deslocamento inicial como o vetor de deslocamento alvo.
[0146] Por exemplo, quando a primeira faixa de valores é (o primeiro limiar, o segundo limiar) e a segunda faixa de valores é (o terceiro limiar, o quarto limiar), se o valor do componente do vetor de deslocamento inicial na primeira direção é maior que o primeiro limiar e menor que o segundo limiar e o valor do componente do vetor de deslocamento inicial na segunda direção é maior que o terceiro limiar e menor que o quarto limiar, o vetor de deslocamento inicial pode ser diretamente determinado como o vetor de deslocamento alvo.
[0147] 1203: Quando um valor de um componente do vetor de deslocamento inicial na primeira direção cai fora da primeira faixa de valores e/ou um valor de um componente do vetor de deslocamento inicial na segunda direção cai fora da segunda faixa de valores, realizar recorte em uma parte que é do valor do componente do vetor de deslocamento inicial na primeira direção e que excede a primeira faixa de valores e/ou uma parte que é do valor do componente do vetor de deslocamento inicial na segunda direção e que excede a segunda faixa de valores, e determinar um vetor de deslocamento inicial obtido depois do recorte como o vetor de deslocamento alvo.
[0148] Valores de componentes que são do vetor de deslocamento inicial obtido depois do recorte na etapa 1203 e que estão na primeira direção e na segunda direção respectivamente caem dentro da primeira faixa de valores e da segunda faixa de valores.
[0149] Especificamente, quando o valor do componente do vetor de deslocamento inicial na primeira direção cai fora da primeira faixa de valores e/ou o valor do componente do vetor de deslocamento inicial na segunda direção cai fora da segunda faixa de valores, processamento no vetor de deslocamento inicial inclui do Caso 1 ao Caso 3. A seguir se descreve os três casos em detalhes.
[0150] Caso 1:
[0151] Quando o valor do componente do vetor de deslocamento inicial na primeira direção cai dentro da primeira faixa de valores, e o valor do componente do vetor de deslocamento inicial na segunda direção excede a segunda faixa de valores, recorte é realizado na parte que é do componente do vetor de deslocamento inicial na segunda direção e que excede a segunda faixa de valores, e um vetor de deslocamento inicial obtido depois do recorte é determinado como o vetor de deslocamento alvo.
[0152] Por exemplo, a primeira faixa de valores é [o primeiro limiar, o segundo limiar], a segunda faixa de valores é [o terceiro limiar, o quarto limiar], e os componentes do vetor de deslocamento inicial na primeira direção e na segunda direção são um primeiro componente e um segundo componente. O primeiro componente é menor que o segundo limiar e maior que o primeiro limiar, e o segundo componente é maior que o quarto limiar. Nesse caso, o segundo componente do vetor de deslocamento inicial cai fora da faixa de valores limitada por [o terceiro limiar, o quarto limiar], e recorte (o qual pode ser alternativamente referido como truncamento) precisa ser realizado em uma parte que é de um valor do segundo componente e que excede o quarto limiar, de modo que um segundo componente obtido depois do recorte seja maior ou igual ao terceiro limiar e menor ou igual ao quarto limiar.
[0153] Caso 2:
[0154] Quando o valor do componente do vetor de deslocamento inicial na primeira direção excede a primeira faixa de valores, e o valor do componente do vetor de deslocamento inicial na segunda direção cai dentro da segunda faixa de valores, recorte é realizado na parte que é do componente do vetor de deslocamento inicial na primeira direção e que excede a primeira faixa de valores, e um vetor de deslocamento inicial obtido depois do recorte é determinado como o vetor de deslocamento alvo.
[0155] Por exemplo, a primeira faixa de valores é [o primeiro limiar, o segundo limiar], a segunda faixa de valores é [o terceiro limiar, o quarto limiar], e os componentes do vetor de deslocamento inicial na primeira direção e na segunda direção são um primeiro componente e um segundo componente. O segundo componente é maior que o terceiro limiar e menor que o quarto limiar, e o primeiro componente é menor que o primeiro limiar. Nesse caso, o primeiro componente do vetor de deslocamento inicial cai fora da faixa de valores limitada por [o primeiro limiar, o segundo limiar], e um valor do primeiro componente precisa ser recortado na faixa de valores limitada por [o primeiro limiar, o segundo limiar], isto é, uma diferença entre o primeiro limiar e o primeiro componente precisa ser adicionada ao primeiro componente, de modo que um primeiro componente obtido depois do recorte caia dentro da primeira faixa de valores.
[0156] Caso 3:
[0157] Quando o valor do componente do vetor de deslocamento inicial na primeira direção excede a primeira faixa de valores, e o valor do componente do vetor de deslocamento inicial na segunda direção excede a segunda faixa de valores, recorte é realizado na parte que é do componente do
3U7T7T vetor de deslocamento inicial na primeira direção e que excede a primeira faixa de valores, recorte é realizado na parte que é do componente do vetor de deslocamento inicial na segunda direção e que excede a segunda faixa de valores, e um vetor de deslocamento inicial obtido depois do recorte é determinado como o vetor de deslocamento alvo.
[0158] Por exemplo, a primeira faixa de valores é [o primeiro limiar, o segundo limiar], a segunda faixa de valores é [o terceiro limiar, o quarto limiar], e os componentes do vetor de deslocamento inicial na primeira direção e na segunda direção são um primeiro componente e um segundo componente. O primeiro componente é maior que o segundo limiar, e o segundo componente é maior que o quarto limiar. Nesse caso, o primeiro componente do vetor de deslocamento inicial cai fora da faixa de valores limitada por [o primeiro limiar, o segundo limiar], o segundo componente do vetor de deslocamento inicial cai fora da faixa de valores limitada por [o terceiro limiar, o quarto limiar], recorte precisa ser realizado em uma parte que é de um valor do primeiro componente e que excede o segundo limiar, e recorte precisa ser realizado em uma parte que é de um valor do segundo componente e que excede o quarto limiar, de modo que um valor de um primeiro componente obtido depois do recorte caia dentro da faixa [o primeiro limiar, o segundo limiar], e um valor de um segundo componente obtido depois do recorte caia dentro da faixa [o terceiro limiar, o quarto limiar].
[0159] Uma segunda maneira inclui: determinar, como o vetor de deslocamento alvo, um vetor de movimento que está em vetores de movimento de blocos espacialmente vizinhos do bloco a ser processado e cujos valores do componente na primeira direção e na segunda direção atendem uma exigência.
[0160] Especificamente, na segunda maneira, a determinação do vetor de deslocamento alvo inclui a etapa 1204 e a etapa 1205. A seguir se descreve a etapa 1204 e a etapa 1205 em detalhes.
[0161] 1204: Determinar um bloco espacialmente vizinho alvo em blocos espacialmente pré-estabelecidos vizinhos do bloco a ser processado,
onde um valor de um componente de um vetor de movimento do bloco espacialmente vizinho alvo na primeira direção cai dentro da primeira faixa de valores, e um valor de um componente do vetor de movimento do bloco espacialmente vizinho alvo na segunda direção cai dentro da segunda faixa de valores.
[0162] Especificamente, na etapa 1204, os vetores de movimento dos blocos espacialmente vizinhos do bloco a ser processado podem ser obtidos em uma ordem específica, então se valores do componente do vetores de movimento dos blocos espacialmente vizinhos na primeira direção e na segunda direção respectivamente caem ou não dentro da primeira faixa de valores e da segunda faixa de valores é determinado, e um vetor de movimento cujos valores do componente na primeira direção e na segunda direção respectivamente caem dentro da primeira faixa de valores e da segunda faixa de valores é determinado como o vetor de deslocamento alvo.
[0163] 1205: Usar o vetor de movimento do bloco espacialmente vizinho alvo como o vetor de deslocamento alvo.
[0164] Por exemplo, conforme mostrado na Figura 4, um vetor de movimento do primeiro bloco vizinho disponível pode ser encontrado em uma ordem de A', B1, Bo e Ao. Então, se valores do componente do vetor de movimento atendem ou não uma exigência (a qual é de que valores do componente na primeira direção e na segunda direção respectivamente caem dentro da primeira faixa de valores e da segunda faixa de valores) é determinado. Se o vetor de movimento atende a exigência, o vetor de movimento é determinado como o vetor de deslocamento alvo. Se o vetor de movimento não atende a exigência, um vetor de movimento de um bloco vizinho disponível seguinte continua a ser buscado na ordem de As, B1, Bo e Ao. Então, se a exigência é ou não atendida é determinado, até que um vetor de movimento que atende a exigência é encontrado.
[0165] Deve ser entendido que o vetor de deslocamento alvo usado na etapa 120 pode alternativamente ser um vetor de deslocamento zero. Nesse caso, um bloco de imagem que está na imagem alvo e que está dentro de uma mesma localização que o bloco a ser processado é o bloco correspondente que é do bloco a ser processado e que está na imagem alvo.
[0166] Além disso, quando nenhum vetor de deslocamento alvo que atende a exigência pode ser encontrado, uma tecnologia ATMVP pode alternativamente não ser usada, mas uma outra tecnologia é usada para se obter um vetor de movimento do sub-bloco a ser processado.
[0167] 130: Determinar, na imagem alvo com base em uma localização do sub-bloco a ser processado e no vetor de deslocamento alvo, um sub-bloco colocalizado do sub-bloco a ser processado.
[0168] Porque o vetor de deslocamento alvo aponta para o bloco correspondente que é do bloco a ser processado e que está na imagem alvo, o bloco correspondente pode ser primeiro obtido com base no vetor de deslocamento, e então o sub-bloco colocalizado tendo uma relação de localização relativa com o sub-bloco a ser processado é determinado na imagem alvo com base na localização do sub-bloco a ser processado (isso pode também ser entendido como que o sub-bloco colocalizado tendo a relação de localização relativa com o sub-bloco a ser processado é determinado no bloco correspondente).
[0169] Quando o sub-bloco colocalizado tendo a relação de localização relativa com o sub-bloco a ser processado é determinado no bloco correspondente, um sub-bloco que está no bloco correspondente e cuja localização relativa é igual à do sub-bloco a ser processado pode ser determinado como o sub-bloco colocalizado do sub-bloco a ser processado.
[0170] Por exemplo, conforme mostrado na Figura 5, uma imagem atual inclui um bloco a ser processado, e o bloco a ser processado inclui quatro sub-blocos. Um bloco correspondente que está em uma imagem alvo e que corresponde ao bloco a ser processado pode ser obtido com base em uma localização do bloco a ser processado e um vetor de deslocamento do bloco a ser processado. O bloco correspondente também inclui quatro sub-blocos. Um sub-bloco a ser processado está localizado no canto esquerdo superior do bloco a ser processado. Nesse caso, quando um sub-bloco colocalizado do sub-bloco a ser processado é determinado, um sub-bloco superior à esquerda do bloco correspondente pode ser determinado como o sub-bloco colocalizado do sub- bloco a ser processado.
[0171] 140: Determinar um vetor de movimento do sub-bloco a ser processado com base em um vetor de movimento do sub-bloco colocalizado.
[0172] Nesse pedido, porque o valor de componente do vetor de deslocamento alvo cai dentro de uma faixa de valores específica, o sub-bloco a ser processado determinado na imagem alvo com base no vetor de deslocamento alvo também cai dentro de uma faixa específica da imagem alvo. Portanto, a largura de banda de memória e uma quantidade de vezes de leitura de memória podem ser reduzidas por pré-leitura de um campo de vetor de movimento temporal na faixa específica da imagem alvo.
[0173] Opcionalmente, antes da etapa 140, o método mostrado na Figura 3 adicionalmente inclui: obter um vetor de movimento de uma amostra em uma área pré-estabelecida na imagem alvo, onde a área pré-estabelecida é uma área na qual o sub-bloco colocalizado do sub-bloco a ser processado pode aparecer.
[0174] Nesse pedido, porque uma área na qual o sub-bloco colocalizado aparece na imagem alvo é determinada, uma quantidade de vezes de leitura de um vetor de movimento a partir da imagem alvo pode ser reduzida por pré-obtenção de um vetor de movimento em uma área específica na imagem alvo. Em outras palavras, uma quantidade de vezes de leitura de memória é reduzida. Além disso, porque o vetor de movimento é obtido somente na área específica na imagem alvo, a largura de banda de memória pode ser reduzida.
[0175] Depois que o vetor de movimento do sub-bloco colocalizado é obtido, o vetor de movimento do sub-bloco a ser processado pode ser obtido escalonando-se o vetor de movimento do sub-bloco colocalizado.
[0176] Especificamente, a determinação de um vetor de movimento do sub-bloco a ser processado com base em um vetor de movimento do sub- bloco colocalizado inclui: escalonar o vetor de movimento do sub-bloco colocalizado com base em uma contagem de ordem de imagem (picture order count, POC) de uma imagem incluindo o sub-bloco a ser processado, uma POC de uma imagem de referência alvo da imagem incluindo o sub-bloco a ser processado, uma POC da imagem alvo, e uma POC de uma imagem de referência alvo da imagem alvo, para se obter o vetor de movimento do sub- bloco a ser processado.
[0177] Por exemplo, conforme mostrado na Figura 6, a imagem incluindo o sub-bloco a ser processado é um quadro de imagem 1, uma imagem de referência alvo do quadro de imagem 1 é um quadro de imagem 2, o quadro de imagem no qual a imagem alvo está localizada é um quadro de imagem 3, uma imagem de referência alvo do quadro de imagem 3 é um quadro de imagem 4, e o vetor de movimento do sub-bloco colocalizado é MV. Nesse caso, MV pode ser escalonado com base em POCs do quadro de imagem 1 para o quadro de imagem 4, para se obter o vetor de movimento do sub-bloco a ser processado.
[0178] Opcionalmente, o escalonamento do vetor de movimento do sub-bloco colocalizado com base em uma POC de uma imagem incluindo o sub- bloco a ser processado, uma POC de uma imagem de referência alvo da imagem incluindo o sub-bloco a ser processado, uma POC da imagem alvo, e uma POC de uma imagem de referência alvo da imagem alvo, para se obter o vetor de movimento do sub-bloco a ser processado inclui: determinar uma diferença entre a POC da imagem incluindo o sub-bloco a ser processado e a POC da imagem de referência alvo da imagem incluindo o sub-bloco a ser processado como uma primeira diferença; determinar uma diferença entre a POC da imagem alvo e a POC da imagem de referência alvo da imagem alvo como uma segunda diferença; e escalonar o vetor de movimento do sub-bloco colocalizado com base em uma razão da primeira diferença para a segunda diferença, para se obter o vetor de movimento do sub-bloco a ser processado.
[0179] Quando o vetor de movimento do sub-bloco colocalizado é escalonado com base na razão da primeira diferença para a segunda diferença, para se obter o vetor de movimento do sub-bloco a ser processado, especificamente, a razão da primeira diferença para a segunda diferença pode ser primeiro calculada para se obter uma primeira razão, e então um produto da primeira razão e o vetor de movimento do sub-bloco colocalizado é determinado como o vetor de movimento do sub-bloco a ser processado.
[0180] Especificamente, a Figura 6 é ainda usada como um exemplo. O vetor de movimento do sub-bloco a ser processado pode ser calculado de acordo com uma fórmula (1): -P2 MY. o mor MY (1)
[0181] No presente documento, Ms, é o vetor de movimento do sub- bloco a ser processado, MV é o vetor de movimento do sub-bloco colocalizado, P1 a P4 são as POCs do quadro de imagem 1 até o quadro de imagem 4, P1 a P2 representa a primeira diferença, e P3 a P4 representa a segunda diferença.
[0182] Opcionalmente, em uma modalidade, a determinação de uma primeira faixa de valores e uma segunda faixa de valores inclui: determinar a primeira faixa de valores e a segunda faixa de valores com base em uma localização e um tamanho do bloco a ser processado, uma localização e um tamanho de uma unidade de árvore de codificação CTU na qual o bloco a ser processado está localizado, e uma faixa de extensão pré-estabelecida de um campo de vetor de movimento temporal da CTU.
[0183] Deve ser entendido que a primeira faixa de valores e a segunda faixa de valores pode ser determinada por determinar um valor máximo e um valor mínimo disponível para o vetor de deslocamento alvo em cada uma dentre
37ITT a primeira direção e a segunda direção. A seguir se fornece descrições detalhadas de determinação da primeira faixa de valores e da segunda faixa de valores dessa maneira.
[0184] Especificamente, a determinação da primeira faixa de valores e da segunda faixa de valores inclui o seguinte processo:
[0185] (1) Determinar o primeiro limiar e o segundo limiar com base na localização e no tamanho do bloco a ser processado, a localização e o tamanho da unidade de árvore de codificação CTU na qual o bloco a ser processado está localizado, e a faixa de extensão pré-estabelecida do campo de vetor de movimento temporal da CTU.
[0186] (2) Determinar o terceiro limiar e o quarto limiar com base na localização e no tamanho do bloco a ser processado, a localização e o tamanho da unidade de árvore de codificação CTU na qual o bloco a ser processado está localizado, e a faixa de extensão pré-estabelecida do campo de vetor de movimento temporal da CTU.
[0187] (3) Obter a primeira faixa de valores com base no primeiro limiar e no segundo limiar.
[0188] (4) Obter a segunda faixa de valores com base no terceiro limiar e no quarto limiar.
[0189] O primeiro limiar é um valor mínimo disponível para o componente do vetor de deslocamento alvo na primeira direção, e o segundo limiar é um valor máximo disponível para o componente do vetor de deslocamento alvo na primeira direção. O terceiro limiar é um valor mínimo disponível para o componente do vetor de deslocamento alvo na segunda direção, e o quarto limiar é um valor máximo disponível para o componente do vetor de deslocamento alvo na segunda direção.
[0190] Opcionalmente, em uma modalidade, a faixa de extensão do campo de vetor de movimento temporal da CTU inclui faixas de extensão do campo de vetor de movimento temporal da CTU na primeira direção e na segunda direção.
[0191] A primeira direção e a segunda direção são duas direções em uma relação ortogonal.
[0192] Opcionalmente, a primeira direção pode ser uma direção horizontal, e a segunda direção pode ser uma direção vertical.
[0193] Deve ser entendido que, quando a primeira direção é a direção horizontal, e a segunda direção é a direção vertical, a faixa de extensão do campo de vetor de movimento temporal da CTU inclui valores de extensão do campo de vetor de movimento temporal da CTU em uma direção ascendente, uma direção descendente, uma direção para a esquerda, e uma direção para a direita.
[0194] Por exemplo, conforme mostrado na Figura 7, uma área cercada por uma linha tracejada e um retângulo no qual a CTU está localizada está na faixa de extensão do campo de vetor de movimento temporal da CTU, e os valores de extensão do campo de vetor de movimento temporal da CTU na direção ascendente, na direção descendente, na direção para a esquerda, e na direção para a direita são respectivamente U, B, L e R.
[0195] Quando U, B, L, e R são todos O, isso indica que um de extensão valor da CTU em cada direção é O. Nesse caso, um campo de vetor de movimento temporal de uma CTU atual é limitado a um campo de vetor de movimento temporal de uma CTU em uma localização correspondente.
[0196] Quando U e B são O, mas L ou R não é 0, um campo de vetor de movimento temporal obtido por uma CTU atual não pode cruzar uma fronteira superior ou a fronteira inferior da CTU, mas pode cruzar a fronteira esquerda e a fronteira direita da CTU. Conforme mostrado na Figura 8, um MVF da CTU atual e um MVF de uma CTU à esquerda podem ser estendidos para a esquerda e para a direita, mas não podem ser estendidos para cima ou para baixo. O campo de vetor de movimento temporal da CTU atual e o campo de vetor de movimento temporal da CTU à esquerda parcialmente se sobrepõem. Nesse caso, quando a CTU atual é processada, o campo de vetor de movimento temporal que foi lido pela CTU à esquerda da CTU atual pode ser parcialmente usado novamente através de deslizamento de janela.
[0197] Especificamente, a primeira faixa de valores e a segunda faixa de valores podem ser determinadas de acordo com uma fórmula (2) a uma fórmula (5): HorMin = CTUX —- CUX-L (2) HorMax = CTUX + CTUW- CUX- CUW+R (3) VerMin = CTUY — CUY-U (4) VerMax = CTUY + CTUH- CUY - CUH + B (5)
[0198] No presente documento, CUX e CUY respectivamente representam uma coordenada horizontal e uma coordenada vertical de uma amostra na parte esquerda superior do bloco a ser processado, CUW e CUH representam a largura e a altura do bloco a ser processado, CTUX e CTUY respectivamente representam uma coordenada horizontal e uma coordenada vertical da CTU na qual o bloco a ser processado está localizado, CTUW e CTUH são respectivamente a largura e a altura da CTU na qual o bloco a ser processado está localizado, U, B, L, e R respectivamente representam os valores de extensão da CTU na direção ascendente, na direção descendente, na direção para a esquerda, e na direção para a direita, HorMin e HorMax respectivamente representam o primeiro limiar e o segundo limiar, e VerMin e VerMax respectivamente representam o terceiro limiar e o quarto limiar.
[0199] Opcionalmente, informações sobre a faixa de extensão do campo de vetor de movimento temporal da CTU são portadas em pelo menos um dentre um conjunto de parâmetros de sequência SPS, um conjunto de parâmetros de imagem PPS, e um campo de cabeçalho.
[0200] Deve ser entendido que o SPS, o PPS, e o campo de cabeçalho cada podem indicar a faixa de extensão da CTU usando-se parâmetros portados (U, B/ LeR).
[0201] Opcionalmente, a faixa de extensão do campo de vetor de movimento temporal da CTU é pré-estabelecida. Nesse caso, a faixa de extensão do campo de vetor de movimento temporal da CTU pode ser diretamente gravada em um protocolo, e não precisa ser portada no SPS, no PPS, ou no campo de cabeçalho.
[0202] A Figura 9 é um fluxograma esquemático de um método de obtenção de vetor de movimento de acordo com uma modalidade desse pedido. O método mostrado na Figura 9 pode ser realizado por um aparelho de codificação e decodificação de vídeo, um codec de vídeo, um sistema de codificação e decodificação de vídeo, e um outro dispositivo tendo uma função de codificação e decodificação de vídeo.
[0203] O método mostrado na Figura 9 inclui da etapa 210 à etapa
250. A seguir se descreve a etapa 210 à etapa 250 em detalhes.
[0204] 210: Determinar um vetor de deslocamento alvo de um bloco a ser processado e informações de identificador de uma imagem alvo.
[0205] O bloco a ser processado inclui pelo menos um sub-bloco a ser processado. Quando um vetor de movimento do bloco a ser processado é obtido, um vetor de movimento de cada sub-bloco a ser processado do bloco a ser processado precisa ser efetivamente obtido. Quando o bloco a ser processado é uma CU, o sub-bloco a ser processado é uma sub- CU.
[0206] O vetor de deslocamento alvo na etapa 210 tem um mesmo significado que o vetor de deslocamento alvo mencionado no método mostrado na Figura 3, e detalhes não são descritos no presente documento novamente.
[0207] As informações de identificador da imagem alvo podem ser especificamente uma POC da imagem alvo na sequência de imagem, ou podem ser informações de índice ou um valor índice da imagem alvo.
[0208] 220: Determinar, com base em uma localização do sub-bloco a ser processado e no vetor de deslocamento alvo, uma localização inicial de um sub-bloco colocalizado que é do sub-bloco a ser processado e que está na imagem alvo.
[0209] Especificamente, quando a localização inicial do sub-bloco colocalizado que é do sub-bloco a ser processado e que está na imagem alvo é determinada, um sub-bloco colocalizado do sub-bloco a ser processado pode ser determinado primeiro, e então uma localização especificada no sub-bloco colocalizado é determinada como a localização inicial do sub-bloco colocalizado que é do sub-bloco a ser processado e que está na imagem alvo. Por exemplo, depois que o sub-bloco colocalizado é determinado, o ponto de centro ou o canto esquerdo superior do sub-bloco colocalizado pode ser determinado como a localização inicial do sub-bloco colocalizado que é do sub-bloco a ser processado e que está na imagem alvo.
[0210] Para uma maneira de determinar o sub-bloco colocalizado, fazer referência às descrições em nos parágrafos relativos abaixo da etapa 130 no método mostrado na Figura 3.
[0211] Além disso, quando a localização inicial do sub-bloco colocalizado que é do sub-bloco a ser processado e que está na imagem alvo é determinada, o sub-bloco colocalizado pode alternativamente não ser determinado, mas uma localização que está na imagem alvo e que corresponde ao sub-bloco a ser processado é diretamente determinada, com base na localização do sub-bloco a ser processado e no vetor de deslocamento alvo, como a localização inicial do sub-bloco colocalizado que é do sub-bloco a ser processado e que está na imagem alvo. Por exemplo, uma localização especificada, tal como o ponto de centro ou o canto esquerdo superior, do sub- bloco a ser processado é determinada primeiro, e o vetor de deslocamento alvo é adicionado a coordenadas da localização, de modo que a localização inicial do sub-bloco colocalizado que é do sub-bloco a ser processado e que está na imagem alvo possa ser determinada.
[0212] 230: Determinar a localização inicial como uma localização alvo quando a localização inicial está dentro de uma área pré-estabelecida da imagem alvo.
[0213] Por exemplo, conforme mostrado na Figura 10, uma imagem atual inclui um bloco a ser processado, o bloco a ser processado inclui um sub- bloco superior à esquerda a ser processado, uma imagem alvo inclui um bloco correspondente, o bloco correspondente inclui um sub-bloco superior à esquerda colocalizado, um vetor de deslocamento alvo do bloco a ser processado aponta para o bloco correspondente, e uma área retangular em um caixa em linha tracejada na imagem alvo é uma área pré-estabelecida da imagem alvo. Pode ser constatado a partir da Figura 10 que uma localização inicial do sub-bloco colocalizado que é do sub-bloco a ser processado e que está na imagem alvo está dentro da área pré-estabelecida da imagem alvo, e a localização inicial pode ser diretamente determinada como uma localização alvo.
[0214] 240: Determinar uma localização que está em uma área pré- estabelecida e que está mais próxima da localização inicial como uma localização alvo quando a localização inicial está fora da área pré-estabelecida.
[0215] Por exemplo, conforme mostrado na Figura 11, uma imagem atual inclui um bloco a ser processado, o bloco a ser processado inclui um sub- bloco superior à esquerda a ser processado, a imagem alvo inclui um bloco correspondente, o bloco correspondente inclui um sub-bloco superior à esquerda colocalizado, um vetor de deslocamento alvo do bloco a ser processado aponta para o bloco correspondente, e uma área retangular em um caixa em linha tracejada na imagem alvo é uma área pré-estabelecida da imagem alvo. Pode ser constatado a partir da Figura 11 que uma localização inicial do sub-bloco colocalizado que é do sub-bloco a ser processado e que está na imagem alvo está fora da área pré-estabelecida da imagem alvo. Nesse caso, uma localização A que está na área pré-estabelecida e que está mais próxima da localização inicial precisa ser determinada como uma localização alvo.
[0216] 250: Determinar um vetor de movimento do sub-bloco a ser processado com base em um vetor de movimento correspondente à localização alvo.
[0217] Nesse pedido, a localização alvo dentro da área pré- estabelecida é encontrada com base na localização inicial e na área pré- estabelecida da imagem alvo, e então o vetor de movimento do sub-bloco a ser processado é determinado com base em um vetor de movimento em uma faixa específica da imagem alvo. Portanto, a largura de banda de memória e uma quantidade de vezes de leitura de memória podem ser reduzidas por pré-leitura de um campo de vetor de movimento temporal na faixa específica da imagem alvo.
[0218] Opcionalmente, antes da etapa 250, o método mostrado na Figura 9 adicionalmente inclui: obter um vetor de movimento de uma amostra na área pré-estabelecida na imagem alvo.
[0219] Deve ser entendido que, antes que o vetor de movimento do sub-bloco a ser processado seja determinado com base no vetor de movimento da localização alvo na etapa 250, o vetor de movimento correspondente à localização alvo precisa ser primeiramente obtido. Para reduzir uma quantidade de vezes de leitura de memória e largura de banda de memória ocupada, o vetor de movimento da amostra na área pré-estabelecida da imagem alvo pode ser obtido antecipadamente. Dessa maneira, quando o vetor de movimento da localização alvo precisa ser usado, o vetor de movimento correspondente à localização alvo pode ser diretamente obtido a partir do vetor de movimento de leitura da amostra na área pré-estabelecida. Além disso, porque o vetor de movimento da amostra é obtido somente na área pré-estabelecida da imagem alvo, diferente daquele em uma solução convencional na qual vetores de movimento de amostras na imagem alvo inteira possivelmente precisam ser obtidos, a largura de banda de memória ocupada pode ser reduzida.
[0220] Opcionalmente, em uma modalidade, a área pré-estabelecida na etapa 230 é determinada com base em uma localização e um tamanho de uma unidade de árvore de codificação CTU na qual o bloco a ser processado está localizado, um tamanho da imagem alvo, e uma faixa de extensão pré- estabelecida de um campo de vetor de movimento temporal da CTU.
[0221] A faixa de extensão do campo de vetor de movimento temporal da CTU inclui faixas de extensão do campo de vetor de movimento temporal da CTU em uma primeira direção e uma segunda direção.
[0222] Opcionalmente, a primeira direção é uma direção horizontal, e a segunda direção é uma direção vertical.
[0223] Opcionalmente, quando a primeira direção é a direção horizontal, e a segunda direção é a direção vertical, a faixa de extensão do campo de vetor de movimento temporal da CTU inclui faixas de extensão do campo de vetor de movimento temporal da CTU em uma direção ascendente, uma direção descendente, uma direção para a esquerda, e uma direção para a direita.
[0224] A área pré-estabelecida pode ser limitada em uma pluralidade de maneiras. Por exemplo, opcionalmente, a área pré-estabelecida pode ser representada usando-se uma faixa de valores de coordenada horizontal e uma faixa de valores de coordenada vertical.
[0225] Especificamente, a área pré-estabelecida pode ser representada por uma faixa de valores de coordenada horizontal [um valor mínimo de coordenada horizontal, um valor máximo de coordenada horizontal] e uma faixa de valores de coordenada vertical [um valor mínimo de coordenada vertical, um valor máximo de coordenada vertical].
[0226] Valores na faixa de valores de coordenada horizontal e na faixa de valores de coordenada vertical podem ser calculados de acordo com uma fórmula (6) até uma fórmula (9): HorMin = Max(CTUX -L, 0) (6) HorMax = Min(CTUX + CTUW + R — 1, PicW — 1) (7) VerMin = Max(CTUY - U, 0) (8) VerMax = Min(CTUY + CTUH + B— 1, PicH—1) (9)
[0227] No presente documento, CTUX é uma coordenada horizontal da CTU na qual o bloco a ser processado está localizado, CTUY é uma coordenada vertical da CTU na qual o bloco a ser processado está localizado, CTUW e CTUH são respectivamente a largura e a altura da CTU na qual o bloco a ser processado está localizado, PicW e PicH são respectivamente a largura e a altura da imagem alvo, U, B, L, e R respectivamente representam valores de extensão da CTU em uma direção ascendente, uma direção descendente, uma direção para a esquerda, e uma direção para a direita, HorMin e HorMax são respectivamente o valor mínimo de coordenada horizontal e o valor máximo de coordenada horizontal, e VerMin e VerMax são respectivamente o valor mínimo de coordenada vertical e o valor máximo de coordenada vertical.
[0228] Depois que o valor mínimo de coordenada horizontal, o valor máximo de coordenada horizontal, o valor mínimo de coordenada vertical, e o valor máximo de coordenada vertical são obtidos através de cálculo de acordo com a fórmula (6) até a fórmula (9), a faixa de valores de coordenada horizontal e a faixa de valores de coordenada vertical podem ser obtidas, e a área pré- estabelecida da imagem alvo é determinada.
[0229] Opcionalmente, informações sobre a faixa de extensão do campo de vetor de movimento temporal da CTU são portadas em pelo menos um de um SPS, um PPS, e um campo de cabeçalho.
[0230] Alternativamente, a faixa de extensão do campo de vetor de movimento temporal da CTU pode ser pré-estabelecida. Nesse caso, a faixa de extensão do vetor de movimento da CTU pode ser diretamente gravada em um protocolo, e não precisa ser portada no SPS, no PPS, ou no campo de cabeçalho.
[0231] Opcionalmente, em uma modalidade, a determinação de um vetor de movimento do sub-bloco a ser processado com base em um vetor de movimento correspondente à localização alvo inclui: escalonar o vetor de movimento correspondente à localização alvo com base em uma POC de uma imagem incluindo o sub-bloco a ser processado, uma POC de uma imagem de referência alvo da imagem incluindo o sub-bloco a ser processado, uma POC da imagem alvo, e uma POC de uma imagem de referência alvo da imagem alvo, para se obter o vetor de movimento do sub-bloco a ser processado.
[0232] Especificamente, — quando o vetor de movimento correspondente à localização alvo é escalonado com base na POC da imagem incluindo o sub-bloco a ser processado, na POC da imagem de referência alvo da imagem incluindo o sub-bloco a ser processado, na POC da imagem alvo, e na POC da imagem de referência alvo da imagem alvo, para se obter o vetor de movimento do sub-bloco a ser processado, uma diferença entre a contagem de ordem de imagem POC da imagem incluindo o sub-bloco a ser processado e a POC da imagem de referência alvo da imagem incluindo o sub-bloco a ser processado pode ser determinada primeiro como uma terceira diferença, uma diferença entre a POC da imagem alvo e a POC da imagem de referência alvo da imagem alvo é determinada como uma quarta diferença, e então o vetor de movimento correspondente à localização alvo é escalonado com base em uma razão da terceira diferença para a quarta diferença, para se obter o vetor de movimento do sub-bloco a ser processado.
[0233] Opcionalmente, o vetor de movimento do sub-bloco colocalizado ser escalonado com base na razão da terceira diferença para a quarta diferença, para se obter o vetor de movimento do sub-bloco a ser processado inclui: determinar a razão da terceira diferença para a quarta diferença como uma segunda razão; e determinar um produto da segunda razão e o vetor de movimento correspondente à localização alvo como o vetor de movimento do sub-bloco a ser processado.
[0234] Por exemplo, conforme mostrado na Figura 12, a imagem incluindo o sub-bloco a ser processado é um quadro de imagem 1, uma imagem de referência alvo do quadro de imagem 1 é um quadro de imagem 2, o quadro de imagem no qual a imagem alvo está localizada é um quadro de imagem 3,
uma imagem de referência alvo do quadro de imagem 3 é um quadro de imagem 4, e o vetor de movimento da localização alvo é MV. Nesse caso, MV pode ser escalonado com base em POCs do quadro de imagem 1 ao quadro de imagem 4, para se obter o vetor de movimento do sub-bloco a ser processado.
[0235] Especificamente, o vetor de movimento do sub-bloco a ser processado pode ser calculado de acordo com uma fórmula (10): mm EEE o,
[0236] No presente documento, ”: é o vetor de movimento do sub- bloco a ser processado, MV é o vetor de movimento da localização alvo, P1 a P4 são as POCs do quadro de imagem 1 para o quadro de imagem 4, P1 a P2 representa a terceira diferença, e P3 a P4 representa a quarta diferença.
[0237] Para implantar predição para o bloco a ser processado, o bloco a ser processado pode ser predito depois que vetores de movimento de todos os sub-blocos a serem processados do bloco a ser processado são obtidos, para se obter um valor de amostra predito do bloco a ser processado. Alternativamente, depois que um vetor de movimento de cada sub-bloco a ser processado é obtido, o sub-bloco a ser processado pode ser predito para se obter um valor de amostra predito de cada sub-bloco a ser processado, e depois que todos os sub-blocos a serem processados são preditos, um valor de amostra predito do bloco a ser processado é obtido.
[0238] Até aqui foi descrito o método de obtenção de vetor de movimento nas modalidades desse pedido com referência da Figura 3 à Figura
12. Para melhor entender as soluções técnicas desse pedido, a seguir se descreve o método de obtenção de vetor de movimento nas modalidades desse pedido em detalhes com referência a modalidades específicas.
[0239] A Modalidade 1 e a Modalidade 2 correspondem ao método mostrado na Figura 3, e um valor de um vetor de deslocamento alvo é limitado, de modo que um sub-bloco colocalizado encontrado finalmente está dentro de uma área específica de uma imagem alvo. Na Modalidade 3, nenhuma limitação é imposta em um valor de um vetor de deslocamento alvo, mas uma localização alvo de um sub-bloco colocalizado que é de um sub-bloco a ser processado e que está em uma imagem alvo é diretamente limitada a uma área específica. Finalmente, no todo da Modalidade 1 à Modalidade 3, um vetor de movimento de um sub-bloco a ser processado é determinado com base em um vetor de movimento de uma amostra em uma área específica de uma imagem alvo. À seguir se descreve separadamente da Modalidade 1 à Modalidade 3 em detalhes.
Modalidade 1
[0240] Conforme mostrado na Figura 13, um processo específico de obtenção de vetor de movimento na Modalidade 1 inclui as etapas a seguir.
[0241] 310: Determinar uma faixa de restrição.
[0242] A faixa de restrição no presente documento é equivalente à primeira faixa de valores e à segunda faixa de valores acima.
[0243] Deve ser entendido que a faixa de restrição é determinada para restringir valores de componentes de um vetor de deslocamento alvo de um bloco a ser processado em uma primeira direção e uma segunda direção, de modo que os valores dos componentes do vetor de deslocamento alvo na primeira direção e na segunda direção caiam dentro da faixa de restrição.
[0244] Opcionalmente, a faixa de restrição pode ser determinada com base em uma faixa de extensão de um campo de vetor de movimento temporal de uma CTU, uma localização e um tamanho do bloco a ser processado, e uma localização e um tamanho da CTU na qual o bloco a ser processado está localizado.
[0245] A faixa de extensão do campo de vetor de movimento temporal da CTU pode ser definida usando-se parâmetros Rangel, RangeR, RangeU e RangeB (os quais são equivalentes aos supracitados parâmetros L, R, Ue B) e os parâmetros Rangel, RangeR, RangeU, e RangeB respectivamente representam valores de extensão do campo de vetor de movimento temporal da CTU em quatro direções: uma direção para a esquerda, uma direção para a direita, uma direção ascendente, e uma direção descendente.
[0246] Um valor de cada de Rangel, RangeR, RangeU, e RangeB pode ser O, 16, 32, 64, ou semelhantes (uma amostra é usada como uma unidade).
[0247] Deve ser entendido que os supracitados parâmetros RangeL, RangeR, RangeU, e RangeB podem ser diretamente determinados em uma maneira predefinida, ou podem ser portados em sintaxe de camada mais alta. Por exemplo, Rangel, RangeR, RangeU, e RangeB podem ser portados em um SPS, um PPS, e um campo de cabeçalho.
[0248] Especificamente, a faixa de restrição pode ser determinada de acordo com uma fórmula (11) a uma fórmula (14): HorMin = CTUX — CUX - Rangel - (11) HorMax = CTUX + CTUW- CUX- CUW + RangeR (12) VerMin = CTUY - CUY - RangeU (13) VerMax = CTUY + CTUH - CUY — CUH + RangeB (14)
[0249] No presente documento, CUX e CUY representam coordenadas de localização de uma amostra na parte esquerda superior do bloco a ser processado, CUW e CUH representam a largura e a altura do bloco a ser processado, CTUX e CTUY representam coordenadas de localização de uma amostra na parte esquerda superior da CTU na qual o bloco a ser processado está localizado, e CTUW e CTUH representam a largura e a altura da CTU. HorMin e HorMax representam um valor mínimo e um valor máximo na faixa de restrição em uma direção horizontal. VerMin e VerMax representam um valor mínimo e um valor máximo na faixa de restrição em uma direção vertical.
[0250] 320: Determinar um vetor de deslocamento de partida do bloco a ser processado.
[0251] O vetor de deslocamento de partida no presente documento é equivalente ao supracitado vetor de deslocamento inicial.
[0252] Deve ser entendido que a etapa 310 e a etapa 320 podem ser simultaneamente realizadas, ou podem ser separadamente realizadas em ordem.
[0253] O vetor de deslocamento de partida é usado para determinar uma localização de um bloco de imagem alvo que é do bloco a ser processado e que está em uma imagem alvo, e o vetor de deslocamento de partida pode ser determinado nas duas maneiras seguintes.
[0254] Uma terceira maneira inclui: determinar um vetor de movimento disponível de um bloco espacialmente vizinho do bloco a ser processado como o vetor de deslocamento de partida.
[0255] Especificamente, na terceira maneira, um vetor de movimento do primeiro bloco vizinho disponível pode ser encontrado em uma ordem de A, B1, Bo, e Ao na Figura 4, e é usado como o vetor de deslocamento de partida do bloco a ser processado.
[0256] Uma quarta maneira inclui: primeiro determinar a imagem alvo, e então determinar um vetor de movimento que é de um bloco vizinho e que aponta para a imagem alvo como o vetor de deslocamento de partida.
[0257] Especificamente, na quarta maneira, um vetor de movimento do primeiro bloco vizinho disponível pode ser encontrado em uma ordem de A, B1, Bo, e Ao na Figura 4, e se o vetor de movimento aponta para a imagem alvo, o vetor de movimento é usado como o vetor de deslocamento de partida do bloco a ser processado. Se o vetor de movimento não aponta para a imagem alvo, o vetor de movimento é escalonado para habilitar o vetor de movimento a apontar para a imagem alvo, e um vetor de movimento escalonado é usado como o vetor de deslocamento de partida.
[0258] 330: Determinar se o vetor de deslocamento de partida cai ou não fora da faixa de restrição.
[0259] Deve ser entendido que quando um valor de um componente
BU77 do vetor de deslocamento de partida em pelo menos uma dentre a primeira direção ou a segunda direção cai fora da faixa de restrição, é determinado que o vetor de deslocamento de partida cai fora da faixa de restrição. Quando um valor de um componente do vetor de deslocamento de partida em cada uma dentre a primeira direção e a segunda direção não cai fora da faixa de restrição, é determinado que o vetor de deslocamento de partida não cai fora da faixa de restrição.
[0260] Quando o vetor de deslocamento de partida cai fora da faixa de restrição, a etapa 340 e a etapa 350 são realizadas; ou quando o vetor de deslocamento de partida não cai fora da faixa de restrição, a etapa 360 é realizada.
[0261] 340: Determinar um vetor de deslocamento limitado com base na faixa de restrição.
[0262] Quando o vetor de deslocamento de partida cai fora da faixa de restrição, o vetor de deslocamento de partida precisa ser limitado para se obter um vetor de deslocamento limitado, de modo que o vetor de deslocamento limitado caia dentro da faixa de restrição.
[0263] Especificamente, quando o vetor de deslocamento de partida cai fora da faixa de restrição, componentes (X,; , Votr ) do vetor de deslocamento de partida podem ser limitados de acordo com uma fórmula (15) e uma fórmula (16), para se obter o vetor de deslocamento limitado: X,g — Clip3(HorMin, Hor Max, x, 7 ) (15) Vag — Clip3(Ver Min, VerMax, Y 5) (16)
[0264] No presente documento, uma função Clip3 é uma função de recorte, e é especificamente definida conforme a seguir: x;Z<x Clip3(x,y,2) = Í vz>y . (17) z; outras opções
[0265] Deve ser entendido que, diferente de uma maneira de determinar o vetor de deslocamento alvo com base na faixa de restrição, alternativamente, um vetor de movimento zero pode ser diretamente usado como o vetor de deslocamento alvo. Alternativamente, uma tecnologia ATMVP pode não ser usada, mas uma outra tecnologia é usada para se obter um vetor de movimento de um sub-bloco a ser processado.
[0266] 350: Determinar o vetor de deslocamento limitado como o vetor de deslocamento alvo.
[0267] Porque o vetor de deslocamento limitado cai dentro da faixa de restrição, o vetor de deslocamento limitado pode ser determinado como o vetor de deslocamento alvo.
[0268] 360: Determinar o vetor de deslocamento de partida como o vetor de deslocamento alvo.
[0269] Quando o vetor de deslocamento de partida cai dentro da faixa de restrição, nenhuma operação de restrição ou limitação precisa ser realizada no vetor de deslocamento de partida, e o vetor de deslocamento de partida pode ser diretamente determinado como o vetor de deslocamento alvo.
[0270] 370: Determinar, na imagem alvo com base em uma localização do sub-bloco a ser processado e no vetor de deslocamento alvo, um sub-bloco colocalizado do sub-bloco a ser processado.
[0271] 380: Determinar o vetor de movimento do sub-bloco a ser processado com base em um vetor de movimento do sub-bloco colocalizado.
[0272] Especificamente, o vetor de movimento do sub-bloco colocalizado pode ser escalonado com base em uma POC de uma imagem incluindo o sub-bloco a ser processado, uma POC de uma imagem de referência alvo da imagem incluindo o sub-bloco a ser processado, uma POC da imagem alvo, e uma POC de uma imagem de referência alvo da imagem alvo, para se obter o vetor de movimento do sub-bloco a ser processado.
[0273] Depois que o vetor de movimento do sub-bloco a ser processado é obtido, um valor de amostra predito do sub-bloco a ser processado pode ser determinado com base no vetor de movimento do sub-bloco a ser processado.
[0274] Quando o valor de amostra predito do sub-bloco a ser processado é determinado, um sub-bloco de predição do sub-bloco a ser processado pode ser determinado com base no vetor de movimento do sub- bloco a ser processado, e então um valor de amostra do sub-bloco de predição é determinado como o valor de amostra predito do sub-bloco a ser processado. Dessa maneira, depois que um valor de amostra predito de cada sub-bloco a ser processado é obtido, um valor de amostra predito do bloco inteiro a ser processado pode ser obtido.
Modalidade 2
[0275] Conforme mostrado na Figura 14, um processo específico de obtenção de vetor de movimento na Modalidade 2 inclui as etapas a seguir.
[0276] 410: Determinar uma faixa de restrição.
[0277] Um significado e uma maneira de determinação da faixa de restrição no presente documento são as mesmas daquelas da faixa de restrição na Modalidade 1, e detalhes não são descritos no presente documento novamente.
[0278] 420: Obter um vetor de movimento de um bloco vizinho de um bloco a ser processado.
[0279] Especificamente, um vetor de movimento do primeiro bloco vizinho disponível pode ser obtido em uma ordem de A1, B1, Bo, e Ao na Figura
4.
[0280] Alternativamente, uma imagem alvo pode ser determinada primeiro, e então o vetor de movimento do bloco vizinho do bloco a ser processado é obtido em uma ordem de A, B1, Bo, e Ao na Figura 4. Quando o vetor de movimento aponta para a imagem alvo, a etapa 430 é realizada. Quando o vetor de movimento não aponta para a imagem alvo, o vetor de movimento é escalonado, de modo que um vetor de movimento escalonado aponte para a imagem alvo. Então, o vetor de movimento escalonado é usado como um vetor de movimento do bloco vizinho, e a etapa 440 continua a ser realizada.
[0281] 430: Determinar se o vetor de movimento do bloco vizinho cai ou não dentro da faixa de restrição.
[0282] Quando um valor de um componente do vetor de movimento do bloco vizinho cai dentro da faixa de restrição, a etapa 440 é realizada; ou quando um valor de um componente do vetor de movimento do bloco vizinho não cai dentro da faixa de restrição, a etapa 420 continua a ser realizada, até que um valor de um componente do vetor de movimento do bloco vizinho caia dentro da faixa de restrição.
[0283] Deve ser entendido que, quando valores de componentes do vetor de movimento do bloco vizinho tanto em uma primeira direção quanto em uma segunda direção caem dentro da faixa de restrição, é determinado que o vetor de movimento do bloco vizinho cai dentro da faixa de restrição. Quando um valor de um componente do vetor de movimento do bloco vizinho em uma primeira direção e/ou um valor de um componente do vetor de movimento do bloco vizinho em uma segunda direção cai/cai fora da faixa de restrição, é determinado que o vetor de movimento do bloco vizinho não caia dentro da faixa de restrição (o vetor de movimento do bloco vizinho cai fora da faixa de restrição).
[0284] 440: Determinar o vetor de movimento do bloco vizinho como um vetor de deslocamento alvo.
[0285] 450: Determinar, na imagem alvo com base em uma localização de um sub-bloco a ser processado e no vetor de deslocamento alvo, um sub-bloco colocalizado do sub-bloco a ser processado.
[0286] 460: Determinar um vetor de movimento do sub-bloco a ser processado com base em um vetor de movimento do sub-bloco colocalizado.
[0287] Especificamente, o vetor de movimento do sub-bloco colocalizado pode ser escalonado com base em uma POC de uma imagem incluindo o sub-bloco a ser processado, uma POC de uma imagem de referência alvo da imagem incluindo o sub-bloco a ser processado, uma POC da imagem alvo, e uma POC de uma imagem de referência alvo da imagem alvo, para se obter o vetor de movimento do sub-bloco a ser processado.
[0288] Depois que o vetor de movimento do sub-bloco a ser processado é obtido, um valor de amostra predito do sub-bloco a ser processado pode ser determinado com base no vetor de movimento do sub-bloco a ser processado.
Modalidade 3
[0289] Conforme mostrado na Figura 15, um processo específico de obtenção de vetor de movimento na Modalidade 3 inclui as etapas a seguir.
[0290] 510: Determinar um vetor de deslocamento alvo de um bloco a ser processado e informações de identificador de uma imagem alvo.
[0291] Um processo de determinar o vetor de deslocamento alvo e as informações de identificador da imagem alvo na etapa 510 é o mesmo que na etapa 210.
[0292] 520: Determinar, com base em uma localização de um sub- bloco a ser processado e no vetor de deslocamento alvo, uma localização inicial de um sub-bloco colocalizado que é do sub-bloco a ser processado e que está na imagem alvo.
[0293] Especificamente, coordenadas de localização da localização inicial do sub-bloco colocalizado que é do sub-bloco a ser processado e que está na imagem alvo podem ser determinadas de acordo com uma fórmula (18): Yap? xiMxi+Ã+x, VYag PY+ Nxj+ z +Yg (18)
[0294] No presente documento, (x, y) representa coordenadas do vértice superior à esquerda do bloco a ser processado, i representa o iés'mº sub- bloco da esquerda para a direita no bloco a ser processado, j representa o jésimo sub-bloco da parte superior à parte inferior no bloco a ser processado, (xof, Yofr) representa valores de componentes do vetor de movimento de deslocamento alvo em uma primeira direção e uma segunda direção, M e N representam um tamanho do sub-bloco a ser processado (onde M pode representar a largura do sub-bloco a ser processado, e N pode representar a altura do sub-bloco a ser processado), e ( », Var) representa coordenadas de localização do (i, j)ósimo sub-bloco colocalizado.
[0295] 530: Determinar se a localização inicial está ou não em uma área pré-estabelecida da imagem alvo.
[0296] Quando a localização inicial está na área pré-estabelecida da imagem correspondente, a etapa 540 é diretamente realizada. Quando a localização inicial está fora da área pré-estabelecida da imagem correspondente, a etapa 550 é realizada.
[0297] A área pré-estabelecida pode ser uma faixa fixa na imagem alvo, e a área pré-estabelecida da imagem correspondente pode ser determinada de acordo com uma fórmula (19) até uma fórmula (22): HorMin = Min(CTUX — RangeL, 0) (19) HorMax = Max(CTUX + CTUW + RangeR — 1, PicoW — 1) (20) VerMin = Min(CTUY — RangeU, 0) (21) VerMax = Max(CTUY + CTUH + RangeB — 1, PicH- 1) (22)
[0298] HorMin e HorMax representam um valor mínimo e um valor máximo em uma faixa de restrição em uma direção horizontal, VerMin e VerMax representam um valor mínimo e um valor máximo na faixa de restrição em uma direção vertical, CTUX e CTUY representam coordenadas de localização de uma amostra na parte esquerda superior de uma CTU na qual o bloco a ser processado está localizado, CTUW e CTUH representam a largura e a altura da CTU, RangeU, RangeB, Rangel, e RangeR respectivamente representam valores de extensão que estão em uma direção ascendente, uma direção descendente, uma direção para a esquerda, e uma direção para a direita e que são de um campo de vetor de movimento temporal da CTU, e PicW e PicH são respectivamente a largura e a altura da imagem alvo.
[0299] 540: Determinar a localização inicial como uma localização alvo.
[0300] A localização inicial pode ser diretamente determinada como a localização alvo quando a localização inicial está dentro da área pré- estabelecida da imagem alvo.
[0301] 550: Determinar uma localização que está na área pré- estabelecida e que está mais próxima da localização inicial como uma localização alvo.
[0302] Especificamente, a localização que está na área pré- estabelecida e que está mais próxima da localização inicial pode ser determinada como a localização alvo quando a localização inicial está fora da área pré- estabelecida da imagem alvo. Especificamente, quando a localização inicial está fora da área pré-estabelecida da imagem alvo, a localização alvo pode ser determinada de acordo com uma fórmula (23) e uma fórmula (24): i) = Clip3(HorMin, HorMax, >) (23) Jin = Clip3(VerMin, VerMax, *62) (24)
[0303] No presente documento, uma função Clip3 é uma função de recorte, e uma definição específica é mostrada na supracitada fórmula (17).
[0304] 560: Determinar um vetor de movimento do sub-bloco a ser processado com base em um vetor de movimento correspondente à localização alvo.
[0305] Especificamente, o vetor de movimento da localização alvo pode ser escalonado com base em uma POC de uma imagem incluindo o sub- bloco a ser processado, uma POC de uma imagem de referência alvo da imagem incluindo o sub-bloco a ser processado, uma POC da imagem alvo, e uma POC de uma imagem de referência alvo da imagem alvo, para se obter o vetor de movimento do sub-bloco a ser processado.
[0306] Depois que o vetor de movimento do sub-bloco a ser processado é obtido, um valor de amostra predito do sub-bloco a ser processado pode ser determinado com base no vetor de movimento do sub-bloco a ser processado.
[0307] Para melhor entender efeitos benéficos trazidos por esse pedido, a seguir se descreve efeitos benéficos do método de obtenção de vetor de movimento nas modalidades desse pedido em detalhes com referência à Figura 16 e à Figura 17.
[0308] Conforme mostrado na Figura 16, uma imagem atual inclui uma CTU atual, a CTU atual inclui uma pluralidade de blocos a serem processados, cada bloco a ser processado inclui uma pluralidade de sub-blocos a serem processados, e cada bloco a ser processado corresponde a um vetor de deslocamento. Um bloco correspondente do bloco a ser processado pode ser encontrado com base no vetor de deslocamento correspondente. Cada sub- bloco a ser processado corresponde a um sub-bloco colocalizado em uma imagem alvo. Se uma área na qual o sub-bloco colocalizado, na imagem alvo, correspondente ao sub-bloco a ser processado está localizado é incerta, ou uma localização, na imagem alvo, correspondente ao sub-bloco a ser processado é incerta, quando um vetor de movimento do sub-bloco colocalizado deve ser obtido, um campo de vetor de movimento temporal da imagem inteira correspondente — possivelmente — precisa ser obtido antecipadamente. Consequentemente, a largura de banda de memória aumenta.
[0309] Conforme mostrado na Figura 17, uma imagem atual inclui uma CTU atual, a CTU atual inclui uma pluralidade de blocos a serem processados, cada bloco a ser processado inclui uma pluralidade de sub-blocos a serem processados, e uma área de linha tracejada em uma imagem alvo indica uma área pré-estabelecida da imagem alvo. Nesse pedido, uma faixa de um vetor de deslocamento do bloco a ser processado é restrita, de modo que um sub-bloco colocalizado que está na imagem alvo e que corresponde a um sub- bloco a ser processado esteja dentro da área pré-estabelecida da imagem alvo, ou uma localização correspondente de um sub-bloco colocalizado que é de um sub-bloco a ser processado e que está na imagem alvo está dentro da área pré- estabelecida da imagem alvo. Dessa maneira, um vetor de movimento somente do sub-bloco colocalizado ou da localização correspondente precisa ser obtido, e um vetor de movimento da imagem alvo inteira não precisa ser obtido. Isso pode reduzir largura de banda de memória. Além disso, uma quantidade de vezes de leitura de memória pode ser reduzida através de pré-leitura.
[0310] O método de obtenção de vetor de movimento nas modalidades desse pedido pode ser aplicado a um modo de fusão de predição inter.
[0311] Em uma tecnologia de predição de vetor de movimento com base em subunidade de codificação (Sub-CU based motion vector prediction, SMVP), uma unidade de codificação atual é dividida em subunidades de codificação com um tamanho M x N, informações de movimento de cada subunidade de codificação são deduzidas, e então compensação de movimento é realizada com base nas informações de movimento de cada subunidade de codificação, para se obter um preditor da unidade de codificação atual.
[0312] Quando a tecnologia SMVP é aplicada ao modo de fusão, dois tipos de informações de movimento candidatas: predição de vetor de movimento temporal avançado (advanced temporal motion vector prediction, ATMVP) e predição de vetor de movimento espacial-temporal (spatial-temporal motion vector prediction, STMVP), são adicionadas com base no modo de fusão original.
[0313] Na tecnologia ATMVP, uma imagem de referência colocalizada é determinada primeiramente, então uma unidade de codificação atual é dividida em subunidades de codificação com um tamanho M x N, informações de movimento de uma amostra no ponto de centro de uma subunidade de codificação que está na imagem de referência colocalizada e que corresponde a cada subunidade de codificação atual são obtidas, e as informações de movimento são escalonadas, para traduzir as informações de movimento em informações de movimento de cada subunidade de codificação atual. O método de obtenção de vetor de movimento nas modalidades desse pedido pode ser entendido com uma tecnologia ATMVP aperfeiçoada.
[0314] Com base em blocos vizinhos de um bloco a ser processado mostrado na Figura 4, a seguir se descreve separadamente, com referência à Figura 18 e à Figura 19, um processo de construção de lista de informações de candidato em um modo de fusão existente e um processo de construção de lista de informações de candidato em um modo de fusão ao qual uma tecnologia SMVP é aplicada.
[0315] O processo de construção de lista de informações de candidato no modo de fusão existente é mostrado na Figura 18.
[0316] O processo de construção de lista de informações de candidato mostrado na Figura 18 inclui as seguintes etapas:
[0317] 610: Inserir informações de movimento de localizações de A, B1, Bo e Av.
[0318] 620: Inserir informações de movimento de uma localização de B2.
[0319] 630: Inserir informações de movimento de uma localização temporal (T ou C).
[0320] 640: Preencher uma lista de informações de movimento candidatas.
[0321] O processo de construção de lista de informações de candidato no modo de fusão ao qual a tecnologia SMVP é aplicada é mostrado na Figura
19.
[0322] O processo de construção de lista de informações de candidato mostrado na Figura 19 inclui as seguintes etapas:
[0323] 710: Inserir informações de movimento de localizações de Ai, B1, Bo e Ao.
[0324] 720: Inserir informações de movimento ATMVP e informações de movimento STMVP.
[0325] 730: Inserir informações de movimento de uma localização de B2.
[0326] 740: Inserir informações de movimento de uma localização temporal (T ou C).
[0327] 750: Preencher uma lista de informações de movimento candidatas.
[0328] Comparada à Figura 18, a Figura 19 adicionalmente inclui a etapa 720 de inserir as informações de movimento ATMVP e as informações de movimento STMVP. Outras etapas permanecem inalteradas.
[0329] Deve ser entendido que o vetor de movimento que é do sub- bloco a ser processado e que é obtido de acordo com o método de obtenção de vetor de movimento nas modalidades desse pedido é uma parte das informações de movimento ATMVP inseridas na etapa 720.
[0330] Especificamente, com base nos blocos vizinhos do bloco a ser processado mostrado na Figura 4, quando a tecnologia SMVP é aplicada ao modo de fusão, a codificação no modo de fusão inclui especificamente o seguinte processo:
[0331] (1) Obter informações de movimento de localizações de blocos espacialmente vizinhos A1, B1, Bo, e Ao em ordem, verificar disponibilidade, excluir um item repetido, e inserir as informações de movimento em uma lista de informações de movimento candidatas.
[0332] (2) Obter informações de movimento ATMVP e informações de movimento STMVP, verificar disponibilidade, excluir um item repetido, e inserir as informações de movimento na lista de informações de movimento candidatas.
[0333] (3) Quando um comprimento da lista de informações de movimento candidatas é menor que 6, obter informações de movimento de uma localização de Ba, verificar disponibilidade, excluir um item repetido, e inserir as informações de movimento na lista de informações de movimento candidatas.
[0334] (4) Obter informações de movimento de um bloco correspondente para uma localização T em um quadro codificado vizinho (se as informações de movimento não existem, informações de movimento de um bloco correspondente para uma localização C são obtidas), escalonar as informações de movimento, e inserir informações de movimento escalonadas na lista de informações de movimento candidatas.
[0335] (5) Se o comprimento da lista de informações de movimento candidatas é menor que 7, realizar preenchimento para se obter uma lista de informações de movimento candidatas cujo comprimento é 7.
[0336] (6) Percorrer cada pedaço de informações de movimento candidatas na lista de informações de movimento candidatas, realizar compensação de movimento e reconstrução para se obter um valor de reconstrução, e então determinar informações de movimento candidatas com custos de distorção de taxa (rate distortion cost, RD cost) mais baixos de acordo com um método de otimização de distorção de taxa (rate distortion optimization, RDO), para se obter um índice (index) de fusão.
[0337] (7) Gravar o índice de fusão em um fluxo de bits com base no comprimento da lista de informações de movimento candidatas, e transmitir o fluxo de bits para um lado de decodificador.
[0338] Uma lista de informações de movimento candidatas de processo de construção em um modo de fusão é mostrada na Figura 19.
[0339] Até aqui foi descrito o método de obtenção de vetor de movimento nas modalidades desse pedido em detalhes com referência da Figura 3 à Figura 19. Deve ser entendido que o método de obtenção de vetor de movimento nas modalidades desse pedido pode corresponder à predição inter mostrada na Figura 1 e na Figura 2. O método de obtenção de vetor de movimento nas modalidades desse pedido pode ser realizado nos processos de predição inter mostrados na Figura 1 e na Figura 2. O método de obtenção de vetor de movimento nas modalidades desse pedido pode ser especificamente realizado por um módulo de predição inter em um codificador ou um decodificador. Além disso, o método de obtenção de vetor de movimento nas modalidades desse pedido pode ser implantado em qualquer dispositivo ou aparelho eletrônico que possa precisar codificar e/ou decodificar uma imagem de vídeo.
[0340] A seguir se descreve aparelho de obtenção de vetores de movimento nas modalidades desse pedido em detalhes com referência à Figura e à Figura 21. Um aparelho mostrado na Figura 20 corresponde aos métodos mostrados na Figura 3, na Figura 13, e na Figura 14, e pode realizar as etapas nos métodos mostrados na Figura 3, na Figura 13, e na Figura 14. Um aparelho mostrado na Figura 21 corresponde aos métodos mostrados na Figura 9 e na Figura 15, e pode realizar as etapas nos métodos mostrados na Figura 9 e na Figura 15. Por uma questão de brevidade, descrições repetidas são devidamente omitidas abaixo.
[0341] A Figura 20 é um diagrama de blocos esquemático de um aparelho de obtenção de vetor de movimento 800 de acordo com uma modalidade desse pedido. O aparelho 800 mostrado na Figura 20 inclui: um módulo de determinação 810, onde o módulo de determinação 810 é configurado para: determinar uma primeira faixa de valores e uma segunda faixa de valores; determinar um vetor de deslocamento alvo de um bloco a ser processado e informações de identificador de uma imagem alvo, onde o bloco a ser processado inclui pelo menos um sub-bloco a ser processado, um valor de um componente do vetor de deslocamento alvo em uma primeira direção cai dentro da primeira faixa de valores, um valor de um componente do vetor de deslocamento alvo em uma segunda direção cai dentro da segunda faixa de valores, e a primeira direção e a segunda direção estão em uma relação ortogonal; e determinar, na imagem alvo com base em uma localização do sub- bloco a ser processado e no vetor de deslocamento alvo, um sub-bloco colocalizado do sub-bloco a ser processado; e um módulo de obtenção 820, configurado para se obter um vetor de movimento do sub-bloco a ser processado com base em um vetor de movimento do sub-bloco colocalizado.
[0342] Nesse pedido, porque o valor de componente do vetor de deslocamento alvo cai dentro de uma faixa de valores específica, o sub-bloco a ser processado determinado na imagem alvo com base no vetor de deslocamento alvo também cai dentro de uma faixa específica da imagem alvo. Portanto, a largura de banda de memória e uma quantidade de vezes de leitura de memória podem ser reduzidas por pré-leitura de um campo de vetor de movimento temporal na faixa específica da imagem alvo.
[0343] O módulo de determinação 810 e o módulo de obtenção 820 podem corresponder a um módulo de predição (o qual pode ser especificamente um módulo de predição inter) em um aparelho de codificação e decodificação. Durante a implantação específica, o módulo de determinação 810 e o módulo de obtenção 820 podem ser implantados usando-se software ou hardware, ou podem ser implantados usando-se uma combinação de software e hardware.
[0344] A Figura 21 é um diagrama de blocos esquemático de um aparelho de obtenção de vetor de movimento de acordo com uma modalidade desse pedido. O aparelho 900 mostrado na Figura 21 inclui: um módulo de determinação 910, onde o módulo de determinação é configurado para: determinar um vetor de deslocamento alvo de um bloco a ser processado e informações de identificador de uma imagem alvo, onde o bloco a ser processado inclui pelo menos um sub-bloco a ser processado; determinar, com base em uma localização do sub-bloco a ser processado e no vetor de deslocamento alvo, uma localização inicial de um sub- bloco colocalizado que é do sub-bloco a ser processado e que está na imagem alvo; e determinar a localização inicial como uma localização alvo quando a localização inicial está dentro de uma área pré-estabelecida da imagem alvo; ou determinar uma localização que está na área pré-estabelecida e que está mais próxima da localização inicial como uma localização alvo quando a localização inicial está fora da área pré-estabelecida; e um módulo de obtenção 920, configurado para se obter um vetor de movimento do sub-bloco a ser processado com base em um vetor de movimento correspondente à localização alvo.
[0345] Nesse pedido, a localização alvo dentro da área pré- estabelecida é encontrada com base na localização inicial e na área pré- estabelecida da imagem alvo, e então o vetor de movimento do sub-bloco a ser processado é determinado com base em um vetor de movimento em uma faixa específica da imagem alvo. Portanto, a largura de banda de memória e uma quantidade de vezes de leitura de memória podem ser reduzidas por pré-leitura de um campo de vetor de movimento temporal na faixa específica da imagem alvo.
[0346] O módulo de determinação 910 e o módulo de obtenção 920 podem corresponder a um módulo de predição, o qual pode ser especificamente um módulo de predição inter, em um aparelho de codificação e decodificação. Durante a implantação específica, o módulo de determinação 910 e o módulo de obtenção 920 podem ser implantados usando-se software ou hardware, ou podem ser implantados usando-se uma combinação de software e hardware.
[0347] O método de obtenção de vetor de movimento nas modalidades desse pedido pode ser alternativamente realizado por um codificador de vídeo ou um decodificador de vídeo. A seguir se descreve estruturas do codificador de vídeo e do decodificador de vídeo nas modalidades desse pedido com referência à Figura 22 e à Figura 23.
[0348] A Figura 22 é um diagrama de blocos esquemático de um codificador de vídeo de acordo com uma modalidade desse pedido. O codificador de vídeo 1000 mostrado na Figura 22 inclui um módulo de predição de lado de codificador 1001, um módulo de transformada e quantização 1002, um módulo de codificação de entropia 1003, um módulo de codificação e reconstrução 1004, e um módulo de filtração de lado de codificador.
[0349] O codificador de vídeo 1000 mostrado na Figura 22 pode codificar um vídeo. Especificamente, o codificador de vídeo 1000 pode realizar o processo de codificação de vídeo mostrado na Figura 1, para codificar o vídeo. Além disso, o codificador de vídeo 1000 pode adicionalmente realizar o método de obtenção de vetor de movimento nas modalidades desse pedido, e o codificador de vídeo 1000 pode realizar as etapas dos métodos mostrados na Figura 3, na Figura 9, e na Figura 13 à Figura 15.
[0350] O aparelho de obtenção de vetor de movimento nas modalidades desse pedido pode ser o módulo de predição de lado de codificador 1001 no codificador de vídeo 1000. Especificamente, o aparelho 800 e o aparelho 900 mostrados na Figura 20 e na Figura 21 são equivalentes ao módulo de predição de lado de codificador 1001 no codificador de vídeo 1000.
[0351] A Figura 23 é um diagrama de blocos esquemático de um decodificador de vídeo de acordo com uma modalidade desse pedido. O decodificador de vídeo 2000 mostrado na Figura 23 inclui um módulo de decodificação de entropia 2001, um módulo de transformada inversa e quantização inversa 2002, um módulo de predição de lado de decodificador 2003, um módulo de decodificação e reconstrução 2004, e um módulo de filtração de lado de decodificador 2005.
[0352] O decodificador de vídeo 2000 mostrado na Figura 23 pode decodificar um vídeo. Especificamente, o decodificador de vídeo 2000 pode realizar o processo de decodificação de vídeo mostrado na Figura 2, para decodificar o vídeo. Além disso, o decodificador de vídeo 2000 pode adicionalmente realizar o método de obtenção de vetor de movimento nas modalidades desse pedido, e o decodificador de vídeo 2000 pode realizar as etapas do método de obtenção de vetores de movimento mostrado na Figura 3, na Figura 9, e na Figura 13 à Figura 15.
[0353] O aparelho de obtenção de vetor de movimento nas modalidades desse pedido pode ser o módulo de predição de lado de decodificador 2003 no decodificador de vídeo 2000. Especificamente, o aparelho 800 e o aparelho 900 mostrados na Figura 20 e na Figura 21 são equivalentes ao módulo de predição de lado de decodificador 2003 no decodificador de vídeo
2000.
[0354] A seguir se descreve um cenário de aplicação do método de obtenção de vetor de movimento nas modalidades desse pedido com referência da Figura 24 à Figura 26. O método de obtenção de vetor de movimento nas modalidades desse pedido pode ser realizado por um sistema de transmissão de vídeo, um aparelho de codificação e decodificação, e um sistema de codificação e decodificação mostrados na Figura 24 à Figura 26.
[0355] A Figura 24 é um diagrama de blocos esquemático de um sistema de transmissão de vídeo de acordo com uma modalidade desse pedido.
[0356] Conforme mostrado na Figura 24, o sistema de transmissão de vídeo inclui a módulo de coleta 3001, um módulo de codificação 3002, um módulo de envio 3003, transmissão de rede 3004, um módulo de recebimento 3005, um módulo de decodificação 3006, e um módulo de renderização 3007.
[0357] Os módulos no sistema de transmissão de vídeo têm as seguintes funções específicas:
[0358] O módulo de coleta 3001 inclui uma câmera ou um grupo de câmeras e é configurado para coletar uma imagem de vídeo e realizar processamento na imagem de vídeo coletada antes de codificar, para converter um sinal óptico em uma sequência de vídeo digitalizada.
[0359] O módulo de codificação 3002 é configurado para codificar a sequência de vídeo para se obter um fluxo de bits.
[0360] O módulo de envio 3003 é configurado para enviar o fluxo de bits codificados.
[0361] O módulo de recebimento 3005 é configurado para receber o fluxo de bits enviado pelo módulo de envio 3003.
[0362] A rede 3004 é configurada para transmitir, para o módulo de recebimento 3005, o fluxo de bits enviado pelo módulo de envio 3003.
[0363] O módulo de decodificação 3006 é configurado para decodificar o fluxo de bits recebido pelo módulo de recebimento 3005 para reconstruir a sequência de vídeo.
[0364] O módulo de renderização 3007 é configurado para renderizar uma sequência de vídeo reconstruída obtida através de decodificação pelo módulo de decodificação 3006, para aperfeiçoar um efeito de exibição de vídeo.
[0365] O sistema de transmissão de vídeo mostrado na Figura 24 pode realizar o método de obtenção de vetor de movimento nas modalidades desse pedido. Especificamente, tanto o módulo de codificação 3002 quanto o módulo de decodificação 3006 no sistema de transmissão de vídeo mostrado na Figura 24 podem realizar o método de obtenção de vetor de movimento nas modalidades desse pedido.
[0366] A seguir se descreve em detalhes um aparelho de codificação e decodificação e um sistema de codificação e decodificação incluindo o aparelho de codificação e decodificação com referência à Figura 25 e à Figura
26. Deve ser entendido que o aparelho de codificação e decodificação e o sistema de codificação e decodificação mostrados na Figura 25 e na Figura 26 podem realizar o método de obtenção de vetor de movimento nas modalidades desse pedido.
[0367] A Figura 25 é um diagrama esquemático de um aparelho de codificação e decodificação de vídeo de acordo com uma modalidade desse pedido. O aparelho de codificação e decodificação de vídeo 50 pode ser um aparelho dedicado para codificar e/ou decodificar uma imagem de vídeo, ou um dispositivo eletrônico tendo uma função de codificação e decodificação de vídeo. Alternativamente, o aparelho de codificação e decodificação 50 pode ser um terminal móvel ou equipamento de usuário em sistema de comunicações sem fio.
[0368] O aparelho de codificação e decodificação 50 pode incluir os seguintes módulos ou unidades: um controlador 56, um codec 54, uma interface de rádio 52, uma antena 44, um cartão inteligente 46, um leitor de cartão 48, um teclado 34, uma memória 58, uma porta de infravermelho 42, e um visor 32. Além disso para os módulos e as unidades mostradas na Figura 25, o aparelho de codificação e decodificação 50 pode adicionalmente incluir um microfone e qualquer módulo de entrada de áudio apropriado. O módulo de entrada de áudio pode inserir um sinal digital ou um sinal analógico. O aparelho de codificação e decodificação 50 pode adicionalmente incluir um módulo de saída de áudio. O módulo de saída de áudio pode ser um fone de ouvido, um alto-falante, ou uma conexão de saída de áudio analógica ou uma conexão de saída de áudio digital. O aparelho de codificação e decodificação 50 pode adicionalmente incluir uma bateria. A bateria pode ser uma célula solar, uma célula de combustível, ou semelhantes. O aparelho de codificação e decodificação 50 pode adicionalmente incluir a porta de infravermelho configurada para realizar comunicação de linha de visão de curto alcance com um outro dispositivo. O aparelho de codificação e decodificação 50 pode alternativamente se comunicar com um outro dispositivo em qualquer modo de comunicação de curto alcance apropriado, por exemplo, através de uma conexão Bluetooth sem fio ou uma conexão USB/com fio em linha ao vivo.
[0369] A memória 58 pode armazenar dados em uma forma de uma imagem e dados em uma forma de áudio, e pode também armazenar uma instrução para ser executada no controlador 56.
[0370] O codec 54 pode codificar e decodificar dados de áudio e/ou de vídeo ou implantar, sob o controle do controlador 56, codificação assistida e decodificação assistida em dados de áudio e/ou de vídeo.
[0371] O cartão inteligente 46 e o leitor de cartão 48 podem fornecer informações de usuário e podem também fornecer informações de autenticação de autenticação de rede e um usuário autorizado. Formas de implantação específicas do cartão inteligente 46 e do leitor de cartão 48 podem ser um cartão de circuito integrado universal (universal Integrated circuit card, UICC) e um leitor de UICC.
[0372] A interface de rádio 52 pode gerar um sinal de comunicação sem fio. O sinal de comunicação sem fio pode ser um sinal de comunicação gerado durante comunicação em uma rede de comunicações celular, um sistema de comunicações sem fio, ou uma rede de área local sem fio.
[0373] A antena 44 é configurada para enviar, para um outro aparelho (pode haver um ou mais aparelhos), um sinal de frequência de rádio gerado pela interface de rádio 52, e pode ser adicionalmente configurada para receber um sinal de frequência de rádio a partir de um outro aparelho (pode haver um ou mais aparelhos).
[0374] Em algumas modalidades desse pedido, o aparelho de codificação e decodificação 50 pode receber dados de imagem de vídeo a serem processados a partir de um outro dispositivo antes de transmissão e/ou armazenamento. Em algumas outras modalidades desse pedido, o aparelho de codificação e decodificação 50 pode receber uma imagem através de uma conexão sem fio ou com fio e codificar/decodificar a imagem recebida.
[0375] A Figura 26 é um diagrama de blocos esquemático de um sistema de codificação e decodificação de vídeo 7000 de acordo com uma modalidade desse pedido.
TUTT
[0376] Conforme mostrado na Figura 26, o sistema de codificação e decodificação de vídeo 7000 inclui um aparelho de fonte 4000 e um aparelho de destino 5000. O aparelho de fonte 4000 gera dados de vídeo codificados. O aparelho de fonte 4000 pode também ser referido como um aparelho de codificação de vídeo ou um dispositivo de codificação de vídeo. O aparelho de destino 5000 pode decodificar os dados de vídeo codificados gerados pelo aparelho de fonte 4000. O aparelho de destino 5000 pode também ser referido como um aparelho de decodificação de vídeo ou um dispositivo de decodificação de vídeo.
[0377] Cada uma das formas de implantação específicas do aparelho de fonte 4000 e do aparelho de destino 5000 pode ser qualquer um dos seguintes dispositivos: um computador de mesa, um aparelho de computação móvel, um computador tipo notebook (por exemplo, um laptop), a computador tipo tablet, um set top box, um telefone inteligente, um fone, uma televisão, uma câmera, um aparelho visor, um aparelho de reprodução de mídia digital, um console de vídeo game, um computador para interior de veículo, ou um outro dispositivo similar.
[0378] O aparelho de destino 5000 pode receber os dados de vídeo codificados a partir do aparelho de fonte 4000 através de um canal 6000. O canal 6000 pode incluir uma ou mais mídias e/ou aparelhos que podem mover os dados de vídeo codificados do aparelho de fonte 4000 para o aparelho de destino
5000. Em um exemplo, o canal 6000 pode incluir uma ou mais mídias de comunicações que podem habilitar o aparelho de fonte 4000 para transmitir diretamente os dados de vídeo codificados para o aparelho de destino 5000 em tempo real. Nesse exemplo, o aparelho de fonte 4000 pode modular os dados de vídeo codificados de acordo com um padrão de comunicações (por exemplo, um protocolo de comunicações sem fio) e pode transmitir os dados de vídeo modulados para o aparelho de destino 5000. A uma ou mais mídias de comunicações pode(m) incluir mídias de comunicações sem fio e/ou com fio, por exemplo, um espectro de frequência de rádio (radio frequency, RF) ou um ou mais cabos de transmissão físicos. A uma ou mais mídias de comunicações pode(m) formar uma parte de uma rede com base em pacote (por exemplo, uma rede de área local, uma rede de longa distância, ou uma rede global (por exemplo, a internet)). A uma ou mais mídias de comunicações pode(m) incluir um roteador, um comutador, uma estação base, ou um outro dispositivo implantando comunicação entre o aparelho de fonte 4000 e o aparelho de destino 5000.
[0379] Em um outro exemplo, o canal 6000 pode incluir uma mídia de armazenamento que armazena os dados de vídeo codificados gerados pelo aparelho de fonte 4000. Nesse exemplo, o aparelho de destino 5000 pode acessar a mídia de armazenamento através de acesso por disco ou acesso por cartão. A mídia de armazenamento pode incluir uma pluralidade de mídias de armazenamento de dados localmente acessíveis tais como um disco Blu-ray, um disco de vídeo digital (digital vídeo disc, DVD) de alta densidade, uma memória somente leitura de disco compacto (compact disc read-only memory, CD-ROM), uma memória flash, ou uma outra mídia de armazenamento digital adequado configurado para armazenar os dados de vídeo codificados.
[0380] Em um outro exemplo, o canal 6000 pode incluir um servidor de arquivos ou um outro aparelho de armazenamento intermediário que armazena os dados de vídeo codificados gerados pelo aparelho de fonte 4000. Nesse exemplo, o aparelho de destino 5000 pode acessar, através de transmissão por streaming ou por download, os dados de vídeo codificados armazenados no servidor de arquivos ou o outro aparelho de armazenamento intermediário. O servidor de arquivos pode ser um tipo de servidor que pode armazenar os dados de vídeo codificados e transmitir os dados de vídeo codificados para o aparelho de destino 5000. Por exemplo, o servidor de arquivos pode incluir um servidor de rede mundial de computadores (world wide web, WWW ) (por exemplo, usado para um site da Web), um servidor de protocolo de
73/TT transferência de arquivo (file transfer protocol, FTP), um aparelho de armazenamento ligado à rede (network attached storage, NAS), ou uma unidade de disco local.
[0381] O aparelho de destino 5000 pode acessar os dados de vídeo codificados através de uma conexão de dados padrão (por exemplo, uma conexão de internet). Um exemplo de tipo da conexão de dados inclui um canal sem fio ou uma conexão com fio (por exemplo, um modem a cabo) que seja adequado para acessar os dados de vídeo codificados armazenados no servidor de arquivos, ou uma combinação dos mesmos. Transmissão de os dados de vídeo codificados a partir do servidor de arquivos pode ser transmissão por streaming, transmissão por download, ou uma combinação das mesmas.
[0382] O método de obtenção de vetor de movimento nesse pedido não é limitado a um cenário de aplicação sem fio. Por exemplo, o método de obtenção de vetor de movimento nesse pedido pode ser aplicado a codificação e decodificação de vídeo suportando uma pluralidade de aplicações multimídia tais como as seguintes aplicações: difusão de televisão sem uso de fios ou cabos, transmissão de televisão a cabo, transmissão de televisão por satélite, transmissão de vídeo por streaming (por exemplo, através da internet), codificação de dados de vídeo armazenados em uma mídia de armazenamento de dados, decodificação de dados de vídeo armazenados em uma mídia de armazenamento de dados, ou uma outra aplicação. Em alguns exemplos, o sistema de codificação e decodificação de vídeo 7000 pode ser configurado para suportar transmissão de vídeo unidirecional ou bidirecional, de modo a suportar aplicações tais como transmissão de vídeo por streaming, reprodução de vídeo, difusão de vídeo, e/ou videotelefonia.
[0383] Na Figura 26, o aparelho de fonte 4000 inclui uma fonte de vídeo 4001, um codificador de vídeo 4002, e uma interface de saída 4003. Em alguns exemplos, a interface de saída 4003 pode incluir um modulador/demodulador (modem) e/ou um transmissor. A fonte de vídeo 4001
7TAMTT pode incluir um aparelho de captura de vídeo (por exemplo, uma câmera de vídeo), um arquivo de vídeo incluindo dados de vídeo previamente capturados, uma interface de entrada de vídeo configurada para receber dados de vídeo a partir de um fornecedor de conteúdo de vídeo, e/ou um sistema gráfico de computador configurado para gerar dados de vídeo, ou incluir uma combinação das supracitadas fontes de dados de vídeo.
[0384] O codificador de vídeo 4002 pode codificar dados de vídeo a partir da fonte de vídeo 4001. Em alguns exemplos, o aparelho de fonte 4000 transmite diretamente dados de vídeo codificados para o aparelho de destino 5000 através da interface de saída 4003. Os dados de vídeo codificados podem ser adicionalmente armazenados em uma mídia de armazenamento ou um servidor de arquivos, de modo que o aparelho de destino 5000 acesse os dados de vídeo codificados mais tarde para decodificar e/ou reproduzir.
[0385] No exemplo na Figura 26, o aparelho de destino 5000 inclui uma interface de entrada 5003, um decodificador de vídeo 5002, e um aparelho visor 5001. Em alguns exemplos, a interface de entrada 5003 inclui um receptor e/ou um modem. A interface de entrada 5003 pode receber os dados de vídeo codificados através do canal 6000. O aparelho visor 5001 pode ser integrado ao aparelho de destino 5000 ou pode estar localizado fora do aparelho de destino
5000. Normalmente, o aparelho visor 5001 exibe dados de vídeo decodificados. O aparelho visor 5001 pode incluir uma pluralidade de tipos de aparelho de exibição tais como um visor de cristal líquido, um visor de plasma, um visor de diodo emissor de luz orgânico, ou um aparelho visor de um outro tipo.
[0386] O codificador de vídeo 4002 e o decodificador de vídeo 5002 podem operar de acordo com uma compactação de vídeo padrão (por exemplo, uma codificação de vídeo de alta eficiência H.265 padrão), e pode atender um modelo de teste (HM) com uma codificação de vídeo de alta eficiência (high efficiency video coding, HEVC). A descrição de texto ITU-TH.265(V3)(04/2015) do padrão H.265 é lançada em 29 de abril de 2015, e pode ser baixada a partir de http://handle.itu.int/11.1002/7000/12455. O arquivo é incorporado nesse relatório em sua totalidade a título de referência.
[0387] Uma pessoa de habilidade comum na técnica pode estar ciente de que, em combinação com os exemplos descritos nas modalidades reveladas nesse relatório, unidades e etapas de algoritmo podem ser implantadas por hardware eletrônico ou uma combinação de software de computador e hardware eletrônico. Se as funções são realizadas por hardware ou software depende de aplicações específicas e restrições de projeto das soluções técnicas. A pessoa habilitada na técnica pode usar diferentes métodos para implantar as funções descritas para cada aplicação particular, mas não deve ser considerado que a implantação vá além do escopo desse pedido.
[0388] Pode ser claramente entendido por uma pessoa habilitada na técnica que, com o propósito de uma descrição conveniente e breve, para um processo de funcionamento detalhado do sistema, aparelho, e unidade supracitados, deve-se fazer referência a um processo correspondente nas modalidades de método. Detalhes não são descritos no presente documento novamente.
[0389] Nas diversas modalidades fornecidas nesse pedido, deve ser entendido que o sistema, aparelho, e método revelados podem ser implantados em uma outra maneira. Por exemplo, as modalidades de aparelho descritas são meramente exemplos. Por exemplo, a divisão nas unidades é meramente divisão de função lógica. Pode haver uma outra maneira de divisão na implantação efetiva. Por exemplo, uma pluralidade de unidades ou componentes podem ser combinados ou integrados em um outro sistema, ou alguns recursos podem ser ignorados ou não realizados. Além disso, os acoplamentos mútuos ou acoplamentos diretos ou conexões de comunicação mostrados ou discutidos podem ser implantados através de algumas interfaces. Os acoplamentos indiretos ou conexões de comunicação entre os aparelhos ou unidades podem ser implantados em formas eletrônicas, mecânicas, ou outras formas.
[0390] As unidades descritas como partes separadas podem ser fisicamente separadas ou não, e partes mostradas como unidades podem ser unidades físicas ou não, podem estar dentro de um lugar, ou podem ser distribuídas em uma pluralidade de unidades de rede. Algumas das ou todas as unidades podem ser selecionadas com base em exigências efetivas para alcançar os objetivos das soluções das modalidades.
[0391] Além disso, unidades de função nas modalidades desse pedido podem ser integradas em uma unidade de processamento, ou cada uma das unidades pode existir sozinha fisicamente, ou duas ou mais unidades podem ser integradas em uma unidade.
[0392] Quando as funções são implantadas em uma forma de uma unidade de função de software e vendidas ou usadas como um produto independente, as funções podem ser armazenadas em uma mídia de armazenamento legível por computador. Com base nesse entendimento, as soluções técnicas desse pedido essencialmente, ou a parte que contribui para a técnica anterior, ou algumas das soluções técnicas podem ser implantadas em uma forma de um produto de software. O produto de software de computador é armazenado em uma mídia de armazenamento, e inclui diversas instruções para instruir um dispositivo de computador (que pode ser um computador pessoal, um servidor, ou um dispositivo de rede) para realizar todas as ou algumas das etapas dos métodos descritos nas modalidades desse pedido. A supracitada mídia de armazenamento inclui qualquer mídia que possa armazenar código de programa, tal como um pen drive, um disco rígido removível, uma memória somente leitura (read-only memory, ROM), uma memória de acesso aleatório (random access memory, RAM), um disco magnético, ou um disco compacto.
[0393] As supracitadas descrições são meramente implantações específicas desse pedido, mas não são destinadas a limitar o escopo de proteção desse pedido. Qualquer variação ou substituição prontamente percebida por uma pessoa habilitada na técnica dentro do escopo técnico
T7TT revelado nesse pedido estará abrangida pelo escopo de proteção desse pedido.
Portanto, o escopo de proteção desse pedido estará sujeito ao escopo de proteção das reivindicações.

Claims (16)

REIVINDICAÇÕES
1. Método de obtenção de vetor de movimento, compreendendo: determinar um vetor de deslocamento alvo de um bloco e informações de identificador de uma imagem alvo, em que o bloco compreende pelo menos um sub-bloco; determinar uma localização do sub-bloco; determinar, como uma localização alvo de um sub-bloco colocalizado, uma localização obtida realizando-se uma operação de recorte em uma localização inicial do sub-bloco colocalizado em uma faixa, em que a localização inicial é determinada com base na localização do sub-bloco e no vetor de deslocamento alvo, e o sub-bloco colocalizado está na imagem alvo e corresponde ao sub-bloco, em que a imagem alvo é indicada pelas informações de identificador; e obter um vetor de movimento do sub-bloco com base em um vetor de movimento correspondente à localização alvo.
2. Método, de acordo com a reivindicação 1, em que a faixa é representada por uma faixa de valores de coordenada horizontal e uma faixa de valores de coordenada vertical, a faixa de valores de coordenada horizontal compreende um valor de coordenada horizontal mínimo e um valor de coordenada horizontal máximo, e a faixa de valores de coordenada vertical compreende um valor de coordenada vertical mínimo e um valor de coordenada vertical máximo.
3. Método, de acordo com a reivindicação 1 ou 2, em que a determinação, como uma localização alvo, de uma localização obtida realizando- se uma operação de recorte em uma localização inicial de um sub-bloco colocalizado em uma faixa, compreende: determinar a localização alvo de acordo com as seguintes fórmulas: “tm = Clip3(HorMin, HorMax, *t); e Ji = Clip3(VerMin, VerMax, Yi), em que HorMin é o valor de coordenada horizontal mínimo, HorMax é o valor de coordenada horizontal máximo, VerMin é o valor de coordenada vertical mínimo, VerMax é o valor de coordenada vertical máximo, uma função Clip3 é uma função de recorte, e a função Clip3 é definida conforme a seguir:
x;Z<x chpacy =| z>y .
z; outras opções
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, em que uma coordenada horizontal da localização inicial do sub-bloco colocalizado é a soma de uma coordenada horizontal da localização do sub- bloco e um componente horizontal (xon) do vetor de movimento de deslocamento alvo; e/ou uma coordenada vertical da localização inicial do sub-bloco colocalizado é a soma de uma coordenada vertical da localização do sub-bloco e um componente vertical (yos) do vetor de movimento de deslocamento alvo.
5. Método, de acordo com qualquer uma das reivindicações 1 a 3, em que coordenadas de localização da localização inicial do sub-bloco colocalizado são derivadas conforme a seguir: ES cxtMxi+Ão, Ya Ft Nxj+ z +Yg , em que (x, y) representa coordenadas de localização do bloco, i representa o iésimo sub-bloco no bloco em uma direção horizontal, j representa o jés'mº sub- bloco no bloco em uma direção vertical, (Xof, Yyos) representa valores de componentes do vetor de movimento de deslocamento alvo na direção horizontal e na direção vertical, M e N são respectivamente uma largura e uma altura do sub-bloco, e ( D, Ver) representa coordenadas de localização da localização inicial do sub-bloco colocalizado que corresponde ao (i, j)ésimº sub-bloco.
6. Método, de acordo com a reivindicação 5, em que (x, y) representa coordenadas de localização de um vértice superior à esquerda do bloco, e ( D, Neo) representa coordenadas de localização de um ponto de centro ou um vértice superior à esquerda do sub-bloco colocalizado que corresponde ao (i, j)ésmo sub-bloco.
7. Método, de acordo com qualquer uma das reivindicações 1 a 3, em x+MXIS A yang À Edf que ( 2, 2 ) representa coordenadas de localização do (i, j)ésimo sub-
bloco, e (x, y) representa coordenadas de localização do bloco, i representa o iésimo sub-bloco no bloco em uma direção horizontal, j representa o jés'mº sub- bloco no bloco em uma direção vertical, M e N são respectivamente uma largura e uma altura do sub-bloco.
8. Método, de acordo com qualquer uma das reivindicações 1 a 3, em que a faixa é determinada com base em uma localização e em um tamanho de uma unidade de árvore de codificação CTU na qual o bloco é incluído, um tamanho da imagem alvo, e uma faixa de extensão de um campo de vetor de movimento temporal da CTU.
9. Método, de acordo com a reivindicação 8, em que a faixa é determinada de acordo com as seguintes fórmulas: HorMin = Max(CTUX — RangeL, O); HorMax = Min(CTUX + CTUW + RangeR — 1, PicW — 1); VerMin = Max(CTUY — RangeU, 0); e VerMax = Min(CTUY + CTUH + RangeB — 1, PicH — 1), em que HorMin e HorMax são respectivamente um valor mínimo e um valor máximo da faixa na direção horizontal, VerMin e VerMax são respectivamente um valor mínimo e um valor máximo da faixa na direção vertical, CTUX e CTUY representam coordenadas de localização da CTU na qual o bloco é incluído, CTUW e CTUH representam uma largura e uma altura da CTU na qual o bloco é incluído, RangeU, RangeB, RangeL, e RangeR respectivamente representam valores de faixa de extensão que estão em uma direção ascendente, em uma direção descendente, em uma direção para a esquerda, e em uma direção para a direita e que são do campo de vetor de movimento temporal da CTU na qual o bloco é incluído, e PicW e PicH são respectivamente uma largura e uma altura da imagem alvo.
10. Método, de acordo com a reivindicação 8 ou 9, em que um valor da faixa de extensão do campo de vetor de movimento temporal da CTU (RangeU, RangeB, RangeL ou RangeR) é um valor predeterminado.
11. Método, de acordo com qualquer uma das reivindicações 1 a 10, em que a obtenção de um vetor de movimento do sub-bloco com base em um vetor de movimento correspondente à localização alvo compreende: escalonar o vetor de movimento correspondente à localização alvo com base em uma contagem de ordem de imagem POC de uma imagem compreendendo o sub-bloco, uma POC de uma imagem de referência alvo da imagem compreendendo o sub-bloco, uma POC da imagem alvo, e uma POC de uma imagem de referência alvo da imagem alvo, para obter o vetor de movimento do sub-bloco.
12. Método, de acordo com a reivindicação 11, em que o vetor de movimento do sub-bloco é obtido de acordo com a seguinte fórmula: mr.- PI-P2, uy P3-PA4 , em que P1 representa a POC da imagem incluindo o sub-bloco, P2 representa a POC da imagem de referência alvo da imagem incluindo o sub-bloco, P3 representa a POC da imagem alvo, P4 representa a POC da imagem de referência alvo da imagem alvo, MV representa o vetor de movimento correspondente à localização alvo, e MVs representa o vetor de movimento do sub-bloco.
13. Método, de acordo com qualquer uma das reivindicações 1 a 12, em que a determinação do vetor de deslocamento alvo do bloco compreende: determinar um vetor de movimento de um bloco espacialmente vizinho do bloco como o vetor de deslocamento alvo.
14. Aparelho de decodificação, em que o aparelho de decodificação compreende uma memória e um processador, em que a memória é configurada para armazenar código de programa, e o processador é configurado para invocar o código de programa para realizar o método conforme definido em qualquer uma das reivindicações 1 a 13.
15. Aparelho de encodificação, em que o aparelho de codificação compreende uma memória e um processador, em que a memória é configurada para armazenar código de programa, e o processador é configurado para invocar o código de programa para realizar o método conforme definido em qualquer uma das reivindicações 1 a 13.
16. Produto de programa de computador, compreendendo código de programa, em que o código de programa é usado para realizar o método conforme definido em qualquer uma das reivindicações 1 a 13.
od a 28 = ss 3º o
E s o RE e E Es E EN 38 8 135 885 s =>o às sz = E sã EE 2.9 ê
O E 1 +
O O +
Ô o Q — 9 mm &
TE 2 É
A Zz s o & 8 s o É PP vs & 88 8 2 E 2 ã || 7 ns - o à Tn q Bi o ã e 82 Es 2 o Es) ss £ & & é &õã oi > & 2 3
E 8 > sê > ” =
E s $ é ê 2 [ÀS SS 228&> a 888 28&
E +
O
Ô
Q O o g
E - E s = o o 8 8 -. & 7” 7 & & Rs a
E
É q o = 7 = z Eh Z os SS a 72 Bm ã 2 &êã 2 = z s Ãã &
BR112020024666-2A 2018-06-04 2019-06-04 método e aparelho de obtenção de vetor de movimento BR112020024666A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810564560.8A CN110557641B (zh) 2018-06-04 2018-06-04 获取运动矢量的方法和装置
CN201810564560.8 2018-06-04
PCT/CN2019/090031 WO2019233423A1 (zh) 2018-06-04 2019-06-04 获取运动矢量的方法和装置

Publications (1)

Publication Number Publication Date
BR112020024666A2 true BR112020024666A2 (pt) 2021-03-02

Family

ID=68736012

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020024666-2A BR112020024666A2 (pt) 2018-06-04 2019-06-04 método e aparelho de obtenção de vetor de movimento

Country Status (12)

Country Link
US (3) US11463721B2 (pt)
EP (2) EP3796657B1 (pt)
JP (2) JP7177181B2 (pt)
KR (2) KR20230156446A (pt)
CN (6) CN117956182A (pt)
BR (1) BR112020024666A2 (pt)
DK (1) DK3796657T3 (pt)
FI (1) FI3796657T3 (pt)
MX (1) MX2020013131A (pt)
PT (1) PT3796657T (pt)
SG (1) SG11202012078PA (pt)
WO (1) WO2019233423A1 (pt)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111050182B (zh) * 2019-12-27 2022-02-18 浙江大华技术股份有限公司 运动矢量的预测方法、视频编码方法及相关设备、装置
CN113706573B (zh) * 2020-05-08 2024-06-11 杭州海康威视数字技术股份有限公司 一种运动物体的检测方法、装置及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101291433A (zh) * 2007-04-19 2008-10-22 上海中科计算技术研究所 视频编码技术中的模块运动矢量匹配评估方法
KR20120088488A (ko) * 2011-01-31 2012-08-08 한국전자통신연구원 시간적 움직임 벡터 저장 방법 및 그 장치
CN103716629B (zh) * 2012-09-29 2017-02-22 华为技术有限公司 用于图像处理的方法、装置、编码器和解码器
JP2016526853A (ja) * 2013-07-12 2016-09-05 サムスン エレクトロニクス カンパニー リミテッド 深さ基盤ディスパリティベクトルを利用するインターレイヤビデオ復号化方法及びその装置、並びに深さ基盤ディスパリティベクトルを利用するインターレイヤビデオ符号化方法及びその装置
JP2015106747A (ja) * 2013-11-28 2015-06-08 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
JP2015173404A (ja) * 2014-03-12 2015-10-01 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
GB2521491B (en) * 2014-06-17 2016-10-19 Imagination Tech Ltd Motion estimation
WO2016008157A1 (en) * 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Methods for motion compensation using high order motion model
US11477477B2 (en) * 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
CN104918057B (zh) * 2015-05-08 2018-07-13 上海交通大学 一种利用邻域运动信息的运动矢量后处理系统
US10200713B2 (en) * 2015-05-11 2019-02-05 Qualcomm Incorporated Search region determination for inter coding within a particular picture of video data
US10306258B2 (en) * 2016-01-29 2019-05-28 Google Llc Last frame motion vector partitioning
US10560718B2 (en) * 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
CN105939475A (zh) * 2016-06-06 2016-09-14 中国矿业大学 一种高质量边信息生成方法
CN108076347B (zh) * 2016-11-15 2021-11-26 阿里巴巴集团控股有限公司 一种编码起始点的获取方法以及装置
WO2018210315A1 (en) * 2017-05-18 2018-11-22 Mediatek Inc. Method and apparatus of motion vector constraint for video coding
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
WO2019004283A1 (ja) * 2017-06-28 2019-01-03 シャープ株式会社 動画像符号化装置及び動画像復号装置
CN117579828A (zh) * 2018-01-09 2024-02-20 夏普株式会社 运动矢量推导装置、运动图像解码装置以及运动图像编码装置
JP7260562B2 (ja) * 2018-01-29 2023-04-18 ヴィド スケール インコーポレイテッド 複雑性の低いフレームレートアップ変換
WO2019190224A1 (ko) * 2018-03-30 2019-10-03 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US11381834B2 (en) * 2018-04-02 2022-07-05 Hfi Innovation Inc. Video processing methods and apparatuses for sub-block motion compensation in video coding systems

Also Published As

Publication number Publication date
JP7177181B2 (ja) 2022-11-22
SG11202012078PA (en) 2021-01-28
EP3796657A1 (en) 2021-03-24
EP3796657B1 (en) 2024-03-06
CN110557641A (zh) 2019-12-10
CN112040243B (zh) 2021-06-29
CN117956182A (zh) 2024-04-30
JP2023017955A (ja) 2023-02-07
MX2020013131A (es) 2021-03-25
KR20210015931A (ko) 2021-02-10
FI3796657T3 (fi) 2024-05-20
KR102600071B1 (ko) 2023-11-07
US20210092433A1 (en) 2021-03-25
CN115550664A (zh) 2022-12-30
PT3796657T (pt) 2024-05-20
JP2021526338A (ja) 2021-09-30
EP4369711A2 (en) 2024-05-15
CN110557641B (zh) 2024-01-16
CN115550664B (zh) 2023-08-22
US11463721B2 (en) 2022-10-04
EP3796657A4 (en) 2021-06-23
US20230070282A1 (en) 2023-03-09
CN117956183A (zh) 2024-04-30
CN112040243A (zh) 2020-12-04
WO2019233423A1 (zh) 2019-12-12
DK3796657T3 (da) 2024-05-21
US11812050B2 (en) 2023-11-07
US20240121421A1 (en) 2024-04-11
KR20230156446A (ko) 2023-11-14
CN118075486A (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
US11252436B2 (en) Video picture inter prediction method and apparatus, and codec
ES2874848T3 (es) Restricción de unidades de predicción en segmentos b a interpredicción unidireccional
US11812050B2 (en) Motion vector obtaining method and apparatus
CN110868602B (zh) 视频编码器、视频解码器及相应方法
WO2020048205A1 (zh) 应用于双向帧间预测中的参考帧获取方法及装置
US20230239494A1 (en) Video encoder, video decoder, and corresponding method
BR112020018923A2 (pt) Método e aparelho de predição inter bidirecional
CN110677645B (zh) 一种图像预测方法及装置
KR102566569B1 (ko) 인터 예측 방법 및 장치, 비디오 인코더 및 비디오 디코더
CN110971899B (zh) 一种确定运动信息的方法、帧间预测方法及装置

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]