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

📄 vlx_test.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
0005b0  00000a78          DCB      "x\n\0\0"
                  |L1.1460|
0005b4  20656854          DCB      "The "
0005b8  74636970          DCB      "pict"
0005bc  20657275          DCB      "ure "
0005c0  74207369          DCB      "is t"
0005c4  72206568          DCB      "he r"
0005c8  6d496665          DCB      "efIm"
0005cc  28656761          DCB      "age("
0005d0  6465636d          DCB      "mced"
0005d4  72202620          DCB      " & r"
0005d8  6e6f6365          DCB      "econ"
0005dc  50202e29          DCB      "). P"
0005e0  73736572          DCB      "ress"
0005e4  796e6120          DCB      " any"
0005e8  79656b20          DCB      " key"
0005ec  00000a21          DCB      "!\n\0\0"
                  |L1.1520|
0005f0  71746364          DCB      "dctq"
0005f4  66656f43          DCB      "Coef"
0005f8  64612066          DCB      "f ad"
0005fc  203a7264          DCB      "dr: "
000600  2c78255b          DCB      "[%x,"
000604  00000000          DCB      "\0\0\0\0"
                  |L1.1544|
000608  666e6971          DCB      "qinf"
00060c  2978256f          DCB      "o%x)"
000610  0000000a          DCB      "\n\0\0\0"
                  |L1.1556|
000614  e2888004          ADD      r8,r8,#4
000618  eaffff8a          B        |L1.1096|
;;;190    	*pt=0xffffffff;
                  |L1.1564|
