解码设计(精选十篇)
解码设计 篇1
在某系统通信时, 需要将采集的红外数字图像实时传输到指控平台。若直接传送图像数据, 速率高, 系统带宽大, 将会带来接收系统的诸多问题, 为满足实际工程应用, 要求图像必须经过压缩后传输。压缩后的图像数据, 由于去除了数据冗余, 对误码非常敏感, 单个比特的翻转错误就会造成后续码流解码完全错误, 从而造成图像的严重马赛克现象甚至无法重构图像。而实际使用的信道环境存在严重的突发干扰, 压缩后的数据如果没有信道纠错能力, 在信道传输时很容易产生误码, 从而影响图像数据的解压缩与重构, 因而必须引入信源信道联合编码方案。本方案采用多分辨率重采样图像压缩算法加RS编码交织进行信源信道的联合编码以提高系统的抗干扰能力。
1信源信道联合编解码技术
联合编码传输方案原理框图见图1。
1.1图像压缩与解压缩
由于输入的图像数据为红外图像格式, 不是标准视频图像格式, 普通的视频图像压缩标准并不适用;其图像具有目标形状变化较快的特点, 也不适用帧间压缩方式;同时考虑到实际应用环境的特殊性, 压缩算法必须具有硬件实现简单、体积和功耗小, 考虑实际使用环境, 其压缩和解压缩算法实现还必须具备实时性强的特点, 因此, 图像编码选用了称为“多分辨率重采样图像压缩算法 (RBC) ”的解决方案[1,2], 压缩器采用硬件实现, 电路简单且无须复杂运算, 压缩流程见图2。
接收端将纠错后的帧数据流读入计算机中, 通过软件提取压缩图像数据并对其进行解压缩操作, 速度快, 满足系统要求。
1.2RS编码与解码
由于信道干扰多为突发干扰, 故信道纠错码选用RS码。RS码是由里德 (Reed) 和索洛蒙 (Solomon) 于1960年构造出来的多进制BCH码, 是循环码的子类, 在给定n, k之后, RS (n, k) 码能纠正 (n-k) /2个符号的错误, 是纠错能力最强的 (n, k) 码。目前常用于战术数据链中[3,4,5][3—5]。
正常的RS码型的帧长N=2m-1, 这样所能选用的帧长N=5, 7, 15, 31, 63, 128, 255……。可选的短帧长的码型较少, 实际应用中选用截短的方式得到合适的帧长, 截短码和原码具有一样的纠错性能。
本方案考虑到信道纠错拟采用RS码与交织联合编码问题, 同时考虑解码实时性, 将每整帧图像数据分为多个子帧进行RS编码。
RS编码较为简单, 实现电路见图3。
图3中, 编码部分的输入是待编码的数据data, 时钟clk, 输出是编码数据data_encoder。当数据data以字节为单位在clk时钟下输入时, 开关闭合, MUX21倒向2, 输入数据一方面直接输出, 另一方面送入编码电路进行运算。在数据全部送入编码电路后, 开关断开, MUX21倒向1, 这时输出端接到移位寄存器输出端, 将移位寄存器中存储的余项依次输出即完成了对数据的编码, 这样生成的码为系统码, 即数据位在前, 监督位在后。在该编码电路中对data的操作是以字节为单位的。
RS译码较为复杂, 本方案采用Belekamp-Massey算法, 实现框图参见图4, 具体实现步骤如下:
(1) 由接收到的码多项式求伴随式的值Sj;
(2) 由伴随式的值求错误位置多项式σ (x) ;
(3) 用钱搜索求σ (x) 的根, 得到错误位置;
(4) 求出相应的错误值, 得到错误图样, 完成纠错。
在译码前需要对接收到的串行数据进行串并转换, 若串行数据的时钟和并行数据时钟不同步可能导致转换后的并行数据不正确。为此在检测到帧头后产生一同步信号对串行数据的时钟和并行数据时钟进行同步。
由于考虑系统时延要求, 译码时钟并不采用输入数据时钟, 而是使用高倍时钟以减小译码延时。
1.3交织与解交织
虽然RS码具有一定的抗干扰能力, 但是当有信道的突发干扰超出RS码的纠错能力时, 即连续误码个数超出其纠错能力时, 接收端的纠错译码不仅不能有效地降低信道的误码率, 甚至还会造成某种程度的恶化, 使得系统的误码率急剧升高。
针对信道容量有限的状况, 为了克服信道突发差错, 使用交织编码技术, 使得信道的连续突发干扰在解码端可以分散将非连续误码, 即通过交织与解交织技术将突发干扰离散为随机错误, 从而提高系统的抗干扰能力[6,7]。本系统采用矩阵交织编码技术对突发错误进行离散。交织矩阵为
矩阵交织编码, 指把纠错编码其输出信号均匀分成n个码组, 每个码组由k段数据构成, 这样就构成一个k×n的矩阵。这个矩陈成为交织矩阵, 数据按照行的顺序进入交织矩阵, 再按照列的顺序从交织矩阵中送出, 这样就完成了对数据的交织。也就是说写入交织矩阵时的顺序为:a00a01...a0na10a11...a1n......ak0ak1...akn;从交织矩阵中的读出顺序为:a00a10...ak0a01a11...ak1 ......a0na1n...akn。而解交织则是按列写入矩阵, 然后按行从矩阵中读出即得到解交织之后的数据, 即写入顺序为:a00a10...ak0a01a11...ak1 ......a0na1n...akn;读出顺序为:a00a01...a0na10a11...a1n......ak0ak1...akn。
k和n的选择和系统要求的延时、抗干扰能力有关。综合系统要求的时延、突发干扰的特性及物理实现的能力, 确定一帧图像为一个交织矩阵, 选择k为64, n为一个RS编码子帧长度。
2结论
针对红外图像在干扰信道下的传输问题, 根据实际使用环境提出采用多分辨率重采样图像压缩算法加RS编码加交织的信源信道联合编码方案, 降低了系统带宽, 提高了系统抗突发干扰能力, 采用信道模拟器进行半实物仿真, 抗干扰能力和时延满足系统要求。
参考文献
[1]周孝宽, 姜宏旭, 程子敬.基于空间重采样的遥感图像压缩.北京航空航天学报, 2001;10:611—614
[2]程子敬, 周孝宽.多分辨率重采样压缩算法硬件系统体系结构研究.中国空间科学技术, 2002;5:10—16
[3] Proakias J G, Salehi M.通信系统工程 (第二版) .叶芝慧, 等译.北京:电子工业出版社, 2002
[4]王新梅.肖国镇.纠错码—原理与方法.西安:西安电子科技大学出版社, 1999
[5]张宗橙.纠错编码原理和应用.北京:电子工业出版社, 2003
[6]薛铭, 肖红, 张静.基于FPGA实现的交织编码器.长春工程学院学报, 2008;9:35—37
解码设计 篇2
摘要:介绍了HDB3编解码的原理和方法,给出了用CPLD(ComplexProgrammableLogicDevice)实现E1信号HDB3编解码的方法,同时给出了它的实现原理图,最后给出了XILINX的XC9500系列可编程逻辑器件的开发流程。
关键词:复杂可编程逻辑电路;三阶高密度码;极性交替反转码;在系统编程
1XC9572器件介绍
XC9572是XILINX公司生产的一款高性能可编程逻辑器件。它内含4个36V18功能块,并具有1600个可用系统门。其系统结构如图1所示。从结构上看,XC9572包含三种单元,即宏单元、可编程I/O单元和可编程内部连线。其主要特点如下:
●所有可编程管脚间的脚对脚延时均为5ns;
●系统的时钟速度可达到125MHz;
●具有72个宏单元和1600个可用系统门;
●可编程次数为10000次;
●可采用5V在线编程和擦除;
●拥有强大的管脚锁定能力;
●每个宏单元都具有可编程低功耗模式;
●未用的管脚有编程接地能力;
●提供有编程保密位,可对设计提供加密保护以防止非法读取;
●外部I/O引脚与3.3V和5V兼容。
2HDB3的编解码及实现原理
HDB3码(三阶高密度双极性码)是基带电信设备之间进行基带传输的主要码型之一。它的主要特点是易于提取时钟、不受直流特性影响、具有自检能力、连令串小于3个等。
E1信号是我国和欧洲国家电信传输网一次群使用的传输系统。E1信号由32个64kbps的PCM话路经过时分复用形成。CCITT建议G.703标准详细规定了HDB3码用于E1信号的标准。
用XC9572实现E1信号的HDB3编解码电路比较简单,而且无需可调整外围电路。本设计使用了PC44封装形式的XC9572可编程逻辑器件共有30个可编程IO引脚、6个电源引脚和4个JTAG引脚。整个设计使用了XC9572器件80%的容量。图2所示是其实现电路图。
HDB3码是AMI(AlternateMarkInversion)码的改进型。AMI码是用交替极性的脉冲表示码元“1”,用无脉冲表示码元“0”。为了防止电路长时间出现无脉冲状态,HDB3码的编码规则是:当没有4个或4个连续的“0”码时,就按AMI码规则编码;当出现4个或4个连续的“0”码时,每4个连续“0”的第一个“0”的变化应视它前面相邻的“1”的情况而定,如果它的前一个“1”的极性与前一个破坏点的极性相反而本身就是破坏点,则4个连续的“0”的第一个仍保持“0”;如果它的前一个“1”的极性与前一个破坏点的极性相同而本身就是破坏点,则第一个“0”改为“1”。这一规则保证了相继破坏点具有交替的极性,因而不会引入直流成分。4个连续“0”的第2,3个总是“0”。4个连续的“0“的第4个改为“1”,而极性与它前一个“1”的极性相同(破坏点极性交替规则)。在接收端,如果相继接收到两个极性相同的“1”?它的前面有3个连续的“0”?则将后一个“1”改为“0”?如果它的前面有2个连续的“0”,则将前后两个“1”改为“0”,这样就恢复了原来的数据信号。下面是一个HDB3码的例子:
其中:V代表破坏点,+V表示+1,-V表示-1,+B表示+1,-B表示-1。
图2HDB3编解码电原理图
在根据上述原理实现HDB3编解码的图2电路中,BNC1插头送来的HDB3信号经变压器T1、U4及外围器件组成的单双变换电路后将转换成两路单极性码并送给可编程逻辑电路?XC9572?U5的43、44脚,然后经过可编程逻辑电路内部解码后,从可编程逻辑电路?XC9572?U5的24、25脚输出数据和时钟。从U5的26、27引脚输入的数据和时钟经其内部编码后,将从其2和8脚输出,而后再经过U3以及外围器件和变压器T1组成的单双变换电路形成HDB3码,并从BNC2插头输出。
3FOUNDATIONISE4.2I开发工具
FOUNDATIONISE4.2I是开发XILINX公司可编程逻辑产品(包括CPLD和FPGA系列)的软件工具包。利用FOUNDATIONISE4.2I提供的设计环境和设计工具,可以灵活高效地完成各种数字电路设计。在FOUNDATIONISE4.2I的`设计环境下,对CPLD和FPGA进行设计的过程如下:
(1)FOU
NDATIONISE4.2I的设计输入有图形输入和文本输入两种方式。此外,符号编辑器用于编辑用户的模块符号。在本系统中,笔者使用VerilogHDL语言作为文本输入方式。
(2)设计实现是在FPGA或CPLD器件内物理地实现所需的逻辑。这个过程由FOUNDATIONISE4.2I中的核心部分编译器完成。它可依据设计输入文件自动生成?主要用于器件编程、波形仿真、延时分析等所需的数据文件。
(3)设计仿真是由仿真器和时延分析器利用编译器产生的数据文件来自动完成逻辑功能仿真和延时特性仿真(时序仿真)的。通过仿真可以发现设计中的错误与不足,以便对设计进行修改和完善,使其最终达到设计要求。
(4)仿真结果正确以后,即可进行器件编程。即通过编程器(Programmer)将设计文件下载到FPGA芯片中。以在实际芯片中进行实际信号的时序验证?同时就芯片的实际运行性能进行系统测试。
4HDB3的CPLD实现及仿真结果
用XC9572实现HDB3编解码设计主要由编码、时钟提取和译码三部分组成。其中编码部分是根据HDB3编码原理把二进制码的时钟和数据信号编码成两路单极性的HDB3码输出。其编码原理框图如图3所示。
时钟提取是译码的关键部分,原理是32.768MHz时钟提取两路HDB3单极性码的上升沿,并形成宽度2倍于32.768MHz时钟周期宽度的脉冲,然后用此脉冲复位32.768MHz时钟的16Bit计数器,最后根据16Bit计数器的结果产生2.048MHz时钟。
译码部分比较简单。它根据HDB3码的特点首先检测出极性破坏点,即找出4连零码中添加V码的位置(破坏点位置),其次去掉添加的V码,最后去掉4连零码中添加的B码以将其还原成单极性不归零码。译码原理框图如图4所示。
HDB3编解码的CPLD设计可采用上面介绍的FOUNDATIONISE4.2I开发工具来实现。设计输入采用VerilogHDL语言完成。设计分为三个模块:时钟模块、编码模块、译码模块。限于篇幅,本文未给出时钟模块、编码模块及译码模块的源代码。有需要者,可和作者联系。
5结束语
解码生命 造福人类 篇3
联合基因以“锐意创新,开拓进取”,成为开拓性的生物医药技术公司,以科技创新为 先导,坚持走科技产业化发展道路,先后经过了以“科研为导向”和“融资为导向”两个发 展阶段。5年来,联合基因在开拓、创新和奋斗的道路上勇往直前,创造了令世人瞩目的成 绩,已成为我国目前规模最大的基因组研究、应用和产品开发企业,走进了世界生物芯片发 展的前列,从而确定了我国在世界范围内的竞争地位。联合基因取得的重要成果有:申请国 内专利 3808 项,其中进入国际PCT基因发明专利阶段 1242 项,国外国家阶段 25 项;发 表学术论文 183 篇,其中国际 SCI 论文 48 篇;开发了基因药物和天然药物,形成了功能 基因组相关产品等主要七大产品和服务系列;自主研发的基因芯片被评为 2000 年上海市科 技进步一等奖;自主开发建立了国内第一个大型基因数据库;以基因芯片技术作价 2.5 亿 元人民币与广东肇庆星湖生物科技股份有限公司共同成立芯片制造公司;成功收购香港主板 上市公司精优药业;成立博德、博容、博联、博华和博星等一批高科技企业。2002年 10 月 联合基因荣获了上海市科技企业创新奖光荣称号。
联合基因目前是中国最大规模的基因芯片研发、生产和经营企业。基因在基础科学研究 、疾病诊断、药物筛选等领域,提供包括基因芯片产品、相关技术服务在内的全套解决方案 。产品包括各类表达谱芯片、商检芯片等三十几个品种。在基因芯片生产的主要技术环节上 ,联合基因都申请了专利保护。目前联合基因是惟一的同时拥有基因芯片相关专利和大量基 因专利的生物芯片公司。
公司在发展过程中,形成了具有自身特色的企业文化,确立了“以人为本、民族利益、 激励创新、协作精神、学无止境”的管理理念和“勇于创新、勤于学习、善于冒险、严谨求 实”的企业精神,制定了科学的团队规则,建立了以人为本的激励机制和企业员工相互交流 的信息共享体系,努力营造一个平等协作,宽松愉快的工作氛围,促进员工将个人的职业生 涯与公司的发展目标紧密结合起来,让员工广泛地参与企业管理,形成了较强的凝聚力。在 300余名生命科学、计算机、营销、金融、管理和策划等领域的优秀人才中,70%以上为本 科毕业,30%为硕士、博士学历。20名正副教授、高级工程师以及海外留学归国人员担任主 要管理与技术职位。
联合基因在艰辛的创业和发展道路上得到了各级领导的亲切关怀和支持,先后有30多位 省部级以上领导到公司视察和参观。1999年11月9日,中共上海市委、市政协主要领导到联 合基因视察。2000年11月23日,时任中共上海市委副书记、市长徐匡迪、市委副书记刘云耕 ,市委常委、市纪委书记张惠新、市委常委、副市长蒋以任、市人大常委会副主任胡正昌和 市政协副主朱达人等一行视察了联合基因,徐匡迪在听取了公司领导汇报后指出正在从事的 事业是一项能为全人类造福的事业。他高度赞扬了基因科研人员的钻研敬业精神,并为企业 迄今取得的成果感到骄傲。全国各大媒体,如人民日报、中央电视台、上海人民广播电台、 新浪网等几十家报社、电台、电视台、网站都用了大量的篇幅报道了联合基因在科研、经营 和生产活动中取得的成就。领导的关怀和重视,社会各界和媒体的关注,给了联合基因全体 员工以极大的鼓舞和鞭策。
联合基因在激烈的市场竞争中始终有着非常大的竞争优势。(一)公司在基因组技术蓬 勃发展之初就着手基因技术产业化的工作,目前,无论是基因资源,还是可控资产都领先于 国内同行。(二)从实验室到产业界,联合基因成功地实现转型,摸索出一套行之有效的商 业运营模式。(三)公司的研发部门不断吸引来自海内外知名院所的研究人才;同时包括多 名院士在内的专家委员会将持续在公司的战略上给予指导。(四)公司作为一个民营企业, 在经营上有极大的自主权,机制上有足够的灵活性来应付市场环境的变化。(五)香港上市 公司精优药业是一个投资者沟通的良好窗口,同时,旗下的长春精优拟在国内主板上市,将 以灵活机动的方式支持公司超常规发展。(六)年轻的、充满创意与活力的员工队伍,将同 年轻的公司共同成长。
ArrayLDPC码解码器设计 篇4
LDPC (低密度奇偶校验) 码是当代最先进的信道编码方式, 已经被用于下一代无线局域网、有线局域网、卫星通信和中国的数字电视通信上。Array-LDPC码[1]是一种高码率的LDPC码, 具有高性能、易编码等特点, 它在DSL传输应用中具有突出的性能[2]。Array-LDPC码的校验矩阵由3个参数确定:单位矩阵大小P (P为质数) , 列重c和行重t (c, t≤P) 。它是一个cP×tP大小的矩阵, 具体结构如下:
式中:I为P×P的单位矩阵, α为P×P的置换矩阵 (单位矩阵循环右移1位) , αi为单位矩阵循环右移i位得到的置换矩阵。α矩阵结构如下:
从Array-LDPC码的构造上可以看到, 它的H矩阵的任意2行中1的位置相同的个数为1, 即该H矩阵是免4环的, 这在一定程度上也就保证了它的性能。文献[2]中给出了3种码长的高性能Array-LDPC码, 本文以参数为 (2209, 2021) 和 (4, 47) 的码作为实例进行解码器的设计。
2 解码算法
本文的解码器采用MS (最小和) 算法, 下面对MS算法做简单介绍:
a) 初始化处理, 确定变量节点的值Qmn, Qmn为各个最初进入码字yn的值。
b) 行处理 (校验节点操作) 。Lundefined为由校验节点m向变量节点n传递的可靠性信息, 上标i表示第i次迭代。由式 (1) 完成校验节点到变量节点信息的更新, 即寻找与该校验节点相连的除自身以外的所有变量节点中的最小值。
其中符号位undefined可通过signundefined的方式计算。
c) 列处理 (变量节点操作) 。由式 (2) 完成变量节点到校验节点信息的更新。Lundefined为信道接收的初始值, α为优化比例因子。
d) 译码。Qundefined的值由式 (3) 计算完成, 若Qundefined≥0, 则Zn=1, 若Qundefined<0, 则Zn=0。这样码字z的值便被求出。如果校验方程得到满足, 则本次解码结束, 否则重复执行步骤b, c, 直到解码正确或解码达到最大迭代次数。
3 解码器架构设计
在充分考虑MS解码算法和码结构的基础上, 本文提出一种高速、降低存储需求的LDPC码解码器架构, 该架构能充分利用Array LDPC码校验矩阵的结构特点, 在MS算法下具有优异的性能。
根据H矩阵的结构, 该矩阵可分为c×t块, 每块为一个P×P的单位矩阵或是单位矩阵的偏移, 并且每行t个块间相邻矩阵的偏移量是一致的。因此, 本设计的解码器架构中采用P个VPU (变量节点处理单元) 和c×P=M个CPU (校验节点处理单元) , 其每次迭代处理过程依次包含以下步骤:
a) P个VPU对P列同时进行变量节点处理, 即列操作。
b) M个CPU对步骤a操作运算的结果进行校验节点处理, 即行操作, 并存储操作结果。
c) 重复步骤a、b直到整个矩阵操作结束, 则完成一次迭代。
由上可以看到, 一次迭代过程需t个时钟周期完成, 每个时钟周期一个CPU只需要处理一个消息。图1以P=5, c=2, t=3的H矩阵为例说明了解码次序。
解码器的总体架构如图2所示。
解码器包含P个VPU和M个CPU。根据上面所述的解码顺序, 在每个时钟周期中, 从存储单元取出M个校验节点到变量节点的消息, 再送入P个VPU中, 经过P列的列操作将产生M个从变量节点到校验节点的消息。在该解码器结构中, VPU与CPU之间的shuffle network非常简单, 他们之间的互联是一一对应的, 不需要复杂的交换。信息的传递交换由CPU之间的局部通信来完成, 大大降低了布线复杂度。
下面以 (2209, 2021) Array LDPC码为实例来具体说明该解码器结构。在该设计实例中, P=47, c=4, t=47, 即解码器需要47个VPU和188个CPU。
解码器中校验节点与变量节点之间的连接关系由校验矩阵H的第1列子矩阵确定, 即每个校验节点只需要与固定的一个变量节点相连。在本设计中, 188个CPU与47个VPU的连接关系为:CPUi与VPU (i mod 47) 相连。具体见图3。
按本设计的规定, CPUi负责处理第i行的行操作。按照H矩阵的结构特点, 在CPU之间引入类似于循环移位的通信, 如图4所示。每个CPU在完成它的行操作之后将操作结果存储, 以供下一个CPU使用。CPU之间的循环传递机制是保障正确解码的基础。根据H矩阵的结构特点, CPU被分为4组, 每组内按各自的连接方式进行信息的循环传递。
对于变量节点操作, 在一次迭代中, VPUi应该依次接收来自于第P+i行, P+ (P+i-1) %P行, P+ (P+i-2) %P行……的消息, 存储在各个CPU内的上次迭代的结果同样需要在CPU间不停地传递。由以上分析可以看到, 矩阵间偏移关系的不同, 决定了每组CPU间通信关系的不同。
在两次迭代之间, 即一次矩阵行操作全部完成之后, 将行操作的结果送回最初的校验节点计算单元中, 以产生校验节点到变量节点的消息。在本文的实例中, P=t= 47, 即CPUi在经过t个时钟周期的操作和数据传送后, 它接受的信息正好是所需的该校验节点到变量节点的信息。这样就不需要额外的连线和逻辑来完成两次迭代解码之间信息的传回。
解码器总体互连架构总结如下:
a) VPU与CPU间的通信, 即校验矩阵第1列所决定的连接, 每个CPU与1个VPU相连, 每个VPU与c个CPU相连。
b) CPU间循环移位的通信, 用于保证在VPU与CPU之间正确传递消息。
该互连架构显著降低了节点间的信息通信量, 同时, 用局部的CPU之间有规律的信息传递取代了VPU与CPU之间复杂的信息交换。这就解决了硬件实现中的布线问题。
CPU负责完成校验节点的计算工作, 即式 (1) 中的消息符号位和消息强度。MS算法计算消息强度的工作就是在一行的t个输出消息中找出绝对值最小的2个。由于对应于最小强度输出消息的返回输入值应是各节点输出消息强度的第2最小值, 因此需要计算和存储最小强度输出消息的位置。
图5为CPU的架构示意图。CPU完成校验节点计算。具体说明如下:从上一个相邻CPU得到上次迭代的行操作结果, 根据index的值以及sign_reg中弹出的符号位值提取出此时对应的校验节点到变量节点的消息 (包括消息比例操作) , 传输给相连的VPU。更新index后, 继续向下一个相邻CPU进行传递。VPU中的运算结果进入校验操作, 将它的大小和现有的中间结果 (即2个最小值) 相比较, 更新这2个最小值。必要的话, 同时更新最小值所在位置, 即index的值。另外, 将输入消息的符号位与现有中间结果的sign位相乘 (即异或) , 将这4个结果 (最小值min、第2最小值2nd-min、最小值所在位置index和符号位sign) 存入寄存器new_reg中。同时将VPU运算结果的符号位打入sign_reg的FIFO中。
图6给出了VPU的架构图, 它负责完成解码算法中的列操作, 其结构与一般VPU架构并没有区别。在本设计中, 由于CPU的运算相对简单, VPU成为影响系统工作频率的关键部分。因此, 本设计对VPU采用2级流水操作, 提高系统工作频率。2级流水的施加位置如图上所示, 这是在充分考虑了各部分的处理时间后而定的。
虽然这样使解码迭代一次的时间由t个时钟周期变为t+2个时钟周期, 但解码器整体性能得到了较大的提高。
4 设计实现结果
表1给出了以上设计结果与其他解码器设计结果的比较。从表1的比较可以看到, 本设计具有突出的高硬件效率。
参考文献
[1] FAN J L. Array codes as low density parity check codes[C]//Proceedings of 2nd International Symposium on Turbo Codes and Related Topics, Sep 4-7, 2000, Brest, France. 2000: 543-546.
[2] ELEFTHERIOU E, OLCER S. Low density parity-check codes for digital subscriber lines[C]//Proceedings of IEEE International Conference on Communications: Vol 3, Apr 28-May 2, 2002, New York, NY, USA. Piscataway, NJ, USA; IEEE, 2002: 1752-1757.
[3] BLANKSBY A J, HOWLAND C J. A 690-mW 1-Gbps 1024-b, Rate-1/2 low-density parity-check code decoder[J]. IEEE Journel of Solid-State Circuits, 2002, 37 (3) : 404-412.
[4]COCCO M, DIELISSENJ, HEIJLIGERS M, et al.Ascalablearchitecture for LDPC decoding[C]//Proceedings of the De-sign, Automation and Test in Europe Conference and Exhibi-tion Designers′Forum (DATE′04) :Vol 3, Feb 16-20, 2004.Paris, France.Piscataway, NJ, USA:IEEE, 2004:88-93.
双解码教案(推荐) 篇5
亲爱的小伙伴们,大家下午好!今天下午大家做的这个拓展项目与我们手中的扑克牌有关。大家知道一副扑克牌有多少张吗?对,是54张。一副牌共有几种颜色呢?对的,有2种颜色,分别是红色和黑色。红色包括红桃和方片,黑色包括黑桃和梅花。现在我手上有26张扑克牌,分别是红A~K13张,黑A~K13张。
我们的任务是:在规定的时间内将这些散放在桌面上的正面朝下的扑克牌按照一定的顺序翻过来。
规则是: 1.先红后黑,从小到大;即先翻红A再翻黑A,红2黑2一直翻到红K黑K为止。(并问学员第5张翻的是什么,第9张翻的是什么,判断学院有无听懂你的规则)2.翻牌时以队为单位,每队每次只允许1个人上前翻牌。3.翻牌的队员每次只允许翻开或翻看1张牌。(并跟学员举例如果我第一次翻到的牌是黑A,我该怎么做?继续扣回去,换下一个学员再继续翻,直到某个学员红A为止,再继续,直到黑A。。)如在上述过程中出现违规包括但不限于以下几点:
1.如某个队同时有2名及以上学员进入翻牌区进行翻牌; 2.某名队员连续翻开或翻看不止一张牌;
3.没有按照规定的先红后黑,从小到大的原则; 4.在扑克牌上做标记或者损坏扑克牌等现象。将打乱其中任意3张牌所在的位置。对于以上规则还有什么不明白的地方? 如无疑问,下面我说下积分规则: 每个队进行3轮比赛;
积分原则:1)相同时间看翻牌张数;2)相同的翻牌张数(这26张牌)看哪队用时最短。
第一轮比赛成绩最好的队将得3分,第二名得2分,最后一名得1分; 第二轮比赛积分会乘以一个系数,这个系数我在第二轮比赛之前宣布,如系统是5,第二轮中得第一名的队将3x5=15分,最后一名将得5分; 第三轮积分规则同第二轮;
三轮比赛结束后,将三轮比赛积分累加,看哪组得分最多 大家还有什么不清楚的地方?
如果没有,给大家5分钟游戏讨论时间,计时开始。
乔红娇
解码“中央海权办” 篇6
一名国家行政学院专家曾透露说,2012年下半年中央海权办就已成立,与中央外事工作领导小组办公室合署办公,成员单位包括国家海洋局、外交部、公安部、农业部和军方等,负责协调统筹海洋权益事宜。
中央海权办和中央外办合署办公,可视作新一届领导人希望扭转海洋维权状态,由被动防御转为积极进取的举措。
按照惯例,海洋划界的敏感议题由外交部边界与海洋司专责,每逢其他国际海洋事务会议,外交部的条约法律司总是牵头部门,再带上国家海洋局和农业部的一些科学家,便构成了整个中国官方团队。可以想见,中央海权办将作为中国海洋外交的中枢,在一系列对外海洋维权行动中发挥重要作用,外交部变成具体政策执行者。
对于中央海权办而言,眼下最急迫的就是研究在菲律宾步步紧逼的情况下,如何维护中国海洋的政治和安全权益。据统计,全世界海岸相向和相邻国家之间共有420多条潜在边界,到上个世纪80年代,仅有150条边界协议得以缔结。这意味着,剩下的边界纠纷冲突犹如一个个潜在的火山口。
一个题外话是,菲律宾和中国打官司以来,国内法律和外交界少有真正了解国际海洋法庭组成、管辖权、争端解决和判决机制的专家。在海洋外交已经落后别人多时的中国,除需理顺海洋管理体制外,同样亟需海洋人才储备。摘自《报刊文摘》
通用红外遥控解码器的设计 篇7
关键词:红外遥控解码,聚类,重复模式识别,效率
0 引 言
在当代消费类电子中,红外通信由于它的低功耗、低成本、易实现受到了各个厂家的青睐,红外遥控器是一个很显著的运用。随着电子技术的不断进步和人们生活水平的不断提高,在红外技术取得长足进步的同时,越来越多的带有红外遥控功能的电子设备已经进入了家庭、办公、娱乐场所[1,2]。然而,由于采用的遥控协议,编码方式的差异[3,4],大多数红外遥控器并不能通用,这既造成了资源的浪费,又给用户的使用带来了不便。本文设计一种通用红外遥控解码器,它能够对红外遥控信号进行解码、压缩、识别和储存、很好地解决了上述的遥控器不通用问题。
1 通用红外遥控解码器
1.1 硬件组成
红外遥控解码器的组成十分简单,主要由以下几个部分:红外接收电路、微处理器、红外发射电路、显示模块,如图1所示。红外接收电路是用来接收红外遥控器发出的红外遥控信号,送给微处理器;微处理器对遥控信号进行压缩、识别和储存,并将结果在液晶上显示;红外发射模块则按照用户需要发射对应的红外信号。
1.2 红外遥控信号
在目前的红外遥控器中,大都采用PPM(Pulse Position Modulation)调制方式[5]。其基本原理即用脉冲出现的不同位置来表示二进制信号。一个简单的例子如图2所示。
在红外遥控帧的组织方式中,一般采用以下组织方式,如图3所示。其中起始码和停止采用一个高低脉冲表示,用户识别码反码和控制码反码是用来对数据进行校验使用的[6,7]。
在红外遥控信号的发出过程中,为了保证码的传输正确性,一般采用重复发送的方式,现在使用的重复发送的方式有以下3种:简单数据码重复发送、有引导码的数据重复发送、重复码方式[3,8],如图4所示。
2 核心算法
在整个设计中,对红外遥控信号的准确识别和有效存储是关键。假如微处理器接收到来自接收电路的信号是一串宽窄不一的脉冲如图5所示。
由于一个脉冲宽度和一个脉冲间隔代表的是一个数据位,如果需要记录下所有的数据位,并需要记录下所有的脉冲间隔和脉冲宽度,这对微处理器的资源造成了很大的浪费。在这里运用矢量量化编码[6]和聚类的方法来记录数据脉冲携带的信息。定义一个数组Tn(tn1,tn2),其中tn1代表脉冲宽度;tn2代表脉冲间隔。这样一个脉冲串就被标记成了一组矢量:T1,T2,…,Tn…,称之为原始矢量。
2.1 聚类
在原始矢量中的元素只有表示“0”、“1”2种信息类,但在解码过程中,遥控器时钟的不稳定,传输环境的干扰都会导致相同信息类中tn1和tn2的不同,于是需要用聚类的方法来处理。
聚类是一种无监督的分类方法[9]。首先定义阈值T=1 ms和一个相似测度:
以下是聚类的过程:
(1) 把T1作为第一个类A的中心,计算T2与A类中心的测度d2A,若d2A<T,把T2归入A类,否则把T2作为新类B的中心;
(2) 计算T3与所有类中心的距离,设这个d3x(x=A,B,…),若d3x<T,把T3归入x类,否则,把T3作为一个新类的中心;
(3) 对T4,T5,…做类似的操作直到最后一个Tn为止。
2.2 重复识别
对原始矢量聚类以后,得到几种信息类表示的矢量,称为信息矢量。然而由于数据码的传输可能存在重复发送的方式,为了进一步减少存储的压力,对数据进行进一步的压缩,还需要对信息矢量进行重复模式识别,在这里利用迭代法对重复模式进行识别。过程如下:
(1) 首先找出重复数据之间的分隔符。实验得知,分隔符的持续时间一般为20 ms左右。选择T=10 ms,从信息矢量中从头至尾寻找,如果某一个元素x的t2持续时间大于T,则把这个元素判断为分隔符,记为*。
(2) 令第一个分隔符位*0,第二个分隔符位*1,第n个分隔符位*n,处于*n-1与*n之间的序列称为序列Ln,这样将信息矢量划分为一个序列串的集合,称之为序列矢量,如图6所示。
(3) 用迭代法比较序列矢量中的序列L1,L2,…,Ln…,设序列长度为N方法如下:比较L1和L2,若L1=L2,那么序列重复模式为L1L1L1…L1…,若L1≠L2,比较L1与L3,若L1=L3,比较L1L2与L3L4,若L1L2= L3L4,那么序列重复模式为L1L2L1L2…L1L2…,否则比较L1与L4,…,这样直到比较L1与最后一个L[N/2]([]为取整运算符),如果还没有找到重复模式,再比较L2与L3,…
由于序列的长度都是有限的,实验证明,序列长度不超过50个,所以只要收集到的数据足够多,就一定可以找到重复模式。找到重复模式以后,现在则对得到的数据进行存储,为了保证信息的完整性,需要存储以下内容:原始矢量中不同的元素类,重复模式,重复次数,以及原始矢量表到识别后的矢量索引以及某些明显标志等,解码示意图如图7所示。
3 性能评价
假如利用20比特来表示每一个信息“0”或者“1”,如果接收到的脉冲为500个脉冲,如果不经过解码压缩,直接存储这些脉冲值,则会花费500×20=10 000 b的存储量,进过压缩,假如原始矢量表中聚类得到的脉冲种类有8种,系列矢量表中重复的序列一共包含20个脉冲,加上分隔符,其实位,终止位都用一个与储单元4比特来表示索引,这将花费8×24+23×4=284 b。由此可见,存储效率明显增大。
4 结 语
本文设计了一款通用红外遥控解码器,能够对任何红外遥控信号进行解码、压缩和存储。在设计中,利用了矢量量化编码和模式聚类的方法,提高了存储效率,减少了系统设计成本。在某两套的实验样机开发中,这种解码器已经成功地得到运用。实践表明,这种红外遥控解码器在仪表仪器的制作[10]具有很广阔的工程应用前景。
轨道电路解码测试模块的软件设计 篇8
轨道电路从发明以来,作为一种检测轨道区间是否被占用的最简单、直接、有效的设备,目前已经成为我国铁路区间自动闭塞最主流的形式。2005年,我国铁路迎来了第6次大提速,为了保证时速200km的动车组列车在部分既有线上的安全运营,引入了CTCS-2级列车控制方案,形成了基于轨道电路和点式应答器传输控车信息的分散自律的列车控制系统。系统采用ZPW2000(UM)无绝缘轨道电路作为检测轨道占用与否和列车完整性的设备,以及故障状态下的备用模式(CTCS0或l级),并且连续为列车提供运行前方闭塞区间空闲数等信息。列控车载设备(ATP)在接收到轨道电路发送的信息后,与应答器信息以及列车当前运行信息等一起完成对列车的控制[1,2,3,4,5]。因此,ATP是否能准确解析轨道电路信息对列车的安全运行至关重要。为了检测ATP中轨道电路解码部分是否解码正确,提出了轨道电路解码测试模块。
1 研究内容
1.1 模块简介及功能需求分析
轨道电路解码测试模块是按照一定的逻辑生成一系列已知的轨道电路信号,并将该信号发送到轨道电路信号接收天线上,用以测试ATP轨道电路解码部分是否正常工作。文中主要是对轨道电路解码测试模块软件进行设计。目前我国铁路既有线所使用的轨道电路的制式主要有国产FSK、ZPW2000、UM71,也就是说,轨道电路解码测试模块要能够产生这三种制式的轨道电路信号[6,7]。当测试人员打开测试开关,模块进入工作状态,在与ATP轨道电路解码部分握手成功后,输出既定的轨道电路信号,并与ATP轨道电路解码部分进行串口通信以获取解码后的信息,用以判断ATP轨道电路解码部分解码正确与否。最后通过设备输出显示ATP轨道电路解码部分的解码状态以及解码测试模块的工作状态。轨道电路解码测试模块还应该具有在诊断出设备故障时,停止输出测试信号,并能够驱动解码测试模块设备上的运行和故障指示灯进行显示。
考虑到系统运行的实际环境及应用状况,轨道电路解码测试模块设计了以下两种工作模式。
(1)自我测试模式。
该模式下,轨道电路解码测试模块不与上位机进行连接,是测试过程中的指挥者和中枢。解码测试模块通过钥匙开关打开并进入工作状态,解码测试模块按照默认逻辑生成低频轨道电路信息,并用载频进行调制。此时,ATP轨道电路解码部分与解码测试模块互发握手信号,以保证在握手信号之后再进行发码测试,当握手成功后,解码测试模块将所生成的轨道电路信号发送到列车的轨道电路信号接收天线上,ATP轨道电路解码部分将感应此轨道信号并进行解码。同时解码测试模块通过与ATP解码部分进行通信以获取解码出的载频/低频信息,并与之前生成的信息进行比较,从而判断ATP解码模块是否解码正确。并将比较结果以及解码测试模块工作状态通过指示灯进行显示。
(2)上位机测试模式。
该模式下,轨道电路解码测试模块与上位机进行连接,在测试过程中充当中转站的角色。此时,上位机是解码测试模块的又一个操作者。当模块进入工作状态后,会在每个周期自动检测是否与上位机连接,当模块检测到上位机已连接并与其握手成功后,将与上位机建立通信并下载由上位机生成好的轨道电路信息数据帧。轨道电路解码测试模块会解析这些数据帧并将解析好的信息发送到轨道电路信号接收天线上供ATP轨道电路解码部分进行感知。之后,解码测试模块会把ATP轨道电路解码部分解码后的数据信息回传给上位机。最后,由上位机对数据进行比较,用以判断解码是否正确。在上位机测试模式下,当上位机由于故障等一些不确定因素而与解码测试模块连接通信连接中断从而致使解码测试模块在一段时间后接收不到任何上位机发来的指令时,模块将自动转入自我测试模式。
1.2 软件设计
通过对软件在不同工作模式下的完成的功能进行分析,可把其工作属性分为两大类,一类为数据处理,另一类为通信,如图1所示。根据软件设计需求,对其进行模块划分。即软件按照模块化的思想进行设计,各个模块相互独立,工作时进行必要的数据交换,并且模块在软件中的位置不固定。在软件运行过程中,将有专门模块负责统筹这些子模块的工作顺序。模块化的设计带来的最大好处就是软件整体易于修改,容易找到出错位置,使软件编程者思路清晰。
根据系统的需求,对软件进行了流程和模块的划分,流程如图2所示。
轨道电路解码测试模块软件按照功能划分为7个模块。
(1)初始化模块:
该模块的主要功能是在处理器运行正常的前提下,对系统整体运行环境的检查及建立。主要分为三个阶段进行:首先对硬件设备及所有接口初始化,保证数据通道正常及硬件驱动正常;其次对程序运行的存储区进行校验,保证所有的程序储存区和数据储存区都是完好的,如果有异常,输出校验异常结果;在初始化过程中发现的异常都作为初始化异常处理。系统初始化模块是在上电时运行一次,系统在运行过程中,将不再执行。在初始化过程中,如果不能正常完成自检,将报自检故障,需要重新上电后才能恢复。
(2)载频/低频信息模块:
轨道电路发送器发送的FSK移频信号由载频和低频组成,例如ZPW2000型,共有8个载频、18个低频,有144种组合方式。所以,对ATP轨道电路解码部分进行测试,就需要生成既定的载频/低频信息,从而判断ATP轨道电路解码部分是否解码正确。自测模式下,该模块按照运算逻辑随机生成载频/低频信息,用于测试,并将生成好的载频/低频信息进行存储,用于之后的比较。上位机测试模式下,主要功能为根据通信协议解析从上位机下载的数据帧,生成准备发送的载频/低频信息。
(3)数据信息发送模块:
主要功能为调制低频,发送载频。在自测模式和上微机测试模式下,将载频/低频信息模块准备好的载频/低频信息发送到轨道电路接收天线上。
(4)数据解析模块:
在自测模式下,根据通信协议解析ATP轨道电路解码部分解码后的数据帧。
(5)数据比较模块:
在自测模式下,用来比较从ATP轨道电路解码部分接收到的载频/低频信息与发送的载频/低频信息是否一致,并给出比较结果。
(6)状态显示报警模块:
在自测模式下,将测试结果,以及解码测试模块工作状态通过指示灯进行显示。当比较的两组数据不一致时进行报警,并把信息发送给相关车载系统相关模块,从而采取相应措施。
(7)上位机通信模块:
主要功能为,在软件运行的每一个周期定时查询是否有上位机串口通信数据的到来,如果接收到上位机数据,则将连接到上位机的标志位置1,并下载上位机生成的载频/低频场景数据,同时,将上一周期从ATP轨道电路解码部分接收到载频/低频信息上传给上位机。如果2s内没有接收到上位机数据,说明系统已经退出上位机测试模式进入自测模式,则将连接到上位机的标示位置0。每个周期开始时都需要查询连接到上位机标志位是否为1,从而决定系统的测试模式。
1.3 软件实现
轨道电路解码测试模块选择TMS320VC33作为处理器,以满足其对浮点运算的特殊要求。VC33是TI推出的TMS320系统的第三代处理器的升级产品,32位浮点运算DSP。它具有高速、低功耗、低成本、易于开发等显著特点,是目前在国内外使用最为广泛的浮点运算DSP机种之一。因此,我选用Code Composer Studio作为开发平台。
CCS作为一个完整的DSP集成开发环境,是目前最优秀、最流行的DSP开发软件之一。现在TI所有的DSP都可以使用该软件工具进行开发。 CCS可以支持软仿真器、各种型号硬件仿真器、各种DSK和EVM板。并且,CCS具有集成可视化代码编辑界面,可以直接编写C,汇编,.h,.cmd等,简化语言编程方式。在软件开发过程中,将编译好的C语言、汇编语言通过CCS中的代码生成器进行编译汇编,并链接成为可执行的DSP程序[8,9,10]。
2 结束语
轨道电路在我国铁路已经得到广泛应用,其在列车运行过程中不仅用于检查行车区间是否被占用,而且还担负着向列车发送部分行车指挥信息的作用,所以对轨道电路所发送信息进行准确、快速的解码也成为了保障铁路信号设备安全性的重要要求。根据列车运行的实际情况,设计了一个轨道电路解码模块测试软件,用于测试车载设备对轨道电路解码是否正确。极大的提高了信号设备的安全性,是一款简洁,高效,具有实用性的软件。
摘要:在我国现行的CTCS-2级列车控制系统中,轨道电路作为系统地面设备的重要组成部分,其不仅用来检测轨道的占用与否和列车的完整性,而且还连续为列车提供运行前方闭塞区间空闲数等信息。因此,列控车载系统对轨道电路信息的正确解析是保证列车安全运行的关键。为了检测列控车载系统中轨道电路解码部分是否解码正确,提出了轨道电路解码测试模块,详细阐述了模块的功能,并采用模块化的思想对模块的软件进行了设计。
关键词:列控运行控制,轨道电路,解码,测试,软件设计
参考文献
[1]科技运函[2004]1号.中国列车运行控制系统-CTCS技术规范总则[S].
[2]科技运函[2004]14号.中国列车运行控制系统-CTCS2技术条件[S].
[3]唐涛,郜春海.ETCS系统分析及CTCS的研究[J].机车电传动,2004(11):1-3.
[4]徐啸明.列控车载设备[M].北京:中国铁道出版社,2007.
[5]张利芝.CTCS-2级列车运行控制系统[J].机车电传动,2010(6):43-47.
[6]杨军.论轨道电路基本原理[J].甘肃农业,2011(1):82,85.
[7]王鹏,李开成.轨道电路移频信号检测系统的软件设计[J].仪器仪表用户,2008(2):66-67.
[8]周文,和敬涵,毛志芳.TMS320VC33系统的硬件设计[J].微计算机信息,2005,21(23):74,81-82.
[9]曹广忠,邱建.高性能浮点DSP芯片TMS320VC33[J].国外电子元器件,2001(10):14-17.
基于单片机解码的无线开关设计 篇9
一、基于单片机解码的无线开关
(一) 发射机的设计。
编码芯片PT2262发出的编码信号由:地址码、数据码、同步码组成一个完整的码字, 地址码和数据码都用宽度不同的脉冲来表示, 两个窄脉冲表示“0”;两个宽脉冲表示“1”;一个窄脉冲和一个宽脉冲表示“F”也就是地址码的“悬空”。如图1:
传统的的发射接收模块都是成对的使用, 发射机经编码芯片PT2262发射出信号, 接收机接收信号通过解码芯片经PT2272解码, 而且编码芯片与解码芯片的地址管脚都需要设置成相同的地址状态 (也就是说, 编码芯片的地址管脚都悬空, 解码芯片的地址管脚也应该悬空, 依次类推) , 从而控制电路。这样做的好处是信号经地址码验证后才接受数据码, 可以使获得的地址码非常精确, 弊端是发射机与接收机最多只能接收6路电路, 控制电路少。
PT2262最多可有12位 (A0到A5, D0到D5) 三态地址管脚 (悬空、接高电平、接低电平) , 如果对他们任意的组合, 可以提供531441 (3^12) 个地址码和数据码, 所以用单片机替代PT2272进行解码, 可以避免解码芯片与编码芯片设置相同的地址管脚, 所以得到的控制电路在理论上可扩展至531441 (3^12) 路。
(二) 接收机的设计。
采用单片机直接对发射机发射的信号解码 (PT2262) , 发射机按键一次, 发射机发射一个24位的二进制数, 译码芯片的地址码和数据码都用宽度不同的脉冲来表示, 两个窄脉冲表示“0”;两个宽脉冲表示“1”;一个窄脉冲和一个宽脉冲表示“F”也就是地址码的“悬空”。单片机识别PT2262发射过来的数据并作出相应的控制行为。这里主要是识别同步码、宽脉冲和窄脉冲的脉冲宽度。单片机可以利用定时计数器进行计数的方式计算脉宽。输出的脉冲信号接入P3.2 (INT0) 口, 单片机先执行定时计数器T0的计数初始化, 其中, T0的门控信号GATE置1, 可以使P3.2口收到高电平时出发T0技术, 低电平时停止计数, 一次测量脉冲的宽度。
二、接收机与开关的整体设计
单片机解码后在相应的I/O口上输出高低电平信号, 这时只需将继电器与单片机连接上就可以实现无线遥控开关的设计, 但是如果单片机与继电器直接连接, 会对单片机有不正常的影响, 所以在单片机与继电器直接加上一个ULN2003芯片来驱动。
三、结语
利用单片机对PT2262进行解码, 增加了控制通道, 使控制方法更加灵活。同时, 利用单片机可以更容易的扩展外围电路。而且无线遥控器具有体积小, 不受空间限制, 布线简单等的特点, 可以广泛应用于遥控电灯, 遥控门铃, 遥控玩具, 遥控门锁等各种场合, 具有很高的社会价值和经济价值。
参考文献
[1].张毅刚.新编MCS—51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社, 2008
[2].杨栓科.模拟电子技术基础[M].北京:高等教育出版社, 2003
[3].张克农, 宁改娣.数字电子技术基础[M].北京:高等教育出版社, 2003
解码设计 篇10
关键词:视频编码,参考帧压缩,降低带宽,变长编码
0 引言
H.264标准是ITU-T的视频编码专家组(VCEG)和ISO/IEC的活动图像编码专家组(MPEG)的联合视频组开发的一个新的数字视频编码标准,它既是ITU-T的H.264, 又是ISO/IEC的MPEG-4的第10部份。通过该标准,在同等图像质量下的压缩效率比以前的标准提高了2倍以上,因此,H.264被普遍认为是最有影响力的行业标准。随着更多的携带式消费电子产品的流行,消费者希望能够在电子产品中有更好的视频质量,同时消耗更少的电力,尤其在使用电池的电子产品中。当今,低消费电力的电子产品的设计也成为大学研究和企业开发产品的热点问题。在H.264中,由于H.264标准采用了许多新的技术和算法,如帧内预测编码时有更多的宏块预测模式,帧间预测编码时有不同大小和形状的宏块分割,高精度的亚像素运动补偿,多帧预测等。其中包括H.264中为了进一步提高预测的精度,提供了可选的多帧预测功能。在帧间编码时,可选5个不同的参考帧,提供了更好的纠错性能,这样可以进一步改善视频图像质量。与此同时,参考帧读取时的内存带宽也随之上升。由于多帧参考,对宏块的读取具有更大的跳跃性,使读取进行得更加频繁,从而使带宽消耗随之上升。H.264在大幅提高其对视频的压缩率的同时,其编解码过程中的计算量和带宽也随之增加了。随着高清晰度视频的普及和流行,带宽问题也渐渐成为H.264编解码器中低电力设计中的瓶颈和关键问题。如在H.264解码端对高清晰度视频进行解码时,需要消耗每秒1.6GB的读写带宽,并且需要20M的内存缓存。
在相关的研究中,对于参考帧压缩的问题有一些常用的方法和算法。比较概括的总结来说,有三类比较常用的方法。第一种方法是数据重用方法。在运动估计和运动补偿的过程中,对相邻的两个宏块处理时,很多数据会被反复读取和重用。在这种情况下,算法设计基于其重用数据的规律,提高其已读入数据的重用,从而降低了多次重复读入相同数据时所产生的带宽。第二种方法是通过应用内存储存结构的优化降低读取带宽。这种方法主要对cache结构进行优化,从而使读取有效数据的效率提高,减少重复读取。第三种方法是直接对参考帧进行压缩处理。在存入内存前,对参考帧进行压缩处理,再将压缩后的数据存入内存。读出时,对被压缩的参考帧或宏块先进行解压缩处理,再进行处理。在带宽被降低的同时,内存量也将减少。
1 系统设计思路
本研究是基于对以上相关算法的研究的基础上,提出一种全新的可调式带宽压缩算法。图1显示了本算法的基本结构。通过此算法,首先希望能够达到实现高压缩率的目的。之前的算法一般情况下可以达到50%左右的压缩率(1-压缩后的宏块数据量/压缩前的原始宏块数据量),同时也会带来一些图像质量的损失。本算法希望能够实现更高的压缩率,从而达到降低系统电力或芯片设计时的管脚数进而降低系统成本的目的。其次,为了使本算法能够移植到各种不同系统环境中去,本算法创造性地提出了可调性的概念。例如,如果在系统本身电池电力剩不多的情况下,可以通过牺牲部分的图像质量,提高压缩率,降低电力消耗,仍然可以长时间使用此电子设备。第三,通常情况下,变长度编码比定长度编码来说有更高的压缩率,但问题是,变长度编码使规则的内存存储产生了困难,包括对内存进行读取时,如果内存存储是变长度的,那么对任意宏块的随时读取产生了困难,也产生了内存存储该如何进行优化的问题。另外,还包括,由于每帧图像变长度编码后,数据量不均,所以造成了在设计芯片的时候管脚仍将会以最大值来进行设计,这也事实上并没有能够达到降低成本的目的。第四,有损压缩的压缩率更强,但会产生错误传递,所以算法设计中必须考虑这个问题。
2 参考帧存储架构
本研究首先对内存存储方式进行优化。由于本算法使用变长度压缩编码,可以有两种内存存储方式。一种便是可以把所有宏块压缩在一起存储,但需要记录下每个宏块的大小,一种是保持各个宏块的原始地址不变,分散地存储。为了达到最佳的效果,本算法中将两种方法进行了优化处理。将原始的内存中一个逻辑存储库(每128×64像素,将其分为4个逻辑存储库)被分成8个组。每个组由8个相邻的小组形成。如图2所示。每个小组便是本算法压缩宏块的基本单位。这样的每个小组含有32个像素。对这32个像素进行变长压缩编码。对于将8个小组存成大组的内存配置中,可以将所有压缩后的小组存在一起。这样当然节省了内存资源,但必须记录下所有小组的压缩后的长度才能够保证在去读写时可以任意读取相应的宏块。所以同时,保持每个大组维持原始的内存映射不变,这样只要记录8个小组的长度,并且可以同时保持每个大组的任意快速读取。
3 参考帧压缩算法
3.1 参考帧的变长编码压缩
本算法中提出了全新的变长度编码算法。每32个像素作为一个小组是压缩的基本单元。这32像素可以有32×1,16×2,8×4等排列方式。对于选择压缩基本单元的标准,如果基本单元大一些,数据之间会存在更多的冗余性,从而有更大可能性提高压缩率。同时,当进行内存读取时,运动补偿所需要的部分可能只是其中的一部分。如果读取基本单元过大,则读取多余数据的可能性更大,从而浪费部分带宽。所以,在经过实验验证后,选取16×2作为压缩的基本单元。对于基本单元进行DPCM计算,变长压缩编码也是对DPCM的编码,因为DPCM编码比起原始编码,可以节省许多数据量。在基本单元基础上,16×2被继续分成8个小单元。在本算法中,设计了两种基本小单元。每2×2或4×2为一个基本小单元。同时,计算这个基本小单元的DPCM绝对值最大值。由这个DPCM绝对值最大值决定编码时此基本小单元所采取的变长编码表中的编码方式。因为设计的这个变长压缩编码表中,和之前变长编码表一致的是,随着被编码值的增加,编码长度变长。但由于不同压缩单元和压缩小单元的特点不一样(如包含许多细节和细节比较少),使用相同的编码表会使压缩率降低。所以在编码表中提供了多种模式,由每个压缩小单元的最大值决定此编码表使用的模式。具体的编码方法如图3所示。
例如,如果压缩小单元的DPCM绝对值最大值为0,即压缩小单元中全部数据相同,则依此A模式,只要记录模式值,不需要记录其他的数据值。如果压缩小单元为9~20之间,则期间的每个值都必须被记录,则相对来说,此压缩小单元编码长度会增加。变长编码表中有六种模式,分别为模式A,模式B,模式C,模式D,模式E,模式F。通过此方式,最好地去除了压缩小单元数据之间的依存度和冗余性,从而得到了比较理想的压缩率。同时,加进了有损压缩。有损压缩在提高压缩率的同时,也带来了图像质量的损失。但在很多极端情况(如在电量及其微小的电子产品中),这种方法是有效的。所以,得到了对不同数据,处理方式不同的算法,可以适应不同的系统环境,提高了其适应性。
3.2 可调参考帧压缩模式选择
本研究提出了可调性压缩带宽的控制部分。可调性的概念是在之前的算法中从来没有的概念。通过这个结构,可以继续利用变长压缩编码表中的自由性,选择更好地模式进行带宽压缩。变长压缩编码表也可以控制每帧图像的数据量使其达到一个比较均匀的状态,这对芯片设计中减少管脚的设计进而节省系统成本是非常有效的。在这其中,提出了8种模式。每个模式具体的压缩方法如表1所示。从0到7压缩率逐渐上升,同时带来图像质量的损失。模式0对应无损压缩。模式1对应表中E,F将进行有损压缩,其他A,B,C,D进行无损压缩。模式2对应D,E,F进行有损压缩,其他进行无损压缩。一直到模式7,以此类推。为了进一步提高压缩率,在模式5,模式6,模式7,模式8中还加入了对数据的量化。在选择模式时,有几种方法。第一种,是根据所需要的压缩率决定初始模式。在经过大量不同图像的验证中,对此算法能够达到的压缩率进行了统计,通过此数据确定初始模式。第二种,在决定初始模式后,对每个单元是否达到与其设置的带宽都进行验证。如果达到了,那么继续此初始模式。如果没有达到,则对初始模式进行修改,增加其压缩率,使其满足要求。第三种,对前一帧的数据量进行验证,看其是否符合设定的带宽目标,并且以此判断是否对模式进行调整。另外,控制部分不会频繁地改变模式,因为这样反而会降低其压缩效果。
4 实验结果
为了评价本设计的性能,在H.264参考软件JM.15.1中对所提出的算法进行了实现和测试。本测试对三个高清以上的码流进行了测试,包括一个720p码流 Cyclists和两个1080p码流Pedestrian和RushHour。为了更好地与之前的算法比较,本实验中也在同一环境下对其他算法进行了实现,与一个基于固定压缩率的算法(PRE),一个基于最大值和最小值的量化算法(MM),一个基于嵌入式再压缩结构(ERP)进行了比较。
4.1 新算法不同压缩模式测试结果
表2中显示了算法的效率性。
可以看到,设定不同的带宽压缩率时,算法可以通过调节自身的压缩模式和算法来满足系统的要求。算法可以在达到70%的压缩率情况下,只有最多1.5dB的图像质量损失,显示了算法的高效性。
4.2 与相关算法比较结果
表3中显示了本算法与之前相关算法的比较。在同样的测试环境下,相关的算法可以达到25%~50%的压缩率,但图像质量损失较为严重,比本算法的效率要低很多。
5 结束语
基于对视频压缩标准的研究,对解决降低系统电力消耗,提高系统的成本等问题提出了新的方法,并且进行了相关的实验验证。实验验证中基于最新视频标准H.264平台进行验证,并且算法本身可以应用于各类视频编解码系统中,具有良好的移植性。本研究的基本观点是对参考帧进行压缩处理,同时对内存存储方式进行优化。在参考帧压缩的过程中,一个新的变长度编码和压缩型的内存存储结构被提出。同时,一个对参考帧压缩模式选择的控制结构被提出,更好地提高了系统在不同系统环境下的选择性和适应性。
参考文献
[1]Liu Song,Dajiang Zhou,Xin Jin,et al.An adaptive bandwidth re-duction scheme for video coding[C]//Proc.IEEE InternationalSymposium on Circuits and Systems,2010.
[2] Budagavi M, Zhou M.Video coding using compressed reference frames[C]// Proc. IEEE Int. Conf. Acoust., Speech, Signal Process., 2008:1165-1168.
[3]Ivanov Y V,Moloney D.Reference frame compression using embed-ded reconstruction patterns for H.264/AVC decoder[C]//Proc.3rd Int Conf.Digital Telecommunications,2008:168-173.