History

[UT] Test VAA routines with a wider variety of resolutions

Test even and odd multiples of 32 width because some AVX2 routines have conditional logic based on that.

Sindre Aamås committed 10 years ago

Commit 93db6511 parent 57fc3e91 file · +109 −99Browse files

Showing the changes to test/processing/ProcessUT_VaaCalc.cpp (1 of 1 file). Show all

Unified · Split

test/processing/ProcessUT_VaaCalc.cpp+109−99
@@ -590,20 +590,22 @@ TEST (VAACalcFuncTest, func) { \ · 589 unmodified lines
590590 int32_t pic_height_a; \
591591 int32_t pic_stride_a; \
592592 int32_t psadframe_a; \
593− pic_width_c = pic_width_a = 320-16; \
594− pic_height_c = pic_height_a = 320; \
595− pic_stride_c = pic_stride_a = 320; \
596− psadframe_c = psadframe_a = 0; \
597− for (int j=0; j<BUFFER_SIZE; j++) { \
598− cur_data_c[j] = cur_data_a[j] = (rand()%256); \
599− ref_data_c[j] = ref_data_a[j] = (rand()%256); \
600− psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
593+ for (int i=0; i<4; i++) { \
594+ pic_width_c = pic_width_a = 320-16*i; \
595+ pic_height_c = pic_height_a = 320; \
596+ pic_stride_c = pic_stride_a = 320; \
597+ psadframe_c = psadframe_a = 0; \
598+ for (int j=0; j<BUFFER_SIZE; j++) { \
599+ cur_data_c[j] = cur_data_a[j] = (rand()%256); \
600+ ref_data_c[j] = ref_data_a[j] = (rand()%256); \
601+ psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
602+ } \
603+ VAACalcSad_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c); \
604+ func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a); \
605+ ASSERT_EQ (psadframe_a, psadframe_c); \
606+ for (int j=0; j<(BUFFER_SIZE/64); j++) \
607+ ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \
601608 } \
602− VAACalcSad_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c); \
603− func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a); \
604− ASSERT_EQ (psadframe_a, psadframe_c); \
605− for (int j=0; j<(BUFFER_SIZE/64); j++) \
606− ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \
607609 }
608610
609611
@@ -633,24 +635,26 @@ TEST (VAACalcFuncTest, func) { \ · 23 unmodified lines
633635 int32_t pic_height_a; \
634636 int32_t pic_stride_a; \
635637 int32_t psadframe_a; \
636− pic_width_c = pic_width_a = 320-16; \
637− pic_height_c = pic_height_a = 320; \
638− pic_stride_c = pic_stride_a = 320; \
639− psadframe_c = psadframe_a = 0; \
640− for (int j=0; j<BUFFER_SIZE; j++) { \
641− cur_data_c[j] = cur_data_a[j] = (rand()%256); \
642− ref_data_c[j] = ref_data_a[j] = (rand()%256); \
643− psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
644− psd8x8_c[j%(BUFFER_SIZE/64)] = psd8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
645− pmad8x8_c[j%(BUFFER_SIZE/64)] = pmad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
646− } \
647− VAACalcSadBgd_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c, psd8x8_c, pmad8x8_c); \
648− func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a, psd8x8_a, pmad8x8_a); \
649− ASSERT_EQ (psadframe_a, psadframe_c); \
650− for (int j=0; j<(BUFFER_SIZE/64); j++) {\
651− ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \
652− ASSERT_EQ (psd8x8_a[j], psd8x8_c[j]); \
653− ASSERT_EQ (pmad8x8_a[j], pmad8x8_c[j]); \
638+ for (int i=0; i<4; i++) { \
639+ pic_width_c = pic_width_a = 320-16*i; \
640+ pic_height_c = pic_height_a = 320; \
641+ pic_stride_c = pic_stride_a = 320; \
642+ psadframe_c = psadframe_a = 0; \
643+ for (int j=0; j<BUFFER_SIZE; j++) { \
644+ cur_data_c[j] = cur_data_a[j] = (rand()%256); \
645+ ref_data_c[j] = ref_data_a[j] = (rand()%256); \
646+ psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
647+ psd8x8_c[j%(BUFFER_SIZE/64)] = psd8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
648+ pmad8x8_c[j%(BUFFER_SIZE/64)] = pmad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
649+ } \
650+ VAACalcSadBgd_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c, psd8x8_c, pmad8x8_c); \
651+ func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a, psd8x8_a, pmad8x8_a); \
652+ ASSERT_EQ (psadframe_a, psadframe_c); \
653+ for (int j=0; j<(BUFFER_SIZE/64); j++) {\
654+ ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \
655+ ASSERT_EQ (psd8x8_a[j], psd8x8_c[j]); \
656+ ASSERT_EQ (pmad8x8_a[j], pmad8x8_c[j]); \
657+ } \
654658 } \
655659 }
656660
@@ -682,28 +686,30 @@ TEST (VAACalcFuncTest, func) { \ · 25 unmodified lines
682686 int32_t pic_height_a; \
683687 int32_t pic_stride_a; \
684688 int32_t psadframe_a; \
685− pic_width_c = pic_width_a = 320-16; \
686− pic_height_c = pic_height_a = 320; \
687− pic_stride_c = pic_stride_a = 320; \
688− psadframe_c = psadframe_a = 0; \
689− for (int j=0; j<BUFFER_SIZE; j++) { \
690− cur_data_c[j] = cur_data_a[j] = (rand()%256); \
691− ref_data_c[j] = ref_data_a[j] = (rand()%256); \
692− psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
693− psum16x16_c[j%(BUFFER_SIZE/256)] = psum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \
694− psqsum16x16_c[j%(BUFFER_SIZE/256)] = psqsum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \
695− psqdiff16x16_c[j%(BUFFER_SIZE/256)] = psqdiff16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \
696− } \
697− VAACalcSadSsd_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c, psum16x16_c, psqsum16x16_c, psqdiff16x16_c); \
698− func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a, psum16x16_a, psqsum16x16_a, psqdiff16x16_a); \
699− ASSERT_EQ (psadframe_a, psadframe_c); \
700− for (int j=0; j<(BUFFER_SIZE/64); j++) {\
701− ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \
702− } \
703− for (int j=0; j<(BUFFER_SIZE/256); j++) {\
704− ASSERT_EQ (psum16x16_a[j], psum16x16_c[j]); \
705− ASSERT_EQ (psqsum16x16_a[j], psqsum16x16_c[j]); \
706− ASSERT_EQ (psqdiff16x16_a[j], psqdiff16x16_c[j]); \
689+ for (int i=0; i<4; i++) { \
690+ pic_width_c = pic_width_a = 320-16*i; \
691+ pic_height_c = pic_height_a = 320; \
692+ pic_stride_c = pic_stride_a = 320; \
693+ psadframe_c = psadframe_a = 0; \
694+ for (int j=0; j<BUFFER_SIZE; j++) { \
695+ cur_data_c[j] = cur_data_a[j] = (rand()%256); \
696+ ref_data_c[j] = ref_data_a[j] = (rand()%256); \
697+ psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
698+ psum16x16_c[j%(BUFFER_SIZE/256)] = psum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \
699+ psqsum16x16_c[j%(BUFFER_SIZE/256)] = psqsum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \
700+ psqdiff16x16_c[j%(BUFFER_SIZE/256)] = psqdiff16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \
701+ } \
702+ VAACalcSadSsd_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c, psum16x16_c, psqsum16x16_c, psqdiff16x16_c); \
703+ func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a, psum16x16_a, psqsum16x16_a, psqdiff16x16_a); \
704+ ASSERT_EQ (psadframe_a, psadframe_c); \
705+ for (int j=0; j<(BUFFER_SIZE/64); j++) {\
706+ ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \
707+ } \
708+ for (int j=0; j<(BUFFER_SIZE/256); j++) {\
709+ ASSERT_EQ (psum16x16_a[j], psum16x16_c[j]); \
710+ ASSERT_EQ (psqsum16x16_a[j], psqsum16x16_c[j]); \
711+ ASSERT_EQ (psqdiff16x16_a[j], psqdiff16x16_c[j]); \
712+ } \
707713 } \
708714 }
709715
@@ -733,26 +739,28 @@ TEST (VAACalcFuncTest, func) { \ · 23 unmodified lines
733739 int32_t pic_height_a; \
734740 int32_t pic_stride_a; \
735741 int32_t psadframe_a; \
736− pic_width_c = pic_width_a = 320-16; \
737− pic_height_c = pic_height_a = 320; \
738− pic_stride_c = pic_stride_a = 320; \
739− psadframe_c = psadframe_a = 0; \
740− for (int j=0; j<BUFFER_SIZE; j++) { \
741− cur_data_c[j] = cur_data_a[j] = (rand()%256); \
742− ref_data_c[j] = ref_data_a[j] = (rand()%256); \
743− psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
744− psum16x16_c[j%(BUFFER_SIZE/256)] = psum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \
745− psqsum16x16_c[j%(BUFFER_SIZE/256)] = psqsum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \
746− } \
747− VAACalcSadVar_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c, psum16x16_c, psqsum16x16_c); \
748− func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a, psum16x16_a, psqsum16x16_a); \
749− ASSERT_EQ (psadframe_a, psadframe_c); \
750− for (int j=0; j<(BUFFER_SIZE/64); j++) {\
751− ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \
752− } \
753− for (int j=0; j<(BUFFER_SIZE/256); j++) {\
754− ASSERT_EQ (psum16x16_a[j], psum16x16_c[j]); \
755− ASSERT_EQ (psqsum16x16_a[j], psqsum16x16_c[j]); \
742+ for (int i=0; i<4; i++) { \
743+ pic_width_c = pic_width_a = 320-16*i; \
744+ pic_height_c = pic_height_a = 320; \
745+ pic_stride_c = pic_stride_a = 320; \
746+ psadframe_c = psadframe_a = 0; \
747+ for (int j=0; j<BUFFER_SIZE; j++) { \
748+ cur_data_c[j] = cur_data_a[j] = (rand()%256); \
749+ ref_data_c[j] = ref_data_a[j] = (rand()%256); \
750+ psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
751+ psum16x16_c[j%(BUFFER_SIZE/256)] = psum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \
752+ psqsum16x16_c[j%(BUFFER_SIZE/256)] = psqsum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \
753+ } \
754+ VAACalcSadVar_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c, psum16x16_c, psqsum16x16_c); \
755+ func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a, psum16x16_a, psqsum16x16_a); \
756+ ASSERT_EQ (psadframe_a, psadframe_c); \
757+ for (int j=0; j<(BUFFER_SIZE/64); j++) {\
758+ ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \
759+ } \
760+ for (int j=0; j<(BUFFER_SIZE/256); j++) {\
761+ ASSERT_EQ (psum16x16_a[j], psum16x16_c[j]); \
762+ ASSERT_EQ (psqsum16x16_a[j], psqsum16x16_c[j]); \
763+ } \
756764 } \
757765 }
758766
@@ -788,32 +796,34 @@ TEST (VAACalcFuncTest, func) { \ · 29 unmodified lines
788796 int32_t pic_height_a; \
789797 int32_t pic_stride_a; \
790798 int32_t psadframe_a; \
791− pic_width_c = pic_width_a = 320-16; \
792− pic_height_c = pic_height_a = 320; \
793− pic_stride_c = pic_stride_a = 320; \
794− psadframe_c = psadframe_a = 0; \
795− for (int j=0; j<BUFFER_SIZE; j++) { \
796− cur_data_c[j] = cur_data_a[j] = (rand()%256); \
797− ref_data_c[j] = ref_data_a[j] = (rand()%256); \
798− psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
799− psd8x8_c[j%(BUFFER_SIZE/64)] = psd8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
800− pmad8x8_c[j%(BUFFER_SIZE/64)] = pmad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
801− psum16x16_c[j%(BUFFER_SIZE/256)] = psum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \
802− psqsum16x16_c[j%(BUFFER_SIZE/256)] = psqsum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \
803− psqdiff16x16_c[j%(BUFFER_SIZE/256)] = psqdiff16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \
804− } \
805− VAACalcSadSsdBgd_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c, psum16x16_c, psqsum16x16_c, psqdiff16x16_c, psd8x8_c, pmad8x8_c); \
806− func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a, psum16x16_a, psqsum16x16_a, psqdiff16x16_a, psd8x8_a, pmad8x8_a); \
807− ASSERT_EQ (psadframe_a, psadframe_c); \
808− for (int j=0; j<(BUFFER_SIZE/64); j++) {\
809− ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \
810− ASSERT_EQ (psd8x8_a[j], psd8x8_c[j]); \
811− ASSERT_EQ (pmad8x8_a[j], pmad8x8_c[j]); \
812− } \
813− for (int j=0; j<(BUFFER_SIZE/256); j++) {\
814− ASSERT_EQ (psum16x16_a[j], psum16x16_c[j]); \
815− ASSERT_EQ (psqsum16x16_a[j], psqsum16x16_c[j]); \
816− ASSERT_EQ (psqdiff16x16_a[j], psqdiff16x16_c[j]); \
799+ for (int i=0; i<4; i++) { \
800+ pic_width_c = pic_width_a = 320-16*i; \
801+ pic_height_c = pic_height_a = 320; \
802+ pic_stride_c = pic_stride_a = 320; \
803+ psadframe_c = psadframe_a = 0; \
804+ for (int j=0; j<BUFFER_SIZE; j++) { \
805+ cur_data_c[j] = cur_data_a[j] = (rand()%256); \
806+ ref_data_c[j] = ref_data_a[j] = (rand()%256); \
807+ psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
808+ psd8x8_c[j%(BUFFER_SIZE/64)] = psd8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
809+ pmad8x8_c[j%(BUFFER_SIZE/64)] = pmad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \
810+ psum16x16_c[j%(BUFFER_SIZE/256)] = psum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \
811+ psqsum16x16_c[j%(BUFFER_SIZE/256)] = psqsum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \
812+ psqdiff16x16_c[j%(BUFFER_SIZE/256)] = psqdiff16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \
813+ } \
814+ VAACalcSadSsdBgd_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c, psum16x16_c, psqsum16x16_c, psqdiff16x16_c, psd8x8_c, pmad8x8_c); \
815+ func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a, psum16x16_a, psqsum16x16_a, psqdiff16x16_a, psd8x8_a, pmad8x8_a); \
816+ ASSERT_EQ (psadframe_a, psadframe_c); \
817+ for (int j=0; j<(BUFFER_SIZE/64); j++) {\
818+ ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \
819+ ASSERT_EQ (psd8x8_a[j], psd8x8_c[j]); \
820+ ASSERT_EQ (pmad8x8_a[j], pmad8x8_c[j]); \
821+ } \
822+ for (int j=0; j<(BUFFER_SIZE/256); j++) {\
823+ ASSERT_EQ (psum16x16_a[j], psum16x16_c[j]); \
824+ ASSERT_EQ (psqsum16x16_a[j], psqsum16x16_c[j]); \
825+ ASSERT_EQ (psqdiff16x16_a[j], psqdiff16x16_c[j]); \
826+ } \
817827 } \
818828 }
819829

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