础滨驱动的设计应用
草榴社区 主管工程师 Venugopal Santhanam;草榴社区 产物营销经理 Malte Doerper
各种移动设备中对高清晰度、丰富的视觉内容的需求正在推动新一代显示器的发展。显示器需要具备更高的分辨率、更快的刷新速度、更高的保真度及更多色彩、更好的亮度和对比度。这些要求产生的带宽需求增长速度超过了当前接口标准(如 MIPI DSI、JEDEC DisplayPort 和 HDMI)的带宽。为了满足上述新兴需求,同时支持互操作性,所有主要显示器标准机构(如 MIPI 联盟、HDMI 论坛和 VESA)共同制定了视觉无损显示流压缩 (DSC) 标准。VESA DSC 1.2a 和 1.1 算法实时进行视频压缩和解压缩,用于流式处理视频数据。DSC v1.2a 标准针对的是有线连接,支持超出 HDMI 2.1 的 48 Gbps 和 VESA DisplayPort 1.4 的 32.4 Gbps 的未压缩限制进行扩展。DSC v1.1 标准针对的是移动设备,支持降低链路速度,以在 MIPI DSI 和 VESA 嵌入式 DisplayPort 中降低系统功耗并延长电池寿命。
业界有望广泛采用 VESA DSC 标准,因为目前的 8k60 分辨率和 4:2:2 色彩范围要求 HDMI 2.1 的未压缩限制为 48 Gbps。此外也考虑了刷新频率增多的因素 [1]。根据 Norman Akhtar 和 Dinesh Kithany [2] 于 2018 年 1 月 4 日 发布的 IHS Markit 报告,显示器件市场预计将会出现大幅增长,未来 5 年内的“复合年增长率将达到 131%”。同样,根据 2018 年 3 月发表的《持久性市场研究》文章[10],AR/VR 行业也需要高刷新频率和小尺寸分辨率,“预计 2018 - 2026 年间的复合年增长率将超过 49%。”
图 1:全球采用有线视频接口技术的设备出货量达十亿台摆2闭
图 1 所示的增长表明需要采用 VESA DSC 标准来满足不同的显示接口标准,同时证明了对 VESA DSC 压缩和解压缩实现的需求。
本文将说明实现 VESA DSC 面临的难题,以及设计人员如何通过完整且兼容的 VESA DSC 编码器和解码器 IP 解决方案克服这些难题。
单行多片
DSC 算法可并行编解码器操作,因而具有高度可扩展性。由于数据路径的计算非常密集,所以这一功能非常重要。为了满足像素时钟时序约束条件,帧沿垂直和水平方向被分成相等大小的切片,然后并行接受处理。所需的并行量取决于像素速率。表 1 列出了 HDMI 2.1 协议分辨率以及将数据路径时钟保持在 300 Mhz 左右所需的相应切片数。
表格 1:VESA DSC 的 HDMI 2.1 协议分辨率以及将数据路径时钟保持在 300 Mhz 所需的相应切片数
表 1 显示当视频格式从 4K60 变为 8K60 时,每行所需的切片数从 4 增加到 8。因此,DSC 实现需要高度可编程控制单元,可将数据路由到所需数量的数据路径切片上。
切割帧后可以降低编解码器操作频率。然而,所有切片都需要具有相同的宽度和高度。将帧宽除以总切片数,四舍五入后即可得出每个切片的宽度。例如,如果图像宽度是 5120 像素并且每行所需的切片数是 12,则使用 ceiling(5120/12) = ceiling(426.66) = 427 作为切片宽度。ceiling() 函数四舍五入为大于等于分数的最小整数。
这使得最右边的切片具有 5120-427 * 11 = 423 像素。由于所有切片的宽度需要相等,因此最右边的切片需要填充四个像素。根据 VESA DSC 1.2a 算法选择填充像素的内容,该算法会随着操作模式的变化发生改变。
当帧的宽度和活跃切片的数量随着视频模式改变时,编码器插入的填充像素的数量也会相应地改变。表 2 总结了每行切片数量所需的填充。
表格 2:每行切片数量的填充计算
在 DSC 解码器侧,填充像素的移除与编码器侧的填充过程是同步的。解码器实现面临的难题在于没有边带通信来传送填充,解码器必须根据视频模式确定填充量和最右边的切片的概念,以相应地降低填充的像素。
例如,每行最多 8 个切片的配置可以具有 1、2、4 或 8 个活动切片。切片按照切片 -0,切片 -1 到切片 -7 的顺序依次编号。使用 2 个活跃切片(意味着只有切片 -0 和切片 -1 活跃)操作,那么切片 -1 就成为最右边的切片,因此必要时必须在每个行末尾的切片中进行填充。
表 3 根据配置中启用的切片数和在视频模式下选择的活跃切片数列出了最活跃的切片。
表格 3:最大切片数和视频模式下的活跃切片数
当切片高度不是图像高度的倍数时,也必须填充像素行。例如,如果图像高度为 960 行且切片高度为 500 行,则有必要在最底部进行切片填充(图 2)。
图 2:切片高度不是图片高度的倍数时的填充情况
HDMI、DisplayPort 和 MIPI DSI 协议在恒定比特率 (CBR) 模式下使用 DSC 算法,此时算法生成平均约等于常数值的压缩视频流数据(等于图像参数集 (PPS) 的每像素比特数)。然而在切片末尾,可能因算法行为而需要生成填充数据(包含由 0 组成的数据流)以保持比特率恒定。
零填充量计算如下:
零填充位数 = (切片高度 x 块大小 x 8) – 针对切片生成的总压缩位数
在编码器侧实现时面临的难题是,只有在整个切片完成编码之后才能确定零填充位的确切数量。零填充量通常会有变化并且是切片宽度、每像素的目标位数(压缩比)、块大小等若干参数的函数。此外,必须在启动下一个切片的切片操作之前完成零填充。
与之相似,在解码器侧,在完成切片处理之后(在解压缩期间移除确切的压缩位数),必须移除零填充位。
我们选择以下示例配置来说明零填充:
图片宽度 = 3840 像素
图片高度 = 3909 行
切片宽度 = 1920 像素
切片高度 = 489 行
每颜色分量的位数 = 10
每像素的位数 = 15(因此压缩比为 2.0)
块大小字节数 = 3600
DSC 算法生成的总字节数 = 1,759,794
根据切片预算生成的总字节数 = 切片高度 x 块大小
= 489 x 3600 字节
= 1,760,400 字节
接受零填充的总缺陷字节数 = 1,760,400- 1,759,794
= 606 字节
在该示例中,DSC 编码器在整个切片经过编码之后开始发送 606 字节的零填充数据。在 DSC 编码器侧,数据路径切片必须确保在下一个切片的数据处理开始之前发送零填充数据,否则可能会阻止处理。
在解码器侧,上面的示例表明,需要刷新零填充字节才会解码下一个切片。
草榴社区 的 DesignWare VESA DSC IP 在将解压缩的流发送到控制器之前会自动剥离零填充位。
要实现目标像素速率,并行数据路径的数量应增加到 2、4、8、12 或 16,这样可以减少操作频率。此外,仔细检查算法后发现,算法中的某些部分可以基于区域和时序要求的权衡,实现为并行或半并行结构。例如,算法的一些部分(例如,用于量化点 (QP) 更新的速率控制算法)可以在 3 个连续的时钟周期内或一组相当的时间内扩展。
草榴社区 的 DesignWare VESA DSC IP 基于综合目标节点,提供区域和时序权衡所需的灵活性(实现并行、半并行数据路径结构)。在难以满足目标定时的节点上,可以通过门数的略微增加来提高并行性,以实现更好的定时。
在数据目的端,完成编码操作后需要根据适用标准重新生成所需的视频同步信号(HDMI、MIPI 或 DisplayPort)。这给集成带来了难题,因为 VESA DSC 标准没有说明视频同步信号再生的任何细节。为了解决这一难题,可能需要在 DSC 和控制器之间建立缓冲区。DSC 写入该缓冲区。在达到某个填充水平之后,控制器可以读取该缓冲区,以便在单个脉冲串中读出整行压缩数据。
功耗是可穿戴 AR/VR 设备面临的一大障碍。内存操作对功耗有重大影响。由于 DSC 算法需要在不同的计算阶段(在像素缓冲器、行缓冲器、速率缓冲器、平衡 FIFO 和语法元素 FIFO 中)进行缓冲,因此最佳存储器架构可以相应地降低功耗。由于需要同步访问 DSC 算法的存储器以进行写入和读取操作,因此最好选择基于双端口 RAM 的存储器接口。
但是,与具有相同容量的两端口或双端口 RAM 相比,尺寸适宜的单端口 RAM 存储器通常占用面积更小并且消耗的功率更少。要调度存储器写入和读取请求,就需要 DSC 架构中的部分智能架构生成可连接单端口 RAM 的兼容数据。
草榴社区 DesignWare VESA DSC IP 具有必要的存储器接口和存储器调度逻辑,可与单端口存储器连接,并能满足减少存储器占用面积和功耗的需求。
DSC 配置错误可能导致系统挂起,因此错误报告功能对于快速检测并解决错误至关重要。DSC 模块通过图像参数集 (PPS) 进行配置。编码器和解码器必需具有相同的 PPS 设置才能保持系统正常工作。解码器通过性能参数集 (CPS) 指示其性能,所以需要相应地设置 PPS。
自恢复机制对于数据路径操作至关重要。DSC 算法构造完成,其中每个切片操作都是自我控制的。这意味着一个切片中的错误不会影响另一个切片的操作。
此外,解码器需要检查由于 DSC 流中的数据损坏而可能发生的以下错误:
DSC 标准通过单个链路聚合多个视频流并将其传输出去。这样就额外增加了实现的复杂程度。图 3 显示了一个每行有四个切片的 DSC 主机和设备控制器,所有这四个片均由同一个链路来维持。
图 3: 具有 DSC 编解码器的系统(每行有四个链路切片)
图 4 显示了两个视频流在同一链路上传输的 DSC 模式。因此,利用同样的 DSC 配置可以维持两个流来传输不同的视频内容。
图 4:具有 DSC 的系统,每行有两个切片用于维持两个单独的视频流
各种设备对高清晰度、丰富的视觉内容的需求在增加,因而需要更高的带宽。MIPI DSI、JEDEC DisplayPort 等显示器标准组织共同制定了一套视觉无损显示流压缩 (DSC) 标准,支持超出 HDMI 2.1 的 48 Gbps 或 VESA DisplayPort 1.4 的 32.4 Gbps 的未压缩限制进行扩展。行业报告预测智能手机、AR/VR 和汽车等移动设备需要更高的显示带宽,因此需要 VESA DSC 标准等压缩和解压缩解决方案。实现算法可能较为困难。实现过程中的一些难题包括单行支持多片、确定所需的像素填充数、减少内存占用面积和功耗、错误检测、恢复和聚合。
为了尽量降低集成风险并缩短产物上市时间,草榴社区 为设计人员提供了完整且兼容的 VESA DSC IP 解决方案。这种解决方案可与 DesignWare HDMI 2.1、DisplayPort 和 MIPI DSI IP 互操作。它可以扩展至 16 个切片,以提供高性能的数据传输。VESA DSC 编码器和解码器符合 DSC 1.1 和 1.2a 标准,支持高达 10K 分辨率所需的 120Hz 刷新率。
参考: