日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于LZ77算法的文件压缩收尾

發布時間:2024/4/11 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于LZ77算法的文件压缩收尾 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于Huffman算法和LZ77算法的文件壓縮(六)

前面基于Huffman算法和LZ77算法的文件壓縮(四)
基于Huffman算法和LZ77算法的文件壓縮(五)
已經充分講解LZ77到基本原理和實現細節。

本文開始講解文件的壓縮過程。

一、回顧整個壓縮過程

1.打開帶壓縮的文件(注意:必須按照二進制格式打開,因為用戶進行壓縮的文件不確定)
2.獲取文件大小,如果文件大小小于3個字節,則不進行壓縮
3.讀取一個窗口的數據,即64K,
4.用前兩個字符計算第一個字符與其后兩個字符構成字符串哈希地址的一部分,因為哈希地址是通過三個字節算出來的,先用前兩個字節算出一部分,在壓縮時,再結合第三個字節算出第一個字符串完整的哈希地址。
5.循環開始壓縮
a.計算哈希地址,將該字符串首字符在窗口中的位置插入到哈希桶中,并返回該桶的狀態matchHead
b.根據matchHead檢測是否找到匹配

  • 如果matchHead等于0,未找到匹配,表示該三個字符在前文中沒有出現過,將該當前字符 作為源字符寫到壓縮文件中
  • 如果matchHead不等于0,表示找到匹配,matchHead代表匹配鏈的首地址,從哈希桶matchHead位置開始找最長匹配,找到后用該(距離,長度對)替換該字符串寫到壓縮文件中,然后將該替換串三個字符一組添加到哈希表中。

6 . 如果窗口中的數據小于MIN_LOOKAHEAD時,將右窗口中數據搬移到左窗口,從文件中新讀取一個窗口的數據放置到右窗,更新哈希表,繼續壓縮,直到壓縮結束。

二、先封裝一個哈希表

1.先給一個公共信息的文件common.h

#pragma once #include <iostream> #include <string> #include <assert.h> #include <string.h> #include <stdio.h> #include <stdlib.h>//記錄程序中用到的常量數據typedef unsigned char UCH; typedef unsigned short USH; typedef unsigned long long ULL;const USH MIN_MATCH = 3; //最小匹配長度 const USH MAX_MATCH = 258; //最大匹配長度 const USH WSIZE = 32 * 1024; //32k

2.哈希表的整體框架:

#pragma once #include "Common.hpp"class HashTable {public:HashTable(USH size);~HashTable();//哈希表插入,//matchHead為出參,帶出整個匹配鏈的頭,ch為匹配的字符,pos為//在緩沖區當中的下標。hashAddr為哈希地址:出入輸出型參數,//因為計算本次哈希地址需要用到上一個哈希地址void Insert(USH& matchHead, UCH ch, USH pos, USH& hashAddr);//哈希函數void HashFunc(USH& hashAddr, UCH ch);//獲取哈希表前一個匹配頭USH GetNext(USH matchHead);//在處理大于64k的大文件時,需要把右窗中的文件拷貝到左窗,需要更新哈希表void Update();private://哈希函數相關USH H_SHIFT();private:USH* prev_;USH* head_;};

3.哈希表的構造:

HashTable::HashTable(USH size):prev_(new USH[size * 2]) //哈希表中存放的是索引字符串的首地址//(距離字符串開始的相對下標), head_(prev_ + size) {memset(prev_, 0, size * 2 * sizeof(USH));//初始化為0,0也代表當前匹配是//鏈表的末尾(相當于用數組模擬的鏈表) }

4.哈希表的析構函數:

HashTable::~HashTable() {delete[] prev_;prev_ = nullptr; }

5.定義哈希函數相關變量:

const USH HASH_BITS = 15; //哈希地址15位 const USH HASH_SIZE = (1 << HASH_BITS); //哈希地址個數 32K const USH HASH_MASK = HASH_SIZE - 1; //防止溢出 低15位全1,因為prev的大小就WSIZE,而當start到達右窗 //時,下標明顯大于WSIZE,如果不處理就會下標越界

6.哈希函數相關:

//abcdefgh字符串 //hashaddr1:abc //hashaddr2:bcd//hashAddr:前一次計算出的哈希地址 abc //本次需要計算bcd哈希地址 //ch:本次匹配三個字符中的最后一個 //本次哈希地址是在上一次哈希地址的基礎上計算出來的 void HashTable::HashFunc(USH& hashAddr, UCH ch) { //hashAddr是輸入,輸出型參數,ch是所查找字符串中第一個字符hashAddr = (((hashAddr) << H_SHIFT()) ^ (ch)) & HASH_MASK; }USH HashTable::H_SHIFT() {return (HASH_BITS + MIN_MATCH - 1) / MIN_MATCH; //5 }

7.向哈希表中插入元素:

//matchHead:匹配鏈的頭 //ch:查找字符串的第三個字符(也就是最后一個) //pos:查找字符串的頭到字符串開始的距離 //hashAddr:輸入時是上一次的哈希地址,輸出時是本次哈希地址 void HashTable::Insert(USH& matchHead, UCH ch, USH pos, USH& hashAddr) {HashFunc(hashAddr, ch); //獲取本次插入的哈希地址matchHead = head_[hashAddr];//找當前三個字符在查找緩沖區中找到的最近的個,//即匹配鏈的頭,將來會用這個頭來找匹配//將新的哈希地址插入鏈表//pos & HASH_MASK的目的是防止越界prev_[pos & HASH_MASK] = head_[hashAddr];head_[hashAddr] = pos; }

三、開始壓縮

1.整體框架

#pragma once #include "HashTable.h"class LZ77 {public:LZ77();~LZ77();void CompressFile(const std::string& strFilePath);void UNCompressFile(const std::string& strFilePath);private://找最長匹配USH LongestMatch(USH matchHead, USH& curMatchDist, USH start); //寫標記文件void WriteFlag(FILE* fOUT, UCH& chFlag, UCH& bitCount, bool isLen); //合并壓縮數據文件和標記信息文件void MergeFile(FILE* fOut, ULL fileSize);//在處理大于64k文件時,需要重新填充緩沖區的右窗口void FillWindow(FILE* fIn, size_t& lookAhead, USH& start);//獲取文件的后綴std::string GetStr(std::string filename);private://用來保存待壓縮數據的緩沖區即滑動窗口UCH* pWin_; //哈希表 HashTable ht_; };

