OpenGL ES

评测|抢鲜体验飞凌Linux版LS1028A系列嵌入式开发板

﹥>﹥吖頭↗ 提交于 2020-11-06 08:53:25
FET1028A-C 核心板基于NXP公司的Layerscape LS1028A设计,是对Layerscape产品线系列化的完善。 LayerscapeLS1028A工业应用处理器包括支持TSN的以太网交换机和以太网控制器,可支持融合的IT和OT网络。两个功能强大的64位Arm®v8内核支持工业控制的实时处理,以及物联网中边缘计算的虚拟机。集成的GPU和LCD控制器使人机接口(HMI)系统支持新一代接口。 面向工业应用的Armv8双处理器 4端口时间敏感网络交换机 2个具有时间敏感网络功能的以太网控制器 GPU和LCD控制器 可配置的加密分流引擎 PCI Express CAN总线 Layerscape LS1028A功能单元框图 OK1028A-C接口图 OK1028A-C开发平台(CPU/1.5GHz+内存/2GB+eMMC/8GB)支持5个Ethernet网络:1个1000Mbps SGMIIHE 和QSGMII引出的4个1000Mbps,以及PCIe2.0、SATA3.0、USB3.0、UART、IIC、SPI等接口,板载一颗16M的QSPIFlash和一颗8GB的eMMC。OK1028A-C平台支持QSPI启动和SD/eMMC启动,支持TF卡 提供了1个标准3.5mm耳机口,以及1个喇叭接口,支持飞凌配套的LVDS显示屏。支持uvc摄像头、支持M.2接口的网卡、支持4G

FFmpeg 开发(06):FFmpeg 播放器实现音视频同步的三种方式

て烟熏妆下的殇ゞ 提交于 2020-10-25 12:50:53
该文章首发于微信公众号:字节流动 FFmpeg 开发系列连载: FFmpeg 开发(01):FFmpeg 编译和集成 FFmpeg 开发(02):FFmpeg + ANativeWindow 实现视频解码播放 FFmpeg 开发(03):FFmpeg + OpenSLES 实现音频解码播放 FFmpeg 开发(04):FFmpeg + OpenGLES 实现音频可视化播放 FFmpeg 开发(05):FFmpeg + OpenGLES 实现视频解码播放和视频滤镜 前文中,我们基于 FFmpeg 利用 OpenGL ES 和 OpenSL ES 分别实现了对解码后视频和音频的渲染,本文将实现播放器的最后一个重要功能:音视频同步。 老人们经常说,播放器对音频和视频的播放没有绝对的静态的同步,只有相对的动态的同步,实际上音视频同步就是一个“你追我赶”的过程。 音视频的同步方式有 3 种,即:音视频向系统时钟同步、音频向视频同步及视频向音频同步。 音视频解码器结构 在实现音视频同步之前,我们先简单说下本文播放器的大致结构,方便后面实现不同的音视频同步方式。 如上图所示,音频解码和视频解码分别占用一个独立线程,线程里有一个解码循环,解码循环里不断对音视频编码数据进行解码,音视频解码帧不设置缓存 Buffer , 进行实时渲染,极大地方便了音视频同步的实现。 音视频解码线程独立分离的播放器模式

飞凌Linux版LS1028A嵌入式开发板测评分享

痞子三分冷 提交于 2020-10-25 06:45:41
FET1028A- C核心板 基于 NXP 公司的Layerscape LS1028A设计,是对Layerscape 产品线系列化的完善。 Layerscape LS1028A工业应用处理器包括支持TSN的以太网交换机和以太网控制器,可支持融合的IT和OT网络。两个功能强大的64位Arm®v8内核支持 工业控制 的实时处理,以及 物联网 中 边缘计算 的虚拟机。集成的GPU和L C D控制器使人机接口( HMI )系统支持新一代接口。 · 面向工业应用的Armv8双处理器 · 4端口时间敏感网络交换机 · 2个具有时间敏感网络功能的以太网控制器 · GPU和LCD控制器 · 可配置的加密分流引擎 · PCI Express · CAN总线 Layerscape LS1028A功能单元框图 OK1028A-C开发平台(CPU/1. 5G Hz +内存/2GB+eMMC/8GB)支持5个Ethernet网络:1个1000Mbps SGMII HE和QSGMII引出的4个1000Mbps,以及PCIe 2.0、SATA3.0、USB3.0、UA RT 、IIC、 SPI 等接口,板载一颗16M的QSPI Flash和一颗8GB的EMMC,OK1028A-C平台支持QSPI启动和SD/EMMC启动,支持TF 提供了1个标准3.5mm耳机口,以及1个喇叭接口,支持 飞凌 配套的LVDS显示屏

游戏开发中的利器TexturePacker实现游戏贴图打包

