• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    DNA存儲(chǔ)場(chǎng)景下的大小噴泉碼模型設(shè)計(jì)*

    2024-01-24 14:39:56崔競(jìng)松蔣昌躍

    崔競(jìng)松,蔣昌躍,郭 遲

    (1.武漢大學(xué)國(guó)家網(wǎng)絡(luò)安全學(xué)院,湖北 武漢 430072;2.武漢大學(xué)空天信息安全與可信計(jì)算教育部重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430072; 3.武漢大學(xué)衛(wèi)星導(dǎo)航定位技術(shù)研究中心,湖北 武漢 430072)

    1 引言

    據(jù)估計(jì),到2025年全球數(shù)據(jù)總量將達(dá)163 ZB,而當(dāng)前主流存儲(chǔ)介質(zhì)的生產(chǎn)已不堪重負(fù)[1,2]。DNA是生物體用于存儲(chǔ)遺傳信息的載體,同樣具有存儲(chǔ)數(shù)字信息的能力。研究表明,DNA信息存儲(chǔ)密度可以達(dá)到1019bit/cm3,是硬盤(pán)的106倍[3,4]。DNA作為數(shù)據(jù)的存儲(chǔ)介質(zhì),具有密度大、能耗低、壽命長(zhǎng)等優(yōu)點(diǎn),因此DNA存儲(chǔ)有廣闊的應(yīng)用前景[5]。

    目前已經(jīng)提出了多種DNA存儲(chǔ)方案。2012年哈佛大學(xué)的Church等人[6]利用二進(jìn)制轉(zhuǎn)換首次實(shí)現(xiàn)在體外將659 KB的數(shù)據(jù)存儲(chǔ)進(jìn)DNA分子中,但該方案引入的冗余過(guò)多。2013年Goldman等人[7]利用哈夫曼編碼、四倍重疊法、三進(jìn)制編碼將739 KB的信息存入DNA中。2015年Grass等人[8]將RS(Reed-Solomon)糾錯(cuò)應(yīng)用于DNA存儲(chǔ),實(shí)現(xiàn)了83 KB信息的無(wú)錯(cuò)誤存儲(chǔ)和讀取。2016年Blawat等人[9]將“前向糾錯(cuò)碼”引入DNA存儲(chǔ)領(lǐng)域,提升了使用DNA分子進(jìn)行數(shù)據(jù)存儲(chǔ)的可靠性。同年Bornholt等人[10]設(shè)計(jì)實(shí)現(xiàn)了DNA存儲(chǔ)體系中數(shù)據(jù)的“隨機(jī)訪問(wèn)”。2017年哥倫比亞大學(xué)的Erlich等人[11]將“噴泉碼”引入到DNA編碼體系中,稱之為“DNA噴泉”,實(shí)現(xiàn)了較高的數(shù)據(jù)存儲(chǔ)密度,降低了冗余和成本。2020年Koch等人[12]將噴泉碼運(yùn)用于信息存儲(chǔ),并提出了“DNA信息可存儲(chǔ)萬(wàn)物”的概念DoT(DNA-of-Things)。

    過(guò)往研究中使用的噴泉碼算法在DNA存儲(chǔ)等應(yīng)用場(chǎng)景中存在一定的不足:編碼端將源文件劃分成K個(gè)分組進(jìn)行編碼,而解碼端需要確定參數(shù)K值才能進(jìn)行解碼,因此在編碼端與解碼端之間需要額外的信道資源來(lái)傳遞關(guān)鍵參數(shù)K。在實(shí)際應(yīng)用中可將K直接嵌入到所有編碼分組中來(lái)進(jìn)行傳遞。但是,這種做法有極大的冗余,嚴(yán)重浪費(fèi)信道的帶寬。另一種做法是在編碼端和解碼端中將K設(shè)為固定值。但是,這種做法忽略了源文件大小、數(shù)據(jù)分組長(zhǎng)度及數(shù)據(jù)分組數(shù)目之間的關(guān)系,不適用于實(shí)際的DNA存儲(chǔ)應(yīng)用場(chǎng)景。

    基于上述問(wèn)題,本文以DNA存儲(chǔ)應(yīng)用為背景,提出了一種大小噴泉碼模型。一方面大噴泉碼用來(lái)編碼存儲(chǔ)源文件的內(nèi)容;另一方面通過(guò)增加小噴泉碼帶外信道來(lái)優(yōu)化關(guān)鍵參數(shù)K的傳遞,提高了帶寬的利用率,同時(shí)K可取任意值,擺脫了源文件大小等的限制。大噴泉碼與小噴泉碼互相結(jié)合,共同實(shí)現(xiàn)對(duì)源文件的編碼存儲(chǔ)。

    2 噴泉碼與LT碼

    噴泉碼是一種糾刪編碼[13-16],最初是針對(duì)二進(jìn)制刪除信道BEC(Binary Erasure Channel)設(shè)計(jì)的,旨在為大規(guī)模數(shù)據(jù)的傳輸和可靠廣播場(chǎng)景提供一種理想的解決方案。在DNA存儲(chǔ)場(chǎng)景下,DNA分子在保存和復(fù)制的過(guò)程中會(huì)發(fā)生一定概率的變異甚至片段丟失。由于變異或片段丟失的DNA分子不可再用,相當(dāng)于丟棄了數(shù)據(jù),因此DNA分子存儲(chǔ)是一個(gè)典型的刪除信道。

    LT碼(Luby Transform codes)是由Luby[17]在2002年提出的第一種實(shí)用噴泉碼。LT碼是一種無(wú)速率碼,可產(chǎn)生無(wú)限的編碼數(shù)據(jù),具有簡(jiǎn)單的編譯碼方法、較小的譯碼開(kāi)銷(xiāo)和編譯碼復(fù)雜度。LT碼將源文件轉(zhuǎn)換為大量較短的信息,這些較短的信息并非源文件的一部分,而是將源文件中的信息通過(guò)特定的方式進(jìn)行運(yùn)算編碼后產(chǎn)生的。接收端收到一定量以上的編碼數(shù)據(jù)就可能成功解碼,與收到哪些編碼數(shù)據(jù)無(wú)關(guān)。

    2.1 LT碼度分布

    度是指與某一編碼數(shù)據(jù)分組相關(guān)聯(lián)的原始數(shù)據(jù)分組的數(shù)目,通常用d表示。傳統(tǒng)LT碼的度分布函數(shù)是由Luby首先提出來(lái)的理想孤波分布[17],其表達(dá)式如式(1)所示:

    (1)

    在實(shí)際應(yīng)用中,編碼數(shù)據(jù)的抽樣往往無(wú)法精確符合理想孤波分布,總存在一些波動(dòng)和誤差,從而出現(xiàn)解碼時(shí)度為1的數(shù)據(jù)斷層,導(dǎo)致解碼失敗。所以,通過(guò)修正理想孤波分布,給出更實(shí)用的魯棒孤波分布[18],其表達(dá)式如式(2)所示:

    (2)

    (3)

    2.2 LT碼編碼

    設(shè)有K個(gè)待編碼的原始數(shù)據(jù)分組,LT碼的編碼算法如算法1所示。

    2.3 LT碼解碼

    LT碼解碼是對(duì)接收到的N(N≥K)個(gè)編碼數(shù)據(jù)進(jìn)行處理,從中恢復(fù)出K個(gè)原始數(shù)據(jù)。傳統(tǒng)LT碼解碼算法通常采用復(fù)雜度較低的置信度傳播BP(Belief Propagation)算法,其平均時(shí)間復(fù)雜度為O(KlnK)。該算法主要是從接收端生成的二分圖中,通過(guò)信息在校驗(yàn)節(jié)點(diǎn)與變量節(jié)點(diǎn)之間不斷流動(dòng)消去無(wú)用的邊,最終恢復(fù)出K個(gè)變量節(jié)點(diǎn)的值。傳統(tǒng)LT碼解碼算法如算法2所示。

    BP解碼算法的雙向圖解碼過(guò)程如圖1所示。

    Figure 1 Process of LT code decoding圖1 LT碼解碼過(guò)程

    圖1展示了從編碼數(shù)據(jù){1011}恢復(fù)出原始數(shù)據(jù){101}的過(guò)程,其中空心圓表示原始數(shù)據(jù)分組,實(shí)心圓表示編碼數(shù)據(jù)分組。

    2.4 使用噴泉碼算法的DNA存儲(chǔ)框架

    使用噴泉碼進(jìn)行DNA存儲(chǔ)的框架主要包括3個(gè)部分:源文件編碼寫(xiě)入、介質(zhì)生化存儲(chǔ)和解碼獲取源文件。

    源文件編碼寫(xiě)入是利用噴泉碼編碼算法將源文件轉(zhuǎn)換成若干條等長(zhǎng)的DNA序列。介質(zhì)生化存儲(chǔ)是將源文件編碼生成的DNA序列進(jìn)行生化處理,主要包括DNA分子合成及DNA分子儲(chǔ)存。解碼獲取源文件是從DNA分子中還原出源文件,是編碼寫(xiě)入的逆過(guò)程。在解碼之前,需要先對(duì)DNA分子進(jìn)行生化實(shí)驗(yàn)預(yù)處理,包括:PCR(Polymerase Chain Reaction)序列擴(kuò)增、DNA測(cè)序(分析特定DNA片段的堿基序列,獲取DNA序列的A,C,G,T排列方式),再進(jìn)行DNA序列糾錯(cuò)、DNA序列去重等操作,最后進(jìn)行噴泉碼解碼,獲取源文件。使用噴泉碼算法的DNA存儲(chǔ)編解碼過(guò)程如圖2所示。

    3 面向DNA存儲(chǔ)的大小噴泉碼

    3.1 DNA存儲(chǔ)場(chǎng)景的局限性

    知名DNA合成公司TWIST目前的二代合成芯片高通量合成的寡核苷酸池(DNA文庫(kù))中,單條DNA序列的堿基最大個(gè)數(shù)僅為300[19]。DNA序列合成技術(shù)的限制使得用戶在進(jìn)行存儲(chǔ)編碼之前就需要確定出編碼輸出DNA序列的長(zhǎng)度及條數(shù)。

    Figure 2 DNA encoding and decoding using fountain code algorithm圖2 使用噴泉碼算法的DNA編解碼

    Figure 3 File size varying with K value圖3 文件大小隨K值的變化情況

    目前普遍使用四進(jìn)制方式編碼DNA序列,即按照{(diào)00,01,10,11}與{A,C,G,T}的對(duì)應(yīng)關(guān)系來(lái)實(shí)現(xiàn)二進(jìn)制數(shù)據(jù)與DNA序列之間的轉(zhuǎn)換。DNA序列長(zhǎng)度的限制會(huì)影響編碼時(shí)源文件數(shù)據(jù)分組長(zhǎng)度的劃分,從而會(huì)導(dǎo)致參數(shù)K有較大變化。例如,當(dāng)規(guī)定噴泉碼編碼輸出的單條DNA序列堿基個(gè)數(shù)為300時(shí),編碼4個(gè)文件,大小分別為1 KB,10 KB,100 KB和1 MB的文件,編碼端將源文件劃分成的數(shù)據(jù)分組數(shù)目K隨文件大小變化的情況如圖3所示。

    從圖3可以看出,當(dāng)都按照300堿基長(zhǎng)度進(jìn)行數(shù)據(jù)分組時(shí),參數(shù)K會(huì)隨文件長(zhǎng)度的增大而明顯變化。若在編碼端和解碼端將K設(shè)為定值,則會(huì)影響源文件數(shù)據(jù)分組的長(zhǎng)度,進(jìn)而影響編碼數(shù)據(jù)轉(zhuǎn)換成的DNA序列的長(zhǎng)度,顯然不適合DNA存儲(chǔ)的應(yīng)用場(chǎng)景,因此有必要將參數(shù)K的信息傳遞給解碼端。

    3.2 小噴泉碼設(shè)計(jì)

    設(shè)源文件的比特?cái)?shù)為L(zhǎng),源文件劃分的原始數(shù)據(jù)分組比特?cái)?shù)為l,則K的計(jì)算如式(4)所示:

    (4)

    當(dāng)L不能被l整除時(shí),表示劃分的最后一個(gè)數(shù)據(jù)分組不足l比特,需要將其填充為l比特。設(shè)最后一個(gè)數(shù)據(jù)分組填充的比特?cái)?shù)為n(0≤n

    n=K×l-L

    (5)

    解碼端利用四進(jìn)制編碼將接收到的DNA序列還原成二進(jìn)制數(shù)據(jù)即可得知數(shù)據(jù)分組的比特?cái)?shù)l。解碼端只要再獲取源文件的比特?cái)?shù)L,即可由式(4)和式(5)計(jì)算出解碼所需要的關(guān)鍵參數(shù)K和n。所以,要將源文件的比特?cái)?shù)L傳遞給解碼端。

    設(shè)編碼端和解碼端將參數(shù)L統(tǒng)一用64 bit的整型表示。如果直接將L拼接在每個(gè)編碼數(shù)據(jù)分組的末尾,則解碼端從接收到的數(shù)據(jù)末尾截取固定的64 bit即為L(zhǎng)。這種做法簡(jiǎn)單有效,但會(huì)嚴(yán)重浪費(fèi)信息空間,所有數(shù)據(jù)分組都拼接相同的64 bit信息會(huì)造成極大的冗余。解碼端只要成功收到一個(gè)數(shù)據(jù)分組即可獲得參數(shù)L,而其它數(shù)據(jù)分組末尾的64 bit將全部失去價(jià)值。

    為了盡量減少參數(shù)L的帶寬,為大噴泉碼留出更多的數(shù)據(jù)存儲(chǔ)空間,本文設(shè)計(jì)了小噴泉碼來(lái)對(duì)參數(shù)L的傳輸進(jìn)行優(yōu)化。

    3.3 大小噴泉碼模型結(jié)構(gòu)

    大小噴泉碼使用了一大一小2個(gè)噴泉碼對(duì)同一個(gè)源文件的不同信息分別進(jìn)行編碼,再將2個(gè)噴泉碼的編碼結(jié)果合并為一個(gè)編碼分組進(jìn)行存儲(chǔ)和傳輸,模型結(jié)構(gòu)如圖4所示。

    3.3.1 大噴泉碼編碼內(nèi)容

    如圖4上半部分所示,大噴泉碼負(fù)責(zé)對(duì)源文件的內(nèi)容進(jìn)行編碼。編碼端讀取待存儲(chǔ)的源文件后,按照LT碼編碼算法(算法1)的步驟進(jìn)行編碼。

    Figure 4 Coding structure of big and small fountain code model圖4 大小噴泉碼模型編碼結(jié)構(gòu)

    為了在解碼時(shí)能百分之百還原出存儲(chǔ)的源文件,大噴泉碼編碼的數(shù)據(jù)中還包含了源文件的名字及一個(gè)哈希值。先將固定長(zhǎng)度的文件名拼接在源文件內(nèi)容之后,再整體生成一個(gè)固定長(zhǎng)度的哈希值并拼接在最后。將拼接了文件名和哈希值的數(shù)據(jù)作為源數(shù)據(jù)輸入大噴泉碼模型進(jìn)行編碼。哈希值用于自校驗(yàn)解碼出的內(nèi)容與編碼時(shí)的內(nèi)容是否相同。模型中編碼端與解碼端約定文件名與哈希值分別是相同的固定字節(jié)長(zhǎng)度,這樣解碼端在解碼出數(shù)據(jù)后,從尾部截取固定長(zhǎng)度即可獲得哈希值與文件名。

    大噴泉碼將拼接了文件名和哈希值的源數(shù)據(jù)劃分為若干等長(zhǎng)且互不重疊的數(shù)據(jù)分組,再利用隨機(jī)種子和度分布函數(shù)生成度值,最后選擇相應(yīng)的數(shù)據(jù)分組進(jìn)行異或運(yùn)算,源源不斷地產(chǎn)生編碼分組。

    3.3.2 小噴泉碼編碼內(nèi)容

    如圖4的下半部分所示,小噴泉碼負(fù)責(zé)對(duì)大噴泉碼編碼數(shù)據(jù)的比特?cái)?shù)L進(jìn)行編碼。與大噴泉碼相同,小噴泉碼在對(duì)參數(shù)L編碼之前,先對(duì)其生成一個(gè)固定比特?cái)?shù)的哈希值,再將哈希值拼接在參數(shù)L的末尾。哈希值同樣用來(lái)自校驗(yàn),確保解碼出的數(shù)據(jù)與編碼時(shí)的相同。

    小噴泉碼編碼數(shù)據(jù)劃分成的分組長(zhǎng)度相對(duì)較短,一般為1 bit,也可根據(jù)具體場(chǎng)景進(jìn)行調(diào)整。小噴泉碼編碼數(shù)據(jù)的比特?cái)?shù)固定,因此總被劃分為固定數(shù)量的分組,再按照算法1的步驟進(jìn)行編碼。大噴泉碼與小噴泉碼編碼同一個(gè)數(shù)據(jù)分組時(shí),使用同一個(gè)隨機(jī)種子及度分布函數(shù)進(jìn)行獨(dú)立編碼。在實(shí)際應(yīng)用中,編碼輸出的DNA序列數(shù)量通常遠(yuǎn)大于小噴泉碼編碼的原始數(shù)據(jù)分組數(shù),因此小噴泉碼數(shù)據(jù)具有足夠大的冗余可以保證編碼存儲(chǔ)的信息能被解碼端成功解碼。

    無(wú)論大噴泉碼還是小噴泉碼,都保留了傳統(tǒng)噴泉碼應(yīng)對(duì)丟刪錯(cuò)誤的特性,即在有部分?jǐn)?shù)據(jù)隨機(jī)丟失的情況下都能從剩余編碼數(shù)據(jù)中恢復(fù)出原始數(shù)據(jù)。

    4 大小噴泉碼編解碼

    4.1 DNA規(guī)避序列限制問(wèn)題

    在DNA序列合成與測(cè)序過(guò)程中,由于生化實(shí)驗(yàn)上的限制,并非所有編碼生成的DNA序列都可用,如GC含量高、均聚物長(zhǎng)(如AAAAAA…)或含有酶切位點(diǎn)的DNA序列是不可取的,因?yàn)樗鼈兒茈y合成且容易出現(xiàn)測(cè)序錯(cuò)誤[20,21]。為了保證編碼數(shù)據(jù)轉(zhuǎn)換成的DNA序列能夠滿足生化實(shí)驗(yàn)上的要求,在編碼輸出序列時(shí)要考慮DNA規(guī)避序列的限制。如何避免規(guī)避序列的影響,本文基于大小噴泉碼提供了2種編碼方案。

    4.1.1 丟刪編碼

    噴泉碼主要應(yīng)用在刪除信道場(chǎng)景中,其良好的特性能保證即使在有數(shù)據(jù)丟失的情況下,只要收集到足夠數(shù)量的數(shù)據(jù),依然有很高的概率能成功解碼。因此,當(dāng)編碼生成的DNA序列中出現(xiàn)了需要規(guī)避的子序列時(shí),可直接將該條序列丟棄。噴泉碼可以生成無(wú)限數(shù)量的編碼數(shù)據(jù),丟棄部分?jǐn)?shù)據(jù)不會(huì)對(duì)編解碼過(guò)程產(chǎn)生影響。

    該方案操作簡(jiǎn)單,但當(dāng)規(guī)避序列需要丟棄大量序列時(shí),會(huì)導(dǎo)致隨機(jī)種子的比特空間有較大的膨脹。例如,當(dāng)需要編碼輸出1 000條DNA序列時(shí),在無(wú)規(guī)避序列的情況下只需10 bit的種子空間;而當(dāng)規(guī)避序列特別多或需要規(guī)避一些出現(xiàn)頻率較高的子序列時(shí),可能至少需要生成100 000條序列才能產(chǎn)生1 000條合格的序列,而此時(shí)隨機(jī)數(shù)種子的空間就變?yōu)榱?7 bit,這會(huì)導(dǎo)致原本存放大噴泉碼編碼數(shù)據(jù)的帶寬被占用。

    4.1.2 MRC算法編碼

    編碼端可采用一些編碼算法,在將編碼數(shù)據(jù)轉(zhuǎn)換成DNA序列時(shí)直接規(guī)避掉不希望出現(xiàn)的子序列,例如Liu等人[22]提出的MRC(Mixed Radix Coding)算法。MRC算法不是利用四進(jìn)制方式編碼DNA序列,而是利用變進(jìn)制的思想,在把編碼數(shù)據(jù)轉(zhuǎn)換成DNA序列的過(guò)程中,結(jié)合用戶輸入的規(guī)避序列,通過(guò)不斷地進(jìn)行取模、除法操作直接生成不含規(guī)避序列的DNA序列。該算法的優(yōu)點(diǎn)是編碼端不會(huì)因規(guī)避序列而大量丟棄生成的DNA序列,一旦產(chǎn)生足夠數(shù)量的序列即可結(jié)束編碼;缺點(diǎn)是DNA存儲(chǔ)介質(zhì)的不均勻性會(huì)導(dǎo)致MRC算法編碼出的DNA序列是不定長(zhǎng)的。超過(guò)長(zhǎng)度的DNA序列會(huì)被丟棄,因此為了保證大多數(shù)MRC算法轉(zhuǎn)化的序列長(zhǎng)度小于或等于規(guī)定的長(zhǎng)度,需要適當(dāng)?shù)乜s短源文件劃分?jǐn)?shù)據(jù)分組的比特?cái)?shù)l。

    對(duì)于MRC算法編碼生成的長(zhǎng)度小于規(guī)定長(zhǎng)度的DNA序列,需要將末尾的間隙進(jìn)行填充,使得所有序列保持等長(zhǎng)。為了充分利用部分堿基序列尾部的間隙空間,可利用小噴泉碼的編碼數(shù)據(jù)進(jìn)行填充。這種方案下小噴泉碼需在大噴泉碼編碼之后再進(jìn)行編碼。在將大噴泉碼編碼數(shù)據(jù)使用MRC算法編碼成DNA序列之后,統(tǒng)計(jì)該序列缺損的堿基空間數(shù),此時(shí)小噴泉碼再利用大噴泉碼的隨機(jī)種子編碼出相應(yīng)數(shù)量的數(shù)據(jù)進(jìn)行填充。

    2種方案編碼生成的數(shù)據(jù)分組結(jié)構(gòu)示意圖如圖5所示。

    Figure 5 Encoded packet structures of two schemes圖5 2種方案的編碼分組結(jié)構(gòu)

    圖5a為丟刪編碼方案的分組結(jié)構(gòu)示意圖,其特點(diǎn)是所有數(shù)據(jù)分組中的大噴泉碼數(shù)據(jù)及其對(duì)應(yīng)的DNA序列都是等長(zhǎng)的;所有分組最后固定的1 bit為小噴泉碼數(shù)據(jù),小噴泉碼編碼數(shù)據(jù)量等于總編碼分組數(shù)量。圖5b為MRC算法編碼方案的分組結(jié)構(gòu)示意圖,其特點(diǎn)是所有數(shù)據(jù)分組中的大噴泉碼數(shù)據(jù)是等長(zhǎng)的,但轉(zhuǎn)換成的DNA序列是不定長(zhǎng)的;對(duì)那些長(zhǎng)度較短的DNA序列利用小噴泉碼數(shù)據(jù)進(jìn)行填充使其都變?yōu)榈乳L(zhǎng)的,小噴泉碼編碼數(shù)據(jù)與總分組數(shù)目之間的關(guān)系不固定。

    4.2 大小噴泉碼模型編碼

    噴泉碼編碼出的每個(gè)數(shù)據(jù)分組都有一個(gè)唯一對(duì)應(yīng)的隨機(jī)數(shù)種子。解碼端使用與編碼端相同的隨機(jī)算法,即可根據(jù)隨機(jī)種子恢復(fù)出編碼數(shù)據(jù)的度及參與編碼的原始分組編號(hào)等信息,因此隨機(jī)種子也需要隨編碼數(shù)據(jù)一起傳遞給解碼端。

    由于編碼文件的大小不固定,或用戶對(duì)同一文件有不同的編碼DNA序列長(zhǎng)度、數(shù)量要求時(shí),會(huì)導(dǎo)致隨機(jī)種子的比特空間有較大變化。例如,將同一個(gè)文件編碼成500條DNA序列,只需9 bit的種子空間,而編碼成10 000條序列至少需要14 bit的種子空間。為了充分利用有限長(zhǎng)度的DNA序列中的所有空間,大小噴泉碼模型將編碼數(shù)據(jù)中的隨機(jī)數(shù)種子設(shè)計(jì)為動(dòng)態(tài)長(zhǎng)度的形式進(jìn)行嵌入。

    以丟刪編碼方案為例,模型按照實(shí)際需求計(jì)算出一個(gè)確定長(zhǎng)度的隨機(jī)種子直接拼接在編碼數(shù)據(jù)分組的頭部,尾部的1 bit存放小噴泉碼編碼數(shù)據(jù),中間剩余的空間全部存放大噴泉碼的編碼數(shù)據(jù)。對(duì)于輸入的源文件,編碼端進(jìn)行填充、拼接文件名、生成哈希值等預(yù)處理后,大噴泉碼與小噴泉碼獲得各自待編碼的數(shù)據(jù),結(jié)合用戶輸入的規(guī)避序列及DNA序列長(zhǎng)度和數(shù)量要求,開(kāi)始進(jìn)行編碼。以丟刪編碼方案為基礎(chǔ)的大小噴泉碼模型的編碼算法如算法3所示。

    算法3 大小噴泉碼編碼算法輸入:源文件。輸出:指定長(zhǎng)度和數(shù)量的DNA序列。Step 1 讀取源文件,對(duì)待編碼數(shù)據(jù)進(jìn)行填充、生成哈希值等預(yù)處理。Step 2 從根據(jù)實(shí)際要求計(jì)算得出的隨機(jī)種子空間中產(chǎn)生一個(gè)隨機(jī)種子。Step 3 大、小噴泉碼分別利用Step2產(chǎn)生的隨機(jī)種子各自進(jìn)行編碼。Step 4 編碼端將隨機(jī)種子與大、小噴泉碼編碼數(shù)據(jù)拼接后的數(shù)據(jù)轉(zhuǎn)換成DNA序列。Step 5 檢查生成的DNA序列中是否出現(xiàn)規(guī)避序列,出現(xiàn)則丟棄該條DNA序列,否則保留該條DNA序列。Step 6 重復(fù)Step 2~Step 5,若產(chǎn)生足夠數(shù)量的DNA序列,則編碼結(jié)束;若種子空間用完還未編碼出足夠數(shù)量的序列,則種子空間長(zhǎng)度加1,重復(fù)Step 2~Step 6。

    模型編碼算法的流程如圖6所示。

    Figure 6 Flow chart of big and small fountain code encoding algorithms圖6 大小噴泉碼編碼算法流程圖

    4.3 大小噴泉碼模型解碼

    噴泉碼要求用于解碼的數(shù)據(jù)必須是無(wú)錯(cuò)的。在實(shí)際應(yīng)用中,還需對(duì)噴泉碼編碼生成的DNA序列添加糾錯(cuò)碼用于檢錯(cuò)和糾錯(cuò)。在解碼前先利用糾錯(cuò)編碼挑出所有無(wú)錯(cuò)數(shù)據(jù)。獲得無(wú)錯(cuò)數(shù)據(jù)后,解碼第一步要先確定所有數(shù)據(jù)分組對(duì)應(yīng)的隨機(jī)種子。

    模型編碼時(shí)隨機(jī)種子以動(dòng)態(tài)長(zhǎng)度的方式嵌入,但整個(gè)編解碼過(guò)程中并未傳遞隨機(jī)種子長(zhǎng)度信息。大小噴泉碼模型在解碼端通過(guò)試探的方式,利用小噴泉碼編碼數(shù)據(jù)末尾哈希值的自校驗(yàn)來(lái)確定隨機(jī)種子的長(zhǎng)度。小噴泉碼編碼的數(shù)據(jù)比特?cái)?shù)是固定值,因此被劃分為固定數(shù)量個(gè)原始分組,記為k。解碼端每次都先試探解碼固定數(shù)量的k個(gè)小噴泉碼數(shù)據(jù),并進(jìn)行哈希自校驗(yàn)確認(rèn)是否解碼成功,若解碼失敗則種子空間加1后重新試探。試探的過(guò)程不能無(wú)限進(jìn)行下去,因此編碼端和解碼端需要約定好隨機(jī)種子比特?cái)?shù)的下限值llower和上限值lupper,則編碼端能夠編碼的DNA序列總數(shù)被限定在了[2llower,2lupper]內(nèi)。假設(shè)試探隨機(jī)種子的起始長(zhǎng)度為seedlenstart,解碼端接收到的DNA序列數(shù)量為N(N≥K),則式(6)成立:

    seedlenstart=max(llower,lbN+1)

    (6)

    從式(6)可以看出,從隨機(jī)種子長(zhǎng)度的下限值及根據(jù)N計(jì)算得出的隨機(jī)種子長(zhǎng)度中選擇較大值作為起始值開(kāi)始試探。大小噴泉碼模型的解碼算法如算法4所示。

    算法4 大小噴泉碼解碼算法輸入:DNA序列。輸出:源文件。Step 1 利用糾錯(cuò)碼挑選正確的DNA序列,將DNA序列按照對(duì)應(yīng)方式轉(zhuǎn)換成二進(jìn)制數(shù)據(jù),從所有編碼分組數(shù)據(jù)尾部截取固定比特作為小噴泉碼數(shù)據(jù)。Step 2 根據(jù)式(6)確定隨機(jī)種子的起始長(zhǎng)度。Step 3 按照當(dāng)前隨機(jī)種子的比特?cái)?shù),從所有數(shù)據(jù)頭部截取相應(yīng)長(zhǎng)度的隨機(jī)種子。Step 4 利用Step 3得到的隨機(jī)種子及與編碼端相同的隨機(jī)算法和度分布函數(shù)嘗試小噴泉碼解碼,并進(jìn)行小噴泉碼尾部哈希值的自校驗(yàn)。Step 5 若小噴泉碼解碼失敗或小噴泉碼未通過(guò)哈希自校驗(yàn),則隨機(jī)種子長(zhǎng)度加1,重復(fù)Step 3和Step 4。若小噴泉碼解碼成功,則確定所有編碼分組的隨機(jī)種子及小噴泉碼存儲(chǔ)的關(guān)鍵參數(shù)L。若在約定的隨機(jī)種子空間范圍內(nèi)小噴泉碼解碼失敗,則返回解碼失敗,退出程序。Step 6 利用Step 5確定的隨機(jī)種子與參數(shù)L進(jìn)行大噴泉碼解碼,返回大噴泉碼解碼結(jié)果。

    大小噴泉碼模型解碼算法流程如圖7所示。

    Figure 7 Flow chart of big and small fountain code decoding algorithm圖7 大小噴泉碼解碼算法流程圖

    大噴泉碼解碼成功后,從解碼出的數(shù)據(jù)末尾截取與編碼端約定長(zhǎng)度的比特?cái)?shù)作為哈希值,并進(jìn)行自校驗(yàn)。通過(guò)自校驗(yàn)后再?gòu)奈膊拷厝」潭ǖ淖止?jié)長(zhǎng)作為文件名,再將剩余的數(shù)據(jù)全部寫(xiě)入到文件中進(jìn)行保存,即恢復(fù)出了存儲(chǔ)的源文件。

    為了提高解碼的成功率,大小噴泉碼模型的解碼算法均使用了置信度傳播-最大似然聯(lián)合譯碼BPML(Belief Propagation-Maximum Like-Lihood)算法[23]。解碼時(shí)使用BP算法,利用1度的數(shù)據(jù)先進(jìn)行線性解碼。BP算法平均時(shí)間復(fù)雜度較低,消耗資源少,可快速解碼出大部分的源數(shù)據(jù)。對(duì)那些因缺少1度數(shù)據(jù)而無(wú)法繼續(xù)解碼的剩余數(shù)據(jù),解碼端再使用最大似然(ML)解碼算法,利用高斯消元求解方程組解碼剩余數(shù)據(jù),從而有效提高解碼成功率。但是,ML算法的時(shí)間復(fù)雜度比較高,達(dá)到了O(K3)。

    5 仿真實(shí)驗(yàn)與分析

    以存儲(chǔ)圖像為例,將圖像分別壓縮至10 KB, 100 KB和200 KB 3種大小進(jìn)行DNA存儲(chǔ)仿真實(shí)驗(yàn)。測(cè)試程序用C語(yǔ)言編寫(xiě)。

    實(shí)驗(yàn)中設(shè)置隨機(jī)種子比特?cái)?shù)的下限為10,上限為24,因此編碼端能夠編碼的DNA序列數(shù)被限制在[1 024,16 777 216]內(nèi),滿足實(shí)驗(yàn)及應(yīng)用的需求。設(shè)置式(3)中的參數(shù)c=0.05,δ=0.05。在假設(shè)規(guī)避序列只有{GGATCC,AAAA}的情況下,以輸出300個(gè)堿基長(zhǎng)的DNA序列為標(biāo)準(zhǔn),對(duì)4.1節(jié)中提出的2種規(guī)避序列編碼方案進(jìn)行測(cè)試。3幅圖像的編碼要求信息如表1所示。

    Table 1 Coding experiment information表1 編碼實(shí)驗(yàn)信息

    5.1 仿真實(shí)驗(yàn)測(cè)試

    對(duì)4.1節(jié)提出的2種方案分別進(jìn)行編解碼實(shí)驗(yàn)。實(shí)驗(yàn)中設(shè)置編碼端和解碼端約定的文件名長(zhǎng)度固定為100 B,哈希值長(zhǎng)度固定為16 B,因此大噴泉碼實(shí)際編碼的數(shù)據(jù)為源文件內(nèi)容再加上100 B的文件名和16 B的哈希值。模型中編碼端和解碼端都設(shè)置參數(shù)L為64 bit的整型表示。小噴泉碼實(shí)際編碼的是一個(gè)192 bit數(shù)的數(shù)據(jù),其中包括64 bit的L和128 bit的哈希值,因此小噴泉碼數(shù)據(jù)總是被固定地劃分為192個(gè)分組。

    5.1.1 丟刪編碼方案實(shí)驗(yàn)

    丟刪編碼方案對(duì)3幅不同大小的圖像進(jìn)行編碼時(shí)產(chǎn)生的數(shù)據(jù)如表2所示。

    Table 2 Experimental results of drop-and-delete encoding 表2 丟刪編碼方案編碼實(shí)驗(yàn)結(jié)果

    表2中的大噴泉碼數(shù)據(jù)分組長(zhǎng)度為源文件內(nèi)容劃分的分組長(zhǎng)度;隨機(jī)種子長(zhǎng)度是基于規(guī)避序列丟棄情況編碼所需的DNA序列而確定的實(shí)際比特?cái)?shù)。3幅圖像在編碼時(shí)被劃分成的原始數(shù)據(jù)分組數(shù)K分別為142,1 400和2 801,而編碼輸出的DNA序列數(shù)都遠(yuǎn)高于原始數(shù)據(jù)分組數(shù),其冗余率分別為604.2%,328.6%和328.4%,可以保證在有部分?jǐn)?shù)據(jù)丟失的情況下依然具有較高的解碼成功概率。

    模擬DNA分子在復(fù)制、存儲(chǔ)、測(cè)序時(shí)因變質(zhì)而丟失的過(guò)程,即對(duì)3幅圖像編碼產(chǎn)生的DNA序列隨機(jī)刪除其中50%的數(shù)據(jù),用剩余的數(shù)據(jù)進(jìn)行解碼,重復(fù)100次實(shí)驗(yàn)。3個(gè)樣本剩余的用于解碼的DNA序列數(shù)量分別為500,3 000和6 000,此時(shí)冗余率分別為252.1%,114.3%和114.2%。解碼過(guò)程產(chǎn)生的數(shù)據(jù)如表3所示。

    Table 3 Experimental results of drop-and-delete decoding 表3 丟刪編碼方案解碼實(shí)驗(yàn)結(jié)果

    由表3可知,利用式(6)計(jì)算3幅圖像的隨機(jī)種子試探的起始長(zhǎng)度分別為10 bit, 12 bit和13 bit,小噴泉碼試探解碼的次數(shù)均為3次,大噴泉碼的解碼結(jié)果均為成功。

    5.1.2 MRC算法編碼方案實(shí)驗(yàn)

    使用MRC算法編碼方案測(cè)試時(shí),為了保證大多數(shù)編碼生成的DNA序列長(zhǎng)度小于或等于規(guī)定的長(zhǎng)度,對(duì)源文件的數(shù)據(jù)分組長(zhǎng)度進(jìn)行了適當(dāng)?shù)膲嚎s,編碼過(guò)程產(chǎn)生的數(shù)據(jù)如表4所示。

    Table 4 Experimental results of MRC algorithm encoding 表4 MRC算法方案編碼實(shí)驗(yàn)結(jié)果

    由表4可知,該方案比丟刪編碼方案中的大噴泉碼數(shù)據(jù)長(zhǎng)度平均短8 bit,但平均丟棄的DNA序列數(shù)僅為丟刪編碼方案的0.8%。丟棄序列的減少降低了隨機(jī)種子的比特長(zhǎng)度,該方案比丟刪編碼方案的隨機(jī)種子長(zhǎng)度平均短了1 bit。

    與丟刪編碼方案做法相同,從3幅圖像編碼生成的DNA序列中,隨機(jī)刪除50%的數(shù)據(jù),用剩余的DNA序列分別進(jìn)行解碼測(cè)試,重復(fù)100次實(shí)驗(yàn)。解碼過(guò)程的實(shí)驗(yàn)結(jié)果如表5所示。

    Table 5 Experimental resultsof MRC algorithm decoding 表5 MRC算法方案解碼實(shí)驗(yàn)結(jié)果

    由表5可知,利用MRC解碼算法求出的小噴泉碼數(shù)據(jù)數(shù)目不固定,從表5的第2列可以看出,在3組樣本的實(shí)驗(yàn)中,用于小噴泉碼解碼的數(shù)據(jù)量均大于192;由于隨機(jī)種子長(zhǎng)度縮短,所以試探解碼小噴泉碼的次數(shù)也比丟刪編碼方案的有所減少;大噴泉碼的解碼結(jié)果均為成功。

    在上述2種方案的實(shí)驗(yàn)中,由于小噴泉碼數(shù)據(jù)編碼時(shí)被固定劃分為192個(gè)分組,因此用于解碼小噴泉碼的數(shù)據(jù)分組數(shù)要大于或等于門(mén)限值才有可能成功解碼。若用于解碼的數(shù)據(jù)分組數(shù)量小于192,則模型不會(huì)進(jìn)行小噴泉碼解碼而是直接返回解碼失敗。同理,當(dāng)小噴泉碼成功解碼出參數(shù)K后,若用于解碼大噴泉碼的數(shù)據(jù)量小于K,也會(huì)直接返回解碼失敗,并返回失敗原因。

    5.2 性能分析

    5.2.1 解碼成功率分析

    對(duì)大小噴泉碼模型與傳統(tǒng)LT碼進(jìn)行解碼成功率對(duì)比測(cè)試。源文件的原始分組數(shù)目K會(huì)影響相同冗余度下的解碼結(jié)果,K越小越需要更高的冗余才能有較高的解碼成功率。以丟刪編碼為例,對(duì)3幅圖像數(shù)據(jù)分別進(jìn)行冗余度1~1.2的解碼實(shí)驗(yàn),對(duì)每幅圖像數(shù)據(jù)樣本的各個(gè)冗余度分別進(jìn)行100次重復(fù)實(shí)驗(yàn)。2種方法的平均解碼成功率對(duì)比如圖8所示。

    Figure 8 Comparison of decoding success rate between two methods圖8 2種方法的解碼成功率對(duì)比

    從圖8可以看出,圖像的上半部分,當(dāng)用于解碼的DNA序列冗余度達(dá)到1.04及以上時(shí),大小噴泉碼模型都能以接近100%的概率成功解碼;圖像的下半部分,傳統(tǒng)LT碼在冗余度為1.10的情況下,解碼成功率約等于20%。傳統(tǒng)LT碼解碼只使用BP算法,難以在較低冗余的情況下達(dá)到較高的解碼成功率。

    5.2.2 解碼時(shí)間效率分析

    本文使用大小噴泉碼與傳統(tǒng)噴泉碼對(duì)大小為100 KB的圖像進(jìn)行解碼時(shí)間的對(duì)比仿真實(shí)驗(yàn)。實(shí)驗(yàn)環(huán)境為:操作系統(tǒng)為Windows10 64位,處理器為Intel?CoreTMi5-7200U CPU @ 3.10 GHz,4 GB RAM。每組實(shí)驗(yàn)100次,結(jié)果取平均值,最終結(jié)果如圖9所示。

    Figure 9 Comparison of average decoding time between big and small fountaincode and traditional LT code圖9 大小噴泉碼與傳統(tǒng)LT碼平均解碼時(shí)間對(duì)比

    從圖9可以看出,在相同的硬件環(huán)境下大小噴泉碼模型的解碼時(shí)間僅略高于傳統(tǒng)噴泉碼的,平均解碼時(shí)間相差不超過(guò)10%。大小噴泉碼模型解碼時(shí)通過(guò)試探的方式確定隨機(jī)種子長(zhǎng)度,因此可能首先會(huì)進(jìn)行多次小噴泉碼解碼,此過(guò)程需要花費(fèi)一定的時(shí)間。此外大小噴泉碼模型在解碼后期對(duì)因缺少1度而無(wú)法繼續(xù)解碼的數(shù)據(jù)使用了ML算法繼續(xù)解碼。ML算法本質(zhì)是高斯消元法求解方程組,可有效提高解碼的成功率,但需要消耗更多的時(shí)間。設(shè)因缺少1度而無(wú)法繼續(xù)解碼的數(shù)據(jù)規(guī)模為S,則BPML算法解碼的時(shí)間復(fù)雜度約為O((K-S)ln(K-S))+O(S3)。當(dāng)解碼的數(shù)據(jù)量達(dá)到一定冗余時(shí),S的規(guī)模會(huì)很小,因此整個(gè)解碼算法的復(fù)雜度僅略高于BP算法的。

    5.2.3 數(shù)據(jù)存儲(chǔ)密度分析

    在數(shù)據(jù)存儲(chǔ)密度方面,由于MRC算法編碼的不均勻性,可能會(huì)導(dǎo)致編碼生成的DNA序列超過(guò)規(guī)定長(zhǎng)度。對(duì)該方案的數(shù)據(jù)分組長(zhǎng)度進(jìn)行適當(dāng)壓縮,讓更多MRC編碼生成的DNA序列小于或等于規(guī)定的長(zhǎng)度,但因此會(huì)降低存儲(chǔ)密度。在相同的實(shí)驗(yàn)參數(shù)下,3種方案的存儲(chǔ)密度對(duì)比如圖10所示(圖10中縱坐標(biāo)存儲(chǔ)空間利用率即為存儲(chǔ)密度)。

    Figure 10 Comparison of storage space utilization among three schemes圖10 3種方案的存儲(chǔ)空間利用率對(duì)比

    從圖10可以看出,丟刪編碼方案具有更高的存儲(chǔ)密度。丟刪編碼方案中每條編碼的DNA序列中大噴泉碼的存儲(chǔ)密度比MRC算法方案的要多出約1.3%;而這2種方案與傳統(tǒng)的LT碼在數(shù)據(jù)分組末尾直接拼接整個(gè)參數(shù)L的做法相比,存儲(chǔ)密度要高出約11.8%。

    實(shí)驗(yàn)結(jié)果表明,本文提出的大小噴泉碼模型能有效降低關(guān)鍵參數(shù)K傳輸?shù)膸?實(shí)現(xiàn)了以較低的帶寬消耗傳輸一個(gè)關(guān)鍵參數(shù)的目的。

    6 結(jié)束語(yǔ)

    本文針對(duì)DNA存儲(chǔ)應(yīng)用場(chǎng)景下噴泉碼中關(guān)鍵參數(shù)K的傳遞問(wèn)題,設(shè)計(jì)了一種大小噴泉碼模型。該模型中的小噴泉碼作為帶外信道負(fù)責(zé)向解碼端傳遞一些大噴泉碼解碼過(guò)程需要的關(guān)鍵參數(shù),并且在每個(gè)編碼數(shù)據(jù)分組中,小噴泉碼數(shù)據(jù)降低到了1 bit,有效壓縮了關(guān)鍵參數(shù)傳輸?shù)膸?提高了空間利用率。

    在未來(lái)的工作中,大小噴泉碼模型需要進(jìn)一步優(yōu)化的方向是如何有效傳遞隨機(jī)種子比特?cái)?shù)信息。目前模型中隨機(jī)種子是根據(jù)實(shí)際計(jì)算的長(zhǎng)度動(dòng)態(tài)嵌入到數(shù)據(jù)分組中的,而解碼時(shí),解碼端無(wú)法獲得隨機(jī)種子比特?cái)?shù)信息,只能通過(guò)試探的方法,借助小噴泉碼的哈希自校驗(yàn)來(lái)確定種子比特?cái)?shù)。這種方法的缺點(diǎn)是需要進(jìn)行多次試探,會(huì)降低時(shí)間效率,未來(lái)可以進(jìn)一步優(yōu)化以提高時(shí)間效率。

    国产免费一级a男人的天堂| 伦精品一区二区三区| 国产精品久久电影中文字幕| 成年免费大片在线观看| 欧美色欧美亚洲另类二区| 国产精品久久久久久久久免| 国产v大片淫在线免费观看| 最新在线观看一区二区三区| 精品日产1卡2卡| 久久精品国产亚洲av天美| 精品人妻一区二区三区麻豆 | 真人做人爱边吃奶动态| 国产精品不卡视频一区二区| 看十八女毛片水多多多| 亚洲成人久久性| 久久久久久久久大av| 欧美在线一区亚洲| 亚洲第一电影网av| av.在线天堂| 久久久成人免费电影| 观看美女的网站| 在线看三级毛片| 日日摸夜夜添夜夜添小说| 亚洲电影在线观看av| 高清日韩中文字幕在线| 日韩亚洲欧美综合| 国产高清三级在线| 亚洲国产高清在线一区二区三| 国产蜜桃级精品一区二区三区| 91在线精品国自产拍蜜月| 国产单亲对白刺激| 特级一级黄色大片| 一a级毛片在线观看| 亚洲av第一区精品v没综合| a级毛色黄片| 国产精品野战在线观看| 亚洲激情五月婷婷啪啪| 免费看美女性在线毛片视频| 亚洲欧美精品综合久久99| 尾随美女入室| 少妇被粗大猛烈的视频| 国产高清有码在线观看视频| 国产久久久一区二区三区| 看免费成人av毛片| eeuss影院久久| 免费观看人在逋| 国产视频内射| 成人永久免费在线观看视频| 久久精品国产自在天天线| 日本a在线网址| 亚洲最大成人手机在线| 俺也久久电影网| 亚洲精品一区av在线观看| 又粗又爽又猛毛片免费看| av中文乱码字幕在线| 婷婷六月久久综合丁香| 长腿黑丝高跟| 91在线精品国自产拍蜜月| 麻豆成人午夜福利视频| 麻豆精品久久久久久蜜桃| 校园春色视频在线观看| 国产欧美日韩精品一区二区| 欧美激情久久久久久爽电影| 1000部很黄的大片| 神马国产精品三级电影在线观看| 久久婷婷人人爽人人干人人爱| 嫩草影院精品99| 夜夜爽天天搞| 国产 一区 欧美 日韩| 欧美区成人在线视频| 国产成人91sexporn| 18禁在线无遮挡免费观看视频 | av国产免费在线观看| 99国产精品一区二区蜜桃av| 人妻久久中文字幕网| 欧美激情久久久久久爽电影| 亚洲av免费在线观看| 亚洲av免费高清在线观看| 亚洲av成人精品一区久久| 免费观看在线日韩| 一级毛片电影观看 | 99九九线精品视频在线观看视频| 久久精品夜色国产| 午夜福利成人在线免费观看| 国产成人91sexporn| 国产精品,欧美在线| 中文字幕熟女人妻在线| 国产欧美日韩一区二区精品| 级片在线观看| 免费av观看视频| 免费看光身美女| 色综合亚洲欧美另类图片| 男人舔女人下体高潮全视频| 此物有八面人人有两片| 国产精品av视频在线免费观看| 亚洲熟妇中文字幕五十中出| 久久韩国三级中文字幕| 亚洲国产高清在线一区二区三| 看非洲黑人一级黄片| 成人特级av手机在线观看| 欧美在线一区亚洲| 最新在线观看一区二区三区| 欧美潮喷喷水| 欧美区成人在线视频| 看非洲黑人一级黄片| 欧美一区二区亚洲| av卡一久久| 日日摸夜夜添夜夜爱| 国产真实乱freesex| 性色avwww在线观看| 69人妻影院| 国产成年人精品一区二区| 国产精品一区二区三区四区久久| 高清日韩中文字幕在线| 69av精品久久久久久| 女人被狂操c到高潮| 久久亚洲国产成人精品v| 看十八女毛片水多多多| 亚洲欧美成人综合另类久久久 | 亚州av有码| 嫩草影院入口| 国产又黄又爽又无遮挡在线| 亚洲中文字幕日韩| 日韩三级伦理在线观看| 国产成人aa在线观看| 日韩大尺度精品在线看网址| 亚洲av中文av极速乱| 亚洲精品国产成人久久av| 别揉我奶头~嗯~啊~动态视频| 中文字幕久久专区| 日本五十路高清| 黄色视频,在线免费观看| 秋霞在线观看毛片| 亚洲无线观看免费| 热99在线观看视频| 天天躁日日操中文字幕| 精品一区二区三区av网在线观看| 亚洲激情五月婷婷啪啪| 搡老妇女老女人老熟妇| 国产伦精品一区二区三区视频9| 国产午夜精品论理片| 狠狠狠狠99中文字幕| 一个人看的www免费观看视频| 蜜桃久久精品国产亚洲av| 国产黄色视频一区二区在线观看 | 一级毛片久久久久久久久女| 综合色av麻豆| 亚洲国产欧美人成| 亚洲无线在线观看| 床上黄色一级片| www.色视频.com| 看十八女毛片水多多多| 日韩成人伦理影院| 一区福利在线观看| 午夜精品在线福利| 日本一本二区三区精品| 亚洲经典国产精华液单| 婷婷六月久久综合丁香| 国产精品久久视频播放| 亚洲av成人精品一区久久| 午夜日韩欧美国产| 久久久午夜欧美精品| 精品一区二区免费观看| 色播亚洲综合网| 日韩欧美国产在线观看| 天天躁夜夜躁狠狠久久av| 成人漫画全彩无遮挡| 啦啦啦啦在线视频资源| 黄色日韩在线| АⅤ资源中文在线天堂| 啦啦啦啦在线视频资源| 中文亚洲av片在线观看爽| 亚洲熟妇中文字幕五十中出| 国产视频内射| 三级男女做爰猛烈吃奶摸视频| av免费在线看不卡| 非洲黑人性xxxx精品又粗又长| 国产精品不卡视频一区二区| 国产伦精品一区二区三区视频9| 最近手机中文字幕大全| 欧美高清成人免费视频www| 国产男靠女视频免费网站| 午夜亚洲福利在线播放| 真实男女啪啪啪动态图| 人人妻,人人澡人人爽秒播| 久久综合国产亚洲精品| 国产综合懂色| 亚洲最大成人中文| 最近2019中文字幕mv第一页| 最新在线观看一区二区三区| 国产一区二区在线观看日韩| 三级男女做爰猛烈吃奶摸视频| 亚洲欧美清纯卡通| 国产高清视频在线播放一区| 久久亚洲国产成人精品v| av在线老鸭窝| 精品无人区乱码1区二区| 国产亚洲av嫩草精品影院| 国产精品爽爽va在线观看网站| 国产男人的电影天堂91| 婷婷六月久久综合丁香| 热99在线观看视频| 无遮挡黄片免费观看| 热99在线观看视频| 亚洲人与动物交配视频| 日韩精品中文字幕看吧| 哪里可以看免费的av片| 成熟少妇高潮喷水视频| 成人av一区二区三区在线看| 两个人视频免费观看高清| 欧美高清性xxxxhd video| 精品熟女少妇av免费看| 少妇裸体淫交视频免费看高清| 亚洲国产精品久久男人天堂| 日产精品乱码卡一卡2卡三| 岛国在线免费视频观看| 啦啦啦观看免费观看视频高清| 波多野结衣高清无吗| 日本爱情动作片www.在线观看 | 日本色播在线视频| 国产淫片久久久久久久久| 欧美日本视频| 免费不卡的大黄色大毛片视频在线观看 | 好男人在线观看高清免费视频| 午夜免费男女啪啪视频观看 | 欧美一级a爱片免费观看看| 午夜福利在线在线| 亚洲精品国产av成人精品 | 天天躁日日操中文字幕| 中文资源天堂在线| 免费不卡的大黄色大毛片视频在线观看 | 三级男女做爰猛烈吃奶摸视频| 麻豆国产97在线/欧美| 一级av片app| 国产亚洲精品久久久久久毛片| 国国产精品蜜臀av免费| 久久精品国产鲁丝片午夜精品| 午夜福利高清视频| 美女内射精品一级片tv| 97超碰精品成人国产| avwww免费| 国产欧美日韩一区二区精品| 成年版毛片免费区| 99九九线精品视频在线观看视频| 亚洲人成网站高清观看| 男女下面进入的视频免费午夜| av女优亚洲男人天堂| 两性午夜刺激爽爽歪歪视频在线观看| 天堂√8在线中文| 亚洲成a人片在线一区二区| .国产精品久久| 淫秽高清视频在线观看| 久久人妻av系列| 国产精品99久久久久久久久| 在线播放国产精品三级| 亚洲四区av| 女人十人毛片免费观看3o分钟| 最近手机中文字幕大全| 有码 亚洲区| 丰满的人妻完整版| 久久精品人妻少妇| 在线天堂最新版资源| 日本一本二区三区精品| 天堂影院成人在线观看| 国产亚洲欧美98| 亚洲国产色片| 日本免费a在线| 少妇猛男粗大的猛烈进出视频 | 九九爱精品视频在线观看| 国产 一区 欧美 日韩| 色哟哟哟哟哟哟| 一区二区三区四区激情视频 | 看黄色毛片网站| 热99在线观看视频| 欧美中文日本在线观看视频| 国产女主播在线喷水免费视频网站 | 欧美精品国产亚洲| 一卡2卡三卡四卡精品乱码亚洲| 三级国产精品欧美在线观看| 91久久精品国产一区二区成人| 免费人成在线观看视频色| www日本黄色视频网| 美女cb高潮喷水在线观看| 内射极品少妇av片p| 亚洲av.av天堂| 久久久久性生活片| 欧美日韩一区二区视频在线观看视频在线 | 色尼玛亚洲综合影院| 亚洲成人久久性| 久久韩国三级中文字幕| 中文资源天堂在线| 国产男人的电影天堂91| 中文字幕免费在线视频6| 老熟妇仑乱视频hdxx| 性插视频无遮挡在线免费观看| 99热精品在线国产| 丰满的人妻完整版| 欧美另类亚洲清纯唯美| 又粗又爽又猛毛片免费看| 久久久久国内视频| 亚洲av五月六月丁香网| 听说在线观看完整版免费高清| 一本精品99久久精品77| 亚洲真实伦在线观看| 最近手机中文字幕大全| 色综合色国产| 一夜夜www| 亚洲人成网站高清观看| 亚洲精品色激情综合| 亚洲精品乱码久久久v下载方式| 2021天堂中文幕一二区在线观| 亚洲国产色片| 一进一出抽搐gif免费好疼| 最后的刺客免费高清国语| 亚洲av五月六月丁香网| 免费搜索国产男女视频| 日韩,欧美,国产一区二区三区 | 国产亚洲91精品色在线| 国内精品久久久久精免费| 久久久成人免费电影| 欧美性猛交╳xxx乱大交人| av黄色大香蕉| 免费电影在线观看免费观看| 级片在线观看| 国产成人91sexporn| 成年av动漫网址| 97人妻精品一区二区三区麻豆| 三级毛片av免费| 身体一侧抽搐| 久久午夜亚洲精品久久| 国产午夜福利久久久久久| 性色avwww在线观看| 亚洲经典国产精华液单| 欧美xxxx黑人xx丫x性爽| 99久久九九国产精品国产免费| 久久综合国产亚洲精品| 一个人看视频在线观看www免费| 欧美性猛交╳xxx乱大交人| 少妇的逼水好多| 国产av不卡久久| 国产又黄又爽又无遮挡在线| 黑人高潮一二区| 久久人妻av系列| 高清日韩中文字幕在线| 亚洲人成网站高清观看| 天堂√8在线中文| 国产成人a区在线观看| 丰满人妻一区二区三区视频av| 亚洲国产精品久久男人天堂| 免费av毛片视频| 亚洲精品乱码久久久v下载方式| 看非洲黑人一级黄片| 干丝袜人妻中文字幕| 2021天堂中文幕一二区在线观| 久久精品国产亚洲网站| 国产av在哪里看| 免费在线观看成人毛片| 日韩精品青青久久久久久| 三级毛片av免费| 嫩草影视91久久| 久久精品夜色国产| 日本与韩国留学比较| aaaaa片日本免费| 亚洲激情五月婷婷啪啪| 日本撒尿小便嘘嘘汇集6| 国产av在哪里看| 97超级碰碰碰精品色视频在线观看| 又粗又爽又猛毛片免费看| 最近的中文字幕免费完整| 老熟妇仑乱视频hdxx| 乱系列少妇在线播放| 悠悠久久av| 好男人在线观看高清免费视频| 人妻夜夜爽99麻豆av| 亚洲国产精品成人久久小说 | 丰满乱子伦码专区| 午夜日韩欧美国产| 日本免费a在线| 不卡视频在线观看欧美| 成人午夜高清在线视频| 变态另类成人亚洲欧美熟女| 久久国内精品自在自线图片| 日本黄色视频三级网站网址| 好男人在线观看高清免费视频| 悠悠久久av| 国产精品一区www在线观看| 日韩欧美 国产精品| 久99久视频精品免费| 91久久精品电影网| 麻豆精品久久久久久蜜桃| 神马国产精品三级电影在线观看| 欧美色欧美亚洲另类二区| 大型黄色视频在线免费观看| 美女高潮的动态| 村上凉子中文字幕在线| 亚洲人成网站在线播| 日韩精品有码人妻一区| 观看免费一级毛片| 国产欧美日韩精品亚洲av| 国产欧美日韩精品一区二区| 亚洲精品国产成人久久av| 欧美日本视频| 欧美激情在线99| 成年版毛片免费区| 美女cb高潮喷水在线观看| 国内精品美女久久久久久| 久久久色成人| 又粗又爽又猛毛片免费看| 在线看三级毛片| 自拍偷自拍亚洲精品老妇| 亚洲一区高清亚洲精品| 少妇被粗大猛烈的视频| 欧美国产日韩亚洲一区| 亚洲国产欧洲综合997久久,| 国产激情偷乱视频一区二区| 听说在线观看完整版免费高清| 内射极品少妇av片p| 少妇人妻精品综合一区二区 | 午夜激情福利司机影院| 变态另类成人亚洲欧美熟女| 99九九线精品视频在线观看视频| 国产又黄又爽又无遮挡在线| 91久久精品电影网| 免费搜索国产男女视频| av专区在线播放| 国产蜜桃级精品一区二区三区| 亚洲成a人片在线一区二区| 国产精品一区二区性色av| 国产精品久久视频播放| 一个人看视频在线观看www免费| 97在线视频观看| 国产精品一区二区免费欧美| av国产免费在线观看| 国产美女午夜福利| 亚洲欧美精品自产自拍| 亚洲精品影视一区二区三区av| 亚洲无线观看免费| 亚洲国产欧美人成| 精品一区二区三区av网在线观看| 久久这里只有精品中国| 亚洲精品456在线播放app| 婷婷精品国产亚洲av在线| 国产淫片久久久久久久久| 国语自产精品视频在线第100页| 91在线精品国自产拍蜜月| 人人妻人人澡人人爽人人夜夜 | 色综合色国产| 毛片女人毛片| 国产av在哪里看| 国产精品久久久久久亚洲av鲁大| 国产人妻一区二区三区在| 久久欧美精品欧美久久欧美| 又爽又黄无遮挡网站| 亚洲精品一区av在线观看| 精品无人区乱码1区二区| 麻豆久久精品国产亚洲av| 日日摸夜夜添夜夜爱| 亚洲无线观看免费| 床上黄色一级片| 国产精品野战在线观看| 国产一区二区亚洲精品在线观看| 青春草视频在线免费观看| 99热只有精品国产| 天堂影院成人在线观看| 日韩精品有码人妻一区| 麻豆乱淫一区二区| 国产亚洲精品久久久久久毛片| 久久久久国内视频| 一区二区三区高清视频在线| 亚洲一区高清亚洲精品| 九九久久精品国产亚洲av麻豆| 久久久精品大字幕| 久久久久久久午夜电影| 日本熟妇午夜| 中国美女看黄片| av在线蜜桃| 国产亚洲欧美98| 婷婷六月久久综合丁香| 啦啦啦韩国在线观看视频| 我要看日韩黄色一级片| 国语自产精品视频在线第100页| 男人和女人高潮做爰伦理| 亚洲激情五月婷婷啪啪| 成人亚洲精品av一区二区| 色吧在线观看| 亚洲中文日韩欧美视频| 日日摸夜夜添夜夜爱| 精品熟女少妇av免费看| 国产日本99.免费观看| 看非洲黑人一级黄片| 国产精品久久电影中文字幕| 在线观看一区二区三区| 久久精品夜色国产| 久久精品国产亚洲网站| 日韩一本色道免费dvd| 国产精品嫩草影院av在线观看| 在线观看免费视频日本深夜| 卡戴珊不雅视频在线播放| 少妇熟女aⅴ在线视频| 欧美激情在线99| 黄色配什么色好看| 噜噜噜噜噜久久久久久91| 丝袜喷水一区| 深夜a级毛片| 午夜精品在线福利| 国产精品亚洲一级av第二区| 露出奶头的视频| 国产激情偷乱视频一区二区| 床上黄色一级片| 国产综合懂色| 免费av毛片视频| 久久草成人影院| 久久这里只有精品中国| 久久久久精品国产欧美久久久| 亚洲激情五月婷婷啪啪| 久久99热6这里只有精品| 成人三级黄色视频| 如何舔出高潮| 国产精品无大码| 最新在线观看一区二区三区| 欧美日本亚洲视频在线播放| 国产精品久久电影中文字幕| 国产精品国产三级国产av玫瑰| 亚洲人成网站高清观看| 亚洲精品色激情综合| 青春草视频在线免费观看| 露出奶头的视频| 国产探花极品一区二区| 校园人妻丝袜中文字幕| 真人做人爱边吃奶动态| 亚洲国产欧美人成| 麻豆一二三区av精品| 精品久久久久久久久av| 国产精品电影一区二区三区| 亚洲最大成人av| 国产在线男女| 亚洲熟妇熟女久久| 日日摸夜夜添夜夜添av毛片| 久久综合国产亚洲精品| 天天一区二区日本电影三级| 亚洲av第一区精品v没综合| 国产精品不卡视频一区二区| 久久综合国产亚洲精品| 精品少妇黑人巨大在线播放 | 五月玫瑰六月丁香| 久久久久精品国产欧美久久久| 亚洲精品色激情综合| 亚洲中文日韩欧美视频| 国产黄a三级三级三级人| 亚洲国产精品国产精品| 丰满人妻一区二区三区视频av| 真实男女啪啪啪动态图| 欧美精品国产亚洲| 亚洲欧美成人精品一区二区| 黄色视频,在线免费观看| 国产高清三级在线| 免费av毛片视频| 99热这里只有是精品50| 国产高清视频在线观看网站| 国产免费男女视频| 国产真实乱freesex| 亚洲美女视频黄频| 在线国产一区二区在线| 最后的刺客免费高清国语| 国产午夜精品久久久久久一区二区三区 | 日韩国内少妇激情av| 午夜精品在线福利| 一区福利在线观看| 免费av观看视频| 男人的好看免费观看在线视频| 久久精品人妻少妇| 老女人水多毛片| 我要搜黄色片| 91久久精品电影网| 国产av一区在线观看免费| 舔av片在线| 夜夜看夜夜爽夜夜摸| 极品教师在线视频| 欧美性猛交黑人性爽| 高清午夜精品一区二区三区 | 成年版毛片免费区| 国产视频一区二区在线看| 老司机影院成人| 黄片wwwwww| 国产精品人妻久久久久久| 日韩欧美精品免费久久| 亚洲真实伦在线观看| 精品久久久噜噜| 毛片一级片免费看久久久久| 国产精品久久久久久亚洲av鲁大| 最近最新中文字幕大全电影3| а√天堂www在线а√下载| 男女啪啪激烈高潮av片| 国产在视频线在精品| 国产精品女同一区二区软件| 欧美三级亚洲精品| 成人二区视频| 成年女人永久免费观看视频| 全区人妻精品视频| 国产精品久久久久久久久免| 亚洲av免费在线观看| 国产伦精品一区二区三区四那| 18禁在线播放成人免费| 免费看光身美女| 久久天躁狠狠躁夜夜2o2o| 在线观看免费视频日本深夜| 一本久久中文字幕| 精品一区二区三区视频在线观看免费| 少妇人妻精品综合一区二区 | 悠悠久久av| 成人二区视频| avwww免费| 国产色婷婷99| 成人漫画全彩无遮挡| 亚洲中文日韩欧美视频|