程序切片技术

2024-09-12

程序切片技术(共7篇)

程序切片技术 篇1

1 计算机程序切片的分类

1.1 前向切片和后向切片

根据计算切片方向的不同, 可把程序切片分为前向程序切片和后向程序切片。前向程序切片是指所有受兴趣点变量的值影响的语句的集合;后向切片是指程序中所有能够影响兴趣点变量的值的语句的集合。这两类切片最后是不构成一个可执行程序的。

1.2 过程内切片和过程间切片

根据切片的范围, 可以分为过程内切片和过程间切片。过程内切片是指单个过程内影响兴趣点变量的值 (或受兴趣点变量的值影响) 的语句的集合, 不考虑过程调用的情况;过程间切片指在过程内切片的基础上, 考虑过程调用的情况。执行过程间切片时, 要分析实参和形参相对应的依赖关系, 要完成实参和形参之间依赖性的转换。

1.3 静态切片, 动态切片和条件切片

根据切片过程对程序某一次具体的输入的依赖程度, 可将程序切片分为静态切片和动态切片。静态切片是指不考虑程序运行时的输入, 完全利用静态分析方法得到切片, 也就是分析程序的源代码, 计算所有可能输入情况下的切片。静态切片考虑了程序中所有的执行路径, 包含了所有与兴趣点处变量相关的语句, 不管某些语句在程序实际的执行中是否被执行, 因而, 静态切片具有很大的冗余性, 工作量较大。

动态切片是指在特定输入下实际影响兴趣点变量值 (或受兴趣点变量值影响) 的所有语句的集合。动态切片只考虑程序在某个具体输入下, 实际执行的路径中, 和兴趣点变量相关的语句。因此, 动态切片的计算过程依赖于程序的具体输入, 因而, 每一次的计算工作量较小, 但得到的切片相对比较精确。

条件切片技术是一种介于静态切片技术与动态切片技术之间的切片技术。在进行条件切片时, 只有满足该切片条件的那些输入才会被分析。这个条件对应着程序的某个或某些初始状态。如果存在从满足切片条件的任一个初始状态出发都不可能被执行的语句, 那么把这些语句去除掉后, 就得到了在这个切片条件下的程序切片。

2 程序切片的准则

程序切片还要考虑切片准则。对于不同的切片准则, 相同的源代码得到的程序切片是不同的。基本上, 对每一类切片都有不同的切片准则。常见的切片准则有:

2.1 静态切片准则

如果要对一个程序P进行静态切片, 需要构造一个静态切片准则<V, p>。p是感兴趣点, 就是程序中的某条语句。V是p处定义或引用的变量, 可以是某一个变量, 也可以是几个变量的集合。程序P的静态后向切片就是程序中所有能够影响p处的V中的变量的语句的集合;静态前向切片就是程序中所有受p处的V中的变量影响的语句的集合。

2.2 动切片准则切片

如果要对一个程序进行动态切片, 需要构造一个动态切片准则<V, p, i>。动态切片准则是一个三元组, 其中p是感兴趣点, 就是程序中的某条语句。V是p处定义或引用的变量, 可以是某一个变量, 也可以是几个变量的集合。i是程序本次执行的具体输入。程序的动态后向切片是指在本次执行的语句中, 所有能够影响p处的V中的变量的语句的集合;程序的动态前向切片是指在本次执行的语句中, 所有受p处的V中的变量影响的语句的集合。

2.3 条件切片准则

如果要对一个程序进行条件切片, 需要构造一个条件切片准则<V, p, π>。条件切片准则是一个三元组, 其中p是感兴趣点, 就是程序中的某条语句。V是p处定义或引用的变量, 可以是某一个变量, 也可以是几个变量的集合。π是一个谓词, 是V中变量的关系的集合。构造一个程序P的条件切片, 当在一个满足π的初始状态执行时, 条件切片必须保持程序P (与V有关) 的投影含义。

2.4 迭代切片准则

迭代切片准则是一个三元组C=<V, p, n>, 其中p是感兴趣点, 就是程序中的某条语句。V是p处定义或引用的变量, 可以是某一个变量, 也可以是几个变量的集合。n是自然数。程序P的第n次 (静态) 迭代切片是由第n次执行到达p那些保持程序P的投影含义不变的语句组成。当n扩充到N (自然数集) 时就变成广义迭代切片准则。

2.5 多点切片准则

多点切片准则是一个二元组C= (V, N) , 其中N是程序P中节点的集合, V是变量的集合。当在N中任何一点执行一条语句时, 对于V中的所有变量而言, 切片和程序P具有同样的效果。

3 程序切片的算法

程序切片的算法很多, 有weiser提出的数据流方程的算法, Karl Ottenstein和Linda Ottenstein提出的基于程序依赖图的算法。Horwitz, Reps和Binkley扩展了程序依赖图的算法, 提出了系统依赖图的方法。Ernst提出了基于另一种图表示的Value dependence graph (VDG) 算法。另外还有无定切片算法, Ergeretti的基于信息流关系的算法, 杨洪的基于波动图的算法等。其中以基于依赖图的图形可达性算法应用最为广泛。该方法首先根据程序中的数据依赖和控制依赖关系将源程序转化为程序依赖图的表示形式, 然后利用两次图遍历算法, 得到该源程序的关于某一切片准则的程序切片。

4 程序切片的应用

程序切片技术在软件工程的活动中应用非常广泛。如程序分析、理解、测试、调试、度量以及维护过程中都可以应用程序切片技术。了解程序切片的作用, 是我们研究切片技术的基础。

4.1 程序调试

在程序调试过程中, 经常需要跟踪程序的执行过程, 以定位错误, 然后改正。然而对于大型程序来说, 程序每次执行的语句都很多。如果采用逐条语句跟踪的调试方法, 将会耗费大量的时间, 效果也不好。程序切片可以帮助程序员很容易的进行错误定位。通过程序切片技术, 可以收集到只和出错变量相关的语句, 忽略其他的语句, 调试时, 那些和出错变量不相关的语句就可以不考虑, 这样就加快了调试过程。

4.2 程序理解

