青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開心的工作
簡(jiǎn)單、開放、平等的公司文化;尊重個(gè)性、自由與個(gè)人價(jià)值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

MMX版本的Alpha Blend算法實(shí)現(xiàn)


這次我們的目標(biāo)是: 超越普通的CPU玩家,用CPU的母語來優(yōu)化程序!

實(shí)驗(yàn)器材:VC++ 4.2以上的編譯器或C++ Builder 4.0以上編譯器

MMX技術(shù)到現(xiàn)在來說可以算是基本大眾化了,目前大多數(shù)個(gè)人電腦都應(yīng)該能支持它。P55C,K6,PII,PIII...按照慣例,Intel公司將在以后的x86版本永遠(yuǎn)支持它。

要了解MMX指令體系,請(qǐng)一定瀏覽以下URL,獲得系統(tǒng)的MMX體系知識(shí):

http://www.game1st.com/database/mmxd/mmxd.htm

否則將會(huì)對(duì)我的講解摸不著北,(象聽最優(yōu)控制或者線性控制理論一樣)

提示:最好自己多寫些Console App來實(shí)驗(yàn)和熟悉MMX指令特性,cout出結(jié)果,不要一來就搞Windows App.

MMX技術(shù)的優(yōu)點(diǎn)是什么?

一言蔽之,就是一個(gè)指令操作多個(gè)整型數(shù)據(jù).并且可以自動(dòng)完成飽和運(yùn)算

MMX最適合的應(yīng)用領(lǐng)域是數(shù)字圖象處理 ,然后是語音,通訊等領(lǐng)域。

寫圖象處理算法時(shí)很影響效率的以下幾點(diǎn)是:

1.不厭其煩的低效鄰域操作: 不厭其煩的寫GfxBuffer[i],GfxBuffer[i+1],GfxBuffer[i+2],...取RGB值等。

2.惱人的環(huán)繞:

像素運(yùn)算溢出,必須拿個(gè)大點(diǎn)的數(shù)據(jù)類型來保存結(jié)果再判斷溢出,否則結(jié)果就是錯(cuò)誤的

short int GfxOut=GfxBuf1[i]+GfxBuf2[i]; ...

if(GfxOut>255)GfxOut=255; if(GfxOut<0)GfxOut=0;

問題是你知道那兩個(gè)判斷回會(huì)生成多少匯編代碼嗎?

3.不必要的高精度: 該死的RGB->YUV運(yùn)算,我們最熟悉的彩色轉(zhuǎn)灰度運(yùn)算: Y=(BYTE)(Red*0.299+Green*0.587+Blue*0.114);

其實(shí)我們關(guān)心的是一個(gè)字節(jié)結(jié)果,誰愿意讓協(xié)處理器做大量運(yùn)算,得到float結(jié)果,還要再轉(zhuǎn)換為byte結(jié)果呢?要知道IEEE浮點(diǎn)轉(zhuǎn)整數(shù)可不象在C程序里看起來那么簡(jiǎn)單!(在你為51單片機(jī)這種低級(jí)的劣質(zhì)的沒有協(xié)處理器的CPU寫過程序就知道了...)代價(jià)是相當(dāng)大的。

尤其圖面比較大的情況下,你會(huì)在屏幕面前等得生霉,我們不要那么高的精度啊。

而MMX技術(shù)就是黑暗中的燈塔,被老板咒罵的程序員的救命稻草,使圖象處理模式識(shí)別和神經(jīng)網(wǎng)絡(luò)專業(yè)方向的研究生不被導(dǎo)師訓(xùn)斥的的葵花寶典...(本人不系Intel中國(guó)公司的營(yíng)銷部經(jīng)理啊..)

以32-bit為例,下面具體講下用簡(jiǎn)單的例子講解MMX技術(shù)優(yōu)化北航老王頭提供的Alpha Blend算法:

絕對(duì)為本人在某個(gè)深夜所原創(chuàng),不抄襲自任何資料

char *pSrc,*pOvr; { pSrc=pScanline1+j; pOvr=pScanLine2+j; j+=4; .....

假定我們的源像素在pSrc,覆蓋圖Overlay在pOvr,各指向一個(gè)32 bit像素。

( 為什么要以32bit像素?因?yàn)槔虾沼袃赡曜鲎帜豢ǔ绦虻谋尘?電視字幕是32 bit圖文層嘛! )

如果你閱讀了開始我提供的URL文檔,你就清楚,MMX有八個(gè)64bitRegister,叫MM0->MM7,是浮點(diǎn)處理器的別名,也是他們的低64位映象。

