亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? intlbt.cpp

?? 整數(shù)疊式變換,用c++編寫的
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// IntLBT.cpp: implementation of the CIntLBT class.
// 作者:張增輝  國防科技大學理學院數(shù)學系  2001.11
// QQ:15105473   email: zenghui1980@163.com
// 
// 此為整數(shù)疊式變換的程序,算法流程圖有成老師文章給出。
// IntLBT 沒有經過邊界的延拓,可以做到完全無損的變換。 但是變換后的數(shù)據(jù)
// 存在邊界存在4個數(shù)據(jù)的邊。 因此在編碼時候需要特殊的處理。
//
//  程序包括以下部分: IntDCT and I_IntDCT
//   DCT_Butterfly and I_DCT_Butterfly  .... the butterfly after IntDCT
//   IntLBT  and I_IntLBT   after DCT_Butterfly 
//   IntLBT2D  and I_IntLBT2D
////////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ImgPro_IntLBT.h"
#include "IntLBT.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CIntLBT::CIntLBT()
{

}

CIntLBT::~CIntLBT()
{

}

void CIntLBT::IntLBT2D(int **data, int height, int width)
{
	int i,j,k;
	int nheight, nwidth;
	
	nheight = (height >>3);  // 列分塊的數(shù)目
	nwidth = (width >>3);    // 行分塊的數(shù)目

	int n_write_data, *data_lap1, *data_lap2;  // n_write_data 為寫數(shù)據(jù)位置
	data_lap1 = new int [8];
	data_lap2 = new int [8];

    ///   先對行進行IntLBT 變換
	for (i=0; i<height; i++)
	{
	    for (k=0; k<8; k++)     *(data_lap1+k) = *(*(data+i) + k);  //讀取開始的8個點
	    DCT_Butterfly1D(data_lap1);                                 //
		for (k=0; k<4; k++)     *(*(data+i) +k) = *(data_lap1+k);   // 邊界處理, 不做蝶式變換
        
		n_write_data = 4;
		for (j=1; j<nwidth-1; j++)
		{
           for (k=0; k<8; k++) *(data_lap2+k) = *(*(data + i) + n_write_data+k+4);  //讀取下8個點
		   DCT_Butterfly1D(data_lap2);                       //
		   IntLBT1D(data_lap1, data_lap2);                   // 蝶式變換 ,8+8 -----> 8 
           for (k=0; k<8; k++) *(*(data+i)+n_write_data+k) = *(data_lap1 + k);  //變換后數(shù)據(jù)寫入
		   for (k=0; k<8; k++) *(data_lap1 + k) = *(data_lap2 + k);    //交換數(shù)據(jù) 供下一次變換使用

		   n_write_data += 8;         // 移動寫入標志
            
		}

		for (k=0; k<8; k++) *(data_lap2+k) = *(*(data + i) + n_write_data+k+4);  //
		DCT_Butterfly1D(data_lap2);                                              //    
		IntLBT1D(data_lap1, data_lap2);                                          //

        for (k=0; k<8; k++) *(data_lap2+k) = *(*(data + i) + n_write_data+k+4);  //
        for (k=0; k<8; k++) *(*(data+i)+n_write_data+k) = *(data_lap1 + k);      //
        n_write_data += 8;                    // 計算到數(shù)第二塊數(shù)據(jù), 并保證最后8個數(shù)據(jù)不被破壞

		DCT_Butterfly1D(data_lap2);
		for (k=0; k<4; k++)     *(*(data+i)+n_write_data+k) = *(data_lap2+k+4);  // 邊界處理  	
	}
    //對每一行做 IntLBT 變換結束

	//按列進行
	for (i=0; i<width; i++)
	{
	    for (k=0; k<8; k++)     *(data_lap1+k) = *(*(data+k) + i);
	    DCT_Butterfly1D(data_lap1);
		for (k=0; k<4; k++)     *(*(data+k) +i) = *(data_lap1+k);
        
		n_write_data = 4;
		for (j=1; j<nheight-1; j++)
		{
           for (k=0; k<8; k++) *(data_lap2+k) = *(*(data+n_write_data+k+4) + i);
		   DCT_Butterfly1D(data_lap2);
		   IntLBT1D(data_lap1, data_lap2);
           for (k=0; k<8; k++) *(*(data+n_write_data+k)+i) = *(data_lap1 + k);
		   for (k=0; k<8; k++) *(data_lap1 + k) = *(data_lap2 + k);

		   n_write_data += 8;
            
		}

		for (k=0; k<8; k++) *(data_lap2+k) = *(*(data+n_write_data+k+4) + i);
	    DCT_Butterfly1D(data_lap2);
	    IntLBT1D(data_lap1, data_lap2);

		for (k=0; k<8; k++) *(data_lap2+k) = *(*(data+n_write_data+k+4) + i);
        for (k=0; k<8; k++) *(*(data+n_write_data+k)+i) = *(data_lap1 + k);
        n_write_data += 8;

		DCT_Butterfly1D(data_lap2);
		for (k=0; k<4; k++)     *(*(data+n_write_data+k)+i) = *(data_lap2+k+4);    	
	}

    delete data_lap1;
	delete data_lap2;
}

