History

Check left/top flag instead of uiNeighborAvail in neon deblocking

When deblocking over slice edges (in single threaded sliced encoding), uiNeighborAvail might say that a MB isn't available, even though it is available for deblocking here. This fixes the encoder test of dynamic slicing, with neon optimizations enabled.

Martin Storsjö committed 12 years ago

Commit e5abbdc1 parent c228c511 file · +4 −2Browse files

Showing the changes to codec/encoder/core/src/deblocking.cpp (1 of 1 file). Show all

Unified · Split

codec/encoder/core/src/deblocking.cpp+4−2
@@ -555,7 +555,8 @@ void DeblockingIntraMb (DeblockingFunc* pfDeblocking, SMB* pCurMb, SDeblockingFi · 554 unmodified lines
555555 #if defined(HAVE_NEON) && defined(SINGLE_REF_FRAME)
556556 void DeblockingBSCalc_neon (SWelsFuncPtrList* pFunc, SMB* pCurMb, uint8_t uiBS[2][4][4], Mb_Type uiCurMbType,
557557 int32_t iMbStride, int32_t iLeftFlag, int32_t iTopFlag) {
558− DeblockingBSCalcEnc_neon (pCurMb->pNonZeroCount, pCurMb->sMv, pCurMb->uiNeighborAvail, iMbStride, uiBS);
558+ DeblockingBSCalcEnc_neon (pCurMb->pNonZeroCount, pCurMb->sMv,
559+ (iLeftFlag ? LEFT_MB_POS : 0) | (iTopFlag ? TOP_MB_POS : 0), iMbStride, uiBS);
559560 if (iLeftFlag) {
560561 if (IS_INTRA ((pCurMb - 1)->uiMbType)) {
561562 * (uint32_t*)uiBS[0][0] = 0x04040404;
@@ -576,7 +577,8 @@ void DeblockingBSCalc_neon (SWelsFuncPtrList* pFunc, SMB* pCurMb, uint8_t uiBS[2 · 14 unmodified lines
576577 #if defined(HAVE_NEON_AARCH64) && defined(SINGLE_REF_FRAME)
577578 void DeblockingBSCalc_AArch64_neon (SWelsFuncPtrList* pFunc, SMB* pCurMb, uint8_t uiBS[2][4][4], Mb_Type uiCurMbType,
578579 int32_t iMbStride, int32_t iLeftFlag, int32_t iTopFlag) {
579− DeblockingBSCalcEnc_AArch64_neon (pCurMb->pNonZeroCount, pCurMb->sMv, pCurMb->uiNeighborAvail, iMbStride, uiBS);
580+ DeblockingBSCalcEnc_AArch64_neon (pCurMb->pNonZeroCount, pCurMb->sMv,
581+ (iLeftFlag ? LEFT_MB_POS : 0) | (iTopFlag ? TOP_MB_POS : 0), iMbStride, uiBS);
580582 if (iLeftFlag) {
581583 if (IS_INTRA ((pCurMb - 1)->uiMbType)) {
582584 * (uint32_t*)uiBS[0][0] = 0x04040404;

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