BR112021001813A2 - método de processamento de vídeo, aparelho de processamento de vídeo, codificador, decodificador, mídia e programa de computador - Google Patents

método de processamento de vídeo, aparelho de processamento de vídeo, codificador, decodificador, mídia e programa de computador Download PDF

Info

Publication number
BR112021001813A2
BR112021001813A2 BR112021001813-1A BR112021001813A BR112021001813A2 BR 112021001813 A2 BR112021001813 A2 BR 112021001813A2 BR 112021001813 A BR112021001813 A BR 112021001813A BR 112021001813 A2 BR112021001813 A2 BR 112021001813A2
Authority
BR
Brazil
Prior art keywords
ctu
current
line
fact
hmvp
Prior art date
Application number
BR112021001813-1A
Other languages
English (en)
Inventor
Anand Meher KOTRA
Semih ESENLIK
Jianle Chen
Biao Wang
Han Gao
Zhijie ZHAO
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 BR112021001813A2 publication Critical patent/BR112021001813A2/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • 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/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Studio Circuits (AREA)

Abstract

MÉTODO DE PROCESSAMENTO DE VÍDEO, APARELHO DE PROCESSAMENTO DE VÍDEO, CODIFICADOR, DECODIFICADOR, MÍDIA E PROGRAMA DE COMPUTADOR. Um método de processamento de vídeo, compreendendo: inicializar uma lista HMVP para uma linha de CTU atual quando a CTU atual for a CTU inicial de uma linha de CTU atual; e processar a linha de CTU atual com base na lista HMVP. Realizando-se o método, a eficiência de codificação e a eficiência de decodificação são melhoradas.

Description

