Recientemente, es necesario estudiar la función de HM relacionada con la división de bloques ( TLibEncoder\TEncCu
), pero hay pocos materiales de referencia en Internet y el código de esta parte es relativamente complicado, por lo que este artículo se basa en la última versión 16.20, tratando de analizar su principio de implementación, y el análisis del código fuente de la parte correspondiente de x265 se actualizará más adelante.
El análisis de código de esta parte de HM15.0 puede consultar [este blog] ( https://blog.csdn.net/qq_21880777/article/details/78827285 ).
nivel de la UTC
Básicamente dividido en dos pasos, primero comprimir la CTU y luego codificar la CTU
TEncCu::compressCtu
unidad de transporte comprimida
- Inicialice los datos de CTU de nivel superior
m_ppcBestCU[0]->initCtu()
ym_ppcTempCU[0]->initCtu()
- Llame recursivamente a
xCompressCU()
la CTU comprimida
TEncCu::encodeCtu
UTC codificada
- Inicialice los parámetros de QP de acuerdo con la configuración de Slice
xEncodeCU()
CTU de codificación de llamada recursiva
nivel de CU
xCompressCU( )
desde el frentex</