文章图片
数字视频的基本概念源自于模拟视频。对于模拟视频我们可以这样理解:视频可以分解为若干个基本视点(像素),每个像素都有独立的色彩信息,在屏幕上依次将 这些点用电子枪按照行和列打出来,就形成了一幅完整画面,连续的打出画面,利用人眼的延迟特点就可以“显示”动态的图像了。
水平消隐:电子枪从左到右画出象素,它每次只能画一条扫描线,画下一条之前要先回到左边并做好画下一条扫描线的准备,这之间有一段时间叫做水平消隐(HBlank)。
垂直消隐:在画完全部256条扫描线之后它又回到屏幕左上角准备下一次画屏幕(帧),这之间的一段时间就是垂直消隐(VBlank)。电子枪就是在不断的走‘之’字形。
LCD驱动程序中的pixclock的计算方法:
pixclock/pixelclock/dotclock = (x向分辨率+左空边+右空边+HSYNC长度)* (y向分辨率+上空边+下空边+YSYNC长度)*整屏的刷新率[一秒钟多少张图片]
pixclock/pixelclock/dotclock = fframe × (X + HBP + HFP+HSPW) × (Y + VBP + VFP+VSPW)(单位:MHz)
pixclock/pixelclock/dotclock = 10的12次方/dotclock= 10的12次方/(fframe × (X + HBP + HFP+HSPW) × (Y + VBP + VFP+VSPW)) (单位:皮秒)
pixclock/pixelclock/dotclock = 10的12次方/dotclock其中dotclock是视频硬件在显示器上绘制像素的速率
[[[单位不同的时候注意单位.换算起来不一样]]]
"mipi"
? H-total = HorizontalActive + HorizontalFrontPorch + HorizontalBackPorch + HorizontalSyncPulse + HorizontalSyncSkew
? V-total = VerticalActive + VerticalFrontPorch + VerticalBackPorch + VerticalSyncPulse + VerticalSyncSkew
? Total pixel = H-total x V-total x 60 (Hz)
? Bitclk = Total pixel x bpp (byte) x 8/lane number
? Byteclk = bitclk/8
? Dsiclk = Byteclk x lane number
? Dsipclk(Dsi pixel clock) = dsiclk/bpp (byte)
1、DSI vdo mode下的数据速率data_rate的大致计算公式为:
[Bitclk]Data rate= (Height+VSA+VBP+VFP) * (Width+HSA+HBP+HFP) * total_bit_per_pixel * frame_per_second / total_lane_num
888:24 666:18一秒钟多少帧几路数据
2、DSI cmd mode下的数据速率data_rate的大致计算公式为:
[Bitclk]Data rate= width*height*1.2* total_bit_per_pixel*frame_per_second/total_lane_num
NOTE:
http://read.pudn.com/downloads222/doc/1046129/CEA861D.pdf
【kernel|lcd:mipi各种clock计算】附带一份关于timing的行业标准,异常重要
推荐阅读
- Linux|__raw_writel, writel_relaxed 和 writel的区别
- Linux|Linux设备模型(3)_Uevent
- Linux|Android 电池管理系统-驱动部分
- linux内核相关|menuconfig内核配置过程
- 嵌入式|linux_内核移植方法及错误
- 解决方案|外部RTC s35390a调试(hwclock: select() to /dev/rtc1 to wait for clock tick timed out)
- STM32|Arduino STM32制作教程
- 服务器|nf_conntrack: table full, dropping packet 连接跟踪表已满,开始丢包 的解决办法
- Linux--Learn|Linux关机重启流程分析