BR112019028012A2 - dispositivo e método para determinar um vetor de movimento, codificador e decodificador de vídeo para codificar e decodificar uma pluralidade de fotos - Google Patents

dispositivo e método para determinar um vetor de movimento, codificador e decodificador de vídeo para codificar e decodificar uma pluralidade de fotos Download PDF

Info

Publication number
BR112019028012A2
BR112019028012A2 BR112019028012-0A BR112019028012A BR112019028012A2 BR 112019028012 A2 BR112019028012 A2 BR 112019028012A2 BR 112019028012 A BR112019028012 A BR 112019028012A BR 112019028012 A2 BR112019028012 A2 BR 112019028012A2
Authority
BR
Brazil
Prior art keywords
search space
candidate
motion vector
vector
block
Prior art date
Application number
BR112019028012-0A
Other languages
English (en)
Inventor
Semih ESENLIK
Anand Meher KOTRA
Zhijie ZHAO
Han Gao
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 BR112019028012A2 publication Critical patent/BR112019028012A2/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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting 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/55Motion estimation with spatial constraints, e.g. at image or region borders
    • 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/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs

Landscapes

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

Abstract

A presente invenção refere-se à construção de um espaço de busca para determinar um vetor de movimento para um bloco atual de uma foto em uma sequência de vídeos. O espaço de busca construção é dividido em dois estágios principais, em que um primeiro e um segundo espaço de busca parcial são respectivamente determinados. Com base em uma estimativa inicial de um vetor de movimento, um primeiro espaço de busca é primeiro construído. Um primeiro e um segundo movimento candidato do primeiro espaço de busca são identificados de acordo com uma função de custo. Com base no primeiro e no segundo vetores de movimento candidatos, um segundo espaço de busca é construído. O vetor de movimento para o bloco atual é selecionado dos vetores de movimento candidatos do primeiro espaço de busca e do segundo espaço de busca.

Description