2.構造函數:

LZ77::LZ77():pWin_(new UCH[WSIZE * 2])//初始化緩沖區的大小,ht_(WSIZE) //初始化hash表大小 {}

3.析構函數:

LZ77::~LZ77() {delete[] pWin_;pWin_ = nullptr; }

3.根據MIN_LOCKAHEAD來過濾文件,如果文件大小小于MIN_LOCKAHEAD則不進行匹配。

  • 注意文件的打開方式,和Huffman壓縮的原理一樣,為了保證壓縮算法的通用性,既可以壓縮文本文件也可以壓縮二進制文件,需要以rb方式打開
  • 如何獲取文件大小??結合fseek函數和ftell函數來獲取文件大小
FILE* fIn = fopen(strFilePath.c_str(), "rb");if (nullptr == fIn) {std::cout << "打開文件失敗" << std::endl;return;}//獲取文件大小fseek(fIn, 0, SEEK_END);//把文件指針移動到文件的末尾ULL fileSize = ftell(fIn);//獲取當前文件指針到文件開始位置的偏移量//1. 如果源文件的大小小于最小匹配長度 MIN_MATCH,則不進行處理,文件太小去進行壓縮反而達不到壓縮的目的if (fileSize <= MIN_MATCH) { //此處是小于3個字符,在common.hpp文件中定義的std::cout << "文件太小,不壓縮" << std::endl;return;}

4.從壓縮文件中讀取一個緩沖區的數據到窗口中

  • 注意在計算文件大小的時候已經把文件指針移動到文件的末尾,所以此處要把文件指針重新定位
//從壓縮文件中讀取一個緩沖區的數據到窗口中//上面把文件指針移動到文件末尾,還得移回來,//否則讀不到任何數據fseek(fIn, 0, SEEK_SET);//表示先行緩沖區中剩余的字節數size_t lookAhead = fread(pWin_, 1, 2 * WSIZE, fIn);

5 .先計算最開始兩個字符的哈希地址

  • 因為哈希地址是根據前面的字符的哈希地址求的,所以要先計算前兩個字符的哈希地址。如abcdefg……,那么滿3個字符才可以進行匹配,所以需要先計算ab的哈希地址才可以計算c的哈希地址,然后進行匹配
USH hashAddr = 0;//記錄哈希地址//設置起始hashAddr (前兩個字符的hash地址)for (USH i = 0; i < MIN_MATCH - 1; ++i) {ht_.HashFunc(hashAddr,pWin_[i]);}

6.循環進行壓縮

  • 注意匹配鏈頭matchHead的含義。如果為0,代表沒找到匹配,因為哈希表初始化的時候都為0
  • 那么如果找到匹配,就順著匹配鏈往下找最長匹配
  • 封裝一個LongestMatch函數來進行查找最長匹配
  • 在找最長匹配LongestMatch的時候需要獲得當前匹配鏈的下一個匹配頭
//獲取當前匹配頭的下一個匹配頭(如果為0代表匹配結束) USH HashTable::GetNext(USH matchHead) {return prev_[matchHead & HASH_MASK]; }
  • 找到最長匹配就需要返回長度距離信息
//在找的過程中,需要將每次找到的匹配結果進行比較,保持最長匹配 USH LZ77::LongestMatch(USH matchHead, USH& MatchDist, USH start) { //找最長匹配USH curMatchLen = 0; //一次匹配的長度USH maxMatchLen = 0;UCH maxMatchCount = 255; //最大的匹配次數,解決環狀鏈USH curMatchStart = 0; //當前匹配在查找緩沖區中的起始位置//在先行緩沖區中查找匹配時,不能太遠即不能超過MAX_DISTUSH limit = start > MAX_DIST ? start - MAX_DIST : 0;do {//字符串在先行緩沖區匹配范圍UCH* pstart = pWin_ + start;UCH* pend = pstart + MAX_MATCH;//從查找緩沖區匹配串的起始開始進行字符比較UCH* pMatchStart = pWin_ + matchHead;curMatchLen = 0;//可以進行本次匹配while (pstart < pend && *pstart == *pMatchStart) {//更新變量++curMatchLen;++pstart;++pMatchStart;}//一次匹配結束if (curMatchLen > maxMatchLen) {maxMatchLen = curMatchLen;//記錄當前匹配的開始位置,方便后面計算匹配距離curMatchStart = matchHead;}} while ((matchHead = ht_.GetNext(matchHead)) > limit&& maxMatchCount--);MatchDist = start - curMatchStart;return maxMatchLen; }
  • while ((matchHead = ht_.GetNext(matchHead)) > limit && maxMatchCount--):matchHead代表下一個匹配頭即在緩沖區當中的下標。

  • USH limit = start > MAX_DIST ? start - MAX_DIST : 0;代表如果start > MAX_DIST就從start - MAX_DIST找匹配頭,否則就從開始找匹配頭

  • matchHead = ht_.GetNext(matchHead)) > limit代表在limit的范圍內進行找匹配,太遠就不進行匹配

  • maxMatchCount--是為了解決&WMASK帶來死循環的問題及太遠不進行匹配

  • 執行找最長匹配后,需要驗證是否成功找到匹配,因為matchHead可能為0,就沒有執行找最長匹配函數

  • 前面我們說過最大匹配長度為[0,258],如果用一個字節來記錄是有問題的,需要用兩個字節來保存,而寫入文件的時候又不能寫入兩個字節,所以在寫入長度的時候臨時定義一個字節變量保存原來用兩個字節來保存長度的變量-3,最后把一個字節的臨時變量寫入當壓縮文件當中,這樣就解決問題了

  • 如果沒找到匹配就需要把當前字符寫入到壓縮文件當中,如果找到最長匹配,就需要寫入長度距離信息到壓縮文件當中(注意寫長度的時候要把長度-3),但是壓縮數據和長度距離對信息無法區分

  • 所以還要寫入標記信息:用0標記原字符,1標記長度(距離不用標記,下兩個字節就是,)

  • 但是標記信息和壓縮數據應該保存在不同的文件當中,無法一邊寫壓縮數據一邊寫標記信息,那樣無法區分