“MÉTODO DE PROCESSAMENTO DE VÍDEO, APARELHO DE PROCESSAMENTO DE VÍDEO, CODIFICADOR, DECODIFICADOR, MÍDIA E PROGRAMA DE COMPUTADOR” CAMPO TÉCNICO
[0001] As modalidades do presente pedido (revelação) geralmente referem-se ao campo de codificação de vídeo e, mais particularmente, a um método de processamento de vídeo, a um aparelho de processamento de vídeo, a um codificador, a um decodificador, a uma mídia e a um programa de computador.
FUNDAMENTOS
[0002] A codificação de vídeo (codificação e decodificação de vídeo) é usada em uma ampla faixa de aplicações de vídeo digital, por exemplo, transmissão de TV digital, transmissão de vídeo pela internet e redes móveis, aplicações de conversação em tempo real, tais como bate-papo de vídeo, videoconferência, DVD e discos Blu-ray, aquisição de conteúdo de vídeo e sistemas de edição e câmeras de vídeo de aplicações de segurança.
[0003] Desde o desenvolvimento da abordagem de codificação de vídeo híbrido com base em bloco no padrão H.261 em 1990, novas técnicas e ferramentas de codificação de vídeo foram desenvolvidas e formaram a base para novos padrões de codificação de vídeo. Os padrões de codificação de vídeo adicionais compreendem vídeo MPEG-1, MPEG-2, ITU-T H.262/MPEG- 2, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), ITU-T H.265/Codificação de Vídeo de Alta Eficiência (HEVC), ITU-T H.266/Codificação de Vídeo Versátil (VVC) e extensões, por exemplo, extensões de escalabilidade e/ou tridimensionais (3D) destes padrões. À medida que a criação e o uso de vídeos se tornam cada vez mais onipresentes, o tráfego de vídeo é a maior carga em redes de comunicação e armazenamento de dados, consequentemente, um dos objetivos da maioria dos padrões de codificação de vídeo foi obter uma redução de taxa de bits em comparação com seu antecessor, sem sacrificar a qualidade da imagem. Mesmo a mais recente Codificação de Vídeo de Alta Eficiência (HEVC) pode compactar o vídeo cerca de duas vezes mais que AVC sem sacrificar a qualidade e há uma necessidade de compactar vídeos adicionalmente em comparação à HEVC.
SUMÁRIO
[0004] As modalidades do presente pedido fornecem um método de processamento de vídeo e um aparelho correspondente, de modo a melhorar a eficiência de codificação.
[0005] O anterior e outros objetivos são obtidos pela matéria das reivindicações independentes. As formas de implementação adicionais são evidentes a partir das reivindicações dependentes, da descrição e das figuras.
[0006] Um primeiro aspecto da presente invenção fornece um método de processamento de vídeo, compreendendo: inicializar uma lista de predição de vetores de movimento com base em histórico (HMVP) para uma linha de unidade de árvore de codificação (CTU) atual quando a CTU atual for a CTU inicial de uma linha de CTU atual; e processar a linha de CTU atual com base na lista HMVP. A CTU inicial também pode ser referida como CTU de início e é a primeira CTU das CTUs da mesma linha de CTU que é processada.
[0007] Pode ser observado que a lista HMVP para a linha de CTU atual é inicializada no início para processar a linha de CTU atual, o processo da linha de CTU atual não precisa ser com base em uma lista HMVP de uma linha de CTU anterior e, portanto, pode melhorar a eficiência de codificação e a eficiência de decodificação.
[0008] Com referência ao primeiro aspecto, em uma primeira maneira de implementação possível do primeiro aspecto, a quantidade dos vetores de movimento candidatos na lista HMVP inicializada é zero.
[0009] Com referência ao primeiro aspecto ou qualquer uma das maneiras de implementação do primeiro aspecto mencionadas acima, em uma segunda maneira de implementação possível do primeiro aspecto, a linha de CTU atual pertence a uma área de imagem que consiste em uma pluralidade de linhas de CTU e a linha de CTU atual é qualquer uma dentre a pluralidade de linhas de CTU, por exemplo, a primeira (por exemplo, superior) linha de CTU, a segunda linha de CTU, … e a última (por exemplo, inferior) linha de CTU da área de imagem.
[0010] Com referência ao primeiro aspecto ou qualquer uma das maneiras de implementação do primeiro aspecto mencionadas acima, em uma terceira maneira de implementação possível do primeiro aspecto, o método compreende adicionalmente: inicializar uma lista HMVP para cada uma dentre a pluralidade de linhas de CTU, exceto a linha de CTU atual, em que listas HMVP para a pluralidade de linhas de CTU são idênticas ou diferentes. Em outras palavras, as modalidades podem inicializar adicionalmente listas HMVP para todas as outras linhas de CTU da área de imagem, isto é, podem inicializar listas HMVP para todas as linhas de CTU da área de imagem.
[0011] Com referência ao primeiro aspecto ou qualquer uma das maneiras de implementação do primeiro aspecto mencionadas acima, em uma quarta maneira de implementação possível do primeiro aspecto, o processamento da linha de CTU atual com base na lista HMVP compreende: processar a CTU atual da linha de CTU atual; atualizar a lista HMVP inicializada com base na CTU atual processada; e processar a segunda CTU da linha de CTU atual com base na lista HMVP atualizada.
[0012] Com referência ao primeiro aspecto ou qualquer uma das maneiras de implementação do primeiro aspecto mencionadas acima, em uma quinta maneira de implementação possível do primeiro aspecto, a lista HMVP é atualizada, conforme definido em uma CTU processada da linha de CTU atual.
[0013] Com referência ao primeiro aspecto ou qualquer uma das maneiras de implementação do primeiro aspecto mencionadas acima, em uma sexta maneira de implementação possível do primeiro aspecto, a lista HMVP para a linha de CTU atual é inicializada, como segue: esvaziar a lista HMVP para a linha de CTU atual.
[0014] Com referência ao primeiro aspecto ou qualquer uma das maneiras de implementação do primeiro aspecto mencionadas acima, em uma sétima maneira de implementação possível do primeiro aspecto, o processamento da linha de CTU atual com base na lista HMVP compreende: processar a linha de CTU atual com base na lista HMVP a partir da segunda CTU da linha de CTU atual, em que a segunda CTU é adjacente à CTU inicial.
[0015] Com referência ao primeiro aspecto ou qualquer uma das maneiras de implementação do primeiro aspecto mencionadas acima, em uma oitava maneira de implementação possível do primeiro aspecto, a pluralidade de linhas de CTU é processada no modo de processamento paralelo de frente de onda (WPP).
[0016] Pode ser observado que, como a lista HMVP para a linha de CTU atual é inicializada no início para processar a linha de CTU atual, ao combinar o modo WPP, as linhas de CTU de um quadro de imagem ou de uma área de imagem podem ser processadas em paralelo e, portanto, podem melhorar adicionalmente a eficiência de codificação e a eficiência de decodificação.
[0017] Com referência ao primeiro aspecto ou qualquer uma das maneiras de implementação do primeiro aspecto mencionadas acima, em uma nona maneira de implementação possível do primeiro aspecto, a linha de CTU atual começa a ser processada (ou o processamento da linha de CTU atual começa) quando uma CTU particular de uma linha de CTU anterior for processada.
[0018] Com referência ao primeiro aspecto ou qualquer uma das maneiras de implementação do primeiro aspecto mencionadas acima, em uma décima maneira de implementação possível do primeiro aspecto, a linha de CTU anterior é a linha de CTU imediatamente adjacente à linha de CTU atual e está na parte superior ou acima da linha de CTU atual.
[0019] Com referência à nona maneira de implementação do primeiro aspecto ou à décima maneira de implementação do primeiro aspecto, em uma décima primeira maneira de implementação possível do primeiro aspecto, a CTU particular da linha de CTU anterior é a segunda CTU da linha de CTU anterior; ou a CTU particular da linha de CTU anterior é a primeira CTU da linha de CTU anterior.
[0020] Um segundo aspecto da presente invenção fornece um aparelho de processamento de vídeo, compreendendo: uma unidade de inicialização, configurada para inicializar uma lista de predição de vetores de movimento com base em histórico (HMVP) para uma linha de unidade de árvore de codificação (CTU) atual quando a CTU atual for a CTU inicial de uma linha de CTU atual; e uma unidade de processamento, configurada para processar a linha de CTU atual com base na lista HMVP.
[0021] Com referência ao segundo aspecto, em uma primeira maneira de implementação possível do segundo aspecto, a quantidade dos vetores de movimento candidatos na lista HMVP inicializada é zero.
[0022] Com referência ao segundo aspecto ou qualquer uma das maneiras de implementação mencionadas acima do segundo aspecto, em uma segunda maneira de implementação possível do segundo aspecto, a linha de
CTU atual pertence a uma área de imagem que consiste em uma pluralidade de linhas de CTU e a linha de CTU atual é qualquer uma dentre a pluralidade de linhas de CTU.
[0023] Com referência ao segundo aspecto ou qualquer uma das maneiras de implementação mencionadas acima do segundo aspecto, em uma terceira maneira de implementação possível do segundo aspecto, a unidade de inicialização é adicionalmente configurada para inicializar uma lista HMVP para cada uma dentre a pluralidade de linhas de CTU, exceto a linha de CTU atual, em que listas HMVP para a pluralidade de linhas de CTU são idênticas ou diferentes.
[0024] Com referência ao segundo aspecto ou qualquer uma das maneiras de implementação mencionadas acima do segundo aspecto, em uma quarta maneira de implementação possível do segundo aspecto, a unidade de processamento é adicionalmente configurada para: processar a CTU atual da linha de CTU atual; atualizar a lista HMVP inicializada com base na CTU atual processada; e processar a segunda CTU da linha de CTU atual com base na lista HMVP atualizada.
[0025] Com referência ao segundo aspecto ou qualquer uma das maneiras de implementação mencionadas acima do segundo aspecto, em uma quinta maneira de implementação possível do segundo aspecto, a lista HMVP é atualizada, conforme definido em uma CTU processada da linha de CTU atual.
[0026] Com referência ao segundo aspecto ou qualquer uma das maneiras de implementação mencionadas acima do segundo aspecto, em uma sexta maneira de implementação possível do segundo aspecto, a unidade de inicialização é adicionalmente configurada para inicializar a lista HMVP para a linha de CTU atual, como segue: esvaziar a lista HMVP para a linha de CTU atual.
[0027] Com referência ao segundo aspecto ou qualquer uma das maneiras de implementação mencionadas acima do segundo aspecto, em uma sétima maneira de implementação possível do segundo aspecto, a unidade de processamento é adicionalmente configurada para processar a linha de CTU atual com base na lista HMVP, como segue: processar a linha de CTU atual com base na lista HMVP a partir da segunda CTU da linha de CTU atual, em que a segunda CTU é adjacente à CTU inicial.
[0028] Com referência ao segundo aspecto ou qualquer uma das maneiras de implementação mencionadas acima do segundo aspecto, em uma oitava maneira de implementação possível do segundo aspecto, a pluralidade de linhas de CTU é processada no modo de processamento paralelo de frente de onda (WPP).
[0029] Com referência ao segundo aspecto ou qualquer uma das maneiras de implementação mencionadas acima do segundo aspecto, em uma nona maneira de implementação possível do segundo aspecto, a linha de CTU atual começa a ser processada (ou o processamento da linha de CTU atual começa) quando uma CTU particular de uma linha de CTU anterior for processada.
[0030] Com referência ao segundo aspecto ou qualquer uma das maneiras de implementação mencionadas acima do segundo aspecto, em uma décima maneira de implementação possível do segundo aspecto, a linha de CTU anterior é a linha de CTU imediatamente adjacente à linha de CTU atual e está na parte superior da linha de CTU atual.
[0031] Com referência à nona maneira de implementação do segundo aspecto ou à decima maneira de implementação do segundo aspecto, em uma décima primeira maneira de implementação possível do segundo aspecto, a CTU particular da linha de CTU anterior é a segunda CTU da linha de CTU anterior; ou a CTU particular da linha de CTU anterior é a primeira CTU da linha de CTU anterior.
[0032] Um terceiro aspecto da presente invenção fornece um método de codificação implementado por um dispositivo de decodificação, compreendendo: construir/inicializar uma lista HMVP para uma linha de CTU atual; e processar uma CTU da linha de CTU atual com base na lista HMVP construída/inicializada. Com referência ao terceiro aspecto, em uma primeira maneira de implementação possível do terceiro aspecto, a lista HMVP para a linha de CTU atual é construída/inicializada, como segue: esvaziar a lista HMVP para a linha de CTU atual; e/ou ajustar valores padrão para a lista HMVP para a linha de CTU atual; e/ou construir/inicializar a lista HMVP para a linha de CTU atual com base em uma lista HMVP de uma CTU de uma linha de CTU anterior.
[0033] Com referência à primeira maneira de implementação possível do terceiro aspecto, em uma segunda maneira de implementação possível do terceiro aspecto, o ajuste de valores padrão para a lista HMVP para a linha de CTU atual compreende: preencher um MV da lista HMVP como um MV de maneira de uni-predição, em que o MV da maneira de uni-predição é um vetor de movimento zero ou um vetor de movimento diferente de zero, em que as imagens de referência compreendem a primeira imagem de referência na lista L0; e/ou preencher um MV da lista HMVP como um MV de maneira de bi- predição, em que o MV da maneira de bi-predição é um vetor de movimento zero ou um vetor de movimento diferente de zero, em que as imagens de referência compreendem a primeira imagem de referência na lista L0 e a primeira imagem de referência na lista L1.
[0034] Com referência à primeira maneira de implementação possível do terceiro aspecto, em uma terceira maneira de implementação possível do terceiro aspecto, cada imagem colocalizada pode armazenar uma lista HMVP temporal para cada linha de CTU ou para a imagem inteira, em que o ajuste de valores padrão para a lista HMVP para a linha de CTU atual compreende: inicializar/construir a lista HMVP para a linha de CTU atual com base na lista HMVP temporal.
[0035] Com referência à primeira maneira de implementação possível do terceiro aspecto, em uma quarta maneira de implementação possível do terceiro aspecto, a linha de CTU anterior é a linha de CTU imediatamente adjacente à linha de CTU atual e está na parte superior da linha de CTU atual.
[0036] Com referência à quarta maneira de implementação possível do terceiro aspecto, em uma quinta maneira de implementação possível do terceiro aspecto, a CTU da linha de CTU anterior é a segunda CTU da linha de CTU anterior.
[0037] Com referência à quarta maneira de implementação possível do terceiro aspecto, em uma quinta maneira de implementação possível do terceiro aspecto, a CTU da linha de CTU anterior é a primeira CTU da linha de CTU anterior.
[0038] Um quarto aspecto da presente invenção fornece um método de codificação implementado por um dispositivo de codificação,
compreendendo: construir/inicializar uma lista HMVP para uma linha de CTU atual; processar uma CTU da linha de CTU atual com base na lista HMVP construída/inicializada.
[0039] Com referência ao quarto aspecto, em uma primeira maneira de implementação possível do quarto aspecto, a lista HMVP para a linha de CTU atual é construída/inicializada, como segue: esvaziar a lista HMVP para a linha de CTU atual; e/ou ajustar valores padrão para a lista HMVP para a linha de CTU atual; e/ou construir/inicializar a lista HMVP para a linha de CTU atual com base em uma lista HMVP de uma CTU de uma linha de CTU anterior.
[0040] Com referência à primeira maneira de implementação possível do quarto aspecto, em uma segunda maneira de implementação possível do quarto aspecto, o ajuste de valores padrão para a lista HMVP para a linha de CTU atual compreende: preencher um MV da lista HMVP como um MV de maneira de uni-predição, em que o MV de maneira de uni-predição é um vetor de movimento zero ou um vetor de movimento diferente de zero, em que as imagens de referência compreendem a primeira imagem de referência na lista L0; e/ou preencher um MV da lista HMVP como um MV de maneira de bi- predição, em que o MV de maneira de bi-predição é um vetor de movimento zero ou um vetor de movimento diferente de zero, em que as imagens de referência compreendem a primeira imagem de referência na lista L0 e a primeira imagem de referência na lista L1.
[0041] Com referência à primeira maneira de implementação possível do quarto aspecto, em uma terceira maneira de implementação possível do quarto aspecto, cada imagem colocalizada pode armazenar uma lista HMVP temporal para cada linha de CTU ou para a imagem inteira, em que o ajuste de valores padrão para a lista HMVP para a linha de CTU atual compreende: inicializar/construir a lista HMVP para a linha de CTU atual com base na lista HMVP temporal.
[0042] Com referência à primeira maneira de implementação possível do quarto aspecto, em uma quarta maneira de implementação possível do quarto aspecto, a linha de CTU anterior é a linha de CTU imediatamente adjacente à linha de CTU atual e está na parte superior ou acima da linha de CTU atual.
[0043] Com referência à quarta maneira de implementação possível do quarto aspecto, em uma quinta maneira de implementação possível do quarto aspecto, a CTU da linha de CTU anterior é a segunda CTU da linha de CTU anterior.
[0044] Com referência à quarta maneira de implementação possível do quarto aspecto, em uma sexta maneira de implementação possível do quarto aspecto, a CTU da linha de CTU anterior é a primeira CTU da linha de CTU anterior.
[0045] Um quinto aspecto da presente invenção fornece um codificador compreendendo circuitos de processamento para realizar o método, conforme definido no primeiro aspecto ou qualquer uma das maneiras de implementação do primeiro aspecto ou, conforme definido no terceiro aspecto ou qualquer uma das maneiras de implementação do terceiro aspecto ou, conforme definido no quarto aspecto ou qualquer uma das maneiras de implementação do quarto aspecto. Por exemplo, o codificador pode incluir um circuito de inicialização configurado para inicializar uma lista de predição de vetores de movimento com base em histórico (HMVP) para uma linha de unidade de árvore de codificação (CTU) atual quando a CTU atual for a CTU inicial de uma linha de CTU atual; e um circuito de processamento configurado para processar a linha de CTU atual com base na lista HMVP.
[0046] Um sexto aspecto da presente invenção fornece um decodificador compreendendo circuitos de processamento para realizar o método, conforme definido no primeiro aspecto ou qualquer uma das maneiras de implementação do primeiro aspecto ou, conforme definido no terceiro aspecto ou qualquer uma das maneiras de implementação do terceiro aspecto ou, conforme definido no quarto aspecto ou qualquer uma das maneiras de implementação do quarto aspecto. Por exemplo, o decodificador pode incluir um circuito de inicialização configurado para inicializar uma lista de predição de vetores de movimento com base em histórico (HMVP) para uma linha de unidade de árvore de codificação (CTU) atual quando a CTU atual for a CTU inicial de uma linha de CTU atual; e um circuito de processamento configurado para processar a linha de CTU atual com base na lista HMVP.
[0047] Um sétimo aspecto da presente invenção fornece um produto de programa de computador compreendendo um código de programa para realizar o método, conforme definido no primeiro aspecto ou qualquer uma das maneiras de implementação do primeiro aspecto ou, conforme definido no terceiro aspecto ou qualquer uma das maneiras de implementação do terceiro aspecto ou, conforme definido no quarto aspecto ou qualquer uma das maneiras de implementação do quarto aspecto.
[0048] Um oitavo aspecto da presente invenção fornece uma mídia de armazenamento legível por computador que armazena instruções de computador que, quando executadas por um ou mais processadores, fazem com que um ou mais processadores realizem o método, conforme definido no primeiro aspecto ou qualquer uma das maneiras de implementação do primeiro aspecto ou, conforme definido no terceiro aspecto ou qualquer uma das maneiras de implementação do terceiro aspecto ou, conforme definido no quarto aspecto ou qualquer uma das maneiras de implementação do quarto aspecto.
[0049] Um nono aspecto da presente invenção fornece um decodificador, compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar o método, conforme definido no primeiro aspecto ou qualquer uma das maneiras de implementação do primeiro aspecto ou, conforme definido no terceiro aspecto ou qualquer uma das maneiras de implementação do terceiro aspecto ou, conforme definido no quarto aspecto ou qualquer uma das maneiras de implementação do quarto aspecto.
[0050] Um décimo aspecto da presente invenção fornece um codificador, compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador para realizar o método, conforme definido no primeiro aspecto ou qualquer uma das maneiras de implementação do primeiro aspecto ou, conforme definido no terceiro aspecto ou qualquer uma das maneiras de implementação do terceiro aspecto ou, conforme definido no quarto aspecto ou qualquer uma das maneiras de implementação do quarto aspecto.
BREVE DESCRIÇÃO DOS DESENHOS
[0051] As seguintes modalidades da invenção serão descritas em mais detalhes com referência às figuras anexas e desenhos, em que:
[0052] A FIG. 1A é um diagrama de bloco que mostra um exemplo de um sistema de codificação de vídeo configurado para implementar as modalidades da invenção;
[0053] A FIG. 1B é um diagrama de bloco que mostra outro exemplo de um sistema de codificação de vídeo configurado para implementar as modalidades da invenção;
[0054] A FIG. 2 é um diagrama de bloco que mostra um exemplo de um codificador de vídeo configurado para implementar as modalidades da invenção;
[0055] A FIG. 3 é um diagrama de bloco que mostra uma estrutura de exemplo de um decodificador de vídeo configurado para implementar as modalidades da invenção;
[0056] A FIG. 4 é um diagrama de bloco que ilustra um exemplo de um aparelho de codificação ou de um aparelho de decodificação;
[0057] A FIG. 5 é um diagrama de bloco que ilustra outro exemplo de um aparelho de codificação ou de um aparelho de decodificação;
[0058] A FIG. 6 mostra posições de blocos vizinhos espaciais usadas em mesclagem e construção de lista de candidatos AMVP;
[0059] A FIG. 7 é o fluxograma de decodificação de um método HMVP;
[0060] A FIG. 8 é um diagrama de bloco que ilustra uma ordem de processamento WPP;
[0061] A FIG. 9 é um fluxograma que ilustra uma operação de exemplo de um decodificador de vídeo, conforme definido em uma modalidade;
[0062] A FIG. 10 é um fluxograma que ilustra uma operação de exemplo, conforme definido em uma modalidade;
[0063] A FIG. 11 é um diagrama de bloco que ilustra um exemplo de um aparelho de processamento de vídeo.
[0064] Os seguintes sinais de referência idênticos referem-se às características idênticas ou pelo menos funcionalmente equivalentes, se não houver nenhuma nota específica em relação à diferença entre estes sinais de referência idênticos.
DESCRIÇÃO DETALHADA DAS MODALIDADES
[0065] Na seguinte descrição, referência é feita às figuras em anexo que fazem parte da revelação e que mostram, à título de ilustração, aspectos específicos de modalidades da invenção ou aspectos específicos em que as modalidades da presente invenção podem ser usadas. Deve ser entendido que as modalidades da invenção podem ser usadas em outros aspectos e compreendem alterações estruturais ou lógicas não representadas nas figuras. A seguinte descrição detalhada, portanto, não deve ser tomada em um sentido limitativo, e o escopo da presente invenção é definido pelas reivindicações anexas.
[0066] Por exemplo, deve ser entendido que uma revelação em relação a um método descrito também pode ser verdadeira para um dispositivo ou sistema correspondente configurado para realizar o método e vice-versa. Por exemplo, se uma ou uma pluralidade de etapas do método específico forem descritas, um dispositivo correspondente pode incluir uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, para realizar uma ou a pluralidade de etapas do método descrito (por exemplo, uma unidade que realiza uma ou a pluralidade de etapas, ou uma pluralidade de unidades, cada uma, que realizam uma ou mais entre a pluralidade de etapas), mesmo se uma ou mais unidades não forem explicitamente descritas ou ilustradas nas figuras. Por outro lado, por exemplo, se um aparelho específico é descrito com base em uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, um método correspondente pode incluir uma etapa para realizar a funcionalidade de uma ou a pluralidade de unidades (por exemplo, uma etapa que realiza a funcionalidade de uma ou a pluralidade de unidades, ou uma pluralidade de etapas, cada uma, que realiza a funcionalidade de uma ou mais entre a pluralidade de unidades), mesmo se tal pluralidade de etapas não for explicitamente descrita ou ilustrada nas figuras. Além disso, deve ser entendido que as características das várias modalidades e/ou aspectos exemplares descritos neste relatório podem ser combinados entre si, a menos que especificamente observado de outro modo.
[0067] A codificação de vídeo tipicamente refere-se ao processamento de uma sequência de imagens, que formam o vídeo ou sequência de vídeos. Em vez do termo “imagem” o termo “quadro” ou “foto” pode ser usado como sinônimo no campo de codificação de vídeo. A codificação de vídeo usada no presente pedido (ou presente revelação) indica tanto a codificação de vídeo quanto a decodificação de vídeo. A codificação de vídeo é realizada no lado de origem, compreendendo tipicamente o processamento (por exemplo, por compressão) das imagens de vídeo originais para reduzir a quantidade de dados exigida para representar as imagens de vídeo (para armazenamento e/ou transmissão mais eficaz). A decodificação de vídeo é realizada no lado de destino e tipicamente compreende o processamento inverso em comparação ao codificador para reconstruir as imagens de vídeo. As modalidades que referem-se à “codificação” de imagens de vídeo (ou imagens em geral, como será explicado mais tarde) devem ser entendidas para se referir tanto à “codificação” quanto à “decodificação” para a sequência de vídeos. A combinação da parte de codificação e da parte de decodificação também é referida como CODEC (Codificação e Decodificação).
[0068] Em caso de codificação de vídeo sem perdas, as imagens de vídeo originais podem ser reconstruídas, isto é, as imagens de vídeo reconstruídas têm a mesma qualidade que as imagens de vídeo originais (assumindo nenhuma perda de transmissão ou outras perdas de dados durante o armazenamento ou transmissão). Em caso de codificação de vídeo com perda, a compressão adicional, por exemplo, por quantização, é realizada, para reduzir a quantidade de dados que representa as imagens de vídeo, que não podem ser completamente reconstruídas no decodificador, isto é, a qualidade das imagens de vídeo reconstruídas é menor ou pior em comparação à qualidade das imagens de vídeo originais.
[0069] Vários padrões da codificação de vídeo, desde H.261, pertencem ao grupo de “codecs de vídeo híbrido com perdas” (isto é, combinam predição espacial e temporal no domínio de amostra e codificação de transformada 2D para aplicar a quantização no domínio de transformada). Cada imagem de uma sequência de vídeos é tipicamente particionada em um conjunto de blocos não sobrepostos e a codificação é tipicamente realizada em um nível de bloco. Em outras palavras, no codificador, o vídeo é tipicamente processado, isto é, codificado, em um nível de bloco (bloco de vídeo), por exemplo, por meio do uso de predição espacial (imagem intra) e predição temporal (imagem inter) para gerar um bloco de predição, subtraindo o bloco de predição do bloco atual (bloco atualmente processado/a ser processado) para obter um bloco residual, transformando o bloco residual e quantizando o bloco residual no domínio de transformada para reduzir a quantidade de dados a ser transmitida (compressão), enquanto que no decodificador, o processamento inverso em comparação ao codificador é parcialmente aplicado ao bloco codificado ou compactado para reconstruir o bloco atual para representação. Além disso, o codificador duplica o loop de processamento do decodificador, de modo que ambos gerem predições idênticas (por exemplo, predições intra e inter) e/ou reconstruções para processamento, isto é, codificação dos blocos subsequentes.
[0070] Como usado neste relatório, o termo “bloco” pode ser uma parte de uma imagem ou de um quadro. Para conveniência da descrição, as modalidades da invenção são descritas neste relatório em referência à Codificação de Vídeo de Alta Eficiência (HEVC) ou ao software de referência da Codificação de Vídeo Versátil (VVC), desenvolvido pela Equipe de Colaboração Conjunta na Codificação de Vídeo (JCT-VC) do Grupo de Especialistas na Codificação de Vídeo (VCEG) ITU-T e Grupo de Especialistas em Cinema (MPEG) ISO/IEC. Um técnico no assunto poderá entender que as modalidades da invenção não são limitadas a HEVC ou VVC. Pode-se referir a uma CU, PU e TU. Em HEVC, uma CTU é dividida em CUs por meio do uso de uma estrutura quadtree denotada como árvore de codificação. A decisão de codificar uma área de imagem usando predição imagem inter (temporal) ou imagem intra (espacial) é feita no nível CU. Cada CU pode ser dividida adicionalmente em uma, duas ou quatro PUs, conforme definido no tipo de divisão de PU. Dentro de uma PU, o mesmo processo de predição é aplicado e as informações relevantes são transmitidas para o decodificador com base em PU. Depois de obter o bloco residual pela aplicação do processo de predição com base no tipo de divisão de PU, uma CU pode ser particionada em unidades de transformada (TUs), conforme definido em outra estrutura quadtree similar à árvore de codificação para a CU. No desenvolvimento mais recente da técnica de compressão de vídeo, o quadro de particionamento de quadtree e árvore binária (QTBT) é usado para particionar um bloco de codificação. Na estrutura de bloco QTBT, uma CU pode ter tanto um formato quadrado quanto retangular. Por exemplo, uma unidade de árvore de codificação (CTU) é primeiramente particionada por uma estrutura quadtree. Os nós folha quadtree são particionados adicionalmente por uma estrutura de árvore binária. Os nós folha de árvore binária são chamados de unidades de codificação (CUs), e esta segmentação é usada para predição e processamento de transformada sem qualquer particionamento adicional. Isto significa que a CU, PU e TU têm o mesmo tamanho de bloco na estrutura do bloco de codificação QTBT. Em paralelo, a partição múltipla, por exemplo, a partição de árvore tripla, também foi proposta a ser usada juntamente com a estrutura de bloco QTBT.
[0071] Nas seguintes modalidades de um codificador 20, um decodificador 30 e um sistema de codificação 10 são descritos com base nas Figs. 1 a 3.
[0072] A FIG. 1A é um diagrama de bloco conceitual ou esquemático que ilustra um sistema de codificação de exemplo 10, por exemplo, um sistema da codificação de vídeo 10 que pode utilizar técnicas deste presente pedido (presente revelação). O codificador 20 (por exemplo, codificador de vídeo 20) e o decodificador 30 (por exemplo, decodificador de vídeo 30) do sistema da codificação de vídeo 10 representam exemplos de dispositivos que podem ser configurados para realizar técnicas, conforme definido em vários exemplos descritos no presente pedido. Como mostrado na FIG. 1A, o sistema de codificação 10 compreende um dispositivo de origem 12 configurado para fornecer dados codificados 13, por exemplo, uma imagem codificada 13, por exemplo, para um dispositivo de destino 14 para decodificar os dados codificados 13.
[0073] O dispositivo de origem 12 compreende um codificador 20 e pode, adicionalmente, isto é, opcionalmente, compreender uma fonte de imagem 16, uma unidade de pré-processamento 18, por exemplo, uma unidade de pré-processamento de imagem 18 e uma interface de comunicação ou unidade de comunicação 22.
[0074] A fonte de imagem 16 pode compreender ou ser qualquer tipo de dispositivo de captura de imagem, por exemplo, para capturar uma imagem do mundo real, e/ou qualquer tipo de uma imagem ou comentário (para codificação de conteúdo de tela, alguns textos na tela também são considerados em uma parte de uma imagem ou imagem a ser codificada) dispositivo de geração, por exemplo, um processador gráfico de computador para gerar um imagem animada de computador, ou qualquer tipo de dispositivo para obter e/ou fornecer uma imagem do mundo real, uma imagem animada de computador (por exemplo, um conteúdo de tela, uma imagem de realidade virtual (VR)) e/ou qualquer combinação das mesmas (por exemplo, uma imagem de realidade aumentada (AR)).
[0075] Uma imagem (digital) é ou pode ser considerada como um arranjo bidimensional ou matriz de amostras com valores de intensidade. Uma amostra no arranjo também pode ser referida como pixel (forma abreviada de elemento de imagem) ou um pel. O número de amostras na direção horizontal e vertical (ou eixo) do arranjo ou imagem define o tamanho e/ou resolução da imagem. Para a representação da cor, tipicamente três componentes de cor são utilizados, isto é, a imagem pode ser representada ou incluir três arranjos de amostra. No formato RBG ou espaço de cor, uma imagem compreende um arranjo de amostra vermelho, verde e azul correspondente. Entretanto, na codificação de vídeo, cada pixel é tipicamente representado em um formato de luminância/crominância ou espaço de cor, por exemplo, YCbCr, que compreende um componente de luminância indicado por Y (algumas vezes, L também é usado no lugar) e dois componentes de crominância indicados por Cb e Cr. O componente de luminância (ou luma para abreviação) Y representa o brilho ou intensidade de nível de cinza (por exemplo, como em uma imagem de escala de cinza), enquanto os dois componentes de crominância (ou croma para abreviação) Cb e Cr representam a cromaticidade ou componentes de informações de cor. Consequentemente, uma imagem no formato YCbCr compreende um arranjo de amostra de luminância de valores de amostra de luminância (Y), e dois arranjos de amostra de crominância de valores de crominância (Cb e Cr). As imagens no formato RGB podem ser convertidas ou transformadas no formato YCbCr e vice-versa, o processo também é conhecido como transformação ou conversão de cor. Se uma imagem for monocromática, a imagem pode compreender apenas um arranjo de amostra de luminância.
[0076] Na amostragem monocromática existe apenas um arranjo de amostra, que é nominalmente considerado o arranjo de luma.
[0077] Na amostragem 4:2:0, cada um dos dois arranjos de croma tem metade da altura e metade da largura do arranjo de luma.
[0078] Na amostragem 4:2:2, cada um dos dois arranjos de croma tem a mesma altura e metade da largura do arranjo de luma.
[0079] Na amostragem 4:4:4, dependendo do valor de separate_colour_plane_flag, o seguinte se aplica: - Se separate_colour_plane_flag for igual a 0, cada um dos dois arranjos de croma tem a mesma altura e largura que o arranjo de luma; - De outro modo (separate_colour_plane_flag é igual a 1), os três planos de cores são separadamente processados como imagens de amostra monocromáticas.
[0080] A fonte de imagem 16 (por exemplo, fonte de vídeo 16) pode ser, por exemplo, uma câmera para capturar uma imagem, uma memória, por exemplo, uma memória de imagem, compreendendo ou armazenando uma imagem previamente capturada ou gerada, e/ou qualquer tipo de interface (interna ou externa) para obter ou receber uma imagem. A câmera pode ser, por exemplo, uma câmera local ou integrada, integrada no dispositivo de origem, a memória pode ser uma memória local ou integrada, por exemplo, integrada no dispositivo de origem. A interface pode ser, por exemplo, uma interface externa para receber uma imagem de uma fonte de vídeo externa, por exemplo, um dispositivo de captura de imagem externo como uma câmera, uma memória externa ou um dispositivo de geração de imagem externo, por exemplo, um processador gráfico de computador externo, computador ou servidor. A interface pode ser qualquer tipo de interface, por exemplo, uma interface com fio ou sem fio, uma interface óptica, conforme definido em qualquer prioridade ou protocolo de interface padronizado. A interface para obter os dados de imagem 17 pode ser a mesma interface que ou uma parte da interface de comunicação 22.
[0081] Em distinção à unidade de pré-processamento 18 e ao processamento realizado pela unidade de pré-processamento 18, a imagem ou dados de imagem 17 (por exemplo, dados de vídeo 16) também podem ser referidos como imagem bruta ou dados de imagem brutos 17.
[0082] A unidade de pré-processamento 18 é configurada para receber os dados de imagem (brutos) 17 e para realizar o pré-processamento nos dados de imagem 17 para obter uma imagem pré-processada 19 ou dados de imagem pré-processados 19. O pré-processamento realizado pela unidade de pré-processamento 18 pode, por exemplo, compreender corte, conversão de formato de cor (por exemplo, de RGB para YCbCr), correção de cor ou eliminação de ruído. Pode ser entendido que a unidade de pré-processamento 18 pode ser o componente opcional.
[0083] O codificador 20 (por exemplo, codificador de vídeo 20) é configurado para receber os dados de imagem pré-processados 19 e fornecer dados de imagem codificados 21 (detalhes adicionais serão descritos abaixo, por exemplo, com base na FIG. 2 ou FIG. 4).
[0084] A interface de comunicação 22 do dispositivo de origem 12 pode ser configurado para receber os dados de imagem codificados 21 e para transmitir para outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo, para armazenamento ou reconstrução direta, ou para processar os dados de imagem codificados 21 para, respectivamente, antes de armazenar os dados codificados 13 e/ou transmitir os dados codificados 13 para outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo para decodificação ou armazenamento.
[0085] O dispositivo de destino 14 compreende um decodificador 30 (por exemplo, um decodificador de vídeo 30) e pode, adicionalmente, isto é, opcionalmente, compreender uma interface de comunicação ou unidade de comunicação 28, uma unidade de pós-processamento 32 e um dispositivo de exibição 34.
[0086] A interface de comunicação 28 do dispositivo de destino 14 é configurada para receber os dados de imagem codificados 21 ou os dados codificados 13, por exemplo, diretamente do dispositivo de origem 12 ou de qualquer outra fonte, por exemplo, um dispositivo de armazenamento, por exemplo, um dispositivo de armazenamento de dados de imagem codificados.
[0087] A interface de comunicação 22 e a interface de comunicação 28 podem ser configuradas para transmitir ou receber os dados de imagem codificados 21 ou dados codificados 13 através de um enlace de comunicação direta entre o dispositivo de origem 12 e o dispositivo de destino 14, por exemplo, uma conexão com fio ou sem fio direta, ou através de qualquer tipo de rede, por exemplo, uma rede com fio ou sem fio ou qualquer combinação das mesmas, ou qualquer tipo de rede privada e pública ou qualquer tipo de combinação das mesmas.
[0088] A interface de comunicação 22 pode ser, por exemplo, configurada para empacotar os dados de imagem codificados 21 em um formato apropriado, por exemplo, pacotes, para transmissão através de um enlace de comunicação ou rede de comunicação.
[0089] A interface de comunicação 28, formando a contraparte da interface de comunicação 22, pode ser, por exemplo, configurada para desempacotar os dados codificados 13 para obter os dados de imagem codificados 21.
[0090] Tanto a interface de comunicação 22 quanto a interface de comunicação 28 podem ser configuradas como interfaces de comunicação unidirecionais, como indicado pela seta para os dados de imagem codificados 13 na FIG. 1A apontando do dispositivo de origem 12 para o dispositivo de destino 14, ou interfaces de comunicação bidirecionais, e podem ser configuradas, por exemplo, para enviar e receber mensagens, por exemplo, para configurar uma conexão, para reconhecer e trocar quaisquer outras informações relacionadas ao enlace de comunicação e/ou transmissão de dados, por exemplo, transmissão de dados de imagem codificados.
[0091] O decodificador 30 é configurado para receber os dados de imagem codificados 21 e fornecer dados de imagem decodificados 31 ou uma imagem decodificada 31 (os detalhes adicionais serão descritos abaixo, por exemplo, com base na FIG. 3 ou FIG. 5).
[0092] O pós-processador 32 do dispositivo de destino 14 é configurado para pós-processar os dados de imagem decodificados 31 (também chamados dados de imagem reconstruídos), por exemplo, a imagem decodificada 31, para obter dados de imagem pós-processados 33, por exemplo, uma imagem pós-processada 33. O pós-processamento realizado pela unidade de pós-processamento 32 pode compreender, por exemplo, conversão de formato de cor (por exemplo, de YCbCr para RGB), correção de cor, corte ou reamostragem, ou qualquer outro processamento, por exemplo, para preparar os dados de imagem decodificados 31 para exibição, por exemplo, pelo dispositivo de exibição 34.
[0093] O dispositivo de exibição 34 do dispositivo de destino 14 é configurado para receber os dados de imagem pós-processados 33 para exibir a imagem, por exemplo, para um usuário ou visualizador. O dispositivo de exibição 34 pode ser ou compreender qualquer tipo de exibição para representar a imagem reconstruída, por exemplo, uma tela ou monitor integrado ou externo. A tela pode, por exemplo, compreender telas de cristal líquido (LCD), telas de diodos emissores de luz orgânica (OLED), telas de plasma, projetores, telas micro LED, cristal líquido em silício (LCoS), processador de luz digital (DLP) ou qualquer tipo de outra exibição.
[0094] Embora a FIG. 1A represente o dispositivo de origem 12 e o dispositivo de destino 14 como dispositivos separados, as modalidades de dispositivos também podem compreender ambas as funcionalidades, o tanto dispositivo de origem 12 ou funcionalidade correspondente quanto dispositivo de destino 14 ou funcionalidade correspondente. Em tais modalidades, o dispositivo de origem 12 ou funcionalidade correspondente e o dispositivo de destino 14 ou funcionalidade correspondente podem ser implementados usando o mesmo hardware e/ou software ou por hardware e/ou software separados ou qualquer combinação dos mesmos.
[0095] Como será evidente para o técnico no assunto com base na descrição, a existência e a divisão (exata) de funcionalidades das diferentes unidades ou funcionalidades dentro do dispositivo de origem 12 e/ou dispositivo de destino 14, como mostrado na FIG. 1A, podem variar, dependendo do dispositivo e aplicação reais.
[0096] O codificador 20 (por exemplo, um codificador de vídeo 20) e o decodificador 30 (por exemplo, um decodificador de vídeo 30), cada um, podem ser implementados como qualquer um entre uma variedade de circuitos adequados, tais como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos da aplicação (ASICs), arranjos de portas programáveis em campo (FPGAs), lógica discreta, hardware ou quaisquer combinações dos mesmos. Se as técnicas forem implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em uma mídia de armazenamento legível por computador não transitória adequada e pode executar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta revelação. Qualquer um entre os anteriores (incluindo hardware, software, uma combinação de hardware e software, etc.) pode ser considerado um ou mais processadores. Cada um entre o codificador de vídeo 20 e o decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um respectivo dispositivo.
[0097] O dispositivo de origem 12 pode ser referido como um dispositivo de codificação de vídeo ou um aparelho de codificação de vídeo. O dispositivo de destino 14 pode ser referido como um dispositivo de decodificação de vídeo ou um aparelho de decodificação de vídeo. O dispositivo de origem 12 e o dispositivo de destino 14 podem ser exemplos dos dispositivos de codificação de vídeo ou dos aparelhos de codificação de vídeo.
[0098] O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender uma ampla faixa de dispositivos, incluindo qualquer tipo de dispositivos portáteis ou fixos, por exemplo, computadores notebook ou laptop, telefones móveis, telefones inteligentes, tabletes ou computadores tablet, câmeras, computadores desktop, conversores de televisão, televisões, dispositivos de exibição, reprodutores de mídia digital, consoles de videogame, dispositivos de transmissão de vídeo (tais como servidores de serviços de conteúdo ou servidores de entrega de conteúdo), dispositivo de recebimento de transmissão, dispositivo transmissor de transmissão ou semelhantes, e podem usar nenhum ou qualquer tipo de sistema operacional.
[0099] Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para a comunicação sem fio. Assim, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser dispositivos de comunicação sem fio.
[0100] Em alguns casos, o sistema da codificação de vídeo 10 ilustrado na FIG. 1A é meramente um exemplo e as técnicas do presente pedido podem se aplicar às configurações de codificação de vídeo (por exemplo, a codificação de vídeo ou a decodificação de vídeo) que não necessariamente incluem qualquer comunicação de dados entre os dispositivos de codificação e decodificação. Em outros exemplos, os dados são recuperados de uma memória local, transmitidos através de uma rede ou semelhantes. Um dispositivo de codificação de vídeo pode codificar e armazenar dados para a memória e/ou um dispositivo de decodificação de vídeo pode recuperar e decodificar dados da memória. Em alguns exemplos, a codificação e decodificação são realizadas pelos dispositivos que não se comunicam um com o outro, mas simplesmente codificam dados para a memória e/ou recuperam e decodificam dados da memória.
[0101] Deve ser entendido que, para cada um dos exemplos acima descritos com referência ao codificador de vídeo 20, o decodificador de vídeo 30 pode ser configurado para realizar um processo recíproco. Em relação aos elementos de sintaxe de sinalização, o decodificador de vídeo 30 pode ser configurado para receber e analisar tal elemento de sintaxe e decodificar os dados de vídeo associados consequentemente. Em alguns exemplos, o codificador de vídeo 20 pode codificar com entropia um ou mais elementos de sintaxe no fluxo de bits de vídeo codificado. Em tais exemplos, o decodificador de vídeo 30 pode analisar tal elemento de sintaxe e decodificar os dados de vídeo associados consequentemente.
[0102] A FIG. 1B é um diagrama ilustrativo de outro sistema da codificação de vídeo do exemplo 40 incluindo o codificador 20 da FIG. 2 e/ou o decodificador 30 da FIG. 3, conforme definido em uma modalidade exemplar. O sistema 40 pode implementar técnicas, conforme definido em vários exemplos descritos no presente pedido. Na implementação ilustrada, o sistema da codificação de vídeo 40 pode incluir dispositivo(s) de imagem 41, codificador de vídeo 100, decodificador de vídeo 30 (e/ou um codificador de vídeo implementado através de circuitos lógicos 47 da(s) unidade(s) de processamento 46), uma antena 42, um ou mais processadores 43, um ou mais armazenamento(s) de memória 44 e/ou um dispositivo de exibição 45.
[0103] Como ilustrado, dispositivo(s) de imagem 41, antena 42, unidade(s) de processamento 46, circuitos lógicos 47, codificador de vídeo 20, decodificador de vídeo 30, processador(es) 43, armazenamento(s) de memória 44 e/ou o dispositivo de exibição 45 podem ser capazes de se comunicar um com o outro. Como debatido, embora ilustrado tanto com o codificador de vídeo 20 quanto com o decodificador de vídeo 30, o sistema da codificação de vídeo 40 pode incluir apenas o codificador de vídeo 20 ou apenas o decodificador de vídeo 30 em vários exemplos.
[0104] Como mostrado, em alguns exemplos, o sistema da codificação de vídeo 40 pode incluir a antena 42. A antena 42 pode ser configurada para transmitir ou receber um fluxo de bits codificado de dados de vídeo, por exemplo. Além disso, em alguns exemplos, o sistema da codificação de vídeo 40 pode incluir o dispositivo de exibição 45. O dispositivo de exibição 45 pode ser configurado para apresentar os dados de vídeo. Como mostrado, em alguns exemplos, os circuitos lógicos 47 podem ser implementados através da(s) unidade(s) de processamento 46. A(s) unidade(s) de processamento 46 pode incluir lógica de circuito integrado específico da aplicação (ASIC), processador(es) de gráfico, processador(es) de uso geral ou semelhantes. O sistema da codificação de vídeo 40 também pode incluir o processador(es) opcionais 43, que pode similarmente incluir a lógica de circuito integrado específico da aplicação (ASIC), processador(es), processador(es) de uso geral ou semelhantes. Em alguns exemplos, os circuitos lógicos 47 podem ser implementados através de hardware, a hardware dedicado de codificação de vídeo ou semelhantes, e o processador(es) 43 pode implementar software de uso geral, sistemas operacionais ou semelhantes. Além disso, o armazenamento(s) de memória 44 pode ser qualquer tipo de memória, tal como memória volátil (por exemplo, Memória de Acesso Aleatório Estática (SRAM), Memória de Acesso Aleatório Dinâmica (DRAM), etc.) ou memória não volátil (por exemplo, memória flash, etc.) e assim por diante. Em um exemplo não limitante, o armazenamento (s) de memória 44 pode ser implementado por memória de cache. Em alguns exemplos, os circuitos lógicos 47 podem acessar o armazenamento(s) de memória 44 (para implementação de um buffer de imagem, por exemplo). Em outros exemplos, os circuitos lógicos 47 e/ou unidade(s) de processamento 46 podem incluir armazenamentos de memória (por exemplo, cache ou semelhantes) para a implementação de um buffer de imagem ou semelhantes.
[0105] Em alguns exemplos, o codificador de vídeo 100 implementado através de circuitos lógicos pode incluir um buffer de imagem (por exemplo, através da(s) unidade(s) de processamento 46 ou armazenamento(s) de memória 44)) e uma unidade de processamento gráfico (por exemplo, através da(s) unidade(s) de processamento 46). A unidade de processamento gráfico pode ser acoplada comunicativamente ao buffer de imagem. A unidade de processamento gráfico pode incluir o codificador de vídeo 100 como implementado através de circuitos lógicos 47 para incorporar os vários módulos como debatido em relação a FIG. 2 e/ou qualquer outro sistema codificador ou subsistema descrito neste relatório. Os circuitos lógicos podem ser configurados para realizar as várias operações como debatido neste relatório.
[0106] O decodificador de vídeo 30 pode ser implementado de uma maneira similar como implementado através de circuitos lógicos 47 para incorporar os vários módulos como debatido em relação ao decodificador 30 da FIG. 3 e/ou qualquer outro sistema decodificador ou subsistema descrito neste relatório. Em alguns exemplos, o decodificador de vídeo 30 pode ser implementado através de circuitos lógicos pode incluir um buffer de imagem (por exemplo, através de unidade(s) de processamento 420 ou armazenamento(s) de memória 44)) e uma unidade de processamento gráfico (por exemplo, através de unidade(s) de processamento 46). A unidade de processamento gráfico pode ser acoplada comunicativamente ao buffer de imagem. A unidade de processamento gráfico pode incluir o decodificador de vídeo 30 como implementado através de circuitos lógicos 47 para incorporar os vários módulos como debatido em relação a FIG. 3 e/ou qualquer outro sistema decodificador ou subsistema descrito neste relatório.
[0107] Em alguns exemplos, a antena 42 do sistema da codificação de vídeo 40 pode ser configurada para receber um fluxo de bits codificado de dados de vídeo. Como debatido, o fluxo de bits codificado pode incluir dados, indicadores, valores de índice, dados de seleção de modo ou semelhantes associados à codificação de um quadro de vídeo como debatido neste relatório, tal como dados associados à partição de codificação (por exemplo, coeficientes de transformada ou coeficientes de transformada quantizados, indicadores opcionais (como debatido), e/ou dados que definem a partição de codificação). O sistema da codificação de vídeo 40 também pode incluir o decodificador de vídeo 30 acoplado à antena 42 e configurado para decodificar o fluxo de bits codificado. O dispositivo de exibição 45 configurado para apresentar o quadro de vídeos.
CODIFICADOR E MÉTODO DE CODIFICAÇÃO
[0108] A FIG. 2 mostra um diagrama de bloco esquemático/conceitual de um codificador de vídeo do exemplo 20 que é configurado para implementar as técnicas do presente pedido. No exemplo da FIG. 2, o codificador de vídeo 20 compreende uma unidade de cálculo residual 204, uma unidade de processamento de transformada 206, uma unidade de quantização 208, uma unidade de quantização inversa 210 e unidade de processamento de transformada inversa 212, uma unidade de reconstrução 214, um buffer 216, uma unidade de filtro de loop 220, um buffer de imagem decodificado (DPB) 230, uma unidade de processamento de predição 260 e uma unidade de codificação de entropia 270. A unidade de processamento de predição 260 pode incluir uma unidade de predição inter 244, uma unidade de predição intra 254 e uma unidade de seleção de modo
262. A unidade de predição inter 244 pode incluir uma unidade de estimativa de movimento e uma unidade de compensação de movimento (não mostrada). Um codificador de vídeo 20 como mostrado na FIG. 2 também pode ser referido como codificador de vídeo híbrido ou um codificador de vídeo, conforme definido em um codec de vídeo híbrido.
[0109] Por exemplo, a unidade de cálculo residual 204, a unidade de processamento de transformada 206, a unidade de quantização 208, a unidade de processamento de predição 260 e a unidade de codificação de entropia 270 formam uma trajetória de sinal direto do codificador 20, enquanto, por exemplo, a unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o buffer 216, o filtro de loop 220, o buffer de imagem decodificado (DPB) 230, a unidade de processamento de predição 260 formam uma trajetória de sinal indireta do codificador, em que a trajetória de sinal indireta do codificador corresponde à trajetória de sinal do decodificador (ver, o decodificador 30 na FIG. 3).
[0110] O codificador 20 é configurado para receber, por exemplo, pela entrada 202, uma imagem 201 ou um bloco 203 da imagem 201, por exemplo, imagem de uma sequência de imagens que forma um vídeo ou sequência de vídeos. O bloco de imagem 203 também pode ser referido como bloco de imagem atual ou bloco de imagem a ser codificado, e a imagem 201 como imagem atual ou imagem a ser codificada (em particular, na codificação de vídeo para distinguir a imagem atual de outras imagens, por exemplo, previamente codificadas e/ou imagens decodificadas da mesma sequência de vídeos, isto é, a sequência de vídeos que também compreende a imagem atual).
PARTICIONAMENTO
[0111] As modalidades do codificador 20 podem compreender uma unidade de particionamento (não representada na FIG. 2) configurada para particionar a imagem 201 em uma pluralidade de blocos, por exemplo, blocos como o bloco 203, tipicamente em uma pluralidade de blocos não sobrepostos. A unidade de particionamento pode ser configurada para usar o mesmo tamanho de bloco para todas as imagens de uma sequência de vídeos e a grade correspondente definem o tamanho de bloco, ou para mudar o tamanho de bloco entre imagens ou subconjuntos ou grupos de imagens, e a partição de cada imagem nos blocos correspondentes.
[0112] Em um exemplo, a unidade de processamento de predição 260 do codificador de vídeo 20 pode ser configurada para realizar qualquer combinação das técnicas de particionamento descritas acima.
[0113] Como a imagem 201, o bloco 203 novamente é ou pode ser considerado como um arranjo bidimensional ou matriz de amostras com valores de intensidade (valores de amostra), embora de menor dimensão do que a imagem 201. Em outras palavras, o bloco 203 pode compreender, por exemplo, um arranjo de amostra (por exemplo, um arranjo de luma no caso de uma imagem monocromática 201) ou três arranjos de amostra (por exemplo, um luma e dois arranjos de croma no caso de uma imagem colorida 201) ou qualquer outro número e/ou tipo de arranjos dependendo do formato de cor aplicado. O número de amostras na direção horizontal e vertical (ou eixo) do bloco 203 define o tamanho do bloco 203.
[0114] O codificador 20, como mostrado na FIG. 2, é configurado para codificar a imagem 201, bloco por bloco, por exemplo, a codificação e predição são realizadas por bloco 203.
CÁLCULO RESIDUAL
[0115] A unidade de cálculo residual 204 é configurada para calcular um bloco residual 205 com base no bloco de imagem 203 e um bloco de predição 265 (os detalhes adicionais sobre o bloco de predição 265 são fornecidos mais tarde), por exemplo, subtraindo valores de amostra do bloco de predição 265 de valores de amostra do bloco de imagem 203, amostra por amostra (pixel por pixel), para obter o bloco residual 205 no domínio de amostra.
TRANSFORMADA
[0116] A unidade de processamento de transformada 206 é configurada para aplicar uma transformada, por exemplo, uma transformada de cosseno discreta (DCT) ou transformada de seno discreta (DST), nos valores de amostra do bloco residual 205 para obter coeficientes de transformada 207 em um domínio de transformada. Os coeficientes de transformada 207 também podem ser referidos como coeficientes residuais de transformada e representam o bloco residual 205 no domínio de transformada.
[0117] A unidade de processamento de transformada 206 pode ser configurada para aplicar aproximações inteiras de DCT/DST, tais como as transformações especificadas para HEVC/H.265. Em comparação a uma transformada DCT ortogonal, tais aproximações inteiras são tipicamente dimensionadas por um determinado fator. De modo a preservar a norma do bloco residual que é processada por transformações diretas e inversas, os fatores de escala adicionais são aplicados como parte do processo de transformada. Os fatores de escala são tipicamente escolhidos com base em determinadas restrições como fatores de escala sendo uma potência de dois para operação de deslocamento, a profundidade de bits dos coeficientes de transformada, compensação entre precisão e custos de implementação, etc. Os fatores de escala específicos são, por exemplo, especificados para a transformada inversa, por exemplo, pela unidade de processamento de transformada inversa 212, em um decodificador 30 (e a transformada inversa correspondente, por exemplo, pela unidade de processamento de transformada inversa 212 em um codificador 20) e fatores de escala correspondentes para a transformada direta, por exemplo, pela unidade de processamento de transformada 206, em um codificador 20 podem ser especificados consequentemente.
QUANTIZAÇÃO
[0118] A unidade de quantização 208 é configurada para quantizar os coeficientes de transformada 207 para obter coeficientes de transformada quantizados 209, por exemplo, aplicando quantização escalar ou quantização vetorial. Os coeficientes de transformada quantizados 209 também podem ser referidos como coeficientes residuais quantizados 209. O processo de quantização pode reduzir a profundidade de bits associada a alguns ou todos os coeficientes de transformada 207. Por exemplo, um coeficiente de transformada de n bits pode ser arredondado para baixo para coeficientes de transformada de m bits durante a quantização, em que n é maior do que m. O grau de quantização pode ser modificado ajustando um parâmetro de quantização (QP). Por exemplo, para a quantização escalar, diferentes escalas podem ser aplicadas para obter quantização fina ou grossa. Os tamanhos de etapa de quantização menores correspondem à quantização fina, enquanto que os tamanhos de etapa de quantização maiores correspondes à quantização grossa. O tamanho de etapa de quantização aplicável pode ser indicado por um parâmetro de quantização (QP). O parâmetro de quantização pode ser, por exemplo, um índice para um conjunto pré-definido de tamanhos de etapa de quantização aplicável. Por exemplo, pequenos parâmetros de quantização podem corresponder à quantização fina (pequenos tamanhos de etapa de quantização) e maiores parâmetros de quantização podem corresponder à quantização grossa (maiores tamanhos de etapa de quantização) ou vice-versa. A quantização pode incluir divisão por um tamanho de etapa de quantização e desquantização correspondente ou inversa, por exemplo, por quantização inversa 210, pode incluir multiplicação pelo tamanho de etapa de quantização. As modalidades, conforme definido em alguns padrões, por exemplo, HEVC, podem ser configuradas para usar um parâmetro de quantização para determinar o tamanho de etapa de quantização. Geralmente, o tamanho de etapa de quantização pode ser calculado com base em um parâmetro de quantização usando uma aproximação de ponto fixo de uma equação incluindo divisão. Os fatores de escala adicionais podem ser introduzidos para quantização e desquantização para rearmazenar a norma do bloco residual, que pode ser modificado por causa da escala usada na aproximação de ponto fixo da equação para tamanho de etapa de quantização e parâmetro de quantização. Em uma implementação do exemplo, a escala da transformada inversa e desquantização podem ser combinadas. Alternativamente, as tabelas de quantização personalizadas podem ser usadas e sinalizadas de um codificador para um decodificador, por exemplo, em um fluxo de bits. A quantização é uma operação com perdas, em que a perda aumenta com o aumento dos tamanhos de etapa de quantização.
[0119] A unidade de quantização inversa 210 é configurada para aplicar a quantização inversa da unidade de quantização 208 nos coeficientes quantizados para obter os coeficientes desquantizados 211, por exemplo, aplicando o inverso do esquema de quantização aplicado pela unidade de quantização 208 com base ou usando o mesmo tamanho de etapa de quantização que a unidade de quantização 208. Os coeficientes desquantizados 211 também podem ser referidos como coeficientes residuais desquantizados 211 e correspondem - embora tipicamente não sejam idênticos aos coeficientes de transformada devido à perda por quantização - aos coeficientes de transformada 207.
[0120] A unidade de processamento de transformada inversa 212 é configurada para aplicar a transformada inversa da transformada aplicada pela unidade de processamento de transformada 206, por exemplo, uma transformada de cosseno discreta inversa (DCT) ou transformada de seno discreta inversa (DST), para obter um bloco de transformada inversa 213 no domínio de amostra. O bloco de transformada inversa 213 também pode ser referido como bloco de transformada inversa desquantizado 213 ou bloco de transformada inverso residual 213.
[0121] A unidade de reconstrução 214 (por exemplo, somador 214) é configurada para adicionar o bloco de transformada inverso 213 (isto é, bloco residual reconstruído 213) ao bloco de predição 265 para obter um bloco reconstruído 215 no domínio de amostra, por exemplo, pela adição de valores de amostra do bloco reconstruído residual 213 e dos valores de amostra do bloco de predição 265.
[0122] Opcionalmente, a unidade de buffer 216 (ou “buffer” 216 para abreviação), por exemplo, um buffer de linha 216, é configurado para o buffer ou armazenamento do bloco reconstruído 215 e dos respectivos valores de amostra, por exemplo, para predição intra. Em modalidades adicionais, o codificador pode ser configurado para usar os blocos reconstruídos não filtrados e/ou os respectivos valores de amostra armazenados na unidade de buffer 216 para qualquer tipo de estimativa e/ou predição, por exemplo, predição intra.
[0123] As modalidades do codificador 20 podem ser configuradas tal que, por exemplo, a unidade de buffer 216 não seja apenas usada para armazenar os blocos reconstruídos 215 para predição intra 254, mas também para a unidade de filtro de loop 220 (não mostrada na FIG. 2), e/ou tal que, por exemplo, a unidade de buffer 216 e a unidade de buffer de imagem decodificada 230 formem um buffer. As modalidades adicionais podem ser configuradas para usar os blocos filtrados 221 e/ou blocos ou amostras do buffer de imagem decodificado 230 (ambos não mostrados na FIG. 2) como entrada ou base para predição intra 254.
[0124] A unidade de filtro de loop 220 (ou “filtro loop” 220, para abreviação), é configurada para filtrar o bloco reconstruído 215 para obter um bloco filtrado 221, por exemplo, para suavizar as transições de pixel ou, de outro modo, melhorar a qualidade de vídeo. A unidade de filtro loop 220 se destina a representar um ou mais filtros loop, tais como um filtro de desbloqueio, um filtro de deslocamento adaptativo da amostra (SAO) ou outros filtros, por exemplo, um filtro bilateral ou um filtro de loop adaptativo (ALF) ou filtros de nitidez ou filtros de suavização ou filtros colaborativos. Embora a unidade de filtro de loop 220 seja mostrada na FIG. 2 como sendo um filtro no loop, em outras configurações, a unidade de filtro de loop 220 pode ser implementada como um filtro de pós-loop. O bloco filtrado 221 também pode ser referido como bloco filtrado reconstruído 221. O buffer de imagem decodificado 230 pode armazenar os blocos de codificação reconstruídos depois que a unidade de filtro de loop 220 realiza as operações de filtragem nos blocos de codificação reconstruídos.
[0125] As modalidades do codificador 20 (respectivamente, a unidade de filtro de loop 220) podem ser configuradas para emitir os parâmetros de filtro de loop (tais como informações de deslocamento adaptativo da amostra), por exemplo, entropia codificada diretamente ou através da unidade de codificação de entropia 270 ou qualquer outra unidade de codificação de entropia, de modo que, por exemplo, um decodificador 30 possa receber e aplicar os mesmos parâmetros de filtro de loop para decodificação.
[0126] O buffer de imagem decodificado (DPB) 230 pode ser uma memória de imagem de referência que armazena dados de imagem de referência para o uso na codificação de dados de vídeo pelo codificador de vídeo 20. O DPB 230 pode ser formado por qualquer um de uma variedade de dispositivos de memória, tais como memória de acesso aleatório dinâmica
(DRAM), incluindo DRAM síncrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) ou outros tipos de dispositivos de memória. O DPB 230 e o buffer 216 podem ser fornecidos pela mesmo dispositivo de memória ou dispositivos de memória separados. Em algum exemplo, o buffer de imagem decodificado (DPB) 230 é configurado para armazenar o bloco filtrado 221. O buffer de imagem decodificado 230 pode ser configurado adicionalmente para armazenar outros blocos previamente filtrados, por exemplo, previamente reconstruídos e blocos filtrados 221, da mesma imagem atual ou de diferentes imagens, por exemplo, imagens previamente reconstruídas, e pode fornecer imagens completa previamente reconstruídas, isto é, decodificadas (e blocos e amostras de referência correspondentes) e/ou um imagem atual parcialmente reconstruída (e blocos e amostras de referência correspondentes), por exemplo, predição inter. Em algum exemplo, se o bloco reconstruído 215 for reconstruído, mas sem filtragem no loop, o buffer de imagem decodificado (DPB) 230 é configurado para armazenar o bloco reconstruído 215.
[0127] A unidade de processamento de predição 260, também referida como unidade de processamento de predição de bloco 260, é configurada para receber ou obter o bloco 203 (bloco atual 203 da imagem atual 201) e dados de imagem reconstruídos, por exemplo, amostras de referência da mesma imagem (atual) do buffer 216 e/ou dados de imagem de referência 231 de uma ou uma pluralidade de imagens previamente decodificadas do buffer de imagem decodificado 230, e para processar tais dados para predição, isto é, para fornecer um bloco de predição 265, que pode ser um bloco predito inter 245 ou um bloco predito intra 255.
[0128] A unidade de seleção de modo 262 pode ser configurada para selecionar um modo de predição (por exemplo, um modo de predição intra ou inter) e/ou um bloco de predição correspondente 245 ou 255 para ser usado como bloco de predição 265 para o cálculo do bloco residual 205 e para a reconstrução do bloco reconstruído 215.
[0129] As modalidades da unidade de seleção de modo 262 podem ser configuradas para selecionar o modo de predição (por exemplo, daqueles suportados pela unidade de processamento de predição 260), que fornece a melhores correspondências ou, em outras palavras, o resíduo mínimo (resíduo mínimo significa melhor compressão para transmissão ou armazenamento), ou uma sobrecarga de sinalização mínima (sobrecarga de sinalização mínima significa melhor compressão para transmissão ou armazenamento), ou que considera ou equilibra ambos. A unidade de seleção de modo 262 pode ser configurada para determinar o modo de predição com base na otimização de distorção de taxa (RDO), isto é, selecionar o modo de predição que fornece uma otimização de distorção de taxa mínima ou cuja distorção de taxa associada pelo menos atende um critério de seleção de modo de predição.
[0130] A seguir, o processamento de predição (por exemplo, unidade de processamento de predição 260 e seleção de modo (por exemplo, pela unidade de seleção de modo 262) realizado por um codificador do exemplo 20 será explicado em mais detalhes.
[0131] Como descrito acima, o codificador 20 é configurado para determinar ou selecionar o melhor ou um modo de predição ideal de um conjunto de modos de predição (predeterminados). O conjunto de modos de predição pode compreender, por exemplo, modos de predição intra e/ou modos de predição inter.
[0132] O conjunto de modo de predição intra pode compreender 35 diferentes modos de predição intra, por exemplo, modos não direcionais como DC (ou média) e modo planar, ou modos direcionais, por exemplo, como definido em H.265, ou pode compreender 67 diferentes modos de predição intra, por exemplo, modos não direcionais como DC (ou média) e modo planar, ou modos direcionais, por exemplo, como definido em H.266 em desenvolvimento.
[0133] O conjunto (ou possíveis) modos de predição inter depende de imagens de referência disponíveis (isto é, pelo menos imagens anteriormente decodificadas parcialmente, por exemplo, armazenadas em DBP 230) e outros parâmetros de predição inter, por exemplo, se a imagem de referência inteira ou apenas uma parte, por exemplo, uma área de janela de pesquisa em torno da área do bloco atual, da imagem de referência é usada para a pesquisa de um bloco de referência de melhor correspondência, e/ou por exemplo, se a interpolação de pixel for aplicada, por exemplo, interpolação de meio/semi pel e/ou um quarto de pel, ou não.
[0134] Além dos modos de predição acima, o modo de salto e/ou o modo direto podem ser aplicados.
[0135] A unidade de processamento de predição 260 pode ser adicionalmente configurada para particionar o bloco 203 em menores partições de bloco ou sub-blocos, por exemplo, usando iterativamente partição quadtree (QT), partição binária (BT) ou partição de árvore tripla (TT) ou qualquer combinação das mesmas e, para realizar, por exemplo, a predição para cada uma das partições de bloco ou sub-blocos, em que a seleção de modo compreende a seleção da estrutura de árvore do bloco particionado 203 e dos modos de predição aplicados a cada uma das partições de bloco ou sub- blocos.
[0136] A unidade de predição inter 244 pode incluir unidade de estimativa de movimento (ME) (não mostrada na FIG .2) e unidade de compensação de movimento (MC) (não mostrada na FIG .2). A unidade de estimativa de movimento é configurada para receber ou obter o bloco de imagem 203 (bloco de imagem atual 203 da imagem atual 201) e uma imagem decodificada 231, ou pelo menos um ou uma pluralidade de blocos previamente reconstruídos, por exemplo, blocos reconstruídos de uma ou uma pluralidade de outras/diferentes imagens previamente decodificadas 231, para a estimativa de movimento. Por exemplo, uma sequência de vídeos pode compreender a imagem atual e as imagens previamente decodificadas 231 ou, em outras palavras, a imagem atual e as imagens previamente decodificadas 231 pode ser parte ou formam uma sequência de imagens formando uma sequência de vídeos.
[0137] O codificador 20 pode ser, por exemplo, configurado para selecionar um bloco de referência de uma pluralidade de blocos de referência do mesmo ou diferentes imagens da pluralidade de outras imagens e fornecer uma imagem de referência (ou índice de imagem de referência, …) e/ou um deslocamento (deslocamento espacial) entre a posição (coordenadas x, y) do bloco de referência e a posição do bloco atual como parâmetros de predição inter para a unidade de estimativa de movimento (não mostrada na FIG .2). Este deslocamento também é chamado de vetor de movimento (MV).
[0138] A unidade de compensação de movimento é configurada para obter, por exemplo, receber, um parâmetro de predição inter e para realizar a predição inter com base ou usando o parâmetro de predição inter para obter um bloco de predição inter 245. A compensação de movimento, realizada pela unidade de compensação de movimento (não mostrada na FIG .2), pode envolver buscar ou gerar o bloco de predição com base no vetor de movimento/bloco determinado pela estimativa de movimento, possivelmente que realiza interpolações para a precisão de sub-pixel. As filtragens de interpolação podem gerar amostras de pixel adicionais de amostras de pixel conhecidas, portanto, aumenta potencialmente o número de blocos de predição candidatos que podem ser usados para codificar um bloco de imagem. Após o recebimento do vetor de movimento para a PU do bloco de imagem atual, a unidade de compensação de movimento 246 pode localizar o bloco de predição para o qual o vetor de movimento aponta em uma das listas de imagens de referência. A unidade de compensação de movimento 246 também pode gerar os elementos de sintaxe associados aos blocos e à fatia de vídeo para o uso pelo decodificador de vídeo 30 na decodificação dos blocos de imagem da fatia de vídeo.
[0139] A unidade de predição intra 254 é configurada para obter, por exemplo, receber, o bloco de imagem 203 (bloco de imagem atual) e um ou uma pluralidade de blocos previamente reconstruídos, por exemplo, blocos vizinhos reconstruídos, da mesma imagem para a estimativa intra. O codificador 20 pode ser, por exemplo, configurado para selecionar um modo de predição intra de uma pluralidade de modos de predição intra (predeterminados).
[0140] As modalidades do codificador 20 podem ser configuradas para o modo de predição intra com base em um critério de otimização, por exemplo, resíduo mínimo (por exemplo, o modo de predição intra fornecendo o bloco de predição 255 mais similar para o bloco de imagem atual 203) ou distorção de taxa mínima.
[0141] A unidade de predição intra 254 é adicionalmente configurada para determinar com base no parâmetro de predição intra, por exemplo, o modo de predição intra selecionado, o bloco de predição intra 255. Em qualquer caso, depois de selecionar um modo de predição intra para um bloco, a unidade de predição intra 254 também é configurada para fornecer o parâmetro de predição intra, isto é, informações indicativas do modo de predição intra selecionado para o bloco para a unidade de codificação de entropia 270. Em um exemplo, a unidade de predição intra 254 pode ser configurada para realizar qualquer combinação das técnicas de predição intra descritas mais tarde.
[0142] A unidade de codificação de entropia 270 é configurada para aplicar um algoritmo de codificação de entropia ou esquema (por exemplo, um esquema de codificação de comprimento (VLC), um esquema adaptativo ao contexto VLC (CALVC), um esquema de codificação aritmética, uma codificação aritmética binária adaptativa ao contexto (CABAC), codificação binária aritmética binária adaptativa à sintaxe (SBAC), codificação de entropia de particionamento de intervalo de probabilidade (PIPE) e outra metodologia ou técnica de codificação de entropia) nos coeficientes residuais quantizados 209, parâmetros de predição inter, parâmetros de predição intra, e/ou parâmetros de filtro de loop, individual ou conjuntamente (ou não) para obter dados de imagem codificados 21 que podem ser emitidos pela saída 272, por exemplo, na forma de um fluxo de bits codificado 21. O fluxo de bits codificado 21 pode ser transmitido para o decodificador de vídeo 30, ou arquivado para posterior transmissão ou recuperação pelo decodificador de vídeo 30. A unidade de codificação de entropia 270 pode ser adicionalmente configurada para a codificação de entropia de outros elementos de sintaxe para a fatia de vídeo atual sendo codificada.
[0143] Outras variações estruturais do codificador de vídeo 20 podem ser usadas para codificar o vídeo atual. Por exemplo, um codificar não com base em transformada 20 pode quantizar o sinal residual diretamente sem a unidade de processamento de transformada 206 para determinados blocos ou quadros. Em outra implementação, um codificador 20 pode ter a unidade de quantização 208 e a unidade de quantização inversa 210 combinadas em uma única unidade.
[0144] A FIG. 3 mostra um decodificador de vídeo exemplar 30 que é configurado para implementar as técnicas deste presente pedido. O decodificador de vídeo 30 configurado para receber os dados de imagem codificados (por exemplo, fluxo de bits codificado) 21, por exemplo, codificados pelo codificador 100, para obter uma imagem decodificada 131. Durante o processo de decodificação, o decodificador de vídeo 30 recebe os dados de vídeo, por exemplo, um fluxo de bits de vídeo codificado que representa os blocos de imagem de uma fatia de vídeo codificada e elementos de sintaxes associados, do codificador de vídeo 100.
[0145] No exemplo da FIG. 3, o decodificador 30 compreende uma unidade de decodificação de entropia 304, uma unidade de quantização inversa 310, uma unidade de processamento de transformada inversa 312, uma unidade de reconstrução 314 (por exemplo, um somador 314), um buffer 316, um filtro de loop 320, um buffer de imagem decodificado 330 e uma unidade de processamento de predição 360. A unidade de processamento de predição 360 pode incluir uma unidade de predição inter 344, uma unidade de predição intra 354 e uma unidade de seleção de modo 362. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação geralmente recíproca à passagem de codificação descrita em relação ao codificador de vídeo 100 da FIG. 2.
[0146] A unidade de decodificação de entropia 304 é configurada para realizar a decodificação de entropia para os dados de imagem codificados 21 para obter, por exemplo, coeficientes quantizados 309 e/ou parâmetros de codificação decodificados (não mostrados na FIG. 3), por exemplo, qualquer ou todos os parâmetros de predição inter (decodificados), parâmetro de predição intra, filtro de loop parâmetros e/ou outros elementos de sintaxe. A unidade de decodificação de entropia 304 é adicionalmente configurada para parâmetros de predição inter direta, parâmetro de predição intra e/ou outros elementos de sintaxe para a unidade de processamento de predição 360. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou o nível de bloco de vídeo.
[0147] A unidade de quantização inversa 310 pode ser idêntica em função à unidade de quantização inversa 110, a unidade de processamento de transformada inversa 312 pode ser idêntica em função à unidade de processamento de transformada inversa 112, a unidade de reconstrução 314 pode ser idêntica em função à unidade de reconstrução 114, o buffer 316 pode ser idêntico em função ao buffer 116, o filtro de loop 320 pode ser idêntico em função ao filtro de loop 120 e o buffer de imagem decodificado 330 pode ser idêntico em função ao buffer de imagem decodificado 130.
[0148] A unidade de processamento de predição 360 pode compreender uma unidade de predição inter 344 e uma unidade de predição intra 354, em que a unidade de predição inter 344 pode se assemelhar à unidade de predição inter 144 em função e a unidade de predição intra 354 pode se assemelhar à unidade de predição intra 154 em função. A unidade de processamento de predição 360 é tipicamente configurada para realizar a predição de bloco e/ou obter o bloco de predição 365 dos dados codificados 21 e para receber ou obter (explícita ou implicitamente) os parâmetros de predição relacionado s e/ou as informações sobre o modo de predição selecionado, por exemplo, da unidade de decodificação de entropia 304.
[0149] Quando a fatia de vídeo é codificada como uma fatia codificada intra (I), a unidade de predição intra 354 da unidade de processamento de predição 360 é configurada para gerar o bloco de predição 365 para um bloco de imagem da fatia de vídeo atual com base em um modo de predição intra sinalizado e dados de blocos previamente decodificados do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia codificada inter (isto é, B ou P), a unidade de predição inter 344 (por exemplo, a unidade de compensação de movimento) da unidade de processamento de predição 360 é configurada para produzir os blocos de predição 365 para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos da unidade de decodificação de entropia 304. Para predição inter, os blocos de predição podem ser produzidos de uma das imagens de referência dentro de uma das listas de imagens de referência. O decodificador de vídeo 30 pode construir as listas de quadros de referência, Lista 0 e Lista 1, usando técnicas de construção padrão com base em imagens de referência armazenadas em DPB
330.
[0150] A unidade de processamento de predição 360 é configurada para determinar informações de predição para um bloco de vídeo da fatia de vídeo atual analisando os vetores de movimento e outros elementos de sintaxe, e utilizar as informações de predição para produzir os blocos de predição para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de processamento de predição 360 utiliza alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, predição intra ou inter) usado para codificar os bloco de vídeo da fatia de vídeo, um tipo de fatia de predição inter (por exemplo, fatia B, fatia P ou fatia GPB), informações de construção para uma ou mais das listas de imagens de referência para a fatia, os vetores de movimento para cada bloco de vídeo codificado inter da fatia, estado de predição inter para cada bloco de vídeo codificado inter da fatia e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0151] A unidade de quantização inversa 310 é configurada para a quantizar inversamente, isto é, desquantizar, os coeficientes de transformada quantizados fornecidos no fluxo de bits e decodificados pela unidade de decodificação de entropia 304. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização calculado pelo codificador de vídeo 100 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, do mesmo modo, um grau de quantização inversa que deve ser aplicado.
[0152] A unidade de processamento de transformada inversa 312 é configurada para aplicar uma transformada inversa, por exemplo, uma DCT inversa, uma transformada inteira inversa ou um processo de transformada inversa conceitualmente similar, para os coeficientes de transformada, de modo a produzir blocos residuais no domínio de pixel.
[0153] A unidade de reconstrução 314(por exemplo, somador 314) é configurada para adicionar o bloco de transformada inverso 313 (isto é, o bloco reconstruído residual 313) ao bloco de predição 365 para obter um bloco reconstruído 315 no domínio de amostra, por exemplo, adicionando os valores de amostra do bloco reconstruído residual 313 e os valores de amostra do bloco de predição 365.
[0154] A unidade de filtro de loop 320 (ou no loop de codificação ou depois do loop de codificação) é configurada para filtrar o bloco reconstruído 315 para obter um bloco filtrado 321, por exemplo, para suavizar as transições de pixel ou, de outro modo, melhorar a qualidade de vídeo. Em um exemplo, a unidade de filtro de loop 320 pode ser configurada para realizar qualquer combinação das técnicas de filtragem descritas mais tarde. A unidade de filtro de loop 320 é destinada a representar um ou mais filtros de loop, tais como um filtro de desbloqueio, um filtro de deslocamento adaptativo à amostra (SAO) ou outros filtros, por exemplo, um filtro bilateral ou um filtro de loop adaptativo (ALF) ou filtros de nitidez ou filtros de suavização ou filtros colaborativos. Embora a unidade de filtro de loop 320 seja mostrada na FIG. 3 como sendo um filtro no loop, em outras configurações, a unidade de filtro de loop 320 pode ser implementada como um filtro pós-loop.
[0155] Os blocos de vídeos decodificados 321 em um determinado quadro ou imagem são, em seguida, armazenados no buffer de imagem decodificado 330, que armazena imagens de referência usadas para compensação de movimento subsequente.
[0156] O decodificador 30 é configurado para emitir a imagem decodificada 311, por exemplo, através da saída 312, para apresentação ou visualização de um usuário.
[0157] Outras variações do decodificador de vídeo 30 podem ser usadas para decodificar o fluxo de bits compactado. Por exemplo, o decodificador 30 pode produzir o vídeo de saída atual sem a unidade de filtragem de loop 320. Por exemplo, um decodificador não com base em transformada 30 pode quantizar inversamente o sinal residual diretamente sem a unidade de processamento de transformada inversa 312 para determinados blocos ou quadros. Em outra implementação, o decodificador de vídeo 30 pode ter a unidade de quantização inversa 310 e a unidade de processamento de transformada inversa 312 combinadas em uma única unidade.
[0158] A FIG. 4 é um diagrama esquemático de um dispositivo de codificação de vídeo 400, conforme definido em uma modalidade da revelação. O dispositivo de codificação de vídeo 400 é adequado para implementar as modalidades reveladas como descrito neste relatório. Em uma modalidade, o dispositivo de codificação de vídeo 400 pode ser um decodificador, tal como o decodificador de vídeo 30 da FIG. 1A ou um codificador, tal como o codificador de vídeo 20 da FIG. 1A. Em uma modalidade, o dispositivo de codificação de vídeo 400 pode ser um ou mais componentes do decodificador de vídeo 30 da FIG. 1A ou do codificador de vídeo 20 da FIG. 1A como descrito acima.
[0159] O dispositivo de codificação de vídeo 400 compreende portas de ingresso 410 e unidades receptoras (Rx) 420 para o recebimento de dados; um processador, unidade lógica, ou unidade de processamento central (CPU) 430 para processar os dados; unidades transmissoras (Tx) 440 e portas de egresso 450 para transmitir os dados; e uma memória 460 para armazenar os dados. O dispositivo de codificação de vídeo 400 também pode compreender componentes ópticos para elétricos (OE) e componentes elétricos para ópticos
(EO) acoplados às portas de ingresso 410, as unidades receptoras 420, as unidades transmissoras 440 e as portas de egresso 450 para saída ou entrada de sinais ópticos ou elétricos.
[0160] O processor 430 é implementado por hardware e software. O processador 430 pode ser implementado como um ou mais chips de CPU, núcleos (por exemplo, como um processador de múltiplos núcleos), FPGAs, ASICs e DSPs. O processador 430 está em comunicação com as portas de ingresso 410, unidades receptoras 420, unidades transmissoras 440, portas de egresso 450 e memória 460. O processador 430 compreende um módulo de codificação 470. O módulo de codificação 470 implementa as modalidades reveladas descritas acima. Por exemplo, o módulo de codificação 470 implementa, processa, prepara ou fornece as várias operações de codificação. A inclusão do módulo de codificação 470, portanto, fornece uma melhoria substancial para a funcionalidade do dispositivo de codificação de vídeo 400 e efetua uma transformação do dispositivo de codificação de vídeo 400 para um estado diferente. Alternativamente, o módulo de codificação 470 é implementado como instruções armazenadas na memória 460 e executado pelo processador 430.
[0161] A memória 460 compreende um ou mais discos, unidades de fita e unidades de estado sólido e podem ser usados como um dispositivo de armazenamento de dados de fluxo excessivo, para armazenar programas, quando tais programas são selecionados para a execução, e para armazenar instruções e dados que são lidos durante a execução do programa. A memória 460 pode ser volátil e/ou non-volátil e pode ser memória somente de leitura (ROM), memória de acesso aleatório (RAM), memória endereçável por conteúdo ternário (TCAM) e/ou memória de acesso aleatório estática (SRAM).
[0162] A FIG. 5 é um diagrama de bloco simplificado de um aparelho 500 que pode ser usado como um ou tanto o dispositivo de origem 310 quanto o dispositivo de destino 320 da FIG. 1, conforme definido em uma modalidade exemplar. O aparelho 500 pode implementar técnicas deste presente pedido descrito acima. O aparelho 500 pode estar na forma de um sistema computacional incluindo múltiplos dispositivos de computação, ou na forma de um único dispositivo de computação, por exemplo, um telefone móvel, um computador tablet, um computador laptop, um computador notebook, um computador desktop e semelhantes.
[0163] Um processador 502 no aparelho 500 pode ser uma unidade de processamento central. Alternativamente, o processador 502 pode ser qualquer outro tipo do dispositivo ou dispositivos múltiplos, capazes de manipular ou processar informações agora existentes ou desenvolvidas no futuro. Embora as implementações reveladas possam ser praticadas com um único processador como mostrado, por exemplo, o processador 502, as vantagens na velocidade e eficiência podem ser obtidas usando mais do que um processador.
[0164] Uma memória 504 no aparelho 500 pode ser um dispositivo de memória somente de leitura (ROM) ou um dispositivo de memória de acesso aleatório (RAM) em uma implementação. Qualquer outro tipo adequado do dispositivo de armazenamento pode ser usado como a memória 504. A memória 504 pode incluir o código e dados 506 que são acessados pelo processador 502 usando um barramento 512. A memória 504 pode incluir adicionalmente um sistema operacional 508 e programas de aplicação 510, os programas de aplicação 510 incluindo pelo menos um programa que permite que o processador 502 para realize os métodos descritos neste relatório. Por exemplo, os programas de aplicação 510 podem incluir aplicações 1 através de N, que incluem adicionalmente uma aplicação de codificação de vídeo que realiza os métodos descritos neste relatório. O aparelho 500 também pode incluir a memória adicional na forma de um armazenamento secundário 514, que pode ser, por exemplo, um cartão de memória usado com um dispositivo de computação móvel. Pelo fato de que as sessões de comunicação de vídeo podem conter uma quantidade significante de informações, elas podem ser armazenadas no todo ou em parte no armazenamento secundário 514 e carregadas na memória 504 como necessário para o processamento.
[0165] O aparelho 500 também pode incluir um ou mais dispositivos de saída, tais como uma tela 518. A tela 518 pode ser, em um exemplo, um a tela sensível ao toque que combina uma tela com um elemento sensível ao toque que é operável para a detecção do toque de entrada. A tela 518 pode ser acoplada ao processador 502 através do barramento 512. Outros dispositivos de saída que permitem um usuário programar ou, de outro modo, usar o aparelho 500 podem ser fornecidos além de ou como uma alternativa para a tela 518. Quando o dispositivo de saída é ou inclui uma tela, a tela pode ser implementada de várias maneiras, incluindo por uma tela de cristal líquido (LCD), uma tela de tubo de raios catódicos (CRT), uma tela de plasma ou tela de diodo emissor de luz (LED), tais como uma tela orgânica LED (OLED).
[0166] O aparelho 500 também pode incluir ou estar em comunicação com um dispositivo de detecção de imagem 520, por exemplo, uma câmera, ou qualquer outro dispositivo de detecção de imagem 520 agora existente ou desenvolvido no futuro que possa detectar uma imagem, tal como a imagem de um usuário que opera o aparelho 500. O dispositivo de detecção de imagem 520 pode ser posicionado de modo que seja direcionado ao usuário que opera o aparelho 500. Em um exemplo, a posição e o eixo óptico do dispositivo de detecção de imagem 520 podem ser configurados, de modo que o campo de visão inclua uma área que é diretamente adjacente à tela 518 e de modo que a tela 518 seja visível.
[0167] O aparelho 500 também pode incluir ou estar em comunicação com um dispositivo de detecção de som 522, por exemplo, um microfone, ou qualquer outro dispositivo de detecção de som agora existente ou desenvolvido no futuro que possa detectar sons perto do aparelho 500. O dispositivo de detecção de som 522 pode ser posicionado, de modo que seja direcionado para o usuário que opera o aparelho 500 e pode ser configurado para receber sons, por exemplo, fala ou outras elocuções, feitas pelo usuário enquanto o usuário opera o aparelho 500.
[0168] Embora a FIG. 5 represente o processador 502 e a memória 504 do aparelho 500 como sendo integrados em uma única unidade, outras configurações podem ser utilizadas. As operações do processador 502 podem ser distribuídas em múltiplas máquinas (cada máquina tendo um ou mais dos processadores) que podem ser acopladas diretamente ou em uma área local ou outra rede. A memória 504 pode ser distribuída em múltiplas máquinas, tais como uma memória com base em rede ou memória em múltiplas máquinas que realiza as operações do aparelho 500. Embora o resultado neste relatório seja um único barramento, o barramento 512 do aparelho 500 pode ser composto de múltiplos barramentos. Além disso, o armazenamento secundário 514 pode ser diretamente acoplado aos outros componentes do aparelho 500 ou pode ser acessado através de uma rede e pode compreender uma única unidade integrada, tal como um cartão de memória ou múltiplas unidades, tais como múltiplos cartões de memória. O aparelho 500 pode ser, portanto, implementado em uma ampla variedade de configurações.
[0169] Em VVC, os vetores de movimento de blocos codificados inter podem ser sinalizados de duas maneiras: modo de predição de vetor de movimento avançado (AMVP) ou modo de mesclagem. Com o modo AVMP, uma diferença entre o vetor de movimento real e uma predição de vetor de movimento (MVP), um índice de referência e um índice MVP referindo-se a uma lista candidata AMVP são sinalizados, em que os pontos de índice de referência apontam para a imagem de referência em que o bloco de referência é copiado para a compensação de movimento. Para o modo de mesclagem, um índice de mesclagem referindo-se a uma lista candidata de mesclagem é sinalizado e todas as informações de movimento associadas ao candidato de mesclagem são herdadas.
[0170] Tanto para a lista de candidata AMVP quanto para a lista candidata de mesclagem, eles são derivados de blocos codificados vizinhos temporária ou espacialmente. Mais especificamente, a lista candidata de mesclagem é construída pela verificação dos seguintes quatro tipos de candidatos de mesclagem MVP na ordem:
1. Candidatos de mesclagem espaciais, que podem ser determinados de cinco blocos vizinhos espaciais como representado na FIG. 6, isto é, blocos A0 e A1 que estão localizados no canto inferior esquerdo, Blocos B0 e B1 localizados no canto superior direito e Bloco B2 localizado no canto superior esquerdo.
2. Candidato de mesclagem temporal MVP (TMVP).
3. Candidatos de mesclagem bi-preditivos combinados.
4. Candidatos de mesclagem de vetor de movimento zero.
[0171] Uma vez que o número de candidatos de mesclagem disponíveis atinge os candidatos de mesclagem maximamente permitidos sinalizados (por exemplo, 5 em condições de teste comuns), o processo de construção da lista candidata de mesclagem é encerrado. Deve ser observado que, os candidatos de mesclagem maximamente permitidos podem ser diferentes em diferentes condições.
[0172] Similarmente, para a lista de candidatos AMVP, três tipos de candidatos MVP são verificados na ordem:
1. Até dois candidatos espaciais MVP, em que um dos dois é determinado de blocos B0, B1 e B2, como representado na FIG. 6, e o outro dos dois é determinado de blocos A0 e A1, como representado na FIG. 6.
2. Candidatos temporais MVP (TMVP).
3. Candidatos zero MVP.
[0173] Um método de predição de com base em histórico (HMVP) é introduzido por JVET-K0104, que é um documento de entrada para a Equipe de Especialistas de Vídeo Conjunta (JVET) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11 (Acessível em http://phenix.it-sudparis.eu/jvet/), em que um candidato HMVP é definido como as informações de movimento de um bloco previamente codificado. Uma tabela com múltiplos candidatos HMVP é mantida durante o processo de codificação/decodificação. A tabela é esvaziada quando uma nova fatia é encontrada. Sempre que houver um bloco codificado inter, as informações de movimento associadas são adicionadas a última entrada da tabela como um novo candidato HMVP. O fluxo de codificação geral é representado na FIG. 7, que inclui:
[0174] Etapa 701. Carregar uma tabela com candidatos HMVP;
[0175] Etapa 702. Decodificar um bloco com os candidatos HMVP na tabela carregada;
[0176] Etapa 703. Atualizar a tabela com as informações de movimento decodificadas ao decodificar o bloco.
[0177] As etapas 701 a 703 podem ser realizadas circularmente.
[0178] Os candidatos HMVP podem ser usados no processo de construção da lista candidata de mesclagem. Todos os candidatos HMVP da última entrada à primeira entrada na tabela, são inseridos depois do candidato TMVP. A poda pode ser aplicada nos candidatos HMVP. Uma vez que o número total de candidatos de mesclagem disponíveis atinge os candidatos de mesclagem maximamente permitidos, o processo de construção da lista candidata de mesclagem é encerrado.
[0179] A operação de poda significa identificar os candidatos preditores do movimento idênticos em uma lista e remover um dos candidatos idênticas da lista.
[0180] Similarmente, os candidatos HMVP também podem ser usados no processo de construção de lista de candidatos AMVP. Os vetores de movimento dos últimos K candidatos HMVP na tabela são inseridos depois do candidato TMVP. Em alguma maneira de implementação, apenas os candidatos HMVP com a mesma imagem de referência que a imagem de referência de destino AMVP são usados para construir a lista de candidatos AMVP. A poda pode ser aplicada nos candidatos HMVP.
[0181] De modo a melhorar a eficiência do processo, um processamento chamado processamento paralelo de frente de onda (WPP) é introduzido, em que o modo WPP permite que linhas de CTUs sejam processadas em paralelo. No modo WPP, cada linha de CTU é processada em relação à precedente (imediatamente adjacente) linha de CTU por meio do uso de um atraso de duas CTUs consecutivas. Por exemplo, ver a figura 8, um quadro de imagem ou área de imagem consiste em uma pluralidade linhas de CTU, cada thread (linha) inclui 11 CTUs, isto é, thread 1 inclui CTU0 a CTU10, thread 2 inclui CTU11 a CTU 21, thread 3 inclui CTU22 a CTU32, thread 4 inclui CTU33 a 43… Portanto, no modo WPP, quando o processo de codificação/decodificação de CTU1 no thread 1 é encerrado, o processo de codificação/decodificação de CTU11 no thread 2 pode começar, similarmente, quando o processo de codificação/decodificação de CTU12 no thread 2 é encerrado, o processo de codificação/decodificação de CTU22 no thread 3 pode começar, quando o processo de codificação/decodificação de CTU23 no thread 3 é encerrado, o processo de codificação/decodificação de CTU33 no thread 4 pode começar, quando o processo de codificação/decodificação de CTU34 no thread 4 é encerrado, o processo de codificação/decodificação de CTU44 no thread 5 pode começar.
[0182] Entretanto, ao combinar WPP com HMVP, como estabelecido acima, uma lista HMVP é mantida e atualizada depois do processamento de cada bloco de codificação, assim, uma lista HMVP é mantida que mantém a atualização até a última CTU de uma linha de CTU, portanto, o processamento paralelo de frente de onda não pode ser realizado, visto que os N threads precisam aguardar o processamento da última CTU na linha de CTU acima encerrar.
[0183] A FIG. 9 é um fluxograma que ilustra uma operação de exemplo de um decodificador de vídeo, tal como o decodificador de vídeo 30 da FIG. 3, conforme definido em uma modalidade do presente pedido. Um ou mais elementos estruturais do decodificador de vídeo 30, incluindo a unidade de predição inter 344, podem ser configurados para realizar as técnicas da FIG.
9. No exemplo da FIG. 9, o decodificador de vídeo 30 pode realizar as seguintes etapas:
[0184] 901. No começo do processamento de uma linha de CTU, é realizado a construção/inicialização de uma lista HMVP para a linha de CTU.
[0185] Quando uma CTU a ser processada é a primeira CTU (CTU inicial) de uma linha de CTU, a lista HMVP para a linha de CTU é construída ou inicializada, assim, a primeira CTU da linha de CTU pode ser processada com base na lista HMVP para a linha de CTU.
[0186] A lista HMVP para a linha de CTU pode ser construída ou inicializada pela unidade de predição inter 344 da FIG. 3 quando o método é um método de codificação. Alternativamente, a lista HMVP para a linha de CTU pode ser construída ou inicializada pela unidade de predição inter 244 da FIG. 2 quando o método é um método de decodificação.
[0187] Em uma maneira de implementação, para um quadro de imagem, a cada linha de CTU pode ser mantida com uma lista HMVP diferente. Em outra maneira de implementação, para uma área de imagem, a cada linha de CTU pode ser mantida com uma lista HMVP diferente, em que a área de imagem é composta por uma pluralidade de linhas de CTU, em que a imagem pode ser uma fatia, uma peça ou um ladrilho de VVC.
[0188] Em que o ladrilho é uma região retangular de linhas de CTU dentro de uma peça particular em uma imagem, uma peça pode ser particionada em múltiplos ladrilhos, cada um composto de uma ou mais linhas de CTU dentro da peça. Uma peça que não é particionada em múltiplos ladrilhos também é referida como um ladrilho. Entretanto, um ladrilho que é um verdadeiro subconjunto de uma peça não é referido como uma peça.
[0189] Deve ser observado que, mantendo uma lista HMVP diferente para cada linha de CTU significa apenas que uma lista HMVP específica pode ser mantida para uma linha de CTU, mas os candidatos em diferentes listas HMVP podem ser os mesmos, por exemplo, todos os candidatos em uma lista HMVP são os mesmos que os candidatos em outra lista HMVP, deve ser observado que, os candidatos em uma lista HMVP pode não ter redundância;
ou os candidatos em diferentes listas HMVP podem ter sobreposição, por exemplo, alguns dos candidatos em uma lista HMVP são os mesmos que alguns dos candidatos em outra lista HMVP, e alguns dos candidatos em uma lista HMVP não são idênticos àqueles em outra lista HMVP; ou os candidatos em diferentes listas HMVP podem ser totalmente diferentes, por exemplo, nenhum dos candidatos em uma lista HMVP têm um idêntico em outra lista HMVP. Deve ser observado que, quando todas as CTUs em uma linha de CTU forem processadas, a lista HMVP mantida para a linha de CTU pode ser liberada, portanto, pode reduzir a necessidade de armazenamento.
[0190] A presente revelação fornece as seguintes maneiras para construir/inicializar a lista HMVP:
[0191] Maneira 1: No começo do processamento de uma linha de CTU, a lista HMVP correspondente é esvaziada ou definida para valores padrão. Os valores padrão são candidatos predeterminados que são conhecidos tanto como o codificador quanto o decodificador.
[0192] Por exemplo, a lista HMVP correspondente é preenchida com MVs padrão, tais como: a) Os MVs da maneira de uni-predição, em que um MV pode ser um vetor de movimento zero e as imagens de referência podem incluir a primeira imagem de referência na lista L0; e/ou b) Os MVs da maneira de bi-predição, em que um MV pode ser um vetor de movimento zero e as imagens de referência podem incluir a primeira imagem de referência na lista L0 e a primeira imagem de referência na lista L1; e/ou c) Os MVs de uma imagem previamente processada, conforme definido na ordem de processamento de imagem. Mais especificamente, os MVs que pertencem a uma imagem previamente processada e que estão na vizinhança espacial do bloco atual, quando a posição do bloco atual é sobreposta na imagem anterior; e/ou d) Os MVs de uma lista temporal HMVP, em que cada imagem colocalizada pode armazenar uma lista temporal HMVP para cada linha de CTU ou para a imagem inteira, portanto, a lista temporal HMVP pode ser usada para construir/inicializar a lista HMVP para a linha de CTU atual.
[0193] Maneira 2: No começo do processamento de uma linha de
CTU atual, a lista HMVP correspondente é construída/inicializada com base na lista HMVP da segunda CTU da linha de CTU anterior, em que a linha de CTU anterior é a linha de CTU imediatamente adjacente à linha de CTU atual e está na parte superior da linha de CTU atual.
[0194] Ver a FIG. 8 como um exemplo, em que quando a linha de CTU atual é a linha de CTU do thread 2, a linha de CTU anterior é a linha de CTU do thread 1 e a segunda CTU da linha anterior é CTU1; quando a linha de CTU atual é a linha de CTU do thread 3, a linha de CTU anterior é a linha de CTU do thread 2 e a segunda CTU da linha anterior é CTU12; quando a linha de CTU atual é a linha de CTU do thread 4, a linha de CTU anterior é a linha de CTU do thread 3 e a segunda CTU da linha anterior é CTU23; quando a linha de CTU atual é a linha de CTU do thread 5, a linha de CTU anterior é a linha de CTU do thread 4 e a segunda CTU da linha anterior é CTU34; quando a linha de CTU atual é a linha de CTU do thread 6, a linha de CTU anterior é a linha de CTU do thread 5 e a segunda CTU da linha anterior é CTU45.
[0195] Maneira 3: No início do processamento de uma linha de CTU atual, a lista HMVP correspondente é construída/inicializada com base na lista HMVP da primeira CTU da linha de CTU anterior, em que a linha de CTU anterior é a linha de CTU imediatamente adjacente à linha de CTU atual e está na parte superior da linha de CTU atual.
[0196] Ver a FIG. 8 como um exemplo, em que quando a linha de CTU atual é a linha de CTU do thread 2, a linha de CTU anterior é a linha de CTU do thread 1 e a primeira CTU da linha anterior é CTU0; quando a linha de CTU atual é a linha de CTU do thread 3, a linha de CTU anterior é a linha de CTU do thread 2 e a primeira CTU da linha anterior é CTU11; quando a linha de CTU atual é a linha de CTU do thread 4, a linha de CTU anterior é a linha de CTU do thread 3 e a primeira CTU da linha anterior é CTU22; quando a linha de CTU atual é a linha de CTU do thread 5, a linha de CTU anterior é a linha de CTU do thread 4 e a primeira CTU da linha anterior é CTU33; quando a linha de CTU atual é a linha de CTU do thread 6, a linha de CTU anterior é a linha de CTU do thread 5 e a primeira CTU da linha anterior é CTU44.
[0197] De acordo com as maneiras 1 a 3, o processamento da linha de CTU atual não precisa aguardar o processamento de uma linha de CTU anterior da linha de CTU atual ser encerrado, portanto, pode melhorar a eficiência de processamento do quadro de imagem atual.
[0198] 902. Processar uma CTU na linha de CTU com base na lista HMVP construída/inicializada.
[0199] O processamento da CTU pode ser um processamento de predição inter que é realizado durante o processo de decodificação, isto é, o processamento da CTU pode ser implementado pela unidade de predição inter 344 da FIG. 3. Alternativamente, o processamento da CTU pode ser um processamento de predição inter que é realizado durante o processo de codificação, isto é, o processamento da CTU pode ser implementado pela unidade de predição inter 244 da FIG. 2.
[0200] Deve ser observado que, as maneiras acima para construir/inicializar a lista HMVP também podem ser usadas para o processamento normal HMVP sem frentes de onda, por exemplo, processamento HMVP sem WPP. Como um resultado, o processamento HMVP é idêntico, independentemente da aplicação de WPP, o que reduz a necessidade da implementação lógica adicional.
[0201] Deve ser observado que, o processamento da figura 9 também pode ser um processo de codificação implementado por um codificador, tal como o codificador de vídeo 20 da FIG. 2, conforme definido em uma modalidade do presente pedido.
[0202] Além disso, é deve ser observado que, os métodos mencionados acima relativos à combinação de frentes de onda e HMVP com base na predição, também podem ser usados para predição intra. Isto é, os modos intra históricos podem ser usados e a tabela histórica para cada linha de CTU é inicializada para valores padrão.
[0203] Por exemplo, a inicialização da lista HMVP para cada linha de CTU em predição intra pode ser feita com modos intra padrão como modos Planar, DC, Vertical, Horizontal, Modo 2, VDIA e DIA.
[0204] A FIG. 10 é um fluxograma que ilustra uma operação de exemplo de um decodificador de vídeo ou um codificador de vídeo, tal como o decodificador de vídeo 30 da FIG. 3, conforme definido em uma modalidade do presente pedido e o codificador de vídeo 20 da FIG. 2, conforme definido em uma modalidade do presente pedido. Um ou mais elementos estruturais do decodificador de vídeo 30/codificador de vídeo 20, incluindo a unidade de predição inter 344/unidade de predição inter 244, podem ser configurados para realizar as técnicas da FIG. 10. No exemplo da FIG. 10, o decodificador de vídeo 30/codificador de vídeo 20 pode realizar as seguintes etapas:
[0205] Etapa 1010, inicializar uma lista HMVP para uma linha de CTU atual quando a CTU atual for a CTU inicial de uma linha de CTU atual.
[0206] Deve ser observado que, a linha de CTU atual pode ser qualquer linha de CTU de um quadro de imagem que consiste em uma pluralidade de linhas de CTU ou uma área de imagem (pode ser uma parte de um quadro de imagem) que consiste em uma pluralidade de linhas de CTU. E a linha de CTU atual pode ser qualquer uma dentre a pluralidade de linhas de CTU.
[0207] Se a CTU atual for a CTU inicial (ou a primeira CTU) da linha de CTU atual pode ser determinada com base no índice da CTU atual. Por exemplo, como revelado na FIG. 8, cada CTU tem um único índice, portanto, pode determinar se a CTU atual é a primeira CTU da linha de CTU atual com base no índice da CTU atual. Por exemplo, as CTUs com o índice de 0, 11, 22, 33, 44 ou 55… são a primeira CTU de linhas de CTU, respectivamente. Alternativamente, ver a FIG. 8 como um exemplo, cada linha de CTU inclui 11 CTUs, isto é, a largura de cada linha de CTU é 11, portanto, pode utilizar a largura da linha de CTU para dividir o índice de uma CTU para determinar se o remanescente é 0 ou não, se o remanescente for 0, a CTU correspondente é a primeira CTU de uma linha de CTU; de outro modo, se o remanescente não for 0, a CTU correspondente não é a primeira CTU de uma linha de CTU. Isto é, se o índice de uma % de CTU for a largura de uma linha de CTU = 0, a CTU é a primeira CTU da linha de CTU; de outro modo, se o índice de uma % de CTU for a largura de uma linha de CTU ≠ 0, a CTU não é a primeira CTU da linha de CTU. Deve ser observado que, quando o processo de uma linha de CTU é da direita para a esquerda, se uma CTU for a CTU inicial de uma linha de CTU pode ser determinado de maneira similar.
[0208] Depois da inicialização da lista HMVP, a quantidade dos vetores de movimento candidatos na lista HMVP inicializada é zero.
[0209] A inicialização pode ser realizada como esvaziar a lista HMVP para a linha de CTU atual, isto é, fazer a lista HMVP para a linha de CTU atual esvaziar, em outras palavras, o número de candidatos na lista HMVP para a linha de CTU atual é zero.
[0210] Em outra maneira de implementação, o método pode incluir adicionalmente a seguinte etapa: inicializar uma lista HMVP para cada uma dentre a pluralidade de linhas de CTU, exceto a linha de CTU atual, em que listas HMVP para a pluralidade de linhas de CTU são idênticas ou diferentes.
[0211] A inicialização pode ser realizada como configurações de valores padrão para a lista HMVP para a linha de CTU atual ou inicializar a lista HMVP para a linha de CTU atual com base em uma lista HMVP de uma CTU de uma linha de CTU anterior como descrito acima.
[0212] Etapa 1020. Processar a linha de CTU atual com base na lista HMVP.
[0213] O processamento pode ser um processo de predição inter, portanto, um bloco de predição pode ser obtido. Uma reconstrução pode ser realizada com base no bloco de predição para obter um bloco reconstruído, finalmente uma imagem decodificada pode ser obtida com base no bloco reconstruído. Os detalhes destes processos são descritos acima.
[0214] Como mostrado na FIG. 8, o quadro de imagem atual compreende uma pluralidade de linhas de CTU, de modo a melhorar a eficiência da codificação/decodificação, a pluralidade de linhas de CTU pode ser processada no modo de processamento paralelo de frente de onda (WPP). Isto é, a linha de CTU atual começa a ser processada (ou o processamento da linha de CTU atual começa) quando uma CTU particular de uma linha de CTU anterior for processada, em que a linha de CTU anterior é a linha de CTU imediatamente adjacente à linha de CTU atual e está na parte superior da linha de CTU atual, em que a CTU particular da linha de CTU anterior é a segunda CTU da linha de CTU anterior; ou a CTU particular da linha de CTU anterior é a primeira CTU da linha de CTU anterior. Ver a FIG. 8 para um exemplo, quando a linha de CTU atual é o thread 3, a linha de CTU anterior é thread 2, a CTU particular da linha de CTU anterior pode ser CTU 12, isto é, quando a CTU 12 é processada, o decodificador/codificador começa a processar a linha de CTU do thread 3, isto é, o decodificador/codificador começa a processar CTU 22. Ver a FIG. 8 para outro exemplo, quando a linha de CTU atual é o thread 4, a linha de CTU anterior é o thread 3, a CTU particular da linha de CTU anterior pode ser CTU 23, isto é, quando a CTU 23 é processada, o decodificador/codificador começa a processar a linha de CTU do thread 4, isto é, o decodificador/codificador começa a processar CTU 33.
[0215] Em uma maneira de implementação, processar a linha de CTU atual com base na lista HMVP pode incluir: processar a CTU atual da linha de CTU atual; atualizar a lista HMVP inicializada com base na CTU atual processada; e processar a segunda CTU da linha de CTU atual com base na lista HMVP atualizada.
[0216] A FIG. 11 é um diagrama de bloco que mostra um exemplo de um aparelho de processamento de vídeo 1100 configurado para implementar as modalidades da invenção, o aparelho de processamento de vídeo 1100 pode ser o codificador 20 ou o decodificador 30, como mostrado na FIG. 11, o aparelho inclui:
[0217] Uma unidade de inicialização 1110, configurada para inicializar uma lista HMVP para uma linha de CTU atual quando a CTU atual for a CTU inicial (a primeira CTU) de uma linha de CTU atual.
[0218] Os detalhes da inicialização realizada pela unidade de inicialização 1110 podem fazer referência à etapa 1010.
[0219] Uma unidade de processamento 1120, configurada para processar a linha de CTU atual com base na lista HMVP.
[0220] Os detalhes do processamento realizado pela unidade de processamento 1120 pode fazer referência à etapa 1020.
[0221] O processamento pode ser um processo de predição inter, portanto, um bloco de predição pode ser obtido. Uma reconstrução pode ser realizada com base no bloco de predição para obter um bloco reconstruído, finalmente, uma imagem decodificada pode ser obtida com base no bloco reconstruído. Os detalhes destes processos são descritos acima.
[0222] Como mostrado na FIG. 8, o quadro de imagem atual compreende uma pluralidade de linhas de CTU, de modo a melhorar a eficiência de codificação/decodificação, a pluralidade de linhas de CTU pode ser processada no modo WPP. Isto é, a linha de CTU atual começa a ser processada quando uma CTU particular de uma linha de CTU anterior for processada, em que a linha de CTU anterior é a linha de CTU imediatamente adjacente à linha de CTU atual e está na parte superior da linha de CTU atual, em que a CTU particular da linha de CTU anterior é a segunda CTU da linha de
CTU anterior; ou a CTU particular da linha de CTU anterior é a primeira CTU da linha de CTU anterior. Ver a FIG. 8 para um exemplo, quando a linha de CTU atual é o thread 3, a linha de CTU anterior é o thread 2, a CTU particular da linha de CTU anterior pode ser CTU 12, isto é, quando a CTU 12 é processada, o decodificador/codificador começa a processar a linha de CTU do thread 3, isto é, o decodificador/codificador começa a processar CTU 22. Ver a FIG. 8 para outro exemplo, quando a linha de CTU atual é o thread 4, a linha de CTU anterior é o thread 3, a CTU particular da linha de CTU anterior pode ser CTU 23, isto é, quando a CTU 23 é processada, o decodificador/codificador começa a processar a linha de CTU do thread 4, isto é, o decodificador/codificador começa a processar CTU 33.
[0223] A presente revelação revela adicionalmente um codificador, que inclui circuitos de processamento para realizar o método de processamento de vídeo ou o método de codificação da presente revelação.
[0224] A presente revelação revela adicionalmente um decodificador, que inclui circuitos de processamento para realizar o método de processamento de vídeo ou o método de codificação da presente revelação.
[0225] A presente revelação revela adicionalmente o produto de programa de computador que compreende um código de programa para realizar o método de processamento de vídeo ou o método de codificação da presente revelação.
[0226] A presente revelação revela adicionalmente uma mídia de armazenamento legível por computador que armazena instruções de computador que, quando executadas por um ou mais processadores, fazem com que um ou mais processadores realizem o método de processamento de vídeo ou o método de codificação da presente revelação. A mídia de armazenamento legível por computador é não transitória ou transitória.
[0227] A presente revelação revela adicionalmente um decodificador, compreendendo um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para a execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar o método de processamento de vídeo ou o método de codificação da presente revelação.
[0228] A presente revelação revela adicionalmente um codificador, compreendendo um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para a execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador para realizar o método de processamento de vídeo ou o método de codificação da presente revelação.
[0229] O processo de inicialização para a lista HMVP é descrito na sintaxe de dados de fatia geral de VVC (Equipe de Especialistas de Vídeo Conjunta (JVET) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, Codificação de Vídeo Versátil (Projeto 6)), seção 7.3.8.1 de VVC cita: slice_data( ) { Descritor for( i = 0; i < NumBricksInCurrSlice; i++ ) { CtbAddrInBs = FirstCtbAddrBs[ SliceBrickIdx[ i ] ] for( j = 0; j < NumCtusInBrick[ SliceBrickIdx[ i ] ]; j++, CtbAddrInBs++ ) { if( ( j % BrickWidth[ SliceBrickIdx[ i ] ] ) = = 0 ) { NumHmvpCand = 0 NumHmvpIbcCand = 0 ResetIbcBuf = 1 } CtbAddrInRs = CtbAddrBsToRs[ CtbAddrInBs ] coding_tree_unit( ) if( entropy_coding_sync_enabled_flag && ( j < NumCtusInBrick[ SliceBrickIdx[ i ] ] – 1 ) && ( ( j + 1 ) % BrickWidth[ SliceBrickIdx[ i ] ] = = 0 ) ) { end_of_subset_one_bit /* igual a 1 */ ae(v) byte_alignment( ) } } end_of_brick_one_bit /* igual a 1 */ ae(v) if( i < NumBricksInCurrSlice − 1 ) byte_alignment( )
} }
[0230] Em que j%BrickWidth[SliceBrickIdx[i]]) = = 0 significa que a CTU com o índice j é a CTU inicial de uma linha de CTU, e NumHmvpCand = 0 significa que a quantidade de candidatos na lista HMVP é definida como 0, em outras palavras, a lista HMVP é esvaziada.
[0231] O processo de atualização para a lista HMVP é descrito na seção 8.5.2.16 de VVC (Equipe de Especialistas de Vídeo Conjunta (JVET) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, Codificação de Vídeo Versátil (Projeto 6)), que cita: As entradas para este processo são: vetores de movimento luma em 1/16 da precisão de amostra parcial mvL0 e mvL1, índices de referência refIdxL0 e refIdxL1, sinalizadores de utilização de listas de predição predFlagL0 e predFlagL1, índice de peso de bi-predição bcwIdx. O candidato MVP hMvpCand consiste nos vetores de movimento luma mvL0 e mvL1, os índices de referência refIdxL0 e refIdxL1, os sinalizadores de utilização de listas de predição predFlagL0 e predFlagL1, e o índice de peso de bi-predição bcwIdx. A lista candidata HmvpCandList é modificada usando o candidato hMvpCand pelas seguintes etapas ordenadas: A variável identicalCandExist é definida como igual a FALSE e a variável removeIdx é definida igual a 0. Quando NumHmvpCand é maior do que 0, para cada índice hMvpIdx com hMvpIdx = 0..NumHmvpCand − 1, as seguintes etapas aplicam- se até identicalCandExist ser igual a TRUE: Quando hMvpCand é igual a HmvpCandList[hMvpIdx], identicalCandExist é definido como igual a TRUE e removeIdx é definido como igual a hMvpIdx. A lista candidata HmvpCandList é atualizada, como segue: Se identicalCandExist for igual a TRUE ou NumHmvpCand for igual a 5, o seguinte se aplica:
Para cada índice i com i = (removeIdx + 1)..(NumHmvpCand − 1), HmvpCandList[i − 1] é definido como igual a HmvpCandList[i]. HmvpCandList[NumHmvpCand − 1] é definido como igual a mvCand. De outro modo (identicalCandExist é igual a FALSE e NumHmvpCand é menor do que 5), o seguinte se aplica: HmvpCandList[NumHmvpCand++] é definido como igual a mvCand.
[0232] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas ou transmitidas como uma ou mais instruções ou codificadas em uma mídia legível por computador e executadas por uma unidade de processamento com base em hardware. A mídia legível por computador pode incluir a mídia de armazenamento legível por computador, que corresponde a uma mídia tangível, tal como mídia de armazenamento de dados, ou mídia de comunicação incluindo qualquer mídia que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, conforme definido em um protocolo de comunicação. Desta maneira, a mídia de armazenamento de computador geralmente pode corresponder à (1) mídia de armazenamento legível por computador tangível que é não transitória ou (2) uma mídia de comunicação, tal como um sinal ou onda portadora. A mídia de armazenamento de dados pode ser qualquer mídia disponível que possa ser acessada por um ou mais computadores ou um ou mais processadores para recuperar instruções, códigos e/ou estruturas de dados para implementação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir uma mídia legível por computador.
[0233] A título do exemplo, e não como limitação, tal mídia de armazenamento legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outra mídia que possa ser usada para armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que possa ser acessada por um computador. Além disso, qualquer conexão é apropriadamente denominada como uma mídia legível por computador. Por exemplo, se as instruções forem transmitidas de um website, servidor ou outra fonte remota usando um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL), ou tecnologias sem fio, tais como infravermelho, rádio e micro-ondas, em seguida, o cabo coaxial, cabo de fibra óptica, par trançado, DSL ou tecnologias sem fio, tais como infravermelho, rádio e micro- ondas, são incluídas na definição de mídia. Deve ser entendido, entretanto, que a mídia de armazenamento legível por computador e a mídia de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outra mídia transitória, mas são direcionadas para a mídia de armazenamento tangível não transitória. Disquete e disco, como usados neste relatório, incluem disco compacto (CD), disco a laser, disco óptico, disco versátil digital (DVD), disquetes e disco Blu-ray, em que os disquetes usualmente reproduzem dados magneticamente, enquanto os discos reproduzem os dados opticamente com lasers. As combinações dos itens acima também devem ser incluídas no escopo da mídia de armazenamento de computador.
[0234] As instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinal digital (DSPs), microprocessadores de uso geral, circuitos integrados específicos da aplicação (ASICs), arranjos lógicos programáveis em campo (FPGAs) ou outros circuitos lógicos equivalentes integrados ou discretos. Consequentemente, o termo “processador”, como usado neste relatório, pode se referir a qualquer uma dentre a estrutura anterior ou qualquer outra estrutura adequada para a implementação das técnicas descritas neste relatório. Além disso, em alguns aspectos, a funcionalidade descrita neste relatório pode ser fornecida dentro dos módulos de hardware e/ou software dedicados configurados para codificação e decodificação ou incorporados em um codec combinado. Além disso, as técnicas podem ser completamente implementadas em um ou mais circuitos ou elementos lógicos.
[0235] As técnicas desta revelação podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho portátil sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta revelação para enfatizar os aspectos funcionais dos dispositivos configurados para realizar as técnicas reveladas, mas não necessariamente exigem a realização por diferentes unidades de hardware.
Em vez disso, como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por uma coleção de unidades de hardware interoperativas, incluindo um ou mais processadores, como descrito acima, em conjunto com o software e/ou firmware adequado.