人盡茶涼 提交于 2020-10-17 23:34:13
著名的图片打包软件 TexturePacker ,只要是做游戏应用开发,几乎都会或多或少的用到它。 使用 TexturePacker 更多的性能优势在于手游上,因为无论 Android 或者 ios 系统使用的是 OpenGL ES 来渲染,所以我们要针对 OpenGL ES 来进行优化。 第一点:内存方面 , OpenGL ES 纹理要求宽和高都是 2 的 n 次幂的倍数。就是说,若start.png这张图片本身是480X320的话,那它在载入内存后其实是一张512X512的纹理。那它具体占用了多少内存呢?默认情况下,当在Cocos2D里加载一张图片时,对于每一个像素点使用4个字节(1个byte即8bit)来表示——分别代表red\green\blue\alpha透明通道,简称RGBA8888。这样的话,这张start.png图片在使用默认像素格式下所占内存为:512*512*4=1MB。所以我们可以考虑将小的图片拼成到大的图片,然后一起加载。 第二点:渲染速度方面 , OpenGL ES 要求尽量减少渲染时切换纹理和glDrawArray的呼叫,所以将图片拼成大图片,这样就减少了纹理的切换。所以使用 TexturePacker 是很有必要的。 TexturePacker所支持的游戏引擎更是相当广泛,主要有: Cocos2d-iPhone Corona(TM) SDK -

i.MX8Mmini与i.MX6的对比

陌路散爱 提交于 2020-10-07 03:42:11
在NXP i.mx8系列发布前,imx6系列一直是nxp imx系列的主力军,应用于工业物联、数据采集、车载产品等领域。在万物互联时代,对产品有了进一步的要求,更多的设备,更快的处理速度、更低的能耗,推动高性能、低能耗处理器不断更新。 启扬智能基于NXP i.MX8M Mini推出IAC-IMX8MM-CM,是启扬经典产品IAC-IMX6-CM的升级之作。 IAC-IMX6-CM VS IAC-IMX8MM-CM 启扬经典IAC-IMX6-CM IAC-IMX6-CM核心板基于ARM Cortex-A9处理器,兼容单双四核,频率可达1.0GHz;带有2D、3D图形加速器;支持1080p30视频编解码;集成IO、HDMI、MIPI、LVDS、USB、PCI-e、千兆网口等多种接口,可拓展性强,应用于消费、工业、汽车领域的嵌入式产品。 启扬新品IAC-IMX8MM-CM NXP i.mx8系列相对于i.mx6性能方面有了进一步的提升。启扬新品IAC-IMX8MM-CM核心板基于4 Cortex-A53内核+1 Cortex-M4实时处理器,微处理器M4可单独执行实时任务,达到更低功耗;核心采用14LPC FinFET 工艺技术构建,提供更快的速度和更高的电源效率;具备2D/3D GPU;支持 OpenGL ES 1.1/2.0/3.1, OpenCL, DirectX9.3

FFmpeg 开发(07):FFmpeg + OpenGLES 实现 3D 全景播放器

泪湿孤枕 提交于 2020-10-04 01:53:43
该文章首发于微信公众号:字节流动 FFmpeg 开发系列连载: FFmpeg 开发(01):FFmpeg 编译和集成 FFmpeg 开发(02):FFmpeg + ANativeWindow 实现视频解码播放 FFmpeg 开发(03):FFmpeg + OpenSLES 实现音频解码播放 FFmpeg 开发(04):FFmpeg + OpenGLES 实现音频可视化播放 FFmpeg 开发(05):FFmpeg + OpenGLES 实现视频解码播放和视频滤镜 FFmpeg 开发(06):FFmpeg 播放器实现音视频同步的三种方式 前文中,我们已经利用 FFmpeg + OpenGLES + OpenSLES 实现了一个多媒体播放器,本文将基于此播放器实现一个酷炫的 3D 全景播放器。 全景播放器原理 全景视频是由多台摄像机在一个位置同时向四面八方拍摄,最后经过后期拼接处理生成的。 用普通的多媒体播放器播放全景视频,画面会呈现出严重的拉伸和扭曲变形。 全景播放器将视频画面渲染到球面上,相当于从球心去观察内部球面,观察到的画面 360 度无死角,这也就是市面上大多数“ VR 盒子”的实现原理。 构建球面网格 全景播放器原理与普通播放器的本质区别在渲染图像部分,普通播放器只需将视频画面渲染到一个矩形平面上,而全景播放器需要将视频画面渲染到球面。 为实现全景播放器,我们只需要利用

openGL学习笔记三十九: FBO

笑着哭i 提交于 2020-08-14 13:53:44
PBuffer:   是opengl的扩展,在opengles 中称作surface,在一个应用程序中建立多个opengl对象,主要用途:离屏渲染(离开屏幕进行渲染),建立一个PBuffer就是建立一个opengl对象,这个opengl对象是在后台绘制,并不把数据绘制到我们的窗口上。 Frame Buffer Object(FBO):   帧缓冲对象,另一种离屏渲染方式,比PBuffer更加高效, opengl2.0以上才有的扩展功能。用于缓存一帧数据。   当创建一个fbo对象后,它并不占用显存,它只是一个对象,你可以给它绑定颜色缓冲区、深度缓冲区等等,(也可以不绑定颜色、深度等等缓冲区)。 相关函数: glGenFramebuffers ( 1 , & _FBOID ) ; //产生一个fbo对象 glBindFramebuffer ( GL_FRAMEBUFFER , _FBOID ) ; //绑定 告诉opengl这是一个framebuffer glGenRenderbuffers ( 1 , & _RBOID ) ; //产生一个reader buffer 绘制使用 glBindRenderbuffer ( GL_RENDERBUFFER , _RBOID ) ; // 告诉opengl这是一个reader buffer glRenderbufferStorage (

