History

merge common part of wels_common_basis

huili2 committed 11 years ago

Commit 403cc571 parent b66703112 files · +97 −155Browse files

Showing the changes to test/decoder/DecUT_PredMv.cpp (1 of 12 files). Show all

Unified · Split

test/decoder/DecUT_PredMv.cpp+30−20
@@ -419,7 +419,7 @@ int32_t AllocLayerData (PDqLayer pDqLayer) { · 418 unmodified lines
419419 if (pDqLayer->pSliceIdc == NULL)
420420 return 1;
421421
422− pDqLayer->pMbType = (int8_t*) WelsMallocz (pDqLayer->iMbWidth * pDqLayer->iMbHeight * sizeof (int8_t),
422+ pDqLayer->pMbType = (int16_t*) WelsMallocz (pDqLayer->iMbWidth * pDqLayer->iMbHeight * sizeof (int16_t),
423423 "pDqLayer->pMbType");
424424 if (pDqLayer->pMbType == NULL)
425425 return 1;
@@ -476,7 +476,7 @@ void InitRandomLayerSliceIdc (PDqLayer pDqLayer) { · 50 unmodified lines
476476
477477 void InitRandomLayerMbType (PDqLayer pDqLayer) {
478478 for (int32_t i = 0; i < pDqLayer->iMbWidth * pDqLayer->iMbHeight; ++i) {
479− pDqLayer->pMbType[i] = (rand() & 0x0f) + 1; //1 ~ 16
479+ pDqLayer->pMbType[i] = 1 << (rand() % 11); //2^(1 ~ 10)
480480 }
481481 }
482482
@@ -515,6 +515,7 @@ TEST (PredMvTest, PredSkipMvFromNeighbor) { · 32 unmodified lines
515515 bool bOK = true;
516516 SDqLayer sDqLayer;
517517 int16_t iAncMvp[2], iWelsMvp[2];
518+ int i;
518519
519520 memset (&sDqLayer, 0, sizeof (SDqLayer));
520521 //Assume the input data as 352x288 size
@@ -537,6 +538,7 @@ TEST (PredMvTest, PredSkipMvFromNeighbor) { · 16 unmodified lines
537538 #define RIGHT_TOP_MB_IDX (sDqLayer.iMbXyIndex - sDqLayer.iMbWidth + 1)
538539 #define RIGHT_TOP_MB_BLK 12
539540
541+ int32_t iTotalMbNum = sDqLayer.iMbHeight * sDqLayer.iMbWidth;
540542 //CASE 1: test MB [0,0], expect mvp = (0,0)
541543 sDqLayer.iMbX = 0;
542544 sDqLayer.iMbY = 0;
@@ -560,18 +562,20 @@ TEST (PredMvTest, PredSkipMvFromNeighbor) { · 17 unmodified lines
560562 sDqLayer.iMbY = rand() % (sDqLayer.iMbHeight - 1) + 1; //not equal to 0
561563 sDqLayer.iMbXyIndex = sDqLayer.iMbY * sDqLayer.iMbWidth + sDqLayer.iMbX;
562564 //CASE 4.1.1: same slice_idc, assume = 0
563− memset (sDqLayer.pSliceIdc, 0, sDqLayer.iMbWidth * sDqLayer.iMbHeight * sizeof (int32_t));
565+ memset (sDqLayer.pSliceIdc, 0, iTotalMbNum * sizeof (int32_t));
564566 //CASE 4.1.1.1: ALL P modes
565− memset (sDqLayer.pMbType, MB_TYPE_16x16, sDqLayer.iMbWidth * sDqLayer.iMbHeight * sizeof (int8_t));
567+ for (i = 0; i < iTotalMbNum; ++i) {
568+ sDqLayer.pMbType[i] = MB_TYPE_16x16;
569+ }
566570 //CASE 4.1.1.1.1: ref_idx = 0, left MV = 0, top MV != 0, expect mvp = (0,0)
567− memset (sDqLayer.pRefIndex[0], 0, sDqLayer.iMbWidth * sDqLayer.iMbHeight * MB_BLOCK4x4_NUM * sizeof (int8_t));
571+ memset (sDqLayer.pRefIndex[0], 0, iTotalMbNum * MB_BLOCK4x4_NUM * sizeof (int8_t));
568572 InitRandomLayerMvData (&sDqLayer); //reset Mv data
569573 sDqLayer.pMv[0][LEFT_MB_IDX][LEFT_MB_BLK][0] = sDqLayer.pMv[0][LEFT_MB_IDX][LEFT_MB_BLK][1] = 0; //left_mv = 0
570574 sDqLayer.pMv[0][ TOP_MB_IDX][ TOP_MB_BLK][0] = sDqLayer.pMv[0][ TOP_MB_IDX][ TOP_MB_BLK][1] = 1; //top_mv != 0
571575 iAncMvp[0] = iAncMvp[1] = 0; //expect anchor result to 0
572576 TEST_SKIP_MV_PRED;
573577 //CASE 4.1.1.1.2: ref_idx = 0, left MV != 0, top MV = 0, expect mvp = (0,0)
574− memset (sDqLayer.pRefIndex[0], 0, sDqLayer.iMbWidth * sDqLayer.iMbHeight * MB_BLOCK4x4_NUM * sizeof (int8_t));
578+ memset (sDqLayer.pRefIndex[0], 0, iTotalMbNum * MB_BLOCK4x4_NUM * sizeof (int8_t));
575579 InitRandomLayerMvData (&sDqLayer); //reset Mv data
576580 sDqLayer.pMv[0][LEFT_MB_IDX][LEFT_MB_BLK][0] = sDqLayer.pMv[0][LEFT_MB_IDX][LEFT_MB_BLK][1] = 1; //left_mv != 0
577581 sDqLayer.pMv[0][ TOP_MB_IDX][ TOP_MB_BLK][0] = sDqLayer.pMv[0][ TOP_MB_IDX][ TOP_MB_BLK][1] = 0; //top_mv = 0
@@ -593,16 +597,19 @@ TEST (PredMvTest, PredSkipMvFromNeighbor) { · 15 unmodified lines
593597 iAncMvp[1] = sDqLayer.pMv[0][LEFT_MB_IDX][LEFT_MB_BLK][1];
594598 TEST_SKIP_MV_PRED;
595599 //CASE 4.1.1.2: All I
596− memset (sDqLayer.pMbType, MB_TYPE_INTRA16x16, sDqLayer.iMbWidth * sDqLayer.iMbHeight * sizeof (int8_t));
600+ for (i = 0; i < iTotalMbNum; ++i) {
601+ sDqLayer.pMbType[i] = MB_TYPE_INTRA16x16;
602+ }
597603 //CASE 4.1.1.2.1: left P, expect mvp = left mv
598604 sDqLayer.pMbType[LEFT_MB_IDX] = MB_TYPE_16x16; //left P
599605 iAncMvp[0] = sDqLayer.pMv[0][LEFT_MB_IDX][LEFT_MB_BLK][0];
600606 iAncMvp[1] = sDqLayer.pMv[0][LEFT_MB_IDX][LEFT_MB_BLK][1];
601607 TEST_SKIP_MV_PRED;
602608 //CASE 4.1.1.3: only top P, top ref_idx = 0, expect mvp = top mv
603− memset (sDqLayer.pMbType, MB_TYPE_INTRA16x16, sDqLayer.iMbWidth * sDqLayer.iMbHeight * sizeof (int8_t)); // All I MB
604− memset (sDqLayer.pRefIndex[0], 1, sDqLayer.iMbWidth * sDqLayer.iMbHeight * MB_BLOCK4x4_NUM * sizeof (
605− int8_t)); // All ref_idx = 1
609+ for (i = 0; i < iTotalMbNum; ++i) { // All I MB
610+ sDqLayer.pMbType[i] = MB_TYPE_INTRA16x16;
611+ }
612+ memset (sDqLayer.pRefIndex[0], 1, iTotalMbNum * MB_BLOCK4x4_NUM * sizeof (int8_t)); // All ref_idx = 1
606613 sDqLayer.pMbType[TOP_MB_IDX] = MB_TYPE_16x16; //top P
607614 sDqLayer.pRefIndex[0][TOP_MB_IDX][TOP_MB_BLK] = 0; //top ref_idx = 0
608615 iAncMvp[0] = sDqLayer.pMv[0][TOP_MB_IDX][TOP_MB_BLK][0];
@@ -612,9 +619,10 @@ TEST (PredMvTest, PredSkipMvFromNeighbor) { · 3 unmodified lines
612619 sDqLayer.iMbX = (rand() % (sDqLayer.iMbWidth - 2)) + 1; //1 ~ (mb_width - 2)
613620 sDqLayer.iMbY = (rand() % (sDqLayer.iMbHeight - 2)) + 1; //1 ~ (mb_height - 2)
614621 sDqLayer.iMbXyIndex = sDqLayer.iMbY * sDqLayer.iMbWidth + sDqLayer.iMbX;
615− memset (sDqLayer.pMbType, MB_TYPE_INTRA16x16, sDqLayer.iMbWidth * sDqLayer.iMbHeight * sizeof (int8_t)); // All I MB
616− memset (sDqLayer.pRefIndex[0], 1, sDqLayer.iMbWidth * sDqLayer.iMbHeight * MB_BLOCK4x4_NUM * sizeof (
617− int8_t)); // All ref_idx = 1
622+ for (i = 0; i < iTotalMbNum; ++i) { // All I MB
623+ sDqLayer.pMbType[i] = MB_TYPE_INTRA16x16;
624+ }
625+ memset (sDqLayer.pRefIndex[0], 1, iTotalMbNum * MB_BLOCK4x4_NUM * sizeof (int8_t)); // All ref_idx = 1
618626 sDqLayer.pMbType[LEFT_TOP_MB_IDX] = MB_TYPE_16x16; //top P
619627 sDqLayer.pRefIndex[0][LEFT_TOP_MB_IDX][LEFT_TOP_MB_BLK] = 0; //top ref_idx = 0
620628 iAncMvp[0] = iAncMvp[1] = 0; //expect anchor result to 0
@@ -623,18 +631,20 @@ TEST (PredMvTest, PredSkipMvFromNeighbor) { · 2 unmodified lines
623631 sDqLayer.iMbX = (rand() % (sDqLayer.iMbWidth - 2)) + 1; //1 ~ (mb_width - 2)
624632 sDqLayer.iMbY = (rand() % (sDqLayer.iMbHeight - 2)) + 1; //1 ~ (mb_height - 2)
625633 sDqLayer.iMbXyIndex = sDqLayer.iMbY * sDqLayer.iMbWidth + sDqLayer.iMbX;
626− memset (sDqLayer.pMbType, MB_TYPE_INTRA16x16, sDqLayer.iMbWidth * sDqLayer.iMbHeight * sizeof (int8_t)); // All I MB
627− memset (sDqLayer.pRefIndex[0], 1, sDqLayer.iMbWidth * sDqLayer.iMbHeight * MB_BLOCK4x4_NUM * sizeof (
628− int8_t)); // All ref_idx = 1
634+ for (i = 0; i < iTotalMbNum; ++i) { // All I MB
635+ sDqLayer.pMbType[i] = MB_TYPE_INTRA16x16;
636+ }
637+ memset (sDqLayer.pRefIndex[0], 1, iTotalMbNum * MB_BLOCK4x4_NUM * sizeof (int8_t)); // All ref_idx = 1
629638 sDqLayer.pMbType[RIGHT_TOP_MB_IDX] = MB_TYPE_16x16; //top P
630639 sDqLayer.pRefIndex[0][RIGHT_TOP_MB_IDX][RIGHT_TOP_MB_BLK] = 0; //top ref_idx = 0
631640 iAncMvp[0] = sDqLayer.pMv[0][RIGHT_TOP_MB_IDX][RIGHT_TOP_MB_BLK][0];
632641 iAncMvp[1] = sDqLayer.pMv[0][RIGHT_TOP_MB_IDX][RIGHT_TOP_MB_BLK][1];
633642 TEST_SKIP_MV_PRED;
634643 //CASE 4.1.2: different neighbor slice idc for all P and ref_idx = 0, expect mvp = 0
635− memset (sDqLayer.pMbType, MB_TYPE_16x16, sDqLayer.iMbWidth * sDqLayer.iMbHeight * sizeof (int8_t)); // All I MB
636− memset (sDqLayer.pRefIndex[0], 0, sDqLayer.iMbWidth * sDqLayer.iMbHeight * MB_BLOCK4x4_NUM * sizeof (
637− int8_t)); // All ref_idx = 1
644+ for (i = 0; i < iTotalMbNum; ++i) { // All P MB
645+ sDqLayer.pMbType[i] = MB_TYPE_16x16;
646+ }
647+ memset (sDqLayer.pRefIndex[0], 0, iTotalMbNum * MB_BLOCK4x4_NUM * sizeof (int8_t)); // All ref_idx = 1
638648 sDqLayer.iMbX = (rand() % (sDqLayer.iMbWidth - 2)) + 1; //1 ~ (mb_width - 2)
639649 sDqLayer.iMbY = (rand() % (sDqLayer.iMbHeight - 2)) + 1; //1 ~ (mb_height - 2)
640650 sDqLayer.iMbXyIndex = sDqLayer.iMbY * sDqLayer.iMbWidth + sDqLayer.iMbX;
@@ -649,7 +659,7 @@ TEST (PredMvTest, PredSkipMvFromNeighbor) { · 8 unmodified lines
649659 //add new specific tests here
650660
651661 //normal tests
652− int32_t i = 0;
662+ i = 0;
653663 while (i++ < kiRandTime) {
654664 InitRandomLayerData (&sDqLayer); //init MV data, as it would not affect the following logic test
655665 AnchorPredPSkipMvFromNeighbor (&sDqLayer, iAncMvp);

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