//chFlag:該字節中的每個比特位是用來區分當前字節是原字符還是長度? //0:原字符 //1:長度 //bitCount:該字節中的多少個比特位已經被設置 //isCharOrLen:代表該字節是源字符還是長度,判斷壓縮數據還是長度信息 void LZ77::WriteFlag(FILE* fOUT, UCH& chFlag, UCH& bitCount, bool isLen) {chFlag <<= 1;if (isLen)//如果是長度,就給當前的比特位置為1chFlag |= 1;bitCount++;if (bitCount == 8) {//代表chFlag8位已經設置完,將該標記寫入到壓縮文件中fputc(chFlag, fOUT);//重新開始chFlag = 0;bitCount = 0;} }
  • 注意如果找到匹配,在執行寫入長度距離信息后,還需要把匹配的字符寫入到哈希表當中,否則無法進行下一次匹配(匹配的長度那么多的字符是不進行下一次匹配的,因為已經被替換掉),如abcdefg,如果abc找到匹配,把長度距離信息寫完后還要把bcd、cde寫入到哈希表當中,下一次直接從d開始找匹配,而又因為abc在之前插入的時候已經寫過了,此處就不用寫。

7.壓縮文件完整代碼

//壓縮文件 void LZ77 :: CompressFile(const std::string& strFilePath) {FILE* fIn = fopen(strFilePath.c_str(), "rb");if (nullptr == fIn) {std::cout << "打開文件失敗" << std::endl;return;}//獲取文件大小fseek(fIn, 0, SEEK_END);//把文件指針移動到文件的末尾ULL fileSize = ftell(fIn);//獲取當前文件指針到文件開始位置的偏移量//1. 如果源文件的大小小于最小匹配長度 MIN_MATCH,則不進行處理,文件太小去進行壓縮反而達不到壓縮的目的if (fileSize <= MIN_MATCH) { //此處是小于3個字符,在common.hpp文件中定義的std::cout << "文件太小,不壓縮" << std::endl;return;}//從壓縮文件中讀取一個緩沖區的數據到窗口中fseek(fIn, 0, SEEK_SET);//上面把文件指針移動到文件末尾,還得移回來,否則讀不到任何數據size_t lookAhead = fread(pWin_, 1, 2 * WSIZE, fIn);//表示先行緩沖區中剩余的字節數USH hashAddr = 0;//記錄哈希地址//設置起始hashAddr (前兩個字符的hash地址)for (USH i = 0; i < MIN_MATCH - 1; ++i) {ht_.HashFunc(hashAddr,pWin_[i]);}//開始寫壓縮數據://根據獲取的文件后綴打開一個同樣文件后綴的壓縮數據存儲文件//std::string str = GetStr(strFilePath);//FILE* ffIn = fopen("5.txt","wb");//fwrite(str.c_str(),sizeof(str),1,ffIn);//fclose(ffIn);//壓縮FILE* fOUT = fopen("2.lzp", "wb");assert(fOUT);USH start = 0;//查找字符串在緩沖區的地址,隨著壓縮的不斷進行,start不斷的在先行緩沖區中增加//與查找最長匹配相關的變量USH matchHead = 0; //匹配字符串的頭USH curMatchLength = 0; //一次匹配字符串的長度USH curMatchDist = 0; //一次匹配字符串的距離//與寫標記相關的變量UCH chFlag = 0;//代表當前字符是字符還是長度UCH bitCount = 0;//代表1個字節已經用了多少字節//寫標記的文件FILE* fOutF = fopen("3.txt", "wb");assert(fOutF);//lookAhead表示先行緩沖區中剩余字節的個數while (lookAhead) {//1.將第三個字符插入到哈希表中,因為前兩個字符已經插入到哈希表當中,//(pWin_[start],pWin_[satrt + 1].pWin_[start + 2])并獲取匹配鏈的頭ht_.Insert(matchHead, pWin_[start + 2], start, hashAddr);//因為不只進行一此匹配,每次匹配前都要置為0,防止影響后面的數據curMatchLength = 0;curMatchDist = 0;//2.驗證在查找緩沖區中是否找到匹配,如果有匹配,找最長匹配//因為在初始化哈希表的時候都設置為0,代表沒有任何匹配,如果不為0,代表有匹配if (matchHead) {//順著匹配鏈找最長匹配,最終帶出<長度,距離>對curMatchLength = LongestMatch(matchHead, curMatchDist, start);}//3.驗證是否找到匹配if (curMatchLength < MIN_MATCH) {//在查找緩沖區中未找到重復字符串//將start位置的字符寫入到壓縮文件中fputc(pWin_[start], fOUT); //寫字符//寫當前原字符對應的標記WriteFlag(fOutF, chFlag, bitCount, false);//寫標記//更新變量++ start;lookAhead--;}else {//找到匹配//將《長度,距離》對寫入壓縮文件中//寫長度UCH chLen = curMatchLength - 3;//因為長度是1個字節,其范圍本來是//[0,255],但是因為是3個一組,所以其范圍是[3,258]fputc(chLen, fOUT);//寫距離fwrite(&curMatchDist, sizeof(curMatchDist), 1, fOUT);//寫當前原字符對應的標記WriteFlag(fOutF, chFlag, bitCount, true);//更新先行緩沖區中剩余的字節數lookAhead -= curMatchLength;//將已經匹配的字符串按照三個一組將其插入到哈希表中--curMatchLength; //當前字符串已經插入++start;while (curMatchLength) {ht_.Insert(matchHead, pWin_[start + 2], start, hashAddr);--curMatchLength;++start;}}//檢測先行緩沖區中剩余字符個數,如果小于最短匹配長度,//需要更新緩沖區和哈希表,向緩沖區中重新填充內容,if (lookAhead <= MIN_LOOKAHEAD)FillWindow(fIn, lookAhead, start);}//標記位數如果不夠八位,因為寫標記是8位寫一次,最后可能//不夠8bit,所以要另外判斷if (bitCount > 0 && bitCount < 8) {chFlag <<= (8 - bitCount);fputc(chFlag, fOutF);}fclose(fOutF);//把壓縮數據文件和標記信息文件合并MergeFile(fOUT, fileSize);//刪除標記信息文件remove("./3.txt");fclose(fIn);fclose(fOUT); }

