- 博客(8)
- 收藏
- 关注
原创 DRM 软件开发 (六)HDR 原理和调用流程
HDR(高动态范围)是一种图像处理技术,用于扩展显示设备的亮度、对比度和色彩范围,使图像更加接近自然界的真实效果。通过增加画面的明暗对比,细节更加丰富,尤其是在阴影和高光区域,HDR 提供了更强的视觉冲击力。与传统的 SDR(标准动态范围) 内容相比,HDR 内容在高亮和低亮区域的表现更加生动。
2025-03-26 16:08:36
713
原创 DRM 硬件篇 (一)LVDS / MIPI_DSI 锁相环
介绍一种由 数字鉴频鉴相器(Digital PFD)、DSP数字低通滤波器(Digital LPF)、多核模拟压控振荡器(LC VCO)组成的锁相环原理
2025-03-25 16:26:07
1112
原创 DRM 软件开发 (五)ChatGPT 与 DeepSeek 写 DMA-BUF程序
V4L2通过获取 DMA-BUF 文件描述符,避免了内存拷贝。libdrm使用将 DMA-BUF 文件描述符转换为显卡可以理解的 DRM 句柄,并创建 framebuffer。通过将 framebuffer 数据渲染到屏幕上。这种方式确保了数据传输过程中的零拷贝,直接利用 GPU 显示摄像头数据,效率更高。
2025-02-08 15:24:06
947
原创 DRM 软件开发 (四)drm_hwcomposer 调用流程
我们知道SurfaceFlinger可以使用OpenGLES合成Layer,但是这需要占用并消耗大量的GPU资源。大多数GPU都没有针对图层合成进行优化,当SurfaceFlinger通过GPU合成图层时,应用程序无法使用GPU进行自己的渲染。
2024-12-26 10:32:40
1418
原创 DRM 软件开发
原文链接:https://blog.csdn.net/hexiaolong2009/article/details/83720940DRM是Linux目前主流的图形显示框架,相比FB架构,DRM更能适应当前日益更新的显示硬件。比如FB原生不支持多层合成,不支持VSYNC,不支持DMA-BUF,不支持异步更新,不支持fence机制等等,而这些功能DRM原生都支持。同时DRM可以统一管理GPU和Display驱动,使得软件架构更为统一,方便管理和维护。
2024-11-05 17:23:39
453
原创 DRM 软件开发 (二)最简单的DRM应用程序调用流程
上面的代码主要关注下面几个函数上面代码最关键的函数,该函数需要crtc_idfb_iddrm_mode这几个参数。可以看到,几乎所有的代码都是为了该函数能够顺利传参而编写的:为了获取crtc_id和,需要调用为了获取fb_id,需要调用为了获取drm_mode,需要调用通过调用,整个底层显示pipeline硬件就都初始化好了,并且在屏幕上显示出了FB的内容,纯白色画面。
2024-11-01 16:02:04
1766
2
原创 DRM 软件开发 (三)Libdrm 之 property 分析与应用举例
DRM是Linux内核层的显示驱动框架。它把显示功能封装成 open/close/ioctl 等标准接口,用户空间的程序调用这些接口,驱动设备,显示数据。libdrm库封装了DRM driver提供的这些接口。通过libdrm库,程序可以间接调用DRM Driver。DRM驱动会在/dev/dri下创建3个设备节点:使用drmOpen()打开设备。它根据指定的name和busid,在上述三个设备中选择匹配的节点。也可以使用open(),直接打开指定设备。1.3. Capability
2024-10-31 17:26:55
2324
原创 DRM 软件开发 (一)Component 分析与应用举例
display和camera等这种框架会涉及到很多模块,像 Amlogic TV 方案中,里面有 Vout,Vbyone,mipi,hdmi,backlightlight,localdimming 等等其他模块;模块之间会存在依赖,就需要考虑加载顺序。虽然内核也提供了像core_initcall,arch_initcall,late_initcall这些接口控制加载驱动的顺序,但是使用不够灵活。而component就可以达到这种控制整个流程的作用。
2024-10-31 16:29:36
1797
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人