介绍几个你比较熟悉的设计模式,并简单介绍它们是如何实现的

介绍几个你比较熟悉的设计模式,并简单介绍它们是如何实现的,第1张

以下是几种格式的专业解释:

HDTV

一,HDTV的概念

要解释HDTV,我们首先要了解DTV。DTV是一种数字电视技术,是目前传统模拟电视技术的接班人。所谓的数字电视,是指从演播室到发射、传输、接收过程中的所有环节都是使用数字电视信号,或对该系统所有的信号传播都是通过由二进制数字所构成的数字流来 完成的。数字信号的传播速率为每秒1939兆字节,如此大的数据流传输速度保证了数字电视的高清晰度,克服了模拟电视的先天不足。同时,由于数字电视可以允许几种制式信号的同时存在,因此每个数字频道下又可分为若干个子频道,能够满足以后频道不断增多的 需求。HDTV是DTV标准中最高的一种,即High Definision TV,故而称为HDTV。

二,HDTV中要求音、视频信号达到哪些标准?

HDTV规定了视频必须至少具备720线非交错式(720p,即常说的逐行)或1080线交错式隔行(1080i,即常说的隔行)扫描(DVD标准为 480线),屏幕纵横比为16:9。音频输出为51声道(杜比数字格式),同时能兼容接收其它较低格式的 信号并进行数字化处理重放。

HDTV有三种显示格式,分别是:720P(1280×720P,非交错式),1080 i(1920×1080i,交错式),1080P(1920×1080i,非交错式),其中网络上流传的以720P和1080 i最为常见,而在微软WMV-HD站点上1080P的样片相对较多。

三,如何收看HDTV节目?

目前有两种方式可欣赏到HDTV节目。一种是在电视上实时收看HDTV,需要满足两个条件,首先是电视可接收到HDTV信号,这需要额外添加相关的硬件,其次是电视符合HDTV标准,主要是指电视的分辨率和接收端口而言。

另一种是在电脑上通过软件播放。目前我国只有极少部分地区可接收到HDTV数字信号,而且HDTV电视的价格仍高高在上,不是普通消费者所能承受的。因此,在网络中找寻HDTC源,下载后在个人电脑上播放,成了大多数HDTV迷们的一个尝鲜方法。

四,哪些是可用于电脑播放的HDTV文件?

网络中流传的HDTV主要以两类文件的方式存在,一类是经过MPEG-2标准压缩,以tp和ts为后缀的视频流文件,一类是经过WMV-HD (Windows Media Video High Definition)标准压缩过的wmv文件,还有少数文件后缀为avi或mpg,其性质与wmv是完全一样的。

HDTV文件都比较大,即使是经过重新编码过后的wmv文件也非同小可。以一部普通**的时间长度来计算,wmv文件将会有4G以上,而同样时间长度的tp和ts文件能达到8G以上,有的甚至达到20多G。因此,除了通过文件后缀名,还可以通过文 件大小来判断是否为HDTV文件。

五,如何在个人电脑上播放HDTV节目?

对于wmv文件,只要系统安装了Windows Media Player 9 或更高版本,就可以正常播放,一些播放软件的最新版本已经开始支持WMV-HD,如WINDVD6等,也可以直接使用这些软件播放HDTV。有些HDTV文件在压缩过程中采用了其它标准的编码格式,就需要安装对应的解码器,遇到Windows Media Player 9不能正常播放时,可以再安装ffdshow,它带有各种最常用的解码器。

播放以tp和ts为后缀的视频流文件要稍微麻烦一点,因为文件中分别包含有AC3音频信息和MPEG-2视频信息。好在现下有已经不少专门播放tp 和ts文件的软件问世了,Moonlight-Elecard MPEG Player 就是其中一款比较常见的支持HDTV播放的软件,目前最新的版本为2x。安装完后,也可以运行其它播放软件来调用Moonlight- Elecard MPEG Player的解码器进行播放。

六,如何鉴别HDTV的显示格式?

目前我们无法仅从文件名称、大小上来判定一个HDTV文件的显示格式是720P还是1080i,或是1080P,但是有不少软件可以在播放时显示影片的图像信息,如WINDVD、zplay等,在软件的控制面板中选择对应的选项就可以看到详细的信息。

七,为什么我只能看到图像,却听不到声音?

