久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

雙線性插值圖像縮放:原理、C語言實現(xiàn)與性能優(yōu)化

雙線性插值圖像縮放:原理、C語言實現(xiàn)與性能優(yōu)化 簡介面向C語言學(xué)習(xí)者和圖像處理初學(xué)者這份雙線性插值算法實現(xiàn)包將數(shù)學(xué)公式轉(zhuǎn)化為可運行的工程代碼完整演示了如何在二維網(wǎng)格上對任意坐標進行插值計算適合理解數(shù)據(jù)平滑與空間插值原理并進行動手實踐。壓縮包共31個文件以cpp、h源文件為主搭配csv測試數(shù)據(jù)、exe演示程序、Visual Studio工程配置文件及說明txt整體僅1.86MB結(jié)構(gòu)緊湊、便于快速部署學(xué)習(xí)。目前已有2083人學(xué)習(xí)下載。源碼覆蓋網(wǎng)格點結(jié)構(gòu)定義、λx/λy權(quán)重計算、雙線性插值核心公式和邊界條件處理各環(huán)節(jié)公式與代碼逐一對應(yīng)并附有已知數(shù)據(jù)點的測試csv以驗證輸出同時包含pdb、ilk等編譯輔助文件可使用Visual Studio打開工程直接調(diào)試運行也可作為數(shù)值計算或數(shù)字圖像處理課程的參考實現(xiàn)幫助讀者從數(shù)學(xué)推導(dǎo)平滑過渡到實際編碼。1. 雙線性插值圖像縮放繞不開的第一課一張 720×480 的截圖要放大到 1080P用最近鄰縮放做出來的結(jié)果滿屏馬賽克鋸齒換用雙線性插值后輪廓立刻平滑下來。這是我最初接觸圖像縮放時感受最明顯的一次對比也是雙線性插值這個算法最典型的落地場景它不追求邊緣的極度銳利而是在計算成本和輸出質(zhì)量之間選了一個折中位置。雙線性插值做的事情并不復(fù)雜——目標像素映射回源圖后會落在一個浮點坐標上取這個坐標周圍 2×2 個相鄰像素按距離做兩次線性加權(quán)合成一個輸出值。對做圖像處理入門、嵌入式視覺前處理或者 OCR 文本矯正的開發(fā)者來說這個算法值得親手用純 C 語言實現(xiàn)一遍既能把坐標映射的細節(jié)看清又不至于被龐大的圖像庫遮住關(guān)鍵邏輯。2. 數(shù)學(xué)拆解雙線性插值的加權(quán)公式與四種邊界采樣策略2.1 一維線性插值與二維加權(quán)公式插值的起點其實是一維的。已知兩個點 (x0, y0) 和 (x1, y1)要在中間任意位置 x 處取值線性插值給出的結(jié)果是y y0 * (x1 - x) / (x1 - x0) y1 * (x - x0) / (x1 - x0)雙線性插值是把這個思想擴展到二維先在水平方向做兩次一維插值再在垂直方向做一次一維插值。假設(shè)源圖中目標坐標落在 (x0, y0) 與 (x01, y01) 之間的位置記 sx 的小數(shù)部分為 usy 的小數(shù)部分為 v四個相鄰像素分別為 p00、p01、p10、p11那么雙線性插值可以寫成首先水平方向t0 p00 * (1 - u) p01 * ut1 p10 * (1 - u) p11 * u然后垂直方向f t0 * (1 - v) t1 * v合并成一步就是常見的加權(quán)公式f p00 * (1 - u) * (1 - v) p01 * u * (1 - v) p10 * (1 - u) * v p11 * u * v這里 u 和 v 的取值范圍都是 [0, 1)代表目標采樣點在這四個像素圍成的方格內(nèi)的偏移比例。當(dāng) u 和 v 恰好都為 0 時輸出就等于 p00 本身這說明雙線性插值在整數(shù)坐標上是“過點”的不會像某些濾波算法那樣產(chǎn)生整體偏移。理解這個拆分過程比背公式更重要。很多實現(xiàn)里直接套四個權(quán)重相乘邏輯上沒有問題但遇到需要單獨調(diào)試某個方向的時候拆成兩步處理會更容易定位問題。雙線性插值本質(zhì)上是一個低通濾波操作它會把圖像中的高頻細節(jié)做一定程度的平滑所以放大后邊緣不會像最近鄰那樣出現(xiàn)硬鋸齒但代價是細節(jié)會偏軟。2.2 反向映射與像素中心對齊插值公式本身不復(fù)雜真正容易出問題的是“目標像素從哪里取值”。常見的做法是反向映射從輸出圖像的每個像素坐標出發(fā)反算它在源圖中的浮點坐標再去源圖采樣。正向映射會留下空洞和重疊反向映射則保證每個輸出像素恰好被填充一次。映射公式如果隨手寫成 sx dx * srcW / dstW在縮放大比例時會產(chǎn)生系統(tǒng)性偏移。圖像傳感器采集到的像素應(yīng)該被理解為一塊面積而不是一個數(shù)學(xué)上的點像素坐標通常指向這塊面積的中心。因此縮放時需要把輸出坐標平移到中心再映射sx (dx 0.5) * (srcW / dstW) - 0.5sy (dy 0.5) * (srcH / dstH) - 0.5驗證這個公式是否正確有一個很直接的手段當(dāng) srcW 等于 dstW 時sx 應(yīng)該正好等于 dx。代入上面的式子偏移量抵消結(jié)果就是 sx dx。如果采用的是不帶 0.5 的樸素除法映射即使尺寸不變也只是恰好滿足條件一旦縮放比例不是 1:1輸出圖像就會整體向某個方向偏移疊圖對比時能看出一圈半像素的錯位。在代碼實現(xiàn)時我習(xí)慣把比例系數(shù)先算出來存成浮點數(shù)避免每個像素都做一次除法。對精度要求更高的場景也可以把浮點換算改成整數(shù)定點運算這會在后文專門展開。先記住一點反向映射負責(zé)的是“位置是否正確”插值公式負責(zé)的是“取值是否平滑”兩者分開調(diào)試會省很多時間。2.3 邊界采樣策略的對比與選擇目標坐標映射回源圖后可能落在源圖范圍之外尤其是當(dāng)輸出尺寸大于源圖尺寸時邊緣部分不可避免地會越界。采樣時如何處理這些越界坐標決定了邊緣像素的表現(xiàn)形式。我常用的四種策略如下策略做法適用場景潛在問題Clamp 拉伸復(fù)制把越界坐標強制修正到 [0, W-1] 或 [0, H-1]自然圖像縮放做通用處理時最穩(wěn)妥邊緣會有輕微重復(fù)感但對大多數(shù)內(nèi)容不敏感固定色填充越界區(qū)域返回固定值如黑色或白色圖像配準、合成場景背景需要純凈縮放后會出現(xiàn)明顯邊框需要確認填充色僅有效區(qū)域插值只有完整落在源圖內(nèi)的像素才做雙線性否則退化為最近鄰或一維插值醫(yī)學(xué)影像、由多個小圖拼接的瓦片圖分支判斷多邊緣過渡不均勻鏡像擴展以邊界為軸鏡像讀取像素紋理合成、無縫平鋪場景對強紋理圖像可能存在方向感誤差Clamp 策略是我最常用的默認選項。實現(xiàn)上也最簡單先把 x 和 y 分別做一次范圍裁剪再做插值即可。固定色填充適合對邊界有明確要求的場景比如把一個物體從原圖里裁切出來填到黑色背景上此時越界處填充黑色比復(fù)制邊界像素更合理。選擇哪種策略取決于輸出結(jié)果會被怎樣使用這沒有絕對的對錯但代碼里建議把策略做成枚舉參數(shù)而不是寫死。2.4 為什么雙線性是默認選擇圖像縮放算法里最常被拿來做對比的是最近鄰、雙線性和雙三次插值。最近鄰不產(chǎn)生新像素值實現(xiàn)最簡單、速度最快但放大后鋸齒明顯適合像素藝術(shù)或整數(shù)倍縮放場景雙三次插值用 4×4 鄰域做加權(quán)邊緣更銳利細節(jié)保留更好但計算量是雙線性的好幾倍適合離線高質(zhì)量渲染雙線性落在兩者之間視覺上平滑計算量可控是實時視頻處理和嵌入式設(shè)備上常見的折中方案。實際選型時我還會考慮一個因素算法對調(diào)節(jié)參數(shù)的依賴度。雙三次插值在不同實現(xiàn)里有不同的銳化系數(shù)常見的是 -0.5 或 -0.75參數(shù)沒調(diào)對時效果反而比雙線性更差出現(xiàn)明顯的過沖和振鈴。雙線性只有坐標和一個權(quán)重公式幾乎沒有可以調(diào)亂的參數(shù)這對工程落地是很大的優(yōu)勢。先把雙線性吃透后續(xù)換雙三次時也能更清楚地判斷問題出在采樣還是權(quán)重上。3. C語言落地從單點采樣到灰度圖像縮放模塊3.1 基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)的定義與內(nèi)存布局在寫縮放函數(shù)之前先把圖像的基本結(jié)構(gòu)定義清楚。這里的示例以 8-bit 灰度圖為例這樣能讓代碼聚焦在插值邏輯上避免通道循環(huán)干擾閱讀。如果實際項目中要處理 RGB 或帶透明通道的圖可以在這個結(jié)構(gòu)的基礎(chǔ)上擴展但核心采樣邏輯不變。typedef struct { int w; int h; unsigned char *pixels; } GrayImage; typedef enum { FILL_CLAMP 0, FILL_BLACK 1, FILL_REGION 2, FILL_MIRROR 3 } BorderMode;pixels 按行連續(xù)存儲第 y 行第 x 個像素的地址是 pixels[y * w x]。這里的 w 是實際寬度為了方便與常見的圖像庫對接也可以引入 pitch 參數(shù)表示每行實際的字節(jié)跨度對齊到 4 或 16 字節(jié)。引入 pitch 之后所有像素訪問都改成 pixels[y * pitch x]這樣在縮放函數(shù)里寫起來更通用后續(xù)擴展到 ROI 子圖也更容易。BorderMode 枚舉對應(yīng)上一章講的四種邊界采樣策略。把它作為參數(shù)傳入采樣函數(shù)而不是在縮放函數(shù)里寫死是為了方便做不同策略的對比測試。我曾經(jīng)為了一組批量對比實驗不得不復(fù)制三份幾乎相同的縮放函數(shù)從那以后所有圖像處理模塊都默認把邊界模式和插值算法作為獨立參數(shù)暴露出來。3.2 安全像素采樣函數(shù)插值過程中會頻繁訪問四個相鄰像素其中 x01 和 y01 很容易越界。直接在每個插值點都寫邊界判斷會顯得重復(fù)所以我通常先抽出一個帶邊界策略的采樣函數(shù)static unsigned char sample_pixel(const GrayImage *img, int x, int y, BorderMode mode) { if (mode FILL_CLAMP) { if (x 0) x 0; if (x img-w) x img-w - 1; if (y 0) y 0; if (y img-h) y img-h - 1; } else if (mode FILL_BLACK) { if (x 0 || x img-w || y 0 || y img-h) return 0; } else if (mode FILL_MIRROR) { if (x 0) x -x - 1; if (x img-w) x img-w - (x - img-w) - 1; if (y 0) y -y - 1; if (y img-h) y img-h - (y - img-h) - 1; } if (x 0 || x img-w || y 0 || y img-h) return 0; return img-pixels[y * img-w x]; }這個函數(shù)返回的始終是合法范圍內(nèi)的像素值調(diào)用方不需要再次判斷越界。對于 FILL_REGION 這種策略需要在插值函數(shù)里判斷鄰域是否完整而不是在 sample_pixel 里處理因為只要有一個鄰居越界整個雙線性插值都應(yīng)該降級為最近鄰或一維插值。邏輯說明Clamp 修正坐標后正常訪問Black 直接返回固定值Mirror 通過取反平移實現(xiàn)鏡像效果。參數(shù)說明mode 選擇越界行為img 必須保證 w、h 和 pixels 已初始化否則會出現(xiàn)空指針訪問。這段代碼是插值模塊里最底層的部分后續(xù)所有優(yōu)化都不能破壞它的邊界行為。單獨測試它的時候可以構(gòu)造一個特殊的測試圖把每個像素的灰度值設(shè)為等于其坐標值這樣一旦越界讀到了錯誤位置輸出數(shù)值會明顯暴露問題。3.3 雙線性單點采樣核心有了安全采樣函數(shù)之后雙線性插值的核心部分就清晰了。這里接收的 sx、sy 是浮點源坐標由縮放主循環(huán)計算出來傳入static unsigned char bilinear_sample(const GrayImage *src, float sx, float sy, BorderMode mode) { int x0 (int)floorf(sx); int y0 (int)floorf(sy); float u sx - x0; float v sy - y0; unsigned char p00 sample_pixel(src, x0, y0, mode); unsigned char p01 sample_pixel(src, x0 1, y0, mode); unsigned char p10 sample_pixel(src, x0, y0 1, mode); unsigned char p11 sample_pixel(src, x0 1, y0 1, mode); float row0 p00 * (1.0f - u) p01 * u; float row1 p10 * (1.0f - u) p11 * u; float result row0 * (1.0f - v) row1 * v; return (unsigned char)(result 0.5f); }邏輯說明先用 floorf 取得浮點坐標的整數(shù)部分 x0、y0再計算小數(shù)部分 u、v。四個相鄰像素分別是 (x0, y0) 的右上、左上、右下、左下鄰域按兩階段線性插值完成輸出。最后加 0.5f 是為了四舍五入避免浮點結(jié)果截斷后產(chǎn)生系統(tǒng)性偏暗。這里有一個容易忽略的細節(jié)當(dāng) sx 落在最后一行或最后一列時x01 或 y01 會越界所以 sample_pixel 的邊界處理必須在這四個采樣調(diào)用之前保證內(nèi)存安全。另一個細節(jié)是 floorf 的返回類型是 float在精度敏感的場景中可以考慮用 double 版本但 8-bit 灰度圖的像素值范圍只有 0 到 255float 的精度已經(jīng)足夠。3.4 縮放主循環(huán)與映射參數(shù)主循環(huán)的邏輯非常直白遍歷每個輸出像素坐標用反向映射計算出源坐標 sx、sy再調(diào)用 bilinear_sample 得到輸出值。這里的關(guān)鍵在于映射公式的正確性int gray_resize(const GrayImage *src, GrayImage *dst, BorderMode mode) { if (!src || !dst || !src-pixels || !dst-pixels) return -1; if (dst-w 0 || dst-h 0 || src-w 0 || src-h 0) return -1; float scale_x (float)src-w / (float)dst-w; float scale_y (float)src-h / (float)dst-h; for (int dy 0; dy dst-h; dy) { float sy (dy 0.5f) * scale_y - 0.5f; for (int dx 0; dx dst-w; dx) { float sx (dx 0.5f) * scale_x - 0.5f; dst-pixels[dy * dst-w dx] bilinear_sample(src, sx, sy, mode); } } return 0; }邏輯說明scale_x 和 scale_y 是預(yù)先計算好的縮放系數(shù)每個輸出像素坐標 dx、dy 加 0.5 后乘以系數(shù)再減 0.5得到源圖中的浮點坐標。這樣當(dāng)縮放比例為 1:1 時sx 恰好等于 dx輸出與輸入一致。參數(shù)說明dst 必須已經(jīng)分配好 pixels 緩沖區(qū)函數(shù)不會自動分配內(nèi)存這是有意為之讓調(diào)用方掌握內(nèi)存生命周期避免在循環(huán)縮放大量圖片時頻繁觸發(fā) malloc。如果你希望函數(shù)內(nèi)部自動分配只需在入口處增加判斷并在成功時返回新緩沖區(qū)的指針但那樣會引入釋放語義的問題不夠干凈。這個版本能跑但性能上還有不少優(yōu)化空間。每像素調(diào)用 floorf 和浮點乘法在桌面端縮放一張 1080P 圖尚可接受放到嵌入式設(shè)備上就會比較吃力。下一章會針對這些問題做定點化和查表優(yōu)化。3.5 多通道與特定區(qū)域的擴展灰度圖的核心邏輯跑通后擴展到 RGB 圖有兩種做法。第一種是每個通道單獨調(diào)用 gray_resize代碼最簡單但會重復(fù)計算坐標映射浪費不少時間第二種是把插值核心抽成對單像素操作外層循環(huán)同時讀取三個通道相鄰像素分別插值后寫出。第二種做法更高效但要注意內(nèi)存布局RGB 圖通常以像素交錯方式存儲即每個像素連續(xù)存放 R、G、B 三個字節(jié)所以四個鄰居的地址間隔是 3 字節(jié)而不是灰度圖里的 1 字節(jié)。另一個常見的需求是對圖像某個矩形區(qū)域做局部縮放。實現(xiàn)時不需要修改插值函數(shù)只需要在映射公式里加上源區(qū)域偏移量和尺寸sx src_off_x (dx 0.5f) * (src_roi_w / dst_w) - 0.5f這個用法在圖像裁剪、ROI 放大鏡功能里很常見。把偏移量作為額外參數(shù)傳入縮放函數(shù)能避免為每個區(qū)域復(fù)制一份代碼。4. 性能取舍定點化、查表法與行權(quán)重緩存的三級優(yōu)化4.1 先定位瓶頸再動手優(yōu)化許多優(yōu)化方案是看見“浮點”就寫定點看見“除法”就換查表但正確順序應(yīng)該先用性能分析確認瓶頸在哪里。雙線性縮放的熱點集中在三層坐標映射中的除法與浮點取整、每個像素重復(fù)計算四個權(quán)重、以及四個相鄰像素的隨機內(nèi)存訪問。其中權(quán)重計算本身是乘加運算數(shù)量不大真正的開銷集中在把浮點坐標拆成整數(shù)部分與小數(shù)部分的操作上。以輸出 1920×1080 為例循環(huán)體內(nèi)要做約 207 萬次浮點坐標映射。如果每次映射都經(jīng)歷一次除法、一次 floorf、兩次浮點減法和一次內(nèi)存訪問在無 FPU 的 MCU 上耗時可能達到幾十毫秒。優(yōu)化的基本思路是先用定點數(shù)替代浮點再用查表消除重復(fù)計算最后通過合理劃分任務(wù)利用多核。我寫了一個對比代碼框架分別驗證各優(yōu)化階段的效果。結(jié)論是定點化大約能減少 30% 到 50% 的耗時查表法在縮小場景下收益明顯多線程在圖像尺寸較大時才能掩蓋線程創(chuàng)建和同步的開銷。完全沒有必要把三種優(yōu)化一次性全做完先量化再優(yōu)化才是工程習(xí)慣。4.2 第一級優(yōu)化Q16 定點坐標與整數(shù)加權(quán)定點化的核心思想是把浮點小數(shù)乘以一個固定倍數(shù)后存成整數(shù)。這里采用 Q16 格式即低 16 位表示小數(shù)部分1 表示整數(shù) 65536。坐標映射公式可以改成#define FX_SHIFT 16 #define FX_ONE (1 FX_SHIFT) static inline int float_to_fixed(float x) { return (int)(x * FX_ONE); } int sx_fixed (int)((((int64_t)(2 * dx 1) * src-w - dst-w) FX_SHIFT) / (2 * (int64_t)dst-w));邏輯說明這個式子是把 (dx 0.5) * srcW / dstW - 0.5 展開成定點形式。先計算 (2 * dx 1) * srcW - dstW再整體除以 2 * dstW最后左移 16 位變成定點數(shù)。使用 int64_t 是為了避免在大圖上乘法溢出。參數(shù)說明dx 是輸出像素列坐標src-w 和 dst-w 是源圖與輸出圖寬度。計算完成后可以從 sx_fixed 中分離整數(shù)部分和小數(shù)部分int x0 sx_fixed FX_SHIFT; int tx sx_fixed (FX_ONE - 1);得到 x0 和 tx 后權(quán)重計算可以全部用整數(shù)完成int64_t w00 (int64_t)(FX_ONE - tx) * (FX_ONE - ty); int64_t w01 (int64_t)tx * (FX_ONE - ty); int64_t w10 (int64_t)(FX_ONE - tx) * ty; int64_t w11 (int64_t)tx * ty; int64_t sum p00 * w00 p01 * w01 p10 * w10 p11 * w11; unsigned char out (unsigned char)((sum (1LL 31)) 32);這里的中間乘積會超過 32 位所以必須用 int64_t。這個細節(jié)非常容易翻車我見過有人把權(quán)重乘積直接寫在 int 變量里小圖測試沒問題一旦圖片寬度超過幾千像素就出現(xiàn)隨機條紋。加 (1LL 31) 是為了實現(xiàn)四舍五入通過除以 2 的 32 次方把定點結(jié)果還原回整數(shù)范圍。定點化的代價是代碼可讀性下降調(diào)試時打印 sx_fixed 的值需要手動除以 65536 才能看出浮點含義。建議在調(diào)試模式下保留一套浮點實現(xiàn)通過對比輸出結(jié)果來驗證定點版本是否正確這樣能快速定位誤差來源。4.3 第二級優(yōu)化列權(quán)重與行權(quán)重查表坐標映射的結(jié)果只依賴輸出像素位置與像素值無關(guān)。因此可以在縮放開始前把每一列對應(yīng)的 x0、tx 和每一行對應(yīng)的 y0、ty 預(yù)先計算好存成數(shù)組。這樣內(nèi)層循環(huán)只需要從數(shù)組取值連整數(shù)除法都省了int *x0_table malloc(dst-w * sizeof(int)); int *tx_table malloc(dst-w * sizeof(int)); int *y0_table malloc(dst-h * sizeof(int)); int *ty_table malloc(dst-h * sizeof(int)); for (int dx 0; dx dst-w; dx) { int sx_fixed ...; x0_table[dx] sx_fixed FX_SHIFT; tx_table[dx] sx_fixed (FX_ONE - 1); } for (int dy 0; dy dst-h; dy) { int sy_fixed ...; y0_table[dy] sy_fixed FX_SHIFT; ty_table[dy] sy_fixed (FX_ONE - 1); }邏輯說明x0_table 和 tx_table 的長度是輸出寬度y0_table 和 ty_table 的長度是輸出高度總內(nèi)存占用是 O(dstW dstH)而不是 O(dstW × dstH)這對嵌入式設(shè)備非常重要。每個輸出像素內(nèi)層循環(huán)只需要讀取四個表項不再做任何除法。這種查表方法對輸出尺寸固定、多次縮放同一分辨率視頻幀的場景尤其有效。比如實時視頻流中每一幀的縮放比例都不變那么只需要在第一次運算時生成表后續(xù)幀直接復(fù)用。如果縮放比例會動態(tài)變化表的重建成本也不高幾百次整數(shù)運算即可完成。4.4 第三級優(yōu)化多線程按輸出行切分定點化和查表法把 CPU 利用率提上去之后下一步是考慮并行。雙線性縮放中每個輸出像素的讀寫范圍相互獨立非常適合按輸出行切分任務(wù)。每個線程處理一段連續(xù)的輸出行區(qū)間讀共享的源圖像和查表數(shù)組寫自己負責(zé)的目標圖像區(qū)間沒有寫沖突typedef struct { const GrayImage *src; GrayImage *dst; BorderMode mode; int y_begin; int y_end; } ResizeRowTask; void resize_row_task(ResizeRowTask *task) { for (int dy task-y_begin; dy task-y_end; dy) { /* 內(nèi)層循環(huán)復(fù)用查表及定點權(quán)重計算 */ } }邏輯說明任務(wù)結(jié)構(gòu)體把輸入、輸出、邊界模式以及行區(qū)間打包在一起線程池調(diào)度時只傳這個結(jié)構(gòu)體就夠了。因為相鄰線程之間沒有共享寫入?yún)^(qū)域所以不需要加鎖。參數(shù)說明y_begin 和 y_end 是左閉右開區(qū)間這樣切分行數(shù)時不會出現(xiàn)重疊。實際測試中線程數(shù)超過 CPU 物理核心數(shù)后收益急劇下降甚至因為上下文切換變慢。對于高度只有幾十像素的小圖像多線程的固定開銷可能超過收益建議加一個閾值判斷當(dāng) dst-h 小于 64 時直接單線程執(zhí)行。這條優(yōu)化路徑我已經(jīng)在實際項目中驗證過同一個縮放模塊從純浮點到定點加查表再到四線程并行總耗時大約壓縮到原來的五分之一。優(yōu)化過程中最重要的習(xí)慣是保持輸出逐位一致每做一步優(yōu)化就跑一遍與浮點版本的結(jié)果對比差異超過 1 就要停下來查定點誤差。5. 常見問題排查越界、錯位、摩爾紋的五個真實踩坑5.1 圖像整體向右下偏移像素中心的半像素錯位現(xiàn)象縮放后的圖像與原圖疊在一起對比輪廓整體向右下偏移了約一個像素放大倍數(shù)越高偏移越明顯。原因使用了 sx dx * srcW / dstW 的樸素映射公式?jīng)]有加 0.5 的中心對齊。像素是面積采樣不是點采樣坐標應(yīng)指向像素中心。缺少 0.5 偏移后映射結(jié)果整體錯位半個采樣周期。解決改用 sx (dx 0.5) * scale - 0.5。寫完后做一個 1:1 的恒等測試輸入一張坐標漸變圖輸出應(yīng)該與輸入完全一致。如果 1:1 時都出現(xiàn)偏移多半是公式里的偏移量寫錯了位置。5.2 邊緣出現(xiàn)規(guī)則黑邊或白邊現(xiàn)象縮放結(jié)果四周出現(xiàn)一行或一列明顯不同的像素有時是黑色有時是灰白噪點。原因采樣 (x01, y01) 時越界邊界策略沒有正確攔截。如果用的是 FILL_CLAMP 但裁剪寫成了只有 if 沒有 else或者鏡像模式下的負坐標換算公式錯誤都會讓 sample_pixel 返回一個未定義值。解決先確認邊界策略的默認選擇。調(diào)試階段可以在 sample_pixel 的每個分支底部打印越界坐標這樣能快速看出是 clamp 修正失敗還是坐標計算錯誤。對最后一列單獨檢查 x0 1 是否超過 src-w - 1必要時把輸出循環(huán)改成到 dst-w - 1 時特殊處理。5.3 放大后整體模糊細節(jié)像蒙了一層紗現(xiàn)象放大 3 倍以上時圖像平滑過度文字邊緣發(fā)虛細節(jié)丟失嚴重。原因雙線性插值本身是低通濾波放大的倍數(shù)越大可用的高頻信息越少模糊是數(shù)學(xué)上的必然結(jié)果。另一個容易被忽略的原因是源圖像本身是索引色或經(jīng)過了有損壓縮像素值跨度大插值后中間值落在不自然的顏色區(qū)域。解決如果倍數(shù)超過 3可以考慮改用雙三次插值或者先對源圖做一次輕微銳化再縮放。如果圖像帶調(diào)色板先轉(zhuǎn)換到 RGB 再插值不要在索引值上直接做算術(shù)運算。對 OCR 場景可以先放大再做二值化避免插值過程產(chǎn)生過多的灰色過渡帶。5.4 縮小后出現(xiàn)摩爾紋和波浪條紋現(xiàn)象把一張棋盤格或密集紋理圖片縮小到三分之一以下時輸出出現(xiàn)明顯的明暗波紋。原因雙線性插值只能對當(dāng)前采樣鄰域內(nèi)的頻率做平均無法抑制高于新采樣頻率的信號。當(dāng)圖像中的高頻細節(jié)密度超過輸出分辨率可表達的極限時混疊現(xiàn)象就以摩爾紋的形式爆發(fā)出來。解決縮小倍數(shù)超過 2 時先做一次盒式濾波降采樣把分辨率降到接近目標值再用雙線性做最后一小步微調(diào)。盒式濾波的窗口尺寸與縮小倍數(shù)相關(guān)常見做法是每 2×2 鄰域取均值后繼續(xù)縮小直到尺寸小于目標尺寸的 1.5 倍。這套流程在縮略圖生成場景里效果穩(wěn)定代價是代碼復(fù)雜度增加。5.5 大圖縮放出現(xiàn)隨機條紋與花屏現(xiàn)象圖片寬度超過 8000 像素時縮放結(jié)果出現(xiàn)周期性錯位或噪點小圖測試時完全正常。原因坐標映射或權(quán)重計算中的整數(shù)乘法在 int 范圍內(nèi)溢出。最典型的是 dx * srcW 或 tx * ty 超出 32 位有符號整數(shù)的上限溢出后的值變成負數(shù)或截斷值導(dǎo)致采樣位置錯亂。解決涉及坐標映射和權(quán)重累積的地方統(tǒng)一使用 int64_t。我在定點化那一段就強調(diào)過中間乘積一定要用 64 位。寫代碼時給所有參與乘法的變量加 const 屬性配合編譯器告警可以提前發(fā)現(xiàn)潛在的截斷風(fēng)險。測試時額外構(gòu)造一張寬度大于 8000 的漸變圖循環(huán)縮放多個比例能有效暴露這類問題。6. 進階驗證用 PSNR 與自檢圖量化縮放質(zhì)量告別“肉眼調(diào)參”6.1 用峰值信噪比量化插值誤差很多開發(fā)者在調(diào)縮放算法時憑肉眼判斷效果這在差異明顯時還行遇到兩種算法輸出相近時就會陷入“感覺差不多”的狀態(tài)。定量對比的常用指標是峰值信噪比 PSNR它衡量兩張同尺寸圖像的逐像素差異#include math.h double psnr_8bit(const unsigned char *a, const unsigned char *b, int n) { double mse 0.0; for (int i 0; i n; i) { double d (double)a[i] - b[i]; mse d * d; } mse / n; if (mse 0.0) return 99.0; return 10.0 * log10(255.0 * 255.0 / mse); }邏輯說明mse 是均方誤差峰值信噪比的單位是 dB。PSNR 高于 40dB 時兩張圖的差異對肉眼來說很難察覺30 到 40dB 之間可以感知到輕微差異低于 30dB 說明異常明顯。參數(shù)說明a、b 必須是長度相同的像素數(shù)組n 是像素總數(shù)。用來比較雙線性與雙三次效果時標準做法是先對一張大圖做降采樣得到縮小版本再用不同插值算法放大回原尺寸計算與原圖的 PSNR。數(shù)值更高的那個算法在“還原度”上更強。需要注意 PSNR 對位置偏移非常敏感兩張圖哪怕只差一個像素指標也會急劇下降所以比較前先確認兩幅圖已經(jīng)對齊。6.2 自檢圖單像素擴散與階梯邊緣測試除了量化指標我還習(xí)慣跑兩張自檢圖。第一張是單像素白點圖背景全黑中間只有一個 255 的點。把它放大到 8 倍后雙線性輸出應(yīng)該是一個以原點為中心的對稱菱形光斑。如果光斑偏向某一邊說明坐標映射中心沒有對齊。第二張是橫向階梯圖用一排等寬的橫條紋組成縮小 2 倍后觀察條紋邊緣是否等寬如果出現(xiàn)左右不對稱說明水平方向的權(quán)重計算順序有誤。這兩張測試圖生成成本極低甚至不需要外部素材unsigned char *matrix calloc(w * h, 1); matrix[h / 2 * w w / 2] 255;把 matrix 縮放后統(tǒng)計光斑重心理論上應(yīng)該與圖像中心重合。這套自檢流程可以在幾分鐘內(nèi)完成比肉眼觀察復(fù)雜圖片后再猜問題原因高效得多。6.3 固定流程帶來的收益有一次我修改了映射公式覺得邏輯沒問題就沒有跑測試圖直接投到一個批量處理任務(wù)里。結(jié)果一整批輸出圖的邊緣都偏移了約兩個像素返工花了半天才定位到是 0.5 偏移量被錯誤地移到了除法之后。從那以后我每次改動插值代碼都強制走一遍三件事1:1 恒等測試、單像素擴散測試、以及 PSNR 對照測試整個流程不到五分鐘卻能在問題影響真實數(shù)據(jù)之前把它攔住。這套組合拳同樣適用于雙三次、蘭索斯等更復(fù)雜的插值算法原理是一樣的。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
18禁超污无遮挡无码免费网| 伊人大香蕉在线| 加勒比东京热五月天天堂网| 婷婷丁香熟妇综合网| 1769成人国产精品视频| 精品久久97观看在线视频| 爱啪精品一区| 国产AV天美| 色五天伊人| 超碰在线成人电影| 色网综合网| 青青网三级视频| 秋霞久久亚洲精品成人| 一级婬片120分钟试看| 懂色av中文字幕| 999久久久久久久精| 玖玖资源综合在线视频| 国产精品熟女九色九色蜜臀| 丝袜剧情| 免费又黄又裸乳的视频| 亚洲春色一区二区三区| 天天综合网日韩| 日日日日做夜夜夜夜做无码97| 天堂日本亚洲欧美| 福利天堂| 日韩电影天堂视频一区二区| 日韩欧美被操黄免费观看| 午夜呻吟欧美| 熟妇人妻一区二区三区| 麻豆天美久久91| 999国产精品999| 人妻中文字幕精品无码| 久久久久久亚洲中文| 一级性爱视频免费观看| 国产AAAAAABBBBB| 亚洲欧美不卡线| 91色欧美| 清纯唯美亚洲综合| 可以看的av| 国产一区免费午夜视频| 东京热视频网| www..com操老师| 日韩av免费一级电影| 久操操AV电影| 天天天天天天天天天天干美女| 搞中出久久| 亚州熟女乱伦| 中文自拍欧美影视| 亚洲综合色网| 夜夜操av亚洲一区二区| 欧美久久人妻少妇一区二区| 97操综合| 日韩免费看在线黄色片| 国产成人网| 大香蕉男女超碰精品在线| 丝袜 亚洲 偷拍| 欧中日成人免费影视| 亚洲淫乱骚妇AV| 玖玖爱一区在线| 激情文学亚洲| 亚洲综合第一页| 欧美国产精品| 欧美黄色片AAAAA| 91黑丝在线播放| 久久久久中出| 亚洲在钱| 国产精品人妻无码久久久互動交流 | 一区二区三区日韩欧美 | 亚洲视频中文一区| 超碰成人最新最好看| 亚欧韩av| 91日韩网站| 欧美天天综合| 色小视频蜜乳| 国产精品网站www| 日韩欧亚中文在线| 国产内射爽爽大片| 亚洲一级特黄大片在线播放91| 国产精品99久久久www| 激情丁香五月| 好色美女九七第一页| 国产白丝av| 亚洲一卡2卡3卡4卡乱码网站| 欧美黄片视频在线观看免费 | 久草资源欧美在线视频| 欧美 日韩第一性色| 97在线视频免费看| 岛国激情视频在线观看| 亚洲精品 大香蕉| 亚拍在线| 我要去看2个日本美女.com曹逼| 久久国产免费激情视频| 久都青青视频| 搡老女人老91二区| 91殴美大片| Aa东京男人的天堂| 豆花视频操逼网址| 国产av高清版| 亚洲九九九| 亚洲国产成人高清在线| 自拍亚洲综合| 岛国视频一二三区| 丝袜性亚洲| 久久久96| 欧美天天拍| 蜜臀网 一区| 欧美 日韩 亚洲 春色| 五月天婷婷综合网| 99re99在线视频| 影音先锋每日最新资源在线观看| 丰满人妻-区二区三区免费| 99re在线视频| 免费A V在线播放| 亚洲限制级在线| 97在线视频网站| 婷婷操逼| 欧美岛国精品在线观看| 日韩资源网| 少妇厨房愉情理伦片bd在线观看| 黄色小说亚洲| 久久国产在线一区二区| 内射中出日韩在线观看视频| 激情小说图片亚洲首页| 蜜伊人色综合97| 高清无码久操视频| 九九av| 乱伦系列一区二区| 超碰久超碰久| 成人五月香网在线| 中国大陆国产高清AⅤ毛片| 日日干夜夜操视频h| 加勒比综合网| 午夜天堂精品久久| 亚洲AV无码乱码在线观看性色| 国产后入式在线观看| 中文字幕免费看大片| 九色 蝌蚪 熟女自| 大香蕉丝袜一级片| 亚洲不卡三级手机播放| 亚洲永久AV无码精品秋霞| 人妻夜夜爽天天爽三区麻豆AV网站| 久久久久人妻| 久久人人爽爽人人爽人人片αV| 日本中文字幕一区| 性爱久久| 国产精品一区二区黄片| 色欲av一区二区三区蜜芽| 超碰天天操| 日韩三级天堂在线观看| 97超碰香蕉| 黑人中出21连凳花野真衣| 18禁精品网站在线看| 啊啊啊在线看| av操操不卡| 欧美专区日本专区| 亚洲牲交| 国产精品乱码久久久久久久| 一本一道人妻久久一区二区三区 | 超碰久久中文| 秋霞无码av鲁丝片一区| 国产剧情在线| 长久操视频| 开心激情婷婷| 岛国网址国产 | 天天操天天插| 亚洲无码国产精品久久| 午夜噜噜噜| 久久综合日韩亚洲欧美| av中文在线| 精品久久久久久中文字幕三区| 日韩综合第八区国产精品| 日韩三级网址| 九九色综合| 男女性感激情网站| 欧州一区二区三区四区| 快灬快灬 一下爽蜜桃在线观看| 麻豆精品久久久久久久| 婷婷性爱| 亚洲精品三| 精品无码一区二区三区| 久久久偷拍| 大肉棒导航| 国产在线不卡导航| 激情小说五月天| 被男人吃奶很爽的毛片| 99婷婷一区二区| 懂色av中文字幕一区二区三区天美 | 亚洲 中文 女同| 国产 v乱码一区二| 强奸乱伦动态污图免费| 在线播放免费av福利片| 极品销魂美女一区二区 | 日韩探花精品在线视频| 青娱乐国产精品| 91久久久亚洲| 免费a v| 97在线观看| 久久精品成人| 91在线一起| 青青草成人视频在线观看二区| 精品一区二区啪啪啪| 黑人黄片在线免费观看| 欧洲小说色图视频另类| 日本 成 人 小说 电影 一区二区| hd成人一区二区在线| 亚洲精品天堂久久A∨51成人漫| 亚洲男人综合| 国产一区二区免费福利片| 91九九| 97视频在线播放| 亚洲 日本 不卡| 久久精品国产97欧美精品亚洲 | 麻豆精品一区二区三区四区免费观看| 一级性爱视频免费观看 | 日韩精品9999| 中文熟女五十乱码在线| 精品一区二区三区18| 青青草这里只有精品| 91中出视频| 精品九区| 天天夜躁日日躁狠狠2002| 午夜福利国产欧美日韩夜夜| 巨爆乳一区二区爆乳区| 26uuu国产日韩综合在线观看| 亚洲,日韩,欧美,成人播放| 国产精品一区av在线| 欧美日韩日产免费网站看| 日本操逼视频导航| 丁香激情网| 蜜桃中文字日产乱幕4区| 久久这里精品国产99丫e6| 青青操少妇| 大乔未久88一区| 9久9久| 操国产高清| 亚洲天堂五月天国产| 天天做日日做| 六月丁香啪啪| 久久爽爽精品| 久久久久成人网| 在线午夜成人无码视频| 日本www操操操| 97色婷| 欧美日日夜夜| 噜噜噜亚洲精| 久久久亚洲高清不打码| 亚洲欧洲偷拍一区| 福利天堂| 蜜臀久久99精品久久久久| 精品国产91av一区二区三区| 色墦五月丁香| 东京热精品97综合网| 91无码精品| 强被迫伦姧在线观看无码网站| 久久av一级av少妇av高潮| www久| 亚洲综合小视频小说在线观看| 国产精品69久久久久久久| 精品无码久久久久久久久果冻糖心| 性爱视频啪啪啪啪| 大香樵伊人网| 精品9999| 人妻少妇被猛烈进入中| 国产欧美日韩女同性恋ww喷水精品 | 天天操天天7| 欧美少妇人妻| 国产精品色色| 大香蕉日韩| 亚洲国产精品成人无码久久久| 日产狠狠干| 91亚洲网| 欧美性爱十八禁| 超碰综合色| 97欧美超碰| 黄片www.| 欧美色道啊| 日韩99精品视频综合区| 欧美亚洲厕所精品偷拍91| 伊人国产成人av网站| 久久性爱城| 91青青在线视频| 精品国产一区二区三区在线播出| 丁香婷婷激情五月天无毒不卡 | 91精品人妻一区二区三区蜜桃臀| 久久91| 超踫中文字幕| 2019天天干| 天天日天天插| 综合网欧美| 久热免费视频| 欧美日韩97| 天天干天天爽| 97视频免费| 九九热免费视频| 欧美操逼录像国产黄色国产| 久久久中文| 97中文字幕一区| 天天躁日日躁AAA片李宗瑞| 超碰97久久观看| 亚洲天天操| 精品妇女一区二区三区| 欧洲在线性爱视频| 九九拍拍精品视频在线播放| 亚洲中文一区二区三区| 亚洲日本天堂| 国产无马av| 久操免费电影| 欧美淫穴| 麻豆成人影音在线| 日韩精品9999| 另类 日韩 熟女| 激情文学亚洲| 91亚洲人电影| se吧提供91精品国产91久久久久久 | 蜜汁欧美| 天天看天天综合成人网| 亚洲日本激情| 后入式999| 97人人草| 国产无码三级视频在线观看| 91丝袜美腿片| 亚洲天天更新| 中文字幕一区av| 1禁看欧美黄片免费看| 久思思热视频在线观看| 亚洲小电影免费涩涩成人在线高清| 成人毛片免费| 一级特黄aaa大片在线观看成人一级片在线观看| 亚洲 欧美 第一页| 亚洲一区日韩精品中文字幕| 国产多人在线观看视频| 操逼逼中文字幕| 五月天大香蕉| 四虎永久在线精品免费网址 | 333kkkk·亚洲com久久| 久草大| 久久大香蕉手机高清| 伊人青青草久久| 欧亚韩国999| 亚洲伊人成综合成人网| 丝袜熟女一区二区三区| 伊人97色天使| 欧美日韩小说| 久久9999 | 永久免费发布性爱网| 亚洲av成人精品一区| 操逼网站网站| 999精品国产高清一区二区| 青青草九九九九九| 亚洲国产熟妇综合色专区| 五月天婷婷基地| 亚洲色图欧美色图另类图片| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 天天色香欲综合网| 九九九九一区| 1769精品一区二区三区| 欧美性爱十八禁| 亚洲aV无码成人在线观看| 天堂av最新电影网| av72网| 91无码人妻精品一区二区三区蜜桃 | 殴洲老熟女| 天操老女人| 熟女熟妇一区二区三四区| 91欧美长吊| 激情婷婷丁香| 九九亚洲色在线观看| 东北黄色电影| 久久这里只有精品9| 国产麻豆一区二三区| 久久在线观看免费视频| 亚洲性爱高潮影院| 男啪女色黄无遮挡免费观看| 狠狠操夜夜操蜜桃视频三区| 精品免费囯产一区二区三区| 丁香五月激情婷婷| 亚洲图片视频小说| 夜夜操2028| 欧美色www亚洲国产阿娇要播| 一区久久久二区| 亚洲好看强奸乱伦| 亚洲蜜臀精品视频久久| 伊色综合天堂色97| 变态乱伦伪娘灌肠一区二区| 职场同事知名国产国产精品久久欧美日韩| 天天搞在线综合网| 国产熟女无套内射| 美欧老女人97| 99精品在线| 免费久久一级毛片大黄| 骚妻少妇精品性色无码四色A V| 亚洲操操| 国产精品嫩草影院免费| 青草成人免费视频一COm| 91真人天天在线| 久久久久9999| 琪琪精品免费一区二区三区| 啪啪啪综合| 日本一天色道久久久精品视频| 日本午夜福利影院| 国产精品久久天天干| 人妻熟女一区二区三区视频| 久久精品一区| 日韩女优在线| 久久久网站| 久久天堂| 福利在线观看一区二区| 人妻天堂三区| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 校园春色宗合网| 色九九九九九九| 男人天堂2017| 99精品视频在线观看| 五月丁香色综合| PMv在线观看| 97视频在线观看免费高清| 欧美系列在线一区二区| av日韩在线观看电影| 手机不卡视频不卡在线一二三区| 日韩亚洲欧美中文字幕| 五月天成人综合| 色逼综合| 久久久啊啊啊| 熟女AV一区| 久久精品免费| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 乱子伦一区二区三区国产精品| 亚洲欧美不卡线| 日本天堂在线播放| 久九干| 亚洲精品丝袜-不卡成人免费…… 久久久久成人蜜桃精品 | 福利操逼| 伊人国产AV| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 婷婷精品国产欧美精品亚洲人人爽| 大香蕉伊人在线成人AV在线观看 | 97 九色| 亚洲熟妇综合久久久久久| 成人精品久久| 亚洲中文字幕熟女| 中文字幕亚洲热播人妻| 精品国产精品一区二区| 久久黄色网址| a片亚洲一本通视频| 97伊人超碰| 在线有码中文字幕| 18禁超污无遮挡无码免费网| 天堂av2019| 校园春色家庭伦理欧美激情| 欧美在线91| 91五月天| 日日妻色网| 天天干天天舔| 五月天激情小说网| 中文字幕精品专区搜索结果91| 水多多映视AV| 欧美性生活综合| 东方亚洲在线操逼天堂| 少妇被c 黄 免费观看| 男人的天堂一区三区| 婷婷精品国产一区二区三区日韩| AV色女综合| 大香蕉免费乱伦视频| 欧美72网页| 亚洲欧洲成人在线电影| 夜色五月天| 丝袜美腿操av| 99无码精品| 人妻少妇无码| 日韩簧片免费看| 欧美偷| 久久久久久9| 张柏芝国产一区在线观看| 思思久热在线精品66| 91人妻尻屄视频| 欧美成人性活片| 久久久成人精品| 亚洲最大的黄色电影网站。| 啊啊啊好爽快点啊啊啊嗯嗯| 精品久久久久,69国产成人精| 图片区小说区| 国产av美女被艹的乱叫| 老色鬼成人精品视频下载大在线观看| 欧美探花网| 60秒免费小视频| 国产多人在线观看视频| 黄片免费视频2019| 啊啊啊啊嗯嗯嗯用力好爽 | 日日97| 五月婷婷综合网| 97自拍视频在线| AV 少妇 人妻 偷拍| 91爱综合| 一区三区啪啪| 成人片视频| 香蕉久久国产AV一区二区| 97欧美视频| 夜精品久无码| 人人操av| 日韩欧美中文| 秋霞午夜成人福利片片| 啊嗯嗯啊好大好爽| 在线观看AV不卡| 少妇xx精品| 香伊人在线| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 美女黄频a美女大全免费皮| 蜜臀久久99精品久久久久久酒店 | 亚洲国产97| 久久久久久裸体| 精久久久91| 国产日韩精品一区二区三区| 999岛国大片| 加勒比久久综合网高清| 天天激情综合站| 色臀av| 欧美色图综合网| 1204人成网站色www| 欧美日韩另类字幕中文| 亚洲免费97免费| 欧美 亚洲 大香| 亚洲一二三精品久久网 | 一牛影视久久久一区二区三区| 中文字幕在线日亚洲9| 嗯啊视频免费在线观看| 日韩亚洲中文有码视频| AA级电影三区| av在线播放国产一区| 久久日韩精品一区二区| 国产精品爆乳懂色蜜乳| 强奸乱伦免费网站| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 中日韩久久人妻一区二区| 日本熟妇浓毛hdsex| 青青草字幕AV| 亚洲色吧网| 夜草欧美| 极品色| 在线观看综合精品亚洲| 67914在线精品观看| 日韩av色图综合| 欧美翘臀视频网站一区二区三区 | 国产三级片在线观看| 天天爱天天韩国日本牛牛牛牛| 久久久久久电影| 超碰在线一区二区| 精品夜夜澡人妻无码AV| 五月天亚洲网| 久久综合久色欧美综合狠狠| 超碰天天久久79| 九九久久久久久爱| 蜜臀精品1区2区| 久久熟女人| 91精品国产综合久久久蜜臀| 91大学精品激情戏| 久久五月份| 五月婷婷激情综合| 91亚洲人电影| 蜜桃精品一区二区三区ww| 男人的天堂亚洲| 3571色综合一区二区二区| 大香蕉AV在线| 野狼激情网| 很很干很很操| 亚洲最大91网| 吉田爱美AV在线| 久久av网| 狠狠爱AV| 色九九久九九| 欧美91变态| 欧美激情久操网| 亚洲熟女乱色一区二区三区| 精品人妻一区二区视频| 久久99午夜精品一区人妻| av天堂手机版追回| 天天做天天爱天天高潮| 2017人人操,人人摸| 精品免费一区二区三区在线亚洲人成| aaaa少妇高潮大片| 亚洲色人阁| 亚洲综合在线第一页| 夜夜躁狠狠躁日日躁av| 秋霞 色色| 新久久AV| 五月婷婷色色| 香蕉一区二区三区在线视频| 殴洲老熟女| 懂色av中文字幕| 伊人网高清| 精品亚洲一区在线观看| 天天做日日做天天欢。| 久久人妻视频网| 国产少妇与亚洲av| 另类 综合 日韩 欧美 亚洲| 国产AB视频| 国产精品久久| 在线v中文字幕一区二区三区| 99热精品在线| www.男人天堂| 98久久| 亚欧视频在线| 无码人妻一区二区一牛影视| 色拍偷亚洲| 97aiaiai| av资源在线播放天堂| 夜夜操老骚逼视频网站| 97在线视频观看免费| 日本淫乱女一区二区三区视频| 无码国产Av| 亚洲色图91欧美日韩| 欧美熟女丝袜| 日韩欧美性吧婷婷乱伦大香蕉| 草草网站影院白丝内射| 日韩偷拍色图| 爱丝福利| 亚洲图片日本AⅤ欧美在线| 激情久久久| 久久久久密臀一区二区| 国产60页| 操一区| 亚州欧美综合| 国产精品 久久久精品一牛| 色久综合| 中出91视频| 亚洲蜜乳av| 蜜桃中文字日产乱幕4区| 大逼色网站| 色黄污美女啪啪啪免费网站| 九色97| 91欧美网| 婷婷五月天成人网| 91操熟妇| 免费综合亚洲中文| 婷婷精品国产欧美精品亚洲人人爽| 国产在线观看91精品一区| 久久本道| 精品国产乱码久久| 大香樵伊人网| 色噜噜狠狠色综无码久久合欧美| 色婷婷电影网| 蜜臀99久| 爱射综合| 国产真实子伦对白| 国产精品久久发布| 欧洲性爱无码区| 五月婷婷综合在线| 亚洲自拍97| 色精品极品| AAAA级日本片免费视频| 黄色二级片网站| 女人与公拘交酡2020视频| 人妻密肉在线观看| 成人自拍三级在线观看| 人妻熟女一区二区三区在线| 九九热久久99精品re| 色制服丝袜夫妻av一区| 强奸乱伦av电影| 欧洲一区二区三区四区在线观看| 久草视频分类在线| 无码人妻一区二区三区四区老鸭窝| 在线另类| 国产福利精品98视频| 玖玖爱综合| 国产日韩精品人妻久久久久色欲网站| 91欧美综合在线| 亚洲欧美日韩夜夜| 在线不欧美| 久久久18禁| a v网站在线播放| 日韩电影免费网站麻豆视频| 五月天色综合| 久久 国产 无码| 中文字幕一区二区三区蜜桃视频| 色色五月天激情| 欧美牲| 国产女人9999| 亚洲宅男天堂| 99re热有精品视频国产| 久9爱精品| 亚欧美天堂在线| 国内毛片国产专区二| 男人的天堂va在线| 亚洲欧美setu| 99爱在线视频| 亚洲国产奇米影视久久| 東南亚性呦成人伦理资源在线视频| 花野真衣| 久久‘黄片视频| 97精品| 午夜精品久久久久久久99| 992这里有精品| 青草草免费网站av| 亚州综| 超碰97在线中文| 久久久爆乳翘臀一线天伦理视频| 国产对白刺激视频| 天堂性色| 97国产综合欧美| 啊嗯好大视频在线观看| 亚洲国产欧美中文永久| 亚洲无码超碰免费| 97在线免费看视频| 久久爱超碰网| 国产九九久久久精品| 欧美黄片视频在线观看免费| 欧美性生活男人的天堂| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 久草在| 无码一区二区三区四区五区六区七区八区九区十区视频 | 色臀AV| 激情久久日韩精品中文字幕麻豆| 四季AV综合网址| 99热色精品| 日本色色色视频| 亚洲精品免费中文字幕| 亚洲图片激情小说| 亚洲高清综合网| 91激情国产| 91欧美综合在线| 中文97国产| 嗯阿好爽好紧| 91亚洲黑人| www.婷婷| 99热国产| 超碰99在线观看| 性爱av在线免费观看| 国产精品一区二区三区,亚洲综合| 91久久免费视频互動交流| 91春色| 亚洲欧洲激情卡通另类文学四射小说网站 | 日日干夜夜欢| 蜜桃一区二区三区| 欧美激情色婷婷花野真衣一区二区 | 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 隔壁邻居波多野结衣中文字幕| 国语对白露脸XXXXXX| 水多多映视AV| 午夜啪| 国产黄色视频久久| 免费少妇一区二区| ,成人免费啪啪视频| 98人妻精品一区二区色欲| 中文字幕av亚洲精品| 欧美精品三级黄片| 夜夜草天天| 素人一区二区三区日韩| 性爱Av免费| 日韩无码黄色片| av天堂手机版追回| 久久香蕉网| 97资源超碰| 中文字幕在线观看第二页| 嗯嗯啊啊用力视频免费| 欧美性爱一区二区三区四区| 无码久| 精品无人区麻豆乱码1区2区图片| 骚货操死你| 97综合| 国产第12页| 日韩一区二区高清在线观看的| 国产精品视频白浆免费| 99热久| 色婷婷蜜臀av| 97av,com| 国产一区在线看| 欧美成人A√在线一区二区| 激情网色| 美女刺激久久国产欧美| 日韩精品9999| 亚洲天堂一二| 99久久无码| 久久无码电影| 久都青青视频| 美女黄码视频午夜| 亚洲激情综合另类| 做爱A级亚欧| 日日爽夜夜爽| 诱惑人妻欧美一区在线播放| 91成人亚洲色图| 黑人免费福利视频| 91强热人妻| 操人妻少妇中文| 中文字幕文字幕无码一区二区三区电影99| 少妇九九九九| 91伊人久| 黑丝内射一区二区三区| 超碰久久网| 97在线免费观看| 在线强奷到舒服的无码视频| 1956日韩精品| 亚洲狠狠入| 免费黄色片。| 小草精彩毛片| 欧美精品系列| 欧美综合娱乐久久| 又大又黄国产| 国内一级精品| 久久一级无码精品毛片6| 97视频在线免费看| 天天天干977| 高跟丝袜AV专区国产| 密臀在线免费观看| 亚洲日韩美女丝袜美腿人妻视频| av网页一区二区三区| 综精品久久久aaaa| 久久啊啊| 国内三级自拍小视频在线观看| 伊人国产视频| 亚洲伊人成综合成人网| 丁香久久| 欧亚三区动漫| 男人的天堂一区三区| 欧天美中出| 亚洲国产一级黄色视频| 91在线页| 九九九九精品精| 99久久99九九99九九九| 欧美日韩人妻少妇 一区二区三区| 91网九色蝌蚪操熟女| 欧美熟女少妇| 天堂性色| 亚洲高潮少妇| 天天综合青苹果| 91精品久久久久久77777| 亚洲诱惑天堂 | 欧美日韩亚洲天堂网| 日本影视久久免费| 午夜男人天堂| 亚洲色图一区二区三区| 亚洲宅男天堂| 亚洲丝袜综合| 国色天香av| 欧美91精品国产自产| 校园春色 男人天堂| 天天操天天舔| 天天看少妇| 立川理惠被中出无码| 97精品国产97久久久久久户外免费| 伊人超碰97| 资源在线观一 二| 亚洲在线| 久久一二三四不卡| 欧美日本中字另类在线| 欧洲精品区| 无码日韩网站| 麻豆 美女 丝袜 人妻 中文| 丁香六月天| 黄片www视频免费| 色九月综合| 国产绿奴视频在线观看| 大香蕉在线SuP| 色综合九九| 97色碰| 亚洲熟女乱熟乱熟妇综合网二区| 北约熟女超碰| AV在线播放网址| www.夜夜操| 校园春色综合网| 一区二区 电影 亚洲| 久久av成人无码免费| 啊啊啊啊嗯嗯在线久久久| 色九九九九久| 综合激情二| 免费99精品国产自在在线| 97在线精品| 国产精品人妻免费精品| 欧美91精彩| 五月婷婷丁香| 精品人妻一区二区三区四区石在线| 欧美在线大香蕉| 国产一区二区三区影片| 伊人加勒比| 亚洲欧洲第二视频在线观看色图| 3p国产欧美99热| 白丝AV| 中文字幕第95页| 婷婷色一区| 99性爱在线观看| 天久久久噜噜噜久久国产精品爽爽 | 精品99999久久久久久| 中国国产精品一区视频| 青青在线视频免费| 国产亚洲色婷婷99精品91| 精品久久久亚洲AV成人网站| 日韩 国产 欧美自拍| 伊人久日| 岛国人妻少妇av在线观看| 欧洲熟妇xxXx欧美老妇裸体| 四虎午夜影院| 欧洲精品二区| 69久久久久久久久久久久久| 婷婷五月在线视频| 无码高清专| 级做a爱无码性色永久免费| 人妻激情视频| 成熟熟女国产精品一区二区| 欧美综合站| 爽 好舒服 无码刺激久久| 国产精品白丝在线播放| 超碰97男女| 蜜臀无码一区二区| 免费网站观看www在线观| 99精品在线播放| 91人妻尻屄视频| 日韩中文字幕国产| 探花精品 一区二区| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 日韩欧美中文字| 91色五月俺来也| 一区二区你上我| 国产日本久久免费精品| 伊人久久在线视频观看| 91人妻人人澡人人爽人人精品| 久久久久国色αv免费观看| 色香欲天天天天综合色| 天天影视射综合网| 嫩草 人人网精品| 蜜桃久久综合视频| 91狠狠综合久久久久久| 在线看免费无码AV天堂的| 淫荡少妇免费| 日本成人A片免费看| 操逼无码操逼| 亚洲高清视频在线免费观看| 亚洲精品人体| 色综合91好| 啊啊啊啊啊啊在线| 久久久久白虎| 日本二三四区| 美女诱惑久久| 校园春色 欧美| 91n欧美| 国产精品操| 久久久久久久97| 久久久久久性爱免费视频| 国产视频第二页| 99999re| 久操97| 富女玩鸭子一级毛片| 国产1024在线播放| 被窝影院午夜看片无码| 蜜乳成人AV| 久久久久久电影| 国产免费操逼| 人人天天干干| 精品久久99| 国产熟女少妇一区| 99re不伦| 亚洲欧洲色情高清| 国产精品一级二级在线| 色噜噜狠狠色综无码久久| 中文字幕一二三av| 好吊色综合| 成人午夜高潮av猛片| 十八禁av无码免费网站APP| 最新三级网址| 日韩九区| 玖玖97综合| 日han少妇无码| 日本高清加勒比| 精品久操| 无码人妻1727| 成人AV超碰免费在线| 懂色天天爱天天日天天射天天澡| 欧美性爱视频免费一区一A| 一级A啪啪啪啪| 蜜臀久久久久久999| 精品美女在线视频| WWW美腿丝袜香蕉中文| 一区二区视频在看| 色欧洲| 免费人成毛片乱码| 亚洲av国产av综合av卡| 国产真实野战在线视频| 丝袜美腿诱惑亚洲欧美视频在线观看 | 美女AV一区二区| 日本久久久久久久久久| 97国产人人| 亚洲欧洲综合成人av一区| 免费的黄片wwwwww| 青青青国产| 国产中文日韩欧美一区二区三区人妻丝袜美腿| 蜜臀va69| 激情五月综合开心五月| 日本理论在线| 国产美女91视频| 欧美在线|亚洲| 久久AV无码AV| 手机看av网站在线看| 少妇毛片久久| 国产精品农村妇女精品| 精品国产三级av韩国在线| 日韩免费看黄片| 亚洲综合影视| 台湾佬大香蕉| 色官网色综合| 九九天堂| 超碰色大香蕉| 免费在线黄片视频| 夜夜嗨AV蜜臀av| 四虎精品永久在线观看| 国产日韩欧美操逼视频| 91黑丝露脚| 中文字幕免费看| 91性高朝久久久久久久久| 桃花色涩综合影院| yy少妇精品久久| 国产综合色精品在线观看| 韩国一级婬片A片AAAAA| 日韩少妇无吗| 欧美操人视频| 东北女人av| 亚洲 欧美 第一页| 国产麻豆一级精品视频| 久久久久网站-538在线视频-欧美永久乱码| 青青草福利视频| 性一交一乱一交A片久久四色| 91久久国外网| 亚洲精品人妻在线| 69精品人人人人| 九九综合九九综合| 超碰日本97美女人妻人人玩人人爱| 中出91视频| 国产情侣自拍在线播放| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 男人天堂欧美| 在线 制服丝袜中出 人妻| 亚洲人妻久久久| 玖玖资源综合在线视频| 色哟哟1区2区| 久草免费福利在线播放| 国产成人天堂| 欧美αv.com| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 97天天| 精品久久視頻在线| 日韩97P| 欧美熟爽综合| 亚洲av性爱电影| 伊人色综合超碰| 男女做爰猛烈动高潮A片免费应用| 国产精品久久9| 国产高清亚洲日韩一区| 丝袜狠狠草尤物人妻av91| 97超碰人人操人人操| 色五月69夫妻| 日本十八禁免费看污网站| 性性久久| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 无码高清国产AV| 久久久久久久久久精| 亚洲精品啪视频| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 爱丝福利| 狠狠色婷婷777| 狠狠爱夜夜| 亚洲国产精品久久久久婷婷青年| 大香蕉黄色一区| 综合性视频99| 色婷视频| 亚洲男人天堂av| 超碰99热中文字幕| 日本www操操操| 天天综合网在线91| 欧美第38页| 国产强上视频在线观看| 青青操在线视频| 亚洲国产综合久久久性感熟妇| 97超碰磁| 9ⅰ久久久天天| 亚洲天堂电影精品一区| 在线人成亚洲视频免费观看| 精国久久一区二区三区98| 五月婷婷AV| 摸奶性爱视频网站在线免费播放| 国产视频大全| 丁香六月婷| 黄色电影在线播放综合网站| 日本97久久| 97干在线看| 国产午夜无码片在线观看影视 | 日韩性爱高清免费视频| 激情五月天中文字幕色| 欧美猛交黑寡妇中文字幕| 日本 欧美 国产一区| 免费观看国产不卡av| 久久久国产成人一区二区三区在线 | 久湿久久 | 国产多人在线观看视频| 久久久999国产精品| 国产农村妇女精品一| 婬女免费一二三区A片| 国产午夜福利专区综合| 中文字幕一二三av| 欧美国产视频| 久久久激情| 搡老女人老妇女AAA一VU麻豆| 少妇天堂| 亚洲综合校园春色| 刺激性视频黄页| 日本久久天堂| 无套内射人妻在线播放| 欧美亚洲小说| 免费精品AB| 60秒免费小视频| 1024亚洲中文字幕久在线看片你懂的 | 英伦大奶子熟妇吊带| 国产精品国产拍高清AV| 天天插夜夜操| 亚洲色图欧美一区二区不卡| 夜夜嗨一区二区三区三州加勒比| 91伊人影视综合| 欧美激情综合色综合啪啪五月| 浪人综合网| 小日子操bb在线看| 国产成人91一区二区三区| AV女资源| 人妻大香蕉| 天天摸天天舔天天操| 国产传媒一区日韩| 五月天黄色av| 亚洲nv男人的天堂网| 国产精品视频精品一二| 国产专区第一页| 亚洲成aⅴ人片不卡无码| 天天干人人看综合| 日韩精品-原创伙伴| 精品人妻15区| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 免费久久一级毛片大黄| 久久专区| 中文字幕三四五区| 96超碰网| 色吊丝 日日骚 清纯唯美| 亚州精品人妻一二三区| 任你干在线视频| 午夜后入| 乱子伦一区二区三区国产精品| 日韩在线97| 丝袜视频一区二区在线播放国产中文| 久久9 9 9精品| 蜜桃中文字日产乱幕4区| 美女露胸露奶头| 怡红院怡春院| yazhousetuoumei| 精品国产一区二区三区久久久蜜臀 | 97超级欧美| 天天内射| 欧美高潮| 噜噜噜噜天天狠狠| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 欧美超碰97| 久久久久久网址| 人妻二区| 26uuu性物| 国产九九九九九九九九| av资源在线播放天堂| 色色99| 亚洲情色五月天|