[發(fā)明專利]HEVC/H.265的DCT變換和反變換的SIMD優(yōu)化方法有效
| 申請?zhí)枺?/td> | 201410608208.1 | 申請日: | 2014-10-31 |
| 公開(公告)號: | CN104320668B | 公開(公告)日: | 2017-08-01 |
| 發(fā)明(設(shè)計)人: | 張小云;黎凌宇;高志勇;陳立 | 申請(專利權(quán))人: | 上海交通大學(xué) |
| 主分類號: | H04N19/625 | 分類號: | H04N19/625;H04N19/88;H04N19/436 |
| 代理公司: | 上海漢聲知識產(chǎn)權(quán)代理有限公司31236 | 代理人: | 徐紅銀,郭國中 |
| 地址: | 200240 *** | 國省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | hevc 265 dct 變換 simd 優(yōu)化 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及視頻編碼技術(shù)領(lǐng)域,具體地,涉及一種HEVC/H.265視頻編碼標(biāo)準(zhǔn)的DCT變換和反變換的SIMD加速優(yōu)化方法(基于Tilera平臺),利用Tilera的SIMD指令集實現(xiàn)HEVC的DCT變換和反變換模塊,提高運行速度。
背景技術(shù)
隨著視頻內(nèi)容的增長和視頻產(chǎn)品的迅速發(fā)展,視頻內(nèi)容產(chǎn)業(yè)鏈面臨更大的壓力,目前AVC(Advanced Video Coding)視頻壓縮技術(shù)已經(jīng)不能滿足視頻傳輸?shù)囊螅咝У囊曨l壓縮技術(shù)應(yīng)運而生。不僅如此,未來視頻市場趨于更高水平的要求已經(jīng)超出了目前AVC編碼能力的范圍,比如3D TV和4K TV。對于4K TV,即使使用目前H.264方式編碼,也需要24-32M碼率,AVC已經(jīng)成為4K TV業(yè)務(wù)發(fā)展的瓶頸。在此背景下,高效視頻編碼(High Efficiency Video Coding,HEVC)這種新的視頻編碼標(biāo)準(zhǔn)應(yīng)運而生。HEVC的發(fā)展最早追溯到2004年,經(jīng)過近十年的發(fā)展,HEVC于2012年2月形成完整的委員會標(biāo)準(zhǔn)草案,并于2013年1月正式成為國際標(biāo)準(zhǔn)。HEVC的目標(biāo)是編碼效率比AVC提高50%,復(fù)雜度比AVC復(fù)雜2到10倍。HEVC未來的業(yè)務(wù)主要面向高清、超高清、3D TV,數(shù)據(jù)量比以往視頻大得多,另外HEVC要求大大提高視頻壓縮比,而高壓縮算法是以增加算法復(fù)雜度為代價的,考慮到這兩個方面的因素,HEVC編碼器對系統(tǒng)的計算性能提出了更高的要求。
為降低HEVC編碼復(fù)雜度,通常有算法優(yōu)化、指令集優(yōu)化、并行優(yōu)化等方法,其中指令集優(yōu)化是利用計算平臺的指令集實現(xiàn)計算模塊,SIMD(single instruction multiple data)單指令多數(shù)據(jù)技術(shù)能在一個指令周期內(nèi)并行處理多個數(shù)據(jù)的計算,相比于常規(guī)的實現(xiàn)方案能大大減少指令周期,提高運行速度,同時能保證計算結(jié)果準(zhǔn)確無誤。在視頻編碼中,SIMD技術(shù)廣泛應(yīng)用于密集數(shù)據(jù)計算,如亞像素插值、SAD、DCT/IDCT、計算殘差等模塊。
在Tilera平臺上實現(xiàn)HEVC編碼器,我們移植了HEVC參考代碼HM的DCT/IDCT實現(xiàn)方法,HEVC的DCT模塊相比于H.264復(fù)雜度大大提升。H.264的變換系數(shù)為1和2,H.264的變換只需要簡單的移位和加法計算。HEVC支持4x4至32x32的變換塊,此外HEVC的DCT系數(shù)數(shù)值更大、更復(fù)雜,這意味著HEVC的DCT變化需要執(zhí)行多次乘法,而且中間變量的數(shù)值更大,需要更大的位寬。在執(zhí)行豎直方向的DCT變換時,中間變量的值超出了16bit的存儲范圍,為17-19bit,如果用32bit保存中間變量,則數(shù)據(jù)處理的并行水平大打折扣。在Intel和Arm上已有的一些HEVC的DCT和IDCT的SIMD實現(xiàn)方法,豎直方向的DCT變換的速度要低于水平方向的DCT變換。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種HEVC/H.265的DCT變換和反變換的SIMD優(yōu)化方法,所述方法針對Tilera平臺上常規(guī)的C語言實現(xiàn)的HEVC的DCT和IDCT模塊計算復(fù)雜度高、編碼速度慢的問題,利用Tilera的SIMD指令集實現(xiàn)HEVC的DCT變換和反變換模塊,提高運行速度。
為實現(xiàn)以上目的,本發(fā)明提供一種HEVC/H.265的DCT變換和反變換的SIMD優(yōu)化方法,包括如下步驟:
第一步,將一維DCT輸入數(shù)據(jù)從內(nèi)存裝載進寄存器,視為矢量數(shù)據(jù);
第二步,對矢量數(shù)據(jù)重新排列組合,執(zhí)行蝶形運算,對輸入數(shù)據(jù)逐級加減,計算出中間變量矢量;
第三步,如果該一維DCT變換是水平方向變換,直接跳到第五步;
第四步,對中間變量進行右移舍入運算,以限制其位寬;
第五步,將中間變量矢量和對應(yīng)的系數(shù)矢量進行點乘運算;
第六步,將點乘運算的結(jié)果進行重新排列組合,執(zhí)行右移舍入,輸出結(jié)果保存至目標(biāo)內(nèi)存。
優(yōu)選地,所述第二步中,對輸入數(shù)據(jù)的并行加減,完成蝶形運算,進行逐級多次的并行加減法,計算出用于點乘計算的中間變量矢量。
優(yōu)選地,所述第四步中,一維DCT變換對中間變量進行舍入預(yù)處理,為了保持并行性,達到較好的加速效果,對于豎直方向的一維DCT變換,將中間變量右移舍入使其位寬在16bit內(nèi);具體的右移計算如式(1):
y=(x+(1<<(MIVO-1)))>>MIVO(1)
其中:x為需要進行右移舍入的數(shù)據(jù),MIVO為中間變量最大階數(shù),y是執(zhí)行完右移舍入后的結(jié)果;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于上海交通大學(xué),未經(jīng)上海交通大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410608208.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





