《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 基于ARM7的MPEG-4視頻解碼器的優(yōu)化

基于ARM7的MPEG-4視頻解碼器的優(yōu)化

2009-06-08
作者:湯霄峰,鄭善賢,胡 強(qiáng)

??? 摘? 要: 分析了ARM7處理器的結(jié)構(gòu)特點(diǎn),針對(duì)解碼器的優(yōu)化特點(diǎn)和芯片的硬件結(jié)構(gòu),采用了算法級(jí)、語言級(jí)、ARM級(jí)聯(lián)合優(yōu)化的方法,對(duì)標(biāo)準(zhǔn)MPEG-4解碼過程進(jìn)行了優(yōu)化。通過本文所總結(jié)的ARM7TDMI上視頻解碼的優(yōu)化方法,可以使MPEG4視頻解碼節(jié)約大量的數(shù)據(jù)處理時(shí)間,能較好地滿足低分辨率、低幀率場(chǎng)合實(shí)時(shí)解碼的要求。?

????關(guān)鍵詞: ARM7;MPEG-4;視頻解碼器

?

??? 目前,手持設(shè)備的視頻播放非常流行。一直以來,圖像壓縮大都采用H.263壓縮算法,然而,由于MPEG-4標(biāo)準(zhǔn)的成熟,很多視頻圖像都已經(jīng)采用MPEG-4算法進(jìn)行壓縮。本文旨在研究基于ARM7微處理器的MPEG-4視頻解碼器的優(yōu)化。利用嵌入式系統(tǒng)實(shí)現(xiàn)MPEG-4視頻解碼,處理器的選擇是關(guān)鍵。在嵌入式系統(tǒng)中常用的RISC處理器是ARM核,因?yàn)樗哂畜w積小、功耗低、成本低、性價(jià)比高的特點(diǎn),這對(duì)于移動(dòng)應(yīng)用領(lǐng)域非常重要。ARM7系列微處理器為低功耗的32位處理器,最適合于對(duì)價(jià)位和功耗要求較高的消費(fèi)類應(yīng)用[1]。本解碼器可以運(yùn)用于低分辨率和低幀率的應(yīng)用場(chǎng)合,因此選擇在ARM7TDMI核上實(shí)現(xiàn)解碼功能。要實(shí)現(xiàn)更高幀率和分辨率的解碼,可將軟件直接應(yīng)用在更高端的處理器上。?

1 MPEG-4視頻解碼算法?

??? MPEG-4標(biāo)準(zhǔn)可以劃分為一套子標(biāo)準(zhǔn),標(biāo)準(zhǔn)的每一部分都有各自最適合的應(yīng)用場(chǎng)合。MPEG-4 SVP(Simple Visual Profile[2])就是一種特殊的、簡(jiǎn)單的MPEG-4實(shí)現(xiàn)。其專門針對(duì)手持式產(chǎn)品中視頻傳輸應(yīng)用場(chǎng)合制定的。由于本解碼器可應(yīng)用在手持移動(dòng)設(shè)備視頻解碼的場(chǎng)合,因此選用MPEG-4 SVP作為解碼算法。?

??? 本文選用ARM7TDMI作為核心處理器進(jìn)行MPEG-4視頻解碼器的開發(fā)。在實(shí)際開發(fā)過程中,針對(duì)ARM7TDMI的結(jié)構(gòu)和MPEG-4的算法特點(diǎn),做了大量?jī)?yōu)化工作,保證了解碼精度,大幅度提高了解碼速度。嚴(yán)格來說,ARM7處理能力有限,更適合用于控制類型的應(yīng)用。由于其沒有針對(duì)視頻解碼數(shù)據(jù)處理而進(jìn)行優(yōu)化設(shè)計(jì),因而不太適合于視頻解碼等數(shù)據(jù)處理類應(yīng)用。但是由于該芯片具有明顯的成本優(yōu)勢(shì),所以經(jīng)過優(yōu)化,在充分利用其性能的前提下,還是可以作為手機(jī)等嵌入式系統(tǒng)的視頻解碼應(yīng)用。?

