History

Thread decoding deblocking update by setting pNzc array for neighboring MBs.

xiaotiansf committed 6 years ago

Commit 49ca1f71 parent 3f286436 files · +43 −34Browse files

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

Unified · Split

codec/decoder/core/src/deblocking.cpp+16−16
@@ -576,7 +576,7 @@ uint32_t DeblockingBsMarginalMBAvcbase (PDeblockingFilter pFilter, PDqLayer pCu · 575 unmodified lines
576 for (i = 0; i < 2; i++) {576 for (i = 0; i < 2; i++) {
577 uint8_t uiNzc = 0;577 uint8_t uiNzc = 0;
578 for (j = 0; uiNzc == 0 && j < 4; j++) {578 for (j = 0; uiNzc == 0 && j < 4; j++) {
579 uiNzc |= (pCurDqLayer->pNzc[iMbXy][* (pB8x8Idx + j)] | pCurDqLayer->pNzc[iNeighMb][* (pBn8x8Idx + j)]);579 uiNzc |= (GetPNzc (pCurDqLayer, iMbXy)[* (pB8x8Idx + j)] | GetPNzc (pCurDqLayer, iNeighMb)[* (pBn8x8Idx + j)]);
580 }580 }
581 if (uiNzc) {581 if (uiNzc) {
582 pBS[i << 1] = pBS[1 + (i << 1)] = 2;582 pBS[i << 1] = pBS[1 + (i << 1)] = 2;
@@ -595,10 +595,10 @@ uint32_t DeblockingBsMarginalMBAvcbase (PDeblockingFilter pFilter, PDqLayer pCu · 12 unmodified lines
595 for (i = 0; i < 2; i++) {595 for (i = 0; i < 2; i++) {
596 uint8_t uiNzc = 0;596 uint8_t uiNzc = 0;
597 for (j = 0; uiNzc == 0 && j < 4; j++) {597 for (j = 0; uiNzc == 0 && j < 4; j++) {
598 uiNzc |= pCurDqLayer->pNzc[iMbXy][* (pB8x8Idx + j)];598 uiNzc |= GetPNzc (pCurDqLayer, iMbXy)[* (pB8x8Idx + j)];
599 }599 }
600 for (j = 0; j < 2; j++) {600 for (j = 0; j < 2; j++) {
601 if (uiNzc | pCurDqLayer->pNzc[iNeighMb][*pBnIdx]) {601 if (uiNzc | GetPNzc (pCurDqLayer, iNeighMb)[*pBnIdx]) {
602 pBS[j + (i << 1)] = 2;602 pBS[j + (i << 1)] = 2;
603 } else {603 } else {
604 PPicture ref0, ref1;604 PPicture ref0, ref1;
@@ -616,10 +616,10 @@ uint32_t DeblockingBsMarginalMBAvcbase (PDeblockingFilter pFilter, PDqLayer pCu · 11 unmodified lines
616 for (i = 0; i < 2; i++) {616 for (i = 0; i < 2; i++) {
617 uint8_t uiNzc = 0;617 uint8_t uiNzc = 0;
618 for (j = 0; uiNzc == 0 && j < 4; j++) {618 for (j = 0; uiNzc == 0 && j < 4; j++) {
619 uiNzc |= pCurDqLayer->pNzc[iNeighMb][* (pBn8x8Idx + j)];619 uiNzc |= GetPNzc (pCurDqLayer, iNeighMb)[* (pBn8x8Idx + j)];
620 }620 }
621 for (j = 0; j < 2; j++) {621 for (j = 0; j < 2; j++) {
622 if (uiNzc | pCurDqLayer->pNzc[iMbXy][*pBIdx]) {622 if (uiNzc | GetPNzc (pCurDqLayer, iMbXy)[*pBIdx]) {
623 pBS[j + (i << 1)] = 2;623 pBS[j + (i << 1)] = 2;
624 } else {624 } else {
625 PPicture ref0, ref1;625 PPicture ref0, ref1;
@@ -637,7 +637,7 @@ uint32_t DeblockingBsMarginalMBAvcbase (PDeblockingFilter pFilter, PDqLayer pCu · 11 unmodified lines
637 } else {637 } else {
638 // only 4x4 transform638 // only 4x4 transform
639 for (i = 0; i < 4; i++) {639 for (i = 0; i < 4; i++) {
640 if (pCurDqLayer->pNzc[iMbXy][*pBIdx] | pCurDqLayer->pNzc[iNeighMb][*pBnIdx]) {640 if (GetPNzc (pCurDqLayer, iMbXy)[*pBIdx] | GetPNzc (pCurDqLayer, iNeighMb)[*pBnIdx]) {
641 pBS[i] = 2;641 pBS[i] = 2;
642 } else {642 } else {
643 PPicture ref0, ref1;643 PPicture ref0, ref1;
@@ -668,7 +668,7 @@ uint32_t DeblockingBSliceBsMarginalMBAvcbase (PDeblockingFilter pFilter, PDqLay · 24 unmodified lines
668 for (i = 0; i < 2; i++) {668 for (i = 0; i < 2; i++) {
669 uint8_t uiNzc = 0;669 uint8_t uiNzc = 0;
670 for (j = 0; uiNzc == 0 && j < 4; j++) {670 for (j = 0; uiNzc == 0 && j < 4; j++) {
671 uiNzc |= (pCurDqLayer->pNzc[iMbXy][* (pB8x8Idx + j)] | pCurDqLayer->pNzc[iNeighMb][* (pBn8x8Idx + j)]);671 uiNzc |= (GetPNzc (pCurDqLayer, iMbXy)[* (pB8x8Idx + j)] | GetPNzc (pCurDqLayer, iNeighMb)[* (pBn8x8Idx + j)]);
672 }672 }
673 if (uiNzc) {673 if (uiNzc) {
674 pBS[i << 1] = pBS[1 + (i << 1)] = 2;674 pBS[i << 1] = pBS[1 + (i << 1)] = 2;
@@ -693,10 +693,10 @@ uint32_t DeblockingBSliceBsMarginalMBAvcbase (PDeblockingFilter pFilter, PDqLay · 18 unmodified lines
693 for (i = 0; i < 2; i++) {693 for (i = 0; i < 2; i++) {
694 uint8_t uiNzc = 0;694 uint8_t uiNzc = 0;
695 for (j = 0; uiNzc == 0 && j < 4; j++) {695 for (j = 0; uiNzc == 0 && j < 4; j++) {
696 uiNzc |= pCurDqLayer->pNzc[iMbXy][* (pB8x8Idx + j)];696 uiNzc |= GetPNzc (pCurDqLayer, iMbXy)[* (pB8x8Idx + j)];
697 }697 }
698 for (j = 0; j < 2; j++) {698 for (j = 0; j < 2; j++) {
699 if (uiNzc | pCurDqLayer->pNzc[iNeighMb][*pBnIdx]) {699 if (uiNzc | GetPNzc (pCurDqLayer, iNeighMb)[*pBnIdx]) {
700 pBS[j + (i << 1)] = 2;700 pBS[j + (i << 1)] = 2;
701 } else {701 } else {
702 pBS[j + (i << 1)] = 1;702 pBS[j + (i << 1)] = 1;
@@ -720,10 +720,10 @@ uint32_t DeblockingBSliceBsMarginalMBAvcbase (PDeblockingFilter pFilter, PDqLay · 17 unmodified lines
720 for (i = 0; i < 2; i++) {720 for (i = 0; i < 2; i++) {
721 uint8_t uiNzc = 0;721 uint8_t uiNzc = 0;
722 for (j = 0; uiNzc == 0 && j < 4; j++) {722 for (j = 0; uiNzc == 0 && j < 4; j++) {
723 uiNzc |= pCurDqLayer->pNzc[iNeighMb][* (pBn8x8Idx + j)];723 uiNzc |= GetPNzc (pCurDqLayer, iNeighMb)[* (pBn8x8Idx + j)];
724 }724 }
725 for (j = 0; j < 2; j++) {725 for (j = 0; j < 2; j++) {
726 if (uiNzc | pCurDqLayer->pNzc[iMbXy][*pBIdx]) {726 if (uiNzc | GetPNzc (pCurDqLayer, iMbXy)[*pBIdx]) {
727 pBS[j + (i << 1)] = 2;727 pBS[j + (i << 1)] = 2;
728 } else {728 } else {
729 pBS[j + (i << 1)] = 1;729 pBS[j + (i << 1)] = 1;
@@ -745,7 +745,7 @@ uint32_t DeblockingBSliceBsMarginalMBAvcbase (PDeblockingFilter pFilter, PDqLay · 15 unmodified lines
745 } else {745 } else {
746 // only 4x4 transform746 // only 4x4 transform
747 for (i = 0; i < 4; i++) {747 for (i = 0; i < 4; i++) {
748 if (pCurDqLayer->pNzc[iMbXy][*pBIdx] | pCurDqLayer->pNzc[iNeighMb][*pBnIdx]) {748 if (GetPNzc (pCurDqLayer, iMbXy)[*pBIdx] | GetPNzc (pCurDqLayer, iNeighMb)[*pBnIdx]) {
749 pBS[i] = 2;749 pBS[i] = 2;
750 } else {750 } else {
751 pBS[i] = 1;751 pBS[i] = 1;
@@ -1286,16 +1286,16 @@ void WelsDeblockingMb (PDqLayer pCurDqLayer, PDeblockingFilter pFilter, int32_t · 534 unmodified lines
1286 } else {1286 } else {
1287 if (IS_INTER_16x16 (iCurMbType)) {1287 if (IS_INTER_16x16 (iCurMbType)) {
1288 if (!pCurDqLayer->pTransformSize8x8Flag[pCurDqLayer->iMbXyIndex]) {1288 if (!pCurDqLayer->pTransformSize8x8Flag[pCurDqLayer->iMbXyIndex]) {
1289 DeblockingBSInsideMBAvsbase (pCurDqLayer->pNzc[iMbXyIndex], nBS, 1);1289 DeblockingBSInsideMBAvsbase (GetPNzc (pCurDqLayer, iMbXyIndex), nBS, 1);
1290 } else {1290 } else {
1291 DeblockingBSInsideMBAvsbase8x8 (pCurDqLayer->pNzc[iMbXyIndex], nBS, 1);1291 DeblockingBSInsideMBAvsbase8x8 (GetPNzc (pCurDqLayer, iMbXyIndex), nBS, 1);
1292 }1292 }
1293 } else {1293 } else {
1294 1294
1295 if (bBSlice) {1295 if (bBSlice) {
1296 DeblockingBSliceBSInsideMBNormal (pFilter, pCurDqLayer, nBS, pCurDqLayer->pNzc[iMbXyIndex], iMbXyIndex);1296 DeblockingBSliceBSInsideMBNormal (pFilter, pCurDqLayer, nBS, GetPNzc (pCurDqLayer, iMbXyIndex), iMbXyIndex);
1297 } else {1297 } else {
1298 DeblockingBSInsideMBNormal (pFilter, pCurDqLayer, nBS, pCurDqLayer->pNzc[iMbXyIndex], iMbXyIndex);1298 DeblockingBSInsideMBNormal (pFilter, pCurDqLayer, nBS, GetPNzc (pCurDqLayer, iMbXyIndex), iMbXyIndex);
1299 }1299 }
1300 }1300 }
1301 }1301 }

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