对原有软件系统的维护和修改是一项非常繁琐的工作, 在开发过程中, 对原有系统的理解要占整个软件开发生命周期和软件费用的50%到70%。所谓程序理解就是通过系统的静态描述来理解程序的动态行为。不借助专门的程序理解工具, 无论是对经验丰富的维护人员还是一个新手来说, 程序理解的过程都是很困难的。程序切片作为一种程序理解的方法能够将用户所关心的变量从复杂的程序中挖掘出来。计算该变量的程序切片, 让用户更清晰地理解其它变量与该变量之间的联系, 在切片过程中, 还能收集程序的调用信息, 类, 结构等信息, 这样用户就能很方便地理解程序了。

4.3 回归测试

回归测试是指在对程序的某一模块进行了修改后, 为了确保对模块的修改达到目的并且没有引入新的错误, 需要对已经完成的测试重新进行, 即重新测试先前测试过的测试用列。但测试用列通常很多, 全部进行回归测试需要花费很多的人力和时间, 在很多情况下是不切实际的。

运用程序切片技术可以比较新旧版本程序的系统依赖图, 找出新旧版本程序的差别所在。这样, 就能找到针对那些不同点的测试用列, 进行测试, 减少了工作量。

4.4 测试数据生成

动态切片应用于软件测试数据自动生成, 可以有效地提高基于路径测试数据的生成效率, 主要的思想是通过比较动态切片结果与指定路径, 不断地调整输入, 直到与指定路径相符, 输入则为测试数据。应用动态切片来生成测试数据, 可以减少反复执行程序花费的时间, 并且根据动态切片可以消除调整的盲目性, 减少调整次数, 提高测试数据的生成效率。

4.5 逆向工程

逆向工程这个术语最初来自硬件, 后来发展到软件工程中。在软件工程中是指分析程序.力图在比源代码更高抽象层次上建立程序表示的过程。其中的主要工作就是如何对现存的软件系统进行理解, 包括对程序源代码的抽象, 对程序基本算法和设计方案的理解等。通过构造程序切片可以对源程序进行精简, 除去暂不关心的部分, 将源程序中分散的关键部分专门进行分析。

摘要:程序切片技术是一种分析和理解程序的技术, 在程序切片技术提出的30年来, 得到了很快的发展。本文主要介绍了程序切片的基本概念, 程序切片的种类、算法以及用途。

关键词:动态程序切片,算法:回归测试

参考文献

[1]杨洪, 徐宝文, PSS/Ada程序切片系统的设计与实现, 计算机研究与发展, 1997, 34 (3)

[2]朱平, 谭毅, 李必信等, 一种基于分层切片模型思想的源程序信息分析方案, 计算机工程, 2001, 27 (12)

[3]王伟, 陈平, 程序切片技术综述, 微电子学与计算机, 2002, 8

[4]王雪莲, 赵瑞莲, 李立健, 一种用于测试数据生成的动态程序切片算法, 计算机应用, 2005, 6 (6)

基于循环变量的静态程序切片分析 篇2

程序切片是一种分析和理解程序的技术, 是通过对程序中的兴趣点进行专门的分析和计算来达到理解程序的目的。静态程序切片不运行程序, 直接对程序源代码进行分析, 对于程序的静态切片的研究可以使切片得出的结果最大程度的符合源程序计算所得到的结果。

循环是程序的基本结构之一, 在复杂的程序中各种循环结构、循环嵌套加大了程序的复杂性;因此, 本文从循环变量入手, 对程序中的循环结构进行静态后向切片, 同时结合程序的静态分析技术[1]处理程序代码, 最终达到简化程序分析的目的。

2 静态程序切片研究中的基本概念

首先来介绍基于循环变量的静态程序切片中需要用到的一些基本概念。

2.1 循环变量:

其值在循环中不断被改变, 并随着值的改变最终使循环走向终止的变量称为循环变量。

2.2 程序的切片:

它有两种定义方式: (1) 是一个可执行程序, 通过从源程序中移去零条或多条语句来构造的; (2) 是由程序中语句和控制谓词组成的一个子集, 这些语句和控制谓词直接或间接影响在切片准则计算的变量的值, 这类切片可以不必构成可执行的程序[2]。

2.3 静态程序切片:

对于程序的某个变量, 静态切片计算出来的该变量的值与原来的程序在任意的输入下计算出来的值是相同的, 换句话说, 静态程序切片是通过分析程序的代码来获得相关结论的, 不包括人机交互;它考虑了程序的全部可能的执行路径。

与静态程序切片相对的是程序的动态切片, 动态程序切片只考虑对于某个具体的输入的时候程序执行的路径, 因此动态程序切片考虑的程序执行的某一种情况。

3 基于循环变量的静态程序切片研究

程序的分析技术已经被研究了很多年, 经历了若干种验证方法;其中比较知名的是路径敏感、路径不敏感, 以及流不敏感、跨过程等分析方法[3], 另外作者曾经基于循环的变量对程序进行静态分析, 查找程序中可能存在的、导致死循环的一些错误, 本文将使用程序静态切片的思想来继续研究更加复杂的程序循环问题。

下面分析一下计算程序切片的几种情况[4]。

3.1 静态程序切片:通过分析程序的源代码来获得程序的信息, 它考虑了程序的所有可能的执行路径, 与之相对的是动态程序切片。

3.2 动态程序切片:记录程序的多次运行结果, 考虑的是在特定的输入下程序的实际执行路径。

3.3 前向切片:前向切片集合了程序中全部能够影响变量在切片中的值的部分, 与其相对的是程序的后向切片。

3.4 后向切片:后向切片关心的是所有受切片准则的变量的值影响的程序部分。

本文研究的基于循环变量的程序静态切片是程序的静态、后向切片分析技术。下面我们对一些复杂的循环程序代码进行静态切片分析, 由此来解决程序中出现的循环、死循环的相关问题。 (图1)

下面我们基于代码中出现的循环变量i、j、k对程序进行静态后向切片分析, 切片所得代码图片如图2所示。

根据上面内容可以看出, i、j、k是该段代码的循环变量, 因此我们所关注的语句仅限于图2切片代码中的内容, 这里使用特殊符号@表示循环语句中的循环条件。