__asm{ pxor mm2,mm2 //把MM2清0

mov edx,dword ptr [pSrc] //取32bit像素地址到edx

movd mm0,dword ptr [edx] //把Source像素取到mm0低32bit

mov edx,dword ptr [pOvr]

movd mm1,dword ptr [edx] //把32 bit Overlay像素取到mm1低32bit

punpcklbw mm0,mm2 //Source:8 bit到16 bit以容納結(jié)果,32bit expand to 64 bit

punpcklbw mm1,mm2 //Overlay:8 bit到16 bit以容納結(jié)果.32bit expand to 64 bit

movq mm3,mm1 // 因?yàn)橐肙verlay的Alpha值

punpckhwd mm3,mm3 // 高字移動(dòng)到雙字

punpckhdq mm3,mm3 // 雙字移動(dòng)到四字,現(xiàn)在有八個(gè)像素的Alpha了!

movq mm4,mm0 //Source->mm4

movq mm5,mm1 //Overlay->mm5

psubusw mm4,mm1 //Source-Overlay,飽和減,小于0為0

psubusw mm5,mm0 //Overlay-Source,飽和減,小于0為0

pmullw mm4,mm3 //Alpha * (Source-Overlay)

pmullw mm5,mm3 //Alpha * (Overlay-Source)

psrlw mm4,8 //除以256,now mm4 get the result,(Source-Overlay)<0 部分

psrlw mm5,8 //除以256,now mm5 get the result,(Overlay-Source)>0 部分

paddusw mm0,mm5 //飽和加到原圖象:D=Alpha*(O-S)+S,(Source-Overlay)<0 部分

psubusw mm0,mm4 //飽和加到原圖象D=S-Alpha*(S-O),(Overlay-Source)>0 部分

packuswb mm0,mm0 //緊縮到低32bit

mov edx,dword ptr [pSrc]

movd dword ptr [edx],mm0 //保存結(jié)果

emms ///必要的!Empty MMX Status

} 以上算法和常規(guī)算法比較:

Legend PII 400 With damnble,extremely Slow Sis6326 Video Card: 640*480*32bit bitmap:

Normal algorithm:170-180 ms

This algorithm:Below 40 ms

均包含拷貝內(nèi)存時(shí)間,純處理時(shí)間只要20ms, 就是說如果用DirectX,Blt,BltFast通常比memcpy快很多.就小于40ms了

總結(jié): 反復(fù)使用緊縮移位,緊縮擴(kuò)展,緊縮壓縮指令,并施加飽和運(yùn)算等,是用MMX寫算法的核心。