Relatório Descritivo da Patente de Invenção para "DISPOSITIVO E MÉTODO PARA DETERMINAR UM VETOR DE MOVIMENTO, CODIFICADOR E DECODIFICADOR DE VÍDEO PARA CODIFICAR E DECODIFICAR UMA PLURALIDADE DE FOTOS".
[001] A presente invenção se refere à construção de um espaço de busca para determinar vetores de movimento de um bloco de uma foto em uma sequência de vídeos. Antecedentes
[002] Os codecs de vídeo híbridos atuais empregam codificação preditiva. Uma imagem de uma sequência de vídeo é subdividida em blocos de pixels e esses blocos são codificados. Em vez de codificar um bloco pixel por pixel, o bloco inteiro é previsto usando pixels já codificados na proximidade espacial ou temporal do bloco. O codificador ainda processa apenas as diferenças entre o bloco e sua previsão. O processamento adicional normalmente inclui uma transformação dos pixels do bloco em coeficientes em um domínio de transformação. Os coeficientes podem então ser ainda mais compactados (por exemplo, por meio de quantização) e ainda compactados (por exemplo, por codificação de entropia) para formar um fluxo contínuo de dados. O fluxo contínuo de dados pode ainda incluir qualquer informação de sinalização que permita ao decodificador decodificar o vídeo codificado. Por exemplo, a sinalização pode incluir configurações relativas às configurações do codificador, como tamanho da imagem de entrada, taxa de quadros, indicação da etapa de quantização, previsão aplicada aos blocos das imagens ou similares.
[003] As diferenças entre um bloco e sua previsão são conhecidas como residuais do bloco. Mais especificamente, cada pixel do bloco tem um resíduo, que é a diferença entre um nível de intensidade desse pixel e seu nível de intensidade previsto. O nível de intensidade de um pixel é chamado de valor ou valor do pixel. Os resíduos de todos os pixels de um bloco são referidos coletivamente como o resíduo do bloco. Em outras palavras, o bloco possui um resíduo que é um conjunto ou matriz que consiste nos resíduos de todos os pixels do bloco.
[004] A previsão temporal explora a correlação temporal entre as imagens, também conhecidas como quadros, de um vídeo. A previsão temporal também é chamada de interprevisão, pois é uma previsão usando as dependências entre (inter) diferentes quadros de vídeo. Por conseguinte, um bloco a ser decodificado, também conhecido como bloco atual, é previsto a partir de uma ou mais imagens decodificadas anteriormente, referidas como imagens de referência. As uma ou mais imagens de referência não são necessariamente imagens que precedem a imagem atual na qual o bloco atual está localizado na ordem de exibição da sequência de vídeo. O codificador pode codificar as imagens em uma ordem de codificação diferente da ordem de exibição. Como uma previsão do bloco atual, um bloco colocalizado (referido como preditor) em uma imagem de referência pode ser determinado. O bloco colocalizado pode estar localizado na imagem de referência na mesma posição que o bloco atual na imagem atual. Essa previsão é precisa para regiões de imagem sem movimento, isto é, regiões de imagem sem movimento de uma imagem para outra.
[005] No codificador, a fim de obter um preditor que leva em consideração o movimento, isto é, um preditor de movimento compensado, a estimativa de movimento é tipicamente empregada. O bloco atual é previsto por um bloco localizado na imagem de referência em uma posição indicada por um vetor de movimento. O vetor de movimento aponta da posição do bloco colocalizado para a posição do bloco atual (ou vice-versa, dependendo da convenção de sinal). Para permitir que um decodificador determine a mesma previsão do bloco de corrente que o codificador, o vetor de movimento pode ser sinalizado no fluxo contínuo de dados. A fim de reduzir ainda mais a sobrecarga de sinalização causada pela sinalização do vetor de movimento para cada um dos blocos, o próprio vetor de movimento pode ser estimado. A estimativa do vetor de movimento pode ser realizada com base nos vetores de movimento dos blocos vizinhos do bloco atual no domínio espacial e / ou temporal.
[006] A previsão do bloco atual pode ser calculada usando uma imagem de referência ou ponderando as previsões obtidas a partir de duas ou mais imagens de referência. A imagem de referência pode ser uma imagem adjacente, isto é, uma imagem imediatamente anterior ou imediatamente após a imagem atual na ordem de exibição, uma vez que as imagens adjacentes provavelmente são semelhantes à imagem atual. No entanto, em geral, a imagem de referência pode ser qualquer imagem anterior ou posterior à imagem atual na ordem de exibição e anterior à imagem atual no fluxo contínuo de dados (ordem de decodificação). Isso pode oferecer vantagens, por exemplo, no caso de oclusões e / ou movimento não linear no conteúdo do vídeo. A imagem de referência pode ser sinalizada no fluxo contínuo de dados.
[007] Um modo especial da interprevisão é a chamada biprevisão, na qual duas imagens de referência são usadas para gerar a previsão do bloco atual. Em particular, duas previsões determinadas nas duas figuras de referência respectivas são combinadas em um sinal de previsão do bloco atual. A biprevisão pode resultar em uma previsão mais precisa do bloco atual do que a uniprevisão, ou seja, previsão usando apenas uma única imagem de referência. A previsão mais precisa leva a diferenças menores entre os pixels do bloco atual e a previsão (isto é, para resíduos menores), que podem ser codificados com mais eficiência, isto é, compactados para um fluxo contínuo de dados mais curto.
[008] Para fornecer uma estimativa de movimento mais precisa, a resolução da imagem de referência pode ser aprimorada, por exemplo, interpolando amostras entre pixels. A interpolação fracionária de pixels pode ser realizada pela média ponderada dos pixels mais próximos. Por exemplo, no caso de resolução de meio pixel, uma interpolação bilinear pode ser usada. Outros pixels fracionários podem ser calculados como uma média dos pixels mais próximos ponderados, por exemplo, pelo inverso da distância entre os respectivos pixels mais próximos do pixel previsto.
[009] Um vetor de movimento pode ser estimado, por exemplo, calculando uma similaridade entre o bloco atual e os blocos de previsão correspondentes apontados pelos vetores de movimento candidatos na imagem de referência. Essa pode ser uma tarefa computacional complexa. Para reduzir a complexidade, o número de vetores de movimento candidato pode ser reduzido, limitando-o a um determinado espaço de busca. O espaço de busca pode ser, por exemplo, definido por um número e / ou posições de pixels ao redor da posição na imagem de referência correspondente à posição do bloco atual na imagem atual. Alternativamente, os vetores de movimento candidatos podem ser definidos por uma lista de vetores de movimento candidatos formados por vetores de movimento de blocos vizinhos.
[0010] Os vetores de movimento são geralmente pelo menos parcialmente determinados no lado do codificador e sinalizados para o decodificador dentro do fluxo contínuo de dados codificado. No entanto, os vetores de movimento também podem ser derivados no decodificador. Nesse caso, o bloco atual não está disponível no decodificador e não pode ser usado para calcular a semelhança entre o bloco atual e qualquer um dos blocos para os quais os vetores de movimento candidatos apontam na imagem de referência. Portanto, em vez do bloco atual, pode ser usado um modelo que pode ser construído com pixels de blocos já decodificados. Por exemplo, pixels já decodificados adjacentes ao bloco atual podem ser usados. Essa estimativa de movimento fornece uma vantagem de reduzir a sinalização: o vetor de movimento é derivado da mesma maneira no codificador e no decodificador e, portanto, nenhuma sinalização é necessária. Por outro lado, a precisão dessa estimativa de movimento pode ser menor.
[0011] A fim de fornecer uma troca entre a precisão e a sobrecarga de sinalização, a estimativa do vetor de movimento pode ser dividida em duas etapas: derivação do vetor de movimento e refinamento do vetor de movimento. Por exemplo, uma derivação de vetor de movimento pode incluir a seleção de um vetor de movimento da lista de candidatos. O vetor de movimento selecionado pode ser refinado ainda mais, por exemplo, por uma busca dentro de um espaço de busca. A busca no espaço de busca é baseada no cálculo de uma função de custo para cada vetor de movimento candidato, isto é, para cada posição candidata do bloco para o qual o vetor de movimento candidato aponta.
[0012] Documento JVET-D0029: Refinamento do vetor de movimento do lado do decodificador Documento JVET-D0029: Refinamento do vetor de movimento do lado do decodificador com base na correspondência bilateral de modelos, X. Chen, J. An, J. Zheng (O documento pode ser encontrado em: http://phenix.it-sudparis.eu/jvet/ site) mostra o refinamento do vetor de movimento no qual um primeiro vetor de movimento na resolução de pixels inteiros é encontrado e refinado ainda mais por uma busca com resolução de meio pixel em um espaço de busca em torno do primeiro vetor de movimento. Aqui, a resolução de pixel (por exemplo, inteiro ou meio inteiro) descreve a resolução do espaço de busca, isto é, o deslocamento dos pontos buscados para o vetor de movimento não refinado que é inserido no processo. Como resultado, as coordenadas de busca do estágio de refinamento não coincidem necessariamente com as coordenadas de pixel reais no plano da imagem.
SUMÁRIO
[0013] Partindo das abordagens descritas acima, é um objetivo da presente descrição aumentar ainda mais a eficiência da estimativa do vetor de movimento, a fim de melhorar a eficiência da codificação e / ou reduzir a complexidade.
[0014] A fim de alcançar isso, um esquema para construir um espaço de busca para refinamento do vetor de movimento é fornecido, envolvendo um primeiro espaço de busca e um segundo espaço de busca. O número de posições e/ou de posições do segundo espaço de busca é determinado de acordo com duas posições no primeiro espaço de busca que são derivados com base em uma função de custo.
[0015] Em particular, de acordo com um primeiro aspecto, um dispositivo para determinar um vetor de movimento a ser usado na interprevisão de um bloco atual de um quadro de vídeo é fornecido. O dispositivo compreende uma unidade de determinação de espaço de busca para obter uma estimativa do vetor de movimento e determinar um primeiro espaço de busca compreendendo uma pluralidade de vetores de movimento candidatos com base na estimativa, selecionar um primeiro e um segundo vetor de movimento candidato no primeiro espaço de busca de acordo com uma função de custo, e determinar um segundo espaço de busca compreendendo um ou mais vetores de movimento candidatos com base no primeiro e no segundo vetores de movimento candidatos. O dispositivo ainda compreende uma unidade de seleção do vetor de movimento para selecionar o vetor de movimento para o bloco atual dentre os vetores de movimento candidatos do primeiro espaço de busca e o segundo espaço de busca.
[0016] Como uma vantagem, o número de vetores de movimento candidatos testados no processo de refinamento do vetor de movimento no lado do decodificador pode ser reduzido, enquanto mantém um desempenho de codificação de alta qualidade com relação à qualidade da foto e taxa de bits.
[0017] Vantajosamente, a função de custo é com base em um modelo predeterminado e indica, para o respectivo vetor de movimento candidato, um nível de similaridade entre o modelo predeterminado e um preditor apontado pelo respectivo vetor de movimento candidato. A unidade de determinação de espaço de busca é, portanto, configurada para selecionar, as o primeiro e o segundo vetor de movimento candidato, dois vetores de movimento candidatos no primeiro espaço de busca que apontam aos preditores do bloco atual que são similares ao modelo predeterminado.
[0018] De acordo com uma primeira modalidade, a unidade de determinação de espaço de busca é ainda configurada para determinar o tamanho e/ou a posição do segundo espaço de busca de acordo com uma direção de uma linha conectando as posições apontadas pelo primeiro e pelo segundo vetor de movimento candidato; em outras palavras, de acordo com a direção de um vetor de diferença do primeiro e do segundo vetor de movimento candidato. O vetor de diferença pode ser definido como o primeiro vetor de movimento candidato subtraído do segundo vetor de movimento candidato, ou vice-versa.
[0019] Por exemplo, a unidade de determinação de espaço de busca é ainda configurada para definir o primeiro espaço de busca para ter uma resolução de pixel de número inteiro. A unidade de determinação de espaço de busca é configurada para incluir no segundo espaço de busca um ou mais vetores de movimento candidatos que apontam às posições localizada na direção de uma linha conectando as posições nas quais o primeiro e o segundo vetor de movimento candidato apontam, o segundo espaço de busca tendo uma resolução de pixel fracionário. A direção desta linha é, em outras palavras, a direção do vetor de diferença do primeiro e do segundo vetor de movimento candidato.
[0020] Como um exemplo, pelo menos um dos vetores de movimento candidatos do segundo espaço de busca aponta para uma posição entre posições apontadas pelo primeiro e pelo segundo vetor de movimento candidato.
[0021] De acordo com uma segunda modalidade, a unidade de determinação de espaço de busca é configurada para determinar uma localização de uma região incluindo pelo menos duas posições às quais pelo menos dois vetores de movimento candidatos apontam respectivamente, pelo menos duas ditas posições sendo adjacentes em uma resolução de pixel do segundo espaço de busca, e para determinar o segundo espaço de busca como as posições da região que não pertencem ao primeiro espaço de busca.
[0022] Por exemplo, a unidade de determinação de espaço de busca pode ser configurada para determinar o primeiro espaço de busca incluindo a estimativa do vetor de movimento e vetores de movimento candidatos apontando para as posições adjacente em uma resolução de pixel do primeiro espaço de busca à posição apontada pela dita estimativa do vetor de movimento.
[0023] De acordo com uma terceira modalidade, a unidade de determinação de espaço de busca é ainda configurada para determinar como um primeiro vetor de movimento candidato do segundo espaço de busca o vetor de movimento candidato apontando para a posição que é adjacente na resolução de pixel do primeiro espaço de busca às posições apontadas pelo primeiro e pelo segundo vetor de movimento candidato identificado no primeiro espaço de busca e diferentes da posição apontada pela estimativa do vetor de movimento.
[0024] Por exemplo, a unidade de determinação de espaço de busca é ainda configurada para selecionar como um vetor de movimento candidato adicional do segundo espaço de busca um vetor de movimento candidato apontando para uma posição em uma resolução do segundo espaço de busca, que está localizado aproximadamente em uma linha conectando a estimativa do vetor de movimento e o candidato do segundo espaço de busca, a resolução de pixel do segundo espaço de busca sendo mais alta do que a resolução de pixel do primeiro espaço de busca.
[0025] Como um exemplo, o vetor de movimento candidato adicional do segundo espaço de busca aponta para uma posição localizada entre as posições apontadas pelo primeiro vetor de movimento candidato do segundo espaço de busca e a estimativa do vetor de movimento.
[0026] Como um exemplo de todas as modalidades do primeiro aspecto, o segundo espaço de busca tem uma resolução mais alta do que o primeiro espaço de busca.
[0027] Ainda como um exemplo, o dispositivo ainda compreende uma unidade de determinação do vetor de movimento para determinar a estimativa do vetor de movimento de uma lista de vetores de movimento incluindo vetores de movimento de pelo menos um bloco adjacente ao bloco atual.
[0028] Ainda é fornecido um decodificador de vídeo para decodificar uma pluralidade de fotos de um fluxo contínuo de dados. O decodificador de vídeo compreende um analisador do fluxo contínuo de dados para obter do fluxo contínuo de dados uma indicação da estimativa do vetor de movimento, uma unidade de interprevisão incluindo o dispositivo de acordo com qualquer modalidade e exemplo do primeiro aspecto, que é ainda configurada para determinar um bloco de previsão ao qual o vetor de movimento do bloco atual aponta, e uma unidade de reconstrução para reconstruir o bloco atual com base no bloco de previsão.
[0029] Ainda é fornecido um codificador de vídeo para codificar uma pluralidade de fotos em um fluxo contínuo de dados. O codificador de vídeo compreende uma unidade de interprevisão incluindo o dispositivo de acordo com qualquer modalidade e exemplo do primeiro aspecto que é ainda configurada para determinar um bloco de previsão ao qual o vetor de movimento do bloco atual aponta, um formador de fluxo contínuo de dados para incluir ao fluxo contínuo de dados uma indicação da estimativa do vetor de movimento, e uma unidade de reconstrução para reconstruir o bloco atual com base no bloco de previsão e armazenando o bloco reconstruído em uma memória.
[0030] De acordo com um segundo aspecto, um método é fornecido para determinar um vetor de movimento a ser usado na interprevisão de um bloco atual. O método compreende as etapas de obter uma estimativa do vetor de movimento, determinar um primeiro espaço de busca compreendendo uma pluralidade de vetores de movimento candidatos com base na estimativa, selecionar um primeiro e um segundo vetor de movimento candidato no primeiro espaço de busca de acordo com uma função de custo, determinar um segundo espaço de busca compreendendo um ou mais vetores de movimento candidatos com base no primeiro e o segundo vetor de movimento candidato, e selecionar o vetor de movimento para o bloco atual dentre os vetores de movimento candidatos do primeiro espaço e o segundo espaço.
[0031] Vantajosamente, a função de custo é com base em um modelo predeterminado e indica, para o respectivo vetor de movimento candidato, um nível de similaridade entre o modelo predeterminado e um preditor apontado pelo respectivo vetor de movimento candidato. Selecionar o primeiro e o segundo vetor de movimento candidato assim compreende selecionar dois vetores de movimento candidatos no primeiro espaço de busca que apontam aos preditores do bloco atual quem são mais similares ao modelo predeterminado.
[0032] Em uma primeira modalidade exemplar, na etapa de determinar o segundo espaço de busca, o tamanho e/ou posição do segundo espaço de busca são determinados de acordo com uma direção de uma linha conectando as posições nas quais o primeiro e o segundo vetor de movimento candidato apontam.
[0033] Como um exemplo, na etapa de determinar o primeiro espaço de busca incluir uma pluralidade de vetores de movimento candidatos, o primeiro espaço de busca tem uma resolução de pixel de número inteiro. Na etapa de determinar o segundo espaço de busca, é determinado como um ou mais vetores de movimento candidatos apontando para posições localizadas na direção de uma linha conectando as posições nas quais o primeiro e o segundo vetor de movimento candidato apontam, o segundo espaço de busca tendo uma resolução de pixel fracionário.
[0034] Por exemplo, pelo menos um dos vetores de movimento candidatos do segundo espaço de busca aponta para uma posição entre posições apontado pelo primeiro e pelo segundo vetor de movimento candidato.
[0035] De acordo com uma segunda modalidade exemplar, na etapa de determinar o segundo espaço de busca, uma localização de uma região incluindo pelo menos duas posições às quais pelo menos dois vetores de movimento candidatos apontam respectivamente é determinado, pelo menos duas ditas posições sendo adjacentes em uma resolução de pixel do segundo espaço de busca, e o segundo espaço de busca é determinado como as posições da região que não pertencem ao primeiro espaço de busca.
[0036] Como um exemplo, na etapa ou determinando o primeiro espaço de busca, o primeiro espaço de busca inclui a estimativa do vetor de movimento e vetores de movimento candidatos apontando para as posições adjacente em uma resolução de pixel do primeiro espaço de busca à posição apontada pela dita estimativa do vetor de movimento.
[0037] De acordo com uma terceira modalidade exemplar, na etapa de determinar o segundo espaço de busca, como um primeiro vetor de movimento candidato do segundo espaço de busca, um vetor de movimento candidato é determinado que aponta para uma posição que é adjacente na resolução de pixel do primeiro espaço de busca às posições apontadas pelo primeiro e pelo segundo vetor de movimento candidato identificados no primeiro espaço de busca e diferentes da posição apontada pela estimativa do vetor de movimento.
[0038] Por exemplo, como ainda pelo menos um vetor de movimento candidato do segundo espaço de busca, um vetor de movimento candidato é determinado que aponta para uma posição em uma resolução do segundo espaço de busca, que está localizado aproximadamente em uma linha conectando a estimativa do vetor de movimento e o candidato do segundo espaço de busca. Aqui, a resolução de pixel do segundo espaço de busca é mais alta do que a resolução de pixel do primeiro espaço de busca.
[0039] Como um exemplo, o dito vetor de movimento candidato adicional do segundo espaço de busca aponta para uma posição localizada entre as posições apontado pelo primeiro vetor de movimento candidato do segundo espaço de busca e pela estimativa do vetor de movimento.
[0040] Como um exemplo de todas as modalidades do segundo aspecto, o segundo espaço de busca tem uma resolução mais alta do que o primeiro espaço de busca.
[0041] Como outro exemplo, a etapa de obter a estimativa do vetor de movimento é realizada determinando a estimativa do vetor de movimento de uma lista de vetores de movimento incluindo vetores de movimento de pelo menos um bloco adjacente ao bloco atual. Breve descrição dos desenhos
[0042] A seguir modalidades exemplares são descritas em mais detalhes com referência às figuras e desenhos anexos, em que:
[0043] Figura 1 é um diagrama em blocos mostrando uma estrutura exemplar de um codificador de vídeo.
[0044] A Figura 2 é um diagrama em blocos mostrando uma estrutura exemplar de um decodificador de vídeo.
[0045] A Figura 3 é um diagrama em blocos mostrando uma estrutura exemplar de um dispositivo para determinar um vetor de movimento.
[0046] A Figura 4 é um desenho esquemático de um bloco atual e uma configuração exemplar do espaço de busca.
[0047] As Figuras 5 a 8 são desenhos esquemáticos de configuração dos espaços de busca de acordo com uma primeira modalidade exemplar.
[0048] A Figura 9 é um desenho esquemático ilustrando a determinação de um segundo espaço de busca de acordo com a primeira modalidade exemplar.
[0049] As Figuras 10 e 11 são desenhos esquemáticos de outra configuração do espaço de busca de acordo com uma primeira modalidade.
[0050] As Figuras 12 e 13 são um desenho esquemático de bloco atual e uma configuração exemplar do espaço de busca de acordo com uma segunda modalidade.
[0051] A Figura 14 é um desenho esquemático ilustrando a determinação do espaço de busca de acordo com uma terceira modalidade.
[0052] A Figura 15 é um diagrama em blocos de uma unidade de determinação do espaço de busca de acordo com a terceira modalidade.
[0053] A Figura 16 é um desenho esquemático de uma configuração do espaço de busca de acordo com uma combinação de diferentes modalidades.
[0054] A Figura 17 é desenho esquemático ilustrando uma determinação exemplar de um espaço de busca combinando diferentes modalidades.
[0055] A Figura 18 é um fluxograma mostrando um método para refinamento do vetor de movimento.
[0056] A Figura 19 é um fluxograma mostrando um método para calcular custos para posições do espaço de busca. Descrição detalhada das modalidades
[0057] A presente descrição refere-se a uma determinação eficiente de um espaço de busca para compensação de movimento e é particularmente vantajosa para o refinamento do vetor de movimento. A determinação do espaço de busca pode ser empregada na estimativa de movimento aplicada durante a codificação e decodificação de vídeo. A seguir, um codificador e decodificador exemplar que pode implementar a estimativa de movimento que emprega a construção do espaço de busca da presente descrição é descrito.
[0058] A Figura 1 mostra um codificador 100 que compreende uma entrada para receber blocos de quadros ou imagens de um fluxo de vídeo e uma saída para fornecer um fluxo contínuo de dados de vídeo codificado. O termo "quadro" nesta descrição é usado como sinônimo de imagem. No entanto, é observado que a presente descrição também é aplicável aos campos caso o entrelaçamento seja aplicado. Em geral, uma imagem inclui m vezes n pixels. Eles correspondem a amostras de imagens e cada um pode compreender um ou mais componentes de cores. Por uma questão de simplicidade, a descrição a seguir se refere a pixels, significando amostras de luminância. No entanto, nota-se que a busca de vetores de movimento da invenção pode ser aplicada a qualquer componente de cor, incluindo crominância ou componentes de um espaço de cores como RGB ou similares. Por outro lado, pode ser benéfico executar a estimativa do vetor de movimento para apenas um componente e aplicar o vetor de movimento determinado a mais (ou todos) componentes.
[0059] Os blocos de entrada a serem codificados não têm necessariamente o mesmo tamanho. Uma imagem pode incluir blocos de tamanhos diferentes e os separadores de blocos de imagens diferentes também podem ser diferentes.
[0060] O codificador 100 é configurado para aplicar codificação de previsão, transformação, quantização e entropia ao fluxo de vídeo. A transformação, quantização e codificação de entropia são realizadas respectivamente por uma unidade de transformação 101, uma unidade de quantização 102 e uma unidade de codificação de entropia 103, de modo a gerar como saída o fluxo contínuo de dados de vídeo codificado.
[0061] O fluxo de vídeo pode incluir uma pluralidade de quadros. Cada quadro é dividido em blocos que são intra ou intercodificados. Os blocos, por exemplo, do primeiro quadro do fluxo de vídeo são intracodificados por meio de uma unidade intraprevisão 109. Um intraquadro é codificado usando informações apenas desse quadro, para que possa ser decodificado independentemente de outros quadros. Um intraquadro pode assim fornecer um ponto de entrada no fluxo contínuo de dados, por exemplo, para acesso aleatório. Blocos de outros quadros do fluxo de vídeo podem ser codificados por meio de uma unidade de interprevisão 110: cada bloco de um quadro codificado é previsto a partir de um bloco em outro quadro (quadro de referência), por exemplo, um quadro previamente codificado. Uma unidade de seleção de modo 108 é configurada para selecionar se um bloco de um quadro deve ser intraprevisto ou interprevisto, ou seja, se será processado pela unidade de intraprevisão 109 ou pela unidade interprevisão 110, A unidade de seleção de modo 108 ainda controla os parâmetros de intra de interprevisão. A fim de permitir a atualização da informação de imagem, um quadro intercodificado pode compreender não apernas os blocos intercodificados, mas ainda um ou mais blocos intracodificados. Intraquadros, em contrapartida, contêm apenas blocos intracodificados e nenhum bloco intercodificado. Intraquadros podem ser inseridos na sequência de vídeos (por exemplo, regularmente, isto é, toda vez após certo número de interquadros) a fim de fornecer indicação de entrada para decodificar, ou seja, aponta onde o decodificador pode iniciar decodificação sem usar informação de quadros anteriores.
[0062] A unidade de intraprevisão 109 é uma unidade de previsão de bloco. Para realizar a previsão espacial ou temporal, os blocos codificados podem ser ainda processados por uma unidade de quantização inversa 104, e uma unidade de transformada inversa 105. Após a reconstrução do bloco, uma unidade de filtragem de loop 106 pode ser aplicada para melhorar ainda mais a qualidade da imagem decodificada. Os blocos filtrados formam então os quadros de referência que são então armazenados em um buffer de quadro 107. Esse loop de decodificação (decodificador) no lado do codificador fornece a vantagem de produzir quadros de referência que são os mesmos que as imagens de referência reconstruídas no lado do decodificador. Por conseguinte, o lado do codificador e decodificador opera de maneira correspondente. O termo "reconstrução" aqui refere-se à obtenção do bloco reconstruído adicionando o bloco residual decodificado ao bloco de previsão.
[0063] A unidade de interprevisão 110 recebe como uma entrada um bloco de um quadro atual ou foto a ser intercodificado e um ou vários quadros de referência ou fotos do buffer de quadro 107. A estimativa de movimento e a compensação de movimento são realizadas pela unidade interprevisão 110. A estimativa de movimento é usada para obter um vetor de movimento e um quadro de referência, por exemplo, com base em uma função de custo. A compensação de movimento descreve então um bloco atual do quadro atual em termos da tradução de um bloco de referência do quadro de referência para o quadro atual, isto é, por um vetor de movimento. A unidade de interprevisão 110 seleciona um bloco de previsão (isto é, um preditor) para o bloco atual entre um conjunto de blocos candidatos (isto é, preditores candidatos) nos um ou vários quadros de referência, de modo que o bloco de previsão minimize a função de custo. Em outras palavras, um bloco candidato para o qual a função de custo é mínima será usado como o bloco de previsão para o bloco atual.
[0064] Por exemplo, a função de custo pode ser uma medida de uma diferença entre o bloco atual e o bloco candidato, isto é, uma medida do resíduo do bloco atual em relação ao bloco candidato. Por exemplo, a função de custo pode ser uma soma das diferenças absolutas (SAD) entre todos os pixels (amostras) do bloco atual e todos os pixels do bloco candidato na imagem de referência candidata. No entanto, em geral, qualquer métrica de similaridade pode ser empregue, como erro quadrático médio (MSE) ou métrica de similaridade estrutural (SSIM).
[0065] No entanto, a função de custo também pode ser o número de bits necessários para codificar tal interbloco e / ou distorção resultante dessa codificação. Assim, um procedimento de otimização de distorção de taxa pode ser usado para decidir sobre a seleção do vetor de movimento e / ou em geral sobre os parâmetros de codificação, como usar inter ou intraprevisão para um bloco e com quais configurações.
[0066] A unidade de intraprevisão 109 recebe como entrada um bloco de um quadro ou imagem atual a ser intracodificado e uma ou várias amostras de referência de uma área já reconstruída do quadro atual. A intraprevisão descreve os pixels de um bloco atual do quadro atual em termos de uma função de amostras de referência do quadro atual. A unidade de intraprevisão 109 gera um bloco de previsão para o bloco de corrente, em que o referido bloco de previsão minimiza vantajosamente a diferença entre o bloco de corrente a ser codificado e seu bloco de previsão, isto é, minimiza o bloco residual. A minimização do bloco residual pode ser baseada, por exemplo, em um procedimento de otimização de distorção de taxa. Em particular, o bloco de previsão é obtido como uma interpolação direcional das amostras de referência. A direção pode ser determinada pela otimização da distorção da taxa e / ou calculando uma medida de similaridade como mencionado acima em conexão com a interprevisão.
[0067] A diferença entre o bloco atual e sua previsão, ou seja, o bloco residual, é então transformada pela unidade de transformação
101. Os coeficientes de transformação são quantizados pela unidade de quantização 102 e a entropia codificada pela unidade de codificação de entropia 103. O fluxo contínuo de dados de vídeo codificado assim gerado compreende blocos intracodificados e blocos intercodificados e a sinalização correspondente (como a indicação de modo, indicação do vetor de movimento e / ou direção intraprevisão). A unidade de transformação 101 pode aplicar uma transformação linear, como uma transformação discreta de Quatroier (DFT) ou uma transformação discreta de cosseno (DCT). Essa transformação no domínio da frequência espacial fornece a vantagem de que os coeficientes resultantes têm valores tipicamente mais altos nas frequências mais baixas. Assim, após uma varredura eficaz do coeficiente (como zigue- zague) e quantização, a sequência de valores resultante geralmente possui alguns valores maiores no início e termina com uma sequência de zeros. Isso permite uma codificação ainda mais eficiente. A unidade de quantização 102 realiza uma compressão com perda, reduzindo a resolução dos valores do coeficiente. A unidade de codificação de entropia 103 então atribui palavras de código binárias a valores de coeficiente. As palavras de código são gravadas em um fluxo contínuo de dados conhecido como fluxo contínuo de dados codificado. O codificador de entropia também codifica as informações de sinalização (não mostradas na Figura 1).
[0068] A Figura 2 mostra um exemplo de um decodificador de vídeo 200, O decodificador de vídeo 200 compreende particularmente um buffer de imagem de referência 207 e uma unidade de intraprevisão 209, que é uma unidade de previsão em bloco. O buffer de imagem de referência 207 é configurado para armazenar pelo menos um quadro de referência reconstruído a partir do fluxo contínuo de dados de vídeo codificado do fluxo contínuo de dados de vídeo codificado. A unidade de intraprevisão 209 é configurada para gerar um bloco de previsão, que é uma estimativa do bloco a ser decodificado. A unidade de intraprevisão 209 é configurada para gerar esta previsão com base em amostras de referência que são obtidas a partir do buffer de imagem de referência 207.
[0069] O decodificador 200 é configurado para decodificar o fluxo contínuo de dados de vídeo codificado gerado pelo codificador de vídeo 100 e, de preferência, o decodificador 200 e o codificador 100 geram previsões idênticas para o respectivo bloco a ser codificado / decodificado. As características do buffer de imagem de referência 207 e da unidade de intraprevisão 209 são semelhantes às características do buffer de imagem de referência 107 e da unidade de intraprevisão 109 da Figura 1.
[0070] O decodificador de vídeo 200 compreende ainda unidades que ainda estão presentes no codificador de vídeo 100 como, por exemplo, uma unidade de quantização inversa 204, uma unidade de transformada inversa 205, e uma unidade de filtragem de loop 206, que respectivamente correspondem à unidade de quantização inversa 104, a unidade de transformada inversa 105, e a unidade de filtragem de loop 106 do codificador de vídeo 100,
[0071] Uma unidade de decodificação de entropia 203 é configurada para decodificar o fluxo contínuo de dados de vídeo codificado recebido para obter coeficientes de transformação residual quantizados e informações de sinalização. Os coeficientes de transformação residual quantizados são alimentados à unidade de quantização inversa 204 e a uma unidade de transformação inversa 205 para gerar um bloco residual. O bloco residual é adicionado a um bloco de previsão e a soma resultante é alimentada à unidade de filtragem de loop 206 para obter um bloco de vídeo decodificado. Os quadros do vídeo decodificado podem ser armazenados no buffer de imagem de referência 207 e servem como quadros de referência para interprevisão.
[0072] Geralmente, as unidades de intraprevisão 109 e 209 das Figuras 1 e 2 podem usar amostras de referência de uma área já codificada para gerar sinais de previsão para blocos que precisam ser codificados ou precisam ser decodificados.
[0073] A unidade de decodificação de entropia 203 recebe como sua entrada o fluxo contínuo de dados codificado. O fluxo contínuo de dados pode primeiro ser analisado, ou seja, os parâmetros de sinalização e os resíduos são extraídos do fluxo contínuo de dados. A sintaxe e a semântica do fluxo contínuo de dados podem ser definidas por um padrão para que os codificadores e decodificadores possam trabalhar de maneira interoperável. Conforme descrito na seção Background acima, o fluxo contínuo de dados codificado inclui mais informações além dos resíduos de previsão. No caso de previsão de movimento compensado, uma indicação de vetor de movimento também é codificada no fluxo contínuo de dados e analisada do fluxo contínuo de dados no decodificador. A indicação do vetor de movimento pode ser dada por meio de uma imagem de referência dentro da qual o vetor de movimento é fornecido e por meio das coordenadas do vetor de movimento. Neste exemplo, as coordenadas do vetor de movimento são coordenadas xey na imagem de referência e definem o ponto em que o vetor de movimento é exibido, assumindo que a coordenada (0, 0) seja a posição no quadro de referência correspondente à posição de o bloco atual sendo processado no quadro atual. No entanto, a indicação do vetor de movimento não precisa sinalizar diretamente as coordenadas. Em geral, qualquer identificação do vetor de movimento é aplicável, como um ponteiro (índice) para uma lista de vetores de movimento candidatos ou qualquer outro identificador que permita identificar a interprevisão do bloco.
[0074] Para codificar com eficiência a imagem de referência, o codec H.265 (ITU-T, H265, Série H: Sistemas audiovisuais e multimídia: codificação de vídeo de alta eficiência) fornece uma lista de imagens de referência. Cada entrada da lista indica um quadro de referência específico. Por outras palavras, a cada índice (isto é, número de entrada) da lista é atribuído um respectivo quadro de referência. O fluxo contínuo de dados inclui, para cada quadro intermediário, um respectivo índice de lista e, assim, identifica um determinado quadro de referência para reconstruir esse quadro intermediário. A lista pode ser definida no padrão ou sinalizada no início do vídeo ou em um conjunto de vários quadros. Note-se que no H.265 existem duas listas de imagens de referência definidas, chamadas L0 e L1. A imagem de referência é então sinalizada no fluxo contínuo de dados, indicando a lista (L0 ou L1) e indicando um índice nessa lista associado à imagem de referência desejada. O fornecimento de duas ou mais listas pode ter vantagens para uma melhor compactação. Por exemplo, L0 pode ser usado tanto para fatias predispostas unidirecionais quanto bidirecionais, enquanto L1 pode ser usado apenas para fatias bidirecionais. No entanto, em geral, a presente descrição não se limita a qualquer conteúdo das listas L0 e L1.
[0075] O vetor de movimento pode ser sinalizado diretamente pelas coordenadas do bloco para o qual o vetor de movimento aponta (na figura de referência). Alternativamente, como especificado em H.265, uma lista de vetores de movimento candidatos pode ser construída e um índice associado à lista com o vetor de movimento específico pode ser transmitido.
[0076] Os vetores de movimento do bloco atual são frequentemente correlacionados com os vetores de movimento dos blocos vizinhos na imagem atual ou nas imagens codificadas anteriormente. Isso ocorre porque os blocos vizinhos provavelmente corresponderão ao mesmo objeto em movimento com movimento semelhante e o movimento do objeto provavelmente não mudará abruptamente ao longo do tempo. Consequentemente, o uso de um ou mais vetores de movimento de blocos vizinhos espacial ou temporalmente para definir um preditor (conhecido como MVP) para o vetor de movimento do bloco atual reduz o tamanho da diferença do vetor de movimento sinalizado. O MVP pode ser derivado de vetores de movimento já decodificados de blocos vizinhos espacialmente ou de blocos vizinhos temporalmente na imagem co-localizada.1 No H.264 / AVC, isso é feito fazendo uma mediana componente a componente de três vetores de movimento vizinhos espacialmente.
[0077] A Previsão Avançada de Vetor de Movimento (AMVP) foi introduzida para modificar a competição de vetor de movimento para explicar uma estrutura de bloco tão flexível. Durante o desenvolvimento do HEVC, o design inicial do AMVP foi significativamente simplificado para fornecer uma boa troca entre a eficiência da codificação e um design fácil de implementar. O projeto inicial do AMVP incluiu cinco MVPs de três classes diferentes de preditores: três vetores de movimento de vizinhos espaciais, a mediana dos três preditores espaciais e um vetor de movimento em escala de um bloco temporariamente colocalizado. Além disso, a lista de preditores foi modificada reordenando para colocar o preditor de movimento mais provável na primeira posição e removendo candidatos redundantes para garantir uma sobrecarga mínima de sinalização. O design final da construção da lista de candidatos a AMVP inclui os seguintes dois candidatos a MVP: a) até dois MVPs espaciais candidatos derivados de cinco blocos vizinhos espaciais; b) um MVPs candidato temporal derivado de dois blocos temporais colocalizados quando ambos os MVPs candidatos espaciais não estão disponíveis ou são idênticos; ec) vetores de movimento nulo quando os candidatos espacial, temporal ou ambos não estiverem disponíveis. Detalhes sobre a determinação do vetor de movimento podem ser encontrados no livro de V. Sze et al (Ed.), High Efficiency Video Coding (HEVC): Algorithms and Architectures, Springer, 2014, em particular no Capítulo 5, incorporado aqui por referência.
[0078] Como será descrito em detalhes abaixo, o vetor de movimento derivado no lado do codificador e fornecido no fluxo contínuo de dados pode ser refinado ainda mais. Assim, a estimativa do vetor de movimento pode ser aprimorada sem aumento adicional da sobrecarga de sinalização. O refinamento do vetor de movimento pode ser realizado no decodificador sem a assistência do codificador. O loop do decodificador no codificador pode empregar o mesmo refinamento para obter imagens de referência correspondentes. O refinamento pode ser realizado determinando um modelo, determinando um espaço de busca e encontrando no espaço de busca a posição de uma parte da imagem de referência que melhor corresponda ao modelo. A melhor posição da porção correspondente determina o melhor vetor de movimento que é então usado para obter o preditor do bloco atual, isto é, o bloco atual sendo reconstruído.
[0079] Em operação, o circuito de uma unidade de interdição 110, que pode ser implementada no codificador de vídeo 100 da Figura 1, realiza estimativa de movimento (ver Figura 3), a fim de obter um vetor de movimento para interdição de um bloco de corrente. Previsão semelhante também pode ser realizada pela unidade de interprevisão 210 do decodificador de vídeo 200 da Figura 2, à qual a Figura 3 e a descrição anexa se aplicam também.
[0080] Um vetor de movimento inicial MV0, que pode ser visto como uma primeira estimativa ou aproximação do exato vetor de movimento, é obtido pela unidade de interprevisão 110. Por exemplo, MV0 pode ser selecionado de uma lista de vetores de movimento candidatos. A lista pode incluir vetores de movimento de pelo menos um bloco adjacente ao bloco atual. Alternativamente, MV0 pode ser obtido pelo bloco correspondente no lado do codificador e sinalizado ao lado do decodificador dentro do fluxo contínuo de dados. Correspondentemente, no lado do decodificador, a unidade de interprevisão 210 pode obter o vetor de movimento inicial MV0 do fluxo contínuo de dados. Por exemplo, um índice à lista de candidatos é extraído do fluxo contínuo de dados e o vetor de movimento candidato identificado por esse índice é fornecido à unidade de interprevisão como o vetor de movimento inicial MV0, Alternativamente, as coordenadas de MV0 são diretamente extraídas do fluxo contínuo de dados. Entretanto, a presente descrição não é limitada a qualquer forma particular de obter o vetor de movimento inicial MV0, No geral, o MV0 pode ser determinado de qualquer forma, por exemplo, por modelo correspondente na mesma forma no codificador e no decodificador. Ainda alternativamente, o vetor de movimento pode ser previsto como uma função de vetores de movimento do bloco vizinho do bloco atual no domínio espacial ou temporal.
[0081] O vetor de movimento inicial MV0 é uma estimativa inicial de um vetor de movimento final MV0’’ a ser usado na interprevisão de um bloco atual. Constitui-se a entrada para um processo de refinamento no final do qual o vetor de movimento final MV0’’ é emitido. O processo de refinamento compreende determinar um espaço de busca e selecionar o vetor de movimento final do espaço de busca.
[0082] Geralmente, a construção de espaço de busca (por exemplo, realizado por uma unidade de determinação do espaço de busca 310 da unidade de interprevisão 110 ou 210) compreende dois estágios, em cada um uma parte do espaço de busca é construído. Uma unidade de seleção do vetor de movimento 340 (ainda parte da unidade de interprevisão 110 e/ou 210) então seleciona o vetor de movimento MV0’’ (correspondente às coordenadas de um espaço de busca posição) de acordo com o custo correspondente. É observado que para alguns vetores de movimento candidatos do espaço de busca, possivelmente para todos os vetores de movimento candidatos dos respectivos espaços de busca parcial determinados em cada um dos estágios, os custos podem ser calculados já como uma parte e durante a construção de espaço de busca.
[0083] A construção de espaço de busca inclui o primeiro estágio 301 para construir o primeiro espaço de busca (parcial). Dessas posições do primeiro espaço de busca determinado no primeiro estágio 301, pelo menos duas posições candidatas são escolhidas 302 e são usadas para decidir quais posições candidatas devem ser verificadas no segundo estágio 303.
[0084] Em outras palavras, com base no vetor de movimento inicial MV0, um primeiro espaço de busca incluindo uma pluralidade de vetores de movimento candidatos é determinado 301. No primeiro espaço de busca, um primeiro vetor de movimento candidato e um segundo vetor de movimento candidato são identificados 302 de acordo com uma função de custo. Com base no primeiro e no segundo vetores de movimento candidatos, um segundo espaço de busca é determinado 303 incluindo um ou mais vetores de movimento candidatos. Dentre os vetores de movimento candidatos de ambos o primeiro espaço de busca e o segundo espaço de busca, o vetor de movimento MV0’’ para o bloco atual é selecionado pela unidade de seleção do vetor de movimento
340. Em particular, o candidato é observado minimizar a função de custo após o segundo espaço de busca ser avaliado, e esse candidato é selecionado como o vetor de movimento final MV0’’ a ser aplicado na interprevisão. O primeiro espaço de busca é equivalente a um primeiro subconjunto de posições em uma imagem de referência, a saber, o subconjunto de posições apontado pelos vetores de movimento candidatos do primeiro espaço de busca. Semelhantemente, o segundo espaço de busca é equivalente a um segundo subconjunto de posições em uma imagem de referência, a saber, o subconjunto de posições apontado pelos vetores de movimento candidatos do segundo espaço de busca.
[0085] O refinamento do vetor de movimento é realizado em um espaço de busca que é um subconjunto de posições em uma imagem de referência e que compreende as posições do primeiro e do segundo espaço de busca. As posições são locais para os quais os respectivos vetores de movimento candidato apontam, isto é, locais nos quais a correspondência com um modelo deve ser avaliada. A imagem de referência pode estar disponível em uma resolução inteira ou fracionária. Independentemente da resolução da imagem de referência, o espaço de busca ou sua parte pode ter uma resolução própria menor ou maior que a da imagem de referência. Uma resolução mais alta pode ser alcançada executando uma interpolação fracionada de pixels para obter pixels fracionários.
[0086] Por exemplo, o vetor de movimento inicial MV0 pode apontar para uma posição de pixel inteiro, também chamada de posição de pixel completo. Alternativamente, MV0 pode apontar para uma posição fracionária de pixel, por exemplo, uma posição de meio pixel ou uma posição de quarto de pixel. Aqui, assim como no restante da descrição,
"posição de meio pixel" (e, respectivamente, "posição de quarto de pixel") refere-se a um ponto em uma linha entre duas posições adjacentes de pixel completo (ou seja, pixels vizinhos em resolução de pixel completo), a posição fracionada do pixel tendo uma distância para a próxima posição do pixel completo, que é metade (ou, respectivamente, um quarto) da distância entre as duas posições vizinhas do pixel completo.
[0087] Em diferentes modalidades da presente descrição, independentemente de o MV0 apontar para uma posição de pixel completo ou meio pixel, o primeiro espaço de busca e o segundo espaço de busca podem ter a mesma resolução ou diferir na resolução. Por exemplo, o segundo espaço de busca pode ter uma resolução mais alta que o primeiro espaço de busca. Assim, o segundo espaço de busca pode ser visto como um refinamento do primeiro espaço de busca.
[0088] Vantajosamente, o primeiro espaço de busca possui uma resolução total de pixels. Então, se a resolução do segundo espaço de busca for diferente da resolução do primeiro espaço de busca, a resolução do segundo espaço de busca poderá ser uma resolução fracionada de pixels, como resolução de meio pixel. Nota-se que a resolução do espaço de busca pode diferir da resolução da imagem de referência. Por exemplo, o vetor de movimento inicial pode apontar para meio pixel na imagem de referência. No entanto, o primeiro espaço de busca pode incluir apenas posições que estão a uma distância de pelo menos um pixel inteiro um do outro. Essas posições podem, no entanto, estar todas localizadas nos pixels de subpixels da imagem de referência.
[0089] Na Figura 4, bem como nas figuras restantes nas quais diferentes configurações do espaço de busca de acordo com várias modalidades da presente descrição são mostradas, uma resolução de pixel completo é indicada por meio de pontos sombreados (completos),
enquanto as posições fracionárias de pixel são ilustrado como pontos não sombreados (vazios). Os pixels das imagens no vídeo codificadas ou decodificadas podem ser dispostos em um padrão quadrado. Em geral, no entanto, eles podem ter um padrão de pixel retangular genérico que não é necessariamente um padrão quadrado. A presente descrição geralmente não se limita a nenhum padrão de pixel específico. Os pixels também podem ser organizados em um padrão não retangular.
[0090] Em uma implementação, os vetores de movimento candidatos para o bloco atual apontam do pixel superior esquerdo do bloco atual na imagem atual (assumida como tendo coordenada (0, 0)) para os respectivos pixels superiores esquerdos dos blocos de previsão candidatos na referência imagem (como ilustrado na Figura 4). Os pixels superiores esquerdos dos blocos de previsão candidatos representam, assim, o espaço de busca na imagem de referência. Nesta implementação, o pixel superior esquerdo de um bloco é tomado como a posição do bloco. No entanto, qualquer outro pixel de um bloco pode ser tomado como a posição do bloco, em que se entende que a mesma convenção de posição se aplica a todos os blocos. Por exemplo, um vetor de movimento pode ser definido equivalentemente como sendo executado a partir de um pixel central do bloco atual para o pixel central de um respectivo bloco candidato.
[0091] Como um exemplo (consulte a Figura 4 novamente), o primeiro espaço de busca inclui nove vetores de movimento candidatos, a saber, a estimativa inicial MV0 do vetor de movimento bem como suas quatro posições vizinhas mais próximas e suas quatro segundas posições vizinhas mais próximas em uma resolução total de pixel. A constelação do primeiro espaço de busca na Figura 4 é uma constelação "quadrada", o que significa que as distâncias entre os pixels nas dimensões vertical e horizontal são as mesmas. Como será mostrado ao descrever as modalidades da presente descrição,
constelações com vários tamanhos e formas podem ser usadas para o primeiro espaço de busca.
[0092] Como explicado acima, o esquema de refinamento do vetor de movimento pode ser executado da mesma maneira no codificador e no decodificador sem sinalização de controle adicional. Isso pode ser alcançado, por exemplo, fornecendo um gabarito no lado do codificador e também no lado do decodificador. O modelo pode ser determinado, por exemplo, a partir de pixels já codificados / decodificados (por exemplo, usando uma das técnicas descritas no documento JVET- D0029 acima mencionado). Um exemplo desse modelo pode ser pixels de um ou mais blocos decodificados antes do bloco atual e vizinhos do bloco atual. Mais particularmente, o modelo para o refinamento de um vetor de movimento para um bloco atual pode ser determinado como N pixels do bloco vizinho no limite esquerdo e M pixels do bloco vizinho no limite superior, assumindo que a decodificação dos blocos seja realizada da esquerda para a direita e de cima para baixo, como de costume. M e N são números inteiros maiores que 1. No entanto, o modelo pode ser determinado de forma diferente e também incluir além dos pixels dos blocos vizinhos diretamente adjacentes ao limite com o bloco atual, outros pixels dos blocos vizinhos e / ou o limite inteiro de um ou mais blocos vizinhos.
[0093] De fato, o refinamento do vetor de movimento é principalmente relevante para o decodificador. Como nenhuma informação é codificada no fluxo contínuo de dados referente ao refinamento do vetor de movimento específico, o lado da codificação aplica o refinamento apenas no loop de decodificação, a fim de produzir imagens de referência levando em consideração os vetores de movimento refinados.
[0094] A similaridade pode ser medida por uma função de custo que pode, por exemplo, ser uma soma das diferenças absolutas entre o modelo e a área da imagem de referência que corresponde ao modelo no local apontado pelo candidato ao vetor de movimento. Depois de calcular a soma das diferenças absolutas (SAD) para todos os vetores de movimento do candidato, o candidato com o menor SAD é selecionado. No entanto, note-se que o SAD é apenas um exemplo e qualquer outra métrica de similaridade, como soma de diferenças quadradas, correlação ou similar, pode ser aplicada.
[0095] O primeiro vetor de movimento candidato e o segundo vetor de movimento candidato referem-se, respectivamente, a uma posição de um preditor do bloco atual que é mais semelhante (e o segundo mais semelhante, respectivamente) a um modelo predeterminado. O modelo pode ser gerado em uma etapa anterior, por exemplo, usando uma das técnicas descritas em JVET-D0029.
[0096] Um método para determinação do vetor de movimento por refinamento é descrito a seguir com relação à Figura 18. O método começa em S1801. Em S1802, uma estimativa inicial MV0 do vetor de movimento é obtida, e um primeiro espaço de busca é definido com base na estimativa inicial do vetor de movimento. O primeiro espaço de busca compreende vetores de movimento candidatos apontando para posições ao redor da posição associada com MV0. Os custos associados com os vetores de movimento candidatos do primeiro espaço de busca são calculados em S1803, e de acordo com os custos calculados, um primeiro vetor de movimento candidato e um segundo vetor de movimento candidato, P1 e P2, são selecionados. De acordo com P1 e P2, um segundo espaço de busca incluindo um ou mais vetor de movimento candidato(s) é definido na etapa S1804. O segundo espaço de busca pode ser bastante pequeno (e, portanto, ser buscado rapidamente) porque é definido com base nos dois pontos mais promissores. Em particular, considerando duas (ou mais de duas) posições, uma direção de tendência na qual o custo (ou seja, o valor da função de custo) diminui (ou provavelmente diminui) pode ser determinada e o segundo espaço de busca pode ser definido na direção da tendência e pode ter um tamanho menor em comparação com, por exemplo, definir o segundo espaço de busca apenas com base no vetor de movimento inicial ou com base em um único melhor ponto. É observado que ainda que, em geral, a presente descrição não se limita a levar em consideração dois vetores de movimento de melhor candidato (respectivas posições para as quais eles apontam). Em geral, a tendência da função de custo pode ser determinada ainda mais precisamente, levando em consideração mais de duas melhores posições. Nesses casos, a direção na qual a função de custo diminui é determinada com base nas duas ou mais posições consideradas com os menores custos entre as posições do primeiro espaço de busca. O segundo espaço de busca é definido em um local na direção da tendência. Por conseguinte, o número de posições do espaço de busca e, em particular, do segundo espaço de busca pode ser mantido baixo, enquanto verifica as posições mais promissoras.
[0097] Os custos associados com o vetor de movimento candidato do segundo espaço de busca são calculados em S1805. Dos vetores de movimento candidatos do primeiro e do segundo espaço de busca, o melhor vetor de movimento candidato, ou seja, o vetor de movimento candidato associado com o custo mais baixo, é selecionado (em S1806). Após selecionar o melhor vetor de movimento candidato, o refinamento do vetor de movimento termina (em S1807).
[0098] Diferentes modalidades da presente descrição podem diferir, entre outros, da maneira pela qual o primeiro espaço de busca e o segundo espaço de busca são determinados, como será descrito a seguir. Primeira modalidade exemplar
[0099] De acordo com uma primeira modalidade exemplar (consulte a Figura 4), uma função de custo é avaliada para cada um dos vetores de movimento candidatos do primeiro espaço de busca. Em outras palavras, para cada um desses vetores de movimento, um custo respectivo, que é o valor da função de custo, é calculado ou estimado ou determinado de outra forma. De acordo com esta avaliação, o candidato com o custo mínimo e o candidato com o segundo menor custo são selecionados. No exemplo da Figura 4, um vetor de movimento inicial MV0 aponta para a posição 405. Uma posição 409 no primeiro espaço de busca tem o menor custo e, portanto, é selecionada como o primeiro vetor de movimento candidato MV0 '. O vizinho direito 406 de MV0 tem o segundo menor custo e, portanto, é selecionado como o segundo vetor de movimento candidato MV0'secondBest. MV0 'e MV0'secondBest são usados para construir o segundo espaço de busca. No exemplo, o segundo espaço de busca compreende dois vetores de movimento candidatos adicionais, que apontam para as posições de meio pixel 411 e 412 (círculos vazios na figura) localizadas em uma linha que liga as posições 409 e 406 (ou seja, MV0 'e MV0'secondBest). Neste exemplo, as posições de meio pixel 411 e 412 são posições de meio pixel acima e abaixo de MV0', respectivamente. Dos candidatos do primeiro espaço de busca e dos candidatos do segundo espaço de busca, o candidato com o custo mínimo é selecionado como o vetor de movimento final MV0'', neste exemplo, a posição 412.
[00100] O exemplo da Figura 4 ilustra o refinamento do vetor de movimento para um bloco atual e uma imagem de referência, ou seja, a imagem de referência à qual é atribuído o índice 0 em uma lista de imagens de referência L0. O desenho do bloco atual é meramente esquemático e ilustra que uma posição de um ponto do espaço de busca corresponde à posição do modelo de busca que é fornecida pelo canto superior esquerdo do modelo. A presente descrição é aplicável a qualquer tamanho e forma do modelo. O modelo é vantajosamente um bloco do tamanho do bloco atual e a busca dos dois melhores vetores de movimento candidatos é realizada pelo modelo (bloco) correspondente no primeiro espaço de busca e no segundo espaço de busca. Como o bloco atual geralmente não está disponível no decodificador, o modelo é construído a partir de partes da imagem já decodificadas. Por exemplo, no caso de biprevisão, existem dois vetores de movimento iniciais MV0 e MV1 associados às duas figuras de referência respectivas RefPict0 e RefPict1. Um bloco de modelo para o refinamento do vetor de movimento pode então ser construído pela média ponderada de dois blocos, respectivamente, apontados por MV0 em Refpict0 e MV1 em RefPict1. Outras construções de modelo são possíveis com base nos pixels já decodificados da imagem atual ou nas respectivas imagens de referência ou nas imagens mais próximas já decodificadas.
[00101] De acordo com uma direção de uma linha conectando a ponta (ou seja, ponto final) do primeiro vetor de movimento candidato e a ponta do segundo vetor de movimento candidato MV0’secondBest, o tamanho (ou seja, o número de candidatos) e/ou a posição (localização) do segundo espaço de busca (ou seja, a posição apontada pelo vetor de movimento candidato do segundo espaço de busca) são determinados. Em particular, o primeiro vetor de movimento candidato e a direção (linha) dados pela conexão das pontas do primeiro e do segundo vetor de movimento candidato são usados para decidir sobre o número e/ou coordenadas dos candidatos usados na segunda etapa. O tamanho do segundo espaço de busca pode ser determinado de acordo com a posição em que o primeiro vetor de movimento candidato MV0’ aponta. Entretanto, é observado que a presente invenção não é limitada para determinar ambos o tamanho e a posição do segundo espaço de busca com base nos dois melhores pontos. Por exemplo, o tamanho (em termos do número de posições) do segundo espaço de busca pode ser fixado e apenas a localização do segundo espaço de busca pode ser determinada com base nas duas melhores posições.
[00102] As configurações do espaço de busca de acordo com a primeira modalidade da presente descrição são exemplificativamente ilustradas nas Figuras 5 a 8, 10 e 11. Nesses exemplos, o tamanho do segundo espaço de busca é sempre 2, mas sua localização é fornecida pelos dois melhores pontos do primeiro espaço de busca. Como pode ser visto nas figuras, o primeiro espaço de busca com uma resolução de pixel (por exemplo, número inteiro) possui a constelação "quadrada" já mostrada na Figura 4. A partir desse primeiro espaço de busca, com nove pontos (oito pontos ao redor do vetor inicial) ponto MV0) o primeiro vetor de movimento candidato MV0 'e um segundo vetor de movimento candidato MV0'secondBest são identificados de acordo com a função de custo.
[00103] Vantajosamente, de acordo com a primeira modalidade, o primeiro espaço de busca, que inclui uma pluralidade de vetores de movimento candidatos, tem a resolução de pixel de número inteiro. Certamente, o primeiro vetor de movimento candidato MV0’ que aponta para uma posição onde a função de custo é minimizada após a primeira etapa, e o segundo vetor de movimento candidato MV0’secondBest que tem o segundo menor valor da função de custo, são primeiro determinados usando resolução de busca de pixel inteiro.
[00104] Além disso, o segundo espaço de busca tem uma resolução de pixel fracionário com relação à resolução do primeiro espaço de busca, e inclui um ou mais vetores de movimento candidatos que apontam às posições localizadas na direção dada pelo primeiro e segundo vetor de movimento candidato incluídos no primeiro espaço de busca. Assim, no segundo estágio (mais precisamente, no "estágio 2" 303 da Figura 3), uma ou mais, por exemplo, duas posições de meio pixel do segundo espaço de busca (ou seja, a nova janela de busca) Isso significa que, já que com MV0' o melhor candidato do primeiro espaço de busca é conhecido, o custo do MV0' precisa ser comparado com os custos dos pontos adicionais do segundo espaço de busca até que um vetor de movimento candidato seja encontrado com um custo menor que o MV0' para finalmente executar a seleção do vetor de movimento. Nesse caso, a segunda etapa de busca que envolve o segundo espaço de busca possui uma precisão mais fina que a primeira etapa de busca. Em outras palavras, pode ser vantajoso se o segundo espaço de busca tiver uma resolução mais alta (ou seja, menor distância entre as posições do espaço de busca) que o primeiro espaço de busca. Dessa forma, o espaço de busca é refinado a cada estágio de sua construção e pode incluir mais de 2 estágios. Por exemplo, com base nos dois melhores pontos do primeiro e do segundo espaço de busca conjunta, um terceiro espaço de busca com uma resolução maior que o primeiro e o segundo espaços de busca podem ser construídos.
[00105] No exemplo das Figuras 4 a 8, uma ou mais posições de meio pixel do segundo espaço de busca são selecionadas de acordo com a direção de uma linha conectando MV0’ e MV0’secondBest correspondente a um vetor de diferença MV0’diff = (MV0’ – MV0’secondBest). Assim, o segundo espaço de busca é determinado de acordo com um ângulo entre MV0’diff e um limite de imagem (ou uma fileira horizontal de pixels na imagem de referência). No final da segunda etapa de busca, o vetor de movimento final MV0’’ é determinado no estágio 304 da Figura 3.
[00106] Ainda, pelo menos um dos vetores de movimento candidatos do segundo espaço de busca vantajosamente aponta para uma posição entre posições apontadas pelo primeiro e pelo segundo vetor de movimento candidato incluídos no primeiro espaço de busca. É observado que o segundo espaço de busca pode incluir um único vetor de movimento candidato que é o ponto entre o primeiro e o segundo vetor de movimento candidato.
[00107] Ainda constelações exemplares do espaço de busca de acordo com a primeira modalidade da presente descrição serão descritas a seguir com relação às Figuras 5 a 8, 10, e 11.
[00108] Nas Figuras 5 a 8, MV0 'aponta para uma das posições vizinhas mais próximas ou mais próximas do vetor de movimento inicial MV0 (isto é, da posição no centro do primeiro espaço de busca), isto é, para uma das posições imediatamente ao redor da posição MV0, O segundo espaço de busca é determinado para compreender dois vetores de movimento candidatos que apontam para posições nos dois lados do MV0', que apontam aproximadamente para posições em uma linha que conecta MV0' e MV0'secondBest. Em outras palavras, o segundo espaço de busca inclui uma primeira posição entre MV0' e MV0'secondBest e uma segunda posição na direção que liga MV0' e MV0'secondBest e localizada no outro lado que a primeira posição.
[00109] Aqui, assim como no restante do presente pedido, a posição do vizinho "mais próximo" ou da posição vizinha ou adjacente refere-se à posição adjacente à posição especificada na resolução do espaço de busca considerado (parcial). Por exemplo, mesmo que a imagem de referência tenha uma resolução ¼ pixel fracionária, se o primeiro espaço de busca tiver uma resolução inteira, as posições adjacentes também terão a distância do pixel inteiro uma da outra no primeiro espaço de busca. Isso se aplica, embora as primeiras posições do espaço de busca possam estar localizadas em posições fracionárias de pixels da imagem de referência.
[00110] Além disso, a "segunda posição mais próxima" refere-se a uma posição adjacente a dois vizinhos mais próximos (vizinhos diagonais em espaços de busca dispostos retangularmente). No entanto, em um caso geral que não é mostrado em nenhuma das figuras, a distância para a posição adjacente em uma direção (por exemplo, a direção vertical) pode diferir da distância na outra direção (por exemplo, horizontal). Nesse caso, o termo "vizinho mais próximo", conforme usado na presente descrição, aplica-se à posição adjacente em ambas as direções, independentemente de uma possível diferença na distância.
[00111] Nas Figuras 5 e 6, MV0 'e MV0'secondBest são vizinhos mais próximos um do outro na resolução do primeiro espaço de busca (ou seja, resolução de pixel completo). Nas figuras, a linha que liga MV0' e MV0'secondBest é uma linha vertical. A constelação do espaço de busca mostrada na Figura 5 é idêntica à constelação do espaço de busca mostrada na Figura 4. A linha que conecta o primeiro candidato e o segundo vetor de movimento candidato corresponde a uma linha horizontal se MV0'secondBest estiver situado à esquerda ou à direita de MV0' em vez de estar situado acima ou abaixo de MV0'. Embora não seja mostrado nas figuras, a primeira modalidade também se aplica ao caso em que o primeiro vetor de movimento candidato e o segundo vetor de movimento candidato são conectados por uma linha horizontal.
[00112] No exemplo mostrado nas Figuras 7, o segundo vetor de movimento candidato MV0’secondBest aponta para um segundo vizinho mais próximo do primeiro vetor de movimento candidato MV0’. Neste caso, a linha conectando o primeiro e o segundo vetores candidatos é uma linha diagonal.
[00113] Geralmente, espera-se que a semelhança entre um preditor de um bloco atual e um bloco modelo aumente monotonamente em uma direção. Por conseguinte, como nas Figuras 5 a 8, na resolução do primeiro espaço de busca, os vetores candidatos MV0' e MV0'secondBest devem ser os vizinhos mais próximos ou o segundo mais próximo. No entanto, pode ocorrer que haja um terceiro vetor de movimento candidato do espaço de busca entre MV0' e
MV0'secondBest para o qual o valor da função de custo é maior que para cada um dos vetores de movimento candidatos MV0' e MV0'secondBest, como mostrado na Figura 8. Por exemplo, essa situação pode ocorrer devido ao ruído no vídeo que é codificado / decodificado. Em tal situação, duas posições fracionárias de pixel na linha que liga o MV0' e o MV0'secondBest podem ser escolhidas para formar o segundo espaço de busca mais próximo do MV0' do que o MV0'secondBest, mas ainda localizado na direção dada pelos dois melhores pontos do primeiro espaço de busca. No entanto, a presente descrição não é limitada por esse processo. Por exemplo, para manter baixa complexidade, se a tendência da função de custo não for monótona com base nas duas ou mais posições com os custos mais baixos, um segundo espaço de busca padrão pode ser definido assumindo, por exemplo, uma direção horizontal. A direção horizontal pode ser considerada uma direção mais provável em sequências de vídeo naturais, devido ao movimento panorâmico da câmera, bem como ao movimento de objetos típicos em vídeos naturais. Em outras palavras, se não houver uma tendência clara da função de custo com base no primeiro e no segundo candidatos a vetor de movimento melhor do primeiro espaço de busca, de preferência alguns pontos ao redor do primeiro vetor de movimento de candidato melhor serão definidos como o segundo espaço de busca. Para reduzir o tamanho do segundo espaço de busca, uma direção-padrão pode ser assumida e o segundo espaço de busca padrão correspondente pode ser definido.
[00114] O processo para a determinação do segundo espaço de busca no segundo estágio de acordo com a primeira modalidade é ilustrado na Figura 9. Em particular, as posições de pixel nas quais os vetores de movimento candidatos do segundo ponto de espaço de busca são determinados de acordo com os componentes de o vetor de diferença MV0'diff = (MV0 '- MV0'secondBest).
[00115] Se o MV0'diff tiver apenas um componente horizontal (ou seja, diferente de zero), o segundo espaço de busca é determinado para incluir as duas posições à esquerda e à direita do MV0 'cada uma com uma distância ao MV0' que corresponde à resolução do segundo espaço de busca (por exemplo, resolução de meio pixel), como mostra a Figura 9 (a). Além disso, se MV0'diff tiver apenas um componente vertical, o segundo espaço de busca é determinado para compreender duas posições acima e abaixo do MV0 'cada uma com uma distância ao MV0', que corresponde à resolução do segundo espaço de busca (consulte a Figura 9 (b)).
[00116] Se MV0'diff tiver um componente horizontal e um vertical (com um valor diferente de zero), como mostrado nas partes (c) e (d), o segundo espaço de busca será selecionado para a segunda posição mais próxima (diagonal) do vizinho em relação à posição associada ao MV0' na resolução do segundo espaço de busca. Se o componente horizontal e vertical for positivo ou negativo, são selecionadas as segundas posições vizinhas mais próximas no canto superior esquerdo e no canto inferior direito em relação ao MV0', conforme mostrado na Figura 9 (c). Se um componente é positivo e o outro negativo, são selecionadas as segundas posições vizinhas mais próximas na parte inferior esquerda e na parte superior direita em relação ao MV0' (Figura 9 (d)). Caso contrário, se MV0'diff não puder ser determinado (por exemplo, devido a características da função de custo, como todos os candidatos do primeiro espaço de busca com os mesmos custos), MV0'diff pode ser definido como (0,0) e uma escolha arbitrária, por exemplo, entre as alternativas mostradas nas Figuras 9 (a) - (d), pode ser feita para um segundo espaço de busca padrão. No entanto, neste caso, 9 (a) é preferível a configuração dos pontos de busca (acima de (b), (c) e (d)) devido às propriedades estatísticas das sequências de vídeo em geral (um objeto horizontal ou movimento da câmera é mais provável do que vertical, como geralmente a área de interesse está na direção horizontal).
[00117] É observado que que na Figura 9, assim como no restante da aplicação em que as coordenadas são consideradas, a direção positiva do eixo horizontal (“eixo x”) aponta para a direita (como em um sistema de coordenadas cartesiano comum), enquanto a direção positiva (“eixo y”) do eixo vertical aponta para o fundo (ao contrário da convenção cartesiana, mas normalmente usada no processamento de imagens).
[00118] Em todas as constelações do espaço de busca mostradas nas Figuras 5 a 8, o primeiro vetor de movimento candidato MV0’ aponta nas posições de pixel que estão na margem do primeiro espaço de busca. Em particular, um vetor de movimento candidato aponta em uma posição entre dois vetores de movimento candidatos do primeiro espaço de busca. O outro vetor de movimento candidato do segundo espaço de busca aponta para uma posição fora do primeiro espaço de busca, ou seja, uma posição que não é envolvida pelos vetores de movimento candidatos do primeiro espaço de busca.
[00119] No entanto, como mencionado acima, não apenas a(s) posição(ões) do(s) vetor(s) de movimento candidato(s) do segundo espaço de busca, mas também o tamanho (ou seja, o número de vetor(es) de movimento candidato) de acordo com a direção de um linha que liga os vetores de movimento candidatos MV0 'e MV0'secondBest. Mais especificamente, se o primeiro vetor de movimento candidato MV0 'apontar para uma posição no centro do primeiro espaço de busca, um vetor candidato é suficiente para o segundo espaço de busca. Em particular, o vetor de movimento candidato único do segundo espaço de busca aponta para uma posição da resolução do segundo espaço de busca entre dois vetores de movimento candidatos do primeiro espaço de busca. No entanto, ao contrário das constelações do espaço de busca mostradas nas Figuras 5 a 8, o segundo vetor de movimento candidato fora do primeiro espaço de busca é omitido. O processo ilustrado na Figura 9 é modificado de acordo para determinar apenas um vetor de movimento candidato do segundo espaço de busca, isto é, a janela de busca da segunda etapa de busca.
[00120] Exemplos do segundo espaço de busca compreendendo apenas um vetor de movimento candidato são mostrados nas Figuras 10 e 11. Na Figura 10, MV0' e MV0'secondBest são vizinhos mais próximos (adjacentes horizontalmente), e na Figura 11, MV0' e MV0'secondBest são segundos vizinhos mais próximos (adjacentes na diagonal). Como mostrado nas duas figuras, MV0' aponta para uma posição dentro do primeiro espaço de busca. Em outras palavras, existem vetores de movimento candidatos apontando para todas as posições de pixel adjacentes ao MV0'. Um desses vetores de movimento candidatos apontando para uma posição adjacente é MV0'secondBest.
[00121] Em outras palavras, o segundo espaço de busca compreende apenas um vetor de movimento candidato apontando em uma posição de pixel fracionário entre o primeiro e o segundo vetor de movimento candidato se o primeiro vetor de movimento candidato MV0’ se a segunda posição adjacente a MV0’ no primeiro espaço de busca e localizada na direção dada conectando MV0’ e MV0’secondBest pertence ao primeiro espaço de busca. Em tal situação, uma vez que a segunda posição já custou calculado e é maior que MV0' e MV0'secondBest, a probabilidade de encontrar um candidato de baixo custo nessa direção é bastante baixa. Em geral, o número de posições em um espaço de busca também pode depender da probabilidade de um vetor de movimento candidato melhor (em termos de custo) do que MV0' ser encontrado. A probabilidade pode ser estimada interpolando e / ou extrapolando a função de custo calculada para as posições do primeiro espaço de busca.
[00122] É observado que nos exemplos acima, o primeiro espaço de busca foi ilustrado tendo 9 posições adjacentes dispostas em uma grade quadrada. No entanto, a presente descrição não se limita a um tamanho específico do espaço de busca ou a um arranjo específico dos pixels. Do mesmo modo, a primeira modalidade pode ser aplicada aos primeiro e segundo espaços de busca com as mesmas ou diferentes resoluções (a última mostrada nas Figuras 5 a 8). O segundo espaço de busca também pode ter mais de duas posições.
[00123] De acordo com a primeira modalidade exemplar, a subetapa S1803 de calcular os custos para os vetores de movimento candidatos do primeiro espaço de busca no método de refinamento da Figura 18 é mostrada na Figura 19. As variáveis i, P1 e P2 são inicializadas, onde i é uma variável de índice que indica posteriormente cada um dos respectivos candidatos do espaço de busca (por exemplo, o primeiro espaço de busca). As variáveis P1 e P2 denotam os respectivos candidatos ao vetor de movimento com o menor e o segundo menor custo (isto é, a posição no espaço de busca e o valor do custo associado à posição). No início, P1 e P2 podem ser inicializados com um valor não associado a nenhuma posição, e os respectivos custos associados com P1 e P2 podem ser inicializados com um valor maior que qualquer valor possivelmente obtido em um cálculo de custo, ou seja, um custo máximo representável com a variável. Em um loop que itera sobre i, os custos do i-ésimo vetor de movimento candidato são calculados S1902. Os custos do i-ésimo vetor de movimento candidato são comparados S1903 com os custos do vetor de movimento P1 atualmente armazenado com o menor custo. Se os custos do i-ésimo vetor de movimento candidato forem inferiores aos custos do P1 armazenado, P1 será definido como o i-ésimo vetor de movimento candidato e armazenado S1904. Se os custos do i-ésimo candidato não forem inferiores aos do P1, então os custos do i-ésimo vetor de movimento do candidato serão comparados S1905 com os custos de P2. Se os custos do i-ésimo vetor de movimento candidato forem inferiores aos custos de P2, P2 será definido como o i-ésimo vetor de movimento candidato e armazenado S1906. Após as duas etapas de comparação de S1903, S1905 e possivelmente uma das etapas de armazenamento de S1904, S1906, i é incrementado. Se i ainda não atingiu um valor máximo, imax, representando o número de candidatos a vetores de movimento no primeiro espaço de busca S1908, o método retornará à etapa de cálculo de custo S1902. Se i atingiu o imax S1908, o cálculo do custo finaliza o S1909 e o refinamento da Figura 18 continua.
[00124] A subetapa S1805 de calcular os custos para os vetores de movimento candidatos do segundo espaço de busca pode ser realizada semelhantemente às etapas descritas na descrição acima da Figura 19. Entretanto, as etapas de comparar S1905 os custos do i-ésimo vetor de movimento candidato com os custos de P2 e armazenando S1906 o segundo vetor de movimento candidato P2 podem ser omitidas. Isso é porque na busca do segundo espaço de busca, o resultado é o melhor vetor de movimento sobre o primeiro e o segundo espaço de busca. O segundo melhor vetor de movimento ainda não tem uso, se o segundo espaço de busca anda não for estendido. Segunda modalidade exemplar
[00125] De acordo com uma segunda modalidade exemplar, o primeiro vetor de movimento candidato e o segundo vetor de movimento candidato usados na determinação do segundo espaço de busca são os vetores de movimento candidatos incluídos no primeiro espaço de busca que são associados respectivamente com o segundo custo correspondente e mais baixo (como na primeira modalidade exemplar).
[00126] Ainda, de acordo com a segunda modalidade exemplar, a unidade de determinação do espaço de busca 310 da Figura 3, em operação, determina a localização do segundo espaço de busca que é uma região. Aqui, o termo “região” se refere a um espaço incluindo pelo menos duas posições às quais respectivos pelo menos dois vetores de movimento candidatos apontam. Em particular, pelo menos duas ditas posições são adjacentes na resolução de pixel do segundo espaço de busca. O segundo espaço de busca pode ter a mesma resolução que o primeiro espaço de busca conforme mostrado nas Figuras 12 e 13. Entretanto, os espaços de busca podem ainda diferir na resolução.
[00127] Vantajosamente, o espaço de busca, que é determinado no primeiro estágio 301 da construção espaço de busca da Figura 3, inclui a estimativa inicial do vetor de movimento MV0 e vetores de movimento candidatos apontando para as posições adjacentes, ou seja, os vizinhos mais próximos da estimativa inicial do vetor de movimento em uma resolução de pixel do primeiro espaço de busca à posição apontado por MV0, Em outras palavras, o primeiro espaço de busca possui uma geometria "cruzada", em contraste com a primeira modalidade na qual um primeiro espaço de busca com uma geometria "quadrada" (forma) é construído no primeiro estágio 301 da construção do primeiro estágio. No entanto, é observado que o primeiro espaço de busca pode ter qualquer formato, desde que o mesmo espaço de busca seja utilizado no codificador e no decodificador. É vantajoso para a simplicidade da implementação, se o espaço de busca tiver uma certa forma predefinida, como a geometria cruzada ou quadrada ou qualquer outro arranjo, e a localização do vetor inicial MV0 apenas determinar a posição desse primeiro espaço de busca. Por outro lado, a presente invenção também pode funcionar com um primeiro espaço de busca cujo tamanho (em termos de posições apontadas pelos MVs candidatos) e / ou formato diferem.
[00128] O primeiro vetor de movimento candidato MV0’ com o menor valor da função de custo e o segundo candidato MV0’secondBest com o segundo menor valor são calculados e selecionados 302.
[00129] Com base nas coordenadas definindo a posição às quais MV0’ aponta e na direção dada por uma linha conectando as posições em que o primeiro e o segundo vetor de movimento candidato MV0’ e MV0’secondBest apontam, a região é selecionada para realizar a construção do segundo espaço de busca no segundo estágio 303 da Figura 3.
[00130] Mais especificamente, um vetor de movimento candidato incluído no segundo espaço de busca aponta para a posição mais próxima à posição de MV0’ na resolução do segundo espaço de busca em uma linha conectando as posições do primeiro ao segundo vetor de movimento candidato que não está incluído no primeiro espaço de busca. Um ou mais vetores de movimento candidatos adicionais são incluídos no segundo espaço de busca que apontam às posições adjacente na resolução de pixel do segundo espaço de busca e que não são incluídos no primeiro espaço de busca.
[00131] Exemplos de configurações do espaço de busca de acordo com esta segunda modalidade são mostrados nas Figuras 12 e 13. Como exemplo, a resolução de pixel do segundo espaço de busca é a mesma que a resolução de pixel do primeiro espaço de busca. Como pode ser visto nas figuras, a posição para a qual o vetor de movimento candidato inicial aponta é cercada por quatro posições de pixel adjacentes na respectiva resolução de pixel para MV0, isto é, quatro vizinhos mais próximos. O MV0 e os vetores de movimento candidato que apontam para essas quatro posições adjacentes ao MV0 são incluídos no primeiro espaço de busca. O primeiro e o segundo vetores de movimento candidatos MV0' e MV0'secondBest com o menor e o segundo menor custo do primeiro espaço de busca de acordo com uma função de custo são determinados. A posição apontada pelo MV0' e uma direção da linha que liga o MV0' e o segundo do MV0Melhor dado pelo vetor de diferença MV0'diff é usada para determinar o segundo espaço de busca no segundo estágio 303 da Figura 3. Aqui a definição de MV0'diff é o mesmo que na descrição da primeira modalidade exemplar. Nas figuras 12 e 13, o segundo espaço de busca inclui um vetor de movimento candidato apontando aproximadamente para uma posição na linha que liga MV0' e MV0'secondBest, que é dada por (MV0' + MV0'diff) e as posições adjacentes (ou seja, mais próximas) para a referida posição na referida linha que não são apontadas pelos vetores de movimento candidatos do primeiro espaço de busca.
[00132] Na Figura 12, MV0’ e MV0’secondBest não são adjacentes na resolução do primeiro espaço de busca; eles são segundos vizinhos mais próximos. O segundo espaço de busca inclui vetores, a saber, o vetor apontando para a dita posição na dita linha e os quatro vizinhos mais próximos da dita posição.
[00133] Na Figura 13, MV0’ e MV0’secondBest apontam nas posições adjacentes na resolução do primeiro espaço de busca. Neste caso, a posição no segundo espaço de busca na linha conectando MV0’ e MV0’secondBest que é definida por (MV0’ + MV0’diff) é um vizinho mais próximo de MV0’. O segundo espaço de busca então compreende o vetor apontando na posição correspondente a (MV0’ + MV0’diff) e os vetores de movimento candidatos apontando nos três vizinhos mais próximos de (MV0’ + MV0’diff) que não são iguais a MV0’. Certamente, o segundo espaço de busca compreende quatro vetores de movimento candidatos.
[00134] No entanto, se MV0' e MV0'secondBest não forem os vizinhos mais próximos nem o segundo mais próximo na resolução de pixels do primeiro espaço de busca, ou seja, se houver uma posição de pixel no primeiro espaço de busca entre as posições de pixel nas quais MV0' e MV0'secondBest respectivamente, o mesmo segundo espaço / janela de busca pode ser determinado como no caso mostrado na
Figura 13.
[00135] Se as coordenadas de busca indicadas pelo segundo espaço de busca já estiverem incluídas no primeiro espaço de busca, a segunda operação de busca não será executada (finalizada). Pode ser esse o caso, em particular, se o modelo correspondente e / ou a função de custo usada no primeiro e no segundo estágio forem idênticos. Ainda como outra alternativa, o modelo de correspondência e / ou a função de custo são diferentes para a primeira e a segunda etapas de busca, a segunda operação de busca pode ser realizada. É observado que a presente descrição refere-se à redução do tamanho do espaço de busca e, em particular, à redução, definindo o segundo espaço de busca com base nas características do desenvolvimento da função de custo. Qualquer modelo é aplicável com a presente invenção, que pode ser igual ou diferente para os respectivos espaços de busca parciais, como o primeiro espaço de busca e o segundo espaço de busca ou outros espaços de busca, se a determinação do espaço de busca estiver em cascata em mais de dois estágios.
[00136] De acordo com a segunda modalidade exemplar, as subetapas para calcular S1803 os custos dos vetores de movimento candidatos do primeiro espaço de busca (do segundo espaço de busca S1805) no refinamento do vetor de movimento mostrado na Figura 18 podem ser executados de maneira semelhante ao cálculo de acordo com para a primeira modalidade descrita acima em relação à Figura 19. Terceira modalidade exemplar
[00137] Nas modalidades descritas até o momento, a unidade de determinação de espaço de busca 310 mostrada na Figura 3 identifica um primeiro e segundo vetor de movimento candidato do primeiro espaço de busca que são os vetores de movimento candidatos do primeiro espaço de busca para os quais os custos correspondentes são o mais baixo e o segundo mais.
[00138] De acordo com uma terceira modalidade exemplar da presente invenção, para a seleção 302 de um primeiro e segundo vetor de movimento candidato, os custos correspondentes de modelo são computados para quatro vetores de movimento candidatos apontando nas posições ao redor da posição inicial em que a estimativa inicial MV0 do vetor de movimento aponta. Em particular, a fim de determinar o segundo espaço de busca, os custos correspondentes das posições de pixel são avaliados que são adjacentes na resolução de pixel do primeiro espaço de busca à posição apontada pela estimativa MV0 do vetor de movimento. A posição de pixel é determinada para ser apontada por um primeiro vetor de movimento candidato do segundo espaço de busca que é adjacente na resolução de pixel do primeiro espaço de busca às posições apontadas pelos ditos primeiro e segundo vetores de movimento candidatos e diferentes de uma posição apontada pela estimativa do vetor de movimento. Esse primeiro vetor de movimento candidato aponta em um quadrante onde os custos correspondentes são esperados reduzir, conforme mostrado na Figura
14.
[00139] Na Figura 15, uma unidade de determinação do espaço de busca 1510 é mostrada que é uma modificação da unidade de determinação mais genérica do espaço de busca 310 mostrada na Figura 3. Com base na estimativa inicial MV0 do vetor de movimento, um primeiro espaço de busca, que é exemplarmente ilustrado na Figura 14(a) é determinado no estágio 1 de construção do espaço de busca 1501 da Figura 15, as coordenadas da estimativa inicial para o vetor de movimento são denotadas como MV0_x e MV0_y). O primeiro espaço de busca consiste em MV0 e vetores de movimento candidatos apontando nas posições de pixel ao redor da posição correspondente a MV0, por exemplo, os vizinhos mais próximos de MV0 na resolução de pixel do primeiro espaço de busca. Os custos correspondentes são calculados para os vetores de movimento candidatos do primeiro espaço de busca. Selecionando um primeiro e um segundo vetor de movimento candidato 1501, duas direções ao longo preferivelmente das direções ortogonais (por exemplo vertical e horizontal) são calculadas em que os custos correspondentes são esperados reduzir.
[00140] Na Figura 14, assim como no restante da aplicação em que as coordenadas são consideradas, a direção positiva do eixo horizontal (“eixo x”) aponta para a direita, enquanto a direção positiva (“eixo y”) do o eixo vertical aponta para o fundo.
[00141] Mais precisamente, são feitas duas comparações 15021, 15022, para as quais os pontos adjacentes à posição do pixel correspondente a MV0 são agrupados em dois grupos. Os custos correspondentes de duas posições de pixel são comparados, os quais são adjacentes na resolução de pixel do primeiro espaço de busca à posição de pixel apontada pelo vetor de movimento candidato inicial e que possuem o mesmo componente vertical que o vetor de movimento candidato inicial. Dos dois vetores comparados avaliados nesta primeira comparação 15021, o vetor com os custos correspondentes mais baixos é escolhido como o primeiro vetor de movimento candidato do primeiro espaço de busca.
[00142] Além disso, são comparados os custos correspondentes de duas posições de pixel adjacentes na resolução de pixels do primeiro espaço de busca à posição de pixel apontada pelo vetor de movimento candidato inicial e que possuem o mesmo componente horizontal que o vetor de movimento candidato inicial. Dos dois vetores comparados avaliados nesta segunda comparação 15022, o vetor com os custos de correspondência mais baixos é escolhido como um segundo vetor de movimento candidato do primeiro espaço de busca.
[00143] Como resultado dessas duas comparações, uma posição de pixel é determinada como sendo apontada pelo primeiro vetor de movimento candidato do segundo espaço de busca que possui o mesmo componente vertical que o primeiro vetor de movimento candidato e que tem o mesmo componente horizontal que o segundo vetor de movimento candidato. O primeiro e o segundo vetor de movimento candidato definem, respectivamente, um semiplano positivo ou negativo nas direções vertical e horizontal. O quadrante sobreposto é selecionado como a área em que se espera que o custo correspondente diminua e define o segundo espaço. Na Figura 14 (b), o segundo espaço de busca inclui apenas um ponto.
[00144] O primeiro espaço de busca pode incluir a estimativa inicial MV0 do vetor de movimento e seu vizinho mais próximos, ou seja, os vetores de movimento candidatos apontando nas posições de pixel adjacente a MV0 na resolução do primeiro espaço de busca. Tal configuração do espaço de busca que tem a geometria “cruzada” ainda descrita com relação à segunda modalidade, é mostrada na Figura 14(a). Os custos correspondentes de acordo com a função de custo que é usada são calculados para esses cinco vetores de movimento candidatos do espaço de busca.
[00145] A seguir, assume-se, sem perda de generalidade, que as coordenadas da posição do pixel na qual a estimativa inicial MV0 do ponto do vetor de movimento são (0,0). As duas comparações descritas acima para determinar as coordenadas (horizontais, verticais) do primeiro vetor de movimento do segundo espaço de busca podem então ser realizadas, por exemplo, de acordo com o procedimento a seguir. vertical = -1, horizontal = -1; se (custo do vetor de movimento candidato (0,1) < custo do vetor de movimento candidato (0,-1)) vertical = 1; se (custo do vetor de movimento candidato (1,0) < custo do vetor de movimento candidato (-1,0))
horizontal = 1;
[00146] Ao determinar um vetor de movimento (vertical, horizontal) com base no processo indicado acima ou em um processo semelhante, um quadrante é selecionado no qual se espera que o custo correspondente diminua.
[00147] Consequentemente, o quadrante a ser usado na determinação do segundo espaço de busca (303 na Figura 3) compreende candidatos com coordenadas (horizontal * x, vertical * y), x, y> 0 e "horizontal" e "vertical" possuindo os valores determinados por um processo como descrito acima. Esta determinação do quadrante é exemplarmente ilustrada na Figura 14 (b). No exemplo mostrado, o vetor de movimento (-1,1) é determinado para definir o quadrante selecionado (isto é, o quadrante superior direito). Os vetores de movimento em potencial nos outros três quadrantes, que neste exemplo específico não serão incluídos no segundo espaço de busca, são ilustrados como pontos menores.
[00148] A presente descrição não se limita à definição explícita do processo acima. Por exemplo, (1,1) pode ser usado como valores iniciais em vez de (-1, -1) ou, em vez de definir coordenadas iniciais, cláusulas "então" podem ser usadas (compare as cláusulas se -então 15021, 15022 na Figura 15), a ordem (sequência) dos condicionais "se" pode ser trocada.
[00149] Quando o primeiro vetor de movimento candidato do segundo espaço de busca é determinado conforme descrito acima, seus custos correspondentes são calculados. Como um caso específico, o segundo espaço de busca pode compreender apenas um dito primeiro vetor de movimento candidato. Neste caso, dos vetores de movimento candidatos verificados (no exemplo descrito, cinco vetores de movimento candidatos do primeiro espaço de busca e um vetor de movimento candidato do segundo espaço de busca), o vetor de movimento candidato com o custo mais baixo correspondente é selecionado como o vetor de movimento a ser usado para o bloco atual.
[00150] Entretanto, como ainda pelo menos um vetor de movimento candidato do segundo espaço de busca, um vetor de movimento candidato apontando para uma posição em uma resolução do segundo espaço de busca pode ser determinado. Pelo menos um vetor de movimento candidato adicional aponta para uma posição em uma resolução do segundo espaço de busca, que está localizado aproximadamente em uma linha conectando a estimativa do vetor de movimento e o candidato do segundo espaço de busca. A resolução de pixel do segundo espaço de busca pode ser mais alta do que a resolução de pixel do primeiro espaço de busca. O vetor de movimento candidato adicional do segundo espaço de busca pode em uma posição localizada entre as posições apontadas pelo primeiro vetor de movimento candidato do segundo espaço de busca e pela estimativa do vetor de movimento.
[00151] Em particular, após o primeiro vetor de movimento candidato da determinação do segundo espaço de busca 1503 poder ser continuado em um segundo estágio da determinação do segundo espaço de busca e o segundo espaço de busca pode então ser determinado como compreendendo pelo menos um candidato adicional vetor de movimento apontando em uma posição no quadrante que foi definida pelo primeiro vetor de movimento candidato do segundo espaço de busca. Por exemplo, dentre os candidatos verificados até o momento, os dois candidatos com o mínimo e o segundo custo mínimo de correspondência podem ser identificados e usados para calcular uma direção para a determinação de pontos adicionais para os quais os vetores de movimento do candidato do segundo ponto do espaço de busca.
[00152] Um processo exemplar para o cálculo da direção calculada com base nos candidatos com o menor e o segundo menor custo de correspondência será fornecido a seguir, em que as coordenadas dos candidatos com o menor e o segundo menor custo de correspondência são indicadas como (P_min_x, P_min_y) e (P_second_x, P_second_y) e as variáveis “direction_vertical” e “direction_horizontal” denotam os componentes do vetor que define a direção. direction_vertical = 0, direction_horizontal = 0; se ( P_min_x != P_segundo_x ) direction_horizontal = 1; se ( P_min_y != P_segundo_y ) direction_vertical = 1;
[00153] Conforme mostrado na Figura 16, novos vetores de movimento candidatos para o segundo espaço de busca podem ser selecionados com base na direção dada pelo vetor (direction_vertical,direction_horizontal) e as coordenadas do vetor de movimento candidato (P_min_x,P_min_y) com os custos mais baixos correspondentes como 0,5×(P_min_x + direction_vertical,P_min_y - direction_horizontal) e 0,5×(P_min_x - vertical,P_min_y + horizontal) ou um desses dois aponta, dependendo das posições de pixel em que o primeiro e o segundo vetor de movimento candidato do primeiro espaço de busca apontam. Os custos correspondentes dos novos vetores de movimento candidatos do segundo espaço de busca são calculados, e dos vetores de movimento candidatos do primeiro e segundo buscam, o vetor de movimento candidato com o custo mínimo correspondente é selecionado como saída do processo de refinamento do vetor de movimento, ou seja, MV0’’ da Figura 3.
[00154] No exemplo da Figura 16, o segundo espaço de busca possui uma resolução fracionária de pixels, em particular a resolução de meio pixel (de acordo com o coeficiente 0,5 dos vetores que especificam a direção das posições dos vetores de movimento candidatos adicionais do segundo espaço de busca). Podem ser usadas resoluções alternativas de pixel, como resolução de quarto de pixel, e em vez de um ou dois candidatos a vetores de movimento, dois ou quatro vetores de movimento candidatos apontando aproximadamente para a linha fornecida pelo vetor de movimento candidato (P_min_x, P_min_y) e a direção (direction_vertical, direction_horizontal) pode ser usado.
[00155] Na configuração exemplar do espaço de busca mostrada na Figura 16, o primeiro vetor de movimento do segundo espaço de busca coincide com o vetor de movimento candidato (P_min_x, P_min_y) com os custos mais baixos correspondentes em que o cálculo dos vetores de movimento adicionais do segundo espaço de busca, 0,5×(P_min_x + direction_vertical,P_min_y - direction_horizontal) e 0,5×(P_min_x - vertical,P_min_y + horizontal) é baseado. Combinações das modalidades
[00156] De acordo com cada uma das modalidades exemplares descritas acima, um segundo espaço de busca é selecionado com base na saída de uma primeira etapa em que um primeiro espaço de busca é determinado 301 e um primeiro e segundo vetor de movimento candidato são selecionados do primeiro espaço de busca 302. No entanto, o processo geral de busca pode ser dividido em mais etapas do que a determinação de um primeiro e um segundo espaço de busca e a seleção de um ou dois candidatos no respectivo espaço de busca. Em cada etapa ou subetapa, um novo espaço de busca pode ser determinado de acordo com uma das modalidades exemplares. Por exemplo, a configuração do espaço de busca descrita acima em relação à Figura 16 é um exemplo em que, a determinação do segundo espaço de busca implica subsequentemente aplicar a terceira modalidade exemplar e a primeira modalidade exemplar. Isso será explicado a seguir.
[00157] Na configuração exemplar do espaço de busca mostrada na
Figura 16, o segundo espaço de busca compreende o primeiro vetor de movimento candidato do segundo espaço de busca e dois vetores de movimento candidatos adicionais. Esses dois vetores de movimento candidato adicionais do segundo espaço de busca apontam aproximadamente para as posições de pixel em uma linha definida pelo vetor de movimento candidato da posição de pixel com o menor custo de correspondência entre os cinco vetores de movimento candidatos do primeiro espaço de busca e o segundo e pela linha tendo uma direção dada pelos vetores com as coordenadas direction_horizontal e direction_vertical calculadas de acordo com o procedimento acima. Este processo é um exemplo para o cálculo de dois vetores de movimento candidato, de acordo com uma direção dada por uma linha que liga dois vetores de movimento candidato. Este processo também pode ser usado no cálculo do segundo espaço de busca da primeira modalidade que foi descrita acima com referência às Figuras 5 a 11.
[00158] Em outras palavras, o segundo estágio opcional da determinação do segundo espaço de busca de acordo com a terceira modalidade corresponde à determinação do segundo espaço de busca de acordo com a primeira modalidade. Em outras palavras, no exemplo acima de determinar um segundo espaço de busca com mais vetores de movimento candidato do que apenas o primeiro vetor de movimento candidato do segundo espaço de busca, os vetores de movimento adicionais do espaço de busca foram obtidos combinando esta terceira modalidade da presente descrição com a primeira modalidade.
[00159] No exemplo da terceira modalidade exemplar que foi descrita com referência à Figura 16, a terceira modalidade e as primeiras modalidades são combinadas ao determinar o segundo espaço de busca. No entanto, a presente descrição não está limitada a este exemplo particular de uma combinação de diferentes modalidades.
[00160] Ainda, a presente descrição não é limitada à combinação de duas modalidades diferentes. Alternativamente, o segundo espaço de busca pode ser determinado aplicando subsequentemente o segundo estágio 303 de acordo com a primeira modalidade e, assim, determinar espaços de busca conectados tendo diferentes resoluções de pixel, por exemplo, resolução de meio pixel primeiro e resolução de quarto pixel segundo.
[00161] Um exemplo adicional de combinação das diferentes modalidades exemplares é ilustrado na Figura 17. Como pode ser visto na Figura 17 (a), um primeiro espaço de busca compreendendo cinco vetores de movimento candidatos, nomeadamente o vetor de movimento inicial estimado e os quatro vetores de movimento candidatos adjacentes a o vetor de movimento de estimativa inicial na resolução de pixel do primeiro espaço de busca (por exemplo, resolução de pixel completo) é determinado de acordo com a segunda modalidade exemplar. Os vetores de movimento candidato com o menor e o segundo menor custo de correspondência são usados para determinar um segundo espaço de busca que é uma região de acordo com a segunda modalidade, compreendendo mais cinco vetores de movimento candidato mostrados na Figura 17 (b). Nestes cinco vetores de movimento candidatos adicionais, a abordagem da terceira modalidade é aplicada, isto é, um vetor de movimento candidato adicional mostrado na Figura 17 (c) é determinado, aplicando a seleção 1502 de um primeiro e um segundo vetor de movimento candidato, MV0 ' primeiro e MV0segundo, da Figura 15. De acordo com a primeira modalidade, novamente, os dois vetores de movimento candidatos com os menores e os segundos menores custos correspondentes são determinados (denota MV0'c e MV0'secondBest_c na figura). Como pode ser visto na Figura 17 (d), são adicionados dois vetores de movimento candidatos adicionais que apontam para posições de pixel com uma resolução de pixel mais alta (por exemplo, resolução de meio pixel) que a resolução usada até agora, que apontam aproximadamente para as posições em uma linha conectada as posições correspondentes a MV0'c e MV0'secondBest_c.
[00162] Uma vantagem de combinar diferentes modalidades é que o número de vetores de movimento candidatos pode ser mantido baixo, mantendo uma precisão semelhante em uma área aumentada da imagem de referência. Por exemplo, como pode ser visto na Figura 17, a catenação dos três estágios correspondentes às três modalidades permite fornecer uma posição de um preditor na precisão da resolução de meio pixel para uma área correspondente a um quadrado de 7 × 7 pixels completos.
[00163] A determinação do vetor de movimento, incluindo o refinamento do vetor de movimento, conforme descrito acima, pode ser implementada como parte da codificação e / ou decodificação de um sinal de vídeo (imagem em movimento). No entanto, a determinação do vetor de movimento também pode ser usada para outros fins no processamento de imagens, como detecção de movimento, análise de movimento ou similares.
[00164] A determinação do vetor de movimento pode ser implementada como um dispositivo. Esse dispositivo pode ser uma combinação de software e hardware. Por exemplo, a determinação do vetor de movimento pode ser realizada por um chip, como um processador de uso geral, ou um processador de sinal digital (DSP), ou uma matriz de portas programáveis em campo (FPGA), ou similares. No entanto, a presente invenção não se limita à implementação em um hardware programável. Pode ser implementado em um circuito integrado específico da aplicação (ASIC) ou por uma combinação dos componentes de hardware mencionados acima.
[00165] A determinação do vetor de movimento pode ainda ser implementada pelas instruções do programa armazenadas em um meio legível por computador. O programa, quando executado, faz com que o computador realize as etapas de obter uma estimativa do vetor de movimento, determinar o primeiro espaço de busca incluir uma pluralidade de vetores de movimento candidatos com base na estimativa, identificando um primeiro e um segundo vetor de movimento candidato no primeiro espaço de busca de acordo com uma função de custo, determinar um segundo espaço de busca incluindo um ou mais vetores de movimento candidatos com base no primeiro e no segundo vetores de movimento candidatos, e selecionar o vetor de movimento para o bloco atual dentre os vetores de movimento candidatos do primeiro espaço e do segundo espaço. O meio legível por computador pode ser qualquer meio em que o programa é armazenado como um DVD, CD, USB (flash), disco rígido, armazenamento de servidor disponível por uma rede, etc.
[00166] O codificador e/ou decodificador pode ser implementado em vários dispositivos incluindo um dispositivo de TV, decodificador, PC, tablet, smartphone ou similares. Pode ser um software, aplicativo implementando as etapas do método.
[00167] Resumindo, a presente invenção se refere à construção de a espaço de busca para determinar um vetor de movimento para um bloco atual de uma foto em uma sequência de vídeos. A construção de espaço de busca é dividida em dois estágios principais, em que um primeiro e um segundo espaço de busca parcial são respectivamente determinados. Com base em uma estimativa inicial de um vetor de movimento, um primeiro espaço de busca é primeiro construído. Um primeiro e um segundo movimento candidato do primeiro espaço de busca são identificados de acordo com uma função de custo. Com base no primeiro e no segundo vetor de movimento candidato, um segundo espaço de busca é construído. O vetor de movimento para o bloco atual é selecionado dos vetores de movimento candidatos do primeiro espaço de busca e do segundo espaço de busca.
[00168] Embora a invenção tenha sido descrita acima principalmente dentro da estrutura de codificação de vídeo de filmes, as técnicas propostas podem ser aplicadas também para codificação (isto é, codificação ou decodificação) de qualquer conjunto de imagens compreendendo duas ou mais imagens. O conjunto de imagens pode compreender, por exemplo, um conjunto de imagens paradas obtidas em um aplicativo de imagens médicas, por exemplo, uma sequência de imagens de tomografia computadorizada (CT). Nas reivindicações anexas, o termo "vídeo" pode, portanto, significar uma sequência de filme ou qualquer outro conjunto de imagens que compreenda duas ou mais imagens.

