最新数字视频信号源的编码器和解码器的研究汇编.docx
《最新数字视频信号源的编码器和解码器的研究汇编.docx》由会员分享,可在线阅读,更多相关《最新数字视频信号源的编码器和解码器的研究汇编.docx(20页珍藏版)》请在冰点文库上搜索。
![最新数字视频信号源的编码器和解码器的研究汇编.docx](https://file1.bingdoc.com/fileroot1/2023-8/4/d9f705cf-074e-4254-8ea2-74243409735f/d9f705cf-074e-4254-8ea2-74243409735f1.gif)
最新数字视频信号源的编码器和解码器的研究汇编
5.圆周角和圆心角的关系:
5、多一份关心、帮助,努力发现他们的闪光点,多鼓励、表扬他们,使其体验成功、努力学习。
9.直角三角形变焦关系:
=0<===>抛物线与x轴有1个交点;
②弧、半圆、优弧、劣弧:
弧:
圆上任意两点间的部分叫做圆弧,简称弧,用符号“⌒”表示,以CD为端点的弧记为“”,读作“圆弧CD”或“弧CD”。
半圆:
直径的两个端点分圆成两条弧,每一条弧叫做半圆。
优弧:
大于半圆的弧叫做优弧。
劣弧:
小于半圆的弧叫做劣弧。
(为了区别优弧和劣弧,优弧用三个字母表示。
)
1、第一单元“加与减
(一)”。
是学习20以内的退位减法,降低了一年级上学期孩子们学习数学的难度。
退位减法是一个难点,学生掌握比较慢,但同时也是今后竖式减法的重点所在。
所以在介绍的:
数小棒、倒着数数、凑十法、看减法想加法、借助计数器……这些方法中,孩子们喜欢用什么方法不统一要求,自己怎么快怎么算,但是要介绍这些方法。
2.点与圆的位置关系及其数量特征:
二次方程的两个实数根
2、第四单元“有趣的图形”。
学生将经历从上学期立体图形到现在平面图形的过程,认识长方形,正方形,三角形,圆等平面图形,通过动手做的活动,进一步认识平面图形,七巧板是孩子喜欢的拼图,用它可以拼出很多的图形,让孩子们自己动手拼,积累数学活动经验,发展空间观念能设计有趣的图案。
|a|的越小,抛物线的开口程度越大,越远离对称轴y轴,y随x增长(或下降)速度越慢。
摘要
数字视频/音频压缩编码是数字电视广播系统中非常重要的环节,主要解决电视信号数字化后所带来的海量数据量如何能够有效地存储和传输的问题。
近20年来,视频/音频压缩编码技术一直处于快速发展之中,新技术和新标准不断涌现,现代视频/音频压缩编码技术已经比较成熟,可以在保持较好图像质量前提下,达到较高的压缩比。
数字化技术的发展和成熟已使数字高清晰度电视(HDTV)成为现实。
高清晰度电视是新一代电视,其扫描线在1000行以上,每行1920个像素,宽高比为16:
9,较常规电视更符合人们的视觉特性,使图像质量与35mm首映电影相当。
但是由于像素数大幅度增加,使本来数码位就较高的二进制编码形成极大的编码数据,使HDTV的信息量可达常规电视的5倍以上,传输时占用频带宽,存储时占用媒体容量大,特别是对计算量最为庞大的运动估算的运动算法来说,编码器无疑要有非常高的处理速度,这样给实际应用开发带来了极大困难。
因此,必须对HDTV图像进行压缩编码。
本文主要针对数字视频信号源的编码器和解码器的研究。
关键词:
视频/音频压缩编码技术,编码器,译码器
1数字电视的优点和发展概况及其基本结构
1.1数字电视的优点和发展概况
数字电视是高科技的产物,数字电视是指电视节目的采集、制作、编辑、播出、传输、接收的全过程都采用数字技术。
与模拟电视相比,数字电视在技术上具有以下优势和特点:
(1)、清晰度高、音频效果好、抗干扰能力强。
数字电视信号在传输过程中不会出现噪声积累效应,几乎完全不受噪声干扰,电视信号的强度衰减与失真度很低,电视画面十分逼近演播室水平。
数字电视的音频效果很好,支持五声道的杜比数码(AC-3)5.1环绕立体声家庭影院服务;
(2)、数字频道数成倍增加。
基于现有模拟电视频道,可同时传输6-8套DVD质量或15-18套VCD质量的数字电视节目。
如全部采用数字电视技术传输,可同时传送大约200套DVD质量或500多套VCD质量的电视节目。
电视频道资源利用率高,可完全满足用户自由收看电视节目的个性化要求;
(3)、数字业务功能极大拓展。
随着有线电视传输和用户接收的数字化,以前模拟方式无法提供的服务都将成为可能,如电视网站、交互电视、股票行情与分析、视频点播等,电视互动数字新业务的开展将变得更加容易;
(4)、数字电视信号容易加密,保密性好,便于采用现代数字信号处理。
总之,数字电视替代模拟电视的趋势是现代科技发展的必然结果。
数字电视在我国具有强大的国家、政府支持和重视优势,就广播电视行业发展而言,数字电视技术为满足人民群众日益增长的精神文化需求提供强有力的技术和市场基础,为广播电视事业的大繁荣大发展带来了历史良机,因此受到广电行业的高度重视和大力推进,并取得快速的发展。
截止到2008年,全国有线数字电视整体转换城市超过100个,其中33个城市实现全市用户数字化整转,全国数字电视用户已达4450万户。
图1.1显示我国数字电视用户在2003-2008年间的快速发展规模和占全国电视用户量的比例,5年用户增长了158.9倍,比例增长了13个百分点。
图1.2、表1.1则给出了华北等六个地区2007-2008两年的数字电视用户及在本地区所占
图1.12003-2008年全国数字电视用户规模和所占比例图
比例的发展情况,其中华北地区发展的最快提高了12.9个百分点,西北地区提高了11.7个百分点,最少的东北地区也提高了4个百分点。
另据国内In-Stat和络达咨询的研究报告,预计到2009年底我国数字电视规模将达8522万户,2010年将达到1.0284亿户,2011年将达到1.1165亿户,2012年将达到1.1606亿户。
图1.22007年与2008年不同地区数字电视用户所占比例
虽然我国数字电视在发展上具备很多优势,但与发达国家相比,我国数字电视整体上仍然处在发展的初期阶段,尚存在很多的问题。
概括的说,有广电体制方面因素,条块分割、性质单一,既难统一规划、布局与实施,又难以引入市场竞争;有政策指导方面的因素,地域差异经济发展不平衡导致受众需求差别大而难以指导;有技术方面的缺乏配套齐全、规范和可操作的技术标准因素;有市场运营方面投、融资、运行成本高,难以短期盈利的因素;也有运营模式、产业规范、业务性质等等因素形成的问题。
应该说我国数字电视的发展是机遇与挑战并存,只要我们按照科学规律办事,充分发挥中国特色社会主义的体制优势、行业优势、产业和市场优势,汲取发达国家发展数字电视所遇到的经验与教训,规避市场风险,就一定能推动我国数字电视的大发展。
表1.12007年与2008年不同地区数字电视用户所占比较
1.2数字电视的基本组成
交互式数字电视系统由三部分组成:
数字前端系统、双向传输网络和用户终端系统。
数字前端系统通常划分为信源处理、信息处理和传输处理三部分,完成节目的数字化、加扰、授权和认证等功能;双向传输网络主要通过卫星、Cable、地面发射、MMDS等方式将节目传送到用户家中,回传可采用HFC回传通道、PSTN和其它网络;用户终端系统采用机顶盒(STB)收看数字电视节目或实现交互式功能,如收看付费电视、实现Internet浏览、远程教育等。
2视频压缩编码的方法
压缩编码的方法有几十种之多,并在编码过程中涉及较深的的数学里理论基础问题,在此仅介绍几种常用的压缩编码方法。
2.1莫尔斯码与信源编码
莫尔斯码即电报码,其精华之处在于用短码来表示常出现的英文字母,用长码来表示不常出现的字母,以减小码率。
2.2差值脉冲编码
其原理框图见图2.1(a)。
发端将当前样值和前一样值相减所得差值经量化后进行传输,收端将收到的差值与前一个样值相加得到当前样值。
在这个原理图中,输出的当前样值是输出的前一样值加上收到的差值,由于在当前差值中包括当前的量化误差,而输出的前一样值又包括前一样值的量化误差,这就造成了量化误差的积累。
因此实用电路为图2.1(b)。
这时输入当前样值不是与输入的前一样值相减,而是与输出的前一样值相减,因此在差值中已经包含了前一样值的量化误差的负值,在与输出的前一个样值相加时,这部分量化误差被抵消,只剩下当前的量化误差,这就避免了量化误差的积累。
图2.1差值脉冲编码
2.3预测编码基本原理
由于语音信号的相邻抽样点之间有一定的幅度关联性,所以,可根据以前时刻的样值来预测现时刻的样值,只要传预测值和实际值之差,而不需要每个样值都传输。
这种方法就是预测编码。
语音信号的样值可分为可预测和不可预测两部分。
可预测部分(相关部分)是由过去的一些权值加权后得到的;不可预测的部分(非相关部分)可看成是预测误差。
这样,在数字通信中,就不用直接传送原始话音信号序列,而只传送差值序列。
因为差值序列的信息可以代替原始序列中的有效信息,而差值信号的能量远小于原样值,就可以使量化电平数减少,从而大大地压缩数码率。
在接收端,只要把差值序列叠加到预测序列上,就可以恢复原始序列。
图2.2给出了差值脉码调制(DPCM)系统原理框图。
图中输入样值信号
,接收端重建信号为
,
是输入信号与预测信号
的差值,
为量化后的差值,
是
经编码后输出的数字码。
图2.2DPCM原理方框图
编码器中的预测器与解码器中的预测器完全相同。
因此,在无传输误码的情况下,解码器输出的重建信号
和编码器的
完全相同。
DPCM的总量化误差
定义为输入信号
与解码器输出的重建信号
的差值。
即有
由上式可知,在这种DPCM系统中,总量化误差只和差值信号的量化误差有关。
图2.3说明了预测的原理。
图2.3DPCM预测原理
由图2.3可见,预测值跟踪输入信号抽样值变化。
DPCM的方框图如图2.3中,它是典型的线性预测方式。
设原始信号序列为
,其中
是序列
中现在的样值,而
是
的前
个样值。
若选用
的前N个样值来预测
,并用
表示预测值,则
其中,j为任意整数。
为预测系数或加权系数,
为预测阶数。
由上式可见,线性预测中,第n个预测值
是过去N个样值的线性组合。
2.4游程长度编码
读出数据和表示数据的方式也是减少码率的一个重要因素。
读出的方式可以有多种选择,如水平逐行读出、垂直逐列读出、之字型读出和交替读出等,其中之字型读出(Zig-Zag)是最常用的一种。
由于经DCT变换以后,系数大多数集中在左上角,即低频分量区,因此之字型读出实际上是按二维频率的高低顺序读出系数的,这样一来就为游程长度编码(RunlengthEncoding)创造了条件。
所谓游程长度编码是指一个码可同时表示码的值和前面几个零,这样就可以把之字型读出的优点显示出来了。
因为之字型读出在大多数情况下出现连零的机会比较多,尤其在最后,如果都是零,在读到最后一个数后只要给出“块结束”(EOB)码,就可以结束输出,因此节省了很多码率。
游程长度指的是由字构成的数据流中各个字符连续重复出现而形成字符串的长度。
基本的游程编码就是在数据流中直接用三个字符来给出上述三种信息,其数据结构如图2.4所示。
图2.4基本游程长度编码数据结构
CS表示有一个字符串在此位置,X代表构成串的字符,SC代表串的长度。
游程编码和哈夫曼编码等属于统计编码。
2.5霍夫曼编码
霍夫曼编码是可变字长编码(VLC)的一种。
Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫作Huffman编码。
下面引证一个定理,该定理保证了按字符出现概率分配码长,可使平均码长最短。
定理:
在变字长编码中,如果码字长度严格按照对应符号出现的概率大小逆序排列,则其平均码字长度为最小。
现在通过一个实例来说明上述定理的实现过程。
设将信源符号按出现的概率大小顺序排列为:
给概率最小的两个符号a6与a7分别指定为“1”与“0”,然后将它们的概率相加再与原来的a1~a5组合并重新排序成新的原为:
对a5与a6′分别指定“1”与“0”后,再作概率相加并重新按概率排序得U″:
(0.260.200.190.180.17)…直到最后得U″″:
(0.610.39)分别给以“0”,“1”为止,如图2.5所示。
霍夫曼编码的具体方法:
先按出现的概率大小排队,把两个最小的概率相加,作为新的概率和剩余的概率重新排队,再把最小的两个概率相加,再重新排队,直到最后变成1。
每次相加时都将“0”和“1”赋与相加的两个概率,读出时由该符号开始一直走到最后的“1”,将路线上所遇到的“0”和“1”按最低位到最高位的顺序排好,就是该符号的霍夫曼编码。
图2.5霍夫曼编码过程
例如2.5所示a7从左至右,由U至U″″,其码字为0000;a6按践线将所遇到的“0”和“1”按最低位到最高位的顺序排好,其码字为0001…用霍夫曼编码所得的平均比特率为:
Σ码长×出现概率;上例为:
0.2×2+0.19×2+0.18×3+0.17×3+0.15×3+0.1×4+0.01×4=2.72bit;可以算出本例的信源熵为2.61bit,二者已经是很接近了。
2.6运动估计的运动补偿编码
这是一种帧间编码的方法,其原理是利用帧间的空间相关性,减小空间冗余度。
帧间编码为什么可以减小冗余度,这是因为两帧之间有很大的相似性。
如果将前后两帧相减(移动物体作相应位移)得到的误差作编码所需比特要比帧内编码所需的比特少,帧间差集中在零附近,可以用短的码字传送。
实现帧间编码的方法是运动估计和运动补偿。
用图2.6来说明这个过程。
图2.6运动处理过程
当前帧在过去帧的窗口中寻找匹配部分,从中找到运动矢量;根据运动矢量,将过去帧位移,求得对当前帧的估计;将这个估计和当前帧相减,求得估计的误差值;将运动矢量和估计的误差值送到接收端去。
接收端根据收到的运动矢量将过去帧作位移(也就是对当前帧的估计),再加上接收到的误差值,就是当前帧了。
图2.7宏块在上一帧搜索范围内寻找匹配
图2.8运动估计的全局搜索块匹配
图2.8运动估计的全局搜索块匹配实际上,在做运动估计和运动补偿时,是以16×16的块(称宏块)逐个进行的,如图2.7所示,这是将当前帧划分为N×N(16×16)的块。
对每一块在过去帧中范围为的范围内进行搜索,以求得最优匹配,从而得到运动矢量的估值(dx,dy)。
衡量匹配好坏的准则可以是均方误差最小准则。
搜索方法可以是全局搜索法,即对搜索范围内的每一点都计算均方误差,选最小值即对应最优匹配,如图2.8所示。
3MPEG-2编码器原理
3.1MPEG-2的编码方式
MPEG-2有三种编码方式:
帧内压缩编码方式,见图3.1;帧间压缩编码方式,见图3.2;帧内及帧间压缩编码方式,见图3.3。
图3.1帧内压缩编码方式
压缩就是将视频信号中冗余减少的过程,首先必须识别每个视频场和帧中的冗余,这主要包括空间与时间上的冗余。
去除视频信号空间冗余可通过DCT变换来完成,DCT变换是一个无信号损失的双向数学过程。
它将空间分布的变化程度转变成重现空间分布所需的频率带宽。
变换所得到的系数值既可以代表不断增加的更高的垂直和水平空间频率,也可以代表不同的水平和垂直空间频率组合。
视频信号经过DCT变换后,较高的空间频率系数会变得非常细小,而据人眼的视觉特性,较高的空间频率系数可以少量的比特来表示,或者完全去掉而不影响图像质量。
在实际应用时为保持信号的可逆性和无损性,常常采用更多的比特来表示DCT系数。
去除视频信号时间冗余,可使用有运动补偿的帧间预测来完成。
对于活动图像多数情况下只是其中的很少一部分图像在运动,即使有大范围的活动部分,前后帧尽管有很大区别,但移动物体本身大多数情况下是相同的。
因此只需要找到图像中某一部分运动了多少就可以在前一帧找到相应图像的内容,这个查找过程称为运动估值,其表达方式是运动矢量;而把前一帧相应的运动部分补过来,得到其剩余的不同部分的过程称为运动补偿。
就这样,采用运动补偿可以有效地去除视频信号在时间方向的重复信息,达到压缩的目的。
为了达到减少数据的目的,MPEG-2将4:
2:
2转换成4:
2:
0,并且通过量化,将代表每一个系数的比特数目减少。
一般使用11比特来代表DCT系数,对于其他系数则采用较小的比特数目。
每一个或每组宏块都有不同的量化刻度,对每个宏块采用不同的量化因数,使只含帧内压缩的MPEG能提供比同样图像质量的M-JPEG多出10%—20%的压缩效果。
而相对于原来的DCT系数的数据,量化表及被量化的系数数据量要小得多。
图3.2帧间压缩编码方式
在量化过程后,无损数据压缩是通过可变长度编码VLC和游程长度编码RLC实现的。
VLC是在数据内寻找共同的图案或字符,采用较小数量的比特为经常出现的数值进行编码,而用较多数量的比特为较少出现的数值进行编码。
RLC是用一个字符代表一串一定数目的零。
总的目的只有一个,减少数据量。
量化表控制是一个决定如何量化DCT系数的过程;输出缓存可维持数据流,并提供量化器的控制,从而限制或维持数据流在一个一定的水平。
在实实际应用中,当压缩数据被录像机记录时,需要提供一个持续不变的比特率,以使机械部分以稳定的速率旋转扫描机构。
而对于硬盘记录来说,又需要一个可变速的比特率。
通常,一个可变速比特率是提供一个持续不变质量水平的较好选择。
图3.3帧内及帧间压缩编码方式
帧间压缩一般是在未压缩的图像上进行,是一个无损过程。
在图3.4中,在参考帧帧存中有一副完全解析度,完整数据的前一副图像。
在预测帧帧存中拥有一个根据前一帧和运动矢量所建立的预测的当前帧。
输出是预测的当前帧与实际当前帧相减后的差值。
若没有运动或其他变化,当前帧便可得到完美的预测,差分帧输出为0(极易压缩)。
当前一帧和后一帧有点不同时,差分帧仍有少量数据需要压缩。
采用帧内压缩编码形成的图像称为I帧,形成过程见图3.3;采用帧内及帧间压缩编码形成的图像称为B帧和P帧。
P帧为前向预测帧,是以前一个I帧为预测帧进行编码的。
在I帧和P帧中间可以插入若干个B帧,B帧是从相邻的最近的I帧或P帧作双向预测进行编码的。
形成P帧时参考帧帧存只要求存储一帧图象,而形成B帧时,参考帧帧存则需存储前后两帧图象。
由三种相互间有预测与生成关系的不同的帧数据,I帧P帧B帧数据按照不同的组合组成图像组(GOP),再加上序列起始码和序列头等数据组成图像序列或ES,ES再打包成PES;PES再按188byte的固定长度加上各种参数组成传送码流TS。
3.2PAL解码器
主要功能是对输入的PAL复合信号进行解码,输出YCbCr分量信号(4:
2:
2)。
PAL解码器质量对整个处理系统的性能指标有非常重要的作用,并将影响最终的图像质量,在设计时常采用8倍色度负载波对输入的模拟信号进行采样,用数字梳状滤波器完成亮色分离。
同时为了避免视频信源的抖动影响后面的压缩处理部分,在PAL解码器与前处理模块之间有一帧的帧存进行信号隔离。
前处理模块该模块原理如图3.4所示。
主要功能:
<1>给PAL解码器和I帧编码器提供像素接口控制信号,其参数受CPU控制。
<2>对PAL解码器输出的视频信号进行必要的限幅,使其满足CCIR601的要求(Y:
16-235,C:
16-240),并对Cb和Cr信号做扣心(Coring)处理。
<3>提供D1接口,可和数字视频设备直接相连。
<4>在ES码流的目标码率较低时(如低于3Mbps),启动1个16阶的滤波器,对信号进行低通滤波,使其频带限制在3.5MHz左右,以降低解码恢复的图像中的块效应。
<5>产生一个锯齿波视频测试信号,在CPU的控制下和输入信号进行切换。
另外,为了适应不同的码组长度可使用截短的RS码,例如DVB和GA。
GA采用RS(207,187,10),即分组码符号长度为207个,187个信号符号,可检出207-187=20个错,可纠正(207-187)÷2=10个错。
该码就是从RS(255,235,10)码截短而得到的,实际上可以看成255个符号中除207个有具体的值外,剩余的48个符号全部添零,可以用同样的电路进行编解码。
在DVCPRO、DVCAM、Digital-S格式中视、音频数据的内码组为RS(85.77)码,检错能力为85-77=8byte,纠错能力为(85-77)÷2=4byte。
视频数据的外码组为RS(149.138),在内码组指出错误位置时能纠错149-138=11byte。
音频的外码组为RS(14.9)码,在内码组指出错误位置时14byte中有不多于14-9=5byte的错误都能得到纠正。
而BetacamSX的视频内码组为RS(124.112)外码组为RS(64.50),声音的内码组为RS(124.112)外码组为RS(14.6),其外码组的纠错能力明显高于其它格式,加上磁迹宽度又比其它格式宽了许多,即使一个GOP中有两根磁迹丢失,误码校正仍可正常进行,其误码校正数据块的组成如图3.2所示。
图3.4前处理模块该模块
3.3MPEG-2视频编码器
上文我们已从理论上对MPEG-2标准进行了系统的概述,下面就以一个实例剖析一下MPEG-2视频编码器的物理实现.该编码器可完成MPEG-2MP@ML的压缩,对CCIR601PAL制(720*576像素/帧,25帧/s)图像进行实时恒定比特率传输模式(CBR)处理.整个编码系统如图3.5所示。
图3.5视频编码硬件原理图
4MPEG-2解码器原理
4.1视频基本码流结构
如图4.1视频基本码流结构所示:
图4.1视频基本码流结构
a、在视频序列层中,序列头给了我们图像的尺寸、宽高比、帧频和比特率等数据,后面的序列扩展码给出了型级、逐行隔行和色度格式(4:
2:
0、4:
2:
2)等信息。
b.在图像组层中,GOP头中给出了时间码和紧跟在帧后的B图像的预测特性等信息。
c.在图层中,图像头中给出了时间参考信息、图像编码类型和VBV延时等信息。
图像头后面的图像扩展码给出了运动图像、图像结构、量化因子类型和可变长编码VLC等信息。
d.在像条层中,像条头给出了像条垂直位置、量化因子码等信息。
e.在宏块层中,宏块类型编码给出了宏块属性、运动矢量等信息。
f.最后一层是像块层,给出了像块的DCT系数。
可见,视频基本码流中包含了供接收端正确解码的信息。
4.2MPEG-2解码
MPEG-2解码是从编码的比特流中重建图像帧。
MPEG-2解码方框图如图4.2所示
由图4.2可见,接收到的码流经过TS流解复用和视/音频PES包解复用后输出视频基本流(ES)和运动矢量(MV)。
ES经反量化(IQ)和反DCT(IDCT)后输出重建的宏块差值△MB。
解码框图中没有复杂的运动估计电路,它直接用码流中传输来的运动矢量(MV)进行运动补偿,从帧存储器中读出匹配宏块MB0,在加法器中与宏块差值△MB相加,还原出相应的P、B图像块。
在帧重排内得到一组GOP解码图像后,重排成编码时输入显示图像的原始序列。
由于解码器中都有帧重排,结果使显示图像比原始图像产生一定的延时,
图4.2解码器框图
相对于声音编解码会导致画面滞后于声音,故需要相应的延时补偿。
MPEG-2解码与编码电路不是一一对应的,编码复杂,解码简单。
因为,解码所需要的许多参数和运动预测值和量化矩阵等都在传输码流中以规定的句法元素格式提供给接收端,由解码器直接使用就行了。
总结
通过这次数字视频信号源的编码器和解码器的研究的课程设计让我学到了许多知识,不仅给我开阔了思路,而且还让我认识到了自己对以前所学过知识的不足。
在这次课程设计当中我碰到了许多问题,我曾经接触过这方面的书籍和实物,也对其有一些简单的了解。
但是却不知道具体的工作原理,当我拿到课程设计的题名后完全不知道该怎么办好,在指导老师董雪峰的悉心指导下,我明白了其中的道理,于此同时我通过大量地阅读和查阅相关的资料,最终此次课程设计才得以完成。
通过这次课程设计让我懂得了在以后的学习和工作当中要不断地完善自我、努力上进、刻苦钻研力争在电子信息行业有一个好的发展和结果。
致谢
课程设计是自己在大学中的一段经历,从设计之初的无从下手到设计工作的圆满完成,期间遇到了诸多的问题和困难。
但在董老师的细心指导和帮助下,通过自己的努力,最终这些问题