簡體   English   中英

在沒有着色器的 Unity 上將 YUV420P 轉換為 JPEG

[英]Converting YUV420P to JPEG on Unity without Shaders

我正在使用 MagicLeap Headset 和 MLCamera API 來捕獲原始視頻捕獲,其中 output 是 YUV_420_888,我假設是 YUV420P。 API 分別返回 yBuffer、uBuffer 和 vBuffer。 我無法在沒有 bitmap 的情況下在 c# 上組合這些通道,因為我使用的是統一我使用的是 Mono。 我想要做的是組合這些通道並將其發送到我的遠程 python 服務器以處理我捕獲的圖像。 要處理圖像,它需要是完整的圖像。 我嘗試只使用 Y 平面並創建灰度圖像,但服務器無法處理它,所以我需要在客戶端上組合所有 3 個通道,然后將其壓縮為更可取的 jpeg,因為尺寸急劇減小並且我正在處理盡管相機 output 為 1920x1080,但圖像尺寸為 420x420。 我在過去一周半嘗試不同的方法,但找不到像樣的東西。 有幾種方法特別適用於 Android 但如果我不需要,我不想將其轉換為 NV21。 我也看到了一個帶有 ARCore 的,但我也不能使用那個,因為我使用的是 MagicLeap。

PS:延遲和處理時間非常重要,所以如果有一種方法可以直接將 YCbCr 轉換為 jpeg 而無需將其轉換為 RGB,我認為它會更好地幫助我的情況,但我不知道這是否可能。 總的來說,我認為我缺乏一些阻礙我走得更遠的基本知識。

任何幫助是極大的贊賞!

我過去嘗試過類似的事情,在 YUV420 的東西上打了幾個星期,但無法解決。 最后,我為 Unity 購買了這個庫 OpenCV 它有專門為 MagicLeap 定制的部件,包括從相機讀取幀以降低分辨率以加快速度。 我不確定它是否可以實時管理。 也許在降低的分辨率下,是的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM