- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
我们这组的期末报告有两个部分是猜数字的小游戏第二
我們這組的期末報告有兩個部分,第一部分是猜數字的小遊戲,第二部分則是嘗試複雜度比較高的影像壓縮和解壓縮(DCT IDCT)。以下就是我們對第二部分題目的講解。
DCT這個題目是來自我們演算法課程的作業,因為感覺很有趣而且非常值得在速度和壓縮比上作加強和改進,所以我們選擇它來作我們第二部分的題目。我們這個題目的目標有兩個方向:
用C寫出整個DCTIDCT,並在壓縮比上盡量增大。
第二,用我們目前所學過的組合語言,和加速技巧,來改寫原來程式中的某些部分,然後用__asm還將其與原來的主程式結合在一起,希望能讓整個程式的執行速度有所提升。
DCTIDCT
C
在coding的過程中,我們發現浮點數的運算對我們而言難度似乎頗高,但是不用浮點數的運算,將會使壓縮的誤差大幅度提升。我們也不確定能否在期限前將組語的部分完全的完成,不過畢竟我們已經在過程中學到不少。
還有,似乎也有其他不少組別也決定用這個題目,雖然如此,我們仍然把這份報告當作獨立的一份報告,因此也仍然盡量作的完整。以下,就是我們對影像壓縮及解壓縮技術和程式間的連結做個簡單扼要的介紹。
*壓縮:
首先,在程式的一開始,我們先將一張圖片切成許許多多8乘8的小方塊,每個小方塊存共存有64點,也就是64像素的資訊。
而每張圖片皆是由RGB紅黃綠三種亮度信號組合而成的,我們可以透過一套公式把他轉換為一個亮度訊號及兩個色差訊號,不過因為這個過程並不包含在我們程式中,故省略不談。
接下來就是整個程式的重心,Discrete Cosine Tranfer(DCT)個過程。這個過程的概念在於:圖片的能量集中在低頻的部分,故我們經由DCT保留大部分低頻的資訊,而捨棄部份高頻的資訊。其公式如下:
經過DCT的轉換,我們便將轉換完成的MN座標除以下這個量化標準矩陣:
16 11 10 16 24 40 51 61 12 12 14 19 26 58 60 55 14 13 16 24 40 57 69 56 14 17 22 29 51 87 80 62 18 22 37 56 68 109 103 77 24 35 55 64 81 104 113 92 49 64 78 87 103 121 120 101 72 92 95 98 112 100 103 99
以上為亮度的量化矩陣,另外還有色差的量化矩陣,不過因為我們程式只處理亮度訊號的壓縮,所以就略過色差的部分。除以量化矩陣的意義也和DCT相同:壓縮高頻資訊,保留低頻資訊。
MN座標經過量化矩陣的處理過後,大致會變成一個左上角都為正值,右下角都為0的矩陣,故我們可以經由zigzag的方法將MN矩陣寫入一個一維陣列(再此暫定其為z[64]),並且此一維陣列的後半會出現連續的0。以下就是我們做zigzag的順序。
接下來我們的程式先計算z[64]由後面算來會有多少連續的0,接著開始將z[64]依序寫入file裡(我們儲存壓縮結果的地方),如果寫入到了後面都是0的地方,就寫入大寫字母「E」來作記號。
我們的壓縮程式大致就到此完成,結果大概可以壓縮到原本大小的21%左右,失真率也控制在不錯的範圍內。
程式接下來就是解壓縮的部分,其內容簡而言之就是壓縮時的相反,其內容便不再重複,只列出IDCT的公式:
組語
基本上看過整個code之後,發現了主要有兩個地方可以做修改:
屬於整數的乘除法,可以利用移位來達成加速的結果。
其中以2的倍數的乘除最有效率,因為通常只需要一次的移位,就能達到乘除的目的。但是浮點數在測試過後似乎是不能這樣用…所以裡面特別只挑了可以用的整數來使用。
比如說要乘以4(假設被除數存在eax)時可以
shl eax,02H
其結果需要1 clocks。
但是若是要除以非2的整數,比如說6,就需要
lea eax,[eax+eax*2]
add eax,eax
需要2 clocks
即使要乘以一個相當大的數字,如2005也只需要用
mov ebx,eaxshl ebx,08Hsub ebx,eaxlea eax,[eax+eax*4]sub ebx,eaxlea eax,[eax+ebx*8]這樣6 clocks的指令即可結束,當在一迴圈內要作很多次這樣的計算時,將可大量減少計算的時間。
矩陣要進行一種有規律的運算之時,內嵌的組語中使用SSE或MMX來達成減少計算量以及空間的效果。因為其中牽涉到了浮點數運算,使得SSE又比MMX還要適用於這個程式。
因為SSE有8個128 bit 的暫存器(xxm0~xxm7),各可以存放4個32 bit的單精確度浮點數,可用其來進行運算,比起普通運算,可以少掉許多時間,跟MMX比起來在處理浮點數的功能上又有許多優勢。相對適合在這個程式中使用。
然後
您可能关注的文档
- 徘徊在现场与演播室之间.PDF
- 微型汽车轮辐零件翻边成形的有限元分析.PDF
- 微型计算机电扇电机性能.PDF
- 循环球转向器啮合间隙的调整建议学时.PPT
- 徐州广电网络宽带优化方案.PDF
- 微带天线具有体积小重量轻易馈电易与载体共形等优点广泛直用.DOC
- 微星科技股份有限公司-台北科技大学.PDF
- 微机原理及应用机考研大纲.DOC
- 微机原理期中考试试卷.PDF
- 微带线FDM 特性传输特性分析 - 电子设计工程.PDF
- 我公司研发生产的激光防盗报警器是获得专利的产品也是经.DOC
- 我们正处于一系列社会大变革的前期 - Global Peter Drucker Forum.PDF
- 成都大学召开2015年预算工作编制会-成都大学财务处.DOC
- 我国工业机器人行业人才匮乏.PPT
- 我国无线电发射设备型号核准的基本情况(Overview of radio.PPT
- 我国电离层基本参量与国际-空间科学学报.PDF
- 我国特殊教育助理员聘任培训及服务内涵的现况与建议-屏东大学机构.PDF
- 我国职务作品制度的不足与完善-中国法学网.PDF
- 我国水库诱发地震监测技术进展-中国水利水电科学研究院学报.PDF
- 我国应用马铃薯简化培养基大幅度地提高了小麦花粉愈伤组织的诱导.PDF
最近下载
- 4.3免疫失调课件(共36张PPT)高中生物学 人教版(2019)选择性必修一.pptx VIP
- 新解读《JB_T 8446 - 2013隐极式同步发电机转子匝间短路测定方法》最新解读.docx VIP
- 一种基于伯努利吸附原理的爬壁检测机器人.pdf VIP
- ZEEKR知识自测及参考答案.docx VIP
- 徐宁金枪手人物介绍水浒传.pptx VIP
- 2025年CSP-S初赛真题(文末附答案).pdf VIP
- 江苏开放大学设计思维与创意设计创意元素训练.doc VIP
- (2024新版本)人教版七年级上册生物全册教案.doc
- 自考劳动和社会保障法历年真题.pdf VIP
- 制冷用水平管降膜蒸发器管束换热优化研究.pdf VIP
文档评论(0)