BR112021013565A2 - Codificador, decodificador, meio legível por computador não transitório e método de codificação de vídeo de um bloco de uma imagem - Google Patents

Codificador, decodificador, meio legível por computador não transitório e método de codificação de vídeo de um bloco de uma imagem Download PDF

Info

Publication number
BR112021013565A2
BR112021013565A2 BR112021013565-0A BR112021013565A BR112021013565A2 BR 112021013565 A2 BR112021013565 A2 BR 112021013565A2 BR 112021013565 A BR112021013565 A BR 112021013565A BR 112021013565 A2 BR112021013565 A2 BR 112021013565A2
Authority
BR
Brazil
Prior art keywords
flag
enabled
dct2
mts
sps
Prior art date
Application number
BR112021013565-0A
Other languages
English (en)
Inventor
Han Gao
Jianle Chen
Semih ESENLIK
Anand Meher KOTRA
Biao Wang
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 BR112021013565A2 publication Critical patent/BR112021013565A2/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/179Methods 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 scene or a shot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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
    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Abstract

codificador, decodificador, meio legível por computador não transitório e método de codificação de vídeo de um bloco de uma imagem. um método de codificação de vídeo de um bloco de uma imagem inclui: obter (1602) um sinal residual resultante a partir de predição inter ou intraimagem; inferir (1603) o uso de um núcleo de transformada de dct2 para uma sequência do sinal residual; processar (1604) a transformação do bloco usando o núcleo de transformada inferido.

Description

