日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

RK3588邊緣AI視覺:基于DMA-BUF的零拷貝跨進程通信實戰(zhàn)

RK3588邊緣AI視覺:基于DMA-BUF的零拷貝跨進程通信實戰(zhàn) 在RK3588上做邊緣AI視覺真正讓人頭疼的往往不是模型跑多快而是數(shù)據從攝像頭到NPU、再到硬編碼和RTSP推流這一路上究竟被memcpy搬了多少次。很多教程只教你怎么在板子上把YOLOv8的demo跑起來可真正做產品時采集、推理、編碼往往是三個進程幀數(shù)據如果隔著socket和共享內存來回拷貝4K分辨率下光是搬數(shù)據就能吃掉好幾個毫秒CPU占用也壓不下去。這篇文章想和你聊聊在RK3588架構下怎么做零拷貝跨進程通信把視頻幀的整個生命周期都留在DMA-BUF里讓多個進程和NPU、VPU、RGA這些硬件模塊直接引用同一塊物理內存而不是你搬給我、我搬給他。這套方法也是邊緣AI視覺工程化繞不開的一環(huán)。不管你是準備把采集、AI推理、硬編碼拆成獨立進程還是想優(yōu)化現(xiàn)有項目的幀率瓶頸下面這套基于DMA-BUF加SCM_RIGHTS的方案都能直接參考。我盡量把原理、代碼、踩坑細節(jié)都寫透。1. 為什么需要零拷貝跨進程通信先算清楚拷貝這筆賬1.1 邊緣AI視覺典型的數(shù)據流和它真正的開銷在哪先還原一個典型場景。一塊RK3588板卡上做實時視頻監(jiān)控或邊緣計算盒子通常會有這么幾個角色采集進程負責從MIPI CSI或USB攝像頭拿圖像走Rockchip的rockit或V4L2框架AI進程負責跑NPU推理常見的是YOLOv8或者各種檢測分類模型編碼進程負責把處理后的畫面交給MPP硬編碼成H.264/H.265再走RTSP推給客戶端另外可能還有一個業(yè)務進程負責疊加OSD、保存錄像之類。如果按照最樸素的做法采集進程拿到一幀圖像后先把數(shù)據從內核buffer拷到用戶態(tài)內存然后通過socket發(fā)給AI進程AI進程再拷到自己內存跑完模型后再拷一次發(fā)給編碼進程編碼進程為了把數(shù)據交給硬件編碼器可能還要再拷一次。這條路走下來一幀4K NV12圖像數(shù)據量大約12MB拷三到四次什么概念RK3588的A76大核跑memcpy理想情況能到4到6GB/s左右但實際受DDR頻率、cache狀態(tài)、內存是否對齊影響往往打折扣。一幀4K大約12MB單次memcpy耗時大概2到4毫秒。算上socket收發(fā)過程中內核緩沖區(qū)的那幾次搬運一幀畫面光是數(shù)據搬運就吃掉6到15毫秒。如果跑30fps幀預算33毫秒拷貝占了三分之一甚至接近一半這還沒算模型推理和編碼的時間。多路視頻時這個開銷還會成倍往上翻。1.2 多進程還是多線程怎么選更合理有人會問既然進程間傳數(shù)據這么麻煩為什么不把所有邏輯塞進一個進程用多線程加指針直接共享內存天然零拷貝這個問題的標準答案是看你做的是demo還是產品。demo當然可以全塞一個進程但真實產品里采集、AI、編碼往往來自不同的SDKRockchip的RKMPP、rockit和RKNN runtime對資源的管理方式不同錯誤處理和崩潰影響范圍也不一樣。多線程單一進程的好處是共享數(shù)據簡單壞處是一個模塊崩了整條流水線跟著崩權限也難隔離。采集進程可能需要訪問攝像頭設備節(jié)點AI進程其實沒必要拿那么高的權限拆開之后可以單獨降權、單獨重啟這對邊緣盒子的穩(wěn)定性和可維護性是很重要的。所以很多RK3588上的商業(yè)方案都會選擇多進程架構把攝像頭上層、AI業(yè)務、編碼推流分開部署。既然選了多進程跨進程傳輸大塊圖像數(shù)據就是一個必須解決的問題而且必須高效。1.3 “共享內存”不等于“零拷貝”別被概念騙了不少人在這一步會陷入一個誤區(qū)用POSIX共享內存shm_open加mmap兩個進程不就能直接讀寫同一塊內存了嗎這算不算零拷貝算也不完全算。shm_open拿到的是一塊普通匿名內存CPU可以直接訪問沒錯但NPU、VPU、RGA這些硬件模塊訪問內存需要內核驅動拿到這塊內存的物理地址信息把它映射進IOMMU或做DMA映射。普通共享內存沒有這個機制硬件不認。所以即便你用shm共享了一塊內存最后為了讓硬編碼器能讀這幀數(shù)據還是得把數(shù)據從shm內存拷貝到MPP分配的硬件可訪問buffer里白白多一次搬運。真正的方案是讓整條數(shù)據鏈路都建立在DMA-BUF之上。DMA-BUF導出的fd同時具備兩個能力用戶態(tài)可以mmap訪問硬件驅動也能通過它拿到物理內存的訪問權。RGA、VPU、NPU、ISP這些驅動全都認這個fd。這才是“零拷貝”跨進程通信的地基。2. 兩塊基石DMA-BUF 和 SCM_RIGHTS2.1 DMA-BUF 到底是什么為什么硬件都認它DMA-BUF是Linux內核里一個標準的buffer共享機制??梢赃@樣理解一個DMA-BUF對象代表一塊“能被硬件訪問的物理內存”。它由某個exporter設備創(chuàng)建然后通過fd的形式把這塊內存的訪問權分享給其他設備或進程。每個拿到fd的進程都能通過mmap把同一塊物理內存映射到自己的虛擬地址空間每個硬件驅動也能從fd那里拿到內核態(tài)的sg_table完成DMA映射。打個比方DMA-BUF fd就像一張圖書館的借書卡。大家拿著同一張卡借同一本書而不是每次有人要看就去復印一份再遞過去。書只有一本放在圖書館固定的書架上誰借誰來看。在RK3588平臺上最常用的分配接口是DMA-BUF heaps。內核啟動后一般能看到這樣的節(jié)點ls /dev/dma_heap/常見的有system、system-uncached、linux,cma等。不同開發(fā)板、不同內核版本節(jié)點名會有差異有些老SDK還是用的/dev/ion。如果你想確認當前平臺支持哪些堆直接看這個目錄最靠譜。正點原子、香橙派這類開發(fā)板廠商的內核配置不太一樣節(jié)點名和權限都要以實際為準。2.2 RK3588上常見buffer來源攝像頭、MPP、自分配具體到一條邊緣AI視覺鏈路DMA-BUF fd通常有三個來源。第一個來源是攝像頭采集。Rockchip的rockit框架或者V4L2配合rkcif/rkisp驅動導出的采集buffer本身就是DMA-BUF fd。比如你通過V4L2申請一組用于采集的bufferVIDIOC_REQBUFS之后用VIDIOC_QUERYBUF拿到的fd就是可以傳給下游的DMA-BUF fd。第二個來源是MPP的編解碼buffer。用MPP做硬編碼或硬解時通過mpp_buffer_get拿到的buffer本質上也是基于DMA-BUF分配的可以通過mpp_buffer_get_fd把fd取出來傳給其他進程。第三個來源是自分配。你想要一塊不屬于任何采集或編碼器、純粹用于進程間共享的buffer時可以直接懟dma-heap#include fcntl.h #include sys/ioctl.h #include sys/mman.h #include unistd.h #include linux/dma-heap.h int heap_fd open(/dev/dma_heap/system-uncached, O_RDWR); if (heap_fd 0) { perror(open dma_heap); return -1; } struct dma_heap_allocation_data data {0}; data.len size; // 建議按4096向上對齊 data.fd_flags O_CLOEXEC | O_RDWR; if (ioctl(heap_fd, DMA_HEAP_IOCTL_ALLOC, data) 0) { perror(DMA_HEAP_IOCTL_ALLOC); close(heap_fd); return -1; } close(heap_fd); int buffer_fd data.fd; void *ptr mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, buffer_fd, 0);這里有個點要提醒如果這塊內存主要是給硬件設備讀、CPU不經常碰優(yōu)先選uncached的堆如果進程本身要用CPU頻繁讀寫又希望硬件訪問時一致那就需要處理cache同步后面會單獨講。2.3 SCM_RIGHTS把fd“快遞”給另一個進程有了DMA-BUF fd下一個問題很直接fd只是一個整數(shù)這個整數(shù)在進程A里指向某塊buffer進程B里隨便傳一個數(shù)字過去內核可不會認為它有效因為每個進程的文件描述符表是獨立的。所以需要一種內核幫你“打開文件引用”的機制這就是Unix domain socket上的SCM_RIGHTS輔助消息。本質上是讓內核從發(fā)送進程的fd表里取出對應的struct file復制一份引用安裝到接收進程的fd表里然后返回一個新的fd整數(shù)給接收進程。發(fā)送方和接收方各自持有的fd指向同一個內核對象DMA-BUF引用計數(shù)會相應增加生命周期由雙方共同維護。發(fā)送端的核心代碼#include sys/socket.h #include sys/types.h void send_fd(int sockfd, int fd_to_send) { struct msghdr msg {0}; char buf[1] {F}; struct iovec io { .iov_base buf, .iov_len sizeof(buf), }; char cmsg_buf[CMSG_SPACE(sizeof(int))]; msg.msg_iov io; msg.msg_iovlen 1; msg.msg_control cmsg_buf; msg.msg_controllen sizeof(cmsg_buf); struct cmsghdr *cmsg CMSG_FIRSTHDR(msg); cmsg-cmsg_level SOL_SOCKET; cmsg-cmsg_type SCM_RIGHTS; cmsg-cmsg_len CMSG_LEN(sizeof(int)); memcpy(CMSG_DATA(cmsg), fd_to_send, sizeof(int)); if (sendmsg(sockfd, msg, 0) 0) { perror(sendmsg); } }接收端的核心代碼int recv_fd(int sockfd) { struct msghdr msg {0}; char buf[1]; struct iovec io { .iov_base buf, .iov_len sizeof(buf), }; char cmsg_buf[CMSG_SPACE(sizeof(int))]; msg.msg_iov io; msg.msg_iovlen 1; msg.msg_control cmsg_buf; msg.msg_controllen sizeof(cmsg_buf); if (recvmsg(sockfd, msg, 0) 0) { perror(recvmsg); return -1; } struct cmsghdr *cmsg CMSG_FIRSTHDR(msg); if (!cmsg || cmsg-cmsg_type ! SCM_RIGHTS) { return -1; } int received_fd; memcpy(received_fd, CMSG_DATA(cmsg), sizeof(int)); return received_fd; }注意SCM_RIGHTS要求socket必須是Unix domain socket也就是AF_UNIX本地回環(huán)TCP可不行。還有一點輔助數(shù)據必須伴隨著至少一個字節(jié)的普通數(shù)據一起發(fā)送也就是說msg_iov里不能真的為空。3. 動手實現(xiàn)一套可復用的零拷貝幀傳輸模塊3.1 總體設計預分配緩沖區(qū)池控制通道到了實際操作層面我并不建議誰需要哪個buffer就現(xiàn)場分配一個那會帶來兩個問題一是運行期頻繁分配和釋放DMA-BUF容易產生碎片二是在多進程、多路視頻并發(fā)時內存使用不可控。更穩(wěn)妥的做法是預分配一個緩沖區(qū)池。啟動階段一次性分配N塊固定大小的DMA-BUF整條生命周期內都別釋放等系統(tǒng)退出時統(tǒng)一清理。進程間傳輸?shù)钠鋵嵅皇恰皵?shù)據”而是一個“token”這個token里有buffer索引、frame_id、寬高、時間戳這些元信息再加上對應的DMA-BUF fd。緩沖區(qū)池的狀態(tài)管理可以設計成這樣的結構#define MAX_FRAME_BUFFERS 8 struct frame_buffer_desc { int fd; // 生產者持有的fd size_t size; // 緩沖區(qū)大小 uint64_t frame_id; // 幀序號 uint32_t width; uint32_t height; uint32_t stride; uint32_t format; int state; // 0空閑 1已填充待消費 2消費中 3可回收 uint64_t timestamp; };這個狀態(tài)數(shù)組可以放在一塊單獨的共享內存頁里進程之間通過原子變量或者簡單的一個自旋鎖來修改。實際項目中我用過兩種狀態(tài)同步方式。一種是“生產者不等消費者”的丟幀策略。生產者每幀都去找空閑buffer找不到就直接丟幀用最新幀覆蓋策略或跳過這一幀。這種方式采集進程永遠不會被阻塞適合對實時性要求高的場景代價是極端情況下會丟幀。另一種是“消費完成通知”的回收策略。消費者處理完一幀后通過socket或者共享狀態(tài)把buffer標記為空閑。生產者只有拿到空閑標記才能復用這塊內存。這樣能保證每幀都被完整處理代價是如果消費者處理太慢生產者會被拖住。我的建議是如果是視頻監(jiān)控這類流水線任務選丟幀策略更合理。寧可偶發(fā)丟幀也別讓采集線程卡死。3.2 生產者端分配、填充、發(fā)布生產者進程的任務是把采集到的一幀數(shù)據灌進DMA-BUF然后把fd和幀描述信息發(fā)出去。整套流程大概是啟動階段通過dma-heap分配一大塊buffer池按幀大小切分成N塊每塊對應一個fd然后mmap到自己的用戶態(tài)虛擬地址空間。每來一幀攝像頭數(shù)據從buffer池里挑一個空閑buffer。把圖像數(shù)據填進去。這里有個關鍵選擇如果采集buffer本身就是DMA-BUF fd最好的辦法是直接把采集buffer的fd發(fā)給下游連獨立buffer池都不需要。但實際工程中采集和AI往往需要解耦AI進程可能還要做格式轉換、多路幀緩存所以獨立pool更常見。填充動作可以用CPU memcpy也可以用RGA做硬件搬運。后者不占CPU是更“零拷貝”的做法。更新幀描述信息包括frame_id、寬高、時間戳。通過Unix domain socket把frame_id作為普通數(shù)據、fd作為輔助數(shù)據一起發(fā)送。發(fā)送消息時可以打包一個小的協(xié)議頭struct frame_msg { uint32_t buffer_index; uint32_t format; uint32_t width; uint32_t height; uint32_t stride; uint64_t frame_id; uint64_t timestamp; };然后發(fā)送時普通數(shù)據就是frame_msg輔助數(shù)據要附帶的fd就是當前buffer的fd。接收方拿到的fd和發(fā)送方的fd指向同一個DMA-BUF對象。3.3 消費者端接收、映射、使用、歸還消費者進程這邊的流程是在socket上recvmsg同時拿到frame_msg和繼承來的fd。檢查這個fd是否已經mmap過。如果進程里維護一個“fd到虛擬地址”的映射表發(fā)現(xiàn)同一個DMA-BUF已經映射過就直接復用地址不用反復mmap/munmap。這一步能省不少系統(tǒng)調用。拿到指針之后交給后續(xù)模塊。如果是AI進程就喂給RKNN如果是編碼進程就導入給MPP。處理完畢把buffer狀態(tài)標記為可回收或者通過socket回一個ack給生產者。消費者mmap的邏輯很簡單int received_fd recv_fd(sockfd); // 假設已經有buffer元信息 void *mapped mmap(NULL, frame_size, PROT_READ | PROT_WRITE, MAP_SHARED, received_fd, 0); if (mapped MAP_FAILED) { perror(mmap dma-buf in consumer); } // 使用 mapped 指向的圖像數(shù)據這里有個經驗如果buffer池是預分配的消費者最好也按“buffer索引”來緩存mmap結果。第一次收到某個索引的fd時map一次之后同一索引復用。這樣既省了mmap/munmap的開銷也避免了fd反復打開關閉帶來的引用計數(shù)管理混亂。3.4 與RKNN、RGA、MPP對接的關鍵接口零拷貝的價值只有在和硬件模塊對接時才真正體現(xiàn)出來。否則你就算用DMA-BUF傳了半天fd最后在AI進程里還是把數(shù)據memcpy到普通內存再喂給RKNN那就沒意義了。對接RKNN時核心思路是讓NPU直接訪問這塊DMA-BUF而不是經過用戶態(tài)指針中轉。RKNN SDK通常提供從外部fd創(chuàng)建內存的方法類似#include rknn_api.h rknn_tensor_mem *external_mem NULL; // fd 就是我們從socket里收到的DMA-BUF fd // virt_addr 是mmap后的虛擬地址size 是buffer大小 rknn_create_mem_from_fd(ctx, fd, virt_addr, size, external_mem);然后推理時把external_mem塞進輸入tensor的內存指針。這樣NPU做DMA讀取時直接訪問的是物理內存不需要CPU先把數(shù)據從某個用戶態(tài)地址拷貝到NPU可達的buffer。具體函數(shù)簽名會隨SDK版本略有差異但大方向就是這樣。對接RGA時RK的RGA庫librga或im2d支持直接導入fd做格式轉換和縮放。比如AI進程要把NV12轉成RGB同時縮放到模型輸入尺寸可以走RGA硬件#include im2d.h #include rga.h rga_buffer_t src wrapbuffer_fd_t(fd, width, height, RK_FORMAT_NV12); rga_buffer_t dst wrapbuffer_fd_t(dst_fd, dst_w, dst_h, RK_FORMAT_RGB888); imresize(src, dst);wrapbuffer_fd_t這種接口就是讓RGA驅動通過fd訪問源和目標內存整個過程CPU不參與像素搬運。對接MPP硬編碼時MPP也支持從外部fd導入buffer#include mpp_buffer.h MppBuffer enc_buf NULL; // fd 是共享的DMA-BUF fd mpp_buffer_import(NULL, enc_buf, fd);導入之后就能把這份buffer當普通MppBuffer喂給編碼通道。編碼出的H.264/H.265碼流拿去做RTSP推流這就是我們常說的“基于RK3588硬編碼的實時視頻監(jiān)控系統(tǒng)”。所以完整鏈路可以是這樣的采集進程輸出DMA-BUF fdNV12→ 零拷貝IPC傳給AI進程 → 通過rknn_create_mem_from_fd交給NPU跑YOLOv8 → 推理結果通過RGA畫框/轉格式 → 再把fd傳給編碼進程 →mpp_buffer_import導入MPP硬編碼 → 碼流走RTSP推出去。整個過程里CPU沒有參與任何一幀像素數(shù)據的搬移。4. 真實項目中的坑RK3588上最常踩的五個問題4.1 花屏、亂幀的深層原因cache一致性和對齊很多人第一次把跨進程零拷貝鏈路跑通后會看到畫面時而正常、時而花屏或者模型推理結果偶爾不對又查不出代碼邏輯漏洞。這種情況十有八九是cache一致性問題。如果生產者用CPU往一塊cached的DMA-BUF里寫數(shù)據寫完直接發(fā)給NPU或VPU硬件DMA讀取時可能拿到的是還沒寫回內存的臟cache數(shù)據。解決辦法有這么幾條一是分配buffer時直接用uncached堆例如/dev/dma_heap/system-uncached。代價是CPU訪問這塊內存的性能會明顯下降所以只適合“CPU不怎么碰數(shù)據”的鏈路。二是保留cached堆但在關鍵位置主動做sync。用戶態(tài)可以通過DMA_BUF_IOCTL_SYNC告訴內核在硬件訪問前把cache刷回內存struct dma_buf_sync sync {0}; sync.flags DMA_BUF_SYNC_START | DMA_BUF_SYNC_RW; ioctl(buffer_fd, DMA_BUF_IOCTL_SYNC, sync); // CPU 讀寫這塊 buffer sync.flags DMA_BUF_SYNC_END | DMA_BUF_SYNC_RW; ioctl(buffer_fd, DMA_BUF_IOCTL_SYNC, sync);三是讓整條鏈路盡量使用采集或MPP導出的buffer因為這些buffer在驅動層已經把同步處理好了用戶態(tài)不太需要操心。只有自己分配、自己用CPU填充時才需要注意這個坑。還有一類花屏和cache無關純粹是對齊問題。RGA、VPU、NPU對buffer的起始地址和大小都有對齊要求一般建議按2MB或1MB對齊至少也要按64字節(jié)對齊。分配時可以讓size ALIGN(frame_size, 4096)再用一個ALIGN_UP宏把所有寬高參數(shù)按硬件要求的stride對齊。4.2 幀串號和丟幀緩沖區(qū)復用管理另一個高頻問題是幀號錯亂?,F(xiàn)象是消費者收到的frame_id順序不對或者畫面內容是上一幀的時間戳卻是這一幀的。這多半是因為生產者把同一塊buffer發(fā)出去兩次或者消費者還在讀某塊buffer生產者就把它重新填充并再次發(fā)布了。解決思路很直接buffer狀態(tài)機必須嚴格??臻ebuffer只能被生產者拿到消費者處理完必須顯式標記為可回收中間不能跳狀態(tài)。我踩過的一個坑是為了省事生產者發(fā)完fd就立刻把buffer狀態(tài)改成空閑結果消費者還沒讀完下一幀數(shù)據已經覆寫進來了。后來改成消費者處理完通過共享內存標記回收生產者只從“已回收”狀態(tài)的buffer里挑問題就消失了。4.3 fd生命周期和內存泄漏fd生命周期問題是零拷貝鏈路里隱藏最深的一類bug。SCM_RIGHTS傳遞fd后發(fā)送端和接收端各自都有一個fd指向同一個DMA-BUF。如果發(fā)送端在sendmsg之后直接close沒有別的影響因為接收端持有的fd已經增加了引用計數(shù)。但如果你兩邊都close了而mmap還在DMA-BUF仍然不會釋放因為mmap本身也持有引用。反過來說如果接收端用完fd直接close又忘了munmap就會內存泄漏。長時間運行的邊緣設備這種泄漏積累到最后會致命。我的建議是每個進程維護一張“buffer索引到虛擬地址”的映射表mmap一次后不隨便munmapfd在mmap成功后也可以立即close掉因為mmap已經持有引用。等整個會話結束統(tǒng)一munmap所有映射再統(tǒng)一close所有殘留fd。這樣管理起來清爽得多。4.4 內核沒有DMA-BUF節(jié)點或者權限被限制新版RK3588 SDK基本都支持/dev/dma_heap但有些老SDK或者定制內核只有/dev/ion或者兩個節(jié)點都沒有。拿到新板子第一件事就是檢查這些節(jié)點ls -l /dev/dma_heap/ 2/dev/null || ls -l /dev/ion 2/dev/null如果節(jié)點不存在大概率是內核配置里沒開CONFIG_DMABUF_HEAPS或者DTS里沒有使能對應的heap。這時候要么改內核配置重新編譯要么就只能退回MPP的mpp_buffer_get這類封裝接口。如果改完內核發(fā)現(xiàn)系統(tǒng)起不來也別糾結RK3588開發(fā)板刷機很快recovery或maskrom模式下用USB Type-C連電腦就能裝回來。還有權限問題。容器化部署邊緣盒子時/dev/dma_heap下的節(jié)點不會自動映射進容器必須在docker run時手動加--device /dev/dma_heap:/dev/dma_heap否則容器里open必然失敗。4.5 常見錯誤速查表現(xiàn)象可能原因排查方向另一進程mmap返回EPERM或ENOMEMfd不是真實DMA-BUF fd或權限不夠檢查SCM_RIGHTS是否真正傳成功確認socket是AF_UNIX檢查容器device映射RGA調用返回錯誤碼buffer地址或stride未對齊格式不支持分配時按64字節(jié)或更大對齊確認RGA版本支持目標格式VPU編碼畫面花屏cache未同步或stride設置和buffer實際寬度不一致加DMA_BUF_IOCTL_SYNC核對stride和width關系RKNN輸入無效或推理異常外部fd創(chuàng)建內存失敗或buffer是cached且未同步用rknn_create_mem_from_fd前確認fd可用uncached優(yōu)先幀號亂序、畫面內容錯幀buffer被過早復用狀態(tài)機不嚴嚴格“空閑→填充→發(fā)布→消費→回收”流程內存持續(xù)上漲mmap或fd未釋放用cat /proc/pid/smaps檢查映射區(qū)間清點每個buffer的映射生命周期8K或4K多路時分配失敗內存池過大或heap碎片化減小緩沖池深度或改用CMA堆5. 效果評估和性能對比這套方案到底值不值得上最后說點實際的。零拷貝跨進程通信聽起來很酷但它不是銀彈它解決的是“大塊圖像數(shù)據在進程間頻繁傳輸”這個特定問題。如果你的應用只是偶爾傳一些小的結構化數(shù)據用它反而復雜了。我整理了兩種方案的粗略對比數(shù)據來自我們RK3588板卡上的實測不同板卡、不同內存頻率會有差異思路比數(shù)值更重要。項目傳統(tǒng)socket傳整幀DMA-BUF零拷貝傳fd一幀1080p NV12傳輸額外耗時2至4ms左右含內核拷貝和用戶態(tài)拷貝小于0.1ms只傳元信息和fdCPU占用每次拷貝都會占用A76核心幾乎為零硬件DMA直讀是否適合多路視頻4路以上CPU占用吃緊多路時依然能保持低CPU負載實現(xiàn)復雜度簡單但低效需要設計buffer池和狀態(tài)機和RKNN/MPP/RGA對接需要額外拷貝到硬件可訪問buffer直接導fd無縫對接如果你跑的是單路1080p30fps的簡單demo傳統(tǒng)socket方式也許夠用CPU多花幾個點沒什么感覺。但一旦跨到4路1080p或者4K60fps拷貝開銷會成倍放大這時零拷貝就不是優(yōu)化項而是剛需。就算自身業(yè)務暫時用不到多進程我個人也建議在RK3588上做視覺方案時一開始就把幀傳輸通路設計成基于DMA-BUF的形式。后面無論是想把AI推理獨立成進程、還是加一路硬編碼推流改動都會小很多不至于推倒重來。這也是我在RK3588架構上做邊緣AI視覺項目后期體會最深的一點數(shù)據通路的設計比一開始用的模型大小、算力預算更值得花時間提前規(guī)劃。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久9久精品视频| 日本不卡码黄色| 99操碰| 国产又色又粗又黄又爽| 9久久精品| 日本不卡卡一区| 99久久9| 国产97/欧美| 亚洲影视综合| 色狠狠色| 亚洲天天影视色综合| 天天噜| 亚洲三区视频| 日韩美女久久一区二区三区| 91天堂丝袜美腿| 久久久久久9| a级免费在线观看| 日本国产欧美高清在线| 一区二区三区男女操逼黄色小电影| 福利在线视频一区二区| 超碰国产精品无码| 超碰在线国产| 91国产丝袜白虎| 久久一区二区三区入口| 国产精品一区二区三区免费视频| 色丁香久久| 久久久∴| 免费无码国产精品v片在线观看| 91男女啊啊啊| 91久久久亚洲| 天天干天天日天天射黄色大片| 九热久| 高潮内射在线| 91色人妻| 久草成人影片| 婷婷久久五月天| 亚洲欧美综合网站| 狠狠色婷婷777| 骚货操死你| 91在线页| 91精品久久久久久综合五月天| 91狠狠狠| 中文字幕午夜精品久久久| 国产精品激情久久久久久久| 97ai亚洲| 超碰97日韩| 一二三啪啪专区| 九色在线熟女国产黑人| 中欧人妻丝袜中文字幕| 91九九九小逼| 蜜臀av一区二区三区免费观看| 人干人人人操人人摸| 啊啊啊啊嗯嗯在线久久久| 亚州国产精品乱| 国产精品精品系列在线观看| 99999久久精| 91日日| 国产原创自拍| 超碰99在线观看| 摸奶性爱视频网站在线免费播放| 久久激情视频| 香蕉精品二区二区| 欧美偷偷网| 97WW精品| 天天日天天舔东京热| 久久精品欧美一区二区三区不卡| 久久无码精品| 亚洲不卡一| 亚洲综合性感在线| 欧洲中文字幕| 天天爽夜夜欢视| 果冻传媒A片一二三区| 欧美内射少妇| 91天天日| 久久↗↗| 天天网综合| 有码专区最新中文字幕有码| 性感美女91影视| 9精品久久久久| 蜜臀久久99精品久久久久电影| 男人的天堂在线| 亚洲污污网站| 少妇高潮流水av免费| 欧美性爱第1 页| 九九九九热| 国产亚洲精品A在线观看下载| 国产精品 视频| 欧美五十路熟| 色婷婷九月| 欧洲中文字幕| 九九九九九九九九九五码| 超碰激情808| 婷婷久久综合| 啊啊在线| 欧美伊人久久综合网| 综合久久欧美| 视频在线中文字幕| 97久久网| 国内偷自视频区视频综合| 91高清无码下载| 色九月| 国产日韩精品一区二区三区| 亚洲情色婷婷五月天| 熟女中出视频| 五月丁香激情四射| 东京热激情视频一二三区| 久草精品视频| 亚洲精品影视老司机| 国产中文精品一区二区在线观看| 人妻久热在线| 福利视频合集| 99热官网| 九九九九九九视频免费| 久久这里只精品99re66图| 欧美色综合图片| 久草成人| 久久久久无码| 国产欧美日韩在线不卡第一页| 超碰成人免费| 啊啊啊想要| 在线观看av区| 91爱欧美| 欧美疯狂做爰xxxx| 中文字幕乱偷人妻久久艾草网| 精品国产乱码久久久久久网站入口| 91伊人久| 嫩草 我啊~嗯~在线| 岛国黄色短视频| 男人夜色天堂ss| 日本一区二区三区午夜观看| 啊啊啊啊一区| 日本欧美中文字幕| 夜夜爽爽夜夜精品视频| 丁香九月激情| 色香AV| 久久婷婷五月天| 天美传媒婬乱在| 婷色五月天| 亚洲一区二区中文字幕| 久热这里| 国产福利电影| 小骚逼被操的爽不爽| 国产精品秘 福利姬在线观看| 超碰色大香蕉| 亚洲九九爱| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 91精产一区二区三区| 久久久久久国产手机AV| 日韩AV无码网站| 亚洲第一页综合在线| 超踫中文字幕| 国产精品无码在线| 99久久无码| 亚州国产成人精品女人久久 | 亚洲欧美日韩综合在线尤物 | 天综合网| 男人的天堂亚洲| 蜜臀av一区二区三区免费观看| 亚洲人妻在线一区| 欧美1区二区三区公司| 日本在线999| 蜜臀AV成人精品蜜臀AV久久| 亚洲综合在线高清| 国产大片精久久久久久| 国产亚洲 中文欧美久久| 3P乱轮视频| 青娱乐999| 92一区二区| 欧美情色亚洲| 1024精品在线| 老鸭窝日丰县女人| 成年人免费观看网站| 偷拍亚洲情色| 少妇高潮九九九九| 亚洲熟女av中文字幕| 深夜视频| 日韩熟女操逼| 亚洲 自拍偷拍 欧美| 99亚洲精品| 无码人妻丰满熟妇奶水区毛片| 日韩一区二区精彩视频| 日韩激情电影中文字幕| 蜜乳中文字幕a在线| 国产又色又粗又黄又爽| 青青青国产手线观看视频2| 一个人免费视频观看在线WWW| 日B操| 精品视频免费在线一区| 91精品大奶人妻| 日本亚洲vr欧美不卡高清专区| 人妻天堂综合网| 91精品国产综合久久久蜜臀| 欧洲精品欧洲精品| 91老熟女| 偷拍自拍在线视频观看| 精品国产一区二区久久| 品亲网欧美品亲网| 欧美亚洲首页| 萌白酱自拍视频| 97超碰影音| 欧美一级二级三级| 户外裸露刺激视频第一区| 一二三区在线| 亚洲97在线| 老司机老司机午夜影院| 禁十八久久| 欧美亚洲韩国视频十五区| 国产精品人妻免费精品| 超碰人人色| 国产AV天美传媒一区二区三区 | 亚洲美女精品九九视频| 国产综合操逼高清| 啊啊啊好大好深| 欧亚乱色熟女一区二区| 超碰在线综合97| 国产精品欧美日韩久久| 亚洲人综合| 国产亲戚伦亲在线| 东亚亚洲无码高清| 国产中午字一暮区| 99超级碰免费视频| 97极品无码| 人妻在线臀日韩| 成人线上超碰| 神马久久啊啊| 亚洲AV无码国产精品久久久久| 91久久久久久久久久久| 99热在线观看| 你草精品在线视频| 黄片www.| 国产精品盗摄 偷窥盗摄| 久久有码| 中文字幕黄色片| yw尤物av无码点击进入麻豆| 亚洲免费精品一区| 777奇米影视777四色| 中日韓欧美高清| 精品视频123区小说区| 国产日韩无码一区二区三区久久区| 91丨国产丨白浆| 日韩99精品视频综合区| 家庭乱伦性爱av| 日韩本不卡视频在线观看| 男人的天堂啪啪啪啪啪蜜桃不卡| 久久综合国产精品国产| 久久岛国| 亚洲天堂久久| 黑人干亚洲| 日韩pv中文| 芊芊操逼视频无码| 9久热这里只有精品| 18精品一区| 午夜电影在线观看无码专区| 小电影欧美91| 色婷婷日韩精品一区二区三区| 人妻天堂综合网| 91精品大奶人妻| 999国产精品999久久久久久| 一级黄色视频网| 中韩中文字幕在线观看| 上特色A在线| 精品亚洲| 国产精品免费1区2区视频| 久久日韩肥臀| 久久华人网| 日本中文字幕一区| 国产1727欧美| 久久人妻少妇| 久久噜噜噜精品国产亚洲综合| 九九热精品免费视频| 97啪啪| 久操精品网| 少妇的嫩逼图片| 青草地一本线一区二区三区| 清纯唯美综合亚洲| 亚洲熟妇A V黑人| 2017亚洲天堂| 可以在线观看的黄色网址| 嫩草美女久久| 国内亚洲高清无码| 99精品久久久久久久婷婷| 思思性爱| 伊人991| 国内成人圈中文字幕无码视频| 亚洲脚交| 99久久亚洲精品无码毛片潘甜甜| 2024黄色视频| 26uuu最新| 老司机天天操| 人妻啊啊人妻啊| 亚洲天堂情色| 国产AV中文| 久久 精品| 少妇一级无码精品| 欧洲在线性爱视频| 乱论91| 丝袜美腿欧美| 欧美黑人91| 上特色A在线| 国产乱伦性爱区| 国产成人网址| 久久久精品九| 日本www操操操| 日本不卡三级网在线播放| 久久最新视频免费观看| 亚洲天天操| 这里都是精品在线观看| 热G综合热G中文| 五月婷婷丁香六月| 麻豆色99999| 天天上日日上日韩精品| 刺激性视频黄页| 精产品久久| 亚洲色五月| 九热久| 黑操B| 亚洲精品蜜桃久久久| 黄站在线免费观看| 大香网站| 国产成人五月天丁香花| 丁香五月影院| 久久精品一区二区一8| 日本精品一区三区| 亚洲成人黄色在线观看| 国模限制级电影| 91n欧美| 嗯啊啊啊轻点视频| 久草在线| 嫩草影院永久在线制服丝袜| 日本性爰一道本| 内射中国少妇高清视频免费视频 | 99热在线观看| 97超碰碰| av久日| WWW4虎| 一区二区三区探花在线观看| 久久亚洲熟妇在线视频| 欧美一区二区三区蜜桃| 天天插网| 欧美色图欧美| 中文字幕欧美日本乱码一线二线| oumeisetu综合| 久久久久久久国产a∨| 精品一级| 性高潮久久久| 中文伊人大香蕉视频| 亚洲天堂精品日韩电影| 亚洲宗合网| 麻豆黄色五月天| 天天躁日日躁XXXXYY| 九九九九精品九九九九| 1240青青草一区二区三区视频天爱| 撸撸成人在线视频| 一区 欧美 日韩 麻豆| 蜜桃久久综合视频| 综合网欧美在线| 97人妻碰碰中文无码久热丝袜| 少妇xx精品| 91精品国产91久久青草| 男人综合网| 9久久精品| 天天综合网91| 久久 国产 无码| 色色网91| 亚洲各类熟们中文字幕| 男女一级A片大黄,一进一出| 夜夜操狠狠操| 精品无吗久久| 多乙久久久久久| 精品毛片av一区二区| 一区二区三区在线美女| 欧美麻豆成人同性GⅤ在线| 伊人网综合在线视频| 亚洲精品一区二区精品| 亚洲中文国际强奸字幕| 国产精品无码av| 无码操逼网| 国产精选三级在线观看| 九久9热| 日韩av情韩国爱禁区av一区二区| 97爱爱官网| 高清无码久操视频| 夜间福利片1000无码| 国产精品一级毛片不卡视| 天天看,天天做| 婷婷亚洲中文字幕在线| 91真人天天在线| 91国产丝袜白虎| 国产强奸乱伦无码视频| 亚洲一卡2卡3卡4卡乱码网站| 免费精品人妻一区二区三| 久久激情亚洲精品无码?V| 8050午夜少妇无码| www.高清无码诱惑一区.com| 蜜桃网熟妇| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 亚洲人妻av| 97欧美色| 在线观看黄色电话| 亚州男人的天堂| 亚洲国产日韩欧美熟妇在线| 第45页一区二区| 99这里只有精品国产| 91精品网站| 九九九久久久| 日韩性爱小视频在线观看| 国产成人网址| 中文字幕人乱码中文字的预防方法| 91久久久久| 色欧美亚洲| 日韩激情电影中文字幕| 五月婷婷爱六月丁香色| 一区| 日韩av电影成人在线| 97操97干| 超碰97人妻免费在线| 97人人操人人摸人人爱| 欧美乱色| 亚洲色欧美| 操逼网站视频漫画国产| 国产亚洲日本| 亚洲精品成人动漫在线| 嗯啊啊啊轻点视频 | 色在线亚洲视频www| 999日韩中文精品观看视频。| 亚洲高清少妇| 手机在线视频国内精品| 你草精品在线视频| 粉嫩av在线| 色爽爽文学| 伊人超碰97| 丁香六月激情| 亚洲情色欧美| 亚洲乱色视频一区、二区在线| 91麻豆天美| 九九内射在线| 亚洲欧美另类小说| 嗯嗯啊啊啊好舒服| 91视频精品| 亚洲自拍另类丝袜综合| 探花在线免费观看视频国产一区| 色踪合AV| 综合熟妇一区二区三区| 乱伦系列一区二区| 日韩内| 秋霞视频一区二区| 国产在线综合网| 久久久av爱| 国产高清在线观看欧美| 精品美女少妇一区二区| 夜夜操av亚洲一区二区| 国产91乱伦| 尤物AV免费网站| 中文字幕国产精品1区| av三级电影在线播放| 夜夜综合| 99综合免费视频| 国产无码成人无码| 亚洲第一二区另类图| 久久久久亚洲AV无码专区少妇| 久久激情四射婷婷丁香五月天| 美女露胸露尿口| www黄片免费看com| 日韩啪啪啪啪啪| 国产精品国产亚洲区艳妇糸列| 大肉棒导航| 国产视频一区二区在线| 亚洲国产午夜真人一级片中文字幕精品黄网站 | www.夜夜操| 在线色导航| 久久久久九九九九| 国内精品久9| 超碰97最新人妻| 婷婷色网| 久久精品色欧美aⅴ一区二区| 人人操人人爽人人操人人| 久久日韩肥臀| 激情文学小说一区二区| 欧美少妇色综合| 高潮内射在线| 国产中文精品一区二区在线观看| 国产精品岛国片在线观看| 日韩欧美水蜜桃人妻| 少妇厨房愉情理伦片bd在线观看| 黑操B| 青青草原综合久久大伊人精品| av激情亚洲五月天| 97亚洲国产| 激情黄色五月天| 天天干天天日天天射黄色片| 欧美美女啪啪视频| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 大香网伊人久久综合| 人人透人人操| 在线A日本| 天天精品| 天天操天天干一区二区| a片久久久久久久久久久久 | 看日韩黄片| 久久亚洲AV无码白度| 日韩免费中文字幕视频| 久久久久久亚洲Av无码| 欧美一级国产一级| 人、人、摸,人、人、草| 中文字幕日本久久| 99这里都是精品| 玖玖综合.com| 磁力99AV| 91插B网站| 密臀在线一区尤物| 欧美黄色手机在线观看| 国产亚洲精品玖玖玖在线观看| 国产精品久久久久久片| 日韩人妻少妇 一区二区三区| 天天操女人| 99啪啪| 中文字幕乱偷人妻久久艾草网| 青青青草原| 试看60秒 爽| 日韩av电影成人在线| 大香蕉一线视频| 国产精品交换一区二区| 人妻酒店出差被中出免费在线播放| 久久综合久色欧美综合狠狠| 97综合国产| 亚洲欧洲综合成人av一区| av一区二区三区 中文| 中文啪啪视频| 色婷婷一区二区三区久久午夜 | 神马久久啊啊| 老司机香蕉久久久久| 日韩激情电影中文字幕| 亚洲福利中文字幕在线| 9热9热综合网| 婷婷8月天青娱乐| 免费av在线播放二区| 99啪啪视频| 一牛一区二区三区久久| 天美麻豆一区二区三区| 2019久久久久久久久福利| 久久久久久午夜男人的天堂| 一本色道久久综合熟妇| 黄色香蕉视频网站一区| 婷婷五月在线视频| 91人妻久久久久久久久久久久久| 91亚洲欧美| 3p国产欧美99热| 97亚洲资源| 久久国产乱子伦精品免费女,网站| 人人操人人摸人人看人人干| 人妻出轨一区二区三区| 女人香蕉久久毛毛片精品| 免费黄色片。| 大香蕉天天看妹子| 97精| 99热精品在线| 欧美96交| 一区二区三区黄片免费观看| 天天亚洲综合| 欧美组图日韩亚洲中文字幕| 色色色欧美| 精品无码产区一区二| 久久久精品中文字幕爱豆| 69人妻精品一区二区绯色| 午夜精品人妻二区三区| 精品成人亚洲午夜电影| 97内射偷拍| 日本精品五区| 大香蕉伊利av| 欧美资源| 日韩人妻资源网| 亚洲综合在线91| 熟女六十路| 色香综合天天影视综合 | 97碰| 超碰在线974| 久久精品国产Aⅴ| 九久9热| 97超碰人人操人人操| 久久精精区一区二区一蜜桃一区二区| 99夜夜操| 久久国色天香香蕉| 亚洲婷婷综合网| www.操| 国内偷拍精品一区二区| 成人熟女视频一区二区三区| 边做饭边操逼逼| 亚洲 图片 欧美 色图| 欧美人与动性人交a| 日韩三级网址| 操逼日批| 久久久内射良家| 欧美一级做a爰片免费视频| 久久超碰天天| 香蕉在线一区二区三区| 中文字幕精品探花视频| 东北老女人的激情视频| 2019天天干天天操| 91久久久久| 婷婷色网| 日本乱人伦片中文三区| 久久中日麻豆| 日本熟妇人妻中出视频| 日本三级精品| 日本不卡高清免v欧美日韩在线观看| 亚洲伊人久久综合97| 人妻无码后入| 亚洲αv一区二区三区| 国产精品另类一区大香蕉| 五月丁香| 超碰在线欧美性爱激情| 激情婷婷丁香| 日韩精品99999| 人人操,人人插| 欧美色图97| 色性欧美| 精品人妻一区| 超碰91在线| 99RE在线视频精品,这里只有精品| 国语av最新自产拍在线观看| 一区二区高清视频| 亚洲日韩少妇一道本视频| 五月天大香蕉| 人人玩人人添人人澡免费| 久久精品女同亚洲女同13| 女人的久久久| 青娱乐国产盛宴视频| 国产精品农村妇女| 欧美亚洲AN| 97色婷婷| 久久久久久久国产视频| 嗯嗯啊啊好爽| 日韩色图 一区二区| 四虎影库国产精品免费| 亚洲精品aa久久伊人| 性天堂| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 永久免费av无码网站国产app| 久草成人影片| 男人天堂综合| 欧洲天天在线| 亚洲天堂 视频你懂的| 老司机深夜18禁污污网站| 中文字幕第7页| 日韩天天本| 殴美,日韩国产伦精品| 中日韩欧美精品无码AⅤ一区二区| 色99999| 91日韩网站| 欧美日韩天堂| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 嗯嗯嗯啊啊啊在线免费观看| 性爱av在线免费观看| 国产精品探花色| 亚洲色图欧美色图另类图片| 加勒比综合在线| 麻豆精品三区视频| 天天综合网日韩| 天天综合网亚洲综合网| 日韩78m视频| 97超碰天天| 久久久久成人蜜桃精品| 97人人干| 日韩999| 中文字幕性感少妇av| 日韩精品1区2区中文字幕| 国产精品蜜臀久久久久无码AV| 一区二区影视| 精精品人妻一区二区三区| 久久久久久免费电影| 国产女人9999| 激情人妻另类| 欧美玖玖爱免费玖玖| 久久久久网站-538在线视频-欧美永久乱码 | 久久久 国产精品| AV免费在线播放一区| 欧美久久人人网| xxxx网站亚洲精品| 欧美91视频| 久久男人精品| 中国国产精品一区视频| 伊人久久综合精品欧美| 无码操逼网| 丁香五月综合| 欧美性爱精品一区二区| 综合网色| 久久乐| 久久久久久性爱片| 哈哈操电影AV| 国产中文福利| 国产久久久久影院老熟女| 午夜精品人妻二区三区| 自拍第一页| 久久禁| 男人天堂新在线| 91精品91久久久久77777俄罗斯老妇姓x| 丰满人妻一区二区三区四区| 精品九九九九九| 一区AV| 二男一女成人A片| 亚洲无码一二三区| 久9视频| 久久大黄片| AV一区观看| 日韩在线观看字幕精品| 丁香五月天堂网| 黄页18禁| 午夜毛片高清免费不卡| 欧美色爱综合| 日本操逼视频免费| 操逼www.| 五月天精品| 9 7超碰在线免费观看| 国产视频第2页| 国产又粗又长又大的视频| 91bbb| 超碰成人公开| 丁香五月天啪啪| 美女淫穴| 99久久免费看精品国产一区| 精品无码久久久久久久久果冻糖心| 欧美日韩另类在线播放| 国产免费永久精品无码| 很黄很污的免费网站| 另类专区加勒比| 欧美色乱| 2019天天干天天操| 国产原创自拍| 午夜综合在线| 搡老女人老91妇女老熟女| AAAAAAAAA黄片| 国产精品老熟女一区二区| www.91欧美| 91丝袜在线播放| 男人高清无码一区二区| 熟女丝袜视频| 国产自产22区| 在线中文字幕| 六六久久日韩不卡| 国产99999久久精品| 久久精品一区二区一8| 99热只有这里有精品| 日本九九久久99播| 亚洲欧美综合图片| 性爱视频无打码在线观看| 日韩三级一区| 欧美线天码中字| 精品蜜乳AV免费观看| 国产激情综合五月久久| 五月天加勒比啪| а√天堂资源官网在线资源| 久久九九99| 91久久久久久久久18| 人妻精品一区二区全免费| 狠狠躁伊人中文字幕| av午夜影院在线播放| 亚洲第一页欧美| 麻豆视频一区二区| 久久性爱城| 精品一二三区女同| 天天激情综合站| 夜夜操老骚逼视频网站| 丰满人妻一区二区三区四区| 欧美很很操视频| 天堂网 主播 亚洲| 久久亚洲AV无码专区首页| 欧美天堂日韩三级国产传媒| 亚洲色狠| 9/A片| 亚洲欧美不卡线| 人妻熟女午夜精品在线| 91热热色| 久久久网站| 深夜激情| 国产亚洲99久久精品| 亚春色色| 91Chinese在线| 欧美综合综合| 久热大香蕉| 色老大| 久久九九99| 日本欧美不卡| 成人五月香网在线| 色激情综合网站| 日韩三级久久久| 亚洲天天综合| 国产超碰在线一区| 成人自拍三级在线观看| 99只有精品| blacked精品一区国产| 欧美超碰人妻97| 果冻国产精品麻豆成人av| 久久久久幕乱码| 另类专区在线观看| 青草一区二区| 青娱乐亚洲热| 欧美性爱日韩高清| 黄色不卡视频| 留下AⅤ黄色片| 97久久国产精品女不卡| 91原创在线观看| 免费少妇一区二区| 熟女精品一区二区在线观看| 99精品成人免费看| 97操b| 欧亚乱色熟一区二区三四区| 日逼逼免费看| 国产AV天美传媒一区二区三区 | 欧美91精品国产自产| 中文字幕精品丝袜| 国产熟女完整版中字| 男人天堂毛片| 青青爽| 黄片com.| 女生久久网| 亚洲自拍欧美国产首页网曝| 手机在线看片免费人成视频| 91亚洲人| 歐美性天天| 久草大| 翔田千里Av在线| 后入福利| 国产传媒美日韩av| 日韩乱插| 国产午夜在线观看| 久久6热精品99视频| 综合熟女| 在线免费观看日韩一区| 久久粉色| 天堂亚洲精品久久老牛| 精品久久久久久亚洲| 国产成人无码啪| 国产视频第二页| 淫乱图区 | 四虎影库国产精品免费| 无码日韩人妻av一| 97视频网站| 天天干夜夜| 欧美18禁91| 色九月| 中日韩熟女| 粉嫩av在线| 丝袜美腿91| 日韩中文字幕2020| 亚洲中文制服诱惑| 妺妺跟我一起洗澡没忍住| 浓厚中出中文字幕在线| 国产免费内射视频| 97超碰超欧美。| 97一区二区蜜臀| 99操99| 日本一本道A级黄色毛片试看60分钟| 亚洲成a人v欧美综合天堂下载| 老熟妇一区二区三区| 亚洲AV无码久久精品蜜桃小说| 亚州色图第三区| 色一色综合网| 国产中文大片资源中文字幕| dy888午夜老子影视达达兔| 色婷婷日韩精品一区二区三区| 亚洲中文电影| 夜夜高潮夜夜爽| 蜜桃色色网站视频三区| 婷婷久久五月| 思思性爱| 操逼操网| 日韩色| 欧美一品道| 精品一久久久| 九九热五区| 久久久久性熟视频| 理论久久婷婷网 8| 性爱综合网| 色五月网址| 97干在线| 五月丁香婷婷色| 久久久久9| 久9热| 婷婷丁香五月综合| 午夜免费福利视频一区| 亚洲第一成人影院色播| 丝袜美腿制服人妻二区中文字幕| 芊芊操逼视频无码| 国产91乱伦| 国产不卡免费在线视频| 一类av片在线看| 成人无码电影在线观看网| 老司机深夜18禁污污网站| 91P0RNY大屁股人妻| 女性喷水高潮在线观看| 草草草视频在线免费看| 一级片视频啪啪| 久久国产熟女影院| 999精品国产高清一区二区| 久久精品国产亚洲AV高清演员表| 极品销魂美女一区二区| 涩综合导航| 九九热久久99精品re| 做爱A级亚欧| 久久久久久国产手机AV| 秋霞曰韩R级| 婷婷综合激情| 亚洲熟妇极品| 亚洲成人一二三区| 国产精品视频播放| 天堂亚洲精品久久老牛| 亚洲日韩黑丝| 九九九九九精品视频| 97在线视频观看| a片偷拍视频| 亚洲成人贴图| 天天欧美色| 91精品国产综合久久久蜜臀| 五月丁香啪| 五月天激情婷婷| ′ !γ}丶。。久久精品欧美一区二区三区| 青娱乐黄色录像| 在线天堂999| 大奶啊啊好爽 | 亚洲色图国产另类| 九久久九精品视频| 丝袜 亚洲 偷拍| 免费A V在线| 蜜乳性色无码专日粉嫩骚逼AV| 在线有码中文字幕| 牛牛AV人人夜夜澡人人爽| 色97干| 天天躁日日躁狠狠狠躁| 黑白配性爱AV成| 伊人四虎综合| 久久AV无码网址| 2019天天干天天操| 久久久亚洲Av| 国产毛片久久久久久久| 八戒午夜福利理论片| 丰满人妻被猛烈进入中| 韩国免费播放一级毛片| 亚洲日韩在线a不卡99精品| 欧美巨大性舒爽顶到了| 欧美成人免费在线观看| 人妻一区二区三区四区视频| 亚洲婷婷丁香在线| 色牛aV| 一级人妻性爱视频| 欧美Aⅴ| 黄页网站免费高清在线观看| 国产午夜激片Av毛片不卡| 97欧美性爱| 国产小u女在线观看| 五月婷婷基地| 国产按摩一区二区三区| www老逼91| 麻豆AV短剧| 久久精品视| 97中文综合| 超碰美国| A级片日韩欧美国产欧美视频精选观看| 精品人妻一区二区三区四区石在线| 强奸乱伦AV一天堂网| 亚洲 欧美 偷拍 唯美| a级成人毛片免费视频高清| 免费A V在线| 美女啊啊啊啊啊啊啊| 操人妻逼91| 亚洲人码13| 在线视频资源| 日韩一区二区精彩视频| 亚洲欧洲精品视频发布| 色婷婷电影| 亚洲一区二区三区麻豆传媒| 中文字幕第23区| 加勒比99999| 天堂69亚洲精品中文字| 国产 无码 一区二区| 激情综合五月天| 国产美女口爆吞精| 9久9久| www久久国产精品| 欧美人妻一区| 色综合中文字幕不卡| 亚洲999综合| 国产精品96久久久久久| 国产成人一级av88| 日日操天天操| 丁香婷婷激情五月天无毒不卡| 精品国产乱码久久久影院| 秋霞 色色| A片 AV一级在线播放观看免费| 天天透伊人| 尤物视频偷拍免费| 欧美不卡五十路| 欧美精品日韩一区二区| 超碰97资源大奶| 久久亚洲一区女同性恋中文字幕| 欧美一二三级精品在线| 4399成人黄A片| 高清肉丝中文无码| 嗯嗯啊啊操我| 日韩性爱高清免费视频| 麻豆AV96熟妇人妻| 94色色电影网| 另类图片五月天| 俄罗斯一区二区视频在线观看| 婷婷综合久久| 亚洲人久久久网| 成年人网站在线免费观看| 日韩成人综合网| 日韩精品电影| 日韩在线欧美精品一区二区| 99无码视频| 男人的天堂日韩| 国产亚洲日韩欧| 爽爽歪在线视频| 骚货操死你| 天天日天天干天天整| 丰满少妇高潮无码| 日本操逼视频免费| 99免费视频| 91高清欧美| ?亚洲伊人伊成久久人综合网| 亚洲一二三| 18禁止看精品中文字幕| 91狠| 97超碰欧美手机| 婷婷视频网| 我爱操| 新版天堂中文资源8在线| 97视频900| 国产Av超碰| 色狠人在线99| 国产精品 视频| 国产精品麻豆成人AV艾秋| 欧美—性—交—色| 丁香五月久久| 999热日韩精品| 大香蕉综合在线| 亚洲清纯综合| 性一交一乱一交A片久久四色| 日本 情色 1区2区3区| 岛园激情| 四虎884| 99热这里只有精| 日本加勒比无码专区| 91大学精品激情戏| 97视频免费播放| 日韩人体偷拍| 人人爱人人乐人人操| 夜夜高潮夜夜爽| 在线有码中文字幕| 夜精品久无码| 久久久久亚洲Aⅴ无码| 色69大色97香蕉| 99在线观看| 91视频综合网| 天天综合影院91| 五月婷婷六月丁香网址| 超碰无码五月97| 亚洲国产欧美中日韩成人综合视频| 天天综合91入口| 日韩精品一区二区三区四虎影视| 欧美亚洲情色| 884t在线| 另类小色呦| 9Ⅰ超碰| 狠肏骚人妻| 看一级特黄a大一片| 久久婷婷苹果| 人妻天天爽夜夜爽爽| 午夜视频黄| 九一国产精品| 亚州伊人色综台| 日韩中文字幕视频| 美女骚尻视频| 欧美不卡在线美女| 亚洲 小说 欧美 激情 另类| 亚洲性感丝袜诱惑在线观看| 2020国产精品| 精品国产Av无码久久久亚洲| 青草视频人妻在线观看| 色色操| 9国产超碰| 久久精品国产97欧美精品亚洲 | 国产9l 大屁股| 夜夜騷av、一區二區| 国产精品一区二区 尿失禁| 精品国产乱码久久久久久蜜臀| 日逼五月天| 综合色99| 国产精品久久久久久久AV大片| 亚洲欧美激情小说| 91色综合激情| 欧美啪啪女女| 日本操逼aaaaa| 大香蕉2017| 日本 免费 一区二区三区 久久香蕉| 欧美激情中文字幕另类小说| 一起草高清无码| 骚妻少妇精品性色无码四色A V| 国产精品情侣啪啪| 欧美性爱伊人| 秋霞一集毛片观看| 超碰精品97| 成人久久精品| 欧美黑人XXXⅩ高潮交| 日本性爱不卡视频| 日本伦乱九九九综合| 超碰欧美COM| 人妻内射一区二区在线视频| 超碰亚洲97| 色婷婷综合网站| 人妻人人做人人澡人人爽欧美一区| 大香蕉综合网| chaopen97久久| 精品176精品2| 熟妇人妻一区二区| 麻豆人妻精品一区二区| 温婉少妇玩3p| 亚洲成人在线高清| 五月天亚洲色图| 久操视频在线| 午夜福利在线合集| 九九英色视频| 18一区二区三区| 啊啊啊啊一区| 免费久久精品麻豆一区二区av| 一区二区三区黄片免费观看| 欧美成熟性爱精品| 清纯唯美亚洲综合| 欧美亚洲系列| 欧美丝袜91| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 97啪啪| 一区二区娱乐网站| 一区二区三区 日韩欧美| 黄色电影在线播放综合网站| 亚洲黄片免费在线播放| 日韩三级伊人| 国产高清成人免费视频| 久久系列| 九七超碰| 成人羞羞视频国产| 欧美精品宗合| 黄色无码高清黄色无码网站| 精品人妻一区二区免费蜜桃视频| 精品人妻一区二区三区鲁大师| 亚洲人妻日日日| www欧美91| 欧美 亚洲精品首页| 国产一线二线三线av| 亚洲av资源| 天久久久噜噜噜久久国产精品爽爽 | 热99这里有精品综合久久 | 日韩电影免费网站麻豆视频| 欧美日日人人天天| 九九九九精品在线| 99爱精品| 一区黄二区黄| 色婷婷婷五月天激情四射| 性性欧美| 狠狠操狠狠燥|