程序員必須對(duì)數(shù)制,內(nèi)存結(jié)構(gòu),定點(diǎn)數(shù)很熟悉才能寫出高效率的MMX加速的子程序。

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲成色999久久网站| 国产精品久久一级| 亚洲每日更新| 亚洲国产免费看| 亚洲黄色av| 一本久久综合| 亚洲视频在线免费观看| 亚洲字幕在线观看| 欧美在线观看视频一区二区三区| 午夜精品久久久久久99热| 亚洲欧美日韩在线| 久久久久一区二区| 欧美激情视频在线播放| 国产精品劲爆视频| 国产亚洲毛片| 亚洲精品自在久久| 午夜一区二区三视频在线观看| 欧美中文在线字幕| 亚洲电影在线免费观看| 99国内精品久久| 欧美一区在线看| 欧美精品激情在线观看| 国产日韩在线一区二区三区| 亚洲激情av| 午夜影院日韩| 亚洲毛片视频| 久久综合色天天久久综合图片| 欧美日韩中文字幕在线| 激情偷拍久久| 亚洲一区二区三区免费视频| 久久夜色精品国产亚洲aⅴ | 在线观看国产精品淫| 亚洲人体一区| 久久久999| 99在线精品视频在线观看| 久久精品99| 国产精品久久久久久久久久直播 | 99精品欧美| 欧美在线亚洲综合一区| 欧美日韩激情小视频| 悠悠资源网亚洲青| 欧美一乱一性一交一视频| 亚洲国产精品悠悠久久琪琪| 久久gogo国模裸体人体| 国产精品二区在线| 一片黄亚洲嫩模| 欧美国产日韩精品| 久久疯狂做爰流白浆xx| 欧美体内she精视频在线观看| 一区二区视频免费在线观看 | 91久久精品美女高潮| 欧美中文字幕在线视频| 国产精品日本| 亚洲一区中文字幕在线观看| 亚洲国产清纯| 久久久噜噜噜久久| 一区二区在线观看av| 欧美一级淫片播放口| 亚洲综合三区| 国产麻豆精品theporn| 亚洲一二三区在线观看| 亚洲精选视频在线| 欧美日韩在线一区二区三区| 日韩视频在线你懂得| 欧美sm重口味系列视频在线观看| 久久国产精品久久久久久电车| 国产精品福利影院| 亚洲欧美日韩国产| 亚洲影音一区| 国产在线一区二区三区四区 | 一区二区欧美视频| 国产精品国产自产拍高清av王其| 亚洲一二三区精品| 亚洲欧美色一区| 国产一区视频在线看| 久久亚洲欧美国产精品乐播| 久久伊人亚洲| 亚洲国产黄色| 亚洲乱码久久| 国产精品免费视频观看| 久久er99精品| 麻豆精品精华液| 宅男噜噜噜66一区二区| 亚洲一区二区三| 国产午夜精品麻豆| 久久夜色精品一区| 欧美精品首页| 亚洲在线视频免费观看| 午夜日韩激情| 亚洲国产经典视频| 日韩网站在线观看| 国产精品国产三级国产aⅴ浪潮| 欧美国产一区二区三区激情无套| 在线视频精品一| 欧美成人免费小视频| 免费亚洲视频| 亚洲免费一在线| 久久精品二区三区| 日韩午夜电影av| 亚洲女同在线| 国产亚洲欧美日韩一区二区| 欧美国产日产韩国视频| 欧美日韩亚洲综合一区| 久久麻豆一区二区| 欧美日韩国产精品一区| 亚洲一区二区三区在线看 | 欲色影视综合吧| 亚洲国产精品久久人人爱蜜臀 | 欧美日韩精品一区二区| 久久国产精品99国产精| 欧美精品在线观看91| 午夜视频在线观看一区| 久久夜色精品| 西西人体一区二区| 久久精品免费观看| 一区二区精品国产| 欧美一级播放| 99在线热播精品免费| 亚洲欧美在线x视频| 亚洲图色在线| 欧美α欧美αv大片| 一区二区欧美国产| 久久综合给合久久狠狠狠97色69| 欧美亚洲在线观看| 欧美私人网站| 亚洲精品女人| 亚洲欧美国产视频| 黄色成人免费网站| 午夜精彩视频在线观看不卡| 亚洲图片你懂的| 欧美日韩人人澡狠狠躁视频| 国产麻豆9l精品三级站| 亚洲裸体视频| 艳妇臀荡乳欲伦亚洲一区| 老司机免费视频一区二区三区| 欧美一区二区女人| 国产精品成人播放| 99re视频这里只有精品| 亚洲欧洲一区| 欧美日本国产视频| 亚洲乱码国产乱码精品精| aa成人免费视频| 欧美精品大片| 一本色道久久综合亚洲精品高清 | 久久视频在线视频| 91久久综合| 女女同性女同一区二区三区91| 国产女人aaa级久久久级| 亚洲视频播放| 久久av资源网站| 黄色一区二区在线| 久久一区中文字幕| 免费日韩av| 尤物九九久久国产精品的特点| 久久精品国产77777蜜臀| 免费黄网站欧美| 一区在线播放视频| 欧美chengren| 亚洲美女av电影| 欧美亚洲一区二区在线| 国产日韩综合| 欧美一级在线视频| 久久亚洲一区二区| 亚洲精品国产精品国产自| 欧美精品粉嫩高潮一区二区| 亚洲免费高清视频| 久久久久久久高潮| 亚洲激情黄色| 国产精品免费观看视频| 久久全球大尺度高清视频| 亚洲欧洲一二三| 欧美一区二区三区啪啪| 怡红院精品视频在线观看极品| 欧美激情久久久| 亚洲一区二区三区中文字幕在线| 国产女人精品视频| 久久人体大胆视频| 亚洲精品乱码久久久久久蜜桃91| 欧美一区在线看| 亚洲人成在线观看| 国产精品久久久久久久久久久久 | 欧美成人精品不卡视频在线观看| 亚洲精品美女在线观看| 欧美一区亚洲二区| 亚洲三级色网| 国产伦精品一区二区三区照片91 | 欧美三级电影一区| 久久不射网站| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲综合日韩中文字幕v在线| 国产欧美一区二区三区另类精品| 女生裸体视频一区二区三区| 亚洲一级黄色| 欧美黄色一级视频| 欧美一区二区三区视频免费播放| 国模精品一区二区三区色天香| 欧美乱妇高清无乱码| 亚洲一二区在线| 欧美成人一品| 老妇喷水一区二区三区|