这是因为未安装AC3音频解码器,导致HDTV文件中的音频信息不能被正确识别的原因。解决的方法是下载并安装对应的音频解码器,常用的有 AC3Filter,这些音、视频解码器只需安装一次即可,播放HDTV文件时系统会自动调用,而不必每次播 放的时候都打开其控制界面。

八,为什么我播放HDTV时会出现丢帧现象?

在家用电脑上播放HDTV,对其硬件配置要求较高,主要是与CPU、显存、内存紧紧相关,如果这三样中有一样性能过低,就会产生一些播放问题。播放 HDTV时会出现丢帧现象是显存容量不够造成的,尤其是在播放1080 i格式HDTV的时候,1920×1080的像素量,需要足够大的显存才能满足其数据吞吐,因此显存至少需要64M以上,建议128M。由于是2D显示,所以对显卡核心的运算能力要求反而不是很高。

九,为什么我播放HDTV时会经常出现画面和语音停顿的现象?

一些采用了WMV-HD重新编码的HDTV文件,因为有着较高的压缩率,在播放时就需要非常高的CPU运算能力来进行实时解码,一般来说P4 20G/AMD 2000+ 以上及同级别的CPU可达到这个要求。同时,由于HDTV的数据流较大,需要足够的内存来支持,推荐在256M以上。如果你的电脑满足不了这样的配置,就可能会在播放过程中产生画面与语音不同步、画面经常停顿、爆音等现象。严重的话甚至无法顺利观看。如果 这种现象不太严重,则可以通过优化系统和一些小技巧来改善。

十,如何优化系统以保证顺利地播放HDTV?

除非你的电脑硬件配置的确很强,否则就很可能需要对系统进行一些优化,以便可以顺利地播放HDTV。首先是在播放HDTV前关闭所有没有用的后台程序或进程,尽量增加系统的空闲资源为播放HDTV服务;其次是选择一款占用系统资源较低的软件来播放HDTV 。Windows Media Player、WINDVD等软件占用系统资源较多,在硬件配置本就不高的系统上会影响HDTV的播放效果,这时可以选择使用BSPlayer。 BSPlayer是一款免费软件,最大的特点就是占用系统资源很小,尤其在播放HDTV文件时,与其它几个资源占用大户相比效果更为明显。另外,运行播放软件后立即打开任务管理器(仅在Windows 2000/XP中有效),将播放软件的进程级别设置为最高,这样也可以为HDTV的播放调用更多的系统资源。除此之外,安装更高版本的 DirectX,也能更好地支持HDTV的播放。

十一,还有什么其它的技巧?

如果你的PC可以流利地播放HDTV,那么你唯一会感到遗憾的,可能就是抱怨显示器太小和音箱太不够劲了。音箱的问题没有好的方法可以解决,必竟PC音箱和家庭影院的音箱两者是不可同比的,然而我们可以通过调高显示器的分辨率来提高画面的清晰度和细节感。 现在主流的显示器为17寸纯平CRT(因为改变标准分辨率只会给LCD带来负面影响,因此这种方法只针对普通的CRT显示器),中低档的17寸显示器很难达到1600×1200以上的分辨率,即使达到了其水平扫描率也在60Hz以下,但是请不要忘了,电视 信号的水平扫描率也就是在这个水平上。720P的水平扫描率为60Hz,1080i则有50Hz和60Hz两种,分别为我国和美国地区的标准。也就是说,即使你在显示器水平扫描率为60Hz的状态下全屏观看HDTV或DVD等其它视频,你是感觉不到晃眼的 ,这主要是由于人眼对于动态和静态物体的感应不同造成的。因此你可以在观看HDTV的时候,放心地将显示器水平扫描率设为60Hz,进而将分辨率调高,平时使用再调回标准分辨率即可。

存放HDTV文件的硬盘分区必须转换为NTFS格式,因为一部HDTV**通常是几个43GB的视频文件组成(为了方便刻录在DVD上面),而FAT32是无法管理2GB以上的文件的,因此务必转换分区格式。

H264

JVT(Joint Video Team,视频联合工作组)于2001年12月在泰国Pattaya成立。它由ITU-T和ISO两个国际标准化组织的有关视频编码的专家联合组成。JVT的工作目标是制定一个新的视频编码标准,以实现视频的高压缩比、高图像质量、良好的网络适应性等目标。目前JVT的工作已被ITU-T接纳,新的视频压缩编码标准称为H264标准,该标准也被ISO接纳,称为AVC(Advanced Video Coding)标准,是MPEG-4的第10部分。

H264标准可分为三档:

