⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 deblock_vert_lpf9.c

📁 VC++视频开发实例集锦(包括“远程视频监控”"语音识别系统"等13个经典例子)
💻 C
📖 第 1 页 / 共 2 页
字号:
		movq   mm7, mm5                     /* mm7 = psum right            0 1 2 3 4 5 6 7    */ 

		paddsw mm7, 72[ebx]                 /* mm7 += vv[4] right          0 1 2 3 4 5 6 7    */
		psllw  mm6, 1                       /* mm6 <<= 1                   0 1 2 3 4 5 6 7    */

		paddsw mm6, [eax]                  /* mm6 += p1 left              0 1 2 3 4 5 6 7    */
		psllw  mm7, 1                       /* mm7 <<= 1                   0 1 2 3 4 5 6 7    */

		paddsw mm7, 8[eax]                 /* mm7 += p1 right             0 1 2 3 4 5 6 7    */

		psubsw mm6, 16[ebx]                 /* mm6 -= vv[1] left           0 1 2 3 4 5 6 7    */

		psubsw mm7, 24[ebx]                 /* mm7 -= vv[1] right          0 1 2 3 4 5 6 7    */

		psubsw mm6, 112[ebx]                /* mm6 -= vv[7] left           0 1 2 3 4 5 6 7    */

		psubsw mm7, 120[ebx]                /* mm7 -= vv[7] right          0 1 2 3 4 5 6 7    */

		paddsw mm6, 128[ebx]                /* mm6 += vv[8] left           0 1 2 3 4 5 6 7    */
		add   ecx, stride                    /* ecx points at v[4*stride]   0 1 2 3 4 5 6 7    */     

		paddsw mm7, 136[ebx]                /* mm7 += vv[8] right          0 1 2 3 4 5 6 7    */


		paddsw mm4, 128[ebx]                /* mm4 += vv[5] left           0 1 2 3 4 5 6 7    */
		psrlw  mm6, 4                       /* mm6 >>= 4                   0 1 2 3 4 5 6 7    */

		paddsw mm5, 136[ebx]                /* mm5 += vv[5] right          0 1 2 3 4 5 6 7    */
		psrlw  mm7, 4                       /* mm7 >>= 4                   0 1 2 3 4 5 6 7    */

		psubsw mm4, 16[ebx]                 /* mm4 -= vv[1] left           0 1 2 3 4 5 6 7    */
		packuswb mm6, mm7                   /* pack mm7, mm6 to mm6        0 1 2 3 4 5 6 7    */

		psubsw mm5, 24[ebx]                 /* mm5 -= vv[1] right          0 1 2 3 4 5 6 7    */

		movq   mm0, mm4                     /* mm0 = psum left             0 1 2 3 4 5 6 7    */ 

		paddsw mm0, 80[ebx]                 /* mm0 += vv[5] left           0 1 2 3 4 5 6 7    */
		movq   mm1, mm5                     /* mm1 = psum right            0 1 2 3 4 5 6 7    */ 

		paddsw mm1, 88[ebx]                 /* mm1 += vv[5] right          0 1 2 3 4 5 6 7    */
		psllw  mm0, 1                       /* mm0 <<= 1                   0 1 2 3 4 5 6 7    */

		paddsw mm0, 16[eax]                /* mm0 += p2 left              0 1 2 3 4 5 6 7    */
		psllw  mm1, 1                       /* mm1 <<= 1                   0 1 2 3 4 5 6 7    */

		paddsw mm1, 24[eax]                /* mm1 += p2 right             0 1 2 3 4 5 6 7    */

		paddsw mm0, 16[ebx]                 /* mm0 += vv[1] left           0 1 2 3 4 5 6 7    */
		movq   [ecx], mm6                     /* v[4*stride] = mm6           0 1 2 3 4 5 6 7    */

		paddsw mm1, 24[ebx]                 /* mm1 += vv[1] right          0 1 2 3 4 5 6 7    */

		psubsw mm0, 32[ebx]                 /* mm0 -= vv[2] left           0 1 2 3 4 5 6 7    */

		psubsw mm1, 40[ebx]                 /* mm1 -= vv[2] right          0 1 2 3 4 5 6 7    */

		psubsw mm0, 128[ebx]                /* mm0 -= vv[8] left           0 1 2 3 4 5 6 7    */

		psubsw mm1, 136[ebx]                /* mm1 -= vv[8] right          0 1 2 3 4 5 6 7    */

		paddsw mm4, 16[eax]                /* mm4 += p2 left              0 1 2 3 4 5 6 7    */
		add   ecx, stride                   /* ecx points at v[5*stride]   0 1 2 3 4 5 6 7    */     

		paddsw mm5, 24[eax]                /* mm5 += p2 right             0 1 2 3 4 5 6 7    */

		psubsw mm4, 32[ebx]                 /* mm4 -= vv[2] left           0 1 2 3 4 5 6 7    */

		psubsw mm5, 40[ebx]                 /* mm5 -= vv[2] right          0 1 2 3 4 5 6 7    */

		movq   mm6, mm4                     /* mm6 = psum left             0 1 2 3 4 5 6 7    */ 

		paddsw mm6, 96[ebx]                 /* mm6 += vv[6] left           0 1 2 3 4 5 6 7    */
		movq   mm7, mm5                     /* mm7 = psum right            0 1 2 3 4 5 6 7    */ 

		paddsw mm7, 104[ebx]                /* mm7 += vv[6] right          0 1 2 3 4 5 6 7    */
		psllw  mm6, 1                       /* mm6 <<= 1                   0 1 2 3 4 5 6 7    */

		paddsw mm6, 32[ebx]                 /* mm6 += vv[2] left           0 1 2 3 4 5 6 7    */
		psllw  mm7, 1                       /* mm7 <<= 1                   0 1 2 3 4 5 6 7    */

		paddsw mm7, 40[ebx]                 /* mm7 += vv[2] right          0 1 2 3 4 5 6 7    */
		psrlw  mm0, 4                       /* mm0 >>= 4                   0 1 2 3 4 5 6 7    */

		psubsw mm6, 48[ebx]                 /* mm6 -= vv[3] left           0 1 2 3 4 5 6 7    */
		psrlw  mm1, 4                       /* mm1 >>= 4                   0 1 2 3 4 5 6 7    */

		psubsw mm7, 56[ebx]                 /* mm7 -= vv[3] right          0 1 2 3 4 5 6 7    */
		packuswb mm0, mm1                   /* pack mm1, mm0 to mm0        0 1 2 3 4 5 6 7    */

		movq   [ecx], mm0                     /* v[5*stride] = mm0           0 1 2 3 4 5 6 7    */

		paddsw mm4, 16[eax]                /* mm4 += p2 left              0 1 2 3 4 5 6 7    */
		psrlw  mm6, 4                       /* mm6 >>= 4                   0 1 2 3 4 5 6 7    */

		paddsw mm5, 24[eax]                /* mm5 += p2 right             0 1 2 3 4 5 6 7    */
		psrlw  mm7, 4                       /* mm7 >>= 4                   0 1 2 3 4 5 6 7    */

		psubsw mm4, 48[ebx]                 /* mm4 -= vv[3] left           0 1 2 3 4 5 6 7    */
		add   ecx, stride                    /* ecx points at v[6*stride]   0 1 2 3 4 5 6 7    */     

		psubsw mm5, 56[ebx]                 /* mm5 -= vv[3] right           0 1 2 3 4 5 6 7    */

		movq   mm0, mm4                     /* mm0 = psum left             0 1 2 3 4 5 6 7    */ 

		paddsw mm0, 112[ebx]                /* mm0 += vv[7] left           0 1 2 3 4 5 6 7    */
		movq   mm1, mm5                     /* mm1 = psum right            0 1 2 3 4 5 6 7    */ 

		paddsw mm1, 120[ebx]                /* mm1 += vv[7] right          0 1 2 3 4 5 6 7    */
		psllw  mm0, 1                       /* mm0 <<= 1                   0 1 2 3 4 5 6 7    */

		paddsw mm0, 48[ebx]                 /* mm0 += vv[3] left           0 1 2 3 4 5 6 7    */
		psllw  mm1, 1                       /* mm1 <<= 1                   0 1 2 3 4 5 6 7    */

		paddsw mm1, 56[ebx]                 /* mm1 += vv[3] right          0 1 2 3 4 5 6 7    */
		packuswb mm6, mm7                   /* pack mm7, mm6 to mm6        0 1 2 3 4 5 6 7    */

		psubsw mm0, 64[ebx]                 /* mm0 -= vv[4] left           0 1 2 3 4 5 6 7    */

		psubsw mm1, 72[ebx]                 /* mm1 -= vv[4] right          0 1 2 3 4 5 6 7    */
		psrlw  mm0, 4                       /* mm0 >>= 4                   0 1 2 3 4 5 6 7    */

		movq   [ecx], mm6                     /* v[6*stride] = mm6           0 1 2 3 4 5 6 7    */

		paddsw mm4, 16[eax]                /* mm4 += p2 left               0 1 2 3 4 5 6 7    */

		paddsw mm5, 24[eax]                /* mm5 += p2 right              0 1 2 3 4 5 6 7    */
		add    ecx, stride                    /* ecx points at v[7*stride]   0 1 2 3 4 5 6 7    */     

		psubsw mm4, 64[ebx]                 /* mm4 -= vv[4] left            0 1 2 3 4 5 6 7    */
		psrlw  mm1, 4                       /* mm1 >>= 4                   0 1 2 3 4 5 6 7    */

		psubsw mm5, 72[ebx]                 /* mm5 -= vv[4] right           0 1 2 3 4 5 6 7    */

		movq   mm6, mm4                     /* mm6 = psum left             0 1 2 3 4 5 6 7    */ 

		paddsw mm6, 128[ebx]                /* mm6 += vv[8] left           0 1 2 3 4 5 6 7    */
		movq   mm7, mm5                     /* mm7 = psum right            0 1 2 3 4 5 6 7    */ 

		paddsw mm7, 136[ebx]                /* mm7 += vv[8] right          0 1 2 3 4 5 6 7    */
		psllw  mm6, 1                       /* mm6 <<= 1                   0 1 2 3 4 5 6 7    */

		paddsw mm6, 64[ebx]                 /* mm6 += vv[4] left           0 1 2 3 4 5 6 7    */
		psllw  mm7, 1                       /* mm7 <<= 1                   0 1 2 3 4 5 6 7    */

		paddsw mm7, 72[ebx]                 /* mm7 += vv[4] right          0 1 2 3 4 5 6 7    */
		packuswb mm0, mm1                   /* pack mm1, mm0 to mm0        0 1 2 3 4 5 6 7    */

		psubsw mm6, 80[ebx]                 /* mm6 -= vv[5] left           0 1 2 3 4 5 6 7    */

		psubsw mm7, 88[ebx]                 /* mm7 -= vv[5] right          0 1 2 3 4 5 6 7    */
		psrlw  mm6, 4                       /* mm6 >>= 4                   0 1 2 3 4 5 6 7    */

		movq   [ecx], mm0                   /* v[7*stride] = mm0           0 1 2 3 4 5 6 7    */
		psrlw  mm7, 4                       /* mm7 >>= 4                   0 1 2 3 4 5 6 7    */

		packuswb mm6, mm7                   /* pack mm7, mm6 to mm6        0 1 2 3 4 5 6 7    */

		add   ecx, stride                   /* ecx points at v[8*stride]   0 1 2 3 4 5 6 7    */     

		nop                                 /*                             0 1 2 3 4 5 6 7    */     

		movq   [ecx], mm6                   /* v[8*stride] = mm6           0 1 2 3 4 5 6 7    */


		pop ecx
		pop ebx
		pop eax


	};
	
	#ifdef PP_SELF_CHECK

	for (k=0; k<8; k++) { /* loop top->bottom */
		for (j=0; j<8; j++) { /* loop left->right */
			vv = &(v[(k+1)*stride + j]);
			if (*vv != selfcheck[j+8*k]) {
				printf("ERROR: problem with vertical LPF9 filter in row %d\n", k+1);
			}
		}
	}
	#endif

}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -