BR112021004124A2 - método de decodificação de vídeo e decodificador de vídeo - Google Patents

método de decodificação de vídeo e decodificador de vídeo Download PDF

Info

Publication number
BR112021004124A2
BR112021004124A2 BR112021004124-9A BR112021004124A BR112021004124A2 BR 112021004124 A2 BR112021004124 A2 BR 112021004124A2 BR 112021004124 A BR112021004124 A BR 112021004124A BR 112021004124 A2 BR112021004124 A2 BR 112021004124A2
Authority
BR
Brazil
Prior art keywords
current
node
current node
depth
region covered
Prior art date
Application number
BR112021004124-9A
Other languages
English (en)
Inventor
Yin Zhao
Haitao Yang
Original Assignee
Huawei Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority claimed from PCT/CN2019/102944 external-priority patent/WO2020048361A1/zh
Publication of BR112021004124A2 publication Critical patent/BR112021004124A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

MÉTODO DE DECODIFICAÇÃO DE VÍDEO E DECODIFICADOR DE VÍDEO. A presente invenção divulga um método de decodificação de vídeo e um decodificador de vídeo. O método inclui: análise (901) de informação de divisão de árvore de codificação para obter um nó atual; determinar (902), com base em uma profundidade N do nó atual, uma região coberta por um grupo de quantização atual; obter (903) um delta de parâmetro de quantização QP de uma unidade de codificação CU atual na região coberta pelo grupo de quantização atual; e obter (904) uma imagem reconstruída da CU atual com base no delta QP da CU atual. Usando a presente invenção, a eficiência de decodificação pode ser melhorada.

Description

MÉTODO DE DECODIFICAÇÃO DE VÍDEO E DECODIFICADOR DE VÍDEO
[0001] Este pedido reivindica prioridade ao Pedido de Patente Chinesa Nº. 201811032693.7, depositado na Administração Nacional de Propriedade Intelectual da China em 5 de setembro de 2018 e intitulado "VIDEO DECODING METHOD AND VIDEO DECODER", e ao Pedido de Patente Chinesa Nº.
201811104788.5, depositado na Administração Nacional de Propriedade Intelectual da China em 21 de setembro de 2018 e intitulado "VIDEO DECODING METHOD AND VIDEO DECODER", os quais são incorporados neste documento por referência em sua totalidade.
CAMPO TÉCNICO
[0002] As modalidades deste pedido geralmente se referem ao campo de codificação de vídeo e, mais especificamente, a um método de decodificação de vídeo e um decodificador de vídeo.
ANTECEDENTES
[0003] A codificação de vídeo (codificação e decodificação de vídeo) é usada em uma ampla variedade de aplicativos de vídeo digital, por exemplo, difusão de TV digital, transmissão de vídeo pela Internet e redes móveis, aplicativos de conversação em tempo real, como chat de vídeo e videoconferência, DVDs e Discos Blu-ray e aplicativos de segurança de sistemas de edição e coleta de conteúdo de vídeo e câmeras de vídeo.
[0004] Com o desenvolvimento de uma abordagem de codificação de vídeo híbrida baseada em bloco no padrão H.261 em 1990, novas tecnologias e ferramentas de codificação de vídeo foram desenvolvidas e formaram uma base para novos padrões de codificação de vídeo. 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 (Advanced Video Coding, AVC), ITU-T H.265 / codificação de vídeo de alta eficiência (High Efficiency Video Coding, HEVC) e extensões, por exemplo, escalabilidade e / ou extensões 3D (tridimensionais) desses padrões. Como a criação e o uso de vídeo se tornaram mais onipresentes, o tráfego de vídeo é a maior carga nas redes de comunicação e armazenamento de dados. Portanto, um dos objetivos da maioria dos padrões de codificação de vídeo é obter uma redução da taxa de bits em comparação com um padrão anterior sem sacrificar a qualidade da imagem. Embora a mais recente codificação de vídeo de alta eficiência (High Efficiency video coding, HEVC) possa compactar um vídeo cerca de duas vezes mais do que AVC sem sacrificar a qualidade da imagem, é necessária uma nova tecnologia para compactar ainda mais o vídeo em comparação com HEVC.
SUMÁRIO
[0005] As modalidades deste pedido fornecem um método de decodificação de vídeo e um decodificador de vídeo, para melhorar a eficiência da decodificação.
[0006] O precedente e outros objetivos são alcançados pelo objeto das reivindicações independentes. Outras implementações são evidentes a partir das reivindicações dependentes, do relatório descritivo e dos desenhos anexos.
[0007] De acordo com um primeiro aspecto, a presente invenção se refere a um método de decodificação de vídeo. O método é realizado por um decodificador de vídeo. O método inclui: analisar a informação de divisão da árvore de codificação para obter um nó atual; determinar, com base em uma profundidade N do nó atual, uma região coberta por um grupo de quantização atual; obter um delta QP de uma CU atual na região coberta pelo grupo de quantização atual; e obter uma imagem reconstruída da CU atual com base no delta QP da CU atual.
[0008] Pode ser aprendido que, de acordo com o método de decodificação de vídeo fornecido na presente invenção, a região coberta pelo grupo de quantização atual pode ser determinada com base na profundidade N do nó atual, para garantir que um QP pode corresponder a uma CU, então para evitar que uma CU corresponda a dois QGs diferentes, e melhorar a eficiência da decodificação.
[0009] De acordo com o primeiro aspecto, em uma possível implementação do método, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A determinação, com base em uma profundidade N do nó atual, de uma região coberta por um grupo de quantização atual inclui: determinar, com base na profundidade N do nó atual, a região coberta pelo grupo de quantização atual; ou determinar, com base em uma profundidade de árvore multitipo M do nó atual, a região coberta pelo grupo de quantização atual. Se N for maior que um primeiro limiar T1 ou M for maior que 0, a região coberta pelo grupo de quantização atual é uma região coberta por um nó de quadtree de K-ésima camada do nó atual. K é um valor menor entre N e T1, e o nó de quadtree de K-ésima camada é um nó de quadtree que inclui o nó atual e que é gerado após K vezes de divisão de quadtree a partir de uma unidade de árvore de codificação CTU.
[0010] O nó de quadtree de K-ésima camada é um nó pai de (M + N - K) -ésima camada do nó atual.
[0011] Pode ser aprendido que, um intervalo de cobertura QP é determinado com base na CU, de modo que a divisão QP pode ser mais precisa e a qualidade de decodificação pode ser melhorada.
[0012] De acordo com o primeiro aspecto, em uma possível implementação do método, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A determinação, com base em uma profundidade N do nó atual, de uma região coberta por um grupo de quantização atual inclui: determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, a região coberta pelo grupo de quantização atual. Se N for menor ou igual a um primeiro limiar T1 e M for igual a 0, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[0013] Pode ser aprendido que, um intervalo de cobertura QP é determinado com base na CU, de modo que a divisão QP pode ser mais precisa e a qualidade de decodificação pode ser melhorada.
[0014] De acordo com o primeiro aspecto, em uma possível implementação do método, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A determinação, com base em uma profundidade N do nó atual, de uma região coberta por um grupo de quantização atual inclui: determinar, com base na profundidade N de quadtree do nó atual, a região coberta pelo grupo de quantização atual; ou determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, a região coberta pelo grupo de quantização atual. Se N for igual a um primeiro limiar T1 e M for igual a 0, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual. Alternativamente, se N for menor que um primeiro limiar T1, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[0015] Pode ser aprendido que, um intervalo de cobertura QP é determinado com base na CU, de modo que a divisão QP pode ser mais precisa e a qualidade de decodificação pode ser melhorada.
[0016] De acordo com o primeiro aspecto, em uma possível implementação do método, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A determinação, com base em uma profundidade N do nó atual, de uma região coberta por um grupo de quantização atual inclui: determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, a região coberta pelo grupo de quantização atual. Se N for igual a um primeiro limiar T1 e M for igual a 0, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual. Alternativamente, se N for menor que um primeiro limiar T1 e M for menor ou igual a um quarto limiar T4, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[0017] De acordo com o primeiro aspecto, em uma possível implementação do método, o quarto limiar T4 pode ser um número inteiro positivo predefinido, por exemplo, 1, 2, 3 ou
4.
[0018] De acordo com o primeiro aspecto, em uma possível implementação do método, o quarto limiar pode ser determinado com base no primeiro limiar T1 e a profundidade N de quadtree do nó atual, por exemplo, pode ser T4 = T1 - N.
[0019] Pode ser aprendido que, um intervalo de cobertura QP é determinado com base na CU, de modo que a divisão QP pode ser mais precisa e a qualidade de decodificação pode ser melhorada.
[0020] De acordo com o primeiro aspecto, em uma possível implementação do método, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A determinação, com base em uma profundidade N do nó atual, de uma região coberta por um grupo de quantização atual inclui: determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, a região coberta pelo grupo de quantização atual. Se N for menor ou igual a um primeiro limiar T1 e M for menor ou igual a T1 - N, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[0021] Pode ser aprendido que, um intervalo de cobertura QP é determinado com base na CU, de modo que a divisão QP pode ser mais precisa e a qualidade de decodificação pode ser melhorada.
[0022] De acordo com o primeiro aspecto, em uma possível implementação do método, a determinação, com base em uma profundidade N do nó atual, de uma região coberta por um grupo de quantização atual inclui: se a profundidade N do nó atual for maior do que um primeiro limiar T1, obter um nó pai de (N - T1) -ésima camada do nó atual; e determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó pai de (N - T1) -ésima camada.
[0023] Pode ser aprendido que, um intervalo de cobertura QP é determinado com base na CU, de modo que a divisão QP pode ser mais precisa e a qualidade de decodificação pode ser melhorada.
[0024] De acordo com o primeiro aspecto, em uma possível implementação do método, a determinação, com base em uma profundidade N do nó atual, de uma região coberta por um grupo de quantização atual inclui: se a profundidade N do nó atual for igual a um primeiro limiar T1, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[0025] Pode ser aprendido que a profundidade N do nó atual é diretamente comparada com o primeiro limiar T1, para determinar a região coberta pelo grupo de quantização atual. Desta forma, a velocidade de decodificação é melhorada.
[0026] De acordo com o primeiro aspecto, em uma possível implementação do método, a profundidade do nó atual é a profundidade de QT do nó atual, ou a profundidade do nó atual é uma soma da profundidade de QT do nó atual e a profundidade de MTT do nó atual.
[0027] Pode ser aprendido que um equilíbrio pode ser alcançado entre a velocidade de decodificação e a qualidade de decodificação usando diferentes modos de determinação de profundidade, para melhorar a eficiência de decodificação final.
[0028] De acordo com o primeiro aspecto, em uma possível implementação do método, o primeiro limiar T1 é 0, 1, 2 ou
3.
[0029] De acordo com o primeiro aspecto, em uma possível implementação do método, o método inclui ainda: obter um modo de divisão do nó atual. A determinação, com base em uma profundidade N do nó atual, de uma região coberta por um grupo de quantização atual inclui: se a profundidade N do nó atual é igual a um segundo limiar T2 menos 1, e o modo de divisão do nó atual é um modo de divisão ternário, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual; ou se a profundidade N do nó atual é igual a um segundo limiar T2, e o modo de divisão do nó atual é um modo de divisão binário ou um modo de divisão de quadtree, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual; ou se a profundidade do nó atual for menor ou igual a um segundo limiar, e o nó atual não estiver mais dividido, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[0030] Pode ser aprendido que, para diferentes casos, diferentes maneiras são usadas para determinar a região coberta pelo grupo de quantização atual, de modo que a precisão da divisão QG possa ser melhorada, melhorando assim a precisão da decodificação.
[0031] De acordo com o primeiro aspecto, em uma possível implementação do método, o segundo limiar é 2, 3, 4, 6, 8 ou
9.
[0032] De acordo com o primeiro aspecto, em uma possível implementação do método, o segundo limiar pode ser definido como X vezes o primeiro limiar, onde X é um número inteiro maior que 1. Por exemplo, X é 2, 3 ou 4.
[0033] De acordo com o primeiro aspecto, em uma possível implementação do método, o método inclui ainda: obter um modo de divisão do nó atual. A determinação, com base em uma profundidade N do nó atual, de uma região coberta por um grupo de quantização atual inclui: se a profundidade N do nó atual é igual a um terceiro limiar T3 menos 1, e o modo de divisão do nó atual é um modo de divisão ternário ou um modo de divisão de quadtree, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual; ou se a profundidade N do nó atual é igual a um terceiro limiar T3, e o modo de divisão do nó atual é um modo de divisão binário, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual; ou se a profundidade N do nó atual é igual a um terceiro limiar T3, e o nó atual não está mais dividido, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[0034] Pode ser aprendido que, para diferentes casos, diferentes maneiras são usadas para determinar a região coberta pelo grupo de quantização atual, de modo que a precisão da divisão QG possa ser melhorada, melhorando assim a precisão da decodificação.
[0035] De acordo com o primeiro aspecto, em uma possível implementação do método, o terceiro limiar é 3 ou 5.
[0036] De acordo com o primeiro aspecto, em uma possível implementação do método, a profundidade N do nó atual é determinada com base em uma profundidade de QT do nó atual e uma profundidade binária Db do nó atual.
[0037] De acordo com o primeiro aspecto, em uma possível implementação do método, a profundidade N do nó atual é determinada usando a seguinte fórmula de cálculo: N = Dq * 2 + Db, onde Dq é a profundidade de QT do nó atual.
[0038] De acordo com o primeiro aspecto, em uma possível implementação do método, se o nó atual for um nó raiz de MTT, a profundidade binária Db do nó atual é 0; ou se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho obtido no modo de divisão binária, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 1; ou se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho intermediário obtido no modo de divisão ternário, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 1; ou se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho não intermediário obtido no modo de divisão ternário, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 2.
[0039] Pode-se aprender que, para diferentes casos, diferentes maneiras são usadas para determinar a profundidade, de modo que a precisão da divisão QG possa ser melhorada, melhorando assim a precisão da decodificação.
[0040] De acordo com o primeiro aspecto, em uma possível implementação do método, se um delta QP de uma primeira CU tendo um residual no grupo de quantização atual não for igual a 0, QPs de luminância de todos as CUs cujas sequências de codificação são anteriores à da primeira CU tendo um residual no grupo de quantização atual são modificados para uma QP de luminância da primeira CU tendo um residual.
[0041] Se a CU atual for uma CU antes da primeira CU tendo um resíduo no grupo de quantização atual, a obtenção de uma imagem reconstruída da CU atual com base no delta QP da CU atual é especificamente: obter a imagem reconstruída da CU atual com base no QP de luminância da primeira CU tendo um residual.
[0042] De acordo com um segundo aspecto, a presente invenção se refere a um decodificador de vídeo. O decodificador de vídeo inclui: uma unidade de decodificação de entropia, configurada para: analisar a informação de divisão da árvore de codificação para obter um nó atual, determinar, com base em uma profundidade N do nó atual, uma região coberta por um grupo de quantização atual, obter um delta QP de uma CU atual na região coberta pelo grupo de quantização atual, e determinar uma QP de luminância da CU atual com base no delta QP da CU atual; uma unidade de quantização inversa, configurada para obter um coeficiente desquantizado da CU atual com base na QP de luminância da CU atual; uma unidade de processamento de transformada inversa, configurada para obter um bloco residual reconstruído da CU atual com base no coeficiente desquantizado da CU atual; e uma unidade de reconstrução, configurada para obter uma imagem reconstruída da CU atual com base no bloco residual reconstruído da CU atual.
[0043] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A unidade de decodificação de entropia é configurada especificamente para: determinar, com base na profundidade N do nó atual, a região coberta pelo grupo de quantização atual; ou determinar, com base em uma profundidade de árvore multitipo M do nó atual, a região coberta pelo grupo de quantização atual. Se N for maior que um primeiro limiar T1 ou M for maior que 0, a região coberta pelo grupo de quantização atual é uma região coberta por um nó de quadtree de K-ésima camada do nó atual. K é um valor menor entre N e T1, e o nó de quadtree de K-ésima camada é um nó de quadtree que inclui o nó atual e que é gerado após K vezes de divisão de quadtree a partir de uma unidade de árvore de codificação CTU.
[0044] O nó de quadtree de K-ésima camada é um nó pai de (M + N - K) -ésima camada do nó atual.
[0045] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A unidade de decodificação de entropia é configurada especificamente para determinar, com base na profundidade N de quadtree do nó atual e em uma profundidade de árvore multitipo M do nó atual, a região coberta pelo grupo de quantização atual. Se N for menor ou igual a um primeiro limiar T1 e M for igual a 0, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[0046] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A unidade de decodificação de entropia é especificamente configurada para: determinar, com base na profundidade N de quadtree do nó atual, a região coberta pelo grupo de quantização atual, ou determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, a região coberta pelo grupo de quantização atual. Se N for igual a um primeiro limiar T1 e M for igual a 0, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual. Alternativamente, se N for menor que um primeiro limiar T1, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[0047] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A unidade de decodificação de entropia é configurada especificamente para determinar, com base na profundidade N de quadtree do nó atual e em uma profundidade de árvore multitipo M do nó atual, a região coberta pelo grupo de quantização atual. Se N for igual a um primeiro limiar T1 e M for igual a 0, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual. Alternativamente, se N for menor que um primeiro limiar T1 e M for menor ou igual a um quarto limiar T4, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[0048] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, o quarto limiar T4 pode ser um número inteiro positivo predefinido, por exemplo, 1, 2, 3 ou 4.
[0049] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, o quarto limiar pode ser determinado com base no primeiro limiar T1 e a profundidade N de quadtree do nó atual, por exemplo, pode ser T4 = T1 - N.
[0050] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A unidade de decodificação de entropia é configurada especificamente para determinar, com base na profundidade N de quadtree do nó atual e em uma profundidade de árvore multitipo M do nó atual, a região coberta pelo grupo de quantização atual. Se N for menor ou igual a um primeiro limiar T1 e M for menor ou igual a T1 - N, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[0051] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, a unidade de decodificação de entropia é especificamente configurada para: se a profundidade N do nó atual for maior do que um primeiro limiar T1, obter um nó pai de (N - T1) -ésima camada do nó atual; e determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó pai de (N - T1) -ésima camada.
[0052] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, a unidade de decodificação de entropia é configurada especificamente para: se a profundidade N do nó atual for igual a um primeiro limiar T1, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[0053] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, a profundidade do nó atual é a profundidade de QT do nó atual, ou a profundidade do nó atual é uma soma da profundidade de QT do nó atual e da profundidade de MTT do nó atual.
[0054] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, o primeiro limiar T1 é 0, 1, 2 ou 3.
[0055] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, a unidade de decodificação de entropia é ainda configurada para: obter um modo de divisão do nó atual; e se a profundidade N do nó atual é igual a um segundo limiar T2 menos 1, e o modo de divisão do nó atual é um modo de divisão ternário, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual; ou se a profundidade N do nó atual é igual a um segundo limiar T2, e o modo de divisão do nó atual é um modo de divisão binário ou um modo de divisão de quadtree, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual; ou se a profundidade N do nó atual for menor ou igual a um segundo limiar, e o nó atual não estiver mais dividido, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[0056] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, o segundo limiar é 2, 3, 4, 6, 8 ou 9.
[0057] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, a unidade de decodificação de entropia é ainda configurada para: obter um modo de divisão do nó atual; e se a profundidade N do nó atual for igual a um terceiro limiar T3 menos 1, e o modo de divisão do nó atual for um modo de divisão ternário ou um modo de divisão de quadtree, determinar que a região coberta pelo grupo de quantização atual é um região coberta pelo nó atual; ou se a profundidade N do nó atual é igual a um terceiro limiar T3, e o modo de divisão do nó atual é um modo de divisão binário, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual; ou se a profundidade N do nó atual é igual a um terceiro limiar T3, e o nó atual não está mais dividido, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[0058] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, o terceiro limiar é 3 ou 5.
[0059] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, a unidade de decodificação de entropia é especificamente configurada para determinar a profundidade N do nó atual com base em uma profundidade de QT do nó atual e uma profundidade binária Db do nó atual.
[0060] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, a unidade de decodificação de entropia é configurada especificamente para determinar a profundidade N do nó atual usando a seguinte fórmula de cálculo: N = Dq * 2 + Db, onde Dq é a profundidade de QT do nó atual.
[0061] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, se o nó atual for um nó raiz de MTT, a profundidade binária Db do nó atual é 0; ou se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho obtido no modo de divisão binária, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 1; ou se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho intermediário obtido no modo de divisão ternário, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 1; ou se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho não intermediário obtido no modo de divisão ternário, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 2.
[0062] De acordo com o segundo aspecto, em uma possível implementação do decodificador de vídeo, a unidade de decodificação de entropia é ainda configurada para: se um delta QP de uma primeira CU tendo um residual no grupo de quantização atual não for igual a 0, modificar QPs de luminância de todas as CUs cujas sequências de codificação são anteriores à da primeira CU tendo um residual no grupo de quantização atual para um QP de luminância da primeira CU tendo um residual. Se a CU atual é uma CU antes da primeira CU tendo um residual no grupo de quantização atual, a unidade de quantização inversa é especificamente configurada para obter o coeficiente desquantizado da CU atual com base na QP de luminância da primeira CU tendo um residual.
[0063] De acordo com um terceiro aspecto, uma modalidade da presente invenção fornece um método de decodificação de vídeo, incluindo: analisar informação de divisão de árvore de codificação para obter um nó atual; determinar, com base em uma profundidade N do nó atual, as coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização atual; obter um delta de parâmetro de quantização QP de uma unidade de codificação CU atual na região coberta pelo grupo de quantização atual; e obter uma imagem reconstruída da CU atual com base no delta QP da CU atual.
[0064] De acordo com o terceiro aspecto, em uma possível implementação do método, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A determinação, com base na profundidade N do nó atual, das coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização atual inclui: determinar, com base na profundidade N do nó atual, as coordenadas do canto superior esquerdo canto da região coberta pelo grupo de quantização atual; ou determinar, com base em uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual. Se N for maior que um primeiro limiar T1 ou M for maior que 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta por um nó de quadtree de K-ésima camada do nó atual. K é um valor menor entre N e T1, e o nó de quadtree de K-ésima camada é um nó de quadtree que inclui o nó atual e que é gerado após K vezes de divisão de quadtree a partir de uma unidade de árvore de codificação CTU.
[0065] De acordo com o terceiro aspecto, em uma possível implementação do método, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A determinação, com base em uma profundidade N do nó atual, de coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização atual inclui: determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual. Se N for menor ou igual a um primeiro limiar T1 e M for igual a 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
[0066] De acordo com o terceiro aspecto, em uma possível implementação do método, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A determinação, com base em uma profundidade N do nó atual, das coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização atual inclui: determinar, com base na profundidade N de quadtree do nó atual, as coordenadas do canto esquerdo da região coberta pelo grupo de quantização atual; ou determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual. Se N for igual a um primeiro limiar T1 e M for igual a 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual. Alternativamente, se N for menor que um primeiro limiar T1, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
[0067] De acordo com o terceiro aspecto, em uma possível implementação do método, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A determinação, com base em uma profundidade N do nó atual, de coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização atual inclui: determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual. Se N for igual a um primeiro limiar T1 e M for igual a 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual. Alternativamente, se N for menor que um primeiro limiar T1 e M for menor ou igual a um quarto limiar T4, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
[0068] De acordo com o terceiro aspecto, em uma possível implementação do método, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A determinação, com base em uma profundidade N do nó atual, de coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização atual inclui: determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual. Se N for menor ou igual a um primeiro limiar T1 e M for menor ou igual a T1 - N, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
[0069] De acordo com o terceiro aspecto, em uma possível implementação do método, determinar, com base em uma profundidade N do nó atual, coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização atual inclui: se a profundidade N do nó atual é maior do que um primeiro limiar T1, obter um nó pai de (N - T1) -ésima camada do nó atual; e determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó pai de (N - T1) -ésima camada.
[0070] De acordo com o terceiro aspecto, em uma possível implementação do método, determinar, com base em uma profundidade N do nó atual, coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização atual inclui: se a profundidade N do nó atual é igual a um primeiro limiar T1, determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
[0071] De acordo com o terceiro aspecto, em uma possível implementação do método, o primeiro limiar T1 é um número inteiro não negativo predefinido.
[0072] De acordo com o terceiro aspecto, em uma possível implementação do método, o primeiro limiar T1 é 0, 1, 2 ou
3.
[0073] De acordo com o terceiro aspecto, em uma possível implementação do método, a profundidade do nó atual é a profundidade de quadtree QT do nó atual.
[0074] De acordo com o terceiro aspecto, em uma possível implementação do método, a profundidade do nó atual é uma soma da profundidade de QT do nó atual e a profundidade de árvore multitipo profundidade de MTT do nó atual.
[0075] De acordo com o terceiro aspecto, em uma possível implementação do método, o método inclui ainda: obter um modo de divisão do nó atual. A determinação, com base em uma profundidade N do nó atual, das coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização atual inclui: se a profundidade N do nó atual é igual a um segundo limiar T2 menos 1, e o modo de divisão do nó atual é um modo de divisão ternário, determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual; ou se a profundidade N do nó atual é igual a um segundo limiar T2, e o modo de divisão do nó atual é um modo de divisão binário ou um modo de divisão de quadtree, determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
[0076] De acordo com o terceiro aspecto, em uma possível implementação do método, o método inclui ainda: obter um modo de divisão do nó atual. A determinação, com base em uma profundidade N do nó atual, das coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização atual inclui: se a profundidade N do nó atual é igual a um terceiro limiar T3 menos 1, e o modo de divisão do nó atual é um modo de divisão ternário ou um modo de divisão de quadtree, determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta por o nó atual; ou se a profundidade N do nó atual é igual a um terceiro limiar T3, e o modo de divisão do nó atual é um modo de divisão binário, determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
[0077] De acordo com o terceiro aspecto, em uma possível implementação do método, a profundidade N do nó atual é determinada com base em uma profundidade de QT do nó atual e uma profundidade binária Db do nó atual.
[0078] De acordo com o terceiro aspecto, em uma possível implementação do método, a profundidade N do nó atual é determinada usando a seguinte fórmula de cálculo: N = Dq * 2 + Db, onde Dq é a profundidade de QT do nó atual.
[0079] De acordo com o terceiro aspecto, em uma possível implementação do método, se o nó atual for um nó raiz de árvore multitipo MTT, a profundidade binária Db do nó atual é 0; ou se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho obtido no modo de divisão binária, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 1; ou se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho intermediário obtido no modo de divisão ternário, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 1; ou se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho não intermediário obtido no modo de divisão ternário, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 2.
[0080] De acordo com o terceiro aspecto, em uma possível implementação do método, se um delta QP de uma primeira CU tendo um residual no grupo de quantização atual não for igual a 0, os QPs de luminância de todos os CUs cujas sequências de codificação são anteriores à da primeira CU tendo um residual no grupo de quantização atual são modificados para uma QP de luminância da primeira CU tendo um residual. Se a CU atual for uma CU antes da primeira CU tendo um resíduo no grupo de quantização atual, a obtenção de uma imagem reconstruída da CU atual com base no delta QP da CU atual é especificamente: obter a imagem reconstruída da CU atual com base na QP de luminância da primeira CU tendo um residual.
[0081] De acordo com um quarto aspecto, uma modalidade da presente invenção fornece um decodificador de vídeo, incluindo: uma unidade de decodificação de entropia, configurada para: analisar informação de divisão de árvore de codificação para obter um nó atual, determinar, com base em uma profundidade N do nó atual, coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização atual, obter um delta de parâmetro de quantização QP de uma unidade de codificação CU atual que cobre as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual, e determinar um QP de luminância da CU atual com base no delta QP da CU atual; uma unidade de quantização inversa, configurada para obter um coeficiente desquantizado da CU atual com base na QP de luminância da CU atual; uma unidade de processamento de transformada inversa, configurada para obter um bloco residual reconstruído da CU atual com base no coeficiente desquantizado da CU atual; e uma unidade de reconstrução, configurada para obter uma imagem reconstruída da CU atual com base no bloco residual reconstruído da CU atual.
[0082] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A unidade de decodificação de entropia é configurada especificamente para: determinar, com base na profundidade N do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual; ou determinar, com base em uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual. Se N for maior que um primeiro limiar T1 ou M for maior que 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta por um nó de quadtree de K- ésima camada do nó atual. K é um valor menor entre N e T1, e o nó de quadtree de K-ésima camada é um nó de quadtree que inclui o nó atual e que é gerado após K vezes de divisão de quadtree a partir de uma unidade de árvore de codificação CTU.
[0083] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A unidade de decodificação de entropia é especificamente configurada para determinar, com base na profundidade N de quadtree do nó atual e em uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual. Se N for menor ou igual a um primeiro limiar T1 e M for igual a 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
[0084] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A unidade de decodificação de entropia é especificamente configurada para: determinar, com base na profundidade N de quadtree do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual,
ou determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual. Se N for igual a um primeiro limiar T1 e M for igual a 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual. Alternativamente, se N for menor que um primeiro limiar T1, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
[0085] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A unidade de decodificação de entropia é especificamente configurada para determinar, com base na profundidade N de quadtree do nó atual e em uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual. Se N for igual a um primeiro limiar T1 e M for igual a 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual. Alternativamente, se N for menor que um primeiro limiar T1 e M for menor ou igual a um quarto limiar T4, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
[0086] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A unidade de decodificação de entropia é especificamente configurada para determinar, com base na profundidade N de quadtree do nó atual e em uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual. Se N for menor ou igual a um primeiro limiar T1 e M for menor ou igual a T1 - N, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
[0087] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, a unidade de decodificação de entropia é especificamente configurada para: se a profundidade N do nó atual for maior do que um primeiro limiar T1, obter um nó pai de (N - T1) -ésima camada do nó atual; e determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó pai de (N - T1) -ésima camada.
[0088] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, a unidade de decodificação de entropia é configurada especificamente para: se a profundidade N do nó atual for igual a um primeiro limiar T1, determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
[0089] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, o primeiro limiar T1 é um número inteiro não negativo predefinido.
[0090] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, o primeiro limiar T1 é 0, 1, 2 ou 3.
[0091] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, a profundidade do nó atual é a profundidade de QT de profundidade quadtree do nó atual.
[0092] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, a profundidade do nó atual é uma soma da profundidade de QT do nó atual e a profundidade de árvore multitipo profundidade de MTT do nó atual.
[0093] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, a unidade de decodificação de entropia é ainda configurada para: obter um modo de divisão do nó atual; e se a profundidade N do nó atual é igual a um segundo limiar T2 menos 1, e o modo de divisão do nó atual é um modo de divisão ternário, determinar que as coordenadas do canto superior esquerdo da região coberta pela corrente grupo de quantização são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual; ou se a profundidade N do nó atual é igual a um segundo limiar T2, e o modo de divisão do nó atual é um modo de divisão binário ou um modo de divisão de quadtree, determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
[0094] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, a unidade de decodificação de entropia é ainda configurada para: obter um modo de divisão do nó atual; e se a profundidade N do nó atual é igual a um terceiro limiar T3 menos 1, e o modo de divisão do nó atual é um modo de divisão ternário ou um modo de divisão de quadtree, determinar que as coordenadas do canto superior esquerdo do região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual; ou se a profundidade N do nó atual é igual a um terceiro limiar T3, e o modo de divisão do nó atual é um modo de divisão binário, determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
[0095] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, a unidade de decodificação de entropia é especificamente configurada para determinar a profundidade N do nó atual com base em uma profundidade de QT do nó atual e uma profundidade binária Db do nó atual.
[0096] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, a unidade de decodificação de entropia é configurada especificamente para determinar a profundidade N do nó atual usando a seguinte fórmula de cálculo: N = Dq * 2 + Db, onde Dq é a profundidade de QT do nó atual.
[0097] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, se o nó atual for um nó dividido de MTT de árvore de tipo múltiplo, a profundidade binária Db do nó atual é 0; ou se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho obtido no modo de divisão binária, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 1; ou se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho intermediário obtido no modo de divisão ternário, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 1; ou se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho não intermediário obtido no modo de divisão ternário, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 2.
[0098] De acordo com o quarto aspecto, em uma possível implementação do decodificador de vídeo, a unidade de decodificação de entropia é ainda configurada para: se um delta QP de uma primeira CU tendo um residual no grupo de quantização atual não for igual a 0, modificar QPs de luminância de todos os CUs cujas sequências de codificação são anteriores à da primeira CU tendo um residual no grupo de quantização atual para um QP de luminância da primeira CU tendo um residual. Se a CU atual é uma CU antes da primeira CU tendo um residual no grupo de quantização atual, a unidade de quantização inversa é especificamente configurada para obter o coeficiente desquantizado da CU atual com base na QP de luminância da primeira CU tendo um residual.
[0099] De acordo com um quinto aspecto, a presente invenção se refere a um aparelho de decodificação de fluxo de vídeo, incluindo um processador e uma memória. A memória armazena uma instrução e a instrução permite que o processador realize o método de acordo com o primeiro aspecto ou o terceiro aspecto ou qualquer modalidade possível do primeiro aspecto ou terceiro aspecto.
[00100] De acordo com um sexto aspecto, um meio de armazenamento legível por computador é fornecido. O meio de armazenamento legível por computador armazena uma instrução e, quando a instrução é executada, um ou mais processadores são habilitados para codificar dados de vídeo. A instrução permite que um ou mais processadores executem o método de acordo com o primeiro aspecto ou o terceiro aspecto ou qualquer modalidade possível do primeiro aspecto ou terceiro aspecto.
[00101] De acordo com um sétimo aspecto, a presente invenção se refere a um programa de computador incluindo código de programa. Quando o código do programa é executado em um computador, o método de acordo com o primeiro aspecto ou o terceiro aspecto ou qualquer modalidade possível do primeiro aspecto ou terceiro aspecto é realizado.
[00102] Os detalhes de uma ou mais modalidades são descritos nos desenhos anexos e nas descrições a seguir. Outras características, objetos e vantagens são evidentes a partir do relatório descritivo, desenhos e reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[00103] Para descrever as soluções técnicas nas modalidades deste pedido ou no contexto mais claramente, o seguinte descreve os desenhos anexos para descrever as modalidades deste pedido ou o contexto.
[00104] FIG. 1 é um diagrama de blocos de um exemplo de um sistema de codificação de vídeo usado para implementar uma modalidade da presente invenção; FIG. 2 é um diagrama de blocos que mostra um exemplo de estrutura de um codificador de vídeo usado para implementar uma modalidade da presente invenção; FIG. 3 é um diagrama de blocos que mostra um exemplo de estrutura de um decodificador de vídeo usado para implementar uma modalidade da presente invenção; FIG. 4 é um diagrama esquemático que ilustra um sistema de codificação de vídeo 40 incluindo um codificador 20 da FIG. 2 e / ou um decodificador 30 da FIG. 3; FIG. 5 é um diagrama de blocos que ilustra um exemplo de outro aparelho de codificação ou aparelho de decodificação; FIG. 6 é um diagrama esquemático que ilustra os modos de divisão de uma árvore binária, uma árvore tripla e uma quadtree de acordo com uma modalidade; FIG. 7 é um diagrama esquemático que ilustra uma divisão QT-MTT de acordo com uma modalidade; FIG. 8 é um diagrama esquemático que ilustra uma divisão QG de acordo com uma modalidade; e FIG. 9 é um fluxograma que ilustra um método de decodificação de vídeo de acordo com uma modalidade.
[00105] A seguir, sinais de referência idênticos representam características idênticas ou pelo menos funcionalmente equivalentes, a menos que especificado de outra forma.
DESCRIÇÃO DAS MODALIDADES
[00106] Na descrição a seguir, é feita referência aos desenhos anexos que fazem parte desta divulgação e mostram, a título de ilustração, aspectos específicos das modalidades da presente invenção ou aspectos específicos em que as modalidades da presente invenção podem ser usadas. Deve ser entendido que as modalidades da presente invenção podem ser usadas em outro aspecto, e podem incluir mudanças estruturais ou lógicas não representadas nos desenhos anexos. Portanto, a seguinte descrição detalhada não deve ser tomada em um sentido limitante, e o escopo da presente invenção é definido pelas reivindicações anexas.
[00107] Por exemplo, deve ser entendido que uma divulgação em conexão com um método descrito também pode ser verdadeira para um dispositivo ou sistema correspondente configurado para realizar o método e vice-versa. Por exemplo, se uma ou mais etapas de método específicas forem descritas, um dispositivo correspondente pode incluir uma ou mais unidades, como unidades funcionais, para realizar as uma ou mais etapas de método descritas (por exemplo, uma unidade realizando uma ou mais 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 nos desenhos anexos. Por outro lado, por exemplo, se um aparelho específico é descrito com base em uma ou mais unidades, como unidades funcionais, um método correspondente pode incluir uma etapa usada para realizar a funcionalidade de uma ou mais unidades (por exemplo, uma etapa usada para realizar a funcionalidade de uma ou mais unidades, ou uma pluralidade de etapas, cada uma usada para realizar a funcionalidade de uma ou mais de uma pluralidade de unidades), mesmo se uma ou mais etapas não forem explicitamente descritas ou ilustradas nos desenhos anexos. Além disso, deve ser entendido que as características dos vários exemplos de modalidades e / ou aspectos descritos nesta especificação podem ser combinados uns com os outros, a menos que especificamente indicado de outra forma.
[00108] A codificação de vídeo geralmente se refere ao processamento de uma sequência de imagens que constituem um vídeo ou uma sequência de vídeo. No campo da codificação de vídeo, os termos "imagem (picture)", "quadro (frame)" e "imagem (image)" podem ser usados como sinônimos. A codificação de vídeo usada neste pedido (ou nesta divulgação) indica codificação de vídeo ou decodificação de vídeo. A codificação de vídeo é realizada no lado fonte, e geralmente inclui o processamento (por exemplo, compactando) uma imagem de vídeo original para reduzir uma quantidade de dados para representar a imagem de vídeo (para armazenamento e / ou transmissão mais eficiente). A decodificação de vídeo é realizada em um lado de destino, e geralmente inclui processamento inverso em relação a um codificador para reconstruir a imagem de vídeo. A "codificação" de uma imagem de vídeo (ou coletivamente referida como uma imagem, que é explicada abaixo) nas modalidades deve ser entendida como "codificação" ou "decodificação" de uma sequência de vídeo. Uma combinação de uma parte de codificação e uma parte de decodificação também é conhecida como CODEC (codificação e decodificação).
[00109] Em um caso de codificação de vídeo sem perdas, uma imagem de vídeo original pode ser reconstruída. Em outras palavras, uma imagem de vídeo reconstruída tem a mesma qualidade da imagem de vídeo original (assumindo que nenhuma perda de transmissão ou outra perda de dados ocorra durante o armazenamento ou transmissão). Em um caso de codificação de vídeo com perdas, a compressão adicional é realizada por meio de, por exemplo, quantização, para reduzir uma quantidade de dados necessária para representar uma imagem de vídeo, e a imagem de vídeo não pode ser perfeitamente reconstruída no lado do decodificador. Em outras palavras, a qualidade de uma imagem de vídeo reconstruída é inferior ou pior do que a da imagem de vídeo original.
[00110] Vários padrões de codificação de vídeo H.261 são usados para "codificação de vídeo híbrido com perdas" (para ser específico, a predição espacial e temporal em um domínio da amostra é combinada com a codificação de transformada 2D para aplicar a quantização em um domínio de transformada). Cada imagem de uma sequência de vídeo é normalmente particionada em um conjunto de blocos não sobrepostos, e a codificação é normalmente realizada em um nível de bloco. Para ser mais específico, do lado do codificador, um vídeo é geralmente processado, ou seja, codificado, no nível de bloco (bloco de vídeo). Por exemplo, um bloco de predição é gerado por meio de predição espacial (intraimagem) e predição temporal (interimagem), o bloco de predição é subtraído de um bloco atual (bloco sendo processado ou a ser processado) para obter um bloco residual, e o bloco residual é transformado no domínio de transformada e quantizado para reduzir uma quantidade de dados que deve ser transmitida (compactada). No lado do decodificador, uma parte de processamento inversa em relação ao codificador é aplicada a um bloco codificado ou um bloco comprimido para reconstruir o bloco atual para representação. Além disso, o codificador duplica um circuito de processamento do decodificador, de modo que o codificador e o decodificador geram uma mesma predição (por exemplo, uma intrapredição e uma interpredição)
e / ou reconstrução, para processamento, isto é, para codificação de blocos subsequentes.
[00111] Conforme usado nesta especificação, o termo "bloco" pode ser uma parte de uma imagem ou um quadro. Por conveniência de descrição, as modalidades da presente invenção são descritas neste documento com referência à codificação de vídeo versátil (VVC: Versatile Video Coding) ou codificação de vídeo de alta eficiência (High-Efficiency Video Coding, HEVC) desenvolvida pela equipe de colaboração conjunta em codificação de vídeo (Joint Collaboration Team on Video Coding, JCT-VC) do grupo de especialistas em codificação de vídeo ITU-T (Video Coding Experts Group, VCEG) e do grupo de especialistas em imagem em movimento ISO / IEC (Motion Picture Experts Group, MPEG). Uma pessoa versada na técnica entende que as modalidades da presente invenção não estão limitadas a HEVC ou VVC. O bloco pode ser uma CU, uma PU ou uma TU. Em HEVC, uma CTU é dividida em uma pluralidade de CUs usando uma estrutura de quadtree representada como uma árvore de codificação. A decisão de codificar uma região de imagem por meio de predição de interimagem (temporal) ou intraimagem (espacial) é feita em um nível de CU. Cada CU pode ser dividida em uma, duas ou quatro PUs com base em um padrão de divisão de PU. Dentro de uma PU, um mesmo processo de predição é aplicado e a informação relacionada é transmitida ao decodificador com base na PU. Após obter um bloco residual aplicando o processo de predição com base no padrão de divisão de PU, a CU pode ser particionada em unidades de transformada (transform unit, TU) com base em outra estrutura de quadtree semelhante à árvore de codificação usada para a CU. No desenvolvimento recente de tecnologias de compressão de vídeo, um quadro de partição de quadtree mais árvore binária (Quad-tree plus binary tree, QTBT) é usado para particionar um bloco de codificação. Em uma estrutura de bloco QTBT, a CU pode ser quadrada ou retangular. No VVC, uma unidade de árvore de codificação (coding tree unit, CTU) é primeiro particionada usando uma estrutura de quadtree. Um nó folha de uma quadtree é posteriormente particionado usando uma estrutura de árvore binária. Um nó folha de uma árvore binária é referido como uma unidade de codificação (CU), e a CU é usada para predição e processamento de transformada sem qualquer partição adicional. Isso significa que a CU, PU e TU têm o mesmo tamanho de bloco na estrutura do bloco de codificação QTBT. Além disso, a partição de multiplicação, como partição de árvore tripla, é proposta para ser usada em combinação com a estrutura de bloco QTBT.
[00112] O seguinte descreve modalidades de um codificador 20, um decodificador 30 e sistemas de codificação 10 e 40 com base na FIG. 1 à FIG. 4 (antes das modalidades da presente invenção serem descritas em mais detalhes com base na FIG. 9).
[00113] FIG. 1 é um diagrama de blocos conceitual ou esquemático de um sistema de codificação 10 de exemplo, por exemplo, um sistema de codificação de vídeo 10 que pode usar uma tecnologia deste pedido (esta divulgação). Um codificador 20 (por exemplo, um codificador de vídeo 20) e um decodificador 30 (por exemplo, um decodificador de vídeo 30) do sistema de codificação de vídeo 10 representam dispositivos de exemplo que podem ser configurados para realizar, com base em vários exemplos descritos neste pedido,
uma tecnologia usada para... (partição / intrapredição /...). Como mostrado na FIG. 1, o sistema de codificação 10 inclui um dispositivo fonte 12 configurado para fornecer dados codificados 13, como uma imagem codificada 13 para, por exemplo, um dispositivo de destino 14 que decodifica os dados codificados 13.
[00114] O dispositivo fonte 12 inclui um codificador 20 e, opcionalmente, pode incluir uma fonte de imagem 16, por exemplo, uma unidade de pré-processamento 18 de uma unidade de pré-processamento de imagem 18 e uma interface de comunicações ou unidade de comunicações 22.
[00115] A fonte de imagem 16 pode incluir ou ser qualquer tipo de dispositivo de captura de imagem configurado para, por exemplo, capturar uma imagem do mundo real; e / ou qualquer tipo de dispositivo para gerar uma imagem ou comentário (para codificação de conteúdo de tela, algum texto em uma tela também é considerado como parte de uma imagem ou imagem a ser codificada), por exemplo, um processador gráfico de computador configurado para gerar uma imagem de animação por computador; ou qualquer tipo de dispositivo configurado para obter e / ou fornecer uma imagem do mundo real ou uma imagem de animação de computador (por exemplo, conteúdo de tela ou uma imagem de realidade virtual (virtual reality, VR)); e / ou qualquer combinação dos mesmos (por exemplo, uma imagem de realidade aumentada (augmented reality, AR)).
[00116] Uma imagem (digital) é ou pode ser considerada uma matriz bidimensional ou matriz de amostras com valores de intensidade. Uma amostra na matriz também pode ser referida como um pixel (pixel) (abreviação de elemento de imagem (picture element)) ou pel (pel). Uma quantidade de amostras nas direções (ou eixos) horizontal e vertical da matriz ou da imagem define um tamanho e / ou resolução da imagem. Para representação de cor, três componentes de cor são normalmente empregados, para ser específico, a imagem pode ser representada como ou incluir três matrizes de amostra. Em um formato RBG ou um espaço de cor, uma imagem inclui matrizes de amostra vermelhas, verdes e azuis correspondentes. No entanto, na codificação de vídeo, cada pixel é geralmente representado em um formato de luminância / crominância ou um espaço de cor, por exemplo, YCbCr, que inclui um componente de luminância indicado por Y (às vezes indicado por L alternativamente) e dois componentes de crominância indicados por Cb e Cr. O componente Y de luminância (luma, abreviado) representa o brilho ou a intensidade do nível de cinza (por exemplo, ambos são iguais em uma imagem em escala de cinza), e os dois componentes de crominância (croma, abreviado) Cb e Cr representam crominância ou componentes de informação de cor. Correspondentemente, uma imagem em um formato YCbCr inclui uma matriz de amostra de luminância de valores de amostra de luminância (Y), e duas matrizes de amostra de crominância de valores de crominância (Cb e Cr). Uma imagem em formato RGB pode ser transformada ou convertida em formato YCbCr e vice- versa. Esse processo também é conhecido como conversão ou transformada de cores. Se uma imagem for monocromática, a imagem pode incluir apenas uma matriz de amostra de luminância.
[00117] A fonte de imagem 16 (por exemplo, uma fonte de vídeo 16) pode ser, por exemplo, uma câmera para capturar uma imagem, ou uma memória, tal como uma memória de imagem,
incluindo ou armazenando uma imagem capturada ou gerada anteriormente 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 uma câmera integrada integrada no dispositivo fonte, e a memória pode ser uma memória local ou, por exemplo, uma memória integrada integrada no dispositivo fonte. A interface pode ser, por exemplo, uma interface externa para receber uma imagem de uma fonte de vídeo externa. A fonte de vídeo externa é, por exemplo, um dispositivo externo de captura de imagens, como uma câmera, uma memória externa ou um dispositivo externo de geração de imagens. O dispositivo externo de geração de imagem é, por exemplo, um processador gráfico de computador externo, um computador ou um servidor. A interface pode ser qualquer tipo de interface, por exemplo, uma interface com fio ou sem fio ou uma interface óptica, de acordo com qualquer protocolo de interface exclusivo ou padronizado. Uma interface para obter dados de imagem 17 pode ser a mesma interface ou uma parte da interface de comunicações 22.
[00118] Diferente da unidade de pré-processamento 18 e processamento realizado pela unidade de pré-processamento 18, a imagem ou dados de imagem 17 (por exemplo, dados de vídeo 16) também podem ser referidos como uma imagem bruta ou dados de imagem brutos 17.
[00119] A unidade de pré-processamento 18 é configurada para receber os dados de imagem (brutos) 17 e realizar o pré-processamento nos dados de imagem 17 para obter uma imagem pré-processada 19 ou dados de imagem pré-processados
19. Por exemplo, o pré-processamento realizado pela unidade de pré-processamento 18 pode incluir corte, conversão de formato de cor (por exemplo, de RGB para YCbCr), correção de cor, ou eliminação de ruído. Pode ser entendido que a unidade de pré-processamento 18 pode ser um componente opcional.
[00120] O codificador 20 (por exemplo, o codificador de vídeo 20) é configurado para receber os dados de imagem pré- processados 19 e fornecer dados de imagem codificados 21 (detalhes são descritos abaixo, por exemplo, com base na FIG. 2 ou FIG. 4).
[00121] A interface de comunicações 22 do dispositivo fonte 12 pode ser configurada para receber os dados de imagem codificados 21 e transmitir os dados de imagem codificados 21 para outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo, para armazenamento ou reconstrução direta. Alternativamente, a interface de comunicações 22 é configurada para processar os dados de imagem codificados 21 antes de armazenar correspondentemente os dados codificados 13 e / ou transmitir os dados codificados 13 para outro dispositivo. O outro dispositivo é, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo usado para decodificação ou armazenamento.
[00122] O dispositivo de destino 14 inclui o decodificador 30 (por exemplo, o decodificador de vídeo 30) e, opcionalmente, pode incluir uma interface de comunicações ou unidade de comunicações 28, uma unidade de pós- processamento 32 e um dispositivo de exibição 34.
[00123] A interface de comunicações 28 do dispositivo de destino 14 é configurada para, por exemplo, receber os dados de imagem codificados 21 ou os dados codificados 13 diretamente do dispositivo fonte 12 ou qualquer outra fonte. Qualquer outra fonte é, por exemplo, um dispositivo de armazenamento. O dispositivo de armazenamento é, por exemplo, um dispositivo de armazenamento de dados de imagem codificados.
[00124] A interface de comunicações 22 e a interface de comunicações 28 podem ser configuradas para transmitir ou receber os dados de imagem codificados 21 ou os dados codificados 13 por meio de um enlace de comunicação direta entre o dispositivo fonte 12 e o dispositivo de destino 14 ou por meio de qualquer tipo de rede. O enlace de comunicação direta é, por exemplo, uma conexão direta com ou sem fio. Qualquer tipo de rede é, por exemplo, uma rede com fio ou sem fio ou qualquer combinação delas, ou qualquer tipo de rede privada ou pública, ou qualquer combinação das mesmas.
[00125] A interface de comunicações 22 pode ser, por exemplo, configurada para empacotar os dados de imagem codificados 21 em um formato apropriado, por exemplo, um pacote, para transmissão através de um enlace de comunicações ou rede de comunicações.
[00126] A interface de comunicações 28 formando uma parte correspondente da interface de comunicações 22 pode ser, por exemplo, configurada para desempacotar os dados codificados 13, para obter os dados de imagem codificados 21.
[00127] Tanto a interface de comunicações 22 quanto a interface de comunicações 28 podem ser configuradas como interfaces de comunicação unidirecionais, conforme indicado por uma seta que aponta do dispositivo fonte 12 para o dispositivo de destino 14 e que é usada para os dados de imagem codificados 21 na FIG. 1, ou podem ser configurados como interfaces de comunicações bidirecionais e podem ser configurados para, por exemplo, enviar e receber mensagens para estabelecer uma conexão e reconhecer e trocar qualquer outra informação relacionada a um enlace de comunicação e / ou transmissão de dados, como transmissão de dados de imagem codificada.
[00128] O decodificador 30 é configurado para receber os dados de imagem codificados 21 e fornecer dados de imagem decodificados 31 ou uma imagem decodificada 31 (detalhes são descritos abaixo, por exemplo, com base na FIG. 3 ou FIG. 5).
[00129] O pós-processador 32 do dispositivo de destino 14 é configurado para pós-processar os dados de imagem decodificados 31 (também referidos como dados de imagem reconstruídos), por exemplo, a imagem decodificada 131, para obter dados de imagem pós-processados 33, por exemplo, uma imagem pós-processada 33. O pós-processamento realizado pela unidade de pós-processamento 32 pode incluir, por exemplo, conversão de formato de cor (por exemplo, de YCbCr para RGB), correção de cor, recorte ou reamostragem ou qualquer outro processamento para, por exemplo, preparar os dados de imagem decodificados 31 para exibição por, por exemplo, o dispositivo de exibição 34.
[00130] O dispositivo de exibição 34 do dispositivo de destino 14 é configurado para receber os dados de imagem pós-processados 33 para exibir uma imagem, por exemplo, para um usuário ou visualizador. O dispositivo de exibição 34 pode ser ou incluir qualquer tipo de tela de exibição para apresentar uma imagem reconstruída, por exemplo, uma tela de exibição ou monitor integrado ou externo. Por exemplo, a tela pode incluir uma tela de cristal líquido (liquid crystal display, LCD), uma tela de diodo orgânico emissor de luz
(organic light emitting diode, OLED), uma tela de plasma, um projetor, uma tela de micro LED, um cristal líquido em silício (liquid crystal on silicon, LCoS), um processador de luz digital (digital light processor, DLP) ou qualquer outro tipo de tela de exibição.
[00131] Embora a FIG. 1 representa o dispositivo fonte 12 e o dispositivo de destino 14 como dispositivos separados, uma modalidade de dispositivo pode, alternativamente, incluir tanto o dispositivo fonte 12 quanto o dispositivo de destino 14 ou funcionalidades tanto do dispositivo fonte 12 quanto do dispositivo de destino 14, isto é, o dispositivo fonte 12 ou a funcionalidade correspondente e o dispositivo de destino 14 ou a funcionalidade correspondente. Em tal modalidade, o dispositivo fonte 12 ou a funcionalidade correspondente e o dispositivo de destino 14 ou a funcionalidade correspondente podem ser implementados usando o mesmo hardware e / ou software, hardware e / ou software separados ou qualquer combinação dos mesmos.
[00132] Como será evidente para uma pessoa versada na técnica com base nas descrições, existência e divisão (exata) de funcionalidades de diferentes unidades ou as funcionalidades do dispositivo fonte 12 e / ou do dispositivo de destino 14 mostrado na FIG. 1 pode variar dependendo do dispositivo e da aplicação real.
[00133] O codificador 20 (por exemplo, o codificador de vídeo 20) e o decodificador 30 (por exemplo, o decodificador de vídeo 30), cada um pode ser implementado como qualquer um dos vários circuitos adequados, por exemplo, um ou mais microprocessadores, processadores de sinal digital (digital signal processor, DSP), circuitos integrados de aplicação específica (application-specific integrated circuit, ASIC), matrizes de portas programáveis em campo (field-programmable gate array, FPGA), lógica discreta, hardware ou qualquer combinação dos mesmos. Se as tecnologias forem implementadas parcialmente usando software, um dispositivo pode armazenar uma instrução de software em um meio de armazenamento legível por computador não transitório adequado e pode executar a instrução usando hardware, como um ou mais processadores, para executar as tecnologias desta divulgação. Qualquer um dos conteúdos anteriores (incluindo hardware, software, uma combinação de hardware e software, e semelhantes) pode ser considerado como um ou mais processadores. O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser incluídos em um ou mais codificadores ou decodificadores, e o codificador ou decodificador pode ser integrado como parte de um codificador / decodificador (codec) combinado em um dispositivo correspondente.
[00134] O dispositivo fonte 12 pode ser referido como um dispositivo de codificação de vídeo ou um aparelho de codificação de vídeo. O dispositivo de destino 14 pode ser referido como um dispositivo de decodificação de vídeo ou um aparelho de decodificação de vídeo. O dispositivo fonte 12 e o dispositivo de destino 14 podem ser um exemplo de um dispositivo de codificação de vídeo ou um aparelho de codificação de vídeo.
[00135] O dispositivo fonte 12 e o dispositivo de destino 14 podem incluir qualquer um de uma ampla variedade de dispositivos, incluindo qualquer tipo de dispositivo portátil ou estacionário, por exemplo, um laptop ou notebook, um telefone móvel, um smartphone, um tablet ou computador tipo tablet, uma câmera de vídeo, um computador de mesa, um decodificador, uma televisão, um dispositivo de exibição, um reprodutor de mídia digital, um console de videogame, um dispositivo de transmissão em tempo real de vídeo (como um servidor de serviço de conteúdo ou um servidor de entrega de conteúdo), um dispositivo receptor de difusão, ou um dispositivo transmissor de difusão, e pode usar ou não usar qualquer tipo de sistema operacional.
[00136] Em alguns casos, o dispositivo fonte 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio. Portanto, o dispositivo fonte 12 e o dispositivo de destino 14 podem ser dispositivos de comunicações sem fio.
[00137] Em alguns casos, o sistema de codificação de vídeo 10 mostrado na FIG. 1 é meramente um exemplo, e as tecnologias deste pedido podem ser aplicáveis às configurações de codificação de vídeo (por exemplo, codificação de vídeo ou decodificação de vídeo) que não incluem necessariamente qualquer comunicação de dados entre um dispositivo de codificação e um dispositivo de decodificação. Em outro exemplo, os dados podem ser recuperados de uma memória local, transmitidos por uma rede ou semelhantes. Um dispositivo de codificação de vídeo pode codificar os dados e armazenar os dados na memória e / ou um dispositivo de decodificação de vídeo pode recuperar dados da memória e decodificar os dados. Em alguns exemplos, a codificação e a decodificação são realizadas por dispositivos que não se comunicam entre si, mas simplesmente codificam dados para a memória e / ou recuperam dados da memória e decodificam os dados.
[00138] Deve ser entendido que para cada um dos exemplos descritos com referência ao codificador de vídeo 20, o decodificador de vídeo 30 pode ser configurado para realizar um processo reverso. No que diz respeito a um elemento de sintaxe de sinalização, o decodificador de vídeo 30 pode ser configurado para receber e analisar tal elemento de sintaxe e, de forma correspondente, decodificar dados de vídeo relacionados. Em alguns exemplos, o codificador de vídeo 20 pode codificar com entropia um ou mais elementos de sintaxe que definem em um fluxo de bits de vídeo codificado. Em tais exemplos, o decodificador de vídeo 30 pode analisar tal elemento de sintaxe e decodificar de forma correspondente os dados de vídeo relacionados. Codificador e método de codificação
[00139] FIG. 2 é um diagrama de blocos esquemático / conceitual de um exemplo de um codificador de vídeo 20 configurado para implementar as tecnologias deste pedido (divulgação). No exemplo da FIG. 2, o codificador de vídeo 20 inclui uma unidade de cálculo residual 204, uma unidade de processamento de transformada 206, uma unidade de quantização 208, uma unidade de quantização inversa 210, uma unidade de processamento de transformada inversa 212, uma unidade de reconstrução 214, um armazenamento temporário 216, uma unidade de filtro de circuito 220, um armazenamento temporário de imagem decodificada (decoded picture buffer, DPB) 230, uma unidade de processamento de predição 260, e uma unidade de codificação de entropia 270. A unidade de processamento de predição 260 pode incluir uma unidade de interpredição 244, uma unidade de intrapredição 254 e uma unidade de seleção de modo 262. A unidade de interpredição
244 pode incluir uma unidade de estimativa de movimento e uma unidade de compensação de movimento (não mostrada na figura). O codificador de vídeo 20 mostrado na FIG. 2 também pode ser referido como um codificador de vídeo híbrido ou um codificador de vídeo baseado em um codec de vídeo híbrido.
[00140] Por exemplo, a unidade de cálculo residual 204, a unidade de processamento de transformada 206, a unidade de quantização 208, a unidade de processamento de predição 260 e a unidade de codificação de entropia 270 formam um caminho de sinal direto do codificador 20, enquanto, por exemplo, a quantização inversa unidade 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o armazenamento temporário 216, o filtro de circuito 220, o armazenamento temporário de imagem decodificada (decoded picture buffer, DPB) 230, e a unidade de processamento de predição 260 formam um caminho de sinal reverso do codificador. O caminho de sinal reverso do codificador corresponde a um caminho de sinal de um decodificador (consulte um decodificador 30 na FIG. 3).
[00141] O codificador 20 recebe, por exemplo, através de uma entrada 202, uma imagem 201 ou um bloco 203 da imagem 201, por exemplo, uma imagem em uma sequência de imagens formando um vídeo ou uma sequência de vídeo. O bloco de imagem 203 também pode ser referido como um bloco de imagem atual ou um bloco de imagem a ser codificado. A imagem 201 pode ser referida como uma imagem atual ou uma imagem a ser codificada (particularmente na codificação de vídeo, para distinguir a imagem atual de outras imagens, as outras imagens são, por exemplo, imagens previamente codificadas e / ou decodificadas em uma mesma sequência de vídeo, ou seja,
a sequência de vídeo que também inclui a imagem atual). Particionamento
[00142] Uma modalidade do codificador 20 pode incluir uma unidade de particionamento (não mostrada na FIG. 2), configurada para particionar a imagem 201 em uma pluralidade de blocos, como o bloco 203. A imagem 201 é geralmente particionada em uma pluralidade de blocos não sobrepostos. A unidade de particionamento pode ser configurada para usar um mesmo tamanho de bloco para todas as imagens em uma sequência de vídeo e uma grade correspondente definindo o tamanho do bloco, ou alterar um tamanho de bloco entre imagens ou subconjuntos ou grupos de imagens e particionar cada imagem em blocos correspondentes.
[00143] Em um exemplo, a unidade de processamento de predição 260 do codificador de vídeo 20 pode ser configurada para realizar qualquer combinação das tecnologias de particionamento descritas acima.
[00144] Como a imagem 201, o bloco 203 também é ou pode ser considerado como uma matriz bidimensional ou matriz de amostras com valores de luminância (valores de amostra), embora um tamanho do bloco 203 seja menor do que um tamanho da imagem 201. Em outras palavras, o bloco 203 pode incluir, por exemplo, uma matriz de amostra (por exemplo, uma matriz de luma em um caso de uma imagem monocromática 201), três matrizes de amostra (por exemplo, uma matriz de luma e duas matrizes de croma em um caso de uma imagem colorida), ou qualquer outra quantidade e / ou tipo de matrizes dependendo de um formato de cor aplicado. Uma quantidade de amostras nas direções (ou eixos) horizontal e vertical do bloco 203 define um tamanho do bloco 203.
[00145] O codificador 20 mostrado na FIG. 2 está configurado para codificar a imagem 201 bloco a bloco, por exemplo, realizar codificação e predição em cada bloco 203. Cálculo residual
[00146] A unidade de cálculo residual 204 é configurada para calcular um bloco residual 205 com base no bloco de imagem 203 e um bloco de predição 265 (detalhes sobre o bloco de predição 265 são fornecidos abaixo), por exemplo, subtraindo valores de amostra do bloco de predição 265 de valores de amostra do bloco de imagem 203 de amostra por amostra (pixel por pixel), para obter o bloco residual 205 em um domínio da amostra. Transformada
[00147] A unidade de processamento de transformada 206 é configurada para aplicar uma transformada, por exemplo, uma transformada discreta de cosseno (discrete cosine transform, DCT) ou uma transformada discreta de seno (discrete sine transform, DST), para amostrar valores do bloco residual 205 para obter os coeficientes de transformada 207 em um domínio de transformada. O coeficiente de transformada 207 também pode ser referido como um coeficiente residual de transformada e representa o bloco residual 205 no domínio de transformada.
[00148] A unidade de processamento de transformada 206 pode ser configurada para aplicar aproximações inteiras de DCT / DST, como as transformadas especificadas em HEVC / H.265. Comparado com uma transformada DCT ortogonal, tais aproximações inteiras são geralmente escaladas com base em um fator. Para preservar a norma de um bloco residual que é processado usando as transformadas direta e inversa, um fator de escala adicional é aplicado como parte do processo de transformada. O fator de escala é geralmente selecionado com base em algumas restrições, por exemplo, o fator de escala sendo uma potência de dois para uma operação de deslocamento, uma profundidade de bits do coeficiente de transformada e uma compensação entre precisão e custos de implementação. Por exemplo, um fator de escala específico é especificado para a transformada inversa, por exemplo, a unidade de processamento de transformada inversa 212 em um lado do decodificador 30 (e uma transformada inversa correspondente por, por exemplo, a unidade de processamento de transformada inversa 212 em um lado do codificador 20), e correspondentemente, um fator de escala correspondente pode ser especificado para a transformada direta pela unidade de processamento de transformada 206 no lado do codificador 20. Quantização
[00149] A unidade de quantização 208 é configurada para quantizar os coeficientes de transformada 207 para obter coeficientes de transformada quantizados 209, por exemplo, aplicando quantização escalar ou quantização vetorial. O coeficiente de transformada quantizado 209 também pode ser referido como um coeficiente residual quantizado 209. Um processo de quantização pode reduzir uma profundidade de bits relacionada a alguns ou todos os coeficientes de transformada 207. Por exemplo, um coeficiente de transformada de n bits pode ser arredondado para baixo para um coeficiente de transformada de m bits durante a quantização, onde n é maior do que m. Um grau de quantização pode ser modificado ajustando um parâmetro de quantização (quantization parameter, QP). Por exemplo, para a quantização escalar, diferentes escalas podem ser aplicadas para alcançar uma quantização mais fina ou mais grosseira.
Uma etapa de quantização menor corresponde a uma quantização mais fina, e uma etapa de quantização maior corresponde a uma quantização mais grosseira.
Uma etapa de quantização apropriada pode ser indicada por um parâmetro de quantização (quantization parameter, QP). Por exemplo, o parâmetro de quantização pode ser um índice para um conjunto predefinido de etapas de quantização apropriadas.
Por exemplo, um parâmetro de quantização menor pode corresponder à quantização mais fina (a etapa de quantização menor) e um parâmetro de quantização maior pode corresponder à quantização mais grosseira (a etapa de quantização maior), ou vice-versa.
A quantização pode incluir divisão por uma etapa de quantização e quantização correspondente ou quantização inversa, por exemplo, realizada pela unidade de quantização inversa 210, ou pode incluir multiplicação por uma etapa de quantização.
Em modalidades de acordo com alguns padrões, como HEVC, um parâmetro de quantização pode ser usado para determinar a etapa de quantização.
Geralmente, a etapa de quantização pode ser calculada 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 escala adicionais podem ser introduzidos para quantização e desquantização para restaurar a norma do bloco residual, onde a norma do bloco residual pode ser modificada por causa de uma escala usada na aproximação de ponto fixo da equação para a etapa de quantização e o parâmetro de quantização.
Em uma implementação de exemplo, uma escala da transformada inversa pode ser combinada com uma escala da desquantização.
Alternativamente, uma tabela de quantização personalizada pode ser usada e sinalizada do codificador para o decodificador, por exemplo, em um fluxo de bits. A quantização é uma operação com perdas, onde uma etapa de quantização maior indica uma perda maior.
[00150] A unidade de quantização inversa 210 é configurada para aplicar a quantização inversa da unidade de quantização 208 a um coeficiente quantizado para obter um coeficiente desquantizado 211, por exemplo, aplicar, com base em ou usando uma mesma etapa de quantização que a unidade de quantização 208, o inverso de um esquema de quantização aplicado pela unidade de quantização 208. O coeficiente desquantizado 211 também pode ser referido como um coeficiente residual desquantizado 211 e corresponde ao coeficiente de transformada 207, embora o coeficiente desquantizado 211 seja geralmente diferente do coeficiente de transformada devido a uma perda causada pela quantização.
[00151] A unidade de processamento de transformada inversa 212 é configurada para aplicar uma transformada inversa da transformada aplicada pela unidade de processamento de transformada 206, por exemplo, uma transformada discreta de cosseno inversa (discrete cosine transform, DCT) ou uma transformada discreta de seno inversa (discrete sine transform, DST), para obter um bloco de transformada inversa 213 no domínio da amostra. O bloco de transformada inversa 213 também pode ser referido como um bloco desquantizado de transformada inversa 213 ou um bloco residual de transformada inversa 213.
[00152] A unidade de reconstrução 214 (por exemplo, um circuito aritmético 214) é configurada para adicionar o bloco de transformada inversa 213 (isto é, o bloco residual reconstruído 213) ao bloco de predição 265, por exemplo, adicionando valores de amostra do bloco residual reconstruído 213 e os valores de amostra do bloco de predição 265, para obter um bloco reconstruído 215 no domínio da amostra.
[00153] Opcionalmente, uma unidade de armazenamento temporário 216 ("armazenamento temporário" ("buffer") 216 para abreviar) de, por exemplo, o armazenamento temporário em linha 216, é configurada para armazenamento temporário ou armazenar o bloco reconstruído 215 e um valor de amostra correspondente, por exemplo, para intrapredição. Em outras modalidades, o codificador pode ser configurado para usar um bloco reconstruído não filtrado e / ou um valor de amostra correspondente que são / é armazenado(s) na unidade de armazenamento temporário 216, para qualquer tipo de estimativa e / ou predição, por exemplo, intrapredição.
[00154] Por exemplo, em uma modalidade, o codificador 20 pode ser configurado de modo que a unidade de armazenamento temporário 216 seja configurada para armazenar o bloco reconstruído 215 não apenas usado para intrapredição 254, mas também usado para a unidade de filtro de circuito 220 (não mostrada na FIG. 2), e / ou de modo que, por exemplo, a unidade de armazenamento temporário 216 e o armazenamento temporário de imagem decodificada 230 formem um armazenamento temporário. Em outras modalidades, um bloco filtrado 221 e / ou um bloco ou uma amostra do armazenamento temporário de imagem decodificada 230 (o bloco ou amostra não é mostrado na FIG. 2) são / é usado(s) como uma entrada ou uma base para a unidade de intrapredição 254.
[00155] A unidade de filtro de circuito 220 ("filtro de circuito" ("loop filter") 220 para abreviar) é configurada para filtrar o bloco reconstruído 215 para obter um bloco filtrado 221, para suavizar as transições de pixel ou melhorar a qualidade de vídeo. A unidade de filtro de circuito 220 se destina a representar um ou mais filtros de circuito, como um filtro de desbloqueio, um filtro de deslocamento adaptativo de amostra (sample-adaptive offset, SAO) ou outro filtro, por exemplo, um filtro bilateral, um filtro de circuito adaptativo (adaptive loop filter, ALF), um filtro de nitidez ou suavização, ou um filtro colaborativo. Embora a unidade de filtro de circuito 220 seja mostrada como um filtro em circuito na FIG. 2, em outra implementação, a unidade de filtro de circuito 220 pode ser implementada como um filtro pós-circuito. O bloco filtrado 221 também pode ser referido como um bloco reconstruído filtrado 221. O armazenamento temporário de imagem decodificada 230 pode armazenar um bloco codificado reconstruído após a unidade de filtro de circuito 220 realizar uma operação de filtragem no bloco codificado reconstruído.
[00156] Em uma modalidade, o codificador 20 (correspondentemente, a unidade de filtro de circuito 220) pode ser configurado para emitir um parâmetro de filtro de circuito (por exemplo, informação de deslocamento adaptativo de amostra), por exemplo, diretamente ou após a codificação de entropia realizada pela unidade de codificação de entropia 270 ou qualquer outra unidade de codificação de entropia, de modo que, por exemplo, o decodificador 30 possa receber e aplicar o mesmo parâmetro de filtro de circuito para decodificação.
[00157] O armazenamento temporário de imagem decodificada (decoded picture buffer, DPB) 230 pode ser uma memória de imagem de referência que armazena dados de imagem de referência para uso na codificação de dados de vídeo pelo codificador de vídeo 20. O DPB 230 pode ser formado por qualquer um de uma variedade de dispositivos de memória, como uma memória de acesso aleatório dinâmica (dynamic random access memory, DRAM) (incluindo uma DRAM síncrona (synchronous DRAM, SDRAM), uma RAM magnetorresistiva (magnetoresistive RAM, MRAM), uma RAM resistiva (resistive RAM, RRAM)), ou outro tipo de dispositivo de memória.
O DPB 230 e o armazenamento temporário 216 podem ser fornecidos por um mesmo dispositivo de memória ou dispositivos de memória separados.
Em um exemplo, o armazenamento temporário de imagem decodificada (decoded picture buffer, DPB) 230 é configurado para armazenar o bloco filtrado 221. O armazenamento temporário de imagem decodificada 230 pode ainda ser configurado para armazenar outro bloco previamente filtrado, por exemplo, um bloco previamente reconstruído e filtrado 221, da mesma imagem atual ou de uma imagem diferente, por exemplo, uma imagem reconstruída anteriormente, e pode fornecer uma completa previamente reconstruída, isto é, imagem decodificada (e um bloco de referência e amostra correspondentes) e / ou uma imagem atual parcialmente reconstruída (e um bloco de referência e amostra correspondentes), por exemplo, para interpredição.
Em um exemplo, se o bloco reconstruído 215 for reconstruído sem filtragem em circuito, o armazenamento temporário de imagem decodificada (decoded picture buffer, DPB) 230 é configurado para armazenar o bloco reconstruído 215.
[00158] A unidade de processamento de predição 260, também referida como uma unidade de processamento de predição de bloco 260, é configurada para receber ou obter o bloco 203 (um bloco atual 203 da imagem atual 201) e dados de imagem reconstruídos, por exemplo, amostras de referência da mesma imagem (atual) do armazenamento temporário 216 e / ou dados de imagem de referência 231 de uma ou mais imagens previamente decodificadas do armazenamento temporário de imagem decodificada 230 e processar tais dados para predição, para ser específico, para fornecer o bloco de predição 265 que pode ser um bloco de interpredição 245 ou um bloco de intrapredição 255.
[00159] A unidade de seleção de modo 262 pode ser configurada para selecionar um modo de predição (por exemplo, um modo de intra ou inter predição) e / ou um bloco de predição correspondente 245 ou 255 para ser usado como o bloco de predição 265, para cálculo do bloco residual 205 e para reconstrução do bloco reconstruído 215.
[00160] Em uma modalidade, a unidade de seleção de modo 262 pode ser configurada para selecionar o modo de predição (por exemplo, a partir de modos de predição suportados pela unidade de processamento de predição 260), onde o modo de predição fornece uma melhor correspondência ou um mínimo residual (o mínimo residual significa melhor compressão para transmissão ou armazenamento), ou fornece overheads mínimos de sinalização (os overheads mínimos de sinalização significam melhor compressão para transmissão ou armazenamento), ou considera ou equilibra ambos. A unidade de seleção de modo 262 pode ser configurada para determinar o modo de predição com base na otimização de taxa de distorção (rate distortion optimization, RDO), para ser específico, seleciona um modo de predição que forneça otimização de taxa de distorção mínima ou seleciona um modo de predição para o qual a distorção de taxa pelo menos satisfaz um critério de seleção de modo de predição.
[00161] O seguinte descreve em detalhes o processamento de predição realizado (por exemplo, pela unidade de processamento de predição 260) e a seleção de modo realizada (por exemplo, pela unidade de seleção de modo 262) por um exemplo do codificador 20.
[00162] Conforme descrito acima, o codificador 20 é configurado para determinar ou selecionar um modo de predição ideal ou ótimo a partir de um conjunto de modos de predição (pré-determinados). O conjunto de modos de predição pode incluir, por exemplo, um modo de intrapredição e / ou um modo de interpredição.
[00163] Um conjunto de modos de intrapredição pode incluir 35 modos de intrapredição diferentes, por exemplo, modos não direcionais, como um modo DC (ou médio) e um modo planar, ou modos direcionais, como aqueles definidos em H.265, ou podem incluir 67 modos de intrapredição diferentes, por exemplo, modos não direcionais, como um modo DC (ou médio) e um modo planar, ou modos direcionais, como aqueles definidos em H.266 em desenvolvimento.
[00164] Um (possível) conjunto de modos de interpredição depende de imagens de referência disponíveis (a saber, por exemplo, pelo menos algumas imagens descodificadas armazenadas no DPB 230, como descrito acima) e outros parâmetros de interpredição, por exemplo, depende se uma imagem de referência inteira ou apenas uma parte da imagem de referência, por exemplo, uma região de janela de pesquisa em torno de uma região do bloco de imagem atual, é usada para pesquisar um bloco de referência que melhor coincida e / ou por exemplo, depende se a interpolação de pixel, como a interpolação de meio pel e / ou quarto de pel é aplicada.
[00165] Além dos modos de predição anteriores, um modo de salto e / ou um modo direto também pode ser aplicado.
[00166] A unidade de processamento de predição 260 pode ainda ser configurada para particionar o bloco 203 em partições de bloco menores ou subblocos, por exemplo, usando iterativamente particionamento de quadtree (quad-tree, QT), particionamento de árvore binária (binary-tree, BT), particionamento de árvore tripla (triple-tree or ternary- tree, TT), ou qualquer combinação dos mesmos, e realizar, por exemplo, a predição em cada uma das partições de bloco ou subblocos. A seleção de modo inclui a seleção de uma estrutura em árvore do bloco particionado 203 e a seleção de um modo de predição aplicado a cada uma das partições ou sub-blocos do bloco.
[00167] A unidade de interpredição 244 pode incluir uma unidade de estimativa de movimento (motion estimation, ME) (não mostrada na FIG. 2) e uma unidade de compensação de movimento (motion compensation, MC) (não mostrada na FIG. 2). A unidade de estimativa de movimento é configurada para receber ou obter o bloco de imagem 203 (o bloco de imagem atual 203 da imagem atual 201) e uma imagem decodificada 231, ou pelo menos um ou mais blocos reconstruídos anteriormente, por exemplo, um ou mais blocos reconstruídos de outras / diferentes imagens previamente decodificadas 231, para estimativa de movimento. Por exemplo, uma sequência de vídeo pode incluir a imagem atual e uma imagem 31 previamente decodificada ou, em outras palavras, a imagem atual e a imagem 31 previamente decodificada podem fazer parte ou formar uma sequência de imagens que formam a sequência de vídeo.
[00168] Por exemplo, o codificador 20 pode ser configurado para selecionar um bloco de referência de uma pluralidade de blocos de referência de uma mesma imagem ou imagens diferentes de uma pluralidade de outras imagens e fornecer uma imagem de referência (ou um índice de imagem de referência) e / ou um deslocamento (um deslocamento espacial) entre uma localização (coordenadas X, Y) do bloco de referência e uma localização do bloco atual como parâmetros de interpredição para a unidade de estimativa de movimento (não mostrada na FIG. 2). O deslocamento também é conhecido como vetor de movimento (motion vector, MV).
[00169] A unidade de compensação de movimento é configurada para obter, por exemplo, receber o parâmetro de interpredição e realizar interpredição com base em ou usando o parâmetro de interpredição, para obter o bloco de interpredição 245. A compensação de movimento realizada pela unidade de compensação de movimento (não mostrada na FIG. 2) pode incluir buscar ou gerar o bloco de predição com base em um vetor de movimento / bloco determinado através da estimativa de movimento (possivelmente realizando interpolação em precisão de sub-pixel). A filtragem de interpolação pode gerar uma amostra de pixel adicional a partir de uma amostra de pixel conhecida, aumentando assim potencialmente uma quantidade de blocos de predição candidatos que podem ser usados para codificar um bloco de imagem. Ao receber um vetor de movimento para uma PU do bloco de imagem atual, uma unidade de compensação de movimento 246 pode localizar um bloco de predição para o qual o vetor de movimento aponta em uma das listas de imagens de referência. A unidade de compensação de movimento 246 também pode gerar um elemento de sintaxe associado a um bloco e uma fatia de vídeo, de modo que o decodificador de vídeo 30 use o elemento de sintaxe para decodificar o bloco de imagem da fatia de vídeo.
[00170] A unidade de intrapredição 254 está configurada para obter, por exemplo, receber um bloco de imagem 203 (o bloco de imagem atual) e um ou mais blocos reconstruídos anteriormente, por exemplo, blocos vizinhos reconstruídos, de uma mesma imagem para intra-estimativa. Por exemplo, o codificador 20 pode ser configurado para selecionar um modo de intrapredição a partir de uma pluralidade de modos de intrapredição (predeterminados).
[00171] Em uma modalidade, o codificador 20 pode ser configurado para selecionar o modo de intrapredição de acordo com um critério de otimização, por exemplo, com base em um residual mínimo (por exemplo, um modo de intrapredição fornecendo o bloco de predição 255 que é mais semelhante ao bloco de imagem 203 atual) ou distorção de taxa mínima.
[00172] A unidade de intrapredição 254 é ainda configurada para determinar o bloco de intrapredição 255 com base, por exemplo, em um parâmetro de intrapredição no modo de intrapredição selecionado. Em qualquer caso, depois de selecionar um modo intrapredição para um bloco, a unidade de intrapredição 254 é ainda configurada para fornecer um parâmetro de intrapredição, ou seja, informação indicando o modo de intrapredição selecionado para o bloco, para a unidade de codificação de entropia 270. Em um exemplo, a unidade de intrapredição 254 pode ser configurada para realizar qualquer combinação de tecnologias de intrapredição descritas abaixo.
[00173] A unidade de codificação de entropia 270 é configurada para aplicar (ou evitar a aplicação) um esquema ou algoritmo de codificação de entropia (por exemplo, um esquema de codificação de comprimento variável (variable length coding, VLC), um esquema VLC adaptativo de contexto (context adaptive VLC, CAVLC), um esquema de codificação aritmética, codificação aritmética binária adaptável ao contexto (context adaptive binary arithmetic coding, CABAC), codificação aritmética binária adaptativa ao contexto baseada na sintaxe (syntax-based context-adaptive binary arithmetic coding, SBAC), codificação de entropia de particionamento de intervalo de probabilidade (probability interval partitioning entropy, PIPE), ou outra metodologia ou técnica de codificação de entropia) em um ou todos os seguintes: o coeficiente quantizado 209, o parâmetro de interpredição, o parâmetro de intrapredição e / ou o parâmetro de filtro de circuito, para obter os dados de imagem codificados 21 que podem ser emitidos através de uma saída 272, por exemplo, na forma de um fluxo de bits codificado 21. O fluxo de bits codificado pode ser transmitido para o decodificador de vídeo 30 ou arquivado para transmissão posterior ou recuperação pelo decodificador de vídeo 30. A unidade de codificação de entropia 270 pode ainda ser configurada para codificar com entropia outro elemento de sintaxe para uma fatia de vídeo atual que está sendo codificada.
[00174] Outra variante estrutural do codificador de vídeo 20 pode ser usada para codificar um fluxo de vídeo. Por exemplo, um codificador não baseado em transformada 20 pode quantizar diretamente um sinal residual sem a unidade de processamento de transformada 206 para alguns blocos ou quadros. Em outra implementação, o codificador 20 pode ter a unidade de quantização 208 e a unidade de quantização inversa 210 que são combinadas em uma única unidade.
[00175] FIG. 3 mostra um decodificador de vídeo 30 de exemplo, configurado para implementar as tecnologias deste pedido. O decodificador de vídeo 30 é configurado para receber dados de imagem codificados 21 (por exemplo, um fluxo de bits codificado) codificados por, por exemplo, o codificador 20, para obter uma imagem decodificada 231. Em um processo de decodificação, o decodificador de vídeo 30 recebe dados de vídeo do codificador de vídeo 20, por exemplo, um fluxo de bits de vídeo codificado que representa um bloco de imagem de uma fatia de vídeo codificada e um elemento de sintaxe associado.
[00176] No exemplo da FIG. 3, o decodificador 30 inclui uma unidade de decodificação de entropia 304, uma unidade de quantização inversa 310, uma unidade de processamento de transformada inversa 312, uma unidade de reconstrução 314 (por exemplo, um circuito aritmético 314), um armazenamento temporário 316, um filtro de circuito 320, um armazenamento temporário de imagem decodificada 330, e uma unidade de processamento de predição 360. A unidade de processamento de predição 360 pode incluir uma unidade de interpredição 344, uma unidade de intrapredição 354 e uma unidade de seleção de modo 362. Em alguns exemplos, o decodificador de vídeo 30 pode realizar uma passagem de decodificação geralmente recíproca para a passagem de codificação descrita com referência ao codificador de vídeo 20 na FIG. 2.
[00177] A unidade de decodificação de entropia 304 é configurada para realizar a decodificação de entropia nos dados de imagem codificados 21 para obter, por exemplo, um coeficiente quantizado 309 e / ou um parâmetro de codificação decodificado (não mostrado na FIG. 3), por exemplo, qualquer um ou todos de um parâmetro de interpredição, um parâmetro de intrapredição, um parâmetro de filtro de circuito e / ou outro elemento de sintaxe (que são decodificados). A unidade de decodificação de entropia 304 é ainda configurada para encaminhar o parâmetro de interpredição, o parâmetro de intrapredição e / ou o outro elemento de sintaxe para a unidade de processamento de predição 360. O decodificador de vídeo 30 pode receber elementos de sintaxe em um nível de fatia de vídeo e / ou um nível de bloco de vídeo.
[00178] A unidade de quantização inversa 310 pode ter a mesma função que a unidade de quantização inversa 110. A unidade de processamento de transformada inversa 312 pode ter a mesma função que a unidade de processamento de transformada inversa 212. A unidade de reconstrução 314 pode ter a mesma função que a unidade de reconstrução 214. O armazenamento temporário 316 pode ter a mesma função que o armazenamento temporário 216. O filtro de circuito 320 pode ter a mesma função que o filtro de circuito 220. O armazenamento temporário de imagem decodificada 330 pode ter a mesma função que o armazenamento temporário de imagem decodificada 230.
[00179] A unidade de processamento de predição 360 pode incluir a unidade de interpredição 344 e a unidade de intrapredição 354. A unidade de interpredição 344 pode ser semelhante à unidade de interpredição 244 em funções e a unidade de intrapredição 354 pode ser semelhante à unidade de intrapredição 254 em funções. A unidade de processamento de predição 360 é geralmente configurada para realizar predição de bloco e / ou obter um bloco de predição 365 a partir dos dados codificados 21, e receber ou obter (explicitamente ou implicitamente) um parâmetro relacionado à predição e / ou informação sobre um modo de predição selecionado, por exemplo, a partir da unidade de decodificação de entropia 304.
[00180] Quando uma fatia de vídeo é codificada como uma fatia intracodificada (I), a unidade de intrapredição 354 da unidade de processamento de predição 360 é configurada para gerar o bloco de predição 365 para um bloco de imagem da fatia de vídeo atual com base em um modo de intrapredição sinalizado e dados que são de um bloco previamente decodificado de um quadro ou imagem atual. Quando um quadro de vídeo é codificado como uma fatia intercodificada (B ou P), a unidade de interpredição 344 (por exemplo, uma unidade de compensação de movimento) da unidade de processamento de predição 360 é configurada para gerar o bloco de predição 365 para um bloco de vídeo da fatia de vídeo atual com base em um vetor de movimento e outro elemento de sintaxe que é recebido da unidade de decodificação de entropia 304. Para interpredição, o bloco de predição pode ser gerado a partir de uma das imagens de referência em uma lista de imagens de referência. O decodificador de vídeo 30 pode construir listas de quadros de referência, uma lista 0 e uma lista 1, usando uma tecnologia de construção padrão e com base em imagens de referência armazenadas no DPB 330.
[00181] A unidade de processamento de predição 360 é configurada para determinar a informação de predição para o bloco de vídeo da fatia de vídeo atual, analisando o vetor de movimento e o outro elemento de sintaxe, e usar a informação de predição para gerar um bloco de predição para o bloco de vídeo atual que está sendo decodificado. Por exemplo, a unidade de processamento de predição 360 determina, usando alguns elementos de sintaxe recebidos, um modo de predição (por exemplo, intra ou inter predição) para codificar o bloco de vídeo na fatia de vídeo, um tipo de fatia de interpredição (por exemplo, um fatia B, uma fatia P, ou uma fatia GPB), informação de construção de uma ou mais das listas de imagens de referência para a fatia, um vetor de movimento de cada bloco de vídeo codificado para a fatia, um estado de inter predição de cada bloco de vídeo codificado na fatia, e outras informações para decodificar o bloco de vídeo na fatia de vídeo atual.
[00182] A unidade de quantização inversa 310 pode ser configurada para realizar a quantização inversa (a saber, desquantização) em um coeficiente de transformada quantizado fornecido no fluxo de bits e decodificado pela unidade de decodificação de entropia 304. Um processo de quantização inversa pode incluir: usar um parâmetro de quantização calculado pelo codificador de vídeo 20 para cada bloco de vídeo na fatia de vídeo, para determinar um grau de quantização que deve ser aplicado e, da mesma forma, um grau de quantização inversa que deve ser aplicado.
[00183] A unidade de processamento de transformada inversa 312 é configurada para aplicar uma transformada inversa (por exemplo, uma DCT inverso, uma transformada de inteiro inverso ou um processo de transformada inversa conceitualmente semelhante) a um coeficiente de transformada, para gerar um bloco residual em um domínio de pixel.
[00184] A unidade de reconstrução 314 (por exemplo, o circuito aritmético 314) é configurada para adicionar um bloco de transformada inversa 313 (a saber, um bloco residual reconstruído 313) ao bloco de predição 365, por exemplo, adicionando valores de amostra do bloco residual reconstruído 313 e valores de amostra do bloco de predição 365, para obter um bloco reconstruído 315 em um domínio da amostra.
[00185] A unidade de filtro de circuito 320 (durante um circuito de codificação ou após um circuito de codificação) é configurada para filtrar o bloco reconstruído 315 para obter um bloco filtrado 321, para suavizar a transição de pixel ou melhorar a qualidade de vídeo. Em um exemplo, a unidade de filtro de circuito 320 pode ser configurada para realizar qualquer combinação de tecnologias de filtragem descritas abaixo. A unidade de filtro de circuito 320 se destina a representar um ou mais filtros de circuito, como um filtro de desbloqueio, um filtro de deslocamento adaptativo de amostra (sample-adaptive offset, SAO) ou outro filtro, por exemplo, um filtro bilateral, um filtro de circuito adaptativo (adaptive loop filter, ALF), um filtro de nitidez ou suavização, ou um filtro colaborativo. Embora a unidade de filtro de circuito 320 seja mostrada como um filtro em circuito na FIG. 3, em outra implementação, a unidade de filtro de circuito 320 pode ser implementada como um filtro pós-circuito.
[00186] O bloco de vídeo decodificado 321 em um dado quadro ou imagem é então armazenado no armazenamento temporário de imagem decodificada 330 que armazena uma imagem de referência usada para compensação de movimento subsequente.
[00187] O decodificador 30 é configurado para, por exemplo, emitir uma imagem decodificada 31 por meio de uma saída 332, para apresentação a um usuário ou visualização por um usuário.
[00188] Outra variante do decodificador de vídeo 30 pode ser usada para decodificar um fluxo de bits compactado. Por exemplo, o decodificador 30 pode gerar um fluxo de vídeo de saída sem a unidade de filtro de circuito 320. Por exemplo, um decodificador 30 não baseado em transformada pode inverter-quantizar diretamente um sinal residual sem a unidade de processamento de transformada inversa 312 para alguns blocos ou quadros. Em outra implementação, o decodificador de vídeo 30 pode ter a unidade de quantização inversa 310 e a unidade de processamento de transformada inversa 312 combinadas em uma única unidade.
[00189] FIG. 4 é um diagrama de ilustração de um exemplo de um sistema de codificação de vídeo 40 incluindo o codificador 20 na FIG. 2 e / ou o decodificador 30 na FIG. 3 de acordo com uma modalidade de exemplo. O sistema 40 pode implementar uma combinação de várias tecnologias deste pedido. Em uma implementação descrita, o sistema de codificação de vídeo 40 pode incluir um dispositivo de imagem 41, o codificador de vídeo 20, o decodificador de vídeo 30
(e / ou um codificador de vídeo implementado usando um circuito lógico 47 de uma unidade de processamento 46), uma antena 42, um ou mais processadores 43, uma ou mais memórias 44 e / ou um dispositivo de exibição 45.
[00190] Como mostrado na figura, o dispositivo de imagem 41, a antena 42, a unidade de processamento 46, o circuito lógico 47, o codificador de vídeo 20, o decodificador de vídeo 30, o processador 43, a memória 44 e / ou o dispositivo de exibição 45 podem se comunicar uns com os outros. Conforme descrito, embora o sistema de codificação de vídeo 40 seja ilustrado usando o codificador de vídeo 20 e o decodificador de vídeo 30, em outro exemplo diferente, o sistema de codificação de vídeo 40 pode incluir apenas o codificador de vídeo 20 ou apenas o decodificador de vídeo 30.
[00191] Em alguns exemplos, como mostrado na figura, o sistema de codificação de vídeo 40 pode incluir a antena 42. Por exemplo, a antena 42 pode ser configurada para transmitir ou receber fluxos de bits codificados de dados de vídeo. Além disso, em alguns exemplos, o sistema de codificação de vídeo 40 pode incluir o dispositivo de exibição 45. O dispositivo de exibição 45 pode ser configurado para apresentar os dados de vídeo. Em alguns exemplos, como mostrado na figura, o circuito lógico 47 pode ser implementado pela unidade de processamento 46. A unidade de processamento 46 pode incluir lógica de circuito integrado de aplicação específica (application-specific integrated circuit, ASIC), um processador gráfico, um processador de uso geral ou semelhante. O sistema de codificação de vídeo 40 pode incluir ainda um processador opcional 43. O processador opcional 43 pode incluir de forma semelhante um circuito integrado de aplicação específica (application- specific integrated circuit, ASIC) lógico, um processador gráfico, um processador de uso geral ou semelhante. Em alguns exemplos, o circuito lógico 47 pode ser implementado por hardware, por exemplo, hardware dedicado para codificação de vídeo. O processador 43 pode ser implementado por software de uso geral, um sistema operacional ou semelhante. Além disso, a memória 44 pode ser qualquer tipo de memória, por exemplo, uma memória volátil (por exemplo, uma memória de acesso aleatório estática (Static Random Access Memory, SRAM) ou uma memória de acesso aleatório dinâmica (Dynamic Random Access Memory, DRAM)) ou uma memória não volátil (por exemplo, uma memória flash). Em um exemplo não limitativo, a memória 44 pode ser implementada como uma memória em cache. Em alguns exemplos, o circuito lógico 47 pode acessar a memória 44 (por exemplo, para implementação de um armazenamento temporário de imagem). Em outro exemplo, o circuito lógico 47 e / ou a unidade de processamento 46 podem incluir uma memória (por exemplo, um cache) para implementação de um armazenamento temporário de imagem ou semelhante.
[00192] Em alguns exemplos, o codificador de vídeo 20 implementado usando o circuito lógico pode incluir um armazenamento temporário de imagem (que é implementado, por exemplo, pela unidade de processamento 46 ou a memória 44) e uma unidade de processamento gráfico (que é implementado por, por exemplo, a unidade de processamento 46). A unidade de processamento gráfico pode ser acoplada comunicativamente ao armazenamento temporário de imagem. A unidade de processamento gráfico pode incluir o codificador de vídeo 20 implementado usando o circuito lógico 47, para implementar vários módulos descritos com referência à FIG. 2 e / ou qualquer outro sistema codificador ou subsistema descrito nesta especificação. O circuito lógico pode ser configurado para realizar várias operações descritas nesta especificação.
[00193] O decodificador de vídeo 30 pode ser implementado pelo circuito lógico 47 de uma maneira semelhante, para implementar vários módulos descritos com referência ao decodificador 30 na FIG. 3 e / ou qualquer outro sistema ou subsistema decodificador descrito nesta especificação. Em alguns exemplos, o decodificador de vídeo 30 implementado usando o circuito lógico pode incluir um armazenamento temporário de imagem (que é implementado pela unidade de processamento 46 ou a memória 44) e uma unidade de processamento gráfico (que é implementado, por exemplo, pela unidade de processamento 46). A unidade de processamento gráfico pode ser acoplada comunicativamente ao armazenamento temporário de imagem. A unidade de processamento gráfico pode incluir o decodificador de vídeo 30 implementado usando o circuito lógico 47, para implementar vários módulos descritos com referência à FIG. 3 e / ou qualquer outro sistema ou subsistema decodificador descrito nesta especificação.
[00194] Em alguns exemplos, a antena 42 do sistema de codificação de vídeo 40 pode ser configurada para receber o fluxo de bits codificado dos dados de vídeo. Conforme descrito, o fluxo de bits codificado pode incluir dados, um indicador, um valor de índice, dados de seleção de modo ou semelhantes que estão relacionados à codificação de quadro de vídeo e que são descritos nesta especificação, por exemplo, dados relacionados ao particionamento de codificação (por exemplo, um coeficiente de transformada ou um coeficiente de transformada quantizada, um indicador opcional (como descrito) e / ou dados que definem o particionamento de codificação). O sistema de codificação de vídeo 40 pode incluir ainda o decodificador de vídeo 30 que é acoplado à antena 42 e que está configurado para decodificar o fluxo de bits codificado. O dispositivo de exibição 45 está configurado para apresentar um quadro de vídeo.
[00195] FIG. 5 é um diagrama de blocos simplificado de um aparelho 500 que pode ser usado como um ou dois do dispositivo fonte 12 e o dispositivo de destino 14 na FIG. 1 de acordo com uma modalidade de exemplo. O aparelho 500 pode implementar as tecnologias neste pedido. O aparelho 500 pode estar na forma de um sistema de computação, incluindo uma pluralidade de dispositivos de computação, ou pode estar na forma de um único dispositivo de computação, como um telefone móvel, um tablet, um laptop, um computador portátil ou um computador de mesa.
[00196] Um processador 502 no aparelho 500 pode ser uma unidade de processamento central. Alternativamente, o processador 502 pode ser qualquer outro tipo de dispositivo ou uma pluralidade de dispositivos, capaz de manipular ou processar informações existentes ou a serem desenvolvidas no futuro. Conforme mostrado na figura, embora as implementações divulgadas possam ser praticadas usando um único processador, como o processador 502, vantagens em velocidade e eficiência podem ser alcançadas usando mais de um processador.
[00197] Em uma implementação, uma memória 504 no aparelho 500 pode ser um dispositivo de memória somente leitura (Read
Only Memory, ROM) ou um dispositivo de memória de acesso aleatório (random access memory, RAM). Qualquer outro tipo adequado de dispositivo de armazenamento pode ser usado como a memória 504. A memória 504 pode incluir código e dados 506 que são acessados pelo processador 502 através de um barramento 512. A memória 504 pode incluir ainda um sistema operacional 508 e um programa de aplicativo 510. O programa de aplicativo 510 inclui pelo menos um programa que permite ao processador 502 realizar o método descrito nesta especificação. Por exemplo, o programa de aplicativo 510 pode incluir aplicativos 1 a N, e os aplicativos 1 a N incluem ainda um aplicativo de codificação de vídeo que realiza o método descrito nesta especificação. O aparelho 500 pode incluir ainda uma memória adicional na forma de uma memória secundária 514. A memória secundária 514 pode ser, por exemplo, um cartão de memória usado com um dispositivo de computação móvel. Como uma sessão de comunicação de vídeo pode incluir uma grande quantidade de informações, as informações podem ser totalmente ou parcialmente armazenadas na memória secundária 514 e carregadas na memória 504 para processamento conforme necessário.
[00198] O aparelho 500 pode incluir ainda um ou mais dispositivos de saída, por exemplo, uma tela de exibição 518. Em um exemplo, a tela de exibição 518 pode ser uma tela sensível ao toque que combina uma tela com um elemento sensível ao toque que é operável para detectar uma entrada de toque. A tela de exibição 518 pode ser acoplado ao processador 502 por meio do barramento 512. Além da tela de exibição 518, outro dispositivo de saída que permite a um usuário programar o aparelho 500 ou de outra forma usar o aparelho 500 pode ainda ser fornecido, ou outro dispositivo de saída pode ser fornecido como uma alternativa à tela de exibição 518. Quando o dispositivo de saída é ou inclui uma tela de exibição, o display pode ser implementado de maneiras diferentes, incluindo usando uma tela de exibição de cristal líquido (liquid crystal display, LCD), uma tela de exibição de tubo de raios catódicos (cathode-ray tube, CRT), uma tela de exibição de plasma ou tela de exibição de diodo emissor de luz (light emitting diode, LED), como tela de exibição de LED orgânico (organic LED, OLED).
[00199] O aparelho 500 pode ainda incluir ou ser conectado a um dispositivo de detecção de imagem 520. O dispositivo de detecção de imagem 520 é, por exemplo, uma câmera ou qualquer outro dispositivo de detecção de imagem 520 que pode detectar uma imagem e que existe ou será desenvolvido no futuro. A imagem é, por exemplo, uma imagem de um usuário que opera o aparelho 500. O dispositivo de detecção de imagem 520 pode ser colocado diretamente de frente para o usuário que executa o aparelho 500. Em um exemplo, uma localização e um eixo óptico do dispositivo de detecção de imagem 520 podem ser configurados, de modo que um campo de visão do dispositivo de detecção de imagem 520 inclua uma região adjacente à tela de exibição 518, e a tela de exibição 518 possa ser vista da região.
[00200] O aparelho 500 pode ainda incluir ou ser conectado a um dispositivo de detecção de som 522. O dispositivo de detecção de som 522 é, por exemplo, um microfone ou qualquer outro dispositivo de detecção de som que pode detectar um som próximo ao aparelho 500 e que existe ou será desenvolvido no futuro. O dispositivo de detecção de som 522 pode ser colocado diretamente de frente para o usuário que opera o aparelho 500 e pode ser configurado para receber um som, por exemplo, uma voz ou outro som, feito pelo usuário quando o usuário executa o aparelho 500.
[00201] Embora o processador 502 e a memória 504 do aparelho 500 estejam representados na FIG. 5 como integrado em uma única unidade, outra configuração ainda pode ser usada. O funcionamento do processador 502 pode ser distribuído em uma pluralidade de máquinas (cada máquina tem um ou mais processadores) que podem ser diretamente acoplados ou distribuídos em uma região local ou outra rede. A memória 504 pode ser distribuída em uma pluralidade de máquinas. Por exemplo, a memória 504 é uma memória baseada em rede ou memórias em uma pluralidade de máquinas que executam o aparelho 500. Embora representado como um único barramento neste documento, o barramento 512 do aparelho 500 pode ser formado por uma pluralidade de barramentos. Além disso, a memória secundária 514 pode ser diretamente acoplada a outro componente do aparelho 500 ou pode ser acessada por meio de uma rede. Além disso, a memória secundária 514 pode incluir uma única unidade integrada, por exemplo, um cartão de memória ou uma pluralidade de unidades, por exemplo, uma pluralidade de cartões de memória. Portanto, o aparelho 500 pode ser implementado em uma pluralidade de configurações.
[00202] FIG. 6 descreve os modos de divisão de uma árvore binária, uma árvore tripla e uma quadtree.
[00203] O quadtree é uma estrutura em árvore, indicando que um nó pode ser dividido em quatro nós filhos. No padrão de codificação de vídeo H.265, um modo de divisão CTU baseado em quadtree é usado. Uma CTU é usada como um nó raiz e cada nó corresponde a uma região quadrada. Um nó não pode ser dividido (neste caso, uma região correspondente ao nó é uma CU), ou o nó é dividido em quatro nós de nível inferior, para ser específico, a região quadrada é dividida em quatro regiões quadradas de mesmo tamanho (um comprimento e uma largura de cada uma das quatro regiões quadradas são metade de um comprimento e uma largura da região quadrada antes da divisão), e cada região corresponde a um nó, como mostrado em (a) da FIG. 6.
[00204] A árvore binária é uma estrutura de árvore, indicando que um nó pode ser dividido em dois nós filhos. Em um método de codificação existente no qual a árvore binária é usada, um nó em uma estrutura de árvore binária não pode ser dividido, ou o nó é dividido em dois nós de nível inferior. Existem duas maneiras de dividir o nó em dois nós: (1) uma divisão binária horizontal: uma região correspondente ao nó é dividida em duas regiões de tamanhos iguais: uma região superior e uma região inferior, e cada região corresponde a um nó, como mostrado em (b) da FIG. 6; ou (2) uma divisão binária vertical: uma região correspondente ao nó é dividida em duas regiões de tamanhos iguais: uma região esquerda e uma região direita, e cada região corresponde a um nó, como mostrado em (c) da FIG. 6.
[00205] A árvore tripla é uma estrutura de árvore, indicando que um nó pode ser dividido em três nós filhos. Em um método de codificação existente no qual a árvore tripla é usada, um nó em uma estrutura de árvore tripla não pode ser dividido, ou o nó é dividido em três nós de nível inferior. Existem duas maneiras de dividir o nó em três nós: (1) uma divisão ternária horizontal: uma região correspondente ao nó é dividida em três regiões: uma região superior, uma região intermediária e uma região inferior, onde cada região corresponde a um nó e as alturas da região superior, da região intermediária e da região inferior são, respectivamente, 1/4, 1/2 e 1/4 da altura do nó, como mostrado em (d) da FIG. 6; ou (2) uma divisão ternária vertical: uma região correspondente ao nó é dividida em três regiões: uma região esquerda, uma região intermediária e uma região direita, onde cada região corresponde a um nó, e larguras da região esquerda, o região intermediária e a região direita são, respectivamente, 1/4, 1/2 e 1/4 da largura do nó, como mostrado em (e) da FIG. 6.
[00206] No padrão de codificação de vídeo H.265, um quadro de imagem é particionado em unidades de árvore de codificação não sobrepostas (CTU). Um tamanho de CTU pode ser definido para 64 x 64 (o tamanho de CTU pode, alternativamente, ser definido para outro valor, por exemplo, o tamanho de CTU no software de referência JVET JEM é aumentado para 128 x 128 ou 256 x 256). Um CTU de 64 x 64 inclui uma matriz de pixel retangular com 64 colunas e 64 pixels por coluna, e cada pixel inclui um componente de luminância e / ou um componente de crominância.
[00207] No H.265, o modo de divisão CTU baseado em quadtree (quad-tree, QT para abreviar) é usado. Uma CTU é usada como um nó raiz (root) de uma quadtree, e a CTU é recursivamente dividida em vários nós folha (leaf node) no modo de divisão de quadtree. Um nó corresponde a uma região de imagem. Se um nó não for dividido, o nó é referido como um nó folha e uma região de imagem correspondente ao nó torna-se uma CU. Se um nó for dividido, uma região de imagem correspondente ao nó é dividida em quatro regiões de tamanhos iguais (um comprimento e uma largura de cada uma das quatro regiões são, respectivamente, metade do comprimento e uma largura da região dividida), e cada região corresponde a um nó. Se esses nós são divididos ainda mais, precisa ser determinado separadamente. Se um nó deve ser dividido é indicado por um sinalizador de divisão split_cu_flag que está em um fluxo de bits e que corresponde ao nó. Um nó A é dividido em quatro nós Bi, onde i = 0, 1, 2, 3. Bi é referido como um nó filho de A, e A é referido como um nó pai de Bi. A profundidade de quadtree (qtDepth) do nó raiz é 0. Uma profundidade de quadtree de um nó é uma profundidade de quadtree de um nó pai do nó mais 1. Para brevidade da descrição, a seguir, um tamanho e uma forma de um nó são um tamanho e uma forma de uma região de imagem correspondente ao nó.
[00208] Mais especificamente, para um nó CTU 64 x 64 (cuja profundidade quadtree é 0), com base em split_cu_flag correspondente ao nó CTU, a divisão pode não ser realizada e o nó CTU pode se tornar uma CU 64 x 64, ou o nó CTU é dividido em quatro nós de 32 x 32 (cujas profundidades de quadtree são 1). Cada um dos quatro nós de 32 x 32 pode ainda ser dividido ou não com base em split_cu_flag correspondente ao nó. Se um nó de 32 x 32 for dividido posteriormente, quatro nós de 16 x 16 (cujas profundidades de quadtree são 2) são gerados. O resto pode ser deduzido por analogia, até que nenhum nó seja mais dividido. Desta forma, uma CTU é dividida em um grupo de CUs. Um tamanho mínimo (size) da CU é identificado em um conjunto de parâmetros de sequência (SPS: Sequence Parameter Set). Por exemplo, uma CU 8 x 8 é uma CU mínima. No processo de divisão recursiva anterior, se o tamanho de um nó for igual ao tamanho mínimo de CU (minimum CU size), o nó não é mais dividido por padrão, e um sinalizador de divisão do nó não precisa ser incluído no fluxo de bits.
[00209] Após um nó ser analisado para ser um nó folha, o nó folha é uma CU, codificando informações (incluindo informações como um modo de predição e um coeficiente de transformada da CU, por exemplo, uma estrutura de sintaxe coding_unit () em H.265) correspondentes à CU, é analisado posteriormente. Em seguida, o processamento de decodificação, como predição, desquantização, transformada inversa e filtragem de circuito é realizado na CU com base na informação de codificação, para gerar uma imagem reconstruída correspondente à CU. A estrutura de quadtree permite que a CTU seja dividida em um grupo de CUs de tamanhos apropriados com base em um recurso de imagem local. Por exemplo, uma região plana é dividida em CUs relativamente grandes e uma região com texturas ricas é dividida em CUs relativamente pequenas.
[00210] Com base na divisão de quadtree, um modo de divisão binária e um modo de divisão ternário são adicionados ao software de referência do modelo de teste de codificação de vídeo versátil (VTM: Versatile video coding Test Model). O VTM é um novo software de referência de codec desenvolvido pela JVET.
[00211] A divisão binária é dividir um nó em dois nós filhos. Existem dois modos de divisão binária específicos: (1) a divisão binária horizontal: uma região correspondente ao nó é dividida em duas regiões de tamanhos iguais: uma região superior e uma região inferior (para ser específico, a largura permanece inalterada, e um a altura é a metade da altura da região antes da divisão), e cada região corresponde a um nó, como mostrado em (b) da FIG. 6; ou (2) a divisão binária vertical: uma região correspondente ao nó é dividida em duas regiões de tamanhos iguais: uma região esquerda e uma região direita (para ser específico, uma altura permanece inalterada, e uma largura é metade da largura da região antes da divisão), como mostrado em (c) da FIG. 6.
[00212] A divisão ternária consiste em dividir um nó em três nós filhos. Existem dois modos de divisão ternários específicos: (1) a divisão ternária horizontal: uma região correspondente ao nó é dividida em três regiões: uma região superior, uma região intermediária e uma região inferior, onde cada região corresponde a um nó, e alturas da região superior, a região intermediária e a região inferior são, respectivamente, 1/4, 1/2 e 1/4 da altura do nó, como mostrado em (d) da FIG. 6; ou (2) a divisão ternária vertical: uma região correspondente ao nó é dividida em três regiões: uma região esquerda, uma região intermediária e uma região direita, onde cada região corresponde a um nó, e larguras da região esquerda, o região intermediária e a região direita são, respectivamente, 1/4, 1/2 e 1/4 da largura do nó, como mostrado em (e) da FIG. 6.
[00213] No VTM, um modo de divisão em cascata de uma QT e uma BT / TT é usado, que é conhecido como modo de divisão QT-MTT (Quad Tree plus Multi-Type Tree) para abreviar. Mais especificamente, a CTU é dividida usando o QT, para gerar um nó folha QT. Um nó no QT pode ainda ser dividido em quatro nós filhos QT usando a divisão de quadtree, ou um nó folha QT é gerado sem usar a divisão de quadtree. Um nó folha QT funciona como um nó raiz de um MTT. Um nó no MTT pode ser dividido em nós filhos usando um dos quatro modos de divisão: a divisão binária horizontal, a divisão binária vertical, a divisão ternária horizontal e a divisão ternária vertical, ou torna-se um nó folha de MTT sem ser ainda mais divido. Um nó folha de MTT é uma unidade de codificação CU.
[00214] FIG. 7 mostra um exemplo no qual uma CTU é dividida em 16 CUs de a até p usando um QT-MTT. Na figura da direita na FIG. 7, cada terminal representa um nó. Quatro linhas conectadas a um nó indicam uma divisão de quadtree, duas linhas conectadas a um nó indicam uma divisão binária e três linhas conectadas a um nó indicam uma divisão ternária. Uma linha contínua indica a divisão QT, uma linha tracejada indica uma divisão da primeira camada de uma divisão MTT e uma linha pontilhada indica uma divisão da segunda camada da divisão MTT; a até p são 16 nós folha de MTT, e cada nó folha de MTT é uma CU. Um diagrama de divisão CU mostrado na figura à esquerda na FIG. 7 é obtido para uma CTU usando um modo de divisão mostrado na figura à direita na FIG. 7.
[00215] No modo de divisão QT-MTT, cada CU tem uma profundidade de QT (Quad-tree depth, QT depth) e uma profundidade de MTT (Multi-Type Tree depth, MTT depth). A profundidade de QT indica uma profundidade de QT de um nó folha QT ao qual a CU pertence, e a profundidade de MTT indica uma profundidade de MTT de um nó folha de MTT ao qual a CU pertence. Para um nó raiz de uma árvore de codificação, uma profundidade de QT é 0 e uma profundidade de MTT é 0. Se a divisão QT for usada para um nó na árvore de codificação,
uma profundidade de QT de um nó filho obtida por meio da divisão é uma profundidade de QT do nó mais 1, e uma profundidade de MTT permanece inalterada. Da mesma forma, se a divisão MTT (a saber, uma da divisão BT ou da divisão TT) é usada para um nó na árvore de codificação, uma profundidade de MTT de um nó filho obtido através da divisão é uma profundidade de MTT do nó mais 1, e uma profundidade de QT permanece inalterada. Por exemplo, na FIG. 7, uma profundidade de QT de a, b, c, d, e, f, g, i ou j é 1 e uma profundidade de MTT é 2; uma profundidade de QT de h é 1 e uma profundidade de MTT é 1; uma profundidade de QT de n, o ou p é 2 e uma profundidade de MTT é 0; e uma profundidade de QT de l ou m é 2 e uma profundidade de MTT é 1. Se a CTU for dividida em apenas uma CU, a profundidade de QT da CU é 0 e a profundidade de MTT é 0.
[00216] Em HEVC, uma CU inclui um parâmetro de quantização de bloco de luminância (Quantization Parameter, QP) e dois parâmetros de quantização de bloco de crominância, onde o parâmetro de quantização de bloco de crominância é derivado do parâmetro de quantização de bloco de luminância. O parâmetro de quantização do bloco de crominância é referido como QP de crominância para abreviar, e o parâmetro de quantização do bloco de luminância é referido como QP de luminância para abreviar. A decodificação de um QP de luminância de uma CU atual (current CU) inclui o seguinte processamento: um elemento de sintaxe diff_cu_qp_delta_depth é obtido a partir de um conjunto de parâmetros de imagem (Picture Parameter Set, PPS) e um grupo de quantização (Quantization Group, QG) é derivado com base no elemento de sintaxe. Para ser específico, o grupo de quantização é uma região N x N, onde N = CTUSize >> diff_cu_qp_delta_depth, e CTUSize é um comprimento lateral de uma CTU. Por exemplo, CTUSize de uma CTU de 64 x 64 é 64. Um CTU de 64 x 64 é dividido em M QGs cujos tamanhos são N x N e M é um número inteiro positivo. Por exemplo, quando diff_cu_qp_delta_depth = 2, a CTU é dividida em 16 QGs cujos tamanhos são 16 x 16, como mostrado na FIG. 8. Como apenas a divisão QT é usada em HEVC, se um QG obtido na forma de determinação de QG anterior incluir uma pluralidade de CUs cujos tamanhos são menores do que um tamanho do QG, o QG definitivamente inclui uma pluralidade de CUs completos. Em outras palavras, uma pluralidade de CUs cujos tamanhos são menores que o tamanho de um QG estão totalmente incluídos no QG, e uma CU cujo tamanho é menor que o tamanho de um QG não pode ser incluído em uma pluralidade de QGs. Além disso, quando apenas a divisão QT é usada, um QG obtido na forma de determinação de QG anterior pode ainda garantir que se uma CU tiver o mesmo tamanho que o QG, a CU está definitivamente incluída no QG. Quando uma CU é maior do que um QG, a CU certamente inclui uma pluralidade de QGs completos.
[00217] Um grupo de quantização atual (current quantization group, current QG para abreviar) no qual a CU atual está localizada é determinado, onde o QG atual é um QG que cobre as coordenadas de um canto superior esquerdo da CU atual. Se as coordenadas do canto superior esquerdo da CU atual são Pcu = (xCb, yCb), as coordenadas de um canto superior esquerdo do grupo de quantização atual são Pqg = (xQg, yQg), onde xQg = xCb − (xCb & ((1 << Log2MinCuQpDeltaSize) − 1))
yQg = yCb − (yCb & ((1 << Log2MinCuQpDeltaSize) − 1)).
[00218] Log2MinCuQpDeltaSize = log2 (CTUSize) - diff_cu_qp_delta_depth e log2 (x) é um logaritmo de x com 2 como base.
[00219] Um delta QP da CU atual é obtido, por exemplo, CuQpDeltaVal no padrão HEVC. Se a CU atual for uma primeira CU com um residual no QG (por exemplo, se um dos sinalizadores de bloco codificado cbf_luma, cbf_cb, cbf_cr da CU atual tiver um valor diferente de zero, isso indica que a CU atual tem um residual), o delta QP da CU atual é analisado a partir de um fluxo de bits. O delta QP é usado como deltas QP de todos os CUs cujas sequências de codificação são posteriores ao da CU atual no QG atual. Os deltas de QP de todas as CUs cujas sequências de codificação são anteriores ao da CU atual no QG atual são 0.
[00220] Um preditor de parâmetro de quantização de bloco de luminância do QG atual é obtido, por exemplo, qPY_PRED no padrão HEVC. qPY_PRED pode ser obtido por meio de predição com base em um QP de luminância em uma localização vizinha esquerda e um QP de luminância em uma localização vizinha superior do QG atual. A localização vizinha esquerda do QG atual é (xQg - 1, yQg), e a localização vizinha superior é (xQg, yQg - 1). A QP de luminância na localização vizinha superior é uma QP de luminância de uma unidade de codificação cobrindo a localização vizinha superior. Se a localização vizinha superior não estiver disponível ou não pertencer a um mesmo ladrilho (Tile) que o bloco atual, a QP de luminância na localização vizinha superior é definida para um QP de luminância de uma última CU em um QG anterior (por exemplo, qPY_PREV no padrão HEVC). Da mesma forma, a QP de luminância na localização vizinha esquerda é uma QP de luminância de uma unidade de codificação cobrindo a localização vizinha esquerda. Se a localização vizinha esquerda não estiver disponível ou não pertencer a um mesmo ladrilho que o bloco atual, a QP de luminância na localização vizinha esquerda é definida para a QP de luminância da última CU no QG anterior. Pode haver uma pluralidade de métodos para determinar que uma localização vizinha está indisponível. Por exemplo, se uma localização vizinha estiver fora da faixa atual, a localização vizinha não estará disponível. Para outro exemplo, se uma localização vizinha estiver fora da imagem atual, a localização vizinha não estará disponível. Por exemplo, se uma localização vizinha não estiver dentro de uma CTU atual, a localização vizinha não estará disponível. Para outro exemplo, se um pixel em uma localização vizinha não for reconstruído, a localização vizinha não estará disponível.
[00221] Um QP de luminância da CU atual é obtido adicionando o preditor do parâmetro de quantização do bloco de luminância do QG atual ao delta QP (delta QP) da CU atual.
[00222] Pode ser aprendido que no modo de divisão QT-MTT, usar o modo de divisão QG anterior pode fazer com que um QG inclua apenas uma parte de uma CU, ou uma CU pode incluir uma pluralidade de QGs diferentes. Portanto, um novo método de decodificação (determinação de QG) é necessário para garantir a coincidência entre um QG e uma CU, ou seja, para garantir que uma CU não pertença a dois QGs diferentes, melhorando assim a eficiência da decodificação.
[00223] FIG. 9 é um fluxograma que ilustra um exemplo de operação de um decodificador de vídeo (por exemplo, o decodificador de vídeo 30 na FIG. 3) de acordo com uma modalidade deste pedido. Um ou mais elementos estruturais do decodificador de vídeo 30 podem ser usados para realizar a tecnologia na FIG. 9. Esta modalidade inclui as seguintes etapas.
[00224] 901: Analisa a informação de divisão da árvore de codificação para obter um nó atual.
[00225] A informação de divisão da árvore de codificação é obtida pelo decodificador de vídeo 30 a partir de um fluxo de bits recebido e esta etapa pode ser realizada especificamente por uma unidade de decodificação de entropia no decodificador de vídeo 30.
[00226] O nó atual pode ser uma CU, por exemplo, pode ser a, b, c, d, e, f, g, h, i, j, k, l, m, n, o ou p na FIG. 7. Alternativamente, o nó atual pode ser um nó que ainda precisa ser dividido em um processo de divisão QT-MTT de uma CTU. FIG. 7 é usado como um exemplo, o nó atual pode ser um nó correspondente a e b, um nó correspondente a c e d, um nó correspondente a e, f e g, um nó correspondente a i e j, um nó correspondente para l, m, n, o e p, um nó correspondente a l e m, um nó correspondente a, b, c, d, e, f e g, ou um nó correspondente a h, i e j.
[00227] 902: Determinar, com base em uma profundidade N do nó atual, uma região coberta por um grupo de quantização atual. Em uma implementação, determinar, com base na profundidade N do nó atual, a região coberta pelo grupo de quantização atual inclui a determinação de coordenadas de um canto superior esquerdo da região coberta pelo grupo de quantização atual. Após as coordenadas do canto superior esquerdo serem determinadas, uma região específica coberta pelo grupo de quantização atual pode ser determinada. Portanto, na descrição a seguir, a determinação da região coberta pelo grupo de quantização atual pode ser entendida como a determinação das coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual.
[00228] Pode ser entendido que, com base em diferentes requisitos, pode haver diferentes maneiras de determinar a profundidade N do nó atual.
[00229] Nesta modalidade da presente invenção, as seguintes quatro maneiras de determinar, com base na profundidade N do nó atual, a região coberta pelo grupo de quantização atual é fornecida.
[00230] Modo 1: Determinar, com base na profundidade N do nó atual e um primeiro limiar T1, a região coberta pelo grupo de quantização atual.
[00231] Especificamente, é primeiro determinado que a profundidade N do nó atual é maior do que o primeiro limiar T1. Se a profundidade N do nó atual for maior que o primeiro limiar T1, um nó pai de (N - T1) -ésima camada do nó atual é obtido. Então, é determinado que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó pai de (N - T1) -ésima camada. O primeiro limiar T1 é um número inteiro não negativo predefinido, por exemplo, pode ser 0, 1, 2 ou 3.
[00232] Existem duas maneiras de determinar a profundidade N do nó atual. Uma maneira é determinar a profundidade N do nó atual como uma profundidade de QT do nó atual. Por exemplo, na FIG. 7, uma profundidade de QT do nó a, b, c, d, e, f, g, h, i, j ou k é 1, e uma profundidade de QT de l, m, n, o ou p é 2. A outra maneira é determinar a profundidade N do nó atual como uma soma da profundidade de QT do nó atual e uma profundidade de MTT do nó atual.
Por exemplo, uma profundidade de QT do nó k na FIG. 7 é 1, e uma profundidade de MTT é 0. Portanto, uma profundidade N do nó k é 1. A profundidade de QT do nó a na FIG. 7 é 1, e uma profundidade de MTT é 2. Portanto, uma profundidade N do nó a é 3. A profundidade de QT de um nó raiz de uma árvore de codificação é 0. Se uma divisão QT for usada para um nó em uma árvore de codificação QT, uma profundidade de QT de um nó filho obtida por meio da divisão é uma profundidade de QT do nó mais 1. Se a divisão QT não for usada para um nó no QT, o nó é um nó raiz de MTT.
Uma profundidade de MTT do nó raiz de MTT é 0. Se uma divisão MTT for usada para um nó em uma árvore de codificação de MTT, uma profundidade de MTT de um nó filho obtida através da divisão é uma profundidade de MTT do nó mais 1, e uma profundidade de QT do nó filho é uma profundidade de QT do nó.
Em outras palavras, a partir de um nó raiz CTU, se o nó atual for obtido após S1 vezes de divisão QT e S2 vezes de divisão MTT, a profundidade de QT do nó atual é S1, e a profundidade de MTT do nó atual é S2. FIG. 7 é usado como exemplo.
Os nós cujas profundidades de MTT são 1 incluem um nó correspondente a a e b (ou seja, um nó incluindo uma região em que a e b estão localizados), um nó correspondente a c e d, um nó correspondente a e, f e g, um nó correspondente a h, um nó correspondente a i e j, um nó correspondente a l, e um nó correspondente a m.
A profundidade de MTT sendo 1 indica que um nó pode ser obtido realizando apenas uma divisão MTT em um nó folha QT obtido após a divisão de QT ser realizada na CTU.
Os nós cujas profundidades de MTT são 2 incluem um nó correspondente a a,
um nó correspondente a b, um nó correspondente a c, um nó correspondente a d, um nó correspondente a e, um nó correspondente a f, um nó correspondente a g, a nó correspondente a i, e um nó correspondente a j. A profundidade de MTT sendo 2 indica que um nó é obtido realizando duas divisões de MTT no nó folha QT obtido após a divisão de QT ser realizada na CTU. Por analogia, também pode haver um nó cuja profundidade de MTT é 3, 4, 5 ou semelhante (não há nenhum nó cuja profundidade de MTT seja maior que 2 na FIG. 7).
[00233] Maneira 2: Determinar, com base na profundidade N do nó atual e um primeiro limiar T1, a região coberta pelo grupo de quantização atual. Nesta implementação, a profundidade N do nó atual é determinada como uma profundidade de QT do nó atual.
[00234] Se a profundidade N do nó atual for maior do que o primeiro limiar T1 ou uma profundidade de árvore multitipo M do nó atual for maior que 0, um nó de quadtree de K-ésima camada do nó atual é obtido, onde K = min (N, T1) e min (a, b) indica que um valor menor entre a e b é usado. Então, é determinado que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó de quadtree de K-ésima camada. O primeiro limiar T1 é um número inteiro não negativo predefinido, por exemplo, pode ser 0, 1, 2 ou 3.
[00235] O nó de quadtree de K-ésima camada é um nó que inclui o nó atual e que é gerado após K vezes de divisão da quadtree a partir da CTU, ou seja, um nó pai da (M + N - K) -ésima camada do nó atual. As coordenadas (xK, yK) de um canto superior esquerdo do nó de quadtree de K-ésima camada são:
xK = xCb − (xCb & ((1 << K1) − 1)) yK = yCb − (yCb & ((1 << K1) − 1)).
[00236] xCb e yCb indicam coordenadas horizontais e verticais de coordenadas (xCb, yCb) de um canto superior esquerdo do nó atual, e K1 = log2 (CTUSize) - K.
[00237] A largura e a altura do nó de quadtree de K-ésima camada é menor que (1 << K1), onde a << b indica uma operação de deslocar a para a esquerda em b bits.
[00238] Maneira 3: Determinar, com base na profundidade N do nó atual e um primeiro limiar T1, a região coberta pelo grupo de quantização atual. O nó atual é um nó em uma árvore de codificação QT-MTT, e o nó atual pode ser dividido posteriormente ou não pode ser dividido.
[00239] Especificamente, é primeiro determinado se a profundidade N do nó atual é igual ao primeiro limiar T1. Se a profundidade N do nó atual for igual ao primeiro limiar T1, é determinado que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual. Correspondentemente, as coordenadas de um canto superior esquerdo do nó podem ser salvas, e uma largura e uma altura do nó também podem ser salvas. Uma CU no grupo de quantização atual pode ler a informação salva durante o processamento, como a predição de QP de luminância.
[00240] Para um valor do primeiro limiar T1 e uma maneira de determinar a profundidade N, consulte a Maneira 1.
[00241] Maneira 4: Determinar, com base na profundidade N do nó atual e um primeiro limiar T1, a região coberta pelo grupo de quantização atual. Nesta implementação, a profundidade N do nó atual é determinada como uma profundidade de QT do nó atual.
[00242] Se ambas as condições 1 e 2 forem satisfeitas, é determinado que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual. A condição 1 é que a profundidade N do nó atual seja menor ou igual ao primeiro limiar T1. A condição 2 é que a profundidade de árvore multitipo M do nó atual seja igual a 0.
[00243] Maneira 5: Determinar, com base na profundidade N do nó atual e um primeiro limiar T1, a região coberta pelo grupo de quantização atual. Nesta implementação, a profundidade N do nó atual é determinada como uma profundidade de QT do nó atual.
[00244] Se uma condição 3 e uma condição 4 forem satisfeitas, ou uma condição 5 for satisfeita, é determinado que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual. A condição 3 é que a profundidade N do nó atual seja igual ao primeiro limiar T1. A condição 4 é que a profundidade de árvore multitipo M do nó atual é igual a 0. A condição 5 é que a profundidade N do nó atual seja menor que o primeiro limiar T1.
[00245] Maneira 6: Determinar, com base na profundidade N do nó atual e um primeiro limiar T1, a região coberta pelo grupo de quantização atual. Nesta implementação, a profundidade N do nó atual é determinada como uma profundidade de QT do nó atual.
[00246] Se ambas as condições 3 e 4 forem satisfeitas, ou ambas as condições 5 e 6 forem satisfeitas, é determinado que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual. A condição 3 é que a profundidade N do nó atual seja igual ao primeiro limiar T1. A condição 4 é que a profundidade de árvore multitipo M do nó atual é igual a 0. A condição 5 é que a profundidade N do nó atual seja menor que o primeiro limiar T1. A condição 6 é que a profundidade de árvore multitipo M do nó atual é menor ou igual a um quarto limiar T4.
[00247] O quarto limiar T4 é um número inteiro positivo predefinido. Por exemplo, T4 pode ser 1, 2 ou 3. Para outro exemplo, T4 = T1 - N.
[00248] Maneira 7: Determinar, com base na profundidade N do nó atual e um primeiro limiar T1, a região coberta pelo grupo de quantização atual. Nesta implementação, a profundidade N do nó atual é determinada como uma profundidade de QT do nó atual.
[00249] Se ambas as condições 1 e 7 forem satisfeitas, é determinado que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual. A condição 1 é que a profundidade N do nó atual seja menor ou igual ao primeiro limiar T1. A condição 7 é que a profundidade de árvore multitipo M do nó atual é menor que igual a T1 - N.
[00250] Maneira 8: Determinar, com base na profundidade N do nó atual, um modo de divisão do nó atual e um segundo limiar T2, a região coberta pelo grupo de quantização atual.
[00251] Detalhes a seguir:
1. Se a profundidade N do nó atual for igual ao segundo limiar T2 menos 1, e o modo de divisão do nó atual for um modo de divisão ternário, é determinado que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[00252] 2. Alternativamente, se a profundidade N do nó atual é igual ao segundo limiar T2, e o modo de divisão do nó atual é um modo de divisão binário ou um modo de divisão de quadtree, é determinado que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[00253] 3. Alternativamente, se a profundidade do nó atual for menor ou igual ao segundo limiar, e o nó atual não estiver mais dividido, é determinado que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual. Nesse caso, a região coberta pelo grupo de quantização atual é uma região de cobertura de uma CU.
[00254] O segundo limiar T2 é um número inteiro positivo predefinido. Por exemplo, o segundo limiar T2 pode ser definido como X vezes o primeiro limiar T1, onde X é um número inteiro maior que 1. Por exemplo, X pode ser 2, 3 ou
4. Alternativamente, T2 pode ser definido diretamente para 2, 3, 4, 6, 8, 9 ou semelhante.
[00255] A profundidade N do nó atual é determinada com base em uma profundidade de QT do nó atual e uma profundidade binária Db do nó atual. Por exemplo, em uma implementação, N = Dq * 2 + Db, e em outra implementação, N = Dq + Db. Dq é a profundidade de QT do nó atual.
[00256] Uma divisão MTT pode ser uma divisão binária, uma divisão ternária ou uma divisão de quadtree. Portanto, em diferentes modos de divisão, a profundidade binária Db do nó atual pode ser determinada de diferentes maneiras. Especificamente, uma profundidade de uma divisão não binária precisa ser convertida em uma profundidade binária. Por exemplo, a conversão pode ser realizada da seguinte maneira: se o nó atual for um nó raiz de MTT, a profundidade binária Db do nó atual é 0.
[00257] Alternativamente, se o nó atual é um nó de MTT e não é um nó raiz de MTT (em outras palavras, uma profundidade de MTT do nó atual é maior que 0), e o nó atual é um nó filho obtido no modo de divisão binária, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 1.
[00258] Alternativamente, se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho intermediário (ou seja, um nó filho intermediário em três nós filhos) obtido no modo de divisão ternário, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 1.
[00259] Alternativamente, se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho não intermediário obtido no modo de divisão ternário, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 2.
[00260] Pode-se aprender que uma profundidade determinada de uma maneira N = Dq * 2 + Db está em uma correspondência um para um com uma área de um nó. Por exemplo, quando a CTU é 128 x 128 e a profundidade do nó é N, a área do nó é (128 x 128) >> N.
[00261] Maneira 9: Determinar, com base na profundidade N do nó atual, um modo de divisão do nó atual e um terceiro limiar T3, a região coberta pelo grupo de quantização atual.
[00262] Detalhes a seguir:
1. Se a profundidade N do nó atual for igual ao terceiro limiar T3 menos 1, e o modo de divisão do nó atual for um modo de divisão ternário ou um modo de divisão de quadtree, é determinado que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[00263] 2. Alternativamente, se a profundidade N do nó atual é igual ao terceiro limiar T3, e o modo de divisão do nó atual é um modo de divisão binário, é determinado que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[00264] 3. Alternativamente, se a profundidade N do nó atual for igual ao terceiro limiar T3, e o nó atual não estiver mais dividido, é determinado que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual. Nesse caso, a região coberta pelo grupo de quantização atual é uma região de cobertura de uma CU.
[00265] O terceiro limiar T3 pode ser um número inteiro positivo predefinido, por exemplo, pode ser 3, 4 ou 5.
[00266] Para uma maneira de determinar a profundidade N do nó atual, consulte a Maneira 3.
[00267] 903: obter um delta QP de uma CU atual na região coberta pelo grupo de quantização atual.
[00268] Para uma implementação específica desta etapa, consulte uma implementação existente, por exemplo, consulte uma forma CuQpDeltaVal no padrão HEVC. Mais especificamente, se a CU atual é uma primeira CU tendo um residual no QG atual, o delta QP (por exemplo, incluindo um valor absoluto e um símbolo) da CU atual é analisado a partir do fluxo de bits. Se uma sequência de codificação da CU atual for posterior àquela da primeira CU tendo um residual no QG atual, o delta QP da CU atual é determinado como um delta QP da primeira CU tendo um residual no QG atual. Se uma sequência de codificação da CU atual for anterior à da primeira CU tendo um residual no QG atual, o delta QP da CU atual é determinado como 0. Se pelo menos um dos sinalizadores de bloco codificado (coded block flag, cbf) cbf_luma, cbf_cb,
cbf_cr da CU atual tiver um valor diferente de zero, isso indica que a CU atual tem um residual.
[00269] 904: obter uma imagem reconstruída da CU atual com base no delta QP da CU atual.
[00270] Para uma implementação específica desta etapa, consulte uma implementação existente, por exemplo, consulte uma maneira no padrão HEVC, ou para outro exemplo, consulte uma maneira no padrão H.264 / AVC. Por exemplo, um coeficiente desquantizado da CU atual pode ser obtido com base no delta QP da CU atual. Um bloco residual reconstruído da CU atual é obtido com base no coeficiente desquantizado da CU atual. Em seguida, a imagem reconstruída da CU atual é obtida com base no bloco residual reconstruído da CU atual.
[00271] Especificamente, um QPA de luminância em uma localização vizinha esquerda e um QPB de luminância em uma localização vizinha superior podem ser primeiro obtidos com base nas coordenadas de um canto superior esquerdo do grupo de quantização atual e um preditor QP de luminância do QG atual é obtido com base no QPA e no QPB. Para uma implementação específica, consulte um método para calcular qPY_PRED em HEVC. As coordenadas do canto superior esquerdo do QG atual são registradas como Pqg = (xQg, yQg). A localização vizinha à esquerda do QG atual é PA = (xQg - 1, yQg), e a localização vizinha superior do QG atual é PB = (xQg, yQg - 1). A QP de luminância na localização vizinha superior é uma QP de luminância de uma unidade de codificação cobrindo a localização vizinha superior PB. Se a localização vizinha superior não estiver disponível (por exemplo, a localização vizinha superior está fora de uma faixa atual ou a reconstrução da localização vizinha superior não está concluída) ou não pertence a um mesmo ladrilho (Tile) que o bloco atual, o QP de luminância na localização vizinha superior é definido para um QP de luminância de uma última CU em um QG anterior (por exemplo, qPY_PREV no padrão HEVC). Da mesma forma, a QP de luminância na localização vizinha esquerda é uma QP de luminância de uma unidade de codificação cobrindo a localização vizinha esquerda PA. Se a localização vizinha esquerda não estiver disponível ou não pertencer a um mesmo ladrilho que o bloco atual, a QP de luminância na localização vizinha esquerda é definida para a QP de luminância da última CU no QG anterior.
[00272] O preditor QP de luminância do QG atual pode ser obtido com base no QPA e no QPB usando um dos seguintes métodos: método 1: um valor médio de QPA e QPB é usado como o preditor QP de luminância. Este método é igual ao método HEVC.
[00273] Método 2: uma área da CU atual é R1, uma área de uma CU na qual a localização vizinha esquerda está localizada é R2 e uma área de uma CU em que a localização vizinha superior está localizada é R3. Se max (R1, R2) / min (R1, R2) * Th < max (R1, R3) / min (R1, R3), o preditor de QP de luminância é definido como QPA. Se max (R1, R2) / min (R1, R2) > max (R1, R3) / min (R1, R3) * Th, o preditor de QP de luminância é definido para o QPB. Caso contrário, o preditor de QP de luminância é definido para um valor médio de QPA e QPB. max (a, b) é um valor maior entre a e b, min (a, b) é um valor menor entre a e b, e Th é um número positivo maior ou igual a 1, por exemplo, Th = 1, 2 ou 4.
[00274] Os métodos de cálculo dos preditores QP de luminância de todas as CUs em um QG são os mesmos. Portanto, como uma implementação simplificada, quando uma primeira CU de um QG é decodificado, o processamento de cálculo em um preditor QP de luminância do QG pode ser realizado, e o preditor QP de luminância é usado para outra CU no QG. Desta forma, o cálculo é reduzido.
[00275] Então, um QP de luminância da CU atual é obtido adicionando um preditor de parâmetro de quantização de bloco de luminância do QG atual ao delta QP (delta QP) da CU atual. Especificamente, QpY = ((qPY_PRED + CuQpDeltaVal + 52 + 2 * QpBdOffsetY) % (52 + QpBdOffsetY)) - QpBdOffsetY, onde qPY_PRED é o preditor do parâmetro de quantização do bloco de luminância, CuQpDeltaVal é o delta atual de constante predefinida relacionada a uma largura de bit de um componente de luminância (por exemplo, quando a largura de bit do componente de luminância é 8, QpBdOffsetY é 0; ou quando a largura de bit do componente de luminância é 10, QpBdOffsetY é 12).
[00276] Opcionalmente, de uma maneira de processamento melhorada, se um delta QP da primeira CU tendo um residual no QG atual não for igual a 0, QPs de luminância de todas as CUs cujas sequências de codificação são anteriores à da primeira CU tendo um residual na corrente QG são modificados para uma QP de luminância da primeira CU tendo um residual. Em outras palavras, os deltas de QP de todos os CUs no QG atual são definidos para o delta QP da CU atual e os valores de QP de todos os CUs no QG atual são definidos para um valor de QP da CU atual. O valor QP especificado é usado para uma operação de codificação subsequente, por exemplo, filtragem de desbloqueio ou predição QP.
[00277] Após a QP de luminância e a QP de crominância da CU atual serem obtidos, a desquantização e o processamento de transformada inversa podem ser realizados em um coeficiente de transformada da CU atual para obter uma imagem residual da CU atual.
[00278] O processamento de interpredição ou processamento de intrapredição é realizado na CU atual com base em um modo de predição da CU atual, para obter uma imagem de interpredição ou uma imagem de intrapredição da CU atual.
[00279] A imagem residual da CU atual é sobreposta na imagem de predição da CU atual, para gerar a imagem reconstruída da CU atual.
[00280] Em uma implementação, após a QP de luminância ser obtida, a QP de crominância pode ainda ser obtida com base em uma relação de mapeamento entre a QP de luminância e a QP de crominância e um valor de deslocamento da QP de crominância. Uma implementação específica não está limitada nesta modalidade da presente invenção.
[00281] Outra modalidade da presente invenção fornece ainda um decodificador de vídeo 30, incluindo: uma unidade de decodificação de entropia 304, configurada para: analisar informação de divisão de árvore de codificação para obter um nó atual; determinar, com base em uma profundidade N do nó atual, uma região coberta por um grupo de quantização atual; obter um delta QP de uma CU atual na região coberta pelo grupo de quantização atual; e determinar um QP de luminância da CU atual com base no delta QP da CU atual.
[00282] Em uma implementação, determinar, com base na profundidade N do nó atual, a região coberta pelo grupo de quantização atual inclui a determinação de coordenadas de um canto superior esquerdo da região coberta pelo grupo de quantização atual. Após as coordenadas do canto superior esquerdo serem determinadas, uma região específica coberta pelo grupo de quantização atual pode ser determinada. Portanto, na descrição a seguir, a determinação da região coberta pelo grupo de quantização atual pode ser entendida como a determinação das coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual.
[00283] Uma unidade de quantização inversa 310 é configurada para obter um coeficiente desquantizado da CU atual com base na QP de luminância da CU atual.
[00284] Uma unidade de processamento de transformada inversa 312 é configurada para obter um bloco residual reconstruído da CU atual com base no coeficiente desquantizado da CU atual.
[00285] Uma unidade de reconstrução 314 é configurada para obter uma imagem reconstruída da CU atual com base no bloco residual reconstruído da CU atual.
[00286] Para uma implementação específica do decodificador de vídeo 30, consulte o método descrito na FIG.
9. Os detalhes não são descritos aqui novamente.
[00287] Em uma implementação, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A unidade de decodificação de entropia 304 é especificamente configurada para: determinar, com base na profundidade N do nó atual, a região coberta pelo grupo de quantização atual; ou determinar, com base em uma profundidade de árvore multitipo M do nó atual, a região coberta pelo grupo de quantização atual. Se N for maior que um primeiro limiar T1 ou M for maior que 0, a região coberta pelo grupo de quantização atual é uma região coberta por um nó de quadtree de K-ésima camada do nó atual. K é um valor menor entre N e T1, e o nó de quadtree de K-ésima camada é um nó de quadtree que inclui o nó atual e que é gerado após K vezes de divisão de quadtree a partir de uma unidade de árvore de codificação CTU.
[00288] O nó de quadtree de K-ésima camada é um nó pai de (M + N - K) -ésima camada do nó atual.
[00289] Em uma implementação, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A unidade de decodificação de entropia 304 é especificamente configurada para determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, a região coberta pelo grupo de quantização atual. Se N for menor ou igual a um primeiro limiar T1 e M for igual a 0, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[00290] Em uma implementação, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A unidade de decodificação de entropia 304 é especificamente configurada para: determinar, com base na profundidade N de quadtree do nó atual, a região coberta pelo grupo de quantização atual, ou determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, a região coberta pelo grupo de quantização atual. Se N for igual a um primeiro limiar T1 e M for igual a 0, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual. Alternativamente,
se N for menor que um primeiro limiar T1, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[00291] Em uma implementação, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A unidade de decodificação de entropia 304 é especificamente configurada para determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, a região coberta pelo grupo de quantização atual. Se N for igual a um primeiro limiar T1 e M for igual a 0, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual. Alternativamente, se N for menor que um primeiro limiar T1 e M for menor ou igual a um quarto limiar T4, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[00292] Em uma implementação, o quarto limiar T4 pode ser um número inteiro positivo predefinido, por exemplo, 1, 2, 3 ou 4.
[00293] Em uma implementação, o quarto limiar pode ser determinado com base no primeiro limiar T1 e a profundidade N de quadtree do nó atual, por exemplo, pode ser T4 = T1 - N.
[00294] Em uma implementação, a profundidade N do nó atual é uma profundidade N de quadtree do nó atual. A unidade de decodificação de entropia 304 é especificamente configurada para determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, a região coberta pelo grupo de quantização atual. Se N for menor ou igual a um primeiro limiar T1 e M for menor ou igual a T1 - N, a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[00295] Em uma implementação, a unidade de decodificação de entropia 304 pode ser configurada especificamente para: se a profundidade N do nó atual for maior do que um primeiro limiar T1, obter um nó pai de (N - T1) -ésima camada do nó atual; e determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó pai de (N - T1) -ésima camada.
[00296] Em uma implementação, a unidade de decodificação de entropia 304 pode ser configurada especificamente para: se a profundidade N do nó atual for igual a um primeiro limiar T1, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[00297] Em uma implementação, a profundidade do nó atual é a profundidade de QT do nó atual, ou a profundidade do nó atual é uma soma da profundidade de QT do nó atual e a profundidade de MTT do nó atual.
[00298] Em uma implementação, o primeiro limiar T1 é 0, 1, 2 ou 3.
[00299] Em uma implementação, a unidade de decodificação de entropia 304 pode ainda ser configurada para: obter um modo de divisão do nó atual; e se a profundidade N do nó atual é igual a um segundo limiar T2 menos 1, e o modo de divisão do nó atual é um modo de divisão ternário, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual; ou se a profundidade N do nó atual é igual a um segundo limiar T2, e o modo de divisão do nó atual é um modo de divisão binário ou um modo de divisão de quadtree, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual; ou se a profundidade N do nó atual for menor ou igual a um segundo limiar, e o nó atual não estiver mais dividido, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[00300] Em uma implementação, o segundo limiar é 2, 3, 4, 6, 8 ou 9.
[00301] Em uma implementação, a unidade de decodificação de entropia 304 pode ainda ser configurada para: obter um modo de divisão do nó atual; e se a profundidade N do nó atual for igual a um terceiro limiar T3 menos 1, e o modo de divisão do nó atual for um modo de divisão ternário ou um modo de divisão de quadtree, determinar que a região coberta pelo grupo de quantização atual é um região coberta pelo nó atual; ou se a profundidade N do nó atual é igual a um terceiro limiar T3, e o modo de divisão do nó atual é um modo de divisão binário, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual; ou se a profundidade N do nó atual é igual a um terceiro limiar T3, e o nó atual não está mais dividido, determinar que a região coberta pelo grupo de quantização atual é uma região coberta pelo nó atual.
[00302] Em uma implementação, o terceiro limiar pode ser 3, 4, 5 ou semelhante.
[00303] Em uma implementação, a unidade de decodificação de entropia 304 pode ser configurada especificamente para determinar a profundidade N do nó atual com base em uma profundidade de QT do nó atual e uma profundidade binária Db do nó atual.
[00304] Em uma implementação, a unidade de decodificação de entropia 304 pode ser configurada especificamente para determinar a profundidade N do nó atual usando a seguinte fórmula de cálculo: N = Dq * 2 + Db, onde Dq é a profundidade de QT do nó atual.
[00305] Em uma implementação, se o nó atual for um nó raiz de MTT, a profundidade binária Db do nó atual é 0; ou se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho obtido no modo de divisão binária, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 1; ou se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho intermediário obtido no modo de divisão ternário, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 1; ou se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho não intermediário obtido no modo de divisão ternário, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 2.
[00306] Em uma implementação, a unidade de decodificação de entropia 304 é ainda configurada para: se um delta QP de uma primeira CU tendo um residual no grupo de quantização atual não for igual a 0, modificar QPs de luminância de todos os CUs cujas sequências de codificação são anteriores à da primeira CU tendo um residual no grupo de quantização atual para um QP de luminância da primeira CU tendo um residual. Correspondentemente, se a CU atual é uma CU antes da primeira CU tendo um residual no grupo de quantização atual, a unidade de quantização inversa 310 é especificamente configurada para obter o coeficiente desquantizado da CU atual com base no QP de luminância da primeira CU tendo um residual.
[00307] Uma modalidade da presente invenção fornece ainda um decodificador de vídeo, incluindo um circuito de execução configurado para realizar qualquer um dos métodos anteriores.
[00308] Uma modalidade da presente invenção fornece ainda um decodificador de vídeo, incluindo pelo menos um processador e um meio de armazenamento legível por computador não volátil acoplado a pelo menos um processador. O meio de armazenamento legível por computador não volátil armazena um programa de computador que pode ser executado por pelo menos um processador, e quando o programa de computador é executado por pelo menos um processador, o decodificador de vídeo é configurado para realizar qualquer um dos métodos anteriores.
[00309] Uma modalidade da presente invenção fornece ainda um meio de armazenamento legível por computador, configurado para armazenar um programa de computador que pode ser executado por pelo menos um processador. Quando o programa de computador é executado por pelo menos um processador, qualquer um dos métodos anteriores é realizado.
[00310] Uma modalidade da presente invenção fornece ainda um programa de computador. Quando o programa de computador é executado, qualquer um dos métodos anteriores é realizado.
[00311] Em um ou mais exemplos, as funções descritas podem ser implementadas por hardware, software, firmware ou qualquer combinação dos mesmos. Se implementadas por software, as funções podem ser armazenadas ou transmitidas em um meio legível por computador como uma ou mais instruções ou código e executadas por uma unidade de processamento baseada em hardware. O meio legível por computador pode incluir um meio de armazenamento legível por computador, que corresponde a um meio tangível, como um meio de armazenamento de dados ou um meio de comunicação. O meio de comunicação inclui, por exemplo, de acordo com um protocolo de comunicação, qualquer meio que facilite a transmissão de um programa de computador de um lugar para outro. Desta maneira, o meio legível por computador pode geralmente corresponder a: (1) um meio de armazenamento legível por computador tangível não transitório, ou (2) um meio de comunicações, como um sinal ou uma portadora. O meio de armazenamento de dados pode ser qualquer meio utilizável que pode ser acessado por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e / ou estruturas de dados para implementar as tecnologias descritas nas modalidades da presente invenção. Um produto de programa de computador pode incluir o meio legível por computador.
[00312] A título de exemplo, mas não de limitação, tal meio de armazenamento legível por computador pode incluir um RAM, um ROM, um EEPROM, um CD-ROM ou outro armazenamento de disco óptico, um armazenamento de disco magnético ou outro dispositivo de armazenamento magnético, uma memória flash ou qualquer outro meio que pode ser usado para armazenar o código do programa necessário na forma de uma instrução ou uma estrutura de dados e que pode ser acessado por um computador. Além disso, qualquer conexão pode ser apropriadamente referida como um meio legível por computador. Por exemplo, se uma instrução é transmitida de um site, um servidor ou outra fonte remota usando um cabo coaxial, um cabo de fibra óptica, um par trançado, uma linha de assinante digital (digital subscriber line, DSL) ou tecnologias sem fio, como infravermelho, rádio e micro-ondas, o cabo coaxial, o cabo de fibra óptica, o par trançado, o DSL ou as tecnologias sem fio, como infravermelho, rádio e micro-ondas estão incluídos em uma definição do meio. No entanto, deve ser entendido que o meio de armazenamento legível por computador e o meio de armazenamento de dados não incluem conexões, portadoras, sinais ou outros meios transitórios, mas na verdade significam meios de armazenamento tangíveis não transitórios. Conforme usado nesta especificação, um disco e um disco incluem um disco compacto (compact disc, CD), um disco laser, um disco óptico, um disco versátil digital (digital versatile disc, DVD), um disquete, e um disco Blu-ray. O disco geralmente reproduz os dados magneticamente, mas os reproduz opticamente usando um laser. Uma combinação dos itens anteriores também deve ser incluída no escopo do meio legível por computador.
[00313] A instrução pode ser executada por um ou mais processadores. Os um ou mais processadores são, por exemplo, um ou mais processadores de sinal digital (digital signal processor, DSP), microprocessadores de uso geral, circuitos integrados de aplicação específica (application specific integrated circuit, ASIC), matriz lógica programável em campo (field programmable logic array, FPGA) ou outros circuitos lógicos discretos ou integrados equivalentes. Portanto, o termo "processador" usado nesta especificação pode ser qualquer uma das estruturas anteriores ou qualquer outra estrutura adequada para implementar as tecnologias descritas nesta especificação. Além disso, em alguns aspectos, a funcionalidade descrita nesta especificação 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 tecnologias podem ser implementadas em um ou mais circuitos ou elementos lógicos.
[00314] As tecnologias desta divulgação podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho portátil sem fio, um circuito integrado (integrated circuit, IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta divulgação para enfatizar aspectos funcionais dos dispositivos configurados para realizar as tecnologias divulgadas, mas não são necessariamente implementados por diferentes unidades de hardware. Precisamente, como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware codec em combinação com software e / ou firmware adequados, ou ser fornecidas por um conjunto de unidades de hardware interoperativas. As unidades de hardware incluem um ou mais processadores descritos acima.

Claims (28)

REIVINDICAÇÕES EMENDADAS
1. Método de decodificação de vídeo, caracterizado pelo fato de que compreende: analisar (901) a informação de divisão de árvore de codificação para obter um nó atual; determinar (902), com base em uma profundidade N do nó atual, as coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização atual; obter (903) um delta de parâmetro de quantização, QP, de uma unidade de codificação, CU, atual na região coberta pelo grupo de quantização atual; e obter (904) uma imagem reconstruída da CU atual com base no delta QP da CU atual.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a profundidade N do nó atual é uma profundidade N de quadtree do nó atual; e a determinação, com base em uma profundidade N do nó atual, de coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização atual compreende um dos seguintes: determinar, com base na profundidade N do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual; em que se um dos seguintes é satisfeito: N é maior que um primeiro limiar T1 e M é maior que 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta por um nó de quadtree de K-ésima camada do nó atual, K é um valor menor entre N e T1, e o nó de quadtree de K-ésima camada é um nó de quadtree que compreende o nó atual e que é gerado após K vezes de divisão de quadtree a partir de uma unidade de árvore de codificação, CTU; determinar, com base em uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual, em que se um dos seguintes é satisfeito: N é maior do que um primeiro limiar T1 e M é maior que 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta por um nó de quadtree de K-ésima camada do nó atual, K é um valor menor entre N e T1, e o nó de quadtree de K-ésima camada é um nó de quadtree que compreende o nó atual e que é gerado após K vezes de divisão de quadtree a partir de uma unidade de árvore de codificação, CTU; determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual, em que se N não é maior que um primeiro limiar T1 e M é igual a 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual; determinar, com base na profundidade N de quadtree do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual; em que se N é igual a um primeiro limiar T1 e M é igual a 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual , e se N é menor que um primeiro limiar T1, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual; determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual, em que se N é igual a um primeiro limiar T1 e M é igual a 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual, e se N é menor que um primeiro limiar T1, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual; determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual, em que se N é igual a um primeiro limiar T1 e M é igual a 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual, e se N é menor que um primeiro limiar T1 e M não é maior do que um quarto limiar T4, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual; e determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual, em que se N não é maior que um primeiro limiar T1 e M não é maior do que T1 - N, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a determinação, com base em uma profundidade N do nó atual, de coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização de corrente compreende um dos seguintes: se a profundidade N do nó atual é maior que um primeiro limiar T1, obter um nó pai de (N - T1) -ésima camada do nó atual; e determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó pai de (N - T1) -ésima camada; e se a profundidade N do nó atual é igual a um primeiro limiar T1, determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
4. Método, de acordo com a reivindicação 2 ou 3, caracterizado pelo fato de que o primeiro limiar T1 é um número inteiro não negativo predefinido.
5. Método, de acordo com qualquer uma das reivindicações 2 a 4, caracterizado pelo fato de que o primeiro limiar T1 é um de 0, 1, 2 e 3.
6. Método, de acordo com qualquer uma das reivindicações 3 a 5, caracterizado pelo fato de que a profundidade do nó atual é a profundidade de quadtree profundidade de QT do nó atual.
7. Método, de acordo com qualquer uma das reivindicações 3 a 5, caracterizado pelo fato de que a profundidade do nó atual é uma soma da profundidade de QT do nó atual e a profundidade de árvore multitipo profundidade de MTT do nó atual.
8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o método compreende ainda: obter um modo de divisão do nó atual; e a determinação, com base em uma profundidade N do nó atual, de coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização atual compreende: se a profundidade N do nó atual é igual a um segundo limiar T2 menos 1, e o modo de divisão do nó atual é um modo de divisão ternário, determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual; e se a profundidade N do nó atual é igual a um segundo limiar T2, e o modo de divisão do nó atual é um de um modo de divisão binário e um modo de divisão de quadtree, determinar que as coordenadas do canto superior esquerdo da região cobertas pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o método compreende ainda: obter um modo de divisão do nó atual; e a determinação, com base em uma profundidade N do nó atual, de coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização atual compreende: se a profundidade N do nó atual é igual a um terceiro limiar T3 menos 1, e o modo de divisão do nó atual é um de um modo de divisão ternário e um modo de divisão de quadtree, determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual; e se a profundidade N do nó atual é igual a um terceiro limiar T3, e o modo de divisão do nó atual é um modo de divisão binário, determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
10. Método, de acordo com qualquer uma das reivindicação 1, 8 ou 9, caracterizado pelo fato de que a profundidade N do nó atual é determinada de acordo com um dos seguintes: determinar a profundidade N do nó atual com base em uma profundidade de QT do nó atual e uma profundidade binária Db do nó atual; e determinar a profundidade N do nó atual é usando a seguinte fórmula de cálculo: N = Dq * 2 + Db, em que Dq é a profundidade de QT do nó atual.
11. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que um dos seguintes é satisfeito: se o nó atual é um nó raiz de árvore multitipo, MTT, a profundidade binária Db do nó atual é 0; se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho obtido no modo de divisão binária,
a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 1; se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho intermediário obtido no modo de divisão ternário, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 1; e se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho não intermediário obtido no modo de divisão ternário, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 2.
12. Método, de acordo com qualquer uma das reivindicações 1 a 11, caracterizado pelo fato de que se um delta QP de uma primeira CU tendo um residual no grupo de quantização atual não é igual a 0, o QPs de luminância de todas as CUs cujas sequências de codificação são anteriores à da primeira CU tendo um residual no grupo de quantização atual é modificado para um QP de luminância da primeira CU tendo um residual; e se a CU atual é uma CU antes da primeira CU tendo um residual no grupo de quantização atual, a obtenção de uma imagem reconstruída da CU atual com base no delta QP da CU atual compreende: obter a imagem reconstruída da CU atual com base no QP de luminância da primeira CU tendo um residual.
13. Decodificador de vídeo (30), caracterizado por compreender: uma unidade de decodificação de entropia (304), configurada para: analisar informação de divisão de árvore de codificação para obter um nó atual; determinar, com base em uma profundidade N do nó atual, as coordenadas de um canto superior esquerdo de uma região coberta por um grupo de quantização atual; obter um delta de parâmetro de quantização, QP, de uma unidade de codificação, CU, atual que cobre as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual; e determinar um QP de luminância da CU atual com base no delta QP da CU atual; uma unidade de quantização inversa (310), configurada para obter um coeficiente desquantizado da CU atual com base no QP de luminância da CU atual; uma unidade de processamento de transformada inversa (312), configurada para obter um bloco residual reconstruído da CU atual com base no coeficiente desquantizado da CU atual; e uma unidade de reconstrução (314), configurada para obter uma imagem reconstruída da CU atual com base no bloco residual reconstruído da CU atual.
14. Decodificador de vídeo, de acordo com a reivindicação 13, caracterizado pelo fato de que a profundidade N do nó atual é uma profundidade N de quadtree do nó atual; e a unidade de decodificação de entropia (304) é ainda configurada para realizar um dos seguintes: determinar, com base na profundidade N do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual; em que se um dos seguintes é satisfeito: N é maior que um primeiro limiar T1 e M é maior que 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta por um nó de quadtree de K-ésima camada do nó atual, K é um valor menor entre N e T1, e o nó de quadtree de K-ésima camada é um nó de quadtree que compreende o nó atual e que é gerado após K vezes de divisão de quadtree a partir de uma unidade de árvore de codificação, CTU; determinar, com base em uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual, em que se um dos seguintes é satisfeito: N é maior do que um primeiro limiar T1 e M é maior que 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta por um nó de quadtree de K-ésima camada do nó atual, K é um valor menor entre N e T1, e o nó de quadtree de K-ésima camada é um nó de quadtree que compreende o nó atual e que é gerado após K vezes de divisão de quadtree a partir de uma unidade de árvore de codificação, CTU; determinar, com base na profundidade N de quadtree do nó atual e em uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual, em que se N não é maior que um primeiro limiar T1 e M é igual a 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual; determinar, com base na profundidade N de quadtree do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual; em que se N é igual a um primeiro limiar T1 e M é igual a 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual, e se N é menor que um primeiro limiar T1, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual; determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual, em que se N é igual a um primeiro limiar T1 e M é igual a 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual, e se N é menor que um primeiro limiar T1, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual; determinar, com base na profundidade N de quadtree do nó atual e uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual, em que se N é igual a um primeiro limiar T1 e M é igual a 0, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual, e se N é menor que um primeiro limiar T1 e M não é maior do que um quarto limiar T4, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual; e determinar, com base na profundidade N de quadtree do nó atual e em uma profundidade de árvore multitipo M do nó atual, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual, em que se N não é maior que um primeiro limiar T1 e M não é maior do que T1 - N, as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
15. Decodificador de vídeo, de acordo com a reivindicação 13, caracterizado pelo fato de que a unidade de decodificação de entropia (304) é ainda configurada para realizar um dos seguintes: se a profundidade N do nó atual é maior que um primeiro limiar T1, obter um nó pai de (N - T1)-ésima camada do nó atual; e determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó pai de (N - T1)-ésima camada; e se a profundidade N do nó atual é igual a um primeiro limiar T1, determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
16. Decodificador de vídeo, de acordo com a reivindicação 14 ou 15, caracterizado pelo fato de que o primeiro limiar T1 é um número inteiro não negativo predefinido.
17. Decodificador de vídeo, de acordo com qualquer uma das reivindicações 14 a 16, caracterizado pelo fato de que o primeiro limiar T1 é um de 0, 1, 2 e 3.
18. Decodificador de vídeo, de acordo com qualquer uma das reivindicações 15 a 17, caracterizado pelo fato de que a profundidade do nó atual é a profundidade de quadtree profundidade de QT do nó atual.
19. Decodificador de vídeo, de acordo com qualquer uma das reivindicações 15 a 17, caracterizado pelo fato de que a profundidade do nó atual é uma soma da profundidade de QT do nó atual e a profundidade de árvore multitipo profundidade de MTT do nó atual.
20. Decodificador de vídeo, de acordo com a reivindicação 13, caracterizado pelo fato de que a unidade de decodificação de entropia (304) é ainda configurada para: obter um modo de divisão do nó atual; e se a profundidade N do nó atual é igual a um segundo limiar T2 menos 1, e o modo de divisão do nó atual é um modo de divisão ternário, determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual; se a profundidade N do nó atual é igual a um segundo limiar T2, e o modo de divisão do nó atual é um de um modo de divisão binário e um modo de divisão de quadtree, determinar que as coordenadas do canto superior esquerdo da região cobertas pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
21. Decodificador de vídeo, de acordo com a reivindicação 13, caracterizado pelo fato de que a unidade de decodificação de entropia (304) é ainda configurada para: obter um modo de divisão do nó atual; e se a profundidade N do nó atual é igual a um terceiro limiar T3 menos 1, e o modo de divisão do nó atual é um de um modo de divisão ternário e um modo de divisão de quadtree, determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual; se a profundidade N do nó atual é igual a um terceiro limiar T3, e o modo de divisão do nó atual é um modo de divisão binário, determinar que as coordenadas do canto superior esquerdo da região coberta pelo grupo de quantização atual são coordenadas de um canto superior esquerdo de uma região coberta pelo nó atual.
22. Decodificador de vídeo, de acordo com a reivindicação 13, 20 ou 21, caracterizado pelo fato de que a unidade de decodificação de entropia (304) é ainda configurada para realizar um dos seguintes: determinar a profundidade N do nó atual com base em uma profundidade de QT do nó atual e uma profundidade binária Db do nó atual; e determinar a profundidade N do nó atual usando a seguinte fórmula de cálculo: N = Dq * 2 + Db, em que Dq é a profundidade de QT do nó atual.
23. Decodificador de vídeo, de acordo com a reivindicação 22, caracterizado pelo fato de que um dos seguintes é satisfeito: se o nó atual é um nó raiz de árvore multitipo, MTT, a profundidade binária Db do nó atual é 0; se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho obtido no modo de divisão binária,
a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 1; se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho intermediário obtido no modo de divisão ternário, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 1; e se o nó atual é um nó de MTT e não é um nó raiz de MTT, e o nó atual é um nó filho não intermediário obtido no modo de divisão ternário, a profundidade binária Db do nó atual é uma profundidade binária de um nó pai direto do nó atual mais 2.
24. Decodificador de vídeo, de acordo com qualquer uma das reivindicações 13 a 23, caracterizado pelo fato de que a unidade de decodificação de entropia (304) é ainda configurada para: se um delta QP de uma primeira CU tendo um residual no grupo de quantização atual não é igual a 0, modificar os QPs de luminância de todas as CUs cujas sequências de codificação são anteriores à da primeira CU tendo um residual no grupo de quantização atual para um QP de luminância da primeira CU tendo um residual; e se a CU atual é uma CU antes da primeira CU tendo um residual no grupo de quantização atual, a unidade de quantização inversa (310) é ainda configurada para obter o coeficiente desquantizado da CU atual com base no QP de luminância da primeira CU tendo um residual.
25. Decodificador de vídeo, caracterizado por compreender um circuito de execução configurado para realizar o método conforme definido em qualquer uma das reivindicações 1 a 12.
26. Decodificador de vídeo, caracterizado por compreender: pelo menos um processador; e um meio de armazenamento legível por computador não volátil acoplado a pelo menos um processador, em que o meio de armazenamento legível por computador não volátil armazena um programa de computador que pode ser executado por pelo menos um processador e quando o programa de computador é executado por pelo menos um processador, o decodificador de vídeo é configurado para realizar o método conforme definido em qualquer uma das reivindicações 1 a 12.
27. Meio de armazenamento legível por computador, caracterizado pelo fato de que o meio de armazenamento legível por computador é configurado para armazenar um conjunto de instruções que podem ser executadas por pelo menos um processador, em que quando o conjunto de instruções é executado por pelo menos um processador, o método conforme definido em qualquer uma das reivindicações 1 a 12 é realizado.
28. Dispositivo de decodificação de dados de vídeo, caracterizado por compreender: um armazenamento de memória não transitório, configurado para armazenar dados de vídeo na forma de um fluxo de bits; e um decodificador de vídeo, configurado para realizar qualquer um dos métodos conforme definido em qualquer uma das reivindicações 1 a 12.
BR112021004124-9A 2018-09-05 2019-08-28 método de decodificação de vídeo e decodificador de vídeo BR112021004124A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201811032693 2018-09-05
CN201811032693.7 2018-09-05
CN201811104788.5A CN110881129B (zh) 2018-09-05 2018-09-21 视频解码方法及视频解码器
CN201811104788.5 2018-09-21
PCT/CN2019/102944 WO2020048361A1 (zh) 2018-09-05 2019-08-28 视频解码方法及视频解码器

Publications (1)

Publication Number Publication Date
BR112021004124A2 true BR112021004124A2 (pt) 2021-05-25

Family

ID=69727285

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021004124-9A BR112021004124A2 (pt) 2018-09-05 2019-08-28 método de decodificação de vídeo e decodificador de vídeo

Country Status (7)

Country Link
US (2) US11431997B2 (pt)
EP (1) EP3840378A4 (pt)
JP (2) JP7143512B2 (pt)
KR (2) KR102612489B1 (pt)
CN (5) CN112040229B (pt)
BR (1) BR112021004124A2 (pt)
SG (1) SG11202102195XA (pt)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3811612A1 (en) 2018-06-21 2021-04-28 Telefonaktiebolaget LM Ericsson (publ) Tile partitions with sub-tiles in video coding
WO2019243534A1 (en) 2018-06-21 2019-12-26 Telefonaktiebolaget Lm Ericsson (Publ) Tile shuffling for 360 degree video decoding
EP3707904A1 (en) 2018-10-02 2020-09-16 Telefonaktiebolaget Lm Ericsson (Publ) Encoding and decoding pictures based on tile group id
WO2020156515A1 (en) * 2019-01-31 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Refined quantization steps in video coding
CN114598873B (zh) * 2020-12-03 2023-06-20 华为技术有限公司 量化参数的解码方法和装置
WO2022214055A1 (en) * 2021-04-09 2022-10-13 Beijing Bytedance Network Technology Co., Ltd. Interaction of multiple partitions
CN116527927A (zh) * 2021-11-11 2023-08-01 杭州海康威视数字技术股份有限公司 一种图像的解码方法、编码方法及装置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9210442B2 (en) 2011-01-12 2015-12-08 Google Technology Holdings LLC Efficient transform unit representation
PL3668095T3 (pl) * 2011-01-13 2021-12-13 Canon Kabushiki Kaisha Urządzenie do kodowania obrazu, sposób kodowania obrazu i program, oraz urządzenie do dekodowania obrazu, sposób dekodowania obrazu i program
US20120189052A1 (en) 2011-01-24 2012-07-26 Qualcomm Incorporated Signaling quantization parameter changes for coded units in high efficiency video coding (hevc)
US9112526B2 (en) * 2011-06-15 2015-08-18 Sony Corporation Binarization of DQP using separate absolute value and sign (SAVS) in CABAC
US9161046B2 (en) * 2011-10-25 2015-10-13 Qualcomm Incorporated Determining quantization parameters for deblocking filtering for video coding
US9521410B2 (en) * 2012-04-26 2016-12-13 Qualcomm Incorporated Quantization parameter (QP) coding in video coding
WO2014163461A1 (ko) * 2013-04-05 2014-10-09 삼성전자 주식회사 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
CN104104966B (zh) * 2013-04-08 2017-11-24 华为技术有限公司 视频块的划分方法和装置
US9510002B2 (en) * 2013-09-09 2016-11-29 Apple Inc. Chroma quantization in video coding
CN103702131B (zh) 2013-12-25 2017-02-15 清华大学 一种基于模式预处理的帧内编码优化方法和系统
US10136141B2 (en) * 2014-06-11 2018-11-20 Qualcomm Incorporated Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding
EP3180918A1 (en) 2014-08-12 2017-06-21 Intel Corporation System and method of motion estimation for video coding
US9743092B2 (en) 2015-10-13 2017-08-22 Nokia Technologies Oy Video coding with helper data for spatial intra-prediction
CN114786009A (zh) 2016-03-16 2022-07-22 寰发股份有限公司 视频编码中限制块尺寸的视频数据处理方法与装置
MX2018014491A (es) * 2016-05-25 2019-08-14 Arris Entpr Llc Metodo de particionamiento de bloque general.
US11039175B2 (en) * 2016-05-27 2021-06-15 Sharp Kabushiki Kaisha Systems and methods for varying quantization parameters
WO2017203903A1 (ja) * 2016-05-27 2017-11-30 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 電子制御ユニット、通信方法及び車載ネットワークシステム
CN107566848B (zh) * 2016-06-30 2020-04-14 华为技术有限公司 编解码的方法及装置
US10448056B2 (en) * 2016-07-15 2019-10-15 Qualcomm Incorporated Signaling of quantization information in non-quadtree-only partitioned video coding
WO2018018486A1 (en) * 2016-07-28 2018-02-01 Mediatek Inc. Methods of reference quantization parameter derivation for signaling of quantization parameter in quad-tree plus binary tree structure
CN107770525B (zh) 2016-08-15 2020-07-24 华为技术有限公司 一种图像编码的方法及装置
WO2018045332A1 (en) * 2016-09-02 2018-03-08 Vid Scale, Inc. Methods and apparatus for coded block flag coding in quad-tree plus binary-tree block partitioning
US10536724B2 (en) 2016-12-26 2020-01-14 Nec Corporation Video encoding method, video decoding method, video encoding device, video decoding device, and program
AU2018311926B2 (en) * 2017-08-03 2022-08-18 FG Innovation Company Limited Systems and methods for partitioning video blocks in an inter prediction slice of video data
WO2019131807A1 (en) * 2017-12-29 2019-07-04 Sharp Kabushiki Kaisha Systems and methods for partitioning video blocks for video coding
US10904529B2 (en) * 2018-01-19 2021-01-26 Qualcomm Incorporated Quantization group for video coding
TWI720584B (zh) * 2018-08-16 2021-03-01 聯發科技股份有限公司 視訊處理系統中色度量化參數導出的方法以及裝置

Also Published As

Publication number Publication date
US11431997B2 (en) 2022-08-30
CN112040229B (zh) 2021-06-29
JP2022179505A (ja) 2022-12-02
SG11202102195XA (en) 2021-04-29
CN117956197A (zh) 2024-04-30
JP2021536703A (ja) 2021-12-27
EP3840378A1 (en) 2021-06-23
CN112040229A (zh) 2020-12-04
CN118042173A (zh) 2024-05-14
CN110881129A (zh) 2020-03-13
US20210195226A1 (en) 2021-06-24
KR102612489B1 (ko) 2023-12-08
CN110881129B (zh) 2024-01-05
KR20230170817A (ko) 2023-12-19
US20220329839A1 (en) 2022-10-13
KR20210047949A (ko) 2021-04-30
EP3840378A4 (en) 2021-06-23
CN118018765A (zh) 2024-05-10
JP7143512B2 (ja) 2022-09-28
JP7463460B2 (ja) 2024-04-08

Similar Documents

Publication Publication Date Title
KR20210045458A (ko) 역 양자화 장치 및 방법
BR112021004124A2 (pt) método de decodificação de vídeo e decodificador de vídeo
CN112673626B (zh) 各分割约束元素之间的关系
CN111355951B (zh) 视频解码方法、装置及解码设备
KR102616713B1 (ko) 이미지 예측 방법, 장치 및 시스템, 디바이스 및 저장 매체
BR112021001813A2 (pt) método de processamento de vídeo, aparelho de processamento de vídeo, codificador, decodificador, mídia e programa de computador
US20210321101A1 (en) Prediction mode determining method and apparatus, encoding device, and decoding device
KR20220013415A (ko) Mpm 리스트 구성 방법, 크로마 블록 인트라 예측 모드 획득 방법, 및 장치
BR112021013644A2 (pt) Codificador, decodificador e métodos correspondentes de adaptação de filtro de deblocagem
BR112021009911A2 (pt) codificador, decodificador e métodos correspondentes usando armazenamento de mv compacto
CN114679583B (zh) 视频编码器、视频解码器及对应方法
KR102631517B1 (ko) 픽처 분할 방법 및 장치
CN112055211B (zh) 视频编码器及qp设置方法
EP3893505A1 (en) Method and device for determining prediction mode, coding device, and decoding device
BR112021009099A2 (pt) codificador de vídeo, decodificador de vídeo e métodos de codificação ou decodificação de uma imagem
WO2020063687A1 (zh) 视频解码方法及视频解码器
CN111770337B (zh) 视频编码方法、视频解码方法及相关设备
WO2020048361A1 (zh) 视频解码方法及视频解码器

Legal Events

Date Code Title Description
B15K Others concerning applications: alteration of classification

Free format text: A CLASSIFICACAO ANTERIOR ERA: H04N 19/96

Ipc: H04N 19/96 (2014.01), H04N 19/124 (2014.01)

B06A Patent application procedure suspended [chapter 6.1 patent gazette]