国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

并行處理的H.264到AVS轉(zhuǎn)碼器設(shè)計

發(fā)布時間:2010-8-2 11:58    發(fā)布者:lavida
關(guān)鍵詞: AVS , 并行處理 , 轉(zhuǎn)碼器
1 引言

轉(zhuǎn)碼應(yīng)用涉及視頻服務(wù)器、通用多媒體訪問設(shè)備、監(jiān)控系統(tǒng)、機頂盒、DVD等多媒體設(shè)備和系統(tǒng)。其基本原則是在環(huán)境和處理能力受限的情況下,在碼流轉(zhuǎn)換的質(zhì)量和復(fù)雜性之間取得最佳折衷。  

實現(xiàn)的關(guān)鍵是對壓縮視頻碼流中的壓縮數(shù)據(jù)進行復(fù)用,避免重新編碼中的復(fù)雜運算。研究中的轉(zhuǎn)碼技術(shù)主要包括:碼率轉(zhuǎn)換、分辨率轉(zhuǎn)換、幀率轉(zhuǎn)換、語法轉(zhuǎn)換等。  

MediaCoder是目前比較優(yōu)秀的一款轉(zhuǎn)碼軟件,它將眾多來自開源社區(qū)優(yōu)秀的音視頻軟件整合于一個友好的圖形界面。它可以直接、批量地在眾多音頻視頻壓縮格式和容器格式之間轉(zhuǎn)換,支持的格式包括H.264,Xvid,MPEG-1/2/4等,但是沒有將AVS視頻編碼標(biāo)準(zhǔn)融合進來。本文介紹的軟件解碼器實現(xiàn)了H.264到AVS兩個視頻編碼標(biāo)準(zhǔn)的轉(zhuǎn)碼。針對這兩個標(biāo)準(zhǔn)的硬件轉(zhuǎn)碼器還在研發(fā)之中,上海龍晶微電子有限公司基于AVS標(biāo)準(zhǔn)提出了國內(nèi)第一款具有完全自主知識產(chǎn)權(quán)的高清電視解碼芯片DS10000。雙核技術(shù)的廣泛應(yīng)用可用并行處理辦法加快速度。視頻轉(zhuǎn)碼可分為同類視頻轉(zhuǎn)碼技術(shù)和不同類視頻轉(zhuǎn)碼技術(shù)。  

2 像素域和變換域轉(zhuǎn)碼結(jié)構(gòu)  

圖1是空域轉(zhuǎn)碼器結(jié)構(gòu)框圖,將H.264碼流進行熵解碼和反量化,然后逆DCT變換,得到像素域的像素值;根據(jù)解碼的運動矢量和頻域殘差數(shù)據(jù)進行運動估計(Motion Estimation,ME),根據(jù)得到的運動矢量進行運動補償(Motion Compensation,MC);再將得到的殘差數(shù)據(jù)進行變換和量化、熵編碼形成AVS碼流。  



  




圖2是變換域轉(zhuǎn)碼器結(jié)構(gòu)框圖,轉(zhuǎn)碼中不需要解得像素域的像素值,H.264碼流經(jīng)過熵解碼和反量化,在頻域中進行補償,得到頻域中重構(gòu)的HT系數(shù)值,然后由H.264中的4×4HT系數(shù)變換成AVS中的8×8HT系數(shù),根據(jù)H.264中解碼得到的運動矢量和HT系數(shù)值來進行運動估計ME,由得到的8×8HT系數(shù)值在頻域進行誤差補償;進行量化和熵編碼形成AVS碼流。   

3 多線程轉(zhuǎn)碼器設(shè)計


應(yīng)用程序加載到內(nèi)存中,給出一個執(zhí)行點稱為線程。線程是系統(tǒng)需要分配CPU時間的基本執(zhí)行單元。單個進程在任何時刻可包含多個線程,它們可同時執(zhí)行進程地址空間內(nèi)的代碼。   

1) 子線程的創(chuàng)建與終止  

VC++應(yīng)用程序的主線程在創(chuàng)建應(yīng)用程序時生成,創(chuàng)建子線程可通過調(diào)用CreateThread函數(shù)創(chuàng)建,其格式:  
HANDLE = CreateThread (LPSECURITY ATTRIBUTES Ipsa,DWORD cbstack,LPTHREAD START ROUTINE lpStartAd2dr,LPVOIDlpvThreadParm,DWORD fdwCreate,LPDWORD lpIDThread);  
在本轉(zhuǎn)碼器中,子線程創(chuàng)建方法如下:  
slot=0; hThrds[slot]=CreateThread(NULL,0,ThreadFunc,(LPVOID)slot,0,&threadID).  

2) 轉(zhuǎn)碼器的多線程實現(xiàn)結(jié)構(gòu)  

由圖1和圖2可以看出,轉(zhuǎn)碼器的解碼和編碼部分是相對獨立的。雖然在編碼端要用到解碼得到的運動矢量、分塊模式還有頻域中的系數(shù)等信息,如果是單線程程序的話,在編碼到這一幀時,解碼程序就要停止,只有當(dāng)編碼這一幀的程序執(zhí)行完后,才能開始執(zhí)行下一幀的解碼程序。所以,在解碼時編碼程序停止,在編碼時解碼程序停止,這將花費大量的時間來等待。  

