“dragonballz_e240-1”这个名字,第一次看到的人大概率会当成乱码。实际上它包含了三层信息:dragonballz表示这部作品是《龙珠Z》,e240是episode 240的简写,“-1”则多半是版本号或分段标记。这种命名在动画收藏者的硬盘里到处都是,但很多人并不知道,这串字符背后的片源经历过几次转压、调色、裁切和封装。
这篇文章记录的,是我围绕“dragonballz_e240-1”这一集老动画做的完整修复项目。我会从片源诊断讲起,一步步覆盖反交错、降噪、AI超分、线条处理、色彩校准、音轨同步与最终封装,过程中会给出实际参数、选择理由和踩坑记录。如果你也是老番收藏者,想把手里的赛璐璐时代动画重新处理到能在4K屏幕上观看的程度,这篇文章可以直接当作参考流程来用。
1. 从“e240”这个编号说起:先认清片源的“前世今生”
1.1 用ffprobe给文件做一次“验血”
修复的第一步不是打开播放器看效果,而是先查文件自身的信息。终端里输入:
bash复制ffprobe -v quiet -print_format json -show_streams dragonballz_e240-1.mkv
重点关注几个字段:分辨率、帧率、像素格式、field_order。如果是640x480、29.97fps、yuv420p,基本可确定是DVD代的NTSC源;如果是1440x1080但field_order显示“tt”,说明是高清重制时代之后又经过劣化的隔行源。我手里这份文件查出来是704x480,帧率29.97,FieldOrder为“tt”,源来自DVD或电视录制,并且还带着隔行信息。后面所有工序都需要围绕这个基础来展开。
1.2 龙珠Z片源换代史:每次转制都在“改造”画面
龙珠Z从1989年播到1996年,原始素材是赛璐璐胶片,但它进入数码世界后经历了多个世代,每一代都在改变观众看到的颜色和线条。
- 第一代是VHS/LD录像带时代。分辨率极低,色彩浓厚,对比度硬,边缘有磁记录特有的柔和模糊。
- 第二代是2003年前后的单卷DVD。分辨率提升到480i,但暗部噪点明显,色偏不稳定。
- 第三代是DRAGON BOX(2003-2006年日本)。这是当年官方做过一版比较认真的高清化整理,4:3原始比例,色彩被很多老粉丝奉为“基准色”。
- 第四代是北美Blu-ray。早期版本采用16:9裁切再配重绘调色,争议极大;后期版本回归4:3,但颜色又偏冷偏灰。
- 第五代是流媒体版。各家编码水平参差,很多根本就是从BD或海外版再压缩出来的“后代”片源。
看到这里你应该明白了,“dragonballz_e240-1”这种命名背后,往往不是单一母版,而是几代转录、转压、再封装的叠加结果。画面里的噪点、色块、发白边缘,大多是多次压缩累积出来的。这也是为什么修复时不能只做“超分”,必须先把源本身的“病历”摸清。
1.3 为什么我偏挑第240集当“小白鼠”
如果只是打算验证流程,完全可以选一集画面简单、动态少的内容。但我翻遍收藏后发现,第240集的状态最能代表大多数老片源的实际情况:色彩偏移、线条发白、间歇性隔行、暗部布满噪点,而且这一集处在魔人布欧篇的高强度战斗段落,爆炸特效多、快速移动画面密集、背景层次复杂。这种内容对任何视频编码和修复算法来说都是高压力场景。
换句话说,把第240集修明白,等于把龙珠Z的“困难关卡”打通了。后面再处理其他集数,只会更从容。所以这个项目从一开始就是冲着“全系列修复打样”去的。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 修复前先做“体检”:别把时间浪费在不该修的地方
2.1 逐帧抽检:不要只看前三分钟
很多人拿到片源后,拖到播放器里快进几下就开始调滤镜,这是大忌。老动画的损伤往往集中在特定场景——比如暗部较多的室内戏、高速运动的打斗、爆炸全屏特效。你只看前几分钟,可能完美错过了真正需要花力气的地方。
我的做法是固定抽检时间点:片头第10秒、30秒、1分钟、3分钟、5分钟、中段、后段、结尾,每个点用逐帧模式看5到10帧。如果那段画面有快速移动,就放慢到25%速度再看一遍。看的时候只做记录,不急着修。记录的项目包括:是否有梳齿、线条是否有白边、人物肤色是否漂移、背景是否有可见色带。这些记录最后会成为修复完成后对比验收的基准。
2.2 老动画的典型损伤“病历本”
老动画的损伤类型其实是有限的,翻来覆去就是下面这些。
| 损伤类型 | 表现 | 常见成因 | 可修性 |
|---|---|---|---|
| 噪点 | 暗部细密颗粒、彩色噪点 | 多次压缩、胶片扫描 | 高 |
| 色带 | 红色背景上出现一圈圈渐变断层 | 8bit色深压缩、拉伸 | 高 |
| 蚊噪 | 线条周围出现细碎干扰 | 过度锐化、低码率压缩 | 中 |
| 锯齿 | 线条边缘抖动、斜线呈阶梯状 | 分辨率不足、算法缩放 | 中 |
| 光晕/halo | 物体边缘发亮或发暗 | 锐化过度 | 中 |
| 隔行扫描 | 运动物体呈现横向梳齿 | 隔行源未做反交错 | 高 |
| 色偏 | 整体偏黄、偏灰、肤色发暗 | 不同世代转制差异 | 高 |
2.3 能修与不能修的边界
修复最怕的是“什么都想修”。有些损伤可以修,有些只能缓解,还有一些根本属于素材本身的物理限制。
能修的是噪声、色带、隔行、色偏、轻微锯齿和光晕,这些属于信号层面的问题。不能修的是原始素材缺失的细节,比如赛璐璐胶片本身没拍到的墙纸纹路、动画师没画出来的背景层次。AI超分号称能“脑补”,但它不是凭空创造,而是基于训练数据猜测。猜得越多,离原始作画越远。
这里我给自己定了一条原则:修复的目标是“还原当年母版应该有的观感”,而不是“无中生有画出更清晰的细节”。一旦越过这条线,画面就会变成另一个东西,同人AI重绘也就罢了,但拿来当修复版,会让人物线条的笔触特征整个变味。
3. 预处理:把基础病治好了,再让AI上场
3.1 处理顺序错了,后面全是白费
修复的顺序非常关键,我的流程是:反交错、降噪、色带处理、AI超分、线条修复、颜色校准、重新加颗粒。这个顺序有严格的逻辑。
如果先超分再降噪,噪点会被超分模型当成真实细节放大,之后再清理就难了。如果先调色再去噪,色彩偏色信息的残留会影响降噪器的判断,导致某些颜色被错误涂抹。每一步最好都在前一步的输出上进行,否则后面发现问题再回去改,等于整条链重头跑一遍。
3.2 先反交错:QTGMC与场序判断
这一集的源是29.97fps隔行,拿到手里必须先用反交错处理。我习惯用VapourSynth加QTGMC,它的输出比普通反交错算法更干净,边缘也稳定。
python复制import vapoursynth as vs
core = vs.core
core.std.LoadPlugin("path/to/ffms2.dll")
src = core.ffms2.Source("input.mkv")
# 如果源是TFF
src = core.qtgmc.QTGMC(src, Preset="Slow", TFF=True)
src.set_output()
QTGMC里的Preset参数决定质量和速度的取舍。我用“Slow”档,在细节保留和跑片时间之间比较均衡。跑之前要确认场序,也就是TFF还是BFF。判断的方法很笨但有效:随便抽几帧画面里有横向滚动字幕或者电视遮幅边框的部分,逐帧播放,看哪一场先出现,字幕滚动方向顺不顺。方向顺就对了,反了就换TFF值。
QTGMC输出的是逐行画面。如果目标帧率是23.976,还需要做一次帧率转换,但我这次选择保留29.97fps,因为原片本身是NTSC体系,保留原始帧率后续做音轨同步会更省事。
3.3 降噪不是越干净越好
降噪这一环是最容易被新手做坏的。滤镜开猛了,画面的确会变得“很干净”,但线条边缘会被抹圆,人物脸上的光影层次也会消失,整个画面就像磨皮过度的自拍。
动画素材的噪点主要是压缩噪点,处理方式和实拍不同。我用KNLMeans或者BM3D,sigma值从0.5开始试,最高不超过2.0。如果0.5已经能明显去除颗粒而不伤线条,就不加再高。每次降噪完,都要找两个地方做对比:一个是人物面部边缘,一个是近距离快速移动的头发线条。这两处最容易暴露降噪过度。
3.4 色带处理:8bit时代的“伤疤”
色带在龙珠Z这种高饱和色彩的作品里特别明显,尤其是红色背景、橙色道服和天空渐变的场景。处理色带我用f3kdb,这也是动画修复圈的老朋友。
python复制src = core.f3kdb.Deband(src, y=45, cb=45, cr=45, grainy=0, grainc=0)
y、cb、cr分别控制亮度和两个色度通道的力度,45是一个折中值。如果拉到60以上,画面容易产生“水洗感”,颜色过渡变得过度平滑。记住,色带处理必须在降噪之后做,因为降噪本身也可能引入微色带,先降噪再Deband可以一次性处理干净。
4. AI超分与线条修复:让机器干活,但别让它乱猜
4.1 超分工具怎么选
预处理做完之后,画面应该已经没有明显的隔行、噪点和色带问题,剩下的最大痛点是分辨率不足。我从480i的源要上到1080p甚至4K,纯靠传统缩放算法是远远不够的,必须借助AI超分。
市面上可用的方案有不少,我实际测试过几款:
| 工具 | 优点 | 缺点 | 适合场景 |
|---|---|---|---|
| Topaz Video AI | 动画模型成熟、GPU加速、界面操作直观 | Windows下吃内存、渲染时间长 | 单集/单文件深度处理 |
| Real-ESRGAN | 开源、可批处理、可控性强 | 需要自己配环境、模型选择较复杂 | 大量截图/批量帧处理 |
| Anime4K | 轻量、实时 | 无训练流程、修复深度有限 | 实时播放时挂载 |
我的选择是Topaz Video AI。原因是它对动画素材有比较完善的处理管线,内置了好几个针对动画的超分模型,输出时可以保留10bit色深,对后续调色和压制的兼容性也更好。
4.2 模型与倍率实测
Topaz Video AI里我重点试了Iris MQ、Gaia、Ares、Artemis四个模型。实测下来,不同模型不同倍率的效果差异很明显。
| 模型 | 倍率 | 实际表现 | 缺点 |
|---|---|---|---|
| Iris MQ | 2x | 线条保持好、细节温和 | 暗部偶尔被磨平 |
| Gaia | 2x | 画面干净、轮廓清晰 | 容易产生“塑料感” |
| Ares | 2x | 细节锐利、动态场景稳定 | 背景纹理会有轻微噪动 |
| Artemis | 4x | 极限放大能力强 | 复杂纹理容易产生幻觉细节 |
我最后用的是Iris MQ配合2x倍率。第240集的源分辨率是704x480,2x之后到1408x960,再配合后续的轻量缩放和锐化,最终输出1080p非常合适。如果直接上4x,画面虽然更大,但岩石纹理、天空噪点这些区域会出现一些奇怪的编织状结构,那是模型在“编造”它认为该有的细节。
4.3 超分倍率与“过度脑补”的边界
超分模型的本质是从低分辨率图像中学习高分辨率模式,然后去“猜”缺失的信息。猜得少,它是在放大;猜得多,它就是在重绘。对老动画来说,重绘是一件很危险的事,因为你在失去的是动画师原本的笔触边缘和线条稳定性。
我的经验是:输出分辨率只要达到目标平台需求的1.5到2倍就够了。你需要1080p,把源做到1400-1600像素宽是最舒服的区间。如果目标4K,我建议分成两步:先在2倍基础上修一遍噪点和线条,再用轻量算法缩放到4K。一次性从480i跳到4K,基本都会翻车。
4.4 线条修复:AI最容易露馅的地方
AI超分做完之后,线条周边经常会出现两种问题:白边和灰边。这是因为超分模型为了保证边缘锐利,会在暗色线条外侧垫一圈高亮过渡。在快速移动场景里,肉眼能明显看到每个角色轮廓外有一圈发亮的东西。
我用来处理这个问题的是一个老牌滤镜FastLineDarken,它的作用是把线条边缘的亮色压暗,让线条和背景的界限恢复干净。强度从0.6到1.0之间调整,我这一集用的是0.8。配合CAS锐化,可以既保持线条清晰,又不会放大噪点。这一步不需要在每一帧上手工操作,跑批处理脚本即可,但一定要先抽几帧确认参数合适,再全片运行。
5. 色彩校准:让赛亚人的“记忆色”回归
5.1 龙珠Z的颜色是一种“文化基准”
龙珠Z的画面有非常强烈的色彩辨识度:超赛金发、悟空橙色道服、蓝色天空、红色布欧。这些颜色不仅是画面信息,也是观众多年的“记忆色”。很多人看修复版觉得“不对劲”,说不清哪里不对,其实就是记忆色和屏幕上的颜色对不上。
不同世代片源的色调偏差非常明显:
| 片源世代 | 色调倾向 | 常见问题 |
|---|---|---|
| DVD早期版 | 偏黄、偏暗 | 暗部脏 |
| DRAGON BOX | 偏暖、饱和略高 | 颜色浓 |
| 北美BD早期版 | 偏冷、偏灰 | 肤色发青 |
| 流媒体重编码 | 不一 | 视源而定 |
我的修复目标是回到我记忆里那个温暖、鲜明但不艳俗的龙珠世界,所以我以DRAGON BOX为色彩基准,而不是以某一版BD为基准。
5.2 DaVinci Resolve一级调色的节点思路
调色环节我放在DaVinci Resolve里做。流程很简单:导入预处理和超分后的素材,在时间线上新建一个项目,把时间线分辨率设为目标输出分辨率,然后在节点编辑器里做调整。
第一步是套一个“匹配参考”的LUT做底,也就是把源拉到接近DRAGON BOX的色调区间。第二步用示波器看RGB Parade,调整Lift、Gamma、Gain,把亮部和暗部的色偏拉正。第三步用Vectorscope看肤色的位置,让肤色轴落在肤色参考线附近。这一步对龙珠Z尤其重要,因为赛亚人的金发和悟空的橙道服太容易把肤色带偏。
5.3 参考帧法:拿DRAGON BOX当标尺
调色最怕的是凭感觉。我的做法是“参考帧法”:从DRAGON BOX版的同一集里抓几帧官方色彩比较稳的画面,比如天空、草地的远景,以及悟空近景的脸部特写,然后把它们放在副监视器上,和修复后的画面并排对比。
对比时不是看“哪张好看”,而是看具体数值:天空的蓝色在Vectorscope上的角度、草地的绿色在哪个象限、肤色的亮度落在哪个区间。一步步微调,直到两组画面的数值轨迹基本重合。不要直接对比亮度,因为不同世代片源的整体亮度标准本来就不同,强行拉平会让暗部发灰。
5.4 塑料感是这么来的
修复老动画最常被诟病的效果是“塑料感”,即画面过于光滑、色彩过于艳丽,像3D渲染的塑料模型。这个问题的成因有三个:降噪过度、超分模型把笔触抹平、饱和度拉得过高。
我的对策,第一,饱和度增量控制在+5%到+15%,坚决不超过20%。第二,调色完后叠加一层轻量颗粒感,模拟赛璐璐胶片时代自然存在的微颗粒。在DaVinci里可以直接用“颗粒”FX,数量调到1.5左右,大小3左右,混合模式选“叠加”。这层颗粒不会让人觉得噪,反而会让画面“活”过来,因为它给了画面一种真实的光影质感。这个细节是我做过几版对比之后才发现的,不加颗粒的版本,在电视上一旦有大幅运动,那种光滑感会特别明显。
6. 音轨、字幕与封装:最后一步最容易翻车
6.1 帧率一变,音轨就必须跟着变
很多人修完画面之后直接封装,结果播放时音画不同步,然后开始怀疑是编码器的问题。其实大概率是音轨忘了处理。这一集的视频已经处理成逐行并且保留了29.97fps,但如果你在某个环节做了帧率转换,比如从29.97降到23.976,视频时长就变短了,而音频没有跟着变,音画必不同步。
如果确实需要帧率转换,音轨必须做比例重采样。我通常先把音轨用eac3to提取成WAV或FLAC,检测delay值之后再做stretch操作。这个stretch比例就等于目标帧率除以源帧率,比如23.976除以29.97约等于0.8。简单说就是音频要从原来的时长“压缩”到新的视频时长,保证对白和爆炸声落在正确的帧位置。
6.2 字幕清洗:老ASS特效里的那些坑
字幕是封装环节里最容易被忽略的部分。老番的ASS字幕往往带着复杂的特效标签、注音、卡拉OK逐字特效,如果直接封装,不同播放器下的渲染效果可能完全不同,轻则样式错乱,重则加载崩溃。
我在封装前会用Aegisub把字幕过一遍,重点做三件事。
