首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在不带着色器的Unity上将YUV420P转换为JPEG

在不带着色器的Unity上将YUV420P转换为JPEG
EN

Stack Overflow用户
提问于 2020-06-17 14:11:10
回答 1查看 158关注 0票数 1

我使用MagicLeap耳机和MLCamera应用程序接口来捕获一个原始视频捕获,它的输出是YUV_420_888,我假设它是YUV420P。接口分别返回yBuffer、uBuffer和vBuffer。我在没有位图的情况下在c#上组合这些通道有问题,因为我使用的是unity,我使用的是单声道。我正在尝试做的是组合这些通道,并将其发送到我的远程python服务器,以处理我捕获的图像。为了处理图像,它需要是一个完整的图像。我已经尝试使用Y平面并创建灰度图像,但是服务器无法处理它,所以我需要在客户端合并所有3个通道,然后将其压缩为更好的jpeg,因为它的大小急剧减小,我正在处理420x420大小的图像,尽管相机输出为1920x1080。在过去的一周半里,我尝试了不同的方法,但找不到像样的东西。有几种方法特别适用于安卓系统,但如果没有必要的话,我不想把它转换成NV21。我也看到过一个带有ARCore的,但我也不能使用那个,因为我使用的是MagicLeap。

PS:延迟和处理时间非常重要,所以如果有一种方法可以直接将YCbCr转换为jpeg,而不是将其转换为RGB,我认为这会对我的情况更有帮助,但我不知道是否可能。总的来说,我认为我缺乏一些基础知识,这阻碍了我更进一步的发展。

任何帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

发布于 2021-06-12 12:27:44

我以前也尝试过类似的东西,在YUV420的东西上敲了几个星期的头,但还是解决不了。最后,我买了这个库OpenCV for Unity。它有专门为MagicLeap定制的部件,包括从降低分辨率的摄像头读取帧以提高速度。我不确定它是如何做到实时的。也许在降低的分辨率下,是的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62431023

复制
相关文章
在Centos7上将Apache(httpd)切换为Nginx的过程记录
    近期要上线几个基于tornado+motor的移动端接口服务,众所周知,Apache和tornado天生八字不合,尤其apache对python3尤为的不友好,tornado和nginx才是木石前盟,另外由于apache目前系统占用确实比较高,不光进程数多,httpd竟然占用了200多M,太庞大,决定换为较轻量级,高并发的nginx。
用户9127725
2022/08/08
5100
在Centos7上将Apache(httpd)切换为Nginx的过程记录
C++屏幕截图 图片转JPEG
C#实现同屏的时候,频繁截屏内存并不能很好的释放,所以就打算用C++实现这部分的功能。
码客说
2021/07/13
2.3K1
FFmpeg 播放器视频渲染优化
前文中,我们已经利用 FFmpeg + OpenGLES + OpenSLES 实现了一个多媒体播放器,本文将在视频渲染方面对播放器进行优化。
字节流动
2020/09/22
3.2K0
Windows Xp下BMP位图转JPEG格式
   说明:此方法只能基于WinXp下可以用,在WinCe下,构造位图那一语句是无法正常运行的,不知道为什么,可能是WinCe下没有提供这么高级的函数吧。最后还是用C++通过IImageFactory接口来进行的格式转换的。
