250 likes | 431 Views
以 OpenMP 設計 H.264 視訊編碼平行運算系統. 報告者 : 何敬傑 指導教授 : 陳弘明. 報告大綱. 研究背景 研究 動機 研究 目的 預期結果 應用技術 未來發展. 研究背景. H.264/AVC 視訊編碼標準 數位電視 網路行動視訊 影音傳送 儲存媒體. 舉例來說:一個 彩色 視訊 影像 ,每秒播放三十張的 1920 x 1080 格式畫面,將需要 1920 * 1080 像素 / 畫面張數 * 3 位元 / 像素 * 30 畫面 / 秒 =186,624,000 位元 / 秒 。. 研究背景. DCT 轉換. 熵編碼.
E N D
以OpenMP設計H.264視訊編碼平行運算系統 報告者:何敬傑 指導教授:陳弘明
報告大綱 • 研究背景 • 研究動機 • 研究目的 • 預期結果 • 應用技術 • 未來發展
研究背景 • H.264/AVC視訊編碼標準 • 數位電視 • 網路行動視訊 • 影音傳送 • 儲存媒體 • 舉例來說:一個彩色視訊影像,每秒播放三十張的1920 x 1080格式畫面,將需要 • 1920 * 1080 像素/畫面張數*3 位元/像素*30 畫面/秒 =186,624,000位元/秒。
研究背景 DCT轉換 熵編碼 量化 緩衝器 儲存畫面 + 輸入 輸出 _ 反量化 參考畫面 反DCT轉換 + + 儲存畫面 (I,P) 運動補償 運動向量 運動估計 參考畫面 Reference frame 欲編碼畫面 Current frame 佔了60%~80%執行時間
研究背景 (i+k,j+l) (u,v) 參考畫面(ft-1) 目前畫面(ft) N:區塊大小 ex: 16 x 16、8 x 8 、 4 x 4 (u,v): 移動搜尋視窗之座標
研究背景 • 平行化於共享記憶體(可擁有個別記憶體空間) • 擴充於現有程式碼(C/C++、Fortran) • 需載入Header File(omp.h) • 混合併行編程模型構建的應用程序
研究背景 • 使用限制 • 程式中只有彼此不相關的敘述以及可以獨立執行的任務才能被平行化。 • 程式碼必須經過適當的修改才能被平行執行。 • 觀念 • 一個程序(Process)被執行時至少要有一個執行緒(Thread),但也可同時擁有多個執行緒來進行處理。 • 程序間的資源是彼此獨立不共用的,但是在同一程序下的所有執行緒共同分享該程序的所有資源。
研究背景 主執行序 平行執行序
差異 • 選用的 API 與實際執行程式的平臺架構有關。 • 共享記憶體 適用API: OpenMP、Pthreads
差異 • 選用的 API 與實際執行程式的平臺架構有關。 • 分散式記憶體 適用API: MPI (Message Passing Interface)
差異 • 選用的 API 與實際執行程式的平臺架構有關。 • 異質裝置結構(GPGPU) 適用API: CUDA、OpenCL、與 DirectCompute
Loop Construct • 使用限制 • 迴圈的迭代次數必須是可數的,且有明確的整數型態初始值與終止條件,每次步進的增減幅度也必須是固定的整數。 • 迴圈中每個被切割出來的部份在運算上必須是獨立地,即計算過程中不需要用到其它部分所產生的資訊,並且執行各個部分可以不必按照順序。 • 迴圈內不能有跳出迴圈的敘述。
Loop Construct 主執行序 平行執行序
研究動機 • 多核心電腦普及化 • 多核心電腦已非常容易取得 • 演算法減少視訊編碼的時間方式通常犧牲微量品質 • 使用平行運算可保有品質也可以減少時間
研究目的 • 使用OpenMP多核心平行處理技術達到減少視訊編碼時間且品質保持原來水準。
預期結果 • 在保有原本品質的情況下,時間降低。 • 編碼時間與核心數量呈反比。
應用技術 • JM • H.264視訊編碼的環境 • MEPackage • 視訊編碼中僅運行運動估計的測試環境 • OpenMP • 多核心平行化處理技術 • Full Search • 完全搜尋演算法 • 正常情況下品質最佳
未來發展 • 若單機測試完成,則可以開始使用不同架構的平行化處理,如MPI、Hadoop…等等多機平行化技術。 • 若是單一演算法成功,可分配給不同核心做不同演算法,取得該區塊最佳解。