基本档次(其简单版本,应用面广);

主要档次(采用了多项提高图像质量和增加压缩比的技术措施,可用于SDTV、HDTV和DVD等);

扩展档次(可用于各种网络的视频流传输)。

H264不仅比H263和MPEG-4节约了50%的码率,而且对网络传输具有更好的支持功能。它引入了面向IP包的编码机制,有利于网络中的分组传输,支持网络中视频的流媒体传输。H264具有较强的抗误码特性,可适应丢包率高、干扰严重的无线信道中的视频传输。H264支持不同网络资源下的分级编码传输,从而获得平稳的图像质量。H264能适应于不同网络中的视频传输,网络亲和性好。

H261是最早出现的视频编码建议,目的是规范ISDN网上的会议电视和可视电话应用中的视频编码技术。它采用的算法结合了可减少时间冗余的帧间预测和可减少空间冗余的DCT变换的混合编码方法。和ISDN信道相匹配,其输出码率是p×64kbit/s。p取值较小时,只能传清晰度不太高的图像,适合于面对面的电视电话;p取值较大时(如 p>6),可以传输清晰度较好的会议电视图像。H263 建议的是低码率图像压缩标准,在技术上是H261的改进和扩充,支持码率小于64kbit/s的应用。但实质上H263以及后来的H263+和H263++已发展成支持全码率应用的建议,从它支持众多的图像格式这一点就可看出,如Sub-QCIF、QCIF、CIF、4CIF甚至16CIF等格式。

MPEG-1标准的码率为12Mbit/s左右,可提供30帧CIF(352×288)质量的图像,是为CD-ROM光盘的视频存储和播放所制定的。MPEG-l标准视频编码部分的基本算法与H261/H263相似,也采用运动补偿的帧间预测、二维DCT、VLC游程编码等措施。此外还引入了帧内帧(I)、预测帧(P)、双向预测帧(B)和直流帧(D)等概念,进一步提高了编码效率。在MPEG-1的基础上,MPEG-2标准在提高图像分辨率、兼容数字电视等方面做了一些改进,例如它的运动矢量的精度为半像素;在编码运算中(如运动估计和DCT)区分“帧”和“场”;引入了编码的可分级性技术,如空间可分级性、时间可分级性和信噪比可分级性等。近年推出的MPEG-4标准引入了基于视听对象(AVO:Audio-Visual Object)的编码,大大提高了视频通信的交互能力和编码效率。 MPEG-4中还采用了一些新的技术,如形状编码、自适应DCT、任意形状视频对象编码等。但是MPEG-4的基本视频编码器还是属于和H263相似的一类混合编码器。

总之,H261建议是视频编码的经典之作,H263是其发展,并将逐步在实际上取而代之,主要应用于通信方面,但H263众多的选项往往令使用者无所适从。MPEG系列标准从针对存储媒体的应用发展到适应传输媒体的应用,其核心视频编码的基本框架是和H261一致的,其中引人注目的MPEG-4的“基于对象的编码”部分由于尚有技术障碍,目前还难以普遍应用。因此,在此基础上发展起来的新的视频编码建议H264克服了两者的弱点,在混合编码的框架下引入了新的编码方式,提高了编码效率,面向实际应用。同时,它是两大国际标准化组织的共同制定的,其应用前景应是不言而喻的。

JVT的H264

H264是ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)的联合视频组(JVT:joint video team)开发的一个新的数字视频编码标准,它既是ITU-T的H264,又是ISO/IEC的MPEG-4的第10 部分。1998年1月份开始草案征集,1999年9月,完成第一个草案,2001年5月制定了其测试模式TML-8,2002年6月的 JVT第5次会议通过了H264的FCD板。2003年3月正式发布。

H264和以前的标准一样,也是DPCM加变换编码的混合编码模式。但它采用“回归基本”的简洁设计,不用众多的选项,获得比H263++好得多的压缩性能;加强了对各种信道的适应能力,采用“网络友好”的结构和语法,有利于对误码和丢包的处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传输(存储)场合的需求;它的基本系统是开放的,使用无需版权。

在技术上,H264标准中有多个闪光之处,如统一的VLC符号编码,高精度、多模式的位移估计,基于4×4块的整数变换、分层的编码语法等。这些措施使得H264算法具有很的高编码效率,在相同的重建图像质量下,能够比H263节约50%左右的码率。H264的码流结构网络适应性强,增加了差错恢复能力,能够很好地适应IP和无线网络的应用。

