History

change input parameters for UpdateMbNeighbourInfoForNextSlice etc.

huade committed 10 years ago

Commit b77b68f1 parent 54a194c6 files · +59 −56Browse files

Showing the changes to codec/encoder/core/src/encoder_ext.cpp (1 of 6 files). Show all

Unified · Split

codec/encoder/core/src/encoder_ext.cpp+13−15
@@ -764,7 +764,6 @@ static void InitMbInfo (sWelsEncCtx* pEnc, SMB* pList, SDqLayer* pLayer, con · 763 unmodified lines
764764 int32_t iMbHeight = pLayer->iMbHeight;
765765 int32_t iIdx;
766766 int32_t iMbNum = iMbWidth * iMbHeight;
767− SSliceCtx* pSliceCtx = &pLayer->sSliceEncCtx;
768767 uint32_t uiNeighborAvail;
769768 const int32_t kiOffset = (kiDlayerId & 0x01) * kiMaxMbNum;
770769 SMVUnitXY (*pLayerMvUnitBlock4x4)[MB_BLOCK4x4_NUM] = (SMVUnitXY (*)[MB_BLOCK4x4_NUM]) (
@@ -784,18 +783,18 @@ static void InitMbInfo (sWelsEncCtx* pEnc, SMB* pList, SDqLayer* pLayer, con · 13 unmodified lines
784783 pList[iIdx].iMbY = pEnc->pStrideTab->pMbIndexY[kiDlayerId][iIdx];
785784 pList[iIdx].iMbXY = iIdx;
786785
787− uiSliceIdc = WelsMbToSliceIdc (pSliceCtx, iIdx);
786+ uiSliceIdc = WelsMbToSliceIdc (pLayer, iIdx);
788787 iLeftXY = iIdx - 1;
789788 iTopXY = iIdx - iMbWidth;
790789 iLeftTopXY = iTopXY - 1;
791790 iRightTopXY = iTopXY + 1;
792791
793− bLeft = (pList[iIdx].iMbX > 0) && (uiSliceIdc == WelsMbToSliceIdc (pSliceCtx, iLeftXY));
794− bTop = (pList[iIdx].iMbY > 0) && (uiSliceIdc == WelsMbToSliceIdc (pSliceCtx, iTopXY));
792+ bLeft = (pList[iIdx].iMbX > 0) && (uiSliceIdc == WelsMbToSliceIdc (pLayer, iLeftXY));
793+ bTop = (pList[iIdx].iMbY > 0) && (uiSliceIdc == WelsMbToSliceIdc (pLayer, iTopXY));
795794 bLeftTop = (pList[iIdx].iMbX > 0) && (pList[iIdx].iMbY > 0) && (uiSliceIdc ==
796− WelsMbToSliceIdc (pSliceCtx, iLeftTopXY));
795+ WelsMbToSliceIdc (pLayer, iLeftTopXY));
797796 bRightTop = (pList[iIdx].iMbX < (iMbWidth - 1)) && (pList[iIdx].iMbY > 0) && (uiSliceIdc ==
798− WelsMbToSliceIdc (pSliceCtx, iRightTopXY));
797+ WelsMbToSliceIdc (pLayer, iRightTopXY));
799798
800799 uiNeighborAvail = 0;
801800 if (bLeft) {
@@ -2682,7 +2681,8 @@ int32_t GetTemporalLevel (SSpatialLayerInternal* fDlp, const int32_t kiFrameNum, · 1880 unmodified lines
26822681 return fDlp->uiCodingIdx2TemporalId[kiCodingIdx];
26832682 }
26842683
2685−void DynslcUpdateMbNeighbourInfoListForAllSlices (SSliceCtx* pSliceCtx, SMB* pMbList) {
2684+void DynslcUpdateMbNeighbourInfoListForAllSlices (SDqLayer* pCurDq, SMB* pMbList) {
2685+ SSliceCtx* pSliceCtx = &pCurDq->sSliceEncCtx;
26862686 const int32_t kiMbWidth = pSliceCtx->iMbWidth;
26872687 const int32_t kiEndMbInSlice = pSliceCtx->iMbNumInFrame - 1;
26882688 int32_t iIdx = 0;
@@ -2700,17 +2700,17 @@ void DynslcUpdateMbNeighbourInfoListForAllSlices (SSliceCtx* pSliceCtx, SMB* pMb · 11 unmodified lines
27002700 uint16_t uiSliceIdc;
27012701 int32_t iLeftXY, iTopXY, iLeftTopXY, iRightTopXY;
27022702
2703− uiSliceIdc = WelsMbToSliceIdc (pSliceCtx, kiMbXY);
2703+ uiSliceIdc = WelsMbToSliceIdc (pCurDq, kiMbXY);
27042704 pMb->uiSliceIdc = uiSliceIdc;
27052705 iLeftXY = kiMbXY - 1;
27062706 iTopXY = kiMbXY - kiMbWidth;
27072707 iLeftTopXY = iTopXY - 1;
27082708 iRightTopXY = iTopXY + 1;
27092709
2710− bLeft = (kiMbX > 0) && (uiSliceIdc == WelsMbToSliceIdc (pSliceCtx, iLeftXY));
2711− bTop = (kiMbY > 0) && (uiSliceIdc == WelsMbToSliceIdc (pSliceCtx, iTopXY));
2712− bLeftTop = (kiMbX > 0) && (kiMbY > 0) && (uiSliceIdc == WelsMbToSliceIdc (pSliceCtx, iLeftTopXY));
2713− bRightTop = (kiMbX < (kiMbWidth - 1)) && (kiMbY > 0) && (uiSliceIdc == WelsMbToSliceIdc (pSliceCtx, iRightTopXY));
2710+ bLeft = (kiMbX > 0) && (uiSliceIdc == WelsMbToSliceIdc (pCurDq, iLeftXY));
2711+ bTop = (kiMbY > 0) && (uiSliceIdc == WelsMbToSliceIdc (pCurDq, iTopXY));
2712+ bLeftTop = (kiMbX > 0) && (kiMbY > 0) && (uiSliceIdc == WelsMbToSliceIdc (pCurDq, iLeftTopXY));
2713+ bRightTop = (kiMbX < (kiMbWidth - 1)) && (kiMbY > 0) && (uiSliceIdc == WelsMbToSliceIdc (pCurDq, iRightTopXY));
27142714
27152715 if (bLeft) {
27162716 uiNeighborAvailFlag |= LEFT_MB_POS;
@@ -2744,10 +2744,8 @@ int32_t PicPartitionNumDecision (sWelsEncCtx* pCtx) { · 27 unmodified lines
27442744 void WelsInitCurrentQBLayerMltslc (sWelsEncCtx* pCtx) {
27452745 //pData init
27462746 SDqLayer* pCurDq = pCtx->pCurDqLayer;
2747− SSliceCtx* pSliceCtx = &(pCurDq->sSliceEncCtx);
2748−
27492747 //mb_neighbor
2750− DynslcUpdateMbNeighbourInfoListForAllSlices (pSliceCtx, pCurDq->sMbDataP);
2748+ DynslcUpdateMbNeighbourInfoListForAllSlices (pCurDq, pCurDq->sMbDataP);
27512749 }
27522750
27532751 void UpdateSlicepEncCtxWithPartition (SDqLayer* pCurDq, int32_t iPartitionNum) {

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t