void CIntLBT::I_IntLBT2D(int **data, int height, int width)
{
   int i, j, k;
   int nheight, nwidth;
   nheight = (height >>3);
   nwidth = (width >>3);

   int n_write_data, *data_lap1, *data_lap2, *data_tmp;;
   data_lap1 = new int [8];
   data_lap2 = new int [8];
   data_tmp = new int [8];
   //////////////////    先按列做逆變換
   for (i=0; i<width; i++)
   {
      //處理最開始的8個數(shù)據(jù)
	   for (k=0; k<4; k++) *(data_lap1+k) = *(*(data+k)+i); //讀入前面4個數(shù)據(jù)
	                   //處理下4個數(shù)據(jù)
	   for (k=0; k<8; k++) *(data_lap2+k) = *(*(data+k+4)+i);  //讀入下8個數(shù)據(jù)
       I_IntLBT_1to1(data_lap2);

	   for (k=0; k<4; k++) *(data_lap1+k+4) = *(data_lap2+k); 
	   I_DCT_Butterfly(data_lap1);  //反變換求出前8個數(shù)據(jù)

	   for (k=0; k<8; k++) *(data_lap2+k) = *(*(data+k+4)+i);
	   for (k=0; k<8; k++) *(*(data+k)+i) = *(data_lap1+k); //寫入數(shù)據(jù)

	  //處理中間的數(shù)據(jù)
	   for (k=0; k<8; k++) *(data_lap1+k) = *(data_lap2+k);  //讀入第一塊
	   n_write_data = 8;
	   for (j=2; j<nheight; j++)
	   {
		   for (k=0; k<8; k++) 
		   {
			   *(data_lap2+k) = *(*(data+4+n_write_data+k)+i);  //讀入下一塊
			   *(data_tmp+k) = *(data_lap2+k);   // 在反變換之前備份當前數(shù)據(jù)
		   }
           I_IntLBT1D(data_lap1, data_lap2);   
		   I_DCT_Butterfly(data_lap1);
		   for (k=0; k<8; k++) *(*(data+n_write_data+k)+i) = *(data_lap1+k);  //寫入數(shù)據(jù)
           for (k=0; k<8; k++) *(data_lap1+k) = *(data_tmp+k);
		   n_write_data += 8;
	   }

	  //處理最后的8個數(shù)據(jù)
	   I_IntLBT_1to1(data_lap1);
	   for (k=0; k<4; k++) *(data_lap1+k) = *(data_lap1+k+4);
	   for (k=0; k<4; k++) *(data_lap1+k+4) = *(*(data+n_write_data+k+4)+i);	   
	   I_DCT_Butterfly(data_lap1);
	   for (k=0; k<8; k++) *(*(data+n_write_data+k)+i) = *(data_lap1+k);

   }


   //////////////////    按行做逆變換
   for (i=0; i<height; i++)
   {
      //處理最開始的8個數(shù)據(jù)
	   for (k=0; k<4; k++) *(data_lap1+k) = *(*(data+i)+k); //讀入前面4個數(shù)據(jù)
	                   //處理下4個數(shù)據(jù)
	   for (k=0; k<8; k++) *(data_lap2+k) = *(*(data+i)+k+4);  //讀入下8個數(shù)據(jù)
       I_IntLBT_1to1(data_lap2);
	   for (k=0; k<4; k++) *(data_lap1+k+4) = *(data_lap2+k); 
	   I_DCT_Butterfly(data_lap1);  //反變換求出前8個數(shù)據(jù)

       for (k=0; k<8; k++) *(data_lap2+k) = *(*(data+i)+k+4);
	   for (k=0; k<8; k++) *(*(data+i)+k) = *(data_lap1+k); //寫入數(shù)據(jù)

	  //處理中間的數(shù)據(jù)
	   for (k=0; k<8; k++) *(data_lap1+k) = *(data_lap2+k);  //讀入第一塊
	   n_write_data = 8;
	   for (j=2; j<nwidth; j++)
	   {
		   for (k=0; k<8; k++) 
		   {
		   *(data_lap2+k) = *(*(data+i)+4+n_write_data+k);  //讀入下一塊
		    *(data_tmp+k) = *(data_lap2+k);
		   }
           I_IntLBT1D(data_lap1, data_lap2);
		   I_DCT_Butterfly(data_lap1);
		   for (k=0; k<8; k++) *(*(data+i)+n_write_data+k) = *(data_lap1+k);  //寫入數(shù)據(jù)
           for (k=0; k<8; k++) *(data_lap1+k) = *(data_tmp+k);
		   n_write_data += 8;
	   }

	   
	  //處理最后的8個數(shù)據(jù)
	   for (k=0; k<8; k++)  *(data_lap2+k) = *(data_lap1+k);  //讀入最后一個完整的變換后的塊
	   I_IntLBT_1to1(data_lap2);
	   for (k=0; k<4; k++) *(data_lap1+k) = *(data_lap2+k+4);
	   for (k=0; k<4; k++) *(data_lap1+k+4) = *(*(data+i)+n_write_data+k+4);	   
	   I_DCT_Butterfly(data_lap1);
	   for (k=0; k<8; k++) *(*(data+i)+n_write_data+k) = *(data_lap1+k);

   }

   delete data_lap1;
   delete data_lap2;
   delete data_tmp;
}