??? 解碼過程實(shí)際上就是從視頻編碼碼流中恢復(fù)出VOP數(shù)據(jù)的過程。圖1描述了一個(gè)視頻解碼過程。解碼器主要包含運(yùn)動(dòng)解碼和紋理解碼。I幀中只含有紋理信息,因此只須解碼紋理信息即可恢復(fù)I幀。而P幀中不僅包含紋理信息,還包含運(yùn)動(dòng)信息,所以須解碼運(yùn)動(dòng)信息,獲得運(yùn)動(dòng)矢量并進(jìn)行運(yùn)動(dòng)補(bǔ)償。另外,還須進(jìn)行紋理解碼獲得殘差值,將這兩部分組合起來才能重建P幀[3]。?

?

?

??? 解碼器的實(shí)現(xiàn)主要是提供一個(gè)簡(jiǎn)單的接口函數(shù),供解碼時(shí)調(diào)用。該接口函數(shù)根據(jù)解碼的不同需要和不同階段提供了5個(gè)入口。5個(gè)接口函數(shù)中,有 4個(gè)供初始化、預(yù)處理及后續(xù)處理時(shí)調(diào)用,剩余1個(gè)是幀解碼的實(shí)現(xiàn)函數(shù)。圖2為幀解碼主程序流程圖。?

??? 解碼過程的計(jì)算主要集中在如下幾個(gè)模塊:IDCT、運(yùn)動(dòng)補(bǔ)償MC、逆量化、逆掃描、逆預(yù)測(cè)以及變長(zhǎng)解碼VLD。表1給出了優(yōu)化前解碼過程的特征信息。從表1中可以看出,上述運(yùn)算模塊在解碼過程中占有很大比例。對(duì)以上各模塊進(jìn)行優(yōu)化的效果將直接反映在解碼器的實(shí)時(shí)效率上。?

?

?

2 解碼器優(yōu)化?

2.1 效率更高的IDCT變換?

??? 通常,MPEG-4編碼過程中有8×8塊在DCT變換后AC系數(shù)大都接近于零,經(jīng)過量化后直接變成了零。同時(shí)根據(jù)幀間預(yù)測(cè)的相關(guān)性:在運(yùn)動(dòng)不是非常劇烈的情況下,量化后大部分DCT相關(guān)性是零。表2顯示了在快速運(yùn)動(dòng)和慢速運(yùn)動(dòng)序列下所有全零塊的百分比。?

?

?

??? 對(duì)于快速運(yùn)動(dòng)序列,大約25%的DCT塊是全零;對(duì)于慢速運(yùn)動(dòng)序列,全零塊的百分比大約47%[4]。這樣,可以把DCT塊分為不同的三類:一類是全零塊(DC系數(shù)和AC系數(shù)都是零),一類是只含有DC系數(shù)(AC系數(shù)是零),一類是含有DC系數(shù)和AC系數(shù),如圖3所示(這里用4×4的塊舉例,D代表DC系數(shù),A表示AC系數(shù))。對(duì)于不同的IDCT進(jìn)行不同的處理:對(duì)于第一類情況,全零塊,跳過反變換;對(duì)于第二類情況,只進(jìn)行反DC變換,通常除以8,即移3位即可;對(duì)于非零AC系數(shù)塊,按照快速的IDCT處理。這樣就可以針對(duì)不同的情況采用不同的處理辦法,提高了解碼效率。?

?

?

2.2 效率更高的運(yùn)動(dòng)補(bǔ)償?

2.2.1 運(yùn)動(dòng)補(bǔ)償?shù)臄U(kuò)邊?

