# 神经网络超分辨率，不用写配置文件

> 老的 480p 剧集或 720p 动画放到大屏幕上会显得发虚，因为普通缩放只能把已有的像素摊开。Frame Player 可以改用神经网络来放大：实拍视频用 ArtCNN，动画用 Anime4K。从菜单中选择，作用于单个文件或整季，而且只在画面确实被放大时才运行。

来源：https://frameplayer.app/zh/upscaling
更新于：2026-10-26

普通缩放无论多好，都只能插值：根据周围的像素决定两个像素之间应该是什么，所以放大后的 480p 画面看起来是发虚，而不是满屏方块。用成对的小图和大图训练出来的神经网络可以做得更好：它学会了边缘、水墨线条或墙面纹理通常是什么样子，并把它们补回来。在 mpv 中，借助 Anime4K 这样的着色器早就能做到，代价是要自己下载、写进配置文件，再绑定按键来切换。[Frame Player](https://frameplayer.app/zh) 附带了其中三个，并把它们放进了菜单。

## 如何开启

1. 右键点击画面并打开**画面**，或者按 **C**。
2. 在**超分辨率**下选择**视频**、**动画**或**强化**。默认为**关闭**。
3. 选择这项设置是作用于**此文件**，还是整个**播放列表**，即文件所在的文件夹或它来自的种子。

还有一个快捷操作**超分辨率：下一个模式**，可以在四种模式之间依次切换；在快捷键编辑器中为它指定按键之前，它没有默认按键。

*图：一集 480p 剧集上的“画面”面板，通过右键或 C 打开：依次是“视频”“动画”和“强化”，状态行显示着色器正在运行。画面中的差异是为了展示每个模式的效果方向而绘制的，并非实际截取。*

## 三种模式

| 模式 | 网络 | 适用于 | 作用 |
|---|---|---|---|
| **视频** | ArtCNN C4F16 DS | 电影、剧集、实拍视频 | 放大 ×2，同时降噪和锐化 |
| **动画** | Anime4K Upscale CNN x2 M | 手绘动画 | 放大 ×2，针对线条和平涂色块调校 |
| **强化** | Anime4K Upscale GAN x2 M | 720p 及以下的片源 | 在整个画面中绘制纹理 |

**“视频”和“动画”是还原，“强化”是创造**。前两者补回的是画面中本来就有、只是模糊了的边缘。“强化”是一个生成式网络：它在片源没有纹理的地方添加纹理，正是这一点让整个画面而不只是轮廓显得细腻。它为此付出了两重代价。它是用动画训练的，所以在真人画面上，人脸可能出现瑕疵。而且它创造的纹理在相邻两帧之间并不完全相同，所以静止的场景会闪烁。我们在一部 480p 电影的两个相邻帧上测量了这一点，以两帧之间的 PSNR 表示差异：数值越低，两帧差异越大。

| 两个相邻帧，480p 电影 | 两帧之间的 PSNR |
|---|---|
| 普通缩放 | 35.4 dB |
| 视频（ArtCNN） | 34.6 dB |
| 强化（Anime4K GAN） | 33.9 dB |
| 在“强化”之前加一个修复 GAN（未采用） | 31.3 dB |

两帧本来就不同，因为画面中的东西在动；表格显示的是每个网络在此基础上又增加了多少差异。这就是为什么“强化”是为小而模糊的片源准备的，在那里它能发挥的最多。**对于任何大于 720p 的内容**（无论按长边还是短边计算），它都按“视频”模式工作，面板会显示“高于 720p 的视频按‘视频’模式处理”。因此，设为“强化”的播放列表可以混合 720p 和 1080p 的剧集，既不会丢掉超分辨率，也不会丢帧。

## 为什么是这三个，而不是更大的模型

每个系列都有好几种规格，更大的规格并不是更清晰的选项，而是更慢的选项。我们在 M3 Max 上测量了每帧的 GPU 时间，绘制到 3400×2000 的窗口中：

| 每帧 GPU 时间 | 720p 片源 | 1080p 片源 |
|---|---|---|
| 无着色器 | 2.3 ms | 2.9 ms |
| **视频**：ArtCNN C4F16 DS | 7.2 ms | 8.5 ms |
| **动画**：Anime4K CNN x2 M | 3.9 ms | 6.4 ms |
| **强化**：Anime4K GAN x2 M | 9.9 ms | 20.7 ms |
| Anime4K CNN x2 L | | 8.6 ms |
| Anime4K CNN x2 VL | | 15 ms |
| ArtCNN C4F32 | | 37 ms |
| Anime4K GAN x4 UL | | 39 ms |
| Anime4K Restore GAN UL + GAN x2 M | | 44 ms |

每帧 GPU 时间，即 mpv 报告的各渲染阶段之和，使用 mpv 0.41。

24 fps 的电影每帧有 42 ms，60 fps 的则是 17 ms。最重的几种规格，即使在现有最快的 Mac 上也要占去其中大部分甚至全部时间，而集成显卡的核心数只有它的一小部分。所以播放器为每个系列提供的是留有余量的那种规格，其余的不提供。

## 只在画面被放大时运行

每个着色器都会在每一帧自行决定是否运行：只有当屏幕上的画面在两个方向上都超过原尺寸的 1.3 倍时才运行（两个 Anime4K 模式为 1.2 倍）。所以开启超分辨率后：

- 在 1080p 显示器上**全屏播放的 720p 剧集**放大到 1.5 倍，会进行超分辨率；
- 在 1080p 显示器上的 **1080p 电影**按原尺寸显示，不做处理；
- **任何 4K 内容**在几乎任何屏幕上都不做处理；
- **小窗口**可能放大得不够，同一个文件在窗口变大或进入全屏后才开始超分辨率。

尺寸按屏幕的实际像素计算，所以在视网膜显示屏上，一个窗口在每个方向上容纳的像素是看上去的两倍。裁掉黑边或放大画面不算放大：着色器比较的是完整的解码帧与窗口内的那部分画面。

开关开着却什么都不做，看起来会像坏了，所以面板会说明是哪种情况：“**已启用：画面放大到原尺寸的 1.6 倍**”、“**当前未启用：画面放大不足**”，或者“**无需启用：视频不小于屏幕**”。

## 单个文件，还是整季

画面是否值得放大，取决于视频本身（从 DVD 压制的一季，每一集都是模糊的），所以这项选择按文件或按播放列表保存，文件自己的选择优先。把播放列表设为“动画”，文件夹或种子中的每一集打开时都会使用它，包括还没看过的集；把其中一集设回“关闭”，就只有那一集关闭。链接没有播放列表，所以对于链接，选择属于文件本身。

我们特意没有提供对所有文件生效的设置。一个处处开启的网络会在每一部它无法改善的 4K 电影上运行，在笔记本电脑上，代价就是电池续航。

## 在 Windows 上首次使用

着色器必须先针对显卡编译才能运行，mpv 会在画面第一次大到需要它时进行编译。在 Mac 上大约需要四分之一秒（我们测得 0.27 秒，丢了三帧），每种模式都一样。

在 Windows 上，“视频”模式开销最大。它的各个阶段由 Microsoft 的 Direct3D 11 着色器编译器编译，在一块当前的台式机显卡上，ArtCNN 花了十二秒多，而“动画”只要十分之一秒，“强化”只要三分之一秒。有两点让这件事只在第一次时才有影响：

- **每台电脑只发生一次**。编译好的着色器会在会话之间保留，所以下次启动播放器时，超分辨率会立即开始。
- **播放器会告诉你**。首次编译期间画面会静止，所以播放器会把画面调暗，显示“正在准备超分辨率：仅在这台电脑上首次使用时需要”以及一个走动的计时，而不是看起来像卡死了。

> **注意：** 编译通常发生在画面第一次超过阈值的那一刻，也就是你把窗口拖大或切换到全屏的时候，因为那正是第一次需要着色器的时候。

## 与在 mpv 中手动设置 glsl-shaders 对比

如果你在 mpv 中用过 Anime4K，就知道这套流程：下载着色器，在 mpv.conf 的 `glsl-shaders` 中列出它们，或者在 input.conf 中把模式绑定到按键，再记住哪个适合哪个文件。Frame Player 在底层做的是同一件事（同样的 mpv，同样的着色器文件，未经修改），但改变了四点：

- **无需下载或编写任何东西**。着色器随播放器附带。
- **选择会被记住**，按文件或按播放列表，而不是一行全局设置，所以看完一季动画后再看真人电影，不会沿用动画着色器。
- **面板会说明它是否在运行**，以及为什么没有运行。
- **编译好的着色器会被缓存**，在会话之间保留。mpv 本身默认会这样做；但播放器所基于的 mpv 库形式不会，这也是这个功能在 Windows 上的第一个版本每次会话都要重新编译的原因。

如果你更喜欢自己的着色器链，那就保留它：当你的 mpv.conf 设置了 `glsl-shaders` 时，播放器不会发送任何自己的着色器，面板会显示“着色器已在 mpv.conf 中设置，播放器不作更改”。

## 不适用的场合

- **投屏**。电视自己解码视频，所以电脑 GPU 做的任何事都影响不到它；投屏期间画面设置不可用。
- **一起看**。这项选择是你自己的，不会共享给房间；每个人都选择适合自己屏幕的模式。

ArtCNN 和 Anime4K 都采用 MIT 许可证，它们的许可证与播放器的其他第三方声明一起随播放器附带。

## 常见问题

### 它能让 1080p 电影在 1080p 屏幕上更清晰吗？

不能，它也不会去尝试。只有当屏幕上的画面在两个方向上都至少是原尺寸的 1.3 倍时（Anime4K 的模式为 1.2 倍），着色器才会运行。按原尺寸显示的 1080p 电影，或者任何 4K 内容，都交给普通缩放，不产生任何开销；“画面”面板会显示“无需启用”，而不是看起来像坏了。

### 应该选哪个模式？

实拍内容（电影、剧集、家庭录像）选“视频”。手绘动画选“动画”。当片源为 720p 或更低，而你希望整个画面都补上细节，并能接受一些闪烁和人脸上偶尔出现的瑕疵时，选“强化”；高于 720p 时，它按“视频”模式处理。

### Windows 上能用吗？

能，两个系统都能用。在 Windows 上，“视频”模式在一台电脑上首次启动时需要十秒或更长的准备时间，期间播放器会显示“正在准备超分辨率”。之后准备好的着色器会保留下来，以后的会话中会立即生效。

### 需要高性能显卡吗？

它在 GPU 上运行，所选的模式都是各自系列中最轻量的。在 720p 片源上，开销最大的模式在 M3 Max 上实测每帧 9.9 ms，而 24 fps 的电影每帧有 42 ms。性能弱得多的 GPU，比如较老的集成显卡，可能跟不上“强化”模式；如果播放卡顿，请选择“视频”或“动画”，或者关闭超分辨率。

### 我的视频会被发送到别处做超分辨率吗？

不会。这些网络是随播放器附带的小型着色器，在视频播放时逐帧运行在你自己的显卡上。什么都不会上传，什么都不会保存。

### 我还能使用 mpv.conf 中自己的着色器吗？

能。如果你的 mpv.conf 设置了 glsl-shaders，播放器不会动它们：“画面”面板会显示“着色器已在 mpv.conf 中设置，播放器不作更改”，超分辨率开关也会让位。
