日韩精品一区二区三区在线视频放-无码中文字幕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 9 9精品| 影音先锋乱| 97爱| a片亚洲一本通视频| 亚洲夜夜欢无码一区二区| 久久久四区| 久久 久久国内精品亚洲| 91精品大奶人妻| 免费观看性欧美一级| 日韩成人小视频| 欧美日韩资源在线| 99性爱| 欧美爱三级日韩久久| 俺去啦自拍| 天天日日本| 囯产乱伦一区二区三女| 婷婷去俺也去六月色| 97精品一区二区三区免费| 另类 综合 日韩 欧美 亚洲| 色色国产| 五月天婷婷基地| 51一区二区三区| 综合亚洲欧美精品日韩?v| 精品国产乱码久久久影院| 麻豆av一区二区三区| 人人操人人爽人人操人人| 4tube欧美女厕所| 久久久久久久久久久人妻| 8050午夜少妇无码| 久久久久久久国产视频| 26uuu欧美日韩| 国产精品爱欲| 亚洲激情综合另类男同| 精品人妻一区二区三区在| 91美女视频直播| 日韩中文9| 校园春色制服丝袜中文字亚洲| 国产亚洲日本精品在线| 天天做日日爱夜夜爽| 人人摸.人人色| 久久久久久99AV无码免费网站| 人妻少妇精品视频一区二区三区| 超碰欧美COM| 91在线国产后入风骚翘臀美女素人| 东北女人av| 91操操| 久草免费在线一区二区| 手机看片1025| 涩五月婷婷| 亚洲精品无码少妇久久| 激情文学网伊人| 天天色播亚洲综合网站| 日韩午夜啪啪视频| 日韩紧密久久| 日本精品88888888| 丝袜喷水在线| 久久久18禁| 久久久久国产| 精品人妻一区二区蜜桃视频| 97超碰欧美手机| 亚洲熟女综合一区二区| 日本成人A片网站| 日逼视频日本| 激情综合97| 夜夜操91744565| 久久仑合| 日本精品五区| 国产精品亚洲一级av第二区| 一线黄色免费性爱片| 手机在线看片免费人成视频| 狠狠穞A片一區二區三區| 国产人妻精品久久久一区二区三区 | 久久婷婷国产一区二区色| 99热这里只有精| 国产嫩草精品A88AV在线| 国偷自 一区二区| 天天影视91看看| 少妇综合网| 久久欲| 97婷婷色| 中国少妇XXXX做受| 亚洲欧美另类小说| 怡红院亚洲怡春院av| 后入合集| 美日韩成人| 欧美性爱伊人| 男人天堂网站| 亚洲欧洲日韩国产自在线| 色五月亚洲| 美女黑人91神马| 欧美大香蕉专区网| 97国产综合欧美| 日韩精品在线放| 国产精品国产自产高清AV| 久久久亚洲熟妇熟女| 国产无吗在线播放| 激情五月天丁香社区| 久操视频资源站公开| 97中文字幕色| 无码日韩人妻av一| 成人无码专区精品视频| 天天综合精品| 天堂俺去俺来也www久久婷婷| av在线免费一区二区| 日韩亚洲美女一区久久| 男人的天堂Va| 色哟哟1区2区| 日韩欧美成人性爱在线| 丝袜综合| 蜜臀99久久精品久久久久久| 日本三级韩三级99久久| 男女打扑克高清网站| 一牛一区二区三区久久| 亚洲精品蜜桃久久久| 久热伊人99re| 不卡一区二区日本视频| 欧美大香蕉久| 日韩人妻一区二区精品| 丝袜熟女2P| 99激情| 亚洲成人av色网| 欧美日韩亚洲天堂网| 亚洲中文字幕一区二区| 亚洲一卡二卡在线免费| 玖玖爱免费观看视频| 四虎影视永久在线观看精品免费网站| 岛国激情视频软件| 麻豆美女丝袜人妻中文| 亚洲色香| 三级日本一区二区三区| 亚洲aV性爱| 欧美同性恋 的搜索结果 - 91n| 国产 大胆 对白| 少妇色综合| 日韩99神马视频播放| 久久9亚洲| 777AV电影| 丁香五月激情综合国产| 久区视频| 江都AV在线| 老熟女乱子伦中文字幕一区二区| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 97爱综合| 91丝袜人妻| 欧美夜夜骑视频| 精品一区二区久久| 精品在线观看视频在线| 久久九操在线观看| 操逼啊啊啊91| JuliaAnnXXX888| 啊啊啊啊啊操我视频| 国产 v乱码一区二| 亚洲日韩美女中文字幕乱| a亚洲欧美色欲| 欧美96精品在线| 亚洲高潮影院| 日韩欧美偷拍美女视频| 大香樵伊人网| 综合操逼| 97爱亚洲| 欧美国产婷婷久久| 欧美久久人妻少妇一区二区| 天天综合精品| 日韩成人网址| 嫩草影院性色| 51一区二区三区| av天堂精品久久| 国产精品久久泡妞网站| 青青草女人天天干| 无码九九九九| 白丝jkav| 欧美天天综合在线| 亚州色阁| 99re欧美| 亚洲伊人久久综合97| 天天拍夜夜| 久久久久久久久久久久97| 超碰99在线| 97精品国产精品免费观看| 精品一区二区2| 一区三区啪啪| 午夜福利激情在线视频| 97综合国产| 亚洲文学偷乱拍啪啪啪啪| 久久久久成人亚洲国产| 99热精品在线观看| 高清无码91| 一牛影视成人片免费| 亚洲AV小说| 色爱天堂| 人人操人人操人妻人| 亚洲97成人在线观看| 人妻少妇色综合| 中文字幕乱妇免费视频| 精品无码一区二区三区| 操美女人妻| 日韩小电影| 蜜桃久久一区二区三区| 一直超碰| 成人免费毛片| 黄色无码高清黄色无码网站| 亚洲精品亚洲人成在线麻豆| 天堂性色| 91九九九馒头| xxx0国产在线播放| 国产家庭乱伦表演| 国产十八禁视频| AV中文在线可看| 日本www操操操| 強姦亂倫a| 四虎免费在线观看| 日韩内| 久久免费看高潮毛片韩国| 9+1视频网址| h无码动漫在线观看| 日韩一级性爱无码| 91久久免费视频互動交流| 2017天天操天天日| 亚洲色图 91| 亚洲欧美综合网站| 国产精品高朝久久久久久久| 久久99精品九九久久久婷婷| 亚洲欧洲第二视频在线观看色图| 岛国999| 97亚洲资源| 亚洲色堂免费视频| 欧中日成人免费影视| 日韩亚洲美女一区久久| 美女啊啊啊啊啊啊啊| 久久久久久久久久久六六| 九九99久久| 亚洲无码?第一页| 欧美日韩操操操| 乱伦熟女区| 欧洲熟妇xxXx欧美老妇裸体 | 亚洲和欧美裸体美女双飞视频| 97硬碰| 九月丁香婷婷| 日韩亚洲美州欧洲综三区一品在线| 99热综合| 蜜臀AV成人精品蜜臀| 国产第二页| 欧美色老汉| 97天天插| WWW操逼| 欧美色日本| 黑人精品久久97| 97久久精品国产| 亭亭在线资源| 人人操人人色网| 久久综合国产精品国产| 亚洲激情在线观看一区| 99在线精品观看99| 男女性扦B| 亚洲欧美综合| 亚洲综合五月天婷婷丁香| 蜜桃色色网站视频三区| 欧美综合传媒| 18禁中文字幕| 夜夜嗨AV蜜臀av| 国产蜜臀精品一区二区尤物| www..com操老师| 日本九九久久99播| 日日夜夜精品视频| 色拍偷亚洲| 青青草好吊| 嗯啊抽插大香蕉网页| 99精品丰满人妻无| 伊人性在线视频| 黄色欧美性爱视频| 一本一首道人妻少妇免费久久| 97在线观看| 另类图片五月| 农村女一级毛卡片| 东北女人av| 91色亚洲| 亚洲最大黄网| 国产人妖的免费的视频| 亚洲情色五月天 | 日韩午夜国产| 亚欧视频在线| 欧美日韩一区二区三区四区蜜桃| 久久免费老司机精品| 色爽——AV| 无码精品人妻一区二区三区妖精| 国产av色网| 精品婷婷| 久久av无码| 日日嗨AV一区二区夜夜| 久久五月综合| 日韩中文字幕国产| 亚洲中文sv| 亚洲国产剧情少妇激情| 不卡av在线中文字幕| 激情文学小说一区二区| 日韩一区二区精品视频| 天天操天天射天天日| 99re综合伊人| 刺激精品视频| 亚洲日韩一区电影| 99久久e免费热视| 91搞逼视频| 91操熟女视频| 精品一国2| 国产91美女高潮| 在线观看无码三级少妇| 人妻精品一区二区| 天天躁夜夜躁狠狠躁AV| 欧美白嫩女HD| 日本裸体久久色噜噜| 亚洲精品尤物yw在线影院| 中文字幕黄色一起草| 午夜精品久久久久久久99热影院| 久久国产视频性吧 | 日韩性爱视频在线免费观看| 色欧洲97| 性色乱AV一区二区| 91强热人妻| 熟妇xxxxx性春色| 操比国产| 国模无码一区二区三区在线| 国内偷自视频区视频综合 | 国产一区二区在线看| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 亚洲。天堂。日本在线观看| 91美女色视频亚洲| 亚洲不卡不卡中文字幕不卡| 看看小穴| 成人熟女视频一区二区三区| 中文字幕91综合| 丁香激情五月| 久久9亚洲| 国产日韩欧美三级片| 亚洲伊人a线观看视频| 亚洲阿v天堂无码z2018| 夜色AV无码手机在线影院| 日韩视频啪啪| 五月天婷婷社区| 欧美啪啪啪91| 亚洲欧美日韩免费观看| 最新岛国大片| 国产一区二区三区视频在线看| 久久伊人亚洲AV无码网站| 亚洲啪AⅤ永久无码| 成年女人黄网站| 国产AV超爽| 色色色综合| 亚洲熟女国产综合另类| 综合欧美日韩在线| 九九九九九九九九九九九九九九九女| 国产精品乱码久久久久久| 欧美人妖内射| 欧美97av| 黄色电影在线播放综合网站| 五月天综合网| 一道本久久棕合爱| 综合97久久| 欧美亚洲玖玖玖| 自拍盗摄一区| 超碰 另类 欧美| 色综九九九一区| 五月丁香黄色网| 欧美性爱三区二区| 男人的天堂色偷偷青青草视频婷婷网| 偷拍亚洲视频一区二区三区四区| a亚洲欧美色欲| 首页亚洲国产高跟丝袜诱惑视频| 九草九九九| 国产又黄又粗的视频| 日韩精品区二区三区不卡| 美日韩一二三区| 天天综合官网| 婷婷色色五月天| 欧洲一区二区三区四区在线观看| 国产在线播放成人免费| 国产亚洲 中文欧美久久| 日韩无码服务区| 欧美日韩亚洲天堂网| 亚洲91色| 人妻熟女av国产网站| 亚洲高清男人天堂| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 97日韩欧美亚洲| 天天色综亚洲91污| 色路综合| www.人人cao| 四虎永久在线精品免费网址| 亚洲九九视频| 亚洲高清视频在线观看| 国产精品午夜高潮呻吟久久av| 96麻豆精品一区二区三区| 久操网视频| 欧美超碰97| 日韩青久久| 中文字幕人妻色偷偷久久皮 | 欧美色性情| 性色乱AV一区二区| 欧美 综合 亚洲| 九九九九AV| 四虎影视永久在线免费| 特级大荫道BBwBBwBBW| 欧美色图自拍| 国产精品一二三在线看| 少妇无码太爽| 中韩中文字幕在线观看| 午夜精品久久久久久久久久久久久 | 先锋精品av色鲁| 天天日熟妇| 亚洲 欧美 小说| 情色五月天久久久| 精品日韩人妻精品一二三区| 日韩性爱免费观看视频| 亚洲美乱| 欧美色91| 动漫av中文| 91青青草| 日本一二区免费| 天天色图| 女同性恋一区二区三区精品视频| 亚洲天天自拍| 偷拍自拍在线视频观看| 天天视频网站黄| 欧美色999| 天堂性色| 91色拍| 亚洲高潮影院| 人妻酒店出差被中出免费在线播放| 亚洲国产成人精品无码专区| 一区操逼日比视频| 亚洲精品一二区| 黑人性暴力毛片| 91精品国久久久久久无码| 欧美日韩性爱视屏免费看了| 亚洲国产一级黄色视频| 色香91| 97网址www| 久久人人爽人人爽人人片Ⅴ| 大香蕉欧美伊| 美女91AV| 久久久爆乳翘臀一线天伦理视频| 天堂亚洲精品| 久久精品99| 亚洲有薄码区日本系列中文字幕| 9国产超碰| 97在线播放| 欧美亚洲涩涩| 国产精品午夜成人福利| 亚洲欧美中文日韩视频中国语| 日产操逼| 亚洲激情视频| chaopen97久久| 亚洲AV小说| 久草大| 殴美大黄片| 超碰在线香蕉| 国产麻豆福利av在线播放| 97在线免费观看视频| 东京热,男人的天堂| 欧美亚洲厕所精品偷拍91| 天天日日本| www.狠狠操| AV天天在线观看| 五月天婷婷小说| 99热这里只有精品8| 九九香蕉网| 乱伦av麻豆| 日本一区二区做爱的视频| 日韩一级成人毛片免费观看| 久久‘黄片视频| av天堂5| 狠狠干综合| 97任你吞精| 亚洲天堂中文字| 久久久久久精品免费看A级| 亚洲暴力强奸AV| 欧美亚洲日本激情在线| 成功精品影院| 性性欧美| 国内毛片四区| 在线亚洲 欧美 日本专区| 东北女人操逼| 精品无码一区二区三区| AV麻豆免费一区| 色官网色综合| 综合网色| 久久99草| 一区二区三区视频| 欧美gv在线观看| 深夜激情无码| 九九热免费国产视频婷婷伊人 | 免费看污网址| 欧美中文综合| 大伊香蕉在线视频免费| 精品人妻一区二区免费蜜桃| 黑丝少妇麻豆| 欧美性高潮| 无码操逼网| 中日无幕一二三四区| 99精品综合久久久久五月天| 日本1区2区不卡视频| 国产精品大香蕉| A一级色女| 操B视频日韩无码| A V少妇特黄三级| 久久中日麻豆| 亚洲黄色视频在线观看视频| 美国美女AV在线| 欧美色图片色哟哟| 中文字幕在线高清男人的天堂 | 黄页av| 欧美极度丰满熟妇hd| 好舒服视频| 97在线精品观看视频| 大香蕉免| 国产精品美女视频诱惑| 淫妻综合网| 九九九国产| 五月色综合| 欧美日韩在线小说 | 日韩AV无码中文一区二区| 97亚洲国产影视| 欧美操人视频| 亚洲一二三| 无码免费精品高清| 97在线免费公开视频| 操碰97| 欧美性爱第1 页| 麻豆AV96熟妇人妻| 亚洲色图 综合| 国产 日韩 另类 视频一区爱| 超碰在线1234区| 伊人91| 狠狠操狠狠操操| 偷拍欧美综合| 亚洲欧洲中文日韩女优乱码| 无码人妻精品一区二区三区九九| A片 AV一级在线播放观看免费| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 国产精品久久久蜜臀| 日韩激情啪啪啪| AV天堂因数| 4399成人黄A片| 看免费一级在线播放毛片| 超碰日韩美妻| 亚洲天堂另类小说男人| 最新日产中文在线麻豆| 日本久久女同性恋视频| 97亚洲国产| 日本一二区免费| 激情五月天丁香社区| a片自拍直播视频| 97久久久精品| 欧美综合骚| 岛国艾薇凹凸视频天堂| 欧美欧美啪啪视频| 久久成人东京热人妻| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 视频黄站| 97视频www| 天天操天天射青青草| 亚洲 国产 精品一区| 国产福利电影| 囯产精品久久久久久久久久梁医生 | 天天躁日日躁AAA片李宗瑞| 日本黄色精品专区网站| 美女被啪到深处抽搐视频| 国产精品久久久亚洲第一牛牛_在线观看| 嗯嗯,好大,好爽,好骚 | 日韩大香蕉AV影片| 久久久性少妇| 国产精品另类一区大香蕉| 欧美亚洲宗合色性图| 久久有碼| 亚洲的天堂网| 欧美伦乱| 欧美综合天天| 丝袜人妻av一区二区| 久久精品国产亚洲AV清纯| 亚州欧美色图| 欧美日韩大香蕉| 欧美的性爱网站免费| 久久久国产av美女私房| 隔壁邻居波多野结衣中文字幕| 91P0RNY大屁股人妻| 91狠狠综合久久久| 欧美色综合影院| 99热综合| 亚洲综合小视频小说在线观看| AV丝袜少妇| 久久中久文96| 曰韩中文人妻视频| 操逼操逼逼操操逼91| 99综合| 日本一二区免费| 欧美日本天堂| 蜜臀Av一区二区三区| 亚洲国产成人精品久久久国产成人一区二区 | 丰满人妻-区二区三区免费| 亚洲色天堂日韩中| 久操99| 欧美日韩人妻婷婷一区| 天天伊人| 国产精品免费视频人成| 欧美日韩在线小说| 九九九久久久| 欧美黄片视频在线观看免费| 青青草吊丝| 超碰97综合网| 国产曰批免费观看久久久| 亚洲人人操| 亚洲图片在线| 欧美人黑A片无码免视费| 色情乱伦AV| 伊人久久大香线综合无码| 成人小电影网站tex| 国产精品点击进入在线影院| 精品国产乱码久久久久A| 国产精品电| 无遮挡一级毛片视频免费的| 97超级久久强资源| 国产99999| 亚洲色久| 久久9精品| 日韩午夜精品一区二区三区电影| 国产91精品久久久久久久网曝门| 91美女视频在线观看| 国产精品老师| 91欧美丨精品丨入口| 亚洲人精品午夜不卡| 视频黄色国产一级| 日本中文字幕一区| 亚洲精品人妻在线| 日韩97视频| 精品一区二区成人| 亚洲大色堂| 国语国产操逼伊人AV网| 十八禁电影伊人网| 中文字幕一区二区三区蜜桃视频| 操逼片中文| av2014 日韩在线中文字幕| 岛国毛片手机在线观看| 97国产精品久久久久 | 老熟乱一区二区三区四区| 亚洲欧美成人在线| 亚洲色图欧美| 91高跟美女在线播放| 日本一区二区三区四区免费观看| 精品国产乱码久久久久久日本公司| 日本精品网站在线中文| 精品妇操一区二区三区| 二色av| 91视频精品| 久艹99| 91麻豆天美国产欧美| 一级AV性爱| 天天享受天天看| 久久精视频美日韩在线视频| 欧在线一二区| 蜜桃视频啊啊啊啊| 99r九九| 久久草在线综合视频| 婷婷丁香激情| 91中文字幕在线观看| 顶级少妇BT天堂| 日本3级一区二区免费| 影音先锋每日最新资源在线观看| 97久久精品不卡| a男人的天堂| 最新三级网址| 大象AV在线| 97久久综合网| 91欧美丝袜| 欧美日韩婷婷中文| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 精品一区二区三区蜜桃臀赵总 | 色色综合97| 日韩国语字幕| 偷拍伦理视频| 精品久久久久,69国产成人精| 久久精品色欧美aⅴ一区二区| 夜夜草天天| 日韩成人性日韩成人性爱视频在线免费观看 | 人妻熟女一区在| 人妻系列无码专区中文有码| 三级精品三级在线观看| 97色操| 日韩欧美~中文字| 精人妻无码一区二区三区伊人直播 | JIZZJIZZ国产精品喷水| 亚洲综合精品国产一区| 亚洲av淫乱| 欧美成人一区二区三区在线播放| 另类一区| 激情六月天| 91婷婷伊人狠人| 蜜臀亚洲中文| 97 九色| 91爰爱欧美| 污电影在线观看| 大香蕉中文aV在线| 天天日美女的B| 超碰精品97| 日本一级性爱| 色色五月天激情| 久青草影院| 亚洲资源网| 久久久性| 日韩性爱1级片视频| 亚洲综合色在线| 99热亚洲天堂| 亚洲偷拍自拍在线视频| 久九色| 亚洲一二三四区在线免费看视频| 色色五月天激情| 男女猛烈无遮掩视频免费软件| 国产精品不卡一区二区三区| 国语对白在线播放视频| 日本操逼视频免费| 精品国产久热在线观看| 午夜后入| 亚洲午夜蜜臀| 国产路线专区| 狠狠色噜噜狠狠狠狠2018| a一区二区三区乱码在线| 亚洲一卡2卡3卡4卡乱码网站| 色官网在线| 人妻激情另类| 96精品一区| 日韩精品资源专区二区| xxxx网站亚洲精品| 久久久一级| 亚洲日韩熟女人妻高清在线| 中文三一区| 一个国产在线综合网站| 成人综合久久精品色婷婷| 99成人| 岛国大片国产| 精品射1999| 日韩精品一区二区高清| 看大黄色大片原件| 亚洲国产欧美中日韩成人综合视频| 五月婷视频| 亚洲视频小说| 久超碰在| 超碰9 7女人| 国产乱码精品一区二区三区四川| 日本羞羞的视频在线播放| 九九免费影片| 久久久久久中文| 久久久久久大| 一区二区三区 丝袜 高跟 美腿| 精品中文字幕第一页| 青青草久久一区网| 脫衣舞一区二区三区| 91网站在线播放| 色小视频蜜乳| 青青久草| 久久无码成人| 国内毛片热久久思思热| 干b在线性社区| 久久亚洲天天做| 无码一区二区三区四区五区六区七区八区九区十区视频 | 午夜天堂精品久久久久91| 亚洲欧洲无码一区夜| 欧美性爱一级操| AV在线播放网址| 成人性爱全视频观看| 91熟女视频网| 蜜臀亚洲中文| 黑人精品XXX一区一二区| 9久久精品| 中文字幕精品一区欧美| 色九月综合| 性做久久久久久久| 性爱久久| 五月婷婷基地| 国产AV线| 日本韩欧美在线播放a| 污污污8888| 国产精品一区av在线| 中文字幕国产精品1区| 久久9久| 激情五月丁香五月| 九久久精| 日韩av乱伦| 青青伊人加勒比海| 日韩欧美大力操| 乱理日韩中文| 黄色av网站在线播放| 九一综合精品视品av| 国产精品视频91久久| 男女91| 18禁看网站一区| 欧美亚洲一区二区久久久婷精品大包诱| 国产精品香蕉| 国产精品网站免费| 不卡中文字幕aⅴ在线| a在线观看| 97超碰人妻| 99999精品视频| 国产日韩色综合| 亚洲自拍一区夜夜操| 一区操逼日比视频| 操淫穴亚洲五月丁香 | 黄片在线免费在线观看| 国产91丝袜在线播放蜜月| 婷婷久久网| 亚洲一区二区三区婷婷| 麻豆久久久久久久久丝袜| 尤物av网站免费在线播放| 欧美色图私拍91| 亚欧性爱无码| 国产精品97视频| 嗯嗯嗯啊啊啊在线免费观看| 高清无码在线播放网站| 91无码人妻| 亚洲另类综合欧美| 久久国产AⅤ| 少妇高潮喷水无套久久久久久| 在线看免费无码AV天堂的| 97爱爱| 东京热精品97综合网| 2024人人操人人摸| 天天澡天天爽日日AV| 夜夜操中文字幕| 这里都是精品在线观看| 狠狠久久手机视频精品| 人妻黑丝袜电影| 欧美图片偷拍| 在线岛| 蜜臀中文字幕| 亚洲少妇在线影音| caorenqi shipin| 国产精品人妻一区二区| 91青青| 91美女视频在线| 婷婷综合网站| 国产男女边吃边摸视频网站| 国内毛片四区| 夜夜狼人妻| 日本一级一级一级一级| 日韩熟女操逼| 日韩熟女精一区二区三区不卡| 成人老鸭窝人人在线视频| 五月婷婷激情网| 啪啪啪东京| 国产一国产一级毛片古装| 中文字幕AV片| 有码人妻系列| 亚洲欧美日韩二区视频| aa片毛片| 欧美少妇性乱| 欧美中文字幕男人天堂久久精品 | 国语对白露脸XXXXXX| 精品大全99999| 成人久久精品| 尻女朋友一夜| 另类在线| 欧美人妻精品一区二区| 性天堂| 午夜福利一区二区三区四区五区色婷婷| 日韩少妇丰满亚洲| 99久热| 成人网址在线观看| 人人 操人人 操人人| 超碰色综合| 干b网| 高清孕妇孕交 交孕妇| 五月天激情网站| 夜色AV无码手机在线影院| 九月激情婷婷| 97色网| 91处女在线观看| 美女91网| 亚洲成成熟女人综合一区二区| 日欧毛片久久| 蜜臀亚洲综合一二三四区| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 自拍偷拍2025在线观看| 伊人久久综合影院| 日本性爱欧美性爱| 日韩无码操逼片| 草莓精品视频在线免费观看| 亚洲欧美成人网站AAA| 欧美综合天天| 蜜臀AV午夜精品久| 亚洲国产97| 亚洲凸凹超碰成人| 99热18这里只有精品| 欧中日成人免费影视| 另类综合另类| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 在线观看一级α片刺激高潮视频| 亚州色综合| 97香蕉网| 男女无套 免费网站| 操屄日韩| 天天视频网站黄| 人妻 丝袜美腿 中文字幕| 国产狂喷潮在线精品| 欧美99999| 亚洲啪啪综合?v一区综合精品区| 日本成a人v网站在线观看| 91在线欧美| 精品国产一区二区三区在线播出| 熟女乱3伦999| 欧美一区二区三区入口| 中文字幕精品一区欧美| 久久久久九九九| 伊人久操| 天天综合精品| 色香色香欲天天天影视综合网| 精品国产污一区二区三区| 黑丝少妇| 亚洲国产综合久久天堂| 狠狠躁天天躁日日躁| 亚洲色丰满少妇高潮| 国产又粗又长的视频| 99热婷婷一区二区三| yaouchengrenav| 强奸乱伦AV网址| 亚洲最大无码中文字幕网站 | 国产v片在线免费观看| 成人美女av| 我爱大香蕉| 裸模AV女优| 久久久久久久六六| 亚洲天堂2020| 99久久精品欧美国产| 天天躁日日躁AAA片李宗瑞| 久久久久国产无av| 嗯……啊…嗯嗯…啊…好舒服| 性色一线| 成人十八禁日韩欧美一二三| 成人性交午夜免费片| 欧美一级A一级a爱片久久| 2018天天干在线视频| 亚洲最大无码中文字幕网站| 91暧暧| 五月天加勒比啪| 91老司机在线| 一级性爱啪啪视频| 婷婷丁香六月| 久久久精品久久| 激情一区二区| 国产精品久久久久久片| 六月丁香网| 色综合久久夜色精品国产天堂| 欧美人妻一区二区| 国产美女销魂在线观看不卡| 亚洲码专区| 屌妞视频久久久久久久久久久久| 人人妻人人爽| 尤物网址| 亚洲AV乱码专区国产噜噜亚洲| 天综合网欧美| 日本潮催一卡操| 曰韩成人免费视频| 99国产精品免费| 日本大香蕉综合网红本杳社区| 婷婷丁香九月| 一区二区三区男女操逼黄色小电影| 日日妻色网| 国产三级资源在线观看| 性吧在线视频| 人人操超碰在线| 以及麻豆国产入口在线观看免费| 亚洲一区二区麻豆影院| 少好三P| www.91人妻.com| 青青草原综合久久大伊人精品| 成人草草视频| 午夜精品探花| 日韩78m视频| 国产黄色小视频网站| 亚洲中文字幕有码视频一区二区三区| 亚洲熟女少妇免费视频| 韩国午夜理伦三级好看| 狠狠色伊人亚洲综合网站色| 一区二区激情国产熟女| WWW美腿丝袜香蕉中文| 日韩欧美aⅴ综合网站发布| 韩国女主播青草在线| 神马久久久久久| 亚州少妇| 国内毛片四区| 亚洲色欲天天人妻无码系列专区| 91天美传媒在线观看| 午夜激情成人在线观看| 久久久久久91香蕉国产| 百度百度日本操逼| 67914在线精品观看| 91亚洲人| 久草精品热视| 激情欧美97| 大香交伊人网| 亚洲精品少妇| 久久黄黄| 日韩性爱小视频| 国产精品三级视频网站 | 97超碰69| 午夜爽爽爽| 一本一道人妻久久一区二区三区 | av在线人气| 成人自拍三级在线观看| 日韩精品第3页| 黄色人人| 久久精品无码不卡| 久久婷婷视频| 日韩三级伊人| 美女尤物福利视频| 亚洲色图欧美一区二区不卡| 欧美午夜色妇色鬼| 人妻 中文 日韩| 熟女熟妇一区二区三区视频| 中国探花熟女| 综合欧美亚洲| 美欧老女人97| 日本亚洲熟女视频| 天天综合91入口| 欧美色棕合| 国产日韩精品无码去免费专区国产| 天堂资源站| 日韩av在线播放不卡| 美女诱惑久久| 97露脸精品丝袜| 日本在线视频导航| 中国黄色特级精品一区二区三区片| 一区三区啪啪| 操碰97| 超碰97久久国| 大香樵伊人网| 99久久久无码国产精品性啊聊| 人妻无码久久一区二区三区免费| 曰韩成人免费视频| 亚洲男人天堂av| 中文字幕丝袜美腿| 亚洲图片色图欧美另类| oumeisetupian| 黄色电影观看久久9| 97国产精选| 婷婷深爱五月| 啊啊啊啊啊在线| 日韩精彩免费| 久久欲| 怡红院亚洲怡春院av| 九九综合| 超碰在线香蕉| 激情一区二区| 无码人妻系列少妇| 99精品视频在线观看| 女同女同恋久久级三级| 亚洲毛片久久| 欧美超碰人妻97| 97网址www| 在线观看色视频| 日韩精品资源专区二区| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 日韩av不卡在线看| 欧美综合第一页| 久久久久网站-538在线视频-欧美永久乱码 | 精品人妻一二三| 综合一区二区影视| 国产白嫩精品久久| 免费视频无码| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲 中文字幕 精品| 色天天野狼综合社区| 美性中文综合网| 天天操女人| 亚洲综合色网| 亚洲无码一区二区三区三州| 中文操逼字幕| 久久中文字幕在线观看| 麻豆区久久久久亚| 亚爽爽爽爽爽爽爽爽| 美女啊啊啊啊pc| 美女天天干| 久草精品一区 | 激情四射五月天| 粉嫩av在线| 伦理第一页| 久久亚洲一区女同性恋中文字幕| 中出后入| 99re这里| 欧美黄页在线| 亚洲精品色| 成人av免费观看| 女人高潮抽搐喷水视频网站| 久久社区一区二区三区| 91视频女生| 999九九九九国产动| 欧美色图在线视频少妇| 婷婷五月天无码| 色综和网| 999综合色| 国产60区。| 大香蕉国产中文自拍| 午夜天堂精品久久| 国产欧美日韩在线观看麻豆传媒公司| 激情小说五月天| 精品人妻伦一二三区久久| 婷婷五月天激情网| 极品白嫩美女白浆成人福利在线看| 啪啪啪精品视频| 久久av一级av少妇av高潮| 懂色av色欲av蜜臀av| 欧美老妇曰批的视频| 亚洲av国产av综合av卡| 韩三级a视频在线观看| 天天谢天天干| 乱抡国产91| 欧美亚洲一级在线观看| 午夜激情成人在线观看| 麻豆视频国产一区二区| 日韩中文字幕视频| 大香蕉黄色一级片免费看| 超碰日韩人妻| 免费又黄又裸乳的视频| 蜜乳AV网址| 日本www操操操| 午夜精品视频777| 97在线视频网站| 97就爱干| 久久这里只精品| 九久精品| 精品丰满熟妇人妻一区| 亚洲国产日韩精品久久久| 屁股久久久久久| 国产农村妇女毛片精品久久| 熟女人妻一区二区三区免费看| 97在线观看| 亚州男人天堂| 亚洲性爱成人| 一区操逼日比视频| 岛国毛片手机在线观看| 秋霞无码av鲁丝片一区| 婷婷五月天色色| 日韩内射视频| 超碰在线人妻不卡| 破处bbq| 女生91网站| 高清有码一区二区| 一线黄色免费性爱片| 色5月婷婷| 欧美日韩m| 综合视频91| 精品九区| 国产强奸乱伦无码视频| 中国女人内射6XXXXX| 日韩人妻精品久久久久| 亚洲熟妇丝袜在线观看| 丰满人妻一区二区中文| 麻豆天美传媒毛片|