Claims (16)

REIVINDICAÇÕES
1. Dispositivo para determinar um vetor de movimento a ser usado em interprevisão de um bloco atual de um quadro de vídeo, caracterizado pelo fato de que compreende: uma unidade de determinação de espaço de busca (310) configurada para obter uma estimativa do vetor de movimento, determinar um primeiro espaço de busca compreendendo uma pluralidade de vetores de movimento candidatos com base na estimativa, selecionar um primeiro (MV0’) e um segundo (MV0’secondBest) vetor de movimento candidato no primeiro espaço de busca de acordo com uma função de custo, e determinar um segundo espaço de busca compreendendo um ou mais vetores de movimento candidatos com base no primeiro e no segundo vetor de movimento candidato; e uma unidade de seleção do vetor de movimento (340) configurada para selecionar o vetor de movimento para o bloco atual dentre os vetores de movimento candidatos do primeiro espaço de busca e do segundo espaço de busca.
2. Dispositivo, de acordo com a reivindicação 1, caracterizado pelo fato de que a função de custo é com base em um modelo predeterminado e indica, para o respectivo vetor de movimento candidato, um nível de similaridade entre o modelo predeterminado e um preditor apontado pelo respectivo vetor de movimento candidato.
3. Dispositivo, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a unidade de determinação de espaço de busca (310) é configurada para determinar o tamanho e/ou a posição do segundo espaço de busca de acordo com uma direção de uma linha conectando as posições nas quais o primeiro e o segundo vetor de movimento candidato apontam.
4. Dispositivo, de acordo com a reivindicação 3,
caracterizado pelo fato de que a determinação do primeiro espaço de busca pela unidade de determinação de espaço de busca (310) compreende: definir o primeiro espaço de busca para ter uma resolução de pixel de número inteiro, e em que a determinação do segundo espaço de busca pela unidade de determinação de espaço de busca compreende: incluir no segundo espaço de busca um ou mais vetores de movimento candidatos que apontam às posições (411, 412) localizadas na direção de uma linha conectando as posições (409, 406) às quais o primeiro e o segundo vetor de movimento candidato (MV0’, MV0’secondBest) apontam, o segundo espaço de busca tendo uma resolução de pixel fracionário.
5. Dispositivo, de acordo com a reivindicação 4, caracterizado pelo fato de que pelo menos um dos vetores de movimento candidatos do segundo espaço de busca aponta para uma posição (411) entre as posições (409, 406) apontadas pelo primeiro e pelo segundo vetor de movimento candidato (MV0’, MV0’secondBest).
6. Dispositivo, de acordo com quaisquer das reivindicações 1 a 3, caracterizado pelo fato de que a unidade de determinação de espaço de busca (310) é configurada para determinar uma localização de uma região incluindo pelo menos duas posições às quais pelo menos dois vetores de movimento candidatos apontam respectivamente, pelo menos duas ditas posições sendo adjacentes em uma resolução de pixel do segundo espaço de busca, e para determinar o segundo espaço de busca como as posições da região que não pertencem ao primeiro espaço de busca.
7. Dispositivo, de acordo com quaisquer das reivindicações 1 a 3 ou 6, caracterizado pelo fato de que a determinação do primeiro espaço de busca pela unidade de determinação de espaço de busca compreende: incluir no primeiro espaço de busca a estimativa do vetor de movimento e vetores de movimento candidatos apontando para as posições adjacentes em uma resolução de pixel do primeiro espaço de busca à posição apontada pela dita estimativa do vetor de movimento.
8. Dispositivo, de acordo com a reivindicação 7, caracterizado pelo fato de que a unidade de determinação de espaço de busca (310) é configurada para: selecionar como um primeiro vetor de movimento candidato do segundo espaço de busca um vetor de movimento candidato apontando para a posição que é adjacente na resolução de pixel do primeiro espaço de busca às posições apontado pelo primeiro e pelo segundo vetor de movimento candidato identificado no primeiro espaço de busca e diferente da posição apontado pela estimativa do vetor de movimento.
9. Dispositivo, de acordo com a reivindicação 8, caracterizado pelo fato de que a unidade de determinação de espaço de busca (310) é configurada para determinar como um vetor de movimento candidato adicional do segundo espaço de busca um vetor de movimento candidato apontando para uma posição em uma resolução do segundo espaço de busca, que está localizado aproximadamente em uma linha conectando a estimativa do vetor de movimento e o candidato do segundo espaço de busca, a resolução de pixel do segundo espaço de busca sendo mais alta do que a resolução de pixel do primeiro espaço de busca.
10. Dispositivo, de acordo com a reivindicação 9, caracterizado pelo fato de que o vetor de movimento candidato adicional do segundo espaço de busca aponta para uma posição localizada entre as posições apontado pelo primeiro vetor de movimento candidato do segundo espaço de busca e a estimativa do vetor de movimento.
11. Dispositivo, de acordo com quaisquer das reivindicações 1 a 10, caracterizado pelo fato de que o segundo espaço de busca tem uma resolução mais alta do que o primeiro espaço de busca.
12. Dispositivo, de acordo com quaisquer das reivindicações 1 a 11, ainda caracterizado pelo fato de que compreende: uma unidade de determinação do vetor de movimento para determinar a estimativa do vetor de movimento de uma lista dos vetores de movimento incluindo vetores de movimento de pelo menos um bloco adjacente ao bloco atual.
13. Decodificador de vídeo para decodificar uma pluralidade de fotos de um fluxo contínuo de dados, caracterizado pelo fato de que compreende: um analisador de fluxo contínuo de dados para obter do fluxo contínuo de dados uma indicação da estimativa do vetor de movimento, uma unidade de interprevisão incluindo o dispositivo, de acordo com quaisquer das reivindicações 1 a 12 e ainda configurada para determinar um bloco de previsão ao qual o vetor de movimento do bloco atual aponta, uma unidade de reconstrução para reconstruir o bloco atual com base no bloco de previsão.
14. Codificador de vídeo para codificar uma pluralidade de fotos em um fluxo contínuo de dados, caracterizado pelo fato de que compreende: uma unidade de interprevisão incluindo o dispositivo, de acordo com quaisquer das reivindicações 1 a 12 e ainda configurada para determinar um bloco de previsão ao qual o vetor de movimento do bloco atual aponta, um formador de fluxo contínuo de dados para incluir ao fluxo contínuo de dados uma indicação da estimativa do vetor de movimento, uma unidade de reconstrução para reconstruir o bloco atual com base no bloco de previsão e armazenar o bloco reconstruído em uma memória.
15. Método para determinar um vetor de movimento a ser usado na interprevisão de um bloco atual de um quadro de vídeo, caracterizado pelo fato de que compreende: obter uma estimativa do vetor de movimento, determinar um primeiro espaço de busca compreendendo uma pluralidade de vetores de movimento candidatos com base na estimativa, selecionar um primeiro (MV0’) e um segundo vetor de movimento candidato (MV0’secondBest) no primeiro espaço de busca de acordo com uma função de custo, determinar um segundo espaço de busca compreendendo um ou mais vetores de movimento candidatos com base no primeiro e no segundo vetor de movimento candidato, e selecionar o vetor de movimento para o bloco atual dentre os vetores de movimento candidatos do primeiro espaço e do segundo espaço.
16. Programa de computador caracterizado pelo fato de que compreende instruções que, quando executadas por um processador, acarretam executar o método como definido na reivindicação 15.
Bloco Bloco de vídeo
Petição 870200021205, de 13/02/2020, pág. 70/87 residual Unidade de Unidade de transformada quantização Unidade de intraprevisão Unidade de seleção Coeficientes de modo Bloco residuais Unidade de previsão de quantizados interprevisão 1/13
Unidade de codificação de entropia Buffer de quadro (imagens de referência) Bloco residual decodificado Unidade de Unidade de Unidade filtragem de loop de transformada quantização Bloco de vídeo inversa inversa reconstruído Bloco filtrado reconstruído Fluxo continuo de dados codificado
Fluxo continuo Unidade Unidade de de dados de codificação quantização
Petição 870200021205, de 13/02/2020, pág. 71/87 codificado de entropia inversa
Amostras de referencia Unidade de intraprevisão
Bloco de referência Unidade de interprevisão Unidade de transformada 2/13 inversa
Buffer de imagem Bloco de de referencia previsão Bloco residual Unidade de filtragem de loop Vídeo decodificado Decodificador de vídeo
Petição 870200021205, de 13/02/2020, pág. 72/87 Unidade de determinação de espaço de busca Unidade de seleção de vetor de movimento
Selecionar Construção primeiro 1º MV candidato de espaço de Construção de Selecionar coordenada e segundo vetor busca para de movimento espaço de busca com custo 3/13 estágio 1 candidato (MV) para estágio 2 correspondente 1º MV candidato mínimo
Petição 870200021205, de 13/02/2020, pág. 73/87 Imagem de referência 0 na lista 4/13
Bloco atual na imagem atual
Terceiro candidato
Terceiro candidato
Terceiro candidato
Petição 870200021205, de 13/02/2020, pág. 77/87 Bloco atual na imagem atual 8/13
Segunda janela da etapa de busca Segunda janela da etapa de busca Bloco atual na imagem atual
Quadrante onde os custos correspondentes são esperados reduzir
Petição 870200021205, de 13/02/2020, pág. 78/87 9/13
Unidade de determinação do espaço de busca
Vertical
Petição 870200021205, de 13/02/2020, pág. 79/87 Construção de espaço Construção de espaço de busca para de busca para estágio 1 estágio 2
Horizontal 10/13
Refinamento
Petição 870200021205, de 13/02/2020, pág. 81/87 Calcular 1 espaço de busca ao redor de MV0
Calcular custo dos primeiros pontos do espaço de busca
Definir segundo espaço 12/13 de busca de acordo com P1, P2
Calcular custos dos segundos pontos do espaço de busca
Considerar melhor
Fim
Calcular custos dos pontos de espaço de busca
Petição 870200021205, de 13/02/2020, pág. 82/87 Calcular custos de P1
Sim Armazenar P1, 13/13
Não
Sim Armazenar P2,
Não
Fim
BR112019028012-0A 2017-06-30 2017-06-30 dispositivo e método para determinar um vetor de movimento, codificador e decodificador de vídeo para codificar e decodificar uma pluralidade de fotos BR112019028012A2 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2017/066337 WO2019001737A1 (en) 2017-06-30 2017-06-30 RESEARCH AREA FOR MOVEMENT VECTOR ENHANCEMENT

Publications (1)

Publication Number Publication Date
BR112019028012A2 true BR112019028012A2 (pt) 2020-07-07

Family

ID=59285187

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019028012-0A BR112019028012A2 (pt) 2017-06-30 2017-06-30 dispositivo e método para determinar um vetor de movimento, codificador e decodificador de vídeo para codificar e decodificar uma pluralidade de fotos

Country Status (12)

Country Link
US (2) US11082714B2 (pt)
EP (1) EP3632108B1 (pt)
JP (1) JP2020526112A (pt)
KR (2) KR102430225B1 (pt)
CN (2) CN115118988A (pt)
AU (2) AU2017421655B2 (pt)
BR (1) BR112019028012A2 (pt)
CA (2) CA3151032A1 (pt)
IL (1) IL271770B2 (pt)
MY (1) MY194535A (pt)
SG (1) SG11201913272SA (pt)
WO (1) WO2019001737A1 (pt)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110692248B (zh) * 2017-08-29 2024-01-02 株式会社Kt 视频信号处理方法及装置
CN109587501B (zh) * 2017-09-28 2022-07-12 腾讯科技(深圳)有限公司 进行运动估计的方法、装置及存储介质
CN113302935A (zh) * 2019-01-02 2021-08-24 瑞典爱立信有限公司 视频编码/解码系统中的端运动细化
JP7232345B2 (ja) * 2019-02-08 2023-03-02 ベイジン・ダジア・インターネット・インフォメーション・テクノロジー・カンパニー,リミテッド ビデオ符号化のための双方向オプティカルフローおよびデコーダ側動きベクトル補正を選択的に適用する方法およびデバイス
WO2020173196A1 (en) * 2019-02-28 2020-09-03 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for inter prediction
EP3912354A4 (en) * 2019-03-08 2022-03-16 Huawei Technologies Co., Ltd. SEARCH REGION FOR MOTION VECTOR REFINEMENT
TWI738248B (zh) 2019-03-14 2021-09-01 聯發科技股份有限公司 運動細化以及子分區基礎填充的視訊處理的方法以及裝置
WO2021163862A1 (zh) * 2020-02-18 2021-08-26 深圳市大疆创新科技有限公司 视频编码的方法与装置
US11418810B2 (en) * 2020-09-21 2022-08-16 Tencent America LLC Methods of inter picture motion prediction for multi-view video compression
US11875516B2 (en) 2020-12-28 2024-01-16 Waymo Llc Systems, apparatus, and methods for retrieving image data of image frames
CN113408661B (zh) * 2021-07-16 2022-02-18 北京百度网讯科技有限公司 误匹配确定方法、装置、设备和介质
WO2023043296A1 (ko) * 2021-09-17 2023-03-23 주식회사 윌러스표준기술연구소 Obmc를 이용한 비디오 신호 처리 방법 및 이를 위한 장치
WO2024080747A1 (ko) * 2022-10-11 2024-04-18 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW321748B (pt) * 1994-02-23 1997-12-01 Rca Thomson Licensing Corp
US6968008B1 (en) 1999-07-27 2005-11-22 Sharp Laboratories Of America, Inc. Methods for motion estimation with adaptive motion accuracy
US20050207663A1 (en) * 2001-07-31 2005-09-22 Weimin Zeng Searching method and system for best matching motion vector
US6996180B2 (en) 2001-09-05 2006-02-07 Intel Corporation Fast half-pixel motion estimation using steepest descent
US20040252766A1 (en) * 2003-06-11 2004-12-16 Daeyang Foundation (Sejong University) Motion vector search method and apparatus
BRPI0714859A2 (pt) * 2006-08-02 2013-05-21 Thomson Licensing mÉtodo e aparelho para particionamento geomÉtrico adaptativo para codificaÇço de vÍdeo e estrutura de sinal de vÍdeo para codificaÇço de vÍdeo
JP2008177630A (ja) * 2007-01-16 2008-07-31 Victor Co Of Japan Ltd 動きベクトル検出装置
US9288504B2 (en) 2007-04-12 2016-03-15 Thomson Licensing Method and apparatus for fast geometric mode desicion in a video encoder
CN101247523B (zh) * 2008-03-18 2010-09-08 上海华平信息技术股份有限公司 用于h.264编码器的半像素运动估计方法
JP2009290295A (ja) * 2008-05-27 2009-12-10 Mitsubishi Electric Corp 動き補償予測装置
WO2010151334A1 (en) * 2009-06-26 2010-12-29 Thomson Licensing Methods and apparatus for video encoding and decoding using adaptive geometric partitioning
KR101671460B1 (ko) 2009-09-10 2016-11-02 에스케이 텔레콤주식회사 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
US9357228B2 (en) * 2010-05-27 2016-05-31 The Hong Kong University Of Science And Technology Motion estimation of images
TWI590083B (zh) * 2010-11-18 2017-07-01 創意電子股份有限公司 一種產生影像位移偵測之快速搜尋視窗的方法
US9532066B2 (en) * 2011-01-21 2016-12-27 Qualcomm Incorporated Motion vector prediction
WO2012122927A1 (en) 2011-03-14 2012-09-20 Mediatek Inc. Method and apparatus for derivation of motion vector candidate and motion vector prediction candidate
KR101956284B1 (ko) * 2011-06-30 2019-03-08 엘지전자 주식회사 보간 방법 및 이를 이용한 예측 방법
CN102316323B (zh) * 2011-07-06 2014-03-05 北京航空航天大学 一种快速的双目立体视频分形压缩与解压缩方法
US10531116B2 (en) * 2014-01-09 2020-01-07 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
US11330284B2 (en) * 2015-03-27 2022-05-10 Qualcomm Incorporated Deriving motion information for sub-blocks in video coding
CN106878737B (zh) * 2017-03-02 2019-10-08 西安电子科技大学 高效视频编码中的运动估计加速方法
US20190007699A1 (en) * 2017-06-28 2019-01-03 Futurewei Technologies, Inc. Decoder Side Motion Vector Derivation in Video Coding

