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

        ?

        基于FPGA的傳真譯碼電路設(shè)計(jì)與實(shí)現(xiàn)

        2010-08-06 09:28:20支亞軍劉意先
        通信技術(shù) 2010年4期
        關(guān)鍵詞:游程碼表碼元

        支亞軍, 蔣 林, 劉意先

        (西安郵電學(xué)院電子工程學(xué)院,陜西 西安710061)

        0 引言

        傳真通信中,需要把要掃描后的數(shù)據(jù)進(jìn)行 A/D轉(zhuǎn)換和二值化處理,轉(zhuǎn)化成表示連續(xù)黑白點(diǎn)的1/0數(shù)據(jù),再對(duì)該數(shù)據(jù)序列進(jìn)行編碼后發(fā)送。接收端對(duì)收到的編碼數(shù)據(jù)進(jìn)行譯碼,最后輸出到打印頭。傳真數(shù)據(jù)的編譯碼,是傳真通信關(guān)鍵技術(shù)之一。

        一維改進(jìn)的Huffman碼(MHC)是在數(shù)據(jù)壓縮中較常使用的一種變長編碼。它是ITU-T.4標(biāo)準(zhǔn)中推薦的一維標(biāo)準(zhǔn)編碼方法,主要應(yīng)用于三類傳真機(jī)[1]。MHC編碼表是根據(jù)一組典型文件游程概率分布的統(tǒng)計(jì)均值構(gòu)造出來的,它的形成是由形成碼和終止碼組合實(shí)現(xiàn)的,能夠用較短的編碼來表示較長的連續(xù)黑點(diǎn)或白點(diǎn)。這樣,編碼后一行的數(shù)據(jù)量大為壓縮[2]。

        1 傳真譯碼原理分析及譯碼表構(gòu)造

        對(duì)于MHC而言,首先它是一個(gè)變長碼,發(fā)送端在編碼時(shí)把游程長度所對(duì)應(yīng)的碼元數(shù)據(jù)不留間隙的存入發(fā)送緩沖區(qū)中,再調(diào)制載波后發(fā)送出去。接收端解調(diào)出來的數(shù)據(jù)就是編碼數(shù)據(jù),譯碼時(shí)從數(shù)據(jù)序列中分離出碼字,再根據(jù)編碼查找碼表中所對(duì)應(yīng)的游程長度,輸出到打印緩沖區(qū),就完成譯碼過程[3]。

        MHC主要改進(jìn)的是將碼字分為終止碼和形成碼,0到63的游程長度用終止碼表示,64整數(shù)倍的游程長度由形成碼表示,任意游程長度大于63的碼字表示為“形成碼+終止碼”。例如,當(dāng)白游程長度為65(64+1)時(shí),編碼表示為11011 000111,即白游程長度64的形成碼11011加上白游程長度為1的終止碼000111。

        EOL(End of Line)為行結(jié)束符,也為行同步標(biāo)志。每個(gè)EOL后面數(shù)據(jù)為本行的編碼,WRLC(White Run Length Coding)為白游程長度編碼,BRLC(Black Run Length Coding)為黑游程長度編碼,每一行的第一個(gè)游程長度編碼為白碼字,黑白游程長度碼字連續(xù)交替。收到連續(xù)的六個(gè)EOL后表示該頁結(jié)束。根據(jù)T.4的表述,一張編碼后的傳真數(shù)據(jù)格式如表1所示。

        表1 傳真編碼數(shù)據(jù)格式

        譯碼的基本思想,構(gòu)造出譯碼樹,把序列中所包含的所有碼字都分配到一個(gè)端點(diǎn)上。這樣一來,每一個(gè)碼字與樹圖編碼時(shí)類似,以碼字首位碼元開始,從樹根起上移一步,到達(dá)一級(jí)節(jié)點(diǎn),再以次位碼元為依據(jù),再上移到高一級(jí)節(jié)點(diǎn)上,繼續(xù)下去可達(dá)到端點(diǎn)節(jié)點(diǎn),即葉節(jié)點(diǎn),這樣就實(shí)現(xiàn)了碼字的分離。顯然,從樹根起每上移一級(jí)節(jié)點(diǎn),必須提供節(jié)點(diǎn)信息,即該節(jié)點(diǎn)是中間節(jié)點(diǎn)還是終端節(jié)點(diǎn)。為查詢方便,樹中的每一個(gè)節(jié)點(diǎn),分配一個(gè)地址,用來存放節(jié)點(diǎn)信息。在節(jié)點(diǎn)信息上還應(yīng)提供是形成碼節(jié)點(diǎn)還是終止碼節(jié)點(diǎn)。若是形成碼節(jié)點(diǎn),地址中存放的二進(jìn)制數(shù)據(jù)再乘以 64就是所譯出的游程長度;若為終止碼,地址中的值就是該碼子所對(duì)應(yīng)的游程長度。中間節(jié)點(diǎn)地址中存放的二進(jìn)制數(shù)據(jù)是下一步搜索地址信息即基址[4]。

        顯然,要提高譯碼速度,可以采用多步合一的方法,減少查找碼表的次數(shù),也就是一次輸入多個(gè)碼元,根據(jù)碼表的特點(diǎn),對(duì)白譯碼而言,第一次可直接輸入4個(gè)碼元,對(duì)于黑譯碼,第一次可輸入2個(gè)碼元,隨后每次可輸入2個(gè)碼元或1個(gè)碼元。

        根據(jù)MHC的特點(diǎn)和快速譯碼的思想,并采用地址散列的原理思想,構(gòu)造出簡單有效的譯碼表,每次譯碼時(shí)產(chǎn)生查表地址時(shí)鐘周期都是確定,適合于在FPGA上進(jìn)行傳真譯碼的電路設(shè)計(jì)。譯碼表中的節(jié)點(diǎn)按類型可分為表2中的5類。

        表2 節(jié)點(diǎn)類型說明

        中間碼下次譯碼時(shí)會(huì)產(chǎn)生新的子節(jié)點(diǎn),其中第一種根據(jù)下步要進(jìn)的兩個(gè)碼元會(huì)有四種可能:00,01,10和 11,所以對(duì)子節(jié)點(diǎn)分配連續(xù)的四個(gè)地址,且從地址最低位 10開始分配;第二種根據(jù)下步要進(jìn)的碼元有兩種可能:0和 1,需要連續(xù)的兩個(gè)地址,并且從地址最低位為 00的地址空間開始分配。這樣才符合對(duì)節(jié)點(diǎn)位置和屬性的描述并且滿足下步搜索所需要的地址結(jié)構(gòu)。每4個(gè)地址空間或2個(gè)地址空間都采用地址散列的思想,即對(duì)于本次中間節(jié)點(diǎn)中的數(shù)據(jù)其實(shí)就是一個(gè)未被分配的地址。由于白碼表和黑碼表中碼子個(gè)數(shù)都一樣多,再加上中間節(jié)點(diǎn),可以確定碼表的大小?;谝陨系姆治?,對(duì)白碼表和黑碼表都分配256*8的存儲(chǔ)單元。

        以白譯碼表為例,第一次譯碼可先進(jìn)四位碼元,所以最開始會(huì)有16種可能的碼字0000~1111,它們分別對(duì)應(yīng)地址為00000000~00001111,即將初始碼型高位補(bǔ)零形成8位地址。輸出對(duì)應(yīng)地址中的數(shù)據(jù),如果該數(shù)據(jù)的最低兩位為“10”,表示下次來兩個(gè)碼元后再譯碼,當(dāng)下次來的碼元00、01、10或11,直接與當(dāng)前數(shù)據(jù)相加,即為下次譯碼地址,通過該地址讀出數(shù)據(jù)。

        2 MHC譯碼電路設(shè)計(jì)實(shí)現(xiàn)

        譯碼時(shí),需先進(jìn)行并串轉(zhuǎn)換,串行數(shù)據(jù)再送給譯碼模塊。譯出碼字后送該數(shù)據(jù)到游程輸出模塊,該模塊完成代表黑白點(diǎn)的1/0數(shù)據(jù)的輸出,再送往行數(shù)據(jù)打印緩沖區(qū)。系統(tǒng)模塊如圖1所示。

        圖1 傳真譯碼電路框

        譯碼模塊是傳真譯碼電路的部分,對(duì)接收的串行數(shù)據(jù)譯碼。先檢測EOL行同步標(biāo)識(shí),當(dāng)確認(rèn)EOL后,再對(duì)碼元進(jìn)行譯碼。白碼字和黑碼字進(jìn)行譯碼是不同的,對(duì)應(yīng)于兩個(gè)不同的譯碼表。當(dāng)譯白碼字時(shí)(對(duì)于每行第一個(gè)碼元數(shù)據(jù)必須為白碼字),首先接收4 bit數(shù)據(jù),形成8 bit地址,根據(jù)這個(gè)地址查找白譯碼表存儲(chǔ)空間并返回一個(gè)8 bit數(shù)據(jù),判斷這組數(shù)據(jù)的最低兩位標(biāo)志位的值來執(zhí)行下一步操作。

        當(dāng)最低兩位為‘00’時(shí),再接收一位數(shù)據(jù)后和 data_8相加并形成新地址,再查找譯碼表;當(dāng)最低兩位為‘10’時(shí),表示連續(xù)接收2 bit數(shù)據(jù),和data_8相加,形成新地址,再查找譯碼表,依次重復(fù)執(zhí)行操作,直到譯出該碼字或譯碼出錯(cuò)。當(dāng)data_8的最低兩位為‘01’時(shí),輸出數(shù)據(jù)高6 bit的值,并輸出終止碼數(shù)據(jù)有效使能信號(hào);當(dāng)data_8的最低兩位為‘11’時(shí),輸出數(shù)據(jù)高6 bit的值,并輸出形成碼數(shù)據(jù)有效使能信號(hào)。

        黑譯碼時(shí),其譯碼過程和白譯碼基本相同。不同之處在于:首先接收2 bit碼元數(shù)據(jù),形成8 bit地址,根據(jù)這個(gè)地址來查找黑碼表中對(duì)應(yīng)的數(shù)據(jù),再判斷數(shù)據(jù)的標(biāo)志位,執(zhí)行相應(yīng)操作。直至譯出碼字或譯碼出錯(cuò)。譯碼過程中先檢測EOL序列,之后執(zhí)行白譯碼、黑譯碼,白譯碼交替譯碼操作。對(duì)于該過程采用有限狀態(tài)機(jī)來描述實(shí)現(xiàn),見圖2。

        游程轉(zhuǎn)換模塊完成對(duì)譯碼輸出的6 bit數(shù)據(jù)轉(zhuǎn)換,串行輸出該碼字對(duì)應(yīng)的連續(xù)黑點(diǎn)或連續(xù)白點(diǎn)的個(gè)數(shù)。當(dāng)終止碼數(shù)據(jù)使能有效時(shí),把對(duì)應(yīng)的6 bit數(shù)據(jù)進(jìn)行轉(zhuǎn)換,串行輸出連續(xù)的“1”或“0”;當(dāng)形成碼數(shù)據(jù)使能有效時(shí),6 bit數(shù)據(jù)表示有多少個(gè)64個(gè)連續(xù)的表示黑點(diǎn)或白點(diǎn)的“1”或“0”,最多連續(xù)輸出1728個(gè)點(diǎn)。每1個(gè)點(diǎn)的輸出需要一個(gè)時(shí)鐘周期。例如,當(dāng)本次白譯碼時(shí),終止碼對(duì)應(yīng)的6 bit數(shù)據(jù)為“001000”,則輸出連續(xù)8個(gè)“0”序列;黑譯碼時(shí)就輸出連續(xù)的“1”序列,并輸出數(shù)據(jù)有效使能信號(hào)。

        行數(shù)據(jù)打印緩沖區(qū)負(fù)責(zé)接收“0”或“1”序列,由系統(tǒng)時(shí)鐘打入由一個(gè)FIFO緩沖區(qū),大小設(shè)定為存儲(chǔ)兩行的數(shù)據(jù)。當(dāng)存儲(chǔ)數(shù)據(jù)滿一行時(shí),串行輸出到打印頭打印。整個(gè)譯碼電路采用異步復(fù)位和全局同步時(shí)鐘設(shè)計(jì),時(shí)鐘頻率為50 MHz。兩個(gè)碼表的設(shè)計(jì)由ROM單元的IP核定制生成,只輸入構(gòu)造的碼表數(shù)據(jù)。在QuartusII開發(fā)環(huán)境中采用Verilog HDL硬件語言描述電路設(shè)計(jì)。

        圖 2 譯碼狀態(tài)

        3 仿真驗(yàn)證與系統(tǒng)測試

        該電路在QuartusII環(huán)境下進(jìn)行功能仿真驗(yàn)證[5]。由于碼表數(shù)據(jù)的生成采用軟件方案實(shí)現(xiàn)并進(jìn)行過軟件測試,所以功能仿真主要對(duì)各種碼元類型的組合情況和譯碼狀態(tài)進(jìn)行驗(yàn)證,并查看輸出波形圖,結(jié)果均與設(shè)計(jì)要求一致。

        對(duì)于連續(xù)32個(gè)白點(diǎn)和黑點(diǎn)的編碼數(shù)據(jù),先進(jìn)行白譯碼,連續(xù)32個(gè)時(shí)鐘周期輸出出‘0’數(shù)據(jù)和數(shù)據(jù)有效標(biāo)識(shí),下次輸入表示32個(gè)黑點(diǎn)的編碼數(shù)據(jù),譯出數(shù)據(jù)為連續(xù)32個(gè)‘1’,圖3為仿真結(jié)果。

        圖3 仿真部分波形

        針對(duì)Cyclone的FPGA器件庫,綜合該譯碼電路,時(shí)序報(bào)告滿足設(shè)計(jì)要求,面積報(bào)告顯示僅使用了 300多個(gè)LE(Logic Element)和6000多Memory bits。把綜合后生成的網(wǎng)表文件、延時(shí)文件和FPGA器件庫放到Modelsim環(huán)境中進(jìn)行時(shí)序仿真,仿真結(jié)果與功能仿真一致,滿足設(shè)計(jì)要求。

        最后,在QuartusII環(huán)境下,通過SOPC配置CPU核,把該電路當(dāng)做 CPU的外圍模塊,下載到 ALTERA 公司的Cyclone 系列器件 EP1C20F400C7開發(fā)板上。CPU核與該電路模塊通過PIO端口連接,在NiosII開發(fā)環(huán)境中使用軟件測試該電路系統(tǒng)。CPU核向電路寫入數(shù)據(jù)和使能信號(hào),待輸出標(biāo)識(shí)位數(shù)據(jù)有效后,再讀出譯碼后數(shù)據(jù)。測試結(jié)果表明,對(duì)寫入正確的編碼數(shù)據(jù)都能讀出正確譯碼結(jié)果;對(duì)異常的編碼能正確處理,讀出結(jié)果和預(yù)期一致,電路連續(xù)譯碼工作正常。

        4 結(jié)語

        本文通過對(duì)傳真譯碼原理深入分析,結(jié)合FPGA的特點(diǎn)提出一種新的MHC碼表構(gòu)造方法,并在QuartusII開發(fā)環(huán)境下設(shè)計(jì)實(shí)現(xiàn)了傳真譯碼電路。仿真測試結(jié)果表明該電路工作穩(wěn)定,譯碼速度快并且占用很少的資源。與早期的傳真譯碼電路設(shè)計(jì)相比集成度和工作頻率更高;與目前的傳真芯片相比,易于添加傳真機(jī)的硬件功能,縮短開發(fā)周期,前景廣闊。

        [1] International Telecommunication Union,T.4(200),Standardization of Group 3 facsimile terminals for document transmission[S].Switzerland Geneva:3-11.

        [2] 劉立柱.數(shù)字傳真通信[M].成都:電子科技大學(xué)出版社,2000:169-171.

        [3] 劉立柱.傳真圖像和傳真信號(hào)處理原理與技術(shù)[M].北京:國防工業(yè)出版社,2006:58-66.

        [4] 劉意先,韓俊剛,支亞軍.基于 MHC快速譯碼算法的譯碼樹的構(gòu)造方法[J].通信技術(shù),2009,42(07):28-30.

        [5] 魏建英,葉玉堂,吳云峰,等.基于FPGA的超長CIS圖像采集系統(tǒng)[J].通信技術(shù),2009,42(02):298-300.

        猜你喜歡
        游程碼表碼元
        基于劃分組參考數(shù)的差值編碼壓縮方法
        中國羽毛球組合鄭思維/黃雅瓊連續(xù)得失分規(guī)律研究
        LFM-BPSK復(fù)合調(diào)制參數(shù)快速估計(jì)及碼元恢復(fù)
        改進(jìn)型相對(duì)游程長度編碼方法
        iGPSPORTiGS618智能GPS碼表測評(píng)
        中國自行車(2018年9期)2018-10-13 06:17:04
        皺皺眉頭就是一首詩
        優(yōu)雅(2017年8期)2017-08-08 06:01:53
        廉價(jià)親民黑鳥單車BB10 GPS碼表評(píng)測
        中國自行車(2017年1期)2017-04-16 02:54:07
        基于極大似然準(zhǔn)則的短猝發(fā)信號(hào)盲解調(diào)
        輕松上手 碼表踏頻組
        基于游程數(shù)的非參數(shù)隨機(jī)性檢驗(yàn)
        人妻少妇精品视频中文字幕国语| 久久伊人这里都是精品| 风韵丰满熟妇啪啪区99杏| 久久婷婷综合缴情亚洲狠狠| 在线免费观看一区二区| 国产精品女同久久久久电影院| 西西午夜无码大胆啪啪国模| 最新中文字幕av无码不卡| 国产三级精品三级在线观看| 明星性猛交ⅹxxx乱大交| 醉酒后少妇被疯狂内射视频| 99久久精品免费看国产| 日本真人做爰免费视频120秒| 又粗又黄又猛又爽大片免费| 亚洲成人色区| 国产精品丝袜黑色高跟鞋| 日韩av二区三区一区| 白白视频在线免费观看| 国产免费av片在线播放| 国产成人av片在线观看| 精品香蕉久久久爽爽| 中文字幕久无码免费久久| 亚洲精品亚洲人成在线播放| 亚洲区精品久久一区二区三区女同| 国产中文久久精品| 少妇性l交大片免费1一少| 国产激情综合五月久久| av在线播放男人天堂| 女人下边被添全过视频| 国产综合无码一区二区辣椒| 丰满多毛的大隂户视频| 国产精品女同一区二区| 国产精品亚洲综合天堂夜夜| 日本一区二区三深夜不卡| 亚洲一区二区三区福利久久蜜桃 | 欧美亅性猛交内射| 99视频30精品视频在线观看| 久久久久久久久888| 亚洲a级片在线观看| 精品理论一区二区三区| 免费黄网站一区二区三区|