现在开始对切片代码进行分析。从图2中可以看出, 循环变量i的取值范围是0~2之间, 属于有限范围;变量k的范围是1~2-i, 由于i的范围是可以确定的, 因此k属有限范围内的循环变量;同理可知, 变量的循环范围是1~2*i+1, 属于有限次循环。综上所述, 该段代码不存在死循环错误问题。对上段代码进行编译、运行后结果如图3所示。

在本程序中, 我们分析的仅是出现在循环语句for中的循环变量值, 这大大简化了程序的分析工作。

结束语

随着人们对软件的正确性、安全性要求的提高, 越来越多的人开始关注程序分析技术和程序切片技术, 由此来减少工作量、提高分析的效率, 并获得更加准确的分析结果、减少误码率[5]。

本文提出了一种基于循环变量的程序静态切片方法, 该方法能够处理一些循环程序, 并检测出其中是否存在着死循环;同时由于此方法屏蔽了与循环次数无关的代码内容, 极大地提高检测效率。

当然, 需要解决的问题还有很多, 例如多层循环嵌套、循环变量在指针、数组等复杂数据类型中的应用等问题都会增加分析的复杂性。今后, 作者会继续致力于程序切片及静态分析的相关工作, 让高效率、高精度的分析技术给大家带来更多的便利。

参考文献

[1]张健.精确的程序静态分析[J].计算机学报, Sept.2008, Vol.31, No.9:1550-1552.

[2]李必信, 郑国梁, 王云峰.一种分析和理解程序的方法——程序切片[J].Mar.2000, Vol.37, No.3:284-289.

[3]刘磊.程序分析技术[M].北京:机械工业出版社, 2005:89-92.

[4]Law, R.C.H.面向对象的程序切片[Ph.D.Thesis], 1994.

浅谈病理教学切片制作技术 篇3

病理教学切片制作要求: (1) 取材范围大, 既有病变组织又有正常组织, 既有肿块组织又有包膜及周围组织; (2) 所取组织块较厚 (一般厚度为0.4cm) , 一个蜡块连续切片150~200片, 以供大班 (120~130人) 教学使用; (3) 要求典型病变组织; (4) 病理教学切片制作符合中华医学会切片制作要求。

1 材料和方法

1.1 材料

昆明医学院第二附属医院病理科提供医检肾脏组织, 由病理科配制混合固定液 (由95%乙醇8 000ml、38%甲醛1 000ml、丙酮500ml、乙酸500ml混合, 相当于80%乙醇、4%甲醛、5%丙酮、5%乙酸混合) 固定。甲醛渗透力强, 组织固定后硬化明显, 固定均匀很少收缩且具杀菌力, 但能溶解糖原、尿酸及胆固醇[1];乙醇能溶解脂肪、脂质及各种色素, 使组织变脆收缩, 能固定糖原、尿酸等结晶, 但乙醇不能固定核蛋白, 核染色不佳;丙酮有脱脂固定等作用;乙酸 (冰醋酸) 可进行酸度调节;把甲醛和乙醇混合用以固定组织, 且对组织有脱水作用, 能缩短制片时间。

1.2 方法

取材制片分教学组和医检组。

(1) 取材:教学组按病理教学切片要求, 取材范围为2cm×1cm, 组织块厚0.4cm, 病变典型;医检组常规取材范围为1cm×1cm, 组织块厚0.2cm。

(2) 切片制作 (见表1) :教学组 (全部手工操作) 固定、冲洗、脱水、透明、浸蜡、包埋、切片、摊片、贴片;医检组常规制片。

(3) 病理教学切片制作与常规医检切片制作区别见表1。

2 结果

病理教学切片与常规医检切片均符合中华医学会切片制作要求。教学组切片见图1~4, 图1、图2为肾盂粘膜上皮增生磷化, 粘膜下肾间质胶原纤维增生淋巴细胞浸润;图3、图4为部分肾小球纤维化玻璃样变性, 肾间质纤维化, 淋巴细胞浸润。医检组切片见图5~8, 图5、图6为肾间质片块状疤痕形成淋巴细胞浸润;图7、图8为部分肾小球纤维化玻璃样变, 肾间质胶原纤维增生, 淋巴细胞浸润。

3 讨论

病理学是研究人类疾病发病机制、病理变化和转归的学科。它既是基础医学学科, 又是基础医学与临床医学的桥梁学科, 还是临床诊断学科[2]。病理学教学分为理论教学和实验教学, 实验教学占病理学总学时的1/3~1/2, 且以病理切片教学为主, 可见其重要性。

病理切片制作要求: (1) 病理切片要求在观察正常组织结构、辨认组织器官的基础上观察病变[3]。因此, 切片制作要求取材范围大, 既有病变组织又有正常组织。肿瘤组织要求辨别组织来源, 要求取材既有肿块组织又有包膜及周围组织, 且病变典型, 可通过病理切片观察作出初步病理诊断。 (2) 根据目前医学院校各专业实际, 特别是临床医学专业编班及课程安排, 病理教学切片制作要求同一种切片必须保证130片, 加之损坏10%, 共需要150片切片。 (3) 由于组织块大而厚, 故相应的固定、冲洗、脱水、透明、浸蜡等制片时间应有所延长。 (4) 病理教学切片制作必须符合中华医学会规范化要求:组织完整;切片厚3~5cm, 厚薄均匀;切片无刀痕、裂隙;切片平坦, 无褶皱、折叠;切片无污染物、杂质;透明度好, 色彩鲜艳;对比度清晰;切片无气泡、脱胶;贴片规范, 标签端正, 贴于左侧;编号清晰[4]。

摘要:目的 以同一慢性肾盂肾炎组织进行病理教学切片取材、切片制作和常规医检取材, 并进行切片制作比较, 以探讨病理教学切片取材、切片制作技术的可行性和可靠性。方法 昆明医学院第二附属医院病理科提供医检肾脏组织, 分2组取材进行切片制作: (1) 教学组:病理教学切片要求每个蜡块连续切片150~200片;取材范围为2cm×1cm, 组织块厚0.4cm;切片制作全部手工操作, 要求组织块固定、冲洗、脱水、透明、浸蜡、切片均与常规医检制片不同。 (2) 医检组:主要用于病理诊断, 取材范围为1cm×1cm, 组织块厚0.2cm;切片制作快而好, 可用全自动脱水机固定、脱水、浸蜡;切片数量HE染色3~5片, 特殊染色和免疫组化10~20片。结果 病理教学切片与常规医检切片效果均符合中华医学会切片制作要求。结论 病理教学切片制作技术可行、可靠。