void CIntLBT::IntLBT1D(int *data1, int *data2)
{
	/// input the two block      ------> data1  data2
	/// output   the lapped data -----> data1
//	DCT_Butterfly1D(data1);
//	DCT_Butterfly1D(data2);
	*data1     = *(data1+4) + *data2;
	*(data1+1) = *(data1+5) + *(data2+1);
	*(data1+2) = *(data1+6) + *(data2+2);
	*(data1+3) = *(data1+7) + *(data2+3);
	*(data1+4) = *(data1+4) - *data2;
	*(data1+5) = *(data1+5) - *(data2+1);
	*(data1+6) = *(data1+6) - *(data2+2);
	*(data1+7) = *(data1+7) - *(data2+3);
    //做一個 旋轉變換
	*(data1+5) = *(data1+5) + (*(data1+4) >>2) - (*(data1+4) >>5);
	*(data1+4) = *(data1+4) - (*(data1+5) >>2) - (*(data1+5) >>3) - (*(data1+5) >>5);
	*(data1+5) = *(data1+5) + (*(data1+4) >>2) - (*(data1+4) >>5);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女久久久精品| 日韩视频免费观看高清完整版 | 国产精品美女久久久久久久| 亚洲与欧洲av电影| 国产一区二区女| 在线国产亚洲欧美| 国产欧美一区二区精品秋霞影院 | 看电影不卡的网站| 一本在线高清不卡dvd| 久久综合中文字幕| 毛片一区二区三区| 欧美精选一区二区| 樱花草国产18久久久久| 99麻豆久久久国产精品免费优播| 日韩欧美一区二区在线视频| 一区二区三区在线高清| 成人网在线免费视频| 欧美成人午夜电影| 日本亚洲视频在线| 51精品久久久久久久蜜臀| 亚洲乱码一区二区三区在线观看| 国产不卡在线播放| 国产夜色精品一区二区av| 蜜桃视频第一区免费观看| 欧美视频一区二| 亚洲电影第三页| 91国偷自产一区二区三区观看| 欧美高清在线一区二区| 国产精品18久久久久久vr| 欧美精品一区二区精品网| 久久se这里有精品| 久久午夜羞羞影院免费观看| 老司机一区二区| 精品处破学生在线二十三| 美女视频网站黄色亚洲| 欧美一级高清大全免费观看| 日韩精品乱码av一区二区| 777奇米成人网| 蜜桃视频免费观看一区| 日韩免费高清av| 国产精品69毛片高清亚洲| 日本一区二区电影| 91麻豆精品国产91久久久久久久久 | 一本一本大道香蕉久在线精品 | 亚洲一区在线视频| 欧美视频一区二区三区四区| 97超碰欧美中文字幕| 亚洲欧美日韩国产成人精品影院| 色综合激情五月| 婷婷一区二区三区| 精品国产污网站| 99久久久国产精品免费蜜臀| 国产精品久久久久aaaa樱花| 91免费精品国自产拍在线不卡 | 99精品欧美一区二区三区小说| 中文字幕一区视频| 欧美日韩中文一区| 国产精品一区二区在线观看网站| 国产精品美女久久久久久2018| 欧洲日韩一区二区三区| 久久精品久久久精品美女| 国产精品毛片大码女人| 在线一区二区三区做爰视频网站| 午夜精品福利在线| 久久精品日韩一区二区三区| 色八戒一区二区三区| 麻豆精品视频在线观看免费| 国产精品久久久久一区二区三区共| 91高清在线观看| 韩国视频一区二区| 亚洲国产va精品久久久不卡综合| 日韩欧美一区二区在线视频| 波多野结衣在线一区| 午夜精品成人在线视频| 精品国产不卡一区二区三区| www.亚洲国产| 激情综合网av| 亚洲在线视频网站| 欧美激情在线免费观看| 欧美一区二区三区在线看| 99r精品视频| 国产高清精品网站| 日韩一区精品视频| 亚洲色图欧洲色图| 久久九九影视网| 亚洲同性gay激情无套| 91精品国产色综合久久久蜜香臀| eeuss国产一区二区三区| 久久99久国产精品黄毛片色诱| 亚洲欧美日韩综合aⅴ视频| 久久综合网色—综合色88| 欧美丰满嫩嫩电影| 在线亚洲精品福利网址导航| 国产一区三区三区| 蜜臀91精品一区二区三区| 亚洲精品乱码久久久久| 国产精品麻豆欧美日韩ww| 精品少妇一区二区三区日产乱码| 欧美视频在线观看一区二区| 97se亚洲国产综合自在线不卡 | 亚洲一区二区三区四区中文字幕| 国产欧美一区二区精品婷婷| 精品欧美久久久| 日韩女优毛片在线| 欧美一区二区播放| 欧美日韩一卡二卡三卡| 欧美亚洲免费在线一区| 日本韩国欧美在线| 91国偷自产一区二区开放时间| av电影在线不卡| 99久久精品国产毛片| 丰满亚洲少妇av| av在线综合网| 色综合久久综合中文综合网| 99国产欧美久久久精品| 91浏览器在线视频| 欧美专区日韩专区| 欧美另类久久久品| 日韩亚洲欧美中文三级| 欧美美女网站色| 91精品国产一区二区三区蜜臀 | 欧美性生交片4| 欧美丝袜丝交足nylons图片| 欧美色视频在线观看| 欧美日本一区二区| 日韩美一区二区三区| 欧美成人欧美edvon| 国产午夜亚洲精品羞羞网站| 欧美激情综合网| 亚洲精品成人天堂一二三| 亚洲国产精品久久人人爱| 免费在线一区观看| 国产精品一区二区x88av| 懂色av中文一区二区三区| 99精品一区二区| 欧美人与z0zoxxxx视频| 精品国产一区二区亚洲人成毛片| 久久伊人中文字幕| 亚洲日本丝袜连裤袜办公室| 亚洲一区av在线| 激情文学综合丁香| 91麻豆免费看片| 91精品国产高清一区二区三区 | 欧美一区二区精品在线| 国产日韩欧美精品一区| 亚洲黄色av一区| 美日韩一级片在线观看| 成人午夜精品在线| 欧美日韩精品免费观看视频| 欧美videossexotv100| 国产精品久久久久久久久久久免费看| 亚洲一级二级在线| 国产盗摄一区二区| 精品视频在线免费| 久久久噜噜噜久噜久久综合| 亚洲综合一区二区三区| 国产综合一区二区| 欧美午夜不卡在线观看免费| 久久综合99re88久久爱| 一区二区三区四区av| 激情综合网激情| 精品视频123区在线观看| 日本一区二区三区高清不卡 | 69堂成人精品免费视频| 亚洲视频一二三区| 国产黑丝在线一区二区三区| 欧亚洲嫩模精品一区三区| 国产日韩欧美a| 麻豆精品在线播放| 欧美体内she精视频| 日本一区二区免费在线观看视频 | 日韩欧美亚洲一区二区| 日韩一区有码在线| 国产麻豆9l精品三级站| 欧美高清性hdvideosex| 亚洲天堂网中文字| 福利一区福利二区| 精品理论电影在线观看| 日韩专区欧美专区| 欧美日韩在线三区| 亚洲欧洲另类国产综合| 国产成人在线观看| 久久久精品中文字幕麻豆发布| 日日夜夜免费精品视频| 色激情天天射综合网| 国产精品美女久久久久久| 国产成人综合亚洲网站| 久久亚洲精华国产精华液| 久久精品理论片| 日韩欧美视频在线| 麻豆精品精品国产自在97香蕉 | 久久色.com| 狠狠色丁香婷婷综合| 日韩免费性生活视频播放| 日韩在线一二三区| 日韩欧美亚洲另类制服综合在线| 日日欢夜夜爽一区| 日韩欧美中文一区二区| 秋霞午夜鲁丝一区二区老狼| 777亚洲妇女|