到這里文件壓縮過程基本結束了,還有大文件處理方式在后面解決

總結

以上是生活随笔為你收集整理的基于LZ77算法的文件压缩收尾的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久久久国产一区二区三区四区小说 | 色在线最新 | 国产无套视频 | 色偷偷网站视频 | 99久久精品费精品 | 美女网站视频免费都是黄 | 久久免视频 | 色五婷婷 | 精品国精品自拍自在线 | 91在线公开视频 | 亚洲五月激情 | sesese图片 | 最新午夜 | 一区二区三区 中文字幕 | 婷婷视频在线 | 国产精品24小时在线观看 | 九九视频免费在线观看 | 人人爽人人看 | 91精品视频在线观看免费 | 国产精品毛片久久久久久久久久99999999 | 久久久久国产视频 | 欧美做受xxx | 狠狠操操 | 亚洲精品国产精品乱码在线观看 | 日韩高清久久 | 又黄又爽又色无遮挡免费 | 91手机电影 | 国产不卡av在线 | 国产成人一区二区三区在线观看 | 粉嫩av一区二区三区免费 | 日韩久久久久久久久久 | 精品黄色在线 | 91精品国产综合久久久久久久 | 午夜久久影院 | 午夜av影院| 色老板在线视频 | 久久综合狠狠综合久久狠狠色综合 | 久久久久久久久综合 | 91精品国产99久久久久 | 91亚洲精| 日韩精品高清视频 | 又黄又刺激的视频 | 久久精品日韩 | 国产一二区视频 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 99视频免费在线观看 | 国产中文字幕视频在线 | 欧美一区免费观看 | 日韩一级电影在线观看 | 人人玩人人添人人澡超碰 | 波多野结衣一区二区 | 日韩和的一区二在线 | 黄色毛片在线观看 | 伊人视频| 精品999国产| 色综合在| 一区二区在线影院 | 久久66热这里只有精品 | 中文字幕免费成人 | 成人黄色电影在线观看 | 日韩两性视频 | 成年人免费在线看 | 摸阴视频| 欧美日韩一区二区三区在线免费观看 | 日韩免费高清在线 | 亚洲激情 欧美激情 | 亚洲午夜久久久久 | 超碰人在线 | 成人精品国产免费网站 | 男女啪啪免费网站 | 久久久久免费精品国产小说色大师 | 中文字幕亚洲字幕 | 久久国产精品二国产精品中国洋人 | 国产免费观看高清完整版 | 探花视频在线观看 | 国产a级片免费观看 | 久久综合在线 | 美女免费av | 成人资源站| av日韩在线网站 | 久久视频网 | 粉嫩aⅴ一区二区三区 | 国产视频久久久久 | 国产99久久久国产精品免费二区 | 欧美激情精品久久久久久变态 | 久久激情视频 | av免费黄色 | 91精品久久久久久 | 日av免费| 久草久视频 | 手机在线看a | 涩五月婷婷 | 人人干干人人 | 日韩一二区在线观看 | 亚洲精品乱码久久久久久高潮 | 日日爱999| 久久中文字幕导航 | 99精品在线视频观看 | 丁香婷婷综合激情五月色 | aaa亚洲精品一二三区 | 欧美激情亚洲综合 | 欧美国产日韩一区二区三区 | 日本爱爱免费视频 | 九九九视频在线 | 91精品久久久久久 | 亚洲三区在线 | 99久精品 | 在线观看视频色 | 亚洲资源视频 | 色网站中文字幕 | www.久久色 | 亚洲国产一区二区精品专区 | 成人一级在线 | 久久99精品久久久久蜜臀 | 国产视频中文字幕在线观看 | 天天玩天天干天天操 | 九七人人干 | 91视频这里只有精品 | 黄色av一区二区三区 | 日韩色中色 | 日韩中文幕 | a在线观看国产 | 国产男女爽爽爽免费视频 | 91久久爱热色涩涩 | 网站在线观看日韩 | 麻豆精品视频在线观看免费 | 人人爽人人香蕉 | 中文字幕国产亚洲 | 91久久久久久久一区二区 | 国产一级视频 | 日日天天干| 久久99亚洲精品久久 | 久久久久久久久久久精 | 五月天堂网 | 天天干天天玩天天操 | 国产性xxxx | 国产精在线 | 久草视频视频在线播放 | 亚洲激情综合 | 91精品国产91热久久久做人人 | 日本三级中文字幕在线观看 | 久久激五月天综合精品 | 综合激情 | 久久国产热 | 91丨九色丨首页 | 成年人在线播放视频 | 美女网站黄在线观看 | 国产91国语对白在线 | 国产精品一码二码三码在线 | 99精品免费久久久久久久久 | 婷婷精品国产一区二区三区日韩 | 日韩av综合网站 | 亚洲国产一二三 | 久久久免费电影 | 国产精品18久久久久久久久久久久 | 日韩av片无码一区二区不卡电影 | 久久精品国产一区二区三 | 91av电影在线 | 亚洲国产精品va在线看黑人动漫 | 成人黄色小视频 | 免费视频你懂的 | 国产免费黄视频在线观看 | 久久只有精品 | 国产九色视频在线观看 | 国产综合在线视频 | 欧美资源| 97电院网手机版 | 亚洲国产精品成人女人久久 | 午夜丁香网 | 97在线观看免费视频 | www国产亚洲精品久久网站 | 欧美高清成人 | 五月激情久久久 | 久久精品欧美一区二区三区麻豆 | 2019天天干夜夜操 | 99久在线精品99re8热视频 | 91视频中文字幕 | 亚洲精欧美一区二区精品 | 亚洲日韩中文字幕 | av在线免费不卡 | 中文字幕资源在线观看 | 91福利在线导航 | 欧美激情第一页xxx 午夜性福利 | 亚洲在线免费视频 | 中文字幕免费久久 | 国产不卡av在线 | 国产九色视频在线观看 | 国产精品久久久久久久久久不蜜月 | 中文字幕免费观看视频 | 日日爽天天操 | 国产精品剧情在线亚洲 | 成人午夜精品久久久久久久3d | av免费观看网站 | 在线免费观看黄网站 | 午夜久久成人 | 99热国产在线 | 国产福利网站 | 中文字幕在线播放视频 | 中文字幕一区二区三区视频 | 国产97视频在线 | 久久久久激情电影 | 在线观看完整版 | 亚洲精品久久久久中文字幕m男 | 国产亚洲高清视频 | www.夜夜爱 | 夜夜视频欧洲 | 在线99 | 丁香花五月 | 成人小视频在线播放 | 国产精品粉嫩 | 国产亲近乱来精品 | 99精品国产一区二区三区麻豆 | 91porny九色91啦中文 | 九月婷婷综合网 | 天天曰 | 97超碰人| 日本爱爱免费 | 一区二区三区四区五区六区 | 久久久久久久久久影视 | 看黄色91 | 亚洲精品国精品久久99热一 | 国产成人av网站 | 丝袜美女在线观看 | 国产视频一区在线 | 99精品成人 | 91九色网站 | 美女视频黄网站 | 99在线观看免费视频精品观看 | 亚洲成人av片在线观看 | 久久免费视频观看 | 狠狠的操你 | 黄色.com | 波多野结衣资源 | 久久久久久久久久久免费av | 日本三级不卡视频 | 中文字幕一区二区三区四区在线视频 | 国产高清不卡在线 | 国产精品久久久久久久久久免费 | 亚洲欧洲国产日韩精品 | 丁香婷婷色综合亚洲电影 | 亚洲免费不卡 | 日韩欧美一区二区在线 | 久久精品www人人爽人人 | av天天在线观看 | 免费视频你懂得 | av大片免费在线观看 | 草草草影院 | 99精品免费在线 | 久久国产精品免费 | 久久久久成人精品 | 超碰在线人人草 | 日韩在线观看视频一区二区三区 | 久久精品一区二区三区中文字幕 | 日韩av成人在线观看 | 日本超碰在线 | 日韩av中文字幕在线 | 国产精品国产三级国产aⅴ无密码 | 欧美激情视频一二区 | 日韩一二区在线 | 国内免费久久久久久久久久久 | 国产免费国产 | 久草精品视频 | 日韩大片免费在线观看 | 国产精品久久久久久一区二区 | 极品嫩模被强到高潮呻吟91 | 欧美成人一区二区 | 九九视频在线播放 | 国产精品久久99综合免费观看尤物 | 久久视频一区二区 | 国产小视频在线观看免费 | 天天干,夜夜爽 | 一二三四精品 | 日韩大片在线免费观看 | 国产涩图 | 五月丁色| 97色在线观看免费视频 | 99久久精品免费看 | 99综合电影在线视频 | 国产一区二区三区高清播放 | 欧美激情视频一区 | 国产成人免费 | 久久精品一二区 | 日韩欧美一区二区在线播放 | 国产精品99精品久久免费 | a亚洲视频 | 久久夜视频 | 亚洲欧美日韩国产 | 日韩免费一级a毛片在线播放一级 | 亚洲美女精品区人人人人 | 日韩黄色免费 | 狠狠色免费 | 天天干天天操天天射 | 91网在线看 | 在线精品在线 | 国产在线高清视频 | 91精品一区二区三区蜜臀 | 六月天综合网 | 久久99国产精品免费 | 久久久久久久久毛片精品 | 福利av影院 | 日韩激情在线视频 | 日韩在线免费 | 在线观看国产区 | 久久精品亚洲精品国产欧美 | 91麻豆精品国产午夜天堂 | 久久婷亚洲五月一区天天躁 | 亚洲综合欧美日韩狠狠色 | 亚在线播放中文视频 | 国产亚洲精品bv在线观看 | 人人射网站 | 色综合久 | 一级黄色片在线观看 | 久草网在线观看 | 国产一区在线视频 | 操操日 | 狠狠色丁香 | av播放在线 | 亚洲国产高清视频 | 色在线网 | 97色在线观看 | 日韩av免费观看网站 | 国产高清免费在线播放 | 国产69精品久久app免费版 | 欧美日韩视频在线一区 | 97精品国自产拍在线观看 | 日韩电影在线观看中文字幕 | 久久躁日日躁aaaaxxxx | 天堂av在线免费观看 | 久久精品电影网 | 黄色av电影在线 | 亚洲精品久久在线 | 天天天天天天天天操 | 国产亚洲精品精品精品 | 九色精品 | 97电影在线 | 成人免费网站视频 | www.久久视频 | 精品一区二区在线免费观看 | 一级一级一片免费 | 综合色播 | 中文字幕一区二 | 国产精国产精品 | 国产欧美精品xxxx另类 | 久久在线视频在线 | 国产 成人 久久 | 亚洲精品乱码久久久久久 | 日本三级中文字幕在线观看 | 激情五月亚洲 | 亚洲视频在线免费看 | 深爱婷婷激情 | 色网av| 美女免费视频观看网站 | 国产日韩中文字幕在线 | 99在线精品视频在线观看 | 9热精品 | 国产精品免费在线视频 | 亚洲乱码精品久久久久 | 国产精品免费观看网站 | 日日射天天射 | 国产xxxx | 国产v在线 | 四虎国产永久在线精品 | 这里只有精品视频在线 | 91精品一 | 国产精品永久久久久久久久久 | 四虎最新域名 | 日韩综合视频在线观看 | 九色91福利 | 国产亚洲在线观看 | 中文在线天堂资源 | 五月天久久综合 | 久久久久久免费毛片精品 | 亚洲一级片在线看 | 欧美一级黄色网 | 一区三区在线欧 | 国产午夜精品免费一区二区三区视频 | 国产人成一区二区三区影院 | 98超碰人人 | 五月婷婷在线视频观看 | 成人av影院在线观看 | 国产成人l区| 色综合天天狠天天透天天伊人 | 久久久黄色免费网站 | 美女久久久久 | 五月天网页 | 久久久久国产精品视频 | 九九热国产视频 | 人人草人 | 天天插天天 | 国内精品亚洲 | 手机av在线免费观看 | 婷婷五月色综合 | 成人网在线免费视频 | 日韩区视频 | 瑞典xxxx性hd极品 | 亚洲精品午夜aaa久久久 | 日韩mv欧美mv国产精品 | 天天操天天操天天操 | 伊人五月天综合 | 最新久久免费视频 | 中文字幕一区二区三区四区久久 | 久章草在线观看 | 免费开视频 | 国产热re99久久6国产精品 | 91九色蝌蚪视频 | 97在线观看视频 | 日本久久久久久 | 黄色片免费电影 | 国产精品18毛片一区二区 | 亚洲全部视频 | 久久久国产一区 | 亚洲精品一区二区在线观看 | 五月天激情开心 | 久草精品视频 | 91精品一区二区三区久久久久久 | 在线观看国产福利片 | 91精品视频免费观看 | 天天干天天草 | 国产欧美在线一区 | 一本到视频在线观看 | 91视频传媒 | 亚洲天堂网在线播放 | 亚洲视频六区 | 日本久久久久 | 国产一级h | 男女视频久久久 | 欧美日韩国产精品一区二区三区 | 日日爽夜夜操 | 日韩在线观看视频在线 | 黄色av在| 亚洲精品午夜久久久 | 免费观看十分钟 | www.黄色在线 | 69国产成人综合久久精品欧美 | 草樱av| 美国人与动物xxxx | 色999视频 | 日韩欧美精品一区二区 | 天天综合日日夜夜 | 夜夜躁天天躁很躁波 | 亚洲国产黄色片 | 成人av免费在线观看 | 欧美成人精品欧美一级乱 | 国产在线97| 日本乱码在线 | 日批视频 | 久久成人视屏 | 日韩一级黄色片 | 国产一区二区三区在线 | 久草视频免费 | 九九热只有这里有精品 | 中文字幕中文字幕中文字幕 | 日本久久视频 | 久久久999| 日韩一二区在线观看 | 国产精品日韩高清 | 欧美激情精品久久久久 | 视频在线在亚洲 | 国产精品网在线观看 | 国产精品久久久久久久久免费看 | 欧美激情综合五月色丁香 | 国产中文字幕视频在线 | 在线观看日韩一区 | 九九免费在线观看视频 | 在线观看免费 | 亚洲精品资源在线 | 99国产精品久久久久久久久久 | 一二三区视频在线 | 中文字幕在线观看免费高清电影 | 蜜桃视频在线观看一区 | 欧美看片 | 精品国模一区二区 | www.久久99 | 欧美福利视频一区 | 色多多污污 | 国产理伦在线 | 亚洲在线不卡 | 日韩欧美一区二区三区在线观看 | 99一级片| 久久美女精品 | 91福利视频免费观看 | 一区二区不卡在线观看 | 四虎成人精品在永久免费 | 五月婷婷视频 | 九九视频免费观看视频精品 | 片黄色毛片黄色毛片 | 中文字幕国产 | 日韩在线中文字幕 | 亚洲国产成人av网 | av免费看网站 | 久久视频| 欧美aaaxxxx做受视频 | 欧美另类z0zx | 99久久国产免费,99久久国产免费大片 | 国产午夜在线 | www.99av | 亚洲第一区在线播放 | 免费观看成人av | 超碰伊人网 | 国产在线观看av | 日韩在线观看你懂的 | 97精品国产一二三产区 | 精品96久久久久久中文字幕无 | 日韩欧美在线观看一区二区三区 | 看全黄大色黄大片 | 激情影音 | 黄色福利网站 | 91九色成人蝌蚪首页 | 日韩国产高清在线 | 激情av在线资源 | 三上悠亚一区二区在线观看 | 国产精品九九热 | 中国一级片在线播放 | 91av电影| 亚洲成人黄 | 97综合网| 中文字幕中文字幕在线中文字幕三区 | 国产成人精品999 | 色一级片 | 综合色亚洲 | 97超碰国产精品 | 香蕉久草在线 | 91精品国产亚洲 | 久久99久久99精品免费看小说 | 亚洲人在线视频 | 午夜精品999 | www.五月天色 | 亚洲乱码在线 | 超碰com | 超碰99在线 | 国产一区二区三区免费在线 | 久久国产片 | 96久久 | 九九九热精品 | 五月婷婷毛片 | 最新av在线免费观看 | 欧美日韩在线精品 | 久久公开视频 | 欧美黄色软件 | 久久综合免费视频影院 | 国产精品美女免费看 | 黄色av一区 | 夜色资源站国产www在线视频 | 久久夜色精品国产欧美乱极品 | 美女网站视频免费黄 | 国产一区国产精品 | 人人澡超碰碰97碰碰碰软件 | 色国产精品 | 午夜视频在线观看一区二区 | 国产精品久久一区二区无卡 | 欧美一级在线看 | 日韩天天操 | 97在线观看免费高清 | 免费国产视频 | 国内精品久久久久久久影视麻豆 | 欧美一级激情 | 成 人 黄 色 视频免费播放 | 婷婷亚洲最大 | av动态图片 | 国产午夜精品一区二区三区欧美 | 欧美成人一区二区 | 国产一区二区在线播放 | 日韩 精品 一区 国产 麻豆 | 成人禁用看黄a在线 | 在线免费观看视频一区二区三区 | 在线观看亚洲视频 | 日韩精品一区二区不卡 | 日韩在线三区 | 999色视频 | 国产精品毛片一区二区 | 中文字幕在线观 | 精品1区二区 | 99精品国产在热久久 | 黄色大片日本 | 91视频电影| 九九精品久久久 | 精品九九九九 | 国产精品久久久一区二区三区网站 | 精品1区2区3区 | 久久97久久97精品免视看 | 天天干天天操天天干 | 在线观看国产 | 亚洲一级免费观看 | 99久久精品免费一区 | 在线天堂视频 | 九九免费精品 | 久久久久国产免费免费 | 国产精品久久久久aaaa | 免费看黄网站在线 | 成人一区二区三区中文字幕 | 亚洲精品777| 天天操天天色天天射 | 中文字幕有码在线 | 三级a视频 | 黄色影院在线免费观看 | 日韩av在线网站 | 国产中文字幕视频 | 一区二区三区精品在线 | 成人少妇影院yyyy | 99精品系列| 亚洲 中文字幕av | av一级在线观看 | 日本不卡一区二区 | 91av影视| 婷婷五月情 | 福利视频入口 | 精品在线亚洲视频 | 一区二区三区免费播放 | 国产 一区二区三区 在线 | 日韩精品一区二区三区高清免费 | 啪啪凸凸 | 国产精品亚洲综合久久 | 久久精品96 | 精品国产_亚洲人成在线 | 在线视频一二三 | 国产精品原创视频 | 国产精品一区二区果冻传媒 | 免费在线观看国产精品 | 成人免费在线观看av | av免费电影在线观看 | 色干干| 色婷婷综合久久久久中文字幕1 | 日韩高清不卡一区二区三区 | 免费看的视频 | 国产情侣一区 | 日韩高清一二三区 | 日韩精品在线免费观看 | 99免费看片 | 五月天综合婷婷 | 在线免费观看国产精品 | 麻豆视频免费在线 | 黄网站色欧美视频 | 韩国一区二区在线观看 | 激情五月色播五月 | 人人射人人爽 | 久久久噜噜噜久久久 | 免费高清男女打扑克视频 | 国产精品成人自产拍在线观看 | 久久精品综合视频 | 久久精品5| 美女黄频在线观看 | av在线亚洲天堂 | 精品一区二区三区在线播放 | 粉嫩高清一区二区三区 | 国产福利一区二区三区在线观看 | 免费观看视频的网站 | 激情综合啪 | 国产经典 欧美精品 | 亚洲人成免费网站 | 一本一本久久a久久精品牛牛影视 | 国产精品丝袜久久久久久久不卡 | 成人午夜精品久久久久久久3d | 91精品啪在线观看国产线免费 | 人人擦 | 欧美日韩国产一二三区 | 欧美日韩网站 | 国产精品一区专区欧美日韩 | 99久久日韩精品免费热麻豆美女 | 久久久久久国产精品亚洲78 | 婷婷丁香在线观看 | 在线观看久久久久久 | 干 操 插| 国产精品乱码在线 | 国语精品免费视频 | 免费一级黄色 | 国产精品99久久久久久久久 | 久久国产精品精品国产色婷婷 | 精品在线视频观看 | 97成人精品视频在线播放 | 国产精品久久久久永久免费看 | 91在线日本 | 精品麻豆| 四虎永久国产精品 | 色婷久久 | 亚洲精品午夜一区人人爽 | 久久在线视频精品 | 欧美中文字幕第一页 | 国产精品久久久久久久久久久久午 | 91超碰免费在线 | 国产韩国日本高清视频 | 96av在线视频| 国产玖玖在线 | 亚洲无吗天堂 | 激情图片久久 | 人人澡人人干 | 精品国产伦一区二区三区观看方式 | 97免费在线观看 | 欧美性高跟鞋xxxxhd | 麻豆超碰| 亚洲激情国产精品 | 久久99久久99精品免视看婷婷 | 超碰国产在线播放 | www.黄色片网站 | 日本黄色一级电影 | 中文字幕欧美日韩va免费视频 | 久香蕉 | 成年人视频在线免费 | 五月天婷亚洲天综合网精品偷 | 麻豆成人精品视频 | 久草爱视频 | 欧美一级专区免费大片 | 久久久久免费精品 | 久久久久免费观看 | 天天·日日日干 | 综合色狠狠 | 99在线热播精品免费 | 超碰97在线人人 | av网站在线观看免费 | 久久专区 | 亚洲欧美国产日韩在线观看 | 日韩大片在线免费观看 | 99色视频 | 在线观看视频一区二区三区 | 奇米网8888 | 中文字幕传媒 | 免费午夜视频在线观看 | 999热线在线观看 | 2018好看的中文在线观看 | 免费看黄在线看 | 欧美色婷| 亚洲闷骚少妇在线观看网站 | 在线视频精品 | 日韩一区二区三免费高清在线观看 | 97色se | 日韩免费一区二区三区 | 91视频免费 | 91大神免费视频 | 久久五月情影视 | 日韩精品综合在线 | 97超碰中文字幕 | 久久久久久美女 | 欧美一级免费黄色片 | 激情 亚洲 | 激情欧美丁香 | 国色天香第二季 | 国产精品中文字幕在线 | 国产精品国产三级国产aⅴ无密码 | 91视频啊啊啊 | 精品国产一区二区三区四区vr | 国内99视频 | 天天射天天干天天 | 99久久精品无免国产免费 | 狠狠久久伊人 | 91 在线视频 | 国产免费xvideos视频入口 | 波多野结衣精品视频 | 天天天天综合 | 精品国产乱码一区二区三区在线 | 久久久久国产精品午夜一区 | 91免费看片黄 | 激情深爱.com | 国产精品9999久久久久仙踪林 | 婷婷午夜 | 久久视频国产精品免费视频在线 | 日日天天狠狠 | www.天天干| av片子在线观看 | 亚洲精品免费在线播放 | 91日韩在线视频 | 欧美日韩高清免费 | 综合久久一本 | 久草在线视频资源 | 国产免费专区 | a在线一区 | 天天爽天天爽夜夜爽 | 免费观看成人网 | av黄网站| 免费观看福利视频 | 久久综合影音 | 久久久久在线观看 | 婷婷六月天在线 | 欧美视频18 | 天天天天天干 | 在线免费试看 | 狠狠久久婷婷 | 日韩三级免费观看 | 免费欧美高清视频 | 国产精品中文 | 成年人网站免费在线观看 | 中文字幕日韩电影 | 日韩午夜电影院 | 色99网| 午夜神马福利 | 美女视频是黄的免费观看 | 色中射| 国产九九九精品视频 | 日日爱视频 | 精品一区二区三区久久 | 97精品伊人 | 99精品在线视频观看 | 久久综合久色欧美综合狠狠 | 在线观看免费av网 | 国产亚洲情侣一区二区无 | 日韩欧美黄色网址 | 久久久久国产一区二区 | 国产精品久久婷婷六月丁香 | h视频在线看| 欧美大片在线观看一区 | 日韩欧美精品在线观看 | 伊人婷婷 | 韩国一区二区三区视频 | 久免费 | 国产一级片免费视频 | 国产永久网站 | 亚洲精品动漫在线 | 在线观看91av | 免费看一级一片 | 99草视频 | 久草在线国产 | 天天在线免费视频 | 日日射天天射 | 久久99精品波多结衣一区 | 久久毛片视频 | 亚洲久草在线 | 在线观看视频中文字幕 | 九九久久精品 | 天堂av网在线 | 国产精品 久久 | 日韩av影视在线观看 | 亚洲欧美色婷婷 | 激情开心站 | h文在线观看免费 | 天堂在线视频免费观看 | 91在线观看高清 | av888.com| av一级二级| 日韩在线网址 | 婷婷www | 国产精品a久久 | 亚洲天堂香蕉 | 久久99婷婷 | 久草在在线视频 | 久久久久区 | 亚洲三级av | 久操伊人 | 国产福利一区二区三区视频 | 久久中文欧美 | 日日夜夜精品免费 | 狠狠久久| 国产黄色大全 | 色激情五月 | 国产精品av在线免费观看 | 久久久久一区二区三区四区 | 精品视频在线视频 | 有码中文在线 | 黄色在线成人 | 日日噜噜噜噜夜夜爽亚洲精品 | 99精品免费久久久久久日本 | 探花视频在线观看+在线播放 | 探花视频在线版播放免费观看 | 瑞典xxxx性hd极品 | 高潮毛片无遮挡高清免费 | 在线欧美国产 | 国产一区在线视频观看 | 五月天视频网站 | 国产在线超碰 | 久久99精品久久久久久 | 国产精品va在线播放 | 91免费网 | 国产又粗又猛又爽又黄的视频免费 | 久久精品视频一 | 久久欧美视频 | 69国产盗摄一区二区三区五区 | 日韩欧美一区二区在线 | 久久99久久99精品中文字幕 | 国产成人区 | 蜜桃麻豆www久久囤产精品 | 色多多污污在线观看 | 色狠狠综合天天综合综合 | 久久久久9999亚洲精品 | 婷婷色视频 | 亚洲精品在线免费播放 | 免费精品国产va自在自线 | 久久久免费高清视频 | 亚洲久草网 | 国产黄色大片免费看 | 天天操天天干天天插 | 国产成人一区二区三区久久精品 | 超碰最新网址 | 成人黄性视频 | 国产一区欧美在线 | 成人久久18免费网站 | 久久久久久综合网天天 | 韩国一区二区av | 天天干,天天操,天天射 | 国产尤物视频在线 | 麻豆精品国产传媒 | 国产成本人视频在线观看 | av福利免费 | 国产精品美女久久久久久网站 | 91欧美国产 | 一区免费在线 | 国产免费亚洲 | 国产不卡在线播放 | 伊人黄色网 | 九九热精 | 国产精品黄色在线观看 | 国产中文字幕国产 | 狠狠色丁香久久婷婷综合五月 | 日韩成人邪恶影片 | 成人免费视频播放 | 狠狠操在线 | 亚洲日日日 | 国产精品久久精品 | 91网址在线看 | 在线天堂v | 欧美日韩免费一区 | 日韩视频免费在线观看 | 中文字幕网址 | 午夜色影院| 午夜精品999 | a天堂在线看 | 最近中文字幕国语免费av | 久久精品视频网 | 主播av在线 | 久久免费a | 欧美在线观看视频 | 99久久久久久久久久 | 国产精久久久久久妇女av | 五月婷婷综合网 | 日韩电影中文,亚洲精品乱码 | 久久福利在线 | 9在线观看免费 | 久久久久亚洲精品成人网小说 | 亚洲黄色软件 | av免费在线网 | 天堂av网站| 在线91精品 | 91成人网页版 | 日韩国产精品久久久久久亚洲 | 日韩中文字幕免费在线播放 | 人人插人人草 | 色多多在线观看 | 国产一级二级三级视频 | 国产网红在线观看 | bbw av| 99草在线视频 | 特级毛片在线观看 | 丝袜美女在线观看 | 中文字幕在线一区二区三区 | 99在线免费观看视频 | 免费国产在线精品 | 久久99久久久久 | 四虎永久免费网站 | 国产一区二区手机在线观看 | 久草网站在线 | 色婷婷综合在线 | 最新av网址在线 | 99日精品| 日日噜噜噜噜夜夜爽亚洲精品 | 在线免费观看视频 | 国产精品视频永久免费播放 | 99精品热视频只有精品10 | 偷拍区另类综合在线 | 91精品国产91久久久久福利 | 欧洲av不卡 | 国产少妇在线观看 | 亚洲精品男人的天堂 | 免费观看十分钟 | 在线成人一区 | 伊人精品在线 | 99色免费 | 四虎影视成人永久免费观看亚洲欧美 | 日韩av电影中文字幕 | 伊人中文字幕在线 | 国产色在线,com | 日韩在线观看网站 | 午夜在线看 | 九九热99视频 | 久久精品国产亚洲 | 久久视频这里有久久精品视频11 | 97国产超碰 | 久久这里只有精品9 | 成人在线一区二区 | 久久9999久久免费精品国产 | 国产淫片 | 奇米777777 | 亚洲欧美日韩国产一区二区三区 | 99久久精品免费看国产一区二区三区 | 91精品国产91| 成人黄色电影在线 | 中文字幕视频网 | 欧美在线观看小视频 | 成人一区电影 | 成人在线超碰 | 最新三级在线 | 午夜手机电影 | 日本中文在线播放 | 亚洲在线视频免费 | 国内一区二区视频 | 在线观看一区 | 亚洲香蕉在线观看 | 色先锋资源网 | www.天天综合| 国产五月色婷婷六月丁香视频 | 蜜臀av网址 | 亚洲理论片 | 99精品免费久久久久久日本 |