video timing-- VBP/VFP/HBP/HFP

2023-10-18 08:30
文章标签 video vfp timing vbp hbp hfp

本文主要是介绍video timing-- VBP/VFP/HBP/HFP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在RGB模式中,LCD数据的扫描是以行为单位的。HSYNC是水平同步信号。PCLK是象素时钟。ENABLE是数据使能信号,当它为高时,在PCLK的上升沿输出有效数据。P_DATA是输出的数据。
 水平同步信号的上升沿到ENABLE的上升沿的间隔称为HBP。把ENABLE的下降沿到水平同步信号的下升沿的间隔称为HFP。把水平同步信号的低电平(非有效电平)持续时间称为HSW。
 HSW存在的必要性:水平同步信号为低电平有效。在水平同步信号有效时,需要等待HBP的时间,才从数据线取数。由于水平同步信号的有效电平持续时间通常比无效电平长,因此占空比不是50%。无效电平短些比较好。
 HBP和HFP存在的必要性:从道理上说,LCD使用矩阵寻址这两个阶段完全可以没有。但是考虑到从前CRT电子枪行扫描时,需要一个返回时间,而且目前的制式中,在有效信号的两端分别加入了消隐时间。就是为了做到一致,这二者才出来的。
 

====================================================================
第一次调试lcd驱动的话是不是对下面的结构有点陌生,不知道那些值是如何得来的,当然我就属于其中的一个

点击(此处)折叠或打开

  1. static struct s3cfb_lcd lte480wv = {
  2.     .width    = 1024,//800,
  3.     .height    = 600,//480,
  4.     .bpp    = 24,//24,//32,
  5.     .freq    = 45,//45,//60

  6.     .timing = {  //这里主要会影响图像在LCD上显示的位置,偏移啥的
  7.         .h_fp    = 160,//210,//8,
  8.         .h_bp    = 160,//46,//13,
  9.         .h_sw    = 16,    // 3
  10.         .v_fp    = 12,//12,//15,//22, liao
  11.         .v_fpe    = 0,/*1,//0,*/
  12.         .v_bp    = 23,//22, liao
  13.         .v_bpe    = 0,/*1,//0,*/
  14.         .v_sw    = 2,//
  15.     },

  16.     .polarity = {  //这几个参数挺重要的,判断你极性是否要反转(0--normal,1---inverted)
  17.         .rise_vclk    = 0,
  18.         .inv_hsync    = 1,
  19.         .inv_vsync    = 1,
  20.         .inv_vden    = 0,
  21.     },
  22. };
好吧,言归正传,首先有必要理解几个定义:

一般TFTLCD时序图如下所示

1

我们先来理解下面引脚有寄存器中相关参数的意义吧

 

外部引脚信号:

 

VSYNC: 帧同步信号,表示扫描1帧的开始,一帧也就是LCD显示的一个画面。

HSYNC: 行同步信号,表示扫描1行的开始。

VDEN数据使能信号。

VD[23:0] : LCD像素数据输出端口。

VCLK像素时钟信号。

 

寄存器参数:

 

VSPW帧同步信号的脉宽,单位为1行(Line)的时间。

VFPD: 帧同步信号的前肩,单位为1行(Line)的时间。

VBPD: 帧同步信号的后肩,单位为1行(Line)的时间。

LINEVAL 帧显示尺寸-1,即屏行宽-1,对于800*480分配率的LCD屏,那么LINEVAL=480-1=479,请记住,是屏行宽,也就是LCD屏显示一帧数据所需要的行的数目。

 

HBPD行同步信号的后肩,单位为1VCLK的时间。

HFPD行同步信号的前肩,单位为1VCLK的时间。

HSPW行同步信号的脉宽,单位为1VCLK的时间。

HOZVAL行显示尺寸-1,即屏列宽-1,对于800*480分配率的LCD屏,那么HOZVAL=800-1=799,请记住,是屏列宽,也就是LCD屏显示一行数据所需要的像素(pixel)的数目。

 

由图1可知:

扫描一帧所需的时间:

=((VSPW+1)+(VBPD+1)+( LINEVAL+1)+(VFPD+1))个行时间。

 

扫描一行所所需的时间:

= ((HSPW+1)+(HSPD+1)+(HFPD+1)+ (HOZVAL+1))VCLK时间。

 

而一个VCLK时间由LCD寄存器VIDCON0内的CLKVAL决定:

=HCLK/(CLKVAL+1)  ------>这个公式是S3C2443LCD控制器的,其他CPU的不一定一样

 

因此扫描一帧所需的时间:

T=[(VSPW+1)+(VBPD+1)+(LINEVAL+1)+(VFPD+1)]*[(HSPW+1)+(HSPD+1)+(HFPD+1)+ (HOZVAL+1)]* HCLK/ (CLKVAL+1)

 

即帧频率为:1/T

 

1.首先来判断 HSYNC,VSYNC,VCLK, VDEN信号是否需要反转

 

这个其实还挺好判断的,主要就是通过你主控的介绍lcd的时序图,在结合你屏厂的spec文档的时序图就可以完全判断出来了

先看LCD控制器默认情况下送出来的TFT LCD屏的时序图:

