Kaleido: You Can Watch It But Cannot Record It(补档)

其他 · 2023-04-30 · 368 人浏览
Kaleido: You Can Watch It But Cannot Record It(补档)

摘要

本文提出了一个轻量级的无硬件系统,可以利用眼睛和相机对屏幕感知之间的差异,防止未经授权的用户对在诸如剧院中的屏幕上播放的视频进行录像,同时不影响合法观众的观看体验。

论文地址:https://dl.acm.org/doi/10.1145/2789168.2790106

前置知识

色域

有许多模型用来量化人类的色觉,以应用广泛的1931 CIE色域为例,它将光的光谱功率分布转换为三个刺激值X、Y、Z。这里,Y确定亮度,X和Z则确定在该亮度下的色度。色度值可以在CIE色度图中呈现,如下图所示。

image-20230430144109866

上图代表了普通人可见的所有颜色,接下来将使用三元组(x,y,Y)来描述特定颜色的色度和亮度。

CIE色度图中的三角区域为RGB色域图,是一般显示设备能够呈现的颜色区域

光谱颜色相加规则

对于两种特定的光C1和C2,可以表示为$(x_1,y_1,Y_1),(x_2,y_2,Y_2)$。如果将它们同时投影,得到的混合颜色的三元组为
$$
(x,y)=\frac{Y_{1}}{Y_{1}+Y_{2}}(x_{1},y_{1})+\frac{Y_{2}}{Y_{1}+Y_{2}}(x_{2},y_{2})
$$

$$
Y=(Y_1+Y_2)/2
$$

也就是说,混合颜色的色度位于两个色度的线段上(在色度图中),线段上的具体位置取决于混合的两种颜色的相对亮度

时间性颜色加性感知

当人们观察随时间变化的颜色时,他们接收亮度变化和色度变化。当两种等亮度颜色以25Hz或更高的频率交替时,观察者通常仅感知到一种融合颜色,其色度基于先前讨论的色度相加规则来确定。这也可能涉及视觉暂留,即认为残像在视网膜上持续大约1/16秒的理论,这也被认为是对运动感知的解释。

如下图所示,人们将红色和蓝色交替视为洋红,将红色和绿色交替视为黄色。

image-20230430145001393

闪烁和临界闪烁频率(CFF)

虽然人类的视觉系统非常强大,但其解释显示器上呈现的时间信息的能力是有限的。当变化频率小于眼睛的时间分辨率时,称为临界闪烁频率(CFF),人眼就会感知到闪烁。

照度闪烁是指在屏幕上显示的帧之间的可见的亮度衰减,当亮度下降足够长的时间间隔就会被人眼注意到。类似地也定义色彩闪烁。另一方面,当闪烁频率大于CFF阈值时,来自连续帧序列的照度闪烁刺激和色彩闪烁刺激仅被人类感知为这段时间的平均亮度和平均波长

通常,人眼只能分辨高达50Hz的亮度闪烁和25Hz的彩色闪烁。因此,我们的眼睛无法捕捉快速移动的物体和高频闪烁的图像。实际上,CFF取决于显示器上的亮度空间和时间调制两者。如果显示器亮度调制的主频率的绝对幅度大于预定的频率相关阈值(即A(f)),那么观察者将感知到闪烁。

其中$A(f)=ae^{bf}$,其中f是刷新率,a和b是取决于发光区域的大小的常数。下图展示了用于不同显示场尺寸的阈值情况,其中度数值为从眼球出发的视场角角度。给定调制阈值A(f)和常数a/b,可以得到$CFF =\frac {ln[A(f)/a]} {b}$。

image-20230430145723084

相机的采样率

摄像机感知颜色的方式与人眼相似。每个像素在曝光时间期间接收不同波长的光,并且将它们融合以计算该像素的亮度和色度值。车载摄像头现在可以以快帧率(称为记录速率)捕获高分辨率的百万像素图像,这甚至超过了视网膜的感知能力。例如,传统的车载摄像头的记录速率为24、30或60fps,而一些最新的移动的智能手机,例如。例如,在一个实施例中,iPhone 5,iPhone 6和三星Note 4,支持高达120和240fps的高品质。

滚动快门