CODIFICADOR, DECODIFICADOR, MEIO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO E MÉTODO DE CODIFICAÇÃO DE VÍDEO DE UM BLOCO DE UMA IMAGEM REFERÊNCIA CRUZADA PARA PEDIDOS RELACIONADOS
[001] Este pedido de patente reivindica a prioridade do Pedido de Patente Provisório dos EUA no. 62 / 791.674, depositado em 11 de janeiro de 2019, a divulgação do pedido de patente acima mencionado é aqui incorporada por referência em sua totalidade.
CAMPO TÉCNICO
[002] As modalidades do presente pedido (divulgação) geralmente se referem ao campo de processamento de imagem e, mais particularmente, ao controle de alto nível da seleção de tipo de transformada adaptativa por forma de bloco.
ANTECEDENTES
[003] Codificação de vídeo (codificação e decodificação de vídeo) é usada em uma ampla gama 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, como chat de vídeo, videoconferência, DVD e discos Blu-ray, sistemas de aquisição e edição de conteúdo de vídeo, e filmadoras de aplicações de segurança.
[004] A quantidade de dados de vídeo necessária para representar até mesmo um vídeo relativamente curto pode ser substancial, o que pode resultar em dificuldades quando os dados devem ser transmitidos ou de outra forma comunicados através de uma rede de comunicações com capacidade de largura de banda limitada. Assim, os dados de vídeo são geralmente comprimidos antes de serem comunicados pelas redes de telecomunicações dos dias modernos. O tamanho de um vídeo também pode ser um problema quando o vídeo é armazenado em um dispositivo de armazenamento porque os recursos de memória podem ser limitados. Dispositivos de compressão de vídeo muitas vezes usam software e / ou hardware na fonte para codificar os dados de vídeo antes da transmissão ou armazenamento, diminuindo assim a quantidade de dados necessária para representar imagens de vídeo digital. Os dados comprimidos são então recebidos no destino por um dispositivo de descompressão de vídeo que decodifica os dados de vídeo. Com recursos de rede limitados e demandas cada vez maiores de maior qualidade de vídeo, técnicas aprimoradas de compressão e descompressão que melhoram a taxa de compressão com pouco ou nenhum sacrifício na qualidade da imagem são desejáveis.
[005] No JVET-L1001, o texto de rascunho do rascunho VVC
3.0, MTS pode ser habilitada no nível de sequência para inter e intrafatia individualmente. Quando a MTS está desligada, a DCT2 deve ser usada como núcleo de transformada. No entanto, na técnica anterior, como JVET-M0303, JVET-M0140 ou JVET-M0102, a transformada DST7 / DCT8 inferida é introduzida. Não há possibilidade de comutar para a transformada puramente DCT2 em todos os casos. A presente divulgação aborda o problema mencionado acima.
[006] Em vista dos problemas discutidos acima, a presente divulgação fornece uma solução para mitigar ou mesmo remover o problema mencionado acima.
[007] As modalidades da divulgação são definidas pelos recursos das reivindicações independentes e outras implementações vantajosas das modalidades pelos recursos das reivindicações dependentes.
[008] A presente divulgação fornece: um método de codificação de vídeo de um bloco de uma imagem, compreendendo uma amostra de uma pluralidade de amostras do bloco: obter um sinal residual resultante da predição inter ou intraimagem; inferir o uso de um núcleo de transformada de Transformada Discreta de Cosseno tipo 2, DCT2, para uma sequência do sinal residual; processar a transformação do bloco usando o núcleo de transformada inferido.
[009] Isto é, a presente divulgação introduz uma bandeira habilitada para DCT2 adicional, que é usada para inferir se apenas núcleo de transformada de DCT2 é usado para todos os casos na sequência, quando bandeira habilitada para DCT2 é falsa, então a bandeira habilitada para DCT2 de nível de sequência é adicionalmente sinalizada. Quando a bandeira habilitada para DCT2 é verdadeira, apenas o núcleo de transformada de DCT2 deve ser usado. Introduzir bandeira habilitada para DCT2 adicional no SPS para tornar possível a comutação para DCT2 quando a ferramenta de MST inferida estiver ativada.
[0010] Em uma possível forma de implementação do método de acordo com o aspecto anterior como tal, em que o uso de DCT2 é inferido a partir de uma bandeira habilitada para DCT2 de nível de sequência no Conjunto de Parâmetros de Sequência, SPS.
[0011] Assim, modalidades da presente divulgação introduzem o indicador de nível de sequência habilitado para
DCT2 comutável, que fornece a possibilidade de comutar para o núcleo de transformada de DCT2 puro com a ferramenta de transformada inferida para toda a sequência ou fatia. A DCT2 é relativamente simples de computar e de caixa baixa para a largura de banda de memória em comparação com outro núcleo de transformada. Na técnica anterior, a possibilidade de usar transformada DCT2 simples é cortada pelo núcleo de transformada inferida, com o presente indicador a flexibilidade de comutação entre baixo custo / complexidade e alto desempenho é fornecida para codificador e decodificador. Nas modalidades, ambas as possibilidades de mudança de baixo nível e mudanças de alto nível são fornecidas, o que garante a consistência e o desempenho de codificação do código com múltiplas variações.
[0012] Em uma possível forma de implementação do método de acordo com o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência é denominada sps_dct2_enabled_flag.
[0013] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior dos dois aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência é compreendida em uma sintaxe de nível de SPS como segue: seq_parameter_set_rbsp( ) { Descritor … ue(v) sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flag u(1) sps_mts_inter_enabled_flag u(1) }
… u(1) } em que sps_dct2_enabled_flag representa a bandeira habilitada para DCT2 de nível de sequência.
[0014] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior do aspecto anterior como tal, em que sps_mts_intra_enabled_flag igual a 1 especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intracodificação; sps_mts_intra_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intracodificação; e quando sps_mts_intra_enabled_flag não está presente, sps_mts_intra_enabled_flag é inferido como 0.
[0015] Em uma forma de implementação possível do método de acordo com qualquer implementação anterior dos dois aspectos anteriores ou o aspecto anterior como tal, em que o sps_mts_inter_enabled_flag especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intercodificação; sps_mts_inter_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intercodificação; e quando sps_mts_intra_enabled_flag não está presente, sps_mts_intra_enabled_flag é inferido como 0.
[0016] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior dos cinco aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que o núcleo de transformada de DCT2 é usado para transformação.
[0017] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior dos seis aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que o núcleo de transformada de DCT2 é usado apenas para transformação.
[0018] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior dos sete aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que DCT2 é usada tanto para transformação de direção horizontal quanto para transformação de direção vertical.
[0019] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior dos oito aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que DCT2 é usada na transformação de sub-bloco.
[0020] Em uma possível forma de implementação do método de acordo com o aspecto anterior como tal, em que no caso de um lado de uma Unidade de Transformada residual, tu ser maior do que 32, uma transformada correspondente é definida como DCT2.
[0021] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior dos dez aspectos anteriores ou o aspecto anterior como tal, em que, no caso da bandeira habilitada para DCT2 de nível de sequência ser igual a 1, especifica que o núcleo de transformada de DCT2 é usado apenas para transformação, tanto a transformação de sub-bloco quanto a transformada de Seleção de Transformada Múltipla, MTS, são inferidas como desligadas.
[0022] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior dos onze aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 0 especifica que outros núcleos de transformada diferentes de DCT2 são usados para a transformação.
[0023] Em uma possível forma de implementação do método de acordo com o aspecto anterior como tal, em que é inferido usando uma Transformada Discreta de Seno tipo 7, DST7 e / ou uma Transformada Discreta de Cosseno tipo 8, DCT8, para a transformação.
[0024] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior dos dois aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 0 especifica que é inferido usando DST7 / DCT8 apenas para transformação.
[0025] A DCT2 pode ser bem desejável tanto para o projeto do codificador quanto do decodificador. Em outras palavras, a comutabilidade entre DCT2, DST7 ou DCT8 inferida e MTS (núcleo de transformada selecionado por RDO) é um dos objetivos da presente divulgação.
[0026] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior dos três aspectos anteriores ou o aspecto anterior como tal, em que, no caso da bandeira habilitada para DCT2 de nível de sequência ser igual a 0, é determinado se Seleção de Transformada Múltipla para Conjunto de Parâmetros de Sequência é habilitada por meio de uma bandeira.
[0027] Em uma possível forma de implementação do método de acordo com o aspecto anterior como tal; em que caso o sps_mts_intra_enabled_flag esteja presente, no caso de sps_mts_intra_enabled_flag ser igual a 1, é especificado que uma bandeira de Seleção de Transformada Múltipla, MTS, de Unidade de Transformada, TU, denominada tu_mts_flag, está presente na sintaxe de codificação residual para unidades de intracodificação; no caso de sps_mts_intra_enabled_flag ser igual a 0, é especificado que um tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intracodificação; em que, no caso de sps_mts_intra_enabled_flag não estar presente, o sps_mts_intra_enabled_flag é inferido como 0.
[0028] A presente divulgação fornece ainda um codificador compreendendo um conjunto de circuitos de processamento para realizar o método de acordo com o método de acordo com qualquer implementação anterior dos aspectos anteriores ou o aspecto anterior como tal.
[0029] A presente divulgação fornece ainda um decodificador compreendendo um conjunto de circuitos de processamento para realizar o método de acordo com qualquer implementação anterior dos aspectos anteriores ou o aspecto anterior como tal.
[0030] A presente divulgação fornece ainda um decodificador compreendendo: uma unidade de obtenção, configurada para obter um sinal residual resultante da predição inter ou intraimagem; uma unidade de inferência, configurada para inferir o uso de um núcleo de transformada de Transformada Discreta de Cosseno tipo 2, DCT2, para uma sequência do sinal residual; e uma unidade de processamento, configurada para processar a transformação do bloco usando o núcleo de transformada inferido.
[0031] Em uma possível forma de implementação do decodificador de acordo com o aspecto anterior como tal, em que a unidade de inferência é configurada para inferir o uso de DCT2 a partir de uma bandeira habilitada para DCT2 de nível de sequência no Conjunto de Parâmetros de Sequência, SPS.
[0032] Em uma possível forma de implementação do decodificador de acordo com o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência é denominada sps_dct2_enabled_flag.
[0033] Em uma possível forma de implementação do decodificador de acordo com qualquer implementação anterior dos dois aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência é compreendida em uma sintaxe de nível de SPS da seguinte forma: seq_parameter_set_rbsp( ) { Descritor … ue(v) sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flag u(1) sps_mts_inter_enabled_flag u(1)
} … u(1) } em que sps_dct2_enabled_flag representa a bandeira habilitada para DCT2 de nível de sequência.
[0034] Em uma possível forma de implementação do decodificador de acordo com o aspecto anterior como tal, em que sps_mts_intra_enabled_flag igual a 1 especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intracodificação; sps_mts_intra_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intracodificação; e quando sps_mts_intra_enabled_flag não está presente, sps_mts_intra_enabled_flag é inferido como 0.
[0035] Em uma possível forma de implementação do decodificador de acordo com qualquer implementação anterior dos dois aspectos anteriores ou o aspecto anterior como tal, em que o sps_mts_inter_enabled_flag especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intercodificação; sps_mts_inter_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intercodificação; e quando sps_mts_intra_enabled_flag não está presente, sps_mts_intra_enabled_flag é inferido como 0.
[0036] Em uma possível forma de implementação do decodificador de acordo com qualquer implementação anterior dos cinco aspectos anteriores ou o aspecto anterior como tal,
em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que o núcleo de transformada de DCT2 é usado para transformação.
[0037] Em uma possível forma de implementação do decodificador de acordo com qualquer implementação anterior dos seis aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que o núcleo de transformada de DCT2 é usado apenas para transformação.
[0038] Em uma possível forma de implementação do decodificador de acordo com qualquer implementação anterior dos sete aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que DCT2 é usada tanto para transformação de direção horizontal quanto para transformação de direção vertical.
[0039] Em uma possível forma de implementação do decodificador de acordo com qualquer implementação anterior dos oito aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que DCT2 é usada na transformação de sub-bloco.
[0040] Em uma possível forma de implementação do decodificador de acordo com o aspecto anterior como tal, em que no caso de um lado de uma Unidade de Transformada residual, tu ser maior do que 32, uma transformada correspondente é definida como DCT2.
[0041] Em uma possível forma de implementação do decodificador de acordo com qualquer implementação anterior dos dez aspectos anteriores ou do aspecto anterior como tal,
em que, no caso da bandeira habilitada para DCT2 de nível de sequência ser igual a 1, especifica que o núcleo de transformada de DCT2 é usado apenas para transformação, tanto a transformação de sub-bloco quanto a transformada de Seleção de Transformada Múltipla, MTS, são inferidas como desligadas.
[0042] Em uma possível forma de implementação do decodificador de acordo com qualquer implementação anterior dos onze aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 0 especifica que outros núcleos de transformada diferentes de DCT2 são usados para a transformação.
[0043] Em uma possível forma de implementação do decodificador de acordo com o aspecto anterior como tal, em que a unidade de inferência é configurada para inferir usando uma Transformada Discreta de Seno tipo 7, DST7 e / ou uma Transformada Discreta de Cosseno tipo 8, DCT8, para transformação.
[0044] Em uma possível forma de implementação do decodificador de acordo com qualquer implementação anterior dos dois aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 0 especifica que é inferido usando DST7 / DCT8 apenas para transformação.
[0045] Em uma possível forma de implementação do decodificador de acordo com qualquer implementação anterior dos três aspectos anteriores ou o aspecto anterior como tal, em que, no caso da bandeira habilitada para DCT2 de nível de sequência ser igual a 0, é determinado se Seleção de
Transformada Múltipla para Conjunto de Parâmetros de Sequência é habilitada por meio de uma bandeira.
[0046] Em uma possível forma de implementação do decodificador de acordo com qualquer implementação anterior do aspecto anterior como tal, em que caso o sps_mts_intra_enabled_flag esteja presente, no caso de sps_mts_intra_enabled_flag ser igual a 1, é especificado que uma bandeira de Seleção de Transformada Múltipla, MTS, de Unidade de Transformada, TU, denominada tu_mts_flag, está presente na sintaxe de codificação residual para unidades de intracodificação; no caso de sps_mts_intra_enabled_flag ser igual a 0, é especificado que um tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intracodificação; em que, no caso de sps_mts_intra_enabled_flag não estar presente, o sps_mts_intra_enabled_flag é inferido como 0.
[0047] A presente divulgação fornece ainda um codificador que compreende: uma unidade de obtenção, configurada para obter um sinal residual resultante da predição inter ou intraimagem; uma unidade de inferência, configurada para inferir o uso de um núcleo de transformada de Transformada Discreta de Cosseno tipo 2, DCT2, para uma sequência do sinal residual; e uma unidade de processamento, configurada para processar a transformação do bloco usando o núcleo de transformada inferido.
[0048] Em uma possível forma de implementação do codificador de acordo com qualquer implementação anterior do aspecto anterior como tal, em que a unidade de inferência é configurada para inferir o uso de DCT2 a partir de uma bandeira habilitada para DCT2 de nível de sequência no Conjunto de Parâmetros de Sequência, SPS.
[0049] Em uma possível forma de implementação do codificador de acordo com qualquer implementação anterior do aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência é denominada sps_dct2_enabled_flag.
[0050] Em uma possível forma de implementação do codificador de acordo com qualquer implementação anterior dos dois aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência é compreendida em uma sintaxe de nível de SPS da seguinte forma: seq_parameter_set_rbsp( ) { Descritor … ue(v) sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flag u(1) sps_mts_inter_enabled_flag u(1) } … u(1) } em que sps_dct2_enabled_flag representa a bandeira habilitada para DCT2 de nível de sequência.
[0051] Em uma possível forma de implementação do codificador de acordo com o aspecto anterior como tal, em que sps_mts_intra_enabled_flag igual a 1 especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intracodificação; sps_mts_intra_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intracodificação; e quando o sps_mts_intra_enabled_flag não está presente, o sps_mts_intra_enabled_flag é inferido como 0.
[0052] Em uma possível forma de implementação do codificador de acordo com qualquer implementação anterior dos dois aspectos anteriores ou o aspecto anterior como tal, em que o sps_mts_inter_enabled_flag especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intercodificação; sps_mts_inter_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intercodificação; e quando o sps_mts_intra_enabled_flag não está presente, o sps_mts_intra_enabled_flag é inferido como 0.
[0053] Em uma possível forma de implementação do codificador de acordo com qualquer implementação anterior dos cinco aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que o núcleo de transformada de DCT2 é usado para transformação.
[0054] Em uma possível forma de implementação do codificador de acordo com qualquer implementação anterior dos seis aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que o núcleo de transformada de DCT2 é usado apenas para transformação.
[0055] Em uma possível forma de implementação do codificador de acordo com qualquer implementação anterior dos sete aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que DCT2 é usada tanto para transformação de direção horizontal quanto para transformação de direção vertical.
[0056] Em uma possível forma de implementação do codificador de acordo com qualquer implementação anterior dos oito aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que DCT2 é usada na transformação de sub-bloco.
[0057] Em uma possível forma de implementação do codificador de acordo com o aspecto anterior como tal, em que no caso de um lado de uma Unidade de Transformada residual, tu ser maior do que 32, uma transformada correspondente é definida como DCT2.
[0058] Em uma possível forma de implementação do codificador de acordo com qualquer implementação anterior dos dez aspectos anteriores ou o aspecto anterior como tal, em que, no caso da bandeira habilitada para DCT2 de nível de sequência ser igual a 1, especifica que o núcleo de transformada de DCT2 é usado apenas para transformação, tanto a transformação de sub-bloco quanto a transformada de Seleção de Transformada Múltipla, MTS, são inferidas como desligadas.
[0059] Em uma possível forma de implementação do codificador de acordo com qualquer implementação anterior dos onze aspectos anteriores ou o aspecto anterior como tal,
em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 0 especifica que outros núcleos de transformada diferentes de DCT2 são usados para a transformação.
[0060] Em uma possível forma de implementação do codificador de acordo com qualquer implementação anterior do aspecto anterior como tal, em que a unidade de inferência é configurada para inferir usando uma Transformada Discreta de Seno tipo 7, DST7 e / ou uma Transformada Discreta de Cosseno tipo 8, DCT8, para transformação.
[0061] Em uma possível forma de implementação do codificador de acordo com qualquer implementação anterior dos dois aspectos anteriores ou o aspecto anterior como tal, em que a bandeira habilitada para DCT2 de nível de sequência ser igual a 0 especifica que é inferido usando DST7 / DCT8 apenas para transformação.
[0062] Em uma possível forma de implementação do codificador de acordo com qualquer implementação anterior dos três aspectos anteriores ou o aspecto anterior como tal, em que, no caso da bandeira habilitada para DCT2 de nível de sequência ser igual a 0, é determinado se Seleção de Transformada Múltipla para Conjunto de Parâmetros de Sequência é habilitada por meio de uma bandeira.
[0063] Em uma possível forma de implementação do codificador de acordo com qualquer implementação anterior do aspecto anterior como tal, em que caso o sps_mts_intra_enabled_flag esteja presente, no caso de sps_mts_intra_enabled_flag ser igual a 1, é especificado que uma bandeira de Seleção de Transformada Múltipla, MTS, de Unidade de Transformada, TU, denominada tu_mts_flag, está presente na sintaxe de codificação residual para unidades de intracodificação; no caso de sps_mts_intra_enabled_flag ser igual a 0, é especificado que um tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intracodificação; em que, no caso de sps_mts_intra_enabled_flag não estar presente, o sps_mts_intra_enabled_flag é inferido como 0.
[0064] A presente divulgação fornece ainda um produto de programa de computador compreendendo um código de programa para realizar o método de acordo com qualquer uma qualquer implementação anterior dos aspectos anteriores ou o aspecto anterior como tal.
[0065] A presente divulgação fornece ainda um decodificador, compreendendo: um ou mais processadores; e um meio de armazenamento legível por computador não transitório acoplado 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 de acordo com qualquer implementação anterior dos aspectos anteriores ou o aspecto anterior como tal.
[0066] A presente divulgação fornece ainda um codificador, compreendendo: um ou mais processadores; e um meio de armazenamento legível por computador não transitório acoplado 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 de acordo com qualquer um de acordo com qualquer implementação anterior dos aspectos anteriores ou o aspecto anterior como tal.
[0067] A presente divulgação fornece ainda um meio não transitório legível por computador que armazena um programa, incluindo instruções que, quando executadas em um processador, fazem o processador realizar o método de acordo com qualquer implementação anterior dos aspectos anteriores ou o aspecto anterior como tal.
BREVE DESCRIÇÃO DOS DESENHOS
[0068] No seguinte, modalidades da divulgação são descritas em mais detalhes com referência às figuras e desenhos anexos, nos quais: a Figura 1A é um diagrama de blocos mostrando um exemplo de um sistema de codificação de vídeo configurado para implementar modalidades da presente descrição; a Figura 1 B é um diagrama de blocos mostrando outro exemplo de um sistema de codificação de vídeo configurado para implementar modalidades da divulgação; a Figura 2 é um diagrama de blocos mostrando um exemplo de um codificador de vídeo configurado para implementar modalidades da divulgação; a Figura 3 é um diagrama de blocos mostrando um exemplo de estrutura de um decodificador de vídeo configurado para implementar modalidades da divulgação; a Figura 4 é um diagrama de blocos ilustrando um exemplo de um aparelho de codificação ou um aparelho de decodificação; a Figura 5 é um diagrama de blocos ilustrando outro exemplo de um aparelho de codificação ou um aparelho de decodificação; a Figura 6 é um diagrama de blocos ilustrando um exemplo das transformadas horizontal e vertical para cada posição de SBT; a Figura 7 é um diagrama de blocos ilustrando outro exemplo das transformadas horizontal e vertical para cada posição de SBT; a Figura 8 ilustra um método de codificação de vídeo de um bloco de uma imagem de acordo com a presente divulgação; a Figura 9 ilustra um codificador; a Figura 10 ilustra um decodificador.
[0069] No seguinte, sinais de referência idênticos se referem a recursos idênticos ou pelo menos funcionalmente equivalentes, se não for explicitamente especificado de outra forma.
DESCRIÇÃO DETALHADA DAS MODALIDADES
[0070] Na seguinte descrição, é feita referência às figuras anexas, que fazem parte da divulgação e que mostram, a título de ilustração, aspectos específicos das modalidades da divulgação ou aspectos específicos em que as modalidades da presente divulgação podem ser usadas. Entende-se que as modalidades da divulgação podem ser usadas em outros aspectos e compreendem mudanças estruturais ou lógicas não representadas nas figuras. A seguinte descrição detalhada, portanto, não deve ser tomada em um sentido limitante, e o escopo da presente divulgação é definido pelas reivindicações anexas.
[0071] Por exemplo, entende-se que uma divulgação em conexão com 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 passos de método específicos são descritos, um dispositivo correspondente pode incluir uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, para realizar o descrito um ou a pluralidade de passos de método (por exemplo, uma unidade realizando um ou uma pluralidade de passos, ou uma pluralidade de unidades, cada uma realizando uma ou mais da pluralidade de passos), mesmo se tais 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 um passo para realizar a funcionalidade de uma ou pluralidade de unidades (por exemplo, um passo realizando a funcionalidade da uma ou pluralidade de unidades, ou uma pluralidade de passos, cada uma realizando a funcionalidade de uma ou mais da pluralidade de unidades), mesmo se tal um ou pluralidade de passos não forem explicitamente descritos ou ilustrados nas figuras. Além disso, entende-se que as características das várias modalidades exemplares e / ou aspectos descritos neste documento podem ser combinadas umas com as outras, a menos que especificamente indicado de outra forma.
[0072] A codificação de vídeo normalmente se refere ao processamento de uma sequência de imagens, que formam o vídeo ou a sequência de vídeo. Em vez do termo “imagem” (“picture”), o termo “quadro” ou “imagem” (“image”) pode ser usado como sinônimos no campo da codificação de vídeo. A codificação de vídeo (ou codificação em geral) compreende duas partes: codificação de vídeo e decodificação de vídeo. A codificação de vídeo é realizada no lado de fonte, normalmente compreendendo o processamento (por exemplo, por compressão) das imagens de vídeo originais para reduzir a quantidade de dados necessária para representar as imagens de vídeo (para armazenamento e / ou transmissão mais eficiente). A decodificação de vídeo é realizada no lado de destino e normalmente compreende o processamento inverso em comparação com o codificador para reconstruir as imagens de vídeo. As modalidades que se referem à "codificação" de imagens de vídeo (ou imagens em geral) devem ser entendidas como relacionadas à "codificação" ou "decodificação" de imagens de vídeo ou respectivas sequências de vídeo. A combinação da parte de codificação e da parte de decodificação também é conhecida como CODEC (Codificação e Decodificação).
[0073] No caso de codificação de vídeo sem perdas, as imagens de vídeo originais podem ser reconstruídas, ou seja, as imagens de vídeo reconstruídas têm a mesma qualidade das imagens de vídeo originais (assumindo nenhuma perda de transmissão ou outra perda de dados durante o armazenamento ou transmissão). No caso de codificação de vídeo com perdas, compressão adicional, por exemplo, por quantização, é realizada, para reduzir a quantidade de dados que representam as imagens de vídeo, que não podem ser completamente reconstruídas no decodificador, ou seja, a qualidade das imagens de vídeo reconstruídas é inferior ou pior comparada à qualidade das imagens de vídeo originais.
[0074] Vários padrões de codificação de vídeo pertencem ao grupo de “codecs de vídeo híbridos com perdas”
(ou seja, combinam predição espacial e temporal no domínio da amostra e codificação de transformada 2D para aplicar quantização no domínio de transformada). Cada imagem de uma sequência de vídeo é normalmente particionada em um conjunto de blocos não sobrepostos e a codificação é normalmente realizada em um nível de bloco. Em outras palavras, no codificador, o vídeo é normalmente processado, ou seja, codificado, em um nível de bloco (bloco de vídeo), por exemplo, usando predição espacial (intraimagem) e / ou predição temporal (interimagem) para gerar um bloco de predição, subtrair o bloco de predição do bloco atual (bloco atualmente processado / a ser processado) para obter um bloco residual, transformar o bloco residual e quantizar o bloco residual no domínio de transformada para reduzir a quantidade de dados a serem transmitidos (compressão), enquanto no decodificador, o processamento inverso em comparação com o codificador é aplicado ao bloco codificado ou comprimido para reconstruir o bloco atual para representação. Além disso, o codificador duplica o loop de processamento de decodificador de modo que ambos irão gerar predições idênticas (por exemplo, intra e interpredições) e / ou reconstruções para processamento, ou seja, codificação dos blocos subsequentes.
[0075] Nas seguintes modalidades de um sistema de codificação de vídeo 10, um codificador de vídeo 20 e um decodificador de vídeo 30 são descritos com base nas Figuras 1 a 3.
[0076] A Figura 1A é um diagrama de blocos esquemático ilustrando um sistema de codificação de exemplo 10, por exemplo, um sistema de codificação de vídeo 10 (ou sistema de codificação 10 abreviado) que pode utilizar técnicas do presente pedido. O codificador de vídeo 20 (ou codificador 20 abreviado) e o decodificador de vídeo 30 (ou decodificador 30 abreviado) do sistema de codificação de vídeo 10 representam exemplos de dispositivos que podem ser configurados para realizar técnicas de acordo com vários exemplos descritos no presente pedido.
[0077] Como mostrado na Figura 1A, o sistema de codificação 10 compreende um dispositivo de origem 12 configurado para fornecer dados de imagem codificados 21, por exemplo, para um dispositivo de destino 14 para decodificar os dados de imagem codificados 13.
[0078] O dispositivo de origem 12 compreende um codificador 20 e pode, adicionalmente, isto é, opcionalmente, compreender uma origem de imagem 16, um pré- processador (ou unidade de pré-processamento) 18, por exemplo, um pré-processador de imagem 18, e uma interface de comunicação ou unidade de comunicação 22.
[0079] A origem de imagem 16 pode compreender ou ser qualquer tipo de dispositivo de captura de imagem, por exemplo, uma câmera para capturar uma imagem do mundo real e / ou qualquer tipo de um dispositivo de geração de imagem, por exemplo, um processador gráfico de computador para gerar uma imagem animada por computador, ou qualquer tipo de outro dispositivo para obter e / ou fornecer uma imagem do mundo real, uma imagem gerada por computador (por exemplo, um conteúdo de tela, uma imagem de realidade virtual (VR)) e / ou qualquer combinação dos mesmos (por exemplo, uma imagem de realidade aumentada (AR)). A origem de imagem pode ser qualquer tipo de memória ou armazenamento armazenando qualquer uma das imagens acima mencionadas.
[0080] Em distinção ao pré-processador 18 e ao processamento realizado pela unidade de pré-processamento 18, a imagem ou dados de imagem 17 também podem ser referidos como imagem bruta ou dados de imagem brutos 17.
[0081] O pré-processador 18 é configurado 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. Pré-processamento realizado pelo pré-processador 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 componente opcional.
[0082] O codificador de vídeo 20 é configurado para receber os dados de imagem pré-processados 19 e fornecer dados de imagem codificados 21 (mais detalhes serão descritos abaixo, por exemplo, com base na Figura 2).
[0083] A interface de comunicação 22 do dispositivo de origem 12 pode ser configurada para receber os dados de imagem codificados 21 e para transmitir os dados de imagem codificados 21 (ou qualquer versão processada adicional dos mesmos) através do canal de comunicação 13 para outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo, para armazenamento ou reconstrução direta.
[0084] 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,
um pós-processador 32 (ou unidade de pós-processamento 32) e um dispositivo de exibição 34.
[0085] A interface de comunicação 28 do dispositivo de destino 14 é configurada para receber os dados de imagem codificados 21 (ou qualquer versão processada adicional dos mesmos), por exemplo, diretamente a partir do dispositivo de origem 12 ou a partir de qualquer outra fonte, por exemplo, um dispositivo de armazenamento, por exemplo, um dispositivo de armazenamento de dados de imagem codificados, e fornecer os dados de imagem codificados 21 para o decodificador 30.
[0086] 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 direto entre o dispositivo de origem 12 e o dispositivo de destino 14, por exemplo, uma conexão direta com ou sem fio, ou através de qualquer tipo de rede, por exemplo, uma rede com fio ou sem fio ou qualquer combinação delas, ou qualquer tipo de rede privada e pública, ou qualquer tipo de combinação das mesmas.
[0087] 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, e / ou processar os dados de imagem codificados usando qualquer tipo de codificação ou processamento de transmissão para transmissão através de um enlace de comunicação ou rede de comunicação.
[0088] A interface de comunicação 28, formando a contraparte da interface de comunicação 22, pode ser, por exemplo, configurada para receber os dados transmitidos e processar os dados de transmissão usando qualquer tipo de decodificação ou processamento e / ou desempacotamento de transmissão correspondente para obter os dados de imagem codificados 21.
[0089] Tanto a interface de comunicação 22 quanto a interface de comunicação 28 podem ser configuradas como interfaces de comunicação unidirecionais, conforme indicado pela seta para o canal de comunicação 13 na Figura 1A apontando a partir do dispositivo de origem 12 para o dispositivo de destino 14, ou interfaces de comunicação bidirecionais, e pode ser configurado, por exemplo, para enviar e receber mensagens, por exemplo, para configurar uma conexão, para reconhecer e trocar qualquer outra informação relacionada ao enlace de comunicação e / ou transmissão de dados, por exemplo, transmissão de dados de imagem codificada.
[0090] O decodificador 30 é configurado para receber os dados de imagem codificados 21 e fornecer dados de imagem decodificados 31 ou uma imagem decodificada 31 (mais detalhes serão descritos abaixo, por exemplo, com base na Figura 3 ou Figura 5).
[0091] O pós-processador 32 do dispositivo de destino 14 é configurado para pós-processar os dados de imagem decodificados 31 (também chamados de 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.
[0092] 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 tela para representar a imagem reconstruída, por exemplo, uma tela ou monitor integrado ou externo. As telas podem, por exemplo, compreender uma tela de cristal líquido (LCD), telas de diodos emissores de luz orgânica (OLED), telas de plasma, projetores, telas de microLED, um cristal líquido em silício (LCoS), processador de luz digital (DLP) ou qualquer outro tipo de tela.
[0093] Embora a Figura 1A represente o dispositivo de origem 12 e o dispositivo de destino 14 como dispositivos separados, modalidades de dispositivos também podem compreender ambos ou ambas as funcionalidades, o dispositivo de origem 12 ou funcionalidade correspondente e o dispositivo de destino 14 ou funcionalidade correspondente. Em tais modalidades, o dispositivo de origem 12 ou a funcionalidade correspondente e o dispositivo de destino 14 ou a funcionalidade correspondente podem ser implementados usando o mesmo hardware e / ou software ou por hardware e / ou software separado ou qualquer combinação dos mesmos.
[0094] Como será evidente para a pessoa versada com base na descrição, a existência e 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 Figura 1A, podem variar dependendo do dispositivo e aplicação reais.
[0095] O codificador 20 (por exemplo, um codificador de vídeo 20) ou o decodificador 30 (por exemplo, um decodificador de vídeo 30) ou ambos, o codificador 20 e o decodificador 30 podem ser implementados por meio de conjunto de circuitos de processamento como mostrado na Figura 1B, como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis em campo (FPGAs), lógica discreta, hardware, codificação de vídeo dedicada ou qualquer combinação dos mesmos. O codificador 20 pode ser implementado através do conjunto de circuitos de processamento 46 para incorporar os vários módulos, conforme discutido em relação ao codificador 20 da Figura 2 e / ou qualquer outro sistema de codificador ou subsistema aqui descrito. O decodificador 30 pode ser implementado através do conjunto de circuitos de processamento 46 para incorporar os vários módulos, conforme discutido em relação ao decodificador 30 da Figura 3 e / ou qualquer outro sistema ou subsistema decodificador aqui descrito. O conjunto de circuitos de processamento pode ser configurado para realizar as várias operações, conforme discutido mais tarde. Conforme mostrado na Figura 5, se as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio de armazenamento legível por computador não transitório adequado e pode executar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta divulgação. Qualquer de codificador de vídeo 20 e decodificador de vídeo 30 podem ser integrados como parte de um codificador / decodificador combinado (CODEC) em um único dispositivo, por exemplo, como mostrado na Figura 1B.
[0096] O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender qualquer um de uma ampla gama de dispositivos, incluindo qualquer tipo de dispositivos portáteis ou estacionários, por exemplo, computadores notebooks ou laptops, telefones móveis, telefones inteligentes, tablets ou computadores tablets, câmeras, computadores de mesa, decodificadores, televisores, dispositivos de exibição, reprodutores de mídia digital, consoles de videogame, dispositivos de transmissão contínua de vídeo (como servidores de serviços de conteúdo ou servidores de entrega de conteúdo), dispositivo receptor de difusão, dispositivo transmissor de difusão, ou semelhantes e podem usar nenhum ou qualquer tipo de sistema operacional. Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio. Assim, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser dispositivos de comunicação sem fio.
[0097] Em alguns casos, o sistema de codificação de vídeo 10 ilustrado na Figura 1A é apenas um exemplo e as técnicas do presente pedido podem ser aplicadas a definições de codificação de vídeo (por exemplo, codificação de vídeo ou decodificação de vídeo) que não incluem necessariamente qualquer comunicação de dados entre os dispositivos de codificação e de decodificação. Em outros exemplos, os dados são recuperados de uma memória local, transmitidos por 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 por dispositivos que não se comunicam entre si, mas simplesmente codificam dados para a memória e / ou recuperam e decodificam dados a partir da memória.
[0098] Por conveniência de descrição, as modalidades da divulgação são descritas neste documento, por exemplo, por referência à Codificação de Vídeo de Alta Eficiência (HEVC) ou ao software de referência de Codificação de Vídeo Versátil (VVC), o padrão de codificação de vídeo de próxima geração desenvolvido pela Equipe de Colaboração Conjunta em codificação de vídeo (JCT-VC) do Grupo de Especialistas de Codificação de Vídeo (VCEG) ITU-T e Grupo de Especialistas de Imagem em Movimento (MPEG) ISO / IEC. Uma pessoa versada na técnica entenderá que as modalidades da divulgação não estão limitadas a HEVC ou VVC. Codificador e Método de Codificação
[0099] A Figura 2 mostra um diagrama de blocos esquemático de um codificador de vídeo de exemplo 20 que é configurado para implementar as técnicas do presente pedido. No exemplo da Figura 2, o codificador de vídeo 20 compreende uma entrada 201 (ou interface de entrada 201), 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, uma unidade de filtro de loop 220, um buffer de imagens decodificadas (DPB) 230, uma unidade de seleção de modo 260, uma unidade de codificação de entropia 270 e uma saída 272
(ou interface de saída 272). A unidade de seleção de modo 260 pode incluir uma unidade de interpredição 244, uma unidade de intrapredição 254 e uma unidade de particionamento
262. A unidade de interpredição 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 Figura 2, também pode ser referido como codificador de vídeo híbrido ou um codificador de vídeo de acordo com um codec de vídeo híbrido.
[00100] A unidade de cálculo residual 204, a unidade de processamento de transformada 206, a unidade de quantização 208, a unidade de seleção de modo 260 podem ser referidas como formando um percurso de sinal direto do codificador 20, enquanto 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 imagens decodificadas (DPB) 230, a unidade de interpredição 244 e a unidade de intrapredição 254 podem ser referidos como formando um percurso de sinal inverso do codificador de vídeo 20, em que o percurso de sinal inverso do codificador de vídeo 20 corresponde ao percurso de sinal do decodificador (ver o decodificador de vídeo 30 na Figura 3). A unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o filtro de loop 220, o buffer de imagens decodificadas (DPB) 230, a unidade de interpredição 244 e a unidade de intrapredição 254 também são referidas para formar o “decodificador embutido” do codificador de vídeo 20. Imagens e particionamento de Imagem (Imagens e Blocos)
[00101] O codificador 20 pode ser configurado para receber, por exemplo, através da entrada 201, uma imagem 17 (ou dados de imagem 17), por exemplo, imagem de uma sequência de imagens formando um vídeo ou sequência de vídeo. A imagem recebida ou dados de imagem também podem ser uma imagem pré- processada 19 (ou dados de imagem pré-processados 19). Por razões de simplicidade, a seguinte descrição refere-se à imagem 17. A imagem 17 também pode ser referida 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, imagens previamente codificadas e / ou decodificadas da mesma sequência de vídeo, ou seja, a sequência de vídeo que também inclui a imagem atual).
[00102] Uma imagem (digital) é ou pode ser considerada como um arranjo ou matriz bidimensional de amostras com valores de força. Uma amostra na matriz também pode ser referida como pixel (forma abreviada de elemento de imagem) ou pel. O número de amostras em direção horizontal e vertical (ou eixo) da matriz ou imagem define o tamanho e / ou resolução da imagem. Para a representação da cor, normalmente três componentes de cor são empregados, ou seja, a imagem pode ser representada ou incluir três matrizes de amostra. No formato ou espaço de cor RBG, uma imagem compreende uma matriz de amostra vermelha, verde e azul correspondente. No entanto, na codificação de vídeo, cada pixel é tipicamente representado em um formato ou espaço de cor de luminância e crominância, por exemplo, YCbCr, que compreende um componente de luminância indicado por Y (às vezes também L é usado no lugar) e dois componentes de crominância indicados por Cb e Cr. O componente de luminância (ou luma para abreviar) Y representa o brilho ou força do nível de cinza (por exemplo, como em uma imagem em escala de cinza), enquanto os dois componentes de crominância (ou croma para abreviar) Cb e Cr representam a cromaticidade ou componentes de informações de cor. Consequentemente, uma imagem no formato YCbCr compreende uma matriz de amostra de luminância de valores de amostra de luminância (Y) e duas matrizes 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 cores. Se uma imagem for monocromática, a imagem pode compreender apenas uma matriz de amostra de luminância. Consequentemente, uma imagem pode ser, por exemplo, uma matriz de amostras de luma em formato monocromático ou uma matriz de amostras de luma e duas matrizes correspondentes de amostras de croma em formato de cor 4: 2: 0, 4: 2: 2 e 4: 4: 4.
[00103] As modalidades do codificador de vídeo 20 podem compreender uma unidade de particionamento de imagem (não representada na Figura 2) configurada para particionar a imagem 17 em uma pluralidade de blocos de imagem 203 (normalmente não sobrepostos). Esses blocos também podem ser referidos como blocos raiz, macroblocos (H.264 / AVC) ou blocos de árvore de codificação (CTB) ou unidades de árvore de codificação (CTU) (H.265 / HEVC e VVC). A unidade de particionamento de imagem pode ser configurada para usar o mesmo tamanho de bloco para todas as imagens de uma sequência de vídeo e a grade correspondente definindo o tamanho do bloco, ou para alterar o tamanho do bloco entre imagens ou subconjuntos ou grupos de imagens, e particionar cada imagem nos blocos correspondentes.
[00104] Em outras modalidades, o codificador de vídeo pode ser configurado para receber diretamente um bloco 203 da imagem 17, por exemplo, um, vários ou todos os blocos que formam a imagem 17. O bloco de imagem 203 também pode ser referido como bloco de imagem atual ou bloco de imagem a ser codificado.
[00105] Como a imagem 17, o bloco de imagem 203 novamente é ou pode ser considerado como uma matriz bidimensional ou matriz de amostras com valores de força (valores de amostra), embora de menor dimensão do que a imagem 17. Em outras palavras, o bloco 203 pode compreender, por exemplo, uma matriz de amostra (por exemplo, uma matriz de luma no caso de uma imagem monocromática 17, ou uma matriz de luma ou croma no caso de uma imagem colorida) ou três matrizes de amostra (por exemplo, uma matriz de luma e duas de croma no caso de uma imagem colorida 17) ou qualquer outro número e / ou tipo de matrizes dependendo do formato de cor aplicado. O número de amostras em direção horizontal e vertical (ou eixo) do bloco 203 define o tamanho de bloco
203. Por conseguinte, um bloco pode, por exemplo, compreender uma matriz MxN (coluna M por linha N) de amostras, ou uma matriz MxN de coeficientes de transformada.
[00106] As modalidades do codificador de vídeo 20, conforme mostrado na Figura 2, podem ser configuradas para codificar a imagem 17 bloco a bloco, por exemplo, a codificação e a predição são realizadas por bloco 203.
[00107] As modalidades do codificador de vídeo 20, conforme mostrado na Figura 2, podem ser adicionalmente configuradas para particionar e / ou codificar a imagem usando fatias (também chamadas de fatias de vídeo), em que uma imagem pode ser particionada ou codificada usando uma ou mais fatias (normalmente sem sobreposição), e cada fatia pode compreender um ou mais blocos (por exemplo, CTUs).
[00108] As modalidades do codificador de vídeo 20, como mostrado na Figura 2, podem ser adicionalmente configuradas para particionar e / ou codificar a imagem usando grupos de peças (também referidos como grupos de peças de vídeo) e / ou fatias / peças (também referidos como peças de vídeo), em que uma imagem pode ser particionada ou codificada usando um ou mais grupos de peças (normalmente não sobrepostos), e cada grupo de peças pode compreender, por exemplo, um ou mais blocos (por exemplo, CTUs) ou uma ou mais peças, em que cada peça, por exemplo, pode ter forma retangular e pode compreender um ou mais blocos (por exemplo, CTUs), por exemplo, blocos completos ou fracionários. Cálculo Residual
[00109] A unidade de cálculo residual 204 pode ser configurada para calcular um bloco residual 205 (também referido como residual 205) com base no bloco de imagem 203 e um bloco de predição 265 (detalhes adicionais sobre o bloco de predição 265 são fornecidos posteriormente), por exemplo, subtraindo valores de amostra do bloco de predição 265 a partir 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
[00110] A unidade de processamento de transformada 206 pode ser 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.
[00111] A unidade de processamento de transformada 206 pode ser configurada para aplicar aproximações inteiras de DCT / DST, como as transformadas especificadas para H.265 / HEVC. Comparado a uma transforma de DCT ortogonal, tais aproximações inteiras são tipicamente escalonadas por um determinado fator. A fim de preservar a norma do bloco residual que é processado pelas transformadas direta e inversa, fatores de escalonamento adicionais são aplicados como parte do processo de transformada. Os fatores de escalonamento são normalmente escolhidos com base em certas restrições, como fatores de escalonamento sendo uma potência de dois para operações de desvio, profundidade de bits dos coeficientes de transformada, compensação entre precisão e custos de implementação, etc. Fatores de escalonamento específicos são, por exemplo, especificados para a transformada inversa, por exemplo, pela unidade de processamento de transformada inversa 212 (e a transformada inversa correspondente, por exemplo, pela unidade de processamento de transformada inversa 312 no decodificador de vídeo 30) e fatores de escalonamento correspondentes para a transformação direta, por exemplo, pela unidade de processamento de transformada 206, em um codificador 20 podem ser especificados em conformidade.
[00112] As modalidades do codificador de vídeo 20 (respectivamente, unidade de processamento de transformada 206) podem ser configuradas para emitir parâmetros de transformada, por exemplo, um tipo de transformada ou transformadas, por exemplo, diretamente ou codificados ou comprimidos através da unidade de codificação de entropia 270, de modo que, por exemplo, o decodificador de vídeo 30 pode receber e usar os parâmetros de transformada para decodificação. Quantização
[00113] A unidade de quantização 208 pode ser configurada para quantizar os coeficientes de transformada 207 para obter coeficientes quantizados 209, por exemplo, aplicando quantização escalar ou quantização vetorial. Os coeficientes quantizados 209 também podem ser referidos como coeficientes de transformada quantizados 209 ou coeficientes residuais quantizados 209.
[00114] 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 um coeficiente de transformada de m bits durante a quantização, onde 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, escalamento diferente pode ser aplicado para alcançar uma quantização mais fina ou mais grosseira. Tamanhos de passo de quantização menores correspondem a quantização mais fina, enquanto tamanhos de passo de quantização maiores correspondem a quantização mais grosseira. O tamanho de passo de quantização aplicável pode ser indicado por um parâmetro de quantização (QP). O parâmetro de quantização pode, por exemplo, ser um índice para um conjunto predefinido de tamanhos de passos de quantização aplicáveis.
Por exemplo, pequenos parâmetros de quantização podem corresponder a quantização fina (tamanhos de passos de quantização pequenos) e parâmetros de quantização grandes podem corresponder a quantização grosseira (tamanhos de passos de quantização grandes) ou vice-versa.
A quantização pode incluir a divisão por um tamanho de passo de quantização e uma desquantização correspondente e / ou a desquantização inversa, por exemplo, por unidade de quantização inversa 210, pode incluir multiplicação pelo tamanho de passo de quantização.
As modalidades de acordo com alguns padrões, por exemplo, HEVC, podem ser configuradas para usar um parâmetro de quantização para determinar o tamanho de passo de quantização.
Geralmente, o tamanho de passo 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.
Fatores de escalonamento adicionais podem ser introduzidos para quantização e desquantização para restaurar a norma do bloco residual, que pode ser modificada por causa do escalamento usado na aproximação de ponto fixo da equação para o tamanho de passo de quantização e parâmetro de quantização.
Em uma implementação de exemplo, o dimensionamento da transformada inversa e a desquantização podem ser combinados.
Alternativamente, tabelas de quantização personalizadas podem ser usadas e sinalizadas a partir 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 dos passos de quantização.
[00115] As modalidades do codificador de vídeo 20 (respectivamente, unidade de quantização 208) podem ser configuradas para emitir parâmetros de quantização (QP), por exemplo, diretamente ou codificados por meio da unidade de codificação de entropia 270, de modo que, por exemplo, o decodificador de vídeo 30 possa receber e aplicar os parâmetros de quantização para decodificação. Quantização Inversa
[00116] 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 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 passo de quantização como a unidade de quantização 208. Os coeficientes desquantizados 211 também podem ser referidos como coeficientes residuais desquantizados 211 e correspondem - embora normalmente não sejam idênticos aos coeficientes de transformada devido à perda por quantização - aos coeficientes de transformada 207. Transformada Inversa
[00117] 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) ou outras transformadas inversas, para obter um bloco residual 213 (ou coeficientes desquantizados correspondentes 213) no domínio da amostra. O bloco residual reconstruído 213 também pode ser referido como bloco de transformada 213. Reconstrução
[00118] A unidade de reconstrução 214 (por exemplo, adicionador ou somador 214) é configurada para adicionar o bloco de transformada 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, adicionando - amostra por amostra - os valores de amostra do bloco residual reconstruído 213 e os valores de amostra do bloco de predição 265. Filtragem
[00119] A unidade de filtro de loop 220 (ou "filtro de loop" para abreviar 220) é configurada para filtrar o bloco reconstruído 215 para obter um bloco filtrado 221 ou, em geral, para filtrar amostras reconstruídas para obter amostras filtradas. A unidade de filtro de loop é, por exemplo, configurada para suavizar as transições de pixel, ou de outra forma melhorar a qualidade de vídeo. A unidade de filtro de loop 220 pode compreender um ou mais filtros de loop, como um filtro de deblocagem, um filtro de deslocamento adaptativo de amostra (SAO) ou um ou mais outros filtros, por exemplo, um filtro bilateral, um filtro de loop adaptativo (ALF), um filtro de nitidez, um filtro de suavização, ou um filtro colaborativo, ou qualquer combinação dos mesmos. Embora a unidade de filtro de loop 220 seja mostrada na Figura 2 como sendo um filtro de loop, em outras configurações, a unidade de filtro de loop 220 pode ser implementada como um filtro pós-loop. O bloco filtrado 221 também pode ser referido como bloco reconstruído filtrado 221.
[00120] As modalidades do codificador de vídeo 20 (respectivamente, unidade de filtro de loop 220) podem ser configuradas para emitir parâmetros de filtro de loop (tais como informações de deslocamento adaptativo de amostra), por exemplo, diretamente ou codificados através da unidade de codificação de entropia 270, de modo que, por exemplo, um decodificador 30 pode receber e aplicar os mesmos parâmetros de filtro de loop ou respectivos filtros de loop para decodificação. Buffer de Imagens Decodificadas
[00121] O buffer de imagens decodificadas (DPB) 230 pode ser uma memória que armazena imagens de referência, ou em dados de imagem de referência geral, para codificar 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, como memória dinâmica de acesso aleatório (DRAM), incluindo DRAM síncrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) ou outros tipos de dispositivos de memória. O buffer de imagens decodificadas (DPB) 230 pode ser configurado para armazenar um ou mais blocos filtrados
221. O buffer de imagens decodificadas 230 pode ser adicionalmente configurado para armazenar outros blocos previamente filtrados, por exemplo, blocos previamente reconstruídos e filtrados 221, da mesma imagem atual ou de diferentes imagens, por exemplo, imagens previamente reconstruídas, e podem fornecer imagens completas previamente reconstruídas, ou seja, imagens decodificadas (e blocos de referência e amostras correspondentes) e / ou uma imagem atual parcialmente reconstruída (e blocos de referência e amostras correspondentes), por exemplo, para interpredição. O buffer de imagens decodificadas (DPB) 230 pode também ser configurado para armazenar um ou mais blocos reconstruídos não filtrados 215 ou, em geral, amostras reconstruídas não filtradas, por exemplo, se o bloco reconstruído 215 não for filtrado pela unidade de filtro de loop 220 ou qualquer outra versão processada adicional dos blocos reconstruídos ou amostras. Seleção de Modo (Particionamento e Predição)
[00122] A unidade de seleção de modo 260 compreende unidade de particionamento 262, unidade de interpredição 244 e unidade de intrapredição 254 e é configurada para receber ou obter dados de imagem original, por exemplo, um bloco original 203 (bloco atual 203 da imagem atual 17), e dados de imagem reconstruída, por exemplo, amostras reconstruídas filtradas e / ou não filtradas ou blocos da mesma imagem (atual) e / ou de uma ou uma pluralidade de imagens previamente decodificadas, por exemplo, do buffer de imagens decodificadas 230 ou outros buffers (por exemplo, buffer de linha, não mostrado). Os dados de imagem reconstruída são usados como dados de imagem de referência para predição, por exemplo, interpredição ou intrapredição, para obter um bloco de predição 265 ou preditor 265.
[00123] A unidade de seleção de modo 260 pode ser configurada para determinar ou selecionar um particionamento para um modo de predição de bloco atual (incluindo nenhum particionamento) e um modo de predição (por exemplo, um modo intra ou interpredição) e gerar um bloco de predição correspondente 265, que é usado para o cálculo do bloco residual 205 e para a reconstrução do bloco reconstruído
215.
[00124] As modalidades da unidade de seleção de modo 260 podem ser configuradas para selecionar o particionamento e o modo de predição (por exemplo, daqueles suportados por ou disponíveis para a unidade de seleção de modo 260), que fornecem a melhor combinação ou em outras palavras o residual mínimo (residual 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 260 pode ser configurada para determinar o modo de particionamento e predição com base na otimização de distorção de taxa (RDO), ou seja, selecionar o modo de predição que fornece uma distorção de taxa mínima. Termos como "melhor", "mínimo", "ótimo" etc., neste contexto, não se referem necessariamente a um "melhor" geral, "mínimo", "ótimo", etc., mas também podem referir-se ao cumprimento de um critério de terminação ou seleção como um valor excedendo ou caindo abaixo de uma fronteira ou outras restrições levando potencialmente a uma "seleção subótima", mas reduzindo a complexidade e o tempo de processamento.
[00125] Em outras palavras, a unidade de particionamento 262 pode ser configurada para particionar o bloco 203 em partições de bloco menores ou sub-blocos (que novamente formam blocos), por exemplo, iterativamente usando particionamento de árvore quádrupla (QT), particionamento binário (BT) ou particionamento de árvore tripla (TT) ou qualquer combinação dos mesmos, 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 o os modos de predição são aplicados a cada uma das partições de bloco ou sub-blocos.
[00126] A seguir, o particionamento (por exemplo, por unidade de particionamento 260) e processamento de predição (por unidade de interpredição 244 e unidade de intrapredição 254) realizados por um codificador de vídeo de exemplo 20 serão explicados em mais detalhes. Particionamento
[00127] A unidade de particionamento 262 pode particionar (ou dividir) um bloco atual 203 em partições menores, por exemplo, blocos menores de tamanho quadrado ou retangular. Esses blocos menores (que também podem ser chamados de sub-blocos) podem ser particionados em partições ainda menores. Isso também é referido como particionamento de árvore ou particionamento de árvore hierárquica, em que um bloco raiz, por exemplo, no nível de árvore raiz 0 (nível de hierarquia 0, profundidade 0), pode ser particionado recursivamente, por exemplo, particionado em dois ou mais blocos de um próximo nível de árvore inferior, por exemplo, nós no nível de árvore 1 (nível de hierarquia 1, profundidade 1), em que esses blocos podem ser novamente particionados em dois ou mais blocos de um próximo nível inferior, por exemplo, nível de árvore 2 (nível de hierarquia 2, profundidade 2), etc. até que o particionamento seja encerrado, por exemplo, porque um critério de encerramento é atendido, por exemplo, uma profundidade máxima da árvore ou tamanho mínimo do bloco é alcançado. Os blocos que não são particionados posteriormente também são chamados de blocos-folha ou nós-folha da árvore. Uma árvore que usa particionamento em duas partições é chamada de árvore binária (BT), uma árvore que usa particionamento em três partições é chamada de árvore ternária (TT), e uma árvore que usa particionamento em quatro partições é chamada de árvore quádrupla (QT).
[00128] Como mencionado antes, o termo "bloco", conforme usado neste documento, pode ser uma porção, em particular uma porção quadrada ou retangular, de uma imagem. Com referência, por exemplo, a HEVC e VVC, o bloco pode ser ou corresponder a uma unidade de árvore de codificação (CTU), uma unidade de codificação (CU), uma unidade de predição (PU), e uma unidade de transformada (TU) e / ou aos blocos correspondentes, por exemplo, um bloco de árvore de codificação (CTB), um bloco de codificação (CB), um bloco de transformada (TB) ou bloco de predição (PB).
[00129] Por exemplo, uma unidade de árvore de codificação (CTU) pode ser ou compreender um CTB de amostras de luma, dois CTBs correspondentes de amostras de croma de uma imagem que tem três matrizes de amostra ou um CTB de amostras de uma imagem monocromática ou uma imagem que é codificada usando três planos de cores separados e estruturas de sintaxe usadas para codificar as amostras. Correspondentemente, um bloco de árvore de codificação (CTB) pode ser um bloco NxN de amostras para algum valor de N de modo que a divisão de um componente em CTBs seja um particionamento. Uma unidade de codificação (CU) pode ser ou compreender um bloco de codificação de amostras de luma, dois blocos de codificação correspondentes de amostras de croma de uma imagem que tem três matrizes de amostra ou um bloco de codificação de amostras de uma imagem monocromática ou uma imagem que é codificada usando três planos de cores e estruturas de sintaxe separados usados para codificar as amostras. Correspondentemente, um bloco de codificação (CB) pode ser um bloco MxN de amostras para alguns valores de M e N de modo que a divisão de um CTB em blocos de codificação seja um particionamento.
[00130] Em modalidades, por exemplo, de acordo com HEVC, uma unidade de árvore de codificação (CTU) pode ser dividida em CUs usando uma estrutura de árvore quádrupla denotada como árvore de codificação. A decisão de codificar uma área de imagem usando predição interimagem (temporal) ou intraimagem (espacial) é feita no nível de CU. Cada CU pode ser dividida em uma, duas ou quatro PUs de acordo com o 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 na PU. Depois de obter o bloco residual aplicando o processo de predição com base no tipo de divisão de PU, uma CU pode ser particionada em unidades de transformada (TUs) de acordo com outra estrutura de árvore quádrupla semelhante à árvore de codificação para a CU.
[00131] Em modalidades, por exemplo, de acordo com o padrão de codificação de vídeo mais recente atualmente em desenvolvimento, que é referido como Codificação de Vídeo Versátil (VVC), um particionamento de árvore quádrupla e árvore binária (QTBT) combinado é, por exemplo, usado para particionar um bloco de codificação. Na estrutura de bloco de QTBT, uma CU pode ter uma forma quadrada ou retangular.
Por exemplo, uma unidade de árvore de codificação (CTU) é primeiro particionada por uma estrutura de árvore quádrupla. Os nós folhas de árvore quádrupla são posteriormente particionados por uma estrutura de árvore binária ou ternária (ou tripla). Os nós folhas de árvore de particionamento são chamados de unidades de codificação (CUs), e essa segmentação é usada para processamento de predição e transformada sem qualquer particionamento adicional. Isso significa que a CU, PU e TU têm o mesmo tamanho de bloco na estrutura de bloco de codificação de QTBT. Em paralelo, múltiplas partições, por exemplo, partição de árvore tripla, podem ser usadas em conjunto com a estrutura de bloco de QTBT.
[00132] Em um exemplo, a unidade de seleção de modo 260 do codificador de vídeo 20 pode ser configurada para realizar qualquer combinação das técnicas de particionamento aqui descritas.
[00133] Conforme descrito acima, o codificador de vídeo 20 é configurado para determinar ou selecionar o melhor ou um modo de previsão ideal a partir de um conjunto de modos de predição (por exemplo, predeterminados). O conjunto de modos de predição pode compreender, por exemplo, modos de intrapredição e / ou modos de interpredição. Intrapredição
[00134] O conjunto de modos de intrapredição pode compreender 35 modos de intrapredição diferentes, por exemplo, modos não direcionais como modo DC (ou médio) e modo planar, ou modos direcionais, por exemplo, conforme definido em HEVC, ou pode compreender 67 modos de intrapredição, por exemplo, modos não direcionais, como modo DC (ou médio) e modo planar, ou modos direcionais, por exemplo, conforme definido para VVC.
[00135] A unidade de intrapredição 254 é configurada para usar amostras reconstruídas de blocos vizinhos da mesma imagem atual para gerar um bloco de intrapredição 265 de acordo com um modo de intrapredição do conjunto de modos de intrapredição.
[00136] A unidade de intrapredição 254 (ou, em geral, a unidade de seleção de modo 260) é adicionalmente configurada para emitir parâmetros de intrapredição (ou em informações gerais indicativas do modo de intrapredição selecionado para o bloco) para a unidade de codificação de entropia 270 em forma de elementos de sintaxe 266 para inclusão nos dados de imagem codificados 21, de modo que, por exemplo, o decodificador de vídeo 30 possa receber e usar os parâmetros de predição para decodificação. Interpredição
[00137] O conjunto de (ou possíveis) modos de interpredição depende das imagens de referência disponíveis (ou seja, imagens anteriores pelo menos parcialmente decodificadas, por exemplo, armazenadas em DBP 230) e outros parâmetros de interpredição, por exemplo, se a imagem de referência inteira ou apenas uma parte, por exemplo, uma área de janela de busca em torno da área do bloco atual, da imagem de referência é usada para pesquisar o melhor bloco de referência correspondente, e / ou por exemplo, se a interpolação de pixel é aplicada, por exemplo, interpolação de meio / semi-pel, e / ou interpolação de um quarto de pel, ou não.
[00138] Adicional aos modos de predição acima, o modo de salto e / ou o modo direto podem ser aplicados.
[00139] A unidade de interpredição 244 pode incluir uma unidade de estimativa de movimento (ME) e uma unidade de compensação de movimento (MC) (ambas não mostradas na Figura 2). A unidade de estimativa de movimento pode ser configurada para receber ou obter o bloco de imagem 203 (bloco de imagem atual 203 da imagem atual 17) e uma imagem decodificada 231, ou pelo menos um ou uma pluralidade de blocos previamente reconstruídos, por exemplo, blocos reconstruídos de um ou uma pluralidade de outras / diferentes imagens previamente decodificadas 231, para estimativa de movimento. Por exemplo, uma sequência de vídeo pode compreender a imagem atual e as imagens previamente decodificadas 231, ou em outras palavras, a imagem atual e as imagens previamente decodificadas 231 podem fazer parte de ou formar uma sequência de imagens formando uma sequência de vídeo.
[00140] O codificador 20 pode, por exemplo, ser configurado para selecionar um bloco de referência a partir de uma pluralidade de blocos de referência das mesmas 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 interpredição para a unidade de estimativa de movimento. Este deslocamento também é chamado de vetor de movimento (MV).
[00141] A unidade de compensação de movimento é configurada para obter, por exemplo, receber, um parâmetro de interpredição e realizar a interpredição com base em ou usando o parâmetro de interpredição para obter um bloco de interpredição 265. A compensação de movimento, realizada pela unidade de compensação de movimento, pode envolver buscar ou gerar o bloco de predição com base no vetor de movimento / de bloco determinado pela estimativa de movimento, possivelmente realizando interpolações para precisão de subpixel. A filtragem de interpolação pode gerar amostras de pixel adicionais a partir de amostras de pixel conhecidas, aumentando assim potencialmente o número de blocos de predição candidatos que podem ser usados para codificar um bloco de imagem. Ao receber o vetor de movimento para a PU do bloco de imagem atual, a unidade de compensação de movimento pode localizar o bloco de predição para o qual o vetor de movimento aponta em uma das listas de imagens de referência.
[00142] A unidade de compensação de movimento também pode gerar elementos de sintaxe associados aos blocos e fatias de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de imagem da fatia de vídeo. Além ou como uma alternativa para fatias e respectivos elementos de sintaxe, grupos de peças e / ou peças e respectivos elementos de sintaxe podem ser gerados ou usados. Codificação de Entropia
[00143] A unidade de codificação de entropia 270 é configurada para aplicar, por exemplo, um algoritmo ou esquema de codificação de entropia (por exemplo, um esquema de codificação de comprimento variável (VLC), um esquema de VLC adaptativo de contexto (CAVLC), um esquema de codificação aritmética, uma binarização, uma codificação aritmética binária adaptativa de contexto (CABAC), codificação aritmética binária adaptativa de contexto baseada em sintaxe (SBAC), codificação de entropia de particionamento de intervalo de probabilidade (PIPE) ou outra metodologia ou técnica de codificação de entropia) ou desvio (sem compressão) nos coeficientes quantizados 209, parâmetros de interpredição, parâmetros de intrapredição, parâmetros de filtro de loop e / ou outros elementos de sintaxe para obter dados de imagem codificados 21 que podem ser emitidos através da saída 272, por exemplo, na forma de um fluxo de bits codificado 21, de modo que, por exemplo, o decodificador de vídeo 30 pode receber e usar os parâmetros de decodificação. O fluxo de bits codificado 21 pode ser transmitido para o decodificador de vídeo 30 ou armazenado em uma memória para transmissão ou recuperação posterior pelo decodificador de vídeo 30.
[00144] Outras variações estruturais do codificador de vídeo 20 podem ser usadas para codificar o fluxo de vídeo. Por exemplo, um codificador não baseado em transformada 20 pode quantizar o sinal residual diretamente sem a unidade de processamento de transformada 206 para certos 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. Decodificador e Método de Decodificação
[00145] A Figura 3 mostra um exemplo de um decodificador de vídeo 30 que é configurado para implementar as técnicas desse presente pedido. O decodificador de vídeo 30 é configurado para receber dados de imagem codificados 21 (por exemplo, fluxo de bits codificado 21), por exemplo, codificado pelo codificador 20, para obter uma imagem decodificada 331. Os dados de imagem codificados ou fluxo de bits compreendem informações para decodificar os dados de imagem codificados, por exemplo, dados que representam blocos de imagem de uma fatia de vídeo codificada (e / ou grupos de peças ou peças) e elementos de sintaxe associados.
[00146] No exemplo da Figura 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 filtro de loop 320, uma buffer de imagens decodificadas (DBP) 330, uma unidade de aplicação de modo 360, uma unidade de interpredição 344 e uma unidade de intrapredição 354. A unidade de interpredição 344 pode ser ou incluir uma unidade de compensação de movimento. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação geralmente recíproca para a passagem de codificação descrita em relação ao codificador de vídeo 100 da Figura 2.
[00147] Conforme explicado no que diz respeito ao codificador 20, a unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o filtro de loop 220, o buffer de imagens decodificadas (DPB) 230, a unidade de interpredição 344 e a unidade de intrapredição 354 também são referidos como formando o "decodificador embutido" do codificador de vídeo 20. Por conseguinte, 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 212, a unidade de reconstrução 314 pode ser idêntica em função à unidade de reconstrução 214, o filtro de loop 320 pode ser idêntico em função ao filtro de loop 220 e o buffer de imagens decodificadas 330 pode ser idêntico em função ao buffer de imagens decodificadas 230. Portanto, as explicações fornecidas para as respectivas unidades e funções do codificador de vídeo 20 se aplicam correspondentemente às respectivas unidades e funções do decodificador de vídeo 30. Decodificação de Entropia
[00148] A unidade de decodificação de entropia 304 é configurada para analisar o fluxo de bits 21 (ou em dados de imagem codificados em geral 21) e realizar, por exemplo, 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 mostrado na Figura 3), por exemplo, qualquer um ou todos os parâmetros de interpredição (por exemplo, índice de imagem de referência e vetor de movimento), parâmetro de intrapredição (por exemplo, modo de intrapredição ou índice), parâmetros de transformada, parâmetros de quantização, parâmetros de filtro de loop e / ou outros elementos de sintaxe. A unidade de decodificação de entropia 304 pode ser configurada para aplicar os algoritmos de decodificação ou esquemas correspondentes aos esquemas de codificação, conforme descrito em relação à unidade de codificação de entropia 270 do codificador 20. A unidade de decodificação de entropia 304 pode ser configurada adicionalmente para fornecer parâmetros de interpredição, parâmetro de intrapredição e / ou outros elementos de sintaxe para a unidade de aplicação de modo 360 e outros parâmetros para outras unidades do decodificador 30. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e / ou nível de bloco de vídeo. Além ou como uma alternativa às fatias e respectivos elementos de sintaxe, grupos de peças e / ou peças e respectivos elementos de sintaxe podem ser recebidos e / ou usados. Quantização Inversa
[00149] A unidade de quantização inversa 310 pode ser configurada para receber parâmetros de quantização (QP) (ou em informações gerais relacionadas à quantização inversa) e coeficientes quantizados a partir dos dados de imagem codificados 21 (por exemplo, por análise e / ou decodificação, por exemplo, por unidade de decodificação de entropia 304) e aplicar com base nos parâmetros de quantização uma quantização inversa nos coeficientes quantizados decodificados 309 para obter coeficientes desquantizados 311, que também podem ser referidos como coeficientes de transformada 311. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização determinado pelo codificador de vídeo 20 para cada bloco de vídeo na fatia de vídeo (ou bloco ou grupos de peças) para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa que deve ser aplicado. Transformada Inversa
[00150] A unidade de processamento de transformada inversa 312 pode ser configurada para receber coeficientes desquantizados 311, também referidos como coeficientes de transformada 311, e para aplicar uma transformação aos coeficientes desquantizados 311 a fim de obter blocos residuais reconstruídos 213 no domínio de amostra. Os blocos residuais reconstruídos 213 também podem ser referidos como blocos de transformada 313. A transformada pode ser uma transformada inversa, por exemplo, uma DCT inversa, uma DST inversa, uma transformada inteira inversa, ou um processo de transformada inversa conceitualmente semelhante. A unidade de processamento de transformada inversa 312 pode ainda ser configurada para receber parâmetros de transformada ou informações correspondentes a partir dos dados de imagem codificados 21 (por exemplo, por análise e / ou decodificação, por exemplo, por unidade de decodificação de entropia 304) para determinar a transformada a ser aplicada aos coeficientes desquantizados 311. Reconstrução
[00151] A unidade de reconstrução 314 (por exemplo, adicionador ou somador 314) pode ser configurada para adicionar o bloco residual reconstruído 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 residual reconstruído 313 e os valores de amostra do bloco de predição 365. Filtragem
[00152] A unidade de filtro de loop 320 (ou no loop de codificação ou após o 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 outra forma, melhorar a qualidade do vídeo. A unidade de filtro de loop 320 pode compreender um ou mais filtros de loop, como um filtro de deblocagem, um filtro de deslocamento adaptativo de amostra (SAO) ou um ou mais outros filtros, por exemplo, um filtro bilateral, um filtro de loop adaptativo (ALF), um filtro de nitidez, um filtro de suavização ou um filtro colaborativo, ou qualquer combinação dos mesmos. Embora a unidade de filtro de loop 320 seja mostrada na Figura 3 como sendo um filtro em loop, em outras configurações, a unidade de filtro de loop 320 pode ser implementada como um filtro pós-loop. Buffer de Imagens Decodificadas
[00153] Os blocos de vídeo decodificados 321 de uma imagem são então armazenados em buffer de imagens decodificadas 330, que armazena as imagens decodificadas 331 como imagens de referência para compensação de movimento subsequente para outras imagens e / ou para exibição de saída, respectivamente.
[00154] O decodificador 30 é configurado para emitir a imagem decodificada 311, por exemplo, através da saída 312, para apresentação ou visualização a um usuário. Predição
[00155] A unidade de interpredição 344 pode ser idêntica à unidade de interpredição 244 (em particular à unidade de compensação de movimento) e a unidade de intrapredição 354 pode ser idêntica à unidade de interpredição 254 em função, e realiza decisões de divisão ou particionamento e predição com base nos parâmetros de particionamento e / ou predição ou respectivas informações recebidas dos dados de imagem codificados 21 (por exemplo, por análise e / ou decodificação, por exemplo, por unidade de decodificação de entropia 304). A unidade de aplicação de modo 360 pode ser configurada para realizar a predição (intra ou interpredição) por bloco com base em imagens reconstruídas, blocos ou respectivas amostras (filtradas ou não filtradas) para obter o bloco de predição 365.
[00156] Quando a fatia de vídeo é codificada como uma fatia intracodificada (I), a unidade de intrapredição 354 da unidade de aplicação de modo 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 intrapredição sinalizado e dados a partir de blocos previamente decodificados da imagem atual. Quando a imagem de vídeo é codificada como uma fatia intercodificada (isto é, B ou P), a unidade de interpredição 344 (por exemplo, unidade de compensação de movimento) da unidade de aplicação de modo 360 é configurada para produzir 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 a partir da unidade de decodificação de entropia 304. Para interpredição, os blocos de predição podem ser produzidos a partir 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 quadro de referência, Lista 0 e Lista 1, usando técnicas de construção padrão com base em imagens de referência armazenadas no DPB 330. O mesmo ou semelhante pode ser aplicado para ou por modalidades usando grupos de peças (por exemplo, grupos de peças de vídeo) e / ou peças (por exemplo, blocos de vídeo) em adição ou alternativamente às fatias (por exemplo, fatias de vídeo), por exemplo, um vídeo pode ser codificado usando grupos de peças I, P ou B e / ou peças.
[00157] A unidade de aplicação de modo 360 é configurada para determinar as informações de predição para um bloco de vídeo da fatia de vídeo atual analisando os vetores de movimento ou informações relacionadas e outros elementos de sintaxe, e usa 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 aplicação de modo 360 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, intra ou interpredição) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de interpredição (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, vetores de movimento para cada bloco de vídeo codificado inter da fatia, status de interpredição para cada bloco de vídeo codificado da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual. O mesmo ou semelhante pode ser aplicado para ou por modalidades usando grupos de peças (por exemplo, grupos de peças de vídeo) e / ou blocos (por exemplo, peças de vídeo), além ou alternativamente a fatias (por exemplo, fatias de vídeo), por exemplo, um vídeo pode ser codificado usando I, grupos de peças e / ou peças P ou B.
[00158] As modalidades do decodificador de vídeo 30, como mostrado na Figura 3, podem ser configuradas para particionar e / ou decodificar a imagem usando fatias (também referidas como fatias de vídeo), em que uma imagem pode ser particionada ou decodificada usando uma ou mais fatias (tipicamente sem sobreposição), e cada fatia pode compreender um ou mais blocos (por exemplo, CTUs).
[00159] As modalidades do decodificador de vídeo 30, conforme mostrado na Figura 3, podem ser configuradas para particionar e / ou decodificar a imagem usando grupos de peças (também referidos como grupos de peças de vídeo) e / ou peças (também referidas como peças de vídeo), em que uma imagem pode ser particionada ou decodificada usando um ou mais grupos de peças (tipicamente não sobrepostos), e cada grupo de peças pode compreender, por exemplo, um ou mais blocos (por exemplo, CTUs) ou um ou mais peças, em que cada peça, por exemplo, pode ser de forma retangular e pode compreender um ou mais blocos (por exemplo, CTUs), por exemplo, blocos completos ou fracionários.
[00160] Outras variações do decodificador de vídeo 30 podem ser usadas para decodificar os dados de imagem codificados 21. Por exemplo, o decodificador 30 pode produzir o fluxo de vídeo de saída sem a unidade de filtragem de loop
320. Por exemplo, um decodificador não baseado em transformada 30 pode quantizar inversamente o sinal residual diretamente sem a unidade de processamento de transformada inversa 312 para certos 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.
[00161] Deve ser entendido que, no codificador 20 e no decodificador 30, um resultado de processamento de um passo atual pode ser adicionalmente processado e, em seguida, enviado para o próximo passo. Por exemplo, após a filtragem de interpolação, derivação de vetor de movimento ou filtragem de loop, uma operação adicional, como Corte ou desvio, pode ser realizada no resultado de processamento da filtragem de interpolação, derivação de vetor de movimento ou filtragem de loop.
[00162] Deve ser notado que operações adicionais podem ser aplicadas aos vetores de movimento derivados de bloco atual (incluindo, mas não limitado a vetores de movimento de ponto de controle de modo afim, vetores de movimento de sub-bloco em modos afins, planos, ATMVP, vetores de movimento temporais e assim por diante). Por exemplo, o valor de vetor de movimento é restrito a um intervalo predefinido de acordo com seu bit de representação. Se o bit de representação de vetor de movimento for bitDepth, então o intervalo é -2 ^ (bitDepth-1) ~ 2 ^ (bitDepth-1) -1, onde “^” significa exponenciação. Por exemplo, se bitDepth for definido igual a 16, o intervalo será -32768 ~ 32767; se bitDepth for definido igual a 18, o intervalo é -131072 ~
131071. Por exemplo, o valor do vetor de movimento derivado (por exemplo, os MVs de quatro sub-blocos 4x4 dentro de um bloco 8x8) é restrito de tal forma que a diferença máxima entre as partes inteiras dos quatro MVs do sub-bloco 4x4 não é mais do que N pixels, como no máximo 1 pixel. Aqui fornece dois métodos para restringir o vetor de movimento de acordo com bitDepth.
[00163] Método 1: remover o MSB (bit mais significativo) de sobrefluxo por meio das seguintes operações: ux = (mvx + 2bitDepth)% 2bitDepth (1) mvx = (ux > = 2bitDepth-1)? (ux - 2bitDepth): ux (2) uy = (mvy + 2bitDepth)% 2bitDepth (3) mvy = (uy > = 2bitDepth-1)? (uy - 2bitDepth): uy (4) onde mvx é um componente horizontal de um vetor de movimento de um bloco de imagem ou um sub-bloco, mvy é um componente vertical de um vetor de movimento de um bloco de imagem ou um sub-bloco, e ux e uy indicam um valor intermediário.
[00164] Por exemplo, se o valor de mvx for -32769, após a aplicação da fórmula (1) e (2), o valor resultante será 32767. Em sistema de computador, os números decimais são armazenados como complemento de dois. O complemento de dois de -32769 é 1,0111,1111,1111,1111 (17 bits). Então, o MSB é descartado, então o complemento de dois resultante é 0111,1111,1111,1111 (o número decimal é 32767), que é o mesmo que a saída por aplicar a fórmula (1) e (2). ux = (mvpx + mvdx +2bitDepth)% 2bitDepth (5) mvx = (ux > = 2bitDepth-1)? (ux - 2bitDepth): ux (6) uy = (mvpy + mvdy +2bitDepth)% 2bitDepth (7) mvy = (uy > = 2bitDepth-1)? (uy - 2bitDepth): uy (8)
[00165] As operações podem ser aplicadas durante a soma do mvp e mvd, conforme mostrado na fórmula (5) a (8).
[00166] Método 2: remover o MSB de sobrefluxo por cortar o valor: vx = Clip3 (-2bitDepth-1, 2bitDepth-1 -1, vx) vy = Clip3 (-2bitDepth-1, 2bitDepth-1 -1, vy) onde vx é um componente horizontal de um vetor de movimento de um bloco de imagem ou um sub-bloco, vy é um componente vertical de um vetor de movimento de um bloco de imagem ou um sub-bloco; x, y e z, respectivamente, correspondem a três valor de entrada do processo de corte de MV, e a definição de função Clip3 é como segue: x ; z < x Clip3 (x, y, z) = y ; z > y z ; de outro modo
[00167] A Figura 4 é um diagrama esquemático de um dispositivo de codificação de vídeo 400 de acordo com uma modalidade da divulgação. O dispositivo de codificação de vídeo 400 é adequado para implementar as modalidades divulgadas conforme descrito aqui. Em uma modalidade, o dispositivo de codificação de vídeo 400 pode ser um decodificador, como o decodificador de vídeo 30 da Figura 1A ou um codificador, como o codificador de vídeo 20 da Figura 1A.
[00168] O dispositivo de codificação de vídeo 400 compreende portas de ingresso 410 (ou portas de entrada 410) e unidades receptoras (Rx) 420 para receber 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 (ou portas de saída 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 óticos para elétricos (OE) e componentes elétricos para óticos (EO) acoplados às portas de ingresso 410, as unidades receptoras 420, as unidades transmissoras 440, e as portas de egresso 450 para egresso ou ingresso de sinais óticos ou elétricos.
[00169] O processador 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, as unidades receptoras 420, as 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 divulgadas 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 executadas pelo processador
430.
[00170] A memória 460 pode compreender um ou mais discos, unidades de fita e unidades de estado sólido e pode ser usada como um dispositivo de armazenamento de dados de sobrefluxo, para armazenar programas quando tais programas são selecionados para 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, por exemplo, volátil e / ou não volátil, e pode ser uma memória somente de leitura (ROM), memória de acesso aleatório (RAM), memória endereçável de conteúdo ternário (TCAM) e / ou memória de acesso aleatório estática (SRAM).
[00171] A Figura 5 é um diagrama de blocos simplificado de um aparelho 500 que pode ser usado como um ou ambos o dispositivo de origem 12 e o dispositivo de destino 14 da Figura 1 de acordo com uma modalidade exemplar.
[00172] Um processador 502 no aparelho 500 pode ser uma unidade de processamento central. Alternativamente, o processador 502 pode ser qualquer outro tipo de dispositivo, ou dispositivos múltiplos, capazes de manipular ou processar informações agora existentes ou desenvolvidas no futuro. Embora as implementações divulgadas possam ser praticadas com um único processador, como mostrado, por exemplo, o processador 502, vantagens em velocidade e eficiência podem ser alcançadas usando mais de um processador.
[00173] 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 de dispositivo de armazenamento pode ser usado como a memória 504. A memória 504 pode incluir código e dados 506 que são acessados pelo processador 502 usando um barramento 512. A memória 504 pode incluir ainda um sistema operacional 508 e programas de aplicação 510, os programas de aplicação 510 incluindo pelo menos um programa que permite ao processador 502 executar os métodos descritos aqui. Por exemplo, os programas de aplicação 510 podem incluir aplicações de 1 a N, que incluem ainda uma aplicação de codificação de vídeo que executa os métodos descritos aqui.
[00174] O aparelho 500 também pode incluir um ou mais dispositivos de saída, como uma tela 518. A tela 518 pode ser, em um exemplo, uma tela sensível ao toque que combina uma tela com um elemento sensível ao toque que é operável para detectar entradas de toque. A tela 518 pode ser acoplada ao processador 502 por meio do barramento 512.
[00175] Embora representado aqui como 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, como um cartão de memória, ou várias unidades, como múltiplos cartões de memória. O aparelho 500 pode,
assim, ser implementado em uma ampla variedade de configurações.
[00176] No JVET-L1001, o texto de rascunho do rascunho VVC 3.0, MTS pode ser habilitada no nível de sequência para inter e intrafatia individualmente. Quando a MTS está desligada, a DCT2 deve ser usada como núcleo de transformada. No entanto, na técnica anterior, como JVET-M0303, JVET-M0140 ou JVET-M0102, a transformada DST7 / DCT8 inferida é introduzida. Não há possibilidade de comutar para a transformação puramente DCT2 em todos os casos. A presente divulgação aborda o problema mencionado acima.
[00177] A presente divulgação introduz uma bandeira habilitada para DCT2 adicional, que é usada para inferir se apenas o núcleo de transformada DCT2 é usado para todos os casos na sequência, quando bandeira habilitada para DCT2 é falsa, então a bandeira habilitada para MTS de nível de sequência é ainda sinalizada. Quando a bandeira habilitada para DCT2 é verdadeira, apenas o núcleo de transformada de DCT2 deve ser usado.
[00178] Introduzir bandeira habilitada para DCT2 adicional no SPS para tornar possível a comutação para DCT2 quando a ferramenta de MST inferida estiver ativada.
7.3.2.1 Sintaxe de RBSP de conjunto de parâmetros de sequência seq_parameter_set_rbsp( ) { Descritor … ue(v) sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flag u(1) sps_mts_inter_enabled_flag u(1)
} … u(1) }
[00179] No JVET-L1001, o texto de rascunho do rascunho VVC 3.0, seleção de transformada múltipla (MTS) pode ser habilitada no nível de sequência para inter e intrafatia individualmente. Quando a MTS está desligada, a DCT2 deve ser usada como núcleo de transformada. No entanto, na técnica anterior, como JVET-M0303, JVET-M0140 ou JVET-M0102, a transformada DST7 / DCT8 inferida é introduzida. No caso desligado de nível de sequência de MTS, a técnica anterior está usando DST7 / DCT8 e DCT2 é aplicada de forma adaptativa dependendo das formas de bloco, posições ou outros recursos. No entanto, a DCT2 é desejável para ambos o projeto de codificador e do decodificador. Em outras palavras, a comutabilidade entre DCT2, DST7 ou DCT8 inferida e MTS (núcleo de transformada selecionado por RDO) é projetada na presente divulgação.
[00180] Nesta divulgação, uma bandeira habilitada para DCT2 é introduzida na sintaxe de alto nível. A fim de resolver o problema mencionado na Seção 1.1. A bandeira habilitada para DCT2 adicional na sintaxe de alto nível é usada para inferir se apenas o núcleo de transformada de DCT2 é usado para todos os casos na sequência, quando a bandeira habilitada para DCT2 é falsa, então a bandeira habilitada para MTS de nível de sequência é ainda sinalizada para inferir se MTS está habilitada para a sequência. Quando a bandeira habilitada para DCT2 é verdadeira, apenas o núcleo de transformada de DCT2 deve ser usado.
[00181] Para a bandeira habilitada para DCT2 de nível de sequência ser caso desabilitado, a bandeira de MTS de nível de sequência é ainda sinalizada como na técnica anterior do rascunho VVC 3.0 (JVET-L1001). Portanto, a ferramenta de codificação de núcleo de transformada adaptativa ou DST7DCT8 inferida, tal como (JVET-M0303, JVET- M0140 ou JVET-M0102) é usada da mesma forma que na técnica anterior.
[00182] Para a bandeira habilitada de DCT de nível de sequência ser caso habilitado, apenas DCT2 deve ser usada. Portanto, para ferramenta de codificação de núcleo de transformada adaptativa ou DST7DCT8 inferida, tal como (JVET-M0303, JVET-M0140 ou JVET-M0102) é ou inferida usando DCT2 em vez de DST7 / DCT8 ou desabilitada. A primeira modalidade da presente divulgação
[00183] Na primeira modalidade, a bandeira habilitada para DCT2 de nível de sequência é indicada no sps a seguir, a parte destacada é projetada pela presente divulgação. O codificador inclui o indicador de bandeira habilitada para DCT2 no fluxo de bits, o decodificador analisou o indicador da bandeira habilitada para DCT do fluxo de bits.
7.3.2.1 Sintaxe de RBSP de conjunto de parâmetros de sequência seq_parameter_set_rbsp( ) { Descritor … ue(v) sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flag u(1) sps_mts_inter_enabled_flag u(1) } … u(1)
}
[00184] sps_dct2_enabled_flag igual a 1 especifica que apenas o núcleo de transformada de DCT2 é usado para a unidade de transformada. sps_mts_intra_enabled_flag igual a 0 especifica que outros núcleos de transformada fora da DCT2 podem ser usados na unidade de transformada.
[00185] sps_mts_intra_enabled_flag igual a 1 especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intracodificação. sps_mts_intra_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intracodificação. Quando o sps_mts_intra_enabled_flag não está presente, o sps_mts_intra_enabled_flag é inferido como 0.
[00186] sps_mts_inter_enabled_flag especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intercodificação. sps_mts_inter_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intercodificação. Quando o sps_mts_intra_enabled_flag não está presente, o sps_mts_intra_enabled_flag é inferido como 0.
[00187] A bandeira habilitada para DCT2 é ainda usada na sintaxe de baixo nível, por exemplo, no caso de seleção de transformada adaptativa de forma (JVET-M0303), a DST7 / DCT8 inferida é usada para a borda curta do bloco retangular e DST7 é usada para o bloco quadrado quando a bandeira de MTS é indicada como desabilitada no nível de sequência. Se a MTS de nível de sequência estiver habilitada para a sequência, a adaptabilidade de forma é aplicada no caso em que a bandeira de MTS é zero e VTM usaria DCT2 para ambas as direções horizontal e vertical. No caso da bandeira de MTS ser um, o processo de seleção de transformada de VTM é seguido. Todas as três transformadas usadas (DCT2, DST7 e DCT8) são idênticas às definidas no VTM atual.
[00188] No método proposto, quando a bandeira habilitada para DCT2 é indicada como desabilitada, a seleção de núcleo adaptativa é mantida igual à da técnica anterior.
[00189] Quando a bandeira habilitada para DCT2 é indicada como habilitada, apenas DCT2 pode ser usada. A função de MTS é inferida desligada. E a seleção de transformada adaptativa de forma pode apenas inferir o uso de DCT2, nesta modalidade é o mesmo que desabilitar a seleção de transformada adaptativa de forma. A sintaxe de baixo nível correspondente é a seguinte:
8.4.4 Processo de transformação para coeficientes de transformada escalados
8.4.4.1 Geral
[00190] As entradas para este processo são: - uma localização de luma (xTbY, yTbY) especificando a amostra superior esquerda do bloco de transformada de luma atual em relação à amostra de luma superior esquerda da imagem atual, - uma variável nTbW especificando a largura do bloco de transformada atual, - uma variável nTbH especificando a altura do bloco de transformada atual, - uma variável cIdx especificando o componente de cor do bloco atual, - uma matriz (nTbW) x (nTbH) d [x][y] de coeficientes de transformada escalados com x = 0..nTbW - 1, y = 0..nTbH - 1.
[00191] A saída desse processo é a matriz (nTbW) x (nTbH) r [x][y] de amostras residuais com x = 0..nTbW - 1, y = 0..nTbH - 1.
[00192] A variável trTypeHor especificando o kernel de transformada horizontal e a variável trTypeVer especificando o kernel de transformada vertical são derivadas na Tabela 8-11 dependendo de mts_idx [xTbY][yTbY] [cIdx]. As variáveis trAdaptHorEnabled e trAdaptVerEnabled são derivadas da seguinte forma: - se sps_dct2_enabled_flag && CuPredMode [xTbY][yTbY] == MODE_INTRA &&! (CIdx> 0 && IntraPredModeC [xTbY][yTbY]> 66): trAdaptSizeMin = 4 trAdaptSizeMax = cIdx == 0? 16: 8 trAdaptHorEnabled = nTbW> = trAdaptSizeMin && nTbW <= trAdaptSizeMax? 1: 0 trAdaptVerEnabled = nTbH> = trAdaptSizeMin && nTbH <= trAdaptSizeMax? 1: 0 - caso contrário: trAdaptHorEnabled = 0 trAdaptVerEnabled = 0
[00193] As variáveis trAdaptHor e trAdaptVer são derivadas da seguinte forma: - se sps_mts_intra_enabled_flag: trAdaptHor = trAdaptHorEnabled && nTbW <nTbH? 1: 0 trAdaptVer = trAdaptVerEnabled && nTbH <nTbW? 1: 0 - caso contrário: trAdaptHor = trAdaptHorEnabled && nTbW <= nTbH? 1: 0 trAdaptVer = trAdaptVerEnabled && nTbH <= nTbW? 1: 0 Tabela 8-11 – Especificação de trTypeHor e trTypeVer dependendo de mts_idx [x][y] [cIdx] mts_idx [xTbY][yTbY] [cIdx] trTypeHor trTypeVer -1 trAdaptHor trAdaptVer 0 1 1 1 2 1 2 1 2 3 2 2 A segunda modalidade da presente divulgação
[00194] Na segunda modalidade, a bandeira habilitada para DCT2 de nível de sequência é indicada no sps a seguir, a parte destacada é projetada pela presente divulgação. O codificador inclui o indicador de bandeira habilitada para DCT2 no fluxo de bits, o decodificador analisou o indicador da bandeira habilitada para DCT do fluxo de bits.
7.3.2.1 Sintaxe de RBSP de conjunto de parâmetros de sequência seq_parameter_set_rbsp( ) { Descritor … ue(v) sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flag u(1) sps_mts_inter_enabled_flag u(1) } … u(1) }
[00195] sps_dct2_enabled_flag igual a 1 especifica que apenas o núcleo de transformada de DCT2 é usado para a unidade de transformada. sps_mts_intra_enabled_flag igual a 0 especifica que outros núcleos de transformada fora da DCT2 podem ser usados na unidade de transformada
[00196] sps_mts_intra_enabled_flag igual a 1 especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intracodificação. sps_mts_intra_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intracodificação. Quando o sps_mts_intra_enabled_flag não está presente, o sps_mts_intra_enabled_flag é inferido como 0.
[00197] sps_mts_inter_enabled_flag especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intercodificação. sps_mts_inter_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intercodificação. Quando o sps_mts_intra_enabled_flag não está presente, o sps_mts_intra_enabled_flag é inferido como 0.
[00198] A bandeira habilitada para DCT2 é ainda usada na sintaxe de baixo nível, por exemplo, no caso de transformação de sub-bloco (JVET-M0140), a DST7 / DCT8 inferida é usada depende da posição do bloco de subtransformada. Mais especificamente, as transformadas horizontal e vertical para cada posição de SBT são especificadas na Figura 6 e na Figura 7. Por exemplo, as transformadas horizontal e vertical para a posição de SBT-V 0 são DCT-8 e DST-7, respectivamente. Quando um lado da TU residual é maior que 32, a transformada correspondente é definida como DCT-2. Portanto, a transformação de sub-bloco especifica conjuntamente a colocação de peças de TU, cbf, e as transformadas horizontal e vertical de um bloco residual,
o que pode ser considerado um atalho de sintaxe para os casos em que o principal residual de um bloco está em um lado de bloco.
[00199] No método proposto, quando a bandeira habilitada para DCT2 é indicada como desabilitada, a seleção de transformação de sub-bloco é mantida igual à da técnica anterior.
[00200] Quando a bandeira habilitada para DCT2 é indicada como habilitada, apenas DCT2 pode ser usada. A função de MTS é inferida desligada. E o núcleo de transformada do sub-bloco pode apenas inferir o uso de DCT2. A sintaxe de baixo nível correspondente é anexada.
8.4.4 Processo de transformação para coeficientes de transformada escalados
8.4.4.1 Geral
[00201] As entradas para este processo são: - uma localização de luma (xTbY, yTbY) especificando a amostra superior esquerda do bloco de transformada de luma atual em relação à amostra de luma superior esquerda da imagem atual, - uma variável nTbW especificando a largura do bloco de transformada atual, - uma variável nTbH especificando a altura do bloco de transformada atual, - uma variável cIdx especificando o componente de cor do bloco atual, - uma matriz (nTbW) x (nTbH) d [x][y] de coeficientes de transformada escalados com x = 0..nTbW - 1, y = 0..nTbH - 1.
[00202] A saída desse processo é a matriz (nTbW) x (nTbH) r [x][y] de amostras residuais com x = 0..nTbW - 1,
y = 0..nTbH - 1.
[00203] Se cu_sbt_flag [xTbY][yTbY] é igual a 1, a variável trTypeHor especificando o kernel de transformada horizontal e a variável trTypeVer especificando o kernel de transformada vertical são derivadas na Tabela dependendo de cu_sbt_horizontal_flag [xTbY][yTbY] e cu_sbt_pos_flag [xTbY][yTbY].
[00204] Caso contrário (cu_sbt_flag [xTbY][yTbY] é igual a 0), a variável trTypeHor especificando o kernel de transformada horizontal e a variável trTypeVer especificando o kernel de transformada vertical são derivados nas Tabelas 8 - 16 dependendo de mts_idx [xTbY][yTbY] [cIdx]
[00205] As variáveis nonZeroW e nonZeroH são derivadas da seguinte forma: nonZeroW = Min (nTbW, 32) (8 - 810) nonZeroH = Min (nTbH, 32) (8 - 811)
[00206] A matriz (nTbW) x (nTbH) r de amostras residuais é derivada da seguinte forma:
1. Cada coluna (vertical) de coeficientes de transformada escalados d [x][y] com x = 0..nonZeroW - 1, y = 0..nonZeroH - 1 é transformada em e [x][y] com x = 0.. nonZeroW - 1, y = 0..nTbH - 1 invocando o processo de transformação unidimensional conforme especificado na cláusula 8.4.4.2 para cada coluna x = 0..nonZeroW - 1 com a altura do bloco de transformada nTbH, a altura não zero dos coeficientes de transformação escalados nonZeroH, a lista d [x][y] com y = 0..nonZeroH - 1 e a variável tipo transformada trType definida igual a trTypeVer como entradas, e a saída é a lista e [x][y] com y = 0..nTbH - 1.
2. Os valores de amostra intermediários g [x][y] com x
= 0..nonZeroW - 1, y = 0..nTbH - 1 são derivados da seguinte forma: g [x][y] = Clip3 (CoeffMin, CoeffMax, (e [x][y] + 64) >> 7) (8 - 812)
3. Cada linha (horizontal) da matriz resultante g [x][y] com x = 0..nonZeroW - 1, y = 0..nTbH - 1 é transformada em r [x][y] com x = 0.. nTbW - 1, y = 0..nTbH - 1 invocando o processo de transformação unidimensional conforme especificado na cláusula 8.4.4.2 para cada linha y = 0..nTbH - 1 com a largura do bloco de transformada nTbW, a largura não zero da matriz resultante g [x][y] diferente de zero, a lista g [x][y] com x = 0..nonZeroW - 1 e a variável tipo transformada trType definida igual a trTypeHor como entradas, e a saída é a lista r [x][y] com x = 0..nTbW - 1. Tabela 8-15 - Especificação de trTypeHor e trTypeVer dependendo de cu_sbt_horizontal_flag [x][y] e cu_sbt_pos_flag [x][y] cu_sbt_horizontal_flag cu_sbt_horizontal_flag [xTbY][yTbY] == 0 [xTbY][yTbY] == 1 cu_sbt_pos_ cu_sbt_pos_ cu_sbt_pos_ cu_sbt_pos_ flag flag flag flag [xTbY][[yTb [xTbY][[yTb [xTbY][[yTb [xTbY][[yTb Y] == 0 Y] == 1 Y] == 0 Y] == 1 sps_dct2_en sps_dct2_en sps_dct2_en sps_dct2_en trTy abled_flag? abled_flag? abled_flag abled_flag peHo 0: 2 0: 1 || nTbW> 32? || nTbW> 32? r 0: 1 0: 1 trTy sps_dct2_en sps_dct2_en sps_dct2_en sps_dct2_en peVe abled_flag abled_flag abled_flag? abled_flag? r || nTbH> 32? || nTbH> 32? 0: 2 0: 1
0: 1 0: 1 Tabela 8 - 16 - Especificação de trTypeHor e trTypeVer dependendo de mts_idx [x][y] [cIdx] mts_idx[xTbY][yTbY][cIdx] trTypeHor trTypeVer -1 0 0 0 1 1 1 2 1 2 1 2 3 2 2 A terceira modalidade da presente divulgação
[00207] Na terceira modalidade, a bandeira habilitada para DCT2 de nível de sequência é indicada no sps a seguir, a parte destacada é projetada pela presente divulgação. O codificador inclui o indicador de bandeira habilitada para DCT2 no fluxo de bits, o decodificador analisou o indicador da bandeira habilitada para DCT do fluxo de bits.
7.3.2.1 Sintaxe de RBSP de conjunto de parâmetros de sequência seq_parameter_set_rbsp( ) { Descritor … ue(v) sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flag u(1) sps_mts_inter_enabled_flag u(1) } … u(1) }
[00208] sps_dct2_enabled_flag igual a 1 especifica que apenas o núcleo de transformada de DCT2 é usado para a unidade de transformada. sps_mts_intra_enabled_flag igual a 0 especifica que outros núcleos de transformada fora da DCT2 podem ser usados na unidade de transformada.
[00209] sps_mts_intra_enabled_flag igual a 1 especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intracodificação. sps_mts_intra_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intracodificação. Quando o sps_mts_intra_enabled_flag não está presente, o sps_mts_intra_enabled_flag é inferido como 0.
[00210] sps_mts_inter_enabled_flag especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intercodificação. sps_mts_inter_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intercodificação. Quando o sps_mts_intra_enabled_flag não está presente, o sps_mts_intra_enabled_flag é inferido como 0.
[00211] A bandeira habilitada para DCT2 é ainda usada na sintaxe de baixo nível, por exemplo, no caso de transformação de sub-bloco (JVET-M0140), a DST7 / DCT8 inferida é usada depende da posição do bloco de subtransformada. Mais especificamente, as transformadas horizontal e vertical para cada posição de SBT são especificadas na Figura 6. Por exemplo, as transformadas horizontal e vertical para a posição de SBT-V 0 são DCT-8 e DST-7, respectivamente. Quando um lado da TU residual é maior que 32, a transformada correspondente é definida como DCT-
2. Portanto, a transformação de sub-bloco especifica conjuntamente a colocação de peças de TU, cbf, e as transformadas horizontal e vertical de um bloco residual, o que pode ser considerado um atalho de sintaxe para os casos em que o principal residual de um bloco está em um lado de bloco.
[00212] No método proposto, quando a bandeira habilitada para DCT2 é indicada como desabilitada, a seleção de transformação de sub-bloco é mantida igual à da técnica anterior.
[00213] Quando a bandeira habilitada para DCT2 é indicada como habilitada, apenas DCT2 pode ser usada. A função de MTS é inferida desligada. E a transformação de sub-bloco é inferida desde que não estejam disponíveis núcleos de transformada de MTS inferida possíveis.
[00214] A mudança de sintaxe correspondente no topo do JVET-M0140 é a seguinte:
7.3.2.1 Sintaxe de RBSP de conjunto de parâmetros de sequência seq_parameter_set_rbsp( ) { Descritor sps_seq_parameter_set_id ue(v) … sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { u(1) sps_mts_intra_enabled_flag sps_mts_inter_enabled_flag u(1) sps_sbt_enable_flag u(1) } if ( sps_sbt_enable_flag ) sps_sbt_max_size_64_flag u(1) …
rbsp_trailing_bits( ) }
[00215] As modalidades da presente divulgação introduzem o indicador de nível de sequência habilitado para DCT2 comutável, que fornece a possibilidade de comutar para o núcleo de transformada de DCT2 puro com a ferramenta de transformada inferida para toda a sequência ou fatia. A DCT2 é relativamente simples para computar e de caixa baixa para a largura de banda de memória em comparação com outro núcleo de transformada. Na técnica anterior, a possibilidade de usar transformada DCT2 simples é cortada pelo núcleo de transformada inferida, com o presente indicador a flexibilidade de comutação entre baixo custo / complexidade e alto desempenho é fornecida para codificador e decodificador. Nas modalidades, ambas as a possibilidades de alterações de baixo nível e alterações de alto nível são fornecidas, o que garante a consistência e o desempenho de codificação do código com múltiplas variações.
[00216] Em outras palavras, a presente divulgação fornece: Um método de codificação de vídeo de um bloco de uma imagem, compreendendo para uma amostra de uma pluralidade de amostras do bloco: obter um sinal residual resultante da predição inter ou intraimagem; inferir o uso de um núcleo de transformada de Transformada Discreta de Cosseno tipo 2, DCT2, para uma sequência do sinal residual; processar a transformação do bloco usando o núcleo de transformada inferido.
[00217] Isto é, a presente divulgação introduz uma bandeira habilitada para DCT2 adicional, que é usada para inferir se apenas núcleo de transformada de DCT2 é usado para todos os casos na sequência, quando bandeira habilitada para DCT2 é falsa, então a bandeira habilitada para MTS de nível de sequência é adicionalmente sinalizada. Quando a bandeira habilitada para DCT2 é verdadeira, apenas o núcleo de transformada de DCT2 deve ser usado. Introduzir bandeira habilitada para DCT2 adicional no SPS para tornar possível a comutação para DCT2 quando a ferramenta de MST inferida estiver ativada.
[00218] Isto é ainda ilustrado na Figura 8. Na Figura 8, no passo 1601, é fornecida uma imagem tendo blocos. No passo 1602, para uma amostra de uma pluralidade de amostras de um bloco da imagem, é obtido um sinal residual resultante da predição inter ou intraimagem. No passo 1603, é inferido o uso de um núcleo de transformada de Transformada Discreta de Cosseno tipo 2, DCT2, para uma sequência do sinal residual, em que o referido sinal residual foi obtido no passo 1602. No passo 1604, é processada a transformação do bloco usando o núcleo de transformada inferido.
[00219] No método de acordo com a presente divulgação, e conforme ilustrado de acordo com a Figura 8, o uso de DCT2 pode ser inferido a partir de uma bandeira habilitada para DCT2 de nível de sequência no Conjunto de Parâmetros de Sequência, SPS.
[00220] No método de acordo com a presente divulgação, e conforme ilustrado de acordo com a Figura 8, a bandeira habilitada para DCT2 de nível de sequência é denominada sps_dct2_enabled_flag.
[00221] A presente divulgação fornece ainda um codificador 20 conforme ilustrado na Figura 9. O codificador 20 ilustrado na Figura 9 compreende uma unidade de obtenção
22. A unidade de obtenção 22 pode ser configurada para obter um sinal residual resultante da predição inter ou intraimagem. A Figura 9 ilustra ainda que o codificador 20 também compreende uma unidade de inferência 24. A unidade de inferência 24 pode ser configurada para inferir o uso de um núcleo de transformada de Transformada Discreta de Cosseno tipo 2, DCT2, para uma sequência do sinal residual. Aqui, o sinal residual pode ser obtido pela unidade de obtenção 22. O codificador 20, conforme ilustrado na Figura 9, compreende ainda uma unidade de processamento 26. A referida unidade de processamento 26 pode ser configurada para processar a transformação do bloco usando o núcleo de transformada inferido. O núcleo de transformada pode ser inferido pela unidade de inferência 24.
[00222] No codificador 20 de acordo com a presente divulgação, conforme ilustrado na Figura 9, a unidade de inferência 24 pode ser configurada para inferir o uso de DCT2 a partir de uma bandeira habilitada para DCT2 de nível de sequência no Conjunto de Parâmetros de Sequência, SPS.
[00223] No codificador 20 de acordo com a presente divulgação, conforme ilustrado na Figura 9, a bandeira habilitada para DCT2 de nível de sequência pode ser denominada sps_dct2_enabled_flag.
[00224] A presente divulgação fornece ainda um decodificador 30, conforme ilustrado na Figura 10. O decodificador 30 ilustrado na Figura 10 compreende uma unidade de obtenção 32. A unidade de obtenção 32 pode ser configurada para obter um sinal residual resultante da predição inter ou intraimagem. A Figura 10 ilustra ainda que o decodificador 30 também compreende uma unidade de inferência 34. A unidade de inferência 34 pode ser configurada para inferir a utilização de um núcleo de transformada de Transformada Discreta de Cosseno tipo 2, DCT2, para uma sequência do sinal residual. Aqui, o sinal residual pode ser obtido pela unidade de obtenção 32. O decodificador 30, conforme ilustrado na Figura 10, compreende ainda uma unidade de processamento 36. A referida unidade de processamento 36 pode ser configurada para processar a transformação do bloco usando o núcleo de transformada inferido. O núcleo de transformada pode ser inferido pela unidade de inferência 34.
[00225] No decodificador 30, de acordo com a presente divulgação, conforme ilustrado na Figura 10, a unidade de inferência 34 pode ser configurada para inferir o uso de DCT2 a partir de uma bandeira habilitada para DCT2 de nível de sequência no Conjunto de Parâmetros de Sequência, SPS.
[00226] No decodificador 30 de acordo com a presente divulgação, conforme ilustrado na Figura 10, a bandeira habilitada para DCT2 de nível de sequência pode ser denominada sps_dct2_enabled_flag. Operadores matemáticos
[00227] Os operadores matemáticos usados neste pedido são semelhantes aos usados na linguagem de programação C. No entanto, os resultados das operações de divisão de inteiro e deslocamento aritmético são definidos com mais precisão, e operações adicionais são definidas, como exponenciação e divisão de valor real. As convenções de numeração e contagem geralmente começam em 0, por exemplo, "o primeiro" é equivalente ao 0-ésimo, "o segundo" é equivalente ao 1º, etc. Operadores aritméticos
[00228] Os seguintes operadores aritméticos são definidos da seguinte maneira: + Adição Subtração (como um operador de dois - argumentos) ou negação (como um operador de prefixo unário) Multiplicação, incluindo multiplicação * de matriz Exponenciação. Especifica x elevado a y. Em outros contextos, essa notação é usada xy para sobrescrito, não pretendendo ser interpretado como exponenciação. Divisão de inteiro com truncamento do resultado em direção a zero. Por exemplo, 7/4 / e −7 / −4 são truncados para 1 e −7 / 4 e 7 / −4 são truncados para −1. Usado para denotar divisão em equações ÷ matemáticas onde nenhum truncamento ou arredondamento é pretendido. Usado para denotar divisão em equações x y matemáticas onde nenhum truncamento ou arredondamento é pretendido. y A soma de f (i) com i levando todos os f( i ) i = x valores inteiros de x até e incluindo y. Módulo. Restante de x dividido por y, x%y definido apenas para inteiros x e y com x > = 0 e y > 0. Operadores lógicos
[00229] Os seguintes operadores lógicos são definidos da seguinte maneira:
x && y Booleano lógico "e" de x e y x || y Booleano lógico "ou" de x e y ! Booleano lógico "não" x ? y: z Se x for TRUE ou diferente de 0, avalia o valor de y; caso contrário, avalia o valor de z. Operadores relacionais
[00230] Os seguintes operadores relacionais são definidos da seguinte maneira: > Maior que >= Maior ou igual a < Menor que <= Menor ou igual a == Igual a != Diferente de
[00231] Quando um operador relacional é aplicado a um elemento ou variável de sintaxe ao qual foi atribuído o valor "na" (não aplicável), o valor "na" é tratado como um valor distinto para o elemento ou variável de sintaxe. O valor "na" não é considerado igual a nenhum outro valor. Operadores por bit
[00232] Os seguintes operadores por bit são definidos da seguinte maneira: & "e" Por Bit. Ao operar com argumentos inteiros, opera em uma representação de complemento de dois do valor inteiro. Ao operar em um argumento binário que contém menos bits do que outro argumento, o argumento mais curto é estendido pela adição de bits mais significativos iguais a 0. | "ou" Por Bit. Ao operar com argumentos inteiros, opera em uma representação de complemento de dois do valor inteiro. Ao operar em um argumento binário que contém menos bits do que outro argumento, o argumento mais curto é estendido pela adição de bits mais significativos iguais a 0. ^ "ou exclusivo" Por Bit. Ao operar com argumentos inteiros, opera em uma representação de complemento de dois do valor inteiro. Ao operar em um argumento binário que contém menos bits do que outro argumento, o argumento mais curto é estendido pela adição de bits mais significativos iguais a 0. x >> y Deslocamento aritmético para a direita de uma representação de inteiro de complemento de dois de x por y dígitos binários. Esta função é definida apenas para valores inteiros não negativos de y. Os bits deslocados para os bits mais significativos (MSBs) como resultado do deslocamento para a direita têm um valor igual ao MSB de x antes da operação de deslocamento. x << y Deslocamento aritmético para a esquerda de uma representação de inteiro de complemento de dois de x por y dígitos binários. Esta função é definida apenas para valores inteiros não negativos de y. Os bits deslocados para os bits menos significativos (LSBs) como resultado do deslocamento para a esquerda têm um valor igual a 0. Operadores de atribuição
[00233] Os seguintes operadores aritméticos são definidos da seguinte maneira: = Operador de atribuição + + Incremento, ou seja, x + + é equivalente a x = x + 1; quando usado em um índice de matriz, avalia o valor da variável antes da operação de incremento. - - Decremento, ou seja, x - - é equivalente a x = x - 1; quando usado em um índice de matriz, avalia o valor da variável antes da operação de decremento. + = Incremento pela quantidade especificada, ou seja, x + = 3 é equivalente a x = x + 3 e x + = (−3) é equivalente a x = x + (−3). - = Decremento pela quantidade especificada, ou seja, x - = 3 é equivalente a x = x – 3, e x - = (−3) é equivalente a x = x - (−3). Notação de faixa
[00234] A seguinte notação é usada para especificar uma faixa de valores: x = y..z x assume valores inteiros começando de y a z, inclusive, com x, y e z sendo números inteiros e z sendo maior que y. Funções matemáticas
[00235] As seguintes funções matemáticas são definidas: x ; x >= 0 Abs (x) = −x ; x < 0 Asin (x) a função seno inversa trigonométrica, operando em um argumento x que está na faixa de −1,0 a 1,0, inclusive, com um valor de saída na faixa de −π ÷ 2 a π ÷ 2, inclusive, em unidades de radianos Atan (x) a função tangente inversa trigonométrica, operando em um argumento x, com um valor de saída na faixa de −π ÷ 2 a π ÷ 2, inclusive, em unidades de radianos y ⎧ Atan x ; x > 0 ⎪ y ⎪ Atan x + π ; x < 0 && y >= 0 Atan2 (y, x) = y ; x < 0 && y < 0 Atan −π ⎨ x π ⎪ +2 ; x == 0 && y >= 0 ⎪ π −2 ; de outro modo ⎩ Ceil (x) o menor inteiro maior ou igual a x.
Clip1Y (x) = Clip3 (0, (1 << BitDepth Y) - 1, x) Clip1C (x) = Clip3 (0, (1 << BitDepth C) - 1, x) x ; z < x Clip3 (x, y, z) = y ; z > y z ; de outro modo Cos (x) a função trigonométrica cosseno operando em um argumento x em unidades de radianos. Floor (x) o maior inteiro menor ou igual a x. c+d ; b − a >= d / 2 GetCurrMsb (a, b, c, d) = c − d ; a−b > d / 2 c ; de outro modo Ln (x) o logaritmo natural de x (o logaritmo de base e, onde e é o logaritmo natural constante de base 2,718 281
828...). Log2 (x) o logaritmo de base 2 de x. Log10 (x) o logaritmo de base 10 de x. x ; x <= y Min (x, y) = y ; x > y x ; x >= y Max (x, y) = y ; x < y Round (x) = Sinal (x) * Floor (Abs (x) + 0,5) 1 ; x > 0 Sign (x) = 0 ; x == 0 −1 ; x < 0 Sin (x) a função seno trigonométrica operando em um argumento x em unidades de radianos Sqrt (x) = √x Swap (x, y) = (y, x) Tan (x) a função tangente trigonométrica operando em um argumento x em unidades de radianos Ordem de precedência de operação
[00236] Quando uma ordem de precedência em uma expressão não é indicada explicitamente pelo uso de parênteses, as seguintes regras se aplicam: - As operações de precedência superior são avaliadas antes de qualquer operação de precedência inferior.
- As operações com a mesma precedência são avaliadas sequencialmente da esquerda para a direita.
[00237] A tabela abaixo especifica a precedência das operações a partir da mais alta para a mais baixa; uma posição mais alta na tabela indica uma precedência mais alta.
[00238] Para os operadores que também são usados na linguagem de programação C, a ordem de precedência usada neste Relatório Descritivo é a mesma usada na linguagem de programação C. Tabela: precedência de operação da mais alta (no topo da tabela) para a mais baixa (na parte inferior da tabela) operações (com operandos x, y e z) "x ++", "x −-" "!x", "−x" (como um operador de prefixo unário) xy "x * y", "x / y", "x ÷ y", " ", "x % y" "x + y", "x - y" (como um operador de dois argumentos), y "  f( i ) " ix "x << y", "x >> y" "x < y", "x <= y", "x > y", "x > = y" "x == y", "x ! = y" "x e y" "x | y" "x && y" "x || y" "x ? y: z" "x..y" "x = y", "x + = y", "x - = y" Descrição de texto das operações lógicas
[00239] No texto, uma declaração de operações lógicas que seriam descritas matematicamente da seguinte forma: if (condição 0) declaração 0 else if (condição 1) declaração 1 ... else / * observação informativa sobre a condição restante * / declaração n pode ser descrito da seguinte maneira: ... como segue /... aplica-se o seguinte: - Se a condição 0, declaração 0 - Caso contrário, se a condição 1, declaração 1 -... - Caso contrário (observação informativa sobre a condição restante), declaração n.
[00240] Cada declaração "Se... Caso contrário, se... Caso contrário,..." no texto é introduzida com "... como segue" ou "... o seguinte se aplica" imediatamente seguido por” Se...". A última condição de "Se... Caso contrário, se... Caso contrário,..." é sempre um "Caso contrário,...". As declarações intercaladas "Se... Caso contrário, se... Caso contrário,..." podem ser identificadas por corresponder “... como segue" ou "... o seguinte se aplica" com a terminação "Caso contrário,...".
[00241] No texto, uma declaração de operações lógicas que seriam descritas matematicamente da seguinte forma: if (condição 0a && condição 0b) declaração 0 else if (condição 1a | | condição 1b) declaração 1 ... else declaração n pode ser descrito da seguinte maneira: ... como segue /... aplica-se o seguinte: - Se todas as seguintes condições forem verdadeiras, declaração 0: - condição 0a - condição 0b - Caso contrário, se uma ou mais das seguintes condições forem verdadeiras, declaração 1: - condição 1a - condição 1b -... - Caso contrário, declaração n.
[00242] No texto, uma declaração de operações lógicas que seriam descritas matematicamente da seguinte forma: if (condição 0) declaração 0 if (condição 1) declaração 1 pode ser descrito da seguinte maneira: Quando a condição 0, declaração 0 Quando a condição 1, declaração 1.
[00243] Embora as modalidades da divulgação tenham sido descritas principalmente com base na codificação de vídeo, deve ser notado que as modalidades do sistema de codificação 10, codificador 20 e decodificador 30 (e correspondentemente o sistema 10) e as outras modalidades aqui descritas também podem ser configuradas para processamento ou codificação de imagem, isto é, o processamento ou codificação de uma imagem individual independente de qualquer imagem precedente ou consecutiva como na codificação de vídeo. Em geral, apenas as unidades de interpredição 244 (codificador) e 344 (decodificador) podem não estar disponíveis no caso de a codificação de processamento de imagem ser limitada a uma única imagem 17. Todas as outras funcionalidades (também referidas como ferramentas ou tecnologias) do codificador de vídeo 20 e do decodificador de vídeo 30 podem igualmente ser usadas para processamento de imagens estáticas, por exemplo, cálculo residual 204/304, transformada 206, quantização 208, quantização inversa 210/310, transformada (inversa) 212/312, particionamento 262/362, intrapredição 254 / 354 e / ou filtragem de loop 220, 320 e codificação de entropia 270 e decodificação de entropia 304.
[00244] As modalidades, por exemplo, do codificador 20 e do decodificador 30, e funções aqui descritas, por exemplo, com referência ao codificador 20 e ao decodificador 30, podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas em um meio legível por computador ou transmitidas por meio de comunicação como uma ou mais instruções ou código, e executadas por uma unidade de processamento baseada em hardware. O meio legível por computador pode incluir meio de armazenamento legível por computador, que corresponde a um meio tangível, como meio de armazenamento de dados ou meio de comunicação,
incluindo qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Desta maneira, o meio legível por computador geralmente pode corresponder a (1) meio de armazenamento legível por computador tangível que é não transitório ou (2) um meio de comunicação, como um sinal ou onda portadora. O meio de armazenamento de dados pode ser qualquer meio disponível que pode ser acessado por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e / ou estruturas de dados para implementação das técnicas descritas nesta divulgação. Um produto de programa de computador pode incluir um meio legível por computador.
[00245] A título de exemplo, e não limitação, tal meio de armazenamento legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco ótico, armazenamento de disco magnético ou outros dispositivos de armazenamento magnético, memória flash ou qualquer outro meio que pode ser usado para armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que pode ser acessado por um computador. Além disso, qualquer conexão é apropriadamente denominada meio legível por computador. Por exemplo, se as instruções são transmitidas de um site, servidor ou outra fonte remota usando um cabo coaxial, cabo de fibra ótica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio, como infravermelho, rádio e micro-ondas, então o cabo coaxial, cabo de fibra ótica, par trançado, DSL ou tecnologias sem fio, como infravermelho, rádio e micro- ondas, estão incluídos na definição de meio. Deve ser entendido, no entanto, que o meio de armazenamento legível por computador e o meio de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outros meios transitórios, mas são direcionados para meios de armazenamento tangíveis não transitórios. Disco (disk) e disco (disc), conforme usados aqui, incluem disco compacto (CD), disco laser, disco ótico, disco versátil digital (DVD), disquete e disco Blu-ray, onde os discos (disks) geralmente reproduzem dados magneticamente, enquanto os discos (discs) reproduzem dados oticamente com lasers. As combinações dos itens acima também devem ser incluídas no escopo do meio legível por computador.
[00246] As instruções podem ser executadas por um ou mais processadores, como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), arranjos lógicos programáveis em campo (FPGAs) ou outros circuitos lógicos integrados ou discretos equivalentes. Por conseguinte, o termo "processador", conforme usado neste documento, pode se referir a qualquer uma das estruturas anteriores ou qualquer outra estrutura adequada para a implementação das técnicas descritas neste documento. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser fornecida em 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 totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[00247] As técnicas desta divulgação podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um handset 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 divulgação para enfatizar os aspectos funcionais dos dispositivos configurados para executar as técnicas divulgadas, mas não necessariamente requerem a realização por diferentes unidades de hardware.
Em vez disso, conforme 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, conforme descrito acima, em conjunto com software e / ou firmware adequados.

Claims (57)

REIVINDICAÇÕES
1. Método de codificação de vídeo de um bloco de uma imagem, caracterizado pelo fato de que compreende: obter um sinal residual resultante a partir de predição inter ou intraimagem; inferir o uso de um núcleo de transformada de transformada discreta de cosseno tipo 2, DCT2, para uma sequência do sinal residual; processar a transformação do bloco usando o núcleo de transformada inferido.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o uso de DCT2 é inferido a partir de uma bandeira habilitada para DCT2 de nível de sequência no Conjunto de Parâmetros de Sequência, SPS.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência é denominada sps_dct2_enabled_flag.
4. Método, de acordo com a reivindicação 2 ou 3, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência é compreendida em uma sintaxe de nível de SPS como segue: seq_parameter_set_rbsp ( ) { Descritor … ue(v) sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flag u(1) sps_mts_inter_enabled_flag u(1) } … u(1) }
em que sps_dct2_enabled_flag representa a bandeira habilitada para DCT2 de nível de sequência.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que o sps_mts_intra_enabled_flag igual a 1 especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intracodificação; sps_mts_intra_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intracodificação; e quando o sps_mts_intra_enabled_flag não está presente, o sps_mts_intra_enabled_flag é inferido como 0.
6. Método, de acordo com a reivindicação 4 ou 5, caracterizado pelo fato de que o sps_mts_inter_enabled_flag especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intercodificação; sps_mts_inter_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intercodificação; e quando o sps_mts_intra_enabled_flag não está presente, o sps_mts_intra_enabled_flag é inferido como 0.
7. Método, de acordo com qualquer uma das reivindicações 2 a 6, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que o núcleo de transformada de DCT2 é usado para transformação.
8. Método, de acordo com qualquer uma das reivindicações 2 a 7, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que o núcleo de transformada de DCT2 é usado apenas para transformação.
9. Método, de acordo com qualquer uma das reivindicações
2 a 8, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que DCT2 é usada tanto para a transformação de direção horizontal quanto para a transformação de direção vertical.
10. Método, de acordo com qualquer uma das reivindicações 2 a 9, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que DCT2 é usada na transformação de sub-bloco.
11. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que no caso de um lado de uma Unidade de Transformada residual, tu ser maior que 32, um núcleo de transformada correspondente é definido como DCT2.
12. Método, de acordo com qualquer uma das reivindicações 2 a 11, caracterizado pelo fato de que no caso da bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que o núcleo de transformada de DCT2 é usado apenas para transformação, tanto a transformada de sub-bloco quanto a transformada de Seleção de Transformada Múltipla, MTS, são inferidas como desligadas.
13. Método, de acordo com qualquer uma das reivindicações 2 a 10, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 0 especifica que outros núcleos de transformada diferentes de DCT2 são usados para a transformação.
14. Método, de acordo com a reivindicação 13, caracterizado pelo fato de que os outros núcleos de transformada compreendem uma Transformada Discreta de Seno tipo 7, DST7 e / ou uma Transformada Discreta de Cosseno tipo 8, DCT8.
15. Método, de acordo com a reivindicação 13 ou 14,
caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 0 especifica que é inferido usando pelo menos uma de DST7 ou DCT8 para transformação.
16. Método, de acordo com qualquer uma das reivindicações 13 a 15, caracterizado pelo fato de que no caso da bandeira habilitada para DCT2 de nível de sequência ser igual a 0, é determinado se Seleção de Transformada Múltipla para Conjunto de Parâmetros de Sequência é habilitada por meio de uma bandeira.
17. Método, de acordo com a reivindicação 16, caracterizado pelo fato de que no caso do sps_mts_intra_enabled_flag esteja presente, no caso do sps_mts_intra_enabled_flag ser igual a 1, é especificado que uma bandeira de Seleção de Transformada Múltipla, MTS, de Unidade de Transformada, TU, denominada tu_mts_flag, está presente na sintaxe de codificação residual para unidades de intracodificação; no caso do sps_mts_intra_enabled_flag ser igual a 0, é especificado que um tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intracodificação; em que no caso do sps_mts_intra_enabled_flag não estar presente, o sps_mts_intra_enabled_flag é inferido como 0.
18. Codificador (20), caracterizado pelo fato de que compreende conjunto de circuitos de processamento para realizar o método conforme definido em qualquer uma das reivindicações 1 a 17.
19. Decodificador (30), caracterizado pelo fato de que compreende conjunto de circuitos de processamento para realizar o método conforme definido em qualquer uma das reivindicações 1 a 17.
20. Decodificador (20), caracterizado pelo fato de que compreende: uma unidade de obtenção, configurada para obter um sinal residual resultante a partir de predição inter ou intraimagem; uma unidade de inferência, configurada para inferir o uso de um núcleo de transformada de Transformada Discreta de Cosseno tipo 2, DCT2, para uma sequência do sinal residual; e uma unidade de processamento, configurada para processar a transformação do bloco usando o núcleo de transformada inferido.
21. Decodificador, de acordo com a reivindicação 20, caracterizado pelo fato de que a unidade de inferência é configurada para inferir o uso de DCT2 a partir de uma bandeira habilitada para DCT2 de nível de sequência no Conjunto de Parâmetros de Sequência, SPS.
22. Decodificador, de acordo com a reivindicação 21, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência é denominada sps_dct2_enabled_flag.
23. Decodificador, de acordo com a reivindicação 21 ou 22, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência é compreendida em uma sintaxe de nível de SPS como segue: seq_parameter_set_rbsp ( ) { Descritor … ue(v) sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) {
sps_mts_intra_enabled_flag u(1) sps_mts_inter_enabled_flag u(1) } … u(1) } em que sps_dct2_enabled_flag representa a bandeira habilitada para DCT2 de nível de sequência.
24. Decodificador, de acordo com a reivindicação 21, caracterizado pelo fato de que o sps_mts_intra_enabled_flag igual a 1 especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intracodificação; sps_mts_intra_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intracodificação; e quando o sps_mts_intra_enabled_flag não está presente, o sps_mts_intra_enabled_flag é inferido como 0.
25. Decodificador, de acordo com a reivindicação 21 ou 22, caracterizado pelo fato de que o sps_mts_inter_enabled_flag especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intercodificação; sps_mts_inter_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intercodificação; e quando o sps_mts_intra_enabled_flag não está presente, o sps_mts_intra_enabled_flag é inferido como
0.
26. Decodificador, de acordo com qualquer uma das reivindicações 21 a 25, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que o núcleo de transformada de DCT2 é usado para transformação.
27. Decodificador, de acordo com qualquer uma das reivindicações 21 a 26, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que o núcleo de transformada de DCT2 é usado apenas para transformação.
28. Decodificador, de acordo com qualquer uma das reivindicações 21 a 27, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que DCT2 é usada tanto para transformação de direção horizontal quanto transformação de direção vertical.
29. Decodificador, de acordo com qualquer uma das reivindicações 21 a 28, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que DCT2 é usada na transformação de sub- bloco.
30. Decodificador, de acordo com a reivindicação 29, caracterizado pelo fato de que no caso de um lado de uma Unidade de Transformada residual, tu ser maior que 32, uma transformada correspondente é definida como DCT2.
31. Decodificador, de acordo com qualquer uma das reivindicações 21 a 30, caracterizado pelo fato de que no caso da bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que o núcleo de transformada de DCT2 é usado apenas para transformação, tanto a transformada de sub-bloco quanto a transformada de Seleção de Transformada Múltipla, MTS, são inferidas como desligadas.
32. Decodificador, de acordo com qualquer uma das reivindicações 21 a 29, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 0 especifica que outros núcleos de transformada diferentes de DCT2 são usados para a transformação.
33. Decodificador, de acordo com a reivindicação 32, caracterizado pelo fato de que a unidade de inferência é configurada para inferir usando uma Transformada Discreta de Seno tipo 7, DST7 e / ou uma Transformada Discreta de Cosseno tipo 8, DCT8, para transformação.
34. Decodificador, de acordo com a reivindicação 32 ou 33, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 0 especifica que é inferido usando DST7 / DCT8 apenas para transformação.
35. Decodificador, de acordo com qualquer uma das reivindicações 32 a 34, caracterizado pelo fato de que no caso da bandeira habilitada para DCT2 de nível de sequência ser igual a 0, é determinado se Seleção de Transformada Múltipla para Conjunto de Parâmetros de Sequência é habilitada por meio de uma bandeira.
36. Decodificador, de acordo com a reivindicação 35, caracterizado pelo fato de que no caso do sps_mts_intra_enabled_flag esteja presente, no caso do sps_mts_intra_enabled_flag ser igual a 1, é especificado que uma bandeira de Seleção de Transformada Múltipla, MTS, de Unidade de Transformada, TU, denominada tu_mts_flag, está presente na sintaxe de codificação residual para unidades de intracodificação; no caso do sps_mts_intra_enabled_flag ser igual a 0, é especificado que um tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intracodificação; em que no caso do sps_mts_intra_enabled_flag não estar presente, o sps_mts_intra_enabled_flag é inferido como 0.
37. Codificador (20), caracterizado pelo fato de que compreende: uma unidade de obtenção, configurada para obter um sinal residual resultante a partir de predição inter ou intraimagem; uma unidade de inferência, configurada para inferir o uso de um núcleo de transformada de Transformada Discreta de Cosseno tipo 2, DCT2, para uma sequência do sinal residual; e uma unidade de processamento, configurada para processar a transformação do bloco usando o núcleo de transformada inferido.
38. Codificador, de acordo com a reivindicação 37, caracterizado pelo fato de que a unidade de inferência é configurada para inferir o uso de DCT2 a partir de uma bandeira habilitada para DCT2 de nível de sequência no Conjunto de Parâmetros de Sequência, SPS.
39. Codificador, de acordo com a reivindicação 38, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência é denominada sps_dct2_enabled_flag.
40. Codificador, de acordo com a reivindicação 38 ou 39, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência é compreendida em uma sintaxe de nível de SPS como segue: seq_parameter_set_rbsp ( ) { Descritor … ue(v) sps_dct2_enabled_flag if (! sps_dct2_enabled_flag) { sps_mts_intra_enabled_flag u(1)
sps_mts_inter_enabled_flag u(1) } … u(1) } em que sps_dct2_enabled_flag representa a bandeira habilitada para DCT2 de nível de sequência.
41. Codificador, de acordo com a reivindicação 38, caracterizado pelo fato de que o sps_mts_intra_enabled_flag igual a 1 especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intracodificação; sps_mts_intra_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intracodificação; e quando o sps_mts_intra_enabled_flag não está presente, o sps_mts_intra_enabled_flag é inferido como 0.
42. Codificador, de acordo com a reivindicação 38 ou 39, caracterizado pelo fato de que o sps_mts_inter_enabled_flag especifica que tu_mts_flag pode estar presente na sintaxe de codificação residual para unidades de intercodificação; sps_mts_inter_enabled_flag igual a 0 especifica que tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intercodificação; e quando o sps_mts_intra_enabled_flag não está presente, o sps_mts_intra_enabled_flag é inferido como 0.
43. Codificador, de acordo com qualquer uma das reivindicações 38 a 42, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que o núcleo de transformada de DCT2 é usado para transformação.
44. Codificador, de acordo com qualquer uma das reivindicações 38 a 43, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que o núcleo de transformada de DCT2 é usado apenas para transformação.
45. Codificador, de acordo com qualquer uma das reivindicações 38 a 44, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que DCT2 é usada tanto para direções horizontais quanto verticais na seleção de transformada adaptativa de forma.
46. Codificador, de acordo com qualquer uma das reivindicações 38 a 45, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que DCT2 é usada na transformação de sub- bloco.
47. Codificador, de acordo com a reivindicação 46, caracterizado pelo fato de que no caso de um lado de uma Unidade de Transformada residual, tu ser maior que 32, uma transformada correspondente é definida como DCT2.
48. Codificador, de acordo com qualquer uma das reivindicações 38 a 47, caracterizado pelo fato de que no caso da bandeira habilitada para DCT2 de nível de sequência ser igual a 1 especifica que o núcleo de transformada de DCT2 é usado apenas para transformação, tanto a transformada de sub-bloco quanto a transformada de Seleção de Transformada Múltipla, MTS, são inferidas como desligadas.
49. Codificador, de acordo com qualquer uma das reivindicações 38 a 46, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 0 especifica que outros núcleos de transformada diferentes de DCT2 são usados para a transformação.
50. Codificador, de acordo com a reivindicação 49, caracterizado pelo fato de que a unidade de inferência é configurada para inferir usando uma Transformada Discreta de Seno tipo 7, DST7 e / ou uma Transformada Discreta de Cosseno tipo 8, DCT8, para transformação.
51. Codificador, de acordo com a reivindicação 49 ou 50, caracterizado pelo fato de que a bandeira habilitada para DCT2 de nível de sequência ser igual a 0 especifica que é inferido usando DST7 / DCT8 apenas para transformação.
52. Codificador, de acordo com qualquer uma das reivindicações 49 a 51, caracterizado pelo fato de que no caso da bandeira habilitada para DCT2 de nível de sequência ser igual a 0, é determinado se Seleção de Transformada Múltipla para Conjunto de Parâmetros de Sequência é habilitada por meio de uma bandeira.
53. Codificador, de acordo com a reivindicação 52, caracterizado pelo fato de que caso o sps_mts_intra_enabled_flag esteja presente, no caso do sps_mts_intra_enabled_flag ser igual a 1, é especificado que uma bandeira de Seleção de Transformada Múltipla, MTS, de Unidade de Transformada, TU, denominada tu_mts_flag, está presente na sintaxe de codificação residual para unidades de intracodificação; no caso do sps_mts_intra_enabled_flag ser igual a 0, é especificado que um tu_mts_flag não está presente na sintaxe de codificação residual para unidades de intracodificação; em que no caso do sps_mts_intra_enabled_flag não estar presente, o sps_mts_intra_enabled_flag é inferido como 0.
54. Produto de programa de computador caracterizado pelo fato de que compreende um código de programa para realizar o método conforme definido em qualquer uma das reivindicações 1 a 17.
55. Decodificador caracterizado pelo fato de que compreende: um ou mais processadores; e um meio de armazenamento legível por computador não transitório acoplado 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 17.
56. Codificador caracterizado pelo fato de que compreende: um ou mais processadores; e um meio de armazenamento legível por computador não transitório acoplado 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 17.
57. Meio não transitório legível por computador armazenando um programa, caracterizado pelo fato de que inclui instruções que quando executadas em um processador, fazem o processador realizar o método conforme definido em qualquer uma das reivindicações 1 a 17.
BR112021013565-0A 2019-01-11 2020-01-11 Codificador, decodificador, meio legível por computador não transitório e método de codificação de vídeo de um bloco de uma imagem BR112021013565A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962791674P 2019-01-11 2019-01-11
US62/791,674 2019-01-11
PCT/CN2020/071591 WO2020143811A1 (en) 2019-01-11 2020-01-11 Encoder, decoder and corresponding methods using dct2 enabled high level flag