再来看屏厂的提供的时序图

看上面的介绍应该知道需要反转HSYNC,VSYNC,VCLK信号输出,这样才能输出满足lcd所需要的时序图

 

再来看看timing这个结构体如何配置,如果提供下面这个参数就很好确定相关的数值了

 

h_fp  = (horizontal total time)- 1024

f_sw  =  (horizontal total time)- 1024 - h_fp    

 

当然,如果没有上面的介绍,其实也是可以通过时序图来得到的,不过限于篇幅的原因在这里就介绍了,有需要的话可以联系我huabinbin00@gmail.com

这篇关于video timing-- VBP/VFP/HBP/HFP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/231417

相关文章

Apple quietly slips WebRTC audio, video into Safari's WebKit spec

转自:http://www.zdnet.com/article/apple-quietly-slips-webrtc-audio-video-into-safaris-webkit-spec/?from=timeline&isappinstalled=0 http://www.zdnet.com/article/apple-quietly-slips-webrtc-audio-video-

MonoHuman: Animatable Human Neural Field from Monocular Video 翻译

MonoHuman:来自单目视频的可动画人类神经场 摘要。利用自由视图控制来动画化虚拟化身对于诸如虚拟现实和数字娱乐之类的各种应用来说是至关重要的。已有的研究试图利用神经辐射场(NeRF)的表征能力从单目视频中重建人体。最近的工作提出将变形网络移植到NeRF中,以进一步模拟人类神经场的动力学,从而动画化逼真的人类运动。然而,这种流水线要么依赖于姿态相关的表示,要么由于帧无关的优化而缺乏运动一致性

论文精读-Supervised Raw Video Denoising with a Benchmark Dataset on Dynamic Scenes

论文精读-Supervised Raw Video Denoising with a Benchmark Dataset on Dynamic Scenes 优势 1、构建了一个用于监督原始视频去噪的基准数据集。为了多次捕捉瞬间,我们手动为对象s创建运动。在高ISO模式下捕获每一时刻的噪声帧,并通过对多个噪声帧进行平均得到相应的干净帧。 2、有效的原始视频去噪网络(RViDeNet),通过探

HumanNeRF:Free-viewpoint Rendering of Moving People from Monocular Video 翻译

HumanNeRF:单目视频中运动人物的自由视点绘制 引言。我们介绍了一种自由视点渲染方法- HumanNeRF -它适用于一个给定的单眼视频ofa人类执行复杂的身体运动,例如,从YouTube的视频。我们的方法可以在任何帧暂停视频,并从任意新的摄像机视点或甚至针对该特定帧和身体姿势的完整360度摄像机路径渲染主体。这项任务特别具有挑战性,因为它需要合成身体的照片级真实感细节,如从输入视频中可能

Learning Temporal Regularity in Video Sequences——视频序列的时间规则性学习

Learning Temporal Regularity in Video Sequences CVPR2016 无监督视频异常事件检测早期工作 摘要 由于对“有意义”的定义不明确以及场景混乱,因此在较长的视频序列中感知有意义的活动是一个具有挑战性的问题。我们通过在非常有限的监督下使用多种来源学习常规运动模式的生成模型(称为规律性)来解决此问题。体来说,我们提出了两种基于自动编码器的方法,以

Segmentation简记-Multi-stream CNN based Video Semantic Segmentation for Automated Driving

创新点 1.RFCN & MSFCN 总结 网络结构如图所示。输入视频得到图像分割结果。 简单粗暴

Attribute Recognition简记1-Video-Based Pedestrian Attribute Recognition

创新点 1.行人属性库 2.行人属性识别的RNN框架及其池化策略 总结 先看看行人属性识别RNN结构: backbone是ResNet50,输出是每一帧的空间特征。这组特征被送到两个分支,分别是空间池化和时间建模。最后两种特征拼接。然后分类(FC)。 LSTM关注帧间变化。受cvpr《Recurrent Convolutional Network for Video-Based Person

VideoCrafter1:Open Diffusion models for high-quality video generation

https://zhuanlan.zhihu.com/p/677918122https://zhuanlan.zhihu.com/p/677918122 视频生成无论是文生视频,还是图生视频,图生视频这块普遍的操作还是将图片作为一个模态crossattention进unet进行去噪,这一步是需要训练的,svd除此之外,还将图片和noise做拼接,这一步,很多文生视频的方式通过通过这一步来扩展其成

在HarmonyOS中灵活运用Video组件实现视频播放

在现代应用开发中,视频播放功能变得越来越普遍,特别是在短视频和应用内部视频列表页面中。HarmonyOS提供的Video组件让开发者能够轻松集成视频播放功能,同时具备丰富的自定义选项和控制功能。在本文中,我们将深入探讨如何在HarmonyOS中灵活运用Video组件,从基础的播放控制到更高级的自定义功能。 1. Video组件的基础使用 Video组件是通过调用Video接口来创建的,接口的形

vue中使用video.js

标题 1.首先下载Video。js 2.引入:import Video from 'video.js' 3.页面中使用:  <video               style="display:none"               :id="'myVideo'+index"               class="video-js"