- 第27楼:《复习/预习结束时的补充:HDMI传输带宽的计算方法,附公式!》
本楼涉及 HDMI 视频带宽(传输率)的计算公式,供爱钻研的高手参考(其他人可略过,直接跳转至第28楼)...
HDMI(承载视频数据)的带宽指标,如何推算? 像素的宽,乘以 像素的高,再乘以色深、刷新率等,就能直接给出(最终)结果?
注意,若缜密推敲,就会发现:并非易事。
计算公式,应该是这样:
(水平像素值 + 水平消隐时序所占的值) × (垂直像素值 + 垂直消隐时序所占的值) × 色深 × 刷新率
H/V 消隐时序,需根据不同的规范,分别提取!
最有名的,就是CEA的CEA861 (亦称 CTA861),还有 VESA的CVT标准规范,比如 CVT-R2 !
举例计算:
第一例, 3840 X 2160 @ 60Hz , 8 bpc, RGB color :
- C = 24 bit/px (每个通道 8 bits , RGB 三个通道,就是 24 bits);
- 水平的消隐时序间隔值 (Hblank )= 560 (根据 CTA-861 规范获得)
- 垂直的消隐时序间隔值 (Vblank )= 90 (根据 CTA-861 规范获得)
这样计算: (3840 + 560) × (2160 + 90) × 24 × 60
= 4400 × 2250 × 24 × 60
= 14,256,000,000 bit/s ; 也就是 : 14.26 Gbps
从 3840 X 2160, 加上 CTA-861 的时序值,变成 4400 X 2250 的原因,
到这个网站(链接在此:https://tomverbeure.github.io/video_timings_calculator),能找到 CTA-861的时序/数据:
但注意,下图中,又有两例,计算结果,有些变化。
- 3840 X 2160 @ 60Hz , 带宽是 12.54 Gbps ;
- 7680 X 4320 @ 60Hz , 带宽是 49.65 Gbps ;
奇怪,12.54 Gbps,跟第一例的 3840 X 2160 @ 60Hz 14.26 Gbps,怎么不一样了?!
第二例,3840 X 2160 @ 60Hz , 12.54 Gbps带宽数据,这样计算:
3840 X 2160的视频帧,还得加上 消隐间隔的时序值,按照 VESA 的 CVT-R2 规范,
就是 3,920 × 2,222 = 8,710,240 pixels per frame
那么像素的传输率 = 8,710,240 px per frame × 60 fps = 522,614,400 pixels per second
视频数据传输率 = 522,614,400 px/s × 24 bit/px = 12,542,745,600 bits per second
也就是: 12.54 Gbit/s
为什么, 从 3840 X 2160, 加上 CVT-R2 的时序值,就变成 3920 X 2222 呢?
或者,到这个网站(链接在此:https://tomverbeure.github.io/video_timings_calculator),获得 CVT-R2 的时序/数据:
第三例 ,7680 X 4320 @ 60Hz , 49.65 Gbps 带宽数据,计算如下:
7680 X 4320的视频帧,还得加上 消隐间隔的时序值,按照 VESA 的 CVT-R2 规范,
就是 7,760 × 4,443 = 34,477,680 pixels per frame
像素的传输率 = 34,477,680 px per frame × 60 fps = 2,068,660,800 pixels per second
视频数据传输率 = 2,068,660,800 px/s × 24 bit/px = 49,647,859,200 bits per second
也就是: 49.65 Gbit/s
为什么, 从7680 X 4320, 加上 CVT-R2 的时序值,就变成 7760 X 4443 呢?
或者,到这个网站(链接在此:https://tomverbeure.github.io/video_timings_calculator),获得 CVT-R2 的时序/数据:
重新体验了数学运算,重温时序的概念,很有意思。 也许,与视频相关的编程,能派上用场... |