Claims (29)

REIVINDICAÇÕES
1. Método de processamento de vídeo, CARACTERIZADO pelo fato de que compreende: inicializar (1010) uma lista de predição de vetores de movimento com base em histórico (HMVP) para uma linha de unidade de árvore de codificação (CTU) atual quando a CTU atual for a CTU inicial de uma linha de CTU atual; e processar (1020) a linha de CTU atual com base na lista HMVP.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a quantidade dos vetores de movimento candidatos na lista HMVP inicializada é zero.
3. Método, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo fato de que a linha de CTU atual pertence a uma área de imagem que consiste em uma pluralidade de linhas de CTU, e a linha de CTU atual é qualquer uma dentre a pluralidade de linhas de CTU.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, CARACTERIZADO pelo fato de que compreende adicionalmente: inicializar uma lista HMVP para cada uma dentre a pluralidade de linhas de CTU exceto a linha de CTU atual, em que uma dentre as seguintes é atendida: listas HMVP para a pluralidade de linhas de CTU são idênticas; e listas HMVP para a pluralidade de linhas de CTU são diferentes.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, CARACTERIZADO pelo fato de que o processamento da linha de CTU atual com base na lista HMVP compreende: processar a CTU atual da linha de CTU atual; atualizar a lista HMVP inicializada com base na CTU atual processada; e processar a segunda CTU da linha de CTU atual com base na lista HMVP atualizada.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, CARACTERIZADO pelo fato de que a lista HMVP é atualizada de acordo com uma CTU processada da linha de CTU atual.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, CARACTERIZADO pelo fato de que a lista HMVP para a linha de CTU atual é inicializada como segue:
esvaziar a lista HMVP para a linha de CTU atual.
8. Método, de acordo com qualquer uma das reivindicações 1 a 7, CARACTERIZADO pelo fato de que o processamento da linha de CTU atual com base na lista HMVP compreende: processar a linha de CTU atual com base na lista HMVP a partir da segunda CTU da linha de CTU atual, em que a segunda CTU é adjacente à CTU inicial.
9. Método, de acordo com qualquer uma das reivindicações 3 a 8, CARACTERIZADO pelo fato de que a pluralidade de linhas de CTU é processada no modo de processamento paralelo de frente de onda (WPP).
10. Método, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que a linha de CTU atual começa a ser processada quando uma CTU particular de uma linha de CTU anterior for processada.
11. Método, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que a linha de CTU anterior é a linha de CTU imediatamente adjacente à linha de CTU atual e está na parte superior da linha de CTU atual.
12. Método, de acordo com a reivindicação 10 ou 11, CARACTERIZADO pelo fato de que uma dentre as seguintes é atendida: a CTU particular da linha de CTU anterior é a segunda CTU da linha de CTU anterior; e a CTU particular da linha de CTU anterior é a primeira CTU da linha de CTU anterior.
13. Aparelho de processamento de vídeo (1100), CARACTERIZADO pelo fato de que compreende: uma unidade de inicialização (1110), configurada para inicializar uma lista de predição de vetores de movimento com base em histórico (HMVP) para uma linha de unidade de árvore de codificação (CTU) atual quando a CTU atual for a CTU inicial de uma linha de CTU atual; e uma unidade de processamento (1120), configurada para processar a linha de CTU atual com base na lista HMVP.
14. Aparelho (1100), de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que a quantidade dos vetores de movimento candidatos na lista HMVP inicializada é zero.
15. Aparelho (1100), de acordo com a reivindicação 13 ou 14,
CARACTERIZADO pelo fato de que a linha de CTU atual pertence a uma área de imagem que consiste em uma pluralidade de linhas de CTU, e a linha de CTU atual é qualquer uma dentre a pluralidade de linhas de CTU.
16. Aparelho (1100), de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que a unidade de inicialização é adicionalmente configurada para: inicializar uma lista HMVP para cada uma dentre a pluralidade de linhas de CTU exceto a linha de CTU atual, em que uma dentre as seguintes é atendida: listas HMVP para a pluralidade de linhas de CTU são idênticas; e listas HMVP para a pluralidade de linhas de CTU são diferentes.
17. Aparelho (1100), de acordo com qualquer uma das reivindicações 13 a 16, CARACTERIZADO pelo fato de que a unidade de processamento é configurada para processar a linha de CTU atual com base na lista HMVP como segue: processar a CTU atual da linha de CTU atual; atualizar a lista HMVP inicializada com base na CTU atual processada; e processar a segunda CTU da linha de CTU atual com base na lista HMVP atualizada.
18. Aparelho (1100), de acordo com qualquer uma das reivindicações 13 a 17, CARACTERIZADO pelo fato de que a lista HMVP é atualizada de acordo com uma CTU processada da linha de CTU atual.
19. Aparelho (1100), de acordo com qualquer uma das reivindicações 13 a 18, CARACTERIZADO pelo fato de que a unidade de inicialização é adicionalmente configurada para inicializar a lista HMVP para a linha de CTU atual como segue: esvaziar a lista HMVP para a linha de CTU atual.
20. Aparelho (1100), de acordo com qualquer uma das reivindicações 13 a 19, CARACTERIZADO pelo fato de que a unidade de processamento é adicionalmente configurada para processar a linha de CTU atual com base na lista HMVP como segue: processar a linha de CTU atual com base na lista HMVP a partir da segunda CTU da linha de CTU atual, em que a segunda CTU é adjacente à CTU inicial.
21. Aparelho (1100), de acordo com qualquer uma das reivindicações 15 a 20, CARACTERIZADO pelo fato de que a pluralidade de linhas de CTU é processada no modo de processamento paralelo de frente de onda (WPP).
22. Aparelho (1100), de acordo com a reivindicação 21, CARACTERIZADO pelo fato de que a linha de CTU atual começa a ser processada quando uma CTU particular de uma linha de CTU anterior for processada.
23. Aparelho (1100), de acordo com a reivindicação 22, CARACTERIZADO pelo fato de que a linha de CTU anterior é a linha de CTU imediatamente adjacente à linha de CTU atual e está na parte superior da linha de CTU atual.
24. Aparelho (1100), de acordo com a reivindicação 22 ou 23, CARACTERIZADO pelo fato de que uma dentre as seguintes é atendida: a CTU particular da linha de CTU anterior é a segunda CTU da linha de CTU anterior; e a CTU particular da linha de CTU anterior é a primeira CTU da linha de CTU anterior.
25. Codificador, CARACTERIZADO pelo fato de que compreende circuitos de processamento para realizar o método conforme definido em qualquer uma das reivindicações 1 a 12.
26. Decodificador, CARACTERIZADO pelo fato de que compreende circuitos de processamento para realizar o método conforme definido em qualquer uma das reivindicações 1 a 12.
27. Mídia de armazenamento legível por computador, CARACTERIZADA pelo fato de que armazena instruções de computador, que quando executadas por um ou mais processadores, faz com que o um ou mais processadores realizem o método conforme definido em qualquer uma das reivindicações 1 a 12.
28. Decodificador, CARACTERIZADO pelo fato de que compreende: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 12.
29. Codificador, CARACTERIZADO pelo fato de que compreende: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 12.
BR112021001813-1A 2018-08-10 2019-08-12 método de processamento de vídeo, aparelho de processamento de vídeo, codificador, decodificador, mídia e programa de computador BR112021001813A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862717004P 2018-08-10 2018-08-10
US62/717,004 2018-08-10
PCT/CN2019/100226 WO2020030187A1 (en) 2018-08-10 2019-08-12 Video processing method, video processing apparatus, encoder, decoder, medium and computer program

Publications (1)

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

Family

ID=69415390

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021001813-1A BR112021001813A2 (pt) 2018-08-10 2019-08-12 método de processamento de vídeo, aparelho de processamento de vídeo, codificador, decodificador, mídia e programa de computador

Country Status (10)

Country Link
US (2) US11653032B2 (pt)
EP (1) EP3815358A1 (pt)
JP (2) JP7237144B2 (pt)
KR (2) KR102542433B1 (pt)
CN (1) CN112534808A (pt)
AU (2) AU2019316899A1 (pt)
BR (1) BR112021001813A2 (pt)
CA (1) CA3106486A1 (pt)
IL (1) IL280708A (pt)
WO (1) WO2020030187A1 (pt)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112021000004A8 (pt) * 2018-07-06 2023-02-07 Mediatek Inc Informações de movimento herdadas para decodificar uma unidade de codificação atual em um sistema de codificação de vídeo
US11089297B2 (en) * 2018-08-31 2021-08-10 Hulu, LLC Historical motion vector prediction with reset list
JP7395580B2 (ja) 2018-10-24 2023-12-11 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ビデオデコーダおよび方法
EP3868102A4 (en) * 2018-12-21 2021-12-15 Huawei Technologies Co., Ltd. CODERS, DECODERS AND RELATED METHODS USING HISTORY-BASED MOTION VECTOR PREDICTION
SG11202110650WA (en) 2019-04-01 2021-10-28 Beijing Bytedance Network Technology Co Ltd Using interpolation filters for history based motion vector prediction
US11936916B2 (en) * 2019-06-25 2024-03-19 Lg Electronics Inc. Image decoding method using lossless coding in image coding system and apparatus therefor
EP3997881A4 (en) 2019-08-20 2022-09-14 Beijing Bytedance Network Technology Co., Ltd. SELECTIVE USE OF ALTERNATIVE INTERPOLATION FILTERS IN VIDEO PROCESSING

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107659813B (zh) 2011-12-23 2020-04-17 韩国电子通信研究院 图像解码方法、图像编码方法和记录介质
BR112014013969B1 (pt) 2011-12-28 2022-05-10 JVC Kenwood Corporation Dispositivo de codificação de vídeo, método de codificação de vídeo, programa de codificação de vídeo, dispositivo de decodificação de vídeo, método de decodificação de vídeo, programa de decodificação de vídeo
US9503720B2 (en) 2012-03-16 2016-11-22 Qualcomm Incorporated Motion vector coding and bi-prediction in HEVC and its extensions
BR112016012417B1 (pt) 2013-12-18 2023-04-11 Hfi Innovation Inc Método e aparelho para inicialização e gerenciamento de paleta
CA2950964C (en) * 2014-06-19 2018-10-30 Hfi Innovation Inc. Method and apparatus of candidate generation for single sample mode in video coding
WO2016004850A1 (en) * 2014-07-07 2016-01-14 Mediatek Singapore Pte. Ltd. Method of intra block copy search and compensation range
CN114900694A (zh) * 2018-06-29 2022-08-12 抖音视界(北京)有限公司 哪个查找表需要更新或不更新
BR112021000004A8 (pt) * 2018-07-06 2023-02-07 Mediatek Inc Informações de movimento herdadas para decodificar uma unidade de codificação atual em um sistema de codificação de vídeo
US11606575B2 (en) 2018-07-10 2023-03-14 Qualcomm Incorporated Multiple history based non-adjacent MVPs for wavefront processing of video coding
US10491902B1 (en) * 2018-07-16 2019-11-26 Tencent America LLC Method and apparatus for history-based motion vector prediction
US10440378B1 (en) 2018-07-17 2019-10-08 Tencent America LLC Method and apparatus for history-based motion vector prediction with parallel processing
KR102286460B1 (ko) * 2018-07-18 2021-08-04 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 히스토리-기반 모션 벡터 예측을 사용한 비디오 코딩 방법 및 장치
CN116708824A (zh) * 2018-10-02 2023-09-05 Lg电子株式会社 编解码设备、存储介质和数据发送设备
WO2020071829A1 (ko) * 2018-10-04 2020-04-09 엘지전자 주식회사 히스토리 기반 영상 코딩 방법 및 그 장치