关键词:病理,教学切片,制作技术

参考文献

[1]李玉林.病理学[M].第7版.北京:人民卫生出版社, 2008.

[2]李萍, 雷久士.病理学实习指导[M].北京:科学出版社, 2007.

[3]张乃鑫.中华医学会-临床技术操作规范-病理学分册[M].北京:人民军医出版社, 2004.

快速冷冻切片技术的经验总结 篇4

1取材与包埋

标本要新鲜, 忌浸入乙醇、甲醛, 避免过多的水分, 防止组织脱水、冰晶形成和组织变形;组织取材, 大小合适, 以1.5cm×1.5cm, 厚2mm为宜, 不能>3mm;取材要平整规则, 避开坏死出血区, 尽量剔除脂肪、毛发、硬骨等;包埋在低温 (-18~-30℃) 条件下, 组织块一定要放在冷冻头中央, 周围用胶水封住, 冷却待切。

2冷冻

2.1 冷冻温度

不同组织标本的冷冻温度如下:甲状腺-18~-20℃, 含脂肪乳腺-22~-30℃, 脂肪组织-30℃以下, 脑-16~-18℃, 肝、脾、肾、淋巴结-18℃, 皮肤、肌肉-22~-24℃, 卵巢、胆囊、胃壁-20~-22℃。

2.2 冷冻时间

一般3~4min, 而甲状腺、淋巴结、肝、肾时间不宜过长, 2min左右为宜;对于子宫肌瘤、纤维组织的冷冻时间也不宜过长, 否则会使组织变硬;对于脂肪组织冷冻时间则要长些。

3切片与固定

3.1 影响因素

影响切片质量的因素有很多, 简单归结为: (1) 切片不全或不能切片; (2) 切片皱缩或卷曲; (3) 切片脱落; (4) “结晶水”现象; (5) 组织块脱落。

3.2 固定

固定时选择混合性固定液 (95%乙醇85ml, 甲醛10ml, 冰醋酸5ml) , 组织贴于片上立即固定。在切片过程中, 较为满意的切片先切, 再去切更满意的, 直到选择好为止。

4染色与封片

染色方法为HE染色法, 染色时不要因客观因素而缩短染色时间, 水洗蓝化时间一定要到位, 肉眼看见组织变蓝为准, 染色液及时更换, 保证二甲苯浓度及乙醇梯度, 染出的切片不含有水珠, 封片后切片要透明清晰。

程序切片技术 篇5

1取材

取材的好坏是决定石蜡组织切片质量的基石。 为避免鸽发生细胞自溶及组织腐败现象,迅速处死鸽后即取材。使用新的器械,极力避免不规范的操作, 并做到无菌操作。取材部位应能代表整个器官的结构,按照试验要求取材所需的9种组织[3]。所取组织应完整,表面保持干净,不能因操作原因使病料破裂。 对于所取组织块大小,一般要求为1. 0 cm × 1. 0 cm × 0. 5 cm,避免过厚或太薄,以利于固定液均匀地渗透到组织内部。因试验需要有时还要做荧光定量PCR试验,所以对同一组织器官要取材双份,对于不同组织需要酌情取材。尤其是对一些小的组织块如脾脏,由于其本身就很小,如果再因为操作不当使其破损,很可能就无法制作脾脏的切片; 如果无法同时充分满足二者需要时,应该以病理切片为先,优先满足切片的需要。

2固定

良好的组织固定是制备优质病理组织切片的关键。为尽可能地保持活体时的结构,取材后应立即投入新配制的10% 中性福尔马林溶液中进行固定。福尔马林的体积应至少是组织块体积的10倍,一般为15 ~ 20倍。如果福尔马林用量过少,就会固定不充分,在后续的切片过程中出现组织卷曲等现象,而如果用量过多,则又是浪费试剂。一般固定时间为24 h,期间轻摇固定器内的组织可防粘连利固定。但由于气温及组织块大小等诸方面的原因,具体固定时间可按实际情况增减。

3修整

由于所取9种组织的形状都不规则,且切片所需的组织块较小,因此需要对所取组织进行修整。修整过程始终保持切片刀的清洁,将组织块边缘的破损处除去,修整时留蜡边3 mm。修整后的组织块应形状规整、大小合适,若有病变部位,则组织块应是病变部和健康部的交界处。选择锋利的切片刀进行修整,以避免对组织块挤压而造成变形。

4脱水

脱水的干净 与否是影 响切片质 量的关键 步骤[4]。由于石蜡是非水溶性物质,不能与水融合,所以浸蜡前必须用脱水剂除去固定后的组织内水分。 试验采用梯度浓度的乙醇脱水,将固定好的组织块依次置于浓度为70% 、85% 、90% 和100% 的乙醇中,在前三种浓度乙醇中各放置2 h,100% 乙醇中放置1 h, 其中前两个浓度的时间可酌情增加,以使脱水更充分。具体的脱水时间取决于组织块的大小和试验温度等,确保脱水彻底,否则将严重影响后续的透明、石蜡的渗入,致使难以切片。

5透明

由于乙醇与石蜡不相溶,脱水组织块必须使用 “石蜡诱导剂”过渡后才能进行石蜡包埋。避免使用含有水分的二甲苯,为避免组织收缩和变脆,按照经验,组织在二甲苯中透明的时间不宜过长,小组织以20 min为宜,大块组织适当延长。在操作中,为防止出现透明不彻底的现象,应控制组织在二甲苯中的透明时间,肝脏、脾脏约65 min,肾脏的时间延长20 min左右,以获得良好效果。这与参考文献[5]报道的改良方法一致。

6浸蜡

尽量减少已透明组织块表面的二甲苯,将其置入在温箱内熔化并过滤的58 ~ 60 ℃ 石蜡内,依次浸入两个蜡杯,每个蜡杯1 h,使之逐步排出组织中的透明剂,让石蜡易于渗入,使组织内部硬度均匀。选用四个蜡杯依次浸蜡,这样就可充分排出组织块中的透明剂。此时,每个蜡杯的时间可缩短为0. 5 h。为减少二甲苯对人体的毒性[6],透明和浸蜡均在通风橱中进行。