H264的技术亮点

(1) 分层设计

H264的算法在概念上可以分为两层:视频编码层(VCL:Video Coding Layer)负责高效的视频内容表示,网络提取层(NAL:Network Abstraction Layer)负责以网络所要求的恰当的方式对数据进行打包和传送。在VCL和NAL之间定义了一个基于分组方式的接口,打包和相应的信令属于NAL的一部分。这样,高编码效率和网络友好性的任务分别由VCL和NAL来完成。

VCL层包括基于块的运动补偿混合编码和一些新特性。与前面的视频编码标准一样,H264没有把前处理和后处理等功能包括在草案中,这样可以增加标准的灵活性。

NAL负责使用下层网络的分段格式来封装数据,包括组帧、逻辑信道的信令、定时信息的利用或序列结束信号等。例如,NAL支持视频在电路交换信道上的传输格式,支持视频在Internet上利用RTP/UDP/IP传输的格式。NAL包括自己的头部信息、段结构信息和实际载荷信息,即上层的VCL数据。(如果采用数据分割技术,数据可能由几个部分组成)。

(2) 高精度、多模式运动估计

H264支持1/4或1/8像素精度的运动矢量。在1/4像素精度时可使用6抽头滤波器来减少高频噪声,对于1/8像素精度的运动矢量,可使用更为复杂的8抽头的滤波器。在进行运动估计时,编码器还可选择“增强”内插滤波器来提高预测的效果。

在H264的运动预测中,一个宏块(MB)可以按图2被分为不同的子块,形成7种不同模式的块尺寸。这种多模式的灵活和细致的划分,更切合图像中实际运动物体的形状,大大提高了运动估计的精确程度。在这种方式下,在每个宏块中可以包含有1、2、4、8或16个运动矢量。

在H264中,允许编码器使用多于一帧的先前帧用于运动估计,这就是所谓的多帧参考技术。例如2帧或3帧刚刚编码好的参考帧,编码器将选择对每个目标宏块能给出更好的预测帧,并为每一宏块指示是哪一帧被用于预测。

(3) 4×4块的整数变换

H264与先前的标准相似,对残差采用基于块的变换编码,但变换是整数操作而不是实数运算,其过程和DCT基本相似。这种方法的优点在于:在编码器中和解码器中允许精度相同的变换和反变换,便于使用简单的定点运算方式。也就是说,这里没有“反变换误差”。变换的单位是4×4块,而不是以往常用的8×8块。由于用于变换块的尺寸缩小,运动物体的划分更精确,这样,不但变换计算量比较小,而且在运动物体边缘处的衔接误差也大为减小。为了使小尺寸块的变换方式对图像中较大面积的平滑区域不产生块之间的灰度差异,可对帧内宏块亮度数据的16个4×4块的DC系数(每个小块一个,共16个)进行第二次4×4块的变换,对色度数据的4个4×4块的DC系数(每个小块一个,共4个)进行2×2块的变换。

H264为了提高码率控制的能力,量化步长的变化的幅度控制在125%左右,而不是以不变的增幅变化。变换系数幅度的归一化被放在反量化过程中处理以减少计算的复杂性。为了强调彩色的逼真性,对色度系数采用了较小量化步长。

(4) 统一的VLC

H264中熵编码有两种方法,一种是对所有的待编码的符号采用统一的VLC(UVLC :Universal VLC),另一种是采用内容自适应的二进制算术编码(CABAC:Context-Adaptive Binary Arithmetic Coding)。CABAC是可选项,其编码性能比UVLC稍好,但计算复杂度也高。UVLC使用一个长度无限的码字集,设计结构非常有规则,用相同的码表可以对不同的对象进行编码。这种方法很容易产生一个码字,而解码器也很容易地识别码字的前缀,UVLC在发生比特错误时能快速获得重同步。

图3显示了码字的语法。这里,x0,x1,x2,…是INFO比特,并且为0或1。图4列出了前9种码字。如:第4号码字包含INFO01,这一码字的设计是为快速再同步而经过优化的,以防止误码。

(5) 帧内预测

在先前的H26x系列和MPEG-x系列标准中,都是采用的帧间预测的方式。在H264中,当编码Intra图像时可用帧内预测。对于每个4×4块(除了边缘块特别处置以外),每个像素都可用17个最接近的先前已编码的像素的不同加权和(有的权值可为0)来预测,即此像素所在块的左上角的17个像素。显然,这种帧内预测不是在时间上,而是在空间域上进行的预测编码算法,可以除去相邻块之间的空间冗余度,取得更为有效的压缩。

