[Encoder] put duplicated codes into one function
Showing the changes to codec/encoder/core/src/slice_multi_threading.cpp (1 of 4 files). Show all
Unified · Split
| @@ -82,48 +82,12 @@ void UpdateMbListNeighborParallel (SDqLayer* pCurDq, · 81 unmodified lines | ||
| 82 | 82 | const int32_t uiSliceIdc) { |
| 83 | 83 | SSliceCtx* pSliceCtx = &pCurDq->sSliceEncCtx; |
| 84 | 84 | SSlice* pUpdateSlice = &pCurDq->sLayerInfo.pSliceInLayer[uiSliceIdc]; |
| 85 | − const uint16_t* kpMbMap = pSliceCtx->pOverallMbMap; | |
| 86 | 85 | const int32_t kiMbWidth = pSliceCtx->iMbWidth; |
| 87 | 86 | int32_t iIdx = pUpdateSlice->sSliceHeaderExt.sSliceHeader.iFirstMbInSlice; |
| 88 | 87 | const int32_t kiEndMbInSlice = iIdx + pUpdateSlice->iCountMbNumInSlice - 1; |
| 89 | 88 | |
| 90 | 89 | do { |
| 91 | − SMB* pMb = &pMbList[iIdx]; | |
| 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 | − | |
| 90 | + UpdateMbNeighbor(pCurDq, &pMbList[iIdx], kiMbWidth, uiSliceIdc); | |
| 127 | 91 | ++ iIdx; |
| 128 | 92 | } while (iIdx <= kiEndMbInSlice); |
| 129 | 93 | } |