7包埋

浸蜡和包埋要一次完成,防止操作过程中出现温差。将过滤好的新蜡倾入内面平滑、清洁的包埋器中,包埋的温度不能太高,使用的镊子温度亦不宜过高,以免烫伤组织。迅速将浸蜡的组织块置入浸蜡里面,将组织块的切面朝下,组织块与蜡之间不能留空隙,组织块力求摆正摆平,尽量与包埋器底板接触,最后放上标志。待包埋蜡凝固后,撤去金属包埋框,按组织块切割石蜡,并将其修整平整以利切片。

8切片、展片与烘片

切片刀必须锋利,固定切片刀及蜡块,使刀刃和蜡块表面呈5°角,切片厚度为4 ~ 7 μm。为避免切片呈现横向的波纹,切片时切片机的轮盘转动要均匀, 尤其是在切片刀刀刃经过蜡块时。由于笔者制备切片时是在夏季,选在阴凉处及早晚气温较低时切片, 或切片前将蜡块置入普通冰箱中或冰块上面,选择浸蜡相对较好的组织表层切片,切片过程根据实际情况随时用冰块冷却蜡块避免蜡块变软。采用温水漂浮法展片,使用的水温保持在45 ℃,避免水温过高产生气泡,展平的石蜡切片要及时放入40 ℃ 恒温烤箱内烘片,一般需要12 ~ 24 h,烘干备用。

9脱蜡与染色

切片染色对比清晰是观察和诊断的关键步骤,首先要精确配制染色液的浓度,酸碱度适中,不能出现沉淀; 染色过程中避免阳光照射,分清染色组织位于载玻片的哪一面。其次检查时间要短,避免组织表面的液体挥发; 最后使用低倍镜观察染色的细胞,避免组织上的液体接触高倍镜而污染镜头。先将干燥切片以20°倾角斜放入染缸中进行二甲苯脱蜡,共脱蜡两次,每次5 min; 依次放入100% 、95% 、90% 、80% 和70% 浓度的乙醇中各2 min,纯化水洗2 ~ 5 min; 苏木精染色10 ~ 20 min; 普通水洗1 min; 盐酸乙醇 ( 70% 乙醇100 m L + 盐酸1 m L) 分色数秒 ~ 30 s,分色到切片为带粉红色后立即取出; 自来水冲洗数小时; 镜检切片呈清朗的蓝色,细胞核非常明显。染色时间根据环境温度和染料配置时间略作调整。

10封固

先将盖玻片一侧放置在滴有适量中性树胶的组织切片上,随后徐徐向前盖下并将空气完全排除,避免水蒸气进入。

程序切片技术 篇6

关键词:高阶累计量,干扰,对角切片,能量检测

0 引言

由于GNSS系统导航信号较为微弱, 即使微弱的干扰也有可能对GNSS接收机的精度和稳定性造成影响, 因此有必要对卫星导航频段内的干扰信号进行检测, 确定是否有干扰信号对卫星导航系统造成影响, 排除干扰对卫星导航系统的影响。

卫星导航系统的干扰检测由于不知道信号的类型、相位和幅度等特征, 检测起来难度相对较高。能量检测[1,2,3]是最常见的频谱感知方法, 无需知道信号先验知识, 计算一段时间内接收到的信号能量并与事先设置的门限值进行比较, 从而判断有无信号存在; 计算复杂度低, 实现也相对简单, 因此比较适于引入到缺乏先验知识的干扰检测[4]当中。然而这种检测方法弱点是受未知噪声影响严重, 将直接导致检测性能下降, 甚至检测结果不可信。高阶统计量方法因其对多种噪声都有很好的抑制作用逐渐成为信号处理的新热点, 是近年来发展较快的现代信号处理方法之一[5,6], Nikias[7]最早提出可以利用信号高阶累积量进行信号检测。由于高斯过程的三阶及以上累积量为零[8], 使得高阶累积量在高斯色噪声处理中具有先天的优势, 因此基于高阶累积量的方法在处理受高斯噪声污染的过程时, 能够极大地提高干噪比。

对此提出了基于高阶累积量对角切片的干扰信号能量检测算法, 并与时域及频域的能量检测算法进行了对比, 采用了递推算法获得高阶累积量对角切片, 减小了计算量。通过仿真验证了算法的有效性。

1 能量检测

信号的能量检测法是一种有效的信号检测方法, 早在1967年H. Urkowitz研究了未知确定信号的能量检测算法[9]。所谓能量检测法是指计算信号在特定时间内的能量, 与预先设定的门限值进行比较, 做出判决, 获得检测结果。

1. 1 时域能量检测

能量检测器模型如图1所示, 由带通滤波器、数模转换器件、平方律器件和比较判决器组成。为了有效测量接收信号的能量, 将接收信号x ( t) 先经带通滤波器滤波, 再经过一个数模转换器, 把模拟信号离散化, 然后进行平方求和, 最后经过判决器与判决门限λ比较做出判决。

图1中, Ns与检测时间有关, Ns越大, 能量检测精度越高, 但检测时间也越长。判决门限为cσ2, c为常数因子, σ2为接收输入端的噪声功率。

经过采样后, 信号检测面临的是这样一个假设检验的问题, 即

若噪声和干扰信号为高斯分布的平稳随机过程, 则要处理的信号模型为高斯噪声背景下高斯信号的最佳检测问题。将接收信号x ( t) 离散表示为x1, x2, …, xn, 根据奈曼—皮尔逊准则在虚警概率小于某一事先给定值的情况下, 使检测概率最大, 可以推导出在这种情况下的最佳检测器为:

这种检测器称为能量检测器, 把输入的n个样本值平方之后再求平均, 然后与某一阈值比较。这个系统的增益为, T为积分时间为噪声等效相关半径。从理论上说, 积分时间越长, 系统的时间增益就越大, 但增益的提高并不是没有限制的, 因为当观测时间太长时, 噪声的平稳性就无法保证了, 在应用中要根据情况决定积分时间。

1. 2 频域能量检测

能量检测算法也可在频域上实现, 具体实现与谱分析仪类似, 如图2所示。

