中国科学院研究生院 博士学位论文 - jdl.ac.cn · mpeg 系列, vc-1, realvideo, 和vp...

170
分类号 TP3,TN4 密级 UDC 编号 中国科学院研究生院 博士学位论文 高性能视频编解码芯片结构设计 张鹏 指导教师 研究员 中国科学院计算技术研究所 申请学位级别 工学博士 学科专业名称 计算机应用 论文提交日期 2008 年 10 月 论文答辩日期 2009 年 01 月 培养单位 中国科学院计算技术研究所 学位授予单位 中国科学院研究生院 答辩委员会主席 王鼎兴

Upload: others

Post on 10-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

分类号 TP3,TN4 密级

UDC 编号

中国科学院研究生院

博士学位论文

高性能视频编解码芯片结构设计

张鹏

指导教师 高 文 研究员

中国科学院计算技术研究所

申请学位级别 工学博士 学科专业名称 计算机应用

论文提交日期 2008年 10月 论文答辩日期 2009年 01月

培养单位 中国科学院计算技术研究所

学位授予单位 中国科学院研究生院

答辩委员会主席 王鼎兴

Page 2: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大
Page 3: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

声 明

我声明本论文是我本人在导师指导下进行的研究工作及取得的研究成

果。尽我所知,除了文中特别加以标注和致谢的地方外,本论文中不包含

其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做

的任何贡献均已在论文中作了明确的说明并表示了谢意。

作者签名: 日期:

论文版权使用授权书

本人授权中国科学院计算技术研究所可以保留并向国家有关部门或机

构送交本论文的复印件和电子文档,允许本论文被查阅和借阅,可以将本

论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或

扫描等复制手段保存、汇编本论文。

(保密论文在解密后适用本授权书。)

作者签名: 导师签名: 日期:

Page 4: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大
Page 5: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

I

摘 要

二十一世纪以来,互联网进入多媒体时代,家庭娱乐进入数字高清时代,移动通信

也进入宽带时代。对这些海量的多媒体数据,特别是视频数据,进行数字化处理的需求

促使了视频压缩技术的长足发展,进而形成了一系列成熟的标准,比如 AVS,H.264,MPEG 系列, VC-1, RealVideo, 和 VP 系列等。视频编码技术在保持视频信号原有的绝大

部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

量存储,传输和处理的代价。而视频编解码器的专用性和复杂性使得专用芯片成为高性

能视频编解码应用的首选实现方式之一。相比于音频等其他媒体,视频编解码算法的复

杂度大大提高,加上对高图像分辨率的追求,对芯片的系统性能提出了相当高的要求。

随着芯片集成度的提高和设计自动化程度的提高,整个编解码系统可以用超大规模

集成电路的形式被实现于单个芯片中。但是由于电路结构的设计不同,实际编解码器在

性能上相差可以非常大。随着图像时空分辨率的进一步增加,以及编解码算法的进一步

复杂,加之集成电路工艺进入深亚微米后带来的一系列限制,如何从电路结构设计本身

寻求提高系统性能的可能性,成为了视频编解码器设计的研究重点。为了提高电路系统

的性能,流水和并行是两大 基本的实现手段。如何将这两项技术与视频编解码器算法

的特性有效的结合,是设计高性能视频编解码器的关键。

本论文以高性能视频编解码器芯片的结构设计为研究对象,针对视频编解码器的性

能瓶颈,结合视频编解码算法的具体特点,在电路结构设计方面提出了一系列优化方案,

使得在相同电路工艺条件下,大幅度地提高编解码系统的吞吐率,同时兼顾到面积,功

耗等硬件代价。

本文主要内容包括以下六个方面:

1) 视频编解码算法的数据流分析:针对 AVS, H.264 和 VC-1 标准,从数据流的角

度分析视频编解码算法的特性,从系统级和模块级两个粒度分析视频编解码器

芯片实现中可以利用的并行性和数据依赖关系,分析性能提高的可能性和代价。

2) 具有性能保证的系统级流水线结构:针对目前普遍采用的系统级流水线结构,

分析其系统级性能,特别是共享存储器对于流水线吞吐率的影响,提出一种同

步化的流水线结构,以及存储器控制器的请求缓冲机制,用来保障系统的性能。

3) 基于访问特性的外存储器映射优化:针对外存储器带宽利用率问题,分析

SDRAM 的三维存储结构和访问方式,根据 AVS 和 H.264 帧间参考像素的特点,

提出冗余映射和联合映射两项技术来优化外存储器组织,并给出了理论分析结

Page 6: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

高性能视频编解码芯片结构设计 摘要

II

果和实际码流的测试结果。

4) 基于交叉存储运动估计结构和算法设计:针对运动估计的性能受限于参考像素

的组织这一问题,提出一种交叉存储的片内参考窗的组织形式,有效地拓展数

据通道的带宽。交叉存储与传统的数据复用方法相比,降低了对搜索算法的要

求,所带来的灵活性给快速运动估计算法的应用提供了条件。在交叉存储硬件

结构的基础上,针对 AVS 和 H.264 中运动估计变块大小的特性,提出一种高编

码效率而低复杂度的快速运动搜索算法。

5) 高速算术解码引擎设计:熵编解码算法的递归特性限制了硬件并行化的程度,

从而限制了吞吐率的提高。通过一系列数学变换和逻辑变换,从算法级和电路

级优化关键路径,提出两种跟标准完全兼容的高速电路实现结构。第一种结构

基于固定 bin 率(固定输出率)解码,在比特裁决的同时对两种可能地裁决结

果猜测性的均进行更新计算,并在 后根据实际裁决结果选择正确的更新结果

进行更新。同时通过一系列关键路径优化手段将单 bin 解码输出 bin 率提高到

248Mbin/s。进一步优化上下文准备电路,提出双 bin 猜测执行方案,解码输出

bin 率达到 339Mbin/s,相比于前人设计性能提高 1.26 倍。第二种结构采用固定

输入率(bit 率)和固定输出率(bin 率)相结合的方案,按 bit 解码的二维解码

结构单拍 多解码 15bin,能保障 H.264 level4.0 档次(HD 1080i)码流的实时

解码。

6) 基于多核流水的多标准视频编解码器系统结构:结合上面的各项优化技术,设

计一个用于多标准的 codec 芯片结构,考虑 AVS,H.264 和 VC-1 三个标准;提

出一种基于多核流水的可编程体系结构,根据从系统级别和模块级别的并行性

和数据依赖关系,进行流水线级别划分和软硬件接口划分。多个可编程核给系

统的线程级并行提供了可能,同时硬件加速器被无缝的嵌入到扩展指令集中。

该体系结构可以实现系统性能,可编程性,硬件代价等 佳折中。芯片实现和

仿真的结果证明,该体系结构是多标准视频 codec 理想的实现结构。

关键词:视频编码;芯片结构;高性能结构;并行逻辑电路

Page 7: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

III

Architecture Design for High Performance Video Codec Chip Zhang Peng

Advisor: Professor Gao Wen

Coming into the 21st century, the Internet comes into the age of multimedia, home entertainment enters the era of digital high definition, and mobile communication welcomes the epoch of wide band. The increasing requirements of processing high-volume multimedia data, especially video data, urge the rapid development of video compression technologies. These technologies are integrated and standardized as several mature coding standards, such as AVS, H.264, MPEG series, VC-1, RealVideo, VP series and etc. By using these video coding standards, high-volume raw video streams can be compressed to one-tenth of its original size or less. Compression technologies significantly save the cost of storage, transmission and processing. Because of the specialization and the complexity of video compressing algorithms, dedicated IC becomes one of the prevailing platforms of video codec applications. Compared with other media such as audio, video coding algorithms have significantly high complexity. The algorithm complexity, especially for high definition resolution applications, leads to the strict requirement of system performance of video encoding/decoding chips.

With the increase of integration density and the development of electronic design automation, the whole video encoder/decoder can be implemented in a single chip using VLSI technologies. But the performance of actual video encoder/decoder varies a lot from each other, because of the differences of their architectures. The spatial and temporal resolutions of video applications are increasing, and coding algorithm is becoming more and more complex. But when circuit scaling enters deeper sub-micron domains, the circuit performance is limited by the power problem and secondary effects. Hence, recent researches focus on how to improve the performance at architecture level and logic level. Pipeline and parallelism are two basic methods to improve system performance. And how to efficiently combine parallel and pipeline architectures with the features of video codec algorithms is the key point to design a high performance video encoding/decoding system.

This paper focuses on the high-performance design of video codec architecture. Based on the analysis result of bottle-necks of system performance, this paper proposed a series of architecture and logic-level optimization schemes according to the detailed algorithm characteristics of video encoder/decoder. The system throughput is significantly increased with the same CMOS process, and it also gains a good tradeoff between the cost of area and power.

The paper is organized as follow: 1) Video codec algorithm data-flow analysis. Based on AVS, H.264 and VC-1 standards,

the characteristics of these algorithms are analyzed from the aspect of data-flow. The

Page 8: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

高性能视频编解码芯片结构设计: Abstract

IV

parallelism and data dependencies within the data-flow which can be used in chip implementation are considered both in system level and in module level. The possibility of performance improvement and the accompanying implementation cost are estimated.

2) Performance guaranteed system-level pipeline architecture. This paper analyzes the performance issue of the prevalent macroblock pipeline architecture, especially the bus conflicting effects caused by the shared external memory. A synchronous pipeline architecture with memory request buffer mechanism is proposed, which can guarantee the system performance in share-memory pipeline architecture.

3) Access-based external memory mapping optimization. Targeting at maximum bandwidth utilization of the shared external memory, this paper gives a detailed analysis on SDRAM 3-D structure and the access timing model. According to the algorithm of AVS and H.264 inter-prediction, this paper proposed redundant mapping and luma-chroma joint mapping to optimize the data organization of external memory. Mathematical analysis results and simulation results are given to show that the memory bandwidth utilization is largely increased.

4) Interleaved-RAM-based motion estimation architecture and algorithm design. For the motion estimation module which has the highest computation complexity, the data preparation of the input reference pixels is the performance bottle-neck. This paper proposed an interleaved organization of reference window pixels in local SRAMs. The bandwidth of local SRAM is increased, and there is no limit on search order which constrains the flexibility of algorithm in the data reuse schemes adopted by traditional high-performance architecture, such as systolic array. In addition, a highly efficient and low complexity fast motion estimation algorithm is proposed based on the interleaved RAMs scheme which is targeting at variable block size motion search for AVS and H.264.

5) High speed arithmetic decoding engine design. The iterative feature of adaptive arithmetic decoding algorithms limits the improvement of throughput in implementation. By adopting a series of mathematical and logical transforms to reduce the critical path in algorithm level and circuit level, the paper proposed two high-speed decoding architectures which are fully compatible with the standards. The first architecture is based on fixed-bin-rate decoding. While bin decision is processing, the updating processes based on both possible decision results are performed speculatively, and the correct updating information is selected in final. In

Page 9: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

高性能视频编解码芯片结构设计: Abstract

V

addition, detailed critical path reduction techniques are adopted to improve the output bin throughput up to 248Mbin/s. Furthermore, using an optimized context preparation circuits, a two-bin speculative decoding scheme is proposed whose bin decoding rate can reach 339Mbin/s. The second architecture combined the fixed-input(bit)-rate and the fixed-output(bin)-rate schemes. The 2-D architecture can decode at most 15 bins per cycle. And the overall system can guarantee the real-time decoding of H.264 level 4.0 (HD1080i) video streams.

6) A pipeline-based multi-core architecture for multi-standard video codec. Integrating all the optimization technologies above, a multi-standard codec chip architecture is proposed for AVS, H.264 and VC-1. According to the parallelism and data dependencies, the pipeline allocation and SW/HW partition are carefully designed in system level and module level. Multiple programmable RISC cores provide plenty of thread-level parallelism. And hardwired accelerators are seamlessly embedded into the RISC cores with extension instructions. Proposed architecture can achieve the efficient tradeoff among system performance, programmability and hardware cost. Chip implementation and simulation results show that it is an ideal architecture for multi-standard video codec.

Keywords: Video coding, VLSI architecture, high performance structure, parallel logic circuits

Page 10: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大
Page 11: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

VII

目 录

摘 要............................................................................................................................... I

目 录..............................................................................................................................VII

图目录.............................................................................................................................XI

表目录........................................................................................................................... XV

第一章 绪论..................................................................................................................... 1

1.1 视频编码技术和标准 ........................................................................................... 1

1.2 超大规模集成电路设计........................................................................................ 8

1.2.1 专用集成电路芯片设计流程 ....................................................................... 9

1.2.2 性能,面积,功耗.................................................................................... 10

1.2.3 流水线和并行计算.................................................................................... 12

1.3 问题的提出和前人相关工作............................................................................... 13

1.4 本文的贡献........................................................................................................ 15

1.5 论文的组织........................................................................................................ 16

第二章 视频编解码算法的数据流分析 ........................................................................... 19

2.1 系统级数据流分析 ............................................................................................. 19

2.1.1 解码器数据流分析.................................................................................... 20

2.1.2 编码器数据流分析.................................................................................... 22

2.2 模块级数据流分析 ............................................................................................. 25

2.2.1 运动补偿 .................................................................................................. 25

2.2.2 帧内预测 .................................................................................................. 27

2.2.3 变换和量化............................................................................................... 28

2.2.4 熵编解码 .................................................................................................. 31

2.2.5 环路滤波 .................................................................................................. 32

2.2.6 运动估计 .................................................................................................. 33

2.3 小结................................................................................................................... 35

第三章 具有性能保证的系统级流水线结构 .................................................................... 37

3.1 系统流水线结构和性能分析............................................................................... 37

3.2 共享存储下对流水线性能的影响 ....................................................................... 40

Page 12: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

高性能视频编解码芯片结构设计: 目录

VIII

3.3 具有性能保障的流水线控制机制 ....................................................................... 41

3.3.1 访存请求的均匀化与系统性能.................................................................. 42

3.3.2 访存请求的均匀化的实现方式.................................................................. 43

3.3.3 同步流水的视频解码器系统结构 .............................................................. 46

3.4 小结................................................................................................................... 47

第四章 基于数据特性的外存储器映射优化 .................................................................... 49

4.1 SDRAM 存储器结构和访问特性......................................................................... 49

4.2 视频数据特征分析和带宽优化技术.................................................................... 52

4.2.1 视频编解码器的访存数据特征分析........................................................... 52

4.2.2 存储器带宽优化技术 ................................................................................ 54

4.3 基于数据特征的映射优化 .................................................................................. 57

4.3.1 冗余存储机制 ........................................................................................... 57

4.3.2 亮色度联合映射机制 ................................................................................ 60

4.4 实验结果和分析................................................................................................. 62

4.4 小结................................................................................................................... 63

第五章 基于交叉存储的运动估计结构和算法 ................................................................ 65

5.1 运动估计算法和结构概述 .................................................................................. 65

5.2 交叉存储搜索窗结构 ......................................................................................... 68

5.3 高效变块大小运动估计算法............................................................................... 71

5.4 实验结果和分析................................................................................................. 74

5.5 小结................................................................................................................... 75

第六章 高速 CABAC 解码引擎设计 .............................................................................. 77

6.1 并行展开技术概述 ............................................................................................. 77

6.2 基于内容的自适应二进制算术编码.................................................................... 81

6.3 基于猜测执行的固定 bin 速率解码结构 ............................................................. 85

6.3.1 单 bin 解码算术解码引擎结构优化 ........................................................... 86

6.3.2 单 bin 概率更新反馈结构优化 .................................................................. 94

6.3.3 双 bin 解码结构优化................................................................................. 99

6.3.4 实验结果和小结 ..................................................................................... 105

6.4 基于比特率限制的实时解码结构 ..................................................................... 107

6.5 小结................................................................................................................. 115

第七章 基于多核流水的多标准视频 Codec 系统结构.................................................. 117

7.1 多标准 Codec 实现平台 .................................................................................. 117

Page 13: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

高性能视频编解码芯片结构设计:目录

IX

7.2 系统级流水线结构设计.................................................................................... 120

7.3 可编程可扩展处理器核设计............................................................................. 124

7.4 模块相关的扩展加速器设计............................................................................. 130

7.5 芯片实现和性能分析 ....................................................................................... 133

7.6 小结................................................................................................................. 135

第八章 结束语 ............................................................................................................. 137

8.1 本文工作总结 .................................................................................................. 137

8.2 下一步研究方向............................................................................................... 138

参考文献 ...................................................................................................................... 139

致 谢.......................................................................................................................... 147

作者简介 ...................................................................................................................... 149

Page 14: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大
Page 15: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

XI

图目录

图 1.1 视频编解码器基本框架................................................................................................. 2

图 1.2 视频编码标准时间表..................................................................................................... 3

图 1.3 集成电路设计的抽象级别 (来自[RCN04])................................................................. 9

图 2.1 新视频编解码器数据流........................................................................................... 19

图 2.2 解码器宏块级别数据依赖关系................................................................................... 20

图 2.3 不同标准解码器模块计算量比例............................................................................... 22

图 2.4 典型编码器的数据依赖关系....................................................................................... 24

图 2.5 不同标准编码器模块计算量比例............................................................................... 24

图 2.6 熵解码系数级别数据依赖关系................................................................................... 32

图 3.1 两模块间流水 ............................................................................................................... 38

图 3.2 两模块流水线运行时序............................................................................................... 38

图 3.3 链式流水线 ................................................................................................................... 39

图 3.4 一般化的有向无环图流水线....................................................................................... 39

图 3.5 通过增加深度路径平衡化........................................................................................... 40

图 3.6 共享存储对流水线影响示例....................................................................................... 41

图 3.7 同步方式示意图........................................................................................................... 45

图 3.8 非同步数据流机局部数据依赖的流水线展开树 ...................................................... 45

图 3.9 计算访存分离变换....................................................................................................... 46

图 3.10 视频解码器的同步流水线结构 ................................................................................... 47

图 4.1 SDRAM 存储器结构示意图 ....................................................................................... 49

图 4.2 SDRAM 的访问时序 ................................................................................................... 51

图 4.3 不同存储体之间的延迟隐藏....................................................................................... 52

图 4.4 模块访存数据特征....................................................................................................... 53

Page 16: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

高性能视频编解码芯片结构设计: 图目录

XII

图 4.5 运动估计的参考块扩展............................................................................................... 54

图 4.6 参考帧图像的体行分配图........................................................................................... 56

图 4.7 跨字节像素行读取....................................................................................................... 57

图 4.8 冗余存储存储字示意图 (a)亮度像素 (b)色度像素 ................................................. 59

图 4.9 冗余映射与亮色度联合映射的结合映射方案 .......................................................... 62

图 4.10 自然码流的测试结果 ................................................................................................... 63

图 5.1 块匹配(block match)示意图 ................................................................................... 66

图 5.2 一维块匹配 SAD 计算结构......................................................................................... 67

图 5.3 二维块匹配 SAD 计算结构......................................................................................... 67

图 5.4 二维 SAD 计算扫描顺序............................................................................................. 68

图 5.5 搜索窗分体映射方案................................................................................................... 69

图 5.6 流水线化的 8×8 加法树结构 ...................................................................................... 70

图 5.7 所提的运动估计搜索图案和步骤示意 (a)第一步 (b)第二/三步............................ 73

图 6.1 CABAC 解码的 bin 级别数据流................................................................................. 83

图 6.2 二进制算术解码核心示意图....................................................................................... 84

图 6.3 bin 解码各步骤相关性分析......................................................................................... 84

图 6.4 数据相关环路示意图................................................................................................... 85

图 6.5 bin 引擎原始结构......................................................................................................... 86

图 6.6 基于 bin 猜想的解码电路结构变换示意图 ............................................................... 88

图 6.7 bin 引擎优化方案 1(猜测执行) ............................................................................. 89

图 6.8 查找表优化示意图....................................................................................................... 91

图 6.9 bin 引擎优化方案 2(查找表优化) ......................................................................... 92

图 6.10 运算顺序可交换的性质 ............................................................................................... 93

图 6.11 bin 引擎优化方案 3(运算顺序优化) ...................................................................... 94

图 6.12 map 概率更新反馈基本实现结构............................................................................... 96

Page 17: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

高性能视频编解码芯片结构设计:图目录

XIII

图 6.13 map 概率更新反馈的链式猜测执行结构................................................................... 97

图 6.14 abs_level 二值化和概率模型分配............................................................................... 98

图 6.15 abs_level 概率更新反馈优化结构.............................................................................. 99

图 6.16 双 bin 解码两种实现结构 (a)直接级联 (b)双 bin 猜测执行 ................................. 100

图 6.17 双 bin 解码的 map 概率模型准备结构 ..................................................................... 101

图 6.18 LL 更新路径组 ........................................................................................................... 102

图 6.19 LM 更新路径组.......................................................................................................... 103

图 6.20 ML 更新路径组.......................................................................................................... 103

图 6.21 MM 更新路径组......................................................................................................... 104

图 6.22 ML 更新路径组优化结构.......................................................................................... 105

图 6.23 MM 更新路径组优化结构......................................................................................... 105

图 6.24 按 bit 解码和按 bin 解码比较.................................................................................... 109

图 6.25 变 bin 速率解码的整体结构 .......................................................................................112

图 6.26 map 概率准备模块结构..............................................................................................113

图 6.27 level 概率准备模块结构 .............................................................................................113

图 6.28 MBAD 核心解码结构.................................................................................................114

图 7.1 系统流水线级别划分示意图..................................................................................... 122

图 7.2 编码器流水线时序图................................................................................................. 123

图 7.3 解码器流水线时序图................................................................................................. 123

图 7.4 ASIP 子系统结构图 ................................................................................................... 127

图 7.5 RISC 核流水线结构示意图....................................................................................... 128

图 7.6 RISC 核详细结构图................................................................................................... 129

图 7.7 分像素 ME 块流水线................................................................................................. 130

图 7.8 二维插值计算示意图................................................................................................. 131

图 7.9 用于正反变换的内积结构......................................................................................... 132

Page 18: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

高性能视频编解码芯片结构设计: 图目录

XIV

图 7.10 环路滤波加速器 ......................................................................................................... 132

图 7.11 环路滤波 EXT 流水线示意图.................................................................................... 132

图 7.12 熵解码 EXT 硬件通路示意图 ................................................................................... 133

图 7.13 编解码器芯片版图 ..................................................................................................... 133

Page 19: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

XV

表目录

表 2.1 AVS,H.264,VC-1 的算法异同点 ........................................................................... 20

表 2.2 解码器模块间宏块级数据通信分析........................................................................... 21

表 2.3 编码器模块间宏块级数据通信分析........................................................................... 23

表 2.4 参考像素块数据量....................................................................................................... 25

表 2.5 运动补偿参数比较....................................................................................................... 25

表 2.6 运动补偿复杂度分析................................................................................................... 26

表 2.7 帧内预测参数比较....................................................................................................... 27

表 2.8 帧内预测复杂度分析................................................................................................... 28

表 2.9 变换量化参数比较....................................................................................................... 30

表 2.10 变换量化复杂度分析(按矩阵相乘计算)............................................................... 30

表 2.11 熵编解码参数比较........................................................................................................ 31

表 2.12 环内滤波参数比较 ....................................................................................................... 32

表 2.13 环内滤波计算复杂度分析 ........................................................................................... 33

表 2.14 运动估计计算复杂度分析 ........................................................................................... 34

表 2.15 模块计算复杂度总结(所需并行度按 HD@150MHz 计算)................................. 36

表 3.1 请求均匀化的两种方案对比....................................................................................... 43

表 4.1 不同分块模式下 MC 宏块访存 cycle 数.................................................................... 54

表 4.2 不同分块模式下 MC 带宽利用率(不计开销) ...................................................... 58

表 4.3 坏情况带宽节省分析............................................................................................... 63

表 5.1 不同 SAD 块大小下分体模式对比 ............................................................................ 70

表 5.2 不同 SAD 大小性能比较............................................................................................. 71

表 5.3 快速运动估计算法编码性能比较(相比于全搜索) .............................................. 74

表 5.4 不同算法典型硬件实现对比....................................................................................... 75

Page 20: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

高性能视频编解码芯片结构设计: 表目录

XVI

表 6.1 常用运算符运算性质总结........................................................................................... 93

表 6.2 上下文更新逻辑关系................................................................................................... 96

表 6.3 不同 CABAC 解码结构性能面积对比..................................................................... 106

表 6.4 系统频率要求统计表..................................................................................................111

表 6.5 实现结构比较 ..............................................................................................................115

表 7.1 芯片性能面积分析..................................................................................................... 134

表 7.2 与其他工作的对比..................................................................................................... 135

Page 21: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

1

第一章 绪论

近十年以来,数字化技术的发展带动了消费电子行业的迅速发展和成熟,大量的新

技术,新应用,新产品和新企业不断涌现。家庭娱乐出现了 DVD,HDTV,IPTV,有线

数字电视,数字地面广播,卫星电视,数码相机,数码摄像机等;手持设备出现了 PDA,

智能多媒体手机,MP3 播放机,PMP/MP4,移动电视/手机电视等。这么丰富的消费电

子产品和应用的出现和成熟得益于两大前沿技术的融合:多媒体压缩技术和超大规模专

用集成电路技术。 人类感知所获信息中有 80%以上来自视觉,且其比例仍在上升。但原始视频信号具

有极大的数据量和数据率,比如一段两小时左右的高清电影就需要 676Gbyte 的存储空间

和 94Mbyte/s 的传输带宽,相当于 4块普通硬盘的存储空间和 10根高速专线的传输带宽。

数字视频压缩技术可以将存储空间和传输带宽能压缩到几十分之一甚至几百分之一,同

时基本上不损失源视频的视觉效果,从而使大量的数字视频应用成为可能。[HHLP98] 数字编解码算法在追求高压缩率的同时,其复杂度也逐渐增加,以至于通用处理器

已不能满足视频编解码实时性的要求。同时由于半导体工艺和电子设计自动化(EDA)的发展,电子芯片集成度按照摩尔定律迅速提高,超大规模的专用处理芯片设计技术也在

近年来逐渐成熟。两项技术的融合和巨大的市场需求促成了视频编解码专用芯片的大量

出现[TCHF05]。视频编解码芯片成为整个消费电子行业的支柱性核心竞争力之一。

1.1 视频编码技术和标准

数字视频编码技术是一种信源编码技术,其目标在于用尽量少的信息比特数来表示

原始的视频图像序列,使得在解码器端恢复出来视频图像后,从人眼观察的角度来看尽

量的接近原始图像。这种基于人类视觉的准则决定了视频标准可以是有损压缩,只是损

失的信息量要求是对人眼不敏感的。根据对人类视觉感知系统的研究,和对自然视频序

列特性的研究,以及编码理论的成果,可以得到原始视频序列包含三大主要的信息冗余:

空域冗余,时域冗余和统计冗余。有效的发掘和利用这些冗余,并采用有效的编码工具

将这些冗余消除,只存储和传输真正有效的信息,使得视频编码的效率可以非常高。 空域冗余指的是在自然视频序列的每一幅图像中,在经过正交变换之后,其能量主

要集中在中低频的分量上。表现在图像上是绝大部分区域中邻近像素的亮色度分量值均

相差不大。视频编码中采用离散余弦变换来消除空域像素间的相关性,先将图像分成宏

块,经过变换后,主要信息量被集中在少数的变换系数上,达到了压缩的效果。 时域冗余指的是在自然视频序列中的相邻图像之间,图像内容具有强烈的相似性。

这种相似性可以简单的建模为一系列图像部分存在平移运动。视频编码采用运动估计和

补偿技术来消除这种时域上的冗余度。运动估计通过块匹配的方法找到,也是先将宏块

Page 22: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

2

分块,然后在前一图像帧中找到与当前宏块 匹配的参考图像块,将找到的参考块作为

预测值,与当前图像块做差,只传输这些残差信息和参考块相对于当前宏块的位置信息

(运动矢量)。由于时域冗余普遍存在,所以总能在前一帧中找到当前块的相似匹配,使

得需要编码的残差信息相对较少。 统计冗余来自于需要编码的信息符号自身的概率分布的不均匀性。根据编码理论,

这种不均匀性导致通常等长二进制编码的语法元素占用了比其信息量更多的编码比特

数。视频编码采用变长熵编码来减少这种统计上的冗余度。根据对不同编码元素的概率

分布的分析,对其所有可能值进行变长编码,对出现频繁的元素值分配较短的码字,对

出现较少的元素值分配较长的码字,使得编码得到的比特数能降低到接近该元素的实际

信息熵。

分块 变换 量化熵编码

运动估计 运动补偿

图像缓冲

反量化

反变换

+

原始视频

压缩码流

编码器

熵解码

运动补偿 图像缓冲

反量化 反变换

+

运动矢量

帧间预测

参考像素

重构像素

量化系数

解码器

运动矢量 帧间预测 重构像素

参考像素

解码图像

压缩码流

信 道 / 存 储

图 1.1 视频编解码器基本框架

上述三种编码技术的结合构成了视频编码算法的基本框架。(如图 1.1 所示)视频序

列进入编码器首先进行划分成 16×16 像素宏块,利用运动估计得到的运动矢量进行运动

补偿,然后将残差值进行变换,量化和熵编码,形成压缩码流。为了防止累积误差的产

Page 23: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第一章 引言

3

生,编码器和解码器需要采用相同的参考图像,所以编码器需要将解码像素重构出来以

用做后面帧的帧间预测参考。解码器执行编码的反过程,通过熵解码,反量化,反变换,

将残差值恢复出来,然后与运动补偿的帧间预测值相加得到解码像素值。 由于视频编码工具的逐步完善和上述编解码框架的形成,视频编码技术逐渐成熟。

但是各编码工具的技术专利分别掌握在各个公司手中不利于技术的融合和发展,而且各

公司都要维护自己的编解码器系统,市场难于形成规模化而放大。由于市场需求的巨大

推动力,从上世纪八十年代开始,视频编码的标准化工作开始进行。视频标准规定了视

频码流传输的语法元素的格式和顺序,以及如何根据这些语法元素恢复出解码图像。标

准化使得解码器无需关心码流来自何种编码器,只要是符合标准的码流,任意解码器都

能无差别恢复出解码图像。而标准并没有限定编码器的设计,如何选择编码模式以及运

动矢量等编码元素的取值给编码器效率设计提供了空间。 视频编码标准的制定采用提案比较的方式进行,是当时 先进的视频编码技术的集

成。早期的标准化过程主要由两个国际组织推动:国际电联(ITU-T)的视频编码专家

组(VCEG)和国际标准化组织(ISO)的活动图像专家组(MPEG)。各标准(系列)经历

了如图 1.2 所示的发展过程。

VC-1

1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008

H.261 H.263 H.263+ H.263++

H.262/ MPEG-2 H.264/AVC

AVS

ITU-T Standards

Joint ITU-T/MPEG

Standards

MPEG Standards

Chinese Standard

SMPTE Standard

MPEG-1 MPEG-4

图 1.2 视频编码标准时间表

1) H.261 是由国际电信联盟开发制定的第一个实际应用的视频压缩标准

[ITU-T90]。它确定了由变换、预测和熵编码构成的混合编码框架,构成了后续

所有标准的基础。H.261 主要面向的是基于 ISDN(Integrated Services Digital Network)上的可视电话和视频会议等低复杂度的通信类应用,其码率为

P*64kbps,P 取值范围是 1 到 30。

2) MPEG-1 是 MPEG 系列的第一个标准,其标准序列号为 ISO/IEC 11172

Page 24: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

4

[MPEG92]。早期 MPEG 标准更多侧重于广播系统和家庭存储的应用。MPEG-1的设计初衷是将 VHS(家庭录影磁带机)上的模拟音视频信号压缩成 1.5Mbit/s以内的数字信号,并保持其视觉听觉效果。MPEG-1 带动了数字音视频技术的

广泛应用,其主要应用有 VCD 视频光盘,卫星数字电视广播和 DAB 数字音频

广播。MPEG-1 标准不仅定义了视频压缩规范,还定义了音频压缩和系统复用

的规范。MPEG-1 首先采用了双向预测(B-frame)技术,其压缩效率明显高于

H.261,复杂度也有增加。MPEG-1 音频利用心里声学模型将人耳不敏感或者被

隐蔽的音频分量减弱或消除达到压缩的效果。定义了三个级别(Layer),特别是

其第三级被(命名为 mp3),被广泛的应用于目前的各类数字音频系统。MPEG-1同时定义了一套完整的系统层规范,将视频,音频和其它数据复用成一个标准

码流,并规定了音视频数据之间的同步机制。

3) MPEG-2 主要面向地面数字电视广播 DVB-T,有线电视广播 DVB-C,卫星广播

DVB-S,DVD 碟片等高质量的数字音视频应用,它被命名为 ISO/IEC 13818 [MPEG94]。MPEG-2 编码码率从 4Mbps 到 80Mbps,定义了五种编码工具集合

(SP,MP,SNR,Spatial,HP)和四种码率范围(LL,ML,H-14,HL)。同

时 MPEG-2 增加了用于隔行扫描的编码工具。音频编码采纳了 AAC 技术,提

高了音频编码效率但也增加了编解码系统的复杂度。系统规范在 MPEG-1 的程

序流(PS)的基础上,增加了传输流(TS)规范,以便于更好的支持通信系统上对于

包分组的要求。

4) H.263 是 H.261 的扩展[VCEG95],仍然是基于低码率的视频传输应用,H.263采用了可变块大小预测,重叠块运动补偿,非限制运动矢量,3-D VLC,运动

向量预测,高效头标记等高效的编码工具,其编码效率好于 H.261。H.263 被广

泛的应用于低码率的系统中,比如早期的 flash 视频和早期的 Real 视频。

5) MPEG-4 的标准编号是 ISO/IEC 13818 [MPEG99]。 突出的特点在于它提出了

基于对象编码的概念,一个待编码的视音频场景被划分成前景,背景等多个视

音频对象,每个对象进行先进行独立的音视频编码,然后利用新的传输多媒体

集成框架复用在一个码流中。基于对象编码能有效的应用于特定的专门应用,

但对一般码流而言,其编码效率没有显著提升。

6) H.264/AVC 是 ITU-T VCEG 和 ISO/IEC MPEG 的联合视频组(JVT:joint video team)开发的一个新的数字视频编码标准,它既是 ITU-T 的 H.264,又是 ISO/IEC的 MPEG-4 的第 10 部分[JVT03]。不同于 MPEG-4,H.264 将目标重新集中在编

码效率,H.264 具价值的部分无疑是更高的数据压缩比。在同等的图像质量

条件下,H.264 的数据压缩比能比当前 DVD 系统中使用的 MPEG-2 高 2-3 倍,

比 MPEG-4 高 1.5-2 倍[WSBL2003]。正因为如此,经过 H.264 压缩的视频数据,

在网络传输过程中所需要的带宽更少,也更加经济。在 MPEG-2 需要 6Mbps

Page 25: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第一章 引言

5

的传输速率匹配时,H.264 只需要 1Mbps-2Mbps 的传输速率。编码效率的大幅

度提高使得通信,存储,广播等多种应用场合都受益匪浅,也促使了数字音视

频应用领域的一场革命。H.264 沿用了前代标准一贯的混合编码框架,但在编

码工具的灵活性和适应性方面做出了重大改变,引入了一系列新的高效编码技

术。 16×16~4×4变大小帧间预测:当图像块的运动比较零乱时,大块所辖的小块可

能具有不同的 佳运动矢量,为了能在更加细的粒度上追求更好的帧间预测,

H.264采用了 小4×4的运动搜索块。而且搜索块的划分方式呈树状结构,可

以选择从16×16到4×4的不同的块大小。这样一致运动采用大块划分,零碎运

动采用小块划分,能充分适应不同的视频场景。 1/4像素运动补偿:由于采集图像的分辨率有限,而由物体实际运动速度决定

的帧间位移在映射到视频像素点时可能并非整数。为了能使帧间预测更准确,

就需要使得搜索的运动矢量与物体实际位移相匹配。分像素运动估计即用来

应对这种情况,通过内插出来的分像素值来进行帧间预测能与物体位移非整

数的情况较好的匹配。 多参考帧:H.264在以往标准的双向预测(B帧)的基础上,进一步扩大了参

考帧的选择。向前参考不限于当前帧的前一帧,向后参考也不限于后一帧。

甚至B帧也可用作预测参考帧。这样参考图像具有更大的灵活度,使得帧间预

测具有更高的准确度。 帧内像素预测:H.264首次采用了像素域的帧内预测。为了提高I帧编码的效

率,MPEG-4采用了DC/AC预测。但H.264以前各标准采用的都是频率预测,

其预测集中在低频分量上,对高频分量没有任何处理。H.264直接在像素域进

行预测,而且引入了9种预测模式(8种预测方向)。这种方向预测的方法可

以很好的适应图像纹理的变化趋势,加上16×16/4×4适应性模式选择,使得

H.264的I帧编码效率明显高于以往标准。 4×4整数变换:为了适应细粒度的帧内和帧间预测,H.264采用4×4的变换。同

样一个宏块按4×4分块变换与按8×8变换相比,其复杂度低一倍。另一方面由

于帧内预测的采用,H.264变换都是基于残差进行,大块变换所具有的在分离

能量能力上的优势对应于预测残差来说并不明显,使得H.264中4×4变换的性

能与8×8变换相当。另一方面,MPEG系列中由于采用浮点的DCT变换,其定

点化后的误差在帧间预测中会累积传递,这给编解码器设计带来了麻烦。

H.264首次采用了整数变换,从根本上解决了这一问题,且在性能相当的情况

下,计算复杂度大大降低。 环内去块效应滤波器:由于在变换块的边界的两边其量化误差的方向不一致,

导致重构图像在变换块的边界上存在块效应。以往标准在进行帧间预测时,

不对参考图像的块效应进行处理,使得帧间预测的效果不佳。H.264把以往用

Page 26: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

6

作后处理的去块效应滤波操作引入到编码环中,采用滤波后的图像进行帧间

预测,使得编码效率提升。 高效熵编码:在熵编码方面,H.264放弃了以往的基于哈夫曼码(Huffman)的固定码表方法,采用了两种自适应的编码方法:CAVLC和CABAC。CAVLC(Context-based Adaptive Variable Length Coding)采用可变阶数的指数哥伦布

码对run和level进行变长编码,哥伦布码的阶数根据已解码的level值来确定。

这种上下文相关模型能更准确地描述待编码元素的概率分布特征,从而可以

用 适合这一特征的变长码结构去编码,以提高编码效率。另一种CABAC(Context-based Adaptive Binary Arithmetic Coding)基于算术编码算法,能获

得比CAVLC还高14%的压缩效率,但其运算性能要求极高,只在Main和High两个Profile中使用。

7) AVS 是我国自主研发的高效视频编码标准[AVS05],它的出现填补了我国数字

音视频信源编码技术的空白,其出现有望结束我国相关企业长期受制于国外有

关标准化专利与技术的窘迫局面。对于我国音视频产业的持续健康发展具有重

大而深远的意义。AVS 标准也包括视频,音频,系统和一致性测试部分。系统

部分与目前广泛采用的国际标准 MPEG-2 系统层兼容。AVS 视频总体来说采用

了与 H.264 相似的编码工具集合,其主要编码工具包括如下所列。

16×16~8×8 变块大小帧间预测:为降低复杂度,AVS 小块划分为 8×8。 1/4 像素运动补偿:同样是 1/4 像素插值,AVS 采用四阶滤波器,其复杂度

低于 H.264 的 6 阶滤波器。 多两参考帧:AVS 简化了 H.264 的多帧参考预测,采用 P 帧前向两帧,

B 帧前后向各一帧的方式。既获得了 P 帧时多参考帧带来的编码效率提升,

又节省了参考帧的存储空间,同时简化了参考帧管理的复杂度。 帧内像素预测:AVS 简化了 H.264 的帧内预测,其亮度帧内预测模式减少

到 5 种,并对其中若干模式进行修改,帧内预测效果与 H.264 相当。 8×8 整数变换 环内去块效应滤波器 自适应 2D-VLC

AVS 标准是我国科研机构和企业的集体创新。在 AVS 视频标准制定过程中,

共收到各种技术提案 200 多项。经过详细的讨论、分析、对比测试,AVS 视频

标准 终稿包含了从 200 多个提案中选出来的 42 个提案。在这些技术提案中,

包含了一批我国自主的技术,各主要提案单位已经公开的相关发明专利申请达

到 60 多项,涉及离散余弦变换和量化、隔行预测、熵编码、对称帧间预测、插

值、运动矢量预测、视频编码结构与起始码、滤波器、快速运动估计等技术模

Page 27: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第一章 引言

7

块[FMW04]。AVS 是一套适应面十分广阔的技术标准,优势表现在以下几个方

面:

先进性:AVS 的编码效率比我国目前准备采用推广的 MPEG-2 国际标准高

2~3 倍(高清晰度电视可达到 3 倍或更多); 现实性:与 ISO/IEC MPEG-4 AVC 标准和 ITU H.264 标准编码效率相当,

但技术方案更简洁,且 AVS 专利费采用“一站式”收取,仅对每台编解码

设备收取一元人民币。 兼容性:AVS 系统层与目前国际流行的 MPEG-2 标准兼容,系统层及其以

下设备可以很容易的复用。 独立性:AVS 是基于我国自主创新技术和国际公开技术所构建的自主标准,

在专利等知识产权上不受制于人。

8) VC-1 是一套主要由微软(Microsoft)等多家公司开发的视频编解码算法,于

2006 年 4 月被 SMPTE(The Society of Motion Picture and Television Engineers)采纳为国际标准[SMPTE06]。目前 VC-1 作为支持性标准被用于蓝光 DVD 和

Windowd Media Video 9。同时 VC-1 还作为官方编解码器被用于微软游戏机

Xbox。VC-1 采用了大量与 H.264 和 AVS 相似的技术[KJ07],比如:

16×16~8×8 变块大小帧间预测 1/2-1/4 像素运动补偿:可选 1/2-1/4 两种预测精度,bicubic 和 bilinear 两种

滤波方法,四阶滤波器 多参考帧 整数变换 环内去块效应滤波器

与 AVS 和 H.264 相比,VC-1 某些模块也具有其自身特点:

ABT (Adaptive Block-size Transform):支持四种大小的变换矩阵,可以对

8×8,8×4,4×8,4×4 的残差块直接进行变换,而不用都分解为 4×4 块。多

种变换大小的选择可以更好的适应残差块的能量分布特性,使得变换的效

果得到提升。 平滑滤波(smoothing):为了减小和消除块效应,VC-1 在变换后能量较大

的帧内编码块边界上多增加一步平滑滤波操作。 DC/AC 预测:VC-1 不采用像素域帧内预测,而是沿用 MPEG-4 的变换域

DC/AC 预测。

Page 28: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

8

1.2 超大规模集成电路设计

电子数字计算起源于上世纪上半叶真空电子管的发明和应用。电子管技术的成熟标

志是1942年由宾西法尼亚大学研制出来的世界上第一台真正意义上电子计算机ENIAC。但稳定性和功耗问题使得电子管难于用于大规模的集成。随着半导体技术的发展和 1947年晶体管被美国 Bell 实验室发明,电子计算进入了全新的半导体晶体管时代。相继的集

成电路的概念在 50 年代末被提出,创造性的将多个电路元件集成在一个半导体衬底上,

为后来标准化的半导体加工流程提供了基础。相继出现的 TTL,ECL,I2L 等类型的半

导体电路都一度成为集成电路设计的主流,直到 70 年代后人们对 CMOS 有了深入的了

解,CMOS 电路以其稳定性和低静态功耗特性逐渐成为了真正的市场主流,并一直延续

到现在。 从 70 年代的大规模集成电路(LSI 单片容纳几百个晶体管),到 80 年代的超大规模

集成电路(VLSI 单片容纳几十万个以上的晶体管),早期集成电路的发展主要就是提高

集成度。但到 90 年代以来,随着芯片制造工艺向 90 纳米以下发展,上千万门的系统芯

片(SOC System-on-Chip)成为趋势,包括高性能的控制运算处理器,高速总线,丰富

完整的外设接口,甚至模拟电路在内的整个系统被集成在一个芯片中。 上千万门的晶体管资源给集成电路造就了广泛地应用空间,集成电路已深入到当今

生产生活的各个方面。由于芯片集成度的提高,使得电子设备的体积可以缩小,芯片的

处理性能大大提高。移动通信终端从八十年代的大哥大到当前的超薄手机,体积的缩小

使得移动通信终端目前已成为具备智能的高性能信息处理平台。电视广播系统从模拟电

视发展到数字高清,信息处理吞吐率提高了 20 倍。集成电路技术的发展促使移动电子设

备和高性能信息处理进入平常生活,也给视频编解码提供了一种重要的实现方式,使之

可以应用于多种不同的场合。 视频编解码芯片的性能与设计过程中的诸多因素相关,在不同的抽象级别涉及到性

能优化的不同方面,一个好的设计需要针对各个抽象级别所关注的方面进行具体的优化。

优化的目标在于根据应用需求寻找到性能,面积和功耗的 佳折中。分析清楚这三项指

标中起决定因素的物理量,使进行有效设计的基础。在设计过程中流水和并行是两大重

要的实现手段,对性能,面积,功耗的折中具有决定性的影响。高性能视频编解码芯片

设计需要充分地考虑流水线和并行处理的高效实现。

Page 29: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第一章 引言

9

1.2.1 专用集成电路芯片设计流程

图 1.3 集成电路设计的抽象级别 (来自[RCN04])

上千万门的逻辑设计必须采用分而治之的方式进行,为降低设计复杂度,其系统级

设计必须具有足够的抽象层度。专用集成电路设计分成多个抽象级别,从器件级别到系

统级别逐级抽象,高抽象级别作为低抽象级别的模型,而低抽象级别作为高抽象级别的

实现(图 1.3)。系统级别主要关心模块的数据流接口和输入输出,向系统的整体行为抽

象为芯片输入输出的行为。模块级别抽象要实现系统的功能,将系统划分成具体模块,

并利用高级描述语言等方法将模块表示成数学或逻辑运算的形式。门级抽象将模块级别

的数学和逻辑运算形式表示成通用的一类二进制逻辑运算,逻辑门被抽象成基本的逻辑

运算输入输出关系。电路级别是逻辑门的 CMOS 实现,关心如何通过晶体管构成具有特

定逻辑关系的逻辑门。而器件级别则针对晶体管本身,关心影响其电学参数的物理因素。 另一方面,每一个抽象级别关注设计中的某一个方面,使得各抽象级别的优化设计

可以正交的进行,从而形成一套统一的方法学。器件级别关注包括物理材料的电容,电

阻,电导和半导体特性模型;加工工艺和制成上的规格,流程和方法;以及由材料和工

艺决定的电路设计应具有的规范等。器件级别 大的考虑是选择工艺,目前广泛采用的

工艺在 0.25µm 到 45ns 之间,工艺越好对应的性能,面积指标会更好。但由于深亚微米

电路二级效应的明显,越好的工艺对应于越大的设计复杂度和流片成本[HJS04]。电路级

别主要关注基本逻辑门电路和基本存储电路的实现方式,比如基本 CMOS 与或门有四个

晶体管构成,一个典型的主从触发器由六个非门和四个传输门构成。典型 SRAM 单元有

六管的和四管的,六管面积大但四管静态功耗大。不同电路的选择在于对其速度,面积

n+ n+S

GD

+

DEVICE

CIRCUIT

GATE

MODULE

SYSTEM

Page 30: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

10

和功耗的权衡。而且基本逻辑门和存储单元的规范很固定,所以其电路结构往往和某种

选定器件绑定在一起形成标准单元库的形式。实际设计中主要是根据应用的实际需求,

选择符合需求的标准单元库。电路级别的另外两个问题是,如何在芯片的内部摆放这些

标准单元,以及如何连接这些标准单元。这两个过程分别称作布局(Placement)和布线

(Routing),它们由对应的 EDA 工具完成。布局工具将标准单元按照一定的规律摆放在

一个二维阵列上,使得时序关系紧的逻辑摆放在相近的位置,总体面积尽量小,而且满

足器件的设计规则。布线工具将金属线层配备的连接通路资源分配给各标准单元之间的

连接,使得各连接线都能分配到布线资源,而且时序关系紧的连接的实际线上延迟较小。

布局布线工具配合芯片制造商提供的器件单元库完成了从逻辑门电路到 终芯片版图的

转换,它们完成了器件级和电路级的设计,芯片设计可以上升到逻辑门级。 门级设计已经忽略了大部分的物理实现细节,可以关注于二进制逻辑层面。小规模

集成电路可以完全基于门级抽象开始设计,但规模增大后门级设计实际上是上层的描述

语言设计和下层物理设计之间的桥梁。硬件描述语言的出现使得超大规模集成电路设计

的效率大大提高。硬件描述语言 HDL 是一种用形式化方法描述数字电路和系统的语言,

它在寄存器传输级(RTL)对每个寄存器的变化行为进行描述,从而确定组合电路和逻

辑电路的结构。由于 HDL 和 EDA 的发展这种描述语言可以自动的综合成为逻辑门的网

表,这些综合工具实际上完成了门级设计的主要部分。综合工具包含比如加法器,乘法

器和选通器等在内的各种基本部件的逻辑门实现,构成逻辑单元库。利用这些逻辑的单

元库和电路级抽象给出的标准单元库,在一定的频率/面积的约束下,综合工具尝试各种

逻辑实现形式,以综合出 符合要求的逻辑门网表。 模块级设计和系统级设计关注的更多是高层的系统结构。基于系统的性能,面积,

功耗的需求,从算法,系统结构和模块结构三个方面进行设计和优化。在算法角度,除

了考虑算法的功能性之外,还需要兼顾其实现复杂度,和硬件实现的规整性等。在系统

结构角度,考虑哪些部分用硬连实现,那些部分采用嵌入式软件进行;根据算法数据流

的特性,合理安排模块划分和模块间的数据通信和共享;设计模块间的协同方式,比如

串行,并行或流水;以及按照性能,面积和功耗的要求,将需要存储的数据分配寄存器,

片上存储器或者片外存储器上。到模块级别结构设计主要针对算法特点,包括其运算量

和数据依赖关系,考虑并行,流水,硬件复用,数据组织,可配置性等问题,达到模块

级别性能,面积和功耗的折中。

1.2.2 性能,面积,功耗

集成电路设计的三大指标:性能,面积和功耗,是贯穿集成电路设计的主线。这三

项指标彼此制约,性能高的设计不免面积和功耗较大,面积较小功耗较低的设计可能性

能不佳。好的设计即在这三者中达到 佳的平衡,在性能符合要求的情况下尽量减小面

积和功耗。本节主要讨论性能,面积和功耗三项指标的决定因素,以及它们之间的制约

关系。

Page 31: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第一章 引言

11

数字信号处理应用的性能可以归结为吞吐率,即每秒钟处理的数据量。吞吐率决定

于每个周期处理的数据量和时钟频率的乘积。每个周期处理的数据量主要是由结构中采

用的并行度来决定的,在忽略数据相关性的情况下,每周期处理量与并行度成正比。为

保证同步电路的正常逻辑功能,其时钟频率必须低于一个阈值。这个 大频率由电路系

统中 长的组合电路路径来决定,时钟周期必须高于 长组合路径的延迟, 长组合路

径有叫关键路径。实际上考虑到寄存器要求时钟跳变时刻输入信号已经稳定,关键路径

长度除 长组合电路延迟外,还包括始终的偏移和抖动以及寄存器的建立时间。组合电

路的延迟主要包括逻辑门的延迟和线上延迟。物理上门延迟满足公式(1-1) t RC∝ (1-1)

电阻 R 决定于逻辑门的复杂度,电容 C 包括本逻辑门的自身电容和其驱动的其他逻辑门

中晶体管的输入电容。所以逻辑门的延迟决定于其逻辑本身的复杂度,逻辑门的自身特

征(比如大小),以及其所驱动的负载。逻辑越复杂,逻辑门越小,所带驱动越大,则门

传输延迟越大。而金属传输线可以建模成一个 RC 网络,其延迟出要取决于线长度。减

少关键路径上的逻辑级数以及关键路径上的连接线长度是提高系统频率的主要手段。 CMOS 集成电路的面积消耗主要由逻辑电路和片上存储器构成。逻辑电路包括逻辑

门构成的组合逻辑和寄存器构成的时序逻辑。逻辑电路的面积主要决定于逻辑单元的数

据,而片上存储器则主要关心其大小和形状。当存储量达到一定量时,相同存储容量的

寄存器与片上存储器相比,其面积相差可达十倍。加之考虑到成本更低的片外存储器,

如何安排好存储体系结构是系统面积考虑的一个重要部分。电路逻辑部分则考虑硬件复

用的可能性,在性能允许的情况下,尽量将相同的操作在一套硬件逻辑中顺序的完成。

硬件逻辑公共的部分可以合并,不同部分采用可配置的方式处理,设计通用的硬件通路,

尽可能的减少冗余逻辑。 功耗上的考虑分为平均功耗和即时功耗。局部即时功耗过高可能导致电源供电电压

下降,导致芯片功能错误。即时功耗问题主要在芯片布局布线的物理实现阶段考虑。而

设计阶段更关心的平均功耗是直接和移动设备上能耗相关的。本文下面主要关注平均功

耗,并直接简称功耗。由于 CMOS 电路的特性,在深亚微米以上工艺下,其主要功耗决

定于动态功耗,即逻辑门的输出改变时电荷流动所带来的功耗;进到深亚微米,由于晶

体管阈值电压的下降,静态漏电流效应趋于明显,也应加以考虑。物理上动态功耗满足

公式(1-2),其中α 是逻辑门 0→1 翻转率,C 为总负载电容 2 2

0 1dyn DD DDP CV f CV fα→= = (1-2)

从(1-2)可以看出,动态功耗与面积(与 C 直接相关)有关系,但确切的说是和逻

辑变化的面积成正比,与输入电压的平方成正比,与工作频率成正比。所以从设计的角

度来说可以从减小逻辑翻转,降低输入电压和降低工作频率三个方面来降低芯片动态功

耗。降低输入电压影响电路的抗噪能力,而降低工作频率直接导致芯片性能降低,所以

实际上用得 多的技术还是减少逻辑翻转。比如门控时钟将暂时不会更改的寄存器的时

Page 32: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

12

钟关闭,这些寄存器连接的组合逻辑也会停止翻转。另外也有动态电压管理等技术,将

暂时不工作的逻辑部分的电源直接关闭,切断动态功耗的同时切断了静态漏电功耗。

1.2.3 流水线和并行计算

流水线和并行是集成电路设计的两大基本电路结构,也是达到性能,面积和功耗的

权衡的有效途径[Par03]。并行是 简单的电路变换方式,将同样的电路复制多倍,就可

以在相等时间下处理多倍的数据量,也即将系统性能提高了多倍。并行展开的限制在于

被复制的电路逻辑之间应保持相互独立,不存在数据依赖关系。若复制电路之间具有数

据依赖关系,则它们之间就存在相互等待的情况, 极端的例子是他们必须完全串行起

来工作,在这种情况下即使复制了多倍硬件,但系统的吞吐率并没有提升。 流水线技术指的是首先将数据处理分成时长尽量相等的几个部分,而且部分与部分

之间的数据流是单向传递,然后通过在每相邻两个部分之间增加数据缓冲,形成一系列

流水级。在前一个数据单元流过一个流水级而进入下一个流水线进行操作的同时,下一

个数据单元可以同时进入当前流水线级别进行处理,数据以同步平移的方式沿流水线方

向流动,于是流水线的各个级别完全并行的操作。在未使用流水线时,一个数据单元的

输入需等待上一个数据单元完全处理完(经过了所有部分),而使用流水线之后,一个数

据单元的输入只需其上一数据单元将一个流水级处理完。在理想情况下,流水线级数划

分成多少,系统吞吐率就能增加多少倍。与并行结构相比,流水结构中可以允许数据依

赖关系,但只允许顺着流水线的单方向依赖关系。同样是提高多倍的吞吐率,流水线的

提高倍数受到电路逻辑的限制。因为在流水线中,系统吞吐率是由 长的流水级决定,

但划分流水线的级别增达到一定量以后,就不能保证各流水级时延均匀分布,从而影响

吞吐率的提高。但同样是提高多倍的吞吐率,一般来说流水线比并行处理节省面积,应

为增加一级流水级只需若干寄存器,而增加一级并行度则需要多复制一整套硬件。 除对系统性能的贡献,并行和流水结构也有助于降低系统功耗。在并行结构中,假

设并行度为 N,在相同的性能要求下,复制后电路的工作频率可以降低 N 倍。由于工作

电压与 高工作频率有近似线性的关系,工作电压可以降低 N 倍。再根据公式(1-2),

在1 1, ,DD DDf f V V C NCN N

→ → → 情况下, 2

1dyn dynP P

N→ 。同样在流水结构中,假设

划分等长流水级 N 级,在相同的性能要求下,电路 高工作频率可以不变,但每一级流

水线的包含的逻辑变少,即要求每级逻辑的传输延迟增大 N 倍,于是工作电压可以降低

N 倍,反映到功耗上 ,f C 基本不变,而1

DD DDV VN

→ ,所以 2

1dyn dynP P

N→ 。从上述分析

可以看出并行和流水对功耗的贡献主要取决于其能在保持性能的情况下降低工作电压,

但上述分析只关注了工作电压对翻转速度的影响,工作电压的降低还会降低抗噪能力,

影响到芯片的稳定性。而且当 DDV 降低到不远大于阈值电压时,其与 高工作频率的线

性关系也不再成立,其可降低的余地有限。在不考虑降低 DDV 的情况下,并行和流水都

Page 33: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第一章 引言

13

基本不改变系统功耗。

1.3 问题的提出和前人相关工作

根据应用需求的不同,视频编解码器的实现方式有很多种。图像分辨率较小时,嵌

入式处理器和 DSP 可以应付实时编解码应用。随着图像分辨率的提高,计算复杂度大大

增加,以软件和半软件方式实现编解码系统已经不能满足实时性的要求,需要采用专用

集成电路。集成电路的性能提升广泛的得益于半导体工艺制成的缩小,理论上同样的设

计用小几倍的制成,其运行速度就可以马上提高几倍。但实际上当设计进入 90 纳米以下

的深亚微米以后,进一步缩小线宽所带来的二级效应已经严重影响其性能的提升。如何

从结构设计的角度充分挖掘一个工艺下的性能,面积和功耗的 佳权衡成为了视频编解

码芯片设计的研究重点[TCHF05][PS98]。本文的研究内容主要是结合视频编解码技术和

高性能芯片设计技术,从结构设计的角度寻求提高视频编解码芯片的性能的办法,并在

一定程度上兼顾面积,功耗和扩展性等要求。视频编解码器芯片的性能必须具备如下特

点: 实时性:人眼视觉特性决定了视频编解码性能的标准是实时性,一般来说是

25~30 帧每秒的处理速度[Gon07]。超过这个帧率视觉感受并没有明显增强,但

低于这个帧率就会被人眼所察觉。芯片设计应在满足系统实时性的前提下去考

虑面积和功耗的折中。 鲁棒性:视频场景具有极大的不规则性,不同码流的编码,特别是解码的复杂

度差异非常大。作为高性能的专用芯片,必须能够应对 坏的情况,在任何情

况下保障系统的性能。 高性能的编解码器结构设计的研究主要集中在以下几个方面。首先是体系结构方面,

硬件编解码器多采用宏块级流水线结构[DRV05][SDRT05][LKPK06][OOYK97]。编码器

一般分为运动估计/帧内预测,模式决策,变换量化,反量化变换,熵编码,环内滤波等

流水级,而解码器一般分为熵解码,反量化变换,运动补偿,帧内预测,环内滤波等流

水级。由于在一帧的范围内,编解码器的数据流都是单向的,所以通过流水操作,系统

的吞吐率可以得到高倍的提升。又由于现有编码标准都采用宏块作为基本处理单元,宏

块自然的成为流水的基本数据单元。同时,由于片上 SRAM 存储资源相对昂贵,视频编

解码芯片多利用片外的 SDRAM 存储器。压缩码流,帧间预测参考图像和待显示图像等

一些占用存储量较大的数据被存放入片外 SDRAM。但是当片外存储器访问带宽紧张时,

流水线性能和共享存储的调度策略之间的关系问题目前还缺少研究成果,以致实际系统

必须预留多余的外存带宽,而且从鲁棒性的角度考虑,系统性能缺乏在 坏情况下的量

化保障。 第二是存储子系统方面,虽然关于共享存储对流水线性能影响的研究不多,但如何

提高外存访问效率的问题受到了广泛的关注 [LL99a][LL99b][TTH99][TH01][JW01]

Page 34: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

14

[KP01][RDKM00][PYP03][LLJ05]。随着半导体工艺的进步,运算部件的速度迅速提高,

而存储器带宽的提高速度却明显低于运算部件[HP02],这种速度增长率之间的差距造成

了我们现在的 VLSI 系统中,存储器带宽成为系统性能的 大瓶颈之一。目前外存一般

采用 DDR 或 SDR 的 SDRAM 存储器,由于集成度高 SDRAM 存储空间成本相对较低,

但由于工艺问题,其带宽成本相对较高。SDRAM 的特性决定了除传输数据外的开销

(Overhead)发生在同一个体中换页的时候。为了减少这种情况的发生,有两种主流的

办法。 基于块的映射:按块方式分配外存地址,保证同一宏块映射到同一个页中,相

邻宏块不能放进同一页的分配到不同的存储体[TTH99][TH01][JW01]。按照这种

方式存储参考数据后,当按块读取参考像素时,若所需的像素块落在某个宏块

内部,则可以保证在一个页内, 多只需要一次换页开销;若所需像素块落在

宏块边界上,比如 多跨越 2×2 四个宏块,则四个存储体的换页过程可以流水

进行,也相当于只需要一次换页开销。 命令调度:将访存请求收集在缓冲器中,从访存效率的角度将访问请求进行重

排序,避免出现连续同体换页的情况[KP01][RDKM00]。命令重排序时要处理数

据一致性问题,以保证对相同数据单元的读写顺序。 第三是高数据吞吐率的数据处理, 典型的是运动估计模块。在视频编解码系统中,

运动估计模块具有 高的复杂度,为了降低其复杂度,一系列快速运动估计算法被提出

[KLHI81][ZM97][LZL94][PM96][JC04][TAL02]。这些快速运动估计算法采用启发式的方

法寻找 有参考位置,与全搜索相比可以大幅度的降低复杂度,并达到与全搜索相近的

估计效果。运动估计的硬件实现分成两个方向,主流的方式是采用脉动阵列进行全搜索

或近似全搜索[YSW89][KP89][PCP96][VS89][LLLU98][HWHC03],也有相当一部分研究

着重于对快速运动估计算法的并行实现[JL04][CCT07][SW04][HCL04]。脉动阵列通过规

则的数据平移,实现了相邻参考图像块之间的数据复用,大大的减低了对输入带宽的要

求。同时阵列化的并行处理单元也大幅度的提高了系统的吞吐量,使得器有能力进行全

搜索。但由于数据复用的需要,脉动阵列的运动估计结构仅适合于全搜索或近似全搜索

这类规则算法。而且数据组织和计算需要的阵列也带来了巨大的面积和功耗代价。而快

速算法并行实现的研究主要集中在三步法,四步法,层次法等传统的方法。AVS 和 H.264这类 新标准采用了变块大小运动估计,这给快速运动估计的高效硬件实现提出了新的

挑战。 第四是高数据相关性的数据处理, 典型的是算术解码模块。H.264 首先采用了基

于上下文自适应的二进制算术编码,AVS 的扩展类(X profile)也采纳了一种自适应的

算术编码方法。算术编码相比于传统变长码表编码具有更高的压缩效率,但其高度递归

的算法特征限制了通过并行化提高性能的可能性,高速算术解码结构成为研究热点

[CCL05][YH05][KP06][ZGXW07]。一部分研究思路是一拍解一个 bin,通过优化关键路

径长度来提高处理频率[YH05][ECSN06];另一路思路是将 bin解码分解为多个流水级别,

Page 35: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第一章 引言

15

通过直通路径来减少每个 bin 解码的 cycle 数[YP07][KP06]。总体来说,目前已有设计的

性能普遍不够高,分辨率上到高清以上时,只能在中低码率情况下达到实时要求。 后,由于多标准已成为目前视频编解码系统的趋势,如何在可编程结构上提高系

统性能受到了越来越多的关注。硬连实现多采用一个 RISC 微处理器作为主控制器加上

多个硬件加速器流水线的系统结构[LSC05][LS03][HA07]。硬件加速器具有一定的可配置

性,主控制器通过命令参数来告诉硬件以适应不同的标准。但是由于主控制器的处理能

力有限,大量模块级别的控制处理交由硬件加速器本身完成。这种模块级全硬连的方式

使得模块状态机非常复杂,容易产生隐藏错误。而且,考虑到各标准间功能和逻辑的复

用,硬件设计成本极高,不适合于两个以上标准的实现。而传统的可编程方案主流的平

台是 DSP,DSP 采用了 SIMD,VLIW 等技术来提高指令和数据的并行度,成为一部分

嵌入式视频编解码的实现平台[CC07]。但 DSP 仍是一种单核系统,只具备一个硬件程序

线程,其并行度完全体现在指令级别,而系统级别看 DSP 实际上是一个串行系统。因而

DSP 的处理能力受到限制,对于标清图像的实时编解码,DSP 就需要至少 500MHz 的处

理频率。 近也有一些多核的可编程方案提出[Cra06],通过系统级的流水与并行可以成

倍的提升性能,同时模块级别的可编程核实现方式可以适应不同标准的要求。但如何将

这种结构与 新的视频编码标准 AVS,H.264 和 VC-1 相结合还有待进一步的研究。

1.4 本文的贡献

本文系统的研究了视频编解码器芯片设计中如何从结构设计的角度提高芯片性能的

问题,其主要的贡献可以归纳为以下几点。 首先,针对共享外存储器的流水线系统的性能缺乏理论保障的问题,本文提出

了一种系统级别的访存结构以及一套同步化的流水线控制机制。采用所提的访

存和控制结构后,流水线的系统性能与访存策略间的耦合关系被打破,实现了

在外存带宽紧张时也能对流水线性能提供保障。本设计方法概念明了,易于实

现,且能广泛的适用于各类需要性能保障的流水线系统。 第二,针对外存储器带宽瓶颈问题,本文提出了一种新的参考帧存储的地址映

射方式,更有效的适应了 新标准 AVS,H.264 和 VC-1 的运动补偿数据结构。

所提映射方式包括冗余映射和亮色度联合映射。其中冗余映射通过提高外存字

中有效像素的比例来降低访存数据量,而亮色度联合映射利用亮色度参考块的

位置对应关系来消除色度块访问时的换页开销(Overhead)。理论分析和实际码

流实验结果可得所需的峰值带宽和平均带宽分别降低 49%和 25%。 第三,针对运动估计的设计,为了解决参考像素组织这一核心问题,本文提出

一种交叉存储的片上存储器组织结构,按行和列两个方向进行交叉存储,使得

在一拍之内可以获得一个随意位置 8×8 块所需要的全部参考像素。由于消除了

数据复用对搜索点和搜索顺序的要求,交叉存储的结构能有效的利用于快速运

Page 36: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

16

动估计算法。在该存储器结构的支持下,进一步考虑到可变块大小的运动估计

算法对中间结果复用的要求,提出了一种基于三步搜索改进的快速运动搜索算

法。实践证明交叉存储机制配合所提的快速搜索算法,给可变块大小的快速运

动估计问题提供了一种性能,面积,功耗高效折中的解决方案。 第四,针对算术解码性能具有递归界(Iteration Bound)的问题,本文根据算法

自身的特点,通过算法级和逻辑级的等效变换,提出了两种高性能 CABAC 解

码方案。第一种基于 bin 猜想,在计算上下文更新时,不待 bin 决策完成,而是

猜测其决策结果而进行,从而使更新与决策并行起来,同时配合电路逻辑优化,

使 CABAC 解码吞吐率提高一倍以上。第二种基于循环展开,即多 bin 解码,

由于直接展开的复杂度随并行度呈指数增长,提出一种基于比特消耗的多 bin解码算法,由于每次消耗 多一个输入比特,简化了多 bin 解码的复杂度。

后,本文提出了一种新的低复杂度高性能的多标准视频编解码器体系结构,

并完成了 VLSI 实现。在系统级别,多核流水的体系结构能充分利用线程级并

行度,同时获得了高性能和可编程性.在模块级别,所提的可配置的专用数据

通路以较小的硬件代价显著提高了特定运算的处理速度,获得了性能的提升和

功耗的降低。实现结果表明该结构可以保障 AVS/H.264/VC-1 三种标准下的 SD图像的实时编解码。该结构充分利用不同视频标准算法的共性与特性,在多标

准,高性能和低复杂度之间取得了高效的折中。

1.5 论文的组织

本文的基本思路是针对视频编解码算法的特定特点,以结构设计和逻辑优化为手段,

达到 大限度提高系统性能的目的,并将面积,功耗等代价控制在合理范围。具体章节

的组织遵循芯片结构设计的基本流程,从算法分析(第二章),到整体结构设计(第三章),到模块设计(第四~六章), 后是集成和实现(第七章)。

第二章着重于算法分析,特别是数据流分析,包括计算量分析,存储量分析,存储

带宽分析,数据依赖性分析,以及计算规整性分析。数据流分析是结构设计和逻辑优化

的基础,为后面各章的具体优化方案的提出指明了方向。为了不失一般性起见,算法分

析涵盖了目前 新 流行也是 复杂的三个视频编码标准:AVS,H.264 和 VC-1。既从

系统级别考虑了模块划分,模块间数据流分析,也从模块角度考虑具体的编码工具内部

的运算特点。经分析得到三大设计瓶颈分别是参考帧读取的带宽利用率问题,运动估计

的性能代价权衡问题和熵解码的吞吐率问题。 第三章从系统的角度考虑性能提高的途径,着重点在于为各子模块设计一套高效合

理的数据传递的机制,提高系统级别各子模块间的并行度,来提高系统整体的吞吐率。

对共享存储的流水线系统进行建模和分析,得到在模块处理时间变化的情况下,共享存

储器竞争对流水线性能的影响。视频场景特性变化很大,对系统性能影响很大,出于高

Page 37: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第一章 引言

17

质量的编解码芯片的要求,本章讨论在任何情况下均能保证性能的问题并去除因共享存

储对流水线系统性能的影响,通过引入同步流水和请求缓冲两项机制来达到这一目标。 根据第二章对各子模块的分析,针对总结出来的三大瓶颈模块,第四~六章分别提

出了对应的优化技术。第四章着重于存储子系统,确切的是外存储器控制器设计。由于

物理实现的难度,外存带宽往往是非常昂贵的资源。外存控制器设计的目标主要是提高

访问效率和有效处理竞争这两点,高效的利用有限带宽。从 SDRAM 的物理结构和访问

方式的分析开始,总结前人已有的成果。进一步提出冗余映射和联合映射两项技术来优

化存储器组织方式。 第五章讨论运动估计,特别是整数点运动估计模块的设计。本章首先总结了前人的

设计,针对参考像素组织这一核心问题,提出了有别于 systolic 数据复用机制的交叉存

储机制。通过存储器分体的手段提高了存储器接口的带宽,直接适应整点运动估计的高

计算量特点。然后基于这种交叉存储的结构,提出了一种基于三步搜索改进的快速运动

搜索算法。对算法的编码性能进行了测试,并对硬件的配置和搜索的实时性进行了讨论。 第六章讨论数据相关算法实现中性能的提高,着重于算术解码。首先分析了 CABAC

的数据相关性,揭示了其性能优化的瓶颈。针对数据相关 强的熵解码 CABAC,根据

算法自身的特点,考虑算法级和逻辑级的优化方案,提出了两种高性能 CABAC 解码方

案。然后具体介绍两种方法在对各语法元素,特别是占码流绝大部分的编码系数位置和

系数值信息上的实现,包括概率模型准备,算术解码和模型更新部分的具体实现和整体

电路关键路径优化。另外对两种方案的解码性能也作了详细的分析和讨论。 多标准视频编解码器成为市场趋势,第七章针对多标准编解码器的设计,寻求系统

灵活性和性能的折中。首先从体系结构上分类,总结了现有多标准解决方案的各种平台

的优缺点。然后提出一种基于多核流水的视频编解码器体系结构,该结构采用可编程处

理器核作为基本单元,并以流水的结构实现多核并行,达到系统灵活性和性能的有效折

中。本章对自行设计的微处理器核进行了详细介绍。同时也讨论了各附加加速模块的具

体设计,比如运动估计和补偿的加速器,用于帧内预测的滤波器组,8 点内积运算器等。

后对该编解码器的整体芯片结构进行了物理实现,并进行了性能和成本分析。 第八章对本文工作进行总结,并指出下一步研究的方向。

Page 38: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大
Page 39: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

19

第二章 视频编解码算法的数据流分析

第二章着重于算法分析,特别是数据流分析,包括计算量分析,存储量分析,存储

带宽分析,数据依赖性分析,以及计算规整性分析等。数据流分析是结构设计和逻辑优

化的基础,为后面各章的具体优化方案的提出指明了方向。为了不失一般性起见,算法

分析涵盖了目前 新 流行也是 复杂的三个视频编码标准:AVS,H.264 和 VC-1。既

从系统级别考虑了模块划分,模块间数据流分析,也从模块角度考虑具体的编码工具内

部的运算特点。

2.1 系统级数据流分析

视频编解码系统都以宏块为单位进行处理。宏块级别的数据块依次的经过编解码器

各工具模块进行处理,达到编码和解码的效果。从系统角度看,三种视频编码标准(AVS,H.264,VC-1)具有类似的数据流,仅具有微小的区别。而且编码器系统中内嵌一个除

熵 解 码 之 外 的 完 整 解 码 器 , 解 码 器 部 分 为 编 码 器 提 供 帧 间 参 考 像 素 [WSBL2003][FMW04][SMPTE05]。相比于图 1.1 所示的混合编码的基本框架,

AVS/H.264/VC-1 添加了帧内预测和环内滤波两个模块,如图 2.1 所示。帧内预测是一种

高效的像素域预测的帧内宏块编码方法,它采用左边和上边的重构像素来预测当前编码

块,以减小待编码信号的能量。环路滤波一方面提高解码图像的视觉效果,另一方面也

有利于提高帧间预测的效果。

图 2.1 新视频编解码器数据流

Page 40: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

20

在分析解码器数据流之前,首先对三个标准(AVS,H.264,VC-1)的算法特征进

行比较,如表 2.1 所示。

表 2.1 AVS,H.264,VC-1 的算法异同点

模块 AVS H.264 VC-1

帧内预测 8×8块 4×4/16×16 不支持

DC/AC 预测 不支持 不支持 左边/上边预测

帧间预测块大小 16×16~8×8 16×16~4×4 16×16, 8×8

分像素差值 1/4-pel, 4-tap 1/4-pel, 6-tap 1/4-pel, 4-tap

运动向量预测 三角距离 中值预测 类似中值

反变换 8×8变换 4×4变换 8×8~4×4 ABT

反量化 均一化 非均一化 均一化

去块效应滤波 环内 环内 环内/环外

熵解码 2D-CAVLC 1D-CAVLC 3D-VLC

2.1.1 解码器数据流分析

数据相关性分析是设计流水和并行基础,高性能的解码器芯片设计从数据相关性分

析开始。如图 2.1 虚线框所示,解码器包括熵解码,DCAC 预测/帧内预测,反量化,反

变换,运动补偿和环路滤波。各模块按宏块为单位进行处理,它们之间的宏块级别数据

依赖关系可以用图 2.2 所示的结构表示。

图 2.2 解码器宏块级别数据依赖关系

图 2.2 示出了解码器中相对较大的数据量在各模块间流动的情况。从熵解码出来的

残差变换系数,运动矢量差和编码帧内模式,分别经三条通路进行解码(VC-1 还包括

Page 41: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第二章 视频编解码算法的数据流分析

21

DC/AC 预测的通路), 后预测值和复原的残差汇聚到重构模块,经滤波得到解码宏块。

对图 2 中的 14 条数据通路进行分析,得到表 2.2。

表 2.2 解码器模块间宏块级数据通信分析

数据通路 数据描述 数据量(每宏块) 交互方式 1 输入码流 不定量 系统输入 2 DCAC 模式 可忽略 按宏块 3 DCAC 预测值 多 48 按块或按宏块均可 4 量化后系数 多 384 按块或按宏块均可 5 变换后系数 多 384 按块或按宏块均可 6 预测残差 多 384 按块或按宏块均可 7 运动矢量残差 多 16 对 按宏块 8 运动矢量 多 16 对 按宏块 9 参考图像块 多(9×9+3×3×2)×16=1584 帧级别反馈路径,按宏块

10 帧间预测值 0 或 384 按宏块 11 帧内预测模式 多 17 按宏块 12 帧内预测值 0 或 384 按块 13 块右下重构值 多 7×16+2×15=142 按块 14 重构像素值 384 按块或按宏块均可 15 解码像素值 384 系统输出

从图 2.2 和表 2.2 可以总结出如下几点:

宏块级数据依赖关系基本都是单向的(除了 12 和 13 之间)。这种单向的数据流

动使得模块间按流水方式并行操作成为可能。 宏块级数据依赖关系基本都是可以按宏块为单位的(除了 12 和 13 外),某些按

块处理的模块之间也可以按块传递数据。这一性质使得按宏块方式进行流水成

为可能。 路径 12 和 13 构成一个块级别的反馈环路,因为帧内预测需要上一块的重建像

素作参考。如果将帧内预测和重构模块合并成一个模块,则整个系统的数据流

在宏块级别成为完全单向。 路径 1 和 15 分别构成解码器的输入和输出,为了与解码器的上下游系统共享这

一部分数据,这些数据一般以帧为单位存放于共享外存中。 路径 9 需要读取上一帧解码时由 15 输出的解码图像用作帧间参考。这一部分输

入构成了解码器中 大的存储要求和带宽要求。 另外在不同编码模式的情况下,某些路径的数据量会发生变化。比如当 CBP(编

Page 42: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

22

码块模式)不为 63 时,有一些块的残差路径上没有数据流动;当帧间预测模式

为 16×16 时,所需参考数据量仅为 22×22+9×9×2,而且按宏块方式运动补偿后,

路径 10 是按宏块方式进行的。 图 2.3 中,VC-1 不进行帧内预测,所以不存在路径 11,12,13;而 AVS 和 H.264不进行 DC/AC 预测,所以不存在路径 2,3。

从计算量的角度进行分析,图 2.3 给出了在三种标准下,各模块的计算复杂度比例。

图 2.3 的数据来自于优化后的纯 C 代码在 ARM-9 平台上进行实测的结果,三个标准均

采用 700kbps 左右的 CIF 测试码流。图中括号中分别显示了各标准解码实时所需要的

低工作频率。(其中假设所有数据和代码都存储于 Cache 中,没有 Cache 不命中的情况。)

6%12%

27%

38%

10%7%

H.264 解码器(200MHz)

4%

20%

17%35%

11%13%

AVS 解码器(170MHz)

19%

20% 30%

12%19%

VC-1 解码器(175MHz)

运动补偿 环内滤波 反变换反量化

帧内预测 熵解码 其他

图 2.3 不同标准解码器模块计算量比例

图 2.3 表明,从纯软件运行的角度讲,运动补偿,环路滤波和反变换量化三大模块

占据了绝大部分的运算量。而其中尤其是运动补偿模块,由于考虑到在读取其大数据量

的参考像素时极可能发生 Cache 不命中,其实际比例还会更高。软件的复杂度和硬件的

复杂度并不完全对应。这些软件复杂单元的计算量消耗主要都集中在以多层循环和数组

计算为代表的规则处理上。而硬件对这种规则的处理比较容易应付,且硬件利用率较高。

具体体现在本章后面部分在各具体模块讨论数据规整性。

2.1.2 编码器数据流分析

视频标准仅规定码流的语法语义和解码方法,并不规定编码器该如何实现。标准所

提供的多种多样的编码模式给编码器设计带来了充分的灵活性和巨大的挑战。从编码效

率的角度看,这些灵活性和挑战主要体现在运动估计算法,模式决策算法以及码率控制

算法。图 2.4 显示了一个典型的低复杂度视频编码器的各模块数据依赖关系。模式决策

不使用 RDO(Rate-Distortion Optimization)而是简化为 SAD,这样模式决策发生在变换

之前,其后的编码过程只需发生一次。帧内预测模式决策时宏块内参考像素使用原始像

Page 43: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第二章 视频编解码算法的数据流分析

23

素,这样避免了在计算帧内预测值时对变换量化模块的依赖。经过这些简化后,视频编

码效率会略有下降,但能节省大量的正反变换量化过程。

表 2.3 编码器模块间宏块级数据通信分析

数据通路 数据描述 数据量(每宏块) 交互方式 1 原始宏块 384 系统输入 2 参考像素 根据搜索窗和更新方式 帧级别反馈,按宏块 3 帧内预测分数

帧内预测模式 帧内预测值 帧内残差值

384×2=768 按宏块

4 帧间预测分数 帧间预测模式 帧间预测值 帧间残差值

384×2=768 按宏块

5 决策后残差值 384 按宏块 6~9 正反变换量化 均为 384 帧内时必须按块

10~11 量化后系数 384 按块或按宏块均可 12 DC/AC 后系数 384 按块或按宏块均可 13 模式/运动矢量 运动矢量 多 16 对 按宏块 14 压缩码流 不定量 系统输出 15 决策后预测值 384 帧内时必须按块 16 解码重构值 384 按宏块 17 块右下重构值 多 7×16+2×15=142 按块 18 解码像素值 384 输出到帧缓冲

图 2.4 中各路经的具体分析由表 2.3 给出。编码器数据依赖关系与解码器有相似的特

点: 宏块级数据依赖关系基本都是单向的(除了路径 17)且可以按宏块为单位进行

交互。 对于 AVS 和 H.264 标准,当宏块预测模式在路径 3 和 4 的交汇点被选择成帧内

预测方式时,路径 17 才存在,且此时对该帧内宏块进行编码时,路径

5→6→7→8→9→17→5 构成一个块级别的反馈环路。这意味着当帧内模式被选

中时,反馈环上各模块必须按块交互,且这些模块无法并行或流水操作。 运动估计所需要的参考图像取决于搜索窗的大小,一般来说都远远多于解码器

Page 44: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

24

的运动补偿,所以必须采用某些数据复用的策略来更新参考窗的数据。 编码器的各路径上的数据量相对比较固定。

图 2.4 典型编码器的数据依赖关系

同样图 2.5 给出了 ARM-9 上各编码器的模块计算量分布,试验数据统计于将 CIF

图像序列压缩到 700kbps 左右的码率,图中括号中的数据表示各标准实时编码所需要的

低工作频率。其中测试码流选择的是多个 SD 大小原始码流,搜索范围定为整数点±16,分像素搜索到 1/4 像素。帧内模式决策时采用原始像素作参考。

9%8%

21%31%

4%7%5%

15%

H.264 编码器(1.2GHz)

7%6%

22% 27%

10%5%7%

16%

AVS 编码器(700MHz)

10%6%

17% 25%

15%8%

19%

VC-1 编码器(550MHz)

整像素

运动估计

分像素

运动估计模式决策 环内滤波

变换量化 帧内预测 熵编码 其他 图 2.5 不同标准编码器模块计算量比例

从图 2.5 可以看出,编码器大部分的计算量都集中在整像素和分像素的运动估计,

结合表 2.3 可以看到运动估计的输入数据量也是 大,与计算量复杂度一致。模式决策

的复杂度来自于分块模式的决策和预测方向的决策。帧内预测部分也包括了帧内模式决

策。

Page 45: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第二章 视频编解码算法的数据流分析

25

2.2 模块级数据流分析

各模块数据计算的特征大不一样,对模块级别的数据流进行分析是模块设计和优化

的基础。本节对编解码器各核心模块的数据流进行分析。

2.2.1 运动补偿

从解码器的角度看,运动补偿的核心操作是分像素插值,它可以分为两个操作,第

一从帧缓冲读取所需的整数点参考图像块,第二进行二维插值滤波。两个部分之间数据

流动是单向的、根据补偿块的大小按块或宏块交互。 第一部分取参考像素构成了解码器中 大量模块间数据传递,我们首先对这一数据

量进行分析。表 2.4 列出了各标准运动补偿所需的整像素参考的数据量。由于分像素插

值是用了多点内插的滤波器,所需的整数点图像块会超过 MV 取整所指向的参考块的大

小,而向左右上下分别扩展一些像素。由于 H.264 的分块更细,所以由于像素扩展引起

的所需参考点增加也 大。在高清(1920×1088×30fps)双向参考下所需参考像素的读取

带宽为 1584×2×244800=776MByte/s。

表 2.4 参考像素块数据量

标准 坏分块情况 扩展整像素点数 所需整数参考像素 AVS 4 个 8×8 分块 左上 2,右下 2 4×12×12+2×4×5×5=776

H.264 16 个 4×4 分块 左上 2,右下 3 16×9×9+2×16×3×3=1584

VC-1 4 个 8×8 分块 左上 2,右下 2 4×12×12+2×4×5×5=776

表 2.5 运动补偿参数比较

标准 位置 滤波器 滤波作用于 1/2-pel (-1,5,5,-1) 整点 1/4-pel (1,7,7,1) 1/2-pel

AVS (1/4,1/4)-pel (1,1) 对角线上的整点和

(1/2,1/2)-pel 中间结果 1/2-pel (1,-5,20,20,-5,1) 整点

H.264 1/4-pel (1,1) 相邻或对角 1/2-pel

1/2-pel, 1/4-pel (Bilinear)

(3,1),(1,1),(1,3) 整点

VC-1 1/2-pel, 1/4-pel (Bicubic)

(-4,53,18,-3), (-1,9,9,-1)

(-3,18,53,-4)

整点

Page 46: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

26

综合三个标准,分像素插值的数据流可以划分为三个部分: 1. 水平(垂直)方向插值,计算出水平(垂直)方向 1/2 或 1/4 点。 2. 利用水平(垂直)已插的点,计算出垂直(水平)方向的 1/2 或 1/4 点。 3. 利用已插的 1/2 点,插值 1/4 点。(VC-1 没有步骤 3) 分像素插值内部数据流具有如下特点: 三个部分具有单向的数据依赖关系,后步骤以前步骤的输出为输入。 三部分的交互必须至少按块进行,这是由于相邻步骤间的块内处理的像素顺序

不一致。1→2 之间需要有相当于一个转置缓冲,而 2→3 中对角滤波的(1/4,1/4)点则需要跳跃的对块级别缓冲进行寻址。

三个部分内部计算没有数据相关性。计算都是按像素点的逐点 FIR 滤波,各点

的滤波计算之间没有数据相关性,有利于并行计算。但滤波的输入数据大部分

可以共享,数据组织需要仔细设计来减少存取数的开销。 滤波操作可以归为三类。一维平移滤波器(4 阶或 6 阶)仅对一个方向的像素

进行滤波,且一般需要在该方向上连续进行多次插值,输入数据可以复用。对

角平均滤波器用于计算某些 1/4 点,输入数据为两行(列)错开位置的 1/2 点。

双线性滤波器采用行列两个方向上 临近的四个整点,按位置加权滤波,沿计

算方向有一个整点可以复用。总体来说这些滤波器的结构基本一致,有利于进

行参数化,具有较好的规整性,有利于硬件复用和数据复用。

表 2.6 运动补偿复杂度分析

标准 位置/模式 MAC/MB SL/MB 存储容量 (1/2,1/2)-pel 2944 1734 121 (1/2,1/4)-pel 4224 2706 144 AVS (1/4,1/4)-pel 3456 2502 121

1/2-pel 5120 3120 81 H.264

1/4-pel 5632 3888 81 (Bilinear) 1536 870 81

VC-1 (Bicubic) 2944 1734 121

表2.6统计了运动补偿模块的具体复杂度。举计算一个AVS 8×8块的(1/2,1/4)点为例,

首先需要对11×12整点块进行水平差值,计算出8×12个(1/2,0)点。然后对这8×12个(1/2,0)点进行垂直滤波,计算出 8×9 个(1/2,1/2)点。然后顺序的对 8×18 个(1/2,0 或 1/2)点进行

垂直 1/4 滤波,计算出 8×8 个(1/2,1/4)点。滤波总数可以通过 MAC 计算次数来统计,采

用 4 阶滤波器,可近似认为一次滤波操作产生 4 次 MAC 操作。所以一个 8×8 亮度块的

MAC 总数为 4×(8×12+8×9+8×8)=928,一个色度 8×8 块的 MAC 总数为 4×8×8=256。另

Page 47: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第二章 视频编解码算法的数据流分析

27

外 一 个 衡 量 数 据 量 的 标 准 是 寄 存 器 读 写 的 次 数 , 上 例 中 的 8×8 块 有

(11×12+8×12)+(8×12+8×9)+(8×18+8×8)=604 次寄存器读写操作。 经上述分析结果运用到高清(1920×1088×30fps),宏块速率需要达到 244800MB/s。

H.264 的 1/4 点所需的每秒 MAC 数为 244800×5632=1.38G,使用 150MHz 硬件实现则

MAC的并行度需要达到将近10。,而每秒SL数也达到244800×3888=951M,使用150MHz的内部总线时存取数单元的并行度也要达到将近 6.4。分像素插值是解码器的复杂度的主

要构成之一,但其内部有充分的计算并行度。

2.2.2 帧内预测

编解码器的帧内预测操作基本相同,仅是编码器需要尝试进行多个模式的预测,而

解码器对一个模式进行。在考虑模块级别数据流时,我们避开系统级数据流中帧内预测

与变换量化之间的块级别耦合关系的影响,假设所需的解码残差数据已经存在于正内预

测模块输入缓冲内,而集中考虑计算帧内预测值本身的数据流特性。由于帧内预测和重

构的紧密耦合关系,后文中未特殊说明情况下,帧内预测模块包含重构操作。 AVS 和 H.264 采用了帧内预测,即利用当前块的左块,左上块,上块和右上块的

紧临的一行和一列重构像素(未进行环内滤波),通过平滑滤波在得到对当前像素块的预

测值。并将预测值与残差值相加得到重构值。

表 2.7 帧内预测参数比较

标准 块类型 模式数 模式说明 Luma8×8 5 DC,4 种方向

AVS Chroma8×8 4 DC,Plane,2 种方向 Luma4×4 9 DC,8 种方向

Luma16×16 4 DC,Plane,2 种方向 H.264 Chroma8×8 4 DC,Plane,2 种方向

帧内预测的数据流具有如下特点: 预测和重构存在以块为单位的数据依赖关系,后面块的预测需要以前面块的重

构数据作参考。这点使得帧内预测原则上必须按块依次串行执行,块之间难于

并行。 从块内的数据相关性来看,像素间的计算完全独立,块内所有像素点可以并行

计算。但帧内预测的输入和输出数据都具有大量的可复用性,方向预测时同一

个参考像素可用于三个预测值的计算,而一个滤波结果也可作为多个像素位置

的预测值。 从计算操作来看,两种标准可以归纳为三类模式,DC,Plane 和方向预测。DC和 Plane 都需要一定的块级别预处理,根据参考像素行来计算类似均值,变化率

Page 48: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

28

的参数。DC 将均值直接作为预测值,而 Plane 根据像素位置计算一个二维线性

表达式得到预测值。而方向预测则根据方向找到相应的参考点进行(1,2,1)或(1,1)滤波而完成。

计算规整性适中。一方面块级别有多种不同的预测模式,三类模式的数据流动

特性完全不同,甚至 H.264 的方向预测中还存在同一模式具有两种滤波方式的

情况。但另一方面,每一模式类别中各具体模式的数据流基本一致,而且方向

预测滤波均采用(1,2,1)或(1,1)两种滤波器。

表 2.8 帧内预测复杂度分析

标准 模式 MAC/MB SL/MB 存储容量

亮度左 0 512 8

亮度对角 872 1248 30

亮度 DC 704 1024 16

色度 Plane 422 682 3 AVS

坏宏块 1294 1930 33

亮度 4×4 方向 640 896 13

亮度 16×16DC 480 736 1

亮度 16×16Plane 803 1315 3

色度 Plane 422 682 3 H.264

坏宏块 1225 1997 17

表 2.8 对帧内预测各模块的计算复杂度进行了分析。对高清(1920×1088×30fps)序

列来说,帧内预测每秒所需的 MAC 和 SL 操作数分别为 244800×1294=316M 和

244800×1997=489M,当系统频率达到 150MHz 时,所需的并行度分别为 2.1 和 3.3,相

对来说不高。三类模式中的 Plane 和 DC 模式的预处理操作可以通过增加计算路径的长

度来提高吞吐率,而像素滤波时则可以通过像素间并行和流水获得并行度。

2.2.3 变换和量化

变换和量化是图像编码的基本工具,经过变换的残差值的能量更集中,更有利于后

续的压缩编码。变换量化都是基于块来进行,编解码器的变换和反变换采用相同的变换

矩阵,而量化则通过乘法和移位来完成。根据标准和块大小的不同,变换矩阵各不相同。

VC-1 采用了 ABT(Adaptive Block-size Transform),利用两个大小的变换矩阵对 8×8~4×4的残差块进行变换。

Page 49: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第二章 视频编解码算法的数据流分析

29

⎛ ⎞⎜ ⎟− − − −⎜ ⎟⎜ ⎟− − − −⎜ ⎟

− − − −⎜ ⎟= ⎜ ⎟− − − −⎜ ⎟

− − − −⎜ ⎟⎜ ⎟− − − −⎜ ⎟⎜ ⎟− − − −⎝ ⎠

AVS

8 8 8 8 8 8 8 810 9 6 2 2 6 9 1010 4 4 10 10 4 4 109 2 10 6 6 10 2 98 8 8 8 8 8 8 86 10 2 9 9 2 10 64 10 10 4 4 10 10 42 6 9 10 10 9 6 2

T

⎛ ⎞⎜ ⎟>> − >> −⎜ ⎟=⎜ ⎟− −⎜ ⎟⎜ ⎟>> − − >>⎝ ⎠

H.264

1 1 1 11 1 ( 1) 11 1 1 1

1 1 1 ( 1)

T

⎛ ⎞⎜ ⎟− − − −⎜ ⎟⎜ ⎟− − − −⎜ ⎟

− − − −⎜ ⎟= ⎜ ⎟− − − −⎜ ⎟

− − − −⎜ ⎟⎜ ⎟− − − −⎜ ⎟⎜ ⎟− − − −⎝ ⎠

8VC-1

12 12 12 12 12 12 12 1216 15 9 4 4 9 15 1616 6 6 16 16 6 6 1615 4 16 9 9 16 4 1512 12 12 12 12 12 12 129 16 4 15 15 4 16 96 16 16 6 6 16 16 64 9 15 16 16 15 9 4

T

⎛ ⎞⎜ ⎟− −⎜ ⎟=⎜ ⎟− −⎜ ⎟⎜ ⎟− −⎝ ⎠

4VC-1

17 17 17 1722 10 10 2217 17 17 1710 22 22 10

T

表 2.9 列出了三个标准变换量化的区别。变换分为行变换和列变换两个过程,根据

三个标准的规定,都必须先进行行变换,然后进行列变换。行变换和列变换均可以视作

矩阵相乘的操作,由于 AVS 和 VC-1 在行变换之后有 Clip 操作,而 H.264 在变换中有移

位,所以行列变换的顺序均不能交换。AVS 和 VC-1 采用归一化的量化操作,块内所有

位置的量化系数相同,H.264 的基本层(Baseline Profile)也是采用归一化量化,但其主层

(Main Profile)可以支持可配置的量化系数矩阵。

Page 50: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

30

表 2.9 变换量化参数比较

标准 变换块 变换顺序 量化方式

AVS 8×8 先行变换,后列变换 归一化

H.264 4×4 先行变换,后列变换 可配置 VC-1 8×8, 8×4, 4×8, 4×4 先行变换,后列变换 归一化

变换量化的数据流具有如下特点: 变换量化的块与块之间不存在数据相关性,变换,量化,反变换和反量化之间

存在单向的块级别数据相关性。 块内部变换的行变换与列变换之间存在块级别的单向数据相关性。 以矩阵相乘的角度看,行列变换可以分解为一系列相互独立的向量内积,每一

个点的计算都相互独立。但从类似蝶形运算的来看,多个变换结果需要共享中

间结果。 以矩阵相乘的角度看,变换量化操作具有很好的计算规整性。除块大小的影响

外,数据都是先按行,后按列的方式在变换模块中流动,而且向量内积的操作

的不同也仅在变换系数。以蝶形运算角度看,不同标准的变换系数不同,分解

成蝶形运算时则不能视为一套规整计算。

表 2.10 变换量化复杂度分析(按矩阵相乘计算)

标准 MAC/MB SL/MB 存储容量

AVS 编码 13056 15360 64

AVS 解码 6528 7680 64

H.264 编码 7200 9600 16

H.264 解码 3600 4800 16

VC-1 编码 9984 6912 64

VC-1 解码 4992 3456 64

表 2.10 对变换量化的计算复杂度进行了分析。对高清(1920×1088×30fps)序列来

说,编码器中变换量化每秒所需的 MAC 和 SL 操作数可达 244800×13056=3.2G 和

244800×15360=3.76G,当系统频率为 150MHz 时,所需的并行度分别为 21 和 25。虽然

要求的并行度比较高,但其中主要的计算量都集中在变换,且变换计算具有极高的可并

行度。以 AVS 为例,变换的块级别提供并行度为 6,行列变换之间流水提供 2,矩阵相

乘的向量内积之间提供 8,向量内积内部提供 8 的并行度。

Page 51: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第二章 视频编解码算法的数据流分析

31

2.2.4 熵编解码

熵编码是一种消除信息的统计冗余的方法,熵编码根据语法元素的出现概率来决定

其二进制编码。出现概率较高的语法元素被分配给较短的码字,而较低的语法元素分配

给较长的码字,从而降低编码一个语法元素所需的平均比特数。编码过程将各语法元素

编码成比特串,然后按一定的顺序排列成比特码流,组成字节码流。由于第六章将对

H.264 主层中 CABAC 做详细讨论,本届内容除非特指暂不涉及算术编解码。在解码端

进行编码的逆过程,解码一个语法元素包括三个基本步骤: 1. 码流对齐:输入缓冲的码流被按字节读出,并按照码流解码的比特位置通过

位移将已经解码的比特去除。 2. 码长检测:由于熵编码属于变长编码,在解码时码字的长度包含在编码的信

息比特中。三种标准的编码方式都属于前缀码,可以根据对码字中固定前缀

模式的搜索来决定码字长度。 3. 码字映射:根据码字长度取出当前语法元素对应的信息比特串,查表得到其

对应的语法元素取值。 熵编码对于不同语法元素会采用不同的码表和映射方式,为简化起见,本文主要集

中讨论熵编码中占主要部分的量化系数编码部分。表 2.11 总结了不同标准的系数编码的

特点。

表 2.11 熵编解码参数比较

标准 编码工具 Code 语法元素 自适应方式

AVS 2D-VLC Exp-Golomn (run,level) 系数级别

H.264(BP) CAVLC Exp-Golomn run,level 系数级别

H.264(MP) CABAC arithmetic map,level 按 bin 更新 VC-1 Huffman Huffman (run,level,EOB) 按块模式选表

VC-1 为采用自适应的编码方式,而仅是根据块模式来选择 Huffman 码表,其解码

过程为前述的三个基本步骤。AVS 和 H.264(Baseline Profile)采用了系数级别的自适应

编码,指数哥伦布码的阶数决定于块内已解码的 level 中的 大值,在三个基本步骤上增

加了步骤四: 4. 阶数更新:根据码字长度取出当前语法元素对应的信息比特串,查表得到其

对应的语法元素取值。

Page 52: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

32

码流对齐 码长检测 码字映射 阶数更新

图 2.6 熵解码系数级别数据依赖关系

图 2.6 显示了系数解码中四个步骤之间的数据依赖关系,均为像素级的依赖关系。

四个步骤完全包含在两个反馈环路之中,加之输入比特流的串行特征,使得四个步骤间

均不存在并行和流水的条件。 与其他模块不同,熵解码不是基于滤波和 MAC,而是基于查表和判断。从 SL 的角

度可以对其计算量进行估计。码流对齐需要判断是否读取新字节计 10 个 SL;码长检测

分两级进行计 8 个 SL;码字映射计 3 个 SL;阶数更新计 4 个 SL;则一个系数解码需要

约 25 个 SL。而一个宏快 多支持 384 个系数,所以宏快 多 SL 数为 9600。对高清

(1920×1088×30fps)序列来说,每秒 SL 次数达到 2.35G,加上判断操作其计算量更高。

对 150MHz 电路来说,所需并行度至少为 16。如何在一个 150MHz 的时钟周期内串行的

完成包括 16 个 SL 在内的比特解码操作给逻辑设计提出了挑战。

2.2.5 环路滤波

基于块的变换量化使得块边界(Edge)形成了编码失真,为了去除这种块效应对帧

间预测的影响,各标准都引入了环内去块效应滤波器。环内滤波的将处于块边界的像素

按垂直于边界的方向进行平滑滤波。环内滤波分为块级参数计算部分和像素级滤波部分。

块级参数主要是滤波强度,也就是进行滤波模式,不同的模式具有不同的数据通路。滤

波强度由块类型,帧间预测的参考帧和运动向量差别来决定。在一种滤波强度下其具体

的滤波方法还不一致,主要取决于像素差值,当像素差值大于某一预定阈值时,将认为

原始图像在此有一真实边界,而不对其进行滤波。表 2.12 比较了不同标准的环内滤波。

表 2.12 环内滤波参数比较

标准 AVS H.264 VC-1

块大小 8×8 4×4 8×8~4×4

滤波强度 3 种 5 种 2 种

读取点数 6 8 8

修改点数 4 6 2

滤波顺序 先滤垂直边 先滤垂直边 先滤水平边, 8×8 边先于 4×4 边

边内滤波判决 逐行 逐行 根据第三行

Page 53: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第二章 视频编解码算法的数据流分析

33

环内滤波的数据流具有如下特点:

在块级别,环内滤波的块与块之间存在双向的数据相关性。AVS 和 H.264 先滤

垂直边,再滤水平边,垂直边的滤波需要邻近两个块的水平边滤波后的值。VC-1先滤水平边,再滤垂直边,情况类似。

在宏块级别,两个方向的滤波操作之间具有单向的数据相关性。AVS 和 H.264是垂直边滤波→水平边滤波,VC-1 是水平边滤波→垂直边滤波。

在一条滤波边上,各滤波像素行之间,以及某一滤波像素行上的不同像素点之

间的计算相对独立。 计算规整性较差。滤波首先分为多个滤波强度,滤波强度不同决定了不同的数

据通路。同一边上还具有大量的根据像素差值的选择和判断,用来决定具体滤

波方法。

表 2.13 环内滤波计算复杂度分析

标准 滤波强度 MAC/MB SL/MB

BS=1 1344 576 AVS 8×8

BS=2 1152 576 BS=1 1344 1536

H.264 4×4 BS=4 4224 1536

VC-1 8×4 BS=1 2304 1152 VC-1 4×4 BS=1 3702 1536

表 2.13 对环内滤波各模块的计算复杂度进行了分析。对高清(1920×1088×30fps)

序列来说,每秒所需的 MAC 和 SL 操作数分别为 244800×4224=1.03G 和

244800×1536=376M,当系统频率为 150MHz 时,所需的并行度分别为 7 和 2.5。通过利

用边内滤波行的流水和并行,以及行内像素间的流水和并行,以及利用二维滤波之间流

水,环内滤波模块可以轻松的达到所需的并行度。

2.2.6 运动估计

运动估计是编码器中帧间预测的核心模块,也是编码器中复杂度的主要贡献者。运

动估计的目的是在参考图像帧中找到 佳的参考图像块位置(即运动矢量),使得经过帧

件预测之后,残差的能量 小,以期 好的压缩效率。简化计算起见,运动估计一般采

用块匹配的算法,比较各个参考位置点上关于残差和运动矢量的代价函数,以搜索的

小代价函数点作为运动估计的结果。新一代标准都采用了 1/4 分像素插值,运动估计分

为了按块具有单向传递关系的两级:整像素运动估计和分像素运动估计。分像素运动估

计的数据流分析可以参考 2.2.1 节,分像素估计可以在 2.2.1 节分像素补偿的基础上,增

Page 54: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

34

加多个位置的 SAD(Sum of Absolute Differences)计算和比较,即可完成分像素运动估

计。本届集中讨论整像素估计,在复杂度分析是考虑分像素估计。 运动估计算法不属于标准规定的范围,本节就三种典型的搜索算法进行分析:全搜

索,层次搜索和三步法快速搜索。全搜索对搜索范围内的所有点按照顺序进行搜索,逐

点比较代价函数,选取 有点。三步法搜索按照三个步骤以启发似的方式进行搜索,每

一个步骤按照固定的图案搜索九个点,选择以其中 小代价函数位置作为中心,在下一

个步骤将固定的搜索图案缩小一半在搜索九个点,经过逐步细化,三步之后的 佳位置

作为搜索结果。与全搜索相比,三步法具有很低的复杂度,但其考察点数太少,且启发

式方法可能陷入局部 优,搜索效果不好。介于两者之间的层次搜索将编码宏块和参考

图像帧均下采样到一个新的层次,以在这个新层次上进行全搜索的结果作为原图像层上

的搜索中心位置,进行较小范围的二级全搜索得到 后结果。 运动估计的数据流具有如下特点:

从数据流特征来看,三种搜索算法在块级别都具有计算的独立性,即块与块之

间不存在数据依赖关系。 层次搜索的不同层次之间,以及三步搜索的不同步之间存在单向的数据依赖关

系,这种依赖关系体现在继续搜索的中心点。 帧间预测都支持可变块大小,大块与其子块的 SAD 中间结果具有可复用性,而

这种复用性仅有全搜索可以完全利用,层次搜索可以部分利用,而三步搜索仅

在第一步时可用。 每一个位置的 SAD 计算具有充分的并行度,参考像素点与编码原始像素点逐点

作差,并将这些差的绝对值累加计入代价函数。 三种算法都具有较好的计算规整性,特别是全搜索还具有很强的数据规整性,

加之利用可以大幅度的减少需要的访存带宽。

表 2.14 运动估计计算复杂度分析

搜索算法 搜索范围 变块大小 MAC/MB SL/MB

16×16~8×8 282051 560835 全搜索整点 ±16

16×16~4×4 295119 573903 16×16~8×8 148835 222819

层次法整点 两层各±8 16×16~4×4 152303 226287 16×16~8×8 16155 18459

三步法整点 9+8+8=25

点 16×16~4×4 25479 27783 16×16~8×8 12288 16384

分像素点 1/2和1/4各

±1 16×16~4×4 20480 24576

表 2.14 对运动估计模块的计算复杂度进行了分析。对于高清(1920×1088×30fps)

Page 55: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第二章 视频编解码算法的数据流分析

35

序列来说,全搜索算法在±16 的搜索范围且为单向预测时,所需的每秒 MAC 次数为

295119×244800=72G,在 150MHz 工作频率下要求并行度达到 480。从算法本身具有的

并行度来看,像素间全并行也仅具有 256 的并行度,这要求工作频率上升到 280MHz 或者采用搜索位置间的并行度。层次法在 150MHz 时所需 MAC 并行度为 248,采用像素

间全并行即可。而三步法的复杂度 低,所需并行度为 42,8×8 块级别 SAD 运算器即

可。不同搜索算法在所需计算并行度,所需数据量和搜索效果上的差别都很大。如何在

可变块大小的条件下,达到硬件复杂度和算法的 佳平衡是影响运动估计,乃至整个编

码器性能的核心问题。

2.3 小结

本章对现有标准(AVS,H.264 和 VC-1)的解码器和典型编码器的算法数据流进行

了分析。从系统级别和模块级别对数据流特性进行总结,其具有以下特性: 编码器和解码器系统级数据流基本上都是按宏块单向流动,宏块级数据依赖关

系为有向无环图。这使得编解码器可以通过系统级流水线提高系统并行度,从

而提升系统性能。 帧内预测的块相关性是编解码器中宏块级别唯一的反馈回路。解码器端的处理

相对简单,仅需要经重构包括在帧内预测模块内,并将反变换的输出残差值作

为帧内预测模块的一项数据依赖即可。编码器端在帧内模式决策和帧内残差编

码的过程中都需要按块进行,需要将帧内预测和正反变换量化环路划归进一个

流水级。 编解码器都具有一个帧级别的反馈环路,帧级别的巨大数据量要求参考图像存

储在廉价的片外共享存储器内。 模块级别的处理可以分为两种类型,滤波操作型和比特操作型。滤波操作型包

括除熵编解码外其他模块,主要操作可以归结为 MAC 等具有像素及并行度的

DSP 操作,可以通过 SIMD 类型结构进行加速。比特操作型为熵编解码,尤以

熵解码为甚,操作之间存在极强的数据相关性,加之比特流的串行性,难于进

行系数间的并行。

Page 56: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

36

表 2.15 模块计算复杂度总结(所需并行度按 HD@150MHz 计算)

标准 MAC 并行度 SL 并行度 可用并行度 访存带宽

运动补偿 10 6.4 >384 776MBytes/s

帧内预测 2.1 3.3 >16 0

变换量化 21 25 >384 0

熵编解码 0 16 1 ~2Mbytes/s

环内滤波 7 2.5 >32 63Mbytes/s

运动估计 480/248/42 933/368/45 >256 266MBytes/s

表 2.15 列出了各模块在计算和数据准备上所需的并行度,和从算法数据流分析得到

了可用并行度,以及由系统输入输出和帧间参考像素访问所需的带宽。从表 2.15 和上述

分析可以得出编解码器设计中存在三大性能瓶颈: 1. 运动补偿模块 大可能占据了 776Mbytes/s 的共享存储器带宽。由于系统芯片

片上还有其他模块(比如嵌入式应用处理器)访问共享存储器,共享存储器带

宽是紧缺资源。提高编解码器系统吞吐率必须对访存方式进行优化以降低访存

的开销和带宽的利用率。 2. 运动估计即使是 简单的三步算法也具有 大的计算复杂度。虽然算法可提供

的计算并行度也能很高以满足性能要求,但直接并行化时的面积和功耗代价会

特别显著。运动估计算法并非标准规定,如何结合硬件结构设计算法,达到

终的面积,性能和编码效率的高效折中是考虑运动估计性能提高时所带来的更

重要的问题。 3. 熵解码是唯一的模块所需并行度不能得到满足的,因为熵解码存在像素间的数

据依赖关系,不存在像素间并行的可能性。这使得 16 个以上的 SL 操作必须在

一个 150MHz 时钟周期(6.7ns)内完成。根据 Iteration Bound 理论,电路性能

的提高由电路反馈环路的所限制。提高熵编码的性能只能依赖于对电路关键路

径进行具体的逻辑优化。

Page 57: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

37

第三章 具有性能保证的系统级流水线结构

高性能视频编解码结构设计的第一个问题是系统结构,由于模块划分是基于编码工

具来进行了,设计的重点集中在了系统互连上,即如何控制数据在各模块间流动,使得

各模块高效的并行工作,以使得系统吞吐量得到提高。流水线是目前广泛采用的一种系

统运行方式,通过缓冲机制将单向传递的数据流切分成多个流水级,能大幅度地提高系

统性能。编解码器均存在帧级别的反馈环路,并相应的需要帧级别的巨大存储空间,使

用外部存储器成为普遍的解决方案。共享存储的系统流水线成为了高性能视频编解码器

的主流实现方式[DRV05][SDRT05][LKPK06]。 采用流水机制后,系统总体吞吐率等于流水线中 慢流水级的吞吐率,通过对各流

水级的宏块 大处理时间进行控制和设计,流水线系统的性能可以得到保障。但是在外

存带宽紧张的情况下,访存等待时间的显著增加,使得模块处理时间缺乏保障,从而导

致流水线系统的性能无法保障。 面对上述问题,目前很多设计的解决方法都是增加存储器带宽,这使得这些系统的

外存带宽利用率普遍不高,浪费了系统资源。如何在带宽紧张的流水线系统中保障系统

性能成为本章研究的重点。本章分析了系统级流水线的运行机制和数据流机实现方式,

讨论了共享存储对系统流水线性能影响的作用方式,提出了基于请求均匀化的解决方案。

一方面该方案为共享存储的流水线性能提供了保障,使系统性能成为可控制和可设计的;

另一方面该方案在系统带宽和模块性能上均无浪费资源。进一步提出了同步化控制和访

存结构变换两种请求均匀化的具体实现方式。通过这两项机制,系统实时性条件退化为

仅有的两个必要条件,模块计算部分实时和系统带宽满足 低要求。所提的机制不仅成

为视频编解码器保障实时性的解决方案,也为一般的共享资源的系统流水线提供了性能

保障。

3.1 系统流水线结构和性能分析

流水线的运行机制是将按某一固定数据单元进行的,具有单向数据依赖关系的处理

通路,划分多个流水级,使各流水级并行的处理相继的数据单元,达到系统并行度的提

高。由于简化控制的原因,传统系统流水线多与数据流机结合使用。数据流机的思想是

一种数据驱动的结构,数据在模块间流动的过程中被处理,模块在它所需要的一个数据

单元的数据到齐于其输入缓冲时,即自动启动其处理,并将结果数据发送到下级模块的

输入缓冲。数据流机与系统流水线相结合通过 FIFO(先入先出缓冲)来实现具有单向数

据依赖关系的系统模块间的并行。本节从简单到复杂分析这种系统流水线的运行机制。 图 3.1 给出了两个模块的流水结构,两个模块具有单向的数据依赖关系,且其基本

数据单元相同(均为宏块)。两模块间的两个宏块深度的 FIFO 是数据流机流水线的关键。

Page 58: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

38

深度为两个宏块保证了模块 I 和模块 II 可以并行的工作于两个宏块的数据上。因为写入

和读出数据与模块内部的处理速度相关,它们都会延伸到整个宏块的时间内,所以模块

间的数据缓冲必须具有两个端口,而且必须具有至少两个基本数据单元的空间。FIFO 的

先进先出控制机制,可以通过空满信号给上下级模块提供控制信号,完成数据驱动的机

制并保证数据的有效性。

模块 I 模块 II

FIFO

图 3.1 两模块间流水

当两模块具有不相等的固定宏块处理时间( Ic , IIc )时,由于 FIFO 空间的限制,较

块模块需要等待较慢模块的处理,这种等待由 FIFO 空满信号来控制。由图 3.2 可以看出,

系统吞吐率等于较慢模块的吞吐率。而且增加 FIFO 深度仅能在模块 I 较快时加速模块 I的前几个宏块,流水线建立以后,系统吞吐率等于较慢模块的吞吐率。

10 2 3

10模块 I:

模块 II:

2 3 4

10 2 3

10 2 3

4 5模块 I:

模块 II:

cI>cII

cI<cII 图 3.2 两模块流水线运行时序

将两个模块流水扩展到具有链式数据依赖关系的多个模块,按照图 3.3 将多个模块

看作一个等效的模块 I*,由数学归纳法可得链式流水线系统吞吐率由链中 慢模块所决

定,且模块间 FIFO 深度需要且仅需要两个宏块深度。

Page 59: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第三章 具有性能保证的系统级流水线结构

39

模块 II

FIFO

模块 III

FIFO

模块 I*

…模块 I

图 3.3 链式流水线

进一步扩展数据依赖关系的拓扑结构,单向数据依赖关系可以等价于一个有向无环

图(DAG:Directed Acyclic Graph),在 Chain 的基础上仅需增加分叉汇聚(Fork and Converge)即可推广到一般化的 DAG。图 3.4 显示了具有 Fork 和 Converge 的流水线。

M1

M2

M4

nn-1

nn-1

M3n-1n-2

M5n-1n-2

M6n-2n-3

M7

n-2n-3

n-3n-4

图 3.4 一般化的有向无环图流水线

有向无环图的流水线有一个需要注意的问题。当存在从一个模块到另一个模块的多

条路经时,如果不同路经之间所经过的流水级数不相等,称为多路经不平衡。如图 3.4所示,从 M1 到 M7 的两条路经分别经过两级和三级流水线,如果能流水能顺畅进行,

M7的两个输入端的数据分别是 n-3 宏块和 n-4 宏块,而实际上 M6输出 n-4 宏块必须和

M3 输出 n-4 宏块同时被 M7消耗,这样由于缺少存储空间 M3需要等待一个宏块时间。

进一步分析,由于 M3的输入 FIFO 数据停止消耗一个宏块,M2也将在下一个宏块时间

中等待。等待传递到 M1后会继续传递到 M4,因为 M4缺少输入数据。这种按固定周期

在模块间循环传递的等待将系统性能降低 1/7。 解决这一问题的途径也很简单,即增加 M3到 M7的 FIFO 深度,仅需增加一个宏块

的 FIFO 深度即可将两条路经平衡化。只需考虑有一个假想的 M*,M*仅把数据从其输入

端搬到输出端,图 3.5 所示结构与图 3.4 增加 FIFO 深度后完全等价。我们把图 3.5 中处

于同一流水级的两个模块考虑成一个合成模块,即 M2和 M4看成模块 M2,M3和 M5看

成 M3,5,则 DAG 关系的流水线退化成 Chain 关系的。所以,DAG 关系流水线仅需要通

过匹配 FIFO 深度来平衡化不同的路径,即可达到完全流水的性能,即系统吞吐率等于

慢模块的吞吐率。

Page 60: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

40

M1

M2

M4

nn-1

nn-1

M3n-1n-2

M5n-1n-2

M6n-2n-3

M7

n-3n-4

n-4n-3M*

n-2n-3

图 3.5 通过增加深度路径平衡化

3.2 共享存储下对流水线性能的影响

在 FIFO 深度平衡的情况下,系统吞吐率决定于 慢宏块的吞吐率,模块的吞吐率

决定于其宏块处理时间,从数据流角度确切地说即从开始读取宏块的第一个输入数据开

始,到宏块的 后一个数据写入下级模块的输入 FIFO。在存在共享存储访问的情况下,

宏块处理时间分成三个部分 ti=wi+bi+ci。 wi:访存等待时间。共享存储访问的多个 clients 之间存在访问冲突,当竞争失

败时访问需要等待。访存等待时间具体地说是从请求发出到竞争获胜并可以开

始传送数据为止的时间。 bi:数据访问时间。具体地说是从获得访问权开始,到数据传送结束为止的时

间。数据访问时间包括访问流水线的建立时间,总线和存储器访问的 Overhead(开销),以及实际传送数据的时间。当访问分为多个 burst 完成时,宏块数据

访问时间等于各 burst 数据访问时间之和。 ci:数据处理时间。具体地说是不能与数据访问并行的处理时间,主要是访存地

址的计算,写入数据的准备和对返回数据的处理。 数据访问时间 bi和数据处理时间 ci均有由模块算法而确定的上确界,所以共享存储

对系统性能的影响集中体现在 wi 上。但 wi 的取值不具有明确的上界,它受到主要三个

方面的影响,影响因素非常具体,且不容易控制。 访存模块的访存特性:包括在宏块时间内的何时发出请求,请求的 burst 长度,

以及请求量在宏块时间内的分布。这些因素部分的决定了访问冲突发生的可能

情况。 存储器控制器调度策略:调度策略决定了竞争判断的结果,也就决定了当发生

冲突时单个请求的等待时间。 流水线模块间相对时序状态:模块数据访问时间 bi和数据处理时间 ci虽然有算

法确定的上确界,但其具体取值可能随宏块变化,这样导致流水线模块间相对

时序状态变得不固定,仅相邻模块的处理具有一定程度的对齐。 相对时序状态和 wi 形成一种相互作用,加上访存特性和调度策略的影响使得对 wi

的具体量化分析变得性当复杂,本文不作详细的讨论。现有的流水线实现一般将访存操

Page 61: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第三章 具有性能保证的系统级流水线结构

41

作独立在一个流水级别中,而将前处理和后处理划归到前级和后级流水模块中。这样一

方面在访存级别 Ti中 ci被去除,而且宏块内访存特性更一致。 共享存储器的引入使得 wi的上界不确定,下面例子具体的表明了模块相对时序状态

对 wi的影响。如图 3.6 所示,为简化起见,假设 MC,IP 和 LF 构成三级流水线,上下

级之间具有两个宏块深度的 FIFO,MC 和 LF 是纯访存模块(ci=0),IP 是纯计算模块

(wi=bi=0),MC 访存优先级高于 LF。

n

n-1

n-2

n+1

n

n-1

MC

IP

LF

与 MC(n+1) 冲突

图 3.6 共享存储对流水线影响示例

开始时 MC,IP 和 LF 对齐的处理宏块 n,n-1 和 n-2。假设 MC 和 IP 的第一个宏块

时间略短于 LF,这样在 LF(n-2)完成之前,MC(n+1)就开始启动。于是 MC(n+1)的访存

请求和 LF(n-2)的访存请求产生竞争,导致 LF(n-2)推迟完成(图 3.6 虚线所示部分)。由

于 FIFO 深度的限制,LF 的延迟逆流水线向前传递至 IP 和 MC,导致系统不能处于完全

流水。而且这种情况可以在每两个宏块时间内重复出现,流水线效率降低。即使增加流

水级之间的 FIFO 深度,结果是 LF(n-2)的 后部分被更多的 MC(n+2)等所抢占,流水线

效率同样降低。 传统的基于数据流机的共享存储的流水结构中无法避免因为模块间由于启动时间不

对齐所带来的访存不均匀性,这种访存不均匀性造成了流水线性能的降低。

3.3 具有性能保障的流水线控制机制

由上述讨论已知,当流水线系统不存在共享存储访问时,各模块 ci均具有明确的可

设计的上确界,系统性能的保障可以通过将各模块的 大 ci设计成小于或等于系统实时

性要求的时延而达到。当引入共享存储后,由于流水线和访存竞争的不确定性,造成 wi

的分析非常复杂,而且系统性能不能得到保障。本节通过分析提出一种简单普适的控制

机制,利用此机制可以将各模块的访存均匀化,将外存控制器的处理宏块化,从而对 wi

的上界进行限制,在任何情况下给系统性能以保障。而且,分析表明本控制机制可以充

分的利用外存带宽,对外存带宽的要求仅为一个必要条件即 i MBi

b T≤∑ , MBT 为实时处理

Page 62: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

42

所允许的宏块 大处理时延。

3.3.1 访存请求的均匀化与系统性能

在共享存储的流水线系统中,wi的上界没有保障,而且 大不确定性来自于由于变化处

理时间的流水线和相对时序不对齐带来的请求不均匀。本节提出一系列方法来进行请求

均匀化,从而达到对 wi进行限定的目的。所谓请求均匀化即外存访问的宏块化,指的是

通过一定的控制机制,使得各访存模块所发请求的竞争发生在 多一个宏块的范围内。

具体的说,请求均匀化可以定义为:如果模块 A 宏块 a 的请求由于调度器响应模块 B 宏

块 b 的请求发生了等待,则模块 A 宏块 a 的请求不会再由于调度器响应模块 B 宏块 b 之

后的任何宏块的请求而发生调度等待。请求均匀化防止由于相对时序不对齐而造成的,

某一模块的当前宏块访存延迟受到另外模块两个或多个宏块访存请求的影响。 具体的对 wi进行分析,某一个模块在等待时一定是其他高优先级模块正在访问,而

请求均匀化以后,所需等待的高优先级模块的访问量被限制在一个宏块以内。对于任意

访存模块而言,即使所有其他模块的优先级都比模块 i 高,模块 i 需要等待所有其他访

存模块的访问,也有 i jj i

w b≠

≤∑ ,于是 i i jj

b w b+ ≤∑ 。从另一方面看,系统带宽量满足

i MBi

b T≤∑ 是存储子系统满足实时性的必要条件,bi的设计可以基本上在存储子系统内部

来完成,本文第四章着重讨论 bi 的优化。在系统级别我们假设 i MBi

b T≤∑ 这一基本必要

条件是成立的,于是有 i i j MBj

b w b T+ ≤ ≤∑ 。通过本节后面介绍的计算访存分离的方法可

以将访存模块的 ci 都置为零,则各模块的总处理时间 i i i i j MBj

t c b w b T= + + ≤ ≤∑ 可以保

证系统的实时处理。从另一方面看假设max( )j memj

b c=∑ ,对于非访存模块 i it c= ,对访

存模块 i i i j memj

t b w b c= + ≤ ≤∑ ,于是考虑了共享存储的系统流水线的平均数据输出时间

(吞吐率的倒数)可以表示为[1: ]&

max( ) max ( )i ii i N memT t c

== ≤ 。这个结论与非共享存储的系统

流水线已经形式上完全一致,系统吞吐率等于 慢流水级的吞吐率,存储器访问也可以

完全考虑成流水线的一级,该级的模块处理时间为一个宏块内其所需的访存时间之和

mem jj

c b=∑ 。总而言之,通过请求均匀化,共享存储的流水线非宏块化流水系统退化为

一个等效的非共享存储的完全宏块化的流水系统,共享存储的各模块的存储器访问处理

等效为一个以 jj

b∑ 为处理时间的与非访存模块一样的宏块化模块。而这一等效化的处理

仅有两个条件即: 请求的均匀化 数据处理和访存分离

Page 63: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第三章 具有性能保证的系统级流水线结构

43

3.3.2 访存请求的均匀化的实现方式

请求的均匀化对共享存储流水线系统的性能保障起到了关键作用,本节就访存请求

均匀化的实现方式作详细讨论。总体来说可以从两个层面来考虑请求的均匀化和宏块化: 1. 从访问请求调度的层面:在外存控制器端采用动态优先级的调度策略,使得在

宏块级别各模块具有平等的优先级。在一个宏块时间内,当某一模块的当前宏

快访问已经结束,则将其优先级将为 低,以使该模块的后续宏快请求不会影

响其余模块本宏快的访存。 2. 从流水线运行控制的层面:对流水线上各模块的相对时序关系进行控制,使得

访存请求按照宏快为单位发送到外存控制器。流水线上的各模块需要同步化,

即各模块的宏快处理开始时间相互对齐,即使结束时间不对齐。处理较快的模

块需要等待较慢的模块,但不再是简单的通过上下级数据缓冲的空满信号,而

是通过一个全局的同步信号。 从访存调度的角度出发寻求请求均匀化,由于一个宏块内有多个访问请求,且访存

请求的数量和特性在各模块均随宏块变化,所以从调度器本身来看,它并不知道请求所

对应的宏块属性。这一部分信息需要从访存模块发送到外存调度器,以便调度器动态调

整访存优先级。这一信息的目的在于告诉调度器访问请求的宏块边界。具体可以有以下

可能的实现方式: 传送宏块编号:在每个请求中附加宏块编号,宏块编号与发送模块所在流水级

数相加得到相对宏块编号,模块间优先级关系在每一次竞争时,通过比较相对

宏块编号来决定,相对宏块编号较小的请求具有高优先级。 传送宏块切换标记:在每一个宏块结束之后(或者开始之前)发送一个信号给

调度器,调度器根据宏块切换信号,在宏块级别调整模块间的相对优先级。调

度器接收到某个模块的切换信号之后,则需要将该模块的优先级降至 低(从

控制的简单起见,可以直接关闭该模块的访问)。而且收到所有访存模块的切换

信号之后,调度器还需要恢复原有的优先级。

表 3.1 请求均匀化的两种方案对比

策略 宏块编号 宏块切换标记

传输信息量 多,宏块号,每次请求一次 少,1-bit,每宏块一次

优先级切换 按请求,比较相对宏块号大小 按宏块,每宏块两次

调度复杂度 高,按请求作比较 低,相当于固定优先级

附加控制 无 1.需要检测所有模块完成以进

行优先级恢复 2.需要处理多次切换问题 3.需要发送空切换信号

Page 64: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

44

宏块切换标记较宏块编号具有较低的运行时复杂度,但它需要宏块级别的附加操作

来保障机制的正常运行。其中要注意的一个问题,当在某一个访存模块的两次切换之间,

发生了另一较快模块的两次切换的情况时,在接下来的恢复过程中,那个较快模块的优

先级不应该被恢复。因为该较快模块的该次恢复后应该处理的宏块也已处理完成。对于

多次切换的处理可以记录和更新切换次数,每次切换时次数加一,每次恢复时次数减一,

仅在切换数为零时恢复优先级;也可以简单的直接将已切换未恢复的访存端口关闭,而

不仅是给以 低优先级,这样也能有效处理多次切换问题。另外一个要处理的问题在访

存模块某些宏块没有访存请求的情况。此时访存模块在宏块访存结束之后,下一宏块访

存开始之前也需要向调度器发送切换信号,即空切换信号。 从请求调度的层面考虑请求均匀化是仅对请求的访问次序进行控制,流水线上各模

块访存模块的相对时序关系有相当程度的对齐,但并不是完全对齐。另一种更彻底的控

制机制则作用于流水线运行级别,通过控制机制将流水线各模块,特别是访存模块的处

理完全对齐起来,通过对访存模块的对齐达到对访问请求对齐的目的。对齐信号的产生

由主控制器完成,主控制器通过监测各模块的完成信号来产生统一的同步信令,各模块

收到该同步信号来启动其宏块处理和访存。同步信号由主控制器发出,并在同一个时钟

周期到达所有模块,而且主状态极通过各模块的状态查询可以保证在同步信号到达以前,

各模块的输入数据缓冲必然已有一个宏块的数据,而输出缓冲必然具有一个宏块的空间。

同步信号的具体产生规则可以有两种,如图 3.7。 按宏块完成同步:同步发生在各模块的上一宏块处理全部完成时。 按实时性同步:同步发生在实时性要求的固定周期上。

图 3.7 显示了按完成同步和按实时性同步两种方式的流水线时序关系,以及与非同

步数据流机的比较。当各模块宏块处理时间随宏块变化时,两种同步化的流水方式的性

能可以容易得到,我们先对非同步数据流机的性能进行分析。非同步数据流机仅存在流

水线上下级之间的由于 FIFO 深度带来的内在局部同步关系。图 3.7 中(非同步数据流机

部分)箭头所示的同步关系来源于输入缓冲有数据和输出缓冲有空间。为了确切计算非

同步数据流机的性能,我们将这种局部数据关系展开成一个倒树状图(如图 3.8)。Si,j

和 Ei,j分别代表模块 i 在第 j 个宏块的开始时间和结束时间。箭头表示依赖关系,也即时

间的先后关系,它们既包括输入数据相关也包括输出缓冲空间的相关,箭头的汇聚点等

于其所有源的 大值。所以从系统输出角度看,非同步数据流机的数据输出时间等于以

该数据输出结束结点为根的展开树的 长路经的长度。

1 1 0

0

, { , ,..., , } ( , ) ,0max ( )k

l l k hh

l

c n j j j j path c n j n mkS c

=

∈ −=

=∑

∑ ,其中

1 1 01 1 0 1 1 2 1 0 0

0( , ) {{ , ,..., , } | , ,..., , , 0, }

l l

l

l l l l l l i km m m m kpath c n j j j j j j j j j j j c m m n

−− − − −

=

= ↔ ↔ ↔ ↔ ≥ =∑

Page 65: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第三章 具有性能保证的系统级流水线结构

45

a3 a4

b2 b3

c1 c2

a3 a4

b2 b3

c1 c2

a5

b4

c3

a5

b4

c3

a3 a4

b2 b3

c1 c2

a5

b4

c3

非同步数据流机

按完成同步

按实时性同步

TMB

图 3.7 同步方式示意图

Si,j

Ei,j

Si,j-1

Ei,j-1

Si-1,j

Ei-1,j

Si-2,j

Ei-2,j

Si-2,j-1

Ei-2,j-1

Si-3,j

Ei-3,j

Si,j-2

Ei,j-2

Si-1,j-1

Ei-1,j-1

Mi

Mi-1

Mi-2

Mi-3

Si,j-3

Ei,j-3

Si-1,j-2

Ei-1,j-2

图 3.8 非同步数据流机局部数据依赖的流水线展开树

从宏块数据依赖关系展开树的分析的角度看,按完成同步的流水线相当于各模块的

Page 66: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

46

依赖关系都相同,且都以所有模块为源,相当于一个全映射的树。按完成同步的展开树

相当于在非同步数据流机的基础上增加了某些依赖关系,所以原则上从数据流机性能好

于完成同步的方式。这种性能优势存在于 慢模块不断变化的情况,若 坏模块固定不

变时按完成同步流水和非同步数据流机完全等价。而且从保障系统性能的角度看,在

坏情况下按完成流水和非同步数据流机均仅能保证 , 0 ,,maxc n i ji j

S S n t≤ + × ( ,i jt 为模块 i 宏

块 j 的处理时间)。更重要的是非同步数据流机存在共享存储竞争问题,不能保证 ,i jt 的

大值。 由于各模块的处理时间小于实时性要求的宏块周期,按实时性同步的性能原则上也

不优于按完成同步的方式。但这两种同步化的方式都可以从根本上实现请求的均匀化和

宏块化,而且从满足实时性的角度来说,它们都能同样的保障系统的性能。由于外存储

器一般不由视频编解码器所独享,从对系统外其他访存模块的影响看,按实时性同步提

供了更多可预测性和访存均匀性。

3.3.3 同步流水的视频解码器系统结构

本节以解码器为例,利用提出的同步化的流水线结构,设计出一种能保障系统性能

的高性能系统结构。保证系统性能仅有两个基本假设,即各模块内部处理时间(不包括

访存)小于实时性宏块周期,和各模块总宏块访存时间小于实时性宏块周期。 第一个问题是计算访存分离,视频解码器中有两个主要访存模块,MC 的参考数据

获取和环内滤波之后的参考数据存储。这两个访存过程的访存请求信息和访存结果(取

回的数据)之间没有宏块级别的数据相关性。采用如图 3.9 所示的变换结构将访存之前

的请求准备和访存之后的数据处理分离到不同的流水级别中。图 3.9 中有一个请求缓冲

具有两个宏块深度,可以存储住两个宏块的所有请求数据,由 M11写入请求和外存控制

器读取的读出请求分别工作在两个相邻的宏块上。

M1

外存控制器

M11 M12

外存控制器

...

请求缓冲

图 3.9 计算访存分离变换

Page 67: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第三章 具有性能保证的系统级流水线结构

47

另一个问题路径平衡化,根据本章前面结论在两个模块间存在多条路径时,多条路

径间的数据缓冲深度应该平衡。首先是运动向量预测和插值之间有两条路径,一条是直

接从运动向量预测到插值,传递运动向量的分数精度值;另一条路径是从外存取回参考

像素块。由 3.9 结构可以看出,外存取数构成多一个流水线级别,所以从运动向量预测

直接到插值的数据缓冲的深度需要增加一。另外一个需要平衡的是从熵解码到经反变换

到帧内预测的路径,因为运动补偿的路径上具有四个流水级别。反量化反变换路径上需

要增加一个缓冲深度,但该深度加在该路径上的不同位置均可。由于相比起来帧内预测

的输入缓冲的宏块数据量 小,所以将缓冲深度加在帧内预测这一级。图 3.10 给出了

后的系统级流水线结构。

熵解码

反量

运动

向量

nn-1

nn-1

反变

n-1n-2

插值

n-2n-3

帧内预测

n-2

n-3n-4

n-4

外存储器控制器

主控制器

计时器

参考像

素请求

前置缓冲(参考像素 n-1,解码像素n-5)

前置缓冲(参考像素 n-2,解码像素n-6)

同步信令

n-1

参考像

素值

n-3

环路滤波n-4n-5

n-2n-3

外存储器 图 3.10 视频解码器的同步流水线结构

3.4 小结

本章着重于在系统级别提高性能的体系结构设计和优化,讨论集中在系统流水线,

特别是共享存储的系统级流水线。在通过流水进行并行化以获得高性能的同时,我们提

出系统结构设计的两大目标。第一目标是在尽量不给调度算法以苛刻限制的条件下,对

任意可变的模块宏块处理时间,系统的性能在 坏情况下得到保障,使得系统性能是可

控制和可设计的,这也是芯片设计鲁棒性的要求。第二目标是不浪费模块计算能力和外

存的带宽资源,即保证系统性能所需要的条件仅仅是各模块自身计算吞吐率达到实时性

要求和总外存带宽满足宏块数据访问总量要求,系统宏块输出延迟(吞吐率的倒数)等

于流水线各模块 慢模块计算时间和宏块总访存时间的较大值。

Page 68: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

48

本章总结了在不存在共享存储时流水线保证其性能所需要的路径平衡化问题,即流

水线系统中两流水级别间存在多条路径时,各条路径所经过的流水级别数必须一致,当

存在不一致时,可以通过增加缓冲深度的办法来配平各路径。共享存储给系统性能带来

了不确定性和不可预测性,通过对流水线运行状态的分析得到请求不均匀是引起系统性

能下降的主要原因。而且通过形式化分析我们得到了当满足请求均匀化的条件时,我们

的两大设计目标都能得到满足。 针对请求不均匀的情况,本章提出了一系列请求均匀化的方法。首先是调度器的优

先级分配的方法,该方法不改变流水线的数据流机工作方式,通过宏块编号或宏块切换

信号达到调度器按宏块响应请求的目的。然后彻底的流水线运行的同步化方法,各模块

的运行在每一个的宏块上同步,访存请求也被自然的同步化和宏块化。同步流水线的方

法较调度器动态优先级方法相比,因为对共享的调度器设计没有要求,因而该结构具有

更好的灵活性以适应一般的调度器。而且同步化,特别是按实时性同步化使得视频编解

码器的访存请求从外界看来是完全按宏块均匀的,使得编解码器系统整体是一个完全可

预测子系统,有利于其集成到更大的系统中。 后完整的提出了视频解码器的同步流水线结构,涉及到具体的计算访存分离和缓

冲深度匹配问题。通过应用所提的系统级别结构,实现了采用共享存储的系统流水线的

体系结构时既提供性能保障又完全释放性能的两大设计目标。通过采用本章的所提的体

系结构,系统实时性的要求被简化为各模块处理实时性和外存总带宽满足实时性的两大

局部性的实时性要求。本文在下面的章节中详细分述各模块角度如何达到系统实时性给

它们的局部要求。

Page 69: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

49

第四章 基于数据特性的外存储器映射优化

随着半导体工艺的进步,运算部件的速度迅速提高,而存储器带宽的提高速度却明

显低于运算部件[HP02],这种速度增长率之间的差距造成了我们现在的 VLSI 系统中,

存储器带宽成为系统性能的 大瓶颈之一。高效的存储器控制器设计成为 VLSI 视频编

解码系统中的一个关键问题。 视频编解码系统的帧间参考需要存储多个解码图像帧,而随着图像分辨率的增加,

参考图像一般选择存储于片外存储密度更高的存储器内。由于设计原因,外存带宽是视

频编解码系统中的稀缺资源,如何有效的利用有限的外存带宽是视频编解码处理系统的

一大设计瓶颈。第三章通过系统控制解决了共享存储机制对系统性能的影响问题,本章

则主要针对存储子系统局部优化这一关键问题,通过存储映射的方法降低对所需存储带

宽的要求。首先我们从外存 SDRAM 的特性出发,对影响 SDRAM 访问效率的各种因素

进行分析,并总结了已有的存储子系统优化技术。然后我们根据视频编解码算法中的访

存数据特性,提出了冗余存储机制和亮色度联合映射机制两种存储器组织和地质映射方

法。 后对优化结果进行分析,利用所提的方法可以将所需的峰值带宽和平均带宽分别

降低 47%和 25%。

4.1 SDRAM 存储器结构和访问特性

地址寄存

行地址

体地址

列地址

行地址寄存和

解码

行地址寄存和

解码

行地址寄存和

解码

行地址寄存和

解码

列地址寄存

和解码列地址寄存

和解码列地址寄存

和解码列地址寄存

和解码

存储体 3

感应放大器

存储体 2

感应放大器

存储体 1

感应放大器

存储体 0

(存储单元矩阵)

感应放大器

体控制逻辑

数据

缓冲

选通

命令解析

和控制

图 4.1 SDRAM 存储器结构示意图

Page 70: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

50

我们首先对存储器物理器件的结构和特性进行分析。同步态随机访问存储器

(SDRAM)因其高性能和高存储集成度成为视频编解码系统乃至整个集成电路系统外

存储器的主流配置。为了充分利用 SDRAM 的性能,我们首先对 SDRAM 存储器的结构

和工作原理作简要分析。图 4.1 显示了一个典型 SDRAM 存储器的结构。 SDRAM 存储器由核心存储矩阵和 I/O 控制两部分组成。核心存储矩阵为二维排列

的存储单元构成,典型的存储单元由一个 CMOS 管和一个电容构成,用电容上的电量(或

电压)来记录一个比特的信息。由于晶体管存在漏电,电容上的电压会随时间降低直到

所记录的信息丢失,所以需要在一定的时间间隔内对电容上的电压进行刷新(refresh),恢复电压的办法是将该信息比特读出并重新写入该单元。按这种方式存储信息并需要定

期刷新的 RAM 存储器矩阵即成为动态随机访问存储器(DRAM)。DRAM 中与外界的

数据交换使用感应放大器完成。因为第一对存储器单元的读写需要经过延时较大行选择

线,直接读写影响存储器性能。第二由于功耗的考虑存储单元核心区的工作电压一般较

低,不同于外部的标准电压,必须进行电压转换。第三发生读操作时,单管 DRAM 单

元记录的数据会因为读操作而改变,必须对所读出的数据进行寄存,并随后写回 DRAM的该数据单元。

早期的 DRAM 的输入输出采用异步接口,为了进一步提高 DRAM 的性能,DRAM中引入了时钟信号,这样 DRAM 与系统具有相同的工作频率,同步的操作使得 SDRAM访存时能充分的利用流水操作进行加速。经过初期的一系列演变,SDRAM 的典型结构

确定成如图 4.1 所示。存储单元矩阵一般分为多个存储体,以使体与体之间存在并行操

作的可能性,图示的典型结构有四个存储体。按照感应放大器(sensor amplifier)的大小,

一个存储体又分为多个行(row),每一个行可以刚好存放进感应放大器,可以在感应放

大器中统一操作。每一个存储行(row)中存放着顺序物理地址的多个存储字,行中的

各存储字用列号(column)进行寻址,存储体中的行也称作页。这样 SDRAM 就形成了

体-行-列的三维寻址方式。另外加上一组命令来控制各个存储体的运行状态。这种由存

储器结构决定的三维寻址方式决定了对其的访问特点。 每一次标准完整的 SDRAM 读写过程具体具有以下三个步骤:

行打开(Row active):通过指定行地址,激活所访问的存储体的某一行,以便

可以对其进行读写访问。首先通过行地址解码在单元矩阵中选中需要访问的行,

然后将整行数据读出并进行感应放大存储在感应放大器中的寄存器中,后续的

数据访问则完全在感应放大器中完成。行打开需要对存储器发送行地址选通

(RAS:Row Address Strobe)命令,该命令包含要访问的体地址和行地址。RAS命令发出以后,需要经过一个行激活延迟(RAS latency)后该行才被真正激活

(打开)。 数据访问(Data access):数据访问只能在各存储体中打开的行内来进行。数据

访问需要向存储器发送列地址选通命令(CAS:Column Address Strobe),命令

发送后进行列地址解析产生选通信号,感应放大器寄存器中的内容根据选通信

Page 71: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第四章 基于数据特征的外存储器映射优化

51

号与数据缓冲内的数据进行读或写的数据交换。数据访问按批(burst)进行,

每一个 CAS 命令对应着一个存储器 burst。CAS 命令发出后,在经过了一个列

选择延迟(RAS latency)后,一个 burst 的数据按顺序一拍一拍进行数据交换。 行关闭(Row de-active):行关闭将感应放大器中的内容写回存储单元矩阵。由

于单管 DRAM 读取时破坏原有信息,读写操作都需要行关闭。由于存储单元的

写入是预充电后按信息放电的方式进行,行关闭也称作预充电(PRE:

Precharge)。PRE 命令发出后,在经过了一个预充电延迟(Precharge latency)后,

感应放大器中内容被写回存储矩阵,行关闭完成。 图 4.2 显示了一次完整的 SDRAM 读写过程的时序图。为保障 SDRAM 正常工作,

要求命令发送具有一定的时序关系:

RAS CAS

D0 D1 D2 D3

PRE

行激活=3 列选择=3 预充电=3

Burst访问时延=10

...

图 4.2 SDRAM 的访问时序

行激活延迟(RAS latency):RAS 命令与该行的读写 CAS 命令之间至少具有的

延迟周期数。决定于行打开控制逻辑和工作频率,控制逻辑时延越大和工作频

率越高,行激活延迟越大。本文讨论中选定典型值为 3。 列选择延迟(CAS latency):CAS 命令到数据读写发生的延迟周期数。决定于

列选通控制和数据访问的逻辑和工作频率,逻辑时延越大和工作频率越高,列

选择延迟越大。本文讨论中选定典型值为 3。 预充电延迟(Precharge latency):PRE 命令与下一个 RAS 命令之间至少的延迟

周期数。决定于写回控制逻辑和工作频率,控制逻辑时延越大和工作频率越高,

预充电延迟越大。本文讨论中选定典型值为 3。 CAS-Precharge latency:CAS 命令和 PRE 命令之间至少具有的延迟周期数。等

于 burst 长度,本文讨论选定典型值为 4。 关注 SDRAM 的访问性能,从时序图我们可以看出,一个完整 burst 访问的 10 拍的

访问时间内,仅有 4 拍是实际数据访问,另外 6 拍都是准备数据访问的开销(overhead)。决定访问性能的主要是存储体间的命令/地址总线和数据总线的共享性,以及各存储体内

Page 72: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

52

存在的上述的四种延迟要求。由于四项延迟要求仅存在于存储体内部,某一存储器的命

令和数据总线因延迟要求而产生空隙时,则可以启动另外存储体的访问。只要各体满足

各自的四项延迟要求,且两总线不冲突,各体的访问准备可以并行进行,延迟相互隐藏。

如图 4.3 的示例,白框和阴影框分别表示两体的命令和数据,两个 burst 访问仅为 14 拍。

RAS0 CAS0

D0 D1 D2 D3

列选择=3

Burst访问时延=14

RAS1 ...

预充电=3

CAS1

D4 D5 D6 D7

行激活=3 列选择=3

PRE0 PRE1

图 4.3 不同存储体之间的延迟隐藏

另一方面,一个存储体内的读写操作时序也不一定要严格按照如图 4.2 所示,因为

如果连续 burst 需要访问同一行时,则不需要发生连续的行开关操作,数据访问可以连续

进行。经过上述讨论可以得出,唯一不能利用存储体间并行,而导致数据访问在数据总

线上存在空隙的情况,也即 Overhead 产生的情况,仅仅出现在连续访问同一个体的不同

行的时候。

4.2 视频数据特征分析和带宽优化技术

在高性能视频编解码系统,特别是高清及其以上分辨率时,外存储器带宽是系统设

计时的稀缺资源。一方面由于分辨率的增加,编解码所需的帧间参考图像帧必须存储在

片外存储器,而且片外存储器常多作为音频、视频等不同子系统间的大量数据传递的缓

冲区,还用作片上主应用处理器的主存储器,片外存储器成为具有不同访问特性和要求

的多个模块和子系统所共享的。另一方面,高性能系统中片外存储器多为 32~64 位并行

访问,其的端口速率由于片内和片外走线延迟的平衡度而受到限制,外存储器带宽存在

物理设计的瓶颈。多个访存模块的数据量和访问延迟的要求与外存带宽限制之间的矛盾,

要求存储子系统的设计中必须充分的利用有限的带宽资源,提高带宽的利用率。

4.2.1 视频编解码器的访存数据特征分析

对于访存效率进行优化需要对相互作用的源和目标两个对象进行详细分析。第 4.1节对存储器结构和访问时序特征进行了分析,本节则着重于分析视频编解码器的数据的

访问特性。第二章对各模块的外存访问量进行了分析,运动估计和运动补偿占据了绝大

Page 73: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第四章 基于数据特征的外存储器映射优化

53

部分的带宽消耗。本节以带宽效率优化为目标再次考量视频访存模块具体的数据特征。

集中于访存量较大的环内滤波(DF:Deblocking Filter),运动补偿(MC:Motion Compensation)和运动估计(ME:Motion Estimation),另外由于解码器一般配有显示控

制器(Display),在此一并考虑。

MB MBMB

16

16

DFDISP MC

MB

ME 图 4.4 模块访存数据特征

DISP 一般按照光栅顺序刷新显示设备,所以其数据访问也是按光栅方式进行,DISP

取数据不按红块为单位进行,一个 burst 可能在水平方向越过多个红块,burst 之间逻辑

地址按顺序递增。DF 按照宏快为单位进行滤波,除顶底红块行外,每一个宏块时间内

存入一个宏块大小的像素。完成当前宏块的滤波需要周围像素的信息,由于数据缓冲的

存在,DF 宏块时间存储的数据块水平方向可以按宏块对齐,而垂直方向上需要的缓冲

量太大,所以一般来说不对齐访问。所以 DF 的访问特征为固定的跨越垂直方向两个宏

块。运动估计的访存特性随解码的运动矢量(MV)变化而差异较大。分块模式的不同

决定了参考图像块的个数,MV 整数值的不同使得参考图像块可能落在某一个宏块内部,

或者水平垂直方向上跨越两个宏块, 多可能两方向上都跨越包含四个宏块的像素。而

MV 的分数部分则决定了参考块扩展的大小,如图 4.5 所示,在两个方向都为分像素时,

一个参考块需要在左上方向上个扩展两个像素,而在右下方向上个扩展三个像素。运动

估计宏块所需的参考像素块大小决定于 ME 算法的搜索范围,可能在水平和垂直方向上

都跨越多个宏块。如果考虑到按宏块光栅顺序进行 ME 时,相邻宏块参考窗的大部分数

据具有可复用性的情况下,访存数据可以大大减少。 随参考块分块模式的不同,所需要的宏快带宽也差异较大,表 4.1 列出了不同模式

下宏块所需访存cycle数(可以隐藏在其他存储体中的overhead不计)。以H.264为例(AVS和 VC-1 类似),4×4 块需要扩展到 9×9,8×8 块需要扩展到 13×13。

表 4.1 数据基于 128-bit SDRAM 进行计算,分像素位置均为(1/2,1/2)。各分块均

跨越四个存储体,不存在于同体中的不同行,切换四个存储体的总开销为 12 拍,且色度

像素采用交叉存储。如一个 8×8 块扩展到 13×13,所需的数据 cycle 数为

(int(13/16)+1)×13=26,对应的 4×4 色度块需要(int(5/16)+1)×5=10。当双向预测时需要 8个 8×8 亮度块和 8 个 4×4 色度块,总访存数据 cycle 数为 26×8+10×8=208+80=288。而开

销的计算则基于块进行,由于不同大小分块均跨越行边界,一个块具有 12 拍的开销,8×8

Page 74: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

54

模式总开销为 12×8+12×8=192。其他块大小的计算依此类推。由此看出,MC 对带宽的

冲击主要发生在分块细的情况。

a2a3

a1a0

a5a4

i2i3

i1i0

i5i4

a6

a8 b8a7

c8 d8 e8 f8 g8 h8

i6

i8i7

4x4 luminance block

4x4 chrominance block

2x2 chrominance block

b2b3

b1b0

b5b4

c2c3

c1c0

c5c4

d2d3

d1d0

d5d4

e2e3

e1e0

e5e4

f2f3

f1f0

f5f4

g2g3

g1g0

g4

h2h3

h1h0

h5h4

b6b7

c6c7

d6d7

e6e7

f6f7

g6g7

h6h7

g5

e2e3

e1e0

a4 b4 c4 d4 e4

a0a1

a3a2

b0b1

b3b2

c0c1

c3c2

d0d1

d3d2

a0a1

b0b1 c1

c0

a2 b2 c2

图 4.5 运动估计的参考块扩展

表 4.1 不同分块模式下 MC 宏块访存 cycle 数

模式 数据 开销 总计 模式 数据 开销 总计 16×16 162 48 210 8 个 8×4 384 384 768

2 个 16×8 196 96 292 8 个 4×8 576 384 960

2 个 8×16 240 96 336 16 个 4×4 768 768 1536

4 个 8×8 288 192 480

总结起来视频编解码系统中访存数据具有如下特征:

除 DISP 外,绝大部分数据访问按块进行,可利用块映射优化访存效率。 除 ME 和 DISP 外,水平垂直 多均仅跨越一个宏块。 DISP 按规则的光栅顺序进行,在块映射时需要兼顾光栅顺序访问。

4.2.2 存储器带宽优化技术

对于提高存储器效率, 直接的方法有两个。第一个是提高字宽,提高字宽可以提

高存储器接口上的理论带宽,但对于非连续寻址的请求,访存得到的单位字长中,有效

数据量相对变少,实际上对系统实际带宽的贡献也许不大。第二个是提高系统工作频率,

但是它所带来的问题是存储器接口的设计成本和外存储器芯片的成本随之显著提高,而

且同时也增加了存储器接口上的功耗。所以如何在固定字长和固定频率下,提高存储器

带宽的实际利用率,成为了国内外研究关注的重点。

Page 75: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第四章 基于数据特征的外存储器映射优化

55

传统的计算机系统结构设计对存储器系统的设计方面做出了深入的研究[HP02],比

如多级存储体系结构,cache 机制等。但对于像视频编解码这样的数字信号处理系统中,

数据的局部性和流动性极强,cache 机制并不能很好的发挥作用。针对视频编解码这一

特定应用中的存储子系统性能问题,学术界进行了广泛的研究,分成三个主要的阶段。 第一阶段上世纪九十年代初,视频编解码系统中的总线瓶颈受到学者们的重视,其

中具有代表性的工作是 Nam Ling 针对 MPEG-2 解码器中的存储总线调度问题进行了研

究[LL99a][LL99b]。早期的研究集中在总线模型的建立,竞争调度策略和缓冲大小方面。

Nam 根据 MPEG-2 中各功能模块的具体算法,提取出各功能模块各功能模块的访问共享

总线的特性,并在其基础上建立起一个软件的仿真模型。在 Nam 的模型中,他对优先级

和缓冲区大小两个问题进行了大量的实验,得到了在统计意义上优化的调度策略和各模

块的缓冲区大小。在 小剩余度优先,固定优先级和先进先出三种调度策略中,以 小

剩余度优先为优。但是 Nam 的分析存在两个问题,首先其 优的调度策略和缓冲区大小

分配方式是针对特定的系统流水线结构,这种纯统计意义上的结果不一定能直接应用到

其他的系统流水线结构上。第二,基于仿真意义上的 优化结果,不能确保系统在 坏

情况下的实时性,而 Nam 的结论中缺乏量化的保证。 第二阶段随着九十年代中后期 DDR SDRAM 的广泛采用,SDRAM 的结构特点被充

分的研究和利用于视频编解码系统。根据本章 4.1 节的分析,SDRAM 三维结构决定了

访问具有体内时序限制,以及命令/地址总线和数据总线的竞争。基于 SDRAM 结构的访

存优化的目标是结合视频编解码访存数据特点,尽量减少由于这些限制所带来的访存开

销,以提高系统带宽的使用效率。基于 SDRAM 结构的带宽优化以其简单而高效成为直

到目前为止的主流方法之一。按具体策略进行分类,基于 SDRAM 结构的带宽优化有如

下两个方向。 存储地址映射:根据视频编解码访存的数据特征来分配图像存放的物理地址,

目标是尽量避免出现连续请求访问同一存储体中的不同行的情况。 命令调度:通过对相邻请求的命令进行排序和调度,来减少访存的换页开销。

根据 4.2.1 节的分析,既然视频数据请求趋于按块或宏块的方式进行,所以将相同块

和宏块的像素映射到相同的存储行中,能有效的减少由于换页引起的开销。[TTH99]首先正式地提出了这种基于块的映射方法,经过[TH01][JW01][KP01]的进一步研究,按块

映射的方法趋于成熟并广泛采用。总结起来块映射的原则有如下两条: 同一个宏块映射到同一存储行,水平或垂直相邻的宏块也尽量映射到同一存储

页。 水平或垂直相邻的宏块不能映射到同一存储页时,尽量映射到不同的存储体。

上述两项原则下,可以保证在进行任何一个位置的参考块访问时,只要参考块长宽

小于宏块范围,都不会出现在同一个体中换页的情况。如图 4.6 所示,参考帧像素被按

水平和垂直两个方向分派到不同存储体的不同页,图示外存具有四个存储体,且每一个

页可存储八个宏块。对齐的 4×2 宏块组(一共 8 个宏块)被映射到一个行中,水平和垂

Page 76: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

56

直相邻的宏块组被分配给不同存储体。从图中可以不难得出,任何同体不同行的像素之

间其对应的图像二维距离 接近的有如下三种情况。而我们的参考图像块的大小范围不

会达到这样的距离。同时考虑到了 DISP 的光栅访问方式,水平方向的距离被设计得明

显大于垂直方向。 水平方向 4 倍行宽度,垂直方向 0 水平方向 2 倍行宽度,垂直方向一倍行高度 水平方向 0,垂直方向两倍行高度

体1行0

体2行0 体3行0

体2行1 体3行1

体0行1 体1行1

体0行0

体0行16 体1行16 体2行17 体3行17

体2行16 体3行16 体0行17 体1行17

图 4.6 参考帧图像的体行分配图

另一方面,存储器的一次访问可能包含着多个命令,比如关闭存储页,打开存储页,

行命令等等,这些命令由存储控制组织发送给外存储,在命令级别进行调度,同样可能

带来系统带宽利用率的提高。斯坦福大学的 Scott 等人首先提出了存储器访问调度的思

想。[RDKM00]中介绍了两种存储器调度的方法,保守重排序和充分重排序。在保守重

排序中,请求的响应顺序保持是请求的到达顺序,但相邻两个请求的命令之间进行重排

序,比如在得知下个请求在不同存储体中需要换页,则提早放出下一个存储体的换页命

令。充分重排序更进一步,通过调整处理请求的顺序,来减少换页的情况出现。 [PYP03]在 Scott 的基础上,针对视频解码应用提出了自适应的模式决策方法,来判

断在结束当前请求时,是否需要提前关闭当前页,或者保留当前页打开。Seong 采用一

种类似处理器设计中的转移猜测的机制,通过一个两比特的历史状态信息来判断。状态

信息可以按体为单位保存和按页为单位保存,在实际视频序列上的测试结果相差不大,

这表明按体为单位的历史信息足够有效的反映换页的特性情况,该方法可以提高带宽利

用率近 20%。 第三阶段随着上世纪末本世纪初以来,VLSI 系统集成度的显著提高和 SOC 技术的

Page 77: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第四章 基于数据特征的外存储器映射优化

57

飞速发展,主控嵌入式 CPU 及各种 I/O 外设的引入使得系统对存储器性能的要求发生了

重要变化。视频参考帧的存取对于存储器带宽(bandwidth)的需求非常严格,而对于延迟

(latency)的要求相对宽松。而主控(host)CPU 而言,带宽占用不大,而延迟要求相对严格。

对于这些不同的请求类型,[LLJ05]提出了一种基于 QoS 分层存储器控制器模型。整个

存储器控制器分为功能明确的三个子层,子层 0 为储存器接口层,提供了一个统一的,

可配置的,可编程的存储器访问接口。子层 1 为调度层,根据服务质量和延迟要求分配

优先级,满足不同请求的要求。子层 2 提供高效的地址映射和生成机制, 以尽量减小存

储器访问之间的开销。实验结果表明 Kun 的存储器控制器能够有效的减小延迟敏感数据

的访问延迟(37%~65%), 同时能精确的将带宽分给带宽消耗型的数据访问。

4.3 基于数据特征的映射优化

前人的研究成果使得存储器访问效率有了大幅提升,但对于高清及其以上级别的视

频编解码系统来说,存储器带宽仍然是一个设计瓶颈和成本优化的瓶颈。基于此我们在

前人块映射的研究成果的基础上,进一步结合特别是视频解码参考图像数据的特点,在

访存数据量和开销两个方面进行优化,提出了冗余存储机制和亮色度联合映射两项技术,

使得带宽需求相比于已有其他方法明显降低。

4.3.1 冗余存储机制

一般一组水平连续的且按宏块对齐的像素行组成一个存储字。对于 128-bit 的外存总

线则一个存储字包含 16 个 8-bit 的像素,而对于 64-bit 的外存总线则一个存储字包含 8个对齐的像素。视频编解码器按块和宏块进行访问,但其中带宽 大消耗者 MC 的请求

像素位置和块大小均不确定。所需要的像素块可能需要跨越宏快边界,也会跨越存储字

的边界。当请求的数据块跨越水平存储字边界时,需要将边界左右两边的存储字分别读

出后,拼接在一起形成所需的数据块,如图 4.7 所示。

存储字 存储字

访存

截取

拼接

图 4.7 跨字节像素行读取

Page 78: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

58

由图 4.7 示例可知虽然所需像素行宽度不足一个存储字长,但仍需要读取两个存储

字。该例中暂不考虑存储器的访问开销,仅由于无效数据造成的带宽浪费高达

(16-5)/16=69%,即有效带宽利用率仅不到 31%。与表 4.1 类似,表 4.2 列出不同分块模

式下,跨存储字时的带宽利用率。水平方向分块越细带宽利用率越低,再分块细到 4×4时数据利用率仅为 28%。原理上小块跨存储字的概率会降低,考虑到假设块位置按均匀

分布情况时,9 像素行跨越 128-bit 存储字的概率为 50%,4×4 访存字节可以减少到 8640,利用率仍仅有 39%。

表 4.2 不同分块模式下 MC 带宽利用率(不计开销)

模式 访存字节 有效字节 利用率 模式 访存字节 有效字节 利用率

16×16 2592 1460 56% 8 个 8×4 6144 2592 42%

2 个 16×8 3136 1704 54% 8 个 4×8 9216 2592 28%

2 个 8×16 3840 1704 44% 16 个 4×4 12288 3392 28%

4 个 8×8 4608 2000 43%

上述分析和表 4.2 指出,数据利用率低是视频解码器外存带宽要求高的一个主要原

因。而引起数据利用率低的原因在于数据块的不对齐性和位置的不确定性。MC 数据块

的大小由编码算法和码流决定了,而外存字长的选择也没有太多余地,它们之间的大小

差异是无法避免的。但是存储字跨越主要是与像素地址映射直接相关,而地址映射是可

设计的。我们的思路是从像素映射的角度来考虑减少和避免存储字跨越的情况,从而减

少无效的访存数据量。 首先为了使一个存储字内能包含 多可能的像素行,存储字内必须包含水平连续的

像素。这样,存储字包含的非垮字请求像素行的个数=存储字字节数 W-请求像素行宽度

N(像素数)+1。如图 4.8(a)中上行所示,存储字长为 128-bit(W=16),所需的请求

像素行长度为 N=9,请求行的起始位置(左端像素位置)落在阴影部分(位置 0~7)时,

请求行的结束位置(右端像素位置)均能落在第一个存储字的内部。即当请求行起始位

置为 x 时,结束位置为 x+N-1,满足请求行完全落在该存储字内部的条件为:x≥0 和

x+N-1<W,解不等式得到x [0,W-N]∈ 。

其次由于存储字内像素连续,映射方案仅取决于每个存储字的起始位置(左端像素

位置)。一个存储字起始位置也决定了其内包含的不垮字请求像素行的可能起始位置,即

从该存储字左端像素位置起的 W-N+1 个像素。令存储字覆盖长度 L=W-N+1,每一个从

x 开始的 W 长的存储字覆盖[x,x+L-1]一共 L 个连续的长 N 请求的不垮字位置。所以只要

我们将存储字的起始位置设置为 0,L,2L,……直到 image_width/L⎡ ⎤⎢ ⎥,图像中所有的位

置均能被某一个存储字的不垮字请求位置所覆盖。由于存储字的不垮字请求位置少于其

Page 79: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第四章 基于数据特征的外存储器映射优化

59

字宽,即 L<W,所以相比于传统的映射方式,覆盖所有图像位置需要更多的存储字空间,

我们这种基于不垮字请求位置覆盖的方法称为冗余映射。

0 1 2 3 4 5 6 7 8 9 101112131415 0 1 2 3 4 5 6 7 8 9 1011Y0

Y8 8 9 101112131415 0 1 2 3 4 5 6 7 ...

x3

0

1

b0 r0 b1 r1 b2 r2 b3 r3 b4 r4 b5 r5 b6 r6 b7 r7 b0 r0 b1 r1 b2 r2 b3 r3C0

r3C8 ...

x2

0

1

b4 r4 b5 r5 b6 r6 b7 r7 b0 r0 b1 r1 b2 r2 b3

(a)

(b)

图 4.8 冗余存储存储字示意图 (a)亮度像素 (b)色度像素

冗余映射意味着同一个像素点会被映射到多个存储字的不同位置上,这种冗余的倍

数 F 决定于存储字宽 W 和请求长度 N,等于 W/L 即 W/(W-N+1)。为了便于计算存储字

地址,L 也可选择小于等于 W-N+1 的 2 幂次方值。由于 W 也是 2 幂次方值,这也使覆

盖位置与存储字能对齐。这时的存储字按其起始地址分为 W/L 组,第 i 组起始位置为

i×L+n×W,n=0,1,2,……,i=0 的组称作主要存储字,其他组称作第 i 冗余存储字。 如图 4.8(a)所示,W=16,N=9(针对 4×4 参考块),L=W-N+1=8,F=W/L=2。映

射方案包括一个主要存储字组和一个冗余组,冗余组相当于将主要组相左平移 L=8 个像

素而获得。当读取一个 9×9 像素块时,9 像素行的起始位置 x 的第三低位(从零记数)被用

来决定是读取主要组还是冗余组,x 的低三位用来进行存储字读出后的裁减,而其他高

位可以直接作为组内的存储字地址。如图 4.8(b)所示,色度块的 Cr 和 Cb 值总是成对

访问,所以我们采用了色度交叉存储的方式,即相同位置点的 Cr 和 Cb 值连续的存在同

一个存储字中,可能的请求块起始位置为 Cb 所在的阴影点。W=16,N=6(针对 2×2 参

考块),选取 L=8<W-N+1=11,冗余倍数也为 2。 小结一下,冗余映射设计相关的主要参数及其关系:

存储字长(字节):W 请求块宽度(像素):N 请求块水平开始地址:x 存储字覆盖长度(像素):L≤W-N+1 (非全覆盖时,可以 L<W-N+1)

Page 80: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

60

分组个数:F=W/L,即冗余存储倍数。 分组间的地址偏移:L 请求块分组地址的确定:(x%W)/L 请求块存储字地址:x/W

4.3.2 亮色度联合映射机制

利用 4.3.1 节的冗余映射机制,能有效的减少存储字跨越的情况,从而提高访问数据

中有效数据所占的比例,减小无效数据消耗的带宽。但表 4.1 表明,除数据访问外,访

存的控制方面的开销(overhead)也占了相当大部分的带宽。4.1 节对外存储器结构和运

行机制的分析得出,控制开销主要来源于连续请求同体换页的情况。采用 4.2 节中前人

广泛采用的块映射方式后,换页的开销可以基于块来进行,在块访问的开始时集中进行

四个存储体的预充电,开启和 CAS 延迟等待三个操作,四个存储体的换页延迟相互隐藏,

块访问的过程中不存在换页操作,一个块只需要消耗一次换页开销。另一方面,块与块

之间的数据由于 MV 的不确定性而不存在固定关系,而且还因为共享存储器其他访存请

求的插入,导致块与块之间的换页开销不能避免。当分块变细时,块数量急剧增大,也

导致总的控制开销成倍上升。 在 坏情况下,分块模式为 16 个 4×4 块,双向预测时有 32 个参考块,在考虑亮度

色度总共有 64 个块。由于亮度和色度的 MV 具有一致性,64 个参考块的位置由 32 个

MV 来决定。在传统的按块映射中没有考虑这种一致性,而将 64 个参考块按照相互独立

的块进行映射,它们之间的映射关系不能保证连续访问时不发生同体换页。如果能利用

亮度色度参考块之间的关系,通过恰当的映射保证连续访问相同 MV 的亮度和色度时,

不会发生同体换页,则能大幅度的降低换页冲突的可能性。我们把基于这种考虑的映射

设计成为亮色度联合映射。 考虑亮色度联合映射首先得解决参考点偏差问题:亮度色度块的 MV 虽然满足绝对

的 2:1 的关系(色度格式为 4:2:0),但在分像素运动补偿时亮度色度插值方式不同,它

们所需要的整像素块的位置并不满足 2:1 的关系,因为参考块左上角位置与 MV 所指位

置存在偏差。我们首先定义几个概念: 像素相容:如果两个参考像素映射到同一个页或不同的体,则称这两个像素是

相容的。 相容块:一个块中任意两个像素均相容,则称这个块为相容块。上述基于宏块

的映射方式保证了所有参考块均为相容块。 两块相容:如果两个相容块中的任意各选出一个像素都是相容的,则称这两个

块是相容的。两块相容实际上任意两像素均相容。 对应变换 T:这是一种从亮度块到色度块的变换,任何一个以(a,b)和(c,d)为对角

的亮度块,经过变换 T 后,成为一个以(a/2,b/2)和(c/2,d/2)为对角的色度块。 假设 MV 为(x,y),块大小为 M×N(M,N≤16),则亮度块的整像素参考块为以(x-2,y-2)

Page 81: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第四章 基于数据特征的外存储器映射优化

61

和(x+M+2,y+M+2)为对角的矩形 A,而色度块的整像素参考块为以(x/2-1,y/2-1)和(x/2+M/2,y+M/2)为对角的矩形 B。我们可以设计出一种对任意 M×N(M,N≤16)的亮度

参考块 X,其对应变换所得的色度参考块 XT均与 X 相容的映射方式。这样亮度参考块

A,经过对应变换 T 后,成为以(x/2-1,y/2-1)和(x/2+M/2+1,y/2+M/2+1)为对角的色度矩形

AT,AT与 A 相容。容易看出在色度域上,矩形 AT能将矩形 B 完全包含,于是 B 也就

一定与 A 相容。 接下来的问题是设计出这样一种使任意参考块在对应变换下具有相容关系的亮色度

联合映射方法。在基于宏块映射的基础上,亮度和其对应的色度参考块分别 多可能跨

越 4 个页,如果按完全的分体交叉存储则需要多达 8 个存储体,而一般 SDRAM 存储器

多为四体的。对于这一问题有两种可能的解决办法。 第一是同页映射,将对应的亮色度像素存储在同一页中,这样扩越页边界时亮色度

块一共 多跨越 4 个页,满足存储器要求。但由于编码标准大多基于 4:2:0 色度格式,

亮度色度像素总数比为 2:1,需要容量相当于纯亮度的 3/2,3 不是 2 的幂次方,在宏块

地址对齐的要求下,同页映射势必造成存储空间的浪费。 第二种解决方法是与 4.3.1 节的冗余映射结合使用。由于冗余映射的采用,水平方向

跨越存储字的情况被消除,这样亮度块水平方向跨越体进行访问的情况也就自然的被消

除了。亮度块 多仅在垂直方向上跨越两个体,亮色度联合映射时将余下的两个存储体

分配给对应的色度块,即可以保证该亮度色度块是两块相容的。 我们将冗余映射和亮色度联合映射结合起来,形成如图 4.9 所示的映射方案。我们

假设存储页大小为 1024 字节(包含四个亮度宏块)。亮度和色度像素均采用水平方向的

两倍冗余映射(W=16,L=8,Nmax=9)。亮度像素每两个水平相邻的宏块被映射到一个存储

页中,每一个亮度页中包含主要宏块和冗余宏块一共四个宏块的像素。亮度页的存储体

分配与图 4.6 相似,水平方向按 0,1,2,3,…进行循环分配,垂直方向上相邻两宏块行之间

错开两个体编号。色度采用 CbCr 交叉存储,如图 4.9 中色度存储字组织所示。色度像素

每两个水平相邻的宏块被映射到同一个存储页中,由于色度所占空间为亮度的一半,一

个色度页可以存放四个色度宏块。色度像素的体分配由其对应的亮度宏块的体号来决定,

对应的亮色度宏块的体编号之和等于 3。然后水平方向上相邻的两个体编号相同的双宏

块组组成一个色度存储页。通过这种映射方式,任何水平宽度不大于 9 的参考块均被无

垮字覆盖,且任何亮度参考块与其对应色度块之间具有相容性。 上述所提的映射方法中的地址均基于 2 的幂次方,因而地址计算复杂度极低。(x,y)

为亮色度块左上点相对于亮色度图像的左上点的像素坐标。SDRAM 的三维逻辑地址完

全由(x,y)决定。方括号[]是二进制截位操作符,x[n]表示 x 的第 n 位(低位从零开始),

x[n:m]表示 x 的第 n 位到第 m 位一共 n-m+1 位(低位从零开始);大括号{}为二进制拼

位符号,{a,b,c}表示将 a,b,c 按从高位到低位的顺序按它们各自的位宽拼接成新的二进制

数;⊕是异或操作符;!是去反操作符;1’b0 是一个比特的 0 值,用于拼接。从逻辑上

看,地址映射仅需要添加一个异或门和两个反向器。

Page 82: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

62

Y0 Y8 Y0 Y816

16

Y0Y1Y2Y3 … Y15Y8Y9 …Y15Y0

*Y1*…Y7

*

B0 B0

B2 B2 B3 B3 B0 B0

……

B3

……

……

B3 B2

C016

8C88

C0

C8C0

C8C0

C8

B1 B0

Cb0Cr0Cb1Cr1Cb2...Cb7Cr7Cb4Cr4...Cb7Cr7Cb0

*Cr0*...Cb3

*Cr3*

B1 B1 B2 B2 B3 B3 B0

B1 B1

B0 B0 B1 B1 B2 B2 B3 B3 B0

B2

B2 B1 B0 B3B1 B1 B0 B3 B2B0 B3 B2 B1B3 B3 B2 B1 B0B2 B1 B0

B3

…… B3

图 4.9 冗余映射与亮色度联合映射的结合映射方案

对于亮度块:

{ [6] [4], [5]}{y[10:4],x[10:7]}

{ [4,3], [3 : 0]}{1' 0, [2 : 0]}

BankAddr x y xRowAddrColumnAddr x yByteAddr b x

= ⊕=

==

对于色度块:

{!( [5] [3]),! [4]}{y[9:3],x[9:7]}

{ [6], [2], [2 : 0]}{1' 0, [1: 0],1' 0}

BankAddr x y xRowAddrColumnAddr x x yByteAddr b x b

= ⊕=

==

4.4 实验结果和分析

表 4.3 给出了在 坏情况下,所提方案对所需存储器带宽的节省。冗余映射将 MC的请求数据量(CAS)降低一半,而亮色度联合映射将块间的换页开销(Overhead)再

降低一半,考虑到冗余映射时环内滤波(DBK)需要多写出冗余存储字需要的 24 个周

期,所提方案 终可以将 坏情况的带宽消耗降低 47%。

Page 83: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第四章 基于数据特征的外存储器映射优化

63

表 4.3 坏情况带宽节省分析

方案 MC CAS MC OH DBK 频率 MHz 节省带宽

传统方案 768 768 48 377 0%

冗余映射 384 768 72 304 19%

冗余映射+联合映射 384 384 72 200 47%

然后我们就实际的自然码流进行测试,码流选取从 qcif 到 1080i,有运动剧烈的 bus,

也有较平缓的 foreman,也有较复杂的运动如 fireworks。测试的结果比较一致,平均能

节省大约 25%的带宽消耗。

Average Bandwidth Requirement Per MB

0

50

100

150

200

250

300

350

400

450

bus_qcif foreman_qcif zy_720x576 crew_720p fireworks_1080i

Cycles

orginal

scheme(3)

proposed

图 4.10 自然码流的测试结果

另一方面,冗余映射需要占用多倍的外存储器空间。对于所提的 F=2 两倍冗余方案,

一个 1080i 的参考帧所占用的总外存容量为 1920×1088×1.5×2=6.3Mbytes。即使在支持两

个 B 帧的重排序情况下,一共四个参考帧所需总容量为 25Mbytes。相比于存储带宽降低

47%,对应的访存 I/O 功耗也降低大约 47%来说,多余的 13Mbytes 存储容量是比较便宜

的资源。

4.4 小结

通过地址映射的方式来提高存储器带宽的利用率是一种简单有效的方法,所需要的

操作仅是对地址线进行交换或简单的逻辑门运算,所以存储地址映射优化直到目前还是

这一方向研究的重点。本章基于前人块映射的研究成果,提出了一种新的更高效的存储

映射方案,包括冗余映射和亮色度联合映射两项优化技术的结合。 原理上冗余存储是一种以空间换时间和功耗的方法。带宽消耗大户 MC 的请求具有

不规则性和不对齐性,这大大降低了 MC 读取存储字中实际有用数据所占的比例。通过

冗余存储,任何一个水平方向不超过固定长度的参考块都一定落在某一个存储字内部,

存储控制器可以完全根据图像地址信息确定那个非跨字的存储字,消除了因跨越存储字

造成的多余带宽消耗。外存 I/O 也是芯片功耗的主要来源之一,访存效率的提高也带来

Page 84: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

64

了功耗方面的显著改善。 针对换页开销这一普遍关注的问题,本章基于运动补偿的访存数据特点,提出了亮

度色度联合映射的方案。针对像素扩展引起的偏移问题,我们进行了量化讨论,得到色

度扩展可以包含于两度扩展后的对应色度块内部。而针对联合映射的相容性获得问题,

我们结合冗余映射给出了充分利用存储空间的方案。 两项技术被有效的结合成一套完整的地址映射方案,映射所需计算可以忽略。本文

的出发点都在于性能的保障,所以所提方案也侧重于降低 坏情况的带宽消耗(峰值带

宽),其优化效果非常显著,节省带宽达 47%,即使在普通的码流上也有超过 25%的平

均带宽节省。

Page 85: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

65

第五章 基于交叉存储的运动估计结构和算法

运动估计是编码器中 核心的部分之一,它不仅是很大程度上决定了编码器的编码

效率,同时也是性能和算法复杂度的主要决定因素,运动估计算法和结构的优化一直以

来都是视频编码研究的主流方向之一。运动估计算法具有大数据量的同时,也具有大并

行度,使得可以通过处理单元矩阵对计算部分进行充分的加速。但支持这些计算所需要

的大量的数据 I/O 成为了设计瓶颈,因为存储器的字长和带宽均受到物理实现的限制。 就这一问题目前主要有两种办法来减小 I/O 的数据量。第一种是利用数据复用来减

少每次计算所需的数据量,第二种是采用快速搜索算法来减少计算的次数。但运动估计

结构的软硬件设计中仍摆脱不了两大矛盾,即搜索性能和搜索位置灵活度之间的矛盾,

以及变块大小结果复用与分部搜索之间的矛盾。 针对第一对矛盾,本章提出一种对任意位置进行高速搜索的硬件结构。不同于前人

普遍的降低 I/O 的方法,我们的思路是提高存储系统的吞吐率。基于交叉存储的参考窗

像素存储器组织方式,通过对存储器分体达到扩展字长的目的,同时通过交叉映射使得

一次块匹配所需访问的二维块可以被一次性读出。针对第二对矛盾,本章利用交叉存储

的参考窗结构的灵活性和高性能,提出一种适应于变块大小的高效快速运动估计算法,

通过增加第一步搜索点数提高了搜索精度,而且第二/三步的中间结果也被复用来进一步

提高搜索精度。硬件实现结果证明,所提的结构和算法给出了一种压缩效率,性能,面

积和功耗的有效折中。

5.1 运动估计算法和结构概述

视频序列具有极大的帧间相关性,帧间预测是通过预测来消除帧间相关性的一种有

效的编码工具。为简单起见,编码标准把物体运动统一抽象为局部范围内的平移运动,

将前面已解码图像块的平移作为当前编码图像块的预测参考值。将当前编码块与预测参

考块逐点作差,然后将预测残差值进行变换量化和熵编码而形成编码码流。运动估计的

目的是在参考帧(已解码帧)的指定范围内,选出 佳的运动向量取值,使得帧间预测

编码后的编码效率(视觉质量-码率) 高。 运动估计的主流算法是基于 SAD(残差绝对值之和)的块匹配算法。运动向量的选

区准则为使下式所示的总代价(cost) 小。代价函数包括 SAD 部分和 MV 部分。式中

匹配块大小为 M×N,当前块的左上角像素位置为(m,n),MV_Cost 函数代表对运动向量

编码的码率消耗,由运动向量或运动向量预测残差的绝对大小决定,λ 为均一化常数,

RANGE 为搜索范围。SAD 是对块匹配程度的一种简化的评价方法。

Page 86: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

66

1 1

0 0

( , ) ( ( , ) ( , ) ) _ ( , )

{( , ) | ( , ) , ( , ) , ( , ) ( , )}

M N

i j

Cost x y curr m i n j ref m x i n y j MV Cost x y

MV x y x y RANGE i j RANGE Cost x y Cost i j

λ− −

= =

= + + − + + + + + ×

= ∈ ∀ ∈ ≤

∑∑

运动向量

当前帧

已解码帧

当前编码块

预测参考块

图 5.1 块匹配(block match)示意图

普林斯顿大学 Kun 的《VLSI 阵列处理器》[4-1]一书是对于阵列处理器的设计方法

的系统化的研究和总结。我们可以从一个具体算法出发,根据的相关性关系,将输入输

出和中间结果展开成多维的数据依赖图的形式。依赖图(Dependency Graph)中, 中间变量

占据多维空间中的一个坐标点,而数据的依赖关系构成了中间变量坐标点之间的有向边。

从算法到 DG 的映射是进行阵列处理器设计的第一步,经过这个映射过后,本来顺序执

行的算法被等价的替换成具有规则形式的 DG,而且对于提取并行度 重要的数据依赖

关系也被直接的体现在 DG 中。第二步,将依赖图 DG 映射成信号流图 SFG(Signal Flow Graph)。DG 中包含了完整的数据依赖关系(相关性), 但 DG 中不包含处理器分配和时间

调度的信息,当对 DG 中的各个结点进行处理器分配和时间分配之后,DG 就被映射成

SFG。通过选择不同的处理器矢量和调度矢量,可以将同一个 DG 映射成为不同的 SFG。

其中处理器数,吞吐率,功耗等多种因素的折中是根据具体应用的要求而定。第三步,

变换 SFG 生成 systolic,wave front, 或者 SIMD 等类型的实际处理器,比如生成 systolic处理器需要进行割集 retiming。

由 SAD 的计算式可知,SAD 计算的 DG 是一个 x,y,i,j 的四维 DG 图。将该 DG投影到不同的 SFG 得到各种不同的 SAD 计算结构。图 5.2(来自[Thomas89])给出了一种

一维 SAD 计算结构,图示中 M=N=3。该结构相当于将 SAD 的 DG 图沿 x,y,i 三个方

向进行投影,得到的 j 方向一维流水结构。编码块和参考块按图示阶梯状输入到一维结

Page 87: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第五章 基于交叉存储的运动估计结构和算法

67

构中,流水线建立起来后,每经过 M 拍累加器 A 的输出值与 M 中寄存的原有 小 cost相比,进行运动估计判决。

图 5.2 一维块匹配 SAD 计算结构

图 5.3 二维块匹配 SAD 计算结构

图 5.3(来自[Luc89])给出了一种二维的 systolic 计算结构,图示中 M=N=4。该结构中

将四维 DG 沿 x,y 两个方向进行投影,得到了 i,j 平面的二维流水结构。编码块像素存

在于各 AD 单元中,并行的累加器可以达到每拍计算一个参考位置的吞吐率。该矩阵通

过参考像素在相邻单元(R 和 AD)之间传递,可以支持参考块相右,向下和向上三个

方向的移动。按照如 5.4 所示的顺序扫描矩形的搜索区域,每一拍输入的像素点仅为一

Page 88: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

68

行或一列。

图 5.4 二维 SAD 计算扫描顺序

这种 systolic 阵列结构通过一套二维的可以局部转移数据的寄存器组,来充分的利

用已经导入阵列的数据用于尽可能多的计算,从而大大节省了数据输入的吞吐率。而且

二维结构的吞吐率可以达到一拍计算一个参考点的 SAD,加法树的计算可以通过流水线

来加速。但也正是数据复用的要求,参考点的扫描顺序必须按照图 5.4 或者其他规则的

方式进行。所以 systolic 阵列结构比较适合于类似全搜索的遍历搜索算法。遍历搜索算

法随具有较好的搜索效果,但其面积和功耗的代价较大。 快速运动估计相比于全搜索来说具有更好的性价比,一般只需要搜索相当少的离散

点,就能获得近似于全搜索的编码效率。但快速运动估计多为启发式的分步搜索算法,

不利于进行并行计算,因而硬件利用率不如 systolic 阵列[JL04][CCT07][SW04][HCL04]。

5.2 交叉存储搜索窗结构

根据第二章的分析,SAD 的计算逐点进行,可利用的并行度大大高于需求,通过必

要的并行展开,计算部分不存在性能瓶颈。但是这些并行计算需要的大量参考像素从外

存储器中获得,所以运动估计的输入参考像素的数据组织才是真正的性能瓶颈。为了屏

蔽外存储器访问时间的不确定性,一般采用一个片上参考窗 SRAM 存储器来缓冲 SAD计算与外存访问之间的速度差异。

而 SRAM 和 SAD 计算阵列之间仍存在巨大的数据带宽要求,为了让 16×16SAD 的

计算吞吐率达到一拍一次,SRAM 输出的参考像素需要达到每周期 256 字节,SRAM 端

口数据位宽至少达到 2048 比特。systolic 矩阵通过充分利用相邻 SAD 计算之间的数据复

用性质,使得计算矩阵每拍仅需要输入一个 16 字节像素行即可,通过阵列内部数据移动

缓解了端口的 SRAM 带宽压力。但是数据复用对搜索点的位置和扫描顺序提出了严格的

要求,以至于大部分快速运动估计算法均不具有类似全搜索的数据复用特性,systolic 矩阵虽然能达到高性能和好的搜索效果,但其面积和功耗的消耗相对较大。

为了在快速运动估计算法中也能获得一拍进行一个块 SAD 计算的吞吐率,我们直

接从增大 SRAM 输出带宽的角度入手,来寻求解决输入数据带宽瓶颈。提高单个 SRAM

Page 89: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第五章 基于交叉存储的运动估计结构和算法

69

输出带宽的方法有两条。 提高频率:由于高质量的运动估计一般搜索范围超过±16,搜索窗 SRAM 的接

口 高频率受到其容量的限制,况且由于 SAD 计算电路可以通过并行和流水来

充分的提高内核频率,SRAM 接口本身就是系统工作频率的瓶颈,想提高频率

来增大 SRAM 接口带宽并不现实。 增大字宽:直接增大字宽能够在一定程度上提高接口的吞吐率,但是由于像素

字映射必须按照宏块或分块对齐,而搜索块不具有对齐性。当出现水平和垂直

跨字时,至少需要四拍才能输出一个参考块。虽然直接增大字宽效果不能满意,

但我们可以考虑类似 SDRAM 的分体存储结构来间接的提高输出字宽。

01234567

89

101112131415

01234567

89

101112131415

0 1

2 3

图 5.5 搜索窗分体映射方案

图 5.5 给出了两种分体存储的像素映射方案的示意图。假设 SAD 的并行度为每拍一

个 8×8 块,分体要求存储器能在一拍内输出一个任意位置的 8×8 参考块数据。左图为按

行映射,每一个存储体字宽为 64 比特,每一个对齐的 8 像素行映射到一个存储字,其存

储体的分配按照垂直方向上 8 个存储字一循环,水平方向上两个存储字一循环,如图 5.5左图所示一共需要并行的 16 个存储体。当所需参考块为虚线所示的任意位置 8×8 块时,

十六个存储体按照各自地址( 多相差一)取出存储字,在按照字内偏移进行截位和拼接

在一拍内得到 8×8 参考像素块。图 5.5 右图简化了存储体分配方法,仅使用 4 个分体,

但各存储体字宽为 64×8=512 比特,对齐的 8×8 块整个映射到一个存储字,存储体分配

按照水平和垂直方向分别两个存储字一循环。通过对应位置的截位和拼接,也能在一拍

内得到 8×8 参考像素块。 两种方案均能达到性能要求,相比起来面积、功耗上有一定差异。左图按行方式需

要更多的存储体数目,总容量相同的细碎小 SRAM 需要占用更多的芯片面积,大大超过

右图按块方案中多余的选通逻辑,按块方式在面积上优于按行方式。但左图单一存储体

的存储字宽较小,每拍从 SRAM 中读出的总数据仅为按块方式的一半,按行方式在功耗

Page 90: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

70

上优于按块方式。 加法树采用如图 5.6 所示的层次化的计算结构,各点的预测残差的绝对值被并行的

计算出并以 4×4 为单位被分组地累加起来,然后寄存一级得到 4×4 SAD 结果进行 4×4块的搜索点判决,然后再下一拍时,四个水平垂直相邻的 4×4 SAD 被作为中间结果累加

成 8×8,8×4,4×8 SAD,进行这些块大小的搜索点判决。然后在更高的级别对更大的分

块进行判决。加法树的大小决定了其 SAD 的吞吐量,图 5.6 所示的结构可以每拍计算一

个 8×8 SAD 结果。

AD0,0

+ 4x4 SAD

4x4 SAD

4x4 SAD

4x4 SAD

+

+

+ 8x8 SAD

AD0,1...

AD3,3

15×

AD4,0

+AD4,1...

AD7,3

AD0,4

+AD0,5...

AD3,7

AD4,4

+AD4,5...

AD7,7

15×

15×

15×

图 5.6 流水线化的 8×8 加法树结构

SAD 矩阵大小不同决定了与之匹配的每一拍需要的参考块大小。表 5.1 列出了不同

情况下,按块和按行方式各自的复杂度。SAD 尺度每大一倍,按行方式字宽和分体数分

别增大一倍,而按块方式的字宽增大四倍。所以每拍计算的 SAD 大小极大的影响了分

体存储器的复杂度,需要细致分析每拍计算的 SAD 大小与搜索性能的关系,以便达到

搜索性能和复杂度的有效折中。

表 5.1 不同 SAD 块大小下分体模式对比

按行方式 按块方式 参数

16×16 8×8 4×4参数

16×16 8×8 4×4 字宽 128 64 32 字宽 2048 512 128

分体数 32 16 8 分体数 4 4 4

字形状 16×1 8×1 4×1 字形状 16×16 8×8 4×4

带宽效率 50% 50% 50% 带宽效率 25% 25% 25%

SAD 单元数 256 64 16 SAD 单元数 256 64 16

Page 91: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第五章 基于交叉存储的运动估计结构和算法

71

表 5.2 不同 SAD 大小性能比较

宏块拍数 块大小 块数目

4×4 SAD 8×8 SAD 16×16 SAD 16×16 1 1×16 1×4 1×1 16×8 2 2×8 2×2 2×1 8×16 2 2×8 2×2 2×1 8×8 4 4×4 4×1 4×1 8×4 8 8×2 8×1 8×1 4×8 8 8×2 8×1 8×1 4×4 16 16×1 16×1 16×1 总计 - 112 48 44

由于变块大小的运动估计,小块的搜索性能不因为大的 SAD 结构而提高,每拍所

需的参考像素块大小可能不需要达到 16×16。表 5.2 列出了对一个宏块内各种分块模式

进行一个搜索位置的 SAD 计算所需要的拍数。当 SAD 大小从 4×4 增大到 8×8 时模块性

能有明显提升,而从 8×8 增大到 16×16 时,性能仅提高 8%。综合 SAD 的复杂度和分体

存储器的复杂度,我们得到 8×8 作为 SAD 大小和存储器每拍吞吐率是一种高性能低成

本的方案。

5.3 高效变块大小运动估计算法

上节提出了一种新的具有灵活性的高性能参考窗数据存储组织结构,性能可以达到

二维 systolic 阵列的水平,而且可以随机的连续处理任何位置的参考点。这种高效灵活

结构特别适合于快速运动估计算法的硬件实现,同时使通过适当增加快速运动估计的搜

索点数来提高搜索效果成为可能。 就像传统的快速运动估计适合于软件执行,全搜索块匹配适合于 systolic 阵列来执

行,不同的算法都有其对应的适合结构。所以我们提出了基于交叉存储的运动估计数据

组织结构之后,下一步的目标就是通过修改现成的运动估计算法,来找到一种 适合所

提硬件结构的算法,使得硬件结构的特点和优势能够 大限度的发挥出来。视频编码帧

间预测的趋势是分块模式变多,对不同的场景的适应能力变强。这些增强了的编码工具

要求运动估计算法能充分利用多种分块模式来实际的提高编码性能。变块大小的运动估

计具有两大特点。 一方面是复杂度大大提升。从 16×16 到 4×4 一共有 7 种分块模式,而且每一个

8×8 还可以具有独立的子分块模式。为了选择 好的分块模式和运动向量,每

一种块类型的所有分块的运动估计都需要进行一遍,以比较它们的代价函数。 另一方面是数据计算的可复用性极强。运动估计的主要复杂度集中在 SAD 计

算,SAD 计算具有可分解性,大块的 SAD 等于其所有小块的 SAD 之和。当大

Page 92: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

72

块和其子块在同一个运动向量位置进行搜索是,大块的计算可以完全复用子块

的 SAD 作为中间结果。 交叉存储的结构给予了充分的灵活性可以采取一种启发示的多步搜索算法。为了将

可变块大小的运动估计特点和交叉存储的运动估计结构相结合,我们从如下几个方面考

虑设计一种高效的快速运动估计搜索算法。

1. 开始位置

相邻图像块的运动具有一定程度的一致性,利用这一性质,视频编码标准广泛采用

了运动矢量预测技术。在运动估计时,运动矢量预测同样能提高估计的准确度和搜索效

率。软件实现时运动估计往往以当前块的运动矢量预测点作为搜索的开始点,搜索窗变

成以该起始点为中心的区域或搜索图案,搜索窗覆盖了更有可能具有 优搜索点的区域,

有利于更准更快的搜索到 佳运动向量。 但在硬件实现的开始位置上使用完全的运动向量预测具有一定困难。为了提高运动

向量预测的准确度,预测值基本上由当前块的左边,上边和上右 邻近的块来决定,这

要求相邻块运动估计之间存在严格意义上的数据相关性,即先块的输出结果与后块的开

始位置间的相关性,不利于硬件的并行处理。而且,不同块具有不同的开始位置时,大

块与其子块的搜索点位置不具备一致性,破坏了变块大小运动估计中的计算复用性,使

潜在计算复杂度大大增加。 为了解决运动向量预测对搜索准确度的提高与其硬件实现复杂性之间的矛盾,我们

提出一种有效的折中方案。运动向量预测仍然进行,但仅在宏块级别进行,也即将 16×16块的运动向量预测值作为宏块内各种大小的所有块的开始位置。宏块内部的运动向量大

部分具有一定程度的相似性,以宏块运动矢量预测值作为开始位置可以在一定程度上提

高估计准确度。同时宏块内各种大小的块具有相同的运动向量使得大块与其子块的搜索

偏移完全相同,数据和计算复用可以达到。利用 5.2 节所提的 8×8 SAD 结构,一个宏块

中存在中间结果复用时各种大小所有块在一个位置的搜索仅需要 4 拍,比不存在复用时

的 48 拍少了一个数量级。

2. 搜索图案和步骤

为了更快更准的搜索出 佳的运动矢量位置,快速运动估计算法均采用了启发式的

分步搜索方法,总的来说就是用前一个步骤的搜索结果决定下一步搜索的搜索位置和顺

序。原则上分步搜索算法与全搜索一样,搜索点数越多理论上的搜索效果会越好。所以

由交叉存储结构带来的灵活的性能提升允许通过增加搜索点的数目来提高运动估计的精

确性,如何具体的增加搜索点数目应该具有如下的原则: 增加的搜索点尽量分布在第一步中。为提高不同块的搜索效果,分步搜索均为

按块独立进行,即每个块第二步的搜索图案中心位置为该块在第一步时的 佳

搜索位置,第三步又以第二步结果为基础。这使得除第一部以外,后续步骤中

Page 93: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第五章 基于交叉存储的运动估计结构和算法

73

大块与其子块的计算复用性不复存在。在本章所提的硬件结构上,第一步增加

一个搜索点需要 4 拍,而后续步骤则需要 48 拍。 增加的搜索点尽量分布在中心区域。这是因为小运动的发生概率高于大运动,

而且自然图像序列的运动向量在空域上有一定的连续性。 增加的搜索点趋于水平方向相对垂直方面。这是因为地平面的原因,自然图像

序列中水平运动明显多于垂直运动。

(a) (b)

图 5.7 所提的运动估计搜索图案和步骤示意 (a)第一步 (b)第二/三步

基于上述三个原则,我们设计出一种类似三步法的运动估计搜索算法。算法类似于

著名的三步法,分成三个搜索步骤。第一个步骤按从内向外的顺序搜索如图 5.7(a)所示

的一共 47 个搜索点。按照间距不同,这 47 个搜索点分成三组。具体的点间距离根据搜

索范围的大小决定,下面以±16 为例。中心点是运动矢量预测位置,它与周围的菱形四

点组成第一组,点间间距为水平或垂直方向的 2 个像素;内 5×5 区域内的 24 个点组成

第二组,点间间距为 4 个像素;外 5×5 以及左右方向上各增加的一个点一共 18 构成第

三组,点间间距为 8 个像素。第二步以第一步的 佳点为搜索中心,搜索一个如图 5.7(b)所示 3×3 矩形区域;第二步的 佳点又作为第三步的中心点,第三步搜索一个间距减半

的小 3×3 矩形区域。第二步和第三步的搜索点间距也根据第一步 佳点的位置不同而变

换。靠近中心的 13 个圆形点被选中时,第二步搜索点距为 2 像素,第三步搜索点距为 1像素;而第一步远离中心的 34 个矩形点被选中时,第二步和第三步搜索点距分别为 4和 2。

相比于传统的基于三步法的快速搜索算法,如四步法,改进三步法等。所提的算法

加强了第一步搜索,增加了自适应的间距调整,突出了上述的三条设计原则,更好的适

应于 5.2 节所提的硬件结构和变块大小运动估计要求。

3. SAD 部分和复用

由于采用启发式的分步搜索算法,第二步和第三步时大块与其子块的搜索中心点不

Page 94: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

74

同引起了计算复用性的缺失。虽然子块的搜索位置与大块不同,但大块在其自己的搜索

位置的 SAD 计算时必然得出其子块在该位置的 SAD 值。我们可以利用这一部分和的中

间结果,参与到子块的搜索判决中,这样可以增加子块的实际搜索点数,减少陷入局部

优的可能性,提高搜索准确度。另一方面,当大块和其子块具有相同的搜索开始点时,

则可以省略该子块自身的搜索判决,完全由大块搜索时完成,避免不必要的重复搜索。 在第二步和第三步的计算中,对各分块按照第一部完全相同的方式处理,每搜索一

个点,计算该分块以及该分块各子块的 SAD 和 MV 代价,比较和更新各分块大小的

佳搜索结果寄存器。对于 4×4 块 多参考点增加达到七倍,8×8 块 多也可达到 4 倍,

但硬件复杂度毫无增加,完全复用第一步的全模式搜索结构。

5.4 实验结果和分析

为了检验所提的快速运动估计算法,我们对于多个不同类型不同尺寸的图像序列进

行了测试,选取较有代表性的四个量化参数(QP)值:22,26,30 和 34,进行实际编

码得到所提算法的 PSNR-bitrate 曲线。同时为了比较起见,我们也对 H.264 标准推荐的

快速运动估计算法[TAL02],和经典的三步法[KLHI81]进行比较。表 5.3 列出了各标准的

编码性能的对比,比较的基准是全搜索算法,比较的标准是在平均意义上相同码率下

PSNR 的差值。对每一个搜索算法,我们通过四个 QP 编码实验得到 PSNR-bitrate 曲线的

四个点,然后根据这四个点向内向外插值出一条光滑连续的 PSNR-Bitrate 曲线, 后在

感兴趣的 PSNR 和 bitrate 的范围内对两条对比的曲线的差值做积分,得到曲线的平均偏

差作为算法编码性能的衡量指标。表 5.3 列出了各种算法相对于全搜索的平均 PSNR 的

差值(以 dB 为单位)。

表 5.3 快速运动估计算法编码性能比较(相比于全搜索)

测试序列 图像大小 H.264 TSS 47 点模式 47 点+ MVP

47 点+ MVP+复用

bus CIF 0.07 -0.33 -0.03 -0.14 -0.02 foreman CIF -0.02 -0.19 -0.07 -0.07 -0.07 tempete CIF 0.01 -0.01 0.00 -0.01 -0.01

news CIF 0.00 -0.07 -0.02 -0.04 -0.02 horsing 576i 0.01 -0.22 0.03 0.02 0.02 garden 576i 0.04 -0.06 0.02 0.00 0.00

Average - 0.02 -0.14 -0.01 -0.04 -0.02

我们对所提的硬件结构进行了综合实现,在 0.18 微米工艺库下,硬件 高工作频率

可以达到 222MHz,包含片上存储器在内的硬件总面积仅为 182K 逻辑门。表 5.4 给出了 所提方案与传统三步法和全搜索方案的对比。可以看出所提方案是这两种方案的有效折

Page 95: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第五章 基于交叉存储的运动估计结构和算法

75

中,芯片面积相当于三步法和全搜索的平均,而编码性能可以达到与全搜索相近,而且

由于搜索点数大大减少,所提方案与全搜索相比在功耗上有明显优势。

表 5.4 不同算法典型硬件实现对比

所提方案 三步法 全搜索

工艺尺寸 0.18µm 0.18µm 0.18µm

关键路径长度 4.5ns na. 6.7ns

高工作频率 222MHz na. 150MHz

逻辑面积 84 K gates 33 K gates. na.

片内 SRAM 面积 98 K gates 98 K gates na.

总面积 182K gates 131K gates 210K gates

相对编码性能(dB) -0.02 -0.14 0.00

搜索点数 63 25 1024

5.5 小结

运动估计是编码器设计的核心模块之一,而且由于其算法不属于编码标准规定的范

围,这给运动估计模块的设计提供了充分的灵活性和更大的挑战。运动估计模块设计包

括硬件结构设计和搜索算法设计两项技术的有效配合。全搜索块匹配的方法适合于与

systolic 阵列结构相结合,能有效的复用输入数据和不同大小块的 SAD 中间结果,但总

体面积和功耗消耗较大,且不利于启发式搜索。快速运动估计方法适合与可配置的串行

结构相结合,能有效的利用启发式方法减少搜索点数,快速搜索出次优结果,但由于不

能复用输入数据和中间结果,输入数据的接口带宽成为性能提升的瓶颈,不利于在图像

尺寸增大后提高搜索准确度。 本章分析了运动估计已有结构中存在的矛盾,提出了一个折中的解决方案。交叉存

储运动估计搜索窗提供了一种低复杂度高性能高灵活度的搜索结构,使得高性能的变块

大小快速运动估计算法的实现成为可能。通过片内存储器缓解片外访问时延要求,通过

片内存储体分体提高片内存储器与 SAD 计算逻辑之间的总体带宽,通过细致的交叉分

体映射设计保证一个参考图像块所需的所有像素可以被一拍读出。按行和按块的两种映

射方式进行了对比,相比起来,按行需要较多的分体数目,但总带宽利用率和功耗情况

较好。对于变块大小搜索涉及到从 16×16 到 4×4,选用 8×8 作为 SAD 大小和分体单拍输

出块大小是一种性能代价较优的权衡。 更进一步为了充分发挥出交叉存储方案在高性能快速运动搜索中的优势,我们同时

考虑了对于分步运动搜索算法的一些优化调整。在搜索开始位置的选择上,宏块统一运

动向量预测的方法既能在一定程度上体现运动向量预测所带来的搜索效果提升,而且确

Page 96: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

76

保了在第一个搜索步骤上所有大小的块都具有相同的搜索候选点,从而能共享输入数据

和 SAD 计算。在搜索点选取上我们分配较多的搜索点给第一步搜索,因为各分块具有

相同的开始位置,单位搜索点具有较低的复杂度。而且偏向较小的 MV 值,参考点的选

区间距由其离中心点的远近而决定,且第二步和第三步的矩形参考点距也由其第一步搜

索结果离中心点的远近而决定。虽然第二步第三步的分块搜索开始点不再一致,但大块

的 SAD 中间结构仍然得到复用,当大块搜索中心与其分块不同时,大块的所有搜索点

被附加给小块,在不影响搜索性能的情况下,小块的搜索点数得到增加,有利于减小局

部 优的出现;而当大块的搜索中心与其分块相同时,分块的搜索则可完全复用在大块

判决过程中,降低了总的处理时间。 硬件实现和仿真结果可以看出,所提的软硬件结合方案在编码性能上达到了全搜索

的水平,但搜索点数大大降低。由于搜索点数的增多以及变块大小的中间结果复用,所

提的方案编码性能明显高于三步法等传统的快速运动估计算法结构。

Page 97: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

77

第六章 高速 CABAC 解码引擎设计

熵编码是将信元符号数值转化为信息比特流的有效工具,尤其是 H.264 Main 及以上

Profile 采用的上下文自适应二进制算术编码(CABAC:Context-based Adaptive Binary Arithmetic Coding)给编码性能带来了显著提升。但由于码流处理的顺序性,熵解码处理

在可用并行度上存在瓶颈,从而限制了熵解码的 高处理吞吐率。高性能的熵解码器设

计,特别是 CABAC 解码器设计,没有简单的并行和流水可以应用,这种串行计算的并

行化问题需要针对具体的数据通路特征,对关键路径上的计算进行算法等效变换和逻辑

优化,达到性能优化的目的。

6.1 并行展开技术概述

在结构设计中,流水和并行是提高系统吞吐率 常用的两项有效手段,但并不是所

有的情况都可以应用这两个手段。当两个计算过程之间存在数据相关性时,不能进行并

行处理;当两个或多个计算过程之间存在反馈环路时,不能进行流水处理。而在视频编

解码中, 典型的模块就是熵编解码过程,由于其强烈的数据相关性和紧耦合的反馈机

制使得无法直接利用流水和并行来提高系统的吞吐率。如何在存在反馈环路时提高计算

结构的吞吐率即为反馈结构的并行展开问题。 从 VLSI 逻辑设计的角度理解流水线,简单的说就是使用寄存器将不存在反馈环路

的计算路径切断多个部分,相继的数据单元并行的处理在不同的分段部分(即流水级)

中,使得系统关键路径变短从而提高工作频率,进而提高吞吐率。作为流水线的推广和

延伸,retiming 技术提供了一种更加灵活的去调整存储单元位置的方法。这种方法无论

在电路级别流水线还是系统级别流水线上同样适用。在系统级别,retiming 的基本原理

和系统设计中保持各流水线级别负担均衡的设计原则相吻合;在电路级别,retiming 对

电路逻辑在不同的寄存器之间进行平衡,使得系统地关键路径缩短。Retiming 技术在

[Par03]中被系统地介绍和总结,其中奠基性的理论是割集定律。割集定律指出用一个闭

合曲线切割电路,得到的割集边分(运算单元之间的连接线,包括线上的延迟(寄存器))为输入边和输出边,把所有割集输入边的延迟数目减少相同数目,并把这个减少的延迟

数添加到所有的割集输出边上,电路的时序和逻辑关系都不变。这样流水被作为 retiming的特例,其正确性也得到了证明。

在 retiming 的研究中提出了数字信号处理电路设计中的一个非常重要的概念

Iteration bound[RN81][PM91]. 显而易见的 retiming 可以优化我们电路中的关键路径使得

电路计算速度增加,但这种增加是有其理论界线的。原因很简单,因为 retiming 不能改

变一个电路环路中的总延迟(寄存器)个数。Iteration bound 定义对于电路中所有的有向环

路中,总计算时间除以总延迟数所得到熵的 大值,也即假设所有环路的 retiming 都做

Page 98: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

78

到足够的平衡时,系统的关键路径上的计算时间。所以 retiming 虽然能局部缩短关键路

径,但对反馈环的优化都没有本质上的效果。Retiming 不是解决反馈电路性能优化的根

本办法,但它给出了电路平衡化可以达到的 好结果,即 Iteration bound。 并行展开结构设计中一个非常重要的设计方法是 look ahead。 典型的是加法器和

乘法器的设计。把 Look ahead 的思想运用到迭代电路的设计上,可以和 unfolding 类似

将迭代展开,一个时钟周期内处理多于一次迭代的运算,从 x[n]~x[n+N]和 y[n]计算出

y[n+N]。相比较来看,在不进行 look ahead 时,计算 y[n+N]必须从 y[n]得到 y[n+1],一共

经过 N 次迭代过程得到 y[n+N];在进行 look ahead 后,由于表达式的化简,我们可以推

导出从 y[n]到 y[n+N]的更短的数据通道。 简单的例子是线性迭代系统,经过 N 次迭代

之后,y[n+N]对 y[n]仍然是线性的关系,复杂度增加的只是增益系数和偏移,而增益系

数和偏移都只跟输入有关,不在迭代环路内部,可以用流水方式任意加速。随着 N 的数

值可以任意增加,线形迭代系统中 y[n]到 y[n+N]的逻辑延迟不变(只与 y[n]的取值范围有

关),从而 look ahead 在线性迭代系统中可以获得任意高的并行度。 但是 look ahead 对速度的提高程度受到迭代环路转移函数的影响,一般的迭代电路

都不是线性迭代,所以 look ahead 的方法在这类问题上不具备通用性。[LM91]在前人的

基础上提出了一种线性化的 look ahead 的方法。将有限状态机种状态的下一个状态表示

成当前状态与输入状态的逻辑与再逻辑或的结果,该表达式中下一个状态是由当前状态

的线性表示构成。这种线性表示对于任意有限状态机都适用。这种线性化的表示从理论

上寻找出一条加速迭代电路的通用方法,与线性迭代电路一样,该方法可以达到理论上

任意高的并行度。 利用线性化的 look ahead 之后,状态转移可以一步跳 N 次迭代,这样每一拍都计算

出一个数据块的起始状态,有了起始状态,这些不同的块的计算就可以按照并行或者交

叉流水的方式进行,同一个块的每一个迭代之间可以通过流水的方式进行。这种块处理

的具体方式[5-7]分为块前处理和块后处理。前处理和后处理中输入 look ahead 的过程均

在状态转移之前完成,两者区别在于后处理的块内迭代也在状态转移之前完成,而前处

理的块内迭代在状态转移之后完成。 传统的视频编解码器中熵编码使用的都是哈夫曼码,哈夫曼码的特点在于为不同概

率的量化后系数值分配不同的码字长度。在解码过程中,由于当前系数的码字长度决定

了下一个系数对应的比特流位置,所以哈夫曼解码过程具有非常紧耦合的数据相关。

[CM92]对高速的 Huffman 解码结构进行了系统的总结。总体上看,哈夫曼的解码方法分

成两大类,基于树和基于查表。基于树的方法很自然的源于哈夫曼码表的树形结构,解

码器分别地读入单个输入比特,然后解码器的状态根据输入比特的值从哈夫曼树的树根

开始向叶子转移,当一连串输入使得解码器状态到达某一个叶子结点时,解码器完成一

个码字的解码,输出一个解码值。基于树的解码方法的吞吐率由码字的平均字长决定。

为了充分发掘基于树解码方法的并行性,[MRB89]采用一种交替流水线的结构来提高电

路的吞吐率,但该流水线是交替的处理多个不相关的输入码流,如果是单个码流,还必

Page 99: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

79

须依靠上述的 look ahead 等方法将单个码流切成多个分段。基于树的结构源于哈夫曼码

表所以设计简单,每一拍仅处理一个输入比特所以工作频率高,但在直接处理单个码流

时输出的吞吐率较低。 相比于基于树的结构,基于查表的结构一次处理多个输入比特数,能显著地提高解

码的吞吐率。根据输入和输出的处理速度,基于表的方式又可分为定输入变输出,变输

入定输出,和变输入变输出率三种类型[CM92]。定输入变输出类似于基于树的方式的展

开,解码器状态转换由查表完成,输出码字的个数和解码值也根据输入和当前状态查表

得到,新生成的状态作为反馈信号参与下一组输入比特解码的计算。变输入定输出的结

构以查表的方式计算出解码的值和码字的长度,利用桶形移位器来定位解码的起始位置,

根据解码的码字长度去控制输入的比特流的移动。典型的变输入定输出结构每拍输出一

个输出码字,由于码字长度只是影响桶形移位器的移位量,并不直接参与查表,所以大

大简化了码表的设计,同时提高了电路频率。变输入变输出的结构是在恒定输出的基础

上,充分利用每拍输入的比特数,产生尽量多的输出码字,电路复杂度有轻微增加。基

于查表的结构,特别是变输入的结构的优势还在于:第一,由于哈夫曼码表的固有可译

性特点,这些表在硬连实现时,可以充分的利用现有的电子设计自动化中逻辑优化的通

用技术;第二,查表只需计算出当前码字的长度,以用来确定当前码字的输入比特和下

一个码字的位置,实际的解码过程可以脱离出反馈环而得益于流水来加速。 进一步,[LM92]提出了一种叫做比特位置(bit position)的方法来达到更大粒度上的并

行。类似于块后处理,而不同的是不像块后处理那样,块的边界可能切在某一个码字的

中间,所以后处理保存块起始信息所需要的状态数量非常大。而比特位置的方法同样是

流水的处理多个块,每个块的起始信息通过穷举预先计算,正确输出和正确下块起始信

息由选通器根据当前块起始信息决定;不同的是比特位置方法以块的比特位置为状态,

块边界一定是码字边界。如果单个码字的 大长度是 L,则猜想的块起始位置有 L 种情

况,同时流水计算这些情况到下一个块边界,选通出来当前块起始位置又作为选通信号

选择下一个块的结果。比特位置的方法以码字为边界分块,以比特位置为状态迭代,块

后处理中的状态表示的是哈夫曼树的某一个节点,而比特位置方法中的状态只是哈夫曼

树的深度,状态数从 O(N)降到 O(logN),面积复杂度从 O(N)降到 O(logN),时序复杂度

从 O(logN)降到 O(log(logN))。 之后在哈夫曼解码结构上的研究就陷于一些局部的优化。[CL95]和[MRB89]针对哈

夫曼码的数字特性,设计了特殊的码长计算电路。[Sun91]提出了一个两级桶形移位器结

构,将累加器的延迟脱离除了系统的关键路径,关键路径仅仅包含一个桶形移位器和一

个码长查找表,局部来看是非常精巧的设计。Tree-based 方面,[RW96]采用定输入变输

出的处理方式,但将码字解码同长度计算分开,长度计算中不同长度的判断被划分为不

同深度的流水线来获得加速,应用于短码字的比较适合。韩国 National Chiao Tung 大学

的Yew等人的研究[LJPH97][SLL98][LSL99]提出的基于存储器的解码方法其本质是一种

基于树的解码结构,哈夫曼树根据每两个输入比特被重新分层,对于新生成的四叉树结

Page 100: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

80

构提出了一种优化的表示方法,以高效地在四叉树的结构上进行遍历。[NVTS02]给出了

一种有效的变输入变输出运算电路结构。 新的国际标准H.264中采用一种CAVLC(基于上下文的自适应变长编码)的编码方

式来编码量化后系数。码字结构上 CAVLC 采用指数哥伦布码简化了原有哈夫曼树匹配

过程,[WGMZ03]提出了一种快速首 1 检测电路来计算指数哥伦布码长。由于采用了自

适应编码机制,指数哥伦布码的阶数决定于上一个解码系数的值,这就造成了另外一条

反馈环路。哥伦布码不具备哈夫曼码的树形码表结构,加之阶数反馈发生于码字边界,

树形结构不针对码字边界,所以电路的频率和面积上得不到任何优势,反而其吞吐率低

的特点显现出来,所以树形结构不适合于 CAVLC。所以 CAVLC 解码一般采用基于码字

边界的变输入定输出结构[MKK05]。 对于 H.264 采用了另外一种熵编码 CABAC[MSW03],解码器的实现结构还并不多

见。台湾国家清华大学的陈建文等人首先提出了 CABAC 硬件解码的必要性,并以 直

接的方式实现了一个完整的 CABAC 解码器结构[CCL05]。但是这种直接的系统结构使

得即使在 VLSI 的硬件实现下,其处理能力仅限于 CIF 图像的实时解码。清华大学的余

薇考虑了 CABAC 的语法元素的特点,提出了一种两个规则 bin (二进制化表示的比特)和一个 bypass bin 连续解码的结构,利用该结构 CABAC 解码器可以在一个时钟周期中

解码 多三个 bin,经由仿真实验验证,该解码器可以应付 D1 分辨率的处理能力[YH05]。从设计原理分析,余薇的解码器采用的并行计算的方式是一种有效的条件 look-ahead,对于一种出现频率较多的情况进行了专门的 look-ahead,使得在这些情况下吞吐率提高,

从而也提高了系统整体的吞吐率;但如前面理论已经总结,这种直接的 look-ahead 的方

式并不能大幅度的提高系统的吞吐率,因为 look-ahead 导致系统关键路径的增长,也即

系统 iteration bound 的增加,系统工作频率的下降。 近的进展在韩国的 Chung 等人

[KP06]和我们[ZGXW07]同时独立提出的大概率预测的方法,该方法是利用猜测的方式

提高系统吞吐率,Chung 同时并行解码两个 bin,并解码第二个的 bin 的计算中不需要第

一个 bin 的实际解码值,猜想第一个 bin 为大概率值 msb 来进行,在两 bin 解码完成时根

据预测是否准确来决定实际比特输出。其思想根源可以归结于线性 look-ahead,特别是

后处理。但是 Chung 的问题在于其关键路径上依然存在 remornalize,所以其一个解码迭

代需要 9.6ns (0.18µm),而不得不进行流水而降低系统的吞吐率。 近一些研究采用多拍

解一个 bin 的思路来对 bin 核心环路进行流水以提高系统工作频率,同时通过流水线各

级之间的 Forwarding 来减少平均每一个 bin 的解码拍数,典型代表是[YP07][KP06]。 总体来说,反馈电路的并行展开问题没有一般性的普适办法,而需要根据电路的具

体情况来采用 look-ahead 和猜测执行等间接手段寻找可以缩短关键路径的办法,吞吐率

的优化需要精细的设计。

Page 101: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

81

6.2 基于内容的自适应二进制算术编码

熵编码是消除视频信号统计冗余的有效编码工具,用于压缩的熵编码主要有两大类:

变长编码和算术编码。变长编码根据语法元素各取值出现的概率,给语法元素各种取值

分配一个前向可译码字,而且出现概率高的取值分配较短的码字,概率低的取值分配较

长的码字,使得完整表示信源信息量所需要的码字总长度较小。变长编码将编码方案与

信源概率分布相关联,得到一种统计意义上 节省的编码方案。一般来说,算术编码较

变长编码能更好的适应信源概率分布,因而能取得较变长编码更好的压缩效率。 算术编码广泛的应用于图像,视频等数据压缩领域,其基本思想可以归纳为区间划

分,由于空间划分涉及到实数域上的算术乘加运算,故而得名算术编码。算术编码具有

较高的计算复杂度,因而一般采用的以 0,1 为待编码符号的二进制算术编码。二进制算

术编码在进行算术编码之前,首先将待编码语法元素值二值化为一个二进制串,二值化

的方案也影响了 后的编码效率。算术编码是通过区间划分来进行的,每一个前闭后开

的实数轴上区间[a,b)代表一个编码二进制串,每编码一个新的二进制符号区间缩小为其

子区间[a’,b’), 终的小区间[a*,b*)包含了所有编码的信息,选取 终区间中的任一实数

传递到解码器端就可以完全恢复出原始的二进制串。编码的符号越多, 终的实数区间

就越小,从而精确表示区间内的一个实数需要的比特数也就越多。区间的划分是根据编

码符号 0 和 1 出现的概率来决定的,假设 0 的概率为 p,则 1 的概率为 1-p,区间[a,b)被划分为表示 0 和 1 的两个并列非交子区间[a,a+(b-a)*p)和[a+(b-a)*p,b),子空间的长度

与其所表示符号的概率成正比,形成原空间的一个划分。编码的过程则是根据待编码符

号的取值选区相应的子区间替换原有区间,并选择 终子区间中的一个取值传递给解码

器。由于区间划分能完全的基于符号概率分布进行,算术编码具有较变长编码更高的编

码效率。 随着视频编码技术的发展,H.264 编码将算术编码进行了大量的简化和优化,采纳

了基于上下文自适应的二进制算术编码(CABAC:Context-based Adaptive Binary Arithmetic Coding)。H.264 引入了前人在算术编码的研究成果,比如基于查表的区间划

分,重归一化(renormalization),自适应二进制编码。利用这些简化和优化手段,H.264 CABAC 具有比其基本层工具 CAVLC 高达 14%的比特节省[MSW03]。H.264 定义的

CABAC 编码主要包括三个主要部分: 1. 二值化。由于算术编码具有较高的复杂度,实际应用的算术编码多为二进制算术

编码,即算术编码器核心引擎只基于 0 和 1 两个编码符号。于是所有待编码的语法符号

都必须首先转化为二进制符号串,然后按位顺序进行编码。为描述清晰起见,这种二进

制符号称为 bin,编码输出的符号称为 bit。由于采用了按位的自适应编码,二值化的方

法需要使得转化后的二进制串中每一位上的概率要利于被模型化,所以各种语法元素的

二值化过程各有不同。 2. 上下文模型。算术编码中编码符号的概率与区间划分过程相对独立,这给动态的

Page 102: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

82

对编码符号的概率进行跟踪提供了可能性,加之考虑语法元素取值之间的相关性,通过

交互熵来减小编码比特的信息量,基于上下文的自适应概率模型能更准确预测编码概率

从而提高编码性能。 3. 重归一化。不像上述基本算术编码过程中编码码流的形成在二进制串 后一个比

特编码之后,标准定义的编码过程可以随 bin 串的输入而实时的输出 bit。在每编码一个

bin 之后,如果当前区间大小小于总区间的一半时,输出串的一个比特就已经被完全的

确定,可以马上将其输出,并对区间起始位置和大小进行对应的放大,以便后面的处理

有足够的精度。 由于 CABAC 解码过程的数据相关性明显高于编码器,其性能提升更加困难,本章

主要讨论 CABAC 解码器实现。下面我们对 CABAC 解码器的具体数据流进行分析。如

图 6.1 所示,bin 解码主要包含三个互为相关的步骤:概率准备,bin 裁决和后处理。概

率准备阶段根据解码 bin 的上下文确定其概率模型的索引 ctxIdx,查找模型表得到解码

bin 的概率状态 pStatus 和 可能值 valMPS。进入 bin 裁决阶段,区间划分的状态由两个

变量进行刻画:范围(Range)和偏移(Offset)。Range 表示区间长度,而 Offset 表示当

前 bin 串表示的实数在区间中的相对位置。当前 bin 的解码值取决于 Offset 指向 可能

符号(MPS:Most Probable Symbol)区域[0,RangeMPS)还是 不可能符号(LPS:Least Probable Symbol)区域[RangeMPS,Range)。根据解码符号对概率符号进行更新,当 MPS出现时当前概率模型的 pStatus 提高一个级别,当 LPS 出现时当前概率模型的 pStatus 降低一个级别。每解码一个 bin,Range 和 Offset 都进行更新,而且当 Range 变得小于总区

间长度的一半(HALF_R)时,进行 renormalization。重归一化通过重复的放大 Range 和

Offset,直到 Range 恢复到 HALF_R 以上,算术运算的精度得以保持。后处理的另一个

较复杂的部分是 bin 串匹配和解码元素输出。由于大部分语法元素编码时的二值化是一

种变长编码,解码出来的 bin 串中判断出语法元素的边界则需要对当前解码 bin 串进行

前缀匹配,如果匹配成功则输出一个语法元素,并根据码流语法规则决定下一个待解码

的语法元素类型。bin 串索引(binIdx)和语法元素类型的更新结果被用来决定下一个 bin的概率模型。

图 6.2 形象化的给出了算术解码核心引擎的解码过程。根据解码 bin 的概率模型,

当前 Range0被划分成两个大小为 RangeMPS 和 RangeLPS 的子区间。其中 RangeLPS 是

由 Range0的次高两位(Range 高位确定为 1)和概率状态 pStatus 通过查表决定的,而

RangeMPS 由 Range0-RangeLPS 而的。解码时代表输入码流的 Offset 指针指向的区域决

定了解码 bin。若 Offset 落在 RangeMPS 范围内(如左图(a)所示),解码出一个 MPS(即

解码 bin 等于 valMPS),Offset 不变,Range1 更新为 RangeMPS,更新后 Range1 大于

HALF_R,不进行重归一化。若 Offset 落在 RangeLPS 范围内(如右图(b)所示),解码出

一个 LPS,由于 RangeLPS 小于 HALF_R,经过重归一化,RangeLPS 和 Offset0按照相

对位置等比例的放大一倍成为新的 Range1和 Offset1。

Page 103: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

83

RangeIdx=(Range>>6) & 3RangeLPS = rangeTabLPS[pStatus][RangeIdx]

RangeMPS = Range-RangeLPS

Offset>=RangeMPS

bin = !valMPSOffset = Offset-RangeMPS

Range = RangeLPS

pStatus==0

bin = valMPSpStatus = transMPS[pStatus]

Range = RangeMPS

valMPS = !valMPS

是 否

pStatus = transLPS[pStatus]

Range<HALF_R

Range = Range<<1Offset = Offset<<1

Offset = Offset | read_bits(1)

Yes

No

Renormalization

由ctxIdx确定pStatus 和 valMPS

由上下文确定ctxIdx

bin串匹配/解码输出

binIdx=binIdx+1 或 语法元素切换

LPS 解码 MPS解码

步骤一:概率准备

步骤二:bin裁决

步骤三:后处理

环1

环2

环3

图 6.1 CABAC 解码的 bin 级别数据流

Page 104: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

84

RangeMPS

RangeLPS

Offset1

Range1

Range0

bin0=MPS

RangeMPS

RangeLPS

Offset0

Offset1

Range1

Range0

bin0=LPSone input

bit

Offset0

(a) MPS case (b) LPS case 图 6.2 二进制算术解码核心示意图

概率准备

bin裁决 后处理bin结果

概率值 语法切换概率更新

R/O 更新

图 6.3 bin 解码各步骤相关性分析

图 6.3 给出了三个步骤之间的数据相关性。这些相关性形成了图 6.1 右侧所示的三个

bin 级别的反馈环路。环 1 位于算术解码引擎内部,Range 和 Offset 在解码过程和重归一

化中被反复更新。环 2 为概率更新循环,概率状态值输入到算术解码引擎进行 bin 裁决,

然后裁决结果又用来更新相应模型的概率状态值。环 3 为语法元素循环,随着 bin 被解

码,已解码 bin 串需要进行串匹配以决定是否完成一个语法元素的解码,当匹配成功时,

语法元素根据码流语法规定进行更新,反馈到概率准备模块的 ctxIdx 进行更新。图 6.4给出了 CABAC 解码算法对应的结构图。

CABAC 没有明确的规定一个宏块 多的 bin 数目,我们可以变量的动态范围推导出

坏情况下的解码复杂度。标准规定熵解码得到的量化后系数必须落在[-215, 215-1]区间

内,于是每一个 abs_level 的 大值为 215,该数值按照 CABAC 对 abs_level 的规定进行

二值化。首先是 14 个 bin 的前缀,然后是 215-14 进行 0 阶指数哥伦布再需要 15*2+1=31个 bin 的后缀,一个 abs_level 多可以达到 45 个 bin。这样,加上 map 和 sign 的 3 个

bin,一个非零系数 多可产生 48 个 bin。一个宏块仅有非零系数就可以产生

48×384=18432 个 bin,考虑到 1080i 图像的宏块率为 224800/s,bin 解码速率需要达到

4.5Gbin/s!这意味着按照如图 6.4 所示的一拍解码一个 bin 的经典结构来计算,该结构需

要运行到 4.5GHz 以上,这是无法在现有半导体工艺条件下做到的。即使不从 坏情况

Page 105: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

85

考虑,我们对十个左右的自然测试码流进行统计,I 帧的平均宏块 bin 数目仅有 830。即

使是这样的平均情况下,要求的 bin 解码速率也达到了 203Mbin/s,要求在 5ns 以内完成

包括查表在内的至少三十级电路逻辑,对于 90 纳米以上工艺逻辑实现来说仍然具有极大

的设计难度。因此 CABAC 具有的三个 bin 级别紧耦合反馈环路,加上算法复杂度对 bin解码速率的高要求,使得高性能 CABAC 解码逻辑的实现需要更多的细致设计。

Context Index[8]

Range[16]

表rangeTabLPS

[7:6]

MUX

pStatus[...] & valMPS[...]

Offset[16]

pStauts[5:0]

RangeLPS - RangMPS cmp

bin

MU

X

MU

X

Inv

transIdxLPS transIdxMPS

新 pStatus新 valMPS

ctxIdx

更新cdxIdx

重归一化

环1

环3

环2

图 6.4 数据相关环路示意图

6.3 基于猜测执行的固定 bin 速率解码结构

针对高性能 CABAC 解码器设计的难题,我们从两个方向去探索解决方案。本节主

要沿着顺向的思路,以 bin 解码速率作为优化目标,尽可能的提高固定 bin 解码的吞吐

率。下一节 6.4 节则逆向的从实时性要求入手,巧妙利用码流比特率限制,设计出一套

能保障实时处理的变 bin 速率解码方案。 bin 解码是 CABAC 解码的基本过程,为了充分利用硬件资源,CABAC 解码通常采

用固定 bin 速率解码。本节思路是充分发掘和利用运算的代数和逻辑关系特点,缩短电

路关键路径并提高解码吞吐率。首先在单 bin 解码方案中,采用基于猜想的解码结构,

bin 判决和两种假设下更新过程并行执行,结果在 后一级选通。其次概率模型组织方

面,也基于猜想进行预处理。 后这种结构被推广到双 bin 解码中。实现结果证实,在

TSMC 0.18µm 的工艺下,解码器可以达到 308Mbin/s 的 bin 解码速率,是目前为止解码

bin 速率 高的 CABAC 解码结构。

Page 106: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

86

6.2 节已经给出了 bin 解码中具有的三个 bin 级别的反馈环路,根据 Iteration bound理论,并行和流水无法奏效,无论如何等效的进行 retiming,反馈环路的时延限制了系

统的 高吞吐率。对特定电路的逻辑优化则需要对运算和逻辑关系进行细致的分析,为

了提高针对性,我们需要对不同的语法元素分别进行特定的优化。在像 I 帧这样的对 bin速率要求较高的情况下,map 和 level 占据了总 bin 数量的 90%以上,所以在后边的章节

中我们主要集中对这两个部分进行分别优化,其他语法元素的优化结构与此大同小异。

6.3.1 单 bin 解码算术解码引擎结构优化

算术解码引擎的输入是当前 bin 的概率状态,进行二进制算术解码后 Range(R)和

Offset(O)被更新,输出是解码 bin。

6.3.1.1 直接实现结构

按照算法 直接的结构实现如图 6.5 所示,查找表 TabRLPS用于代替计算 RLPS所需

的乘法,通过第一级减法器得到 RMPS,再通过第二级减法器,其结果的符号位即为 bin决策(bin decision)的结果。初步更新的 Range 和 Offset 结果 R*和 O*需要进行重归一

化(renormalization),为避免多次串行放大,我们采用首”1”判决器(F1D:First One Detector)来得到重归一化总共需要左移的位数,然后对 R*和 O*分别进行一次性的移位

(Shift)得到 终更新的 new_R 和 new_O,输入比特流(input)被作为低位桶形左移到

Offset 中。

TabRLPS

-

-

R[8:0]

RLPS[7:0]RMPS[8:0]

O[8:0]

+-

+-

01

01

[9]

R*

O*

F1D

Shift

Shift

input

new_R

new_O

Bin Decision RenormalizationpStatus[5:0]

[7:0]

mps_flag

图 6.5 bin 引擎原始结构

在图 6.5 所示直接实现结构中,粗虚线显示的关键路径上包含一个 LUT(表查找),

两个减法器,一个选通器,一个 F1D,以及一个移位器。逻辑优化首先需要确定关键路

径上这些操作具体的位宽,甚至取值范围,使得多余的计算成为假路径,甚至成为无销

路经被综合器去除掉。我们先来进行比特分析这一基本优化步骤,分析得到有如下算法

Page 107: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

87

特征可利用。 标准直接的规定了某些变量的位宽和取值范围:R 和 O 的精度均为 9 个比特,

pStatus 为 6 比特。 由于重归一化的结果,R 高位一定为 1。 RLPS是 R 的较小划分,RLPS一定小于 256,仅需 8 位表示。 第一级减法器退化为“8 位-8 位=9 位”(表示被减数和减数均取 8 位,差取 9 位

的减法器,本文后面沿用此表示法),输出时将第 8 位(从 0 计,本文后面沿用

此位索引表示法)取反即可。 第二级减法器为一个“9 位-9 位=10 位”减法器,其差值的第 9 位表示了 O 和 RMPS

的相对大小,即 bin 判决结果 mps_flag(mps_flag 表示 mps,反之 lps);而差值

的其他低位部分又可以作为 LPS 时 Offset 的更新值,此处由于 LPS 时 R*一定小

于 256,重归一化至少左移一位,所以第二级减法器输出的第 8 位(次高位)一

定被移位器抛弃,减法器不必计算该比特。 在重归一化过程中,由于 R*的 小值为 LPS 时的 小 RLPS值,从表 TabRLPS可

以得到 RLPS 小值为 2,所以重归一化 大的左移位数为 log2(256/2)=7,所以 F1D是为 8 位输入 3 位输出,移位器已为控制端输入为 3 比特,输入码流 input 端口

位宽至少为 7 比特。

6.3.1.2 猜测执行——一种解相关的思路和方法

比特分析对关键路径的缩短毕竟有限,在清楚了各处理的位宽之后,下一步回到我

们的核心问题——相关性。之所以关键路径如此长是因为各级计算间的强相关性,区间

划分,bin 判决,重归一化都需要串行的进行。而进一步深入,串行化的本质原因在于

其前级运算未执行结束之前,相关的后级运算的输入不能确定,至少是不能完全确定。

也即相关性导致串行化的原因是“没有输入”。这样我们可以更进一步的设想,如果有办

法人为地给出输入,即使相关的运算也可以并行的执行,相关性即得到了解放。顺着这

一思路,下一个问题是人为猜想出的输入可能并不是实际输入,这一问题有两种思路: 穷举猜测:如果我们能够将所有可能的输入值对应的结构都计算出来,则其中一

定有与实际输入值相对应的正确结果。在前级相关的计算的过程中,并行的按所

有可能情况的输入进行后级相关计算,在前级相关计算结束时以其结果选择后级

计算结果中正确的那个,实现了前后相关计算的并行化。 优势猜测:同是猜测并行执行,不同的是仅对输入值中可能性较大的一种或多种

情况进行猜测执行,猜测值也可能是动态自适应的,在真实输入计算出来后对猜

测执行的结果进行判决,如果真实输入落在了小概率(劣势)情况中,没有正确

的计算结果,则进行串行计算。 优势猜测是一种统计意义上的优化,通过相对较小的代价选择优势的情况进行猜测

执行,在多数情况下可以命中真实输入值,使总吞吐率得到提高。优势猜测固然的成为

Page 108: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

88

一种变速率的方案,本章 6.4 节的另一种高速结构是基于优势猜测,所以本节主要讨论

穷举猜测。 穷举猜测是一种复杂度极高的电路变换,对于 n 比特的输入数据进行穷举猜测执行,

理论上需要对后级相关电路复制 2n倍,电路复杂度成指数级上升,从某种意义上说这一

复杂度变化趋势使得穷举猜测不能成为一种普适的解相关方法,因为复杂度瞬间就可以

超过实际可接受的范围;而且,并行执行后的选通电路的时延也随着 n 成线性增加,增

加到一定程度时可能抵消掉猜测执行带来的延迟节省。当应该指出的是另一方面,由于

穷举展开后,每一份并行执行的后级相关电路拷贝中,其猜测的输入值都是固定值,这

一固定值使得各份拷贝电路内部逻辑可能得到进一步的优化。 穷举猜测解相关结构设计的 关键问题在于选择进行猜测的对象,即对什么信号进

行猜测执行。选择猜测对象的时候需要兼顾性能提升和复杂度的增加,需要遵循以下原

则: 处于关键路径上:关键路径才决定系统性能,选择关键路径上的信号进行穷举猜

测自然是首选。 小位宽:穷举情况数不仅影响了电路复杂度,而且还影响了选通电路的延迟,尽

量选取较小位宽的信号作为猜测对象也是一条必要要求。比如一些控制信号和裁

决结果。 前后计算平衡:猜测执行后由于前级相关计算和后级相关计算是并行执行,所以

为使并行计算的总吞吐率充分提升,倾向于平衡得划分电路级别。 驱动的计算多:对于驱动多的信号进行猜测可以使得更多的路径得到优化,避免

优化迭代不收敛的情况。但这也意味着需要复制的逻辑也增多。设计对前两个原

则的要求较严,后两个相对较松。 根据这些原则,我们很容易在图 6.5 中寻找到 佳的猜测对象——bin 决策结果

(mps_flag)。mps_flag 信号位于原始结构关键路径的中央,而且仅有一个比特的位宽,

同时驱动了关键路径和次关键路径上的多个数据通路,它满足了上述全部四条原则。由

于猜测变量的位宽只有一个比特,其驱动电路的复制倍数仅为二份,即 mps 和 lps。如

图 6.6 所示的电路变换,bin 决策同上下文模型库访问(Context RAM)以及各种更新(包括 Offset/Range,Context)完全并行起来,更新结果根据真实的 bin 决策结果进行选通。

Bin decisonContext RAM

Offset/range updateContext updatecontext index

state

range, offset

dec bin

(a)

Bin decisonMPS/LPS

flag

(b)

MPS decoding

LPS decoding

range, offset,

context info

图 6.6 基于 bin 猜想的解码电路结构变换示意图

Page 109: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

89

经过 bin 猜测变换的算术解码引擎部分的具体电路如图 6.7 所示,我们看到: 1. 原关键路径中重归一化的 F1D 和 Shift 被脱离到关键路径以外,关键路径长度

显著缩小,仅包含一个查找表,两个减法器,和一个选通器。图 6.7 结构的次

关键路径为 O-RMPS结果经过下 Shift 和选通器到 new_O,该路经虽说比关键路

径多经过一 Shift,但经 Shift 的路径上,第二级减法器的结果仅需要低八位,比

第十位 mps_flag 计算得快,因此而次关键路径比关键路径略短。 2. MPS 解码和 LPS 解码被分别独立的执行(图 6.7 细虚线分割成的上下部分),

MPS 和 LPS 的数据特性被用来优化各自的解码过程。LPS 解码部分,由于

RLPS<256,重归一化一定至少左移一位,于是移位器 Shift 的输入端仅取低 8 位

即可,Shift 内部逻辑也得到相应简化。 3. MPS解码部分,由于R/2≤RMPS<R,而256≤R<512,所以RMPS满足128≤RMPS<512,

这意味着 MPS 再归一化 多左移一位。这一特性使得 MPS 的再归一化过程可

简化成一级二选一的选通器,如途中所示。

TabRLPS

-

-

R[8:0]

RLPS[7:0]

RMPS[8:0]

O[8:0]

+-

+-[9]

F1D new_R

new_O

pStatus[5:0]

01

[8]

[7:0]

[8:0]

01

Shift

Shift

[7:0][8:0]

01

01

LPS decoding

MPS decoding

[2:0]

input

[7:0]

[7:0]

图 6.7 bin 引擎优化方案 1(猜测执行)

6.3.1.3 查找表优化

组合逻辑电路的两种基本实现模式为基于逻辑门的和基于查找表的。从根源上这两

种实现模式是本质上一致的,因为它们都是可以相互转化的。逻辑门电路按照真值表顺

序排列成查找表,按电路输入作为地址进行寻址得到的结果与逻辑门的功能完全一致;

而查找表的表项看成地址到其内容的逻辑映射,提取出逻辑表达式,还原为与或式的表

达也可由逻辑门完全实现。但在实际电路设计中往往根据性能,面积和功耗等设计指标

的不同来选择合适的实现模式。一般来说,逻辑门方式用于逻辑运算关系和数学运算关

Page 110: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

90

系(因为基本数学运算的 佳逻辑实现结构已经基本研究成熟)比较明确的场合;而查

找表方式用于输入输出对应关系不易用基本数学和逻辑运算表示。一般情况下查找表实

现的面积要大于逻辑门实现,因为逻辑关系被完全摊平成了真值表后,原有的字节(或

字)操作的规律性不易再被综合器发现和利用,一般情况下可以认为查找表的面积随输

入位宽成指数变化,当输入位宽较大时,查找表的面积一般较大。 但从延迟来分析,两种模式有其各自的特点:影响逻辑门模式延迟的是具有相关性

的运算的复杂度,而影响查找表的延迟的主要是输入位宽。虽然有明确逻辑和数学运算

关系的组合逻辑有利于用逻辑门模式实现,但如果运算相关性太强,而决定这些运算的

总体的输入数据位宽并不大到实现面积不可接受的情况下,查找表的延迟可能小于逻辑

门的串联。这一思想实质上就是一种以面积换速度的方法,在软件性能优化上是一种常

用方法。从另一方面去理解,每一个待计算的比特都是一棵以输入比特为叶子的逻辑树,

电路关键路径优化实质上大部分是使这棵树尽量平衡,即把关键路径上的部分逻辑一定

到非关键路径上,而查找表恰好从根源上就是一棵平衡的树,因而在一定程度上查找表

在延迟上有其优势的因素。 CABAC 具有的长计算路径这一特性,给我们利用查找表进行延迟优化提供了可能。

完全的查表化要求的输入位宽为 Range+Offset+pStatus=9+9+6=24,这意味着高达

224=16M 个表项,而且以二选一选通器来估计延迟,24 级选通在 0.18µm 工艺下也需要

大约 12ns 的延迟,还不如逻辑门实现。但是局部的查找表优化仍是可能的,这样的局部

电路要求: 处于关键路径上或对关键路径优化起到作用,这一点是自然要求。 逻辑关系不易用数学和逻辑运算来表示。 连串电路具有唯一的小位宽的输入。 衡量查表化的标准可以按逻辑门级数/输入位宽=2 为门限,比例高于 2 的偏向于

采用查找表实现。(因为一个二选一选通器可以认为是两级逻辑门) 考虑到上述局部电路查找表化的要求,我们选择了 LPS 下 R 重归一化的部分,整个

LPS Range 重归一化的结果(左移位数 shift_bit 和更新结果 new_R)完全由 TabRLPS 的

输入一共 8 个比特所完全决定了。利用这一性质,我们将 LPS Range 重归一化的计算完

全包含到 TabRLPS,形成的 TabRLPSPlus。由于 TabRLPSPlus 与 TabRLPS 具有相同的输

入,因而具有相似的延迟,这样 shift_bit 和 new_RLPS 的计算延迟就被完全的掩盖了,

如图 6.8(a)(b)所示。

Page 111: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

91

TabRLPS

R[7:6] pState[5:0]

RLPS

First1Detect Shift

shift_bitLPS new_RLPS

(a)

TabRLPSPlus

R[7:6] pState[5:0]

RLPS shift_bitLPS new_RLPS

(b)

LPS renormalization

TabRLPSFull

R[7:6]

pState[5:0]

RLPSxshift_bitLPSxnew_RLPSx

10 2 3

RLPSshift_bitLPSnew_RLPS

(c)

(critical)

(not critical)

图 6.8 查找表优化示意图

更进一步,在图 6.8(b)所示的合并表中,两组输入端 R[7:6]和 pState[5:0]的到达时间

各不相同,而 R[7:6]由于处于 bin 解码的核心反馈环路中,所以 R[7:6]端的输入时序较紧

张。为了解决查找表输入端到达时间不平衡,更好的优化 bin 解码核心反馈环路时序,

我们采用了入图 6.8(c)所示的表拆分变换。一个 TabRLPSFull 表项包含四个 TabRLPSPlus表项,该表项与这四个表项具有相同的 pStatus 地址,四个表项分别为 R[7:6]=0,1,2,3 时

的{RLPS,shift_bitLPS,new_RLPS}输出,通过 pStatus 查出的 TabRLPSFull 表项被 R[7:6]进行二

级选通,得到与 TabRLPSPlus 完全相同的结果。通过该表拆分变换,时序紧张的 R[7:6]到 RLPS 通路仅具有一级四选一选通器。将查找表优化集成到算术解码引擎得到如图 6.9所示结构,结构中使用了适当的 retiming,将概率准备部分逻辑用寄存器隔开。

通过查找表优化,LPS 解码逻辑得到了大大简化。关键路径被锁定在关键反馈环路

中,这使得我们可以进一步更集中的优化关键反馈环路。原关键反馈环路中用于区间划

分的查找表虽然面积有所增加,但延迟没有变化,而且被移动到了关键反馈环路以外,

区间划分现仅通过一级四选一选通逻辑完成。关键路径仅包含两个选通器和两个减法器。

Page 112: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

92

R[8:0]

TabRLPSFull10 2 3

TabRLPSFullstateMPS stateLPS

10 2 3

MUX1

O[8:0]

R[7:6]

[9]

1 0

lps_flag

10

[8]

Shifter

RMPS [8:0]

shift_bitLPS

newRLPS

<<1

<<1

input bits

10

10

lps flag

[7:0][8:0] +

-

+-

MUX2

lps_flag

RLPS[7:0]

图 6.9 bin 引擎优化方案 2(查找表优化)

6.3.1.4 运算顺序优化

上述两种优化方法有一个共同的要求——小位宽的输入,这使得以字节(或字)为

单位进行的数学运算无法有效的利用这两种方法。这一类操作具有一个共同的特点,即

多操作数输入,包括数字信号处理电路中常见的加法器,乘法器,移位器,选通器等都

具有这一性质。长期数字信号处理电路研究设计出了一系列低延迟的实现结构,并将这

些结构封装成了可综合的逻辑库单元(又称 Designware),由综合器将 RTL 中的相应数

学符号和语句转化成库单元中的优化实现。库单元的结构可以保证在一个运算操作(比

如加法器)内时延是 小的,这一点是通过使各输入比特到输出比特的时延尽量的均衡

化而得到的。这样运算操作内时延已足够均衡的情况下,剩下的可能仅是使各运算操作

连接成的整体结构也尽量均衡化。运算间结构调整不能改变总的计算结果,数学运算所

固有的一些运算性质给通过运算顺序交换来对树形运算结构进行均衡化提高了可能性。

这些运算性质包括: 交换率:一个运算的两个输入数的顺序可以交换。 结合律:两个连续运算的顺序交换后结果保持不变。如图 6.10 左所示,具有结合

率性质的两个操作⊕和⊗的执行顺序可以交换,结果是 a,c 两个输入对 y 的延迟

Page 113: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

93

进行了调整,对于 a 信号延时较长的情况下,y 的延时得到了缩短。如果 α具有

交换率,则 b 对 y 的延迟也可以缩短。 分配律:⊗对⊕具有分配律定义为(a⊕ b)⊗ c=(a⊗ c)⊕ (b⊗ c)。如图 6.10 右所示,

分配律对各输入端延时进行调整的情况在于当 α为选通器时,该操作具有一个选

通控制信号,进行如图所示变换后,选通在后级进行,从选通控制信号到 y 的时

延得到了缩短。

+

a

×

b

c

y

×

+

a

y

=

cb

+

a

×

b

c

y

×

+

y

=

cb

结合律 分配律

×

ca

s

s

图 6.10 运算顺序可交换的性质

表 6.1 给出了常用的数字信号处理中使用的运算符之间的运算性质。我们看到相同

运算之间普遍存在结合性,而数学运算对于选通操作普遍具有分配律,充分利用这些性

质,我们可以对运算路径进行均衡化,使得组合逻辑的输出信号对于各输入信号来说

长时延 小化。

表 6.1 常用运算符运算性质总结

⊕ \⊗ 加减 乘 左移 右移 选通

加减 结合 分配 分配 - -

乘 - 结合 结合 - -

左移 - 结合 结合 - -

右移 - - - 结合 -

选通 分配 分配 分配 分配 结合

具体到 bin 解码引擎部分,关键路径在于 bin 决策的第二级减法器输出,该减法器

两输入端时延明显不平衡,如图 6.9 所示。我们采用如下等价变换

( ) ( )LPS LPS LPSO O R R O R R= − − = − +

来交换两个减法的计算顺序使得 bin 决策的输出对于各输入端来说达到了均衡化。具体

实现如图 6.11 所示,bin 决策部分时序得到了进一步的优化,MUX2 被均衡化移出关键

路径。到此为止,核心算术解码引擎关键路径仅包含一个减法器,一个加法器和一个选

Page 114: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

94

通器。

R[8:0]

TabRLPSFull10 2 3

TabRLPSFullstateMPS stateLPS

10 2 3

MUX1

+-O[8:0]

R[7:6]

[9]

RLPS[7:0]

1 0

lps_flag

10-

[8]

Shifter

RMPS

[8:0]

shift_bitLPS

newRLPS

<<1

<<1

input bits

10

10

lps flag

[7:0][8:0]

ADD

SUB0

SUB1

+-

+ -

MUX2

lps_flag

图 6.11 bin 引擎优化方案 3(运算顺序优化)

6.3.2 单 bin 概率更新反馈结构优化

算术解码部分的核心循环频率的提高,要求概率值更新和概率索引更新的反馈环路

频率需要相应的提高。概率模型的选取是这两个反馈环路共用的关键路径,也是算术解

码核心部分的重要输入。不同类型的语法元素对应的二值化方法不同,而且概率模型分

配也不同,这使得这两种反馈环路不像算术解码核心部分一样具有通用性,而必须针对

不同的语法元素进行具体的优化。 首先我们对不同的语法元素的二值化和概率模型分配做一个分析,其具有以下特点: 我们将语法元素分成几大组,每一组包含一系列连续出现的语法元素。头信息组包

括宏块类型,宏块跳过标记,分块类型,量化系数,编码块模式等,头信息均为宏块级

别信息,出现频率相对较小,但二值化和语法切换的情况较复杂,这类语法元素对性能

(特别是高码率)影响不大,我们采用多拍解码的方案来匹配系统的工作频率。 第二组是运动矢量与参考索引,块级别信息,首 bin 模型由上边和左边乡邻块已解

Page 115: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

95

码信息决定,接下来的 3 个(运动矢量)或 1 个(参考索引)bin 采用固定的独立模型,

而剩余 bin 均采用一个模型。 第三组是帧内预测模式信息,亮度模式采用一个固定的模型,而色度模式类似于运

动矢量,但由于每宏块仅有一个,对系统性能影响不大。 第四组是系数的非零位置表(significant map,后简称 map),像素级别信息之一,

每个像素位置具有一个或两个 bin,在块内部按照位置各 bin 的概率模型相互独立,但

bin 间语法元素切换非常频繁。 后一组是非零系数值(level),包括系数大小(abs_level)和符号(sign)。abs_level

采用前后缀编码进行二值化,bin 串的语法元素切换判断较简单。基本上使用相同的概

率模型,概率值更新需要非常频繁。 从各语法元素所占的 bin 比例来看,后两组像素级别的信息占据主要的部分。另一

方面,后两组 map 和 level 语法元素分别标志性代表了两种概率模型分配的方式,这两

种方式涵盖了其他所有语法元素或其部分。第一类(如 map)连续 bin 间概率值更新是

块级别的,概率值更新反馈相关性较松,但概率模型索引变化是 bin 级别的,因此概率

索引更新(包括语法元素切换)反馈的相关性较紧。第二类(level)连续 bin 间概率值

更新是 bin 级别的,概率值更新反馈相关性较紧,而概率索引更新反馈相对较松。所以

对于高速概率更新反馈结构设计必须充分利用这一特点来进行,针对不同的类型设计不

同的结构,有效的提高概率更新反馈结构的性能。综合以上原因,下面的讨论集中基于

map 和 level 两组进行。

6.3.2.1 Significant Map

CABAC 量化系数采用 Significant map 来编码非零系数的位置,map 包括两类语法

元素,非零标记(sig)和 后系数标记(last),每个语法元素均只包含一个 bin,解码

bin 值即为语法元素值。sig 表示当前位置的编码系数是否为零,当 sig 为 0 时跳过当前

位置的 last 而继续解码下一个位置的 sig,而当 sig 为 1 时下一个语法元素为 last 表示当

前位置的非零系数是否是本块中 后一个非零系数,如果 last 为 1 则继续解码下一个位

置的 sig 否则本块 map 结束,开始下一个块的 map。sig 和 last 的概率模型是按照系数位

置进行分配的,同一种类型的块(比如亮度/色度,帧内/帧间预测)在相同的像素位置

采用相同的概率模型,且 sig 和 last 采用分离的概率模型。由于一个块的 后一个位置

是否非零已经有前面非零位置的 last 标记所决定,这样一个 H.264 的 4x4 块 map 对应着

多 15×2=30 个概率模型。对于一个具体的 map bin,其概率模型索引 ctxIdx 可以完全

由其像素位置 p 和语法元素类型 s 来决定(p=0~14,s=1 表示 sig,s=0 表示 last)。解码

bin 的取值与 ctxIdx 的切换具有如下关系,下表 i 为 bin 索引,而 bi为当前 bin 解码值。

Page 116: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

96

表 6.2 上下文更新逻辑关系

si bi si+1 pi+1 0 0 1 pi+1 0 1 1(块切换) pi归零 1 0 1 pi+1 1 1 0 pi

在 块 map 解 码 内 部 , 上 述 逻 辑 关 系 简 化 可 成 逻 辑 门 实 现 :

1 1 1~ ( ),i i i i i is s b p p s+ + += ⋅ = + 。根据此逻辑表达是可以设计出基本 map 的概率更新反馈结

构,如图 6.12 所示。由于概率值更新以块为单位进行,该部分逻辑时序要求较松,我们

主要关注概率索引更新,也即 p 和 s 的更新。为了减少由 p 和 s 访问 Context RAM 的时

延,我们将块级别需要用到的 30 个概率模型缓存于寄存器中,然后通过 p 和 s 组合的 5根地址线进行索引,以减少概率模型访问时延。

si

pi

si+1

pi+1

valMPS0~29

miMUX

state0~29

pSi

MUX

lps_flag

bi

[3:0] [3:0]

[5:0]

图 6.12 map 概率更新反馈基本实现结构

如果与上节优化的 bin 解码引擎结构相配合,上述基本实现结构在性能上存在两个

问题。第一,30 选一逻辑的延迟比较大,相当于大约 10 级逻辑门,这使得从 pi/si到 pi+1/si+1

和 pSi的路径都过长。第二,lps_flag 在 bin 引擎中已经占据较大时延,仍要经过至少 5级逻辑门才能到达 pi+1/si+1。由于这两点原因导致系统关键路径仍然较长。

根据算法进一步分析,虽然概率模型由 pi[3:0]和 si在 30 个可能值中选择而的。但由

于前面 bin 已解码的信息的限制,以及 pi+1/si+1更新的可能值的限制,我们知道在每一个

bin 开始解码时,其下一个 bin 的 pi+1/si+1组就只有两种情况,远不到 30 种,利用这一特

点,我们可以采用链式移位结构来代替延迟较大的 30 选一逻辑。而且,这两种情况直接

对应于当前 bin 的两种可能解码值 mps 和 lps,所以 lps_flag 在此处驱动逻辑的延迟可以

通过如图 6.11 所示的猜测执行结构而消除。

Page 117: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

97

1 0

R0

1 0

1 0

1 0

TabRLPSFull TabRLPSFull

R1 R2 R3

mi

ContextRAM

state0 state1

0 1

syntax_skip si

R LPS decoded info 0,1,2,3

mi

lps_flag

bi

图 6.13 map 概率更新反馈的链式猜测执行结构

进一步分析表 6.2,在一个块内部 map,s/p 更新的情况有三种:(1)s 加 1,p 加 1;

(2)s 不变,p 加 1;(3)s 减 1,p 不变。如果我们设定变量 map_index=p×2+(~s),我们可

以看到 map_index 取值为 0~29 时与概率模型索引一一对应,更重要的性质是块内部 map的索引更新的三种情况下,map_index 取值均为递增,且递增量仅为 1 或 2。利用这一性

质我们设计出替代 30 选一的链式移位结构。递增性表明概率模型按照 map_index 为顺序

被访问,而且访问过或跳过的 map_index 对应的模型不会再被访问,因而适合于用链式

移位的结构;另一方面,递增量可能为 1 或 2,这要求链式移位器具有 1 和 2 两种偏移

量。图 6.13 给出了满足此要求的左移链。其中,移位量是通过 syntax_skip 信号进行控制,

当 s/p 更新的情况(2)时(map_index 增量为 2),syntax_skip 信号有效,移位链进行跳跃

移位。移位器左端选通器输出为当前 bin 的概率值,向右各寄存器中的概率模型对应的

map_index 依次递增 1。移位链的右端从 Context RAM(或寄存器缓存)读出概率模型值,

送入移位链,当发生跳跃移位时需要读入两个概率模型,否则需要读入一个。为了进行

猜测执行和打断从概率模型输入端到查找表的直接路径,链式移位器的 小长度是如图

所示的四级。 两个可能的概率值被输入两个独立的查找表, 后通过移位控制信号 syntax_skip 进

行选通,这样查找表的延迟就被排除到 lps_flag 信号的驱动逻辑延迟以外。而另一方面,

从算法上看,从当前 bin 概率状态到算术解码引擎是一拍完成。但为了将查找表的延迟

屏蔽在算术解码引擎以外,我们将查找表输出进行了寄存,多加的一级延迟可以在查找

表的输入端找回。通过 retiming,查找表的输入端连接从各寄存器的输出端移到输入端。 通过上述一系列优化,图 6.13 所示的 map 概率更新反馈结构中,进入 bin 解码核心

环路的逻辑从一个 30 选一逻辑缩短到一个二选一选通器,从核心环路出来之后的逻辑减

少了一个“4+1=4”比特的加法器。map 概率更新反馈结构关键路径仅为一级二选一选

通器和一个 64 选一的查找表,其长度小于 bin 解码核心反馈的关键路径。

Page 118: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

98

6.3.2.2 Coefficient Level

非零量化系数的值是通过 level 来编码的,当前块的 level 位于码流中相应块的 map之后。每个 level 包括两个语法元素,绝对值(abs_level)和符号(sign),由于 level 均为非零元素,所以参与编码的 abs_level为 level 绝对值减一,sign为 level 的符号。abs_level采用前缀后缀编码进行二值化,其二值化和概率模型分配情况如图 6.14 所示。前缀采用

多 14 个 bin 的截断一元码(truncated unary code,TU),当 abs_level<14 时,其编码只

具有前缀,码字为 abs_level 个 1 后带一个 0。当 abs_level≥14 时,前缀码为固定的 14 个

1,需要编码后缀,后缀编码为对(abs_level-14)进行零阶指数哥伦布编码,码长是码首

(leading)的零的个数的两倍加一,解码值是码字二进制数值减一,根据 6.2 节分析一

个 abs_level 多可能包含 45 个 bin。abs_level 的前缀 TU 码采用自适应二进制算术编码,

对每一个系数来说,仅采用两个概率模型,首 bin 采用单独概率模型,其后 13 个 bin 采

用同一个概率模型。两个概率模型均由块类型和本块已解码系数大于和等于 1 的个数所

决定,除首 bin 到第二 bin 之间的概率索引更新是 bin 级别,其余概率索引转换均为 level级别,bin1 到 bin13 之间的概率值更新是 bin 级别的。后缀完全采用等概率二进制算术

编码,不存在概率更新,仅需检测指数哥伦布码的码长以判决 level 结束。abs_level 后接

一个 bin 的等概率编码的符号(sign)。

0 1 2 13

prefix suffix

... 14 15 ...

TU coded EG0 coded

ctx1 bypass

bin index

ctx0

图 6.14 abs_level 二值化和概率模型分配

abs_level 的概率更新反馈结构设计关键有两个方面的问题。第一个问题是对于 bin0

和 bin1 的概率模型索引切换,这些切换都与本块已解码的 abs_level 的大小有关:

0

1

( ) (( 2! 0)0 : (4,1 1))( ) 5 (4, 2)

ctxIdx bin c Min cctxIdx bin Min c

= = += +

其中,c1 为本块已解码的非零系数中,绝对值等于 1 的系数总个数,而 c2 为本块已解

码的非零系数中,绝对值大于 1 的系数总个数。ctxIdx(bin0)的取值可能为 0~4,初始时

c1=c2=0 而 ctxIdx(bin0)=1,一旦解码系数绝对值大于 1 出现,则 ctxIdx(bin0)被固定为 0,解码系数绝对值每出现一个 1,c1 加 1,ctxIdx(bin0)也增加 1,直到 c1=3 之后不再增加;

ctxIdx(bin1)仅跟 c2 有关,解码系数绝对值每出现一个大于 1,c2 加 1,ctxIdx(bin1)也增

加 1,直到 c2=4 之后不再增加。利用这种递增性我们可以类似 map 概率更新反馈采用链

式结构来进行 level 间概率模型索引切换。如图 6.15 所示,我们用寄存器分别存储当前

Page 119: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

99

块可能用到的十个概率模型,其中左边五个用于 bin0,右边五个用于 bin1。图示为寄存

器的初始状态,左边寄存器中 ctxIdx 值分别为 1,2,3,4,0(从左往右),右边寄存器

ctxIdx 分别为 5,6,7,8,9。 第二个问题是对于 bin2~bin13,概率模型索引不变,而概率值需要 bin 级别每拍更新,

从逻辑上看,从当前 bin 对概率值的更新值到下一 bin 的解码引擎输入仅有一级寄存器

延迟,而这一延迟以存在于查找表 TabRLPSFull 的输出用于屏蔽概率准备对核心算术解码

引擎时序的影响,因此从当前 bin 对概率值的更新值到查找表 TabRLPSFull 的输出将形成

一条较长的组合逻辑路径。这条路经上包括概率更新查找表 TabStateUpdateMPS/LPS 和

TabRLPSFull,它们均为 6 比特地址输入,使得此路径成为大约 24 级逻辑的关键路径。不

过,由于串联的 TabStateUpdateMPS 的输出和 TabRLPSFull 的输入完全相同,这是的两个

查找表的串联子系统总共仅存在 6 比特的输入,如果将两表进行合并而产生的查找表将

于原表 TabRLPSFull 具有相似的延时。图 6.15 中的靠右两个 TabRLPSFull 分别包含了 LPS和 MPS 的概率更新,关键路径延时仅为一个 6 比特查找表和一个二选一选通器。

TabRLPSFull

c1=0 c1=1 c1=2 c1=3 c2>0 c2=0 c2=1 c2=2 c2=3 c2=4

1 0

TabRLPSFull (LPS update)

TabRLPSFull (MPS update)

1 0 1 0

TabStateUpdateLPS

TabStateUpdateMPS 0 1

1 0

lps_flag

binIdx=0

binIdx<2

[5:0]

[5:0] [5:0][5:0]

[5:0]

shift when abs_level = 1

[5:0]

shift when abs_ level > 1

R LPS decoded info 0,1,2,3 图 6.15 abs_level 概率更新反馈优化结构

6.3.3 双 bin 解码结构优化

在单 bin 方案中,我们充分利用算法的具体特点,高效的采用了猜测执行,查找表

优化,运算顺序优化等技术,同时在存储器数据访问上,利用了多级存储层次,链式移

位更新结构等优化手段,将单 bin 的迭代反馈环的时序优化到了极致。下一步,我们进

行更高层面的结构变换,考虑对单 bin 的反馈环进行展开。归纳所有反馈环展开的手段,

其 通用、 核心的和 根本的方法都是 lookahead,亦即同时考虑多次迭代,分析多次

迭代后的输出和状态与当前状态和各次迭代输入的总体关系,从而从更大的范围内寻求

缩短关键路径的可能性。由于直接对 CABAC 解码逻辑进行多次迭代的 lookahead 具有

极高的复杂度,本文主要就双 bin 解码进行讨论。

Page 120: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

100

从迭代展开的方式看,双 bin 解码结构可以有两种实现方式,直接级联和双 bin 猜

测执行(如图 6.16 所示)。直接级联是 简单的迭代展开的方法,原则上展开后每拍解

码 bin 数提高一倍,但同时关键路径增长一倍,实际吞吐率没有提升。但实际情况中,

由于以下两个原因,直接级联也有提升吞吐率的可能性。 级联后两个 bin 的总解码关键路径中,仅包含一个寄存器 setup 时间,而且由于 R和 O 都需要初始值,这种带 reset 端的寄存器在 0.18µm 工艺下 setup 值一般达到

0.8ns~1.0ns,单 bin 结构中占据总关键路径的 20%以上,经过直接级联就可以优

化 10%。 另一方面,单 bin 关键路径的起始端和结束端往往并不是同一个信号比特,这使

得直接级联后的 长路经并不完全是由单 bin 的关键路径级联而成,因而总关键

路径延迟有可能小于单 bin 关键路径的两倍。 由于电路整体结构未改变,上述两种原因只能对直接级联性能带来小幅提升。进一

步发掘迭代展开的性能提升潜力的方法还是归于双 bin 猜测执行结构。两个 bin 的计算

路径被完全融合,有利于更多算法和逻辑优化的手段被利用。

Bin decision

MPS Update

LPS Update

01

Bin decision

MPS Update

LPS Update

01

bin0 decode bin1 decode

R

O

option0

new_R_bin0

new_O_bin0

new_R_bin1

new_O_bin1

option1 option2

1 0

lps_flag0 lps_flag1

R

O

(a)

MM Update

ML UpdateR

O

Bin decision

LM Update

LL Update

MUX

option0,1,2

new_R_bin1

new_O_bin1

R

O

(b)

lps_flag[1:0]

图 6.16 双 bin 解码两种实现结构 (a)直接级联 (b)双 bin 猜测执行

无论是哪种迭代展开方法,有一个共同的问题需要首先解决,即概率模型准备。双

bin 解码在一拍内完成,概率模型准备逻辑也需要在一拍内准备好这一拍内可能用到的

三个概率值,根据前面的讨论引入的 TabRLPSFull 查找表,实际需要的是有三个概率值对

应的三组 R LPS 解码信息。我们将由一个概率值对应的 TabRLPSFull 表项定义为一个

option,如图 6.16 所示,option0 对应本拍 bin0 的概率值,而 option1/2 分别对应当 bin0为 MPS/LPS 时 bin1 对应的概率值。如何准备出每拍所需要的三个 option 成为了双 bin解码方案中概率更新反馈环路设计的主要困难。

为此我们首先设计 map 的双 bin 概率反馈结构,如图 6.17 所示。由 6.3.2.1 节已知,

单 bin 解码的 map_index 递增量为 1 或 2。所以双 bin 解码时,当前拍 bin0 相对于上一

Page 121: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

101

拍 bin0 的 map_index 增量为 2,3 或 4,当前拍 bin1 相对于上一拍 bin0 的 map_index 增

量为 3,4,5 或 6。因而当前拍所有可能用到概率模型的 map_index 增量为 2,3,4,5和 6,我们采用五个 TabRLPSFull 分别计算不同概率模型的可能 option 值并在之后进行选

择,从而将查找表排除在选通信号所在的关键路径以外。从每一拍计算的 bin0 来看,

map_index 可能增量为 2,3 和 4 三种情况,移位链每一级具有三个输入源,选通信号为

2 比特的 syntax_switch_ff。为了避免从 bin 算术解码核心循环到概率更新反馈的任何时

序路径,我们的 syntax_switch_ff 和 lps_flag_bin_ff 都采用寄存器输出,syntax_switch_ff寄存器可以从移位链的 retiming 中获得(如图所示),而 lps_flag_bin_ff 则通过在其驱动

的选通器上 retiming 而获得。option0/1/2 分别采用 lps/mps 猜测执行,其结果送入 6 个寄

存器。option0 可能的 3 种结果和 option1/2 可能的四种结果,在假设当前 bin1 的解码结

果为 mps 和 lps 情况下被分别选通,其选通信号 s0~s5 的产生仅基于当前 bin0 的解码结

果。

R0

MU

X

R2R1R0 M

UX

R4R3R2 M

UX

R5R4R3 M

UX

R6R5R4 M

UX

R7R6R5 M

UX

R8R7R6

R1 R2 R3 R4 R5

TabRLPSFull TabRLPSFull TabRLPSFull TabRLPSFull TabRLPSFull

MU

X

...

d0 d1 d2 d3 d4

MUX

d0 d1 d2

s0 MUX

d0 d1 d2

s1 MUX

d1 d2 d3

s2

d4

MUX s3 MUX s4 MUX s5

d1 d2 d3 d4 d1 d2 d3 d4 d1 d2 d3 d4

1 0

option0

1 0

option1

1 0

option2

lps_flag_bin1_ff

syntax_switch_ff

LPS ctx update

s0,s2,s4

lps_flag_bin0

MPS ctx update

s1,s3,s5

图 6.17 双 bin 解码的 map 概率模型准备结构

由于 level解码中的概率值更新对于双 bin展开来说比较简单,其结构类似于其单 bin

结构,两次概率值更新可以合并成一级查找表,然后和 TabRLPSFull 表合并成一级。采用

所提的概率准备结构后,系统关键路径重新回到 bin 算术解码核心逻辑,下面我们其双

bin 猜测执行结构。如图 6.16(b)所示,双 bin 猜测执行具有五组主要路径:bin 决策路径

以及 MM/ML/LM/LL 四组更新逻辑。我们对这五组路经分别进行分析。 (1) LL 更新路径组

Page 122: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

102

0 0 1 1

0 0 0 1 1

0 1 1

((( ) _ ) ) _

((( ) _ ) ( _ ) ) _

((( ) _ ) ) _

2[ ]0[ ]((( ) )[7 : 6]

ll lps l lps

lps l lps

lps

lps

O O R R shift lps R R shift lps

O R shift lps R shift lps R R shift lps

O R shift lps R shift lps

option Roption shiftO RR

= − + << − + <<

= − << + << − + <<

= − << + <<

= − << +2[ ])0[ ] 0[ ]( )[7 : 6] ( )[7 : 6]

[7 : 6] [7 : 6]2[ ]

[7 : 6]2[ ]

0[ ]( )[7 : 6][7 : 6]

lll

option shiftoption newR option newR

R Roption newRR

Roption newR

option newRR

<<

=

=

算术表达式中的除法表示选通操作,被除数是待选数据,除数是选通控制信号。上

式中 Oll的 Offset bin0 的更新时的加项 Rlps0经移位后与 bin1 更新时的减项相抵消,这使

得 O→Oll路径上的加法器和减法器各减少了一个,所以双 bin 猜测的 LM 路径明显短于

单 bin 级联,如图 6.18 所示。

-O +-

R

Shifter

MUX

MUX

option2option0

Rlps1

shift0

newR0

Rll

Oll+ Shifter

图 6.18 LL 更新路径组

(2) LM 更新路径组

1

0 0 0 1

1

_( ) _ (( )[8])

0[ ] 2[ ]0[ ] 0[ ](( ) ) (( )[8])0[ ][7 : 6] [7 : 6] [7 : 6] ( )[7 : 6][7 : 6]

( )

lm l

lps lps

lps lps

lm l lps

O O shift mpsO R R shift lps newR R

option R option Roption shift option newRO R option newRR R RR

R R R shif

= <<= − + << << −

= − + << << −

= − << 1_

2[ ] 2[ ]0[ ] 0[ ]( ) (( )[8])0[ ] 0[ ][7 : 6] [7 : 6]( )[7 : 6] ( )[7 : 6][7 : 6] [7 : 6]

lps lps

t mps

option R option Roption newR option newRoption newR option newRR R

R R

= − << −

由于单 bin 优化方案中,O→Rm和 O→Rl没有路经,而 R→Rl,O→Om路径较短,

Page 123: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

103

只有 R→Rm/Om和 R/O→Ol的计算延迟较长,即只有从 R 出发的 M 路径和到达 O 的 L路径比比较长。这样在 LM 情况下,两组较长路经恰好能分离开,不会出现在 bin0 和

bin1 都出现较长路经,所以双 bin 猜测的 LM 路径明显短于单 bin 级联。

-O +-

+

R

Shifter 1 0

1 0

MUX

MUX

option2option0

-+

-Rlps1

Rlps0 shift0

newR0

Rlm

Olm

图 6.19 LM 更新路径组

(3) ML 更新路径组

1 1

0 0 0 1 1

( ) _

(( _ ) (( ) _ ) ) _

0[ ] 0[ ] 1[ ] 1[ ]((( ) (( )[8])) )[7 : 6] [7 : 6] [7 : 6] [7 : 6]

ml m m lps

lps lps

lps lps lps

m m

ml

O O R R shift lps

O shift mps R R shift mps R shift lps

option R option R option R option shiftO R RR R R R

optR

= − + <<

= << − − << + <<

= − + << − + <<

=2[ ][7 : 6]

2[ ]0[ ] 0[ ]

(( ) (( )[8]))[7 : 6][7 : 6] [7 : 6]

m

lps lps

ion newRR

option newRoption R option R

R RR R

=− << −

上式中 Oml的 Offset bin1 的更新时的减项 Rm经移位后,使得 Ol和 Rl的减法移出到

关键路径以外。但是 R→Rm→Rlps1→Oml形成的关键路径与直接级联相同,如图 6.20 所

示。

-O +-

R

MUX

MUX

option2option0

Rml

Oml+ Shifter

-+

-

+Rlps0

Rlps0

1 0

1 0

shift1Rlps1

newR1

图 6.20 ML 更新路径组

Page 124: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

104

(4) MM 更新路径组

1

0 1

1 1

_(( _ ) _

0[ ] 1[ ]( (( )[8])) (( )[8])

[7 : 6] [7 : 6]( ) _

1[ ] 1[ ]( ) (( )[8])

[7 : 6] [7 : 6]

mm m

lps lpsm

m

mm m lps

lps lpsm m

m m

O O shift mpsO shift mps shift mps

option R option RO R R

R RR R R shift mps

option R option RR R

R R

= <<= << <<

= << − << −

= − <<

= − << −

但是两次 R→Rm的迭代形成的关键路径与直接级联相似,如图 6.21 所示。

O

R

MUX

MUX

option2option0

Rmm-+

-Rlps0

1 0

1 0 -

+-

Rlps1 1 0

1 0

Omm

图 6.21 MM 更新路径组

我们再集中考虑 ML 和 MM 情况下的关键路径 R→Oml/Rmm,发现这两条路经中都

含有(Rlps0<<shift_mps0)+Rlps1这一子式,这一子式在 R[7:6]确定的情况下仅有 8 种可能性

(shift_mps0 根据 Rmps0[8]有两种可能,而 Rlps1根据 Rm[7:6]有四种可能),这使得通过猜

测执行来将该子式的计算排除到算术解码核心环路之外!子式的计算在概率更新反馈结

构中实现,给概率更新反馈的关键路径末端加上一级加法器延迟,由于双 bin 解码采用

图 6.17 所示结构后概率反馈环路延迟相对较松,可以容下一级加法器。猜测执行需要对

上一拍的 lps_flag_bin1,本拍的 shift_mps0 和 Rm[7:6]进行,总共的加法器和寄存器数量

为 64。图 6.22 和图 6.23 分别给出了 ML 和 MM 下优化后的双 bin 猜测执行结构,其关

键路径优于直接级联。

Page 125: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

105

+-O +-

R

MUX

MUX

option2option0

Rml

OmlShifter

-+

-

+

Rlps0

1 0

1 0

shift1

MUX

x8 x4

MUX

Precalcx8x32

[7:6]

[7:6]

(Rlps0<<shift_mps0)+Rlps1

图 6.22 ML 更新路径组优化结构

--1 0x8

MUX

Precalcx8x32 (Rlps0<<shift_mps0)+Rlps1

MUX

option0

-+

-Rlps0

MUX

Rmm

1 0

1 0

1 0

1 0

OmmO

R

图 6.23 MM 更新路径组优化结构

上述分析对双 bin 猜测执行的四组更新路径组进行了优化,而 bin 决策逻辑可以完

全复用更新路径中 Ol结果的 高位,由于 Oll和 Oml都较直接级联优化,而且选通信号

lps_flag_bin0 不在关键路径,所以总的 bin 决策结果计算时间也较直接级联有一个加法器

延迟的缩短。

6.3.4 实验结果和小结

我们对所提的结构进行了 RTL 实现,并通过了仿真验证,在 TSMC0.18µm 的工艺

库下综合实现结果与前人方案的对比见表 6.3(所列面积均不含 Context Model SRAM)。

在不细致考虑时序优化的情况下,将解码算法直接映射电路的方案我们称为直接实现,

关键路径从概率准备到算术解码核心,其长度达到 7.8ns。前人的实现方式中(2008 年

以前),解码速率 高的是[YH05],bin 速率可以达到 148.5Mbin/s。这一速率对于高清图

Page 126: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

106

像解码来说,相当于每个宏块能解 607 个 bin,对于高码率码流即使仅计算非零系数,

相当于每个系数上平均支持 2 个 bin,而仅 map 和 sign 编码就需要 3 个 bin,所以原有

CABAC 解码方案都均适合于小图像或低码率的情况。

表 6.3 不同 CABAC 解码结构性能面积对比

解码方案 关键路径 bin/拍 解码 bin 速率 面积

直接实现 7.8ns 1 128Mbin/s 27Kgates

前人 好实现 6.7ns 1 149Mbin/s 30Kgates

所提单 bin 4.04ns 1 248Mbin/s 23Kgates

所提双 bin 级联 6.5ns 2 308Mbin/s 50Kgates

所提双 bin 猜测 5.9ns 2 339Mbin/s 64Kgates

本文的研究首先从单 bin 解码的情况出发,发掘 CABAC 算法在核心二进制算术解

码环路和概率更新反馈环路的特点,进行算术变换和逻辑变换的优化手段,来缩短解码

逻辑的关键路径长度。三项时序优化技术被总结和应用到算术解码核心环路,这些优化

手段既是根据算法特点而有针对性地设计出的专有优化方法,又在一定意义上具有通用

性,并且我们对于优化方法的适用条件也进行了分析。 猜测执行是一种减弱串行相关性的有效方法,通过对相关数据结果的猜测,前后

计算之间的相关性被暂时性的打破,形成只有 后的选通操作对真实的相关数据

结果具有依赖性。猜测执行信号倾向于小位宽的控制信号,或计算过程中的判决

结果。 查找表是一种以空间换时间的优化方法,在逻辑电路实现中,特别是不利于运算

表达式表示的逻辑中,从一般意义上有一种输出信号对各输入信比特的平衡化作

用。查找表的延迟基本上近于输入信号的位宽成正比,这使得查找表与其输入输

出的部分逻辑相合并成为可能的优化手段,因为这种合并基本不增加查找表的延

迟。 运算顺序变换也是一种通用的关键路径优化手段,在具有结合律和分配律的运算

之间可以等价的交换执行顺序,利用这种性质运算路径进行平衡化,从而达到缩

短关键路径的效果。 在具有多个反馈环路的电路中需要进行 retiming 来平衡各寄存器的位置, 优

retiming 的目标是关键路径长度等于电路的 iteration bound,我们可以通过分离关

键反馈环的方法来达到 优 retiming 这一目标。 在概率模型数据组织方面,我们在前人两级层次存储的基础上,根据概率模型被

访问时具有的某种意义上的递增性,提出了链式移位结构,使得模型选通延迟大

大缩短。

Page 127: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

107

经过一系列优化方法结合到具体的 CABAC 解码电路,单 bin 解码的关键路径得到

了明显的减少,从 6.7ns 到 4.0ns,工作频率提高了 67%。单 bin 解码关键路径上仅包含

两级加法器和一级选通器共三级运算,这使得进一步优化频率的空间已经不大了。下一

步我们考虑了循环展开这一反馈环路的基本电路变换,但是不像并行和流水变换可以系

统性能产生直接的,成倍的提高,非线性系统直接级联循环展开后原则上系统性能不变。

但是循环展开作为电路结构变换手段,使得有更多的串行逻辑,可以更加充分的利用上

述单 bin 优化中的若干手段,特别是猜测执行和运算顺序优化。 我们对双 bin 解码进行了重点讨论,在直接级联实现中,由于有将近 1ns 的 setup 时

间被节省下来,加上级联电路中前后级相互借用延迟的情况,使得直接级联相比于单 bin就有从 248Mbin/s 到 308Mbin/s,24%的性能提升。进一步,我们考虑循环展开后的电路

应用前面总结的关键路径优化手段,应用猜测执行将电路分离成相互独立的五个路径组,

在每个路径组中充分的利用了运算化简和运算顺序交换进行优化,LL 路径组中利用了正

负抵消化简了两级运算,LM 路径组中两 bin 的关键路径未能形成通路,MM 和 ML 均

利 用 猜 测 执 行 交 换 了 加 减 法 器 和 选 通 器 之 间 的 运 算 顺 序 , 使 得 子 式

(Rlps0<<shift_mps0)+Rlps1可以被预先计算,从而节省了一级加法器延迟。利用这些优化手

段,双 bin 猜测执行结构比直接级联性能又提高了 10%,达到 339Mbin/s。 总结起来,猜测执行,查找表优化,运算顺序优化,retiming 以及链式数据准备结

构在 CABAC 解码器定 bin 速率结构的频率优化上起到了显著的作用,同时也是一般性

的反馈环路频率优化的重要手段。

6.4 基于比特率限制的实时解码结构

6.3 节主要集中在固定 bin 率方案中提高 bin 解码速率这一问题,所提的结构可以达

到 339Mbin/s,但从 极端的情况看,1080i 图像的 高瞬间 bin 速率可能达到 4.5Gbin/s。这使得一味通过提高解码 bin 速率而保证 坏情况高清图像的实时性是很难实现的。为

了给系统性能定义出一套标准以利于解码器设计与实现,标准规定了一系列级别

(Level),每一个级别规定了包括 大支持的比特率,宏块速率等性能指标,这些性能

指标加上算法上可推导的一些上界构成了我们实时性设计的主要依据。为了找到对解码

实时性的保证,我们首先对标准规定的实时性限制做充分的研究。H.264 标准制定时出

于编码性能的考虑对即时 bin 速率没有显式的限制,经过对标准的详细分析,我们发现

与码流相关的实时性限制有如下几条。 1. Slice 总 bin 数量:标准规定一个 NAL(网络适配层)单元 多包含的 bin 数目

(NumBinsBinInNAL)与该 NAL 单元的编码字节数(NumBytesInNAL)和图

像大小(PicSizeInPel)具有如下关系:(无论在任何级别)

(32/3) / 4NumBinsInNAL NumBytesInNAL PicSizeInPel≤ × +

2. 比特率:视频编码标准对于 大比特率进行了分级限定,如H.264定义的 level4.0

Page 128: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

108

支持的 高比特率为 20Mbps。为了限制编码码流的不均匀性,HRD(Hypothetical Reference Decoder)模型需要码流满足当解码器按照实时性间隔

每帧从输入缓冲区取走一帧数据的情况下,解码器输入缓冲器不会产生上溢和

下溢。H.264 的 level4.0 规定的 CPB(Coded Picture Buffer)大小为 25Mbit,合

3.1M 字节。 3. 宏块 大 bin 数量:由算法的动态范围而推出,一个编码系数 多占有 48 个 bin,

但就 384 个系数来说,宏块 bin 数目 大值应该略大于 48×384=18432。 前文中已有根据限制 3 提出的 bin 解码速率要求达到 4.5Gbin/s,这一要求能满足任

何 level 的码流,因而对于 level4.0 来说要求过严。根据限制 1 有两种方法计算 bin 速率

要求,首先从帧级别看,单帧的 NumBytesInNAL 没有明确上届,仅能通过 level 中定义

的 小压缩压缩率 4 和 大帧宏块数 8192 来推导,这时 NumBytesInNAL=8192×384/4= 1572864,带入得到 NumbinsInNAL=8,388,608+524288=8,912,896,实时处理 30fps 相当

于 bin 速率达到 8,912,896*30=268M(bin/s)。类推实时处理 level4.1 的码流需要 519Mbin/s的解码速率。

另一种计算方法结合限制 1 和限制 2,不是按帧,而是按时间,由于编码级别对码

率有限制,这一限制决定了平均意义上每帧所包含的比特数,将此平均值带入计算,得

到所需的 bin 速率仅为 42.4Mbin/s。 这两种计算结果之间的巨大差异恰恰在于码流的不均匀性,以及其带来的 bin 率上

更加的不均匀性。码流的不均匀性是通过 大比特率和 CBP 大小限制了,但 bin 的不均

匀性唯一的约束条件 Slice 总 bin 数量并不能有效的起到限制作用(在帧范围内,bin 率

仍可能达到 bit 率的十倍)。这说明通过达到 Slice 总 bin 数量条件来满足实时性的要求并

不比较划算的,如果解码能按照比特而不是 bin 来进行,则要求的工作频率可以降低很

多。 算法给出的 CABAC 解码过程是基于 bin 的,为了从 bit 解码的角度来设计解码器,

我们通过 Renormalization 过程,发现 bit 和 bin 的具有如下的内在关系和特性。 LPS bin 至少消耗一个 bit,而 MPS bin 至多消耗一个 bin。因为 Rlps<R/2<HALF_R,而 Rmps≥R/2≥HALF_R/2

等概率 bin 确定消耗一个 bit。因为 R*=R/2 落在[HALF_R/2, HALF_R)之内。 这一重要特性表明,虽然一个 bit 可能对应 0 个,1 个或多个 bin,但其对应的 bin

串中仅有串尾可能出现 LPS,也就是说一个 bit 对应的 bin 串只有可能为一个全 MPS 串,

或一个 MPS 串尾接一个 LPS bin。 从另一个方面考虑按 bin 解码的循环展开,从 6.3 节看出,对多 bin 进行循环展开猜

测执行的复杂度会非常高,但 6.3 节仅采用了猜测执行中的一种方式——穷举猜测。bin率相对于 bit 率来说变化更剧烈,所以原则上采用变 bin 率方案进行解码更有利于在 高

码率限制上找到解码速率的实时性保障。变 bin 率效果可以通过优势猜测来达到,仅对

某些概率高的情况进行猜测执行。在不考虑 bin 间条件概率的影响,MPS 串是 佳的优

Page 129: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

109

势猜测情况。这一优势情况与单 bit 对应 bin 串的情况完全吻合!这使得按 bit 解码实际

上等效于一种多 bin 展开后的优势猜测执行,两种设计思路殊途同归。

Offset0

Range0

bin0=valMPS0

input one bit

Offset1

Range1

valMPS1

Offset2

Range2

valMPS2

HALF_R

Offset3

valMPS3

Offset4

valMPS4

Offset5

valLPS5

Offset6

input two bits

Offset0

count=3bin0-2=valMPS0-2

HALF_R

Range3

Range4 Range5

Range6

Range3

Range0

RangMPS0

RangMPS1

RangMPS2

RangMPS3

RangMPS4

RangMPS5

count=3Bin3-5=valMPS3-4valLPS5

input one bit

Offset3

Offset6

input one bit

Range6

Offset6

Range6

input one bit

MPS+MPS+…+MPS MPS+…+MPS+LPS bin-by-bin scheme

bit-by-bit scheme

图 6.24 按 bit 解码和按 bin 解码比较

图 6.24 给出了具体的解码过程示意图。对于 bit 解码的非结束 bin 来说,它一定是

MPS 且不进行 renormalization,这些 bin 的 R/O 的更新过程非常简单,newR=R-Rlps,O

不变。我们定义每一次区间划分后的 MPS 段长度为1

i 0 lpsi0

RangeMPS =Range Ri

j

=

−∑ (直到

k第一个满足RangeMPSk<HALF_R),于是猜测结果决策的过程即Offset与各RangeMPSi

相比较的结果。若 Offset 小于 小的那个 RangeMPSk,则解码出一串 MPS,如图中前三

个 bin 所示;否则若 Offset 落在某两个 RangeMPSi和 RangeMPSi+1之间,则输出一串 MPS尾随一个 LPS(或仅一个 LPS),如图中后三个 bin 所示。

确定了循环展开按照 bit 为边界进行猜测执行后,下一个问题是如何选取展开 bin 的

个数。从原则上讲,一个 bit 可能对应于以及极大的 bin 数目(即使不是无穷大),这使

得我们按 bit 的猜测执行需要展开的 bin 数目从一般意义上讲会极大,复杂度无法接受。

Page 130: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

110

对此我们主要从两个方面寻求多 bin 猜测展开后降低复杂度的解决办法。 1. 分而治之:按出现频率和规则度对语法元素进行分组,不同分组采用不同策略。

比如 MB 头信息及其他宏块级信息,特别是这些语法元素的二值化过程和概率

模型分配情况较复杂,但这类宏块级别信息占用总 bin 数量较少,我们不在这

类语法元素进行循环展开,单 bin 实现对整体性能的影响不大。再如非零量化

系数 map 和 level 则几乎决定了整体解码的性能(特别在较高码率上),我们在

这类语法元素上进行多 bin 猜测展开,其概率索引和概率值更新的情况相对较

容易分析和实现。 2. 因地制宜:充分利用 map 和 level 中连续 bin 串所具有的特点来简化概率索引更

新。其中 重要的就是“分隔符”——等概率 bin,因为等概率 bin 一定消耗

bit。由于 level 和运动矢量均具有等概率 bin 编码的符号位,这为概率索引切换

提供了一个天然的标记,而且等概率 bin 解码不需要概率更新,这一分隔符同

时为概率更新提高了一个天然的执行周期。由于 abs_level 前缀编码 多 14bin后一定接至少一个等概率 bin 编码的符号位,一个 bit 对应的 多 bin 数目为

14+1=15 个,我们据此选定 15 作为循环展开的倍数。 由于上述两种降低复杂度的办法,使得解码过程不能完全符合固定 bit 率的性能,

其性能的降低主要体现在如下两个方面。 1. 头信息采用单 bin 解码,其概率模型的切换情况比较复杂,不利于进行多 bin 展

开,这时按照该头信息的确定 bin 长度进行展开,或采用单 bin 解码(相当于展

开长度为 1),可以该拍涉及的概率模型更新较简单,但这一拍并不一定消耗 bit。这种由于事先规定了解码 bin 长度使得未能消耗 bit 的周期,我们称为截断消耗,

在电路中我们通过结束信号 term(terminate)来控制,使得迭代循环产生判决结

果并返回。 2. 具有规整性的概率模型更新过程的语法元素,可以采用多 bin 展开,如帧内预

测模式,非零系数 map 等。但这些语法元素不像 level 和 MV 一样具有天然分隔

符,多个连续的此类语法元素可能使得一个 bit 对应了多于 15 个 bin,这时我们

的结构也不能在一拍之内将这个 bit 解码完成。这种由于 bit 对应 bin 数量超过

15 而未能消耗 bit 的周期,我们称为上溢消耗。这时已解码的 15 个 bin 均为有

效。 由于截断消耗和上溢消耗的存在,保证实时性所要求的 bit 处理速率就必须大于编

码级别中规定的 高比特率。为了得到确切地所需 bit 处理速率,我们可以将消耗的周

期等效成假想的 bit,即入总的比特率中,形成我们 后的实时性要求,按语法元素总结

于表 6.4 中,频率计算中的 0.24M 是宏块速率。经过统计我们得到,intra 帧和 inter 帧所

需要的 高 bit 解码频率分别为 40.4MHz 和 45.7MHz,即 15bin 解码结构仅需要达到

46MHz 就能保证 H.264 level4.0 的实时解码。

Page 131: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

111

表 6.4 系统频率要求统计表

语法元素 截断消耗/MB 上溢消耗/MB 需求频率(MHz)

宏块类型 7 - 7×0.24=1.7

子分块类型 6×4 - 24×0.24=6(inter)

QP 偏移 2 - 2×0.24=0.5

CBP 18 - 18×0.24=4.5 其他头信息 4 - 4×0.24=1

帧内预测模式 - 6 6×0.24=1.5(intra)

参考索引 - 4 4×0.24=1(inter)

运动矢量差 - - -

map - 2×24 48×0.24=11.5 level - - -

定 bit 率解码 - - 20

总计 - - 45.7(inter),40.4(intra)

上面分析了所提的变 bin 速率解码结构满足实时性的可能性,下面我们介绍解码器

的具体电路实现。图 6.25 给出了整体结构,根据语法元素占据的 bin 比例,我们对帧内

预测模式,运动矢量,参考索引,map 和 level 解码进行 bin 展开, 多展开 bin 数目为

15。所有其他语法元素由头信息解码引擎(Header decoding engine)完成,每拍解码一

个 bin。多 bin 结构分成两大部分,概率准备部分又按语法元素组分成四个定制的模块,

算术解码部分为一个公用的能提供 多16个bin解码的二进制算术解码器引擎(MBAD:

Multi-Bin Arithmetic Decoder)。 为了降低各概率准备模块对概率模型存储器(Context Model RAM)访问延迟的要

求,它们分别具有一个前置的块级别寄存器缓冲,构成两级层次存储结构,缓冲中准备

了一个块中所有需要的概率模型,这种成块的 context RAM 访问使得通过增加位宽来提

高访存数据吞吐率提供了条件。概率准备模块除读取概率模型外,还根据 MPS 的猜测

解码结果,对后续 bin 的语法元素进行切换,对概率模型索引和概率值进行更新,得到

当持续发生 MPS 时的连续 bin 的概率值 pStatusi和大概率值 valMPSi (i=0..14),输出给

MBAD。此外概率准备模块还根据语法元素切换产生标志等概率解码的 bypi(bypass decoding),以及用于标记语法元素边界的 termi(terminate)信号。

MBAD 进行连续 多 15 个 bin 的二进制算术解码,对每一个 bin 支持常规自适应二

进制算术解码、等概率算术解码、以及穿透模式(当 termi为有效时)。解码结果 ti表示

第 i 个 bin 的解码结果是否有效,当 bit 消耗发生在第 k 个 bin 时,对其后续的 i>k 有 ti=0。对于 ti=1 的 bin 结果 mpsi相当于该 bin 的 mps_flag,而 bini时结合 valMPS 得到的 终解

码 bin 值。ti,mpsi和 bini被反馈给概率准备模块进行语法元素和概率值的更新。当语法

Page 132: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

112

元素在 MBAD 和 HDE 之间切换时,它们所保持的 R/O 相互更新。

intra mode module

motion info module

significance map module

coefficient level module

context modelsRAM

(399x7bits)

context RAM bus

local update bus

MBAD

local probability bus

pSi valMPSi bypi termi

header decoding engine

range/offset updatesyntax switch

input bit

ti bini mpsi

local context reg (30x7bits)

local context reg (10x7bits)

local context reg (13x7bits)

local context reg (4x7bits)

AD unit

AD unit

AD unit

rangei

offseti

...

...bit buffer

load

load

图 6.25 变 bin 速率解码的整体结构

对 map 的概率准备更新模块实现,前述我们已经有了单 bin 和双 bin 的链式移位结

构,如图 6.13 和图 6.17 所示,可以看出从单 bin 到双 bin,移位链移动的位数的情况增

加使得复杂度急速增加,以使得多于 2bin 的展开结构不适合在使用链式结构,我们的

15bin展开结构回归的采用图6.12所示结构进行级联实现,如图6.26。每一个bin级(stage)包含一级 MUX,一级与非门以及一级“4+1=4”位加法器。pSi的延迟随 i 线性增加,这

与它们在 MBAD 中被使用的时间相吻合,延迟可以部分地被掩藏。

Page 133: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

113

s0

p0

s1

p1

valMPS0~29 valMPS0~29

m0 m1

p2

valMPS0~29

m2

...

...s2

p14

valMPS0~29

m14

s14

pStatus0~29 pStatus0~29

pS0

pStatus0~29 pStatus0~29

pS1 pS2 pS14

one bin stage

图 6.26 map 概率准备模块结构

level 的概率准备更新较 map 简单,根据前述对算法的分析,一个 abs_level 的前缀

仅用到两个概率模型,bin0 的 pSb0和 bin1 的 pSb1,存储于寄存器中。从连续 bin 的角度

看,概率更新仅有两种情况,当前解码 bin0 在 abs_level 中的 binIndex(b0)为 0 时(即

语法元素边界与解码bin边界相吻合时),除第一个bin使用pSb0外,后续bin均采用pSb1,当连续使用 pSb0时,概率值需要按照 MPS 更新。图中的 M 模块实际上是一种饱和递加

操作,如果输入概率小于 62 时则增加 1 输出,否则不变。另一种情况 b0不为 0 时,直

接用 pSb0进行相似的连续更新。我们知道 level 在 15 个 bin 以内必定消耗 bit,但消耗

bit 的情况具体有四种。前两种情况是 bin 串结束于 LPS 或 MPS,这时解码 后 bin 的

binIndex<14,前缀解码可能匹配也可能未匹配。第三种情况是 MPS 串未消耗 bit 而达到

前缀匹配,接下来通过 sign 的等概率编码消耗 bit,这时 后 sign bin 的 byp 标记可以通

过其前 bin 的大概率解码值 mi-1是否为 0 来判断。第四种情况是 MPS 串未消耗 bit 而达

到前缀 大长度(binIndex=14),接下来的等概率编码的后缀消耗 bit,这时 后等概率

bin 的 byp 标记可以通过 b0+i≥13 与否来判断。

b0=0

pSb0pSb1

b0=0

pSb1

MM M...

pS0 pS1byp0

(b0=14)||sign

pS2 pS14byp1

(b0=13)||(m0=0)

byp2

(b0=12)|| (m1=0)

byp14

1

图 6.27 level 概率准备模块结构

Page 134: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

114

TR0

pS0

Rlps0

TR1

pS1

R2 T

pS14

...[9]

t1

[9] m0

bin0mps0

[9]

t2 bin1mps1...

[9]

[8]

t15

m14

bin14mps14t0

[8]

R14

O0

>>1

byp0

>>1

byp1

>>1

byp14

[8]

term0

[8]

term1

one bin stage

[9] m1[9]

...Rlps1 Rlps2 Rlps14

O0O0

图 6.28 MBAD 核心解码结构

各语法元素所共享的 MBAD 支持常规自适应算术编码,等概率算术编码,以及提

前结束标记 term。bin 解码按照如图 6.28 所示的垂直方向进行,而更新操作按水平的方

向向右传递进行。每一个 bin stage 主要包括两个部分,MPS 更新和 bin 判决。由于不发

生 bit 消耗,MPS 更新比较简单:newR=R-Rlps,newO=O,而 bin 判决需要 O 与各 bin

级的 Rmps 相比较。主要计算归结为一个减法链 lps0 lps1R-R -R -...,由于各级的减数与上级

减法结果之间具有相关性,减法链需要按照顺序串行进行,这也形成了 MBAD 的关键

路径。关键路径长度为(二选一选通器+“9-8=9”位减法器),比起 bin 直接级联来说明

显减小。常规 bin 的两种消耗码流的判断结果(Rmpsi[8]和 O-Rmpsi[9])被用来生成后面

bin 的有效信号 t, 末的 bin 级产生的 t15的反信号用来作为 bit 的读取信号。 我们对所提的结构进行了 RTL 验证,并通过了单元和整体的仿真验证。然后在

TSMC0.18µm 的工艺库下进行了综合和物理实现,时序综合优化结果表明所提的电路关

键路径存在于 MBAD 的 Rmps减法链上,15 级减法链及前后相关组合逻辑一共 20.6ns,对应工作频率可达到 48.5MHz。根据前述分析和表 6.4 系统解码实时性条件分析,所提

的电路可以保证满足 level4.0 对高清 1080I 图像序列实时解码的要求。表 6.5 给出了与现

有其他结构的实现结果的比较,数据表明所提的结构采用了比前人方案略多的面积,达

到了高清 1080I 解码的性能,并且更重要的是能保证系统的实时性。

Page 135: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第六章 高速 CABAC 解码引擎设计

115

表 6.5 实现结构比较

结构方案 工艺(µm) 面积(Kgates) 工作频率(MHz) 解码能力 [CCL05] 0.13 138 (含 SRAM) 200 CIF 25Hz

[YH05] 0.18 30 148.5 D1 30Hz [KP06] 0.18 na. 300 na.

[ECSN06] na. 590ALMs 105 HDTV 所提可变 bin 率 0.18 42 48.5 1080i 实时

6.5 小结

本章就反馈电路性能优化——这一视频编解码器设计乃至整个高速集成电路设计中

普遍的性能瓶颈问题——提出了一系列高速 CABAC 解码的解决方案。我们首先对熵解

码等反馈电路的优化方法进行了总结,并对 CABAC 解码的算法进行了详细的分析。

CABAC 具有三个主要的反馈环路:核心算术解码环路,概率索引/语法元素更新环路,

和概率值自适应更新环路。而 iteration bound 理论指出了这些反馈环路都无法通过直接

的并行和流水来加速,性能优化只能从优化运算和逻辑本身寻找途径。 本章的思路从局部逻辑优化和整体结构优化两个方面进行。局部逻辑优化集中在单

bin 解码,通过充分的发掘 CABAC 解码过程中的运算特点及运算间的关系,我们有效的

利用了三项逻辑性能优化手段:猜测执行,查找表优化和运算顺序交换,配合以 佳

retiming 设计和数据组织方面的链式移位结构,使得单 bin 解码的吞吐率达到 248Mbin/s。猜测执行,查找表优化和运算顺序交换虽是根据算法特征提出的特定方法,但我们对这

些方法的工作机理做了深层讨论,使得它们都能具有一定程度的普适性,并给出了它们

应用的条件。 整体结构优化的思路是基于循环展开或 lookahead 方法的。循环展开的意义不在于

直接对性能有贡献,而在于给逻辑优化提供了更大的空间。在双 bin 展开的逻辑中再次

应用猜测执行,查找表优化,运算顺序交换以及 retiming,能将解码吞吐率进一步提高

到 339Mbin/s。出于对循环展开复杂度剧增的考虑,多 bin 展开方案中采用了优势猜测,

这一点与因实时性要求而倾向的按 bit 解码策略恰好吻合,利用这一算法性质,我们进

一步提出了一种基于比特率的高清实时解码方案。这一方案充分体现出面向实时性设计

的重要性,吞吐率高并不一定等价于实时性好。 本文设计优化过程中所提的一系列思路和方法,如猜测执行,查找表优化,运算顺

序优化,retiming,循环展开等,可使 CABAC 解码性能得到显著提升。而且它们均具有

一定的普适性,给其他类似反馈电路的高速设计提供了一整套方法学指导,本文的工作

对高速反馈电路设计优化的研究具有一定的意义。

Page 136: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大
Page 137: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

117

第七章 基于多核流水的多标准视频 Codec 系统结构

随着视频编码技术的成熟,各标准化组织分别制定了各自的新一代视频编码标准,

其中 有代表性的是国际电联和国际标准化委员会制定的 H.264/AVC 标准,中国高级视

音频工作组制定的 AVS 标准以及国际移动图像和电视工程师协会通过的 VC-1 标准。这

种多种标准共存的情况使得多标准支持成为视频编解码器市场的发展趋势,本章着力于

设计一种能支持全标准视频编解码器结构,其重点在于达到灵活度,性能,面积和功耗

等的有效折中。 我们首先从体系结构角度进行考虑,总结了现有多标准解决方案的各种平台的优缺

点。然后对多标准视频编解码算法作简要分析,着重分析多标准间的可复用性和编解码

器之间的可复用性。基于多标准算法特点对可编程性的要求,我们提出一种基于多核流

水的视频编解码器体系结构,该结构采用可编程处理器核作为基本单元,并以流水的结

构实现多核并行,达到系统灵活性和性能的有效折中。本章对自行设计的微处理器核进

行了详细介绍,同时也讨论了各附加加速模块的具体设计,比如运动估计和补偿的加速

器,用于帧内预测的滤波器组,8 点内积运算器等。 后对该编解码器的整体芯片结构

进行了物理实现,并进行了性能和成本分析。 多核流水给视频编解码处理器提出了一种创新性的系统结构,充分的适应了多标准

对可编程性的要求。所提的结构也给多核分步式并行处理在多媒体上的应用给出了一个

高效实现的范例,给其他对可编程性和性能都具有较高要求的嵌入式应用提供了一种参

考设计,且由于低成本的嵌入式核和灵活的扩展指令接口使得本体系结构在性能和可编

程性的折中时具有充分的设计自由度,适应广泛的性能要求。

7.1 多标准 Codec 实现平台

为了探索多标准 Codec 实现有效方案,我们首先对目前已有的实现平台进行分析和

总结。数字信号处理平台按照体系结构进行划分可以有如下几类,我们按其信号处理应

用上的性能和可编程性的顺序排列如下:通用处理器(GPP:General Purpose Processor),数字信号处理器(DSP:Digital Signal Processor),单核的专用指令集处理器(SC-ASIP:Application-Specific Instruction Processor),多核的 ASIP(MC-ASIP:Multi-Core ASIP),现场可编程逻辑门阵列(FPGA:Field Programmable Gate Array)以及专用芯片(ASIC:Application-Specific Integrated Circuits).

通用处理器是一类具有通用计算功能的中央处理器,GPP 普遍采用 32 位或 64 位的

冯·诺伊曼体系结构,其典型的代表是用作通用电子计算机的中央处理器的 X86 指令集

的系列芯片平台。这种具有通用功能的指令集进定义了用于顺序组合成复杂功能的基本

原子操作,这些原子操作主要可以总结为程序指针控制指令,算术逻辑运算指令和存储

Page 138: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

118

器访问指令。以这些原子操作为界划分了软硬件设计,硬件设计关注以尽量高的性能来

完成指令集所规定的原子操作,而软件设计和编译器、汇编器共同来完成如何利用原子

操作来构建所需要的计算和控制程序。GPP 的通用原子操作有利于硬件处理器的性能得

到充分的发挥,多级指令级流水,多发射以及乱序执行等 RISC 技术的引入,使得 GPP处理器能够达到每秒上十亿指令的处理速度。指令的原子性给 GPP 提供了强大的可编程

性,使之可以用于各种运算和控制的应用,自然也包括视频编解码。但由于信号处理应

用特别是视频编解码应用的巨大数据流和计算复杂度,传统的 GPP 的性能对此类应用仍

是力不从心,因为视频处理中所包含的大量的数据并行度无法被 GPP 的串行结构所有效

利用。为了适应通用处理器对多媒体应用日益强烈的需求,一系列多媒体指令集扩展被

引入到 GPP 中,如 Intel 系列芯片的 MMX/SSE 指令集扩展[RPK00],以及 AMD 系列芯

片采用的 3DNow!指令集扩展[OFW99]等。这类指令扩展多采用单指令多数据(SIMD:

Single Instruction Multiple Data)结构来扩大数据并行度,但其并行度展开的程度仍然不

够,使得 GPP 仍然只能处理相对较小的图像的实时编码[Lee97]。另一方面由于 GPP 由

于功能和通用性能的指标极高导致其面积和功耗的成本也极高,不适合应用于多媒体设

备的嵌入式环境中。 为了适应信号和信息处理系统对嵌入式应用的需求的日益增长,出现了一系列专门

面向信号处理的可编程处理器 DSP。根据数字信号处理应用的数据和算法特点,DSP 在

指令集和硬件结构等方面做了全面地改进。DSP 一般采用专用的指令集以提高指令执行

的并行度,其中包括 SIMD 指令,MAC(乘累加)指令,循环控制指令等[Kon98]。在

体系结构方面 DSP 增加了每周期指令发射的数量,如 TI 公司的 TMS320C64x 系列方案

中采用了多达并行八条指令的 VLIW(Very Long Instruction Word 超长指令字)结构

[Tex06],指令间复杂的相关性处理由编译器来完成,大大简化了多发射处理器的硬件设

计。更进一步为了让 DSP 更好的支持多媒体处理中数据量较大的视频处理,甚至直接面

对多标准视频编解码应用,专用的视频处理数据通路被引入到 DSP 中来加速相应的复杂

计算[CC07],从而形成了 ASIP。专用数据通路可以对具有有限相关性的一系列计算通过

参数化的硬件通路快速执行,从而节省指令执行周期。在设计中出于整体成本和硬件复

用性的得需要,附加的硬件数据通路要求对各标准具有通用性,且通过参数化的配置来

适应不同标准。无论是 DSP 中的指令级并行和加速还是 ASIP 中的专用数据通路,都是

对所执行的顺序程序的某一部分的局部加速,这种单核可编程结构所固有的单线程串行

执行的本质,限制了它们性能的进一步提升,使得它们仅适合处理标清及其以下分辨率

的实时编解码应用。另一方面,同是完全(或 ASIP 接近完全)可编程方案,其面积和

功耗的代价也在某些场合限制了它们在嵌入式系统中的应用。 随着图像分辨率的增大,所需处理量超过了当前 DSP/ASIP 处理器的能力,定制化

的专用视频编解码器被广泛的采用。如本文第一章介绍的随着电路集成度的提高和电子

设计自动化工具的发展成熟,专用芯片设计成为驱动嵌入式电子设备发展的一支主要方

向。在视频编解码器设计中,由于专用芯片使得算法并行度可以在系统级别,模块级别

Page 139: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第七章 基于多核流水的多标准视频 Codec 系统结构

119

以及运算级别得到自由而充分的展开,整体上由上述可编程方案的串行结构变成了基于

并行和流水的并行结构。目前的加工工艺水平基本能够在 0.18µm 下实现高清解码器的

实时处理,在各种实现结构中具有 高的性能,而且通过对非关键路径的面积和功耗进

行专门化的优化,使得专用结构在性能,面积和功耗的有效折中上具有充分的灵活度和

设计空间。这些性质使得专用处理器成为了单标准(少标准)高性能编解码器的首选实

现方案,如 Broadcom 公司的 BCM74x 系列芯片[Bro06],Micronas 公司的 DeCypher 系列芯片[Mic06],以及 VWeb 公司的 VW 系列芯片[Vweb06]等。但相比于可编程方案来

说,全硬连的方案也具有两大劣势,灵活性差和开发代价大。这两大劣势在进行多标准

编解码器设计时被相互放大,一方面根据某一标准的具体算法进行充分优化后的硬件结

构可能无法应用到其他标准,标准的增加特别是增加后对于硬件复用性设计的要求给多

标准专用硬件设计提出了很高的要求,另一方面由于专用硬件的逻辑在生产时被固化,

这对大规模生产前的芯片验证提出了苛刻的要求,而由于标准数量的增加而带来的验证

工作量的增加呈指数方式增长。这些原因给全硬连的多标准视频编解码器产品的上市时

间(time-to-market)带来了极大的压力,成为全硬连实现方式在多标准编解码器上得到

采用的巨大障碍。为了增加专用处理器的可控性,硬连方案中往往采用一个中央控制器

(可编程的微控制器)来进行整体协调调度和与外界通信。但从芯片系统来看,其处理

的主要部分均为硬连,因而仍不适合于标准较多的编解码器实现。 从提高专用电路的可编程性角度考虑,FPGA 是一种可能的替代方案。FPGA 是一

种可以在客户端重复配置其电路结构的逻辑门阵列,通过对基本单元参数的配置(编程)

达到对电路进行定制的目的。由于基本单元由 1 比特的寄存器和 4 比特输入的组合逻辑,

FPGA 的配置粒度可以达到接近逻辑门级,所以其对并行度的展开水平也能接近专用逻

辑的硬连实现。在 FPGA 上实现多标准编解码器时,可以根据选定的标准对 FPGA 进行

编程,这样使得各标准都运行在其 适合的并行化硬件结构。由于 FPGA 组合逻辑 小

单元的粒度大于专用硬件的逻辑门,而且 FPGA 的互连资源是预先分配的可切换路径段,

使得相同逻辑的 FPGA 的运行速度大约只能达到专用硬件的一半。然而真正影响 FPGA在多标准视频编解码器中的广泛应用的原因是成本太高。一方面由于组合逻辑 LUT(查

找表)单元的粒度较大占用面积也较大,特别是加上为保障预留连线资源的充足性而浪

费的冗余 routing 面积,使得相同逻辑 FPGA 芯片制造成本远大于专用硬件。另一方面,

FPGA 芯片及其相关软件工具的设计成本极高,使得 FPGA 芯片生产紧掌握在少数大的

EDA 公司手中,购买和使用 FPGA 芯片需要付出高额的知识产权费用。综合这两点使得

FPGA 方案的芯片成本明显高于专用芯片,不利于终端用户设备的采用。但由于其可编

程性减小了流片风险,缩短了验证和稳定周期,使得其在高端的实时编码服务器和高端

的多标准实时转码服务器等场合得到了一定的应用。 另一个新的多标准视频编解码器的研究方向是采用多核的可编程结构。传统的可编

程处理器(GPP,DSP,ASIP)普遍存在的性能问题并不是固有的由其可编程性而决定

了,而主要归因于其单线程串行执行的结构不能充分展开视频编解码算法所具有的数据

Page 140: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

120

和操作的并行度,所以性能瓶颈有希望通过增加可编程处理器的并行度的方法来缓解。

初步尝试[Cra06]有采用对称多处理(SMP:Symmetric Multiple Processing)结构,多个

处理机可以相对独立的并行执行,通过一条共享总线平等的访问一个或多个共享的存储

器资源,并以此来交换数据和进行控制握手。编解码的子任务被划分成负荷相当的几个

部分,并行的执行在各处理机上。由于视频编解码各模块的负荷以及模块间的数据相关

性关系并不均匀,模块间的数据交换和同步过程使得 SMP 结构的执行效率不能太高,

加上在某些模块中的特定运算由于复杂度的限制只能在专用数据通路完成,SMP 结构相

比于单核可编程处理器结构性能提升的幅度不够明显。 本文继续沿着多核可编程结构的思路,进一步结合视频编码标准共性的框架性特点,

考虑设计一种既充分的保持可编程性,又充分的释放硬件并行度的系统结构。并行多机

系统的设计难点在于其互连和通信模型的设计,而根据编解码算法所具有的块数据驱动

特性以及数据流固定性和单向性,互连网络可以简化成点对点模型而且通信模型也可以

统一为流水控制。在处理器核设计角度,可以充分利用各模块所特有的数据和计算特点

(各标准有一定的公共性),更有针对性地进行充分的软硬件界面划分设计,使各模块包

含其特有的 DSP 扩展指令集。除了高性能的通用指令外,我们还可以根据性能瓶颈增加

适量的具有可配置参数的专用硬件数据通路,这些通路是真正具有纳秒级别的延迟要求

的逻辑,他们占总逻辑比例很小且相对规整,因而设计和验证的代价都小很多。总结起

来,本文设计一种由多个异构可编程 ASIP 构成的系统级别流水运行的多核并行体系结

构,用于实现包括 AVS,H.264 和 VC-1 等在内的多个视频标准的实时编解码器。

7.2 系统级流水线结构设计

根据上节对各种实现平台的分析,多核可编程结构给高性能多标准视频编解码器设

计提供了一种 有希望的解决方案,但其具体的系统结构设计必须充分的根据和利用系

统的算法特性。根据第二章的详细讨论,编解码器系统整体上具有如下特点: 第一,不同编码标准采用了统一的混合编码框架,编解码其中各编码工具(模

块)从执行的功能和输入输出数据上都具有一致性。这允许多个标准在系统级

别采用统一的模块划分,流水级别划分以及互连方式。 第二,不同标准编解码器的各模块间的数据流基本上不随时间变化(部分路径

存在数据量的变化),而且在宏块级别基本上具有单向性(考虑到帧内预测与变

换量化合成到一个模块中)。这使得系统级别流水线设计成为可能。 第三,各模块内部具体处理在模式、块大小、阶系数、处理顺序等方面差异较

大。这对模块内控制部分的可编程性和可配置性提出很高要求。 第四,模块内部的运算复杂度集中的部分其处理过程具有很强的相似性,比如

运动估计,分像素插值,变换量化,帧内预测,环路滤波.这允许模块内部可

以通过少量的由可配置的专用硬件组成的数据通路来加速这些复杂计算。

Page 141: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第七章 基于多核流水的多标准视频 Codec 系统结构

121

这些特点使得通过异构 ASIP 多核流水体系结构达到可编程性和性能的高效折中成

为可能。这种全新的多标准 codec 实现结构,其具体设计中包括如下三个主要的问题。 系统级流水线设计:根据总体性能要求确定流水线划分级别,然后根据模块间

的数据相关性和负荷大小将各模块划分成若干个流水线级别。系统流水线射击

目标是避免流水级别间的反馈数据通路,同时将各流水级的计算负荷尽量均匀

化。 可编程可扩展的处理器核设计:可编程核是体系结构中的重要部件,指令集设

计要兼顾软件环境的通用性和扩展指令的灵活性,硬件设计中重点考虑核的性

能,扩展加速器的灵活性以及互连接口的通用性等。 模块相关的扩展加速器设计:根据模块算法的共性特点,对于性能瓶颈的路径

进行定制化设计,同时满足各标准的复用性,以及性能,面积,功耗,设计验

证复杂度等各方面的折中。 本节主要面向解决第一个问题,即系统级流水线设计问题。从原理上讲,流水线是

通过暂存中间结果使得单向数据通路分级,达到各分级间的并行处理相继的数据单元。

流水线分级设计和缓冲区大小设计是流水线设计中的主要问题。而流水线级别划分的主

要目的有如下两个方面的考虑。第一是要确保单向相关性,为了保障流水操作的顺利进

行,各流水级别因数据相关而仅能并行工作在沿流水线递减的数据单元上,而反馈环路

破坏了这种递减性,阻碍了流水的顺畅进行。根据第二章的分析结果,编解码器系统各

模块间基本上都具有宏块级别的单向的数据相关性,而唯一的块级别反馈环路仅出现在

帧内预测宏块模式。在解码器中,帧内预测模块与重构像素操作具有块级别的数据互相

关性,当前块预测结果与输入的残差值相加的某些重构像素被用来下一个块帧内预测参

考值,我们可以将重构和帧内预测划归在一个流水线级别中,以保证它们的结合体对于

相关的上级和下级模块均具有宏块级别单向的数据相关性。在编码器中,帧内预测与变

换量化以及反量化反变换构成了一个块级别的反馈环路,当前块帧内预测的结果去减原

始图像得到的残差块经变换量化反量化反变换环路在加回预测块得到的重构块中的某些

像素被用作后面像素的帧内预测参考值。这需要我们将帧内预测、变换量化及重构环路

合并在一个系统流水线级别中,以消除流水线级别的互相关造成的宏块级别(或一下级

别)的反馈环路。值得一提以多大的数据单元进行流水,就需要考虑该数据单元及其以

下数据单元范围内的所有相关性,那么与帧级别流水相对应的帧级别数据相关性中存在

帧间预测这一大的反馈环路,这一反馈环路涉及到从运动补偿(甚至运动估计)到环路

滤波的大部分计算复杂性,这一大反馈环路必须划归到一个流水线级别这一限制使得帧

级别流水对系统性能的提升空间有限。 考虑流水线级别划分的第二个方面是平衡计算负荷,第三章对流水线的性能作了详

细分析,系统吞吐率等于由各流水级中 慢一级的吞吐率,也即单元数据量的处理时间

等于流水线各级的 大延迟。而各流水级的总延迟基本由算法计算复杂度决定而为确定

值的情况下,对于特定的流水线级数,均匀分配计算量使系统性能达到 大值。根据第

Page 142: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

122

二章对算法复杂性的理论分析和图 2.3/图 2.5 的实际码流测试结果表明,编码器中整像

素 ME,分像素 ME 和环路滤波为计算量相当的三大主要部分,而解码器中 ME,环路

滤波和变换量化构成了三大主要部分,这些高复杂度的模块趋向于划分成单独的流水级。

由于我们的 ASIP 中还可以引入专用硬件数据通路,计算负荷以计算量为基础还加上计

算可并行度指标进行修正,所以 VLC/VLD 这类紧耦合模块也趋向于独立的流水级。

Integer ME

Intra & TQQT

Fractional ME

(MC)

Deblock

MCU

External Memory Controller

Stage 1 Stage 2 Stage 3 Stage 4

VLC/ VLD

图 7.1 系统流水线级别划分示意图

根据上述讨论我们设计了如图 7.1 所示的支持编解码的系统流水线结构。当工作在

编码模式时,按四级宏块级流水线工作。第一级为整数运动估计(Integer ME),由一个

ASIP 构成(IME_ASIP),完成不同块大小的 佳整数运动估计位置的计算,IME_ASIP采用本文第五章提出的高性能高灵活度的可变块大小运动估计技术。第二级为分像素运

动估计(Fractional ME),由 FME_ASIP 构成,具体完成不同大小所有块的分像素 MV搜索,以及所有与帧间模式决策有关的判断,完成帧间模式的选择。第三级为帧内预测

与重构,由 IPTQ_ASIP 构成,具体完成帧内预测(Intra Prediction)和变换量化反量化

反变换重构环(TQQT),其中包括帧内预测模式的选择和代价计算,以及宏块模式决策

过程,量化系数和反量化后重构值被分别输出给第四级的环路滤波和熵编码相应模块。

第四级有并行的两个 ASIP 构成,分别为完成环路滤波(Deblocking)的 DBK_ASIP 和

完成熵编码(VLC:Variable Length Coding)的 VLCD_ASIP。编码模式时,五个 ASIP工作在四个流水级的宏块级流水线上,并行的执行相继宏块的特定操作,他们的工作时

序关系如图 7.2 所示。

Page 143: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第七章 基于多核流水的多标准视频 Codec 系统结构

123

IMEn

FMEn MDn

IPn TQQTn

IMEn+1

IPn+1 TQQTn+1

FMEn+1MDn+1

DBKnVLCn

Time period(MCU) MBn MBn+1 MBn+2 MBn+3 MBn+4

Stage1

Stage2

Stage3

Stage4

IME: Integer MEFME: Fractional MEIP: Intra predictionMD: Mode decisionDBK: Deblocking

DBKn+1VLCn+1

图 7.2 编码器流水线时序图

同样是如图 7.1 所示的结构也可以复用作解码器,当工作在解码器模式时,系统进

行两个级别的流水操作。解码器的前端模块 VLD 与后续模块分别工作在两个帧级(或

宏块行级别)流水级中,两个级别通过外存储器来完成数据交换。增加 VLD 与后级之

间的缓冲区大小是为了均衡化由于比特率变换带来的 VLD 吞吐率波动,避免其对后续

宏块级流水线性能的影响。而又由于 VLD 是唯一不在帧间预测帧级别反馈环内的模块,

这使得帧流水级别按此划分不存在相关性问题。VLD 与编码中的 VLC 模块共用一个

VLCD_ASIP,应为编解码在码流语法结构、变长编解码的计算和查找表逻辑都可以复用。

VLD 帧级别流水执行也与本文第六章中的 CABAC 解码结构的性能要求相吻合,所提的

高速 CABAC 解码结构可以扩展专用加速器的形式容易的应用到本系统结构中。 解码器的后续模块构成三级宏块级别流水线。第一级为运动补偿(MC:Motion

Compensation),具体完成运动向量预测,参考像素读取,以及分像素插值等与帧间预测

相关的计算和操作,得到帧间预测像素值。由于其核心操作运动向量预测和分像素插值

过程都在编码器分像素 ME 中使用,第一级流水线由复用 FME_ASIP 构成。第二级为帧

内预测与重构,具体完成帧内模式宏块的帧内预测过程,以及反变换反量化重构的计算。

这些计算在编码器的 IPTQ_ASIP 中都有覆盖,可以复用 IPTQ_ASIP 来构成解码器宏块

级流水线的第二级。第三级环路滤波模块则与编码器中的完全相同,复用 DBK_ASIP 来

构成。解码模式时,VLD_ASIP 与后续模块形成帧(宏块行)级别的两级流水线,而后

续的 FME_ASIP,IPTQ_ASIP 和 DBK_ASIP 三个 ASIP 构成三级宏块级流水线,其工作

时序如图 7.3 所示。

VLD (next frame)

MCn

IPn IQITn IPn+1 IQITn+1

MCn+1

DBKn DBKn+1

Stage0

Stage1

Stage2

Stage3

IP: Intra predictionMC: Motion compensationIQ: Inverse quantization IT: Inverse transformDBK: Deblocking

Time period(MCU) MBn MBn+1 MBn+2 MBn+3

图 7.3 解码器流水线时序图

Page 144: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

124

另外,在所提的流水线结构中本文第三章和第四章所提的技术也得到了应用。为了

节省存储成本和封装成本,本文采用了普遍的共享存储结构。如图 7.1,IME_ASIP 需要

读取原始宏块和更新其内部的搜索窗,FME_ASIP 需要读取熵解码数据和分像素插值需

要的整数参考点,DBK_ASIP 需要写入解码值。为了给该共享存储的流水线提供性能的

保障,我们应用了第三章提出的流水线控制机制和访问请求缓冲机制。系统中 MCU 处

进行宏块以上级别处理和与上层控制之间交互外,宏块级别的主要任务即流水线的同步

化控制,可以按需求选择按完成同步或按实时性同步。存储器控制器置有前置缓冲器用

于按宏块周期搜集视频请求,而且当前宏块所需请求均要求提前两个宏块时间放出请求

(请求地址和数据参数均为确定已知值),这样保证对访存时延的要求均在宏块周期的级

别,降低了存储器控制器设计的难度。对于存储器映射设计采用第四章的研究成果,在

基于块映射的基础上,对 MC 所需的数据进行冗余映射和亮色度联合映射。

7.3 可编程可扩展处理器核设计

对流水线系统级别设计完成之后,本节主要针对异构 ASIP 多核流水体系结构中的

第二个关键问题——可编程处理器核设计。在面向特定应用的芯片系统普遍采用嵌入式

RISC 处理器核进行高层次处理,处理器核一般由专业的嵌入式处理器设计公司以模块化

的 IP 组件提供给应用芯片设计公司,IP 可以是版图级别,网表级别和 RTL 级别,其中

以 RTL 级别 IP 灵活度 高,授权费用也 高。但是目前市场主流的嵌入式处理器核 IP应用到多核流水的方案中并不太理想,有如下几点原因。

首先是可扩展性方面的考虑,仅有 RTL 形式的 IP 能给与我们修改逻辑的可能

性,但由于缺乏详尽的设计文档,我们实际上对 IP 进行修改的程度有限,而且

这种修改也涉及到复杂的授权和认证等商业模式问题。新一代的处理器核 IP 也

具备硬件加速器的扩展接口,但它只提供指令加速器的模式,在结构上缺乏设

计空间,而且作为普适性产品这种扩展接口总体上技术还不够成熟,没有得到

市场的广泛认可。 其次成本原因也是非常突出,一方面,按照当前流行的商业模式,IP 的授权一

般按拷贝而不是按芯片,多核方案使得 IP 授权费用对芯片成本构成了更大的压

力;另一方面,作为通用嵌入式处理器,IP 核中的相当大部分逻辑面积消耗在

与核心的运算控制指令无关的附加控制指令上,如中断处理,调试,Cache 操

作等,而我们的专用 ASIP 希望灵活的取消掉实际不会使用的指令和功能。 上述的原因给我们异构 ASIP 多核流水体系结构设计提出了新的挑战,即需要自行

设计具有充分扩展性的可编程处理器核。自行设计 RISC 核使得我们的 ASIP 结构设计具

有了充分的自由度,下面我们从整体上考虑 ASIP 子系统设计的主要问题及解决方案。 第一,指令集设计。指令集设计是处理器设计中 核心关键的部分之一,也是难度

大的部分之一,超出了本文关注的范围,所以我们主要着眼于对已有的指令集进行选

Page 145: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第七章 基于多核流水的多标准视频 Codec 系统结构

125

择。从硬件复杂度的角度考虑,倾向于选择 RISC(Reduced Instruction Set Computer)类

型的指令级,加之避开指令集知识产权的考虑,我们选择了 MIPS 作为基础指令集。MIPS作为学术界广泛采用的教学指令集,也使得对该指令集相关的开放研究资料较容易获得。

第二,软件设计工具链。编译器、汇编器、连接器和仿真器等所构成的设计工具链

的设计也超出了本文关注的范围。国际 大的开放源码组织之一的 GNU 给我们提供了

大量的开放源码的设计工具集,其中也包括了对 MIPS 指令集的完整开发工具链。其中

编译/汇编器有 gcc,连接器有 ld,仿真调试器有 gdb 等。我们完全可以在 GNU 协议的

范围内使用这些工具链在高级程序设计语言(如 C 语言)级别来完成软件设计和开发。 第三,RISC 核硬件结构设计。现代高性能处理器设计中的三大核心技术是跳转控制

技术,指令调度技术和存储器访问优化技术[HP02]。本节用于异构 ASIP 的 RISC 核设计

中,出于设计难度和成本的考虑,我们在上述三个方面均进行了简化。在跳转控制上我

们不采用转移猜测技术,为此我们的取指,译码部分仅分割成两级流水线,加之充分利

用 MIPS 指令集延迟槽特性,跳转指令在一个周期内完成,达到不需要进行转移猜测。

存储器访问上不采用指令和数据 Cache,而代之以直接的片内 SRAM,这是因为各 ASIP宏块级指令容量并不大无需使用指令 Cache,而且数据流以宏快为单位进行相对固定,

流动性大而局部性弱,数据 Cache 也不需要。而直接 SRAM 设计简单,且能保障存取操

作都在一拍内完成。 指令调度采用单发射顺序执行,相比于超标量机多发射(即使是两发射)在相关性

判断以及指令重排序(Reordering)上的巨大复杂度,硬件设计难度和面积代价都显著减

低;而相比于超长指令字 VLIW 结构来说,编译器和优化器的复杂度显著降低,以至于

开源软件即能满足要求。所以当前市场主流的嵌入式处理器核 IP 也都是基于单发射顺序

执行的。单发射顺序执行的性能缺陷我们通过以下方面进行弥补。首先是指令流水线的

逻辑优化,通过精确的流水线级别划分以及流水级内逻辑优化来提高系统工作频率;其

次对关键路径上的特定功能的相关指令做使用上的限制,比如去除浮点操作指令,在不

需要的 ASIP 中去除除法和带符号乘法等指令,减小乘法器位宽,以及限制乘法器的执

行频率(使大位宽乘法器路径成为多拍路径 MCP:Multi-Cycle Path);再次是借助扩展

指令对 SIMD,矢量处理和专用数据通路的支持来加速特定运算的执行,这使得 ASIP的处理能力原则上可以与任何多发射和 VLIW 结构相比。

第四,软硬件对多核互连和流水机制的支持。互连网络和通讯协议的设计是多核系

统设计的核心关键之一,直接关系着系统的功能和整体性能。异构 ASIP 多核流水的系

统结构对于核间互连的设计有显著的简化作用,多核并行运行在相继的宏块级流水线上,

核间通信不存在复杂的握手同步操作,而完全基于宏块级数据块,通过数据 FIFO 的空

满信号自动的进行。ASIP 均具有相互独立的片上存储空间来进行宏块级别的操作,访存

模块通过存储控制器以及请求均匀化控制机制访问共享的片外存储器。软件操作对数据

FIFO 访问相对透明,FIFO 数据空间与片上存储空间进行统一编址构成核地址空间,为

节省编址位宽,不同核的核地址空间相互独立,且与外存地址独立。出于流水控制机制

Page 146: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

126

等顶层控制的需要,ASIP 核与系统层 MCU 采用双向可读写的寄存器进行交互,包括启

动信号,宏块执行状态,FIFO 空满状态,访存状态,以及功耗控制状态等。与 MCU 交

互也有中断方式,但仅限于 ASIP 向 MCU 的中断。 第五,软硬件对专用硬件数据通路的支持。出于 ASIP 性能的考虑,我们需要对 RISC

可编程核增加 SIMD,矢量处理和专用数据通路的支持。这意味着要让原来的通用指令

集工具链及相应开发流程能够兼容于我们定义的扩展指令。我们的方法是将扩展指令设

计在 MIPS 的指令空间以内,采用原指令集中未使用或本 ASIP 不使用的指令地址,替

换其对应的功能。这种替换 大的问题在于,首先 MIPS 指令集对于各条指令的 32 个比

特位的具体语法做出了明确的规定,比如操作码 6 比特,每个操作数 5 比特等,因而硬

件的指令解码部分和软件编译器的相关性判断部分均以次为依据进行,所以进行指令替

换时必须保证替换前后编码格式和相关关系不变。经过对指令集的分析,我们采用协处

理器访问指令编码扩展指令。其次是扩展指令空间中用于传递硬件配置参数的自由比特

有限,所以硬件加速器内部需要对这些参数的默认值和 新值作寄存,以减少不必要的

参数传递时间,在需要修改的参数较多时则需要多拍来传递一条扩展操作的所有参数。

另外编译器不会将大段的 C 语言直接转换成我们的扩展指令,这就需要对扩展指令进行

汇编编程,并通过内联汇编段的方式潜入到 C 源码中。 硬件方面对扩展指令的支持主要是两个方面。第一个是指令传递,当 RISC 核解码

分析出扩展指令后,将指令直接发送到扩展模块(EXT)的相应处理单元进行处理,然

后 EXT 与 RISC 可以并行执行各自的指令,它们之间可以通过“Sync”指令进行同步。

第二个是数据交换,RISC 的存储空间是与 EXT 共享的,共享的片上存储是 RISC 与 EXT进行大量数据交换的媒介。共享的片上存储对支持扩展指令具有特殊处理,其地址空间

中有一段特殊的子空间对于 EXT 具有超大的读写位宽,以适应 EXT 中的矢量处理的需

要;某些 ASIP 的存储子空间中还具备寄存器构成的转置矩阵,用于完成按行或按列的

吞吐率的行列转置操作。 将上述总体考虑综合起来,我们设计了如图 7.4 所示的 ASIP 整体结构。每一个 ASIP

由四个部分构成:一个通用 RISC 核,执行控制操作和低复杂度的计算;一个扩展指令

集处理器,构成适应算法的专用数据通路;一个片上存储模块,进行指令和数据的存储,

RISC 和 EXT 之间的数据共享,某些 ASIP 支持大位宽访问和转置操作;以及一个接口

模块,以 DMA 方式进行流水级间数据传递以及外存访问。

Page 147: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第七章 基于多核流水的多标准视频 Codec 系统结构

127

RISC Core

S/LALU

On-chip Memory I/O Interface

Scheduler

sync

Decoder

Data bus (128 bit)Inst bus (32 bit)

Config/Status bus

ExternalMemory I/F

Data I/F

Bi-dir I/F

EXT

FU0

wrapper

FU1 FU2

SCR

图 7.4 ASIP 子系统结构图

下面我们进入到 RISC 核设计,根据 MIPS 指令集,处理器的规格满足如下要求:

32 位指令字长 32 位数据字长 支持 MIPS 核心指令 63 条(其中算术逻辑指令 30 条,访存指令 8 条,跳转指

令 20 条,协处理器指令 4 条,同步指令 1 条),其中协处理器指令用于扩展。 具有 32 个 32 位通用寄存器(GPR:General Purpose Registers)

以及从性能和功能性上考虑的进一步要求: 指令流水线,指令运行按功能划分成取值(IF:Instruction Fetch),译码(ID:

Instruction Decoding),执行(ALU)和访存写回(MEM)四个流水级,使多条

指令可以并行执行在不同阶段,提高指令运行的吞吐率。 哈佛结构,数据和指令分离存储以及存储器访问在固定流水级,这两点消除了

指令运行中的结构相关性。 相关性判断及流水线控制,当相继指令间具有数据相关性和控制相关时,需要

上游流水线暂时保持住,以等待下游具有相关性的数据计算完成,再继续流水

线的运行。 直接传递(Forwarding)路径,为了减少 ALU 结果和 MEM 结果与后续指令的

相关性带来的流水线等待,我们增加了从这两个结果到 ID 的直通路径

(Forwarding Path)。当相应相关性发生时,则可通过选择直通路径上的结果马

上进行 ID,而不用等到那些结果走完四级流水级写回到寄存器堆(Register File)。

四级流水线结构如图 7.5 所示,其中两条 forwarding path 用红线标出。

Page 148: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

128

IF ID ALU MEM / WB

Data Mem

Inst Mem

Register File

next_PC

write back bus

instruction request read data

alu2id_fw

mem2id_fw

图 7.5 RISC 核流水线结构示意图

图 7.6 给出了具体的详细结构设计示意图,对具体设计我们不做太多讨论,而仅对

其关键路径进行优化。所示结构的关键路径为从指令寄存器 IR 开始经过相关性判断,到

跳转条件判决,到 next_PC 生成, 后到达指令存储器的输入端。通过对关键路径的逻

辑优化和对 IR 寄存器的 retiming,该 RISC 核的工作频率在 0.18µm 工艺下可以达到

216MHz。RISC 核心包括 32×32 乘法器在内小于 40K 门(不计 SRAM)。我们对 RTL 实

现进行了仿真验证,运行结果完全正确。根据视频算法各模块直接软件实现在 RTL 的仿

真结果,平均 CPI 能达到 2.0 以下。

Page 149: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第七章 基于多核流水的多标准视频 Codec 系统结构

129

Last_PC

o_iram_addr32

13

i_iram_q 32'b032

new_pc

Nullify

brbus_valid

i_inst

ir

Corelation

rs1

rs2

ir_op 6

Mux

Mux5

5 rs1_used

0

0

rs2_used

Cmp

Cmp

alu_dest

mem_dest

alu_valid

mem_valid

Register

File

sr1_valid

sr2_valid

corelation_valid2

5

5

2

sr1_alu_fw

sr1_mem_fwsr2_alu_fw

sr2_mem_fw

alu_fw_value

mem_fw_value

reg_value1

reg_value2

i_inst

Forward

Branch

Conditions

b_taken

j_taken

ir_long_immediate

ir_short_immediate

|

+

ir_long_immediateir_short_immediate

+4

branch

new_pc

o_pc

ir_op

ir_op

Likely?Nullify

ir_op

alu_fw_value

mem_fw_value cop_valid

brbus_valid

brbus_valid

Linked?

Mux

ir_destrs2 310

idbus_destld/avsl?

NAND

ir_linkir_link

wb?

idbus_valid

ir_op Mux

001001

ir_op

idbus_op

Mux

reg_value1

i_pc+4

idbus_value1

Mux

reg_value2

Imm?

idbus_value2

ir_short_immediate

ir_op

ir_opex

idbus_opex

ALU

exe_dest exe_valid exe_opex exe_op exe_value1 exe_value2

HI

LO

exe_stvalue

idbus_stvalue

reg_value2

alu inst

alu_destalu_valid

id_bus

mem_dest mem_valid mem_op

I Fetch

wb_bus

rs1

rs2

mem_exeresult

o_dram_addr 13

o_dram_wdata 32

o_dram_wen

sw?

Mux

i_dram_rdata 32

mem_fw_value

combine

mem_destmem_valid

write back bus

cop_valid

ORavss?

AND avsl?o_cop_active

OR

wait_for_cop_ready

inv

i_cop_read_ready

o_cop_write

o_cop_addr

o_cop_wdata

8

32

Still wait?

i_cop_rdata 32 AND load_cop_value

i_cop_rdata

i_dram_rdata

load_cop_value

cop_valid

cop request

cop ack

write back

AND

ALU

图 7.6 RISC 核详细结构图

Page 150: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

130

7.4 模块相关的扩展加速器设计

通过多核流水的并行结构,单位时间内一个可编程核需要处理的任务量从整个系统

降低为一个模块.但是可编程核处理多次循环的数据运算时在性能上和功耗上仍是不划

算的,所以我们引入了专用数据通路.另一方面,由于上述三个标准算法方面的特点,

模块内运算集中部分的相似性被很多专用硬件实现[11][12]所利用.但纯硬实现不利于应

用到多个标准,所以我们采用了模块级别软硬结合的方案.RISC Core 给控制和调度提

供了充分的灵活性,而 EXT 则用较小的硬件代价取得了性能和功耗方面的优势.具体模

块级软硬划分则需根据算法进行了优化. 整像素 ME 具有极高的计算复杂度,需要对其深层循环部分进行硬件加速。RISC

负责快速估计算法的上层控制,而 EXT 负责 SAD 计算.SAD 计算我们采用了第五章的

交叉存储结构。如图 5.5 左图所示,参考像素的搜索窗存于 16 个片上单口 SRAM 中,

构成 16 个存储体,每一个存储体的字宽都是 64 位。采用这种交叉存储的方式,任意非

对齐的 8×8 参考块对应的存储字都来自于不同的存储体,如图 5.5 左图虚线框所示。所

以只需一个时钟周期来准备好一个 8x8 块需要的参考像素,而且适用于快速搜索算法,

达到了性能和灵活度的高效折中。图 5.6 所示的两级流水的加法树结构,吞吐率也能达

到每个周期一个 8×8 块.同时,为了中间结果的复用,8×4~4×4 各小块的 SAD 也被计

算出来用于估计小块的 MV。 分像素 ME 的多阶滤波插值部分采用专用硬件加速,FME_ASIP 中 Core 负责运动估

计的循环控制以及帧间分块模式决策,EXT 按 4x4 块进行二维分像素插值,SATD 判断

以及 MV 判决,由图 7.7 所示六级流水线结构。

图 7.7 分像素 ME 块流水线

EXT 的数据通路是基于 4×4 块的,大块的搜索过程分解成小块进行。以 复杂的

H.264 为例,1/2 和 1/4 像素搜索范围均为±1。第一级(Stage 1)包含五个 6 阶 FIR 滤波

器,它能根据输入的连续 9 个整像素参考点一拍计算出 5 个半像素插值结果。这样计算

图 7.8 中空心圆点所示的 10×5 的垂直半像素点一共需要 10 拍,构成流水线第一级。第

一,二级之间存在基于寄存器的转置矩阵以达到按行和按列的吞吐率。第二级(Stage 2)的滤波逻辑与第一级相同,计算所需的 5×11 个水平半像素点(如图 7.8 中实心圆点所示)

需要 1 拍,形成流水线的第二级。第三、四级各包含一套 4x4 加法树结构来计算 SAD,

16 个 1/4 像素插值并行的在第四级中完成(图 7.8 中的三角点),这两级的延迟分别为 9

Page 151: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第七章 基于多核流水的多标准视频 Codec 系统结构

131

拍和 10 拍。第五、六级各包含一个一维 Hadamard 变换结构,他们的延迟分别为 8 个和

9 个周期。流水线输出为 佳 MV 以及其对应的 SATD 值,其吞吐率为每 11 个周期输出

一个 4x4 块。

Integer pixles Vertical half-pel of stage 1

Horizontal half-pel of stage 2

Quarter-pel by stage 4

Best integer ref block

Best half-pel ref block

Best quarter-pel ref block

图 7.8 二维插值计算示意图

帧内预测的基本数学操作是(1,2,1)和(1,1)的平均滤波.帧内预测的 EXT 将参考像素

存储与一组连续的专用像素寄存器中,配合一组可配置的(1,2,1)/(1,1)滤波器组能在一个

周期内计算四个帧内预测点.这个 ASIP 也要完成多标准的变换及反变换的操作,为此

引入 8 项内积的专用逻辑(如图 7.9 所示).其中向量 A 用作待变换的像素值,而向量 B用于变换矩阵系数.该逻辑还可用于加速帧内预测的平面(Plane)和直流(DC)模式,SAD计算以及 Hadamard 变换.

Page 152: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

132

8-bit

16-bt

+

× 16-bit

Vector A

Vector B

Clip & Shift+

× ×+

×

+

×+

× ×

+

图 7.9 用于正反变换的内积结构

环路滤波需要处理不同标准间滤波顺序不同的问题,H.264 和 AVS 先滤垂直边,而

VC-1 先滤水平边而且 8x8 边界先于 4x4 边界.滤波输入数据的调度和滤波参数的计算由

RISC 完成,而以 4x4 边为单位的滤波运算由 EXT 完成.EXT 采用以 4x4 边为单位的三

级流水线,如图 9 和图 10.其吞吐率为每 32 个周期一条 4x4 边界.

Core(scheduling and

parameter computing)

Load

Line Buffer

Input FIFO

Pixel Filtering

Data Path

Transpose Buffer

Store

Control

图 7.10 环路滤波加速器

PCnSdn

32Edgen

Core

EXT0

(cycles)Time period6Edgen+1

LFn

PCn+1Sdn+1

8Edgen+2

StnEXT1

PCn+2Sdn+2

LFn

LFn

LFn

LFn+1

LFn+1

LFn+1

LFn+1

L: Load one lineF: Filter one line St: Store one edge

Sd: Edge schedulingPC: Parameter Calculation

图 7.11 环路滤波 EXT 流水线示意图

对于熵编解码,所有与码流的相关操作都由 EXT 完成。我们定义了三条扩展指令:

用于 AVS 和 H.264 的指数哥伦布(Golomb)码,用于 VC-1 的哈夫曼(Huffman)码以及定长

Page 153: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第七章 基于多核流水的多标准视频 Codec 系统结构

133

码。自适应算法中上下文信息的维护由 RISC 完成。图 7.12 给出了熵解码硬件通路的示

意图,主要模块 LUT,转意器(Translator)均具有反向运算功能,而该通路也可复用作

编码。

Stream Buffer

Current Word Next Word

Decoder(LUT)

Bit Position Accumulator

external memory

code word

Translator

code length

load

shift_bit

syntax value

图 7.12 熵解码 EXT 硬件通路示意图

7.5 芯片实现和性能分析

我们完成了五个 ASIP 核以及 MCU 和外存控制器的设计和实现.在 TSMC 0.18µm工艺库下综合结果为总面积 961K 逻辑门,关键路径 大延迟 4.62ns,图 7.13 给出了芯

片版图.

图 7.13 编解码器芯片版图

Page 154: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

134

表 7.1 芯片性能面积分析

模块/功能 性能(拍/MB) 面积(K gates) 带宽(MHz)

整像素 ME Step 1 < 392

整像素 ME Step 2/3 < 1728

MV 预测 < 1230

访问外存 < 400 Stage1

ASIP 小计 < 4250

30 (Core)+30 (Memory) +182 (EXT)+5 (IO)

= 247 < 59.6

分像素 ME < 2840

跳过/直接模式 < 600

色度 MC < 400

模式决策 < 880 Stage2

ASIP 小计 < 5220

30+42+38+29=139 < 30.8

帧内预测 L16x16 < 612

帧内预测 L4x4 < 1506

帧内预测 C8x8 < 420

SATD < 512 TQQT < 2154

Stage3

ASIP 小计 < 5300

35+56+56+29=176 0

DBK_ASIP < 4700 30+56+39+13= 138 Stage4

VLC_ASIP < 4540 28+51+39+36=154 < 12.2

MCU < 2000 35+17+0+0=52 - 外存控制器及 IO - 55 -

总计 < 5333 961 < 102.6

表 7.1 给出了各 ASIP 性能,面积和外存带宽的统计。性能上,系统 大宏块处理周

期数为 5333,折合到每秒支持的 SD 处理帧数为

91 4 62 10 30 065333 720 480 256

−×=

× ×/ . .( / ) ;面积

上,专用数据通路所占的芯片面积仅为 18%;外存分析是基于四体 16 位 DDR SDRAM。

Page 155: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

第七章 基于多核流水的多标准视频 Codec 系统结构

135

表 7.2 与其他工作的对比

方案 体系结构 性能 支持的标准 面积

[LSC05] 专用硬件加速器 VGA 30fps JPEG, H.263, MPEG-4

494KGate + ARM922T

[LS03] 专用硬件加速器 QCIF 15fps JPEG, H.263, MPEG-4

[email protected]µm

[HA07] 专用硬件加速器 D1 real-time H.264, VC-1, MPEG-4

na.

[CC07] VLIW CIF 30fps H.264, MPEG-2/4

na.

[CN05] 矢量处理机 for wireless embedded apps.

H.264, MPEG-2/4

[email protected]µm

[TF06] 并行数据处理机 (data parallel processor)

na. H.264, JPEG, MPEG-2/4

less than dedicated HW

[Cra06] 多核 SMP CIF 30fps H.264, VC-1 na.

所提的 异构 ASIP 多核流水 D1 30fps AVS, H.264, VC-1 961KGate

表 7.2 给出了与现有其他低复杂度多标准实现的比较。相比于典型的低复杂度硬连

方案[LSC05][LS03][HA07],所提方案具有可匹敌的面积和性能,但所支持的标准更复杂

更广泛,而且硬连逻辑只占 18%,大大节省了设计和验证的工作量。相比于典型的 DSP和向量处理器方案[CC07][CN05][TF06],所提的体系结构能充分的利用线程级并行度,

使性能显著提升。而相比于传统的可编程多核方案[Cra06],可配置的专用数据通路促使

了性能进一步提升和功耗的降低。而且通过修改专用数据通路,本结构也能较容易地支

持 MPEG,H.263,Real 等其他视频编解码标准。

7.6 小结

本章为多标准视频编解码系统提出了一种高性能的可编程解决方案。通过对已有体

系结构的总结和分析,前人的方案对于多标准编解码器来说,总是在性能,可编程性和

成本的某一方面非常不适合。为此我们提出了异构 ASIP 的多核流水结构,实现了可编

程性,性能,和成本的高效折中。多核流水的体系结构能充分利用线程级并行度,在基

本不损失可编程性的情况下大幅度提高了系统性能。模块级别的异构 ASIP 结构,使得

软硬件划分,和性能代价权衡上具有极大的设计空间,且可根据模块特性进行更有针对

性的具体优化。 对于可编程核这一关键部件,我们针对应用进行了自行的重新设计,根据要求剔除

了无用部件和优化了关键路径,用更小的面积取得了相当的性能,同时消除了 IP 知识产

权成本问题,并相应提供了适用的全套软件开发解决方案。 本章的意义还在于将前述的各章的具体技术集成成为编解码系统,并完成了其 RTL

Page 156: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

136

设计和实现,使各分立技术方案的实用性得到了进一步的验证。其中包括第三章提出了

系统流水线控制机制和访存控制机制,第四章的参考像素存储的冗余映射和联合映射机

制,第五章的高性能高灵活度的可变块大小整点运动估计结构和算法,以及第六章的高

性能算术解码器结构。

Page 157: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

137

第八章 结束语

8.1 本文工作总结

本文围绕着通过结构设计提高系统性能的主要目标展开,针对视频编解码器设计中

的性能相关的若干关键问题给出了一系列行之有效的解决方案。首先通过系统级和模块

级别的详细算法分析,我们得到了决定硬件实现的数据流特征,并找出具有不同特点的

三大性能瓶颈模块。其次在系统级别分析了系统级流水线以及共享存储结构对系统性能

的影响,讨论和解决了在模块性能和带宽资源足够情况下 坏情况保障系统性能的问题。

然后在模块级别就三大瓶颈模块的性能提升做出了具体设计,以算法特征为根据,以结

构设计和逻辑优化为手段,提出了一系列优化方案,在各瓶颈模块均获得了性能的显著

提升。 后针对视频编解码器设计中新兴的多标准需求,进行了细致的系统结构设计,

提出了一套将可编程性,性能和成本达成高效折中的芯片实现方案,并将前述所提的各

项优化技术集成成整体系统,验证了其实用性和高效性。 本文充分采用了结构设计不同层次的各种优化手段,从系统级体系结构设计,到模

块级别的软硬件划分设计,到计算路径的算法级,结构级和逻辑级优化;同时也充分考

虑了不同算法的特点进行优化,从共享资源型,到大数据流量型,再到强相关型。所提

的各种优化方法,虽是根据具体算法进行的特定优化,但其设计思路和设计方法在一定

的范围内具有广泛的适用性,对于视频编解码器乃至其他信号处理芯片设计中的性能问

题具有极强的推广能力。本文具体的贡献可以总结为以下几点: 1. 共享存储流水线的性能保障技术。针对共享存储的流水线系统性能问题,我们

分析了共享存储对于流水线性能的影响,提出了同步流水线结构和相应的请求

缓冲机制,实现了在 坏情况也能对系统性能的保障,将系统性能要求直接转

化为模块性能要求和总带宽要求。该技术广泛的适合于大部分共享存储的流水

线系统。 2. 改进的参考像素外存映射优化技术。以前人的基于块的映射方式为基础,进一

步考虑参考块访问的特点,提出了以空间换带宽的冗余映射技术来减少访问的

有效载荷,以及利用亮色度块相关性的联合映射技术来减少访问的无效载荷。

将峰值带宽要求和平均带宽要求分别降低 47%和 25%。其中冗余映射技术具有

较强的普适性。 3. 基于交叉存储的运动估计结构和算法设计。大计算量算法在硬件实现时的真正

的性能瓶颈往往不是计算本身,而是其输入/输出数据的组织。针对这一特点而

设计的交叉存储结构被应用到运动估计模块的设计中。交叉存储给搜索位置和

搜索顺序带来的灵活性,使得快速运动估计算法可以在该结构中得到有效的实

Page 158: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

138

现。本文根据硬件结构设计出一套适合改进的快速运动估计算法,以比三步法

略高的复杂度得到了与全搜索平均仅相差 0.1dB 的编码效果。搜索性能达到 2-D systolic 阵列水平,但面积减小 15%,功耗仅相当于其 1/16。

4. 高相关性反馈电路的性能优化技术。针对 CABAC 解码的性能瓶颈,首先进行

了单 bin 和双 bin 的固定 bin 率解码结构的优化,提出了猜测执行技术,查找表

优化技术和运算顺序优化技术,以及移位链技术等多项算术和逻辑级别优化关

键路径的手段,解码 bin 输出率达到 339Mbin/s(0.18µm),相比于前人设计

(148.5Mbin/s)提高了 1.26 倍。然后从实时性角度出发,分析了实时性限制条

件,提出了按 bin 解码和按 bit 解码的混合结构,实现了多达 15 个 bin 的深度循

环展开和优势猜测执行,保证了输入码率上至 20Mbps 码流的实时解码。 5. 用于多标准实现的异构 ASIP 多核流水技术。多核流水的体系结构能充分利用

线程级并行度,在基本不损失可编程性的情况下大幅度提高了可编程系统的性

能。模块级别的异构 ASIP 结构,使得在软硬件划分和性能代价权衡上具有极大

的设计空间,且可根据模块特性进行更有针对性的具体优化。自行设计的 RISC核对降低系统成本又决定性作用,且解决了软件开发的诸问题。物理实现结果

为面积仅占用 96.1 万门,而达到上至 D1(720×480@30fps)的视频图像的实时编

解码。该体系结构成为与多标准编解码器相似的对可编程性和性能均有要求的

一类应用的首选结构。

8.2 下一步研究方向

本文对于高性能视频编解码器结构设计方面的研究目前仅取得了阶段性的成果。对

于各瓶颈模块的性能优化的程度依然有限,对于更高的性能需求,本文所提的部分优化

手段仍是不够的。这表现在如何进一步的优化外存储器带宽利用率,如何进一步提高搜

索区域的大小或搜索的宏块吞吐率,以及如何进一步的提高 CABAC 的解码速率。 另一方面视频编解码的发展方向除了高性能外,低功耗是芯片设计另一个主流的方

向。在功耗为主的设计中,部分的设计和优化手段就需要调整,包括门控时钟,动态电

压管理等手段,以及一些性能换功耗,面积换功耗的思路。如何在性能,面积和功耗上

取得 佳的折中,在保证一定性能的前提下尽量减少功耗,是视频编解码器设计的下一

步方向。 同时,由于芯片复杂度的迅速提高,可编程性成为视频编解码器设计的另一个方向。

本文所提的异构 ASIP 多核流水结构是一个适合的结构,但具体的软硬划分和 RISC 核中

都有许多可以进一步优化的空间。包括进一步优化性能,优化硬件通路及参数配置方式,

进一步完善 ASIP 结构,适应更多的视频标准(如 MPEG 系列,Real 等),考虑低功耗

设计等。

Page 159: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

139

参考文献

[AVS05] 《信息技术 先进音视频编码 第二部分:视频》(GB/T 20090.2)

[Bro06] Broadcom Inc. BCM7400 [OL]. http://www.broadcom.com/products/Consumer- Electronics/High-Definition-Audio-Video-Graphics-System-Processors/BCM7400, 2006

[CC07] O. T. Chen, L. H. Chen, et al. “Application Specific Data Path for Highly Efficient Computation of Multistandard Video Codecs,” IEEE Trans on Circuits and Systems for Video Technology, 2007, 17(1): 26-42

[CCL05] Jian-Wen Chen, Cheng-Ru Chang, Youn-Long Lin, “A hardware accelerator for context-based adaptive binary decoding in H.264/AVC,” Proc. IEEE Int. Symp. on Circuits and Syst., vol. 5, pp. 4525 – 4528, May 2005

[CCT07] T. C. Chen, Y. H. Chen, S. F. Tsai, S. Y. Chien, L. G. Chen, “Fast Algorithm and Architecture Design of Low Power Integer Motion Estimation for H.264/AVC”, IEEE Transaction on Circuits and Systems for Video Technology., Vol. 17, No.5 pp. 568–577, May, 2007.

[CL95] S. B. Choi, and M. H. Lee, “High speed pattern matching for a fast Huffman decoder” IEEE Trans. Consumer Electronics, vol. 41, no. 1, Feb 1995, pp. 97-103

[CM92] S. F. Chang, D.G. Messerschmitt, “Designing high-throughput VLC decoder. I. Concurrent VLSI architectures,” IEEE trans. on Circuits and Systems, vol. 2, no. 2, pp. 187-196, Jun. 1992

[CN05] V. A. Chouliaras, J. L. Nunez, et al. “A Multi-standard Video Accelerator Based on a Vector Architecture,” IEEE Trans on Consumer Electronics, 2005, 51(1): 160-167

[Cra06] Cradle Inc. CT3400 [OL]. http://www.cradle.com/products/ sil_3400_family.shtml, 2006

[DRV05] K. Denolf, A. C. Rus, D. Verkest, “Low-power MPEG-4 video encoder design,” IEEE Workshop on Signal Processing Systems Design and Implementation 2005, Nov. 2005 Page(s):284 – 289

[ECSN06] H. Eeckhaut, M. Christiaens, D. Stroobandt, V. Nollet, “Optimizing of the critical loop in the H.264/AVC CABAC decoder”, IEEE International Conference on Field Programming Technology, pp. 113-118, Dec 2006.

[FMW04] Liang Fan, Siwei Ma, Feng Wu, “Overview of AVS Video Standard,” IEEE

Page 160: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

140

International Conference on Multimedia and Expo, 2004. ICME '04. ,Vol.1, pp. 423 – 426, June 2004

[Gon07] R. C. Gonzalez, “Digital Image Processing (Second Edition),” Publishing House of Electronics Industry, ISBN 9-787-12104-3987, Sep. 2007

[HA07] M. Hase, K. Akie, et al, “Development of Low-Power and Real-Time VC-1/H.264/MPEG-4 Video Processing Hardware,” Proc of the 2007 Asia and South Pacific Design Automation Conference, 2007. 637-643

[HCL04] Y. Huang, S. Chien, B.Hsieh, L.G.Cheng, “Global Elimination Algorithm and Architecture Design for Fast Block Matching Motion Estimation,” IEEE Transaction on Circuits and Systems for Video Technology., Vol. 14, pp. 898–907, 1137, Apr. 2004.

[HHLP98] B. G. Haskell, P. G. Howard, Y. A. LeCun, A. Puri, J. Ostermann, M. R. Civanlar, L. Rabiner, L. Bottou, and P. Haffner, “Image and video coding—Emerging standards and beyond,” IEEE Trans. Circuits Syst. Video Technol., vol. 8, no. 7, pp. 814–837, Nov. 1998

[HJS04] D. A. Hodges, H. G. Jackson, R. A. Saleh, “Analysis and Design of Digital Integrated Circuits In Deep Submicron Technology,” McGraw-Hill Companies, Inc, Aug, 2004

[HP02] J. L. Hennessy, D. A. Patterson, “Computer Architecture: A Quantitative Approach (Third Edition),” Elsevier Science Pte Ltd., ISBN 7-111-10921-X, Sep, 2002

[HWHC03] Y. W. Huang, T. C. Wang, B. Y. Hsieh, L. G. Chen, “Hardware Architecture Design for Variable Block Size Motion Estimation in MPEG-4 AVC/JVT/ITU-T H.264,” ISCAS 2003 Vol. 2, 25-28 May 2003 Page(s):II-796 - II-799

[ITU-T00] “Information technology – Generic coding of moving pictures and associated audio information: Video,” ITU-T Recommendation H.262 version 6, 2000

[ITU-T90] “Video Codec for Audiovisual Services at p_64 kbit=s ITU-T Recommendation H.261, Version 1,” ITU-T, ITU-T Recommendation H.261 Version 3, 1990

[JC04] X. Jing, L. P. Chau, “An efficient three-step search algorithm for block motion estimation,” Multimedia, IEEE Transactions on Vol. 6, No. 3, Jun. 2004 Page(s):435 - 438

[JL04] S. T. Jung, S. S. Lee, “A 4-way pipelined processing architecture for three-step search block-matching motion estimation”, IEEE Tansactions on Consumer Electronics, Vol 50, No.2, pp674-pp681, May, 2004.

[JVT03] “Draft ITU-T recommendation and final draft international standard of joint video

Page 161: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

参考文献

141

specification (ITU-T Rec. H.264/ISO/IEC 14 496-10 AVC,” Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG, JVTG050, 2003

[JW01] E. Jaspers, P. H.N. de With, “Bandwidth reduction for video processing in consumer systems,” IEEE trans. on Consumer Electronics, vol. 47, no. 4, Nov. 2001

[KJ07] H. Kalva, L. Jae-Beom, “The VC-1 Video Coding Standard,” IEEE Multimedia Vol. 14, No. 4, Oct.-Dec. 2007 Page(s):88 – 91

[KLHI81] T. Koga, K. Linuma, A. Hirano, Y. Ijima and T. Ishiguro, “Motion Compensated Interframe Coding for Video Conferencing,” Proc. NTC 81, pp. C 9.6.1-9.6.5

[Kon98] K. Konstantinides, “VLIW Architecture for Media Processing, ” Signal Processing Magazine, IEEE Vol. 15, No. 2, Mar 1998 Page(s):16 - 19

[KP01] H. Kim, I. C. Park, “High-Performance and Low-Power Memory-Interface Architecture for Video Processing Applications,” IEEE trans. on CSVT, vol. 11, no. 11, Nov. 2001

[KP06] C. H. Kim, I. C. Park, “High Speed Decoding of Context-based Adaptive Binary Arithmetic Codes Using Most Probable Symbol Prediction,” Proc. IEEE Int. Symp. on Circuits Syst., May 2006, pp. 1707-1710

[KP89] T. Komarek, P. Pirsch, “Array architectures for block matching algorithms,” IEEE Transactions on Circuits and Systems, Vol. 36, No. 10, Oct. 1989 Page(s):1301 – 1308

[Lee97] R. B. Lee, “Multimedia Extensions for General-Purpose Processors,” Proc of the 1997 IEEE Workshop Signal Processing Systems, 1997. 9-23

[LJPH97] Y. S. Lee, J. J. Jong; T. S. Perng; L. C. Hsu; M. Y. Jaw; C. Y. Lee, “A memory-based architecture for very-high-throughput variable length codec design,” IEEE int. Symp. on Circuits and Syst., vol. 3, pp. 2096 - 2099, May 1997

[LKPK06] S. H. Lee, J. H. Kim, J. H. Park, S. W. Kim, S. Kim, “Implementation of H.264/AVC decoder for mobile video applications,” IEEE International Symposium on Circuits and Systems, 2006, May 2006 Page(s): 21-24

[LL99a] N. Ling, J. H. Li “A Bus-Monitoring Model for MPEG Video Decoder Design,” IEEE trans. on CSVT, Vol. 9, No. 5, Aug. 1999

[LL99b] J. H. Li, N. Ling, “Architecture and Bus-Arbitration Schemes for MPEG-2 Video Decoder,” IEEE trans. on CSVT, vol. 9, no. 5, Aug. 1999

[LLJ05] K. B. Lee, T. C. Lin, C. W. Jen, “An Efficient Quality-Aware Memory Controller for Multimedia Platform SoC,” IEEE trans. on CSVT, vol. 15, no. 5, May 2005

Page 162: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

142

[LLLU98] Y. K. Lai, Y. L. Lai, Y. C. Liu, P. C. Wu, L. G. Chen, “VLSI implementation of the motion estimator with two-dimensional data-reuse,” IEEE Transactions on Consumer Electronics, Vol. 44, No. 3, Aug. 1998 Page(s):623 – 629

[LM91] H. D. Lin, D. G.. Messerschmitt, “Improving the iteration bound of finite state machines,” IEEE Trans. Circuits Syst., vol. 38, pp. 465-475, May 1991

[LM92] H. D. Lin,, D.G. Messerschmitt, “Designing a high-throughput VLC decoder. II. Parallel decoding methods,” IEEE Trans. on Circuits and Syst., vol. 2, no. 2, pp. 197-206, Jun. 1992

[LS03] R. P. Llopis, R. Sethuraman, et al. “A Low-Cost and Low-Power Multi-Standard Video Encoder,” Proc of the 2003 IEEE/ACM/IFIP Int’l Conf on Hardware/Software Codesign and System Synthesis, 2003. 97-102

[LSC05] Y. C. Lu, C. F. Shen, C. K. Chen, et al. “Performance-Driven Optimization for Video Accelerator Design,” Proc of the 2005 IEEE Int’l Symposium on Circuits and Systems, 2005. 4521-4524

[LSL99] Y. S. Lee, B. J. Shieh, C. Y. Lee “A generalized prediction method for modified memory- based high throughput VLC decoder design,” IEEE Trans. on Circuits Syst. II, vol. 64, no. 6, Jun. 1999, pp. 742 – 754

[LZL94] R. Li, B. Zeng, M. L. Liou, “new three-step search algorithm for block motion estimation,” Circuits and Systems for Video Technology, IEEE Transactions on Vol. 4, No. 4, Aug. 1994 Page(s):438 - 442

[Mic06] Micronas Inc. DeCypher 8100 [OL]: http://www.micronas.com/products/by_function/ decypher_dhm8100a/product_infomation, 2006

[MKK05] Y. H. Moon, G. Y. Kim, and J. H. Kim, “An efficient decoding of CAVLC in H.264-AVC video coding standard,” IEEE Trans. Consumer Electronics, vol. 51, no. 3, Aug 2005, pp. 933-938

[MPEG92] ISO/IEC 11172-2, “Information Technology – Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s,” Part 2: Video

[MPEG94] “Generic Coding of Moving Pictures and Associated Audio Information - Part 2: Video,” ITU-T and ISO/IEC JTC 1, ITU-T Recommendation H.262 and ISO/IEC 13818-2 (MPEG-2), 1994

[MPEG99] “Coding of audio-visual objects—Part 2: Visual,” in ISO/IEC 14 496-2 (MPEG-4 Visual Version 1), Apr. 1999

[MRB89] A. Mukherjee, N. Ranganathan, and M. A. Bassiouni, “Adaptive and pipelined VLSI

Page 163: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

参考文献

143

designs for tree based codes,” in Proc. IEEE Int. Conf. on Computer Design, MA, Oct. 1989, pp. 369-372

[MSW03] D. Marpe, H. Schwarz, T. Wiegand, “Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard,” IEEE Trans. Circuits Syst. Video Technol., vol. 13, no 7, pp. 620-636, Jul. 2003

[NVTS02] J. Nikara, S. Vassiliadis, J. Takala, M. Sima, and P. Liuha, “Parallel multiple-symbol variable-length decoding,” IEEE Int. Conf. on Computer Design: VLSI in Computers and Processors, pp. 126 – 131, Sep. 2002

[OFW99] S. Oberman, G. Favor, F. Weber, “AMD 3DNow! Technology: Architecture and Implementation,” Micro, IEEE Vol. 19, No. 2, Mar-Apr 1999 Page(s):37 - 48

[OOYK97] Y. Ooi, O. Ohnishi, Y. Yokoyama, Y. Katayama, M. Mizuno, M. Yamashina,. H. Takano, N. Hayashi, I. Tamitani, “An MPEG-2 encoder architecture based on a single-chip dedicated LSI with a control MPU,” IEEE International Conference on Acoustics, Speech, and Signal Processing, 1997. Vol. 1, 21-24 Apr. 1997 Page(s):599 – 602

[Par03] K. K. Parhi, “VLSI Digital Signal Processing Systems: Design and Implementation,” John Wiley & Sons Inc. ISBN 0-471-24186-5, Oct. 2003

[PCP96] S. B. Pan, S. S. Chae, R. H. Park, “VLSI architectures for block matching algorithms using systolic arrays,” IEEE Transactions on Circuits and Systems for Video Technology, Vol. 6, No. 1, Feb. 1996 Page(s):67 – 73

[PM91] K. K. Parhi, and D. G.. Messerschmitt, “Static rate-optimal scheduling of iterative data flow programs via optimum unfolding,” IEEE Trans. on Computers, vol. 40, no. 2, pp. 178-195, Feb. 1991

[PM96] L. M. Po, W. C. Ma, “A novel four-step search algorithm for fast block motion estimation,” Circuits and Systems for Video Technology, IEEE Transactions on Vol. 6, No. 3, Jun. 1996 Page(s):313 - 317

[PS98] P. Pirsch, H. J. Stolberg, “VLSI Implementations of Image and Video Multimedia Processing Systems,” IEEE Trans. on Circuits and Systems for Video Technology, Vol. 8, No. 7, Nov. 1998 Page(s):878 – 891

[PYP03] S. Park, Y. Yi, I. C. Park, “High Performance Memory Mode Control for HDTV Decoders,” IEEE trans. on Consumer Electronics, vol. 49, no. 4, Nov. 2003

[RCN04] J. M. Rabaey, A. Chandrakasan, B. Nikolic, “Digital Integrated Circuits: A Design Perspective (Second Edition),” Prentice Hall, ISBN 7-302-07968-4/TN.169, Mar.

Page 164: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

144

2004

[RDKM00] S. Rixner, W. J. Dally, U. J. Kapasi, P. Mattson, J. D. Owens, “Memory Access Scheduling,” Proc. of Int. Symp. Comp. Arch., pp. 128-138, Jun. 2000

[RN81] M. Renfors and Y. Neuvo, “The maximum sampling rate of digital filters under hardware speed constraints,” IEEE trans. on Circuits and Systems, vol. CAS-28, no. 3, pp. 196-202, Mar. 1981

[RPK00] S. K. Raman, V. Pentkovski, J. Keshava, “Implementing streaming SIMD extensions on the Pentium III processor;” Micro, IEEE Vol. 20, No. 4, Jul-Aug. 2000 Page(s):47 - 57

[RW96] M. K. Rudberg, and L. Wanhammar, “New approaches to high speed Huffman decoding,” IEEE int. Symp. on Circuits and Syst., vol. 2, pp. 149-152, May 1996

[SDRT05] P. Schumacher, K. Denolf, A. C. RUs, R. Turney, N. Fedele, K. Vissers, J. Bormans, “A scalable, multi-stream MPEG-4 video decoder for conferencing and surveillance applications,” IEEE International Conference on Image Processing, 2005. Vol. 2, 11-14 Sept. 2005 Page(s):II - 886-9

[SLL98] B. J. Shieh, Y. S. Lee, C. Y. Lee, “A high throughput variable length decoder with modified memory based architecture,” IEEE int. Symp. on Circuits and Syst., vol. 2, pp. 486 - 489, May 1998

[SMPTE05] SMPTE Technology Comm C24 on Video Compression Technology. Proposed SMPTE Standard for Television: VC-1 Compressed Video Bitstream Format and Decoding Process, SMPTE 421M, Aug. 2005

[Sun91] M. T. Sun, “VLSI architecture and implementation of a high-speed entropy decoder,” IEEE Trans. on Circuits and Syst., vol. 1, pp. 11-14, Jun 1991

[SW04] B.C.Song and K.W.Chun “Multi-resolution block matching algorithm and its VLSI architecture for fast motion estimation in an MPEG-2 video encoder”, IEEE Transaction on Circuits and Systems for Video Technology., Vol. 14, pp. 1119–1137, Apr. 1998.

[TAL02] A. M. Tourapis, O. C. Au and M. L. Liou, “Highly Efficient Predictive Zonal Algorithms for Fast Block-Matching Motion Estimation,” IEEE Transaction on Circuits and Systems for Video Technology, vol. 12, no. 10, pp. 934-947, Oct. 2002.

[TCHF05] P.-C. Tseng, Y.-C. Chang, Y.-W. Huang, H.-C. Fang, C.-T. Huang, L.-G. Chen, “Advances in Hardware Architectures for Image and Video Coding—A Survey,” Proceeding of IEEE, vol. 93, no. 1, pp. 184-197, Jan 2005

Page 165: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

参考文献

145

[Tex06] Texas Instruments Inc. TMS320C64x DSP Technical Brief [OL]. http://www.ti.com/sc/docs/products/dsp/c6000/c64xmptb.pdf, 2006

[TF06] T. Tanaka, T. Furuta, et al. “A Pixel Level Parallel Processing Architecture for Multi-Standard Video Codec,” Proc of the 2006 IEEE Int’l Conf on Consumer Electronics, Jan. 2006. 349-350

[TH01] T. Takizawa, M. Hirasawa, “An Efficient Memory Arbitration Algorithm for A Single Chip MPEG-2 AV Decoder,” IEEE trans. on Consumer Electronics, vol. 47, no. 3, Aug. 2001

[TTH99] T. Takizawa, J. Tajime, H. Harasaki, “High performance and cost effective memory architecture for an HDTV decoder LSI,” Proc. of ICASSP, vol. 4, pp. 1981-1984, Mar. 1999

[VCEG95] “Video Coding for Low Bit Rate Communication,” ITU-T Recommendation H.263 version 1, 1995

[VS89] L. de Vos, M. Stegherr, “Parameterizable VLSI architectures for the full-search block-matching algorithm,” IEEE Transactions on Circuits and Systems, Vol. 36, No. 10, Oct. 1989 Page(s):1309 – 1316

[Vweb06] VWeb Inc. VW2010 [OL]. http://www.vwebcorp.com/mall/c110/Products/ VW2010%20CODEC11072005.html, 2006

[WGMZ03] Di Wu, W. Gao, H. Mingzeng, and J. Zhenzhou, “A VLSI architecture design of CAVLC decoder,” 5th IEEE International Conference on ASIC, vol. 2, pp. 962-965, Oct. 2003

[WM95] B. W. Y. Wei, and T. H. Meng, “A parallel decoder of programmable Huffman codes,” IEEE Trans. on Circ. and Syst. for Video Technol. vol 5. no 2. pp 175-178, Apr. 1995

[WSBL2003] ThomasWiegand, Gary J. Sullivan, Gisle Bjøntegaard, and Ajay Luthra, “Overview of the H.264/AVC Video Coding Standard,” IEEE Trans. Circuits Syst. Video Technol., vol. 13, no.7, July. 2003

[YH05] W. Yu, Y. He, “A high performance CABAC decoding architecture”, IEEE Trans. on Consumer Electronics, Vol.51, No.4, Nov. 2005

[YP07] Y. Yi, I. C. Park, “High-Speed H.264/AVC CABAC Decoding,” IEEE Trans. Circuits Syst. Video Technol., 2007, 17, (4), pp. 490–494

[YSW89] K. M. Yang, M. T. Sun, L. Wu, “A family of VLSI designs for the motion compensation block-matching algorithm,” IEEE Transactions on Circuits and

Page 166: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

146

Systems, Vol. 36, No, 10, Oct. 1989 Page(s):1317 – 1325

[ZGXW07] P. Zhang, W. Gao, D. Xie, and D. Wu, “High Performance CABAC Engine for H.264 High Definition Real-Time Decoding,” IEEE Int. Conf. on Consumer Electronics, Jan. 2007

[ZM97] S. Zhu, K, K. Ma, “A new diamond search algorithm for fast block matching motion estimation,” International Conference on Information, Communications and Signal Processing, 1997, Vol. 1, 9-12 Sep. 1997 Page(s):292 - 296

Page 167: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

147

致 谢

在伴随着快乐、痛苦和兴奋的硕博连读六年多的时光里,在我尊敬的导师高文教授

的悉心指导下,我完成了博士学位论文、相关科研活动、公开发表文章等充满艰辛的任

务。导师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师

德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远!

不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物

和为人处世的道理。而且是高老师多年来给我们营造的宽松而又严谨,紧张而又愉快的

实验室环境,良好的保障了我的科研工作效率, 终孕育了我今天的成绩。在此,谨向

导师表示崇高的敬意和衷心的感谢! 解晓东老师也在我的研究生生涯中起到了关键的作用,是他带领我走进了集成电路

设计的大门,引领我在科研和技术的海洋中不断探索,指导我攻克一个又一个难题,像

一盏明灯直接照耀在我四年的博士生涯中。感谢解老师对我多年来的学业上的辛苦栽培

和生活上的悉心关怀! 我的博士论文的完成与实验室离不开各位老师的关心,支持,帮助和理解。特别感

谢陈熙霖老师,赵德斌老师和贺思敏老师,在我博士研究中的一些 关键的时刻给予我

的悉心的指导,谆谆的教诲和倾力的帮助!同时感谢教学秘书李丹,蔡光辉老师,研究

生处宋守礼老师等,以及网管董巍老师等! 很幸运博士四年我能身处在这样一个青春活跃而又积极奋进的课题组团队中,它不

仅仅使我感受到科研团队的力量,也使我感受到生活的充实和愉悦。我们是同学,是同

事,更是战友,虽然历经数次转折,但始终通力合作,战胜一个又一个困难,取得了一

个又一个胜利。感谢吴迪、生滨、邓磊、贾惠柱、张祯睿、郑俊浩、张力、宋磊、彭聪、

文湘鄂、余敬军、王晓辉、朱胜利、刘定炫、裴成军、李革老师和王忠立等多年来的指

导,关心,帮助,支持和陪伴! 我深深地感谢我的父亲张建新先生和母亲朱雅玲女士对我始终如一的理解、支持、

鞭策、鼓励与关爱,他们崇尚知识的理念和热爱生活的态度对我影响至深。我今天取得

的一切成绩都是根源于父母的含辛茹苦,他们的恩情将永远铭记于心! 我还要特别地对我单纯善良、温柔体贴的未婚妻项婷婷表达深深的谢意。是你在我

困难的时刻给予我 直接的鼓励和精神上的安慰,是你一直陪伴我过着朴素而充满理

想的生活。你在生活上对我的无微不至的照顾,使我能够全心全力的投入科研工作,摆

脱了一切后顾之忧,我的任何成绩都有你的一半功劳! 感谢芯晟,宏景和展讯公司在实习期间对我的学业的理解和支持,也感谢他们给予

了我 真实的理论联系实际的舞台,使得我在博士期间获得了科研水平和实践经验的双

丰收。

Page 168: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

148

后,向所有直接或间接帮助过我的老师、同学、同事、朋友、工作人员,以及本

文的评阅老师表示感谢,谢谢您们! 本文受到国家 863 计划(课题编号:2003AA1Z1290)和信产部 AVS 电子专项基金

的资助。

Page 169: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

149

作者简介

姓名:张 鹏 性别:男 出生日期:1981.12.02 籍贯:湖北荆州 2002.9 – 2009.2 中科院计算技术研究所计算机应用专业硕博连读生 1998.9 – 2002.7 中国科学技术大学电子工程与信息科学系电子信息系统专业

本科生 【攻读博士学位期间发表的论文】 会议论文 [1] Peng Zhang, Debin Zhao, Siwei Ma, Yan Lu, and Wen Gao, “Multiple Modes Intra-Prediction for AVS Intra Coding,” IEEE International Conference on Multimedia and Expo, Vol. 1, 30-30 June 2004 Page(s):419 - 422 [C] [2] Peng Zhang, Wen Gao, Di Wu, and Don Xie, “An Efficient Reference Frame Storage Scheme for H.264 HDTV Decoder,” IEEE International Conference on Multimedia and Expo, July 2006 Page(s):361 - 364 [C] [3] Peng Zhang, Wen Gao, Don Xie, and Di Wu, “High-Performance CABAC Engine for H.264/AVC High Definition Real-Time Decoding,” International Conference on Consumer Electronics, 2007. Digest of Technical Papers. 10-14 Jan. 2007 Page(s):1 – 2 [C] 期刊论文 [4] Peng Zhang, “Fast CABAC decoding architecture,” IEE Electronics Letters (Accepted in Oct. 2008) [J] [5] Peng Zhang, Don Xie, and Wen Gao, “Variable-bin-rate CABAC Engine for H.264/AVC High Definition Real-Time Decoding,” IEEE Transaction on VLSI systems (Accepted in Feb. 2008) [J] [6] 张鹏,杜建国,解晓东,高文,一种基于多核流水的多标准视频编解码器体系结构,

计算机研究与发展,2008 年第 11 期, 1985~1993 页 [J] [7] Jun-Hao Zheng, Lei Deng, Peng Zhang, and Don Xie, “An Efficient VLSI Architecture for Motion Compensation of AVS HDTV Decoder,” JCST, vol. 32, no. 3, May 2006 [8] Zhenrui Zhang, Di Wu, Peng Zhang, Don Xie and Wen Gao, “A Flexible VLSI

Page 170: 中国科学院研究生院 博士学位论文 - jdl.ac.cn · MPEG 系列, VC-1, RealVideo, 和VP 系列等。视频编码技术在保持视频信号原有的绝大 部分肉眼敏感的信息量的情况下,将数据量压缩到几十分之一甚至更少,从而节省了大

中国科学院博士学位论文──高性能视频编解码芯片结构设计

150

Architecture of Transport Processor for an AVS HDTV Decoder SoC,” IEEE trans. on Consumer Electronics, vol. 52, no. 4, Nov. 2006 [9] Huizhu Jia, Peng Zhang, Don Xie and Wen Gao, “An AVS HDTV Video Deocder Architecture Employing Efficient HW/SW Partitioning,” IEEE trans. on Consumer Electronics, vol. 52, no. 4, Nov. 2006 【攻读博士学位期间参加的科研项目】 [1] 863 项目,数字音视频解码 SoC,(2003AA1Z1290),2003 年~2006 年,第一款 AVS高清解码芯片 AVS101,顺利通过项目验收。参与其中帧内预测,反变换反量化,嵌入

式微处理器核等模块的设计,以及 FPGA 验证工作。 [2] 信产部 AVS 电子专项基金,AVS 和 mpeg-2 双模高清解码系统级芯片(SoC)。参与

其中帧内预测,反变换反量化,嵌入式微处理器核等模块的设计,流水线系统性能分析,

以及 FPGA 验证工作。 【攻读博士学位期间的获奖情况】 [1] 2006 年被实验室评为“年度先进个人”;