Also Published As

Publication number Publication date
CN112534808A (zh) 2021-03-19
JP2023038228A (ja) 2023-03-16
IL280708A (en) 2021-03-25
EP3815358A4 (en) 2021-05-05
US11653032B2 (en) 2023-05-16
JP2021533696A (ja) 2021-12-02
US20200404342A1 (en) 2020-12-24
KR20230087621A (ko) 2023-06-16
KR20210025645A (ko) 2021-03-09
US20230319322A1 (en) 2023-10-05
JP7237144B2 (ja) 2023-03-10
KR102542433B1 (ko) 2023-06-13
AU2019316899A1 (en) 2021-02-04
AU2023214281A1 (en) 2023-08-31
CA3106486A1 (en) 2020-02-13
WO2020030187A1 (en) 2020-02-13
EP3815358A1 (en) 2021-05-05

Similar Documents

Publication Publication Date Title
JP7106744B2 (ja) ルーマおよびクロマ成分についてibc専用バッファおよびデフォルト値リフレッシュを使用するエンコーダ、デコーダおよび対応する方法
AU2019356644B2 (en) Inter prediction method and apparatus
BR112021004984A2 (pt) aparelho e método para quantização inversa
CN113315974B (zh) 视频解码器和方法
BR112021009848A2 (pt) codificador, decodificador e métodos correspondentes para predição inter
US11653032B2 (en) Video processing method, video processing apparatus, encoder, decoder, medium and computer program
CN112823518A (zh) 用于译码块的三角划分块的帧间预测的装置及方法
US11558607B2 (en) Encoder, a decoder and corresponding methods using history based motion vector prediction
BR112021008016A2 (pt) codificador, decodificador e métodos correspondentes para modo de fusão
BR112021003999A2 (pt) relação entre elementos de restrição de partição
BR112021004124A2 (pt) método de decodificação de vídeo e decodificador de vídeo
BR112021010286A2 (pt) codificador, decodificador e métodos correspondentes de construção de lista de modos mais prováveis para blocos com predição de múltiplas hipóteses
BR112021009922A2 (pt) Método de construir uma lista de mesclagens candidata para modo de cópia de intrabloco, codificador, decodificador, produto de programa de computador e dispositivo de decodificação de dados de vídeo
BR112021010896A2 (pt) Método e aparelho de codificação e decodificação de imagem de vídeo
BR112021009911A2 (pt) codificador, decodificador e métodos correspondentes usando armazenamento de mv compacto
BR112021013644A2 (pt) Codificador, decodificador e métodos correspondentes de adaptação de filtro de deblocagem
BR112021009099A2 (pt) codificador de vídeo, decodificador de vídeo e métodos de codificação ou decodificação de uma imagem
BR112021009833A2 (pt) codificador, decodificador e métodos correspondentes para predição inter
BR112021003946A2 (pt) codificador de vídeo, decodificador de vídeo e métodos correspondentes
RU2783349C2 (ru) Способ обработки видео, устройство обработки видео, кодер, декодер, носитель и компьютерная программа