FFT运算后, 可以在若干频点上进行平均, 以获得系统感兴趣的频率范围内的干扰功率P (N s) , 频域的能量检测算法常应用于检测具体的干扰频点位置。时域和频域上的计算是完全等效的。

1. 3 性能仿真

下面对时域和频域能量检测算法的性能进行仿真, 取常见的BPSK、ASK、MSK、单频信号和线性调频信号作为常见的干扰信号类型进行对比仿真, 仿真结果如图3和图4所示。

图3为不同调制方式信号的时域能量检测算法, 图4为不同调制方式信号的频域能量检测算法, 采样点数都是1 000个数据点、虚警概率都是0. 001条件下的检测概率随信噪比变化的曲线。从图3和图4中可以看出: 时域能量检测算法和频域能量检测算法的检测性能大体相同, 并且能量检测算法的检测性能和信号的调制方式基本无关; 但是基于时域的干扰检测只能够判定一个频段中是否存在干扰, 并不能准确地判定具体干扰频点位置, 而频域上的能量检测可以在检测干扰的同时判断出干扰频段的确切位置。缺点是外界未知的干扰和噪声非常敏感, 即使自适应的设置检测门限, 任何带内干扰都有可能造成检测结果的偏差, 并且对微弱信号的检测性能较差。

2 三阶对角切片累积量检测

由于高斯噪声的三阶及三阶以上的累积量为零, 所以高阶累积量对高斯过程不敏感, 能有效地抑制高斯噪声, 可从高斯过程中检测出非高斯信号。因此将高阶统计量应用到卫星导航干扰检测中可获得好的性能。

2. 1 高阶累积量定义

k阶平稳过程x ( t) 的k阶累积量定义为:

类似地, x = [x1, x2, …, x k]T的k阶累积量用累积量生成函数ψ ( ω1, ω2, …, ωn) 定义为:

通常把最常见的k阶矩和k阶累积量分别记为:

现在考虑随机过程的高阶矩和高阶累积量, 设{x ( n) } 为零均值的k阶平稳过程, 则该过程的k阶矩mkx ( τ1, …, τk -1) 定义为:

而k阶累积量ckx ( τ1, …, τk -1) 定义为:

比较上式可知, 平稳随机过程 {x ( n) } 的k阶矩和k阶累积量实质就是取x1= x ( n) , x2= x ( n +τ1) , … , xk= x ( n + τk -1) 之后的随机向量的k阶矩和k阶累积量。由于 {x ( n) } 是k阶平稳的, 故其k阶矩和k阶累积量均只有k - 1个独立的变元。它们仅仅是滞后τ1, …, τk -1的函数, 而与时间n无关。

2. 2 递推对角切片的三阶累积量

对于零均值的平稳随机过程, 其三阶累积量可由M-C公式直接得到。对于零均值的局部平稳随机过程x ( n) , 其二阶累积量为:

三阶累积量为:

三阶累积量对角切片为:

在计算高阶累积量时使用递推的方法, 可以结合更多数据进行计算而不会加大计算量, 并节省了存储空间, 便于实时处理数据。

二阶累积量递推估计公式为:

三阶累积量递推估计公式为:

理论上高斯噪声的高阶累积量为零, 因此可以使用高阶累积量检测高斯噪声背景下的非高斯信号, 但由于需要足够的数据而导致计算量庞大而无法实时处理。高阶累积量对角切片包含了干扰概率分布的非高斯性信息, 而高斯噪声的对角切片为零, 因此仅计算对角切片, 在抑制高斯噪声的同时可极大地减小运算量。采用递推高阶累积量对角切片在实时处理数据时可以将更多数据结合起来进行计算, 使计算结果更加精确, 逼近其统计特性。

对干扰数据进行检测, 得到三阶累积量对角切片C3x ( m) , 其模平方和的平均为:

为检验统计量, L为采样点最大延迟, 将检验统计量与门限比较得出判决结果, 检测模型如图5所示。

2. 3 性能仿真

下面仿真验证本文提出算法的检测性能, 同样取上面几种信号进行对比仿真, 仿真结果如图6所示。

图6为不同调制方式信号的递推三阶对角切片能量检测算法, 在采样点数1 000个数据点、采样点最大延迟为100、虚警概率都是0. 001条件下的检测概率随干噪比变化的曲线。从图中可以看出, 该算法对干扰的类型不敏感, 对不同的干扰类型均具有较好的检测概率。

3 性能比较

下面分别仿真在高斯白噪声信道下基于递推对角切片的能量检测算法的性能。信噪比从 - 15 d B变化到5 d B, 采用零中频的线性调频信号作为干扰信号, 带宽为20 MHz, 采样频率46 MHz, 与时域及频域能量检测算法进行对比, 蒙特卡洛仿真试验的次数取1 000次。

时域、频域和三阶对角切片累积量算法在不同干噪比下的检测性能曲线如图7所示。从图7中可以看出, 时域和频域能量检测算法性能近似, 在0. 001的虚警概率下, 干噪比为 - 2 d B时能达到100% 检测概率, 而基于递推的三阶对角切片的累积量算法在 - 5 d B时就能达到100% 检测概率, 说明本文算法有更好的微弱信号检测性能。

4 结束语

在高斯白噪声的环境下, 利用三阶累积量切片对高斯噪声的自然盲性和对高斯色噪声的良好抑制性能, 给出了一种递推的对角切片的高阶累积量的能量检测算法, 在高斯背景噪声下能有效地检测到各种微弱的干扰, 相比时域和频域的能量检测算法, 具有抗噪性能好和检测门限低等特点, 具有良好的工程应用前景。?

参考文献

[1]KOSTYLEVV.Energy Detection of a Signal with Random Amplitude[J].IEEE Int.Conf.Commun., 2002, 3 (4) :1 606-1 610.

[2]WU J B, LUO T, YUE G X.An Energy Detection Algorithm Based on Double-Threshold in Cognitive Radio Systems[C]∥2009 1stInternational Conference.Information Science and Engineering.Nanjing, CN:IEEE Press, 2009:493-496.