Also Published As

Publication number Publication date
US20200137415A1 (en) 2020-04-30
US11082714B2 (en) 2021-08-03
AU2017421655B2 (en) 2022-12-22
US20210314604A1 (en) 2021-10-07
IL271770A (en) 2020-02-27
WO2019001737A1 (en) 2019-01-03
IL271770B2 (en) 2024-03-01
MY194535A (en) 2022-11-30
KR20220013467A (ko) 2022-02-04
AU2021229180A1 (en) 2021-10-07
IL271770B1 (en) 2023-11-01
KR20200020882A (ko) 2020-02-26
AU2021229180B2 (en) 2022-10-20
JP2020526112A (ja) 2020-08-27
KR102355841B1 (ko) 2022-02-08
CN110786013A (zh) 2020-02-11
KR102430225B1 (ko) 2022-08-09
CN115118988A (zh) 2022-09-27
EP3632108A1 (en) 2020-04-08
CA3151032A1 (en) 2019-01-03
EP3632108B1 (en) 2023-08-02
NZ760611A (en) 2021-05-28
SG11201913272SA (en) 2020-01-30
CA3068595A1 (en) 2019-01-03
CA3068595C (en) 2022-05-24
US11736718B2 (en) 2023-08-22
CN110786013B (zh) 2022-06-14
AU2017421655A1 (en) 2020-01-30

Similar Documents

Publication Publication Date Title
BR112019028012A2 (pt) dispositivo e método para determinar um vetor de movimento, codificador e decodificador de vídeo para codificar e decodificar uma pluralidade de fotos
JP7358436B2 (ja) マルチリファレンス予測のための動きベクトルの精密化
CN115243050B (zh) 用于运动向量修正的受限存储器访问窗口
BR112020026830A2 (pt) Janela de acesso à memória e preenchimento para refinamento de vetor de movimento e compensação de movimento
CN111201795B (zh) 存储访问窗口和用于运动矢量修正的填充
CN111567047B (zh) 进行子预测块运动矢量推导的存储器访问窗口
BR112019028035A2 (pt) &#34;dispositivo para determinar uma predição de um bloco corrente, decodificador e codificador de vídeo, e método para determinar uma predição de um bloco corrente
JP2024038060A (ja) デコーダ側動きベクトル洗練のための誤差面ベースのサブピクセル精度の洗練方法
US20210409754A1 (en) Search region for motion vector refinement
NZ760611B2 (en) Search region for motion vector refinement

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]
B06W Patent application suspended after preliminary examination (for patents with searches from other patent authorities) chapter 6.23 patent gazette]