BR112021013644A2 - Codificador, decodificador e métodos correspondentes de adaptação de filtro de deblocagem - Google Patents
Codificador, decodificador e métodos correspondentes de adaptação de filtro de deblocagem Download PDFInfo
- Publication number
- BR112021013644A2 BR112021013644A2 BR112021013644-4A BR112021013644A BR112021013644A2 BR 112021013644 A2 BR112021013644 A2 BR 112021013644A2 BR 112021013644 A BR112021013644 A BR 112021013644A BR 112021013644 A2 BR112021013644 A2 BR 112021013644A2
- Authority
- BR
- Brazil
- Prior art keywords
- block
- boundary
- unit
- blocks
- ciip
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 110
- 230000006978 adaptation Effects 0.000 title abstract description 4
- 239000013598 vector Substances 0.000 claims description 78
- 238000012545 processing Methods 0.000 claims description 63
- 241000023320 Luma <angiosperm> Species 0.000 claims description 24
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims description 24
- 230000001052 transient effect Effects 0.000 claims description 11
- 238000013139 quantization Methods 0.000 description 77
- 238000000638 solvent extraction Methods 0.000 description 35
- 238000004891 communication Methods 0.000 description 30
- 230000000875 corresponding effect Effects 0.000 description 29
- 238000005192 partition Methods 0.000 description 21
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 18
- 238000010586 diagram Methods 0.000 description 18
- 238000001914 filtration Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 238000009795 derivation Methods 0.000 description 13
- 238000011156 evaluation Methods 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 10
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 238000003491 array Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 101150114515 CTBS gene Proteins 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- FZEIVUHEODGHML-UHFFFAOYSA-N 2-phenyl-3,6-dimethylmorpholine Chemical compound O1C(C)CNC(C)C1C1=CC=CC=C1 FZEIVUHEODGHML-UHFFFAOYSA-N 0.000 description 1
- QEDQZYNGDXULGO-UHFFFAOYSA-N 3-methyl-2-(3-methylphenyl)morpholine Chemical compound CC1NCCOC1C1=CC=CC(C)=C1 QEDQZYNGDXULGO-UHFFFAOYSA-N 0.000 description 1
- 241000271946 Bitis gabonica Species 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 150000002500 ions Chemical class 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection 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/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/18—Methods 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 set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
codificador, decodificador e métodos correspondentes de adaptação de filtro de deblocagem a presente divulgação fornece um método de codificação, em que a codificação inclui decodificação ou codificação, e o método compreende determinar se uma unidade de codificação atual é predita pela aplicação de predição inter-intra combinada, ciip; e mediante determinação de que a unidade de codificação atual é predita por aplicação de ciip, definir uma força de fronteira de uma fronteira da unidade de codificação atual para um primeiro valor.
Description
[001] Este pedido reivindica a prioridade do pedido provisório dos EUA 62 / 793.840 depositado em 17 de janeiro de 2019, no Escritório de Marcas e Patentes dos EUA, cuja divulgação é incorporada neste documento em sua totalidade por referência.
[002] As modalidades do presente pedido geralmente se referem ao campo de processamento de imagem e, mais particularmente, a um codificador, um decodificador, e métodos correspondentes de adaptação de filtro de deblocagem.
[003] A 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 conversa de vídeo, videoconferência, discos DVD e 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 modernas. 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 origem 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] As modalidades do presente pedido fornecem aparelhos e métodos para codificação e decodificação de acordo com as reivindicações independentes.
[006] O precedente e outros objetivos são alcançados pelo objeto das reivindicações independentes. Formas de implementação adicionais são evidentes a partir das reivindicações dependentes, da descrição e das figuras.
[007] Uma modalidade da presente divulgação é um método de codificação, em que a codificação inclui decodificação ou codificação, e o método compreende determinar se uma unidade de codificação atual é predita pela aplicação de predição inter-intra combinada, CIIP; e mediante determinação de que a unidade de codificação atual é predita por aplicação de CIIP, definir uma força de fronteira de uma fronteira da unidade de codificação atual para um primeiro valor.
[008] O primeiro valor pode estar na faixa de 1 a 2. O primeiro valor pode, em particular, ser 2. Alternativamente, o primeiro valor pode ser 1. No último caso, o método pode ainda compreender incrementar o primeiro valor por 1 mediante determinação de que uma das seguintes condições é válida: pelo menos uma da unidade de codificação atual e uma unidade de codificação adjacente que é adjacente à fronteira da unidade de codificação atual tem coeficientes de transformada diferentes de zero, uma diferença absoluta entre vetores de movimento usados para predizer a unidade de codificação atual e a unidade de codificação adjacente é maior ou igual a uma amostra inteira, a unidade de codificação atual e a unidade de codificação adjacente são preditas com base em diferentes imagens de referência, um número de vetores de movimento usados para predizer a unidade de codificação atual e a unidade de codificação adjacente difere.
[009] O método pode compreender ainda, quando a fronteira da unidade de codificação atual é uma borda horizontal, determinar se uma unidade de codificação adjacente que é adjacente à fronteira da unidade de codificação atual está em uma unidade de árvore de codificação, CTU, diferente.
[0010] O método pode compreender ainda definir uma força de fronteira de uma fronteira de uma unidade de subcodificação para um segundo valor, em que a unidade de codificação atual compreende pelo menos duas unidades de subcodificação, e a fronteira da unidade de subcodificação é uma fronteira entre as pelo menos duas unidades de subcodificação. O segundo valor pode, em particular, ser 1.
Quando a fronteira da unidade de subcodificação é uma borda de uma unidade de transformada, o segundo valor pode ser igual ao primeiro valor. Quando a fronteira da unidade de subcodificação não é uma borda de uma unidade de transformada, o segundo valor pode ser diferente do primeiro valor.
[0011] Nas modalidades acima, o método pode compreender ainda determinar se a fronteira da unidade de codificação atual está alinhada com uma grade 8x8, e mediante determinação de que a fronteira da unidade de codificação atual não está alinhada com a grade 8x8, definir a força de fronteira da fronteira da unidade de codificação atual para zero.
[0012] O método pode compreender ainda determinar se a fronteira da unidade de subcodificação está alinhada com uma subgrade, a subgrade sendo uma grade 4x4 ou uma grade 8x8, e mediante determinação de que a fronteira da unidade de subcodificação não está alinhada com a subgrade, definir a força de fronteira da fronteira da unidade de subcodificação para zero.
[0013] Nas modalidades acima, o método pode compreender ainda a realização de deblocagem em uma fronteira para um componente de luma quando a força de fronteira da referida fronteira é maior que zero. O método pode compreender ainda a realização de deblocagem em uma fronteira para componentes de croma quando a força de fronteira da referida fronteira é maior do que 1.
[0014] Nas modalidades acima, quando a unidade de codificação atual é predita por aplicação de CIIP, a unidade de codificação atual pode ser considerada como uma unidade de codificação com predição intra ao realizar a deblocagem.
[0015] Outra modalidade da presente divulgação é um codificador compreendendo um conjunto de circuitos (“circuitry”) de processamento para realizar o método de acordo com qualquer uma das modalidades acima.
[0016] Outra modalidade da presente divulgação é um decodificador compreendendo um conjunto de circuitos de processamento para realizar o método de acordo com qualquer uma das modalidades acima.
[0017] Outra modalidade da presente divulgação é um produto de programa de computador compreendendo instruções que, quando o programa é executado por um computador, fazem o computador realize o método de acordo com qualquer uma das modalidades acima.
[0018] Outra modalidade da presente divulgação é um decodificador compreendendo um ou mais processadores; e um meio de armazenamento legível por computador não transitório acoplado ao um ou mais processadores e armazenando instruções para execução por um ou mais processadores, em que as instruções, quando executadas por um ou mais processadores, configuram o decodificador para realizar o método de acordo com qualquer uma das modalidades acima.
[0019] Outra modalidade da presente divulgação é um codificador compreendendo um ou mais processadores; e um meio de armazenamento legível por computador não transitório acoplado ao um ou mais processadores e armazenando instruções para execução por um ou mais processadores, em que as instruções, quando executadas por um ou mais processadores, configuram o codificador para realizar o método de acordo com qualquer uma das modalidades acima.
[0020] A presente divulgação fornece ainda os seguintes aspectos contados a partir de um.
[0021] De acordo com um primeiro aspecto, a divulgação se refere a um método de codificação, em que a codificação inclui decodificação ou codificação, e o método compreende determinar se uma unidade de codificação atual (ou bloco de codificação) é predita pela aplicação de predição inter- intra combinada ou não; quando a unidade de codificação atual é predita pela aplicação de predição inter-intra combinada, definir uma força de fronteira (Bs) de uma fronteira da unidade de codificação atual para um primeiro valor; e definir uma força de fronteira (Bs) de uma fronteira de uma unidade de subcodificação (ou sub-bloco, ou subpartição) para um segundo valor, em que a unidade de codificação atual compreende pelo menos duas unidades de subcodificação, e a fronteira da unidade de subcodificação é uma fronteira entre as pelo menos duas unidades de subcodificação.
[0022] O primeiro valor pode ser 2. O segundo valor pode ser 1. O primeiro valor pode ser igual ou diferente do segundo valor. Quando a fronteira da unidade de subcodificação é uma fronteira (ou uma borda) de uma unidade de transformada, o primeiro valor pode ser o mesmo que o segundo valor. Quando a fronteira da unidade de subcodificação não é uma fronteira (ou uma borda) de uma unidade de transformada, o primeiro valor pode ser diferente do segundo valor.
[0023] O método pode ainda compreender a realização de deblocagem quando um valor da Bs é maior do que zero para um componente de luma; ou realizar a deblocagem quando o valor da Bs é maior que 1 para os componentes de croma, em que o valor da Bs é um do primeiro valor ou do segundo valor.
[0024] Quando a unidade de codificação atual (ou bloco) é predita pela aplicação de predição inter-intra combinada, a unidade de codificação atual pode ser considerada como uma unidade com predição intra ao realizar deblocagem.
[0025] De acordo com um segundo aspecto, a divulgação se refere a um codificador compreendendo um conjunto de circuitos de processamento para realizar qualquer um dos métodos de acordo com o primeiro aspecto.
[0026] De acordo com um terceiro aspecto, a divulgação se refere a um decodificador compreendendo um conjunto de circuitos de processamento para realizar qualquer um dos métodos de acordo com o primeiro aspecto.
[0027] De acordo com um quarto aspecto, a divulgação se refere a um produto de programa de computador compreendendo um código de programa para realizar qualquer um dos métodos de acordo com o primeiro aspecto.
[0028] De acordo com um quinto aspecto, a divulgação se refere a 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 qualquer um dos métodos de acordo com o primeiro aspecto.
[0029] De acordo com um sexto aspecto, a divulgação se refere a 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 qualquer um dos métodos de acordo com o primeiro aspecto.
[0030] De acordo com um sétimo aspecto, a divulgação se refere a um método de codificação, em que a codificação inclui decodificação ou codificação, incluindo: determinar se pelo menos um dos dois blocos é um bloco com uma predição CIIP (ou MH), em que os dois blocos incluem um primeiro bloco (bloco Q) e um segundo bloco (bloco P), e em que os dois blocos estão associados a uma fronteira; definir uma força de fronteira (Bs) da fronteira para um primeiro valor quando pelo menos um dos dois blocos é um bloco com a predição CIIP; e definir uma força de fronteira (Bs) da fronteira para um segundo valor quando nenhum dos dois blocos é um bloco com a predição CIIP.
[0031] O método de acordo com o sétimo aspecto da divulgação pode ser realizado pelo aparelho de acordo com o oitavo aspecto da divulgação. Características e formas de implementação adicionais do aparelho de acordo com o oitavo aspecto da divulgação correspondem às características e formas de implementação do método de acordo com o sétimo aspecto da divulgação.
[0032] De acordo com um nono aspecto, a divulgação se refere a um aparelho para decodificar um fluxo de vídeo incluindo um processador e uma memória. A memória armazena instruções que fazem o processador realizar o método de acordo com o sétimo aspecto.
[0033] De acordo com um décimo aspecto, a divulgação se refere a um aparelho para codificar um fluxo de vídeo incluindo um processador e uma memória. A memória armazena instruções que fazem o processador realizar o método de acordo com o sétimo aspecto.
[0034] De acordo com um décimo primeiro aspecto, é proposto um meio de armazenamento legível por computador tendo nele instruções armazenadas que, quando executadas, fazem um ou mais processadores configurados codificarem dados de vídeo. As instruções fazem os um ou mais processadores realizarem um método de acordo com o sétimo aspecto ou qualquer modalidade possível do sétimo aspecto.
[0035] De acordo com um décimo segundo aspecto, a divulgação se refere a um programa de computador compreendendo um código de programa para realizar o método de acordo com o sétimo aspecto ou qualquer modalidade possível do sétimo aspecto quando executado em um computador.
[0036] Os detalhes de uma ou mais modalidades são apresentados nos desenhos anexos e na descrição abaixo. Outras características, objetos e vantagens serão evidentes a partir da descrição, desenhos e reivindicações.
[0037] No seguinte, modalidades da invençã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 invenção; a Figura 1B é um diagrama de blocos mostrando outro exemplo de um sistema de codificação de vídeo configurado para implementar modalidades da invenção; a Figura 2 é um diagrama de blocos mostrando um exemplo de um codificador de vídeo configurado para implementar modalidades da invenção; a Figura 3 é um diagrama de blocos mostrando um exemplo de estrutura de um decodificador de vídeo configurado para implementar modalidades da invençã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 mostrando fronteiras de sub- bloco exemplares de uma unidade de codificação; a Figura 7 é outro diagrama mostrando fronteiras de sub- bloco exemplares de uma unidade de codificação; a Figura 8 é um diagrama mostrando uma divisão de uma unidade de codificação em quatro unidades de transformada; a Figura 9 é um diagrama mostrando uma divisão de um bloco de CIIP em múltiplas unidades de transformada; a Figura 10 mostra um exemplo para a aplicação de um filtro de deblocagem nas amostras de uma subpartição; a Figura 11 é um diagrama mostrando blocos adjacentes de uma fronteira; a Figura 12 é um fluxograma mostrando a derivação da força de fronteira de uma fronteira de acordo com uma modalidade da presente divulgação; a Figura 13 é um fluxograma mostrando a derivação da força de fronteira de uma fronteira de acordo com a técnica anterior; a Figura 14 é um fluxograma mostrando a derivação da força de fronteira de uma fronteira de acordo com outra modalidade da presente divulgação; a Figura 15 é um fluxograma mostrando a derivação da força de fronteira de uma fronteira de acordo com ainda outra modalidade da presente divulgação; a Figura 16 é um diagrama mostrando bordas de sub-bloco dentro de uma unidade de codificação em relação a uma grade de amostra 8x8 começando a partir da amostra superior esquerda da CU; a Figura 17 é um diagrama mostrando bordas de sub-bloco dentro de uma unidade de codificação em relação a uma grade de amostra 8x8 não começando a partir da amostra superior esquerda da CU; e a Figura 18 é um diagrama mostrando bordas de sub-bloco dentro de uma unidade de codificação em relação a uma grade de amostra 4x4.
[0038] No seguinte, sinais de referência idênticos se referem a características idênticas ou pelo menos funcionalmente equivalentes, se não for explicitamente especificado de outra forma.
[0039] Na seguinte descrição, é feita referência às figuras anexas, as quais fazem parte da divulgação e que mostram, a título de ilustração, aspectos específicos das modalidades da invenção ou aspectos específicos em que as modalidades da presente invenção podem ser usadas. Entende- se que as modalidades da invençã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 invenção é definido pelas reivindicações anexas.
[0040] 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 etapas de método específicas forem descritas, um dispositivo correspondente pode incluir uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, para realizar a descrita uma ou pluralidade de etapas de método (por exemplo, uma unidade realizando a uma ou pluralidade de etapas, ou uma pluralidade de unidades, cada uma realizando uma ou mais da pluralidade de etapas), 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 uma etapa para realizar a funcionalidade de uma ou pluralidade de unidades (por exemplo, uma etapa realizando a funcionalidade da uma ou pluralidade de unidades, ou uma pluralidade de etapas, cada uma realizando a funcionalidade de uma ou mais da pluralidade de unidades), mesmo se tal uma ou uma pluralidade de etapas não forem explicitamente descritas ou ilustradas 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.
[0041] A codificação de vídeo normalmente se refere ao processamento de uma sequência de imagens, as quais 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 da origem, 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).
[0042] 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 que nenhuma perda de transmissão ou outra perda de dados ocorra durante o armazenamento ou transmissão). No caso de codificação de vídeo com perdas, a compressão adicional, por exemplo, por quantização, é realizada, para reduzir a quantidade de dados que representam as imagens de vídeo, as quais 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.
[0043] 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 (intra imagem) e / ou predição temporal (inter imagem) 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 circuito de processamento de decodificador de modo que ambos irão gerar predições idênticas (por exemplo, predições intra e inter) e / ou reconstruções para processamento, ou seja, codificação dos blocos subsequentes.
[0044] 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.
[0045] 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 para abreviar) que pode utilizar técnicas do presente pedido. O codificador de vídeo 20 (ou codificador 20 para abreviar) e o decodificador de vídeo 30 (ou decodificador 30 para abreviar) 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.
[0046] 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.
[0047] 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.
[0048] 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.
[0049] 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.
[0050] O pré-processador 18 pode ser 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 um componente opcional.
[0051] O codificador de vídeo 20 pode ser 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).
[0052] 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 adicionalmente 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.
[0053] 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.
[0054] A interface de comunicação 28 do dispositivo de destino 14 pode ser configurada para receber os dados de imagem codificados 21 (ou qualquer versão processada adicionalmente dos mesmos), por exemplo, diretamente a partir do dispositivo de origem 12 ou a partir de qualquer outra origem, por exemplo, um dispositivo de armazenamento, tal como um dispositivo de armazenamento de dados de imagem codificados, e fornecer os dados de imagem codificados 21 para o decodificador 30.
[0055] 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 fio ou sem fio, ou através de qualquer tipo de rede, por exemplo, uma rede com fio ou sem fio ou qualquer combinação das mesmas, ou qualquer tipo de rede privada e pública, ou qualquer tipo de combinação das mesmas.
[0056] A interface de comunicação 22 pode ser 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.
[0057] A interface de comunicação 28, formando a contraparte da interface de comunicação 22, pode ser 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.
[0058] 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 como interfaces de comunicação bidirecionais, e podem ser configuradas 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, como transmissão de dados de imagem codificada.
[0059] O decodificador 30 pode ser 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).
[0060] O pós-processador 32 do dispositivo de destino 14 pode ser 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, como uma imagem pós-processada 33. O pós-processamento realizado pela unidade de pós-processamento 32 pode compreender qualquer um ou mais de 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.
[0061] O dispositivo de exibição 34 do dispositivo de destino 14 pode ser 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, tal como uma tela de exibição ou monitor integrado ou externo. A tela de exibição pode ser uma tela de exibição de cristal líquido (LCD), uma tela de exibição de diodos emissores de luz orgânica (OLED), uma tela de exibição de plasma, um projetor, uma tela de exibição de microLED, um cristal líquido em silício (LCoS), um processador de luz digital (DLP) ou qualquer outro tipo de tela de exibição.
[0062] 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 os dispositivos ou ambas as funcionalidades, ou seja, 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.
[0063] 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.
[0064] 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 específicos de aplicação (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 de decodificador descrito neste documento. 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. O codificador de vídeo 20 e o 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.
[0065] O sistema de codificação de vídeo 40 mostrado na Figura 1B compreende um conjunto de circuitos de processamento que implementa um codificador de vídeo 20 e um decodificador de vídeo 30. Além disso, um ou mais dispositivos de imageamento 41, como uma câmera para capturar imagens do mundo real, uma antena 42, um ou mais armazenamentos de memória 44, um ou mais processadores 43 e / ou um dispositivo de exibição 45, tal como o dispositivo de exibição 34 descrito acima, podem ser fornecidos como parte do sistema de codificação de vídeo 40.
[0066] 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 de colo 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), dispositivos de recepção de difusão, dispositivos de transmissão 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.
[0067] 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 sistemas 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 na 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.
[0068] Por conveniência de descrição, as modalidades da invençã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 de conhecimento comum na técnica entenderá que as modalidades da invenção não estão limitadas a HEVC ou VVC.
Codificador e Método de Codificação
[0069] 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 uma unidade de processamento de transformada inversa 212, uma unidade de reconstrução 214, um armazenamento temporário (de linha) 216, uma unidade de filtro de circuito (“loop”) 220, um armazenamento temporário de imagens decodificadas (DPB) 230, uma unidade de seleção de modo 260, uma unidade de codificação por 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 predição inter 244, uma unidade de predição intra 254 e uma unidade de particionamento 262. A unidade de predição inter 244 pode incluir uma unidade de estimativa de movimento e uma unidade de compensação de movimento (não mostrada). Um codificador de vídeo 20, como mostrado na Figura 2, também pode ser referido como um codificador de vídeo híbrido ou um codificador de vídeo de acordo com um codec de vídeo híbrido.
[0070] A unidade de cálculo residual 204, a unidade de processamento de transformada 206, a unidade de quantização 208, e 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 armazenamento temporário (de linha) 216,
o filtro de circuito 220, o armazenamento temporário de imagens decodificadas (DPB) 230, a unidade de predição inter 244 e a unidade de predição intra 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 circuito 220, o armazenamento temporário de imagens decodificadas (DPB) 230, a unidade de predição inter 244 e a unidade de predição intra 254 também são referidas para formar o “decodificador embutido” do codificador de vídeo
20. Imagens e Particionamento de Imagens (Imagens e Blocos)
[0071] 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, uma 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 pode 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 uma imagem atual ou uma 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).
[0072] Uma imagem (digital) é ou pode ser considerada como um arranjo ou matriz bidimensional de amostras com valores de intensidade.
Uma amostra na matriz também pode ser referida como pixel (forma abreviada de elemento de imagem) ou um pel.
O número de amostras na direção horizontal e vertical (ou eixo) 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 intensidade 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.
[0073] 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) (de acordo com 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 de bloco, ou para alterar o tamanho de bloco entre imagens ou subconjuntos ou grupos de imagens, e particionar cada imagem nos blocos correspondentes.
[0074] 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.
[0075] Como a imagem 17, o bloco de imagem 203 é ou pode ser considerado como uma matriz bidimensional ou matriz de amostras com valores de intensidade (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 na direção (ou eixo) horizontal e vertical 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.
[0076] 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.
[0077] 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).
[0078] 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 grupos de peças pode compreender um ou mais blocos (por exemplo, CTUs) ou uma ou mais peças, em que cada peça, pode ter forma retangular e pode compreender um ou mais blocos (por exemplo, CTUs), por exemplo, blocos completos ou fracionários. Cálculo Residual
[0079] 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
[0080] A unidade de processamento de transformada 206 pode ser configurada para aplicar uma transformada, tal como, 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.
[0081] 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 transformada 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 transformada direta, por exemplo, pela unidade de processamento de transformada 206, em um codificador 20 podem ser especificados em conformidade.
[0082] As modalidades do codificador de vídeo 20 (respectivamente, a 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 por 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
[0083] 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.
[0084] 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, diferentes escalonamentos podem ser aplicados para alcançar uma quantização mais fina ou mais grosseira. Tamanhos de etapa de quantização menores correspondem a quantização mais fina, enquanto tamanhos de etapa de quantização maiores correspondem a quantização mais grosseira. O tamanho de etapa de quantização aplicável pode ser indicado por um parâmetro de quantização (QP). O parâmetro de quantização pode, por exemplo, ser um índice de um conjunto predefinido de tamanhos de etapas de quantização aplicáveis. Por exemplo, pequenos parâmetros de quantização podem corresponder a quantização fina (tamanhos de etapas de quantização pequenos) e parâmetros de quantização grandes podem corresponder a quantização grosseira (tamanhos de etapas de quantização grandes) ou vice-versa. A quantização pode incluir a divisão por um tamanho de etapa de quantização e uma desquantização correspondente e / ou inversa, por exemplo, por unidade de quantização inversa 210, pode incluir multiplicação pelo tamanho de etapa 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 etapa de quantização. Geralmente, o tamanho de etapa de quantização pode ser calculado com base em um parâmetro de quantização usando uma aproximação de ponto fixo de uma equação incluindo divisão. 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 escalonamento usado na aproximação de ponto fixo da equação para o tamanho de etapa de quantização e parâmetro de quantização. Em uma implementação exemplar, o escalonamento da transformada inversa e da 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 de etapas de quantização.
[0085] As modalidades do codificador de vídeo 20 (respectivamente, a unidade de quantização 208) podem ser configuradas para emitir parâmetros de quantização (QPs), por exemplo, diretamente ou codificados por meio da unidade de codificação por 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
[0086] 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 etapa 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
[0087] 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 um bloco de transformada 213. Reconstrução
[0088] 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
[0089] A unidade de filtro de circuito 220 (ou "filtro de circuito" 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 circuito pode ser configurada para suavizar as transições de pixel, ou de outra forma melhorar a qualidade de vídeo. A unidade de filtro de circuito 220 pode compreender um ou mais filtros de circuito, como um filtro de deblocagem, um filtro de deslocamento adaptativo de amostra (SAO) ou um ou mais outros filtros, tal como um filtro bilateral, um filtro de circuito 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 circuito 220 seja mostrada na Figura 2 como sendo um filtro dentro de circuito, em outras configurações, a unidade de filtro de circuito 220 pode ser implementada como um filtro pós- circuito. O bloco filtrado 221 também pode ser referido como um bloco reconstruído filtrado 221.
[0090] As modalidades do codificador de vídeo 20 (respectivamente, a unidade de filtro de circuito 220) podem ser configuradas para emitir parâmetros de filtro de circuito (tais como informações de deslocamento adaptativo de amostra), por exemplo, diretamente ou codificados através da unidade de codificação por entropia 270, de modo que, por exemplo, um decodificador 30 pode receber e aplicar os mesmos parâmetros de filtro de circuito ou respectivos filtros de circuito para decodificação. Armazenamento temporário de imagens decodificadas
[0091] O armazenamento temporário 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 armazenamento temporário de imagens decodificadas (DPB) 230 pode ser configurado para armazenar um ou mais blocos filtrados 221. O armazenamento temporário 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 predição inter. O armazenamento temporário 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 circuito 220 ou qualquer outra versão processada adicional dos blocos reconstruídos ou amostras. Seleção de modo (Particionamento e Predição)
[0092] A unidade de seleção de modo 260 compreende unidade de particionamento 262, unidade de predição inter 244 e unidade de predição intra 254 e é configurada para receber ou obter dados de imagem original, tal como um bloco original 203 (bloco atual 203 da imagem atual 17), e dados de imagem reconstruídos, tal como 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 armazenamento temporário de imagens decodificadas 230 ou outros armazenamento temporários (por exemplo, armazenamento temporário de linha 216). Os dados de imagem reconstruídos são usados como dados de imagem de referência para predição, por exemplo, predição inter ou predição intra, para obter um bloco de predição 265 ou preditor 265. Em particular, amostras de referência 217 a partir do armazenamento temporário de linha 216 podem ser usadas por unidade de predição intra 254.
[0093] 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 de predição intra ou inter) e gerar um bloco de predição correspondente 265, o qual é usado para o cálculo do bloco residual 205 e para a reconstrução do bloco reconstruído
215.
[0094] 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 um overhead de sinalização mínimo (overhead de sinalização mínimo significa melhor compressão para transmissão ou armazenamento), ou o qual 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 um limiar ou outras restrições levando potencialmente a uma "seleção subótima", mas reduzindo a complexidade e o tempo de processamento.
[0095] 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 (os quais novamente formam blocos), por exemplo, iterativamente usando particionamento de árvore quádrupla (QT), particionamento de árvore binária (BT) ou particionamento de árvore tripla (TT) ou qualquer combinação dos mesmos, e para realizar 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 os modos de predição são aplicados a cada uma das partições de bloco ou sub-blocos.
[0096] A seguir, o particionamento (por exemplo, por unidade de particionamento 262) e processamento de predição (por unidade de predição inter 244 e unidade de predição intra 254) realizados por um codificador de vídeo de exemplo 20 serão explicados em mais detalhes. Particionamento
[0097] 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 (os quais 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 terminado, por exemplo, porque um critério de terminação é cumprido, por exemplo, uma profundidade máxima da árvore ou tamanho de bloco mínimo é alcançado. Os blocos que não são particionados adicionalmente 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).
[0098] 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) ou 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 um bloco de predição (PB).
[0099] 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 e 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.
[00100] Em algumas 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.
[00101] Em modalidades, por exemplo, de acordo com o padrão de codificação de vídeo mais recente atualmente em desenvolvimento, o qual é referido como Codificação de Vídeo Versátil (VVC), um particionamento de árvore quádrupla e árvore binária combinado (QTBT) é, 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 partiçã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.
[00102] 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 descritas neste documento.
[00103] Conforme descrito acima, o codificador de vídeo 20 é configurado para determinar ou selecionar o melhor ou um modo de predição ideal a partir de um conjunto de modos de predição (predeterminados). O conjunto de modos de predição pode compreender modos de predição intra e / ou modos de predição inter. Predição Intra
[00104] O conjunto de modos de predição intra pode compreender 35 modos de predição intra diferentes, tais como 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 predição intra, como modos não direcionais, como modo DC (ou médio) e modo planar, ou modos direcionais, por exemplo, conforme definido para VVC.
[00105] A unidade de predição intra 254 é configurada para usar amostras reconstruídas de blocos vizinhos da mesma imagem atual para gerar um bloco de predição (intra) 265 de acordo com um modo de predição intra a partir do conjunto de modos de predição intra.
[00106] A unidade de predição intra 254 (ou, em geral, a unidade de seleção de modo 260) é adicionalmente configurada para emitir parâmetros de predição intra (ou em informações gerais indicativas do modo de predição intra selecionado para o bloco) para a unidade de codificação por entropia 270 na 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. Predição Inter
[00107] O conjunto de (ou possíveis) modos de predição inter 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 predição inter, por exemplo, se a imagem de referência inteira ou apenas uma parte, por exemplo, uma área de janela de pesquisa em torno da área do bloco atual, da imagem de referência é usada para pesquisar o melhor bloco de referência correspondente, e / ou por exemplo, se a interpolação de pixel é aplicada, tal como interpolação de meio / semi-pel, e / ou interpolação de um quarto de pel, ou não.
[00108] Em adição aos modos de predição acima, o modo de salto e / ou o modo direto podem ser aplicados.
[00109] A unidade de predição inter 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, tal como blocos reconstruídos de um ou uma pluralidade de imagens previamente decodificadas 231, para estimativa de movimento. A título de 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.
[00110] O codificador 20 pode 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 imagens previamente decodificadas e fornecer uma imagem de referência (ou índice de imagem de referência) e / ou um deslocamento (deslocamento espacial) entre a posição (coordenadas x, y) do bloco de referência e a posição do bloco atual como parâmetros de predição inter para a unidade de estimativa de movimento. Este deslocamento também é chamado de vetor de movimento (MV).
[00111] A unidade de compensação de movimento pode ser configurada para obter, por exemplo, receber, um parâmetro de predição inter e realizar a predição inter com base em ou usando o parâmetro de predição inter para obter um bloco de predição (inter) 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.
[00112] 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. Adicionalmente 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 por Entropia
[00113] A unidade de codificação por entropia 270 é configurada para aplicar, por exemplo, um algoritmo ou esquema de codificação por entropia (por exemplo, um esquema de codificação de comprimento variável (VLC), um esquema de VLC adaptativo ao contexto (CAVLC), um esquema de codificação aritmética, uma binarização, uma codificação aritmética binária adaptativa ao contexto (CABAC), codificação aritmética binária adaptativa ao contexto baseada em sintaxe (SBAC), codificação por entropia de particionamento de intervalo de probabilidade (PIPE) ou outra metodologia ou técnica de codificação por entropia) ou desvio (sem compressão) nos coeficientes quantizados 209, parâmetros de predição inter, parâmetros de predição intra, parâmetros de filtro de circuito 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 para 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.
[00114] 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
[00115] A Figura 3 mostra um exemplo de um decodificador de vídeo 30 o qual é configurado para implementar as técnicas do 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 grupo de peças ou peça) e elementos de sintaxe associados.
[00116] No exemplo da Figura 3, o decodificador 30 compreende uma unidade de decodificação por 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 armazenamento temporário (de linha) 316, um filtro de circuito 320, um armazenamento temporário de imagens decodificadas (DBP) 330, uma unidade de aplicação de modo
360, uma unidade de predição inter 344 e uma unidade de predição intra 354. A unidade de predição inter 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 20 da Figura 2.
[00117] 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 armazenamento temporário (de linha) 216, o filtro de circuito 220, o armazenamento temporário de imagens decodificadas (DPB) 230, a unidade de predição inter 244 e a unidade de predição intra 254 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 210, 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 armazenamento temporário (de linha) 316 pode ser idêntico em função ao armazenamento temporário (de linha) 216 fornecendo amostras de referência 317 para a unidade de predição intra 354, o filtro de circuito 320 pode ser idêntico em função ao filtro de circuito 220, e o armazenamento temporário de imagens decodificadas 330 pode ser idêntico em função ao armazenamento temporário 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 por Entropia
[00118] A unidade de decodificação por 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 por entropia para os dados de imagem codificados 21 para obter, por exemplo, coeficientes quantizados 309 e / ou parâmetros de codificação decodificados 366, tal como qualquer um ou todos os parâmetros de predição inter (por exemplo, índice de imagem de referência e vetor de movimento), parâmetros de predição intra (por exemplo, modo de predição intra ou índice), parâmetros de transformada, parâmetros de quantização, parâmetros de filtro de circuito e / ou outros elementos de sintaxe. A unidade de decodificação por 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 por entropia 270 do codificador 20. A unidade de decodificação por entropia 304 pode ser configurada adicionalmente para fornecer parâmetros de predição inter, parâmetros de predição intra e / ou outros elementos de sintaxe para a unidade de seleçã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. Adicionalmente 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
[00119] A unidade de quantização inversa 310 pode ser configurada para receber parâmetros de quantização (QP) (ou em geral, informações 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 por entropia 304) e aplicar com base nos parâmetros de quantização, uma quantização inversa para os coeficientes quantizados decodificados 309 para obter coeficientes desquantizados 311, os quais 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 peça 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
[00120] 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 transformada aos coeficientes desquantizados 311 a fim de obter blocos residuais reconstruídos 313 no domínio de amostra. Os blocos residuais reconstruídos 313 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 por entropia 304) para determinar a transformada a ser aplicada aos coeficientes desquantizados 311. Reconstrução
[00121] 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
[00122] A unidade de filtro de circuito 320 (ou no circuito de codificação ou após o circuito 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 circuito 320 pode compreender um ou mais filtros de circuito, 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 circuito 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 circuito 320 seja mostrada na Figura 3 como sendo um filtro dentro de circuito, em outras configurações, a unidade de filtro de circuito 320 pode ser implementada como um filtro pós-circuito. Armazenamento temporário de imagens decodificadas
[00123] Os blocos de vídeo decodificados 321 de uma imagem são então armazenados no armazenamento temporário de imagens decodificadas 330, o qual armazena as imagens decodificadas 331 como imagens de referência para compensação de movimento subsequente para outras imagens e / ou para emissão ou exibição respectivamente.
[00124] O decodificador 30 é configurado para emitir a imagem decodificada 311, por exemplo, através da saída 312, para apresentação ou visualização para um usuário. Predição
[00125] A unidade de predição inter 344 pode ser idêntica à unidade de predição inter 244 (em particular à unidade de compensação de movimento) e a unidade de predição intra 354 pode ser idêntica à unidade de predição intra 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 por entropia 304). A unidade de seleção de modo 360 pode ser configurada para realizar a predição (predição intra ou inter) 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. Adicionalmente, amostras de referência 317 a partir do armazenamento temporário de linha 316 podem ser usadas por unidade de predição intra 354.
[00126] Quando a fatia ou imagem de vídeo é codificada como uma fatia intracodificada (I), a unidade de predição intra 354 da unidade de seleçã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 predição intra sinalizado e dados a partir de blocos previamente decodificados da imagem atual. Quando a fatia ou imagem de vídeo é codificada como uma fatia intercodificada (isto é, B ou P), a unidade de predição inter 344 (por exemplo, unidade de compensação de movimento) da unidade de seleção de modo 360 é configurada para produzir bloco 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 por entropia
304. Para predição inter, 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 imagens 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. A mesma abordagem ou semelhante pode ser aplicada 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), adicionalmente ou alternativamente a fatias (por exemplo, fatias de vídeo), por exemplo, um vídeo pode ser codificado usando grupos de peças e / ou peças I, P ou B.
[00127] A unidade de seleção de modo 360 é configurada para determinar as informações de predição para um bloco de vídeo / imagem da fatia de vídeo atual analisando os vetores de movimento e outros elementos de sintaxe, e usa as informações de predição para produzir o bloco de predição para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de seleção de modo 360 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, predição intra ou inter) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de predição inter (por exemplo, fatia B, fatia P, ou fatia GPB), informações de construção para uma ou mais das listas de imagens de referência para a fatia, vetores de movimento para cada bloco de vídeo intercodificado da fatia, estado de predição inter para cada bloco de vídeo intercodificado da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual. A mesma abordagem ou semelhante pode ser aplicada 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), adicionalmente ou alternativamente a fatias (por exemplo, fatias de vídeo), por exemplo, um vídeo pode ser codificado usando grupos de peças e / ou peças I, P ou B.
[00128] 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).
[00129] 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 fatias / peças (tipicamente não sobrepostas), e cada grupo de fatias / peças pode compreender um ou mais blocos (por exemplo, CTUs) ou um ou mais peças, em que cada peça pode ser de forma retangular e pode compreender um ou mais blocos (por exemplo, CTUs), por exemplo, blocos completos ou fracionários.
[00130] 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 circuito 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.
[00131] Deve ser entendido que, no codificador 20 e no decodificador 30, um resultado de processamento de uma etapa atual pode ser adicionalmente processado e, em seguida, emitido para a próxima etapa. Por exemplo, após a filtragem de interpolação, derivação de vetor de movimento ou filtragem de circuito, 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 circuito.
[00132] Deve ser notado que operações adicionais podem ser aplicadas aos vetores de movimento derivados do 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 um vetor de movimento é restrito a um intervalo predefinido de acordo com seu número de bit de representação. Se o número de bit de representação do vetor de movimento for bitDepth, então a faixa é -2 ^ (bitDepth-1) ~ 2 ^ (bitDepth-1) -1, onde “^” significa exponenciação. Por exemplo, se bitDepth for definido igual a 16, a faixa será -32768 ~ 32767; se bitDepth for definido igual a 18, a faixa é -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.
[00133] A descrição a seguir fornece dois métodos para restringir o vetor de movimento de acordo com o bitDepth.
[00134] 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 os respectivos valores intermediários.
[00135] Por exemplo, se o valor de mvx for -32769, após a aplicação das fórmulas (1) e (2), o valor resultante será
32767. Em um sistema de computador, os números decimais são armazenados como complementos 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 resultantes é 0111,1111,1111,1111 (o número decimal é 32767), o qual é o mesmo que a saída por aplicar as fórmulas (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)
[00136] As operações podem ser aplicadas durante a soma do preditor de vetor de movimento mvp e a diferença de vetor de movimento mvd, conforme mostrado nas fórmulas (5) a (8).
[00137] 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 da função Clip3 é como segue: x ; z < x Clip3 (x, y, z) = y ; z > y z ; de outro modo
[00138] A Figura 4 é um diagrama esquemático de um dispositivo de codificação de vídeo 400 de acordo com uma modalidade da presente divulgação. O dispositivo de codificação de vídeo 400 é adequado para implementar as modalidades divulgadas conforme descrito abaixo. 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.
[00139] O dispositivo de codificação de vídeo 400 pode compreender portas de ingresso 410 (ou portas de entrada 410) e uma unidade receptora (Rx) 420 para receber dados; um processador, unidade lógica ou unidade de processamento central (CPU) 430 para processar os dados; uma unidade transmissora (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, a unidade receptora 420, a unidade transmissora 440, e as portas de egresso 450 para egresso ou ingresso de sinais óticos ou elétricos.
[00140] O processador 430 pode ser 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 pode estar em comunicação com as portas de ingresso 410, a unidade receptora 420, a unidade transmissora 440, as portas de egresso 450, e a memória 460. O processador 430 pode compreender um módulo de codificação 470. O módulo de codificação 470 implementa as modalidades divulgadas descritas acima e abaixo. Por exemplo, o módulo de codificação 470 pode implementar, processar, preparar ou fornecer 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 transformada do dispositivo de codificação de vídeo 400 para um estado diferente. Alternativamente, o módulo de codificação 470 pode ser implementado como instruções armazenadas na memória 460 e executadas pelo processador 430.
[00141] 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).
[00142] 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 1A de acordo com uma modalidade exemplar.
[00143] 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.
[00144] 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 realizar os métodos descritos neste documento. Por exemplo, os programas de aplicação 510 podem incluir aplicações de 1 a N, as quais incluem ainda uma aplicação de codificação de vídeo que realiza os métodos descritos neste documento.
[00145] O aparelho 500 também pode incluir um ou mais dispositivos de saída, como uma tela de exibição 518. A tela de exibição 518 pode ser, em um exemplo, uma tela sensível ao toque que combina uma tela de exibição com um elemento sensível ao toque que é operável para detectar entradas de toque. A tela de exibição 518 pode ser acoplada ao processador 502 por meio do barramento 512.
[00146] Embora representado neste documento como um único barramento, o barramento 512 do aparelho 500 pode ser composto de múltiplos barramentos. Além disso, um 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. Além disso, um dispositivo de detecção de imagem 520 e / ou um dispositivo de detecção de som 522 podem ser incluídos no aparelho 500. O aparelho
500 pode, assim, ser implementado em uma ampla variedade de configurações. Predição Inter-Intra Combinada (CIIP)
[00147] Convencionalmente, uma unidade de codificação é predita por predição intra (usando as amostras de referência na mesma imagem) ou predita por predição inter (usando as amostras de referência em outras imagens). A predição inter- intra combinada combina essas duas abordagens de predição. Portanto, às vezes também é chamada de predição de múltiplas hipóteses (MH). Quando a predição inter-intra combinada é habilitada, as amostras preditas por predição intra e preditas por predição inter são aplicadas por pesos, e a predição final é, assim, derivada como a média ponderada das amostras preditas.
[00148] Uma sinalização, a sinalização de CIIP, é usada para indicar quando um bloco é codificado com predição inter- intra combinada.
[00149] Um bloco codificado com CIIP pode ser dividido adicionalmente em vários sub-blocos, como mostrado nas Figuras 6 e 7. Em um exemplo, os sub-blocos são derivados dividindo o bloco em sub-blocos horizontais, ou seja, dividindo na direção vertical, com cada sub-bloco tendo a mesma largura do bloco original, mas apenas ¼ da altura do bloco original.
[00150] Em um exemplo, os sub-blocos são derivados dividindo o bloco em sub-blocos verticais, ou seja, dividindo na direção horizontal, com cada sub-bloco tendo a mesma altura do bloco original, mas apenas ¼ da largura do bloco original.
[00151] Artefatos de bloco podem ser introduzidos devido a CIIP, pois CIIP envolve resultados com predição intra, que geralmente tem mais sinais residuais. Os artefatos de bloco não ocorrem apenas nas fronteiras de um bloco de CIIP, mas também nas bordas de sub-bloco dentro do bloco de CIIP, como as bordas de sub-bloco vertical A, B, C na Figura 6. As bordas de sub-bloco horizontal podem ser identificadas correspondentemente. Para remover artefatos de bloco, as bordas de sub-bloco dentro do bloco de CIIP podem ser deblocadas conforme mostrado na Figura 7.
[00152] Embora artefatos de bloco possam ocorrer nas fronteiras de bloco de CIIP e nas bordas de sub-bloco dentro dos blocos de CIIP, a distorção causada por essas duas fronteiras pode ser diferente, e diferentes forças de fronteira podem ser necessárias.
[00153] As bordas de sub-bloco podem ser causadas pela própria CIIP. Por exemplo, se o modo de predição intra de um bloco de CIIP for um modo horizontal, o particionamento vertical conforme mostrado na Figura 6 é aplicado, resultando em três bordas de sub-bloco.
[00154] No entanto, as bordas de sub-bloco também podem ser causadas por limitações de tamanho de TU (unidade de transformada). Em VTM3.0 (Modelo de Teste de Codificação de Vídeo Versátil 3.0), o maior tamanho de TU é 64x64 amostras. Se uma CU (unidade de codificação) tem 128x128 amostras, ela será dividida em 4 TUs, resultando em 4 fronteiras de TU, conforme mostrado na Figura 8. Consequentemente, a transformada é aplicada na granularidade de 64x64. As fronteiras de TU mostradas como linhas tracejadas precisam ser deblocadas.
[00155] Além disso, quando uma ferramenta de codificação particular (por exemplo, uma transformada de sub-bloco) é aplicada, as bordas de TU podem ocorrer dentro de uma CU processada pela predição CIIP, como mostrado na Figura 9. Uma unidade de codificação codificada com CIIP pode ser dividida ainda mais em múltiplas unidades de transformada. As fronteiras de TU destacadas como linhas tracejadas na Figura 9 representam, portanto, as bordas internas da TU dentro de uma unidade de CIIP. Essas bordas de TU internas dentro da unidade de CIIP também precisam ser deblocadas.
[00156] No restante da descrição, a seguinte terminologia é usada: Blocos de CIIP: os blocos de codificação que são preditos pela aplicação de CIIP; Blocos Intra: Os blocos de codificação que são preditos pela aplicação de predição intra, mas não CIIP; Blocos Inter: os blocos de codificação que são preditos pela aplicação de predição inter, mas não CIIP. Filtro de Deblocagem e Força de Fronteira
[00157] Os esquemas de codificação de vídeo, como HEVC e VVC, são projetados de acordo com o princípio de sucesso da codificação de vídeo híbrida baseada em bloco. Usando este princípio, uma imagem é primeiro particionada em blocos e, em seguida, cada bloco é predito usando a predição intraimagem ou interimagem. Esses blocos são codificados em relação aos blocos vizinhos e se aproximam do sinal original com algum grau de similaridade. Uma vez que os blocos codificados apenas se aproximam do sinal original, a diferença entre as aproximações pode causar descontinuidades nas fronteiras de bloco de predição e transformada. Essas descontinuidades são atenuadas pelo filtro de deblocagem.
[00158] A Figura 10 mostra um exemplo para a aplicação de um filtro de deblocagem nas amostras de uma subpartição. Se o tamanho da subpartição for menor que 8 amostras ortogonalmente à direção da deblocagem, um filtro fraco que usa apenas 3 amostras no processo de decisão e modifica uma amostra é usado.
[00159] A decisão de filtrar uma fronteira de bloco usa as informações de fluxo de bits, como modos de predição e vetores de movimento. Algumas condições de codificação são mais propensas a criar artefatos de bloco fortes, que são representados por uma variável chamada de força de fronteira (Bs ou BS) que é atribuída a cada fronteira de bloco e é determinada como na Tabela 1. Tabela 1 Condições Bs Pelo menos um dos blocos 2 adjacentes é intra Pelo menos um dos blocos 1 adjacentes tem coeficientes de transformada diferentes de zero A diferença absoluta entre o 1 componente vertical ou horizontal dos vetores de movimento que pertencem aos blocos adjacentes é maior ou igual a uma amostra de luma inteira A predição de movimento nos 1 blocos adjacentes refere-se a diferentes imagens de referência ou o número de vetores de movimento é diferente De outro modo 0
[00160] A deblocagem é aplicada apenas às fronteiras de bloco com Bs maior que zero para um componente de luma e Bs maior que 1 para componentes de croma. Valores mais altos de Bs permitem uma filtragem mais forte usando valores de parâmetro de corte mais altos. As condições de derivação de Bs refletem a probabilidade de que os artefatos de bloco mais fortes apareçam nas fronteiras de bloco predito por predição intra.
[00161] Normalmente, os dois blocos adjacentes de uma fronteira são rotulados como P e Q, conforme mostrado na Figura 11. A imagem mostra o caso de uma fronteira vertical. Se uma fronteira horizontal for considerada, a Figura 11 deve ser girada 90 graus no sentido horário, onde P seria o bloco superior e Q o bloco inferior. Construção de Lista de Modo Mais Provável
[00162] A lista de modo mais provável (MPM) é usada na codificação de modo intra para melhorar a eficiência da codificação. Devido ao grande número de modos intra (por exemplo, 35 em HEVC e 67 em VVC), o modo intra do bloco atual não é sinalizado diretamente. Em vez disso, uma lista de Modo Mais Provável do bloco atual é construída com base nos modos de predição intra de seus blocos vizinhos. Como um modo interno de um bloco atual é relevante para seus vizinhos, a lista de MPM geralmente fornece uma boa predição, conforme indica seu nome (lista de Modo Mais Provável).
Assim, o modo intra do bloco atual tem uma grande chance de pertencer em sua lista de MPM. Desta forma, para derivar o modo intra do bloco atual, apenas o índice da lista de MPM é sinalizado. Comparado ao número total de modos intra, o comprimento da lista de MPM é muito menor (por exemplo, uma lista de 3-MPM é usada em HEVC e uma lista de 6-MPM é usada em VVC). Portanto, menos bits são necessários para codificar o modo intra. Uma sinalização (mpm_flag) é usada para indicar se o modo intra do bloco atual pertence à sua lista de MPM ou não. Se for verdadeiro, o modo intra do bloco atual pode ser indexado usando a lista de MPM. De outro modo, o modo intra é sinalizado diretamente usando um código binarizado. Tanto no VVC quanto no HEVC, a lista de MPM é construída com base nos blocos vizinhos esquerdo e superior. Quando o bloco vizinho esquerdo e o bloco vizinho superior do bloco atual não estão disponíveis para predição, uma lista de modo padrão é usada. Predição de Vetor de Movimento
[00163] A Predição de Vetor de Movimento é uma técnica usada na codificação de dados de movimento. Um vetor de movimento geralmente tem dois componentes, x e y, que se referem ao movimento na direção horizontal e vertical, respectivamente. Os vetores de movimento do bloco atual são geralmente correlacionados com os vetores de movimento dos blocos vizinhos na imagem atual ou nas imagens codificadas anteriormente. Isso ocorre porque os blocos vizinhos provavelmente correspondem ao mesmo objeto em movimento com movimento semelhante e o movimento do objeto não deve mudar abruptamente com o tempo. Consequentemente, usar os vetores de movimento em blocos vizinhos como preditores reduz o tamanho da diferença de vetor de movimento sinalizada. Os Preditores de Vetor de Movimento (MVPs) são normalmente derivados de vetores de movimento já decodificados de blocos espacialmente vizinhos e / ou de blocos temporalmente vizinhos na imagem colocalizada.
[00164] Se um bloco for determinado a ser predito pela aplicação de CIIP, suas amostras preditas finais são parcialmente baseadas nas amostras preditas por predição intra. Uma vez que predição intra também está envolvida, geralmente os coeficientes residuais e de transformada são maiores quando comparados aos blocos inter (mvd, fusão, salto). Portanto, quando esses blocos de múltiplas hipóteses (MH ou MHIntra), ou seja, blocos de CIIP, são adjacentes a outros blocos, então, através da fronteira, haverá mais descontinuidades. Em HEVC e VVC, quando qualquer um dos dois blocos adjacentes de uma fronteira é predito por predição intra, um filtro de deblocagem forte é aplicado para esta fronteira, em que o parâmetro de Força de Fronteira (BS) é definido como 2 (o mais forte).
[00165] Em VTM3.0, no entanto, o artefato de bloco potencial causado por blocos preditos por CIIP não é considerado. A derivação de força de fronteira ainda considera os blocos com CIIP como blocos inter. Sob certas circunstâncias, tal abordagem de processamento pode causar qualidade subjetiva e objetiva inferior.
[00166] As modalidades desta divulgação fornecem várias alternativas para incorporar blocos de CIIP a fim de melhorar o filtro de deblocagem, em que a derivação de força de fronteira de uma fronteira particular é impactada por blocos de CIIP.
[00167] Um documento de referência para a Codificação de Vídeo Versátil (Rascunho 3) é definido como Rascunho VVC 3.0 e pode ser encontrado no seguinte caminho: http://phenix.it- sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET- L1001-v3.zip.
Modalidade 1: Para uma fronteira com dois lados, (onde os blocos espacialmente adjacentes em cada lado são denotados como bloco P e bloco Q), a força de fronteira pode ser determinada da seguinte forma: • Conforme mostrado na Figura 12, se pelo menos um bloco dos blocos P e Q for um bloco com CIIP (predição MHIntra), então o parâmetro de força de fronteira desta fronteira é definido como um primeiro valor.
Por exemplo, o primeiro valor pode ser igual a 2. • Se nem o bloco P nem o Q for predito pela aplicação de CIIP e se pelo menos um dos blocos P e Q for predito pela aplicação de predição intra, a força de fronteira é determinada como sendo igual a 2. • Se nem o bloco P nem o bloco Q forem preditos pela aplicação de CIIP e se ambos, o bloco P e o bloco Q forem preditos pela aplicação de predição inter, então a força de fronteira é determinada como menor que 2. O valor exato da força de fronteira é determinado de acordo com avaliações condicionais adicionais.
A derivação da força de fronteira desta fronteira é mostrada na Figura 12 e segue a especificação na Tabela 1. • Mais especificamente, se pelo menos um dos blocos P e Q tem coeficientes de transformada diferentes de zero, a força de fronteira é determinada como igual a 1. Da mesma forma, se a predição inter dos blocos P e Q usa imagens de referência diferentes ou o número de vetores de movimento para os blocos P e Q é diferente, a força de fronteira é determinada como igual a 1. Além disso, se a diferença absoluta entre vetores de movimento dos blocos P e Q for maior ou igual a uma amostra de luma inteira para pelo menos um dos componentes horizontais e os componentes verticais dos vetores de movimento, a força de fronteira é determinada como sendo igual a 1. • Para comparação, um método especificado no padrão de codificação de vídeo VVC ou ITU-H.265 é mostrado na Figura
13. A determinação da força de fronteira de acordo com as presentes modalidades para o caso em que nem o bloco P nem o bloco Q são preditos por aplicação de CIIP corresponde ao método conhecido da Figura 13. • As amostras de pixel compreendidas nos blocos P e Q são filtradas pela aplicação de um filtro de deblocagem de acordo com a força de fronteira determinada como mencionado acima. Modalidade 2: Como mostrado na Figura 14, para uma fronteira com dois lados (onde os blocos espacialmente adjacentes em cada lado são denotados como bloco P e bloco Q), a força de fronteira pode, alternativamente, ser derivada da seguinte forma: • Se pelo menos um bloco dos blocos P e Q for um bloco com predição intra, então a força de fronteira é definida como 2. • De outro modo, se pelo menos um bloco dos blocos P e Q for um bloco com CIIP (predição MHIntra), então a força de fronteira desta fronteira é definida para um primeiro valor,
por exemplo, 1. • De outro modo, se pelo menos um dos blocos P e Q tiver coeficientes de transformada diferentes de zero, então a força de fronteira desta fronteira é definida para um segundo valor, por exemplo, 1. Os primeiro e o segundo valores podem ser diferentes. • De outro modo, se uma diferença absoluta entre vetores de movimento que pertencem aos blocos P e Q for maior ou igual a uma amostra de luma inteira, então a força de fronteira desta fronteira é definida para o segundo valor, por exemplo, 1. • De outro modo, se a predição de movimento nos blocos adjacentes se referir a imagens de referência diferentes ou o número de vetores de movimento for diferente, então a força de fronteira desta fronteira é definida para o segundo valor, por exemplo 1. • De outro modo, a força de fronteira desta fronteira é definida como 0. • As amostras de pixel compreendidas nos blocos P e Q são filtradas pela aplicação de um filtro de deblocagem de acordo com a força de fronteira determinada.
Modalidade 3: Como mostrado na Figura 15, para uma fronteira com dois lados (onde os blocos espacialmente adjacentes em cada lado são denotados como bloco P e bloco Q), a força de fronteira desta fronteira pode, alternativamente, ser definida da seguinte forma: • Se pelo menos um bloco dos blocos P e Q for predito pela aplicação de predição intra e não pela aplicação de CIIP, então a força de fronteira é definida igual a 2. As possibilidades incluem o bloco P sendo predito por predição intra e não por predição de múltiplas hipóteses (MH ou MHIntra), ou seja, CIIP, e o bloco Q sendo predito por qualquer função de predição e vice-versa. • Se os blocos P e Q são preditos pela aplicação de predição inter ou pela aplicação de CIIP (as possibilidades incluem o bloco P sendo um bloco inter e o bloco Q sendo um bloco inter ou, alternativamente, o bloco P sendo um bloco inter e o bloco Q sendo um bloco de CIIP, ou alternativamente o bloco P sendo um bloco de CIIP e o bloco Q sendo um bloco inter, ou alternativamente o bloco P sendo um bloco de CIIP e o bloco Q sendo um bloco de CIIP), o seguinte pode se aplicar: o Se pelo menos um dos blocos P e Q tiver coeficientes de transformada diferentes de zero, o parâmetro de força de fronteira é definido como 1. o De outro modo (se os blocos P e Q não tiverem coeficientes de transformada diferentes de zero), se os blocos P e Q forem preditos com base em imagens de referência diferentes ou o número de vetores de movimento que são usados para predizer o bloco P e o bloco Q não são iguais, então a força de fronteira desta fronteira é definida igual a 1. o De outro modo (se os blocos P e Q não tiverem coeficientes de transformada diferentes de zero e os blocos P e Q forem preditos com base na (s) mesma (s) imagem (ns) de referência e o número de vetores de movimento que são usados para predizer os blocos P e Q é o mesmo), se a diferença absoluta entre vetores de movimento que são usados para predizer os blocos P e Q for maior ou igual a uma amostra de luma inteira, então a força de fronteira desta fronteira é igual a 1. o De outro modo (se as 3 condições acima forem avaliadas como falsas), a força de fronteira dessa fronteira é definida como igual a 0. • Posteriormente, se pelo menos um bloco dos blocos P e Q for um bloco com CIIP, então a força de fronteira é modificada da seguinte forma: o Se a força de fronteira não for igual a um primeiro valor predefinido (em um exemplo, o primeiro valor predefinido é igual a 2), então a força de fronteira é incrementada por um segundo valor predefinido (em um exemplo, o segundo valor predefinido é igual a 1). • As amostras de pixel compreendidas nos blocos P e Q são filtradas pela aplicação de um filtro de deblocagem de acordo com a força de fronteira determinada.
Modalidade 4: Para uma fronteira com dois lados (P e Q, conforme descrito em Rascunho VVC 3.0 de acordo com a referência acima mencionada), a força de fronteira pode ser derivada da seguinte forma: • Se esta fronteira for horizontal e P e Q pertencerem a diferentes CTUs, então: o Se o bloco Q for um bloco com CIIP, a força de fronteira é definida como 2. o De outro modo, a força de fronteira é derivada conforme definido em Rascunho VVC 3.0 de acordo com a referência acima mencionada e como mostrado na Figura 13. • De outro modo: o Se pelo menos um bloco dos blocos P e Q for um bloco com CIIP, então a força de fronteira desta fronteira é definida como 2. o De outro modo, derivar a força de fronteira desta fronteira conforme definido em Rascunho VVC 3.0 de acordo com a referência acima mencionada e como mostrado na Figura
13. Modalidade 5: Para uma fronteira com dois lados (onde os blocos espacialmente adjacentes em cada lado são denotados como bloco P e bloco Q), a força de fronteira pode ser determinada de acordo com esta modalidade da seguinte forma: • Se pelo menos um do bloco P ou bloco Q for predito pela aplicação de predição intra e não pela aplicação de CIIP, então a força de fronteira é definida igual a 2. As possibilidades incluem o bloco P sendo predito por predição intra e não por predição de múltiplas hipóteses (CIIP) e o bloco Q sendo predito por qualquer função de predição e vice- versa. • Se os blocos P e Q são preditos pela aplicação de predição inter ou CIIP (as possibilidades incluem o bloco P sendo um bloco inter e o bloco Q sendo um bloco inter ou, alternativamente, o bloco P sendo um bloco inter e o bloco Q sendo um bloco de CIIP, ou alternativamente o bloco P sendo um bloco de CIIP e o bloco Q sendo um bloco inter, ou alternativamente o bloco P sendo um bloco de CIIP e o bloco Q sendo um bloco de CIIP), o seguinte pode se aplicar: o Se a fronteira for horizontal e P e Q estiverem localizados em duas CTUs diferentes, então: Se o bloco Q (onde o bloco Q é denotado como o bloco que está localizado abaixo do bloco P) é predito pela aplicação de CIIP, então a força de fronteira é definida igual a 1. De outro modo (se o bloco Q não for predito pela aplicação de CIIP), se pelo menos um dos blocos adjacentes P e Q tiver coeficientes de transformada diferentes de zero, então a força de fronteira é definida igual a 1. De outro modo, se a diferença absoluta entre vetores de movimento que são usados para predizer os blocos P e Q for maior ou igual a uma amostra de luma inteira, então a força de fronteira é definida igual a 1. De outro modo, se a predição de movimento compensado nos blocos adjacentes P e Q for realizada com base em imagens de referência diferentes ou se o número de vetores de movimento que são usados para predizer os blocos P e Q não for igual, então a força de fronteira é definida igual a 1. A ordem dessas duas últimas condições pode ser invertida, conforme mostrado na Figura 13. De outro modo, a força de fronteira é definida igual a 0. o De outro modo (se a fronteira for uma fronteira vertical ou se o bloco P e o bloco Q estiverem dentro da mesma CTU): Se pelo menos um dos blocos P e Q for predito pela aplicação de CIIP, então a força de fronteira é igual a 1. De outro modo, se pelo menos um dos blocos adjacentes P e Q tiver coeficientes de transformada diferentes de zero, então a força de fronteira da referida fronteira é igual a 1. De outro modo, se a diferença absoluta entre vetores de movimento que são usados para predizer os blocos P e Q for maior ou igual a uma amostra de luma inteira, então a força de fronteira é definida igual a 1. De outro modo, se a predição de movimento compensado nos blocos adjacentes P e Q for realizada com base em imagens de referência diferentes ou se o número de vetores de movimento que são usados para predizer os blocos P e Q não for igual, então a força de fronteira é definida igual a 1. A ordem dessas duas últimas condições pode ser invertida, conforme mostrado na Figura 13. De outro modo, a força de fronteira desta fronteira é definida como igual a 0. • As amostras de pixel compreendidas no bloco P e no bloco Q são filtradas pela aplicação de um filtro de deblocagem de acordo com a força de fronteira determinada. Benefício da Modalidade: A filtragem de deblocagem de blocos que são preditos pela aplicação de predição de múltiplas hipóteses, ou seja, CIIP, é aplicada com um filtro de deblocagem com força média (força de fronteira igual a 1).
[00168] Se um bloco é predito pela aplicação de CIIP, uma primeira predição é obtida pela aplicação da predição inter e uma segunda predição é obtida pela aplicação da predição intra, que são posteriormente combinadas. Uma vez que a predição final inclui uma parte de predição intra, é possível que haja artefatos de bloco nas fronteiras de um bloco que é predito pela CIIP. A fim de mitigar este problema, a força de fronteira é definida para 1 de acordo com a invenção para garantir a filtragem das bordas de bloco que são preditas pela aplicação de CIIP.
[00169] Além disso, a divulgação reduz a memória de linha necessária como segue. A memória de linha é definida como a memória necessária para armazenar a informação correspondente a uma linha de CTU superior e que é necessária durante o processamento de uma linha de CTU inferior vizinha. Por exemplo, a fim de filtrar a fronteira horizontal entre duas linhas de CTU, a informação de modo de predição (predição intra / predição inter / predição de múltiplas hipóteses (CIIP)) da linha de CTU superior precisa ser armazenada na memória de linha. Uma vez que 3 estados (predição intra / predição inter / predição de múltiplas hipóteses (CIIP)) são possíveis para descrever o modo de predição de um bloco, o requisito de memória de linha pode ser definido como 2 bits por bloco.
[00170] De acordo com a divulgação, no entanto, se um bloco (bloco P nas modalidades) pertencer a uma linha de CTU superior, a operação de deblocagem requer apenas a informação sobre se o bloco é predito por predição inter ou predição intra (portanto, apenas 2 estados, o que pode ser armazenado usando um bit por bloco).
[00171] O motivo é o seguinte: Se uma fronteira entre o bloco P e o bloco Q for uma fronteira horizontal, e se o bloco Q e o bloco P pertencerem a 2 CTUs diferentes (o bloco Q é aquele na parte inferior em relação ao bloco P em todas as modalidades), então a informação se o bloco P é predito pela aplicação de CIIP não é utilizada na determinação da força de fronteira. É suficiente determinar se o bloco P é predito por predição intra para verificar a primeira condição da modalidade 5 acima descrita como predição intra e CIIP são mutuamente exclusivas. Portanto, não é necessário armazenar nenhuma informação se o bloco P é predito pela aplicação de CIIP.
[00172] Com a ajuda da divulgação em uma implementação de hardware, o modo de predição do bloco P pode ser temporariamente alterado para predição inter (quando o bloco P é predito por CIIP), e a determinação de força de fronteira pode ser realizada de acordo com o modo de predição alterado.
Posteriormente (mediante determinação de força de fronteira), o modo de predição pode ser alterado de volta para CIIP.
Note que as implementações de hardware não estão limitadas ao método descrito neste documento (alterando o modo de predição do bloco P na fronteira de CTU). É apenas apresentado como exemplo para explicar que, de acordo com a divulgação, a informação de se o bloco P é predito pela CIIP não é necessária na determinação de força de fronteira (nas fronteiras de CTU horizontais); Portanto, de acordo com a divulgação, a memória de linha necessária é reduzida de 2 bits por bloco para 1 bit por bloco.
Note que a memória de linha total que deve ser implementada em hardware é proporcional à largura de imagem e inversamente proporcional à largura de bloco mínima.
Modalidade 6: Para uma fronteira com dois lados (onde os blocos espacialmente adjacentes em cada lado são denotados como bloco P e bloco Q), a força de fronteira pode ser determinada de acordo com esta modalidade da seguinte forma: • Primeiro, determinar a força de fronteira de acordo com um método especificado no Rascunho VVC 3.0 de acordo com a referência acima mencionada como mostrado na Figura 13 ou o padrão de codificação de vídeo ITU-H.265. • Se a fronteira for horizontal e P e Q estiverem localizados em duas CTUs diferentes, então:
o Se o bloco Q for predito pela aplicação de CIIP, então a força de fronteira é modificada da seguinte forma: Se a força de fronteira não for igual a 2, então a força de fronteira é incrementada em 1. • De outro modo (se a fronteira for uma fronteira vertical ou se o bloco P e o bloco Q estiverem dentro da mesma CTU): o Se pelo menos um do bloco P ou bloco Q for predito pela aplicação de CIIP, então a força de fronteira é ajustada da seguinte forma: Se a força de fronteira não for igual a 2, então a força de fronteira é incrementada em 1. • As amostras de pixel compreendidas no bloco P e no bloco Q são filtradas pela aplicação de um filtro de deblocagem de acordo com a força de fronteira determinada. Modalidade 7: Esta modalidade representa uma variação da modalidade 4.
[00173] Para uma fronteira com dois lados (onde os blocos espacialmente adjacentes em cada lado são denotados como bloco P e bloco Q), a força de fronteira pode ser derivada de acordo com esta modalidade da seguinte forma: • Se a fronteira for horizontal e os blocos P e Q estiverem localizados em diferentes CTUs, então: o Se o bloco Q (onde o bloco Q é denotado como o bloco que está localizado abaixo do bloco P) é predito pela aplicação de CIIP, então a força de fronteira é definida igual a 2. o Se o bloco Q não for predito pela aplicação de CIIP e se pelo menos um do bloco P ou bloco Q for predito pela aplicação de predição intra, a força de fronteira é determinada como sendo igual a 2. o Se o bloco Q não for predito pela aplicação de CIIP e se ambos o bloco P e o bloco Q forem preditos pela aplicação de predição inter, então a força de fronteira é determinada como sendo menor do que 2. O valor exato da força de fronteira pode ser determinado de acordo com avaliações condicionais adicionais, como aquelas mostradas na Figura 13. • De outro modo (se a fronteira for uma fronteira vertical ou se o bloco P e o bloco Q estiverem dentro da mesma CTU): o Se pelo menos um do bloco P ou bloco Q for predito pela aplicação de CIIP, então a força de fronteira é definida igual a 2. o Se ambos os blocos P e Q não são preditos pela aplicação de CIIP e se pelo menos um do bloco P ou bloco Q é predito pela aplicação de predição intra, a força de fronteira é determinada como sendo igual a 2. o Se ambos os blocos P e Q não forem preditos pela aplicação de CIIP e se ambos o bloco P e o bloco Q forem preditos pela aplicação de predição inter, então a força de fronteira é determinada como menor que 2. O valor exato da força de fronteira pode ser determinado de acordo com avaliações condicionais adicionais, como aquelas mostradas na Figura 13. • As amostras de pixel compreendidas no bloco P e no bloco Q são filtradas pela aplicação de um filtro de deblocagem de acordo com a força de fronteira determinada.
Benefício da Modalidade: A filtragem de deblocagem de blocos que são preditos pela aplicação de predição de múltiplas hipóteses (CIIP) é realizada com um filtro de deblocagem com força média (força de fronteira igual a 1); Se um bloco é predito pela aplicação de CIIP, uma primeira predição é obtida pela aplicação da predição inter e uma segunda predição é obtida pela aplicação da predição intra, que são posteriormente combinadas. Uma vez que a predição final inclui uma parte de predição intra, é possível que haja artefatos de bloco nas fronteiras de um bloco que é predito pela CIIP. A fim de mitigar este problema, a força de fronteira é definida como 2 de acordo com a divulgação para garantir a filtragem das bordas de bloco que são preditas pela aplicação de CIIP; Além disso, a divulgação reduz a memória de linha necessária como segue. A memória de linha é definida como a memória necessária para armazenar a informação correspondente a uma linha de CTU superior e que é necessária durante o processamento de uma linha de CTU inferior vizinha. Por exemplo, a fim de filtrar a fronteira horizontal entre duas linhas de CTU, a informação de modo de predição (predição intra / predição inter / predição de múltiplas hipóteses (CIIP)) da linha de CTU superior precisa ser armazenada na memória de linha. Uma vez que 3 estados (predição intra / predição inter / predição de múltiplas hipóteses (CIIP)) são possíveis para descrever o modo de predição de um bloco, o requisito de memória de linha pode ser definido como 2 bits por bloco.
[00174] De acordo com a divulgação, no entanto, se um bloco (bloco P nas modalidades) pertencer a uma linha de CTU superior, a operação de deblocagem requer apenas a informação sobre se o bloco é predito por predição inter ou predição intra (portanto, apenas 2 estados, o que pode ser armazenado usando um bit por bloco).
[00175] O motivo é o seguinte: Se uma fronteira entre o bloco P e o bloco Q for uma fronteira horizontal, e se o bloco Q e o bloco P pertencerem a duas CTUs diferentes (o bloco Q é aquele na parte inferior em relação ao bloco P em todas as modalidades), então a informação se o bloco P é predito pela aplicação de CIIP não é utilizada na determinação de força de fronteira. Portanto, não precisa ser armazenada. É suficiente determinar se o bloco P é predito por predição intra para verificar a primeira condição da modalidade 7 acima descrita como predição intra e CIIP são mutuamente exclusivas.
[00176] Com a ajuda da divulgação em uma implementação de hardware, o modo de predição do bloco P pode ser temporariamente alterado para predição inter (quando o bloco P é predito por CIIP) e a determinação de força de fronteira pode ser realizada de acordo com o modo de predição alterado. Posteriormente (mediante determinação de força de fronteira), o modo de predição pode ser alterado de volta para CIIP. Note que as implementações de hardware não estão limitadas ao método descrito neste documento (alterando o modo de predição do bloco P na fronteira de CTU). É apenas apresentado como exemplo para explicar que, de acordo com a divulgação, a informação de se o bloco P é predito pela CIIP não é necessária na determinação de força de fronteira (nas fronteiras de CTU horizontais);
[00177] Portanto, de acordo com a invenção, a memória de linha necessária é reduzida de 2 bits por bloco para 1 bit por bloco. Note que a memória de linha total que deve ser implementada em hardware é proporcional à largura de imagem e inversamente proporcional à largura de bloco mínima.
Modalidade 8: Esta modalidade representa uma variação da modalidade 6; Para uma fronteira com dois lados (onde os blocos espacialmente adjacentes em cada lado são denotados como bloco P e bloco Q), a força de fronteira pode ser determinada de acordo com esta modalidade da seguinte forma: • Se pelo menos um bloco de P e Q for predito pela aplicação de predição intra e não pela aplicação de CIIP, então a força de fronteira é definida igual a 2. As possibilidades incluem o bloco P sendo predito por predição intra e não por predição de múltiplas hipóteses (CIIP) e o bloco Q sendo predito por qualquer função de predição e vice-versa. • Se os blocos P e Q forem preditos pela aplicação de predição inter ou CIIP (as possibilidades incluem o bloco P sendo um bloco inter e o bloco Q sendo um bloco inter ou, alternativamente, o bloco P sendo um bloco inter e o bloco Q sendo um bloco de CIIP, ou alternativamente o bloco P sendo um bloco de CIIP e o bloco Q sendo um bloco inter, ou alternativamente o bloco P sendo um bloco de CIIP e o bloco Q sendo um bloco de CIIP), o seguinte pode se aplicar: o Se pelo menos um dos blocos P e Q tem coeficientes de transformada diferentes de zero, então a força de fronteira é definida igual a 1. o De outro modo (se os blocos P e Q não tiverem coeficientes de transformada diferentes de zero), se a diferença absoluta entre vetores de movimento que são usados para predizer os blocos P e Q for maior ou igual a uma amostra de luma inteira, então a força de fronteira desta fronteira é definida igual a 1. o De outro modo (se os blocos P e Q não tiverem coeficientes de transformada diferentes de zero e a diferença absoluta entre vetores de movimento for menor que 1 amostra de luma inteira), se os blocos P e Q forem preditos com base em diferentes imagens de referência ou no número de vetores de movimentos que são usados para predizer o bloco P e o bloco Q não são iguais, então a força de fronteira dessa fronteira é definida como igual a 1. A ordem dessas duas últimas condições pode ser invertida, conforme mostrado na Figura 13. o De outro modo (se todas as 3 condições acima forem avaliadas como falsas), a força de fronteira dessa fronteira é definida como igual a 0. • Se a fronteira for horizontal e P e Q estiverem localizados em duas CTUs diferentes, então: o Se o bloco Q for predito pela aplicação de CIIP, então a força de fronteira determinada é modificada da seguinte forma: Se a força de fronteira não for igual a 2, então a força de fronteira é incrementada em 1. • Se a fronteira for uma fronteira vertical ou se o bloco P e o bloco Q estiverem incluídos na mesma CTU: o Se pelo menos um dentre o bloco P e o bloco Q for predito pela aplicação de CIIP, então a força de fronteira é ajustada da seguinte forma: Se a força de fronteira não for igual a 2, então a força de fronteira é incrementada em 1. • As amostras de pixel compreendidas no bloco P e no bloco Q são filtradas pela aplicação de um filtro de deblocagem de acordo com a força de fronteira determinada.
Benefício da Modalidade: A filtragem de deblocagem de blocos que são preditos pela aplicação de predição de múltiplas hipóteses, ou seja, CIIP, é realizada com um filtro de deblocagem com força média (força de fronteira igual a 1); Se um bloco é predito pela aplicação de CIIP, uma primeira predição é obtida pela aplicação da predição inter e uma segunda predição é obtida pela aplicação da predição intra, que são posteriormente combinadas.
Uma vez que a predição final inclui uma parte de predição intra, é possível que haja artefatos de bloco nas fronteiras de um bloco que é predito pela CIIP.
A fim de mitigar este problema, a força de fronteira é aumentada em 1 de acordo com a divulgação para garantir a filtragem das bordas de bloco que são preditas pela aplicação de CIIP; Além disso, a divulgação reduz a memória de linha necessária como segue.
A memória de linha é definida como a memória necessária para armazenar a informação correspondente a uma linha de CTU superior e que é necessária durante o processamento de uma linha de CTU inferior vizinha.
Por exemplo, a fim de filtrar a fronteira horizontal entre duas linhas de CTU, a informação de modo de predição (predição intra / predição inter / predição de múltiplas hipóteses (CIIP)) da linha de CTU superior precisa ser armazenada na memória de linha.
Uma vez que 3 estados (predição intra / predição inter / predição de múltiplas hipóteses (CIIP)) são possíveis para descrever o modo de predição de um bloco, o requisito de memória de linha pode ser definido como 2 bits por bloco.
[00178] De acordo com a divulgação, no entanto, se um bloco (bloco P nas modalidades) pertencer a uma linha de CTU superior, a operação de deblocagem requer apenas a informação sobre se o bloco é predito por predição inter ou predição intra (portanto, apenas 2 estados, o que pode ser armazenado usando um bit por bloco).
[00179] O motivo é o seguinte: Se uma fronteira entre o bloco P e o bloco Q for uma fronteira horizontal, e se o bloco P e o bloco Q pertencerem a duas CTUs diferentes (o bloco Q é aquele na parte inferior em relação ao bloco P em todas as modalidades), então a informação se o bloco P é predito pela aplicação de CIIP não é utilizada na determinação de força de fronteira. Portanto, não precisa ser armazenada. É suficiente determinar se o bloco P é predito por predição intra para verificar a primeira condição da modalidade 8 descrita acima como predição intra e CIIP são mutuamente exclusivas; Com a ajuda da divulgação em uma implementação de hardware, o modo de predição do bloco P pode ser temporariamente alterado para predição inter (quando o bloco P é predito por CIIP) e a determinação de força de fronteira pode ser realizada de acordo com o modo de predição alterado. Posteriormente (mediante determinação de força de fronteira), o modo de predição pode ser alterado de volta para CIIP. Note que as implementações de hardware não estão limitadas ao método descrito neste documento (alterando o modo de predição do bloco P na fronteira de CTU). É apenas apresentado como exemplo para explicar que, de acordo com a divulgação, a informação de se o bloco P é predito pela CIIP não é necessária na determinação de força de fronteira (nas fronteiras de CTU horizontais);
[00180] Portanto, de acordo com a divulgação, a memória de linha necessária é reduzida de 2 bits por bloco para 1 bit por bloco. Note que a memória de linha total que deve ser implementada em hardware é proporcional à largura de imagem e inversamente proporcional à largura de bloco mínima.
[00181] Note que, de acordo com todas as modalidades acima, se um bloco for predito pela aplicação de CIIP, uma primeira predição é obtida pela aplicação de predição inter e uma segunda predição é obtida pela aplicação de predição intra, que são posteriormente combinadas.
[00182] As modalidades acima indicam que os blocos de CIIP são considerados como blocos intra em uma extensão diferente ao realizar o filtro de deblocagem. As modalidades 1, 2 e 3 usam três estratégias diferentes para ajustar a força de fronteira de uma fronteira.
[00183] A modalidade 1 considera os blocos de CIIP completamente como blocos intra. Portanto, a condição de definir Bs como 2 é a mesma que na Tabela 1.
[00184] A modalidade 2 considera a distorção causada por blocos de CIIP não tão alta quanto por blocos intra. Portanto, quando blocos de CIIP são detectados em uma fronteira, o Bs é considerado como 1.
[00185] A modalidade 3 considera os blocos de CIIP parcialmente como blocos intra, onde o Bs é aumentado em 1 se pelo menos um bloco adjacente de uma fronteira for um bloco de CIIP. Se o Bs já for 2 usando a estratégia de derivação convencional da Figura 13, então o Bs não é alterado.
[00186] A Figura 11 ilustra a derivação de Bs no Rascunho VVC 3.0 de acordo com a referência acima mencionada. As Figuras 12, 14 e 15 representam as mudanças na derivação de Bs para as modalidades 1, 2 e 3, respectivamente.
[00187] É importante notar que para as modalidades 1 e 2, não apenas a distorção potencial é reduzida, mas também a lógica de processamento. Nas modalidades 1 e 2, desde que o bloco P ou Q seja um bloco de CIIP, a verificação de coeficientes e vetores de movimento não é mais necessária, encurtando assim a latência para verificações de condição.
[00188] As modalidades 4, 5 e 6 são variações respectivas das modalidades 1, 2 e 3, onde a memória de armazenamento temporário de linha é considerada. A principal mudança nas modalidades 1, 2 e 3 é que quando os blocos P e Q estão localizados em diferentes CTUs e a borda é horizontal, a verificação de um bloco de CIIP é realizada de forma assimétrica. Ou seja, o bloco de lado P (ou seja, o superior) não é verificado, e apenas o bloco de lado Q (ou seja, o inferior) é verificado. Desta forma, nenhuma memória de armazenamento temporário de linha adicional é alocada para armazenar uma bandeira de CIIP do bloco de lado P, o qual está localizado em outra CTU.
[00189] Além das seis modalidades acima, uma característica adicional dos blocos de CIIP pode ser que os blocos de CIIP não precisam ser considerados como blocos intra de forma consistente. Em um exemplo, ao pesquisar por preditores de vetor de movimento do bloco atual, se seus blocos vizinhos forem blocos de CIIP, os vetores de movimento desses blocos de CIIP podem ser considerados como preditores de vetor de movimento. Neste caso, a informação de predição inter dos blocos de CIIP é usada e, portanto, os blocos de CIIP não são mais considerados blocos intra. Em outro exemplo, ao construir a lista de MPM para blocos intra, os blocos de CIIP vizinhos do bloco atual podem ser considerados como não incluindo nenhuma informação intra. Portanto, ao verificar a disponibilidade desses blocos de CIIP para a construção da lista de MPM do bloco atual, eles são rotulados como indisponíveis. Observe que os blocos de CIIP mencionados neste parágrafo não estão limitados apenas aos blocos de CIIP que são usados para determinar o valor de Bs do filtro de deblocagem.
[00190] Além das seis modalidades acima, uma característica adicional dos blocos de CIIP pode ser que os blocos MH sejam considerados como blocos intra de forma consistente. Em um exemplo, ao pesquisar por preditores de vetor de movimento do bloco atual, se seus blocos vizinhos forem blocos de CIIP, os vetores de movimento desses blocos de CIIP serão excluídos dos preditores de vetor de movimento. Neste caso, a informação de predição inter dos blocos de CIIP não é utilizada e, portanto, os blocos de CIIP são considerados blocos intra. Em outro exemplo, ao construir a lista de MPM para blocos intra, os blocos de CIIP vizinhos do bloco atual podem ser considerados como incluindo informação intra. Portanto, ao verificar a disponibilidade desses blocos de CIIP para a construção da lista de MPM do bloco atual, eles são rotulados como disponíveis. Observe que os blocos de CIIP mencionados neste parágrafo não estão limitados apenas aos blocos de CIIP que são usados para determinar o valor de Bs do filtro de deblocagem. Modalidade 9:
Em um exemplo, a força de fronteira (Bs) das fronteiras dos blocos de CIIP pode ser definida para um valor de 2, mas a força de fronteira dos sub-blocos dentro dos blocos de CIIP pode ser definida para um valor de 1. Quando as fronteiras de sub-blocos não estão alinhadas com uma grade de amostra 8x8, então a força de fronteira de tais bordas pode ser definida para um valor de 0. Uma grade 8x8 é mostrada na Figura 16 ou 17, em que a Figura 16 mostra uma grade de amostra 8x8 começando a partir da amostra superior esquerda da CU e a Figura 17 mostra uma grade de amostra 8x8 não começando na amostra superior esquerda da CU.
[00191] Em outro exemplo, a força de fronteira de uma borda pode ser determinada da seguinte forma: Para uma fronteira com dois lados (onde os blocos espacialmente adjacentes em cada lado são denotados como bloco P e bloco Q), a força de fronteira pode ser derivada de acordo com este exemplo da seguinte forma: • Se a fronteira for horizontal e os blocos P e Q estiverem localizados em diferentes CTUs, então: o Se o bloco Q (onde o bloco Q é denotado como o bloco que está localizado abaixo do bloco P) é predito pela aplicação de CIIP, então a força de fronteira é definida igual a 2. o Se o bloco Q não for predito pela aplicação de CIIP e se pelo menos um do bloco P ou o bloco Q for predito pela aplicação de predição intra, a força de fronteira é determinada como sendo igual a 2. o Se o bloco Q não for predito pela aplicação de CIIP e se ambos o bloco P e o bloco Q forem preditos pela aplicação de predição inter, então a força de fronteira é determinada como menor que 2. O valor exato da força de fronteira pode ser determinado de acordo com avaliações condicionais adicionais, como aquelas mostradas na Figura 13. • De outro modo (se P e Q correspondem a dois sub-blocos dentro de um bloco de CIIP, ou seja, se a fronteira alvo é uma fronteira de sub-bloco dentro de um bloco de CIIP): o Se a fronteira de sub-bloco estiver alinhada com uma grade 8x8, definir a força de fronteira para um valor de 1. o De outro modo (se a fronteira de sub-bloco não estiver alinhada com uma grade 8x8), definir a força de fronteira para um valor de 0. • De outro modo (se a fronteira for uma fronteira vertical ou se o bloco P e o bloco Q estiverem incluídos na mesma CTU, e P e Q não estiverem no mesmo bloco de CIIP): o Se pelo menos um dos blocos P ou Q for predito pela aplicação de CIIP, então o parâmetro de força de fronteira é definido igual a 2. o Se nem o bloco P nem o bloco Q forem preditos pela aplicação de CIIP e se pelo menos um do bloco P ou o bloco Q for predito pela aplicação de predição intra, a força de fronteira é determinada como sendo igual a 2. o Se nem o bloco P nem o bloco Q forem preditos pela aplicação de CIIP e se ambos o bloco P e o bloco Q forem preditos pela aplicação de predição inter, então a força de fronteira é determinada como menor que 2. O valor exato da força de fronteira pode ser determinado de acordo com avaliações condicionais adicionais, como aquelas mostradas na Figura 13. • As amostras de pixel compreendidas no bloco P e no bloco Q são filtradas pela aplicação de um filtro de deblocagem de acordo com a força de fronteira determinada.
[00192] Em outro exemplo, a força de fronteira (Bs) das fronteiras dos blocos de CIIP pode ser definida para um valor de 2, mas a força de fronteira dos sub-blocos dentro dos blocos de CIIP pode ser definida para um valor de 1. Quando as fronteiras de sub-blocos não estão alinhadas com uma grade de amostra 4x4, então a força de fronteira de tais bordas pode ser definida para um valor de 0. Uma grade 4x4 é mostrada na Figura 18.
[00193] Em outro exemplo, a força de fronteira de uma borda pode ser determinada da seguinte forma: Para uma fronteira com dois lados (onde os blocos espacialmente adjacentes em cada lado são denotados como bloco P e bloco Q), a força de fronteira pode ser derivada de acordo com este exemplo da seguinte forma: • Se a fronteira for horizontal e os blocos P e Q estiverem localizados em diferentes CTUs, então: o Se o bloco Q (onde o bloco Q é denotado como o bloco que está localizado abaixo do Bloco P) é predito pela aplicação de CIIP, então a força de fronteira é definida igual a 2. o Se o bloco Q não for predito pela aplicação de CIIP e se pelo menos um do bloco P ou o bloco Q for predito pela aplicação de predição intra, a força de fronteira é determinada como sendo igual a 2. o Se o bloco Q não for predito pela aplicação de CIIP e se ambos o bloco P e o bloco Q forem preditos pela aplicação de predição inter, então a força de fronteira é determinada como menor que 2. O valor exato da força de fronteira é determinado de acordo com avaliações condicionais adicionais, como aquelas mostradas na Figura 13. • De outro modo (se P e Q corresponderem a dois sub- blocos dentro de um bloco de CIIP, ou seja, a fronteira do alvo é uma fronteira de sub-bloco dentro de um bloco de CIIP): o Se a fronteira de sub-bloco estiver alinhada com uma grade 4x4, definir a força de fronteira para um valor de 1. o De outro modo (se a fronteira de sub-bloco não estiver alinhada com uma grade 4x4), definir a força de fronteira para um valor de 0. • De outro modo (se a fronteira for uma fronteira vertical ou se o bloco P e o bloco Q estiverem compreendidos dentro da mesma CTU, e P e Q não estiverem no mesmo bloco de CIIP): o Se pelo menos um do bloco P ou do bloco Q for predito pela aplicação de CIIP, então a força de fronteira é igual a 2. o Se nem o bloco P nem o bloco Q forem preditos pela aplicação de CIIP e se pelo menos um do bloco P ou o bloco Q for predito pela aplicação de predição intra, a força de fronteira é determinada como sendo igual a 2. o Se nem o bloco P nem o bloco Q forem preditos pela aplicação de CIIP e se ambos o bloco P e o bloco Q forem preditos pela aplicação de predição inter, então a força de fronteira é determinada como sendo menor que 2. O valor exato da força de fronteira é determinado de acordo com avaliações condicionais adicionais, como aquelas mostradas na Figura
13. • As amostras de pixel compreendidas no bloco P e no bloco Q são filtradas pela aplicação de um filtro de deblocagem de acordo com a força de fronteira determinada. Modalidade 10 (sem restrição de armazenamento temporário de linha): Para uma fronteira com dois lados (onde os blocos espacialmente adjacentes em cada lado são denotados como bloco P e bloco Q), a força de fronteira pode ser derivada de acordo com esta modalidade da seguinte forma: • Se pelo menos um dos blocos P ou Q for predito pela aplicação de CIIP e os blocos P e Q não estiverem dentro do mesmo bloco de CIIP, então a força de fronteira é definida igual a 2. • Se ambos o bloco P e o bloco Q forem preditos pela aplicação de CIIP e os blocos P e Q estiverem dentro do mesmo bloco de CIIP, então: o Se a fronteira de sub-bloco estiver alinhada com uma grade 8x8, a força de fronteira é definida como um valor de
1. o De outro modo (se a fronteira de sub-bloco não estiver alinhada com a grade 8x8), a força de fronteira é definida como um valor de 0. • Se nem o bloco P nem o bloco Q forem preditos pela aplicação de CIIP e se pelo menos um do bloco P ou o bloco Q for predito pela aplicação de predição intra, a força de fronteira é determinada como sendo igual a 2. • Se nem o bloco P nem o bloco Q forem preditos pela aplicação de CIIP e se ambos o bloco P e o bloco Q forem preditos pela aplicação de predição inter, então a força de fronteira é determinada como sendo menor que 2. O valor exato da força de fronteira pode ser determinado de acordo com avaliações condicionais adicionais, como aquelas mostradas na Figura 13.
[00194] As amostras de pixel compreendidas no bloco P e no bloco Q são filtradas pela aplicação de um filtro de deblocagem de acordo com a força de fronteira determinada. Modalidade 11 (sem restrição de armazenamento temporário de linha, e alinhamento de CIIP com grade 8x8): Para uma fronteira com dois lados (onde os blocos espacialmente adjacentes em cada lado são denotados como bloco P e bloco Q), a força de fronteira pode ser derivada de acordo com esta modalidade da seguinte forma: • Se pelo menos um dos blocos P ou Q é predito pela aplicação de CIIP e os blocos P e Q não estão dentro do mesmo bloco de CIIP e a fronteira está alinhada com uma grade 8x8, então a força de fronteira é definida igual a 2. • Se ambos o bloco P e o bloco Q forem preditos pela aplicação de CIIP e os blocos P e Q estiverem dentro do mesmo bloco de CIIP, então: o Se a fronteira de sub-bloco estiver alinhada com uma grade 8x8, definir a força de fronteira para um valor de 1. o De outro modo (se a fronteira de sub-bloco não estiver alinhada com uma grade 8x8), definir a força de fronteira para um valor de 0. • Se nem o bloco P nem o bloco Q forem preditos pela aplicação de CIIP e se pelo menos um do bloco P ou o bloco Q for predito pela aplicação de predição intra, a força de fronteira é determinada como sendo igual a 2. • Se nem o bloco P nem o bloco Q forem preditos pela aplicação de CIIP e se ambos o bloco P e o bloco Q forem preditos pela aplicação de predição inter, então a força de fronteira é determinada como sendo menor que 2. O valor exato da força de fronteira pode ser determinado de acordo com avaliações condicionais adicionais, como aquelas mostradas na Figura 13. • As amostras de pixel compreendidas no bloco P e no bloco Q são filtradas pela aplicação de um filtro de deblocagem de acordo com a força de fronteira determinada. Modalidade 12 (sem restrição de armazenamento temporário de linha, restrição de tamanho de TU, alinhamento de grade 8x8 também para fronteiras de CIIP): Em um exemplo, a força de fronteira (Bs) das fronteiras dos blocos de CIIP pode ser definida para um valor de 2, mas a força de fronteira dos sub-blocos dentro dos blocos de CIIP pode ser definida para um valor de 1, exceto para os sub-blocos causados pela limitação de tamanho de TU (como mostrado na Figura 8). Se uma fronteira é uma fronteira de TU e seus blocos P e Q vizinhos pertencem ao mesmo bloco de CIIP, então a força de fronteira da fronteira é definida como 2. Quando as fronteiras dos sub-blocos ou as fronteiras dos blocos de CIIP (o tamanho de bloco de CIIP pode ser menor do que 8x8) não estão alinhadas com uma grade de amostra 8x8, então a força de fronteira de tais bordas pode ser definida para um valor de 0. Uma grade 8x8 é mostrada na Figura 16 ou 17, em que a Figura 16 mostra uma grade de amostra 8x8 começando na amostra superior esquerda da CU e a Figura 17 mostra uma grade de amostra 8x8 não começando na amostra superior esquerda da CU.
[00195] Para uma fronteira com dois lados (onde os blocos espacialmente adjacentes em cada lado são denotados como bloco P e bloco Q), a força de fronteira pode ser derivada de acordo com este exemplo da seguinte forma:
• Se pelo menos um dos blocos P ou Q é predito pela aplicação de CIIP e os blocos P e Q não estão dentro do mesmo bloco de CIIP e a fronteira está alinhada com uma grade 8x8, então a força de fronteira é definida igual a 2. • Se ambos o bloco P e o bloco Q forem preditos pela aplicação de CIIP e os blocos P e Q estiverem dentro do mesmo bloco de CIIP, então: o Se a fronteira de sub-bloco estiver alinhada com uma grade 8x8, definir a força de fronteira para um valor de 2 quando o tamanho de pelo menos um dos sub-blocos P ou Q for igual ao maior tamanho de TU permitido. o Se a fronteira de sub-bloco estiver alinhada com uma grade 8x8, definir a força de fronteira para um valor de 1 quando o tamanho de nenhum dos sub-blocos P ou Q for igual ao maior tamanho de TU permitido. o De outro modo (se a fronteira de sub-bloco não estiver alinhada com uma grade 8x8), definir a força de fronteira para um valor de 0. • Se nem o bloco P nem o bloco Q forem preditos pela aplicação de CIIP e se pelo menos um do bloco P ou o bloco Q for predito pela aplicação de predição intra, a força de fronteira é determinada como sendo igual a 2. • Se nem o bloco P nem o bloco Q forem preditos pela aplicação de CIIP e se ambos o bloco P e o bloco Q forem preditos pela aplicação de predição inter, então a força de fronteira é determinada como sendo menor que 2. O valor exato da força de fronteira pode ser determinado de acordo com avaliações condicionais adicionais, como aquelas mostradas na Figura 13.
[00196] As amostras de pixel compreendidas no bloco P e no bloco Q são filtradas pela aplicação de um filtro de deblocagem de acordo com a força de fronteira determinada. Modalidade 13 (sem restrição de armazenamento temporário de linha, restrição de tamanho de TU, alinhamento de grade 8x8 apenas para fronteiras de sub-bloco de CIIP): Em um exemplo, a força de fronteira (Bs) das fronteiras dos blocos de CIIP pode ser definida para um valor de 2, mas a força de fronteira dos sub-blocos dentro dos blocos de CIIP pode ser definida para um valor de 1, exceto para o sub-blocos causados pela limitação de tamanho de TU (como mostrado na Figura 8). Se uma fronteira é uma fronteira de TU e seus blocos P e Q vizinhos pertencem ao mesmo bloco de CIIP, então a força de fronteira da fronteira é definida como 2. Quando as fronteiras dos sub-blocos de um bloco de CIIP não estão alinhadas com uma grade de amostra 8x8, então a força de fronteira de tais bordas pode ser definida para um valor de 0. Uma grade 8x8 é mostrada na Figura 16 ou 17, em que a Figura 16 mostra uma grade de amostra 8x8 começando a partir da amostra superior esquerda da CU e a Figura 17 mostra uma grade de amostra 8x8 não começando na amostra superior esquerda da CU.
[00197] Para uma fronteira com dois lados (onde os blocos espacialmente adjacentes em cada lado são denotados como bloco P e bloco Q), a força de fronteira pode ser derivada de acordo com este exemplo da seguinte forma: • Se pelo menos um dos blocos P ou Q for predito pela aplicação de CIIP e os blocos P e Q não estiverem dentro da mesma CIIP, então a força de fronteira é definida igual a
2. • Se ambos o bloco P e o bloco Q forem preditos pela aplicação de CIIP e os blocos P e Q estiverem dentro do mesmo bloco de CIIP, então: o Se a fronteira de sub-bloco estiver alinhada com uma grade 8x8, definir a força de fronteira para um valor de 2 quando o tamanho de pelo menos um dos sub-blocos P ou Q for igual ao maior tamanho de TU permitido. o Se a fronteira de sub-bloco estiver alinhada com uma grade 8x8, definir a força de fronteira para um valor de 1 quando o tamanho de nenhum dos sub-blocos P ou Q for igual ao maior tamanho de TU permitido. o De outro modo (se a fronteira de sub-bloco não estiver alinhada com uma grade 8x8), definir a força de fronteira para um valor de 0. • Se nem o bloco P nem o bloco Q forem preditos pela aplicação de CIIP e se pelo menos um do bloco P ou o bloco Q for predito pela aplicação de predição intra, a força de fronteira é determinada como sendo igual a 2. • Se nem o bloco P nem o bloco Q forem preditos pela aplicação de CIIP e se ambos o bloco P e o bloco Q forem preditos pela aplicação de predição inter, então a força de fronteira é determinada como sendo menor que 2. O valor exato da força de fronteira é determinado de acordo com avaliações condicionais adicionais, como aquelas mostradas na Figura 13.
[00198] As amostras de pixel compreendidas no bloco P e no bloco Q são filtradas pela aplicação de um filtro de deblocagem de acordo com a força de fronteira determinada. Modalidade 14 (bordas de transformada de TU, alinhamento de grade 8x8 apenas para sub-blocos de CIIP): Em um exemplo, a força de fronteira (Bs) das fronteiras dos blocos de CIIP ou fronteiras das unidades de transformada pode ser definida para um valor de 2, mas a força de fronteira das fronteiras dos sub-blocos dentro dos blocos de CIIP pode ser definida para um valor de 1. Quando as fronteiras dos sub-blocos ou as fronteiras das unidades de transformada ou as fronteiras dos blocos de CIIP não estão alinhadas com uma grade de amostra 8x8, então a força de fronteira de tais bordas pode ser definida para um valor de 0. Por exemplo, uma grade 8x8 pode ser como mostrado na Figura 16 ou 17, em que a Figura 16 mostra uma grade de amostra 8x8 começando na amostra superior esquerda da CU e a Figura 17 mostra uma grade de amostra 8x8 não começando na amostra superior esquerda da CU.
[00199] Para uma fronteira com dois lados (onde os blocos espacialmente adjacentes em cada lado são denotados como bloco P e bloco Q, e a referida fronteira está alinhada com uma grade 8x8), a força de fronteira pode ser derivada de acordo com esta modalidade da seguinte forma: • Se pelo menos um do bloco P ou do bloco Q for predito pela aplicação de predição intra, a força de fronteira é determinada como sendo igual a 2. • De outro modo, se pelo menos um dos blocos P ou Q for predito pela aplicação de CIIP e os blocos P e Q não estiverem dentro do mesmo bloco de CIIP, então o parâmetro de força de fronteira é definido igual a 2. • De outro modo, se ambos o bloco P e o bloco Q forem preditos pela aplicação de CIIP e os blocos P e Q estiverem dentro do mesmo bloco de CIIP, ou seja, no caso de uma fronteira de sub-bloco, então: o Se a fronteira de sub-bloco estiver alinhada com uma unidade de transformada, definir a força de fronteira da fronteira de sub-bloco para um valor de 2. o De outro modo, definir a força de fronteira de sub- bloco para um valor de 1. • Se nem o bloco P nem o bloco Q forem preditos pela aplicação de CIIP e se ambos o bloco P e o bloco Q forem preditos pela aplicação de predição inter, então a força de fronteira é determinada como sendo menor que 2. O valor exato da força de fronteira é determinado de acordo com avaliações condicionais adicionais, como aquelas mostradas na Figura 13.
[00200] As amostras de pixel compreendidas no bloco P e no bloco Q são filtradas pela aplicação de um filtro de deblocagem de acordo com a força de fronteira determinada. Modalidade 15: Em outro exemplo, o processo de determinação de força de fronteira de acordo com a presente divulgação pode ser descrito na linguagem de pseudocódigo como usado no Rascunho VVC 3.0 de acordo com a referência acima mencionada como segue: As entradas para este processo são: uma recPicture de matriz de amostra de imagem, uma localização (xCb, yCb) especificando a amostra superior esquerda do bloco de codificação atual em relação à amostra superior esquerda da imagem atual, uma variável nCbW especificando a largura do bloco de codificação atual, uma variável nCbH especificando a altura do bloco de codificação atual, um edgeType variável especificando se uma borda vertical
(EDGE_VER) ou horizontal (EDGE_HOR) é filtrada, uma matriz bidimensional (nCbW) x (nCbH) edgeFlags.
[00201] A saída desse processo é uma matriz bidimensional (nCbW) x (nCbH) bS especificando a força de filtragem de fronteira.
[00202] As variáveis xDi, yDj, xN e yN são derivadas da seguinte forma: Se edgeType for igual a EDGE_VER, xDi é definido igual a (i << 3), yDj é definido igual a (j << 2), xN é definido igual a Max (0, (nCbW / 8) - 1) e yN é definido igual a (nCbH / 4) - 1.
[00203] De outro modo (edgeType é igual a EDGE_HOR), xDi é definido igual a (i << 2), yDj é definido igual a (j << 3), xN é definido igual a (nCbW / 4) - 1 e yN é definido igual a Max (0, (nCbH / 8) - 1).
[00204] Para xDi com i = 0..xN e yDj com j = 0..yN, aplica- se o seguinte: Se edgeFlags [xDi] [yDj] for igual a 0, a variável bS [xDi] [yDj] será definida igual a 0.
[00205] De outro modo, aplica-se o seguinte: Os valores de amostra p0 e q0 são derivados da seguinte forma: Se edgeType for igual a EDGE_VER, p0 é definido igual a recPicture [xCb + xDi - 1] [yCb + yDj] e q0 é definido igual a recPicture [xCb + xDi] [yCb + yDj].
[00206] De outro modo (edgeType é igual a EDGE_HOR), p0 é definido igual a recPicture [xCb + xDi] [yCb + yDj - 1] e q 0 é definido igual a recPicture [xCb + xDi] [yCb + yDj]
[00207] A variável bS [xDi] [yDj] é derivada da seguinte forma:
Se a amostra p0 ou q0 estiver no bloco de codificação de uma unidade de codificação codificada com modo de predição intra, bS [xDi] [yDj] é definido igual a 2.
[00208] De outro modo, se a borda de bloco também for uma borda de bloco de transformada e a amostra p0 ou q0 tiver ciip_flag igual a 1, bS [xDi] [yDj] é definido igual a 2.
[00209] De outro modo, se a amostra p0 ou q0 tiver ciip_flag igual a 1, bS [xDi] [yDj] é definido igual a 1.
[00210] De outro modo, se a borda de bloco também for uma borda de bloco de transformada e a amostra p0 ou q0 estiver em um bloco de transformada que contém um ou mais níveis de coeficiente de transformada diferente de zero, bS [xDi] [yDj] é igual para 1.
[00211] De outro modo, se uma ou mais das seguintes condições forem verdadeiras, bS [xDi] [yDj] é definido igual a 1: Para a predição do sub-bloco de codificação contendo a amostra p0, diferentes imagens de referência ou um número diferente de vetores de movimento são usados para a predição do sub-bloco de codificação contendo a amostra q0.
[00212] NOTA 1 - A determinação de se as imagens de referência usadas para os dois sub-blocos de codificação são iguais ou diferentes é baseada apenas em quais imagens são referenciadas, sem levar em consideração se uma predição é realizada usando um índice na lista de imagens de referência 0 ou um índice na lista de imagens de referência 1, e também sem levar em consideração se a posição do índice dentro de uma lista de imagens de referência é diferente.
[00213] NOTA 2 - O número de vetores de movimento que são usados para a predição de um sub-bloco de codificação com cobertura de amostra superior esquerda (xSb, ySb), é igual a PredFlagL0 [xSb] [ySb] + PredFlagL1 [xSb] [ySb].
[00214] Um vetor de movimento é usado para predizer o sub-bloco de codificação contendo a amostra p0 e um vetor de movimento é usado para predizer o sub-bloco de codificação contendo a amostra q0, e a diferença absoluta entre o componente horizontal ou vertical dos vetores de movimento usados é maior ou igual a 4 em unidades de amostras de um quarto de luma.
[00215] Dois vetores de movimento e duas imagens de referência diferentes são usados para predizer o sub-bloco de codificação contendo a amostra p0, dois vetores de movimento para as mesmas duas imagens de referência são usados para predizer o sub-bloco de codificação contendo a amostra q0 e a diferença absoluta entre o componente horizontal ou vertical dos dois vetores de movimento usados na predição dos dois sub-blocos de codificação para a mesma imagem de referência é maior ou igual a 4 em unidades de amostras de um quarto de luma.
[00216] Dois vetores de movimento para a mesma imagem de referência são usados para predizer o sub-bloco de codificação contendo a amostra p0, dois vetores de movimento para a mesma imagem de referência são usados para predizer o sub-bloco de codificação contendo a amostra q0 e ambas as seguintes condições são verdadeiras:
[00217] A diferença absoluta entre o componente horizontal ou vertical dos vetores de movimento de lista 0 usados na predição dos dois sub-blocos de codificação é maior ou igual a 4 nas amostras de um quarto de luma, ou a diferença absoluta entre o componente horizontal ou vertical dos vetores de movimento de lista 1 usados na predição dos dois sub-blocos de codificação é maior ou igual a 4 em unidades de amostras de um quarto de luma.
[00218] A diferença absoluta entre o componente horizontal ou vertical do vetor de movimento de lista 0 usado na predição do sub-bloco de codificação contendo a amostra p0 e o vetor de movimento de lista 1 usado na predição do sub-bloco de codificação contendo a amostra q0 é maior ou igual a 4 em unidades de amostras de um quarto de luma, ou a diferença absoluta entre o componente horizontal ou vertical do vetor de movimento de lista 1 usado na predição do sub-bloco de codificação contendo a amostra p0 e o vetor de movimento de lista 0 usado na predição do sub-bloco de codificação contendo a amostra q0 é maior ou igual a 4 em unidades de amostras de um quarto de luma.
[00219] De outro modo, a variável bS [xDi] [yDj] é definida igual a 0.
[00220] Embora as modalidades da invençã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 predição inter 244 (codificador) e 344 (decodificador) podem não estar disponíveis no caso da 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 o 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, predição intra 254 / 354 e / ou filtragem de circuito 220, 320 e codificação por entropia 270 e decodificação por entropia 304.
[00221] 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.
[00222] 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 denominado meio legível por computador. Por exemplo, se as instruções são transmitidas de uma página da internet, servidor ou outra origem 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 os meios de armazenamento legíveis por computador e os meios 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 opticamente com lasers. As combinações dos itens acima também devem ser incluídas no escopo do meio legível por computador.
[00223] 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 específicos de aplicação (ASICs), arranjos lógicos programáveis em campo (FPGAs) ou outro conjunto de 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.
[00224] As técnicas desta divulgação podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho telefônico 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 realizar 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 (21)
1. Método de codificação, caracterizado pelo fato de que a codificação inclui decodificação ou codificação, e o método compreende: determinar se uma unidade de codificação atual é predita pela aplicação de predição inter-intra combinada, CIIP; e mediante determinação de que a unidade de codificação atual é predita por aplicação de CIIP, definir uma força de fronteira de uma fronteira da unidade de codificação atual para um primeiro valor.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o primeiro valor está na faixa de 1 a 2.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o primeiro valor é 2.
4. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o primeiro valor é 1.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que compreende ainda: incrementar o primeiro valor por 1 mediante determinação de que uma das seguintes condições é válida: pelo menos uma da unidade de codificação atual e uma unidade de codificação adjacente que é adjacente à fronteira da unidade de codificação atual tem coeficientes de transformada diferentes de zero, uma diferença absoluta entre vetores de movimento usados para predizer a unidade de codificação atual e a unidade de codificação adjacente é maior ou igual a uma amostra inteira, a unidade de codificação atual e a unidade de codificação adjacente são preditas com base em diferentes imagens de referência, um número de vetores de movimento usados para predizer a unidade de codificação atual e a unidade de codificação adjacente difere.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que compreende ainda: quando a fronteira da unidade de codificação atual é uma borda horizontal, determinar se uma unidade de codificação adjacente que é adjacente à fronteira da unidade de codificação atual está em uma unidade de árvore de codificação, CTU, diferente.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que compreende ainda: definir uma força de fronteira de uma fronteira de uma unidade de subcodificação para um segundo valor, a unidade de codificação atual compreende pelo menos duas unidades de subcodificação, e a fronteira da unidade de subcodificação é uma fronteira entre as pelo menos duas unidades de subcodificação.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que o segundo valor é 1.
9. Método, de acordo com a reivindicação 7 ou 8, caracterizado pelo fato de que quando a fronteira da unidade de subcodificação é uma borda de uma unidade de transformada, o segundo valor é igual ao primeiro valor.
10. Método, de acordo com a reivindicação 7 ou 8, caracterizado pelo fato de que quando a fronteira da unidade de subcodificação não é uma borda de uma unidade de transformada, o segundo valor é diferente do primeiro valor.
11. Método, de acordo com qualquer uma das reivindicações
1 a 10, caracterizado pelo fato de que compreende ainda: determinar se a fronteira da unidade de codificação atual está alinhada com uma grade 8x8, e mediante determinação de que a fronteira da unidade de codificação atual não está alinhada com a grade 8x8, definir a força de fronteira da fronteira da unidade de codificação atual para zero.
12. Método, de acordo com qualquer uma das reivindicações 7 a 10, caracterizado pelo fato de que compreende ainda: determinar se a fronteira da unidade de subcodificação está alinhada com uma subgrade, a subgrade sendo uma grade 4x4 ou uma grade 8x8, e mediante determinação de que a fronteira da unidade de subcodificação não está alinhada com a subgrade, definir a força de fronteira da fronteira da unidade de subcodificação para zero.
13. Método, de acordo com qualquer uma das reivindicações 1 a 12, caracterizado pelo fato de que compreende ainda: realizar deblocagem em uma fronteira para um componente de luma quando a força de fronteira da referida fronteira é maior que zero.
14. Método, de acordo com qualquer uma das reivindicações 1 a 13, caracterizado pelo fato de que compreende ainda: realizar deblocagem em uma fronteira para componentes de croma quando a força de fronteira da referida fronteira é maior que 1.
15. Método, de acordo com qualquer uma das reivindicações 1 a 14, caracterizado pelo fato de que quando a unidade de codificação atual é predita por aplicação de CIIP, a unidade de codificação atual é considerada como uma unidade de codificação com predição intra ao realizar a deblocagem.
16. 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 15.
17. 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 15.
18. Meio de armazenamento legível por computador não transitório que compreende instruções, caracterizado pelo fato de que as instruções, quando lidas por um computador, fazem com que o computador realize o método conforme definido em qualquer uma das reivindicações 1 a 15.
19. Decodificador (30), caracterizado pelo fato de que compreende: um ou mais processadores; e um meio de armazenamento legível por computador não transitório acoplado ao um ou mais processadores e armazenando instruções para execução por um ou mais processadores, em que as instruções, quando executadas por um ou mais processadores, configuram o decodificador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 15.
20. Codificador (20), caracterizado pelo fato de que compreende: um ou mais processadores; e um meio de armazenamento legível por computador não transitório acoplado ao um ou mais processadores e armazenando instruções para execução por um ou mais processadores, em que as instruções, quando executadas por um ou mais processadores, configuram o codificador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 15.
21. Dispositivo de decodificação de dados de vídeo, caracterizado pelo fato de que compreende: um armazenamento de memória não transitório, configurado para armazenar dados de vídeo na forma de um fluxo de bits; e um decodificador de vídeo, configurado para realizar o método conforme definido em qualquer uma das reivindicações 1 a 15.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962793840P | 2019-01-17 | 2019-01-17 | |
US62/793,840 | 2019-01-17 | ||
PCT/CN2020/072442 WO2020147782A1 (en) | 2019-01-17 | 2020-01-16 | An encoder, a decoder and corresponding methods of deblocking filter adaptation |
Publications (1)
Publication Number | Publication Date |
---|---|
BR112021013644A2 true BR112021013644A2 (pt) | 2021-09-14 |
Family
ID=71614450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112021013644-4A BR112021013644A2 (pt) | 2019-01-17 | 2020-01-16 | Codificador, decodificador e métodos correspondentes de adaptação de filtro de deblocagem |
Country Status (10)
Country | Link |
---|---|
US (2) | US11962783B2 (pt) |
EP (1) | EP3868110A4 (pt) |
JP (2) | JP7351908B2 (pt) |
KR (2) | KR20240064039A (pt) |
CN (4) | CN113196783B (pt) |
AU (1) | AU2020208699A1 (pt) |
BR (1) | BR112021013644A2 (pt) |
CA (1) | CA3120828A1 (pt) |
MX (1) | MX2021006128A (pt) |
WO (1) | WO2020147782A1 (pt) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118694938A (zh) | 2018-07-30 | 2024-09-24 | 三星电子株式会社 | 图像编码方法和设备、图像解码方法和设备以及装置 |
WO2021157536A1 (ja) * | 2020-02-06 | 2021-08-12 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法、および復号方法 |
WO2022066783A1 (en) * | 2020-09-23 | 2022-03-31 | Beijing Dajia Internet Information Technology Co., Ltd. | Chroma coding enhancement in cross-component sample adaptive offset with virtual boundary |
CN114501035B (zh) * | 2022-01-26 | 2024-02-13 | 百果园技术(新加坡)有限公司 | 视频编解码滤波处理方法、系统、设备及存储介质 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005022919A1 (en) * | 2003-08-26 | 2005-03-10 | Thomson Licensing S.A. | Method and apparatus for decoding hybrid intra-inter coded blocks |
CN101472176A (zh) * | 2007-12-29 | 2009-07-01 | 智多微电子(上海)有限公司 | 基于边界强度因子进行去块效应滤波的解码方法和装置 |
US9185430B2 (en) * | 2010-03-15 | 2015-11-10 | Mediatek Singapore Pte. Ltd. | Deblocking filtering method and deblocking filter |
US9729879B2 (en) | 2011-03-10 | 2017-08-08 | Hfi Innovation Inc. | Method and apparatus of deblocking filter |
CN108989806B (zh) * | 2011-09-20 | 2021-07-27 | Lg 电子株式会社 | 用于编码/解码图像信息的方法和装置 |
JP2013098876A (ja) * | 2011-11-02 | 2013-05-20 | Sony Corp | 画像処理装置および方法 |
US9374578B1 (en) * | 2013-05-23 | 2016-06-21 | Google Inc. | Video coding using combined inter and intra predictors |
US9832467B2 (en) * | 2014-10-07 | 2017-11-28 | Qualcomm Incorporated | Deblock filtering for intra block copying |
CN115134609A (zh) * | 2015-06-11 | 2022-09-30 | 杜比实验室特许公司 | 使用自适应去块滤波编码和解码图像的方法及其装置 |
EP3625963A4 (en) * | 2017-06-07 | 2020-11-18 | MediaTek Inc. | INTRA-INTER PREDICTION MODE METHOD AND APPARATUS FOR VIDEO CODING |
US11172203B2 (en) * | 2017-08-08 | 2021-11-09 | Mediatek Inc. | Intra merge prediction |
CN118694938A (zh) | 2018-07-30 | 2024-09-24 | 三星电子株式会社 | 图像编码方法和设备、图像解码方法和设备以及装置 |
KR20210089149A (ko) * | 2018-11-16 | 2021-07-15 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 인터 및 인트라 통합 예측 모드 가중치 |
US11652984B2 (en) * | 2018-11-16 | 2023-05-16 | Qualcomm Incorporated | Position-dependent intra-inter prediction combination in video coding |
NZ777166A (en) | 2018-12-07 | 2022-11-25 | Huawei Tech Co Ltd | An encoder, a decoder and corresponding methods of boundary strength derivation of deblocking filter |
EP3895422A1 (en) * | 2018-12-11 | 2021-10-20 | InterDigital VC Holdings, Inc. | Method and apparatus for deblocking an image |
US11356699B2 (en) * | 2019-01-11 | 2022-06-07 | Hfi Innovation Inc. | Method and apparatus of sub-block deblocking in video coding |
-
2020
- 2020-01-16 KR KR1020247014523A patent/KR20240064039A/ko active Application Filing
- 2020-01-16 CN CN202080005810.XA patent/CN113196783B/zh active Active
- 2020-01-16 KR KR1020217017905A patent/KR20210088697A/ko active Application Filing
- 2020-01-16 MX MX2021006128A patent/MX2021006128A/es unknown
- 2020-01-16 BR BR112021013644-4A patent/BR112021013644A2/pt unknown
- 2020-01-16 AU AU2020208699A patent/AU2020208699A1/en active Pending
- 2020-01-16 JP JP2021525696A patent/JP7351908B2/ja active Active
- 2020-01-16 CN CN202311706647.1A patent/CN117880498A/zh active Pending
- 2020-01-16 EP EP20741178.6A patent/EP3868110A4/en active Pending
- 2020-01-16 CA CA3120828A patent/CA3120828A1/en active Pending
- 2020-01-16 CN CN202311708470.9A patent/CN118368415A/zh active Pending
- 2020-01-16 CN CN202311710860.XA patent/CN117880499A/zh active Pending
- 2020-01-16 WO PCT/CN2020/072442 patent/WO2020147782A1/en unknown
-
2021
- 2021-07-08 US US17/370,151 patent/US11962783B2/en active Active
-
2023
- 2023-09-14 JP JP2023149321A patent/JP2023169288A/ja active Pending
-
2024
- 2024-03-18 US US18/607,876 patent/US20240259569A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN113196783B (zh) | 2023-12-15 |
KR20240064039A (ko) | 2024-05-10 |
EP3868110A1 (en) | 2021-08-25 |
KR20210088697A (ko) | 2021-07-14 |
JP7351908B2 (ja) | 2023-09-27 |
CN118368415A (zh) | 2024-07-19 |
US20240259569A1 (en) | 2024-08-01 |
JP2022517488A (ja) | 2022-03-09 |
MX2021006128A (es) | 2021-06-23 |
CN117880499A (zh) | 2024-04-12 |
US11962783B2 (en) | 2024-04-16 |
WO2020147782A1 (en) | 2020-07-23 |
CN113196783A (zh) | 2021-07-30 |
CA3120828A1 (en) | 2020-07-23 |
CN117880498A (zh) | 2024-04-12 |
EP3868110A4 (en) | 2021-12-22 |
AU2020208699A1 (en) | 2021-06-10 |
US20210337211A1 (en) | 2021-10-28 |
JP2023169288A (ja) | 2023-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2974160T3 (es) | Decodificador de video y métodos | |
CA3122137C (en) | An encoder, a decoder and corresponding methods of boundary strength derivation of deblocking filter | |
JP2023162214A (ja) | コーディングブロックの三角形パーティションのインター予測のための装置および方法 | |
KR20220116339A (ko) | 루마 및 크로마 성분에 대한 ibc 전용 버퍼 및 디폴트 값 리프레싱을 사용하는 인코더, 디코더 및 대응하는 방법들 | |
KR20210072064A (ko) | 인터 예측 방법 및 장치 | |
ES2965083T3 (es) | Terminación temprana para el refinamiento de flujo óptico | |
US11653032B2 (en) | Video processing method, video processing apparatus, encoder, decoder, medium and computer program | |
BR112021013644A2 (pt) | Codificador, decodificador e métodos correspondentes de adaptação de filtro de deblocagem | |
BR112021004124A2 (pt) | método de decodificação de vídeo e decodificador de vídeo | |
BR112021008016A2 (pt) | codificador, decodificador e métodos correspondentes para modo de fusão | |
BR122022009445A2 (pt) | Codificador, decodificador e métodos correspondentes para simplificar sinalização de cabeçalho de imagem | |
BR112021014502A2 (pt) | Codificador, decodificador e métodos correspondentes de adaptação de filtro de desblocagem | |
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 | |
BR112021009911A2 (pt) | codificador, decodificador e métodos correspondentes usando armazenamento de mv compacto | |
KR20220024877A (ko) | 이중 예측 옵티컬 플로 계산 및 이중 예측 보정에서 블록 레벨 경계 샘플 그레이디언트 계산을 위한 정수 그리드 참조 샘플의 위치를 계산하는 방법 | |
BR112021013565A2 (pt) | 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 | |
BR112021011307A2 (pt) | Método e aparelho de predição inter, fluxo de bits e mídia de armazenamento não transitória | |
BR112021011723A2 (pt) | Método e aparelho de predição intra e codificador, decodificador, programa de computador, mídia de armazenamento não transitória, e fluxo de bits | |
CN111432219B (zh) | 一种帧间预测方法及装置 | |
BR112020026879A2 (pt) | Dispositivo e método para intra predição | |
BR122023021072A2 (pt) | Método de desblocagem, dispositivo para uso em um codificador e/ou um decodificador de imagem, codificador, decodificador, e meio legível por computador não transitório | |
BR112020025145B1 (pt) | Filtro de desblocagem para fronteiras de subpartição causadas por ferramenta de codificação de subpartição intra | |
BR122024008318A2 (pt) | Método e aparelho de predição de imagem, e mídia de armazenamento legível por computador | |
CN111726630A (zh) | 基于三角预测单元模式的处理方法及装置 | |
CN118118688A (zh) | 基于三角预测单元模式的处理方法及装置 |