BR112021006909A2 - aparelho e método para filtro de desblocagem em codificação de vídeo - Google Patents
aparelho e método para filtro de desblocagem em codificação de vídeo Download PDFInfo
- Publication number
- BR112021006909A2 BR112021006909A2 BR112021006909-7A BR112021006909A BR112021006909A2 BR 112021006909 A2 BR112021006909 A2 BR 112021006909A2 BR 112021006909 A BR112021006909 A BR 112021006909A BR 112021006909 A2 BR112021006909 A2 BR 112021006909A2
- Authority
- BR
- Brazil
- Prior art keywords
- block
- image block
- horizontal
- samples
- image
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 183
- 241000023320 Luma <angiosperm> Species 0.000 claims description 128
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims description 128
- 206010040736 Sinoatrial block Diseases 0.000 claims description 26
- 238000012545 processing Methods 0.000 abstract description 39
- 238000013139 quantization Methods 0.000 description 59
- 230000015654 memory Effects 0.000 description 49
- 238000001914 filtration Methods 0.000 description 48
- 230000006854 communication Effects 0.000 description 34
- 238000004891 communication Methods 0.000 description 34
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 22
- 238000002513 implantation Methods 0.000 description 16
- 230000004044 response Effects 0.000 description 16
- 238000005192 partition Methods 0.000 description 15
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 9
- 238000003491 array Methods 0.000 description 8
- 230000001419 dependent effect Effects 0.000 description 8
- 238000007781 pre-processing Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 6
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 5
- 230000001052 transient effect Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 102100039600 Cytoplasmic tRNA 2-thiolation protein 1 Human genes 0.000 description 3
- 101000746181 Homo sapiens Cytoplasmic tRNA 2-thiolation protein 1 Proteins 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000985610 Forpus Species 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007704 transition Effects 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/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
-
- 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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
-
- 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/156—Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
-
- 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/182—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 pixel
-
- 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/186—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 colour or a chrominance component
-
- 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
- H04N19/423—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 characterised by memory arrangements
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree 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/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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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/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
- H04N19/423—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 characterised by memory arrangements
- H04N19/426—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 characterised by memory arrangements using memory downsizing methods
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
APARELHO E MÉTODO PARA FILTRO DE
DESBLOCAGEM EM CODIFICAÇÃO DE VÍDEO.
A presente invenção refere-se ao campo de processamento de imagem. Em
especial, a invenção lida com melhorar o filtro de desblocagem de um
dispositivo de processamento de imagem. No máximo um número MA de
valores de amostra do primeiro bloco de imagem adjacente à borda de
bloco são modificados e no máximo um número MB de valores de amostra do
segundo bloco de imagem adjacente à borda de bloco são modificados, em
que MA é maior que MB.
Description
[0001] Modalidades da presente invenção se relacionam ao campo de processamento de imagem, e em particular codificação de imagem de vídeo. Mais especificamente, a invenção se relaciona a um aparelho de filtro de desblocagem e método para filtrar imagens de vídeo reconstruídas bem como a um aparelho de codificação e a um aparelho de decodificação compreendendo tal aparelho de filtro de desblocagem.
[0002] Codificação de vídeo (codificação e decodificação de vídeo) é usada em uma larga faixa de aplicativos de imagem digital, por exemplo, broadcast de TV digital, transmissão de vídeo pela internet e redes móveis, aplicativos em tempo real para conversa tais como bate-papo com vídeo, conferências em vídeo, DVD e discos Blu-ray, aquisição de conteúdo de vídeo e sistemas de edição, e camcorders de aplicativos de segurança.
[0003] Desde o desenvolvimento da abordagem de codificação de vídeo híbrida com base em bloco no padrão H.261 em 1990, novas técnicas e ferramentas de codificação de vídeo foram desenvolvidas e formaram a base para novos padrões de codificação de vídeo. Uma das metas da maioria dos padrões de codificação de vídeo era conseguir uma redução de taxa de bits em comparação com seu antecessor, sem sacrificar a qualidade de imagem. Outros padrões de codificação de vídeo incluem vídeo MPEG-1, vídeo MPEG-2, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), ITU-T H.265/Codificação de Vídeo de Alta Eficiência (HEVC), ITU-T H.266/Codificação de Vídeo Versátil (VVC) e extensões, por exemplo, escalabilidade e/ou extensões tridimensionais (3D) desses padrões.
[0004] Bloco-com base esquemas de codificação de imagem têm uma questão comum que ao longo das bordas de bloco, artefatos de borda podem aparecer. Esses artefatos são devidos à codificação independente dos blocos de codificação. Esses artefatos de borda são frequentemente visíveis de imediato para um usuário. Uma meta com base em codificação de imagem de bloco é reduzir artefatos de borda abaixo e um limiar de visibilidade. Isso é conseguido realizando-se filtragem de desblocagem. Essa filtragem de desblocagem é realizada no lado de decodificação a fim de remover os artefatos de borda visíveis, e também no lado de codificação, a fim de impedir de todo que os artefatos de borda sejam codificados na imagem.
[0005] Desse modo, existe uma necessidade de um aparelho de filtro de desblocagem in-loop aperfeiçoado e de um método fornecendo uma remoção mais eficiente de artefatos de bloco.
[0006] Em vista dos desafios acima mencionados, a presente invenção visa aperfeiçoar a filtragem de desblocagem convencional. A presente invenção tem o objetivo de fornecer um aparelho de filtro de desblocagem, um codificador, um decodificador e métodos correspondentes que podem realizar filtragem de desblocagem com buffer de linha disponível. Além disso, a desblocagem deve ser eficiente.
[0007] Modalidades da invenção são definidas pelos recursos das reivindicações independentes, e outras vantajosas implantações das modalidades pelos recursos das reivindicações dependentes.
[0008] Modalidades particulares são delineadas nas reivindicações independentes anexas, com outras modalidades nas reivindicações dependentes.
[0009] De acordo com um primeiro aspecto da invenção, um dispositivo para uso em um codificador de imagem e/ou um decodificador de imagem, para desblocagem de bordas de bloco entre blocos de imagem é fornecido, em que as bordas de bloco compreendem uma borda de bloco horizontal entre um primeiro bloco de imagem e um segundo bloco de imagem, em que o primeiro bloco de imagem tem um tamanho de bloco SA ao longo de uma direção vertical, em que o segundo bloco de imagem tem um tamanho de bloco SB ao longo da direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o dispositivo compreende um filtro de desblocagem configurado para: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal (ou em resposta à determinação de que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal),
- modificar valores de no máximo MA amostras do primeiro bloco de imagem como primeiros valores emitidos de filtro (ou um primeiro conjunto de valores emitidos de filtro), em que o máximo de MA amostras são obtidas a partir de uma coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, e - modificar valores de no máximo MB amostras do segundo bloco de imagem como segundos valores emitidos de filtro (ou um segundo conjunto de valores emitidos de filtro), em que o máximo de MB amostras são obtidas a partir de uma coluna do segundo bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que o primeiro bloco de imagem é um bloco acima da fronteira de CTB e o segundo bloco de imagem é um bloco abaixo da fronteira de CTB; em que MA ≠ MB (tal como MA < MB) e MA é determinado pelo menos com base em um tamanho de buffer de linha do buffer de linha associado com a fronteira de CTB. Em outras palavras, MA depende do (ou é com base no ou é associado ao) tamanho de buffer de linha do buffer de linha associado à fronteira de CTB.
[0010] Tamanho de buffer de linha é o montante de pixels que precisam ser armazenados na memória para decodificação com base em CTU (por exemplo, decodificadores de hardware). Em um exemplo, o tamanho de buffer de linha para um bloco de luma (ou componente luma) é de 4 linhas e para um bloco de croma (ou um componente croma) é de 2 linhas.
[0011] Entende-se que MA pode ser compreendido como um comprimento de filtro máximo para o primeiro bloco de imagem, e MB pode ser entendido como um comprimento de filtro máximo para o segundo bloco de imagem,
[0012] O segundo bloco de imagem é um bloco atual e o primeiro bloco de imagem P é um bloco vizinho do bloco atual, de modo correspondente no segundo bloco de imagem, para cada coluna de amostras inseridas que são perpendiculares e adjacentes a borda de bloco horizontal, de no máximo MB amostras são modificadas para gerar as amostras filtradas emitidas; no primeiro bloco de imagem, para cada coluna de amostras inseridas que são perpendiculares e adjacentes à borda de bloco horizontal, amostras de no máximo MA são modificadas para gerar as amostras filtradas emitidas. Em um exemplo, SA e SB são iguais a ou maiores que 32. Em um outro exemplo, SA (por exemplo, a altura do primeiro bloco de imagem) é igual a ou maior que 16, e SB (por exemplo, a altura do segundo bloco de imagem) é igual a ou maior que
32. Em um outro exemplo, SA ou SB (por exemplo, a altura do respectivo bloco de imagem) sendo igual a ou maior que 8. Note-se que, SA é um número inteiro par 2n1, SB é um número inteiro par 2n2, onde n1 e n2 podem ser iguais ou diferentes entre si.
[0013] Note-se que o termo “bloco”, “bloco de codificação” ou “bloco de imagem” é usado na presente revelação o qual pode ser aplicado para unidades de transformada (TUs), unidades de predição (PUs), unidades de codificação (CUs) etc. Em VVC em geral unidades de transformada e unidades de codificação são na maioria das vezes alinhadas exceto em poucos cenários quando agrupamento lado a lado de TU ou transformada de sub-bloco (SBT) é usado(a). Pode ser entendido que os termos “bloco/bloco de imagem/bloco de codificação/bloco de transformada”, e “tamanho de bloco/tamanho de bloco de transformada” podem ser trocados entre si na presente revelação. Os termos “amostra/pixel” podem ser trocados entre si na presente revelação.
[0014] A invenção funciona para bordas horizontais luma. Para bordas horizontais luma, a altura do primeiro ou segundo bloco de codificação (o primeiro ou segundo bloco de imagem sendo um bloco de luma) é verificada se a altura é ou não igual a ou maior que 32 (por exemplo, 32 ou 64). Para bordas horizontais luma, a altura do bloco de luma é considerada, para blocos de luma com uma altura >= 32, um filtro tap longo (a saber, um filtro longo) é aplicado.
[0015] A invenção também funciona para bordas horizontais croma. Para bordas horizontais croma, a altura do primeiro ou segundo bloco de codificação (o primeiro ou segundo bloco de imagem sendo um bloco de croma) é verificada se a altura é ou não igual a ou maior que 8 amostras (por exemplo, 8 ou 16). Para bordas horizontais croma, a altura do bloco de croma é considerada, para blocos de croma com a altura >= 8, um filtro tap longo (a saber, um filtro longo) é aplicado.
[0016] Na presente revelação, em resposta à determinação que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal, o filtro de desblocagem é um filtro no qual MB amostras são modificadas no lado (isto é, o lado inferior) da borda de bloco horizontal (borda de CU ou borda de TU) enquanto MA amostras são modificadas no outro lado (isto é, o lado superior) da borda de bloco horizontal (borda de CU ou borda de TU), em que MA ≠ MB, particularmente MA < MB, por exemplo, MA=3 e MB=7. O filtro de desblocagem pode ser um filtro assimétrico o qual modifica um número diferente de amostras em qualquer dos lados da borda de bloco horizontal (por exemplo, borda de CU ou borda de TU).
[0017] Pode ser entendido que o filtro de desblocagem pode ser um filtro assimétrico na presente revelação. Além disso, o termo “filtro tap longo”, “filtro tap mais longo” ou “filtro tap assimétrico” ou “filtro assimétrico longo” ou “filtro assimétrico” podem ser trocados entre si na presente revelação.
[0018] Desse modo, um dispositivo de filtro de desblocagem in-loop aperfeiçoado é fornecido permitindo uma remoção mais eficiente de artefatos de blocagem. Isso permite lidar de modo diferente com os dois lados da borda de bloco horizontal, isto é, é permitido que a decisão de filtragem e a filtragem sejam sintonizadas de acordo com o buffer de linha disponível e, portanto, isso irá resultar em qualidade subjetiva ideal.
[0019] Em uma possível forma de implantação do dispositivo de acordo com o primeiro aspecto propriamente dito, em que o filtro de desblocagem é adicionalmente configurado para: no caso em que a borda de bloco horizontal é sobreposta à fronteira de bloco de árvore de codificação (CTB) horizontal (ou em resposta à determinação de que a borda de bloco horizontal é sobreposta à fronteira de CTB), - usar valores de no máximo DA amostras do primeiro bloco de imagem como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, - usar valores de no máximo DB amostras do segundo bloco de imagem como segundos valores de decisão de filtro, em que o máximo de DB amostras são obtidas a partir de uma coluna do segundo bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que DA ≠ DB (DA < DB) e DA é determinado com base no tamanho de buffer de linha do buffer de linha associado à fronteira de CTB.
[0020] Na presente revelação, em resposta à determinação de que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal, o filtro de desblocagem é também um filtro o qual usa DA amostras para um decisão de filtro em um lado (isto é, o lado superior) da borda de bloco horizontal e usa DB amostras para uma decisão de filtro no outro lado (isto é, o lado inferior) da borda de bloco horizontal, em que DA ≠ DB, particularmente DA < DB, por exemplo, DA=4 e DB=8. Em geral, DA= MA + 1 e DB= MB + 1. O filtro de desblocagem pode ser também um filtro assimétrico o qual usa um número diferente de amostras nos dois lados da borda de bloco (por exemplo, borda de CU ou borda de TU).
[0021] Em uma possível forma de implantação do dispositivo de acordo com qualquer implantação precedente do primeiro aspecto ou com o primeiro aspecto propriamente dito, em que se o buffer de linha tiver o tamanho de buffer de linha de X linhas, para o primeiro bloco de imagem, MA=X-1, em que X é um número inteiro positivo.
[0022] Em uma possível forma de implantação do dispositivo de acordo com qualquer implantação precedente do primeiro aspecto ou com o primeiro aspecto propriamente dito, em que se o buffer de linha tiver o tamanho de buffer de linha de X linhas, para o primeiro bloco de imagem, DA=X e MA=X- 1, em que X é um número inteiro positivo.
[0023] Em uma possível forma de implantação do dispositivo de acordo com qualquer implantação precedente do primeiro aspecto ou com o primeiro aspecto propriamente dito, em que quando o primeiro bloco de imagem e o segundo bloco de imagem são blocos de croma, o buffer de linha tem o tamanho de buffer de linha de 2 linhas, ou quando o primeiro bloco de imagem e o segundo bloco de imagem são blocos de luma, o buffer de linha tem o tamanho de buffer de linha de 4 linhas.
[0024] Em uma possível forma de implantação do dispositivo de acordo com qualquer implantação precedente do primeiro aspecto ou com o primeiro aspecto propriamente dito, em que se o buffer de linha associado à fronteira de CTB tiver o tamanho de buffer de linha de X linhas, uma amostra pi do primeiro bloco de imagem é usada como um valor preenchido o qual substitui as outras amostras as quais pertencem ao primeiro bloco de imagem e as quais estão fora do buffer de linha, em que i = X-1.
[0025] A amostra pi do primeiro bloco de imagem é a X-ésima amostra em uma coluna perpendicular e adjacente à borda de bloco horizontal, e é também a amostra mais externa (tal como p3 como mostrado na Figura 17 ou p1 como mostrado na Figura 18 ou p5 como mostrado na Figura 16B) permitida para ser armazenada no buffer de linha associado à fronteira de CTB.
[0026] Em uma possível forma de implantação do dispositivo de acordo com qualquer implantação precedente do primeiro aspecto ou com o primeiro aspecto propriamente dito, em que um coeficiente de filtro de uma amostra pi do primeiro bloco de imagem é determinado de uma maneira tal que a amostra pi, a qual pertence ao primeiro bloco de imagem e que é a amostra mais externa permitida para ser armazenada no buffer de linha, é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de imagem e que estão fora do buffer de linha.
[0027] Isso permite que a decisão de filtro original e o processo de filtragem não precisem ser mudados uma vez que as amostras preenchidas podem simplesmente ser tratadas como amostras disponíveis e isso leva a um aumento mínimo em complexidade de computação, especialmente em hardware.
[0028] Em uma possível forma de implantação do dispositivo de acordo com qualquer implantação precedente do primeiro aspecto ou com o primeiro aspecto propriamente dito, em que um coeficiente de filtro associado com a amostra pi do primeiro bloco de imagem é determinado com base no número de vezes que a amostra pi é usada como um valor preenchido, em que a amostra pi pertence ao primeiro bloco de imagem e é a amostra mais externa permitida para ser armazenada no buffer de linha associada à fronteira de CTB.
[0029] Por exemplo, o número de vezes que a amostra pi é usada como um valor preenchido é 2, então o coeficiente de filtro associado à amostra pi do primeiro bloco de imagem é 3, porque a própria amostra pi é também contada.
[0030] Em uma possível forma de implantação do dispositivo de acordo com qualquer implantação precedente do primeiro aspecto ou com o primeiro aspecto propriamente dito, em que quando o buffer de linha tem o tamanho de buffer de linha de 2 linhas, a amostra pi é a amostra p1 (por exemplo, a coluna inclui [p0 p1 p2 ...], p1 é o segundo elemento na coluna), e o coeficiente de filtro associado à amostra p1 é 3 para uma amostra de saída p0′ pelos primeiros valores emitidos de filtro. Ver a equação p0′ = Clip3(p0−tC,p0+tC,(3 * p1+2*p0+q0+q1+q2 +4)>>3) (8-1151)
[0031] Em uma possível forma de implantação do dispositivo de acordo com qualquer implantação precedente do primeiro aspecto ou com o primeiro aspecto propriamente dito, em que quando o buffer de linha tem o tamanho de buffer de linha de 2 linhas, a amostra pi é a amostra p1 (por exemplo, a coluna inclui [p0 p1 p2 ...], p1 é o segundo elemento na coluna), e o coeficiente de filtro associado à amostra p1 é 2 para uma amostra de saída q0′ dos segundos valores emitidos de filtro. Ver a equação q0′ = Clip3(q0−tC,q0+tC,(2 * p1+p0+2*q0+q1+q2+q3+4)>>3) (8-1154)
[0032] Em uma possível forma de implantação do dispositivo de acordo com qualquer implantação precedente do primeiro aspecto ou com o primeiro aspecto propriamente dito, em que quando tanto o primeiro bloco de imagem quanto o segundo bloco de imagem são blocos de luma e SB e SA são iguais a ou maiores que 32, MB = 7 e MA = 3; ou em que quando tanto o primeiro bloco de imagem quanto o segundo bloco de imagem são blocos de luma e SB é igual a ou maior que 32 e SA é igual a ou maior que 16, MB = 7 e MA = 3.
[0033] Pode ser entendido que SA pode ser diferente de SB ou SA é igual a SB. Em outras palavras, SB e SA podem ser o mesmo valor ou SB e SA podem ser diferentes valores, por exemplo, SA é 32, SB é 64. Por exemplo, SA é 16, SB é 32.
[0034] Em uma possível forma de implantação do dispositivo de acordo com qualquer implantação precedente do primeiro aspecto ou com o primeiro aspecto propriamente dito, em que quando tanto o primeiro bloco de imagem quanto o segundo bloco de imagem são blocos de luma e SB e SA são iguais a ou maiores que 32, DB= 8 e DA=4; ou em que quando tanto o primeiro bloco de imagem quanto o segundo bloco de imagem são blocos de luma e SB é igual a ou maior que 32 e SA é igual a ou maior que 16, DB= 8 e DA=4.
[0035] Pode ser entendido que SA pode ser diferente de SB ou SA é igual a SB. Em outras palavras, SB e SA podem ser o mesmo valor ou SB e SA podem ser diferentes valores, por exemplo, SA é 32, SB é 64. Por exemplo, SA é 16, SB é 32.
[0036] Em uma possível forma de implantação do dispositivo de acordo com qualquer implantação precedente do primeiro aspecto ou com o primeiro aspecto propriamente dito, em que quando o primeiro bloco de imagem e o segundo bloco de imagem são blocos de croma e SA e SB são iguais a ou maiores que 8, MB = 3 e MA = 1.
[0037] Pode ser entendido que SA pode ser diferente de SB ou SA é igual a SB. Em outras palavras, SB e SA podem ser do mesmo valor ou SB e SA podem ser diferentes valores, por exemplo, SA é 8, SB é 8. Por exemplo, SA é 8, SB é 16.
[0038] Em uma possível forma de implantação do dispositivo de acordo com qualquer implantação precedente do primeiro aspecto ou com o primeiro aspecto propriamente dito, em que quando o primeiro bloco de imagem e o segundo bloco de imagem são blocos de croma e SB e SA são iguais a ou maiores que 8, DB= 4 e DA=2.
[0039] Pode ser entendido que SA pode ser diferente de SB ou SA é igual a SB. Em outras palavras, SB e SA podem ser do mesmo valor ou SB e SA podem ser diferentes valores, por exemplo, SA é 8, SB é 8. Por exemplo, SA é 8, SB é 16.
[0040] Em uma possível forma de implantação do dispositivo de acordo com qualquer implantação precedente do primeiro aspecto ou com o primeiro aspecto propriamente dito, em que o segundo bloco de imagem é um bloco de imagem atual, e o primeiro bloco de imagem é um bloco de imagem vizinho adjacente ao bloco de imagem atual.
[0041] Em uma possível forma de implantação do dispositivo de acordo com qualquer implantação precedente do primeiro aspecto ou com o primeiro aspecto propriamente dito, em que amostras pi do primeiro bloco de imagem são amostras de luma, ou as amostras pi do primeiro bloco de imagem são amostras de croma, uma faixa para i pode ser {0, 1, 2, … , SA-1}.
[0042] Similarmente, amostras 𝑞j do segundo bloco de imagem são amostras de luma, ou as amostras 𝑞j do segundo bloco de imagem são amostras de croma, uma faixa para j pode ser {0, 1, 2, … , SB-1}.
[0043] Em particular, pi representa qualquer amostra da coluna de amostras do primeiro bloco de imagem (tal como o bloco P) que é perpendicular e adjacente à borda de bloco horizontal, e 𝑞j representa qualquer amostra da coluna de amostras do segundo bloco de imagem (tal como o bloco Q) que é perpendicular e adjacente à borda de bloco horizontal, tais como i, j =0, 1, 2, ..7 ou , tais como i, j =0, 1,2, ..31.
[0044] Em uma possível forma de implantação do dispositivo de acordo com qualquer implantação precedente do primeiro aspecto ou com o primeiro aspecto propriamente dito, em que quando o primeiro e o segundo blocos de imagem são blocos de croma, o filtro de desblocagem é configurado para determinar se a borda de bloco horizontal é ou não sobreposta com uma fronteira de CTB de croma horizontal; ou quando o primeiro e o segundo blocos de imagem são blocos de luma, a desblocagem é configurada para determinar se a borda de bloco horizontal é sobreposta a uma fronteira de CTB de luma horizontal.
[0045] Em uma possível forma de implantação do dispositivo de acordo com qualquer implantação precedente do primeiro aspecto ou com o primeiro aspecto propriamente dito, em que o filtro de desblocagem é um filtro tap mais longo ou um filtro assimétrico ou um filtro tap assimétrico.
[0046] De acordo com um segundo aspecto da invenção, um dispositivo para uso em um codificador de imagem e/ou um decodificador de imagem, para desblocagem de bordas de bloco entre blocos de imagem é fornecido, em que as bordas de bloco compreendem uma borda de bloco horizontal entre um primeiro bloco de imagem e um segundo bloco de imagem, em que o primeiro bloco de imagem tem um tamanho de bloco SA ao longo de uma direção vertical, em que o segundo bloco de imagem tem um tamanho de bloco SB ao longo da direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o dispositivo compreende um filtro de desblocagem configurado para: no caso em que a borda de bloco horizontal é sobreposta com uma fronteira de bloco de árvore de codificação (CTB) horizontal (ou em resposta à determinação de que a borda de bloco horizontal é sobreposta com uma fronteira de bloco de árvore de codificação (CTB) horizontal), - modificar valores de no máximo MA amostras do primeiro bloco de imagem como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que MA=1; e
-modificar valores de no máximo MB amostras do segundo bloco de imagem como segundos valores emitidos de filtro, em que o máximo de MB amostras são obtidas a partir de uma coluna do segundo bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que MB=3, em que o primeiro bloco de imagem é um bloco de croma acima da fronteira de CTB e o segundo bloco de imagem é um outro bloco de croma abaixo da fronteira de CTB, e SA e SB são iguais a ou maiores que 8.
[0047] Pode ser entendido que SA pode ser diferente de SB, ou SA é igual a SB. Em outras palavras, SB e SA podem ser do mesmo valor ou SB e SA podem ser diferentes valores, por exemplo, SA é 8, SB é 8. Por exemplo, SA é 8, SB é 16.
[0048] De acordo com um terceiro aspecto da invenção, um dispositivo para uso em um codificador de imagem e/ou um decodificador de imagem, para desblocagem de bordas de bloco entre blocos de imagem é fornecido, em que as bordas de bloco compreendem uma borda de bloco horizontal entre um primeiro bloco de imagem e um segundo bloco de imagem, em que o primeiro bloco de imagem tem um tamanho de bloco SA ao longo de uma direção vertical, em que o segundo bloco de imagem tem um tamanho de bloco SB ao longo da direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o dispositivo compreende um filtro de desblocagem configurado para: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal (ou em resposta à determinação que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal), - usar valores de no máximo DA amostras do primeiro bloco de imagem como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que DA=2; - usar valores de no máximo DB amostras do segundo bloco de imagem como segundos valores de decisão de filtro, em que o máximo de DB amostras são obtidas a partir de uma coluna do segundo bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que DB=4, e em que o primeiro bloco de imagem é um bloco de croma acima da fronteira de CTB e o segundo bloco de imagem é um outro bloco de croma abaixo da fronteira de CTB, e SA e SB são iguais a ou maiores que 8.
[0049] Pode ser entendido que SA pode ser diferente de SB, ou SA é igual a SB. Em outras palavras, SB e SA podem ser do mesmo valor ou SB e SA podem ser diferentes valores, por exemplo, SA é 8, SB é 8. Por exemplo, SA é 8, SB é 16.
[0050] De acordo com um quarto aspecto da invenção, um método de desblocagem, para desblocagem de bordas de bloco entre blocos de imagem em uma codificação de imagem e/ou uma decodificação de imagem é fornecida, em que as bordas de bloco compreendem uma borda de bloco horizontal entre um primeiro bloco de imagem e um segundo bloco de imagem, em que o primeiro bloco de imagem tem um tamanho de bloco SA ao longo de uma direção vertical, em que o segundo bloco de imagem tem um tamanho de bloco SB ao longo da direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o método compreende: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal ou em resposta à determinação que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal), - modificar valores de no máximo MA amostras do primeiro bloco de imagem como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, e -modificar valores de no máximo MB amostras do segundo bloco de imagem como segundos valores emitidos de filtro, em que o máximo de MB amostras são obtidas a partir de uma coluna do segundo bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que o primeiro bloco de imagem é um bloco acima da fronteira de CTB e o segundo bloco de imagem é um bloco abaixo da fronteira de CTB; em que MA ≠ MB (MA < MB) e MA é determinado com base em um tamanho de buffer de linha do buffer de linha associado à fronteira de CTB.
[0051] Isso permite que a decisão de filtragem e a filtragem sejam sintonizadas de acordo com o buffer de linha disponível e, portanto, isso irá resultar em qualidade subjetiva ideal.
[0052] Em uma possível forma de implantação do método de acordo com o quarto aspecto propriamente dito, em que o método adicionalmente compreende: no caso em que a borda de bloco horizontal é sobreposta à fronteira de bloco de árvore de codificação (CTB) horizontal (ou em resposta à determinação de que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal), - usar valores de no máximo DA amostras do primeiro bloco de imagem como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, - usar valores de no máximo DB amostras do segundo bloco de imagem como segundos valores de decisão de filtro, em que o máximo de DB amostras são obtidas a partir de uma coluna do segundo bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que DA ≠ DB (DA < DB) e DA é determinado com base no tamanho de buffer de linha do buffer de linha associado à fronteira de CTB.
[0053] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que se o buffer de linha tiver o tamanho de buffer de linha de X linhas, para o primeiro bloco de imagem, MA=X-1, em que X é um número inteiro positivo.
[0054] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que se o buffer de linha tiver o tamanho de buffer de linha de X linhas, para o primeiro bloco de imagem, DA=X e MA=X-1, em que X é um número inteiro positivo.
[0055] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que quando o primeiro bloco de imagem e o segundo bloco de imagem são blocos de croma, o buffer de linha tem o tamanho de buffer de linha de 2 linhas, ou quando o primeiro bloco de imagem e o segundo bloco de imagem são blocos de luma, o buffer de linha tem o tamanho de buffer de linha de 4 linhas.
[0056] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que se o buffer de linha associado à fronteira de CTB tiver o tamanho de buffer de linha de X linhas, a amostra pi do primeiro bloco de imagem é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de imagem e que estão fora do buffer de linha, em que i = X-1.
[0057] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que a amostra pi do primeiro bloco de imagem é a X-ésima amostra em uma coluna perpendicular e adjacente à borda de bloco horizontal, e é também a amostra mais externa permitida para ser armazenada no buffer de linha associado à fronteira de CTB.
[0058] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que um coeficiente de filtro de uma amostra pi do primeiro bloco de imagem é determinado de uma maneira tal que a amostra pi, que pertence ao primeiro bloco de imagem e que é a amostra mais externa permitida para ser armazenada no buffer de linha, é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de imagem e que estão fora do buffer de linha.
[0059] Isso permite que a decisão de filtro original e o processo de filtragem não precisem ser mudados uma vez que as amostras preenchidas podem simplesmente ser tratadas como amostras disponíveis e isso leva a um aumento mínimo em complexidade de computação, especialmente em hardware.
[0060] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que um coeficiente de filtro associado a uma amostra pi do primeiro bloco de imagem é determinado com base no número de vezes que a amostra pi é usada como um valor preenchido (que substitui as outras amostras que pertencem ao primeiro bloco de imagem e que estão fora do buffer de linha), em que a amostra pi pertence ao primeiro bloco de imagem e é a amostra mais externa permitida para ser armazenada no buffer de linha associado à fronteira de CTB.
[0061] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que quando o buffer de linha tem o tamanho de buffer de linha de 2 linhas, a amostra pi é a amostra p1, e o coeficiente de filtro associado à amostra p1 é 3 para um elemento dos primeiros valores emitidos de filtro.
[0062] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que quando o buffer de linha tem o tamanho de buffer de linha de 2 linhas, a amostra pi é a amostra p1, e o coeficiente de filtro associado à amostra p1 é 2 para um elemento dos segundos valores emitidos de filtro.
[0063] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que quando tanto o primeiro bloco de imagem quanto o segundo bloco de imagem são blocos de luma e SB e SA são iguais a ou maiores que 32, MB = 7 e MA = 3; ou em que quando tanto o primeiro bloco de imagem quanto o segundo bloco de imagem são blocos de luma e SB é igual a ou maior que 32 e SA é igual a ou maior que 16, MB = 7 e MA = 3.
[0064] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que quando tanto o primeiro bloco de imagem quanto o segundo bloco de imagem são blocos de luma e SB e SA são iguais a ou maiores que 32, DB= 8 e DA=4; ou em que quando tanto o primeiro bloco de imagem quanto o segundo bloco de imagem são blocos de luma e SB é igual a ou maior que 32 e SA é igual a ou maior que 16, DB= 8 e DA=4.
[0065] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que quando o primeiro bloco de imagem e o segundo bloco de imagem são blocos de croma e SA e SB são iguais a ou maiores que 8, MB = 3 e MA = 1.
[0066] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que quando o primeiro bloco de imagem e o segundo bloco de imagem são blocos de croma e SB e SA são iguais a ou maiores que 8, DB= 4 e DA=2.
[0067] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que o segundo bloco de imagem é um bloco de imagem atual, e o primeiro bloco de imagem é um bloco de imagem vizinho adjacente ao bloco de imagem atual.
[0068] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que amostras pi do primeiro bloco de imagem são amostras de luma, ou as amostras pi do primeiro bloco de imagem são amostras de croma, em que i pertence a {0, 1, 2, … , SA-1}.
[0069] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que o método adicionalmente compreende: quando o primeiro e o segundo blocos de imagem são blocos de croma, determinar se a borda de bloco horizontal é sobreposta a uma fronteira de CTB de croma horizontal; ou quando o primeiro e o segundo blocos de imagem são blocos de luma, determinar se a borda de bloco horizontal é sobreposta a uma fronteira de CTB de luma horizontal.
[0070] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do quarto aspecto ou com o quarto aspecto propriamente dito, em que o filtro de desblocagem é um filtro tap mais longo ou um filtro assimétrico ou um filtro tap assimétrico.
[0071] De acordo com um quinto aspecto da invenção, um método de desblocagem, para desblocagem de bordas de bloco entre blocos de imagem em uma codificação de imagem e/ou uma decodificação de imagem é fornecido, em que as bordas de bloco compreendem uma borda de bloco horizontal entre um primeiro bloco de imagem e um segundo bloco de imagem, em que o primeiro bloco de imagem tem um tamanho de bloco SA ao longo de uma direção vertical, em que o segundo bloco de imagem tem um tamanho de bloco SB ao longo da direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o método compreende: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal (ou em resposta à determinação de que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal), - modificar valores de no máximo MA amostras do primeiro bloco de imagem como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que MA=1; e -modificar valores de no máximo MB amostras do segundo bloco de imagem como segundos valores emitidos de filtro, em que o máximo de MB amostras são obtidas a partir de uma coluna do segundo bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que MB=3, em que o primeiro bloco de imagem é um bloco de croma acima da fronteira de CTB e o segundo bloco de imagem é um outro bloco de croma abaixo da fronteira de CTB, e SA e SB são iguais a ou maiores que 8.
[0072] De acordo com um sexto aspecto da invenção, um método de desblocagem, para desblocagem de bordas de bloco entre blocos de imagem em uma codificação de imagem e/ou uma decodificação de imagem é fornecido, em que as bordas de bloco compreendem uma borda de bloco horizontal entre um primeiro bloco de imagem e um segundo bloco de imagem, em que o primeiro bloco de imagem tem um tamanho de bloco SA ao longo de uma direção vertical, em que o segundo bloco de imagem tem um tamanho de bloco SB ao longo da direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o método compreende um filtro de desblocagem configurado para: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal (ou em resposta à determinação de que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal), - usar valores de no máximo DA amostras do primeiro bloco de imagem como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que DA=2; - usar valores de no máximo DB amostras do segundo bloco de imagem como segundos valores de decisão de filtro, em que o máximo de DB amostras são obtidas a partir de uma coluna do segundo bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que DB=4, e em que o primeiro bloco de imagem é um bloco de croma acima da fronteira de CTB e o segundo bloco de imagem é um outro bloco de croma abaixo da fronteira de CTB, e SA e SB são iguais a ou maiores que 8.
[0073] De acordo com um sétimo aspecto da invenção, um dispositivo para uso em um codificador de imagem e/ou um decodificador de imagem, para desblocagem de bordas de bloco entre blocos de imagem é fornecido, em que as bordas de bloco compreendem uma borda de bloco horizontal entre um bloco de imagem atual e um bloco de imagem vizinho do bloco de imagem atual, em que o bloco de imagem atual está acima da borda de bloco horizontal; em que o bloco de imagem atual tem um tamanho de bloco SA ao longo de uma direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o dispositivo compreende um filtro de desblocagem configurado para: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal (ou em resposta à determinação de que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal), - determinar um comprimento de filtro máximo, MA para o bloco de imagem atual pelo menos com base em um tamanho de buffer de linha do buffer de linha associado à fronteira de CTB; e - modificar valores de no máximo MA amostras do bloco de imagem atual como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal.
MA pode ser entendido como um comprimento de filtro máximo para o bloco de imagem atual ou em cada coluna perpendicular e adjacente à borda de bloco horizontal, começando na borda de bloco horizontal, um número máximo de amostras a serem modificadas para o bloco de imagem atual.
[0074] De acordo com um oitavo aspecto da invenção, um método de desblocagem, para desblocagem de bordas de bloco entre blocos de imagem em uma codificação de imagem e/ou uma decodificação de imagem é fornecido, em que as bordas de bloco compreendem uma borda de bloco horizontal entre um bloco de imagem atual e um bloco de imagem vizinho do bloco de imagem atual, em que o bloco de imagem atual está acima da borda de bloco horizontal; em que o bloco de imagem atual tem um tamanho de bloco SA ao longo de uma direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o método compreende: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal (ou em resposta à determinação de que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal), - determinar um comprimento de filtro máximo, MA para o bloco de imagem atual pelo menos com base em um tamanho de buffer de linha do buffer de linha associado à fronteira de CTB; e - modificar valores de no máximo MA amostras do bloco de imagem atual como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal.
[0075] Isso permite que a decisão de filtragem e a filtragem sejam sintonizadas de acordo com o buffer de linha disponível e, portanto, isso irá resultar em qualidade subjetiva ideal.
[0076] Em uma possível forma de implantação de acordo com o sétimo ou oitavo aspecto propriamente ditos, em que se o buffer de linha associado à fronteira de CTB tiver o tamanho de buffer de linha de X linhas, MA=X-1, em que X é um número inteiro positivo.
[0077] Em uma possível forma de implantação de acordo com qualquer implantação precedente do sétimo ou oitavo aspecto ou com o sétimo ou oitavo aspecto propriamente ditos, em que o filtro de desblocagem é adicionalmente configurado para: no caso em que a borda de bloco horizontal é sobreposta à fronteira de bloco de árvore de codificação (CTB) horizontal, - usar valores de no máximo DA amostras do bloco de imagem atual como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal.
[0078] Em uma possível forma de implantação de acordo com qualquer implantação precedente do sétimo ou oitavo aspecto ou com o sétimo ou oitavo aspecto propriamente ditos, em que se o buffer de linha associado à fronteira de CTB tiver o tamanho de buffer de linha de X linhas, DA=X e MA=X- 1, em que X é um número inteiro positivo.
[0079] Em uma possível forma de implantação do método de acordo com qualquer implantação precedente do sexto aspecto ou com o sexto aspecto propriamente dito, em que quando o bloco de imagem atual é um bloco de croma, o buffer de linha associado à fronteira de CTB tem o tamanho de buffer de linha de 2 linhas, ou
[0080] quando o bloco de imagem atual é um bloco de luma, o buffer de linha associado à fronteira de CTB tem o tamanho de buffer de linha de 4 linhas.
[0081] Em uma possível forma de implantação de acordo com qualquer implantação precedente do sétimo ou oitavo aspecto ou com o sétimo ou oitavo aspecto propriamente ditos, em que se o buffer de linha associado à fronteira de CTB tiver o tamanho de buffer de linha de X linhas, uma amostra pi do bloco de imagem atual é usada como um valor preenchido que substitui as outras amostras que pertencem ao bloco de imagem atual e que estão fora do buffer de linha, em que i = X-1.
[0082] Em uma possível forma de implantação de acordo com qualquer implantação precedente do sétimo ou oitavo aspecto ou com o sétimo ou oitavo aspecto propriamente ditos, em que a amostra pi do bloco de imagem atual é a X-ésima amostra em uma coluna perpendicular e adjacente à borda de bloco horizontal, e é também a amostra mais externa permitida para ser armazenada no buffer de linha associado à fronteira de CTB.
[0083] Em uma possível forma de implantação de acordo com qualquer implantação precedente do sétimo ou oitavo aspecto ou com o sétimo ou oitavo aspecto propriamente ditos, em que um coeficiente de filtro de uma amostra pi do bloco de imagem atual é determinado de uma maneira tal que a amostra pi, que pertence ao bloco de imagem atual e que é a amostra mais externa permitida para ser armazenada no buffer de linha, é usada como um valor preenchido que substitui as outras amostras que pertencem ao bloco de imagem atual e que estão fora do buffer de linha.
[0084] Isso permite que a decisão de filtro original e o processo de filtragem não precisem ser mudados uma vez que as amostras preenchidas podem simplesmente ser tratadas como amostras disponíveis e isso resulta em aumento mínimo em complexidade de computação, especialmente em hardware.
[0085] Em uma possível forma de implantação de acordo com qualquer implantação precedente do sétimo ou oitavo aspecto ou com o sétimo ou oitavo aspecto propriamente ditos, em que um coeficiente de filtro associado a uma amostra pi do bloco de imagem atual é determinado com base no número de vezes que a amostra pi é usada como um valor preenchido, em que a amostra pi pertence ao bloco de imagem atual e é a amostra mais externa permitida para ser armazenada no buffer de linha associado à fronteira de CTB. Por exemplo, o número de vezes que uma amostra pi é usada como um valor preenchido é 2, então o coeficiente de filtro associado à amostra pi do bloco de imagem atual é 3, porque a própria amostra pi é também contada.
[0086] Em uma possível forma de implantação de acordo com qualquer implantação precedente do sétimo ou oitavo aspecto ou com o sétimo ou oitavo aspecto propriamente ditos, em que quando o buffer de linha tem o tamanho de buffer de linha de 2 linhas, a amostra pi é a amostra p1, e o coeficiente de filtro associado à amostra p1 é 3.
[0087] Em uma possível forma de implantação de acordo com qualquer implantação precedente do sétimo ou oitavo aspecto ou com o sétimo ou oitavo aspecto propriamente ditos, quando o bloco de imagem atual é um bloco de luma e SA é igual a ou maior que 32, MA = 3, em que SA é a altura do bloco de imagem atual; ou quando o bloco de imagem atual é um bloco de luma e SA é igual a ou maior que 16, MA = 3, em que SA é a altura do bloco de imagem atual.
[0088] Em uma possível forma de implantação de acordo com qualquer implantação precedente do sétimo ou oitavo aspecto ou com o sétimo ou oitavo aspecto propriamente ditos, quando o bloco de imagem atual é um bloco de luma e SA é igual a ou maior que 32, DA=4, em que SA é a altura do bloco de imagem atual; ou quando o bloco de imagem atual é um bloco de luma e SA é igual a ou maior que 16, DA=4, em que SA é a altura do bloco de imagem atual.
[0089] Em uma possível forma de implantação de acordo com qualquer implantação precedente do sétimo ou oitavo aspecto ou com o sétimo ou oitavo aspecto propriamente ditos, quando o bloco de imagem atual é um bloco de croma e SA é igual a ou maior que 8, MA = 1, em que SA é a altura do bloco de imagem atual.
[0090] Em uma possível forma de implantação de acordo com qualquer implantação precedente do sétimo ou oitavo aspecto ou com o sétimo ou oitavo aspecto propriamente ditos, quando o bloco de imagem atual é um bloco de croma e SA é igual a ou maior que 8, DA=2, em que SA é a altura do bloco de imagem atual.
[0091] Em uma possível forma de implantação de acordo com qualquer implantação precedente do sétimo ou oitavo aspecto ou com o sétimo ou oitavo aspecto propriamente ditos, em que quando o bloco de imagem atual é um bloco de croma, o filtro de desblocagem é configurado para determinar se a borda de bloco horizontal é sobreposta a uma fronteira de CTB de croma horizontal; ou quando o bloco de imagem atual é um bloco de luma, a desblocagem é configurada para determinar se a borda de bloco horizontal é sobreposta a uma fronteira de CTB de luma horizontal.
[0092] Em uma possível forma de implantação de acordo com qualquer implantação precedente do sétimo ou oitavo aspecto ou com o sétimo ou oitavo aspecto propriamente ditos, em que amostras pi do bloco de imagem atual são amostras de luma, ou as amostras pi do bloco de imagem atual são amostras de croma, em que i pertence a {0, 1, 2, … , SA-1}.
[0093] Em uma possível forma de implantação de acordo com qualquer implantação precedente do sétimo ou oitavo aspecto ou com o sétimo ou oitavo aspecto propriamente ditos, em que o bloco de imagem atual é um bloco de transformada; ou o bloco de imagem atual é um bloco de codificação.
[0094] De acordo com um nono aspecto da invenção, um dispositivo para uso em um codificador de imagem e/ou um decodificador de imagem, para desblocagem de bordas de bloco entre blocos de imagem é fornecido, em que as bordas de bloco compreendem uma borda de bloco horizontal entre um bloco de imagem atual e um bloco de imagem vizinho do bloco de imagem atual, em que o bloco de imagem atual está acima da borda de bloco horizontal; em que o bloco de imagem atual tem um tamanho de bloco SA ao longo de uma direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o dispositivo compreende um filtro de desblocagem configurado para: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal (ou em resposta à determinação de que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal), - modificar valores de no máximo MA amostras do bloco de imagem atual como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal, e - usar valores de no máximo DA amostras do bloco de imagem atual como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal, em que quando o bloco de imagem atual é um bloco de luma e SA é igual a ou maior que 32, MA = 3 e DA=4.
[0095] De acordo com um décimo aspecto da invenção, um dispositivo para uso em um codificador de imagem e/ou um decodificador de imagem, para desblocagem de bordas de bloco entre blocos de imagem é fornecido, em que as bordas de bloco compreendem uma borda de bloco horizontal entre um bloco de imagem atual e um bloco de imagem vizinho do bloco de imagem atual, em que o bloco de imagem atual está acima da borda de bloco horizontal; em que o bloco de imagem atual tem um tamanho de bloco SA ao longo de uma direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o dispositivo compreende um filtro de desblocagem configurado para: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal (ou em resposta à determinação de que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal), - modificar valores de no máximo MA amostras do bloco de imagem atual como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal, e - usar valores de no máximo DA amostras do bloco de imagem atual como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal, em que quando o bloco de imagem atual é um bloco de croma e SA é igual a ou maior que 8, MA = 1 e DA=2.
[0096] De acordo com um décimo primeiro aspecto da invenção, um método de desblocagem, para desblocagem de bordas de bloco entre blocos de imagem em uma codificação de imagem e/ou uma decodificação de imagem é fornecido, em que as bordas de bloco compreendem uma borda de bloco horizontal entre um bloco de imagem atual e um bloco de imagem vizinho do bloco de imagem atual, em que o bloco de imagem atual está acima da borda de bloco horizontal; em que o bloco de imagem atual tem um tamanho de bloco SA ao longo de uma direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o método compreende: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal (ou em resposta à determinação de que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal), - modificar valores de no máximo MA amostras do bloco de imagem atual como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal, e - usar valores de no máximo DA amostras do bloco de imagem atual como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal, em que quando o bloco de imagem atual é um bloco de luma e SA é igual a ou maior que 32, MA = 3 e DA=4.
[0097] De acordo com um décimo segundo aspecto da invenção, um método de desblocagem, para desblocagem de bordas de bloco entre blocos de imagem em uma codificação de imagem e/ou uma decodificação de imagem é fornecido, em que as bordas de bloco compreendem uma borda de bloco horizontal entre um bloco de imagem atual e um bloco de imagem vizinho do bloco de imagem atual, em que o bloco de imagem atual está acima da borda de bloco horizontal; em que o bloco de imagem atual tem um tamanho de bloco SA ao longo de uma direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o método compreende: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal (ou em resposta à determinação de que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal), - modificar valores de no máximo MA amostras do bloco de imagem atual como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal, e - usar valores de no máximo DA amostras do bloco de imagem atual como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal, em que quando o bloco de imagem atual é um bloco de croma e SA é igual a ou maior que 8, MA = 1 e DA=2.
[0098] Note-se esta condição de filtro Modificado para usar o número restrito de linhas a partir do bloco superior “P”. em que os coeficientes de filtro são determinados de uma maneira tal que a amostra pi, que pertence ao primeiro bloco de codificação P e que é a amostra mais externa permitida para ser armazenada no buffer de linha, é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de codificação P e que estão fora do buffer de linha.
[0099] Pode ser entendido que as amostras permitida para serm armazenadas na memória a partir da CTU superior é chamado do buffer de linha. Na presente revelação, o buffer de linha, por exemplo, pode ser um buffer de 4 linhas ou buffer de 6 linhas. O tamanho de buffer de linha é o montante de pixels que se precisa armazenar na memória para decodificação com base em CTU (por exemplo, decodificadores de hardware).
[0100] O tamanho de buffer de linha para o componente luma é de 4 linhas e para o componente croma é de 2 linhas.
[0101] Desse modo é permitido reduzir buffer de linha em fronteiras de CTU para o filtro de desblocagem (tal como um filtro tap longo) preenchendo- se as amostras que estão fora do buffer de linha pela amostra mais externa presente no buffer de linha.
[0102] Na desblocagem (por exemplo, desblocagem de luma ou desblocagem de croma), o filtro de desblocagem é aplicado a amostras em cada um dos lados da fronteira que pertencem a um grande bloco. Uma amostra pertencente a um grande bloco pode ser definida quando a largura >= 32 para uma borda vertical, e quando a altura >=32 para uma borda horizontal.
[0103] As amostras em cada lado de uma fronteira de bloco (perpendicular à fronteira de bloco) podem ser representadas como: … p8 p7 p6 p5 p4 p3 p2 p1 p0 | q0 q1 q2 q3 q4 q5 q6 q7 q8 … onde | representa a fronteira de bloco ou borda de bloco, por exemplo, | representa uma fronteira horizontal ou borda horizontal sobreposta a uma fronteira de CTU. onde 𝑝i representa os valores de amostra do primeiro bloco de codificação P (abreviação para bloco P), e 𝑞𝑖 representa os valores de amostra do segundo bloco de codificação Q (abreviação para bloco Q).
[0104] A condição de filtro e equações de filtro podem ser derivadas usando a mesma lógica descrita na tecnologia existente.
[0105] De acordo com um outro aspecto da invenção, um aparelho de codificação de vídeo é fornecido. O aparelho de codificação de vídeo (100) para codificar uma imagem do fluxo de vídeo, em que o aparelho de codificação de vídeo (100) compreende: uma unidade de reconstrução (114) configurada para reconstruir a imagem; e um dispositivo (120) como anteriormente descrito para processar a imagem reconstruída em uma imagem reconstruída filtrada.
[0106] Isso permite uma codificação da imagem muito eficiente e exata.
[0107] De acordo com um outro aspecto da invenção, um aparelho de decodificação de vídeo é fornecido. O aparelho de decodificação de vídeo (200) para decodificar uma imagem de um fluxo de vídeo codificado (303), em que o aparelho de decodificação de vídeo (200) compreende: uma unidade de reconstrução (214) configurada para reconstruir a imagem; e um dispositivo (220) como anteriormente descrito para processar a imagem reconstruída em uma imagem reconstruída filtrada.
[0108] Isso permite uma decodificação da imagem especialmente exata e eficiente.
[0109] Em um exemplo, o primeiro filtro (isto é, um filtro tap longo ou um filtro assimétrico ou um filtro tap assimétrico) é um filtro que usa 4 amostras de bloco superior para decisão de filtro em um lado da borda de bloco (tal como a borda de bloco horizontal sobreposta a uma fronteira de unidade de árvore de codificação (CTU)) e usa 8 amostras de bloco abaixo para decisão de filtro no outro lado da borda de bloco, e 3 amostras de bloco superior são modificadas em um lado da borda de bloco (borda de CU) enquanto 7 amostras de bloco abaixo são modificadas no outro lado da borda de bloco (borda de CU).
[0110] Isso permite uma desblocagem especialmente exata e eficiente.
[0111] De acordo com um outro aspecto a invenção se relaciona a um método de codificação para codificar uma imagem, compreendendo um método de desblocagem mostrado anteriormente ou adiante.
[0112] Isso permite uma codificação da imagem muito eficiente e exata.
[0113] De acordo com um outro aspecto a invenção se relaciona a um método de decodificação para decodificar uma imagem, compreendendo um método de desblocagem mostrado anteriormente ou adiante.
[0114] Isso permite uma decodificação da imagem muito eficiente e exata.
[0115] O método de acordo com o quarto aspecto da invenção pode ser realizado pelo aparelho de acordo com o primeiro aspecto da invenção. Além disso recursos e formas de implantação do método de acordo com o quarto aspecto da invenção resultam diretamente a partir da funcionalidade do aparelho de acordo com o primeiro aspecto da invenção e suas diferentes formas de implantação.
[0116] O método de acordo com o oitavo aspecto da invenção pode ser realizado pelo aparelho de acordo com o sétimo aspecto da invenção. Além disso recursos e formas de implantação do método de acordo com o décimo primeiro aspecto da invenção resultam diretamente da funcionalidade do aparelho de acordo com o sétimo aspecto da invenção e suas diferentes formas de implantação.
[0117] De acordo com um outro aspecto a invenção se relaciona a um aparelho para decodificar um fluxo de vídeo inclui um processador e uma memória. A memória é armazenar instruções que levam o processador a realizar o método de desblocagem de acordo com qualquer implantação precedente de qualquer aspecto precedente ou com qualquer aspecto precedente propriamente dito.
[0118] De acordo com um outro aspecto a invenção se relaciona a um aparelho para codificar um fluxo de vídeo inclui um processador e uma memória. A memória está armazenando instruções que levam o processador a realizar o método de desblocagem de acordo com qualquer implantação precedente do qualquer aspecto precedente ou do qualquer aspecto precedente propriamente dito.
[0119] De acordo com um outro aspecto, uma mídia de armazenamento legível por computador tendo armazenado na mesma instruções que quando executadas levam um ou mais processadores configurados a codificar dados de vídeo é proposta. As instruções levam o um ou mais processadores a realizar o método de desblocagem de acordo com qualquer implantação precedente de qualquer aspecto precedente ou com qualquer aspecto precedente propriamente dito.
[0120] De acordo com um outro aspecto, um produto de programa de computador com um código de programa para realizar o método de desblocagem de acordo com qualquer implantação precedente de qualquer aspecto precedente ou qualquer aspecto precedente propriamente dito quando o programa de computador roda em um computador, é fornecido.
[0121] Detalhes de uma ou mais modalidades são apresentados nos desenhos anexos e na descrição abaixo. Outros recursos, objetivos, e vantagens serão evidentes a partir da descrição, desenhos e reivindicações.
[0122] Nas seguintes modalidades da invenção são descritos em mais detalhe com referência às figuras e desenhos anexos, nos quais:
[0123] A Figura 1 é um diagrama de blocos mostrando um exemplo de um codificador de vídeo configurado para implantar modalidades da invenção;
[0124] A Figura 2 é um diagrama de blocos mostrando um exemplo de estrutura de um decodificador de vídeo configurado para implantar modalidades da invenção;
[0125] A Figura 3 é um diagrama de blocos mostrando um exemplo de um sistema de codificação de vídeo configurado para implantar modalidades da invenção;
[0126] A Figura 4A mostra dois blocos de codificação exemplificativos nos quais o bloco de codificação Q usa ferramentas sub-PU;
[0127] A Figura 4B mostra dois blocos de codificação exemplificativos nos quais uma borda de bloco horizontal entre dois blocos de codificação P e Q;
[0128] A Figura 5 mostra dois blocos de codificação exemplificativos e respectivos valores de amostra usados e modificados durante filtragem na qual uma borda vertical de bloco entre dois blocos de codificação P e Q;
[0129] A Figura 6 mostra uma primeira modalidade do filtro de desblocagem de acordo com modalidades da invenção;
[0130] A Figura 7 mostra um fluxograma ilustrando um método para determinar se um filtro tap longo irá ou não ser usado;
[0131] A Figura 8 mostra um fluxograma ilustrando um método para determinar se uma condição de filtro forte de HEVC deve ser satisfeita;
[0132] A Figura 9 mostra dois blocos de codificação exemplificativos e valores de amostra usados e modificados durante filtragem de acordo com uma outra modalidade da invenção;
[0133] A Figura 10 mostra um diagrama de fluxo retratando um processo exemplificativo para filtragem de desblocagem;
[0134] A Figura 11 mostra um diagrama de fluxo retratando um outro processo exemplificativo para filtragem de desblocagem;
[0135] A Figura 12 mostra um diagrama de fluxo retratando um outro processo exemplificativo para filtragem de desblocagem;
[0136] A Figura 13 mostra um diagrama de blocos simplificado de um aparelho 1300 que pode ser usado ou como o dispositivo de origem 310 ou como o dispositivo de destino 320 da Figura 3 ou ambos de acordo com uma modalidade exemplificativa;
[0137] A Figura 14 mostra um diagrama esquemático de um dispositivo para codificação de vídeo;
[0138] A Figura 15 mostra uma imagem 1500 compreendendo diversas unidades de árvore de codificação CTU1- CTU40;
[0139] A Figura 16A mostra uma borda horizontal sobreposta na fronteira de CTU de acordo com uma modalidade exemplificativa;
[0140] A Figura 16B mostra uma borda horizontal sobreposta em uma fronteira de CTB de luma horizontal de acordo com uma outra modalidade exemplificativa quando um buffer de linha (tal como buffer de 6 linhas) é aplicado;
[0141] A Figura 17 mostra uma borda horizontal sobreposta em uma fronteira de CTB de luma horizontal de acordo com uma outra modalidade exemplificativa quando um buffer de linha (tal como buffer de 4 linhas) é aplicado;
[0142] A Figura 18 mostra uma borda horizontal sobreposta em uma fronteira de CTB de croma horizontal de acordo com uma outra modalidade exemplificativa quando um buffer de linha (tal como buffer de 2 linhas) é aplicado; e
[0143] A Figura 19 mostra um diagrama esquemático de um dispositivo para desblocagem de bordas de bloco.
[0144] A Figura 20 é um diagrama de blocos mostrando um exemplo de estrutura de um sistema de suprimento de conteúdo 3100 o qual realiza a serviço de entrega de conteúdo.
[0145] A Figura 21 é um diagrama de blocos mostrando uma estrutura de um exemplo de um dispositivo terminal.
[0146] A seguir, referências numéricas idênticas se referem a recursos idênticos ou pelo menos funcionalmente equivalentes. Em parte, referências numéricas diferentes se referem às mesmas entidades foram usadas nas Figuras diferentes.
[0147] Na descrição a seguir, é feita referência às figuras anexas, que fazem parte da revelação, e que mostram, a título de ilustração, aspectos específicos de modalidades da invenção ou aspectos específicos em que modalidades da presente invenção podem ser usadas. Entende-se que 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.
[0148] Por exemplo, entende-se que uma revelaçã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 etapa ou pluralidade de etapas de método descritas (por exemplo, uma unidade realizando a uma ou uma pluralidade de etapas, ou uma pluralidade de unidades cada uma realizando uma ou mais da pluralidade de etapas), mesmo se tal uma ou mais unidades não forem explicitamente descritas ou ilustradas nas figuras. Por outro lado, por exemplo, se um aparelho específico for 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 da 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 pluralidade de etapas não forem explicitamente descritas ou ilustradas nas figuras. Além disso, entende-se que os recursos das várias modalidades exemplificativas e/ou aspectos descritos no presente documento podem ser combinados entre si, a menos que especificamente indicado de outra forma.
[0149] A codificação de vídeo tipicamente se refere ao processamento de uma sequência de imagens, que formam o vídeo ou sequência de vídeo. Em vez do termo "imagem", os termos "quadro" ou "imagem" podem ser usados como sinônimos no campo de codificação de vídeo. A codificação de vídeo compreende duas partes, codificação de vídeo e decodificação de vídeo. Codificação de vídeo é realizada no lado de fonte, tipicamente compreendendo processar (por exemplo, por compressão) as imagens de vídeo originais para reduzir o montante de dados exigidos 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 tipicamente 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, como será explicado posteriormente) devem ser entendidas como relacionadas ou à "codificação" ou à "decodificação" de imagens de vídeo. A combinação da parte de codificação e da parte de decodificação também é referida como CODEC (Codificação e Decodificação).
[0150] No caso de codificação de vídeo sem perdas, as imagens de vídeo originais podem ser reconstruídas, isto é, as imagens de vídeo reconstruídas têm a mesma qualidade que as imagens de vídeo originais (assumindo nenhuma perda de transmissão ou outra perda de dados durante o armazenamento ou transmissão). Em caso de codificação de vídeo com perdas, compressão adicional, por exemplo, por quantização, é realizada, para reduzir o montante de dados que representam as imagens de vídeo, que não podem ser completamente reconstruídas no decodificador, isto é, a qualidade das imagens de vídeo reconstruídas é mais baixa ou pior em comparação com a qualidade das imagens de vídeo originais.
[0151] Vários padrões de codificação de vídeo desde H.261 pertencem ao grupo de "codecs de vídeo híbridos com perdas" (isto é, combinam predição espacial e temporal no domínio de 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 é tipicamente partida em um conjunto de blocos não sobrepostos e a codificação é tipicamente realizada em um nível de bloco. Em outras palavras, no codificador o vídeo é tipicamente processado, isto é, codificado, em um nível de bloco (bloco de vídeo), por exemplo, por exemplo, usando-se predição espacial (imagem intra) e predição temporal (imagem inter) para gerar um bloco de predição, subtraindo o bloco de predição do bloco atual (bloco atualmente processado/a ser processado) para obter um bloco residual, transformando o bloco residual e quantizando o bloco residual no domínio de transformada para reduzir o montante de dados a serem transmitidos (compressão). No decodificador, o processamento inverso em comparação com o processo no codificador é aplicado ao bloco codificado ou compactado para reconstruir o bloco atual para representação. Além disso, o codificador duplica o loop de processamento do decodificador de modo que ambos irão gerar predições idênticas (por exemplo, predições intra e inter) e/ou reconstruções para processar, isto é, codificar, os blocos subsequentes.
[0152] Uma vez que processamento de imagem de vídeo (também referido como processamento de imagem de movimento) e processamento de imagem estática (o termo processamento compreendendo codificação), compartilham muitos conceitos e tecnologias ou ferramentas, a seguir o termo “imagem” é usado para se referir a uma imagem de vídeo da sequência de vídeo (como explicado acima) e/ou para a imagem estática para evitar repetições e distinções desnecessárias entre imagens de vídeo e imagens estáticas, onde não for necessário. No caso em que a descrição se refere somente a imagens estáticas (ou imagens estáticas), o termo “imagem estática” será usado.
[0153] A seguir modalidades de um codificador 100, um decodificador 200 e um sistema de codificação 300 são descritos com base nas Figuras 1 a 3 antes de descrever modalidades da invenção em mais detalhe com base nas Figuras 4 a 19.
[0154] A Figura 3 é um diagrama de blocos conceitual ou esquemático ilustrando uma modalidade de um sistema de codificação 300, por exemplo, um sistema de codificação de imagem 300, em que o sistema de codificação 300 compreende um dispositivo de origem 310 configurado para fornecer dados codificados 330, por exemplo, uma imagem codificada 330, por exemplo, para um dispositivo de destino 320 para decodificar os dados codificados 330.
[0155] O dispositivo de origem 310 compreende um codificador 100 ou unidade de codificação 100, e pode adicionalmente, isto é, opcionalmente,
compreender uma fonte de imagem 312, uma unidade de pré-processamento 314, por exemplo, uma imagem unidade de pré-processamento 314, e uma interface de comunicação ou unidade de comunicação 318.
[0156] A fonte de imagem 312 pode compreender ou ser qualquer tipo de dispositivo de captura de imagem, por exemplo, para capturar uma imagem do mundo real, e/ou qualquer tipo de um dispositivo gerador de imagem, por exemplo, um processador de computação gráfico para gerar uma imagem animada por computador, ou qualquer tipo de 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 seguir, todos esses espécies de imagens e qualquer outro tipo de imagem serão referidos como “imagem” ou “imagem”, a menos que especificamente descrito de outra forma, enquanto as prévias explicações com relação ao termo “imagem” abrangendo “imagens de vídeo” e “imagens estáticas” ainda se mantêm, a menos que explicitamente especificado de modo diferente.
[0157] Uma imagem (digital) é ou pode ser vista como um arranjo ou matriz de amostras bidimensional com valores de intensidade. Uma amostra no arranjo pode também ser referida como pixel (forma abreviada de elemento de imagem) ou um pel. O número de amostras na direção (ou eixo geométrico) horizontal e vertical do arranjo ou imagem define o tamanho e/ou resolução da imagem. Para representação de cor, tipicamente três componentes de cor são empregados, isto é, a imagem pode ser representada ou incluir três arranjos de amostra. Em formato RBG ou espaço de cores uma imagem compreende um arranjo de amostra vermelho, verde e azul correspondente. No entanto, em codificação de vídeo cada pixel é tipicamente representado em um formato de luminância/crominância ou espaço de cores, por exemplo, YCbCr, o qual compreende um componente de luminância indicado por Y (algumas vezes L também é usado alternativamente) e dois componentes de crominância indicados por Cb e Cr. O componente de luminância (ou abreviadamente luma) Y representa a intensidade de nível de brilho ou cinza (por exemplo, como em uma imagem em escala de cinza), enquanto os dois componentes de crominância (ou abreviadamente croma) Cb e Cr representam a cromaticidade ou componentes de informações de cor. Consequentemente, uma imagem em formato YCbCr compreende um arranjo de amostra de luminância de valores de amostra de luminância (Y), e dois arranjos de amostra de crominância de valores de crominância (Cb e Cr). Imagens em formato RGB podem ser convertidas ou transformadas em formato YCbCr e vice-versa, o processo é também conhecido como transformação ou conversão de cor. Se uma imagem é monocrômica, a imagem pode compreender somente um arranjo de amostra de luminância.
[0158] A fonte de imagem 312 pode ser, por exemplo, uma câmera para capturar uma imagem, uma memória, por exemplo, uma memória de imagem, compreendendo ou armazenando uma imagem previamente capturada ou gerada e/ou qualquer tipo de interface (interna ou externa) para obter ou receber uma imagem. A câmera pode ser, por exemplo, uma câmera local ou integrada que é integrada no dispositivo de origem, a memória pode ser uma memória local ou integrada, por exemplo, integrada no dispositivo de origem. A interface pode ser, por exemplo, uma interface externa para receber uma imagem de uma fonte de vídeo externa, por exemplo, um dispositivo de captura de imagem externa como uma câmera, uma memória externa ou um dispositivo externo de geração de imagem, por exemplo, um computador gráfico externo processador, computador ou servidor. A interface pode ser qualquer tipo de interface, por exemplo, uma interface com fio ou sem fio, uma interface óptica, de acordo com qualquer protocolo de interface próprio ou padronizado. A interface para obter os dados de imagem 312 pode ser a mesma interface ou uma parte da interface de comunicação 318.
[0159] Para distinguir da unidade de pré-processamento 314 e do processamento realizado pela unidade de pré-processamento 314, a imagem ou dados de imagem 313 também podem ser referidos como imagem bruta ou dados de imagem brutos 313.
[0160] A unidade de pré-processamento 314 está configurada para receber os dados de imagem (brutos) 313 e para realizar pré-processamento nos dados de imagem 313 para obter uma imagem pré-processada 315 ou dados de imagem pré-processados 315. Pré-processamento realizado pela unidade de pré-processamento 314 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.
[0161] O codificador 100 é configurado para receber os dados de imagem pré-processados 315 e fornecer dados de imagem codificados 171 (detalhes adicionais serão descritos abaixo, por exemplo, com base na Figura 1).
[0162] A interface de comunicação 318 do dispositivo de origem 310 pode ser configurada para receber os dados de imagem codificados 171 e para transmitir os mesmos diretamente para um outro dispositivo, ou para processar os dados de imagem codificados 171 para respectivamente antes de armazenar os dados codificados 330 e/ou transmitir os dados codificados 330 para um outro dispositivo, por exemplo, o dispositivo de destino 320 ou qualquer outro dispositivo para decodificação ou armazenamento.
[0163] O dispositivo de destino 320 compreende um decodificador 200 ou unidade de decodificação 200 e pode, adicionalmente, isto é, opcionalmente, compreender uma interface de comunicação ou unidade de comunicação 322, uma unidade de pós-processamento 326 e um dispositivo de exibição 328.
[0164] A interface de comunicação 322 do dispositivo de destino 320 é configurada para receber os dados de imagem codificados 171 ou os dados codificados 330, por exemplo, diretamente a partir do dispositivo de origem 310 ou a partir de qualquer outra fonte, por exemplo, uma memória, por exemplo, uma memória de dados de imagem codificados.
[0165] A interface de comunicação 318 e a interface de comunicação 222 podem ser configuradas para transmitir respectivamente ou receber os dados de imagem codificados 171 ou dados codificados 330 por meio de um enlace de comunicação direta entre o dispositivo de origem 310 e o dispositivo de destino 320, por exemplo, uma conexão direta com fio ou sem fio, ou por meio 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.
[0166] A interface de comunicação 318 pode ser, por exemplo, configurada para empacotar os dados de imagem codificados 171 em um formato apropriado, por exemplo, pacotes, para transmissão por um enlace de comunicação ou rede de comunicação, e pode adicionalmente compreender proteção de perda de dados e recuperação de perda de dados.
[0167] A interface de comunicação 322, formando a contraparte da interface de comunicação 318, pode ser, por exemplo, configurada para desempacotar os dados codificados 330 para obter os dados de imagem codificados 171 e pode adicionalmente ser configurada para realizar proteção de perda de dados e recuperação de perda de dados, por exemplo, compreendendo ocultação de erro.
[0168] Ambas, a interface de comunicação 318 e a interface de comunicação 322 podem ser configuradas como interfaces de comunicação unidirecional conforme indicado pela seta para os dados de imagem codificados 330 na Figura 3 apontando do dispositivo de origem 310 para o dispositivo de destino 320, ou interfaces de comunicação bidirecionais, e podem ser configuradas, por exemplo, para enviar e receber mensagens, por exemplo para estabelecer uma conexão, para confirmar e/ou reenviar dados perdidos ou atrasados incluindo dados de imagem, e trocar quaisquer outras informações relacionadas ao enlace de comunicação e/ou transmissão de dados, por exemplo, transmissão de dados de imagem codificados.
[0169] O decodificador 200 é configurado para receber os dados de imagem codificados 171 e fornecer dados de imagem decodificados 231 ou uma imagem decodificada 231 (detalhes adicionais serão descritos abaixo, por exemplo, com base na Figura 2).
[0170] O pós-processador 326 do dispositivo de destino 320 é configurado para pós-processar os dados de imagem decodificados 231, por exemplo, a imagem decodificada 231, para obter dados de imagem 327 pós- processados, por exemplo, uma imagem pós-processada 327. O pós- processamento realizado pela unidade de pós-processamento 326 pode compreender, por exemplo, conversão de formato de cor (por exemplo, de YCbCr para RGB), correção de cor, corte ou nova amostragem, ou qualquer outro processamento, por exemplo, para preparar os dados 231 de imagem decodificados para apresentação, por exemplo, pelo dispositivo de exibição 328.
[0171] O dispositivo de exibição 328 do dispositivo de destino 320 está configurado para receber os dados de imagem pós-processados 327 para exibir a imagem, por exemplo, para um usuário ou visualizador. O dispositivo de exibição 328 pode ser ou compreender qualquer tipo de visor para representar a imagem reconstruída, por exemplo, um visor ou monitor integrado ou externo.
Os visores podem, por exemplo, compreender tubos de raio catódico (CRT), visores de cristal líquido (LCD), visores de plasma, visores de diodos emissores de luz orgânica (OLED), ou qualquer outro tipo de visor … beamer, holograma (3D)...
[0172] Embora a Figura 3 represente o dispositivo de origem 310 e o dispositivo de destino 320 como dispositivos separados, modalidades de dispositivos podem também compreender ambos ou ambas as funcionalidades, o dispositivo de origem 310 ou funcionalidade correspondente e o dispositivo de destino 320 ou funcionalidade correspondente. Em tais modalidades o dispositivo de origem 310 ou funcionalidade correspondente e o dispositivo de destino 320 ou funcionalidade correspondente podem ser implantados usando o mesmo hardware e/ou software ou por hardware e/ou software separados ou qualquer combinação dos mesmos.
[0173] 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 310 e/ou do dispositivo de destino 320 como mostrado na Figura 3 pode variar dependendo do dispositivo e do aplicativo efetivos.
[0174] Portanto, o dispositivo de origem 310 e o dispositivo de destino 320 como mostrados na Figura 3 são somente exemplos de modalidades da invenção e as modalidades da invenção não são limitadas àquelas mostradas na Figura 3.
[0175] O dispositivo de origem 310 e o dispositivo de destino 320 podem compreender qualquer um de uma larga faixa de dispositivos, incluindo qualquer tipo de dispositivos que cabem na mão ou estacionários, por exemplo, computadores do tipo notebook ou laptop, telefones móveis, smartphones, tablets ou computadores tipo tablet, câmeras, computadores de mesa, set-top boxes, televisões, dispositivos de exibição, reprodutores de mídia digital, consoles de vídeo game, dispositivos para streaming de vídeo, dispositivo receptor de broadcast, ou semelhantes(também servidores e estações de trabalho para codificação/decodificação profissional em larga escala, por exemplo, entidades de rede) e pode usar nenhum ou qualquer tipo de sistema operacional.
[0176] A Figura 1 mostra um diagrama de blocos esquemático/conceitual de uma modalidade de um codificador 100, por exemplo, um codificador de imagem 100, o qual compreende uma entrada 102, uma unidade de cálculo residual 104, uma unidade de transformação 106, uma unidade de quantização 108, um unidade de quantização inversa 110, e unidade de transformação inversa 112, uma unidade de reconstrução 114, um buffer 118, um filtro loop 120, um buffer de imagem decodificada (DPB) 130, uma unidade de predição 160 [uma unidade de estimação inter 142, uma unidade de predição inter 144, uma unidade de estimação intra 152, uma unidade de predição intra 154,] uma unidade de seleção de modo 162, uma unidade de codificação de entropia 170, e uma saída 172. Um codificador de vídeo 100 como mostrado na Figura 1 pode também ser referido como codificador de vídeo híbrido ou um codificador de vídeo de acordo com a codec de vídeo híbrido.
[0177] Por exemplo, a unidade de cálculo residual 104, a unidade de transformação 106, a unidade de quantização 108, e a unidade de codificação de entropia 170 formam um sinal direto do codificador 100, enquanto que, por exemplo, a unidade de quantização inversa 110, a unidade de transformação inversa 112, a unidade de reconstrução 114, o buffer 118, o filtro loop 120, o buffer de imagem decodificada (DPB) 130, a unidade de predição inter 144, e a unidade de predição intra 154 formam um percurso de sinal retroativo do codificador, em que o percurso de sinal retroativo do codificador corresponde ao percurso de sinal do decodificador (ver decodificador 200 na Figura 2).
[0178] O codificador é configurado para receber, por exemplo, pela entrada 102, uma imagem 101 ou um bloco de imagem 103 da imagem 101, por exemplo, imagem de uma sequência de imagens formando um vídeo ou sequência de vídeo. O bloco de imagem 103 pode também ser referido como bloco de imagem atual ou bloco de imagem a ser codificado, e a imagem 101 como imagem atual ou imagem a ser codificada (em particular em codificação de vídeo para distinguir a imagem atual de outras imagens, por exemplo, imagens anteriormente codificadas e/ou decodificadas da mesma sequência de vídeo, isto é, a sequência de vídeo que também compreende a imagem atual).
[0179] Modalidades do codificador 100 podem compreender uma unidade de partição (não retratada na Figura 1), por exemplo, a qual pode também ser referida como unidade de partição de imagem, configurada para partir a imagem 103em uma pluralidade de blocos, por exemplo, blocos como o bloco 103, tipicamente em uma pluralidade de blocos não sobrepostos. A unidade de partição pode ser configurada para usar o mesmo tamanho de bloco para todas as imagens da sequência de vídeo e da grade correspondente definindo o tamanho de bloco, ou para mudar o tamanho de bloco entre imagens ou subconjuntos ou grupos de imagens, e partir cada imagem nos correspondentes blocos.
[0180] Como a imagem 101, o bloco 103 novamente é ou pode ser visto como um arranjo ou matriz de amostras bidimensional com valores de intensidade (valores de amostra), embora de menor dimensão que a imagem
101. Em outras palavras, o bloco 103 pode compreender, por exemplo, um arranjo de amostra (por exemplo, um arranjo luma em caso de uma imagem monocrômica 101) ou três arranjos de amostra (por exemplo, um arranjo luma e dois arranjos croma em caso de uma imagem a cores 101) ou qualquer outro número e/ou tipo de arranjos dependendo do formato de cor aplicado. O número de amostras na direção (ou eixo geométrico) horizontal e vertical do bloco 103 define o tamanho do bloco 103.
[0181] O codificador 100 conforme mostrado na Figura 1 está configurado para codificar a imagem 201 bloco a bloco, por exemplo, a codificação e a predição são realizadas por bloco 203.
[0182] A unidade de cálculo residual 104 pode ser configurada para calcular um bloco residual 105 com base no bloco de imagem 103 e um bloco de predição 165 (detalhes adicionais sobre o bloco de predição 165 são fornecidos adiante), por exemplo, subtraindo-se valores de amostra do bloco de predição 165 dos valores de amostra do bloco de imagem 103, amostra por amostra (pixel por pixel) para obter o bloco residual 105 no domínio da amostra.
[0183] A unidade de transformação 106 é configurada para aplicar uma transformação, por exemplo, uma transformada de frequência espacial ou uma transformada espacial linear, por exemplo, uma transformada discreta de cosseno (DCT) ou transformada discreta de seno (DST), nos valores de amostra do bloco residual 105 para obter coeficientes transformados 107 em um domínio da transformada. Os coeficientes transformados 107 podem também ser referidos como coeficientes residuais transformados e representam o bloco residual 105 no domínio da transformada.
[0184] A unidade de transformação 106 pode ser configurada para aplicar aproximações de número inteiro de DCT/DST, tais como as transformadas de núcleo especificadas para H.265/HEVC. Comparada a uma transformada DCT ortonormal, tais aproximações de número inteiro são tipicamente escalonadas por um determinado fator. A fim de preservar a norma do bloco residual que é processado por transformadas diretas e inversas, fatores de escalonamento adicionais são aplicados como parte do processo de transformada. Os fatores de escalonamento são tipicamente escolhidos com base em determinadas restrições como fatores de escalonamento sendo uma potência de dois para operações de deslocamento, profundidade de bit dos coeficientes de transformada, compensação entre exatidão e custos de implantação, etc. Fatores específicos de escalonamento são, por exemplo, especificados para a transformada inversa, por exemplo, pela unidade de transformação inversa 212 em um decodificador 200 (e pela transformada inversa correspondente, por exemplo, pela unidade de transformação inversa 112 em um codificador 100) e fatores de escalonamento correspondentes para a transformada direta, por exemplo, pela unidade de transformação 106, em um codificador 100 podem ser especificados de acordo.
[0185] A unidade de quantização 108 é configurada para quantizar os coeficientes transformados 107 para obter coeficientes quantizados 109, por exemplo, aplicando-se quantização escalar ou quantização de vetor. Os coeficientes quantizados 109 podem também ser referidos como coeficientes residuais quantizados 109. Por exemplo, para quantização escalar, escalonamento diferente pode ser aplicado para conseguir quantização mais fina ou mais grosseira. Tamanhos de etapa de quantização menores correspondem a quantização mais fina, enquanto que 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 ser, por exemplo, um índice para um conjunto predefinido de tamanhos de etapa de quantização aplicáveis. Por exemplo, parâmetros de quantização pequenos podem corresponder a quantização fina (tamanhos de etapa de quantização pequenos) e parâmetros de quantização grandes podem corresponder a quantização grosseira (tamanhos de etapa de quantização grandes) ou vice-versa. A quantização pode incluir divisão por um tamanho de etapa de quantização e correspondente ou desquantização, por exemplo, pela unidade de quantização inversa 110, pode incluir multiplicação pelo tamanho de etapa de quantização.
[0186] Modalidades de acordo com HEVC ou VVC, podem ser configurados para usar um parâmetro de quantização para determinar o tamanho de etapa de quantização. De modo geral, 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 rearmazenar a norma do bloco residual, a qual poderia ser modificada em virtude do escalonamento usado na aproximação de ponto fixo da equação para tamanho de etapa de quantização e parâmetro de quantização. Em um exemplo de implantação, o escalonamento da transformada inversa e a desquantização poderiam ser combinados. Alternativamente, tabelas de quantização personalizadas podem ser usadas e sinalizadas de um codificador para um decodificador, por exemplo, em um fluxo de bits. A quantização é uma operação com perda, em que a perda aumenta com tamanhos de etapa de quantização crescentes.
[0187] Modalidades do codificador 100 (ou respectivamente da unidade de quantização 108) podem ser configuradas para emitir o esquema de quantização e tamanho de etapa de quantização, por exemplo, por meio do parâmetro de quantização correspondente, de modo que um decodificador 200 possa receber e aplicar a correspondente quantização inversa. Modalidades do codificador 100 (ou da unidade de quantização 108) podem ser configuradas para emitir o esquema de quantização e o tamanho de etapa de quantização, por exemplo, diretamente ou codificado por entropia por meio da unidade de codificação de entropia 170 ou qualquer outra unidade de codificação de entropia.
[0188] A unidade de quantização inversa 110 é configurada para aplicar a quantização inversa da unidade de quantização 108 nos coeficientes quantizados para obter coeficientes desquantizados 111, por exemplo, aplicando-se o inverso do esquema de quantização aplicado pela unidade de quantização 108 com base no ou usando o mesmo tamanho de etapa de quantização que a unidade de quantização 108. Os coeficientes desquantizados 111 podem também ser referidos como coeficientes residuais desquantizados
111 e correspondem - embora tipicamente não idênticos aos coeficientes de transformada devido à perda por quantização - aos coeficientes de transformada
108.
[0189] A unidade de transformação inversa 112 é configurada para aplicar a transformação inversa da transformação aplicada pela unidade de transformação 106, por exemplo, uma transformada inversa discreta de cosseno (DCT) ou transformada inversa discreta de seno (DST) para obter um bloco transformado inverso 113 no domínio da amostra. O bloco transformado inverso 113 pode também ser referido como bloco desquantizado transformado inverso 113 ou bloco residual transformado inverso 113.
[0190] A unidade de reconstrução 114 é configurada para combinar o bloco de transformada inversa 113 e o bloco de predição 165 para obter um bloco reconstruído 215 no domínio da amostra, por exemplo, adicionando-se por amostra os valores de amostra do bloco residual decodificado 113 e os valores de amostra do bloco de predição 165.
[0191] A unidade de buffer 116 (ou abreviadamente “buffer” 116), por exemplo, um buffer de linha 116, é configurada para armazenar em buffer ou armazenar o bloco reconstruído e os respectivos valores de amostra, por exemplo, para estimação intra e/ou predição intra. Em modalidades adicionais, o codificador pode ser configurado para usar blocos reconstruídos não filtrados e/ou os respectivos valores de amostra armazenados na unidade de buffer 116 para qualquer tipo de estimação e/ou predição.
[0192] Modalidades do codificador 100 podem ser configuradas de modo que, por exemplo, a unidade de buffer 116 seja não somente usada para armazenar os blocos reconstruídos 115 para estimação intra 152 e/ou predição intra 154, mas também para a unidade de filtro loop 120 (não mostrada na Figura 1), e/ou de modo que, por exemplo, a unidade de buffer 116 e a unidade de buffer de imagem decodificada 130 forma um (1) buffer. Além disso modalidades podem ser configuradas para usar blocos filtrados 121 e/ou blocos ou amostras a partir do buffer de imagem decodificada 130 (ambos não mostrados na Figura 1) como entrada ou base para estimação intra 152 e/ou predição intra 154.
[0193] A unidade de filtro loop 120 (ou abreviadamente “filtro loop” 120), é configurada para filtrar o bloco reconstruído 115 para obter um bloco filtrado 121, por exemplo, aplicando-se um filtro de desblocagem de desvio adaptável à amostra (SAO) ou outros filtros, por exemplo, filtros de nitidez ou suavização ou filtros colaborativos. O bloco filtrado 121 pode também ser referido como bloco filtrado reconstruído 121. O filtro loop 120 é a seguir também referido como filtro de desblocagem. Além disso detalhes da unidade de filtro loop 120 serão descritos abaixo, por exemplo, com base na Figura 6 ou 7 ou Figura10 à Figura12.
[0194] Modalidades da unidade de filtro loop 120 podem compreender (não mostradas na Figura 1) uma unidade de análise de filtro e uma unidade de filtro efetiva, em que a unidade de análise de filtro é configurada para determinar parâmetros de filtro loop para o filtro efetivo. A unidade de análise de filtro pode ser configurada para aplicar parâmetros de filtro predeterminados fixos para o filtro loop efetivo, selecionar de modo adaptável parâmetros de filtro a partir de um conjunto de parâmetros de filtro predeterminados ou calcular de modo adaptável parâmetros de filtro para o filtro loop efetivo.
[0195] Modalidades da unidade de filtro loop 120 podem compreender (não mostrado na Figura 1) um ou uma pluralidade de filtros (componentes de filtro loop/subfiltros), por exemplo, um ou mais de diferentes espécies ou tipos de filtros, por exemplo, conectados em série ou em paralelo ou em qualquer combinação dos mesmos, em que cada um dos filtros pode compreender individualmente ou em conjunto com outros filtros da pluralidade de filtros uma unidade de análise de filtro para determinar os respectivos parâmetros de filtro loop, por exemplo, como descrito no parágrafo anterior.
[0196] Modalidades do codificador 100 (com respeito à unidade de filtro loop 120) podem ser configuradas para emitir os parâmetros de filtro loop, por exemplo, diretamente ou codificados por entropia por meio da unidade de codificação de entropia 170 ou qualquer outra unidade de codificação de entropia, de modo que, por exemplo, um decodificador 200 possa receber e aplicar os mesmos parâmetros de filtro loop para decodificação.
[0197] O buffer de imagem decodificada (DPB) 130 é configurado para receber e armazenar o bloco filtrado 121. O buffer de imagem decodificada 130 pode ser adicionalmente configurado para armazenar outros blocos filtrados anteriormente, por exemplo, blocos reconstruídos e filtrados anteriormente 121, da mesma imagem atual ou de diferentes imagens, por exemplo, imagens reconstruídas anteriormente, e pode fornecer imagens completas anteriormente reconstruídas, isto é, decodificadas, (e blocos e amostras de referência correspondentes) e/ou uma imagem atual parcialmente reconstruída (e blocos e amostras de referência correspondentes), por exemplo, para estimação inter e/ou predição inter.
[0198] Outras modalidades da invenção podem também ser configuradas para usar os blocos filtrados anteriormente e correspondentes valores de amostra filtrados do buffer de imagem decodificada 130 para qualquer tipo de estimação ou predição, por exemplo, estimação e predição intra e inter.
[0199] A unidade de predição 160, também referida como unidade de predição de bloco 160, é configurada para receber ou obter o bloco de imagem 103 (bloco de imagem atual 103 da imagem atual 101) e decodificada ou pelo menos dados de imagem reconstruídos, por exemplo, amostras de referência da mesma imagem (atual) a partir do buffer 116 e/ou dados de imagem decodificados 231 a partir de um ou uma pluralidade de imagens decodificadas anteriormente a partir do buffer de imagem decodificada 130, e para processar tais dados para predição, isto é, para fornecer um bloco de predição 165, que pode ser um bloco predito inter 145 ou um bloco predito intra 155.
[0200] A unidade de seleção de modo 162 pode ser configurada para selecionar um modo de predição (por exemplo, um modo de predição intra ou inter) e/ou um bloco de predição correspondente 145 ou 155 para ser usado como bloco de predição 165 para o cálculo do bloco residual 105 e para a reconstrução do bloco reconstruído 115.
[0201] Modalidades da unidade de seleção de modo 162 podem ser configuradas para selecionar o modo de predição (por exemplo, a partir daqueles suportados pela unidade de processamento de predição 160), que fornece o melhor pareamento ou, em outras palavras, o residual mínimo (residual mínimo significa melhor compressão para transmissão ou armazenamento), ou uma sobrecarga de sinalização mínima (sobrecarga de sinalização mínima significa melhor compressão para transmissão ou armazenamento), ou que considera ou equilibra ambos. A unidade de seleção de modo 162 pode ser configurada para determinar o modo de predição com base em otimização de distorção de taxa (RDO), isto é, selecionar o modo de predição que fornece uma otimização de distorção de taxa mínima ou cuja distorção de taxa associada pelo menos atende um critério de seleção de modo de predição.
[0202] A seguir, o processamento de predição (por exemplo, unidade de processamento de predição 160 e seleção de modo (por exemplo, pela unidade de seleção de modo 162) realizado por um codificador exemplificativo 100 será explicado em mais detalhe.
[0203] Como descrito acima, codificador 100 é 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, por exemplo, modos de predição intra e/ou modos de predição inter.
[0204] O conjunto de modos de predição intra pode compreender 32 diferentes modos de predição intra, por exemplo, modos não direcionais tais como modo DC (ou médio) e modo plano, ou modos direcionais, por exemplo, como definidos em H.264, ou pode compreender 65 diferentes modos de predição intra, por exemplo, modos não direcionais como modo DC (ou médio) e modo plano, ou modos direcionais, por exemplo, como definidos como definido em H.265.
[0205] O conjunto de (ou os possíveis) modos de predição inter dependem das imagens de referência disponíveis (isto é, imagens prévias pelo menos parcialmente decodificadas, por exemplo, armazenadas em DBP 230) e outros parâmetros de predição inter, por exemplo, se toda a imagem de referência ou somente uma parte, por exemplo, uma área de janela de busca em torno da área do bloco atual, da imagem de referência é usada para buscar um bloco de referência de melhor pareamento e/ou, por exemplo, se interpolação de pixel é aplicada, por exemplo, interpolação meio/semi pel e/ou quarto de pel, ou não.
[0206] Além dos modos de predição acima, o modo de pulo e/ou o modo direto podem ser aplicados.
[0207] A unidade de predição 160 pode ser configurada adicionalmente para partir o bloco 103 em partições de bloco menores ou sub- blocos, por exemplo, iterativamente usando partição de árvore quaternária (QT), partição de árvore binária (BT) ou partição de árvore tripla (TT) ou qualquer combinação das mesmas, e para realizar, por exemplo, a predição para cada uma das partições de bloco ou sub-blocos, em que a seleção de modo compreende a seleção da estrutura de árvore do bloco partido 103 e os modos de predição aplicados a cada uma das partições de bloco ou sub-blocos.
[0208] A unidade de estimação inter 142, também referida como unidade de estimação de imagem inter 142, é configurada para receber ou obter o bloco de imagem 103 (bloco de imagem atual 103 da imagem atual 101) e uma imagem decodificada 231, ou pelo menos um ou uma pluralidade de blocos reconstruídos anteriormente, por exemplo, blocos reconstruídos de um ou uma pluralidade de outras/diferentes imagens decodificadas anteriormente 231, para estimação inter (ou “estimação de imagem inter”). Por exemplo, uma sequência de vídeo pode compreender a imagem atual e as imagens decodificadas anteriormente 231, ou em outras palavras, a imagem atual e as imagens decodificadas anteriormente 231 podem ser parte de ou formam uma sequência de imagens formando uma sequência de vídeo.
[0209] O codificador 100 pode, por exemplo, ser configurado para selecionar um bloco de referência a partir de uma pluralidade de blocos de referência das mesmas ou diferentes imagens da pluralidade de outras imagens e fornecer uma imagem de referência (ou índice de imagem de referência, …) e/ou um desvio (desvio espacial) entre a posição (coordenadas x, y) do bloco de referência e a posição do bloco atual como parâmetros de estimação inter 143 para a unidade de predição inter 144. Esse desvio é também chamado vetor de movimento (MV). A estimação inter é também referida como estimação de movimento (ME) e a predição inter também predição de movimento (MP).
[0210] A unidade de predição inter 144 é configurada para obter, por exemplo, receber, um parâmetro de predição inter 143 e para realizar predição inter com base em ou usando o parâmetro de predição inter 143 para obter um bloco de predição inter 145.
[0211] Embora a Figura 1 mostre duas unidades (ou etapas) distintas para a codificação de modo inter, a saber, estimação inter 142 e predição inter 152, ambas as funcionalidades podem ser realizadas uma vez que uma (estimação inter) exige/compreende calcular um/o bloco de predição inter, isto é, o ou um “tipo de” predição inter 154) , por exemplo, testando-se todos os possíveis ou um subconjunto predeterminado de possíveis modos de predição inter iterativamente enquanto armazena o atualmente melhor modo de predição inter e respectivo bloco de predição inter, e usando o atualmente melhor modo de predição inter e respectivo bloco de predição inter como o parâmetro de predição inter 143 e bloco de predição inter 145 (finais) sem realizar uma outra vez a predição inter 144.
[0212] A unidade DE estimação intra 152 é configurada para obter, por exemplo, receber, o bloco de imagem 103 (bloco de imagem atual) e um ou uma pluralidade de blocos reconstruídos anteriormente, por exemplo, blocos vizinhos reconstruídos, da mesma imagem para estimação intra. O codificador 100 pode, por exemplo, ser configurado para selecionar um modo de predição intra a partir de uma pluralidade de modos de predição intra (predeterminados) e fornecer o mesmo como parâmetro de estimação intra 153 para uma unidade de predição intra 154.
[0213] Modalidades do codificador 100 podem ser configuradas para selecionar o modo de predição intra com base em um critério de otimização, por exemplo, residual mínimo (por exemplo, o modo de predição intra fornecendo o bloco de predição 155 mais similar ao bloco de imagem atual 103) ou distorção de taxa mínima.
[0214] A unidade de predição intra 154 é configurada para determinar com base no parâmetro de predição intra 153, por exemplo, o modo de predição intra selecionado 153, o bloco de predição intra 155.
[0215] Embora a Figura 1 mostre duas unidades (ou etapas) distintas para a codificação de modo intra, a saber, estimação intra 152 e predição intra 154, ambas as funcionalidades podem ser realizadas uma vez que uma (estimação intra) exige/compreende calcular o bloco de predição intra, isto é, a ou um “tipo de” predição intra 154) , por exemplo, testando-se todos os possíveis ou um subconjunto predeterminado de possíveis modos de predição intra iterativamente enquanto armazena o atualmente melhor modo de predição intra e respectivo bloco de predição intra, e usando o atualmente melhor modo de predição intra e respectivo bloco de predição intra como o parâmetro de predição intra (final) 153 e bloco de predição intra 155 sem realizar uma outra vez a predição intra 154.
[0216] A unidade de codificação de entropia 270 é configurada para aplicar um esquema de algoritmo ou esquema de codificação de entropia (por exemplo, um esquema de codificação de comprimento variável (VLC), um esquema VLC adaptável a contexto (CALVC), um esquema de codificação aritmética, uma codificação aritmética binária adaptável a contexto (CABAC)),
nos coeficientes residuais quantizados 109, parâmetros de predição inter143, parâmetro de predição intra 153, e/ou parâmetros de filtro loop, individualmente ou em conjunto (ou não de todo) para obter dados de imagem codificados 171 que podem ser emitidos pela saída 172, por exemplo, na forma de um fluxo de bits codificado 171.
[0217] Outras variações estruturais do codificador de vídeo 100 podem ser usadas para codificar o fluxo de vídeo. Por exemplo, um codificador com base em não transformada 20 pode quantizar o sinal residual diretamente sem a unidade de processamento de transformada para determinados blocos ou quadros. Em uma outra implantação, um codificador 100 pode ter a unidade de quantização e a unidade de quantização inversa combinadas em uma única unidade.
[0218] A Figura 2 mostra um decodificador de vídeo exemplificativo 200 configurado para receber dados de imagem codificados (por exemplo, fluxo de bits codificados) 171, por exemplo, codificado pelo codificador 100, para obter uma imagem decodificada 231.
[0219] O decodificador 200 compreende uma entrada 202, uma unidade de decodificação de entropia 204, uma unidade de quantização inversa 210, uma unidade de transformação inversa 212, uma unidade de reconstrução 214, um buffer 216, um filtro loop 220, um buffer de imagem decodificada 230, uma unidade de predição 260, uma unidade de predição inter 244, uma unidade de predição intra 254, uma unidade de seleção de modo 260 e uma saída 232.
[0220] A unidade de decodificação de entropia 204 é configurada para realizar decodificação de entropia nos dados de imagem codificados 171 para obter, por exemplo, coeficientes quantizados 209 e/ou parâmetros de codificação decodificados (não mostrado na Figura 2), por exemplo, (decodificado) qualquer um dos ou todos dentre parâmetros de predição inter 143, parâmetro de predição intra 153, e/ou parâmetros de filtro loop.
[0221] Em modalidades do decodificador 200, a unidade de quantização inversa 210, a unidade de transformação inversa 212, a unidade de reconstrução 214, o buffer 216, o filtro loop 220, o buffer de imagem decodificada 230, a unidade de predição 260 e a unidade de seleção de modo 260 são configuradas para realizar o processamento inverso do codificador 100 (e as respectivas unidades funcionais) para decodificar os dados de imagem codificados 171.
[0222] Em particular, a unidade de quantização inversa 210 pode ser idêntica em função à unidade de quantização inversa 110, a unidade de transformação inversa 212 pode ser idêntica em função à unidade de transformação inversa 112, a unidade de reconstrução 214 pode ser idêntica em função unidade de reconstrução 114, o buffer 216 pode ser idêntico em função ao buffer 116, o filtro loop 220 pode ser idêntico em função ao filtro loop 120 (com relação ao filtro loop efetivo como o filtro loop 220 tipicamente não compreende uma unidade de análise de filtro para determinar os parâmetros de filtro com base na imagem original 101 ou bloco 103 mas recebe (explicitamente ou implicitamente) ou obtém os parâmetros de filtro usados para codificação, por exemplo, a partir da unidade de decodificação de entropia 204), e o buffer de imagem decodificada 230 pode ser idêntico em função a o buffer de imagem decodificada 130.
[0223] A unidade de predição 260 pode compreender uma unidade de predição inter 244 e uma unidade de predição inter 254, em que a unidade de predição inter 244 pode ser idêntica em função à unidade de predição inter 144, e a unidade de predição inter 254 pode ser idêntica em função à unidade de predição intra 154. A unidade de predição 260 e a unidade de seleção de modo 262 são tipicamente configuradas para realizar a predição de bloco e/ou obter o bloco predito 265 a partir dos dados codificados 171 somente (sem quaisquer informações adicionais sobre a imagem original 101) e para receber ou obter (explicitamente ou implicitamente) os parâmetros de predição 143 ou 153 e/ou as informações sobre o modo de predição selecionado, por exemplo, a partir da unidade de decodificação de entropia 204.
[0224] O decodificador 200 é configurado para emitir a imagem decodificada 230, por exemplo, por meio da saída 232, para apresentação ou visualização para um usuário.
[0225] Embora modalidades da invenção tenham sido descritas principalmente com base em codificação de vídeo, deve ser notado que modalidades do codificador 100 e decodificador 200 (e de modo correspondente o sistema 300) podem também ser configuradas para processamento ou codificação de imagem estática, isto é, o processamento ou codificação de uma imagem individual independente de qualquer imagem precedente ou consecutiva como em codificação de vídeo. Em geral somente estimação inter 142, predição inter 144, 244 não são disponíveis no caso em que a codificação de processamento de imagem é limitada a uma única imagem 101. A maioria das se não todas as outras funcionalidades (também referidas como ferramentas ou tecnologias) do codificador de vídeo 100 e decodificador de vídeo 200 pode igualmente ser usada para imagem estáticas, por exemplo, partição, transformação (escalonamento) 106, quantização 108, unidade de quantização inversa 110, transformação inversa 112, estimação intra 142, predição inter 154, 254 e/ou filtragem loop 120, 220, e codificação de entropia 170 e decodificação de entropia 204.
[0226] A presente invenção lida com os mecanismos interiores do filtro de desblocagem, também referidos como filtro loop na Figura 1 e na Figura
2. Outros detalhes da unidade de filtro loop 120, 220 serão descritos abaixo, por exemplo, com respeito à Figura 4 até a Figura19.
[0227] Esquemas de codificação de vídeo tais como H.264/AVC e HEVC são projetados seguindo o princípio de codificação de vídeo híbrida com base em bloco. Usando esse princípio, uma imagem é primeiramente partida em blocos e então cada bloco é predito usando-se predição intra ou inter. Esses blocos são codificados relativamente a partir dos blocos vizinhos e se aproximam do sinal original com alguma similaridade. Uma vez que blocos codificados somente se aproximam do sinal original, a diferença entre as aproximações pode causar descontinuidades nas fronteiras de blocos predição e de transformada. Essas descontinuidades são atenuadas pelo filtro de desblocagem. HEVC substitui a estrutura de macrobloco de H.264/AVC com o conceito de unidade de árvore de codificação (CTU) de tamanho máximo de 64x64 pixels. A CTU pode adicionalmente ser partida em um esquema de decomposição de árvore quaternária em unidades de codificação (CU) menores, que podem ser subdividas para um tamanho mínimo de 8 x 8 pixels. HEVC também introduz os conceitos de blocos de predição (PB) e blocos de transformada (TB).
[0228] Em HEVC dois filtros são definidos em filtro de desblocagem: o filtro normal e o filtro forte. O filtro normal modifica no máximo duas amostras em ambos os lados de uma borda. No filtro forte, três verificações adicionais entre as amostras ao longo da borda e alguns limiares predefinidos são avaliados. Se todas essas verificações são verdadeiras então o filtro forte é aplicado. O filtro forte tem um efeito suavizante mais intensivo para amostras ao longo da borda e pode modificar na maioria três amostras em ambos os lados de uma borda.
[0229] Um novo codec de vídeo: Codificação de Vídeo Versátil (VVC) visa uma capacidade de compressão que significativamente excede aquela do padrão HEVC atual (incluindo suas extensões atuals e extensões no futuro próximo para codificação de conteúdo de tela e codificação de faixa dinâmica alta). O Modelo de Teste VVC (VTM) usa um novo esquema de estrutura de bloco de partição chamado árvore quaternária mais árvore binária mais árvore tripla (QTBTTT).
[0230] A estrutura QTBTTT remove os conceitos de múltiplos tipos de partição, isto é, remove a separação de unidades de codificação (CU), unidades de predição (PU) e unidades de transformada (TU). Portanto CU = PU = TU. QTBTTT suporta formatos de partição de CU mais flexíveis em que uma CU pode ter formato ou quadrado ou retangular. A largura e altura mínimas da CU pode ser 4 amostras e os tamanhos da CU pode também ser 4 x N ou N x 4 onde N pode assumir valores na faixa [4, 8, 16, 32]. Além disso, o maior tamanho de CTU foi aumentado para 128x128 pixels, que é 4 vezes maior que o tamanho de CTU em HEVC.
[0231] Para CUs retangulares, a distorção próxima da borda mais curta pode ser obvia, o que resulta em artefato de bloco uniforme quando o filtro forte de HEVC é aplicado. O artefato de bloco pode também ser observado ao longo da borda de grandes CUs, onde distorção são significativas devido a maiores operações de predição e transformada.
[0232] Um filtro de desblocagem tap longo foi agora usado para remover artefatos de blocagem pertencentes a blocos maiores (por exemplo, blocos de luma maiores ou blocos de croma maiores). Especialmente para os blocos maiores (tais como unidades de transformada (TU), unidades de predição (PU), blocos de codificação (CB)), a filtragem de desblocagem (tal como, desblocagem de luma e croma) pode ser um desafio embora a exigência de buffer de linha nas fronteiras CTB (ou CTU) horizontais tenham de ser consideradas, tais como, a exigência de buffer de linha para o filtro de desblocagem tap longo nas fronteiras CTB (ou CTU) horizontais tem de ser considerada.
[0233] Uma operação de filtro de desblocagem (com partição de Árvore quaternária mais árvore binária mais árvore tripla (QTBTTT)) para fronteiras verticais é retratada na Figura 4A.
[0234] Uma operação de filtro de desblocagem (com partição de Árvore quaternária mais árvore binária mais árvore tripla (QTBTTT)) para fronteiras horizontais é retratada na Figura 4B.
[0235] Um filtro tap longo é um filtro que usa mais que 4 amostras em qualquer dos lados da borda para realizar decisões de filtra e as operações de filtro efetivas. Por favor observe que filtro de desblocagem de HEVC usa somente um máximo de 4 amostras para decisão de filtro e operação de filtro.
[0236] O problema com a aplicação de “filtro tap longo” enquanto exigências de buffer de linha têm de ser atendida em mostrado na Figura 4B. Blocos de codificação 401, 402 também referidos como P, Q são duas CUs, o tamanho das CUs são amostras4 x16. Em um outro exemplo, como mostrado na Figura 16A, o bloco de codificação P (isto é, um primeiro bloco de codificação) tem uma altura de bloco >=16 e o bloco de codificação Q (isto é, um segundo bloco de codificação) tem uma altura de bloco=32.
[0237] Quando a borda de bloco horizontal (marcada em linha negra cheia, tal como borda de bloco de luma) é filtrada, então um máximo de 7 amostras nos dois lados da borda de bloco são modificadas. Portanto, as amostras P0,0 até P6,0 são modificadas, e/ou as amostras Q0,0 até Q6,0 são modificadas. No entanto, no caso em que a borda de bloco horizontal se sobrepõe à fronteira de CTB, uma compensação precisa ser derivada com base nas exigências de buffer de linha e na qualidade subjetiva. Usar um filtro assimétrico tap longo proporciona uma melhor compensação quando comparado a desligar o filtro tap longo completamente nas fronteiras de CTB horizontais. Filtro assimétrico tap longo é adicionalmente definido conforme a seguir: Filtro tap longo assimétrico usa um diferente número de taps em qualquer dos lados da borda para tomar a decisão de filtro e operações de filtragem. Pois, por exemplo, em um lado da borda somente 4 taps podem ser usadas, mas no outro lado da borda, até 8 amostras podem ser usadas.
[0238] Na presente revelação, o problema de como realizar a filtragem de desblocagem de borda horizontal (EDGE_HOR) com qualidade subjetiva ideal quando o buffer de linha disponível é limitado pode ser resolvido por uma abordagem como mostrada na Figura 9, Figuras 10 a 12, Figura 15 à Figura 18.
[0239] O aspecto a ser levado em conta é onde a respectiva borda de bloco se encontra com relação à imagem codificada. Especialmente, se a borda de bloco filtrada naquele momento está alinhada com uma fronteira de bloco de árvore de codificação (CTB) (ou uma fronteira de unidade de árvore de codificação (CTU)), e é uma borda de bloco horizontal, o número de valores de entrada de filtro e valores emitidos de filtro influencia muito o montante de memória de linha para realizar a codificação. Isso é indicado na Figura 15.
[0240] A Figura 15 mostra uma imagem 1500 compreendendo diversas unidades de árvore de codificação CTU1 – CTU40. Cada unidade de árvore de codificação tem, por exemplo, valores de amostra 256 x 256. Se uma filtragem tap longa deve ser realizada, em um exemplo, oito valores de amostra ao longo das bordas de bloco de codificação podem ser considerados para determinar os valores emitidos de filtro. Uma vez que as unidades de codificação CTU1 a CTU40 são processadas sucessivamente, isso pode levar a um montante extremamente alto de memória de linha necessária.
[0241] Considerar uma filtragem de desblocagem de uma borda de bloco 1501 indicada na Figura 15. Aqui, a borda de bloco 1501 foi desenhada ao longo da largura inteira das unidades de codificação CTU17 e CTT25. Na prática, no entanto, o tamanho de bloco de codificação será significativamente menor, uma vez que uma codificação não é realizada na unidade de árvore de escala de codificação.
[0242] Uma vez que as unidades de árvore de codificação CTU1 a CTU40 são processadas sucessivamente, a fim de realizar uma desblocagem da borda de bloco de código 1501, é necessário manter a região de limite horizontal mais baixo inteira das unidades de árvore de codificação CTU17 a CTU24 dentro da memória de linha. No exemplo mostrado aqui, com oito unidades de árvore de codificação CTU17 a CTU24 e uma largura de 256 amostras de cada uma das unidades de codificação, e oito valores de amostra relevantes como valores de entrada de filtro, uma memória tamanho de 8 x 256 x 8 = 16.384 amostras memória de linha é necessária. Para cada borda de bloco de codificação horizontal, esse problema vem à tona. É especialmente problemático para a unidade de árvore de codificação CTU9, CTU17, CTU25 e CTU33, uma vez que em qualquer desses casos, a região de limite horizontal inteira da fileira de unidades de árvore de codificação prévia precisa ser guardada na memória de linha. Isso é adicionalmente retratado na Figura 9 e na Figura 16A, 16b ou 17 ou 18.
[0243] É notado que a questão do buffer de linha vem para fronteira horizontal sobreposta à fronteira de CTU. A presente revelação foca em fronteiras horizontais sobrepostas a fronteiras CTB (ou CTU), especialmente filtragem para bordas horizontais sobrepostas a fronteiras de CTB com X linhas disponíveis no buffer de linha.
[0244] Por exemplo, a presente revelação foca em fronteiras horizontais sobrepostas a fronteiras CTB (ou CTU), especialmente filtragem para bordas horizontais sobrepostas a fronteiras de CTB com 6 linhas disponíveis no buffer de linha.
[0245] Basicamente o filtro tap longo assimétrico (basicamente o mesmo usa número diferente de amostras ou taps em qualquer dos lados da borda para realizar operações e decisões de filtragem) é aplicado para não violar o buffer de linha.
[0246] Em um exemplo, o buffer de linha pode ser de 4 linhas (como em HEVC). Em um outro exemplo, o buffer de linha pode ser de 6 linhas, isto é, buffer de 6 linhas. Em particular, para blocos de luma, o buffer de linha pode ser de 4 linhas (como em HEVC). Em um outro exemplo, o buffer de linha pode ser de 6 linhas, isto é, buffer de 6 linhas.
[0247] A Figura 9 mostra tamanho de buffer de linha de 4 linhas. Na Figura 9, uma imagem 900 compreendendo dois blocos 901, 902 é mostrada. Uma borda de bloco 903 divide os blocos 901 e 902. De acordo com um exemplo, quando a borda de bloco horizontal 903 se sobrepõe à fronteira de CTB, em que o primeiro bloco de codificação P é o bloco 901 acima da fronteira de CTB e o segundo bloco de codificação Q é o bloco 902 abaixo da fronteira de CTB; MA=3, DA=4. Aqui, MA é o número de amostras modificadas durante o processo de filtragem para o bloco (tal como o bloco 901) acima da fronteira horizontal de CTB e DA é o número de amostras usadas na decisão de filtro para o bloco (tal como o bloco 901) acima da fronteira horizontal de CTB. Em outras palavras, MA pode ser entendido como o comprimento de filtro máximo do bloco (tal como o bloco 901) acima da fronteira horizontal de CTB.
[0248] A Figura17 também mostra tamanho de buffer de linha de 4 linhas. Na Figura 17, quando se permite que 4 linhas sejam usadas como o tamanho de buffer de linha, por exemplo, nas fronteiras de CTB para o bloco superior, 3 amostras são modificadas durante modificação de filtro; 4 amostras são usadas na decisão de filtro; isto é, MA=3 e DA=4. Por exemplo, nas fronteiras de CTB para o bloco abaixo, 7 amostras são modificadas durante modificação de filtro; 8 amostras são usadas na decisão de filtro; isto é, MB=7 e DB=8.
[0249] A Figura 16A ou a Figura 16B mostra um exemplo com o tamanho de buffer de linha de 6 linhas. Na Figura 16A ou 16B, uma imagem 1600 compreendendo dois blocos 1601, 1602 é mostrada. Uma borda de bloco 1603 divide os blocos 1601 e 1602. De acordo com um exemplo, quando a borda de bloco horizontal 1603 se sobrepõe a uma fronteira de bloco de árvore de codificação (CTB), em que o primeiro bloco de codificação (tal como um primeiro bloco de luma) P é o bloco 1601 acima da fronteira de CTU 1603 e o segundo bloco de codificação (tal como um segundo bloco de luma) Q é o bloco 1602 abaixo da fronteira de CTB1603, para bordas horizontais sobrepostas na fronteira de CTB, DA < DB e MA < MB pode ser estabelecido para reduzir buffer de linha ainda mais. Aqui, DB é o número de amostras usadas na decisão de filtro para o bloco de codificação abaixo da fronteira de CTU horizontal, e o MB é o número de amostras modificadas no processo de filtragem para o bloco de codificação abaixo da fronteira de CTU horizontal. Em outras palavras, MB pode ser entendido como um comprimento de filtro máximo para o bloco de codificação (tal como o bloco 902) abaixo da fronteira de CTU horizontal.
[0250] Como mostrado na Figura 16A ou 16B, quando se permite que 6 linhas sejam usadas como o tamanho de buffer de linha, por exemplo, nas fronteiras de CTB para o bloco superior, 5 amostras são modificadas durante modificação de filtro; 6 amostras são usadas na decisão de filtro (o processo de decisão para emitir parâmetro relacionado à filtragem, tal como um comprimento de filtro máximo); isto é, MA=5 e DA=6.
[0251] Em um exemplo, um filtro para bordas horizontais sobrepostas a fronteiras de CTB com 6 linhas disponível é descrito na tabela a seguir: Pixel emitido Coeficientes de filtro Pixels inseridos {p7, p6, p5, p4, p3, p2, p1, p0, q0, q1, q2, q3, q4, q5, q6, q7}
p4 {0, 0, 6, 3, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0} p5 ~ q2 p3 {0, 0, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0} p5 ~ q3 p2 {0, 0, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0} p5 ~ q4 p1 {0, 0, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 0, 0} p5 ~ q5 p0 {0, 0, 3, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0} p5 ~ q6 q0 {0, 0, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1} p5 ~ q7 q1 {0, 0, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1} p5 ~ q7 q2 {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 2} p4 ~ q7 q3 {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 3} p3 ~ q7 q4 {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 4} p2 ~ q7 q5 {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5} p1 ~ q7 q6 {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 3, 6} p0 ~ q7
[0252] A partir da tabela, o número das amostras emitidas p0 a p4 do bloco P é MA que é igual a 5. Para cada uma das amostras emitidas p0 a p4, o número de as amostras inseridas p5, p4, p3, p2, p1, p0 do bloco P é DA que é igual a 6.
[0253] Em um outro exemplo, os primeiros valores emitidos de filtro 𝑝𝑖 ´ e os segundos valores emitidos de filtro 𝑞𝑖 ´ para i=0 a S-1 são formulados como a seguir: — 𝑝𝑖 ´ = (𝑓𝑖 ∗ 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 + (64 − 𝑓𝑖 ) ∗ 𝑃𝑠 + 32) ≫ 6), 𝑟𝑒𝑐𝑜𝑟𝑡𝑎𝑑𝑜 𝑝𝑎𝑟𝑎 𝑝𝑖 ± 𝑡𝑐𝑃𝐷𝑖 — 𝑞𝑖 ´ = (𝑔𝑖 ∗ 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 + (64 − 𝑔𝑖 ) ∗ 𝑄𝑠 + 32) ≫ 6), 𝑟𝑒𝑐𝑜𝑟𝑡𝑎𝑑𝑜 𝑝𝑎𝑟𝑎 𝑞𝑖 ± 𝑡𝑐𝑃𝐷𝑖 em que 𝑡𝑐𝑃𝐷𝑖 é um parâmetro de recorte dependente de posição, 𝑔𝑖 , 𝑓𝑖 , 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 , 𝑃𝑠 𝑒 𝑄𝑠 dependem de S; 𝑝i representa o valor de amostra do primeiro bloco de codificação P; e 𝑞𝑖 representa o valor de amostra do segundo bloco de codificação Q; em que S= MA para o primeiro bloco de codificação P, isto é, um número máximo das amostras que podem ser modificadas em cada coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, ou
S=MB para o segundo bloco de codificação Q, isto é, o número máximo das amostras que podem ser modificadas em cada coluna do segundo bloco de imagem Q que é perpendicular e adjacente à borda de bloco horizontal.
[0254] Quando o tamanho de buffer de linha X=6, 𝑔𝑖 , 𝑓𝑖 , 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 , 𝑃𝑠 𝑒 𝑄𝑠 depende de S conforme a seguir: 5, 7 (S(=MA)=5 para o primeiro 𝑓𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {59,50,41,32,23,14,5} bloco de 𝑔𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {59,50,41,32,23,14,5} imagem P, 𝑀𝑖𝑑𝑑𝑙𝑒7,7 = (2 ∗ (𝑝𝑜 + 𝑞𝑜 ) + 𝑝1 + 𝑞1 + 𝑝2 + 𝑞2 +𝑝3 + 𝑞3 +𝑝4 + 𝑞4 +𝑝5 + 𝑞5 +𝑝5 + 𝑞6 S(=MB)=7 + 8) ≫ 4 para o 𝑃7 = (𝑝5 + 𝑝5 + 1) ≫ 1, 𝑄7 = (𝑞6 + 𝑞7 + 1) ≫ 1 segundo bloco de imagem Q) 5, 3 (S(=MA)=5 para o primeiro 𝑓𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {59,50,41,32,23,14,5} bloco de 𝑔𝑖 = 53 − 𝑖 ∗ 21, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {53,32,11} imagem P, 𝑀𝑖𝑑𝑑𝑙𝑒7,3 = (2 ∗ (𝑝𝑜 + 𝑞𝑜 ) + 𝑞0 + 2 ∗ (𝑞1 + 𝑞2 ) + 𝑝1 + 𝑞1 + 𝑝2 +𝑝3 +𝑝4 +𝑝5 + 𝑝5 + S(=MB)=3 8) ≫ 4 para o 𝑃7 = (𝑝5 + 𝑝5 + 1) ≫ 1, 𝑄3 = (𝑞2 + 𝑞3 + 1) ≫ 1 segundo bloco de imagem Q) 3, 7 (S(=MA)=3 para o primeiro 𝑔𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {59,50,41,32,23,14,5} bloco de 𝑓𝑖 = 53 − 𝑖 ∗ 21, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {53,32,11} imagem P, 𝑀𝑖𝑑𝑑𝑙𝑒3.7 = (2 ∗ (𝑞𝑜 + 𝑝𝑜 ) + 𝑝0 + 2 ∗ (𝑝1 + 𝑝2 ) + 𝑞1 + 𝑝1 + 𝑞2 +𝑞3 +𝑞4 +𝑞5 + 𝑞6 + S(=MB)=7 8) ≫ 4 para o 𝑄7 = (𝑞6 + 𝑞7 + 1) ≫ 1, 𝑃3 = (𝑝2 + 𝑝3 + 1) ≫ 1 segundo bloco de imagem Q) se um tamanho do buffer de linha (por exemplo, o tamanho de buffer de linha) é X (isto é, o buffer de linha tem o tamanho de buffer de linha de X linhas), então para o primeiro bloco de codificação P, DA=X e MA=X-1; e a amostra pi do primeiro bloco de codificação P é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de codificação P e que estão fora do buffer de linha, em que se o tamanho de buffer de linha é X, então i = X-1. Aqui, a amostra pi é a amostra mais externa permitida para ser armazenada no buffer de linha, Por exemplo, a indicação da coluna de amostras do primeiro bloco de codificação P acima da fronteira horizontal como [p0, p1, p2, p3, p4, p5, p6, p7, ....] (como ilustrado na Figura 4B). Se o tamanho de buffer de linha é 4, isto é, x =4, então i =3. Portanto p3 é usado para preencher ou substituir todas as outras amostras que estão fora do buffer de linha, isto é, amostras p4, p5 ..... Em um outro exemplo, se o tamanho de buffer de linha permitido é 6, isto é, x =6, então i =5. Portanto p5 é usado como a amostra para preencher todas as outras amostras que estão fora do buffer de linha, isto é, amostras p6, p7…. são substituídas por p5.
[0255] Alternativamente, quando o tamanho de buffer de linha X=4, 𝑔𝑖 , 𝑓𝑖 , 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 , 𝑃𝑠 𝑒 𝑄𝑠 depende de S conforme a seguir: 3, 7 (S(=MA)=3 para o bloco de 𝑔𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {59,50,41,32,23,14,5} codificação 𝑓𝑖 = 53 − 𝑖 ∗ 21, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {53,32,11} P; 𝑀𝑖𝑑𝑑𝑙𝑒3.7 = (2 ∗ (𝑞𝑜 + 𝑝𝑜 ) + 𝑝0 + 2 ∗ (𝑝1 + 𝑝2 ) + 𝑞1 + 𝑝1 + 𝑞2 +𝑞3 +𝑞4 +𝑞5 + 𝑞6 + S(=MB)=7 8) ≫ 4 para o 𝑄7 = (𝑞6 + 𝑞7 + 1) ≫ 1, 𝑃3 = (𝑝2 + 𝑝3 + 1) ≫ 1 bloco de codificação Q)
[0256] Além disso, para bordas horizontais sobrepostas na fronteira de CTB, quando DA < DB e MA < MB, o tamanho de buffer de linha pode ser reduzido.
[0257] Em um exemplo, DB= 8 e DA=6, MB = 7 e MA = 5.
[0258] Em um exemplo, DB= 8 e DA=7, MB = 7 e MA = 6.
[0259] Em um exemplo, DB= 8 e DA=5, MB = 7 e MA = 4.
[0260] Em um exemplo, DB= 8 e DA=4, MB = 7 e MA = 3.
[0261] Referência com a Figura 6, de acordo com um aspecto da revelação, um aparelho de filtro de desblocagem é fornecido. O aparelho de filtro de desblocagem pode ser usado em um codificador de imagem e/ou um decodificador de imagem. O aparelho de filtro de desblocagem compreende: uma unidade de localizar borda 603, configurada para determinar bordas entre blocos, em que as bordas entre blocos compreendem uma borda de bloco horizontal (por exemplo, borda de CU ou fronteira de CU) entre um primeiro bloco de codificação P e um segundo bloco de codificação Q, e a borda de bloco horizontal se sobrepõe a uma fronteira de bloco de árvore de codificação (CTB), em que o primeiro bloco de codificação P é um bloco acima da fronteira de CTB e o segundo bloco de codificação Q é um outro bloco abaixo da fronteira de CTB; uma unidade de determinação de desblocagem 604, configurada para determinar se a borda de bloco horizontal entre o primeiro bloco de codificação P e o segundo bloco de codificação Q é ou não para ser filtrada aplicando-se um primeiro filtro (isto é, um filtro tap longo ou um filtro assimétrico ou um filtro tap assimétrico ou um filtro de desblocagem de HEVC) com base em: - no máximo DA valores de amostra do primeiro bloco de codificação, adjacente à borda de bloco horizontal, como primeiros valores de decisão de filtro e - no máximo DB valores de amostra do segundo bloco de codificação, adjacente à borda de bloco horizontal, como segundos valores de decisão de filtro; em que DA ≠ DB ou DA < DB, DA é igual a um tamanho de buffer de linha; uma unidade de filtragem de desblocagem 606, configurada para aplicar o primeiro filtro (isto é, um filtro tap longo ou um filtro assimétrico ou um filtro tap assimétrico ou um filtro de desblocagem de HEVC) para valores de amostras perto da borda de bloco horizontal entre o primeiro bloco de codificação P e o segundo bloco de codificação Q, quando é determinado que a borda de bloco horizontal entre o primeiro bloco de codificação P e o segundo bloco de codificação Q é para ser filtrada aplicando-se o primeiro filtro.
[0262] Em algumas modalidades, se um tamanho de um buffer de linha (por exemplo, o tamanho de buffer de linha) é X (isto é, o buffer de linha tem o tamanho de buffer de linha de X linhas), então para o primeiro bloco de codificação P, DA=X. A amostra pi do primeiro bloco de codificação P é usada como um valor preenchido para substituir as outras amostras que pertencem ao primeiro bloco de codificação P e que estão fora do buffer de linha. Se o tamanho de buffer de linha é X, então i = X-1.
[0263] Em algumas modalidades, no máximo valores de amostra MA da coluna (tal como cada coluna) do primeiro bloco de codificação que é perpendicular e adjacente à borda de bloco horizontal são modificados e no máximo valores de amostra MB da coluna (tal como cada coluna) do segundo bloco de codificação que é perpendicular e adjacente à borda de bloco horizontal são modificados; em que MA ≠ MB ou MA < MB.
[0264] Em algumas modalidades, se o tamanho do buffer de linha (por exemplo, o tamanho de buffer de linha) é X (isto é, o buffer de linha tem o tamanho de buffer de linha de X linhas), então para o primeiro bloco de codificação P, MA=X-1; e a amostra pi do primeiro bloco de codificação P é usada como um valor preenchido para substituir as outras amostras que pertencem ao primeiro bloco de codificação P e que estão fora do buffer de linha. Se o tamanho de buffer de linha é X, então i = X-1.
[0265] Em algumas modalidades, DB= 8, DA=6, MB = 7, e MA = 5.
[0266] Em algumas modalidades, quando um tamanho de um buffer de linha (por exemplo, o tamanho de buffer de linha) é 6, se permite que no máximo L linhas do primeiro bloco de codificação P sejam usadas para decisão de filtragem, e L=6.
[0267] Em algumas modalidades, quando um buffer de 6 linhas (por exemplo, um buffer de linha com o tamanho de buffer de linha sendo 6) é aplicado, a unidade de determinação de desblocagem 604 é configurada para determinar se uma equação de condição de filtro estendido 𝑠𝑝3′ = (sp3 + Abs(p5−p3) + 1) >> 1 é satisfeita. Pode ser entendido que x >> y é definido, isto é, deslocamento aritmético para a direita de uma representação de número inteiro complemento de dois de x por y dígitos binários. Essa função é definida somente para valores de y em número inteiro não negativo. Bits deslocados para o interior dos bits mais significativos (MSBs) como um resultado do deslocamento para a direita têm um valor igual ao MSB de x antes da operação de deslocamento.
[0268] Quando uma ou mais equações de condição de filtro compreendendo a equação de condição de filtro estendido são satisfeitas, o primeiro filtro é aplicado a valores de amostra do primeiro bloco de codificação P, adjacente à borda de bloco horizontal sobreposta à fronteira de CTU; em que sp3 =Abs(p3−p0), e 𝑝i representa o valor de amostra do primeiro bloco de codificação P usado na decisão de filtro, i=0, 1, 2, 3, 4 ou 5.
[0269] Em algumas modalidades, quando um buffer de 6 linhas é aplicado e o segundo bloco de codificação Q com o tamanho de bloco SB >= um tamanho predefinido (tal como 32), a unidade de determinação de desblocagem 604 é configurada para determinar se uma equação de condição de filtro estendido 𝑠𝑞3′ = (sq3 + Abs(q7−q3) + 1) >> 1 é satisfeita.
[0270] Quando uma ou mais equações de condição de filtro compreendendo a equação de condição de filtro estendido são satisfeitas, o primeiro filtro é aplicado para valores de amostra do segundo bloco de codificação Q, adjacente à borda de bloco horizontal sobreposta à fronteira de CTU. Aqui, sq3 = Abs(q0−q3), e 𝑞𝑖 representa o valor de amostra do segundo bloco de codificação Q usado na decisão de filtro, i=0, 1, 2, 3, 4… ou 7.
[0271] Em algumas modalidades, quando um buffer de 4 linhas é aplicado, a unidade de determinação de desblocagem 604 é configurada para determinar se uma equação de condição de filtro estendido 𝑠𝑝3′ = (sp3 + Abs(p3– p0) + 1) >> 1 é satisfeita.
[0272] Quando uma ou mais equações de condição de filtro compreendendo a equação de condição de filtro estendido são satisfeitas, o primeiro filtro é aplicado para valores de amostra do primeiro bloco de codificação P, adjacente à borda de bloco horizontal sobreposta à fronteira de CTU. Aqui, sp3 =Abs(p3−p0), e 𝑝i representa o valor de amostra do primeiro bloco de codificação P usado na decisão de filtro, i=0, 1, 2 ou 3.
[0273] Em algumas modalidades, a unidade de filtragem de desblocagem 606 é configurada para determinar os primeiros valores emitidos de filtro 𝑝𝑖 ´ e os segundos valores emitidos de filtro 𝑞𝑖 ´ para i=0 para S-1 com base na seguinte equação: — 𝑝𝑖 ´ = (𝑓𝑖 ∗ 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 + (64 − 𝑓𝑖 ) ∗ 𝑃𝑠 + 32) ≫ 6), 𝑟𝑒𝑐𝑜𝑟𝑡𝑎𝑑𝑜 𝑝𝑎𝑟𝑎 𝑝𝑖 ± 𝑡𝑐𝑃𝐷𝑖
— 𝑞𝑖 ´ = (𝑔𝑖 ∗ 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 + (64 − 𝑔𝑖 ) ∗ 𝑄𝑠 + 32) ≫ 6), 𝑟𝑒𝑐𝑜𝑟𝑡𝑎𝑑𝑜 𝑝𝑎𝑟𝑎 𝑞𝑖 ± 𝑡𝑐𝑃𝐷𝑖 em que 𝑡𝑐𝑃𝐷𝑖 é um parâmetro de recorte dependente de posição; 𝑔𝑖 , 𝑓𝑖 , 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 , 𝑃𝑠 𝑒 𝑄𝑠 dependem de S; 𝑝i representa o valor de amostra do primeiro bloco de codificação P; e 𝑞𝑖 representa o valor de amostra do segundo bloco de codificação Q. em que S= MA para o primeiro bloco de codificação P, isto é, um número máximo das amostras que podem ser modificadas em cada coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, ou S=MB para o segundo bloco de codificação Q, isto é, o número máximo das amostras que podem ser modificadas em cada coluna do segundo bloco de imagem Q que é perpendicular e adjacente à borda de bloco horizontal.
[0274] Em algumas modalidades, em que o tamanho de buffer de linha X=6, 𝑔𝑖 , 𝑓𝑖 , 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 , 𝑃𝑠 𝑒 𝑄𝑠 depende de S conforme a seguir: 5, 7 (S(=MA)=5 para o primeiro bloco de 𝑓𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {59,50,41,32,23,14,5} codificação 𝑔𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {59,50,41,32,23,14,5} P, 𝑀𝑖𝑑𝑑𝑙𝑒7,7 = (2 ∗ (𝑝𝑜 + 𝑞𝑜 ) + 𝑝1 + 𝑞1 + 𝑝2 + 𝑞2 +𝑝3 + 𝑞3 +𝑝4 + 𝑞4 +𝑝5 + 𝑞5 +𝑝5 + 𝑞6 S(=MB)=7 + 8) ≫ 4 para o 𝑃7 = (𝑝5 + 𝑝5 + 1) ≫ 1, 𝑄7 = (𝑞6 + 𝑞7 + 1) ≫ 1 segundo bloco de codificação Q) 5, 3 (S(=MA)=5 para o 𝑓𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {59,50,41,32,23,14,5} primeiro 𝑔𝑖 = 53 − 𝑖 ∗ 21, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {53,32,11} bloco de 𝑀𝑖𝑑𝑑𝑙𝑒7,3 = (2 ∗ (𝑝𝑜 + 𝑞𝑜 ) + 𝑞0 + 2 ∗ (𝑞1 + 𝑞2 ) + 𝑝1 + 𝑞1 + 𝑝2 +𝑝3 +𝑝4 +𝑝5 + 𝑝5 + codificação 8) ≫ 4 P, 𝑃7 = (𝑝5 + 𝑝5 + 1) ≫ 1, 𝑄3 = (𝑞2 + 𝑞3 + 1) ≫ 1 S(=MB)=3 para o segundo bloco de codificação Q) 3, 7 (S(=MA)=3 para o primeiro bloco de 𝑔𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {59,50,41,32,23,14,5} codificação 𝑓𝑖 = 53 − 𝑖 ∗ 21, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {53,32,11} P, 𝑀𝑖𝑑𝑑𝑙𝑒3.7 = (2 ∗ (𝑞𝑜 + 𝑝𝑜 ) + 𝑝0 + 2 ∗ (𝑝1 + 𝑝2 ) + 𝑞1 + 𝑝1 + 𝑞2 +𝑞3 +𝑞4 +𝑞5 + 𝑞6 + S(=MB)=7 8) ≫ 4 para o 𝑄7 = (𝑞6 + 𝑞7 + 1) ≫ 1, 𝑃3 = (𝑝2 + 𝑝3 + 1) ≫ 1 segundo bloco de codificação Q)
[0275] Em algumas modalidades, em que o tamanho de buffer de linha X=4, 𝑔𝑖 , 𝑓𝑖 , 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 , 𝑃𝑠 𝑒 𝑄𝑠 depende de S conforme a seguir: 3, 7 (S(=MA)=3 para o primeiro bloco de 𝑔𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {59,50,41,32,23,14,5} codificação 𝑓𝑖 = 53 − 𝑖 ∗ 21, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {53,32,11} P; 𝑀𝑖𝑑𝑑𝑙𝑒3.7 = (2 ∗ (𝑞𝑜 + 𝑝𝑜 ) + 𝑝0 + 2 ∗ (𝑝1 + 𝑝2 ) + 𝑞1 + 𝑝1 + 𝑞2 +𝑞3 +𝑞4 +𝑞5 + 𝑞6 + S(=MB)=7 8) ≫ 4 para o 𝑄7 = (𝑞6 + 𝑞7 + 1) ≫ 1, 𝑃3 = (𝑝2 + 𝑝3 + 1) ≫ 1 segundo bloco de codificação Q)
[0276] Em algumas modalidades, o coeficiente de filtro de uma amostra pi do primeiro bloco de codificação P são determinados de uma maneira tal que a amostra pi, que pertence ao primeiro bloco de codificação P e que é a amostra mais externa permitida para ser armazenada no buffer de linha, é usada como um valor preenchido para substituir as outras amostras que pertencem ao primeiro bloco de codificação P e que estão fora do buffer de linha. É notado que,
a amostra pi do primeiro bloco de codificação P é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de codificação P e que estão fora do buffer de linha.
[0277] Em algumas modalidades, um buffer de linha tem o tamanho de buffer de linha de 6 linhas, e as amostras p0 a p4 são modificadas a partir do primeiro bloco de codificação P para serem as amostras p0’ a p4’.
[0278] Em algumas modalidades, as amostras pi do primeiro bloco de codificação P são amostras de luma e/ou Croma.
[0279] É notado que quando buffer de 6 linhas é aplicado, a condição de filtro é modificada para usar o número restrito de linhas a partir do bloco superior “P”. O máximo número de amostras que é permitido é até p5, isto é, DA=6.
[0280] O coeficiente de filtro de uma amostra pi é determinado de uma maneira tal que, a amostra pi que pertence ao primeiro bloco que é permitida para usar e armazenada no buffer de linha será usada como uma versão preenchida que substitui todas as outras amostras que estão fora do buffer de linha.
[0281] Por exemplo no caso acima quando DB= 8 e DA=6, MB = 7 e MA = 5
[0282] A partir do bloco superior de codificação (P) um máximo de 6 amostras podem ser usadas, e um máximo de 5 amostras podem ser modificadas, enquanto que para o bloco inferior (q) um máximo de 7 amostras podem ser modificadas e um máximo de 8 amostras podem ser usadas.
[0283] De acordo com diferentes implantações da modalidade da presente revelação, outros possíveis valores permitidos podem ser:
[0284] DB= 8 e DA=7, MB = 7 e MA = 6
[0285] DB= 8 e DA=5, MB = 7 e MA = 4
[0286] DB= 8 e DA=4, MB = 7 e MA = 3
[0287] A condição de filtro e equações de filtro podem ser derivadas usando a mesma lógica que acima.
[0288] Outros possíveis valores permitidos tanto para o bloco inferior quanto bloco superior são:
[0289] Além disso, DB= 4 e DA=4, MB = 3 e MA = 3. Essa combinação pode usar o filtro forte de HEVC simples. Filtro de desblocagem de HEVC modifica um máximo de 3 amostras em qualquer dos lados da borda.
[0290] A Figura 7 é um fluxograma ilustrando um método para determinar se um filtro tap longo será usado ou não. Como ilustrado na Figura 7, a condição de filtro forte de HEVC deve ser satisfeita a fim de que as condições de “filtro tap longo” sejam verdadeiras. Na etapa 707, os detalhes foram descritos acima. O filtro tap longo usado na etapa 709 é diferente do filtro tap longo normal usado na etapa 708, os detalhes foram descritos acima. Em algum exemplo, acima do filtro de HEVC, o filtro tap longo normal na etapa 708 usa 8 amostras para a decisão de filtro em cada lado da borda, e 7 amostras são modificadas em cada lado da borda. No entanto, o filtro tap longo na etapa 709 usa 8 amostras para decisão de filtro em cada lado da borda, e 7 amostras são modificadas em um lado da borda enquanto 3 amostras são modificadas no outro lado da borda.
[0291] Os detalhes para determinar se a condição de filtro forte de HEVC deve ou não ser satisfeita é mostrado na Figura 8. As decisões de filtragem de desblocagem para uma fronteira de bloco incluindo as decisões entre a filtragem forte e a normal são resumidas em um fluxograma na Figura 8.
[0292] Em uma primeira etapa 800, é verificado se a borda de bloco filtrada atualmente está alinhada com uma grade de amostra de codificação 8 x
8. Se esse é o caso, em uma segunda etapa 801, é verificado se a borda de bloco a ser filtrada é uma fronteira entre unidades de predição ou unidades de transformada. Se esse é o caso, em uma terceira etapa 802, é verificado se uma resistência de fronteira Bs>0. Se essa condição também é atendida, em uma quarta etapa 803 é verificado se uma condição 7.1 é verdadeira.
[0293] A condição 7.1 é usada para verificar se filtragem de desblocagem é aplicada a uma fronteira de bloco ou não. A condição especialmente verifica quanto o sinal em cada lado da fronteira de bloco desvia da linha reta (rampa).
[0294] Se essa condição não é atendida, ou qualquer das verificações de etapas 800, 801 e 802 não são atendidas, é decidido em uma quinta etapa 804 que nenhuma filtragem é realizada.
[0295] Em uma sexta etapa 803, é verificado que a condição 7.1 é verdadeira, então em uma sétima etapa 806, é verificada, se a condição 7.2, 7.3, e 7.4 são adicionalmente atendidas.
[0296] A condição 7.2 verifica se não há significativas variações de sinal nos lados da fronteira de bloco. A condição 7.3 verifica se o sinal em ambos os lados é uniforme. A condição 7.4 assegura que a etapa entre os valores de amostra nos lados da fronteira de bloco seja pequena.
[0297] Se todas essas condições são verdadeiras, em uma oitava etapa 807, uma filtragem forte é realizada. A etapa 807 é diretamente substituída pela etapa 702 da Figura 7. Se não é o caso, em uma nona etapa 808 é decidido que uma filtragem normal é realizada.
[0298] Essa solução respalda parte do fluxograma de desblocagem, de modo que somente uma modificação de amostra seja realizada.
[0299] Em alguns exemplos, filtro “assimétrico” é usado para bordas horizontais sobrepostas a fronteiras de CTB com 6 linhas ou 4 linhas disponíveis.
[0300] Essa abordagem é mostrada ao longo da Figura 16 (=Figuras 16A e 16B). Na Figura 16, uma imagem 1600 compreendendo dois blocos 1601, 1602 é mostrada. Uma borda de bloco 1603 divide os blocos 1601 e 1602. De acordo com a primeira modalidade da invenção, em que a borda de bloco horizontal 1603 se sobrepõe a uma fronteira de bloco de árvore de codificação (CTB), em que o primeiro bloco de codificação P é o bloco 1601 acima da fronteira de CTB 1603 e o segundo bloco de codificação Q é o bloco 1602 abaixo da fronteira de CTB 1603; a Figura 16 (=Figuras 16A e 16B) mostra um buffer de linha com um tamanho de 6 linhas. Para bordas horizontais sobrepostas na fronteira de CTB, DA < DB e MA < MB são estabelecidos para reduzir buffer de linha ainda mais. Essa revelação se aplica a todos os tipos de bloco (tais como os blocos 1601 e 1602 são blocos de luma ou blocos de croma) para aplicação de um filtro tap longo, e funciona para bordas horizontais.
[0301] Em outras palavras, o bloco de codificação P 1601 é o bloco em um lado da fronteira de CTB 1603 e o bloco de codificação Q 1602 é o bloco no outro lado da fronteira de CTB 1603. É entendido que em um exemplo, o bloco de codificação P 1601 é o bloco acima da fronteira de CTB 1603 e o bloco de codificação Q 1602 é o bloco abaixo da fronteira de CTB 1603. Consequentemente, o bloco de codificação atual é considerado o bloco de codificação Q 1602. Em um outro exemplo, se o bloco de codificação P é o bloco abaixo da fronteira de CTB e o bloco de codificação Q é o bloco acima da fronteira de CTB. Consequentemente, o bloco de codificação atual é considerado o bloco de codificação P. Pode ser entendido que para uma fronteira horizontal, o bloco abaixo é o bloco de codificação atual. Essa revelação pode também ser aplicada em ambos esses cenários de um modo como descrito acima. A amostra pi, que pertence ao primeiro bloco de codificação P e que é a amostra mais externa permitida para ser armazenada no buffer de linha, é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de imagem e que estão fora do buffer de linha.
[0302] É notado que o primeiro filtro pode ser um filtro assimétrico que modifica número diferente de amostras nos dois lados da borda de bloco (por exemplo, borda de CU).
[0303] Em um exemplo, nas fronteiras de CTB para os blocos superiores, quando o tamanho de buffer de linha é de 6 linhas, um filtro “tap longo” que modifica até 5 amostras pode ser usado. A seguir, um filtro “tap longo”, que usa um máximo de até 6 amostras como valores de entrada de filtro e que modifica até 5 amostras como valores emitidos de filtro, pode ser usado quando a altura de bloco é maior que ou igual a 16 amostras.
[0304] Em um outro exemplo, nas fronteiras de CTB para os blocos superiores, quando o tamanho de buffer de linha é de 4 linhas, um filtro “tap longo” que modifica 3 amostras pode ser usado. A seguir, um filtro “tap longo” que usa 4 amostras como valores de entrada de filtro e modifica até 3 amostras como valores emitidos de filtro, pode ser usado quando a altura de bloco é maior que ou igual a 16 amostras.
[0305] Como mostrado na Figura 16 (=figuras 16A ou 16B) ou Figura 17, se o tamanho do buffer de linha (por exemplo, o tamanho de buffer de linha) é X, então para o primeiro bloco de codificação P, DA=X e MA=X-1. A amostra pi do primeiro bloco de codificação P é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de codificação P e que estão fora do buffer de linha, em que se o tamanho de buffer de linha é X, então i = X-1. Por exemplo, a amostra pi é a amostra mais externa permitida para ser armazenada no buffer de linha, em que se o tamanho de buffer de linha permitido é “x” então i = x -1. Por exemplo, se o tamanho de buffer de linha é 4, isto é, x =4 então i =3 (Como mostrado na Figura 17). Portanto p3 é usado como a amostra para preencher todas as outras amostras que estão fora do buffer de linha. Por exemplo, amostras p4, p5…. são substituídas por p3, em um outro exemplo se o tamanho de buffer de linha permitido é 6, isto é, x =6, então i =5. Portanto p5 é usado como a amostra para preencher todas as outras amostras que estão fora do buffer de linha. Por exemplo, as amostras p6, p7…. são substituídas por p5.
[0306] Para resumir, a presente invenção pode ser aplicada ao cenário em que o primeiro bloco de codificação e o segundo bloco de codificação são blocos de luma, o buffer de linha tem o tamanho de buffer de linha de X linhas (tais como 4 linhas).
[0307] Pode ser entendido que a presente invenção também pode ser aplicada ao cenário em que o primeiro bloco de codificação e o segundo bloco de codificação são blocos de croma, o buffer de linha tem o tamanho de buffer de linha de X linhas (tais como 2 linhas).
[0308] Uma vez que um artefato de blocagem de “grande bloco” potencial poderia ocorrer na fronteira de CTU Croma horizontal, a presente revelação pode empregar um filtro assimétrico tap longo que modifica MA amostra a partir do bloco superior mas pode ainda modificar até MB amostras a partir do sopro inferior para remover mais eficientemente o artefato de blocagem.
[0309] A Figura 18 mostra um exemplo com o tamanho de buffer de linha de 2 linhas. Na Figura 18, uma imagem 1800 compreendendo dois blocos 1801, 1802 é mostrada. Uma borda de bloco 1803 divide os blocos 1801 e 1802. De acordo com um exemplo, quando a borda de bloco horizontal 1803 se sobrepõe a uma fronteira de bloco de árvore de codificação (CTB), em que o primeiro bloco de codificação (tal como um primeiro bloco de luma) P é o bloco 1801 acima da fronteira de CTU 1803 e o segundo bloco de codificação (tal como um segundo bloco de luma) Q é o bloco 1802 abaixo da fronteira de CTB1803, para bordas horizontais sobrepostas na fronteira croma de CTB, DA < DB e MA < MB pode ser estabelecido para reduzir buffer de linha adicionalmente. Aqui, DB é o número de amostras usadas na decisão de filtro para o bloco de codificação abaixo da fronteira de CTB de croma horizontal, e o MB é o número de amostras modificadas no processo de filtragem para o bloco de codificação abaixo da fronteira horizontal de CTB. Em outras palavras, MA pode ser entendido como um comprimento de filtro máximo para o bloco 1801 acima da fronteira de CTB de croma horizontal. MB pode ser entendido como um comprimento de filtro máximo para o bloco 1802 abaixo da fronteira de CTB de croma horizontal, onde MA=1, MB=3; DA=2, DB=4. Como mostrado na Figura 18, o tamanho de bloco ou altura dos dois blocos são iguais a 16. Pode ser notado que quando o primeiro bloco de imagem e o segundo bloco de imagem são blocos de croma e SA e SB são iguais a ou maiores que 8, MB = 3 e MA =
1. Quando o primeiro bloco de imagem e o segundo bloco de imagem são blocos de croma e SB e SA são iguais a ou maiores que 8, DB= 4 e DA=2.
[0310] Para a decisão de filtro tap mais longo, as equações de filtro originais são conforme a seguir: dp0 = Abs(p2,0−2*p1,0+p0,0) dp1 = Abs(p2,1−2*p1,1+p0,1) dq0 = Abs(q2,0−2*q1,0+q0,0) dq1 = Abs(q2,1−2*q1,1+q0,1)
[0311] Nas fronteiras horizontais de CTU as decisões de filtro tap mais longo modificado são conforme a seguir: (p2,0, p2,1 são simplesmente substituídos por p1,0 e p1,1) dp0 = Abs(p21,0−2*p1,0+p0,0) dp1 = Abs(p21,1−2*p1,1+p0,1) dq0 = Abs(q2,0−2*q1,0+q0,0) dq1 = Abs(q2,1−2*q1,1+q0,1)
[0312] As equações de filtragem tap mais longa original para desblocagem tap mais longa de Croma são conforme a seguir: p0′ = Clip3(p0−tCp0+tC,(p3+p2+p1+2*p0+q0+q1+q2+4)>>3) p1′ = Clip3(p1−tC,p1+tC,(2*p3+p2+2*p1+p0+q0+q1+4)>>3) p2′ = Clip3(p2−t,p2+tC,(3*p3+2*p2+p1+p0+q0+4)>>3) q0′ = Clip3(q0−tC,q0+tC,(p2+p1+p0+2*q0+q1+q2+q3+4)>>3) q1′ = Clip3(q1−tC,q1+tC,(p1+p0+q0+2*q1+q2+2*q3+4)>>3) q2′= Clip3(q2−tC,q2+tC,(p0+q0+q1+2*q2+3*q3+4)>>3)
[0313] Nas fronteiras horizontais de CTU as equações de desblocagem tap mais longa modificadas são conforme a seguir: p0′ = Clip3(p0−tC,p0+tC,(p3+p2+3 * p1+2*p0+q0+q1+q2+4)>>3) p1′ = Clip3p1−tC,p1+tC,(2*p3+p2+2*p1+p0+q0+q1+4)>>3) p2′ = Clip3(p2−tC,p2+tC,(3* p3+2*p2+p1+p0+q0+4)>>3) q0′ = Clip3(q0−tC,q0+tC,(p2+2 * p1+p0+2*q0+q1+q2+q3+4)>>3) q1′ = Clip3(q1−tC,q1+tC,(p1+p0+q0+2*q1+q2+2*q3+4)>>3)
q2′= Clip3(q2−tC,q2+tC,(p0+q0+q1+2*q2+3*q3+4)>>3)
[0314] As equações de filtragem podem ser somente ser derivadas preenchendo-se as amostras não disponíveis com a amostra disponível mais externa no lado do bloco de codificação P.
[0315] Os detalhes do método proposto são descritos como a seguir no formato da especificação. A modalidade acima descrita poderia ser expressa como a seguinte modificação para o esboço de VVC (parte 8.8.3.3):
8.8.3.3 Processo de derivação de fronteira de bloco de transformada
[0316] Entradas para esse processo são: – uma localização (xCb,yCb) especificando a amostra superior à esquerda do bloco de codificação atual relativo à amostra superior à esquerda da imagem atual, – uma nCbW variável especificando a largura do bloco de codificação atual, – uma nCbH variável especificando a altura do bloco de codificação atual, – uma cIdx variável especificando o componente de cor do bloco de codificação atual, – uma filterEdgeFlag variável, – edgeFlags de um arranjo bidimensional (nCbW)x(nCbH), – arranjos bidimensionais (nCbW)x(nCbH) maxFilterLengthQs e maxFilterLengthPs, – uma edgeType variável especificando se uma borda (EDGE_VER) vertical ou uma (EDGE_HOR) horizontal é filtrada.
[0317] Emissões desse processo são: – as edgeFlags de arranjo modificado bidimensional (nCbW)x(nCbH) – os arranjos modificados bidimensionais (nCbW)x(nCbH) maxFilterLengthQs, maxFilterLengthPs.
[0318] Dependendo do edgeType, os arranjos edgeFlags, maxFilterLengthPs e maxFilterLengthQs são derivados conforme a seguir:
[0319] A variável gridSize é estabelecida conforme a seguir: gridSize=cIdx==0 ? 4:8 (8-1024)
[0320] Se edgeType é igual a EDGE_VER, isto se aplica:
A variável numEdges é estabelecida igual a Max(1,nCbW/gridSize).
[0321] Para xEdge=0..numEdges−1 e y=0..nCbH−1, isto se aplica: A posição horizontal x dentro do bloco de codificação atual é estabelecido igual a xEdge*gridSize.
[0322] O valor de borda Flags[x][y] é derivado conforme a seguir:
[0323] Se pps_loop_filtro_across_virtual_boundaries_disabled_flag igual a 1 e (xCb+x) é igual a PpsVirtualEdgesPosX[n] para qualquer n=0..pps_num_ver_virtual_edges−1, edgeFlags[x][y] é estabelecido igual a 0.
[0324] De outra forma, se x é igual a 0, edgeFlags[x][y] é estabelecido igual a filterEdgeFlag.
[0325] De outra forma, se a localização (xCb+x,yCb+y) é em uma borda de bloco de transformada, edgeFlags[x][y] é estabelecido igual a 1.
[0326] Quando edgeFlags[x][y] é igual a 1, isto se aplica:
[0327] Se cIdx é igual a 0, isto se aplica:
[0328] O valor de maxFilterLengthQs[x][y] é derivado conforme a seguir:
[0329] Se a largura em amostras de luma do bloco de transformada na localização luma (xCb+x, yCb+y) é igual a ou menor que 4 ou a largura em amostras de luma do bloco de transformada na localização luma (xCb+x−1, yCb+y) é igual a ou menor que 4, maxFilterLengthQs[x][y] é estabelecido igual a
1.
[0330] De outra forma, se a largura em amostras de luma do bloco de transformada na localização luma (xCb+x, yCb+y) é igual a ou maior que 32, maxFilterLengthQs[x][y] é estabelecido igual a 7.
[0331] De outra forma, maxFilterLengthQs[x][y] é estabelecido igual a
3.
[0332] O valor de maxFilterLengthPs[x][y] é derivado conforme a seguir:
[0333] Se a largura em amostras de luma do bloco de transformada na localização luma (xCb+x, yCb+y) é igual a ou menor que 4 ou a largura em amostras de luma do bloco de transformada na localização luma (xCb+x−1, yCb+y) é igual a ou menor que 4, maxFilterLengthPs[x][y] é estabelecido igual a
1.
[0334] De outra forma, se a largura em amostras de luma do bloco de transformada na localização luma (xCb+x−1, yCb+y) é igual a ou maior que 32, maxFilterLengthPs[x][y] é estabelecido igual a 7.
[0335] De outra forma, maxFilterLengthPs[x][y] é estabelecido igual a
3.
[0336] De outra forma (cIdx não é igual a 0), os valores de maxFilterLengthPs[x][y] e maxFilterLengthQs[x][y] são derivados conforme a seguir:
[0337] Se a largura em amostras de croma do bloco de transformada na localização croma (xCb+x, yCb+y) e a largura na localização croma (xCb+x−1, yCb+y) são ambas iguais a ou maiores que 8, maxFilterLengthPs[x][y] e maxFilterLengthQs[x][y] são estabelecidos iguais a 3.
[0338] De outra forma, maxFilterLengthPs[x][y] e maxFilterLengthQs[x][y] são estabelecidos iguais a 1.
[0339] De outra forma (edgeType é igual a EDGE_HOR), isto se aplica: A variável numEdges é estabelecido igual a Max(1,nCbH/gridSize).
[0340] Para yEdge=0..numEdges−1 e x=0..nCbW−1, isto se aplica:
[0341] A posição vertical y dentro do bloco de codificação atual é estabelecido igual a yEdge*gridSize.
[0342] O valor de edgeFlags[x][y] é derivado conforme a seguir:
[0343] Se pps_loop_filtro_across_virtual_boundaries_disabled_flag é igual a 1 e (yCb+y) é igual a PpsVirtualBoundariesPosY[n] para qualquer n=0..pps_num_hor_virtual_boundaries−1, edgeFlags[x][y] é estabelecido igual a
0.
[0344] De outra forma, se y é igual a 0, edgeFlags[x][y] é estabelecido igual a filterEdgeFlag.
[0345] De outra forma, se a localização (xCb+x,yCb+y) está em uma borda de bloco de transformada, edgeFlags[x][y] é estabelecido igual a 1.
[0346] Quando edgeFlags[x][y] é igual a 1, isto se aplica:
[0347] Se cIdx é igual a 0, isto se aplica:
[0348] O valor de maxFilterLengthQs[x][y] é derivado conforme a seguir:
[0349] Se a altura em amostras de luma do bloco de transformada na localização luma (xCb+x, yCb+y) é igual a ou menor que 4 ou a altura em amostras de luma do bloco de transformada na localização luma (xCb+x, yCb+y−1) é igual a ou menor que 4, maxFilterLengthQs[x][y] é estabelecido igual a 1.
[0350] De outra forma, se a altura em amostras de luma do bloco de transformada na localização luma (xCb+x, yCb+y) é igual a ou maior que 32, maxFilterLengthQs[x][y] é estabelecido igual a 7.
[0351] De outra forma, maxFilterLengthQs[x][y] é estabelecido igual a
3.
[0352] O valor de maxFilterLengthPs[x][y] é derivado conforme a seguir:
[0353] Se a altura em amostras de luma do bloco de transformada na localização luma (xCb+x, yCb+y) é igual a ou menor que 4 ou a altura em amostras de luma do bloco de transformada na localização luma (xCb+x, yCb+y−1) é igual a ou menor que 4, maxFilterLengthPs[x][y] é estabelecido igual a 1.
[0354] De outra forma, se a altura em amostras de luma do bloco de transformada na localização luma (xCb+x, yCb+y−1) é igual a ou maior que 32, maxFilterLengthPs[x][y] é estabelecido igual a 7.
[0355] De outra forma, maxFilterLengthPs[x][y] é estabelecido igual a
3.
[0356] De outra forma (cIdx não é igual a 0), os valores de maxFilterLengthPs[x][y] e maxFilterLengthQs[x][y] são derivados conforme a seguir:
[0357] Se todas as seguintes condições são verdadeiras, maxFilterLengthPs[x][y] e maxFilterLengthQs[x][y] são estabelecidos iguais a 3:
[0358] A altura em amostras de croma do bloco de transformada na localização croma (xCb+x, yCb+y) e a altura na localização croma (xCb+x, yCb+y−1) são ambas iguais a ou maiores que 8.
[0359] De outra forma, se (yCb+y)%CtbHeightC é igual a 0, isto é, a borda horizontal se sobrepõe à fronteira croma superior de CTB e a altura em amostras de croma do bloco de transformada na localização croma (xCb+x, yCb+y) e a altura na localização croma (xCb+x, yCb+y−1) são ambas iguais a ou maiores que 8, então maxFilterLengthPs[x][y] é estabelecido em 1 e maxFilterLengthQs[x][y] são estabelecidos iguais a 3 e a variável isHorCTBBoundary é estabelecida como verdadeira.
[0360] De outra forma, maxFilterLengthPs[x][y] e maxFilterLengthQs[x][y] são estabelecidos iguais a 1.
[0361] A modalidade descrita acima também poderia ser expressa como a modificação a seguir para o esboço de VVC (parte 8.8.3.6.3): ……
8.8.3.6.3 Processo de decisão para croma bordas de bloco
[0362] Quando maxFilterLengthCbCr é igual a 3, as seguintes etapas ordenadas se aplicam:
1. As variáveis n1, dpq0, dpq1, dp, dq e d são derivadas conforme a seguir: n1 = ( subSampleC == 2 ) ? 1 : 3 (8-1138)
[0363] Se a variável isHorCTBBoundary é verdadeira, então p3,0= p1,0, p2,0= p1,0 e p3,n1= p1,n1, p2,n1= p1,n1 dp0 = Abs(p2,0−2*p1,0+p0,0) (8-1139) dp1 = Abs(p2,n1−2*p1,n1+p0,n1) (8-1140) dq0 = Abs(q2,0−2*q1,0+q0,0) (8-1141) dq1 = Abs(q2,n1−2*q1,n1+q0,n1) (8-1142) dpq0 = dp0+dq0 (8-1143) dpq1 = dp1+dq1 (8-1144) dp = dp0+dp1 (8-1145) dq = dq0+dq1 (8-1146) d = dpq0+dpq1 (8-1147) ……
[0364] Desse modo, a presente revelação também pode usar um filtro assimétrico também para a desblocagem de croma (similar a desblocagem de luma), que modifica 1(uma) amostra do bloco superior, mas pode modificar até 3 amostras do bloco inferior como mostrado na Figura18. Uma vez que mais amostras são modificadas, o filtro supostamente pode remover os artefatos de blocagem mais eficientemente quando comparado a usar filtro Croma normal que somente modifica 1 (uma) amostra em qualquer dos lados da borda. A presente revelação além disso também permite aperfeiçoar a qualidade subjetiva para blocos maiores nas fronteiras de CTU croma horizontais.
[0365] A Figura 6 é um diagrama de blocos ilustrando um aparelho de filtro de desblocagem exemplificativo 600 de acordo com as técnicas descritas nessa revelação (detalhes adicionais serão descritos abaixo, por exemplo, com base nas Figuras 7, 8 ou Figura10 a 12). O aparelho de filtro de desblocagem 600 pode ser configurado para realizar técnicas de desblocagem de acordo com vários exemplos descritos no presente pedido. Em geral, um dos ou tanto o filtro loop 120 da Figura 1 quanto o filtro loop 220 da Figura 2 pode(m) incluir componentes substancialmente similares àqueles do filtro de desblocagem 600. Outros dispositivos de codificação de vídeo, tais como codificadores de vídeo, decodificadores de vídeo, codificador/decodificadores (CODECs) de vídeo, e semelhantes podem também incluir componentes substancialmente similares ao filtro de desblocagem 600. O filtro de desblocagem 600 pode ser implantado em hardware, software, ou firmware, ou qualquer combinação dos mesmos. Quando implantado em software ou firmware, hardware correspondente (tal como um ou mais processadores ou unidades de processamento e memória para armazenar instruções para o software ou firmware) pode também ser fornecido.
[0366] No exemplo da Figura 6, o aparelho de filtro de desblocagem 600 inclui unidade de determinação de desblocagem 604, definições de suporte 602 armazenadas na memória, unidade de filtragem de desblocagem 606, parâmetros de filtro de desblocagem 608 armazenados na memória, unidade de localizar borda 603, e estrutura de dados de localizações de borda 605. Qualquer um dos ou todos os componentes de filtro de desblocagem 600 podem ser funcionalmente integrados. Os componentes de filtro de desblocagem 600 são ilustrados separadamente somente para propósitos de ilustração. Em geral, o filtro de desblocagem 600 recebe dados para blocos decodificados, por exemplo, a partir de um componente de soma 114, 214 que combina dados de predição com dados residuais para os blocos. Os dados podem adicionalmente incluir uma indicação de como os blocos foram preditos. No exemplo descrito abaixo, o aparelho de filtro de desblocagem 600 é configurado para receber dados incluindo um bloco de vídeo decodificado associado a um CTB (ou uma LCU) e uma árvore quaternária de CU para o CTB, onde a árvore quaternária de CU descreve como o CTB é partido em CUs e modos de predição para PUs e TUs de CUs de nó folha.
[0367] O aparelho de filtro de desblocagem 600 pode manter estrutura de dados de localizações de borda 605 em uma memória de aparelho de filtro de desblocagem 600, ou em uma memória externa fornecida por um dispositivo codificação de vídeo correspondente. Em alguns exemplos, a unidade de localizar borda 603 pode receber uma árvore quaternária correspondente a um CTB que indica como o CTB é partido em CUs. A unidade de localizar borda 603 pode então analisar a árvore quaternária de CU para determinar bordas entre blocos de vídeo decodificados associados a TUs e PUs de CUs no CTB que são candidatos a desblocagem.
[0368] A estrutura de dados de localizações de borda 605 pode compreender um arranjo tendo uma dimensão horizontal, uma dimensão vertical, e uma dimensão representativa de bordas horizontais e bordas verticais. Em geral, bordas entre blocos de vídeo podem ocorrer entre dois blocos de vídeo associados com CUs de menor tamanho do CTB, ou TUs e PUs da CUs. Assumindo que o CTB tem um tamanho de N×N, e assumindo que a CU de menor tamanho do CTB é de tamanho M×M, o arranjo pode compreender um tamanho de [N/M]×[N/M]×2, onde “2” representa a duas possíveis direções de bordas entre CUs (horizontal e vertical). Por exemplo, assumindo que um CTB tem 64×64 pixels e uma CU de menor tamanho de8×8, o arranjo pode compreender [8]×[8]×[2] entradas.
[0369] Cada entrada pode de modo geral corresponder a uma possível borda entre dois blocos de vídeo. Bordas poderiam de fato não existir em cada uma das posições dentro da LCU correspondente para cada uma das entradas de estrutura de dados de localizações de borda 605. Consequentemente, valores da estrutura de dados podem ser inicializados como falsos. Em geral, a unidade de localizar borda 603 pode analisar a árvore quaternária de CU para determinar localizações de bordas entre dois blocos de vídeo associados a TUs e PUs de CUs do CTB e estabelecer valores correspondentes em estrutura de dados de localizações de borda 605 como verdadeiras.
[0370] Em geral, as entradas do arranjo podem descrever se uma borda correspondente existe no CTB como um candidato para desblocagem. Isto é, quando a unidade de localizar borda 603 determina que existe uma borda entre dois blocos de vídeo vizinhos associados a TUs e PUs de CUs do CTB, unidade de localizar borda 603 pode estabelecer um valor da entrada correspondente em estrutura de dados de localizações de borda 605 para indicar que a borda existe (por exemplo, para um valor de “verdadeiro”).
[0371] A unidade de determinação de desblocagem 604 de modo geral determina se, para dois blocos vizinhos, uma borda entre os dois blocos deve ser desblocada. A unidade de determinação de desblocagem 604 pode determinar localizações de bordas usando estrutura de dados de localizações de borda 605. Quando um valor de estrutura de dados de localizações de borda 605 tem um valor booleano, a unidade de determinação de desblocagem 604 pode determinar que um valor “verdadeiro” indica a presença de uma borda, e um valor “falso” indica que nenhuma borda está presente, em alguns exemplos.
[0372] Em geral, a unidade de determinação de desblocagem 604 é configurada com uma ou mais funções de determinação de desblocagem. As funções podem incluir uma pluralidade de coeficientes aplicados a linhas de pixels que cruzam a borda entre os blocos. Por exemplo, para blocos de luma, as funções podem ser aplicadas a uma linha de pixels que é perpendicular à borda, onde MA (tais como 3, 4 ou 5) pixels estão em um dos dois blocos e MB (tal como 7) pixels estão no outro dos dois blocos. Por exemplo, para blocos de croma, as funções podem ser aplicadas a uma linha de pixels que é perpendicular à borda, onde MA (tal como 1) pixels estão em um dos dois blocos e MB (tal como 3) pixels estão no outro dos dois blocos. Definições de suporte 602 definem suporte para as funções. Em geral, o “suporte” corresponde aos pixels aos quais as funções são aplicadas.
[0373] A unidade de determinação de desblocagem 604 pode ser configurada para aplicar uma ou mais funções de determinação de desblocagem a um ou mais conjuntos de suporte, como definido por definições de suporte 602, para determinar se uma borda particular entre dois blocos de dados de vídeo deve ser desblocada. A linha tracejada que se origina a partir da unidade de determinação de desblocagem 604 representa dados para blocos sendo emitidos sem serem filtrados. Em casos onde a unidade de determinação de desblocagem 604 determina que uma borda entre dois blocos não deve ser filtrada, o filtro de desblocagem 600 pode emitir os dados para os blocos sem alterar os dados. Isto é, os dados podem contornar a unidade de filtragem de desblocagem 606. Por outro lado, quando a unidade de determinação de desblocagem 604 determina que uma borda deve ser desblocada, a unidade de determinação de desblocagem 604 pode levar a unidade de filtragem de desblocagem 606 a filtrar valores para pixels perto da borda a fim de desblocar a borda.
[0374] A unidade de filtragem de desblocagem 606 recupera definições de filtros de desblocagem a partir de parâmetros de filtro de desblocagem 608 para bordas a serem desblocadas, como indicado pela unidade de determinação de desblocagem 604. Em geral, a filtragem de uma borda usa valores de pixels a partir da vizinhança de uma borda atual a ser desblocada. Portanto, tanto as funções de decisão de desblocagem quanto os filtros de desblocagem podem ter uma determinada região de suporte em ambos os lados de uma borda. Aplicando-se um filtro de desblocagem para pixels na vizinhança de uma borda, a unidade de filtragem de desblocagem 606 pode suavizar os valores dos pixels de modo que transições de alta frequência perto da borda sejam amortecidas. Dessa maneira, a aplicação de filtros de desblocagem para pixels perto de uma borda pode reduzir artefatos de blocagem perto da borda.
[0375] A presente revelação é aplicável à unidade de determinação de desblocagem 604 e à unidade de filtragem de desblocagem 606 na Figura 6.
[0376] É notado que a tecnologia apresentada no presente documento não é limitada a uma implantação de filtro de desblocagem específica e que o filtro de desblocagem descrito na presente revelação são alguns exemplos das implantações do filtro de desblocagem.
[0377] A Figura 10 é um diagrama de blocos ilustrando um método de desblocagem exemplificativo de acordo com as técnicas descritas nessa revelação (detalhes adicionais serão descritos abaixo, por exemplo, com base nas Figuras 7, 8 e Figuras 16(=16A e 16B), 17 e 18). Em que as bordas de bloco compreendem uma borda de bloco horizontal (por exemplo, borda de CU ou fronteira de CU) entre um primeiro bloco de codificação e um segundo bloco de codificação, em que a borda de bloco horizontal se sobrepõe a uma fronteira de bloco de árvore de codificação (CTB), em que o primeiro bloco de codificação P é o bloco acima da fronteira de CTB e o segundo bloco de codificação Q é o bloco abaixo da fronteira de CTB; em que o primeiro bloco de codificação tem um tamanho de bloco SA ao longo de uma direção vertical sendo perpendicular à borda de bloco horizontal, em que o segundo bloco de codificação tem um tamanho de bloco SB ao longo de uma direção vertical sendo perpendicular à borda de bloco horizontal,
[0378] Na Figura 10, uma modalidade do método de desblocagem é mostrada.
[0379] Em uma etapa 1001, usar no máximo um número DA de valores de amostra do primeiro bloco de codificação, adjacente à borda de bloco horizontal, como primeiros valores de decisão de filtro,
[0380] Em uma etapa 1002, usar no máximo um número DB de valores de amostra do segundo bloco de codificação, adjacente à borda de bloco horizontal, como segundos valores de decisão de filtro,
[0381] Em uma etapa 1003, modificar no máximo um número MA de valores de amostra do primeiro bloco de codificação, adjacente à borda de bloco horizontal, como primeiros valores emitidos de filtro,
[0382] Em uma etapa 1004, modificar no máximo um número MB de valores de amostra do segundo bloco de codificação, adjacente à borda de bloco horizontal, como segundos valores emitidos de filtro, em que DA ≠ DB e MA ≠ MB, SA > DA > MA e SB > DB> MB.
[0383] Se um tamanho do buffer de linha (por exemplo, o tamanho de buffer de linha) é X, então para o primeiro bloco de codificação P, DA=X e MA=X- 1; e a amostra pi do primeiro bloco de codificação P é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de codificação P e que estão fora do buffer de linha. Se o tamanho de buffer de linha é X, então i = X-1.
[0384] Em uma possível forma de implantação adicional da modalidade, em que SA ≠ SB, ou SA = SB.
[0385] Em uma possível forma de implantação adicional da modalidade, em que DA < DB e MA < MB.
[0386] Em uma possível forma de implantação adicional da modalidade, DB= 8 e DA=6, MB = 7 e MA = 5.
[0387] Em uma possível forma de implantação adicional da modalidade, DB= 8 e DA=7, MB = 7 e MA = 6.
[0388] Em uma possível forma de implantação adicional da modalidade, DB= 8 e DA=5, MB = 7 e MA = 4.
[0389] Em uma possível forma de implantação adicional da modalidade, DB= 8 e DA=4, MB = 7 e MA = 3.
[0390] Em uma possível forma de implantação adicional da modalidade, quando um buffer de 6 linhas (por exemplo, um buffer de linha com o tamanho de buffer de linha sendo 6) é aplicado, uma equação de condição de filtro estendido 𝑠𝑝3′ = ( sp3 + Abs( p5− p3 ) + 1) >> 1 é verificada.
[0391] Quando uma ou mais equações de condição de filtro compreendendo a equação de condição de filtro estendido são satisfeitas, o primeiro filtro é aplicado a valores de amostra do primeiro bloco de codificação P, adjacente à borda de bloco horizontal sobreposta à fronteira de CTB. Aqui, sp3 =Abs(p3−p0), e 𝑝i representa o valor de amostra do primeiro bloco de codificação P usado na decisão de filtro, i=0, 1, 2, 3, 4 ou 5.
[0392] Em uma possível forma de implantação adicional da modalidade, quando um buffer de 6 linhas é aplicado e o segundo bloco de codificação Q com o tamanho de bloco SB >= um tamanho predefinido (tal como 32), uma equação de condição de filtro estendido 𝑠𝑞3′ = ( sq3 + Abs( q7−q3 ) + 1) >> 1 é verificada. Quando uma ou mais equações de condição de filtro compreendendo a equação de condição de filtro estendido são satisfeitas, o primeiro filtro é aplicado a valores de amostra do segundo bloco de codificação Q, adjacente à borda de bloco horizontal sobreposta à fronteira de CTB. Aqui, sq3 = Abs(q0−q3), e 𝑞𝑖 representa o valor de amostra do segundo bloco de codificação Q usado na decisão de filtro, i=0, 1, 2, 3, 4… ou 7.
[0393] Em uma possível forma de implantação adicional da modalidade, quando um buffer de 4 linhas é aplicado, uma equação de condição de filtro estendido 𝑠𝑝3′ = ( sp3 + Abs( p3–p0 ) + 1) >> 1 é verificada. Quando uma ou mais equações de condição de filtro compreendendo a equação de condição de filtro estendido são satisfeitas, o primeiro filtro é aplicado a valores de amostra do primeiro bloco de codificação P, adjacente à borda de bloco horizontal sobreposta à fronteira de CTB. Aqui, sp3 =Abs(p3−p0), e 𝑝i representa o valor de amostra do primeiro bloco de codificação P usado na decisão de filtro, i=0, 1, 2 ou 3.
[0394] Em uma possível forma de implantação adicional da modalidade, os primeiros valores emitidos de filtro 𝑝𝑖 ´ e os segundos valores emitidos de filtro 𝑞𝑖 ´ para i=0 a S-1 são formulados como a seguir:
𝑝𝑖 ´ = (𝑓𝑖 ∗ 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 + (64 − 𝑓𝑖 ) ∗ 𝑃𝑠 + 32) ≫ 6), 𝑟𝑒𝑐𝑜𝑟𝑡𝑎𝑑𝑜 𝑝𝑎𝑟𝑎 𝑝𝑖 ± 𝑡𝑐𝑃𝐷𝑖 𝑞𝑖 ´ = (𝑔𝑖 ∗ 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 + (64 − 𝑔𝑖 ) ∗ 𝑄𝑠 + 32) ≫ 6), 𝑟𝑒𝑐𝑜𝑟𝑡𝑎𝑑𝑜 𝑝𝑎𝑟𝑎 𝑞𝑖 ± 𝑡𝑐𝑃𝐷𝑖 em que 𝑡𝑐𝑃𝐷𝑖 é um parâmetro de recorte dependente de posição, 𝑔𝑖 , 𝑓𝑖 , 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 , 𝑃𝑠 e 𝑄𝑠 dependem de S; 𝑝i representa o valor de amostra do primeiro bloco de codificação P; e 𝑞𝑖 representa o valor de amostra do segundo bloco de codificação Q. em que S= MA para o primeiro bloco de codificação P, isto é, um número máximo das amostras que podem ser modificadas em cada coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, ou S=MB para o segundo bloco de codificação Q, isto é, o número máximo das amostras que podem ser modificadas em cada coluna do segundo bloco de imagem Q que é perpendicular e adjacente à borda de bloco horizontal.
[0395] Em uma possível forma de implantação adicional da modalidade, o tamanho de buffer de linha X=6, 𝑔𝑖 , 𝑓𝑖 , 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 , 𝑃𝑠 e 𝑄𝑠 depende de S conforme a seguir: 5, 7 (S(=MA)=5 para o primeiro bloco de 𝑓𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {59,50,41,32,23,14,5} codificação 𝑔𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {59,50,41,32,23,14,5} P, 𝑀𝑖𝑑𝑑𝑙𝑒7,7 = (2 ∗ (𝑝𝑜 + 𝑞𝑜 ) + 𝑝1 + 𝑞1 + 𝑝2 + 𝑞2 +𝑝3 + 𝑞3 +𝑝4 + 𝑞4 +𝑝5 + 𝑞5 +𝑝5 + 𝑞6 S(=MB)=7 + 8) ≫ 4 para o 𝑃7 = (𝑝5 + 𝑝5 + 1) ≫ 1, 𝑄7 = (𝑞6 + 𝑞7 + 1) ≫ 1 segundo bloco de codificação Q) 5, 3 (S(=MA)=5 𝑓𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {59,50,41,32,23,14,5} para o 𝑔𝑖 = 53 − 𝑖 ∗ 21, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {53,32,11} primeiro 𝑀𝑖𝑑𝑑𝑙𝑒7,3 = (2 ∗ (𝑝𝑜 + 𝑞𝑜 ) + 𝑞0 + 2 ∗ (𝑞1 + 𝑞2 ) + 𝑝1 + 𝑞1 + 𝑝2 +𝑝3 +𝑝4 +𝑝5 + 𝑝5 + bloco de 8) ≫ 4 codificação 𝑃7 = (𝑝5 + 𝑝5 + 1) ≫ 1, 𝑄3 = (𝑞2 + 𝑞3 + 1) ≫ 1 P,
S(=MB)=3 para o segundo bloco de codificação Q) 3, 7 (S(=MA)=3 para o primeiro bloco de 𝑔𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {59,50,41,32,23,14,5} codificação 𝑓𝑖 = 53 − 𝑖 ∗ 21, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {53,32,11} P, 𝑀𝑖𝑑𝑑𝑙𝑒3.7 = (2 ∗ (𝑞𝑜 + 𝑝𝑜 ) + 𝑝0 + 2 ∗ (𝑝1 + 𝑝2 ) + 𝑞1 + 𝑝1 + 𝑞2 +𝑞3 +𝑞4 +𝑞5 + 𝑞6 + S(=MB)=7 8) ≫ 4 para o 𝑄7 = (𝑞6 + 𝑞7 + 1) ≫ 1, 𝑃3 = (𝑝2 + 𝑝3 + 1) ≫ 1 segundo bloco de codificação Q)
[0396] Em uma possível forma de implantação adicional da modalidade, o tamanho de buffer de linha X=4, 𝑔𝑖 , 𝑓𝑖 , 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 , 𝑃𝑠 e 𝑄𝑠 depende de S conforme a seguir: 3, 7 (S(=MA)=3 para o primeiro bloco de 𝑔𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {59,50,41,32,23,14,5} codificação 𝑓𝑖 = 53 − 𝑖 ∗ 21, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {53,32,11} P; 𝑀𝑖𝑑𝑑𝑙𝑒3.7 = (2 ∗ (𝑞𝑜 + 𝑝𝑜 ) + 𝑝0 + 2 ∗ (𝑝1 + 𝑝2 ) + 𝑞1 + 𝑝1 + 𝑞2 +𝑞3 +𝑞4 +𝑞5 + 𝑞6 + S(=MB)=7 8) ≫ 4 para o 𝑄7 = (𝑞6 + 𝑞7 + 1) ≫ 1, 𝑃3 = (𝑝2 + 𝑝3 + 1) ≫ 1 segundo bloco de codificação Q)
[0397] Em uma possível forma de implantação adicional da modalidade, um coeficiente de filtro de uma amostra pi do primeiro bloco de codificação P é determinado de uma maneira tal que a amostra pi, que pertence ao primeiro bloco de codificação P e que é a amostra mais externa permitida para ser armazenada no buffer de linha, é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de codificação P e que estão fora do buffer de linha.
[0398] Em uma possível forma de implantação adicional da modalidade, um buffer de linha tem o tamanho de buffer de linha de 6 linhas, e as amostras p0 a p4 são modificadas a partir do primeiro bloco de codificação P para serem as amostras p0’ a p4’.
[0399] Em uma possível forma de implantação adicional da modalidade, o primeiro filtro é um filtro tap longo ou um filtro assimétrico ou um filtro tap assimétrico.
[0400] Em uma possível forma de implantação adicional da modalidade, as amostras pi do primeiro bloco de codificação P são amostras de luma e/ou croma.
[0401] Deve ser notado que os valores de entrada de filtro são valores consecutivos os quais são perpendiculares e adjacentes à borda de bloco começando na borda de bloco. Além disso, os valores emitidos de filtro são valores consecutivos os quais são perpendiculares e adjacentes à borda de bloco, começando na borda de bloco.
[0402] A Figura 11 é um diagrama de blocos ilustrando um outro método de desblocagem exemplificativo de acordo com as técnicas descritas nessa revelação (detalhes adicionais serão descritos abaixo, por exemplo, com base nas Figuras 7, 8 e Figuras 16(=16A e 16B), 17 e 18).
[0403] Em uma etapa 1101, determinar bordas entre blocos, em que as bordas entre blocos compreendem uma borda de bloco horizontal (por exemplo, borda de CU ou fronteira de CU) entre um primeiro bloco de codificação P e um segundo bloco de codificação Q e a borda de bloco horizontal se sobrepõe a uma fronteira de bloco de árvore de codificação (CTB), em que o primeiro bloco de codificação P é o bloco acima da fronteira de CTB e o segundo bloco de codificação Q é o bloco abaixo da fronteira de CTB.
[0404] Em uma etapa 1102, determinar se a borda de bloco horizontal entre o primeiro bloco de codificação P e o segundo bloco de codificação Q é para ser filtrada aplicando-se um primeiro filtro (isto é, um filtro tap longo ou um filtro assimétrico ou um filtro tap assimétrico ou um filtro de desblocagem de HEVC) com base em:
- no máximo um número DA de valores de amostra do primeiro bloco de codificação, adjacente à borda de bloco horizontal, como primeiros valores de decisão de filtro e - no máximo um número DB de valores de amostra do segundo bloco de codificação, adjacente à borda de bloco horizontal, como segundos valores de decisão de filtro; em que DA ≠ DB ou DA < DB, DA é igual a um tamanho de buffer de linha;
[0405] Em uma etapa 1103, aplicar o primeiro filtro (isto é, um filtro tap longo ou um filtro assimétrico ou um filtro tap assimétrico) a valores de amostras perto da borda de bloco horizontal entre o primeiro bloco de codificação P e o segundo bloco de codificação Q, quando é determinado que a borda de bloco horizontal entre o primeiro bloco de codificação P e o segundo bloco de codificação Q é para ser filtrada aplicando-se o primeiro filtro.
[0406] Em uma possível forma de implantação adicional da modalidade, se um tamanho do buffer de linha (por exemplo, o tamanho de buffer de linha) é X, então para o primeiro bloco de codificação P, DA=X; e a amostra pi do primeiro bloco de codificação P é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de codificação P e que estão fora do buffer de linha, em que se o tamanho de buffer de linha é X, então i = X-1.
[0407] Em uma possível forma de implantação adicional da modalidade, no máximo um número MA de valores de amostra do primeiro bloco de codificação adjacente à borda de bloco horizontal são modificados e no máximo um número MB de valores de amostra do segundo bloco de codificação adjacente à borda de bloco horizontal são modificados; em que MA ≠ MB ou MA < MB.
[0408] Em uma possível forma de implantação adicional da modalidade, se um tamanho do buffer de linha (por exemplo, o tamanho de buffer de linha) é X, então para o primeiro bloco de codificação P, MA=X-1; e a amostra pi do primeiro bloco de codificação P é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de codificação P e que estão fora do buffer de linha, em que se o tamanho de buffer de linha é X, então i = X-1.
[0409] Em uma possível forma de implantação adicional da modalidade, DB= 8 e DA=6; MB = 7 e MA = 5.
[0410] Em uma possível forma de implantação adicional da modalidade, quando um tamanho do buffer de linha (por exemplo, o tamanho de buffer de linha) é 6, no máximo um número L de linhas a partir do primeiro bloco de codificação P é permitida para ser usado para decisão de filtragem, L=6.
[0411] Em uma possível forma de implantação adicional da modalidade, quando um buffer de 6 linhas (por exemplo, um buffer de linha com o tamanho de buffer de linha sendo 6) é aplicado, a unidade de determinação de desblocagem é configurada para determinar se uma equação de condição de filtro estendido 𝑠𝑝3′ = (sp3 + Abs(p5−p3) + 1) >> 1 é satisfeita. Quando uma ou mais equações de condição de filtro compreendendo a equação de condição de filtro estendido são satisfeitas, o primeiro filtro é aplicado a valores de amostra do primeiro bloco de codificação P, adjacente à borda de bloco horizontal sobreposta à fronteira de CTB. Aqui, sp3 =Abs(p3−p0), e 𝑝i representa o valor de amostra do primeiro bloco de codificação P usado na decisão de filtro, i=0, 1, 2, 3, 4 ou 5.
[0412] Sp3 basicamente é uma métrica que é calculada em HEVC conforme a seguir: Abs(p3−p0). Agora para blocos maiores, isto é, blocos onde SA> = 32, então sp3 é estendido pela equação 𝑠𝑝3′ = (sp3 + Abs(p7−p3) + 1) >> 1, onde p7 é preenchido por p5.
[0413] Basicamente a condição de filtro muda principalmente para bloco de codificação P. Para bloco de codificação Q, a condição de filtro permanece a mesma tanto para as bordas na fronteira de CTB e as bordas que não se encontram na fronteira de CTB.
[0414] Em uma possível forma de implantação adicional da modalidade, quando um buffer de 6 linhas é aplicado e o segundo bloco de codificação Q tem o tamanho de bloco SB maior que ou igual a um tamanho predefinido (tal como 32), a unidade de determinação de desblocagem é configurada para determinar se uma equação de condição de filtro estendido 𝑠𝑞3′ = ( sq3 + Abs( q7−q3 ) + 1) >> 1 é satisfeita.
[0415] Quando uma ou mais equações de condição de filtro compreendendo a equação de condição de filtro estendido são satisfeitas, o primeiro filtro é aplicado a valores de amostra do segundo bloco de codificação Q, adjacente à borda de bloco horizontal sobreposta à fronteira de CTB.
[0416] Aqui, sq3 = Abs(q0−q3), e 𝑞𝑖 representa o valor de amostra do segundo bloco de codificação Q usado na decisão de filtro, i=0, 1, 2, 3, 4… ou 7.
[0417] Em uma possível forma de implantação adicional da modalidade, quando um buffer de 4 linhas é aplicado, a unidade de determinação de desblocagem é configurada para determinar se uma equação de condição de filtro estendido 𝑠𝑝3′ = (sp3 + Abs( p3–p0 ) + 1) >> 1 é satisfeita.
[0418] Quando uma ou mais equações de condição de filtro compreendendo a equação de condição de filtro estendido são satisfeitas, o primeiro filtro é aplicado a valores de amostra do primeiro bloco de codificação P, adjacente à borda de bloco horizontal sobreposta à fronteira de CTB. Aqui, sp3 =Abs(p3−p0), e 𝑝i representa o valor de amostra do primeiro bloco de codificação P usado na decisão de filtro, i=0, 1, 2 ou 3.
[0419] Em uma possível forma de implantação adicional da modalidade, a unidade de filtragem de desblocagem é configurada para determinar os primeiros valores emitidos de filtro 𝑝𝑖 ´ e os segundos valores emitidos de filtro 𝑞𝑖 ´ para i=0 a S-1 com base na seguinte equação: 𝑝𝑖 ´ = (𝑓𝑖 ∗ 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 + (64 − 𝑓𝑖 ) ∗ 𝑃𝑠 + 32) ≫ 6), 𝑟𝑒𝑐𝑜𝑟𝑡𝑎𝑑𝑜 𝑝𝑎𝑟𝑎 𝑝𝑖 ± 𝑡𝑐𝑃𝐷𝑖 𝑞𝑖 ´ = (𝑔𝑖 ∗ 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 + (64 − 𝑔𝑖 ) ∗ 𝑄𝑠 + 32) ≫ 6), 𝑟𝑒𝑐𝑜𝑟𝑡𝑎𝑑𝑜 𝑝𝑎𝑟𝑎 𝑞𝑖 ± 𝑡𝑐𝑃𝐷𝑖 em que 𝑡𝑐𝑃𝐷𝑖 é um parâmetro de recorte dependente de posição, 𝑔𝑖 , 𝑓𝑖 , 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 , 𝑃𝑠 e 𝑄𝑠 dependem de S; 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 é 𝑀𝑖𝑑𝑑𝑙𝑒7,7 𝑜𝑢 𝑀𝑖𝑑𝑑𝑙𝑒7,3 𝑜𝑢 𝑀𝑖𝑑𝑑𝑙𝑒3.7 𝑐𝑜𝑚 𝑏𝑎𝑠𝑒 𝑒𝑚 𝑆 𝑝𝑎𝑟𝑎 𝑏𝑙𝑜𝑐𝑜 𝑃 𝑒𝑄 𝑝i representa o valor de amostra do primeiro bloco de codificação P; e 𝑞𝑖 representa o valor de amostra do segundo bloco de codificação Q. em que S= MA para o primeiro bloco de codificação P, isto é, um número máximo das amostras que podem ser modificadas em cada coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, ou S=MB para o segundo bloco de codificação Q, isto é, o número máximo das amostras que podem ser modificadas em cada coluna do segundo bloco de imagem Q que é perpendicular e adjacente à borda de bloco horizontal.
[0420] Em uma possível forma de implantação adicional da modalidade, o tamanho de buffer de linha X=6, 𝑔𝑖 , 𝑓𝑖 , 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 , 𝑃𝑠 e 𝑄𝑠 depende de S conforme a seguir:
5, 7 (S(=MA)=5 para o primeiro bloco de 𝑓𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {59,50,41,32,23,14,5} codificação 𝑔𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {59,50,41,32,23,14,5} P, 𝑀𝑖𝑑𝑑𝑙𝑒7,7 = (2 ∗ (𝑝𝑜 + 𝑞𝑜 ) + 𝑝1 + 𝑞1 + 𝑝2 + 𝑞2 +𝑝3 + 𝑞3 +𝑝4 + 𝑞4 +𝑝5 + 𝑞5 +𝑝5 + 𝑞6 S(=MB)=7 + 8) ≫ 4 para o 𝑃7 = (𝑝5 + 𝑝5 + 1) ≫ 1, 𝑄7 = (𝑞6 + 𝑞7 + 1) ≫ 1 segundo bloco de codificação Q) 5, 3 (S(=MA)=5 para o primeiro bloco de 𝑓𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {59,50,41,32,23,14,5} codificação 𝑔𝑖 = 53 − 𝑖 ∗ 21, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {53,32,11} P, 𝑀𝑖𝑑𝑑𝑙𝑒7,3 = (2 ∗ (𝑝𝑜 + 𝑞𝑜 ) + 𝑞0 + 2 ∗ (𝑞1 + 𝑞2 ) + 𝑝1 + 𝑞1 + 𝑝2 +𝑝3 +𝑝4 +𝑝5 + 𝑝5 + S(=MB)=3 8) ≫ 4 para o 𝑃7 = (𝑝5 + 𝑝5 + 1) ≫ 1, 𝑄3 = (𝑞2 + 𝑞3 + 1) ≫ 1 segundo bloco de codificação Q) 3, 7 (S(=MA)=3 para o primeiro bloco de 𝑔𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {59,50,41,32,23,14,5} codificação 𝑓𝑖 = 53 − 𝑖 ∗ 21, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {53,32,11} P, 𝑀𝑖𝑑𝑑𝑙𝑒3.7 = (2 ∗ (𝑞𝑜 + 𝑝𝑜 ) + 𝑝0 + 2 ∗ (𝑝1 + 𝑝2 ) + 𝑞1 + 𝑝1 + 𝑞2 +𝑞3 +𝑞4 +𝑞5 + 𝑞6 + S(=MB)=7 8) ≫ 4 para o 𝑄7 = (𝑞6 + 𝑞7 + 1) ≫ 1, 𝑃3 = (𝑝2 + 𝑝3 + 1) ≫ 1 segundo bloco de codificação Q)
[0421] É notado P7 ou P3 é basicamente 𝑃𝑠 𝑛𝑎 𝑒𝑞𝑢𝑎çã𝑜. Similarmente,
Q7 ou Q3 é basicamente 𝑄𝑠 𝑛𝑎 𝑒𝑞𝑢𝑎çã𝑜.
[0422] Em uma possível forma de implantação adicional da modalidade, o tamanho de buffer de linha X=4, 𝑔𝑖 , 𝑓𝑖 , 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 , 𝑃𝑠 e 𝑄𝑠 depende de S conforme a seguir: 3, 7 (S(=MA)=3 para o primeiro bloco de 𝑔𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {59,50,41,32,23,14,5} codificação 𝑓𝑖 = 53 − 𝑖 ∗ 21, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {53,32,11} P; 𝑀𝑖𝑑𝑑𝑙𝑒3.7 = (2 ∗ (𝑞𝑜 + 𝑝𝑜 ) + 𝑝0 + 2 ∗ (𝑝1 + 𝑝2 ) + 𝑞1 + 𝑝1 + 𝑞2 +𝑞3 +𝑞4 +𝑞5 + 𝑞6 + S(=MB)=7 8) ≫ 4 para o 𝑄7 = (𝑞6 + 𝑞7 + 1) ≫ 1, 𝑃3 = (𝑝2 + 𝑝3 + 1) ≫ 1 segundo bloco de codificação Q)
[0423] Em uma possível forma de implantação adicional da modalidade, um coeficiente de filtro de uma amostra pi do primeiro bloco de codificação P é determinado de uma maneira tal que a amostra pi, que pertence ao primeiro bloco de codificação P e que é a amostra mais externa permitida para ser armazenada no buffer de linha, é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de codificação P e que estão fora do buffer de linha.
[0424] Em uma possível forma de implantação adicional da modalidade, DB= 8 e DA=6, MB = 7 e MA = 5.
[0425] Em uma possível forma de implantação adicional da modalidade, DB= 8 e DA=7, MB = 7 e MA = 6.
[0426] Em uma possível forma de implantação adicional da modalidade, DB= 8 e DA=5, MB = 7 e MA = 4.
[0427] Em uma possível forma de implantação adicional da modalidade, DB= 8 e DA=4, MB = 7 e MA = 3.
[0428] Em uma possível forma de implantação adicional da modalidade, um buffer de linha tem o tamanho de buffer de linha de 6 linhas, e as amostras p0 a p4 são modificadas a partir do primeiro bloco de codificação P para serem as amostras p0’ a p4’.
[0429] Em uma possível forma de implantação adicional da modalidade, as amostras pi do primeiro bloco de codificação P são amostras de luma e/ou croma. Basicamente a mesma ideia de buffer de restrição de linha pode também ser aplicada a filtro tap longo croma. Com base no tamanho de buffer de linha croma, a amostra mais externa correspondente é usada para preencher as outras amostras.
[0430] Como mostrado na Figura 16A ou 16B, a partir do bloco superior (P) um máximo de 6 amostras podem ser usadas na decisão de filtro, e um máximo de 5 amostras podem ser modificadas, enquanto que para o bloco inferior (q), um máximo de 7 amostras podem ser modificadas e um máximo de 8 amostras podem ser usadas na decisão de filtro.
[0431] Deve ser notado que os valores de entrada de filtro são valores consecutivos os quais são perpendiculares e adjacentes à borda de bloco, começando na borda de bloco. Também, os valores emitidos de filtro são valores consecutivos os quais são perpendiculares e adjacentes à borda de bloco, começando na borda de bloco.
[0432] A Figura 12 é um diagrama de blocos ilustrando um método de desblocagem exemplificativo de acordo com as técnicas descritas nessa revelação (detalhes adicionais serão descritos abaixo, por exemplo, com base nas Figuras 7, 8 e Figuras 16(=16A e 16B), 17 e 18). Em que as bordas de bloco compreendem uma borda de bloco horizontal (por exemplo, borda de CU ou fronteira de CU) entre um bloco de imagem atual e um bloco de imagem vizinho do bloco de imagem atual, em que o bloco de imagem atual está acima da borda de bloco horizontal; em que o bloco de imagem atual tem um tamanho de bloco SA ao longo de uma direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal,
[0433] Na Figura 12, uma modalidade do método de desblocagem é mostrada.
[0434] Em uma etapa 1201, no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal, determinar um comprimento de filtro máximo, MA para o bloco de imagem atual pelo menos com base em um tamanho de buffer de linha do buffer de linha associado à fronteira de CTB; e Em uma etapa 1203, modificar valores de no máximo MA amostras do bloco de imagem atual como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal.
[0435] É permitido que a decisão de filtragem e a filtragem sejam sintonizadas de acordo com o buffer de linha disponível e, portanto, isso irá resultar em qualidade subjetiva ideal. em que se o buffer de linha associado à fronteira de CTB tiver o tamanho de buffer de linha de X linhas, MA=X-1, em que X é um número inteiro positivo. em que o método adicionalmente compreende: Em uma etapa 1202, no caso em que a borda de bloco horizontal é sobreposta à fronteira de bloco de árvore de codificação (CTB) horizontal, usar valores de no máximo DA amostras do bloco de imagem atual como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal.
[0436] Em algumas possíveis formas de implantação da modalidade, se o buffer de linha associado à fronteira de CTB tiver o tamanho de buffer de linha de X linhas, DA=X e MA=X-1, em que X é um número inteiro positivo.
[0437] Em algumas possíveis formas de implantação da modalidade, quando o bloco de imagem atual é um bloco de croma, o buffer de linha associado à fronteira de CTB tem o tamanho de buffer de linha de 2 linhas, ou quando o bloco de imagem atual é um bloco de luma, o buffer de linha associado à fronteira de CTB tem o tamanho de buffer de linha de 4 linhas.
[0438] Em algumas possíveis formas de implantação da modalidade, se o buffer de linha associado à fronteira de CTB tiver o tamanho de buffer de linha de X linhas, uma amostra pi do bloco de imagem atual é usada como um valor preenchido que substitui as outras amostras que pertencem ao bloco de imagem atual e que estão fora do buffer de linha, em que i = X-1.
[0439] Pode ser notado que a amostra pi do bloco de imagem atual é a amostra croma pi do bloco atual croma.
[0440] Pode ser notado que a amostra pi do bloco de imagem atual é a X-ésima amostra em uma coluna perpendicular e adjacente à borda de bloco horizontal, e é também a amostra mais externa permitida para ser armazenada no buffer de linha associado à fronteira de CTB.
[0441] Em uma possível forma de implantação adicional da modalidade, um coeficiente de filtro de uma amostra pi do bloco de imagem atual é determinado de uma maneira tal que a amostra pi, que pertence ao bloco de imagem atual e que é a amostra mais externa permitida para ser armazenada no buffer de linha, é usada como um valor preenchido que substitui as outras amostras que pertencem ao bloco de imagem atual e que estão fora do buffer de linha. Em outras palavras, um coeficiente de filtro associado a uma amostra pi do bloco de imagem atual é determinado com base no número de vezes que a amostra pi é usada como um valor preenchido, em que a amostra pi pertence ao bloco de imagem atual e é a amostra mais externa permitida para ser armazenada no buffer de linha associado à fronteira de CTB. Por exemplo, o número de vezes que uma amostra pi é usada como um valor preenchido é 2, então o coeficiente de filtro associado à amostra pi do bloco de imagem atual é 3, porque a própria amostra pi é também contada.
[0442] De acordo com tal forma de implantação da modalidade, a decisão de filtro original e o processo de filtragem não precisam ser mudados uma vez que as amostras preenchidas podem simplesmente ser tratadas como amostras disponíveis e isso resulta é aumento mínimo em complexidade de computação, especialmente em hardware.
[0443] Em um exemplo, quando o buffer de linha tem o tamanho de buffer de linha de 2 linhas, a amostra pi é a amostra p1, e o coeficiente de filtro associado à amostra p1 é 3.
[0444] Em forma diferente de implantação da modalidade, quando o bloco de imagem atual é um bloco de luma e SA é igual a ou maior que 32, MA = 3, em que SA é a altura do bloco de imagem atual; ou quando o bloco de imagem atual é um bloco de luma e SA é igual a ou maior que 16, MA = 3, em que SA é a altura do bloco de imagem atual.
[0445] Em forma diferente de implantação da modalidade, quando o bloco de imagem atual é um bloco de luma e SA é igual a ou maior que 32, DA=4, em que SA é a altura do bloco de imagem atual; ou quando o bloco de imagem atual é um bloco de luma e SA é igual a ou maior que 16, DA=4, em que SA é a altura do bloco de imagem atual.
[0446] Em uma possível forma de implantação adicional da modalidade, quando o bloco de imagem atual é um bloco de croma e SA é igual a ou maior que 8, MA = 1, em que SA é a altura do bloco de imagem atual.
[0447] Em uma possível forma de implantação adicional da modalidade, quando o bloco de imagem atual é um bloco de croma e SA é igual a ou maior que 8, DA=2, em que SA é a altura do bloco de imagem atual. em que o método adicionalmente compreende: Em uma etapa 1001, quando o bloco de imagem atual é um bloco de croma, determinar se a borda de bloco horizontal é sobreposta a uma fronteira de CTB de croma horizontal; ou quando o bloco de imagem atual é um bloco de luma, determinar se a borda de bloco horizontal é sobreposta a uma fronteira de CTB de luma horizontal.
[0448] É notado que amostras pi do bloco de imagem atual são amostras de luma, ou as amostras pi do bloco de imagem atual são amostras de croma, em que i pertence a {0, 1, 2, … , SA-1}.
[0449] Pode ser entendido que o bloco de imagem atual é um bloco de transformada; ou o bloco de imagem atual é um bloco de codificação.
[0450] A Figura 13 é um diagrama de blocos simplificado de um aparelho 1300 que pode ser usado como um dentre os ou tanto como dispositivo de origem 310 quanto como dispositivo de destino 320 da Figura 3 de acordo com uma modalidade exemplificativa. O aparelho 1300 pode implantar técnicas da presente revelação. O aparelho 1300 pode ser na forma do sistema de computação incluindo múltiplos dispositivos de computação, ou na forma de um único dispositivo de computação, por exemplo, um telefone móvel, um computador tipo tablet, um computador tipo laptop, um computador tipo notebook, um computador de mesa, e semelhantes.
[0451] O processador 1302 de aparelho 1300 pode ser uma unidade de processamento central. Alternativamente, o processador 1302 pode ser qualquer outro tipo de dispositivo, ou múltiplos dispositivos, com capacidade de manipular ou processar informações agora existentes ou posteriormente desenvolvidas. Embora as implantações reveladas possam ser praticadas com um único processador como mostrado, por exemplo, o processador 1302,
vantagens em velocidade e eficiência podem ser conseguidas usando mais que um processador.
[0452] A memória 1304 no aparelho 1300 pode ser um dispositivo de memória somente leitura (ROM) ou um dispositivo de memória de acesso aleatório (RAM) em uma implantação. Qualquer outro tipo adequado de dispositivo de armazenamento pode ser usado como memória 1304. A memória 1304 pode ser usada para armazenar código e/ou dados 1306 que são acessados pelo processador 1302 usando o barramento 1312. A memória 1304 pode adicionalmente ser usada para armazenar o sistema operacional 1308 e programas de aplicativo 1310. Programas de aplicativo 1310 podem incluir pelo menos um programa que permite ao processador 1302 realizar os métodos descritos aqui. Por exemplo, os programas de aplicativo 1310 podem incluir aplicativos 1 a N, e adicionalmente incluir um aplicativo de codificação de vídeo que realize os métodos descritos aqui. O aparelho 1300 pode também incluir memória adicional na forma de armazenamento secundário 1314, o qual pode, por exemplo, ser um cartão de memória usado com um dispositivo de computação móvel. Porque as sessões de comunicação de vídeo podem conter um montante de informações significativas, elas podem ser armazenadas no todo ou em parte no armazenamento 1314 e carregadas na memória 1304 conforme a necessidade para processamento.
[0453] O aparelho 1300 pode também incluir um ou mais dispositivos de saída, tal como o visor 1318. O visor 1318 pode ser, em um exemplo, um visor sensível ao toque que combina um visor com um elemento sensível ao toque operável para detectar entradas por toque. O visor 1318 pode ser acoplado ao processador 1302 por meio do barramento 1312. Outros dispositivos de saída que permitem a um usuário programar ou usar de outra forma o aparelho 1300 podem ser fornecidos além do ou como uma alternativa ao visor 1318. Quando o dispositivo de saída é ou inclui um visor, o visor pode ser implantado de vários modos, incluindo por um visor de cristal líquido (LCD), um visor de tubo de raio catódico (CRT), um visor de plasma ou visor de diodo emissor de luz (LED), tal como um visor de LED orgânico (OLED).
[0454] O aparelho 1300 pode também incluir ou estar em comunicação com um dispositivo de detecção de imagem 1320, por exemplo, uma câmera, ou qualquer outro dispositivo de detecção de imagem 1320 existente agora ou que vai ser desenvolvido posteriormente que possa detectar uma imagem tal como a imagem de um usuário que opera o aparelho 1300. O dispositivo de detecção de imagem 1320 pode ser posicionado de modo que ele esteja direcionado para o usuário que opera o aparelho 1300. Em um exemplo, a posição e eixo geométrico óptico do dispositivo de detecção de imagem 1320 podem estar configurados de modo que o campo de visão inclua uma área que é diretamente adjacente ao visor 1318 e a partir da qual o visor 1318 é visível.
[0455] O aparelho 1300 pode também incluir ou estar em comunicação com um dispositivo de detecção de som 1322, por exemplo, um microfone, ou qualquer outro dispositivo de detecção de som agora existente ou que vai ser desenvolvido posteriormente e que possa detectar sons perto do aparelho 1300. O dispositivo de detecção de som 1322 pode estar posicionado de modo que ele esteja direcionado para o usuário que opera o aparelho 1300 e pode estar configurado para receber sons, por exemplo, fala ou outros sons, feitos pelo usuário quando o usuário opera o aparelho 1300.
[0456] Embora a Figura 13 retrate o processador 1302 e a memória 1304 do aparelho 1300 como sendo integrados em um único dispositivo, outras configurações podem ser utilizadas. As operações do processador 1302 podem ser distribuídas através de múltiplas máquinas (cada máquina tendo um ou mais processadores) que podem ser diretamente acopladas ou através de uma área local ou outra rede. A memória 1304 pode ser distribuída através de múltiplas máquinas tais como uma memória com base em rede ou memória em múltiplas máquinas realizando as operações do aparelho 1300. Embora ilustrado aqui como um único barramento, o barramento 1312 do aparelho 1300 pode compreender múltiplos barramentos. Adicionalmente, o armazenamento secundário 1314 pode ser diretamente acoplado aos outros componentes do aparelho 1300 ou pode ser acessado por meio de uma rede e pode compreender uma única unidade integrada tal como um cartão de memória ou múltiplas unidades tais como múltiplos cartões de memória. O aparelho 1300 pode desse modo ser implantado em uma larga variedade de configurações.
[0457] A Figura 14 é um diagrama esquemático de um exemplo de dispositivo 1400 para codificação de vídeo de acordo com uma modalidade da revelação. O dispositivo de computação 1400 é adequado para implantar as modalidades reveladas como descrito no presente documento. Em uma modalidade, o dispositivo de computação 1400 pode ser um decodificador tal como o decodificador de vídeo 200 da Figura 2 ou um codificador tal como o codificador de vídeo 100 da Figura 1. Em uma modalidade, o dispositivo de computação 1400 pode ser um ou mais componentes do decodificador de vídeo 200 da Figura 2 ou o codificador de vídeo 100 da Figura 1 como descrito acima.
[0458] O dispositivo de computação 1400 compreende portas de ingresso 1420 e unidades de receptor (Rx) 1410 para receber dados; um processador, uma unidade lógica, ou unidade de processamento central (CPU) 1430 para processar os dados; unidades transmissoras (Tx) 1440 e portas de emissão 1450 para transmitir os dados; uma memória 1460 para armazenar os dados. O dispositivo de computação 1400 pode também incluir componentes óptico-para-elétrico (OE) e componentes elétrico-para-óptico (EO) acoplados ás portas de ingresso 1420, às unidades de recebimento 1410, às unidades transmissoras 440, e às portas de emissão 1450 para emissão ou ingresso de sinais ópticos ou elétricos. O dispositivo de computação 1400 pode também incluir transmissores e/ou receptores sem fio em alguns exemplos.
[0459] O processador 1430 é implantado por hardware e software. O processador 1430 pode ser implantado como um ou mais chips de CPU, núcleos (por exemplo, como um processador multinúcleo), arranjos de porta programáveis por campo (FPGAs), circuitos integrados de aplicação específica (ASICs) e processadores de sinal digital (DSPs). O processador 1430 está em comunicação com as portas de ingresso 1420, unidades de recebimento 1410, unidades transmissoras 1440, portas de emissão 1450, e memória 1460. O processador 1430 compreende um módulo de codificação 1414. O módulo de codificação 1414 implanta as modalidades reveladas descritas acima. Por exemplo, o módulo de codificação 1414 implanta, processa, prepara ou fornece as várias operações de codificação. A inclusão do módulo de codificação 1414, portanto fornece um substancial aperfeiçoamento para a funcionalidade do dispositivo de computação 1400 e efetua uma transformação do dispositivo de computação 1400 para um estado diferente. Alternativamente, o módulo de codificação 1414 é implantado como instruções armazenadas na memória 1460 e executadas pelo processador 1430 (por exemplo, como um produto de programa de computador armazenado em uma mídia não transitória).
[0460] A memória 1460 compreende um ou mais discos, unidades de fita, e unidades de estado sólido e pode ser um dispositivo de armazenamento de dados que estouram a capacidade, para armazenar programas quando esses programas são selecionados para execução, e para armazenar instruções e dados que são lidos durante execução de programa. A memória 1460 pode ser, por exemplo, volátil e/ou não volátil e pode ser uma memória somente leitura (ROM), uma memória de acesso aleatório (RAM), uma memória de conteúdo endereçável ternária (TCAM), e/ou uma memória de acesso aleatório estática (SRAM). O dispositivo de computação 1400 pode também incluir dispositivo de entrada/saída (I/O) para interagir com um usuário final. Por exemplo, o dispositivo de computação 1400 pode incluir um visor, tal como um monitor, para emissão visual, alto-falantes para emissão de áudio, e um teclado/mouse/trackball, etc. para entrada por usuário.
[0461] A Figura 19 é um diagrama de blocos ilustrando um dispositivo exemplificativo 1900 de acordo com as técnicas descritas nessa revelação (detalhes adicionais serão descritos abaixo, por exemplo, com base nas Figuras 7, 8 e Figuras 16 (=16A e 16B), 17 e 18). O dispositivo para uso em um codificador de imagem e/ou um decodificador de imagem, para desblocagem de bordas de bloco entre blocos, em que as bordas de bloco compreendem uma borda de bloco horizontal (por exemplo, borda de CU ou fronteira de CU) entre um primeiro bloco de codificação P e um segundo bloco de codificação Q, em que a borda de bloco horizontal se sobrepõe a uma fronteira de unidade de árvore de codificação (CTU), em que o primeiro bloco de codificação P é o bloco acima da fronteira de CTU e o segundo bloco de codificação Q é o bloco abaixo da fronteira de CTU; em que o primeiro bloco de codificação tem um tamanho de bloco SA perpendicular à borda de bloco horizontal, em que o segundo bloco de codificação tem um tamanho de bloco SB perpendicular à borda de bloco horizontal, em que o dispositivo 1900 compreende um filtro de desblocagem 1910 configurado para: - modificar no máximo um número MA de valores de amostra do primeiro bloco de codificação, adjacente à borda de bloco horizontal, como primeiros valores emitidos de filtro, -modificar no máximo um número MB de valores de amostra do segundo bloco de codificação, adjacente à borda de bloco horizontal, como segundos valores emitidos de filtro, - usar no máximo um número DA de valores de amostra do primeiro bloco de codificação, adjacente à borda de bloco horizontal, como primeiros valores de decisão de filtro, - usar no máximo um número DB de valores de amostra do segundo bloco de codificação, adjacente à borda de bloco horizontal, como segundos valores de decisão de filtro, em que DA ≠ DB e MA ≠ MB, SA > DA > MA e SB > DB> MB.
[0462] Em alguma forma de implantação da modalidade, em que se um tamanho do buffer de linha (por exemplo, o tamanho de buffer de linha) é X, então para o primeiro bloco de codificação P, DA=X e MA=X-1; e a amostra pi do primeiro bloco de codificação P é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de codificação P e que estão fora do buffer de linha, em que se o tamanho de buffer de linha é X, então i = X-1.
[0463] Em alguma forma de implantação da modalidade, em que DA < DB e MA < MB.
[0464] Em alguma forma de implantação da modalidade, em que DB= 8 e DA=6, em que MB = 7 e MA = 5.
[0465] Em alguma forma de implantação da modalidade, em que DB= 8 e DA=7, em que MB = 7 e MA = 6.
[0466] Em alguma forma de implantação da modalidade, em que DB= 8 e DA=5, em que MB = 7 e MA = 4.
[0467] Em alguma forma de implantação da modalidade, em que DB= 8 e DA=4, em que MB = 7 e MA = 3.
[0468] Em uma possível forma de implantação adicional da modalidade, em que quando um buffer de 6 linhas (por exemplo, um buffer de linha com o tamanho de buffer de linha sendo 6) é aplicado, uma equação de condição de filtro estendido 𝑠𝑝3′ = ( sp3 + Abs(p5−p3) + 1) >> 1 é verificada; quando uma ou mais equações de condição de filtro compreendendo a equação de condição de filtro estendido são satisfeitas, o primeiro filtro é aplicado a valores de amostra do primeiro bloco de codificação P, adjacente à borda de bloco horizontal sobreposta à fronteira de CTU;
em que sp3 =Abs(p3−p0), e 𝑝i representa o valor de amostra do primeiro bloco de codificação P usado na decisão de filtro, i=0, 1, 2, 3, 4 ou 5.
[0469] Em uma possível forma de implantação adicional da modalidade, em que quando um buffer de 6 linhas é aplicado e o segundo bloco de codificação Q com o tamanho de bloco SB >= um tamanho predefinido (tal como 32), uma equação de condição de filtro estendido 𝑠𝑞3′ = (sq3 + Abs(q7−q3) + 1) >> 1 é verificada; quando uma ou mais equações de condição de filtro compreendendo a equação de condição de filtro estendido são satisfeitas, o primeiro filtro é aplicado a valores de amostra do segundo bloco de codificação Q, adjacente à borda de bloco horizontal sobreposta à fronteira de CTU; em que sq3 = Abs(q0−q3), e 𝑞𝑖 representa o valor de amostra do segundo bloco de codificação Q usado na decisão de filtro, i=0, 1, 2, 3, 4… ou 7.
[0470] Em uma possível forma de implantação adicional da modalidade, em que quando um buffer de 4 linhas é aplicado, uma equação de condição de filtro estendido 𝑠𝑝3′ = (sp3 + Abs(p3–p0) + 1) >> 1 é verificada; quando uma ou mais equações de condição de filtro compreendendo a equação de condição de filtro estendido são satisfeitas, o primeiro filtro é aplicado a valores de amostra do primeiro bloco de codificação P, adjacente à borda de bloco horizontal sobreposta à fronteira de CTU; em que sp3 =Abs(p3−p0), e 𝑝i representa o valor de amostra do primeiro bloco de codificação P usado na decisão de filtro, i=0, 1, 2 ou 3.
[0471] Em uma possível forma de implantação adicional da modalidade, em que os primeiros valores emitidos de filtro 𝑝𝑖 ´ e os segundos valores emitidos de filtro 𝑞𝑖 ´ para i=0 a S-1 são formulados como a seguir: 𝑝𝑖 ´ = (𝑓𝑖 ∗ 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 + (64 − 𝑓𝑖 ) ∗ 𝑃𝑠 + 32) ≫ 6), 𝑟𝑒𝑐𝑜𝑟𝑡𝑎𝑑𝑜 𝑝𝑎𝑟𝑎 𝑝𝑖 ± 𝑡𝑐𝑃𝐷𝑖 𝑞𝑖 ´ = (𝑔𝑖 ∗ 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 + (64 − 𝑔𝑖 ) ∗ 𝑄𝑠 + 32) ≫ 6), 𝑟𝑒𝑐𝑜𝑟𝑡𝑎𝑑𝑜 𝑝𝑎𝑟𝑎 𝑞𝑖 ± 𝑡𝑐𝑃𝐷𝑖 em que 𝑡𝑐𝑃𝐷𝑖 é um parâmetro de recorte dependente de posição, 𝑔𝑖 , 𝑓𝑖 , 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 , 𝑃𝑠 𝑒 𝑄𝑠 dependem de S; 𝑝i representa o valor de amostra do primeiro bloco de codificação P; e 𝑞𝑖 representa o valor de amostra do segundo bloco de codificação Q. em que S= MA para o primeiro bloco de codificação P, isto é, um número máximo das amostras que podem ser modificadas em cada coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, ou S=MB para o segundo bloco de codificação Q, isto é, o número máximo das amostras que podem ser modificadas em cada coluna do segundo bloco de imagem Q que é perpendicular e adjacente à borda de bloco horizontal.
[0472] Em alguma forma de implantação da modalidade, o tamanho de buffer de linha X=6, 𝑔𝑖 , 𝑓𝑖 , 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 , 𝑃𝑠 𝑒 𝑄𝑠 depende de S conforme a seguir: 5, 7 (S(=MA)=5 para o primeiro bloco de 𝑓𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {59,50,41,32,23,14,5} codificação 𝑔𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {59,50,41,32,23,14,5} P, 𝑀𝑖𝑑𝑑𝑙𝑒7,7 = (2 ∗ (𝑝𝑜 + 𝑞𝑜 ) + 𝑝1 + 𝑞1 + 𝑝2 + 𝑞2 +𝑝3 + 𝑞3 +𝑝4 + 𝑞4 +𝑝5 + 𝑞5 +𝑝5 + 𝑞6 S(=MB)=7 + 8) ≫ 4 para o 𝑃7 = (𝑝5 + 𝑝5 + 1) ≫ 1, 𝑄7 = (𝑞6 + 𝑞7 + 1) ≫ 1 segundo bloco de codificação Q) 5, 3 (S(=MA)=5 para o primeiro bloco de 𝑓𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {59,50,41,32,23,14,5} codificação 𝑔𝑖 = 53 − 𝑖 ∗ 21, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {53,32,11} P, 𝑀𝑖𝑑𝑑𝑙𝑒7,3 = (2 ∗ (𝑝𝑜 + 𝑞𝑜 ) + 𝑞0 + 2 ∗ (𝑞1 + 𝑞2 ) + 𝑝1 + 𝑞1 + 𝑝2 +𝑝3 +𝑝4 +𝑝5 + 𝑝5 + S(=MB)=3 8) ≫ 4 para o 𝑃7 = (𝑝5 + 𝑝5 + 1) ≫ 1, 𝑄3 = (𝑞2 + 𝑞3 + 1) ≫ 1 segundo bloco de codificação Q) 3, 7 𝑔𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {59,50,41,32,23,14,5} (S(=MA)=3 𝑓𝑖 = 53 − 𝑖 ∗ 21, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {53,32,11} para o 𝑀𝑖𝑑𝑑𝑙𝑒3.7 = (2 ∗ (𝑞𝑜 + 𝑝𝑜 ) + 𝑝0 + 2 ∗ (𝑝1 + 𝑝2 ) + 𝑞1 + 𝑝1 + 𝑞2 +𝑞3 +𝑞4 +𝑞5 + 𝑞6 + 8) primeiro ≫4 bloco de 𝑄7 = (𝑞6 + 𝑞7 + 1) ≫ 1, 𝑃3 = (𝑝2 + 𝑝3 + 1) ≫ 1 codificação P, S(=MB)=7 para o segundo bloco de codificação Q)
[0473] Em alguma forma de implantação da modalidade, em que o tamanho de buffer de linha X=4, 𝑔𝑖 , 𝑓𝑖 , 𝑀𝑖𝑑𝑑𝑙𝑒𝑠,𝑡 , 𝑃𝑠 𝑒 𝑄𝑠 depende de S conforme a seguir: 3, 7 (S(=MA)=3 para o primeiro bloco de 𝑔𝑖 = 59 − 𝑖 ∗ 9, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒈 = {59,50,41,32,23,14,5} codificação 𝑓𝑖 = 53 − 𝑖 ∗ 21, 𝑡𝑎𝑚𝑏é𝑚 𝑝𝑜𝑑𝑒 𝑠𝑒𝑟 𝑑𝑒𝑠𝑐𝑟𝑖𝑡𝑜 𝑐𝑜𝑚𝑜 𝒇 = {53,32,11} P; 𝑀𝑖𝑑𝑑𝑙𝑒3.7 = (2 ∗ (𝑞𝑜 + 𝑝𝑜 ) + 𝑝0 + 2 ∗ (𝑝1 + 𝑝2 ) + 𝑞1 + 𝑝1 + 𝑞2 +𝑞3 +𝑞4 +𝑞5 + 𝑞6 + S(=MB)=7 8) ≫ 4 para o 𝑄7 = (𝑞6 + 𝑞7 + 1) ≫ 1, 𝑃3 = (𝑝2 + 𝑝3 + 1) ≫ 1 segundo bloco de codificação Q)
[0474] Em alguma forma de implantação da modalidade, em que os coeficientes de filtro são determinados de uma maneira tal que a amostra pi, que pertence ao primeiro bloco de codificação P e que é a amostra mais externa permitida para ser armazenada no buffer de linha, é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de codificação P e que estão fora do buffer de linha.
[0475] Em um exemplo, em que um buffer de linha tem o tamanho de buffer de linha de 6 linhas, e as amostras p0 a p4 são modificadas a partir do primeiro bloco de codificação P para serem as amostras p0’ a p4’.
[0476] Em uma possível forma de implantação adicional da modalidade, em que o filtro de desblocagem é um filtro tap mais longo ou um filtro assimétrico ou um filtro tap assimétrico.
[0477] Em algumas formas de implantação da modalidade, em que as amostras pi são amostras de luma e/ou Croma.
[0478] A seguir se encontra uma explicação dos aplicativos do método de codificação bem como do método de decodificação como mostrados nas modalidades mencionadas acima, e um sistema usando os mesmos.
[0479] A Figura 20 é um diagrama de blocos mostrando um sistema de suprimento de conteúdo 3100 para realizar serviço de distribuição de conteúdo. Esse sistema de suprimento de conteúdo 3100 inclui dispositivo de captura 3102, dispositivo terminal 3106, e opcionalmente inclui visor 3126. O dispositivo de captura 3102 se comunica com o dispositivo terminal 3106 pelo enlace de comunicação 3104. O enlace de comunicação pode incluir o canal de comunicação 13 descrito acima. O enlace de comunicação 3104 inclui, porém, sem limitação, WIFI, Ethernet, Cabo, wireless (3G/4G/5G), USB, ou qualquer tipo de combinação dos mesmos, ou semelhantes.
[0480] O dispositivo de captura 3102 gera dados, e pode codificar os dados pelo método de codificação como mostrado nas modalidades acima. Alternativamente, o dispositivo de captura 3102 pode distribuir os dados para um servidor de streaming (não mostrado nas figuras), e o servidor codifica os dados e transmite os dados codificados para o dispositivo terminal 3106. O dispositivo de captura 3102 inclui, porém, sem limitação, câmera, smartphone ou Pad, computador ou laptop, sistema de videoconferência, PDA, dispositivo montado em veículo, ou uma combinação de qualquer um deles, ou semelhantes. Por exemplo, o dispositivo de captura 3102 pode incluir o dispositivo de origem 12, conforme descrito acima. Quando os dados incluem vídeo, o codificador de vídeo 20 incluído no dispositivo de captura 3102 pode efetivamente realizar o processamento de codificação de vídeo. Quando os dados incluem áudio (isto é, voz), um codificador de áudio incluído no dispositivo de captura 3102 pode efetivamente realizar processamento de codificação de áudio. Para alguns cenários práticos, o dispositivo de captura 3102 distribui os dados de vídeo e áudio codificados multiplexando os mesmos juntos. Para outros cenários práticos, por exemplo, no sistema de videoconferência, os dados de áudio codificados e os dados de vídeo codificados não são multiplexados. O dispositivo de captura 3102 distribui os dados de áudio codificados e os dados de vídeo codificados para o dispositivo terminal 3106 separadamente.
[0481] No sistema de suprimento de conteúdo 3100, o dispositivo terminal 310 recebe e reproduz os dados codificados. O dispositivo terminal 3106 poderia ser um dispositivo com capacidade de receber e recuperar dados, tais como smartphone ou Pad 3108, computador ou laptop 3110, gravador de vídeo de rede (NVR)/gravador de vídeo digital (DVR) 3112, TV 3114, set top box (STB) 3116, sistema de videoconferência 3118, sistema de vigilância por vídeo 3120, assistente digital pessoal (PDA) 3122, dispositivo montado em veículo 3124, ou uma combinação de qualquer deles, ou semelhantes com capacidade de decodificar os dados codificados acima mencionados. Por exemplo, o dispositivo terminal 3106 pode incluir o dispositivo de destino 14 conforme descrito acima. Quando os dados codificados incluem vídeo, o decodificador de vídeo 30 incluído no dispositivo terminal é priorizado para realizar decodificação de vídeo. Quando os dados codificados incluem áudio, um decodificador de áudio incluído no dispositivo terminal é priorizado para realizar processamento de decodificação de áudio.
[0482] Para um dispositivo terminal com seu visor, por exemplo, smartphone ou Pad 3108, computador ou laptop 3110, gravador de vídeo de rede (NVR)/gravador de vídeo digital (DVR) 3112, TV 3114, assistente digital pessoal (PDA) 3122, ou dispositivo montado em veículo 3124, o dispositivo terminal pode alimentar os dados para o seu visor. Para um dispositivo terminal equipado sem visor, por exemplo, STB 3116, o sistema de videoconferência 3118, ou sistema de vigilância por vídeo 3120, um visor externo 3126 é contatado no mesmo para receber e mostrar os dados decodificados.
[0483] Quando cada dispositivo nesse sistema realiza codificação ou decodificação o dispositivo de codificação de imagem ou o dispositivo de decodificação de imagem, conforme mostrado nas modalidades acima mencionadas, pode ser usado.
[0484] A Figura 21 é um diagrama mostrando uma estrutura de um exemplo do dispositivo terminal 3106. Depois que o dispositivo terminal 3106 recebe fluxo a partir do dispositivo de captura 3102, a unidade de procedimento de protocolo 3202 analisa o protocolo de transmissão do fluxo. O protocolo inclui, porém, sem limitação, Protocolo de Streaming em Tempo Real (RTSP), Protocolo de Transferência de Hipertexto (HTTP), protocolo de streaming ao vivo HTTP (HLS), MPEG-DASH, protocolo de Transporte em Tempo real (RTP), Protocolo de Mensagem em Tempo Real (RTMP), ou qualquer tipo de combinação dos mesmos, ou semelhantes.
[0485] Depois que a unidade de procedimento de protocolo 3202 processa o fluxo, arquivo de fluxo é gerado. O arquivo é emitido para uma unidade de demultiplexação 3204. A unidade de demultiplexação 3204 pode separar os dados multiplexados nos dados de áudio codificados e nos dados de vídeo codificados. Conforme descrito acima, para alguns cenários, na prática, por exemplo, no sistema de videoconferência, os dados de áudio codificados e os dados de vídeo codificados não são multiplexados. Nessa situação, os dados codificados são transmitidos para o decodificador de vídeo 3206 e o decodificador de áudio 3208 do lado de fora através da unidade de demultiplexação 3204.
[0486] Por meio do processamento de demultiplexação, fluxo elementar (ES) de vídeo, ES de áudio, e opcionalmente legenda são gerados. O decodificador de vídeo 3206, o qual inclui o decodificador de vídeo 30 conforme explicado nas modalidades acima mencionadas, decodifica o ES de vídeo pelo método de decodificação conforme mostrado nas modalidades acima mencionadas para gerar quadro de vídeo, e alimenta esses dados para a unidade síncrona 3212. O decodificador de áudio 3208, decodifica o ES de áudio para gerar quadro de áudio, e alimenta esses dados para a unidade síncrona
3212. Alternativamente, o quadro de vídeo pode armazenar em um buffer (não mostrado na Figura 20) antes de alimentar o mesmo para a unidade síncrona
3212. Similarmente, o quadro de áudio pode armazenar em um buffer (não mostrado na Figura 20) antes de alimentar o mesmo para a unidade síncrona
3212.
[0487] A unidade síncrona 3212 sincroniza o quadro de vídeo e o quadro de áudio, e supre o vídeo/áudio para uma exibição de vídeo/áudio 3214. Por exemplo, a unidade síncrona 3212 sincroniza a apresentação das informações de vídeo e áudio. Informações podem codificar na sintaxe usando marcas de tempo referentes à apresentação de dados de áudio e visuais codificados e marcas de tempo referentes à entrega do próprio fluxo de dados.
[0488] Se legenda é incluída no fluxo, o decodificador de legenda 3210 decodifica a legenda, e sincroniza a mesma com o quadro de vídeo e o quadro de áudio, e supre vídeo/áudio/legenda para uma exibição de vídeo/áudio/legenda 3216.
[0489] A presente invenção não é limitada ao sistema acima mencionado, e ou o dispositivo de codificação de imagem ou o dispositivo de decodificação de imagem nas modalidades acima mencionadas pode ser incorporado em outro sistema, por exemplo, um sistema para carros.
[0490] A invenção foi descrita em conjunto com várias modalidades no presente documento. No entanto, outras variações para as modalidades reveladas podem ser entendidas e efetuadas por aquelas pessoas versadas na técnica na prática da invenção reivindicada, a partir de um estudo dos desenhos, da revelação e das reivindicações anexas. Nas reivindicações, a palavra “compreendendo “não exclui outros elementos ou etapas e o artigo indefinido “um/uma” não exclui uma pluralidade. Um único processador ou outra unidade pode cumprir as funções de vários itens citados nas reivindicações. O mero fato de que determinadas medidas são citadas em reivindicações dependentes normalmente diferentes não indica que uma combinação dessas medidas não possa ser usada com vantagem. Um programa de computador pode ser armazenado/distribuído em uma mídia adequada, tal como uma mídia de armazenamento óptica ou uma mídia de estado sólido fornecida junto com ou como parte de outro hardware, mas também pode ser distribuído em outras formas, tais como por meio da internet ou outros sistemas de comunicação com ou sem fio.
[0491] Onde quer que modalidades e a descrição se refiram ao termo “memória”, o termo “memória” será entendido e/ou irá compreender um disco magnético, um disco óptico, uma memória somente leitura (Read-Only Memory, ROM), ou uma memória de acesso aleatório (Random Access Memory, RAM),…, a menos que explicitamente enunciado de outra forma.
[0492] Onde quer que modalidades e a descrição se refiram ao termo “rede”, o termo “rede” será entendido e/ou irá compreender [listagem de todas as possíveis memórias]…, a menos que explicitamente enunciado de outra forma.
[0493] A pessoa versada na técnica irá entender que os “blocos” (“unidades”) das várias figuras (método e aparelho) representam ou descrevem funcionalidades de modalidades da invenção (em vez de “unidades” necessariamente individuais em hardware ou software) e desse modo descrevem igualmente funções ou recursos de modalidades de aparelho bem como de modalidades de método (unidade = etapa).
[0494] A terminologia de “unidades” é meramente usada para propósitos ilustrativos da funcionalidade de modalidades do codificador/decodificador e não são destinadas a limitar a revelação.
[0495] Nas diversas modalidades fornecidas no presente pedido, deve ser entendido que o sistema, aparelho, e método revelados podem ser implantados de outras maneiras. Por exemplo, uma modalidade de aparelho descrita é meramente exemplificativa. Por exemplo, a divisão em unidade é meramente divisão de função lógica e pode ser outra divisão na implementação efetiva. Por exemplo, uma pluralidade de unidades ou componentes pode ser combinada ou integrada em um outro sistema, ou alguns recursos podem ser ignorados ou não realizados. Além disso, os acoplamentos mútuos ou acoplamentos diretos ou conexões de comunicação exibidos ou discutidos podem ser implantados usando algumas interfaces. Os acoplamentos indiretos ou conexões de comunicação entre os aparelhos ou unidades podem ser implantados em formas eletrônicas, mecânicas ou outras.
[0496] As unidades descritas como partes separadas podem ou não ser fisicamente separadas, e partes exibidas como unidades podem ou não ser unidades físicas, podem estar localizadas em uma posição, ou podem ser distribuídas em uma pluralidade de unidades de rede. Algumas das ou todas as unidades podem ser selecionadas de acordo com necessidades efetivas conseguem os objetivos das soluções das modalidades.
[0497] Além disso, unidades funcionais nas modalidades da presente invenção podem ser integradas em uma unidade de processamento, ou cada uma das unidades pode existir sozinha fisicamente, ou duas ou mais unidades são integradas em uma unidade.
[0498] As modalidades da invenção podem adicionalmente compreender um aparelho, por exemplo, codificador e/ou decodificador, que compreende um conjunto de circuitos de processamento configurado para realizar qualquer dos métodos e/ou processos descritos no presente documento.
[0499] Modalidades podem ser implantadas como hardware, firmware, software ou qualquer combinação dos mesmos. Por exemplo, a funcionalidade do codificador/codificação ou decodificador/decodificação pode ser realizada por um conjunto de circuitos de processamento com ou sem firmware ou software, por exemplo, um processador, um microcontrolador, um processador de sinal digital (DSP), um arranjo de porta programável por campo (FPGA), um circuito integrado de aplicação específica (ASIC), ou semelhantes.
[0500] A funcionalidade do codificador 100 (e correspondente método de codificação 100) e/ou decodificador 200 (e correspondente método de decodificação 200) podem ser implantadas por instruções de programa armazenadas em uma mídia legível por computador. As instruções de programa, quando executadas, levam um conjunto de circuitos de processamento, computador, processador ou semelhantes, a realizar as etapas dos métodos de codificação e/ou de decodificação. A mídia legível por computador pode ser qualquer mídia , incluindo mídias de armazenamento não transitórias, nas quais o programa é armazenado tais como um disco Bluray, DVD, CD, USB (flash) drive, disco rígido, armazenamento de servidor disponível por meio de uma rede, etc.
[0501] Uma modalidade da invenção compreende ou é um programa de computador compreendendo código de programa para realizar qualquer dos métodos descritos no presente documento, quando executados em um computador.
[0502] Uma modalidade da invenção compreende ou é uma mídia legível por computador compreendendo um código de programa que, quando executado por um processador, leva um sistema de computador a realizar qualquer dos métodos descritos no presente documento.
[0503] Em um ou mais exemplos, as funções descritas podem ser implantadas em hardware, software, firmware, ou qualquer combinação dos mesmos. Se implantadas em software, as funções podem ser armazenadas em ou transmitidas como uma ou mais instruções ou código em uma mídia legível por computador e executadas por uma unidade de processamento com base em hardware. Mídias legíveis por computador podem incluir mídias de armazenamento legíveis por computador que correspondem a uma mídia tangível tal como mídias de armazenamento de dados, ou mídias de comunicação incluindo qualquer mídia que facilite transferência de um programa de computador de um lugar para um outro, por exemplo, de acordo com um protocolo de comunicação. Desta maneira, as mídias legíveis por computador de modo geral podem corresponder a (1) mídias de armazenamento legíveis por computador tangível que são não transitórias ou (2) uma mídia de comunicação tal como um sinal ou onda portadora. Mídias de armazenamento de dados podem ser quaisquer mídias disponíveis que possam ser acessadas por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implantação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir uma mídia legível por computador.
[0504] A título de exemplo, e não de limitação, tais mídias de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético, ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outra mídia que pode ser usada para armazenar código de programa desejado na forma de instruções ou estruturas de dados e que pode ser acessado por um computador. Além disso, qualquer conexão é apropriadamente denominada uma mídia legível por computador. Por exemplo, se instruções são transmitidas a partir de um site da web, servidor ou outra fonte remota usando um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL), ou tecnologias sem fio tais como infravermelho, rádio e micro-ondas, então o cabo coaxial, cabo de fibra óptica, par trançado, DSL ou tecnologias sem fio tais como infravermelho, rádio, e micro-ondas estão incluídos na definição de mídia. Deve ser entendido, no entanto, que mídias de armazenamento legíveis por computador e mídias de armazenamento de dados não incluem conexões, ondas portadoras, sinais, ou outras mídias transitórias, mas são em vez disso direcionados para mídias de armazenamento tangíveis, não transitórias. Disco magnético e disco óptico, conforme usado no presente documento, inclui disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu-ray, onde os discos magnéticos de modo geral reproduzem dados magneticamente, enquanto os discos ópticos reproduzem dados opticamente com lasers. Combinações destes acima também devem ser incluídas no escopo de mídias legíveis por computador.
[0505] As instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), arranjos lógicos programáveis por campo (FPGAs) ou outros conjuntos de circuitos lógicos integrados ou discretos equivalentes.
Consequentemente, o termo "processador", conforme usado no presente documento, pode se referir a qualquer uma das estruturas anteriores ou qualquer outra estrutura adequada para implantação das técnicas descritas no presente documento. Além disso, em alguns aspectos, a funcionalidade descrita no presente documento 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 implantadas em um ou mais circuitos ou elementos lógicos.
[0506] As técnicas desta revelação podem ser implantadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um fone sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta revelação para enfatizar aspectos funcionais de dispositivos configurados para realizar as técnicas reveladas, mas não necessariamente exigem 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 interoperacionais, incluindo um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequados.
[0507] Embora diversas modalidades tenham sido fornecidas na presente revelação, deve ser entendido que os sistemas e métodos revelados poderiam ser incorporados em muitas outras formas específicas sem um afastamento do espírito ou escopo da presente revelação. Os presentes exemplos devem ser considerados como ilustrativos e não restritivos, e a intenção não deve ser limitada aos detalhes dados no presente documento. Por exemplo, os vários elementos ou componentes podem ser combinados ou integrados em um outro sistema ou determinados recursos podem ser omitidos, ou não implantados.
[0508] Além disso, técnicas, sistemas, subsistemas, e métodos descritos e ilustrados nas várias modalidades como discretos ou separados podem ser combinados ou integrados com outros sistemas, módulos, técnicas, ou métodos sem que haja um afastamento do escopo da presente revelação. Outros itens mostrados ou discutidos como acoplados ou diretamente acoplados ou se comunicando entre si podem ser indiretamente acoplados ou em se comunicando através de alguma interface, dispositivo, ou componente intermediário seja eletricamente, mecanicamente, ou de outra forma.
Outros exemplos de mudanças, substituições, e alterações são verificáveis por uma pessoa versada na técnica e poderiam ser feitas sem um afastamento do espírito e escopo revelados no presente documento.
Claims (79)
1. Dispositivo para uso em um codificador de imagem e/ou um decodificador de imagem, para desblocagem de bordas de bloco entre blocos de imagem, CARACTERIZADO pelo fato de que as bordas de bloco compreendem uma borda de bloco horizontal entre um primeiro bloco de imagem e um segundo bloco de imagem, em que o primeiro bloco de imagem tem um tamanho de bloco SA ao longo de uma direção vertical, em que o segundo bloco de imagem tem um tamanho de bloco SB ao longo da direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o dispositivo compreende um filtro de desblocagem configurado para: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal, - modificar valores de no máximo MA amostras do primeiro bloco de imagem como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, e - modificar valores de no máximo MB amostras do segundo bloco de imagem como segundos valores emitidos de filtro, em que o máximo de MB amostras são obtidas a partir de uma coluna do segundo bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que o primeiro bloco de imagem é um bloco acima da fronteira de CTB e o segundo bloco de imagem é um bloco abaixo da fronteira de CTB; em que MA ≠ MB e MA é determinado com base em um tamanho de buffer de linha de um buffer de linha associado à fronteira de CTB.
2. Dispositivo, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o filtro de desblocagem é adicionalmente configurado para: no caso em que a borda de bloco horizontal é sobreposta à fronteira de bloco de árvore de codificação (CTB) horizontal, - usar valores de no máximo DA amostras do primeiro bloco de imagem como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal,
- usar valores de no máximo DB amostras do segundo bloco de imagem como segundos valores de decisão de filtro, em que o máximo de DB amostras são obtidas a partir de uma coluna do segundo bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que DA ≠ DB e DA é determinado com base no tamanho de buffer de linha do buffer de linha associado à fronteira de CTB.
3. Dispositivo, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que se o buffer de linha tiver o tamanho de buffer de linha de X linhas, para o primeiro bloco de imagem, MA=X-1, em que X é um número inteiro positivo.
4. Dispositivo, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que se o buffer de linha tiver o tamanho de buffer de linha de X linhas, para o primeiro bloco de imagem, DA=X e MA=X-1, em que X é um número inteiro positivo.
5. Dispositivo, de acordo com qualquer uma das reivindicações 1 a 4, CARACTERIZADO pelo fato de que quando o primeiro bloco de imagem e o segundo bloco de imagem forem blocos de croma, o buffer de linha tem o tamanho de buffer de linha de 2 linhas, ou quando o primeiro bloco de imagem e o segundo bloco de imagem forem blocos de luma, o buffer de linha tem o tamanho de buffer de linha de 4 linhas.
6. Dispositivo, de acordo com qualquer uma das reivindicações 1 a 5, CARACTERIZADO pelo fato de que se o buffer de linha associado à fronteira de CTB tiver o tamanho de buffer de linha de X linhas, uma amostra pi do primeiro bloco de imagem é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de imagem e que estão fora do buffer de linha, em que i = X-1.
7. Dispositivo, de acordo com qualquer uma das reivindicações 1 a 5, CARACTERIZADO pelo fato de que um coeficiente de filtro de uma amostra pi do primeiro bloco de imagem é determinado de uma maneira tal que a amostra pi, que pertence ao primeiro bloco de imagem e que é a amostra mais externa permitida para ser armazenada no buffer de linha, é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de imagem e que estão fora do buffer de linha.
8. Dispositivo, de acordo com qualquer uma das reivindicações 1 a 5, CARACTERIZADO pelo fato de que um coeficiente de filtro associado a uma amostra pi do primeiro bloco de imagem é determinado com base no número de vezes que a amostra pi é usada como um valor preenchido, em que a amostra pi pertence ao primeiro bloco de imagem e é a amostra mais externa permitida para ser armazenada no buffer de linha associado à fronteira de CTB.
9. Dispositivo, de acordo com qualquer uma das reivindicações 1 a 8, CARACTERIZADO pelo fato de que quando tanto o primeiro bloco de imagem quanto o segundo bloco de imagem forem blocos de luma e SB e SA forem iguais a ou maiores que 32, MB = 7 e MA = 3; ou quando tanto o primeiro bloco de imagem quanto o segundo bloco de imagem forem blocos de luma e SB for igual a ou maior que 32 e SA for igual a ou maior que 16, MB = 7 e MA = 3.
10. Dispositivo, de acordo com qualquer uma das reivindicações 2 a 9, CARACTERIZADO pelo fato de que quando tanto o primeiro bloco de imagem quanto o segundo bloco de imagem forem blocos de luma e SB e SA forem iguais a ou maiores que 32, DB= 8 e DA=4; ou quando tanto o primeiro bloco de imagem quanto o segundo bloco de imagem forem blocos de luma e SB for igual a ou maior que 32 e SA for igual a ou maior que 16, DB= 8 e DA=4.
11. Dispositivo, de acordo com qualquer uma das reivindicações 1 a 8, CARACTERIZADO pelo fato de que quando o primeiro bloco de imagem e o segundo bloco de imagem forem blocos de croma e SA e SB forem iguais a ou maiores que 8, MB = 3 e MA = 1.
12. Dispositivo, de acordo com qualquer uma das reivindicações 2 a 8 e 11, CARACTERIZADO pelo fato de que quando o primeiro bloco de imagem e o segundo bloco de imagem forem blocos de croma e SB e SA forem iguais a ou maiores que 8, DB= 4 e DA=2.
13. Dispositivo, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que o segundo bloco de imagem é um bloco de imagem atual, e o primeiro bloco de imagem é um bloco de imagem vizinho adjacente ao bloco de imagem atual.
14. Dispositivo, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que amostras pi do primeiro bloco de imagem são amostras de luma, ou as amostras pi do primeiro bloco de imagem são amostras de croma, em que i pertence a {0, 1, 2, … , SA-1}.
15. Dispositivo, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que quando o primeiro e segundo blocos de imagem forem blocos de croma, o filtro de desblocagem é configurado para determinar se a borda de bloco horizontal é sobreposta a uma fronteira de CTB de croma horizontal; ou quando o primeiro e segundo blocos de imagem forem blocos de luma, a desblocagem é configurada para determinar se a borda de bloco horizontal é sobreposta a uma fronteira de CTB de luma horizontal.
16. Dispositivo, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que o filtro de desblocagem é um filtro tap mais longo ou um filtro assimétrico ou um filtro tap assimétrico.
17. Dispositivo para uso em um codificador de imagem e/ou um decodificador de imagem, para desblocagem de bordas de bloco entre blocos de imagem, CARACTERIZADO pelo fato de que as bordas de bloco compreendem uma borda de bloco horizontal entre um primeiro bloco de imagem e um segundo bloco de imagem, em que o primeiro bloco de imagem tem um tamanho de bloco SA ao longo de uma direção vertical, em que o segundo bloco de imagem tem um tamanho de bloco SB ao longo da direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o dispositivo compreende um filtro de desblocagem configurado para: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal, - modificar valores de no máximo MA amostras do primeiro bloco de imagem como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que MA=1; e - modificar valores de no máximo MB amostras do segundo bloco de imagem como segundos valores emitidos de filtro, em que o máximo de MB amostras são obtidas a partir de uma coluna do segundo bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que MB=3, em que o primeiro bloco de imagem é um bloco de croma acima da fronteira de CTB e o segundo bloco de imagem é um outro bloco de croma abaixo da fronteira de CTB, e SA e SB são iguais a ou maiores que 8.
18. Dispositivo para uso em um codificador de imagem e/ou um decodificador de imagem, para desblocagem de bordas de bloco entre blocos de imagem, CARACTERIZADO pelo fato de que as bordas de bloco compreendem uma borda de bloco horizontal entre um primeiro bloco de imagem e um segundo bloco de imagem, em que o primeiro bloco de imagem tem um tamanho de bloco SA ao longo de uma direção vertical, em que o segundo bloco de imagem tem um tamanho de bloco SB ao longo da direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o dispositivo compreende um filtro de desblocagem configurado para: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal, - usar valores de no máximo DA amostras do primeiro bloco de imagem como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que DA=2; - usar valores de no máximo DB amostras do segundo bloco de imagem como segundos valores de decisão de filtro, em que o máximo de DB amostras são obtidas a partir de uma coluna do segundo bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que DB=4, e em que o primeiro bloco de imagem é um bloco de croma acima da fronteira de CTB e o segundo bloco de imagem é um outro bloco de croma abaixo da fronteira de CTB, e SA e SB são iguais a ou maiores que 8.
19. Codificador para codificação de uma imagem, CARACTERIZADO pelo fato de que compreende um dispositivo conforme definido em qualquer uma das reivindicações 1 a 18.
20. Decodificador para decodificação de uma imagem, CARACTERIZADO pelo fato de que compreende um dispositivo conforme definido em qualquer uma das reivindicações 1 a 18.
21. Método de desblocagem, para desblocagem de bordas de bloco entre blocos de imagem em uma codificação de imagem e/ou uma decodificação de imagem, CARACTERIZADO pelo fato de que as bordas de bloco compreendem uma borda de bloco horizontal entre um primeiro bloco de imagem e um segundo bloco de imagem, em que o primeiro bloco de imagem tem um tamanho de bloco SA ao longo de uma direção vertical, em que o segundo bloco de imagem tem um tamanho de bloco SB ao longo da direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o método compreende: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal, - modificar valores de no máximo MA amostras do primeiro bloco de imagem como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, e - modificar valores de no máximo MB amostras do segundo bloco de imagem como segundos valores emitidos de filtro, em que o máximo de MB amostras são obtidas a partir de uma coluna do segundo bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que o primeiro bloco de imagem é um bloco acima da fronteira de CTB e o segundo bloco de imagem é um bloco abaixo da fronteira de CTB; em que MA ≠ MB e MA é determinado com base em um tamanho de buffer de linha do buffer de linha associado à fronteira de CTB.
22. Método, de acordo com a reivindicação 21, CARACTERIZADO pelo fato de que o método compreende adicionalmente: no caso em que a borda de bloco horizontal é sobreposta à fronteira de bloco de árvore de codificação (CTB) horizontal, - usar valores de no máximo DA amostras do primeiro bloco de imagem como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal,
- usar valores de no máximo DB amostras do segundo bloco de imagem como segundos valores de decisão de filtro, em que o máximo de DB amostras são obtidas a partir de uma coluna do segundo bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que DA ≠ DB e DA é determinado com base no tamanho de buffer de linha do buffer de linha associado à fronteira de CTB.
23. Método, de acordo com a reivindicação 21, CARACTERIZADO pelo fato de que se o buffer de linha tiver o tamanho de buffer de linha de X linhas, para o primeiro bloco de imagem, MA=X-1, em que X é um número inteiro positivo.
24. Método, de acordo com a reivindicação 22, CARACTERIZADO pelo fato de que se o buffer de linha tiver o tamanho de buffer de linha de X linhas, para o primeiro bloco de imagem, DA=X e MA=X-1, em que X é um número inteiro positivo.
25. Método, de acordo com qualquer uma das reivindicações 21 a 24, CARACTERIZADO pelo fato de que quando o primeiro bloco de imagem e o segundo bloco de imagem forem blocos de croma, o buffer de linha tem o tamanho de buffer de linha de 2 linhas, ou quando o primeiro bloco de imagem e o segundo bloco de imagem forem blocos de luma, o buffer de linha tem o tamanho de buffer de linha de 4 linhas.
26. Método, de acordo com qualquer uma das reivindicações 21 a 25, CARACTERIZADO pelo fato de que se o buffer de linha associado à fronteira de CTB tiver o tamanho de buffer de linha de X linhas, uma amostra pi do primeiro bloco de imagem é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de imagem e que estão fora do buffer de linha, em que i = X-1.
27. Método, de acordo com qualquer uma das reivindicações 21 a 25, CARACTERIZADO pelo fato de que um coeficiente de filtro de uma amostra pi do primeiro bloco de imagem é determinado de uma maneira tal que a amostra pi, que pertence ao primeiro bloco de imagem e que é a amostra mais externa permitida para ser armazenada no buffer de linha, é usada como um valor preenchido que substitui as outras amostras que pertencem ao primeiro bloco de imagem e que estão fora do buffer de linha.
28. Método, de acordo com qualquer uma das reivindicações 21 a 25, CARACTERIZADO pelo fato de que um coeficiente de filtro associado a uma amostra pi do primeiro bloco de imagem é determinado com base no número de vezes que a amostra pi é usada como um valor preenchido, em que a amostra pi pertence ao primeiro bloco de imagem e é a amostra mais externa permitida para ser armazenada no buffer de linha associado à fronteira de CTB.
29. Método, de acordo com qualquer uma das reivindicações 21 a 28, CARACTERIZADO pelo fato de que quando tanto o primeiro bloco de imagem quanto o segundo bloco de imagem forem blocos de luma e SB e SA forem iguais a ou maiores que 32, MB = 7 e MA = 3; ou quando tanto o primeiro bloco de imagem quanto o segundo bloco de imagem forem blocos de luma e SB for igual a ou maior que 32 e SA for igual a ou maior que 16, MB = 7 e MA = 3.
30. Método, de acordo com qualquer uma das reivindicações 22 a 29, CARACTERIZADO pelo fato de que quando tanto o primeiro bloco de imagem quanto o segundo bloco de imagem forem blocos de luma e SB e SA forem iguais a ou maiores que 32, DB= 8 e DA=4; ou quando tanto o primeiro bloco de imagem quanto o segundo bloco de imagem forem blocos de luma e SB for igual a ou maior que 32 e SA for igual a ou maior que 16, DB= 8 e DA=4.
31. Método, de acordo com qualquer uma das reivindicações 21 a 28, CARACTERIZADO pelo fato de que quando o primeiro bloco de imagem e o segundo bloco de imagem forem blocos de croma e SA e SB forem iguais a ou maiores que 8, MB = 3 e MA = 1.
32. Método, de acordo com qualquer uma das reivindicações 22 a 28 e 31, CARACTERIZADO pelo fato de que quando o primeiro bloco de imagem e o segundo bloco de imagem forem blocos de croma e SB e SA forem iguais a ou maiores que 8, DB= 4 e DA=2.
33. Método, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que o segundo bloco de imagem é um bloco de imagem atual, e o primeiro bloco de imagem é um bloco de imagem vizinho adjacente ao bloco de imagem atual.
34. Método, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que amostras pi do primeiro bloco de imagem são amostras de luma, ou as amostras pi do primeiro bloco de imagem são amostras de croma, em que i pertence a {0, 1, 2, … , SA-1}.
35. Método, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que o método compreende adicionalmente: quando o primeiro e segundo blocos de imagem forem blocos de croma, determinar se a borda de bloco horizontal é sobreposta a uma fronteira de CTB de croma horizontal; ou quando o primeiro e segundo blocos de imagem forem blocos de luma, determinar se a borda de bloco horizontal é sobreposta a uma fronteira de CTB de luma horizontal.
36. Método, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que o filtro de desblocagem é um filtro tap mais longo ou um filtro assimétrico ou um filtro tap assimétrico.
37. Método de desblocagem, para desblocagem de bordas de bloco entre blocos de imagem em uma codificação de imagem e/ou uma decodificação de imagem, CARACTERIZADO pelo fato de que as bordas de bloco compreendem uma borda de bloco horizontal entre um primeiro bloco de imagem e um segundo bloco de imagem, em que o primeiro bloco de imagem tem um tamanho de bloco SA ao longo de uma direção vertical, em que o segundo bloco de imagem tem um tamanho de bloco SB ao longo da direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o método compreende: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal, - modificar valores de no máximo MA amostras do primeiro bloco de imagem como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que MA=1; e
-modificar valores de no máximo MB amostras do segundo bloco de imagem como segundos valores emitidos de filtro, em que o máximo de MB amostras são obtidas a partir de uma coluna do segundo bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que MB=3, em que o primeiro bloco de imagem é um bloco de croma acima da fronteira de CTB e o segundo bloco de imagem é um outro bloco de croma abaixo da fronteira de CTB, e SA e SB são iguais a ou maiores que 8.
38. Método de desblocagem, para desblocagem de bordas de bloco entre blocos de imagem em uma codificação de imagem e/ou uma decodificação de imagem, CARACTERIZADO pelo fato de que as bordas de bloco compreendem uma borda de bloco horizontal entre um primeiro bloco de imagem e um segundo bloco de imagem, em que o primeiro bloco de imagem tem um tamanho de bloco SA ao longo de uma direção vertical, em que o segundo bloco de imagem tem um tamanho de bloco SB ao longo da direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o método compreende um filtro de desblocagem configurado para: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal, - usar valores de no máximo DA amostras do primeiro bloco de imagem como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do primeiro bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que DA=2; - usar valores de no máximo DB amostras do segundo bloco de imagem como segundos valores de decisão de filtro, em que o máximo de DB amostras são obtidas a partir de uma coluna do segundo bloco de imagem que é perpendicular e adjacente à borda de bloco horizontal, em que DB=4, e em que o primeiro bloco de imagem é um bloco de croma acima da fronteira de CTB e o segundo bloco de imagem é um outro bloco de croma abaixo da fronteira de CTB, e SA e SB são iguais a ou maiores que 8.
39. Método de codificação para codificação de uma imagem, CARACTERIZADO pelo fato de que compreende um método de desblocagem conforme definido em qualquer uma das reivindicações 21 a 38.
40. Método de decodificação para decodificação de uma imagem, CARACTERIZADO pelo fato de que compreende um método de desblocagem conforme definido em qualquer uma das reivindicações 21 a 38.
41. Dispositivo para uso em um codificador de imagem e/ou um decodificador de imagem, para desblocagem de bordas de bloco entre blocos de imagem, CARACTERIZADO pelo fato de que as bordas de bloco compreendem uma borda de bloco horizontal entre um bloco de imagem atual e um bloco de imagem vizinho do bloco de imagem atual, em que o bloco de imagem atual está acima da borda de bloco horizontal; em que o bloco de imagem atual tem um tamanho de bloco SA ao longo de uma direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o dispositivo compreende um filtro de desblocagem configurado para: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal, - determinar um comprimento de filtro máximo, MA para o bloco de imagem atual pelo menos com base em um tamanho de buffer de linha de um buffer de linha associado à fronteira de CTB; e - modificar valores de no máximo MA amostras do bloco de imagem atual como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal.
42. Dispositivo, de acordo com a reivindicação 41, CARACTERIZADO pelo fato de que se o buffer de linha associado à fronteira de CTB tiver o tamanho de buffer de linha de X linhas, MA=X-1, em que X é um número inteiro positivo.
43. Dispositivo, de acordo com a reivindicação 41 ou 42, CARACTERIZADO pelo fato de que o filtro de desblocagem é adicionalmente configurado para: no caso em que a borda de bloco horizontal é sobreposta à fronteira de bloco de árvore de codificação (CTB) horizontal, - usar valores de no máximo DA amostras do bloco de imagem atual como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal.
44. Dispositivo, de acordo com a reivindicação 43, CARACTERIZADO pelo fato de que se o buffer de linha associado à fronteira de CTB tiver o tamanho de buffer de linha de X linhas, DA=X e MA=X-1, em que X é um número inteiro positivo.
45. Dispositivo, de acordo com qualquer uma das reivindicações 41 a 44, CARACTERIZADO pelo fato de que quando o bloco de imagem atual for um bloco de croma, o buffer de linha associado à fronteira de CTB tem o tamanho de buffer de linha de 2 linhas, ou quando o bloco de imagem atual for um bloco de luma, o buffer de linha associado à fronteira de CTB tem o tamanho de buffer de linha de 4 linhas.
46. Dispositivo, de acordo com qualquer uma das reivindicações 41 a 45, CARACTERIZADO pelo fato de que se o buffer de linha associado à fronteira de CTB tiver o tamanho de buffer de linha de X linhas, uma amostra pi do bloco de imagem atual é usada como um valor preenchido que substitui as outras amostras que pertencem ao bloco de imagem atual e que estão fora do buffer de linha, em que i = X-1.
47. Dispositivo, de acordo com qualquer uma das reivindicações 41 a 45, CARACTERIZADO pelo fato de que um coeficiente de filtro de uma amostra pi do bloco de imagem atual é determinado de uma maneira tal que a amostra pi, que pertence ao bloco de imagem atual e que é a amostra mais externa permitida para ser armazenada no buffer de linha, é usada como um valor preenchido que substitui as outras amostras que pertencem ao bloco de imagem atual e que estão fora do buffer de linha.
48. Dispositivo, de acordo com qualquer uma das reivindicações 41 a 45, CARACTERIZADO pelo fato de que um coeficiente de filtro associado a uma amostra pi do bloco de imagem atual é determinado com base no número de vezes que a amostra pi é usada como um valor preenchido, em que a amostra pi pertence ao bloco de imagem atual e é a amostra mais externa permitida para ser armazenada no buffer de linha associado à fronteira de CTB.
49. Dispositivo, de acordo com a reivindicação 47 ou 48, CARACTERIZADO pelo fato de que quando o buffer de linha tiver o tamanho de buffer de linha de 2 linhas, a amostra pi é a amostra p1, e o coeficiente de filtro associado à amostra p1 é 3.
50. Dispositivo, de acordo com qualquer uma das reivindicações 41 a 49, CARACTERIZADO pelo fato de que quando o bloco de imagem atual for um bloco de luma e SA for igual a ou maior que 32, MA = 3, em que SA é a altura do bloco de imagem atual; ou quando o bloco de imagem atual for um bloco de luma e SA for igual a ou maior que 16, MA = 3, em que SA é a altura do bloco de imagem atual.
51. Dispositivo, de acordo com a reivindicação 43 ou 44, CARACTERIZADO pelo fato de que quando o bloco de imagem atual for um bloco de luma e SA for igual a ou maior que 32, DA=4, em que SA é a altura do bloco de imagem atual; ou quando o bloco de imagem atual for um bloco de luma e SA for igual a ou maior que 16, DA=4, em que SA é a altura do bloco de imagem atual.
52. Dispositivo, de acordo com qualquer uma das reivindicações 41 a 49, CARACTERIZADO pelo fato de que quando o bloco de imagem atual for um bloco de croma e SA for igual a ou maior que 8, MA = 1, em que SA é a altura do bloco de imagem atual.
53. Dispositivo, de acordo com qualquer uma das reivindicações 43 ou 44, CARACTERIZADO pelo fato de que quando o bloco de imagem atual for um bloco de croma e SA for igual a ou maior que 8, DA=2, em que SA é a altura do bloco de imagem atual.
54. Dispositivo, de acordo com qualquer uma das reivindicações 41 a 53, CARACTERIZADO pelo fato de que quando o bloco de imagem atual for um bloco de croma, o filtro de desblocagem é configurado para determinar se a borda de bloco horizontal é sobreposta a uma fronteira de CTB de croma horizontal; ou quando o bloco de imagem atual for um bloco de luma, a desblocagem é configurada para determinar se a borda de bloco horizontal é sobreposta a uma fronteira de CTB de luma horizontal.
55. Dispositivo, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que amostras pi do bloco de imagem atual são amostras de luma, ou as amostras pi do bloco de imagem atual são amostras de croma, em que i pertence a {0, 1, 2, … , SA-1}.
56. Dispositivo para uso em um codificador de imagem e/ou um decodificador de imagem, para desblocagem de bordas de bloco entre blocos de imagem, CARACTERIZADO pelo fato de que as bordas de bloco compreendem uma borda de bloco horizontal entre um bloco de imagem atual e um bloco de imagem vizinho do bloco de imagem atual, em que o bloco de imagem atual está acima da borda de bloco horizontal; em que o bloco de imagem atual tem um tamanho de bloco SA ao longo de uma direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o dispositivo compreende um filtro de desblocagem configurado para: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal, - modificar valores de no máximo MA amostras do bloco de imagem atual como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal, e - usar valores de no máximo DA amostras do bloco de imagem atual como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal, em que quando o bloco de imagem atual for um bloco de luma e SA for igual a ou maior que 32, MA = 3 e DA=4.
57. Dispositivo para uso em um codificador de imagem e/ou um decodificador de imagem, para desblocagem de bordas de bloco entre blocos de imagem, CARACTERIZADO pelo fato de que as bordas de bloco compreendem uma borda de bloco horizontal entre um bloco de imagem atual e um bloco de imagem vizinho do bloco de imagem atual, em que o bloco de imagem atual está acima da borda de bloco horizontal; em que o bloco de imagem atual tem um tamanho de bloco SA ao longo de uma direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o dispositivo compreende um filtro de desblocagem configurado para: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal, - modificar valores de no máximo MA amostras do bloco de imagem atual como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal, e - usar valores de no máximo DA amostras do bloco de imagem atual como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal, em que quando o bloco de imagem atual for um bloco de croma e SA for igual a ou maior que 8, MA = 1 e DA=2.
58. Codificador para codificação de uma imagem, CARACTERIZADO pelo fato de que compreende um dispositivo conforme definido em qualquer uma das reivindicações 41 a 57.
59. Decodificador para decodificação de uma imagem, CARACTERIZADO pelo fato de que compreende um dispositivo conforme definido em qualquer uma das reivindicações 41 a 57.
60. Método de desblocagem, para desblocagem de bordas de bloco entre blocos de imagem em uma codificação de imagem e/ou uma decodificação de imagem, CARACTERIZADO pelo fato de que as bordas de bloco compreendem uma borda de bloco horizontal entre um bloco de imagem atual e um bloco de imagem vizinho do bloco de imagem atual, em que o bloco de imagem atual está acima da borda de bloco horizontal; em que o bloco de imagem atual tem um tamanho de bloco SA ao longo de uma direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o método compreende: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal, - determinar um comprimento de filtro máximo, MA para o bloco de imagem atual pelo menos com base em um tamanho de buffer de linha de um buffer de linha associado à fronteira de CTB; e - modificar valores de no máximo MA amostras do bloco de imagem atual como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal.
61. Método, de acordo com a reivindicação 60, CARACTERIZADO pelo fato de que se o buffer de linha associado à fronteira de CTB tiver o tamanho de buffer de linha de X linhas, MA=X-1, em que X é um número inteiro positivo.
62. Método, de acordo com a reivindicação 60 ou 61, CARACTERIZADO pelo fato de que o método compreende adicionalmente: no caso em que a borda de bloco horizontal é sobreposta à fronteira de bloco de árvore de codificação (CTB) horizontal, - usar valores de no máximo DA amostras do bloco de imagem atual como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal.
63. Método, de acordo com a reivindicação 62, CARACTERIZADO pelo fato de que se o buffer de linha associado à fronteira de CTB tiver o tamanho de buffer de linha de X linhas, DA=X e MA=X-1, em que X é um número inteiro positivo.
64. Método, de acordo com qualquer uma das reivindicações 60 a 63, CARACTERIZADO pelo fato de que quando o bloco de imagem atual for um bloco de croma, o buffer de linha associado à fronteira de CTB tem o tamanho de buffer de linha de 2 linhas, ou quando o bloco de imagem atual for um bloco de luma, o buffer de linha associado à fronteira de CTB tem o tamanho de buffer de linha de 4 linhas.
65. Método, de acordo com qualquer uma das reivindicações 60 a 64, CARACTERIZADO pelo fato de que se o buffer de linha associado à fronteira de CTB tiver o tamanho de buffer de linha de X linhas, uma amostra pi do bloco de imagem atual é usada como um valor preenchido que substitui as outras amostras que pertencem ao bloco de imagem atual e que estão fora do buffer de linha, em que i = X-1.
66. Método, de acordo com qualquer uma das reivindicações 60 a 64, CARACTERIZADO pelo fato de que um coeficiente de filtro de uma amostra pi do bloco de imagem atual é determinado de uma maneira tal que a amostra pi,
que pertence ao bloco de imagem atual e que é a amostra mais externa permitida para ser armazenada no buffer de linha, é usada como um valor preenchido que substitui as outras amostras que pertencem ao bloco de imagem atual e que estão fora do buffer de linha.
67. Método, de acordo com qualquer uma das reivindicações 60 a 64, CARACTERIZADO pelo fato de que um coeficiente de filtro associado a uma amostra pi do bloco de imagem atual é determinado com base no número de vezes que a amostra pi é usada como um valor preenchido, em que a amostra pi pertence ao bloco de imagem atual e é a amostra mais externa permitida para ser armazenada no buffer de linha associado à fronteira de CTB.
68. Método, de acordo com a reivindicação 66 ou 67, CARACTERIZADO pelo fato de que quando o buffer de linha tiver o tamanho de buffer de linha de 2 linhas, a amostra pi é a amostra p1, e o coeficiente de filtro associado à amostra p1 é 3.
69. Método, de acordo com qualquer uma das reivindicações 60 a 68, CARACTERIZADO pelo fato de que quando o bloco de imagem atual for um bloco de luma e SA for igual a ou maior que 32, MA = 3, em que SA é a altura do bloco de imagem atual; ou quando o bloco de imagem atual for um bloco de luma e SA for igual a ou maior que 16, MA = 3, em que SA é a altura do bloco de imagem atual.
70. Método, de acordo com a reivindicação 62 ou 63, CARACTERIZADO pelo fato de que quando o bloco de imagem atual for um bloco de luma e SA for igual a ou maior que 32, DA=4, em que SA é a altura do bloco de imagem atual; ou quando o bloco de imagem atual for um bloco de luma e SA for igual a ou maior que 16, DA=4, em que SA é a altura do bloco de imagem atual.
71. Método, de acordo com qualquer uma das reivindicações 60 a 68, CARACTERIZADO pelo fato de que quando o bloco de imagem atual for um bloco de croma e SA for igual a ou maior que 8, MA = 1, em que SA é a altura do bloco de imagem atual.
72. Método, de acordo com qualquer uma das reivindicações 62 ou 63, CARACTERIZADO pelo fato de que quando o bloco de imagem atual for um bloco de croma e SA for igual a ou maior que 8, DA=2, em que SA é a altura do bloco de imagem atual.
73. Método, de acordo com qualquer uma das reivindicações 60 a 72, CARACTERIZADO pelo fato de que o método compreende adicionalmente: quando o bloco de imagem atual for um bloco de croma, determinar se a borda de bloco horizontal é sobreposta a uma fronteira de CTB de croma horizontal; ou quando o bloco de imagem atual for um bloco de luma, determinar se a borda de bloco horizontal é sobreposta a uma fronteira de CTB de luma horizontal.
74. Método, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que amostras pi do bloco de imagem atual são amostras de luma, ou as amostras pi do bloco de imagem atual são amostras de croma, em que i pertence a {0, 1, 2, … , SA-1}.
75. Método de desblocagem, para desblocagem de bordas de bloco entre blocos de imagem em uma codificação de imagem e/ou uma decodificação de imagem, CARACTERIZADO pelo fato de que as bordas de bloco compreendem uma borda de bloco horizontal entre um bloco de imagem atual e um bloco de imagem vizinho do bloco de imagem atual, em que o bloco de imagem atual está acima da borda de bloco horizontal; em que o bloco de imagem atual tem um tamanho de bloco SA ao longo de uma direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o método compreende: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal, - modificar valores de no máximo MA amostras do bloco de imagem atual como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal, e - usar valores de no máximo DA amostras do bloco de imagem atual como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal, em que quando o bloco de imagem atual é um bloco de luma e SA é igual a ou maior que 32, MA = 3 e DA=4.
76. Método de desblocagem, para desblocagem de bordas de bloco entre blocos de imagem em uma codificação de imagem e/ou uma decodificação de imagem, CARACTERIZADO pelo fato de que as bordas de bloco compreendem uma borda de bloco horizontal entre um bloco de imagem atual e um bloco de imagem vizinho do bloco de imagem atual, em que o bloco de imagem atual está acima da borda de bloco horizontal; em que o bloco de imagem atual tem um tamanho de bloco SA ao longo de uma direção vertical, a direção vertical sendo perpendicular à borda de bloco horizontal, em que o método compreende: no caso em que a borda de bloco horizontal é sobreposta a uma fronteira de bloco de árvore de codificação (CTB) horizontal, - modificar valores de no máximo MA amostras do bloco de imagem atual como primeiros valores emitidos de filtro, em que o máximo de MA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal, e - usar valores de no máximo DA amostras do bloco de imagem atual como primeiros valores de decisão de filtro, em que o máximo de DA amostras são obtidas a partir de uma coluna do bloco de imagem atual que é perpendicular e adjacente à borda de bloco horizontal, em que quando o bloco de imagem atual for um bloco de croma e SA for igual a ou maior que 8, MA = 1 e DA=2.
77. Mídia legível por computador não transitória, CARACTERIZADA pelo fato de que armazena instruções de computador que quando executadas por um ou mais processadores, levam o um ou mais processadores a realizarem o método conforme definido em qualquer uma das reivindicações 21 a 38 e reivindicações 60 a 76.
78. Método de codificação para codificação de uma imagem, CARACTERIZADO pelo fato de que compreende um método de desblocagem conforme definido em qualquer uma das reivindicações 60 a 76.
79. Método de decodificação para decodificação de uma imagem, CARACTERIZADO pelo fato de que compreende um método de desblocagem conforme definido em qualquer uma das reivindicações 60 a 76.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862745262P | 2018-10-12 | 2018-10-12 | |
US62/745,262 | 2018-10-12 | ||
US201862768074P | 2018-11-15 | 2018-11-15 | |
US62/768,074 | 2018-11-15 | ||
PCT/US2019/056165 WO2020077351A1 (en) | 2018-10-12 | 2019-10-14 | Apparatus and method for deblocking filter in video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
BR112021006909A2 true BR112021006909A2 (pt) | 2021-07-20 |
Family
ID=70165010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112021006909-7A BR112021006909A2 (pt) | 2018-10-12 | 2019-10-14 | aparelho e método para filtro de desblocagem em codificação de vídeo |
Country Status (11)
Country | Link |
---|---|
US (2) | US11683533B2 (pt) |
EP (2) | EP4398581A2 (pt) |
JP (2) | JP7326439B2 (pt) |
KR (2) | KR20230162161A (pt) |
CN (4) | CN113228686B (pt) |
AU (1) | AU2019359490B2 (pt) |
BR (1) | BR112021006909A2 (pt) |
CA (1) | CA3115982A1 (pt) |
IL (1) | IL282246A (pt) |
MX (1) | MX2021004177A (pt) |
WO (1) | WO2020077351A1 (pt) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2768016C1 (ru) * | 2018-03-30 | 2022-03-23 | Шарп Кабусики Кайся | Системы и способы применения фильтров деблокирования к восстановленным видеоданным |
CA3129687A1 (en) | 2019-12-24 | 2021-07-01 | Telefonaktiebolaget Lm Ericsson (Publ) | Virtual boundary processing for adaptive loop filtering |
CN114071049B (zh) * | 2022-01-13 | 2022-05-10 | 广州匠芯创科技有限公司 | 图像缩放方法、装置及存储介质 |
CN116740579B (zh) * | 2023-08-15 | 2023-10-20 | 兰陵县城市规划设计室 | 一种国土空间规划数据智能采集方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197194B1 (en) * | 2001-05-14 | 2007-03-27 | Lsi Logic Corporation | Video horizontal and vertical variable scaling filter |
US20060002475A1 (en) * | 2004-07-02 | 2006-01-05 | Fuchs Robert J | Caching data for video edge filtering |
US8619880B2 (en) | 2007-10-10 | 2013-12-31 | Qualcomm Incorporated | Universal blockiness correction |
KR101701342B1 (ko) * | 2009-08-14 | 2017-02-01 | 삼성전자주식회사 | 적응적인 루프 필터링을 이용한 비디오의 부호화 방법 및 장치, 비디오 복호화 방법 및 장치 |
EP2664139A2 (en) * | 2011-01-14 | 2013-11-20 | Telefonaktiebolaget LM Ericsson (PUBL) | A method for deblocking filter control and a deblocking filtering control device |
WO2013001957A1 (ja) | 2011-06-28 | 2013-01-03 | ソニー株式会社 | 画像処理装置と画像処理方法 |
US8964833B2 (en) * | 2011-07-19 | 2015-02-24 | Qualcomm Incorporated | Deblocking of non-square blocks for video coding |
US9485521B2 (en) * | 2011-09-19 | 2016-11-01 | Lg Electronics Inc. | Encoding and decoding image using sample adaptive offset with start band indicator |
KR102278501B1 (ko) * | 2011-10-18 | 2021-07-16 | 엘지전자 주식회사 | 인트라 예측 방법 및 그 장치 |
US9167269B2 (en) | 2011-10-25 | 2015-10-20 | Qualcomm Incorporated | Determining boundary strength values for deblocking filtering for video coding |
US9344717B2 (en) * | 2012-08-06 | 2016-05-17 | Mediatek Inc. | Method and apparatus for sample adaptive offset in a video decoder |
JP2018107500A (ja) * | 2016-12-22 | 2018-07-05 | キヤノン株式会社 | 符号化装置、符号化方法及びプログラム、復号装置、復号方法及びプログラム |
US10965943B2 (en) | 2016-12-28 | 2021-03-30 | Sony Corporation | Image processing apparatus and image processing method |
-
2019
- 2019-10-14 JP JP2021520213A patent/JP7326439B2/ja active Active
- 2019-10-14 CN CN201980067365.7A patent/CN113228686B/zh active Active
- 2019-10-14 EP EP24178171.5A patent/EP4398581A2/en active Pending
- 2019-10-14 EP EP19871261.4A patent/EP3857897A4/en active Pending
- 2019-10-14 KR KR1020237040198A patent/KR20230162161A/ko not_active Application Discontinuation
- 2019-10-14 WO PCT/US2019/056165 patent/WO2020077351A1/en active Application Filing
- 2019-10-14 BR BR112021006909-7A patent/BR112021006909A2/pt unknown
- 2019-10-14 KR KR1020217013858A patent/KR102606722B1/ko active IP Right Grant
- 2019-10-14 MX MX2021004177A patent/MX2021004177A/es unknown
- 2019-10-14 CA CA3115982A patent/CA3115982A1/en active Pending
- 2019-10-14 CN CN202211417122.1A patent/CN116016932A/zh active Pending
- 2019-10-14 AU AU2019359490A patent/AU2019359490B2/en active Active
- 2019-10-14 CN CN202211422362.0A patent/CN115988211A/zh active Pending
- 2019-10-14 CN CN202211422560.7A patent/CN116033163A/zh active Pending
-
2021
- 2021-04-11 IL IL282246A patent/IL282246A/en unknown
- 2021-04-12 US US17/228,306 patent/US11683533B2/en active Active
-
2023
- 2023-05-08 US US18/313,984 patent/US20230276076A1/en active Pending
- 2023-08-02 JP JP2023126269A patent/JP2023159145A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US11683533B2 (en) | 2023-06-20 |
CN116016932A (zh) | 2023-04-25 |
CN113228686B (zh) | 2022-11-18 |
CN116033163A (zh) | 2023-04-28 |
AU2019359490A1 (en) | 2021-05-27 |
EP4398581A2 (en) | 2024-07-10 |
US20230276076A1 (en) | 2023-08-31 |
US20210235127A1 (en) | 2021-07-29 |
KR20210068563A (ko) | 2021-06-09 |
EP3857897A1 (en) | 2021-08-04 |
KR102606722B1 (ko) | 2023-11-24 |
MX2021004177A (es) | 2021-09-08 |
EP3857897A4 (en) | 2022-03-23 |
AU2019359490B2 (en) | 2023-03-16 |
KR20230162161A (ko) | 2023-11-28 |
AU2019359490A8 (en) | 2021-06-17 |
JP2023159145A (ja) | 2023-10-31 |
CN113228686A (zh) | 2021-08-06 |
CN115988211A (zh) | 2023-04-18 |
CA3115982A1 (en) | 2020-04-16 |
WO2020077351A1 (en) | 2020-04-16 |
JP7326439B2 (ja) | 2023-08-15 |
IL282246A (en) | 2021-05-31 |
JP2022502976A (ja) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3868101B1 (en) | An encoder, a decoder and corresponding methods for performing chroma deblocking for blocks which use joint chroma coding | |
BR122023023994A2 (pt) | Codificador de vídeo, decodificador de vídeo e métodos correspondentes | |
WO2021129690A1 (en) | Cross-component adaptive loop filtering for video coding | |
BR112021006909A2 (pt) | aparelho e método para filtro de desblocagem em codificação de vídeo | |
BR112020026818A2 (pt) | codificador, decodificador e métodos correspondentes de derivação de resistência de limite de filtro de desbloqueio | |
CN112868232A (zh) | 使用插值滤波器进行帧内预测的方法和装置 | |
BR112021016560A2 (pt) | Método e aparelho para predição intra usando modelo linear | |
BR112021003741A2 (pt) | codificador, decodificador e métodos correspondentes usando uma codificação de paleta | |
BR122022009445A2 (pt) | Codificador, decodificador e métodos correspondentes para simplificar sinalização de cabeçalho de imagem | |
BR112020025145A2 (pt) | filtro de desbloqueio para fronteiras de subpartição causadas por ferramenta de codificação de subpartição intra | |
BR112021002210A2 (pt) | aparelho e método para realizar desblocagem | |
BR112021014502A2 (pt) | Codificador, decodificador e métodos correspondentes de adaptação de filtro de desblocagem | |
CN116567207B (zh) | 用于帧内预测的方法和装置 | |
BR112021003946A2 (pt) | codificador de vídeo, decodificador de vídeo e métodos correspondentes | |
BR112021012708A2 (pt) | Método e aparelho de modelagem linear de componente cruzado para predição intra | |
RU2789030C2 (ru) | Устройство и способ для фильтра деблокинга при кодировании видео | |
BR122023025769A2 (pt) | Filtragem loop adaptativa de componente cruzado para codificação de vídeo | |
BR122023025774A2 (pt) | Filtragem loop adaptativa de componente cruzado para codificação de vídeo | |
BR122023025787A2 (pt) | Filtragem loop adaptativa de componente cruzado para codificação de vídeo | |
BR122023005459B1 (pt) | Fluxo de bits codificado, dispositivo e método para armazenar um fluxo de bits, dispositivo e método para transmitir um fluxo de bits, e sistema para processar um fluxo de bits | |
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 |