History

put duplicated codes into one function

sijchen committed 10 years ago

Commit 2fc9c081 parent 01016b14 files · +42 −110Browse files

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

Unified · Split

codec/encoder/core/src/slice_multi_threading.cpp+1−37
@@ -82,48 +82,12 @@ void UpdateMbListNeighborParallel (SDqLayer* pCurDq, · 81 unmodified lines
82 const int32_t uiSliceIdc) {82 const int32_t uiSliceIdc) {
83 SSliceCtx* pSliceCtx = &pCurDq->sSliceEncCtx;83 SSliceCtx* pSliceCtx = &pCurDq->sSliceEncCtx;
84 SSlice* pUpdateSlice = &pCurDq->sLayerInfo.pSliceInLayer[uiSliceIdc];84 SSlice* pUpdateSlice = &pCurDq->sLayerInfo.pSliceInLayer[uiSliceIdc];
85 const uint16_t* kpMbMap = pSliceCtx->pOverallMbMap;
86 const int32_t kiMbWidth = pSliceCtx->iMbWidth;85 const int32_t kiMbWidth = pSliceCtx->iMbWidth;
87 int32_t iIdx = pUpdateSlice->sSliceHeaderExt.sSliceHeader.iFirstMbInSlice;86 int32_t iIdx = pUpdateSlice->sSliceHeaderExt.sSliceHeader.iFirstMbInSlice;
88 const int32_t kiEndMbInSlice = iIdx + pSliceCtx->pCountMbNumInSlice[uiSliceIdc] - 1;87 const int32_t kiEndMbInSlice = iIdx + pSliceCtx->pCountMbNumInSlice[uiSliceIdc] - 1;
89 88
90 do {89 do {
91 SMB* pMb = &pMbList[iIdx];90 UpdateMbNeighbor(pCurDq, &pMbList[iIdx], kiMbWidth, uiSliceIdc);
92 uint32_t uiNeighborAvailFlag = 0;
93 const int32_t kiMbXY = pMb->iMbXY;
94 const int32_t kiMbX = pMb->iMbX;
95 const int32_t kiMbY = pMb->iMbY;
96 bool bLeft;
97 bool bTop;
98 bool bLeftTop;
99 bool bRightTop;
100 int32_t iLeftXY, iTopXY, iLeftTopXY, iRightTopXY;
101
102 iLeftXY = kiMbXY - 1;
103 iTopXY = kiMbXY - kiMbWidth;
104 iLeftTopXY = iTopXY - 1;
105 iRightTopXY = iTopXY + 1;
106
107 bLeft = (kiMbX > 0) && (uiSliceIdc == kpMbMap[iLeftXY]);
108 bTop = (kiMbY > 0) && (uiSliceIdc == kpMbMap[iTopXY]);
109 bLeftTop = (kiMbX > 0) && (kiMbY > 0) && (uiSliceIdc == kpMbMap[iLeftTopXY]);
110 bRightTop = (kiMbX < (kiMbWidth - 1)) && (kiMbY > 0) && (uiSliceIdc == kpMbMap[iRightTopXY]);
111
112 if (bLeft) {
113 uiNeighborAvailFlag |= LEFT_MB_POS;
114 }
115 if (bTop) {
116 uiNeighborAvailFlag |= TOP_MB_POS;
117 }
118 if (bLeftTop) {
119 uiNeighborAvailFlag |= TOPLEFT_MB_POS;
120 }
121 if (bRightTop) {
122 uiNeighborAvailFlag |= TOPRIGHT_MB_POS;
123 }
124 pMb->uiNeighborAvail = (uint8_t)uiNeighborAvailFlag;
125 pMb->uiSliceIdc = uiSliceIdc;
126
127 ++ iIdx;91 ++ iIdx;
128 } while (iIdx <= kiEndMbInSlice);92 } while (iIdx <= kiEndMbInSlice);
129}93}

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