等等党的胜利:树莓派4首发8GB版,售价75刀,还可尝鲜64位操作系统

冷暖自知 提交于 2020-08-12 07:40:59
  机器之心报道    参与:Racoon、张倩、Jamin    树莓派4刚刚宣布了最新升级:新出8GB内存版本,售价75刀,就问你香不香?      去年 6 月,树莓派悄然发布了第四代产品 Raspberry Pi 4。这一新版本经过了从里到外的全面革新,带来了 2-4 倍的计算性能提升,还配置了新的操作系统,接口也全面升级。树莓派开发机构(Raspberry Pi Foundation)称,这款设备可以提供「与入门级 x86 PC 系统相媲美的桌面性能」。   推出一年,树莓派 4 已经卖出了近 300 万台。但美中不足的是,树莓派 4 的内存最大只有 4G。官方博客表示,树莓派使用的 BCM2711 芯片可以寻址高达 16GB 的 LPDDR4 SDRAM,但 8G 的 LPDDR4 封装一直是一个障碍,因为这个封装必须是为树莓派单独设计的。这使得 8GB 版本的研发周期要比预期中长一些。   不过在最近的这次更新中,开发团队表示,他们在合作伙伴美光的帮助下克服了这个障碍,带来了 8GB 的树莓派 4,售价 75 美元。      8GB 的树莓派是个什么概念?官博描述了这样一些应用场景:无论你是想编译、链接大型软件还是在上面运行繁重的服务器负载,这款树莓派都是你的最佳选择。   在硬件上,为了提供更高的峰值电流以匹配 8GB 内存版本的需求,新版本还从电路板右侧靠近

最新 iOS 框架整体梳理(三)

社会主义新天地 提交于 2020-08-10 03:51:07
这一篇得把介绍框架这个系列终结了,不能超过三篇了,不然太长了..... 还是老规矩,前面两篇的机票在下方: 最新 iOS 框架整体梳理(一) 最新 iOS 框架整体梳理(二) Part - 3 62、Metal MetalKit Metal ( [ˈmetl] ) 这是一个和 OpenGLES 类似的面向底层的图形处理接口,这也是苹果自己搞出来的,所以这个框架我还是推荐要有一个大概的了解。 Metal 系列教程(1)- Metal 介绍及基本使用 (系列文章三篇都是讲述 Metal 的,可以学习一下) iOS渐变二维码之Metal实现篇 官方文档 63、MetalPerdormanceShaders 其实这个 MetalPerdormanceShaders 也是属于Metal的内容,关于它的具体的使用我推荐一篇利用它组高斯迷糊的文章。 学习用MetalPerformanceShaders进行图像处理 官方文档 64、MetricKit 这是一个在 iOS 13 中新加入的框架,iOS 13 中推出了MetricKit,它用于收集和处理电池和性能指标。 iOS MetricsKit 收集电量和性能数据 官方文档 65、MobileCoreServices 要是在iOS10 以后在有一些APP之间跳转的时候是需要这个框架的,我也了解了一下关于这个框架

canvas ,webGL, svg

一世执手 提交于 2020-08-05 18:27:15
SVG只是一种 矢量图 形文件格式, 不仅现在的浏览器都支持,很多主流的系统也都支持。 Canvas 是HTML5新增的一个元素对象,名副其实就是一个画布,浏览器 js 配有相应的操作api,可以不再依赖其他的API或组件而直接绘图,相当于 2D的API 。 WebGL 是以 OpenGL ES 2.0 为基础的一套 浏览器 3D图形API (HTML5),在编程概念上与OpenGL ES 2.0 几乎是完全通用的,同样采用可编程渲染管线,也就是每个顶点的处理受到一小段Vertex Shader代码的控制,每个像素的绘制过程也受到一小段Fragment Shader代码的控制。WebGL主要是3D为主, 不过2D的绘图要求也可以变通来实现。 WebGL 无论如何都需要一个显示对象来呈现,这个对象就是 Canvas,仅此而已,WebGL不对Canvas有任何附加的操作API, 那部分属于浏览器js支持的范畴。 WebGL 也继承 OpenGL ES 2.0 的兼容性支持能力, 在不同的设备上做有限的支持,需要运行时查询。 Three.js 、Babylon.js、Blender4Web等是几种知名的 WebGL 开发框架,对 WebGL 基础操作做了大量的封装,可以拿来就用, 即使不了解 WebGL规范的细节。 d3.js 是采用svg的数据驱动Dom ,用来对数据进行可视化