如图4所示,4×4方块中a、b、、p为16 个待预测的像素点,而A、B、、P是已编码的像素。如m点的值可以由(J+2K+L+2)/ 4 式来预测,也可以由(A+B+C+D+I+J+K+L)/ 8 式来预测,等等。按照所选取的预测参考的点不同,亮度共有9类不同的模式,但色度的帧内预测只有1类模式。

(6) 面向IP和无线环境

H264 草案中包含了用于差错消除的工具,便于压缩视频在误码、丢包多发环境中传输,如移动信道或IP信道中传输的健壮性。

为了抵御传输差错,H264视频流中的时间同步可以通过采用帧内图像刷新来完成,空间同步由条结构编码(slice structured coding)来支持。同时为了便于误码以后的再同步,在一幅图像的视频数据中还提供了一定的重同步点。另外,帧内宏块刷新和多参考宏块允许编码器在决定宏块模式的时候不仅可以考虑编码效率,还可以考虑传输信道的特性。

除了利用量化步长的改变来适应信道码率外,在H264中,还常利用数据分割的方法来应对信道码率的变化。从总体上说,数据分割的概念就是在编码器中生成具有不同优先级的视频数据以支持网络中的服务质量QoS。例如采用基于语法的数据分割(syntax-based data partitioning)方法,将每帧数据的按其重要性分为几部分,这样允许在缓冲区溢出时丢弃不太重要的信息。还可以采用类似的时间数据分割(temporal data partitioning)方法,通过在P帧和B帧中使用多个参考帧来完成。

在无线通信的应用中,我们可以通过改变每一帧的量化精度或空间/时间分辨率来支持无线信道的大比特率变化。可是,在多播的情况下,要求编码器对变化的各种比特率进行响应是不可能的。因此,不同于MPEG-4中采用的精细分级编码FGS(Fine Granular Scalability)的方法(效率比较低),H264采用流切换的SP帧来代替分级编码。

H264的性能测试

TML-8为H264的测试模式,用它来对H264的视频编码效率进行比较和测试。测试结果所提供的PSNR已清楚地表明,相对于MPEG-4(ASP:Advanced Simple Profile)和H263++(HLP:High Latency Profile)的性能,H264的结果具有明显的优越性,如图5所示。

H264的PSNR比MPEG-4(ASP)和H263++(HLP)明显要好,在6种速率的对比测试中,H264的PSNR比MPEG-4(ASP)平均要高2dB,比H263(HLP)平均要高3dB。6个测试速率及其相关的条件分别为:32 kbit/s速率、10f/s帧率和QCIF格式;64 kbit/s速率、15f/s帧率和QCIF格式;128kbit/s速率、15f/s帧率和CIF格式;256kbit/s速率、15f/s帧率和QCIF格式;512 kbit/s速率、30f/s帧率和CIF格式;1024 kbit/s速率、30f/s帧率和CIF格式。

实现难度

对每个考虑实际应用的工程师而言,在关注H264的优越性能的同时必然会衡量其实现难度。从总体上说,H264性能的改进是以增加复杂性为代价而获得的。目前全球也只有中国杭州海康威视数字技术有限公司在安防领域实现了H264的实际应用,这一次我们走到了世界的前端!

1080p

1080P是标准层面上的HDTV或者硬件层面上FULL HD的最高标准之一,而FULL HD就是能够完全显示19201080像素或者说物理分辨率达到19201080的平板电视机。需要注意的是,FULL HD和先前很多厂家宣传的1080P并不是同样的概念。

但是我们走进卖场会发现大多数品牌商家都打着1080P的旗帜对外宣传,多少对我们的选购产生了阻碍其实目前市场中的大多数平板电视都不是FULL HD,所谓的1080P只是支持1080P信号的接收并通过计算演变在屏幕上显示,大多数大屏幕平板电视都为1366768,等离子中的部分产品更低,要达到FULL HD的概念,就必须屏幕达到19201080的物理分辨率以及至少30Hz的刷新率

WAF

We Are Family 的简称 [我们是一家人]

WAF是韩国的一个影视制作小组,他们制作的DVDRIP是目前网上除了HDTV之外质量最好的,清晰度和音质都是上乘之作。

WAF的作品有以下特点:

1:严格控制每CD的容量,每CD的容量大小一般不超过005M(大家见过不少CD1是702M,CD2却是698M的现象吧)。

