DP与HDMI、MIPI各种协议介绍、行/场消影时钟计算

2023-10-25 09:50

本文主要是介绍DP与HDMI、MIPI各种协议介绍、行/场消影时钟计算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1. DP(display port)和HDMI

2. MIPI的各种协议

3. 行场消影

4. DP/HDMI/MIPI的区别

4.1 controller的区别

4.2 phy的区别

4.3 hdmi的时钟关系

 4.4 hdmi IPI接口支持的格式


1. DP(display port)和HDMI

这两种都是高速高质量多媒体传输协议。同时包括音视频的传输。

2. MIPI的各种协议

MIPI(mobile industry processor interface)是为移动产业制定的一系列处理接口。

在这里主要介绍视频图像相关的 CSI和DSI协议。

CSI:camera serial interface。相机端的高速串行接口

DSI:display serial interface 。显示端的高速串行接口

Understanding MIPI Interface - 知乎1. 简介移动产业需要一个标准的,强大的,可扩展的,低功耗,且支持移动设备的多种成像解决方案的摄像机接口。在摄像机领域,传感器与单片机之间的接口标准有很多,如UART、I2C、I2S、SPI、SDIO等串行接口,同时也…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/100476927

 详解MIPI协议 详解MIPI协议icon-default.png?t=N7T8http://www.360doc.com/content/21/0802/09/38894361_989167945.shtml

3. 行场消影

在camera和display这两端都会有消隐的概念在里面。

在图像和视频的采集端camera,由于扫描像素是从左到右,从上到下,在像素行尾和帧尾分别需要换行从头开始和换帧从右下到左上的过程。就分别对应了行消隐和场消隐。

数字液晶显示消隐区,行消隐,场消隐,消隐前肩,消隐后肩等基本概念icon-default.png?t=N7T8https://blog.csdn.net/yh13572438258/article/details/121383553?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_default&utm_relevant_index=1数字图像信号水平消隐,垂直消隐,前肩,后肩等基本概念_re_call的博客-CSDN博客_前肩后肩在做数字图像处理时,必然要接触比如水平消隐,垂直消隐,前肩,后肩等基本概念,下面图示了水平前肩,水平后肩,垂直前肩和垂直后肩。数字视频的基本概念源自于模拟视频,因为先有模拟显示器后有数字显示器的。对于模拟视频我们可以这样理解:视频可以分解为帧,每帧分为为若干个基本视点(像素),每个像素都有独立的色彩信息,在屏幕上依次将这些点用电子枪按照行和列打出来,就形成了一幅完整画面,连续的打出画面,利用人...https://blog.csdn.net/re_call/article/details/105756273

4. DP/HDMI/MIPI的区别

        这些都是音视频传输协议,提出这些协议的机构不同,它们各自的应用场景也不同,因为场景的不同会导致各自支持的格式,带宽,传输距离的差别。        

        DP是一个由PC及芯片制造商联盟开发,视频电子标准协会(VESA)标准化的数字式视频接口标准。传输距离在10m。可以传输音视频。只支持progressive,不支持interlaced

        HDMI是开始是由 日立、松下、飞利浦、SiliconImage、索尼、汤姆逊、东芝等7家公司于2002年共同组建了HDMIHD多媒体接口组织,现在已经是独立的HDMI组织。标称传输距离也在10m。可以传输音视频。同时支持progressive和interlaced(1080I等)。

        MIPI的DSI,CSI是移动产业处理器联盟给出的标准,早期是用于手机内部摄像头,显示器与soc的连接。既然是手机内部的信号传输,在早期肯定就没考虑过过长的传输距离。一般传输距离在2,3m。DSI/CSI都不支持音频。只支持progressive,不支持interlaced。

4.1 controller的区别

        dsi controller与phy之间是ppi接口,ppi_clk和pixclk没有必然的关系,能保证ppi接口总的dataRate>pixRate就行。这一点和hdmi不同,hdmi controller 的linkqpclk与pixclk和pixWidth是固定关系,保证hdmi controller输入和输出的速率是一致的。所以dsi controller内要有lineBuff 而hdmi controller里面没有行级存储。    

        mipi dsi/csi+dphy都没有使用添加冗余bit的编码(8/10b,128/130b 编码),DC均衡只用scramble。

        HDMI使用TMDS编码,DP/eDP使用 8/10b编码

        csi/dsi都是按照pixData实际有效bit来处理像素。hdmi不是这样,hdmi的YUV422 无论8/10/12bit经过controller都按照12bit来处理,这一点下文会详细介绍。

4.2 phy的区别

        dphy的差分clk_n/p和 data lane的dataRate可以大于实际分辨率x帧率传输所需要的时钟。这就需要sink端能够有缓存,保证dphy以大于实际需求的图像传输clk传输图像视频时,sink端能正常显示。因dsi controller最多是一行图像组一个包,所以sink端最多要有一行lineBuff就够.

        dsi+dphy传输时,clk_n/p的时钟是bitrate的1/2.因为可以用clk_n/p的双沿采样数据。

        hdmi的phy输出clk就是tmds clk,输出数据就是tmds_data.所以hdmi phy的差分IO命名就是 

