歐幾里德算法:輾轉求余 原理: gcd(a,b)=gcd(b,a mod b) 當b為0時,兩數的最大公約數即為a getchar()會接受前一個scanf的回車符
上傳時間: 2014-01-10
上傳用戶:2467478207
數據結構課程設計 數據結構B+樹 B+ tree Library
上傳時間: 2013-12-31
上傳用戶:semi1981
在信息化發展的當前,音視頻等多媒體作為信息的載體,在社會生活的各個領域,起著越來越重要的作用。數字視頻的海量性成為阻礙其應用的的瓶頸之一。在這種情況下,H.264作為新一代的視頻壓縮標準,以其高性能的壓縮效率,成為備受關注的焦點和研究問題。H.264通過運動估計/運動補償(MP/MC)消除視頻時間冗余,對差值圖像進行離散余弦變換(DCT)消除空間冗余,對量化后的系數進行可變長編碼(VLC)消除統計冗余,獲得了極高的壓縮效率。隨著嵌入式處理器性能的逐漸提升和3G網絡即將商用的推動,H.264以其優秀的壓縮性能,無論是無線信道傳輸方面,還是存儲容量有限的嵌入式設備都具有廣闊的應用前景。 但H.264在提升壓縮性能的同時付出的代價是算法復雜度的成倍增加,實際應用中人們對視頻解碼的實時性要求嚴格,已出現的對應算法代碼多基于PC通用處理器實現,而嵌入式設備的主頻和處理能力仍然相對有限,存儲容量相對較小,總線速率相對偏低,因此必須對標準對應算法進行優化移植,才能滿足實際應用的需求。 本文在對H.264標準及其新特性進行詳細介紹后,重點研究了在解碼端如何針對解碼耗時較多的模塊進行改進,然后將算法移植到ARM平臺,并針對平臺特點作出相應優化,最后完成解碼圖象顯示,并給出了測試結果。本文主要完成的工作如下: 詳細分析了H.264的參考軟件JM中解碼流程,并利用測試工具分析了各模塊耗時,針對耗時較多的模塊如插值運算及去塊濾波模塊,提出了對應的改進算法并在H.264的參考軟件JM86上進行了實現,PC測試實驗證明了算法改進的優越性和運算優化的可行性。最后針對ARM平臺,在對程序結構和對應代碼進行優化之后,將其移植到WINCE系統之下,同時給出了WINCE平臺解碼后圖象加速顯示方法,并對最終測試結果與性能做出了評價。
上傳時間: 2013-06-04
上傳用戶:shijiang
隨著科學技術的發展與公共安全保障需求的提高,視頻監控系統在工業生產、日常生活、警備與軍事方面的應用越來越廣泛。采用基于 FPGA 的SOPC技術、H.264壓縮編碼技術和網絡傳輸控制技術實現網絡視頻監控系統,在穩定性、功能、成本與擴展性等方面都有著突出的優勢,具有重要的學術意義與實用意義, 本課題所設計的網絡視頻監控系統由以Nios Ⅱ為核心的嵌入式圖像服務器、相關網絡設備與若干PC機客戶端組成。嵌入式圖像服務器實時采集圖像,采用H.264 編碼算法進行壓縮,并持續監聽網絡。PC機客戶端可通過網絡對服務器進行遠程訪問,接收編碼數據,使用H.264解碼算法重建圖像并實時顯示,使監控人員有效地掌握現場情況, 在嵌入式圖像服務器設計階段,本文首先進行了芯片選型與開發平臺選擇。然后構建圖像采集子系統,采用雙緩存乒乓交換的方法設計圖像采集用戶自定義模塊。接著設計雙Nios Ⅱ架構的SOPC系統,闡述了雙軟核設計中定制連接、內存芯片共享、數據搬移、通信與互斥的解決方法。同時完成了網絡服務器的設計,采用μC/OS-Ⅱ進行多任務的管理與調度, H.264視頻壓縮編解碼算法設計與實現是本文的重點。文中首先分析H.264.標準,規劃編解碼器結構。接著設計了16×16幀內預測算法,并設計宏塊掃描方式,采用兩次判決策略進行預測模式選擇。然后設計4×4子塊掃描方式,編寫整數變換與量化算法程序。熵編碼采用Exp-Golomb編碼與CAVLC相結合的方案,針對除拖尾系數之外的非零系數值編碼子算法,實現了一種基于表示范圍判別的編碼方法。最后設計了網絡傳輸的碼流組成格式,并針對編碼算法設計相應解碼算法。使用VC++完成算法驗證,并進行測試,觀察不同參數下壓縮率與失真度的變化。 算法驗證完成后,本文進行了PC機客戶端設計,使其具有遠程訪問、H.264解碼與實時顯示的功能。同時將H.264 編碼算法程序移植到NiosⅡ中,并將嵌入式圖像服務器與若干客戶端接入網絡進行聯合調試,構建完整的網絡視頻監控系統, 實驗結果表明,本系統視頻壓縮率高,監控圖像質量良好,充分證明了系統軟硬件與圖像編解碼算法設計成功。本系統具有成本低、擴展性好及適用范圍廣等優點,發展前景十分廣闊。
上傳時間: 2013-08-03
上傳用戶:88mao
利用FPGA開發實現H。264和AVC的視頻標準,參考使用。
上傳時間: 2013-09-01
上傳用戶:kytqcool
* 高斯列主元素消去法求解矩陣方程AX=B,其中A是N*N的矩陣,B是N*M矩陣 * 輸入: n----方陣A的行數 * a----矩陣A * m----矩陣B的列數 * b----矩陣B * 輸出: det----矩陣A的行列式值 * a----A消元后的上三角矩陣 * b----矩陣方程的解X
上傳時間: 2015-07-26
上傳用戶:xauthu
(1) 、用下述兩條具體規則和規則形式實現.設大寫字母表示魔王語言的詞匯 小寫字母表示人的語言詞匯 希臘字母表示可以用大寫字母或小寫字母代換的變量.魔王語言可含人的詞匯. (2) 、B→tAdA A→sae (3) 、將魔王語言B(ehnxgz)B解釋成人的語言.每個字母對應下列的語言.
上傳時間: 2013-12-30
上傳用戶:ayfeixiao
1.有三根桿子A,B,C。A桿上有若干碟子 2.每次移動一塊碟子,小的只能疊在大的上面 3.把所有碟子從A桿全部移到C桿上 經過研究發現,漢諾塔的破解很簡單,就是按照移動規則向一個方向移動金片: 如3階漢諾塔的移動:A→C,A→B,C→B,A→C,B→A,B→C,A→C 此外,漢諾塔問題也是程序設計中的經典遞歸問題
上傳時間: 2016-07-25
上傳用戶:gxrui1991
1. 下列說法正確的是 ( ) A. Java語言不區分大小寫 B. Java程序以類為基本單位 C. JVM為Java虛擬機JVM的英文縮寫 D. 運行Java程序需要先安裝JDK 2. 下列說法中錯誤的是 ( ) A. Java語言是編譯執行的 B. Java中使用了多進程技術 C. Java的單行注視以//開頭 D. Java語言具有很高的安全性 3. 下面不屬于Java語言特點的一項是( ) A. 安全性 B. 分布式 C. 移植性 D. 編譯執行 4. 下列語句中,正確的項是 ( ) A . int $e,a,b=10 B. char c,d=’a’ C. float e=0.0d D. double c=0.0f
上傳時間: 2017-01-04
上傳用戶:netwolf
TLC2543是TI公司的12位串行模數轉換器,使用開關電容逐次逼近技術完成A/D轉換過程。由于是串行輸入結構,能夠節省51系列單片機I/O資源;且價格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應用。 TLC2543的特點 (1)12位分辯率A/D轉換器; (2)在工作溫度范圍內10μs轉換時間; (3)11個模擬輸入通道; (4)3路內置自測試方式; (5)采樣率為66kbps; (6)線性誤差±1LSBmax; (7)有轉換結束輸出EOC; (8)具有單、雙極性輸出; (9)可編程的MSB或LSB前導; (10)可編程輸出數據長度。 TLC2543的引腳排列及說明 TLC2543有兩種封裝形式:DB、DW或N封裝以及FN封裝,這兩種封裝的引腳排列如圖1,引腳說明見表1 TLC2543電路圖和程序欣賞 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上傳時間: 2013-11-19
上傳用戶:shen1230