2:经过控制的容量,利于刻盘,(有些小组制作的容量经常可以超过702M,一CD盘的容量,这时候超刻技术就受重视了^_^)

3:分割片子时注意场景转换,极少造成一段场景有分裂感(例如4CD的《特洛伊》和4CD的《黑鹰》)。

4:每个片子压制的尺寸都以OAR为准,即导演原始版。

5:尺寸统一,几乎都是800线。(例:WAF20CD DTS版BOB,800448,见过15CD的HDTVRIP版,居然有两种尺寸!)我不清楚,一部大片为什么大家会忍受得了分辨率为640甚至以下的版本?

6:有极强的负责任的制作态度,发现有瑕疵的一般都会推出修复版.

7:喜欢WAF的DTS和AC3音频和高码率压缩的视频.

8:WAF每部片分割成的CD数一般都比别的小组制作的要多,这是为了保证必要的画质和音质的质量。试想想有个加长版《角斗士》使用DTS音轨,却只分割成2CD,每CD有70多分钟长,不知这样压缩出来的片子画质能好到什么程度?

所以说,WAF小组出品的DVDRip一般都是网上最清晰的版本。

问题补充:

普通家用电视的分辨率是多少?是不是屏幕越大分辨率越高?

电视的NTSC标准为720x480 刷新率为60Hz , PAL为720x576,刷新率为50Hz。 我国电视广播采用 PAL制。

逐行电视接收隔行信号经过差补后可以达到逐行输出,同时75Hz刷新率 ,或者隔行输出,同时100Hz刷新率。

虽然PAL制可达576线,但普通电视的实际可分辨水平线数只有300~500。高清电视理论上可达720P 和1080i,就是说最多逐行720线。所以按理论来说,搞清电视用1024x768的VGA输入也勉强可以表现出来了,但实际因为聚焦不准,文字显示比能显示1024x768的显示器差很多,画面显示则没什么问题。

HDTV是不是没有经过压缩,最原始的视频?

网络中流传的HDTV主要以两类文件的方式存在,一类是经过MPEG-2标准压缩,以tp和ts为后缀的视频流文件,一类是经过WMV-HD (Windows Media Video High Definition)标准压缩过的wmv文件,还有少数文件后缀为avi或mpg,其性质与wmv是完全一样的。

H264等压缩格式是不是为了方便网上传播?

在技术上,H264标准中有多个闪光之处,如统一的VLC符号编码,高精度、多模式的位移估计,基于4块的整数变换、分层的编码语法等。这些措施使得H264得算法具有很高的编码效率,在相同的重建图像质量下,能够比H263节约50%左右的码率。H264的码流结构网络适应性强,增加了差错恢复能力,能够很好地适应IP和无线网络的应用。

H264能以较低的数据速率传送基于联网协议(IP)的视频流,在视频质量、压缩效率和数据包恢复丢失等方面,超越了现有的MPEG-2、MPEG-4和H26x视频通讯标准,更适合窄带传输。

网上流传的Rip格式是什么意思?DVDRip

DVDRip理解:其实就是一种DVD的备份技术。

DVD我们都知道,目前非常优秀的媒体格式,MPEG2编码的视频;AC3、DTS的音轨。但是我们也知道DVD载体是DVD光盘,D5一张就有47G。显然,直接将DVD文件进行网络传送毫无实际价值可言,将这样的文件打包传到服务器上只会占用服务器的硬盘和大量的网络带宽。还没有多少人的网络带宽可以让他毫不动容地去下载一个7、8GB的文件只为了看两个小时**,更不要说将它们保存下来,DVD刻录机这样的产品目前也不是一般人能拥有的。

这就需要rip了,将DVD的视频、音频、字幕剥离出来,再经过压缩或者其他处理,然后重新合成成多媒体文件。在更小的文件尺寸上达到DVD的是视听享受。

下面给你介绍5种设计模式:

1单例设计模式

所谓单例设计模式简单说就是无论程序如何运行,采用单例设计模式的类(Singleton类)永远只会有一个实例化对象产生。具体实现步骤如下:

(1) 将采用单例设计模式的类的构造方法私有化(采用private修饰)。

(2) 在其内部产生该类的实例化对象,并将其封装成private static类型。

(3) 定义一个静态方法返回该类的实例。

2工厂设计模式

程序在接口和子类之间加入了一个过渡端,通过此过渡端可以动态取得实现了共同接口的子类实例化对象。

 3代理设计模式

