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

Другие вопросы по тегам