CMOS图像传感器已成为移动设备相机的主流,其可以连续曝光和读取每行像素。大多数消费级相机由于其低能量成本而使用这种图像传感器,但这会导致捕获的图像的几何失真,称为卷帘快门效应。举一个简单的例子来解释卷帘快门机构,假设在曝光之前,视频帧的每一行需要相机传感器花费$t_r$秒用于初始化。且传感器需要逐行扫描场景以合成完整的图像,并且对于每一行需要驱动器花费$t_d$行扫描并转储数据,除此之外,每行扫描还需要加上曝光时间$t_e$。那么扫描一行像素花费的总时间
$$
t_l = t_r+t_e+t_d
$$
假设摄像机的记录帧率为30 fps,则用于构建单个帧的持续时间为1/30s,表示为$T_c$。每一帧包含多个批次的线扫描,其中每一行的持续时间为$t_l$,这些线被顺序曝光和转储(可以实现并行,类似CPU流水线)有效光采样频率定义为在一秒内捕获的行的数量。虽然典型的卷帘快门相机声称录像的帧率$f_c=\frac 1 {T_c}$,但其有效采样频率为$f_s = f_c\times n$,其中n表示单帧中的相机扫描的实际行数。

不稳定帧间间隔

通常拍摄一帧图像时,快门需要打开一定的时间来获取足够的光,并且相机以预定义的高频连续地生成单个帧以记录视频。曝光时间取决于传感器本身的灵敏度和实际照明条件,比如对比度和亮度。大多数消费级相机自动调整其帧速率,以确保整个视频的视觉质量。一些现成的移动的设备在录制时无法达到标称帧率,帧间时间间隔经常会出现波动。

场景复现

image-20230430151805716

Kaleido系统应用在原始影片放映之前,通过对原始影片的预处理,可以实现:当处理后的影片在屏幕上播放时(一般是高帧视频),观看者的视觉感受与原始影片保持一致,但是盗摄者偷录的视频观看时将会发生空间、色度的扭曲,从而遏制盗版视频的传播。

场景假设

一般来说,原始影片的拍摄帧率为24fps或30fps(拍摄高帧率电影成本极高),放映时会通过插帧达到如120fps播放在荧幕上。以30fps的原始视频为例,插帧的一般做法是,将一帧原始帧复制成四份(可能会通过视频算法进行优化帧之间的过渡,但是总体来说这四帧相差不大)。Kaleido就是在插帧算法/策略上做文章。

假设影片播放帧率$f_d$,相机记录帧率$f_c$

场景1:$f_d>f_c$

在这种情况下,在单个时间窗口$T_c$期间存在由相机显示的多个帧。相机的卷帘快门效应会导致一条线的曝光时间$t_e$小于$T_c$,因为$t_e<t_l<T_c$,并且实际上,$t_e$可以小于$T_c$的一半。

因此,对于记录帧中的特定线,其曝光时间不足以在Tc期间记录完整的光信号(或者说混进去了别的帧的光信号)。如果信号随时间不变,那么不会丢失任何信息。这就是为什么我们可以使用30fps的相机记录在120Hz屏幕上显示的传统视频(30fps录制),因为它重复每个帧四次。

如果信号是时变(例如来自单个原始帧的重新编码帧是不同的),则不能记录部分变化。例如盗版视频中的记录信号的时间分布偏离原始视频帧,因为眼睛感知时间平均色度和照度,所以时间变化损失可能导致可感知的失真。此外,所记录的盗版视频中的不同行丢失了因时间变化的部分,这可能导致帧的空间变形。

或者从信息论的角度解释,采样频率小于原始频率,必然导致信息的失真(最好情况就是原本信号就是恒定的,那么这个时候采样值与实际值保持一致)

场景2:$f_d<f_c$

这种情况下,每个视频帧可以由至少一个捕获帧记录。

如果显示系统和相机系统理想地同步,则在所记录的帧的任何线的曝光时间期间,光信号是恒定的(来自单个显示帧),并且相机可以以高保真度记录所显示的光信号。

在实际应用中,摄像机与显示器不同步的可能性很大,这会导致每个记录帧中的异相线。如下图所示,一条异相线捕获来自两个连续显示帧的光信号。如果在频率$f_f = f_d/2$处存在闪烁(连续的较暗帧和较亮帧,或较亮帧和较暗帧),则扰动将被$2 \frac {f_c} {f_d} + 1(f_c/f_f+1)$个时间连续的异相线捕获。这导致闪烁现象被记录,并且频率从$f_f$下变频到$\frac 2 {2+f_d/f_c} f_f$。通过这种现象,我们有机会将频率大于CFF的不可见噪声编码到原始视频中。在通过相机记录进行下变频之后,噪声可以变得可见,因为其频率降到CFF以下,闪烁有可能被人眼感知

image-20230430155059254

Kaleido系统组件

一些约定

简单起见,考虑30帧的原始视频,且由N个帧$\{V^{1},V^{2},\cdot\cdot\cdot,V^{N}\}$组成.每个帧是RxC的矩阵,每个像素$P_{ij}^k$的颜色表示为三元组$C_{ij}^k=(x_{ij}^k,y_{ij}^k,Y_{ij}^k)$。