[3]ANDREA MARIANI, ANDREA GIORGETTI, MARCO CHIANI.Effects of Noise Power Estimation on Energy Detection for Cognitive Radio Applications[J].IEEE Transactions on Wireless Communications, 2011, 12 (12) :3 410-3 420.

[4]薛峰, 张军.GPS接收机自主干扰检测方法研究[J].无线电工程, 2009, 39 (7) :14-16.

[5]HINICH M J.Detecting a Transient Signal by Bispectral Analysis Acoustics, Speech, and Signal Processing[J].IEEE Transactions on, 1990, 38 (7) :1 277-1 283.

[6]HINICHM J, WILSON G R.Detection of Non-Gaussian Signals in Non-Gaussian Noise Using the Bispectrum[J].IEEE Transactions on, 1990, 38 (7) :1 126-1 131.

[7]CHRYSOSTOMOS L N, JERRY M.Tutorial on Higerorder Statistics (spectra) in Signal Processing and System Theory[J].Theoretical Results and Some Applications.IEEE Proc., 1991, 3 (79) :278-305.

[8]张贤达.时间序列分析——高阶统计量方法[J].北京:清华大学出版社, 1996.

程序切片技术 篇7

IPTV即网络电视, 是一种利用宽带有线电视网, 集互联网、多媒体、通讯等多种技术于一体, 向家庭用户提供包括数字电视在内的多种交互式服务的崭新技术。IPTV是以机顶盒和电视机作为用户终端, 通过运营商互联网宽带接入, 为用户提供一整套基于IP协议的高质量的包括视频点播, 直播电视, 回看等视频服务以及其它增值服务。随着IPTV用户的日益增长, 站点的数量继续在增加, 可供访问的资源日趋丰富, 特别是文本、图像、音乐、广告、流媒体、动画等大量涌现, 业务量成倍递增, 造成了对网络带宽的大量需求, 为了避免网络拥塞, 服务器过载, 网络应用等待时间过长等诸多问题, 提高网络内容传送性能, 满足用户对网络系统性能越来越高的要求, 本文提出一种基于切片技术的媒体内容存储机制。

二、系统架构介绍

整个系统基于三层分布式体系架构 (如图1示) , 分为中心层 (CMS) , 归属层 (HMS) 和边缘层 (EMS) , 在该体系架构中, 最上层为中心层也称中心节点, 中心节点提供整个系统的内容服务, 通过这个节点实现对内容的智能管理与调度, 可以根据用户的需求, 将不同的服务, 在不同的时间, 推送到用户指定的第二层和第三层上, 并能区分各种业务流, 将服务复制转发到不同的位置, 对内容进行集中管理, 实时获得完备的内容分布、使用信息, 实现内容发布、审核、分发、删除等流程。第二层为归属节点, 归属节点主要为下一级边缘节点服务, 包括提供内容.归属节点也可以向用户直接提供业务, 作为边缘节点的业务负荷分担节点和备份节点。第三层为边缘节点。边缘节点直接为用户提供媒体流播放服务。

中心节点位于宽带网络的核心层, 整个系统只有一个中心节点, 完成对整个系统的媒体、用户和各种网元的管理。归属节点可以有多个, 分别分布式位于网络的汇聚层的不同节点上。每个归属节点可以管辖多个边缘节点, 每个边缘节点分布式位于网络的接入层, 距离用户最近且直接为用户提供流媒体服务。

媒体机站 (MS) 是整个系统中最关键的部件之一。它主要完成两个功能:存储服务和流媒体服务。一个媒体基站系统有两个核心组件:媒体控制器和媒体引擎。媒体控制器调度媒体引擎为用户提供媒体流服务。

在媒体引擎中存放视频点播和电视回看的节目数据, 同时, 媒体引擎也是流媒体服务器, 负责将节目数据流发送到客户端。媒体引擎有千兆以太网和快速以太网网络接口, 通过千兆以太网网络接口来提供高带宽的流媒体服务, 通过快速以太网网络接口来传输内容数据和控制信息。一个媒体基站带有多个媒体引擎, 具体的配置决定于所覆盖的用户数量和所存节目数据的多少。

所有客户端最初的流媒体请求将被发送给媒体控制器, 媒体控制器处理机顶盒的流媒体服务请求, 控制媒体引擎来为用户提供流服务。媒体控制器同时负责调度数据在媒体引擎中的分布式存储、均衡负载和媒体基站内部的媒体数据的复制, 提供媒体文件在一定程度上的冗余保护.媒体基站将从控制层中获取用户信息、内容管理信息、计费的相关信息和电子节目单相关的信息等。媒体基站也可以从其他的基站中拷贝或获取节目数据, 这些节目数据存储于所有的基站和数据中心中。

三、切片技术

内容存储中最关键的技术就是内容切片技术。切片技术的基本原理是将体积巨大的视频文件切分成一个个固定大小的视频切片, 然后以切片为基础进行存储、分发和服务, 采用视频切片技术, 特别适合对直播节目的存储处理, 且处理特别灵活。

3.1 视频文件的切片

在VOD系统中, 用户对节目的访问有很强的倾向性, 这种倾向性在文件之间表现在二八规则,

在文件内部, 研究表明, 用户对不同节目的访问速率相差很大, 其分布规律适合用Zipf分布来描述。在同一流媒体文件内部, 不同部分的流行度也不同的研究表明, 不同用户对同一节目不同部分的访问呈现双峰特性, 大约只有55%的用户能够完全播放完一个文件, 其余的大部分用户播放不到文件的前5%便退出了。

图2中给出的不同热度的三个节目以分钟为单位的文件分块访问频率的变化规律[1], 横轴为按前后顺序排列的不同分块的ID号, 纵轴为文件分块的访问频率。

从图中曲线可以看出, 分块访问速率呈现下降趋势。在文件的开始部分, 分块访问频率下降非常剧烈, 在其它部分下降要平缓的多。

根据这个规律, 可以将视频文件分成很多小片段, 来分别处理。如果分成的片段太长, 不能很好的利用出图2所示曲线的规律, 过多的占用存储空间, 不能很好的达到灵活处理大文件的作用;如果分成的片段太短, 处理大量的小片段就需要耗费过多的系统资源, 造成浪费。根据系统一直以来的大量的试验测试数据及调整, 把视频文件分成四分钟大小的片断能够达到很好的效果。