??? MPEG-4在進(jìn)行運(yùn)動(dòng)補(bǔ)償時(shí),使用運(yùn)動(dòng)向量在參考圖像中尋找預(yù)測(cè)塊。如果運(yùn)動(dòng)向量變化比較快,則運(yùn)動(dòng)向量很可能指向參考圖像以外。MPEG-4標(biāo)準(zhǔn)框架中,采用了很多分支判斷語句來處理運(yùn)動(dòng)向量指向參考圖像以外的情況。一方面IF語句的判斷會(huì)降低程序的效率,造成解碼過程速度的下降;另一方面如果運(yùn)動(dòng)向量沒有指向參考圖像以外,IF判斷就顯得多余。為了提高解碼效率,可以采用參考幀擴(kuò)邊的方式來解決。將參考圖像的邊界擴(kuò)大部分全部置零,這樣就可以減少很多判斷語句,提高解碼效率。在實(shí)際中,運(yùn)動(dòng)向量的有效范圍很大,但當(dāng)運(yùn)動(dòng)向量使計(jì)算一個(gè)預(yù)測(cè)塊所需的像素完全處于參考圖像以外時(shí),則不論運(yùn)動(dòng)向量的水平分量或者垂直分量延伸多遠(yuǎn),所得到的預(yù)測(cè)塊都是相同的。而運(yùn)動(dòng)補(bǔ)償既可以基于塊(8×8)的,也可以基于宏塊(16×16)的,因此將擴(kuò)展的字節(jié)數(shù)取為16就可以了。同時(shí)將運(yùn)動(dòng)向量的兩個(gè)分量分別裁剪到不超過參考圖像左邊和上邊的邊界8 B以及下邊和右邊的邊界2 B。擴(kuò)展后的參考圖像見圖4。?

?

?

2.2.2 雙線性插值的改進(jìn)?

??? MEPG-4解碼算法中,運(yùn)動(dòng)補(bǔ)償是以宏塊為單位進(jìn)行的。最初的做法基于參考圖像采用雙線性插值,見圖5。?

?

?

??? 對(duì)這一做法進(jìn)行如下改進(jìn):對(duì)宏塊的運(yùn)動(dòng)補(bǔ)償是根據(jù)獲得運(yùn)動(dòng)矢量進(jìn)行不同的判斷,而不是固定采用雙線性插值的算法。運(yùn)動(dòng)補(bǔ)償根據(jù)從解碼數(shù)據(jù)中獲得的水平運(yùn)動(dòng)矢量MV_X和垂直運(yùn)動(dòng)矢量MV_Y進(jìn)行,即根據(jù)MV_X和MV_Y最低位為0或1的情況分為:只進(jìn)行直接復(fù)制相應(yīng)數(shù)據(jù);只進(jìn)行垂直方向插值;只進(jìn)行水平方向插值;進(jìn)行雙線性插值。具體做法如下:?

??? 當(dāng)MV_X和MV_Y的最低位都為零時(shí),運(yùn)動(dòng)矢量指向的16×16的塊本身與緩沖區(qū)中的像素重合,這時(shí)不需要進(jìn)行任何插值處理,直接復(fù)制相應(yīng)數(shù)據(jù)。當(dāng)MV_X最低位為零而MV_Y的最低位不為零時(shí),運(yùn)動(dòng)矢量指向的8×8的塊的點(diǎn)落在某列兩相鄰像素的中間,這時(shí)只需要進(jìn)行垂直方向的插值。當(dāng)MV_X最低位不為零而MV_Y的最低位為零時(shí),運(yùn)動(dòng)矢量指向的8×8的塊的點(diǎn)落在某行兩相鄰像素的中間,這時(shí)只需要進(jìn)行水平方向的插值。當(dāng)MV_X與MV_Y的最低位均不為零時(shí),運(yùn)動(dòng)矢量指向的8×8的塊的點(diǎn)落在相鄰四個(gè)像素的中心,這時(shí)必須同時(shí)進(jìn)行兩個(gè)方向的插值。由于相鄰幀之間具有很大的時(shí)間相關(guān)性,所以本幀和上一幀大部分?jǐn)?shù)據(jù)是相同的。假設(shè)上面4種運(yùn)動(dòng)補(bǔ)償情形各占1/4,當(dāng)進(jìn)行水平或垂直插值時(shí),運(yùn)動(dòng)補(bǔ)償所占的運(yùn)算量?jī)H為原來的雙線性插值的1/2,比雙線性插值約節(jié)省一半的計(jì)算量,從而大大節(jié)省了運(yùn)動(dòng)補(bǔ)償?shù)臅r(shí)間。?