如果是在雙核或者多核計算機上,可采用并行處理的方法,可啟動兩個或多個線程,一個解碼線程和一個編碼線程,在編碼第n幀時,同時解碼第n+1幀,達到解碼和編碼同時執(zhí)行的效果。考慮到對系統(tǒng)內(nèi)存的要求,這里設(shè)置緩存區(qū)的大小為2,多線程轉(zhuǎn)碼器實現(xiàn)框架如圖3所示。  




多線程轉(zhuǎn)碼器執(zhí)行順序如下:當(dāng)解碼第n幀完成,判斷第n-1幀是否已經(jīng)編碼完成,如果沒有完成,則等待編碼第n-1幀直到它完成,如果第n-1幀已完成,則開始解碼第n+1幀,并同時開始編碼第n幀;當(dāng)?shù)趎+1幀解碼完成時,再判斷第n幀編碼是否完成,若沒完成,則等待它完成,若完成,則開始編碼第n+1幀,然后令n=n+2,進行循環(huán)。所以,實現(xiàn)了編碼和解碼并行處理,解碼當(dāng)前幀和編碼前一幀是同時進行的。

3) 多線程轉(zhuǎn)碼器的具體實現(xiàn)方法  

緩存區(qū)大小設(shè)置為2,奇數(shù)幀共用一組變量,偶數(shù)幀共用一組變量。H.264中解碼的當(dāng)前幀序號用img->number表示,AVS編碼端編碼的當(dāng)前幀序號用img_avs->number表示。在解碼第n+2幀時,decode_slice()解碼一幀的函數(shù)前面加上判斷是否編碼完第n幀:  
if (img->number=(img_aVs->number+2))WaitForSingleObject(hThrds[0],INFINITE);  
解碼第n+2幀完成時,等待編碼線程結(jié)束,Wait-ForSingleObjeet(hThrds[0],INFINITE),然后開始一個新的進程:  
slot=0;hThrds[0]=CreateThread(NULL,0,ThreadFunc,(LPVOID)slot,0,&threadID)  
在整個程序執(zhí)行完之前,等待線程執(zhí)行完以后,再結(jié)束整個轉(zhuǎn)碼程序。  

4 仿真結(jié)果  

測試序列:foreman,格式為CIF(352×288),編碼成IPPPPIPPP…,264量化系數(shù)為28,AVS端編碼的量化系數(shù)為36,編碼幀數(shù)為100幀。  

計算機配置:Intel奔騰1.6 GHz,內(nèi)存1 Gbyte,Win-dows XP sp2操作系統(tǒng)。  




對于串行單線程的方式,平均轉(zhuǎn)碼一幀的時間為113.57 ms;并行多線程的方式,平均轉(zhuǎn)碼一幀的時間為80.19 ms。所以使用多線程編碼的方式,由于編碼和解碼同時執(zhí)行,時間可節(jié)約41.63%,轉(zhuǎn)碼速度是單線程編碼方式的1.42倍。這是因為進程調(diào)度也要花費一定時間,所以雙線程編碼的速度沒有達到單線程編碼的2倍。本文中,考慮到對存儲的要求,緩存區(qū)僅設(shè)置為2,使用的是一種乒乓式的訪問策略,解碼端和編碼端在每一時刻都分別只訪問一組存儲空間,不會同時訪問一組存儲空間。如果把緩存區(qū)設(shè)置得更大一點,速度將還會有大幅度的提高。
本文地址:http://m.qingdxww.cn/thread-18516-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲综合五月天欧美 | 亚洲精品亚洲人成在线麻豆 | 最新亚洲精品 | 国产精自产拍久久久久久蜜 | 一区二区三区四区亚洲 | 国产高清国内精品福利99久久 | 91精品国产麻豆91久久久久久 | 国产在线视频国产永久视频 | 久久婷婷一区二区三区 | 久久精品国产72国产精福利 | 成人午夜影视全部免费看 | 国产高清国内精品福利色噜噜 | 精品视频久久久 | 91精品久久久久久久99蜜桃 | 久久久久久久国产视频 | 思思久久99热只有频精品66 | 青青综合网| 91精品欧美一区二区综合在线 | 免费观看亚洲 | 成年人免费在线视频 | 久久九九精品一区二区 | 欧美三级视频 | 91精品国产肉丝高跟在线 | 91入口免费网站大全 | 看黄网站免费 | 色综合久久88色综合天天小说 | 亚洲人免费 | 这里只有精品视频 | 男女爱视频免费高清在线观看 | 国产精品黄页在线播放免费 | 在线欧洲成人免费视频 | 欧美成人性生活视频 | 亚洲国产成人综合精品2020 | 欧洲日韩视频二区在线 | 国产精品小黄鸭一区二区三区 | 亚洲欧洲日本在线 | 男女污污无遮挡免费观看 | 人成免费网站 | 亚洲欧美一区二区三区在线观看 | 99久久免费看国产精品 | 久久99精品视频 |