• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      JPEG XR在S3C2410A上的實現(xiàn)與優(yōu)化

      2012-01-31 05:21:20陳自剛朱海華
      電視技術(shù) 2012年13期
      關(guān)鍵詞:編解碼碼流存儲器

      陳自剛,朱海華

      (1.南陽理工學(xué)院 計算機與信息工程學(xué)院,河南 南陽473004;2.南陽師范學(xué)院 計算機與信息技術(shù)學(xué)院,河南 南陽473061)

      JPEG XR標(biāo)準(zhǔn)采用多種先進的圖像壓縮技術(shù),例如采用雙正交重疊變換(Lapped Biorthogonal Transform,LBT)[1-3]代替離散余弦變換實現(xiàn)圖像無損表示,且編解碼處理過程所需要的存儲空間很小。JPEG XR采用的全整數(shù)運算大大降低了計算復(fù)雜度。另外,編解碼算法合二為一,既能處理無損轉(zhuǎn)換又能實現(xiàn)有損壓縮。上述特征使得JPEG XR易于在嵌入式平臺上實現(xiàn)[4-5]。

      目前JPEG XR編解碼算法的版本為JPEG XR reference software 1.8(September 2009),將編解碼算法合二為一,根據(jù)參數(shù)不同實現(xiàn)編碼和解碼[6]。

      1 硬件系統(tǒng)結(jié)構(gòu)及流程

      Samsung公司推出的ARM芯片S3C2410A內(nèi)部結(jié)構(gòu)復(fù) 雜、功 能 強 大[7]。S3C2410A芯 片 基 于16/32位ARM920T內(nèi)核,采用五級流水線和哈佛結(jié)構(gòu),是高性能和低功耗的硬宏單元,具有獨立的16 kbyte指令緩存以及16 kbyte數(shù)據(jù)緩存。支持USB HOST模式,支持4通道DMA模式,支持TFT彩色顯示屏最大虛擬屏大小4 Mbyte,64 k色彩模式下最大的虛擬屏為2 048×1 024。存儲管理器(MMU)支持大/小端模式,有8個存儲器bank,每個bank支持尋址128 Mbyte,共計能尋址1 Gbyte。其硬件系統(tǒng)結(jié)構(gòu)如圖1所示。

      圖1 硬件系統(tǒng)結(jié)構(gòu)

      盡管S3C2410A具有8通道的多路復(fù)用10位的A/D轉(zhuǎn)換器,最大支持500 ksample/s(千采樣/秒)。但若結(jié)合CCD進行圖像的采集與轉(zhuǎn)換,還是稍顯遜色。另外,A/D轉(zhuǎn)換器連接在低速的APB BUS上,而且S3C2410A上的4通道的DMA不以ADC采集信息作為數(shù)據(jù)源,只能借助于處理器實現(xiàn)A/D后的信息到內(nèi)存的傳送,整個系統(tǒng)的效率會降低。所以借助CMOS實現(xiàn)圖像采集并傳輸至USB接口,這方面技術(shù)很成熟。

      系統(tǒng)加電時,以外部中斷方式向S3C2410A的中斷控制器發(fā)送“圖像采集”中斷請求,調(diào)用基于USB接口的圖像采集中斷服務(wù)程序,啟動CMOS進行圖像采集,同時啟動DMA傳輸,實現(xiàn)通過內(nèi)部AHB總線將原圖像傳送至SRAM存儲器中的緩沖區(qū)的過程,DMA傳輸結(jié)束時向中斷控制器發(fā)送中斷請求(INT_DMA0)。ARM920T內(nèi)核開始執(zhí)行JPEG XR編碼器(以中斷服務(wù)程序的形式存放),對原圖進行編碼,生成基于空間模式的碼流并存放在SDRAM中。編碼結(jié)束后通過軟中斷(在JPEG XR編碼器代碼尾部)形式,調(diào)用解碼中斷服務(wù)程序,再通過軟中斷形式,調(diào)用顯示中斷服務(wù)程序,將圖像顯示在TFT屏幕上。

      2 在S3C2410A上實現(xiàn)JPEG XR編解碼

      2.1 S3C2410A上實現(xiàn)JPEG XR編解碼流程

      確定JPEG XR實現(xiàn)平臺之后,接下來要做的就是編寫JPEG XR編解碼器的代碼并移植到S3C2410A平臺上。具體流程如圖2所示。

      圖2 基于S3C2410A的JPEG XR編解碼流程

      如果只是進行程序代碼移植,則最終的JPEG XR編解碼器的效率將會很低,因此必須根據(jù)JPEG XR編解碼器和S3C2410A特點進行優(yōu)化。

      首先分析JPEG XR編解碼器,根據(jù)在特定S3C2410A系統(tǒng),進行編解碼代碼的調(diào)整。數(shù)據(jù)類型調(diào)整為32位有符號整數(shù),根據(jù)前述實現(xiàn)外部的RGB24到內(nèi)部的YUV 4∶4∶4的分量變換和比特深度變換,進行函數(shù)簡化,內(nèi)存空間建立不同的多塊區(qū)域以存儲外部圖像緩沖信息和不同編解碼階段的緩沖信息進行相應(yīng)的分配。從而使得JPEG XR編解碼器在移植過程中,減少誤差,滿足實際的JPEG XR編解碼要求。然后構(gòu)建ARM-Linux交叉編譯工具(因為JPEG XR編解碼器使用Glib C庫,所以構(gòu)建ARMLinux而非ARM-ELF交叉編譯工具),為了提高JPEG XR編解碼效率,構(gòu)建目標(biāo)機為S3C2410A的交叉編譯工具,編譯生成適合于S3C2410A工作在ARM狀態(tài)的32位字對齊的ARM指令,并進行相應(yīng)的優(yōu)化。最后移植到S3C2410A上并測試JPEG XR采集過程與顯示過程。

      2.2 JPEG XR編解碼代碼簡化

      為提高JPEGXR編解碼效率,需要對原C語言代碼進行簡化,去除不相關(guān)的函數(shù)和過程操作以減少代碼量,同時對C代碼進行優(yōu)化。

      下面介紹JPEGXR編碼過程[8],如圖3所示。

      圖3 JPEG XR編碼過程

      編碼過程首先對原始圖像進行Pre-scaling,為提高JPEG XR編解碼效率,采用32位定點整數(shù)數(shù)據(jù)類型。此處理步驟應(yīng)用32 bit-signed integer(BD32S),其他的功能函數(shù)即可刪除。

      盡管JPEG XR編解碼算法支持多種外部圖像格式,但其內(nèi)部只定義了6種圖像格式:Y、YUV 4∶2∶0、YUV 4∶2∶2、YUV 4∶4∶4、n通道和YUVK[5]。設(shè)定來自于外部CMOS的圖像格式為RGB24,內(nèi)部圖像格式為YUV 4∶4∶4,采用以下分量變換實現(xiàn)外部圖像格式RGB24到內(nèi)部圖像格式Y(jié)UV 4∶4∶4的轉(zhuǎn)換,該變換無損壓縮分量變換,其轉(zhuǎn)換關(guān)系[5]為

      圖像還原時,可以由上述轉(zhuǎn)換關(guān)系的逆實現(xiàn):YUV 4∶4∶4轉(zhuǎn)換為RGB24。

      Color conversion過程,除了保留功能函數(shù)function FwdColorFmtConvert1()實現(xiàn)RGB到Y(jié)UV 4∶4∶4格式轉(zhuǎn)換外,其他功能函數(shù)忽略。

      Transform過程,編碼器采用兩級疊加轉(zhuǎn)換,這里選擇的是2×2 Hadamard transform:T2x2h(),其他轉(zhuǎn)換形式忽略。

      FCT操作有2種形式FCT4x4 function和FCT2x2(),而FCT2x2()與T2x2h()完全一致,所以這個步驟可以忽略。

      有4種可選功能函數(shù)確定在Transform過程中使用的overlap pre-filters情況,如前所述,構(gòu)造轉(zhuǎn)換為T2x2h(),故選擇function T2x2hEnc()來實現(xiàn)。

      根據(jù)如前所述的相關(guān)配置,其他過程也進行相應(yīng)簡化,即盡量縮小編碼器體積。

      碼流結(jié)構(gòu)有2種基本模式:空間模式和頻率模式。可以采用空間模式,宏塊數(shù)據(jù)按照光柵掃描順序輸出,每個宏塊的碼流安排在一起,每個分割塊的碼流按照宏塊順序輸出,編碼過程中各階段處理的信息量很小,使用S3C2410A內(nèi)的16 kbyte的數(shù)據(jù)Cache足以,也可以采用頻率模式。需要說明的是,空間模式和頻率模式的轉(zhuǎn)換不需要緩存整幅圖像然后再轉(zhuǎn)換,而是以分割塊為單位進行二者模式之間的轉(zhuǎn)換,故模式轉(zhuǎn)換需要的緩存很小。解碼過程只需要緩存幾排宏塊信息,在碼流形成過程中解碼時,使用數(shù)據(jù)Cache就能緩存這些宏塊信息,不需要緩存整個圖片碼流,即不需要將整個圖片碼流緩存到存儲器上。

      JPEG XR解碼過程是圖3的逆過程,其代碼簡化過程類似。

      2.3 數(shù)據(jù)塊定義與存儲器分配

      S3C2410A的存儲控制器提供了訪問外部存儲器所需要的控制信號[9]。根據(jù)需要,數(shù)據(jù)類型定義為32位有符號定點整數(shù),通過總線控制器OM[1:0]設(shè)定為(10)2,使得總線工作在32 bit的總線寬度,且工作在32位模式時對基本字長32位字按照小端(Little endian)的方式存儲。

      存儲控制器共有8個bank,其中前6個bank是只讀存儲器(ROM)和靜態(tài)隨機存取存儲器(SRAM)的bank。剩余2個bank除支持ROM和SRAM外,還支持SDRAM。每個bank的尋址空間范圍128 Mbyte,8個bank總共的尋址空間范圍為1 Gbyte。所有的訪問周期都是可編程的,且可以通過插入wait時鐘周期來延長總線訪問周期。

      用4片128 k×8的EPROM存儲器芯片,采用位擴展形式構(gòu)造128 k×32的ROM存儲體。用2片128 k×16的SRAM存儲器芯片為1組采用位擴展形式構(gòu)造128 k×32的SRAM存儲體,多組128 k×32的SRAM存儲體采用字?jǐn)U展形式構(gòu)造更大的32位SRAM存儲體。采用多體交叉存取技術(shù),可以有效地提高總線利用率,有效提高存儲器的存取速度。

      通過分析編解碼系統(tǒng)的特征發(fā)現(xiàn),其任意階段產(chǎn)生的數(shù)據(jù)需要很少的緩存空間(在這里使用S3C240A內(nèi)的16 kbyte的數(shù)據(jù)高速緩存),并且所有的操作都能SIMD指令化。數(shù)據(jù)塊定義和存儲器分配如表1所示。

      3 優(yōu)化與測試

      3.1 代碼優(yōu)化

      在嵌入式系統(tǒng)中的程序代碼的優(yōu)化,主要是根據(jù)嵌入式系統(tǒng)S3C2410A的硬件本身特點,對簡化后JPEG XR編解碼代碼進行匯編級別的優(yōu)化。主要從3點進行基于S3C2410A的JPEG XR編解碼代碼優(yōu)化。

      表1 數(shù)據(jù)塊定義和存儲器分配

      1)S3C2410A采用五級流水線結(jié)構(gòu),通過調(diào)整指令順序或者插入wait時鐘周期,避免相鄰指令對寄存器或者存儲器等結(jié)構(gòu)相關(guān)的對象進行操作,避免數(shù)據(jù)相關(guān)或因循環(huán)或者轉(zhuǎn)移而產(chǎn)生的控制相關(guān),從而提高流水線的性能。

      2)S3C2410A擁有16 kbyte指令緩存和16 kbyte數(shù)據(jù)緩存,合理組織JPEG XR編解碼代碼在存儲器的存放位置,提高Cache命中率,從而提高編解碼效率。

      3)S3C2410A擁有16個32位的寄存器,匯編過程中合理高效地利用這些寄存器,可以提高編解碼效率。

      3.2 用time進行時間測試

      time命令結(jié)果由3行組成:real,user,sys。real表示從程序開始到程序執(zhí)行結(jié)束時所消耗的時間,包括CPU的用時。CPU用時被劃分為user和sys兩塊。user值表示程序本身,及其所調(diào)用的庫中的子例程使用的時間。sys值是由程序直接或間接調(diào)用的系統(tǒng)調(diào)用執(zhí)行的時間。圖4a是對JPEG XR編解碼直接交叉編譯后生成的JPEGXR.exe簡單移植到S3C2410A上編碼1個500×500的RGB888圖像的時間;圖4b是基于S3C2410A定制并優(yōu)化的JPEG XR編解碼交叉編譯后生成的JPEGXR.exe移植到S3C2410A上編碼1個500×500的RGB888圖像的時間。其定制和優(yōu)化后的運行時間明顯降低。

      圖4 time命令測試的運行時間

      4 總結(jié)

      雖然從技術(shù)上看,JPEG XR是一種很優(yōu)秀的圖片格式??墒且呀?jīng)流行的圖片格式幾乎占據(jù)了數(shù)字圖像領(lǐng)域的各個角落。要想在數(shù)字設(shè)備上普遍應(yīng)用,任重而道遠。本文構(gòu)建了JPEG XR編解碼器的硬件系統(tǒng),根據(jù)需要簡化了JPEG XR編解碼程序,并進行了基于S3C2410A的定制與優(yōu)化,實現(xiàn)對采集的RGB格式圖像進行JPEG XR編碼和解碼過程。JPEG XR編解碼在S3C2410A上的實現(xiàn),將有助于推動這一新圖像標(biāo)準(zhǔn)的推廣和應(yīng)用。

      [1]CHEN L Z,WANG H X.LBT based low complexity image compression method[C]//Proc.ICPR 2006.[S.l.]:IEEE Press,2006:941-944.

      [2]CHENG Lizhi,CHEN Huowang.Integer lapped biorthogonal transform[C]//Proc.International Conference on Image Processing,2001.[S.l.]:IEEE Press,2001:471-474.

      [3]TRAN T D,QUEIROZ R L,NGUYEN T Q.The variable-length generalized lapped biorthogonal transform[C]//Proc.International Conference on Image Processing,1998.[S.l.]:IEEE Press,1998:697-698.

      [4]JTC 1/SC 29/WG 1.ISO/IEC CD 29199-2:2010,JPEG XR image coding system—Part 2:Image coding specification[S].2010.

      [5]吳靜龍.JPEG XR碼流控制算法的研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2010.

      [6]JTC 1/SC 29/WG 1.ISO/IEC FCD 29199-5:2010,JPEG XR image coding system—Part 5:Reference software[S].2010.

      [7]Samsung’s digital world[EB/OL].[2011-11-20].http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=229&partnum=S3C2410.2008-2-11.

      [8]JTC 1/SC 29/WG 1.ISO/IEC CD 29199-3:2010,JPEG XR image coding system—Part 3:Motion JPEG XR[S].2010.

      [9]李崢,黃俊,劉美玲.基于嵌入式的紅外電力監(jiān)控系統(tǒng)的設(shè)計[J].電視技術(shù),2011,35(5):100-102.

      猜你喜歡
      編解碼碼流存儲器
      分布式碼流實時監(jiān)控與錄制系統(tǒng)的設(shè)計與實現(xiàn)
      數(shù)字電視TS碼流協(xié)議簡要分析
      視聽(2021年8期)2021-08-12 10:53:42
      靜態(tài)隨機存儲器在軌自檢算法
      1553B總線控制器編解碼設(shè)計
      大型民機試飛遙測視頻編解碼方法研究
      基于H.265編解碼的高清視頻傳輸系統(tǒng)研究
      電子測試(2018年18期)2018-11-14 02:30:54
      一種比較ASN.1碼流差異的方法
      存儲器——安格爾(墨西哥)▲
      基于梯度的CCSDS壓縮碼流控制算法研究
      主流視頻編解碼軟件的硬件性能分析與設(shè)計
      計算機工程(2014年6期)2014-02-28 01:27:54
      四会市| 珠海市| 邯郸市| 盐津县| 宣武区| 绥中县| 东源县| 曲靖市| 蒙山县| 报价| 平阴县| 潜江市| 新巴尔虎左旗| 和林格尔县| 高要市| 会昌县| 渑池县| 麻栗坡县| 本溪市| 金华市| 娱乐| 和硕县| 元江| 河津市| 宁河县| 那曲县| 延寿县| 平果县| 扬中市| 博湖县| 荆州市| 利辛县| 临沧市| 文水县| 英吉沙县| 南靖县| 大新县| 景德镇市| 绥芬河市| 鄂托克旗| 宜阳县|