4K 120Hz 为什么掉到 60Hz?HDMI 2.0 差 30Gbps 算给你看
4K 120Hz、10bit、4:4:4,一秒钟要搬 35.64 Gbps 的像素数据。
HDMI 2.0 标称 18 Gbps,扣掉 8b/10b 编码开销,只剩 14.4 Gbps 能装数据。
缺口 21.24 Gbps,所以它只能退回 4K60 8bit。
我把分辨率、刷新率、位深、色度采样和四种接口放进一个网页,页面里 18 条断言全过。下面把每个数字拆开。

一、先给结论:标称带宽要先扣编码
HDMI 2.0 的 18 Gbps 是信号速率,不是能装画面的净带宽。
它用 8b/10b 编码,每 10 个 bit 里有 2 个是开销,净负载只有 18 × 0.8 = 14.4 Gbps。
HDMI 2.1 换成 16b/18b,48 × 16 ÷ 18 = 42.6667 Gbps。
这一扣,2.0 和 2.1 的差距从 30 Gbps 变成 28.2667 Gbps。
| 接口 | 信号速率 | 编码 | 有效负载 |
|---|---|---|---|
| HDMI 2.0 | 18 Gbps | 8b/10b | 14.4 Gbps |
| HDMI 2.1 | 48 Gbps | 16b/18b | 42.6667 Gbps |
| DP 1.4 | 32.4 Gbps | 8b/10b | 25.92 Gbps |
| DP 2.0 | 80 Gbps | 16b/18b | 71.1111 Gbps |
4K60 8bit 4:4:4 要 594 MHz × 24 bit = 14.256 Gbps。
它离 14.4 只剩 0.144 Gbps,约 1%。这就是 HDMI 2.0 的天花板。
4K60 10bit 要 17.82 Gbps,已经超了 3.42 Gbps。
所以「HDMI 2.0 支持 4K60」这句话,只在 8bit 4:4:4 下成立。
我把同一个 4K120 10bit 信号切到 2.0,页面直接给出「缺口 21.24 Gbps」,并建议先降位深、再降色度。

二、为什么值得看:三个临界点决定黑屏还是降档
第一个临界点是 4K120 10bit。
1188 MHz × 30 bit = 35.64 Gbps。2.0 差 21.24,2.1 还剩 7.0267。
这就是 PS5、显卡和电视之间最常见的握手结果:线插在 2.0 口,画面回到 4K60。
第二个临界点更隐蔽:4K120 12bit 要 42.768 Gbps。
2.1 的净负载是 42.6667,差 0.1013 Gbps,只有 0.24%。
规格表写 48 Gbps,实际装不下 12bit 4:4:4。要满血只能开 DSC,或者降到 10bit、4:2:2。
第三个临界点是 4K144 10bit,同样是 42.768 Gbps,同样差 0.1013。
所以「HDMI 2.1 支持 4K144」也要看色深:8bit 的 34.2144 够,10bit 就顶到墙。
| 模式 | 需求 | HDMI 2.0 | HDMI 2.1 |
|---|---|---|---|
| 4K60 8bit | 14.256 Gbps | 够,余 0.144 | 够 |
| 4K60 10bit | 17.82 Gbps | 不够,缺 3.42 | 够 |
| 4K120 8bit | 28.512 Gbps | 不够 | 够 |
| 4K120 10bit | 35.64 Gbps | 不够,缺 21.24 | 够,余 7.0267 |
| 4K120 12bit | 42.768 Gbps | 不够 | 不够,缺 0.1013 |
| 4K144 8bit | 34.2144 Gbps | 不够 | 够,余 8.4523 |
| 4K144 10bit | 42.768 Gbps | 不够 | 不够,缺 0.1013 |
我把 12bit 这一档在页面里点开,2.1 的缺口正好是 0.1013 Gbps。这个数小到容易被当成误差,但它确实跨过了上限。

