亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于CUDA平臺的AVS視頻編碼應(yīng)用

        2015-11-23 03:12:28顏海峰劉憶寧
        大眾科技 2015年2期
        關(guān)鍵詞:電子科技線程編碼器

        黃 海 鐘 婍 顏海峰 劉憶寧

        (桂林電子科技大學(xué)數(shù)學(xué)與計算科學(xué)學(xué)院,廣西 桂林 541004)

        基于CUDA平臺的AVS視頻編碼應(yīng)用

        黃 海 鐘 婍 顏海峰 劉憶寧

        (桂林電子科技大學(xué)數(shù)學(xué)與計算科學(xué)學(xué)院,廣西 桂林 541004)

        文章通過研究AVS視頻編碼在可編程圖形處理器上實現(xiàn),充分利用圖形處理器的高性能并行運算能力和浮點計算能力加快編碼的處理程。實驗結(jié)果表明,在保證視頻質(zhì)量的同時,大大提升了AVS視頻編碼的速度。

        GPU;視頻編碼;GOP級的并行編碼;CUDA

        1 引言

        AVS(Audio Video coding Standard,音視頻編碼標(biāo)準(zhǔn))是由我國自主制定的、享有自主知識產(chǎn)權(quán)的第二代信源編碼技術(shù)標(biāo)準(zhǔn)。2006年2月,國家標(biāo)準(zhǔn)化管理委員會正式批準(zhǔn)AVS的第二部分(AVS1-P2)即視頻部分為國家標(biāo)準(zhǔn)。AVS視頻標(biāo)準(zhǔn)的編碼效率比以前的MPEG4等視頻編碼標(biāo)準(zhǔn)的編碼效率高。

        H.264/AVC視頻編碼標(biāo)準(zhǔn)的壓縮效率非常高,但是H.264/AVC的這種高壓縮效率的獲得卻是以較高的計算時間復(fù)雜度為代價的,而且H.264編碼算法在CPU上展開了大量的優(yōu)化策略,技術(shù)上也已經(jīng)非常成熟,因此,研究人員開始探索其他一些能提高壓縮編碼效率的方式。近些年來,由于圖形硬件的飛速發(fā)展和更新,GPU(Graphic Processing Unit,圖形處理器)的計算速度也在不斷地提高,此外它還擁有非常強大的并行計算能力與浮點運算能力。2007年6月,NVIDIA公司推出了CUDA(Compute Unified Device Architecture,統(tǒng)一計算設(shè)備架構(gòu))編程模型,該模型在利用GPU的通用計算資源上更加地充分合理[1]。而目前的PC機在實時編解碼高清晰視頻時,其處理器要承擔(dān)的壓力非常大。因此研究以CUDA為基礎(chǔ)的視頻編解碼,對于編解碼時計算時間的減少、整個編碼性能的提高等方面都有著非常重要的現(xiàn)實意義。

        2 解決方案

        無論是音視頻編碼技術(shù)自身還是該產(chǎn)業(yè)的應(yīng)用背景在經(jīng)過了十幾年的發(fā)展之后,都有了許多明顯變化,很多新的方法相繼提出。目前音視頻產(chǎn)業(yè)領(lǐng)域有四個信源編碼標(biāo)準(zhǔn)可供選擇,它們分別是:MPEG-2、MPEG-4、MPEG-4 AVC(簡稱 AVC,也稱JVT、H.264)、AVS。按制訂者來劃分,前三個標(biāo)準(zhǔn)是由MPEG專家組發(fā)展制訂的,第四個標(biāo)準(zhǔn)是我國自主制訂的。按發(fā)展階段劃分,第一個標(biāo)準(zhǔn)屬于第一代信源標(biāo)準(zhǔn),其余三個標(biāo)準(zhǔn)皆為第二代信源標(biāo)準(zhǔn)。按編碼效率這一主要技術(shù)指標(biāo)進行比較:MPEG-4的編碼效率是MPEG-2編碼效率的1.4倍,AVS和AVC的編碼效率相差無幾,都是MPEG-2編碼效率的兩倍多[2]。

        隨著顯卡的進一步發(fā)展以及越來越多的開發(fā)人員參與到GPU的并行計算開發(fā)中來,GPU的并行計算能力和訪存帶寬的速度都有了很大的提高,而且在顯示圖像時GPU還做一些了優(yōu)化處理,它的計算能力實際上已經(jīng)超越了通用的 CPU[3]。如此強大的芯片如果只是拿來作顯卡的話未免太過大材小用了。因此,NVIDIA公司推出了CUDA架構(gòu),它使顯卡除了用于圖像計算以外還有其他的功能。GPU的專長在于密集型數(shù)據(jù)的處理和并行計算,所以在需要大規(guī)模并行計算的領(lǐng)域里CUDA可以大顯身手。通用GPU已經(jīng)能夠達到十萬的線程數(shù)量級,因而,提高GPU的并行計算效率對于提升GOP級的并行計算能力意義重大。

        3 實現(xiàn)方案

        3.1 ASV原理分析

        如圖1所示AVS編碼器的系統(tǒng)結(jié)構(gòu)。不難發(fā)現(xiàn),AVS使用的是一種混合編碼框架,其中結(jié)合了預(yù)測和變換技術(shù),這與H.264的編碼結(jié)構(gòu)非常相似。圖像類型定義為 I幀、P幀、B幀三種,其中I幀的編碼模式只能是幀內(nèi)編碼,P幀和B幀的編碼模式可以是幀間編碼模式和幀內(nèi)編碼模式,兩者區(qū)別在于P幀是前向預(yù)測編碼幀,而B幀是雙向預(yù)測編碼幀。碼流結(jié)構(gòu)從高到低的語法層次依次為:序列、圖像、條帶、宏塊、塊[4]。在這方面上,AVS與 MPEG2 較為類似。AVS1-P2中,塊的尺寸大小為 8×8。原始的視頻信號在進入編碼器后,編碼器將根據(jù)配置參數(shù)對當(dāng)前幀是進行I幀、P幀還是B幀的編碼做出判斷。若當(dāng)前幀是I幀,則只能選擇幀內(nèi)編碼模式。幀內(nèi)編碼只需要參考當(dāng)前幀中重構(gòu)后的宏塊信息而不需要其他幀的已編碼信息作為參考。進入編碼器的一個新的塊和經(jīng)過幀內(nèi)預(yù)測出來的預(yù)測塊做減法運算得到殘差,再進行變換、量化過程將殘差變?yōu)榱炕禂?shù),該量化系數(shù)再通過zig-zag掃描成為一維量化系數(shù),最后經(jīng)過熵編碼就能得到編碼了的碼流。此外,在熵編碼前,通過反量化和反變換等過程,就能使得已經(jīng)量化了的信息得以重構(gòu)這個塊,并在緩存中存儲作為后續(xù)圖像或塊編碼的參考幀[5]。如果是 P幀,則可以有三種編碼模式:SKIP模式、幀內(nèi)模式和幀間模式。官方參考模型是讓P幀遍歷以上三種模式,通過計算率失真代價,得到一種最優(yōu)的編碼模式。與I幀相同,P幀的幀內(nèi)模式也是以視頻序列時間上的相關(guān)性為基礎(chǔ)的,通過參考最近解碼后的I幀或P幀使當(dāng)前待編碼宏塊得到殘差,再經(jīng)過變換、量化和熵編碼步驟得到碼流。 AVS中P幀數(shù)量的最大參考值為2。P幀中塊在 SKIP 模式下編碼后的殘差為 0,因此只需傳輸代表SKIP模式的信息,就可以得出預(yù)測的運動矢量。AVS中的B幀一樣有以上三種編碼模式:SKIP模式、幀內(nèi)模式和幀間模式。但B幀的幀間預(yù)測模式是雙向的,包含有對稱模式(symmetric mode)和直接模式(direct mode)兩種,這是B幀與P幀的不同之處。

        圖1 ASV原理

        3.2 GOP級并行編碼算法

        圖像群組(Group of pictures,GOP)是一組連續(xù)圖像,這些圖像來源于以MPEG編碼的影片或者視訊串流內(nèi)部。

        圖像群組可包含的圖像類型如下:

        ● I-圖像/畫格(intra coded picture,節(jié)點編碼圖像)參考圖像,與一個固定影像類似,并且與其它的圖像類型相獨立。每個圖像群組以此類型的圖像作為開始。

        ● P-圖像/畫格(predictive coded picture,預(yù)測編碼圖像)包含來自之前的 I-畫格或 P-畫格的差異資訊。

        ● B-圖像/畫格(bidirectionally predictive coded pictures,前后預(yù)測編碼圖像)包含來自之前和/或者之后的I-畫格或P-畫格的差異資訊。

        ● D-圖像/畫格(DC direct coded picture,指示編碼圖像)用于快速進帶。

        假設(shè)有兩個B幀,每個GOP可排成IBBPBBP…序列,且一直到視頻結(jié)束都將會保持這一排列順序。IDR圖像是GOP的第一個圖像,且都是I圖像,一個GOP只能有一個IDR圖像,而IDR圖像以后的圖像在進行解碼時決不會引用IDR圖像之前的圖像數(shù)據(jù),這就使得GOP之間的并行有了可能。

        編碼效果的好壞與GOP的長度大小相關(guān)。一定的范圍內(nèi),GOP的長度值越大,每個圖像組中能有更多的B幀和P幀,因而壓縮編碼效率也越高。但是GOP的值也不能取過大,因為會導(dǎo)致編碼質(zhì)量不高,特別是對于場景切換或運動較為劇烈的視頻序列的情況。此外,一個GOP中如果出現(xiàn)了嚴重的丟包現(xiàn)象或者是由其他原因?qū)е碌臄?shù)據(jù)錯位問題,為減少誤碼的發(fā)生,只有通過獲得重新同步,因此要折中考慮GOP的長度值。

        GOP的優(yōu)點:

        ①可擴展性強:能根據(jù)硬件情況適當(dāng)調(diào)整并行線程數(shù)。

        ②線程開銷?。赫麄€并行程序的運行過程只需進行一次Fork,由頻繁派生、合并線程導(dǎo)致的性能損失在很大程度上得到了減少。

        ③加速比高:如果各個線程的負載能夠平衡,那么加速比會比較高。

        ④易于實現(xiàn):每個線程都有比較大的任務(wù)量,線程間無需頻繁的進行數(shù)據(jù)同步,程序?qū)崿F(xiàn)較為容易。

        圖2 GOP級并行編碼

        在開始編碼視頻序列前,要將其分為多個GOP,且每個GOP都要分配一個線程進行編碼。編碼完成后回到主線程,再完成數(shù)據(jù)同步并且輸出AVS碼流。對于非實時編碼來說,最好的選擇是GOP級并行,一方面因為GOP級并行對目標(biāo)碼流的PSNR、碼率等各項指標(biāo)不會造成影響,另一方面由于GOP之間沒有相關(guān)性,且編碼器能對序列中的任意幀進行隨機訪問,因此在編碼前對幀序列的劃分可根據(jù)GOP長度大小。劃分幀序列后,依據(jù)GOP的多少來設(shè)置線程的數(shù)量。而要實現(xiàn)GOP級并行,編碼過程必須要在原始圖像序列數(shù)滿足GOP的長度后才能進行,所以在對實時性有很高要求的應(yīng)用場合,比如在遠程機器人控制、視頻會議系統(tǒng)等情況下,GOP級并行顯然無法滿足要求。

        3.3 GPU并行計算模塊實現(xiàn)原理

        原有的變換編碼采用了整數(shù)DCT變換,根據(jù)之前確定的實現(xiàn)方案,筆者方案的具體實現(xiàn)按照如下的流程圖進行,如圖 3所示:

        圖3 變換編碼并行實現(xiàn)

        主機端在運行函數(shù)后得到關(guān)于當(dāng)前塊的殘差宏塊矩陣。然后程序?qū)z測GPU加速是否已由該編碼器幵啟,或者該客戶端是否有可編程 GPU。如果得到檢測結(jié)果為編碼器沒有開啟 GPU加速,或者無可編程GPU,則編碼流程將按照常規(guī)的步驟進行串行編碼,然后得到--個返回值dc[6],即為變換后的8x8矩陣。如果檢測結(jié)果是編碼器己經(jīng)幵啟了GPU加速并且該客戶端有可編程GPU,則將進行Device端編碼,也即GPU編碼。該編碼流程主要分為以下幾個步驟:(1)在主機端的內(nèi)存上為8x8矩陣分配空間;(2)將主機端的代碼復(fù)制到設(shè)備端GPU的顯存上:這樣我們就在設(shè)備端GPU上得到了大小為8x8的Md矩陣,也即殘差宏塊矩陣;(3)分配Grid和線程Thread,該部分是在主機端分配的,也即指令流需要由CPU產(chǎn)生,然后來操作GPU的行為;(4)核心計算Kernel代碼;(5)將計算的結(jié)果返回。

        而在設(shè)備端GPU上,也存在正變換和反變換兩次變換。對于設(shè)備端GPU的變換代碼,有以下流程,設(shè)備端變換編碼并行實現(xiàn)流程圖如圖4:

        圖4 變換編碼并行實現(xiàn)設(shè)備

        由圖4,當(dāng)設(shè)備端GPU收到開始計算的指令后,首先做準(zhǔn)備工作,即聲明常數(shù)變量DCT[6],用來存放整數(shù)變換核;之后進行如下的計算工作。該步驟的意義在于每一次的計算過程中整數(shù)變換核會被調(diào)用,存有常數(shù)變量則可減少數(shù)據(jù)的流量和調(diào)用的次數(shù),為GPU與CPU的交換省下了帶寬。

        4 測試結(jié)果及分析

        系統(tǒng)設(shè)計流程圖如圖5所示:

        圖5 系統(tǒng)流程圖

        測試環(huán)境為:

        操作系統(tǒng) Windows 7 Professional(64bit)

        處理器 Intel(R) Xeon(R) CPU E5504 @ 2.00GHz×8

        內(nèi)存 12GB

        顯卡 NVIDIA Tesla C1060×2;NVIDIA Quadro FX380×1

        編譯器 Microsoft Visual Studio 2008

        調(diào)試器 Parallel Nsight

        表1給出了本文方案與CPU方案的在性能上的對比,不難發(fā)現(xiàn),本文方案的編碼速率相比CPU方案有了很大的提升,同時,編碼質(zhì)量也比較好,從而實現(xiàn)了高清視頻編碼的效果。

        AVS video coding applications based on CUDA platform

        This paper studies the AVS video coding in programmable graphics processor to take full advantage of the graphics processor, high-performance parallel computing power and floating-point computing power to speed up the process of coding process. Experimental results show that the video quality, greatly enhance the speed of the AVS video coding.

        GPU; video coding ;GOP level parallelism coding; CUDA

        TN76

        A

        1008-1151(2015)02-0013-03

        2015-01-12

        2014年全國大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃(XY290398)。

        黃海,男,廣西玉林人,桂林電子科技大學(xué)數(shù)學(xué)與計算科學(xué)學(xué)院信息計算專業(yè)學(xué)生;鐘婍,女,江西贛州人,桂林電子科技大學(xué)數(shù)學(xué)與計算科學(xué)學(xué)院碩士生,研究方向為信息安全;顏海峰,男,廣西全州人,桂林電子科技大學(xué)數(shù)學(xué)與計算科學(xué)學(xué)院教師,研究方向為信息系統(tǒng)安全;劉憶寧,男,河南鞏義人,桂林電子科技大學(xué)數(shù)學(xué)與計算科學(xué)學(xué)院副教授,博士后,研究方向為應(yīng)用密碼學(xué)與信息安全。

        猜你喜歡
        電子科技線程編碼器
        西安展天電子科技有限公司
        寶雞市普瑞思電子科技有限公司
        2S1廣州弘傲電子科技有限公司
        213B廣州市碼尼電子科技有限公司
        基于FPGA的同步機軸角編碼器
        淺談linux多線程協(xié)作
        基于PRBS檢測的8B/IOB編碼器設(shè)計
        JESD204B接口協(xié)議中的8B10B編碼器設(shè)計
        電子器件(2015年5期)2015-12-29 08:42:24
        多總線式光電編碼器的設(shè)計與應(yīng)用
        Linux線程實現(xiàn)技術(shù)研究
        色系免费一区二区三区| 网站在线观看视频一区二区| 日本一二三区在线观看视频| 风韵丰满熟妇啪啪区老老熟妇| 久久精品国产视频在热| 一二三四在线视频观看社区| 国产亚洲AV无码一区二区二三区| 国产黑色丝袜在线观看网站91 | 26uuu欧美日本在线播放| 久久精品国产自产对白一区| 在线观看亚洲av每日更新影片 | 精品九九视频| 日韩人妻美乳中文字幕在线| 狠色人妻丝袜中文字幕| 97精品久久久久中文字幕| 国产专区国产av| 九九99久久精品午夜剧场免费| 日本女优免费一区二区三区| 国产精品久久久久一区二区三区| 国产亚洲日韩在线三区| 久久精品中文字幕久久| 蜜桃夜夜爽天天爽三区麻豆av| 亚洲精品天天影视综合网| 特级毛片a级毛片在线播放www| 视频一区视频二区亚洲免费观看| 伊人久久大香线蕉av色婷婷色| 久久成人影院精品777| 少妇三级欧美久久| 亚洲视频一区二区蜜桃| 日本在线观看一区二区三| 亚洲综合无码无在线观看| 亚洲中文字幕巨乳人妻| 精品人妻在线一区二区三区在线 | 久久精品国产亚洲综合av| 亚洲精品tv久久久久久久久久| 久久国产成人精品国产成人亚洲| 蜜桃视频中文字幕一区二区三区| 免费在线观看av不卡网站 | 久久99精品国产麻豆| 亚洲av午夜国产精品无码中文字| 国产精品无码片在线观看|