来源:TCSVT 2024题目:A Character Position-aware Compression Framework for Screen Text Content (SJTU Medialab) 作者:Chen Zhu, Guo Lu, Huanbang Chen, Donghui Feng, Shen Wang, Yan Zhao, Rong Xie, Li Song 论文链接:https://ieeexplore.ieee.org/abstract/document/10476634 内容整理:朱辰 本文是上海交大媒体实验室与华为中央媒体技术院的合作论文,提出了一种字符位置感知的压缩框架。在编码端,框架运用文本探测技术定位字符像素,并将其分离至独立的文本层。框架设计了一种自适应重排机制,能够对文本层中的字符块进行合理布局,确保它们与 CU 网格精确对齐。进而,根据文本层特征,设计了一系列针对文本内容编码优化的工具,并与基础编码工具相结合,形成了一个定制的文本编码器。文本编码器以有损压缩方式处理文本层数据,同时对字符位置信息进行无损编码。字符位置作为辅助信息,用于复原字符块的位置。在解码端,经复原后的文本层与背景层融合,生成最终的重建帧。实验证明,所提出的框架在提升屏幕内容编码效率方面具有显著效果。
主流编码标准采用划分树结构实现块级预测和变换。以 HEVC 为例,它将图像分割成固定尺寸且互不重叠的 CTU,每个 CTU 能够进一步细分为更小的编码单元 CU 和预测单元 PU。这种结构下的候选划分模式和位置是预先设定好的,这意味着 CTU 或 CU 的边界并不总是与文本字符的边界重合,进而导致字符在像素层面的完整性受到破坏。特别是在字符跨越 CTU 边界的情况下,会出现大量小尺寸的 CU,造成预测效率下降以及不必要的比特率消耗,如下图所示。
图1
针对这一问题,提出假设:若能确保字符图像块的起始位置与 CTU 或 CU 的起点对齐,以字符作为基本单元进行编码,或将能够提升编码效率。为了初步验证这一设想,我们在一组简单的文本图像上执行了对比实验。实验运用 Python 的 matplotlib 库生成了一系列包含黑色英文字符的小尺寸图像块,这些字符块的高度统一为32像素,且同一行内的字符宽度保持一致,取值范围在 16 至 32 像素之间。之后,将这些字符块按照两种不同的布局方式嵌入到一幅白色背景图像中:1. 字符块连续紧贴排列,模仿了文本内容常见的布局形式,简称为常规排列(下图a);2. 字符块严格对齐于非重叠的32x32像素网格,简称为网格排列(下图b)。
图2
遵循上述过程,制作了多组对比图像,所有图像均使用相同的编码配置和量化参数进行压缩。下表的实验结果显示,相比于常规排列,网格排列在 PSNR 指标下实现了大约 10% 的 BD-Rate 增益。据此,可以认为:将字符与 CU 网格对齐的假设对提升编码效率是有益的,可以利用这一现象设计一种字符位置感知的文本内容编码框架。
图3
提出的文本内容编码框架如下图所示,包含了一种位置感知的文本层表达技术及其配套的文本编码工具。框架运用低复杂度的文本检测与字符分割算法,将原始图像划分为文本层和背景层两部分,并确保文本层中的字符块与 CU 网格精确对齐。在此基础上,针对文本层开发了几项新颖的编码工具:1. 位置感知的运动向量预测(Position-aware Motion Vector Predicton,PMVP);2. 纯色合并(Pure Color Merge,PCMerge)模式;3. 可缩放的运动矢量差(Scaled Motion Vector Difference, SMVD);4. 梯度引导的环内滤波器(Gradient-guided In-loop filter,GIF)。我们在编码阶段分别使用改良后的文本编码器和基准屏幕内容编码器压缩文本层和背景层。此外,字符位置被无损压缩并用作辅助图像重建的边信息。在解码过程中,利用边信息将字符还原到它们原本的位置上,并将复原后的字符块与背景层叠加,生成重建帧。
图4
对于文本检测,结合早期的相关工作,开发了一种基于投影原理的检测算法。算法通过统计水平线或垂直线上边缘像素的数量,界定边缘与平滑区域间的界限。具体来说,若图像某一行或某一列的边缘像素数量大于零,则将其视为边缘区域的一部分。反之,若投影值为零,推断其属于平滑区域。为了得到边缘图,采用 Canny 算法在原始图像的灰度图上进行处理。随后对获得的边缘图像进行形态学膨胀操作,目的是强化并连结相邻边缘点。
如下图b所示,在边缘图像中,文本区域以其显著的高密度和近乎矩形的形态显现。接下来,采用两阶段的投影方法来识别并定位这些高密度边缘构成的文本区域。在第一阶段,依次实施粗糙水平投影与垂直投影,将边缘图像分割成一系列候选边界框。在第二阶段,对每个候选边界框内部像素执行精细水平与垂直投影,旨在将文本区域进一步细分为多个独立的文本行。最后,依据边界框的长宽比例和颜色分布特征进行筛选,确定文本行的位置。
图5
为了实现字符块的位移和对齐,需要对已识别出的文本行进行字符分割操作,获取每个字符块的四参数坐标 ,这些参数界定了字符所在的像素坐标范围。我们设计了一种基于色彩差异的简易字符分割方法。首先,通过统计所有检测到的文本行的直方图,确定出现频率最高的颜色 ,并将其视为背景颜色。随后,对于任一文本行,将其中每个像素位置的亮度值与背景颜色的亮度值 进行比较,生成一个二值图 。该二值图的计算方式如下:
其中, 表示坐标点 的像素亮度值, 表示颜色差异阈值。若某像素点的亮度值与 相差超过阈值,则认为它属于字符部分,并在 中标记为 1,反之则标记为 0。
随后,采用连通域分析方法对 进行处理。连通域被设定为由连续相邻且满足八邻域关系的字符像素集合所构成的一个闭合矩形边界区域。基于此定义,每个独立的字符都会对应于二值图中的一个连接域元素,进而可以获得其边界坐标。在本框架中,同一文本行中的字符块共享相同的 和 坐标,而水平方向上各个字符块的 坐标基于后一个字符块的 坐标得到,如下图所示。
图6
本模块是将文本内容与 CU 网格进行精准对齐,为此需要进行像素缓存的移动操作,将文本区域从其他图像内容中分离出来。如下图所示,利用上个模块提取的四参数坐标,从输入图像中裁剪出字符块,并且使用背景颜色 填充裁剪后留下的空白区域。经过这一处理,剩余的部分构成了背景层图像。根据前文的发现,字符块应与 CU 网格对齐以构建独特的文本层图像,达到节省比特开销的目的。然而,实际的 CU 网格结构只有在编码过程结束后才能获取,无法直接用于指导字符块的对齐操作。对此,采取的方法是:将字符块复制到一个已填充背景颜色 的图像层中,按照字符块在原始图像中的位置,以光栅扫描顺序将字符块手动对齐至预设的 CU 网格位置。
图7
在这一过程中,设定的准则是:当前进行对齐的字符块向图层的右下方位移,与最近邻的 CU 网格对齐,并且不与已经完成对齐的字符块产生内容重叠。据此,第 行第 个字符块经过对齐操作后的起始坐标 可以表示为:
其中, 和 分别表示基本对齐单元的高度和宽度, 和 分别代表字符块在垂直和水平方向上进行对齐操作的偏移量参数,设定为满足对齐准则的最小正整数。为了保证字符块与 CU 网格对齐, 和 的数值需要从 CU 候选的宽度和高度集合中选取,即8、16、32、64。根据部分测试图像上的最优结果,我们将 和 分别固定为 32 和 8。这意味着,一个对齐后的字符块会根据其尺寸大小,覆盖一个或多个 8x32 的 CU 网格区域。在这种对齐规则下,文本层的尺寸由字符块对齐情况决定,这一信息写入至 PPS 中用于重建。此外,还将表示字符位置的四参数坐标进行差分编码,生成无损的边信息码流。
HEVC 标准引入了基于列表比较的竞争机制以实现运动向量预测。该机制首先会创建一个候选 MVP 列表,并向这个列表中填充空域和时域的邻近 MV。随后,通过率失真优化挑选出编码代价最低的 MVP 来表示运动向量。但是,在文本内容中,由于连续字符间往往存在显著的语义差异和像素变化,从相邻 MV 集合中选出合适的 MVP 是较为困难的。这一问题会导致数值较大的 MVD 的频繁出现,从而增加码率开销。
图8
如上图所示,框架引入了一种扩展的 AMVP 模式——位置感知的运动向量预测 PMVP。该模式通过引入一个字符位置列表 来降低 MVP 的编码码率。考虑到文本字符块与 CU 网格已经对齐,CU 和 PU 的左上角坐标很有可能是字符块的起始位置,因此可将其作为字符位置的代理值。在本模块中,当 PU 选择 IBC AMVP 模式时,会将该 PU 的左上角坐标信息加入列表 ,作为一个候选的位置预测器。PMVP 模式在遍历完所有原始 AMVP 候选后执行列表搜索。对于列表中的每一个位置预测器 ,PMVP 在给定当前 PU 位置 以及指向参考位置 的运动向量 MV 之后,构造出两个向量 PMVP 和 MVD,如下所示:
按照上述计算方式,PMVP 寻找具有最低比特成本的位置预测器,并与原始 AMVP 候选进行竞争。为了实现这一算法,我们在 AMVP 原有的语法结构中新增了两个元素: 和 ,并且沿用了原有元素 。它们的含义分别如下:1. :MVP索引。若 等于0或1,则表示使用原始 AMVP 候选。我们增加 以指代当前模式为 PMVP;2. :位置索引。若 等于 2,则传输该索引,表明在列表 中最佳位置预测器的序号;3. :位置数目。记录当前列表中位置预测器的数量,作为 可取的最大值。PMVP 模式的总体码率成本包含 、 和 MVD 所消耗的比特数。
框架提出了一种全新的 Merge 模式,其主要目标是提升包含有单一颜色的 CU 和 PU 的编码效率。在文本层表达模块中,为了保证色彩的连续性,框架会对文本层和背景层使用背景颜色像素进行密集填充。这些纯色像素的信息量极小,但在现有编码框架中,相关区域仍然会消耗一定的码率,并且只能依靠复杂工具进行处理。针对这一问题,设计的 PCMerge 模式支持相邻编码块共享颜色信息,减少相似数据的重复编码。我们将这一模式集成到原始 Merge 的模式遍历流程中。PCMerge 模式的具体操作步骤如下:1. 重用背景颜色 ;2. 构建预测块 ,其内部所有像素均填充背景颜色,如下图所示。随后,计算该预测块所对应的残差块的率失真代价,并与其他常规的 Merge 模式代价进行对比;3. 当 PCMerge 因其较低的率失真代价被选中时,编码对应的 Merge 模式索引 。
图9
通过一系列实验验证,我们明确了 PCMerge 模式的颜色信息检查点 插入至原有检查点的位置。实验显示,将 Merge 候选列表顺序设置为 时,编码效率达到最优。这里的 ,,,, 分别代表原始 Merge 模式中来自不同邻近预测块的候选位置。根据检查点的顺序,我们为PCMerge 分配了模式索引值 ,同时将后续模式 的索引值依次递增 1,以确保编解码的一致性。
此模块对 MVD 的编码语法进行了优化。鉴于本框架中字符块与 CU 网格是对齐的,在跨字符的预测场景中,MV 和相应的 MVD 值通常会是 CU 网格尺寸的整数倍。此时,若直接对MVD的原始分量值进行编码,会消耗大量的码率。为此,引入了一个与 MVD 相关的标志位 ,它用于标识 MVD 的类型,并实现 MVD 的自适应编码,这种策略类似于 VVC 标准中引入的自适应运动矢量分辨率 AMVR 技术。在本模块中,当 MVD 的水平和垂直分量都恰好是 CU 网格大小的整数倍时,将 置为1,并对 MVD 值进行缩放处理;反之,如果 MVD 数值并非 CU 网格大小的整数倍,将 设定为0,此时保留原始的 MVD 值不作改变。相应的数学表达式如下:
其中,MVD 代表用于编码的 MVD 值,MVD 是原始 MVD 值, 则表示 MVD 缩放比例。实验测试表明,对于垂直和水平MVD的缩放比例 和 ,将其分别设置为 和 ,可以获得最佳的编码效率。例如,假设一个 MVD 为 (16, 64),则实际编码到比特流中的信息将是经过缩放后的向量 (16/8, 64/32) = (2, 2),以及标志位 。虽然编码mvdFlag需要额外的比特,但相比于通过缩放 MVD 所节省的比特量,这部分开销微乎其微。特别是在文本层编码中,当经常出现 MVD 值恰好为 CU 尺寸的整数倍的情况时,这种策略能够显著减少整体的比特消耗。
由于梯度信息能够有效反应图像的锐利度和清晰度,框架提出一种梯度引导的深度环路滤波器 GIF。所提出的滤波器网络为双支结构,包括一个主分支和一个梯度分支,如下图所示。主分支接收文本层重建图像的亮度部分作为输入。梯度分支则针对文本层重建图像的梯度图进行处理,并将梯度特征与主分支网络相融合进行滤波。
图10
主分支主要包含三个级联的残差块 Resblock,这些块所产生的中特征会被传递至梯度分支,用于共享输入图像的全局结构信息。在残差块之后,主分支采用一个拼接层和两个卷积层将梯度分支的特征信息与其自身的特征进行融合。在特征融合之后,网络通过一个卷积层生成最终的滤波后重建图像。相比之下,梯度分支的结构更为精简,它同样由三个 Resblock 构成,能够充分利用主分支提供的结构信息。该分支中的每一个 Resblock 依次接收主分支中不同层次的中间特征,并将最后一个 Resblock 的输出特征回馈至主分支,达到优化网络整体性能的目的。同时,为了指导网络的学习过程并构建有效的模型损失函数,添加了一个卷积层对梯度分支的输出进行处理,产生预测梯度图。
经过以上多项工具改造后的编码器用于压缩文本层图像。对于背景层图像,采用开启了 PCMerge 模块的标准屏幕内容编码器进行压缩。除了分辨率以外,两个图层采用相同的编码参数和配置进行处理。
在解码阶段,凭借传输的字符位置边信息以及与编码端相反的字符块位移操作,文本内容可以精确地恢复到原始位置。具体操作中,根据边信息的原始坐标值,在文本层重建图像中定位并裁剪出相应的字符块像素内容。随后,将这些裁剪出的区域逐一移动到重建背景层的相应位置,构建出完整的重建图像。
为了评估框架的性能表现,共汇集了67张图像以构建测试数据集。该数据集包含了 5 张来自 SCID 数据集,3 张来自 HEVC-SCC 通用测试条件的图像。除此之外,还从 HEVC 标准电子书和互联网中分别截取了46和13张网页图像。测试图像的分辨率介于 1280x720 和 2480x3500 之间。
我们在 VVC 标准参考软件 VTM-17.0 以及 HEVC-SCC 参考软件 HM-16.21+SCM-8.8 中集成了所设计的模块。实验在 All_Intra(AI) 配置下进行,选取的测试 QP 点包括 22,27,32,37,同时启用了以下的编码工具:IBC、PLT、DBF 和 SAO。我们对比评估了两个不同版本的编解码方案:一个是开启了 GIF 的版本(下文简称为w/ GIF),另一个是关闭了 GIF 的版本(下文简称为w/o GIF)。在这两个版本中,框架中其余的编码工具均保持开启状态。
下表汇总了提出框架和对比方案的 BD-Rate 结果,实验结果显示,当以 VTM 为参照基准时,w/ GIF 版本在 PSNR 和 SSIM 性能上平均提升了 4.6% 和 6.5%。而 w/o GIF 版本也分别取得了 3.6% 和 5.2% 的PSNR和SSIM性能提升。当以 HM-SCM 作为基准时,w/ GIF 和 w/o GIF 分别在 PSNR/SSIM 指标上获得了 9.5%/11.7% 和 8.5%/9.7% 的 BD-Rate 改善。提出的方法通过移动字符块并使之与 CU 网格对齐,有效地降低了编码过程中块划分信息以及残差像素所占用的比特数量,从而提升了编码效率。
图11
下图提供了一些重建对比示例。可以看到,采用本框架处理后的图像在视觉上与基准方案几乎没有差异。相比于最新的基于语义的文本内容编码方案,本框架的鲁棒性更好。基于语义的文本区域合成策略,其性能瓶颈在于语义分析的精确度及文本渲染引擎的合成准确度。一旦语义识别环节出现偏差,就会导致生成内容的语义失真,进而导致观看质量的严重下降。
图12
模块开关测试。根据下表数据,在以 HEVC-SCC 作为基准时,单独开启 TLR、PMVP、SMVD、GIF 这四个模块能够分别取得 4.6%、3.0%、0.6%、1.8% 的 PSNR BD-Rate 提升。值得说明的是,当 PMVP 与文本层表达 TLR 模块同时开启时,两者共同带来的性能提升超过了它们各自独立运作时的增益总和。PCMerge、SMVD 同样具有这种增益叠加效应。该现象说明,这三个工具与文本层表达技术互补性。当 TLR、PMVP、PCMerge 以及 SMVD 这四个模块同时激活时,整体性能得到了进一步优化,表明这些工具之间具有良好的兼容性。
图13
与标准工具的兼容性。下表的数据显示,当框架提出的工具与基准算法中三种核心预测工具(帧内预测、IBC、PLT)共同运作(All Open)时,实现了在 HEVC-SCC 编码器上 9.8% 的效益。若禁用 IBC 工具(w/o IBC),方案性能增益降至 1.0%,在此基础上,继续关闭 PLT 模块(w/o IBC PLT)所对应的性能增益为 3.0%。据此,可以合理推断,本章框架在很大程度上增强了 IBC 的预测效率,这可能是由于在对字符块进行移动和对齐后,IBC 工具能更精准地匹配到参考区域内的重复内容,有效减少了编码残差所需的码率。
图14
辅助边信息的码率占比。下图的柱状数据显示,在 VVC AI 配置下,对位置信息进行压缩所增加的额外码率极其有限。由于辅助信息是无损压缩的,其所消耗的码率是固定不变的。这部分固定码率在 QP37 比特流中的占比约为 3.5%;而在 QP22 的测试点下,这一比例进一步降低到了 1.2%。
图15
作为文本内容编码优化的一次尝试,提出的方法仍存在一定限制。首先,所设计的检测与分层技术仅适用于具有单色背景的文本区域。实验发现,当对复杂背景中的字符块进行分割和对齐时,会干扰背景层的预测模式,从而引起图像整体率失真性能的退化。其次,所提出的工具集与连续帧结构的整合尚不完全,导致方案在文本视频编码中的潜力未能充分展现。