00061c  e3e00000          MVN      r0,#0
000620  e5880000          STR      r0,[r8,#0]
000624  eafffffa          B        |L1.1556|
;;;191        printf("pVlcData=[%x,%x)\n",pVlcData,(pVlcData+FIMV_MBLK_NUM*0x200/4));
                  |L1.1576|
000628  e2862bc6          ADD      r2,r6,#0x31800
00062c  e1a01006          MOV      r1,r6
000630  e28f0f5d          ADR      r0,|L1.1964|
000634  ebfffffe          BL       printf
;;;192    #endif
;;;193    
;;;194        if(dctq2VlcMode)
000638  e3590000          CMP      r9,#0
00063c  0a000024          BEQ      |L1.1748|
;;;195        {
;;;196            //DCTQ->direct->VLC
;;;197    	printf("\n=== DCTQ->direct->VLC path test ===\n");
000640  e28f0f5e          ADR      r0,|L1.1984|
000644  ebfffffe          BL       printf
;;;198    
;;;199    	VlxInitIsr();                              
000648  ebfffffe          BL       VlxInitIsr
;;;200    
;;;201    	DctqInitIsr();		
00064c  ebfffffe          BL       DctqInitIsr
;;;202        #if VLX_GOB_OPERATION
;;;203            for(i=0;i<(imageHeight/16);i++)
;;;204            {
;;;205      	    VlcConfig4DctqGob(imageWidth,(U32)pVlcData,(imageWidth/16),
;;;206    	    		      ((i==0)? VLX_FRAME_START_MODE: 0));
;;;207    
;;;208                DctqEngineGob(&currImage,&refImage,&dctqCoeff,pQInfo,(imageWidth/16),
;;;209    	    		  ((i==0)? DCTQ_FRAME_START_MODE : 0) |
;;;210    	    		  DCTQ_WITH_VLC_COEFF_WRITE);
;;;211    	    while(dctqDone==0 || vlxDone==0);			// ?? ows
;;;212    	    printf("completed(DCTQ&VLC GOB=%d).\n",i);
;;;213            }
;;;214        #else
;;;215            VlcConfig4Dctq(imageWidth,(U32)pVlcData,(imageWidth/16)*(imageHeight/16),0);
000650  e1a00225          MOV      r0,r5,LSR #4
000654  e1a01227          MOV      r1,r7,LSR #4
000658  e0020091          MUL      r2,r1,r0
00065c  e3a03000          MOV      r3,#0
000660  e1a01006          MOV      r1,r6
000664  e1a00005          MOV      r0,r5
000668  ebfffffe          BL       VlcConfig4Dctq
;;;216    	//mtimer_start();
;;;217    	DctqEngine(&currImage,&refImage,&dctqCoeff,pQInfo,DCTQ_WITH_VLC_COEFF_NOTWRITE);
00066c  e3a03004          MOV      r3,#4
000670  e58d3000          STR      r3,[sp,#0]
000674  e59d3008          LDR      r3,[sp,#8]
000678  e28d200c          ADD      r2,sp,#0xc
00067c  e28d1028          ADD      r1,sp,#0x28
000680  e28d0060          ADD      r0,sp,#0x60
000684  ebfffffe          BL       DctqEngine
;;;218    		printf("6= %08x\n",rVLX_OUT1);
000688  e51f0584          LDR      r0,|L1.268|
00068c  e590002c          LDR      r0,[r0,#0x2c]
000690  e1a01000          MOV      r1,r0
000694  e28f0f53          ADR      r0,|L1.2024|
000698  ebfffffe          BL       printf
;;;219    
;;;220    							  //for debug	
;;;221    	//printf("Wait until DCT_Q_IQ_IDCT & VLC is completed... ");
;;;222    	while(dctqDone==0 ){		printf("6= %08x\n",rVLX_OUT1);}
00069c  e1a00000          NOP      
                  |L1.1696|
0006a0  e51f0244          LDR      r0,|L1.1124|
0006a4  e5900000          LDR      r0,[r0,#0]  ; dctqDone
0006a8  e3500000          CMP      r0,#0
0006ac  1a000005          BNE      |L1.1736|
0006b0  e51f05ac          LDR      r0,|L1.268|
0006b4  e590002c          LDR      r0,[r0,#0x2c]
0006b8  e1a01000          MOV      r1,r0
0006bc  e28f0f49          ADR      r0,|L1.2024|
0006c0  ebfffffe          BL       printf
0006c4  eafffff5          B        |L1.1696|
;;;223    ;
;;;224    	printf("completed!\n");
                  |L1.1736|
0006c8  e28f0f49          ADR      r0,|L1.2036|
0006cc  ebfffffe          BL       printf
0006d0  ea000030          B        |L1.1944|
;;;225        #endif	
;;;226        
;;;227        }
;;;228        else
;;;229        {
;;;230      	//DCTQ->MEM->VLC
;;;231            printf("\n=== DCTQ->MEM->VLC path test ===\n");
                  |L1.1748|
0006d4  e28f0f49          ADR      r0,|L1.2048|
0006d8  ebfffffe          BL       printf
;;;232    	
;;;233    	DctqInitIsr();
0006dc  ebfffffe          BL       DctqInitIsr
;;;234    	VlxInitIsr();
0006e0  ebfffffe          BL       VlxInitIsr
;;;235        #if VLX_GOB_OPERATION
;;;236    	for(i=0;i<(imageHeight/16);i++)
;;;237         	{
;;;238        	    DctqEngineGob(&currImage,&prevImage,&dctqCoeff,pQInfo,(imageWidth/16),
;;;239    	    		  ((i==0)? DCTQ_FRAME_START_MODE: 0));
;;;240            
;;;241    	    while(dctqDone==0);
;;;242        	    printf("completed(DCTQ,GOB=%d),",i);
;;;243        
;;;244    	    VlcEngineGob(&dctqCoeff,pQInfo,(U32)pVlcData,(imageWidth/16),
;;;245    	    		 ((i==0)? VLX_FRAME_START_MODE : 0));
;;;246        
;;;247    	    while(vlxDone==0);
;;;248                printf("completed(VLC,GOB=%d)!\n",i);
;;;249    	}
;;;250        #else
;;;251        	DctqEngine(&currImage,&refImage,&dctqCoeff,pQInfo,0);
0006e4  e3a03000          MOV      r3,#0
0006e8  e58d3000          STR      r3,[sp,#0]
0006ec  e59d3008          LDR      r3,[sp,#8]
0006f0  e28d200c          ADD      r2,sp,#0xc
0006f4  e28d1028          ADD      r1,sp,#0x28
0006f8  e28d0060          ADD      r0,sp,#0x60
0006fc  ebfffffe          BL       DctqEngine
;;;252    
;;;253    	printf("1= %08x\n",rVLX_OUT1);
000700  e51f05fc          LDR      r0,|L1.268|
000704  e590002c          LDR      r0,[r0,#0x2c]
000708  e1a01000          MOV      r1,r0
00070c  e28f0f44          ADR      r0,|L1.2084|
000710  ebfffffe          BL       printf
;;;254    	
;;;255    	printf("Wait until DCT_Q_IQ_IDCT is completed... ");
000714  e28f0f45          ADR      r0,|L1.2096|
000718  ebfffffe          BL       printf
;;;256    	while(dctqDone==0);
00071c  e1a00000          NOP      
                  |L1.1824|
000720  e51f02c4          LDR      r0,|L1.1124|
000724  e5900000          LDR      r0,[r0,#0]  ; dctqDone
000728  e3500000          CMP      r0,#0
00072c  0afffffb          BEQ      |L1.1824|
;;;257    	printf("completed!\n");
000730  e28f00bc          ADR      r0,|L1.2036|
000734  ebfffffe          BL       printf
;;;258    
;;;259    	printf("2= %08x\n",rVLX_OUT1);
000738  e51f0634          LDR      r0,|L1.268|
00073c  e590002c          LDR      r0,[r0,#0x2c]
000740  e1a01000          MOV      r1,r0
000744  e28f0f44          ADR      r0,|L1.2140|
000748  ebfffffe          BL       printf
;;;260    	
;;;261    	VlcEngine(&dctqCoeff,pQInfo,(U32)pVlcData,0);
00074c  e3a03000          MOV      r3,#0
000750  e1a02006          MOV      r2,r6
000754  e59d1008          LDR      r1,[sp,#8]
000758  e28d000c          ADD      r0,sp,#0xc
00075c  ebfffffe          BL       VlcEngine
;;;262    
;;;263    	printf("3= %08x\n",rVLX_OUT1);
000760  e51f065c          LDR      r0,|L1.268|
000764  e590002c          LDR      r0,[r0,#0x2c]
000768  e1a01000          MOV      r1,r0
00076c  e28f00f4          ADR      r0,|L1.2152|
000770  ebfffffe          BL       printf
;;;264    
;;;265    	printf("Wait until Mem->VLC is completed... ");
000774  e28f00f8          ADR      r0,|L1.2164|
000778  ebfffffe          BL       printf
;;;266    	while(vlxDone==0);
00077c  e1a00000          NOP      
                  |L1.1920|
000780  e51f0678          LDR      r0,|L1.272|
000784  e5900000          LDR      r0,[r0,#0]  ; vlxDone
000788  e3500000          CMP      r0,#0
00078c  0afffffb          BEQ      |L1.1920|
;;;267            printf("completed!\n");
000790  e28f005c          ADR      r0,|L1.2036|
000794  ebfffffe          BL       printf
;;;268        #endif	
;;;269        }
;;;270    
;;;271    
;;;272    
;;;273    
;;;274        printf("The picture is the recon image by DCTQ/IDCTQ. Press any key!\n");
                  |L1.1944|
000798  e28f00fc          ADR      r0,|L1.2204|
00079c  ebfffffe          BL       printf
;;;275        getchar();
0007a0  ebfffffe          BL       getchar
;;;276    
;;;277    
;;;278    
;;;279    #if 0
;;;280        //****************************************************************************
;;;281        //      VLD -> IDCTQ test
;;;282        //****************************************************************************
;;;283    
;;;284        printf("\n[VLD -> IDCTQ test]\n");
;;;285    
;;;286        //refImage2 is used for DctqEngine() as mced_input_image and recon_output image.
;;;287        freeBufStartAddr=AllocImage420(&refImage2,freeBufStartAddr,imageWidth,imageHeight,
;;;288    			       IMAGE420_PADDED|IMAGE420_CLEAR);
;;;289    /*  //for debug
;;;290        if(qinfoMode==QINFO_INTER_MODE)
;;;291        {
;;;292        	CopyImage420(&refImage2,&prevImage);
;;;293    	    //if this image isn't copied, the result has to be almost same with the currImage.
;;;294        }
;;;295    */    
;;;296        
;;;297        printf("dctqCoeff2 addr: [%x,",freeBufStartAddr);	
;;;298        freeBufStartAddr=AllocImage420(&dctqCoeff2,freeBufStartAddr,imageWidth,imageHeight,IMAGE420_DCTQ_COEFF|IMAGE420_CLEAR);
;;;299        printf("%x)\n",freeBufStartAddr);    
;;;300    
;;;301        DecodeVlcStream(&dctqCoeff2,pQInfo,(U32)pVlcData,0);
;;;302    
;;;303    
;;;304    
;;;305    #if 1
;;;306        printf("\nCompare the dctqCoeff & the dctqCoeff2!!\n");
;;;307       
;;;308        for(i=0;i<(FIMV_IMAGE_HEIGHT*FIMV_IMAGE_WIDTH/2);i++)
;;;309        {
;;;310        	j=*((U16 *)dctqCoeff.frameStartAddr+i);
;;;311    	k=*((U16 *)dctqCoeff2.frameStartAddr+i);
;;;312    	if(j!=k && (k!=0xffff))  // (k==0xffff) means a skipped m-block.
;;;313    	    printf("Y: x,y=(%d,%d): dctq1:%x=%x, dctq2:%x=%x\n",
;;;314    		i%FIMV_IMAGE_WIDTH,i/FIMV_IMAGE_WIDTH, 
;;;315    		dctqCoeff.frameStartAddr+i*2,j,dctqCoeff2.frameStartAddr+i*2,k);    
;;;316        }
;;;317        for(i=0;i<(FIMV_IMAGE_HEIGHT*FIMV_IMAGE_WIDTH/4/2);i++)
;;;318        {
;;;319    	j=*((U16 *)dctqCoeff.cbStartAddr+i);
;;;320    	k=*((U16 *)dctqCoeff2.cbStartAddr+i);
;;;321    	if(j!=k && (k!=0xffff))
;;;322    	    printf("Cb: x,y=(%d,%d): dctq1:%x=%x, dctq2:%x=%x\n",
;;;323    		((i)%(FIMV_IMAGE_WIDTH/2)),(i/(FIMV_IMAGE_WIDTH/2)), 
;;;324    		dctqCoeff.frameStartAddr+i*2,j,dctqCoeff2.frameStartAddr+i*2,k);    
;;;325        }
;;;326        for(i=0;i<(FIMV_IMAGE_HEIGHT*FIMV_IMAGE_WIDTH/4/2);i++)
;;;327        {
;;;328    	j=*((U16 *)dctqCoeff.crStartAddr+i);
;;;329    	k=*((U16 *)dctqCoeff2.crStartAddr+i);
;;;330    	if(j!=k && (k!=0xffff))
;;;331    	    printf("Cr: x,y=(%d,%d): dctq1:%x=%x, dctq2:%x=%x\n",
;;;332    		((i)%(FIMV_IMAGE_WIDTH/2)),(i/(FIMV_IMAGE_WIDTH/2)),
;;;333    		dctqCoeff.frameStartAddr+i*2,j,dctqCoeff2.frameStartAddr+i*2,k);    
;;;334        }
;;;335        printf("\n");
;;;336    #endif 
;;;337    
;;;338    
;;;339    
;;;340        DctqEngine((PIMAGE420)0,&refImage2,&dctqCoeff2,pQInfo,DCTQ_DECODE_ONLY_MODE);
;;;341        
;;;342        printf("Wait until IQ_IDCT is completed.\n");
;;;343        while(dctqDone==0);
;;;344        printf("IQ_IDCT is completed!\n");
;;;345        
;;;346        printf("This is the recon image by VLD& IDCTQ from DctqCoeff & reference image.\n");
;;;347        getchar();
;;;348    #endif
;;;349    }
0007a4  e28dd07c          ADD      sp,sp,#0x7c
0007a8  e8bd83f0          LDMFD    sp!,{r4-r9,pc}
                  |L1.1964|
0007ac  636c5670          DCB      "pVlc"
0007b0  61746144          DCB      "Data"
0007b4  78255b3d          DCB      "=[%x"
0007b8  2978252c          DCB      ",%x)"
0007bc  0000000a          DCB      "\n\0\0\0"
                  |L1.1984|
0007c0  3d3d3d0a          DCB      "\n==="

⌨️ 快捷键说明

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