假设显示设备的刷新率为120Hz,那么将每个原始帧$V_k$分解成4个显示帧$\{V^{k,1},V^{k,2},V^{k,3},V^{k,4}\}$(称为子帧)。注意,所有子帧具有相同的持续时间1/120s。

为了保证闪烁频率大于CFF并且子帧可以被人眼“融合”,将每个帧分解为两个不同的子帧,称为融合对,并且重复融合对(这里重复两次)。

接下来需要确定子帧中的每个像素$P^k_{ij}$的$(x_{ij}^k,y_{ij}^k,Y_{ij}^k)$值。

对于24 fps的视频,可以使用工具转换为30 fps,或者每帧分解为5个子帧,这使得分解更加复杂(不是2的整数倍),但原理和技术是一样的。

亮度帧污染

根据场景2的解释,可以在低帧率的原始视频进行重新编码(为高帧视频)时,在临近帧加入人眼不可感知的亮度闪烁。当高帧率相机记录时,闪烁频率会下降,如果小于CFF,就有可能被人眼感知,从而降低盗摄视频的质量。

首先令子帧中的每个像素的初始亮度等于其原始帧中的亮度$Y_{ij}^k$。给定两个连续的子帧,像素对$P_{ij}^{k,1}$和$P_{ij}^{k,2}$具有亮度$Y_{ij}^k$。

可以向像素对添加亮度互补扰动(+δ,−δ),它将它们的照度水平改变为$Y_{ij}^k+δ$和$Y_{ij}^k-δ$。

如果刷新频率高于CFF,那么人眼依旧感知到的是平均亮度$Y_{ij}^k$,那么添加的互补扰动是不可感知的。然而,当存在时间信息损失时(场景1),扰动不能被抵消;当异相线捕获发生时(场景2),扰动的频率会降低到CFF以下。无论哪种情况,这种亮度扰动将变为人类可感知的闪烁。

image-20230430161209864

色度帧分解

通过亮度帧污染,可以确定每个子帧每个像素的亮度值(Y),接下来确定(x,y)。因为我们需要保证人眼不可察觉。所以混合对(两个子帧)的颜色叠加值应该为原视频帧的颜色。根据之前提到的加性规则,有无数种可能可以形成最终的颜色。这里需要找到差异最大的两种颜色,衡量颜色差异简单使用色度图上的距离。以下使用差异色搜索指代这种寻找颜色的过程。

image-20230430163241966

给定C点,需要找到RGB三角中距离最远的两个点。易得最优解至少有个点在三角形边缘,于是将三角分割成六个部分,分别在子区域中得到局部最优解,在比较得到最终结果。同样根据之前提到的规则,$CC_1$和$CC_2$的长度比值为两个帧之间的亮度(Y)比值。Y在亮度帧污染已经确定。

image-20230430162803604

这种搜索时间成本较大,可以通过区域配对、随机选择、随机混合和平滑等操作降低搜索的时间复杂度。下图为几种方法得到的两个子帧。

image-20230430163053916

以区域配对为例,首先将两个子帧分割为网格,对于每对网格分配一对区域(即上图RBG三角中的1和4、6和3、2和5)。当对这块区域进行差异色搜索,只需要在对应的两个网格里寻找即可。

image-20230430162255569

降低编码的另一个方法是相邻帧迁移,因为一般两个连续原始帧具有相似性,如果两个原始帧之间的相同像素之间的色差相差不大(这里的色差同样定义为色度图上的距离),那么就不需要对这个像素再做差异色的搜索,之间引用上一帧相同位置像素的结果即可。

以下图为例,前一帧颜色为$C^k$,搜索到的两个颜色为$C^{k,1}$和$C^{k,2}$,对于第二帧的颜色$C_{k+1}$,只需要过该点做上一帧$C^{k,1}$和$C^{k,2}$的平行线即可得到$C^{k+1,1}$和$C^{k+1,2}$。(长度比例取决于当前帧即第二帧的两个子帧之间的相对亮度)

image-20230430162751286

实验评估见论文,主要是使用了一些视频质量评估指标来评估经过Kaleido编码的原视频和其盗摄视频之间的差异,最后也做了主观实验。

结论

这篇工作中提出了一个防盗摄的方案。该设计利用了屏幕-人眼感知和屏幕-相机感知之间的微妙差异,通过对原始视频帧进行重新编码,防止未经授权的用户对在诸如剧院中的屏幕上播放的视频进行录像,同时不影响合法观众的观看体验。

多媒体安全
Theme Jasmine by Kent Liao