用户1170933
2022/05/10
1.2K0
jpg转nv12_jpeg改jpg
ubuntu下测试(需安装ffmpeg,width以及height按实际情况填写):
全栈程序员站长
2022/09/29
1.4K0
yuv420格式(微信图片存储路径)
YUV,分为三个分量,“Y”表示明亮度,也就是灰度值;“U”和”V”表示的则是色度,作用是描述影像色彩饱和度,用于指定像素的颜色。YUV主流的采样方式有三种:YUV4:4:4,YUV4:2:2,YUV4:2:0,这里主要介绍下YUV420。
全栈程序员站长
2022/07/28
2.1K0
yuv420格式(微信图片存储路径)
基础渲染系列(四)——光照(Unity)
这是关于渲染的系列教程的第四部分。上一部分是关于组合纹理的。这次,我们将研究如何计算光照。
放牛的星星
2020/07/10
2.7K0
基础渲染系列(四)——光照(Unity)
基础渲染系列(九)——复合材质
(温馨提示:本系列知识是循序渐进的,推荐第一次阅读的同学从第一章看起,链接在文章底部)
放牛的星星
2020/07/10
3.5K0
基础渲染系列(九)——复合材质
基础渲染系列(七)——阴影
(温馨提示:本系列知识是循序渐进的,推荐第一次阅读的同学从第一章看起,链接在文章底部)
放牛的星星
2020/07/10
4.3K0
基础渲染系列(七)——阴影
Unity基础教程系列(新)(五)——计算着色器(Rendering One Million Cubes)
这是关于学习使用Unity的基础知识的系列文章中的第五篇。这次,我们将使用计算着色器显著提高图形的分辨率。
放牛的星星
2021/03/10
4K0
Unity基础教程系列(新)(五)——计算着色器(Rendering One Million Cubes)
将jpeg图片显示在framebuffer上
点击(此处)折叠或打开 /************************************************** * example5.c * Author: T-bagwell * * Compile:gcc -Wall example5.c -o example5 *************************************************/ #include <stdio.h> #inclu
用户3765803
2019/03/05
1.2K0
Unity可编程渲染管线系列(三)光照(单通道 正向渲染)
这是涵盖Unity可编写脚本的渲染管线的教程系列的第三部分。这次,我们将通过一个Drawcall为每个对象最多着色8个灯光来增加对漫反射光照的支持。
放牛的星星
2020/08/04
2.3K0
Unity可编程渲染管线系列(三)光照(单通道 正向渲染)
《Unity Shader入门精要》笔记:基础篇(1)
小插曲:看到具体数学冷汗直冒,细一看,嗷不是那本书呀。《具体数学》:别听《Unity Shader入门精要》里面说什么程序员的三大浪漫,真程序员就该手撕《具体数学》!
[Sugar]
2022/09/21
1K0
2023-03-10:YUV420P像素数据编码为JPEG图片,请用go语言实现。
2023-03-10:YUV420P像素数据编码为JPEG图片,请用go语言实现。
福大大架构师每日一题
2023/03/10
4210
2023-03-10:YUV420P像素数据编码为JPEG图片,请用go语言实现。
Shader经验分享
流水线 1.应用阶段:(CPU)输出渲染图元,粗粒度剔除等 比如完全不在相机范围内的需要剔除,文件系统的粒子系统实现就用到粗粒度剔除。 2.几何阶段:(GPU)把顶点坐标转换到屏幕空间,包含了模型空间 到世界空间 到观察空间(相机视角view) 到齐次裁剪空间(投影project2维空间,四维矩阵,通过-w<x<w判断是否在裁剪空间) 到归一化设备坐标NDC(四维矩阵通过齐次除法,齐次坐标的w除以xyz实现归一化) 到屏幕空间(通过屏幕宽高和归一化坐标计算)。 a.顶点着色器:坐标变换和逐顶点光照,将顶点空间转换到齐次裁剪空间。 b.曲面细分着色器:可选 c.几何着色器:可选 d.裁剪:通过齐次裁剪坐标的-w<x<w判断不在视野范围内的部分或者全部裁剪,归一化。 e.屏幕映射:把NDC坐标转换为屏幕坐标 3.光栅化阶段:(GPU)把几何阶段传来的数据来产生屏幕上的像素,计算每个图元覆盖了哪些像素,计算他们的颜色、 a.三角形设置:计算网格的三角形表达式 b.三角形遍历:检查每个像素是否被网格覆盖,被覆盖就生成一个片元。 c.片元着色器:对片元进行渲染操作 d.逐片元操作:模板测试,深度测试 混合等 e.屏幕图像 ------------------------------------------------------- 矩阵: M*A=A*M的转置(M是矩阵,A是向量,该公式不适合矩阵与矩阵) 坐标转换: o.pos = mul(UNITY_MATRIX_MVP, v.vertex);顶点位置模型空间到齐次空间 o.worldNormal = mul((float3x3)_Object2World,v.normal);//游戏中正常的法向量转换,转换后法向量可能不与原切线垂直,但是不影响游戏显示,而且大部分显示也是差不多的。一般用这个就行了。 o.worldNormal = mul(v.normal, (float3x3)_World2Object);顶点法向量从模型空间转换到世界空间的精确算法,公式是用_Object2World该矩阵的逆转置矩阵去转换法线。然后通过换算得到该行。 ------------------------------------------------------- API: UNITY_MATRIX_MVP 将顶点方向矢量从模型空间变换到裁剪空间 UNITY_MATRIX_MV 将顶点方向矢量从模型空间变换到观察空间 UNITY_MATRIX_V 将顶点方向矢量从世界空间变换到观察空间 UNITY_MATRIX_P 将顶点方向矢量从观察空间变换到裁剪空间 UNITY_MATRIX_VP 将顶点方向矢量从世界空间变换到裁剪空间 UNITY_MATRIX_T_MV UNITY_MATRIX_MV的转置矩阵 UNITY_MATRIX_IT_MV UNITY_MATRIX_MV的逆转置矩阵,用于将法线从模型空间转换到观察空间 _Object2World将顶点方向矢量从模型空间变换到世界空间,矩阵。 _World2Object将顶点方向矢量从世界空间变换到模型空间,矩阵。 模型空间到世界空间的矩阵简称M矩阵,世界空间到View空间的矩阵简称V矩阵,View到Project空间的矩阵简称P矩阵。 --------------------------------------------- _WorldSpaceCameraPos该摄像机在世界空间中的坐标 _ProjectionParams _ScreenParams _ZBufferParams unity_OrthoParams unity_Cameraprojection unity_CameraInvProjection unity_CameraWorldClipPlanes[6]摄像机在世界坐标下的6个裁剪面,分别是左右上下近远、 ---------------------------- 1.表面着色器 void surf (Input IN, inout SurfaceOutput o) {}表面着色器,unity特殊封装的着色器 Input IN:可以引用外部定义输入参数 inout SurfaceOutput o:输出参数 struct SurfaceOutput//普通光照 { half3 Albedo;//纹理,反射率,是漫反射的颜色值 half3 Normal;//法线坐标 half3 Emission;//自发光颜色 half Specular;//高光,镜面反射系数 half Gloss;//光泽度 half Alpha;//alpha通道 } 基于物理的光照模型:金属工作流Surfa
bering
2019/12/03
2.1K0
基础渲染系列(十五)——延迟光照
这是关于渲染的系列教程的第15部分。在上一部分中,我们添加了雾。现在,我们将创建自己的延迟光照。
放牛的星星
2020/07/10
3.5K0
基础渲染系列(十五)——延迟光照
string转换为jsonarray_jsonobject转jsonarray
如果用的是fastjson 则导包为 import com.alibaba.fastjson.JSONObject
全栈程序员站长
2022/09/22
1.9K0
string转换为jsonarray_jsonobject转jsonarray
点击加载更多

相似问题

将JPEG 2000转换为JPEG

12

用ffmpeg将YUV420P转换为JPEG

23

将YV12 (yuv420p)转换为JPEG / Bitamp

157

如何使用ffmpeg的库将YUV420P图像转换为JPEG?

11

如何用Python将JPEG2000转换为JPEG?

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文