HDMI_TMDS_CLKN/P

HDMI_TMDSDATAN0~HDMI_TMDSDATAN2

HDMI_TMDSDATAP0~HDMI_TMDSDATAP2

TMDS包含两个概念:

将每8bit原始数据编码为10bit数据----每个编码后10bit称为一个TMDS编码字符

将TMDS字符以差分方式传送

所以TMDS_CLK频率是TMDS数据流的字符速率。也就是tmds_data bitRate的1/10.所以hdmi sink端需要对TMDS_CLK 进行10倍频,在调相之后用来做同步采样时钟。

4.3 hdmi的时钟关系

本节给出TMDS_CLK与linkqpclk,pixclk,vidqpclk,dataLane的bitRate 的频率关系

【一个pix是包含该像素的所有颜色分量】

TMDS_CLK:为TMDS编码前 8bit字符的buad rate或者说编码后10bit字符的 buad rate。所以:

TMDS\_CLK=bitRate/10

linkqpclk(link quad-pixel clock):是hdmi controller与hdmi phy的接口频率,从名字可以看出是4pix频率。实际固定为TMDS_CLK的4分频。

linkqpclk=TMDS\_CLK/4

pixclk:hdmi controller输入的视频clk。由视频格式(只有YUV420是1T2P,其他都是1T1P), 帧率,等效分辨率(实际图像分辨率+水平消隐+垂直消隐) 决定。CEA(CTA)-861文档给出常见pixclk。

vidqpclk(video datapath clock):hdmi controller 内部处理clock,以pix为处理单位。考虑到controller中有对pixclk repeat的操作(没有行buff,只能水平repeat)和并行处理的需求。设每个pix repeat的次数为pr_factor 则:

1.当HDMI controller 4路并行处理时

vidqpclk=(pr\_factor+1)\times pixclk/4

2.当hdmi controller 单路处理时

vidqpclk=(pr\_factor+1)\times pixclk

那么如何建立TMDS_CLK与pixclk的关系呢?

设像素位宽为pixWidth,

则对于RGB或YUV420或YUV444:

TMDS\_CLK=(pr\_factor+1)\times pixclk\times pixWidth\times 3 /8/3

'x3'是三个颜色分量 。‘/8’是8bit作为一个编码字符。'/3' 是因为有3lane并行处理(3路tmds编码同时处理)。

        YUV420可以使用上面的公式计算 原因在于YUV420的pixclk是相同分辨率RGB的一半,但是YUV422是有特殊的处理,YUV422数据量是相同分辨率RGB的2/3,pixclk确和RGB同分辨率相同,那么到TMDS接口 YUV422的字符速率应该也是RGB的2/3才对???然而实际情况并非如此。

        根据对对hdmi qp(quad-pixel 四像素并行) tx controller的学习,发现在YUV422 无论是8/10/12bit在转tri-byte时都是按照24bit处理【不支持16bit yuv422】。如下图:4像素并行且是不区分位宽的。

                                C[11:4]                 Y[11:4]                 C[3:0]              Y[3:0]
obusa_data[47:0] = {8'd0, iipi_data_0[15:8], 8'd0, iipi_data_0[47:40], 8'd0, iipi_data_0[7:4], iipi_data_0[39:36]}
obusb_data[47:0] = {8'd0, iipi_data_1[15:8], 8'd0, iipi_data_1[47:40], 8'd0, iipi_data_1[7:4], iipi_data_1[39:36]}
obusc_data[47:0] = {8'd0, iipi_data_2[15:8], 8'd0, iipi_data_2[47:40], 8'd0, iipi_data_2[7:4], iipi_data_2[39:36]}
obusd_data[47:0] = {8'd0, iipi_data_3[15:8], 8'd0, iipi_data_3[47:40], 8'd0, iipi_data_3[7:4], iipi_data_3[39:36]}

下图是HDMI1.4的spec中截图:

 由上图看出 YUV422 8/10/12bit的TMDS_CLK应该是下面的公式(已经经过确认):

TMDS\_CLK=(pr\_factor+1)\times pixclk\times 3/3

也即:

TMDS\_CLK=(pr\_factor+1)\times pixclk

 4.4 hdmi IPI接口支持的格式

hdmi的ipi(dpi)输入接口 不同格式排布

这篇关于DP与HDMI、MIPI各种协议介绍、行/场消影时钟计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

电脑显示hdmi无信号怎么办? 电脑显示器无信号的终极解决指南

《电脑显示hdmi无信号怎么办?电脑显示器无信号的终极解决指南》HDMI无信号的问题却让人头疼不已,遇到这种情况该怎么办?针对这种情况,我们可以采取一系列步骤来逐一排查并解决问题,以下是详细的方法... 无论你是试图为笔记本电脑设置多个显示器还是使用外部显示器,都可能会弹出“无HDMI信号”错误。此消息可能

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,