2.2.3 像素的并行處理?

??? 解碼過程中處理的像素是8位,如果運(yùn)動(dòng)補(bǔ)償是在字節(jié)或像素的基礎(chǔ)上執(zhí)行,則字節(jié)加載和存儲(chǔ)將被使用,它是存儲(chǔ)器訪問中代價(jià)最高的操作。因?yàn)锳RM7是32位微處理器,存儲(chǔ)器可以按字讀取數(shù)據(jù),因此設(shè)計(jì)出一種有效的運(yùn)動(dòng)補(bǔ)償方法,即在字?jǐn)?shù)據(jù)的基礎(chǔ)上進(jìn)行操作。利用這種方法,便可以用一種非常有效的方式同時(shí)對(duì)四像素進(jìn)行運(yùn)動(dòng)補(bǔ)償。下面以水平方向的半像素補(bǔ)償為例,講述補(bǔ)償?shù)倪^程。?

??? 首先讀入一個(gè)字到寄存器中,從低到高的數(shù)據(jù)依次對(duì)應(yīng)像素0、像素1、像素2和像素3;然后將讀碼流指針增加1字節(jié),再讀取下一個(gè)字到另一寄存器中,從低到高的數(shù)據(jù)依次對(duì)應(yīng)的為像素1、像素2、像素3和像素4。示意圖如圖6所示。?

?

?

??? 對(duì)于垂直方向和水平垂直方向的半像素補(bǔ)償,其原理與水平方向相同。在具體函數(shù)實(shí)現(xiàn)過程中,由解碼數(shù)據(jù)獲得當(dāng)前數(shù)據(jù)塊的運(yùn)動(dòng)矢量,根據(jù)獲得的運(yùn)動(dòng)矢量得到當(dāng)前數(shù)據(jù)塊在參考幀的具體位置,從而得到運(yùn)動(dòng)補(bǔ)償所需要的參考數(shù)據(jù)塊。參考數(shù)據(jù)拷貝到片內(nèi)。運(yùn)動(dòng)補(bǔ)償在片內(nèi)實(shí)行,按照字讀取數(shù)據(jù)并根據(jù)情況采用不同的半像素插值,提高了程序的執(zhí)行效率。?

2.3 VLD優(yōu)化?

??? 由于MPEG-4變長(zhǎng)編碼中的碼字長(zhǎng)度是不定的,而解碼器的輸入是連續(xù)的比特流,碼字之間沒有間隔符,所以VLC(Variable Length Coding)碼表必須判斷碼字的長(zhǎng)度。在通常情況下,VLD(Variable Length Decoding)解碼是通過不斷搜索和判斷得到碼字和碼長(zhǎng),故解碼的時(shí)間因碼長(zhǎng)而異。對(duì)于實(shí)時(shí)處理來說,若該部分計(jì)算量過大,將影響整個(gè)系統(tǒng)的處理速度。原始查表方法涉及到多次讀取和判斷,計(jì)算量較大[5]。另外,信源符號(hào)內(nèi)容不同,對(duì)應(yīng)碼長(zhǎng)也不同,造成查表判斷耗費(fèi)的時(shí)間差別很大。可以采用基于分組的辦法,根據(jù)碼字編碼位的不同劃分為多個(gè)碼表,將碼字按照不同的區(qū)域進(jìn)行劃分。這樣,不斷的搜索判斷可以簡(jiǎn)化為三個(gè)步驟:(1)讀入定長(zhǎng)碼字;(2)通過對(duì)讀入數(shù)據(jù)大小的判斷確定讀入的符號(hào)應(yīng)屬于哪一個(gè)查找表;(3)利用得到的碼字在查找表中直接獲得其對(duì)應(yīng)的信息。因每個(gè)分組包含的符號(hào)較少,所以可在取出分組信息后,從剩下的信息位中直接得到符號(hào)在表中對(duì)應(yīng)的位置。?