三、怎么算:像素时钟 × 每像素位数
公式只有一行:需求 = 像素时钟 × 每像素位数 ÷ 1000。
每像素位数按色度采样折算:4:4:4 是 3 × 位深,4:2:2 是 2 × 位深,4:2:0 是 1.5 × 位深。
像素时钟用 CTA-861 里常见模式的取值,9 个模式列在页面里。
| 模式 | 像素时钟 | 需求(10bit / 4:4:4) | HDMI 2.0 | HDMI 2.1 |
|---|---|---|---|---|
| 1080p60 | 148.5 MHz | 4.455 Gbps | 够 | 够 |
| 1080p120 | 297 MHz | 8.91 Gbps | 够 | 够 |
| 1080p240 | 594 MHz | 17.82 Gbps | 不够,缺 3.42 | 够 |
| 1440p60 | 241.5 MHz | 7.245 Gbps | 够 | 够 |
| 1440p120 | 483 MHz | 14.49 Gbps | 不够,缺 0.09 | 够 |
| 4K60 | 594 MHz | 17.82 Gbps | 不够,缺 3.42 | 够 |
| 4K120 | 1188 MHz | 35.64 Gbps | 不够,缺 21.24 | 够,余 7.0267 |
| 4K144 | 1425.6 MHz | 42.768 Gbps | 不够,缺 28.368 | 不够,缺 0.1013 |
| 8K60 4:2:0 | 2376 MHz | 71.28 Gbps | 不够,缺 56.88 | 不够,缺 28.6133 |
8K60 这一行按 2376 MHz 计时,预设是 4:2:0;表格跟随当前色度设置,所以 10bit 4:4:4 下显示 71.28 Gbps。
4:2:2 和 4:2:0 不是免费的。它们把颜色信息降采样,文字边缘和细线会受影响。
这也是为什么很多电视在 4K120 下默认给你 4:2:0,而不是 4:4:4。

四、验证与踩坑:18 条断言和 13 个独立复算
页面加载时会跑 18 条断言,结果直接显示在页面上。
我用 Python 又独立算了一遍 13 个关键值,全部对上。
| 计算项 | 页面自检 | 独立复算 |
|---|---|---|
| 4K60 8bit 4:4:4 | 14.256 | 14.2560 |
| 4K60 10bit 4:4:4 | 17.82 | 17.8200 |
| 4K120 10bit 4:4:4 | 35.64 | 35.6400 |
| 4K120 12bit 4:4:4 | 42.768 | 42.7680 |
| 4K144 10bit 4:4:4 | 42.768 | 42.7680 |
| 4K144 8bit 4:4:4 | 34.2144 | 34.2144 |
| 4K120 10bit 4:2:2 | 23.76 | 23.7600 |
| 8K60 8bit 4:2:0 | 28.512 | 28.5120 |
第一版还有一个文案 bug:降级建议里出现了「降级降级直通」。
原因是标签已经写了「降级」,正文又拼了一次。把正文改成「直通」后就正常了。
这不是计算错误,但会让人怀疑结果,所以还是修了。
失败路径也写进了页面。刷新率填 0,页面提示「刷新率必须大于 0(当前 0 Hz)。已保留上一次有效结果。」,结果卡片仍停在 35.64 Gbps。

五、准备环境:进入码道 Web,一个文件怎么跑起来
码道有三种使用方式:WebUI、TUI 和桌面 IDE。这个页面用 WebUI 生成,不需要装软件。
生成结果是单个 index.html,CSS 和 JS 都内联,没有外部请求。
本地复现两条命令:
cd codearts-hdmi-bandwidth-lab
python -m http.server 8000
然后打开 http://localhost:8000。也可以直接双击 index.html。
案例目录:https://atomgit.com/deli007/demo_park/tree/main/codearts-hdmi-bandwidth-lab
页面里 18/18 自检通过,源码 53 KB,没有网络请求。
六、使用码道体会:把验收条件写成数字
- 需求里直接写期望值。比如「4K120 12bit 必须判不够,42.768 必须大于 42.6667」,比「注意边界情况」有用。
- 让页面把自检结果渲染出来。测试数有了出处,截图也能直接当证据。
- 失败路径要写进第一版需求。刷新率 0、像素时钟越界,这两条从第一版就该有。
- 单文件、零外部依赖,截图和复现都不会受网络影响。
- 页面自检只能证明页面按自己的公式算。最好再用另一套脚本复算一遍,这次 13 个值全部对上。
七、边界与总结
这篇没有接电视实测。像素时钟来自 CTA-861 常见模式,编码开销按 8b/10b 和 16b/18b 算。
实际会不会掉档,还取决于电视 EDID、线材质量、显卡驱动和 DSC 支持。
但有一条不变:先看净负载,再看接口名。
HDMI 2.0 的净负载是 14.4 Gbps,4K60 8bit 刚好压线;4K120 10bit 要 35.64,只有 2.1 装得下。
下次看到「支持 4K120」的宣传,先问一句:几 bit、什么色度、开没开 DSC。
- 点赞
- 收藏
- 关注作者
评论(0)