马赛克把画面中的一块区域切成网格,再把每一格里的所有像素替换成一个值——通常是这一格原本盖住的那些像素的平均值。进去的是很多个值,出来的是一个值。整个操作就这么简单,而这正是结果无法撤销的原因。
在这个层面上搞明白它,一次就能回答一堆相邻的问题:为什么方块尺寸是唯一有意义的变量、为什么打码是烙在文件里的而不是由你正在看的那个站点加上去的,以及为什么「AI 去码」是个范畴错误,而不是一道难题。
马赛克对像素究竟做了什么?
它做的是分块取平均:把目标区域切成一张网格,用每一格内部的像素算出一个颜色,然后把整格涂成那个颜色。
拿一段普通视频画面里的一个 16×16 的格子来说。操作之前它装着 256 个像素,每个都有自己的颜色——256 个各自独立的值,描述着边缘、纹理和明暗。操作之后它装着一个值,重复了 256 遍。那些描述细节的 255 个自由度已经从文件里消失了。它们没有被搬走、没有被藏起来、也没有被加密。它们是被平均掉了。
这就是数学上所谓的多对一映射。数量极其庞大的不同源方块会产生完全相同的平均值,所以只给你平均值,没有任何办法确定是哪一个源产生了它。这不是实现上的弱点;这是这个操作的定义性质,也正是当初选中这个手法的原因。
为什么方块尺寸是唯一真正的变量?
因为关于马赛克的其余一切都被方法本身定死了。唯一能改变「多少信息能活下来」的选择,就是每一格有多大。
格子越大,被平均到一起的像素越多,销毁得也越多。格子越小,保留的结构越多——小到一定程度,形状就仍然辨认得出来,而这恰恰是审查标准存在的目的所在。所以标准管的就是这个粗细程度;日本的审查机构把马赛克密度列在了它们的审查标准之中。
它们究竟怎么表述这项要求,并不公开。这些机构不公布自己的表述规则——三家中唯一有在运行的公开站点的 OCCN 明确说,这些规则只向会员披露——所以粗细程度是按画面尺寸的比例定义的,还是按绝对像素定义的,以及具体取什么值,都无从查证。你在别处遇到的任何具体数字,都请当成没有出处。不管怎样值得知道的是:一个固定的像素尺寸在 SD 和 4K 下意味着完全不同的东西,所以这两种表述并不能互换。
资料来源:OCCN(occn.or.jp)的审查与理念页面;JCRC(jcrc.or.jp)的站点结构;2026-08-03 核查。
| 处理方式 | 它做了什么 | 什么东西留了下来 | 可逆吗? |
|---|---|---|---|
| 马赛克/像素化 | 把每一个网格单元平均成一个值 | 低频的颜色和大致位置 | 不可逆——输入被压塌了 |
| 高斯模糊 | 在一个滑动窗口上做加权平均 | 比马赛克保留更多低频结构 | 不可逆,尽管损失小一些 |
| 纯色条或纯色填充 | 用一个常量覆盖该区域 | 关于该区域什么都没留下 | 不可逆 |
| 裁切或重新构图 | 把该区域从画面里去掉 | 什么都没留下 | 不可逆 |
| 播放器上的叠加层 | 在播放时画在上面 | 全部——文件是完好的 | 可逆,而且轻而易举 |
只有最后一行才是一个真正的安全问题,而它恰恰是这个行业不采用的那个方法。
马赛克是在制作的哪一环加上去的?
在后期制作阶段,加在母带上,在作品送审之前——不是在播放时加的,不是平台加的,也不是那台准备流媒体版本的编码器加的。
这个顺序是刻意的,而且它就是整个设计的核心。因为打码发生在其他一切的上游,所以下游每一件产物都继承了它:送审的拷贝、零售文件、流媒体码率阶梯上的每一档、观众截下的每一张图。这条链路上不存在任何一个环节,有谁能通过截取流量或者请求另一个画质档位就拿到一份没打码的版本。
这同时也意味着,托管一部作品的平台从来就没有拿到过没打码的素材。向一个流媒体站点索要无码版本,是在要一份它压根没收到过的东西。
原始细节为什么找不回来?
因为文件里已经没有它了。要找回来,就得对一个没有逆运算的操作求逆。
拿那些确实可逆的东西比一下。压缩文件能解压,是因为压缩存下了一份重建的配方。加密文件能解密,是因为内容在一层带密钥的变换之下完好无损。马赛克两样都没有:没有配方、没有密钥、也没有数据的变换副本。原本是一片纹理的地方,只剩了一个数。
实际的检验办法很简单。你拿一千个各不相同、但平均下来都是同一种灰的源方块,全打上马赛克,再把结果交给别人,那就是一千个一模一样的文件。任何流程,不管多先进,都说不出它是从这一千个里的哪一个开始的——因为区分它们的那些信息,根本不在输入里。
AI「修复」实际产出的是什么?
看上去说得通的编造。一个在无码图像上训练过的生成模型,能产出一块与周围像素、与方块平均值都自洽的补丁,而且它看起来会很有说服力。它做不到的是正确,因为正确与否根本不由文件里的任何东西决定。
真正要紧的区别,是重建与幻觉之间的区别:
- 重建是从输入中已有的信息推导出输出。答案可以拿源头去验证。
- 幻觉是生成一份满足输入约束条件的输出。有很多份不同的输出同样完美地满足同一组约束,而没有任何东西能把它们区分开。
去马赛克永远只能是后者。模型不是在揭开当初那里有什么;它是在画一样「平均下来会得到同样这些方块」的东西。把那份输出当成原始画面来呈现,是一个这个流程支撑不起的事实性断言——这跟任何法律或伦理上的问题是两码事。
这跟贯穿 AI 生成内容始终的那个可靠性问题是同一个:一个永远都能给出笃定输出的系统,光靠给出输出并不能告诉你任何事。
马赛克跟视频压缩之间是什么关系?
关系很融洽,这一点常让人意外。马赛克区域编码起来很便宜。
视频编码器把比特花在高频细节上,以及帧与帧之间的变化上。而马赛克区域正好两样都反着来:大片恒定颜色的平坦区域,边缘还都落在一张规整的网格上。基于块的编码器表示这种东西效率极高。打码区域占用的比特通常比它替换掉的细节画面还少,于是画面其余部分能分到更多预算。
一个看得见的副作用是:在低码率下,周围的画面都糊了,马赛克的边缘却依然锐利。这些方块不是压缩产生的瑕疵,尽管经常被误认成瑕疵——真正的压缩瑕疵会随着运动和码率变化而游移,而马赛克的网格是死死锁在它盖住的那块区域上的。
马赛克会妨碍从一帧画面认出女优吗?
不会,因为马赛克从不盖脸。基于人脸的匹配,每一步用到的都是打码没碰过的像素。
检测找到面部区域和它的关键点,对齐用这些关键点把姿态归一化,编码器把对齐后的裁切转换成一个向量——在我们这里是 512 个数字。这套机器没有任何一环会看向打码区域附近。对一个人脸编码器来说,一部码打得很重的作品和一部无码作品,可读性是一样的。
真正限制识别的,是一开始索引了哪些来源。我们的索引覆盖 106 个站点上的 241,792 张脸,但有名字的女优里,2,333 位中有 2,246 位的代表图来自同一个站点(我们的索引,2026-08 快照)——这种来源集中度对结果的限制,远比任何打码标准都大。