??? 經(jīng)分組后,解碼過程簡(jiǎn)化為(按最大碼字長(zhǎng)度讀入數(shù)據(jù),以8位數(shù)據(jù)為例,設(shè)分成碼長(zhǎng)小于3的小碼表和碼長(zhǎng)大于3的大碼表):?

??? (1)對(duì)讀入數(shù)據(jù)進(jìn)行大小判斷。因分組時(shí)考慮到數(shù)據(jù)大小判斷的簡(jiǎn)便性,可用移位代替。?

??? (2)數(shù)據(jù)大小的比較。右移5位,判斷是否為0。如果為0,則符號(hào)落在碼長(zhǎng)小碼表中;否則,符號(hào)落在大碼表中。?

??? (3)若符號(hào)落在小碼表中,以右移5位的讀入數(shù)據(jù)作為相對(duì)地址,直接在小碼表中找到對(duì)應(yīng)非零系數(shù)個(gè)數(shù)和正/負(fù)個(gè)數(shù)及碼長(zhǎng)。若符號(hào)落在大碼表中,則直接以讀入的數(shù)據(jù)為相對(duì)地址,在大碼表中找到相應(yīng)的信息。?

??? 無法預(yù)見的反復(fù)讀取和判斷,經(jīng)過基于分組的解碼優(yōu)化簡(jiǎn)化成上述三個(gè)可預(yù)見的步驟,減少了判斷次數(shù),加快了處理時(shí)間。?

3 實(shí)驗(yàn)結(jié)果與數(shù)據(jù)分析?

  通過優(yōu)化,MPEG-4的解碼性能有了較大的提升。在ADS1.2環(huán)境下分別對(duì)各模塊進(jìn)行C算法優(yōu)化和ARM代碼優(yōu)化,結(jié)果如表3。按調(diào)用一次模塊函數(shù)所需周期數(shù)進(jìn)行統(tǒng)計(jì)。?

?

?

??? 這些模塊是解碼過程中經(jīng)常會(huì)調(diào)用的函數(shù),因此,這些函數(shù)的優(yōu)化將使解碼速度有明顯提高。?

??? 表4比較了不同序列的15幀QCIF格式視頻解碼優(yōu)化前后所需的帶寬。這些圖像具有不同的復(fù)雜度,因而結(jié)果也不一樣。

?

?

??? 解碼速度基本取決于圖像畫面的運(yùn)動(dòng)情況和顏色是否豐富。從上面的數(shù)據(jù)可以看出對(duì)于不同的序列,其解碼速度也不同。news、salesman和miss_am之所以很快,是因?yàn)閳D像背景靜止,只有肩部和頭部有運(yùn)動(dòng),因而P幀的編碼數(shù)據(jù)量較少,解碼速度較高。另外,如果圖像很簡(jiǎn)單(單調(diào)),其能量集中到DC系數(shù)(直流分量)上,交流系數(shù)會(huì)出現(xiàn)多個(gè)零,因此變長(zhǎng)解碼速度就會(huì)較高,從而節(jié)約了解碼時(shí)間。?

??? 通過本文所總結(jié)的ARM7TDMI上視頻解碼的優(yōu)化方法,可以使MPEG4視頻解碼節(jié)約大量的數(shù)據(jù)處理時(shí)間。由實(shí)驗(yàn)結(jié)果可見,本視頻解碼器能較好地滿足低分辨率、低幀率場(chǎng)合實(shí)時(shí)解碼的要求。?