Publications (1)

Publication Number Publication Date
BR112021013565A2 true BR112021013565A2 (pt) 2021-09-21

Family

ID=71521005

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021013565-0A BR112021013565A2 (pt) 2019-01-11 2020-01-11 Codificador, decodificador, meio legível por computador não transitório e método de codificação de vídeo de um bloco de uma imagem

Country Status (12)

Country Link
US (2) US11758137B2 (pt)
EP (1) EP3906680A4 (pt)
JP (2) JP7359343B2 (pt)
KR (1) KR20210107130A (pt)
CN (3) CN112956196A (pt)
AU (2) AU2020206492B2 (pt)
BR (1) BR112021013565A2 (pt)
CA (1) CA3126304A1 (pt)
MX (1) MX2021008408A (pt)
SG (1) SG11202107547YA (pt)
WO (1) WO2020143811A1 (pt)
ZA (1) ZA202104869B (pt)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210107130A (ko) 2019-01-11 2021-08-31 후아웨이 테크놀러지 컴퍼니 리미티드 Dct2 활성화된 하이 레벨 플래그를 이용하는, 인코더, 디코더 및 대응하는 방법
CN113196780A (zh) 2019-01-12 2021-07-30 韦勒斯标准与技术协会公司 使用多变换核处理视频信号的方法和设备
CN113747156A (zh) * 2019-03-09 2021-12-03 杭州海康威视数字技术股份有限公司 进行编码和解码的方法、解码端、编码端和系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3029323C (en) 2012-07-16 2020-03-24 Samsung Electronics Co., Ltd. Video encoding method and video encoding apparatus and video decoding method and video decoding apparatus for signaling sao parameters
US10623774B2 (en) * 2016-03-22 2020-04-14 Qualcomm Incorporated Constrained block-level optimization and signaling for video coding tools
WO2017173593A1 (en) * 2016-04-06 2017-10-12 Mediatek Singapore Pte. Ltd. Separate coding secondary transform syntax elements for different color components
CN114339228B (zh) * 2016-05-04 2024-04-12 夏普株式会社 用于对变换数据进行编码的系统和方法
CN113411580B (zh) * 2016-05-13 2024-01-30 夏普株式会社 图像解码装置及其方法、图像编码装置及其方法
WO2018021374A1 (ja) 2016-07-29 2018-02-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US10750181B2 (en) * 2017-05-11 2020-08-18 Mediatek Inc. Method and apparatus of adaptive multiple transforms for video coding
JP7446988B2 (ja) * 2017-08-04 2024-03-11 エルジー エレクトロニクス インコーポレイティド ビデオ圧縮のための変換を構成する方法および装置
US10986340B2 (en) * 2018-06-01 2021-04-20 Qualcomm Incorporated Coding adaptive multiple transform information for video coding
JP2020053924A (ja) * 2018-09-28 2020-04-02 シャープ株式会社 動画像符号化装置、動画像復号装置
WO2020130730A1 (ko) * 2018-12-21 2020-06-25 삼성전자 주식회사 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
KR20210107130A (ko) * 2019-01-11 2021-08-31 후아웨이 테크놀러지 컴퍼니 리미티드 Dct2 활성화된 하이 레벨 플래그를 이용하는, 인코더, 디코더 및 대응하는 방법

Also Published As

Publication number Publication date
KR20210107130A (ko) 2021-08-31
EP3906680A1 (en) 2021-11-10
WO2020143811A1 (en) 2020-07-16
CN113411612B (zh) 2022-06-24
AU2020206492B2 (en) 2023-11-23
JP2022516775A (ja) 2022-03-02
US20230396765A1 (en) 2023-12-07
CA3126304A1 (en) 2020-07-16
CN113411612A (zh) 2021-09-17
CN113411613A (zh) 2021-09-17
MX2021008408A (es) 2021-10-13
JP2023162243A (ja) 2023-11-08
ZA202104869B (en) 2022-07-27
EP3906680A4 (en) 2022-03-09
US20210344920A1 (en) 2021-11-04
AU2024201127A1 (en) 2024-03-14
US11758137B2 (en) 2023-09-12
CN113411613B (zh) 2022-06-28
SG11202107547YA (en) 2021-08-30
AU2020206492A1 (en) 2021-08-12
CN112956196A (zh) 2021-06-11
JP7359343B2 (ja) 2023-10-11

Similar Documents

Publication Publication Date Title
BR112021000379A2 (pt) Método e aparelho para sinalização de função de mapeamento de parâmetro de quantização de croma
CA3132225A1 (en) An encoder, a decoder and corresponding methods of harmonizing matrix-based intra prediction and secondary transform core selection
BR112021016677A2 (pt) Método e aparelho para predição inter baseada em afim de sub-blocos de croma
CA3114341C (en) An encoder, a decoder and corresponding methods using compact mv storage
AU2019401170B2 (en) Method and apparatus of mode- and size-dependent block-level restrictions
US11758137B2 (en) Encoder, decoder and corresponding methods using DCT2 enabled high level flag
BR112021003999A2 (pt) relação entre elementos de restrição de partição
AU2023202927B2 (en) Separate merge list for subblock merge candidates and intra-inter techniques harmonization for video coding
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
BR112021013644A2 (pt) Codificador, decodificador e métodos correspondentes de adaptação de filtro de deblocagem
BR112021016270A2 (pt) Método de codificação de vídeo e codificador, decodificador, meio legível por computador
BR112020026183A2 (pt) Método de codificação de vídeo, codificador, decodificador e produto de programa de computador
BR112021003946A2 (pt) codificador de vídeo, decodificador de vídeo e métodos correspondentes
KR102475963B1 (ko) 변환 프로세스를 위해 사용되는 인코더, 디코더 및 대응하는 방법
WO2020263132A1 (en) Method and apparatus for lossless still picture and video coding
BR112021009833A2 (pt) codificador, decodificador e métodos correspondentes para predição inter
WO2020111981A1 (en) Apparatus and method for chrominance quantization parameter derivation
KR20220012355A (ko) 크로마 양자화 제어의 인코더, 디코더 및 대응하는 방법들