指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理。比如生活中的通过代理访问网络,客户通过网络代理连接网络(具体业务),由代理服务器完成用户权限和访问限制等与上网相关的其他操作(相关业务)。

 4观察者设计模式

所谓观察者模式,举个例子现在许多购房者都密切观察者房价的变化,当房价变化时,所有购房者都能观察到,以上的购房者属于观察者,这便是观察者模式。

java中可以借助Observable类和Observer接口轻松实现以上功能。当然此种模式的实现也不仅仅局限于采用这两个类。

 5适配器模式

如果一个类要实现一个具有很多抽象方法的接口,但是本身只需要实现接口中的部分方法便可以达成目的,所以此时就需要一个中间的过渡类,但此过渡类又不希望直接使用,所以将此类定义为抽象类最为合适,再让以后的子类直接继承该抽象类便可选择性的覆写所需要的方法,而此抽象类便是适配器类。

MVC就是

M:Model 模型

V:View 视图

C:Controller 控制器

模型就是封装业务逻辑和数据的一个一个的模块,控制器就是调用这些模块的(java中通常是用Servlet来实现,框架的话很多是用Struts2来实现这一层),视图就主要是你看到的,比如JSP等

当用户发出请求的时候,控制器根据请求来选择要处理的业务逻辑和要选择的数据,再返回去把结果输出到视图层,这里可能是进行重定向或转发等MVC我感觉主要就是把一个软件或网站清晰地分成几部分,每一部分都实现自己的功能,当某一部分需要修改时就可以只修改这一部分,不会去修改整体,当后期维护的时候MVC的作用也是很大的,耦合度太高就会导致牵一发而动全身,开销也就会非常大了,现在的很多软件都是要很多人完成的,不过不把软件清晰的分层,不把软件模块化,大家就很难做好自己的那一块,好多人都可能做了同一部分,而且没办法整合到一起,所以MVC我感觉是一种软件架构思想,我也是新手,可能理解的不是很深,我就把我体会到的说了一下哈,希望大牛们批评更正哈!!!

分类: 教育/学业/考试 >> 入学信息

问题描述:

到底我应该怎样理解EJB?它是们技术吗(如JSP)?还是一个类?一个接口?还是一种规范(如给变量起名的规范)?还有设计模式又是什么呢?

解析:

EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序,类似微软的技术。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。

设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。

GoF的“设计模式”是第一次将设计模式提升到理论高度,并将之规范化,本书提出了23种基本设计模式,自此,在可复用面向对象软件的发展过程中,新的大量的设计模式不断出现。

设计模式和框架

现在,可复用面向对象软件系统现在一般划分为三大类:应用程序 工具箱和框架(Framework),我们平时开发的具体软件都是应用程序;Java的API属于工具箱;而框架是构成一类特定软件可复用设计的一组相互协作的类。EJB(Enterprise JavaBeans)是Java应用于企业计算的框架

框架通常定义了应用体系的整体结构 类和对象的关系等等设计参数,以便于具体应用实现者能集中精力于应用本身的特定细节。框架主要记录软件应用 同的设计决策,框架强调设计复用,因此框架设计中必然要使用设计模式

另外,设计模式有助于对框架结构的理解,成熟的框架通常使用了多种设计模式,如果你熟悉这些设计模式,毫无疑问,你将迅速掌握框架的结构,我们一般开发者如果突然接触EJB J2EE等框架,会觉得特别难学,难掌握,那么转而先掌握设计模式,无疑是给了你剖析EJB或J2EE系统的一把利器

架构模式从子系统或模块、及其之间的关系层次上描述了粗粒度的解决方案。

架构风格是描述某一特定应用领域中系统组织方式的惯用模式,是系统主要的、组织性的设计。

风格是模式的外在表现。

三者的共同点是都用于设计,是一套可重用的方法套路。不同点:前二者的不同点在于粒度,设计模式定义出子系统或组件的微观结构,结架构模式则从子系统或模块、及其之间的关系层次上描述了粗粒度的解决方案;后二者的区别在于前者着重描述系统的内部组织,后者着重于描述结构的外在表现。

如何理解mvc设计模式?

这个问题我以前帮人回答过,现在给你回复一下。

模型是指数据模型。

视图是指UI视图

另外,控制是指控制。

为什么要用MVC?目前最好使用MVC模式设计所有有UI界面的程序。