參考文獻(xiàn)?

[1] 杜春雷.ARM體系結(jié)構(gòu)與編程[M].北京:清華大學(xué)出版社,2003.?

[2] ISO/lEI.MPEC-4 video verfication model version 18.0.MPEG N3908,2001.?

[3] 鐘玉琢,王琪,賀玉文.基于對(duì)象的多媒體數(shù)據(jù)壓縮編碼國際標(biāo)準(zhǔn),MPEG-4及其校驗(yàn)?zāi)P停本嚎茖W(xué)出版社,2000.?

[4] 田綱,胡瑞敏,王中元,等.Trimedia平臺(tái)MPEG4編碼器優(yōu)化策略.計(jì)算機(jī)工程與應(yīng)用,2006(36):78-81.?

[5] HE Yu Wen.A platform-based MPEG-4 advanced video?coding(AVC)decoder with block level pipelining.PCM2003:15-18,Singapore,2003,12.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产欧美精品在线| 日韩一区二区电影网| 欧美日韩国产欧美日美国产精品| 久久欧美中文字幕| 欧美在线日韩| 欧美一区国产一区| 午夜欧美不卡精品aaaaa| 亚洲一区二区三区精品在线| 日韩一区二区免费高清| 亚洲精品网站在线播放gif| 亚洲高清中文字幕| 亚洲国产福利在线| 91久久精品国产| 亚洲精品视频免费在线观看| 亚洲毛片在线观看.| 日韩视频免费在线| 中国日韩欧美久久久久久久久| 夜夜精品视频一区二区| 中日韩美女免费视频网站在线观看| 99精品免费| 亚洲无玛一区| 亚洲欧美日韩精品一区二区 | 久久精品亚洲乱码伦伦中文| 久久精品99国产精品| 欧美一区二区三区免费大片| 欧美在线播放| 久久青草欧美一区二区三区| 狂野欧美一区| 欧美美女bb生活片| 国产精品大片wwwwww| 国产精品久久久久久超碰| 国产欧美一区二区视频| 国内揄拍国内精品少妇国语| 亚洲第一在线综合网站| 亚洲欧洲另类| 在线视频欧美日韩精品| 亚洲综合导航| 亚洲福利av| 一本色道**综合亚洲精品蜜桃冫| 亚洲午夜成aⅴ人片| 欧美影院午夜播放| 久久天堂精品| 欧美日韩国产精品一区二区亚洲| 国产精品久久久久久久免费软件| 国产欧美日韩中文字幕在线| 狠狠色伊人亚洲综合网站色| 亚洲激情中文1区| 亚洲伊人观看| 亚洲高清在线播放| 亚洲一区尤物| 久久日韩精品| 欧美日韩一区在线| 国产在线精品成人一区二区三区| 亚洲国产另类久久精品| 亚洲婷婷综合色高清在线| 亚洲第一精品夜夜躁人人躁 | 欧美精品久久一区二区| 国产精品久久久久一区二区| 国产在线精品成人一区二区三区 | 久久精品免费看| 宅男噜噜噜66一区二区| 久久精品国产亚洲a| 欧美精品一级| 国产欧美 在线欧美| 亚洲激情网站| 欧美亚洲在线播放| 一本大道久久a久久精品综合| 欧美在线播放| 欧美日韩亚洲国产精品| 狠狠88综合久久久久综合网| 一本久道久久综合中文字幕| 久久精品视频导航| 亚洲欧洲av一区二区| 免费观看成人网| 国产伦精品一区二区| 亚洲经典三级| 欧美中文字幕精品| 亚洲欧美日韩高清| 欧美激情一区二区三区在线视频观看 | 亚洲福利国产精品| 欧美中文字幕视频在线观看| 欧美日韩国产区一| 一区国产精品| 亚洲欧美日韩国产一区| 一区二区三区欧美成人| 六月婷婷一区| 国产亚洲一区二区三区在线观看| 夜夜嗨av一区二区三区四区| 亚洲精品综合久久中文字幕| 久久久久高清| 国产精品一区久久久| 一本色道久久88综合亚洲精品ⅰ| 亚洲激情网站免费观看| 久久国产毛片| 国产精品亚洲欧美| 一区二区日韩精品| 一区二区三区精品视频| 免费人成精品欧美精品| 国产在线精品成人一区二区三区| 亚洲影院污污.| 亚洲一区欧美激情| 欧美日韩另类视频| 亚洲精品久久久久久久久久久久| 亚洲国产另类精品专区 | 一本大道久久a久久精二百| 亚洲精品国偷自产在线99热| 久久福利资源站| 国产欧美精品在线播放| 亚洲性感美女99在线| 日韩小视频在线观看专区| 欧美大尺度在线| 亚洲成色777777女色窝| 亚洲第一成人在线| 蜜桃精品久久久久久久免费影院| 韩国在线视频一区| 久久aⅴ国产欧美74aaa| 久久全国免费视频| 国色天香一区二区| 久久精品国产一区二区三区| 久久频这里精品99香蕉| 一区二区视频在线观看| 亚洲承认在线| 狂野欧美一区| 亚洲第一福利视频| 日韩亚洲欧美成人| 欧美久久视频| 亚洲精选久久| 亚洲一级网站| 国产精品推荐精品| 亚洲欧美国产精品va在线观看| 香蕉成人啪国产精品视频综合网| 国产精品久久久久av免费| 亚洲专区一区二区三区| 欧美影院在线| 又紧又大又爽精品一区二区| 亚洲日本欧美天堂| 欧美人妖另类| 国产精品99久久久久久久久 | 欧美激情综合五月色丁香| 日韩视频欧美视频| 亚洲欧美日韩综合一区| 国产一区二区三区久久悠悠色av| 亚洲高清久久网| 欧美精品一区二区精品网| 一区二区欧美精品| 欧美在线观看www| 伊人狠狠色j香婷婷综合| 91久久精品国产91久久| 欧美日韩你懂的| 亚洲尤物视频在线| 久久综合给合久久狠狠色 | 亚洲一区二区在线播放| 国产精品久久久久av免费| 欧美亚洲在线播放| 欧美国产日韩免费| 一本久道久久综合狠狠爱| 久久国产精品99精品国产| 136国产福利精品导航网址| 亚洲视频一二| 国产午夜久久| 亚洲美女诱惑| 国产精品久久999| 久久福利一区| 欧美日韩ab片| 午夜在线不卡| 欧美成人蜜桃| 亚洲综合精品一区二区| 欧美成人精品一区| 亚洲永久字幕| 欧美激情网友自拍| 亚洲综合二区| 欧美高清一区| 午夜亚洲福利在线老司机| 欧美成人在线网站| 亚洲一区三区电影在线观看| 免费在线亚洲| 亚洲一区久久| 欧美精品一区二区三区在线看午夜 | 亚洲第一在线视频| 欧美午夜女人视频在线| 亚洲电影免费观看高清完整版| 欧美日韩亚洲国产精品| 久久不射中文字幕| 欧美午夜免费电影| 亚洲精品视频免费观看| 国产一区二区电影在线观看 | 亚洲一区二区三区免费在线观看| 久久综合色88| 亚洲一区二区影院| 欧美激情一区二区三区在线视频观看| 亚洲欧美日韩精品久久亚洲区| 欧美激情一区二区三区全黄| 欧美影院久久久| 国产精品v欧美精品v日韩| 91久久国产精品91久久性色| 国产精品一区二区在线观看不卡 | 国产精品久久9| 日韩一本二本av| 尤物九九久久国产精品的分类| 香蕉久久久久久久av网站|