第六届集创赛——华大九天杯

华大九天杯

一、杯赛题目:数字波形的快速高效压缩算法

二、参赛组别:A组、B组

三、赛题背景:

在电路仿真过程中,会存储电路的一些信号随时间变化的状态,以便进行后续的查看和分析。随着电路规模的增大和对精度要求的提高,需要查看的信号个数和时间点也急剧增加,导致所存储的波形文件达到几GB甚至几百GB,给存储空间带来了压力。考虑到电路信号的一些特点,可以对其进行压缩,以减小波形文件的大小。

四、赛题任务:

设计一套高效快速数字波形压缩、解压缩算法。

五、设计指标:

1. 精度要求:数字波形X轴数据为整数,Y轴为0, 1,Z,X因此压缩波形文件解压后与原文件不能存在精度误差。

2. 压缩率:压缩率要求所有华大九天提供的案例与华大九天提供的REF压缩率相当。计算公式:



3. 运行内存:程序在整个运行过程中总的内存不能超过2G(包括压缩和解压缩以及自身运行需要的内存等)。

4. 压缩时间为读取原始波形文件,到输出压缩文件完成的时间,时间越短,分数越高。

5. 解压缩时间为对随机、给定数目的信号,从压缩文件中读取并解压缩后,将对应的信号值写入波形文件的时间,时间越短,分数越高。

6. 支持增量式压缩/解压波形文件:支持指定信号从指定的起始时间,到结束时间读取压缩波形数据;支持并行读取原波形文件输出压缩文件。

六、附加题或进阶指标:

1. 压缩率高于华大九天提供的参考压缩率,华大九天将在开赛时提供参考VCD波形文件已经对应参考压缩率。

2. 解压缩时间少于华大九天提供的参考时间。

3. 支持异步波形的解压缩: 与同步信号相比,异步信号使用非统一的X坐标轴,即每个信号使用单独的X坐标轴。每个信号的点数不一样,甚至start和stop都可能不一样。

七、杯赛阶段及提交内容:

             1. 初赛和企业技术评分:

1) 技术文档;除了需要完成程序设计和测试,还需要完成一份设计报告,包含算法设计和测试效果

2) 算法测试数据;

2. 分赛区决赛提交内容

1) 汇报PPT:算法介绍、关键技术介绍、性能指标

2) 详细设计方案:解压缩算法、关键技术原理分析及性能指标要求

3) 算法验证文件:解压后的波形文件。

3. 总决赛提交内容

1) 汇报PPT:算法介绍、关键技术介绍、性能指标

2) 详细设计方案:解压缩算法、关键技术原理分析及性能指标要求

3) 算法验证文件:解压后的波形文件。

八、评分标准:

大项

内容

分值

评分要求

性能指标(60分)

1.精度

10分

1. 满足解压后波形文件正确性前提

解压后数据与原波形文件原则上不能存在误差。

2.压缩率

20分

每个波形文件压缩率(R)跟参考压缩率相比(Rref),若Rref/R

大于3,算法无效,对应的波形文件总得分为0 ;

大于2.5但小于等于3,给5分;

大于2但小于等于2.5,给10分;

大于1.5但小于等于2,给15;

大于1 小于1.5,每小0.1,加1分。

小于等于1, 满分。

3.压缩时间

15分

每个波形都有一个对应的压缩参考时间,是将所有信号的值直接从原始波形文件中读出来的时间。参赛者所用的压缩时间,理论上不会少于这个时间,因为读完数据之后还需要进行压缩。

压缩时间比参考时间多20%以内,满分;之后每增加20%,扣2分。

4.解压时间

15分

针对每次所指定的信号,都有一个对应的解压缩参考时间,它是将这些指定信号的值直接写入波形文件的时间。参赛者所用的解压缩时间,理论上不会少于这个时间,因为在将这些信号值写入文件之前必须进行解压缩操作。

解压缩时间比参考时间多40%以内,满分;之后每增加20%,扣3分,扣完为止。

优化指标(20分)

1.优化目标

20分

1. 创新性:解压缩算法是否有创新;

2. 内存:满足技术指标下,内存越小越好;

3. 压缩比:满足技术指标下,压缩优于华大九天提供的REF

文档与现场表现

(20分)

1.现场答辩和演示

10分

1.答辩和问答表现

2.现场演示效果

2.文档质量

10分

1. 汇报PPT重点突出、条理清晰。

2. 设计方案原理分析合理、逻辑清晰。

3. 波形验证报告内容详细充分。5分

九、参赛资源说明

1. 华大九天提供用于竞赛的原始波形文件(VCD格式),文件大小在几十M到50G之间。每个波形文件经过测评后,都会得到一个分数。将所有波形文件的分数加起来,得到的总分数,将作为比赛的最终评分;

2. 压缩前,为了方便参赛者读取原始波形文件,得到用于压缩的原始波形数据,华大九天将提供读取原始波形文件的接口(以.so的形式);解压后的数据需要输出到一个文件中,输出数据的接口由华大九天提供(以.so的形式)。

十、其他注意事项:

1. 波形文件的接口都是用C/C++写的。另外,由于需要对运行时间和内存进行评分,因此,必须排除语言本身带来的性能差别。gcc的版本限定为gcc 4.8.2 ,最高支持版本为C++11(暂时不支持C++14及更高的版本)。

2. 我们会提供服务器以及运行环境,包括编译器,操作系统等都会配置好。总体而言,我们的环境为linux,操作系统为Redhat CentOSXXX x86_64。

3. 对具体算法没有限定,但是不能将整个波形文件的数据全部读出来再进行压缩,这个也是设定内存使用限制的最大原因。

4. 杯赛企业与参赛团队共同拥有作品的所有权。

5. 参赛项目可以参考现有公开发表的文献和论文内容,但应当在技术论文和答辩PPT中注明来源,且不能将参考的内容作为自己作品的创新部分。


(请参赛团队务必添加所报名杯赛的答疑群中,以便及时获取杯赛最新通知及进展,群号码及入群方式:点击查看