HEVC пикселей блока
Так что я играюсь с кодом HEVC, и мне было интересно, как найти пиксели блока. Если быть более точным, скажем, у меня есть 32x32 CU, как я могу найти фактические пиксели в этом блоке 32x32?
Код, который я использую для извлечения CU (взят из TEncSearch.cpp из 3d-HEVC):
TComPic* pcPicTex = pcCU->getSlice()->getTexturePic();
TComDataCU* pcColTexCU = pcPicTex->getCU( pcCU->getAddr() );
Из этого я добавил следующее, что приводит к блоку 32x32:
printf("CU %ux%u \n", pcColTexCU->getWidth(0), pcColTexCU->getHeight(0) );
Кто-нибудь знает, как я могу найти фактические пиксели этого блока 32x32?
Спасибо
1 ответ
Решение
Поскольку модуль фильтра удаления блочности выполняет фильтрацию восстановленных пикселей, вы можете обратиться к исходному коду (TComLoopFilter.cpp), чтобы узнать, как получить доступ к восстановленным пикселям.
TComPicYuv* pcPicYuvRec = pcCU->getPic()->getPicYuvRec();
Pel* piSrc = pcPicYuvRec->getLumaAddr( pcCU->getAddr(), uiAbsZorderIdx );
pcCU-> getAddr () означает, что индекс CTU
uiAbsZorderIdx означает, что zindex (обычно это блочный индекс 4x4) в CTU