视图:我们需要有一个特殊的模块,也存储所有的UI组件库,按钮,,文本框,列表,菜单等。这些东西都是死的,没有内容。比如一个文本框,如果你把它从组库中拿出来,默认里面是没有文字的。

模型:我们的数据模型,如果是面向对象的程序,就是数据类。比如学生,老师,车,工作人员等等。它们也可以理解为数据结构。我们必须有一个特殊的模块来存储这些结构。结构也死了。如果不把他拿出来使用,他将永远躺在模块里。

Control:Controller,可以理解为一段代码,它会根据当前的程序状态机,用适当的数据模型中的数据填充UI视图。或者,通过监视UI组件的更改,可以将一些更改写回到数据模型中。

用户注册界面,

有四个UI组件1。文本框提示用户输入一些注册信息2。两个输入文本框允许用户输入他们的帐号和密码3。一个按钮。

这里,模型是用户配置文件。

视图是四个UI组件。

控制需要程序加代码:

当按钮被按下时,首先生成用户的实例。实际上,字符串是分别从两个输入框中获取的,并分配了用户的id和密码。保存用户实例或将其发送到服务器。

在这个过程中,三个模块各司其职,尽可能少的互不干扰。尤其是模型和视图之间没有干扰,而控件是桥梁。

以上是对java的MVC模式的大概解释。

java中MVC的web应用也有狭义的解释,就是B/S中常用的MVC架构,具体可以查询这个信息。它是几个英文首字母的缩写Model,view,Controllermodel,View和controlcontroller。从英语中不难看出,M代表企业数据和业务规则。v是用户看到并与之交互的界面。控制器接受用户的输入,并调用模型和视图来满足用户的要求。这种模式的特点是分工明确,使程序员专注于业务逻辑,界面程序员专注于表现。同时,也方便了软件工程的管理。

什么是MVC模式?

MVC是‘模型-视图-控制器’的缩写,中文翻译过来就是‘模式-视图-控制器’。MVC应用程序总是由这三部分组成。事件导致控制器更改模型和/或视图。只要控制器改变了模型的数据或属性,所有的依赖视图都会自动更新。类似地,每当控制器改变视图时,视图将从潜在的模型中获取数据来刷新自己。MVC模式最早由smalltalk语言研究组提出,应用于用户交互应用。smalltalk语言和java语言有很多相似之处,都是面向对象的语言。自然,SUN在petstore案例应用中推荐MVC模式作为开发Web应用的架构模式。MVC模式是一种架构模式,但实际上需要其他模式的配合。在J2EE模式目录中,通常采用面向工人的服务模式,面向工人的服务模式可以由集中控制器模式、调度器模式和页面助手模式组成。Struts只实现MVC的视图和控制器部分,模型部分需要开发者自己实现。Struts提供了抽象的类操作,这样开发人员就可以将模型应用到Struts框架中。

MVC模式是一种复杂的架构模式,其实现也非常复杂。但是我们总结了很多可靠的设计模式,各种设计模式的组合使得MVC模式的实现相对简单容易。视图可以看作一棵树,显然可以用复合模式来实现。视图和模型之间的关系可以通过观察者模式来体现。控制控制器视图的显示可以通过策略模式来实现。模型通常是一个中介,可以通过中介模式来实现。

自己的电脑做网站服务器,不一定要配置好,P3都够,因为ADSL上传速度只有56KBS。

你可以注册花生壳或注册3322org安装他们的客户端。

如果用自己的顶级域名可以将自己的域名别名解析到花生壳或3322的免费动态域名。

服务器安装win2003系统。如果只做一个网站这就够了。

如果要做多个网站可以安装虚拟主机软件(如易方40免费版)+ serv-u FTP管理软件。

要增加服务器功能可以再装 jmail、aspjpeg、AspUpload等服务组件。组件不是越多越好,用不到的千万别装。

数据库可以装MSSQL或MYSQL一种就够了。

如果需要企业邮局可以安装winwebmail

安全方面建议使用路由器,一般路由器等同于一个简易的硬件防火墙,在路由器中只开通必须端口的映射,应付菜鸟攻击足够了。

在安全方面其它的设置可以使用《易方安全设置》很傻瓜化的设置。

服务器系统补丁可以使用360打

杀毒软件可以安装麦咖啡

基本就这些,不过现在的虚拟主机这一个也很便宜,何必自己搞呢,电费也不划算。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 介绍几个你比较熟悉的设计模式,并简单介绍它们是如何实现的

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情