3.2 切片技术的实现

一个视频文件首先要进行视频编码, 节目被数字压缩编码后, 被分片封装成符合系统要求的网络报文, 送给媒体机站和机顶盒系统。位于中心节点的编码系统, 对节目编码后, 对节目进行语法分析并切割成片段, 将切割后的片段打成RTP包, 对包进行数据加密后, 将媒体流以组播或单播的方式播放出去, 并存储在系统各层媒体基站中。

切片实现的总体流程为:首先对编码后的媒体流进行预分析, 判断媒体流的系统层类型及视频类型;然后根据模块分析完成视频文件的切片。

具体分析方法是取出媒体流中的相关字节并根据标准ISO/IEC 13818-1来确定其类型。若在媒体流中连续找到三个0x000001BA, 则为PS流;若在媒体流中每隔188字节存在0x47, 则为TS流;分析出具体的数据流类型后, 再进行不同类型模块的分析, 具体的模块分析流程如图3所示:

经过模块分析, 各分析模块根据媒体流中各包头信息判断出该包是音频流还是视频流。若为视频流, 则找到帧尾, 取得帧的类型, 位置等相关信息, 然后判断已经分析的文件长度是否有达四分钟长度, 有则保存到一个新文件里, 没有则保存到同一个文件里, 最后整个视频流被分割成四分钟大小的片段。

3.3 切片技术的优势

将视频切片技术应用在IPTV中有如下的优势:

1. 可以为运营商提供丰富的增值业务

直播服务是一个连续不断, 没有头尾的超巨型文件, 这对于传统的基于文件拷贝技术来说是一个巨大的挑战, 而视频切片技术可以将文件进行切片, 成为易于处理的小片断, 这种视频文件的处理方式使得时移电视成为可能。

2. 优异的负载均衡能力

一个视频文件被切成片后可以存储在多个服务器上, 当大量的用户同时点播此节目时, 可以由多个服务器同时提供服务, 这样可以避免单个服务器的负载过重, 从根本上杜绝服务器负载不均匀的问题。

3. 基于切片的部分存储机制, 提高响应速度

应用切片技术后, 可以将热门节目尽量多的存储在系统中, 冷门节目只存储部分内容, 既提高了系统的响应速度, 又节省了存储空间。

4. 多点同时分发, 提高服务质量

视频切片技术可以支持多点同时分发, 即同一个电影的不同片断可以从不同的节点同时分发。将同一部影片的切片放在不同的服务器上, 当用户点播这部电影时, 可以由多个服务器共同提供服务, 提高了系统的响应速度及服务质量。

四、基于切片技术的媒体内容的存储策略

应用视频切片技术后, 将节省媒体内容的存储空间。在系统中, 将所有的媒体内容都存放于中心层中.然后按照一定的策略把内容推送并存储到归属层和边缘层中.为了保证系统的响应速度, 同时节省存储空间, 一般将节目按照热门程度分三级.级别最高的热门节目会在三层中进行100%的推送, 从而保证系统能够快速响应用户的请求;中级的节目根据需要可以将全部的内容存储在中心层和归属层中, 第一片内容存储到边缘层中;级别最低的冷片, 因为看的人少, 或者很长时间没有人看, 为了节省空间, 可以在中心层里存储其全部内容, 在归属层中只存储节目的第一个片段, 而在边缘层中不存储。用户在点播节目的时候, 用户的流请求被送到边缘层, 边缘层将做出相应的行为, 如果本层中有节目的全部内容, 边缘层将直接为拥护提供服务, 如果本层中只有节目的开始部分, 边缘层会一边为用户提供服务一边从上层服务器上获取节目的剩余部分.如图4:

为了实现快速, 高效的内容复制与传输, 实现负载均衡, 所有媒体内容通过TVloader上载到系统, 经内容引擎编码后, 都被分割成易于管理的相同大小的小片段, 媒体内容按片段智能地存储在媒体引擎中.每个节目片段在媒体基站中至少有两个备份, 当一个媒体引擎出现故障时, 保存了相同片段的其他ME能够不中断地提供服务.媒体位置寄存器 (MLR) 保存所有片段的位置信息.所有的媒体内容的推送, 复制和删除操作都是有媒体位置寄存器控制完成的。

这种智能的内容存储机制, 使得服务提供商能够在边缘层上存储节目的起始片断, 并在开始观看节目的时候从上层基站传输剩余的片段.这样, 一方面缩短了应答时延.同时也减少了对边缘层的存储空间需求.视频切片技术的应用, 还特别适合于IPTV业务的需求。电视直播服务中, 信息是持续不断的, 因此是一个没有结尾的超巨型“视频文件”, 这对传统的文件拷贝技术是一个巨大挑战, 而视频切片技术通过将信息进行切片, 很容处理这种特殊的视频文件, 以这种视频切片进行处理, 可以使时移电视成为可能。

五、结束语

基于分段的存储策略能够确保在普通存储硬件设备中实现稳定地媒体存储, 节省存储空间, 更好地实现负载均衡, 提高系统服务的质量.随着现代信息技术的不断发展, 网络服务对带宽、存储空间及响应速度等的要求也越来越高, 这种独特的基于切片的存储机制的应用如果能移植到互联网业务的其它流媒体服务中, 即能节省存储空间, 也能提高响应速度, 不仅能给客户带来更好的体验, 还能使得网络服务提供商的各种业务取得意想不到的收益, 未来切片技术以及在此基础上的存储机制的应用将有更大的发展空间。

摘要:为解决IPTV系统中出现的网络拥赛, 服务器过载, 系统响应时间过长, 缓存容量不足等问题, 本文提出了一种基于切片技术的媒体内容存储机制, 通过把大的视频文件切成小的片段以及在此基础上实现的存储策略, 来改善系统的服务性能。这套策略不仅避免了网络拥赛, 改善了负载均衡, 提高了响应速度, 而且在很大程度上提高了系统的服务质量, 提升了用户体验。

关键词:IPTV,切片技术,内容存储

参考文献

[1]吴松, 金海, 邹德清.一种流媒体文件的分块放置方法[J].计算机学报, 2006, 29 (3) :500-507.

上一篇:牵引传动论文下一篇:甲午中日战争