<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_专注于Web技术的研究</title><subtitle type="text">oracle,linux,java,open source,c#,搜索引擎</subtitle><id>http://feed.cnblogs.com/blog/u/35298/rss</id><updated>2012-02-27T06:04:13Z</updated><author><name>一条辉</name><uri>http://www.cnblogs.com/liunx/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liunx/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/35298/rss"/><entry><id>http://www.cnblogs.com/liunx/archive/2012/02/27/2369757.html</id><title type="text">HDMI、DVI和VGA接口互相转换问题</title><summary type="text">视频输入接口分为数字（HDMI、DVI）和模拟VGA，如何实现这些接口之间的相互连接？</summary><published>2012-02-27T06:04:00Z</published><updated>2012-02-27T06:04:00Z</updated><author><name>一条辉</name><uri>http://www.cnblogs.com/liunx/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liunx/archive/2012/02/27/2369757.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liunx/archive/2012/02/27/2369757.html"/><content type="html">&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;1、使用HDMI转DVI线不会影响播放的质量&lt;br /&gt;严格意义上讲，播放的质量不会有任何损失，因为它们根本就不需要转换！在技术规格上，HDMI到DVI是向下兼容的，所有的DVI的规范，HDMI都可以&amp;#8220;照章办事&amp;#8221;，因此DVI转HDMI理论上不会出现任何灰阶失真问题！&lt;/p&gt;&lt;p&gt;资料来源：&lt;a href="http://mb.intozgc.com/132/132039.html"&gt;http://mb.intozgc.com/132/132039.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;2、HDMI转VGA，不是简单的一个转接头（线）能做到的。&lt;br /&gt;因为HDMI内部信号编码完全是数字的，想要得到模拟的VGA，必须先用HDMI解码芯片解出数据，然后在通过视频编码器（数字转模拟）才行。&lt;br /&gt;一般是使用HDMI转VGA转换器来实现，参考网址：&lt;a href="http://www.bjecontrol.net/cn/contrzh/1269235918_4149.html"&gt;http://www.bjecontrol.net/cn/contrzh/1269235918_4149.html&lt;/a&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liunx/aggbug/2369757.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liunx/archive/2012/02/27/2369757.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liunx/archive/2011/11/28/2266494.html</id><title type="text">禅语-放下</title><summary type="text">放得下才能获得轻松与快乐！</summary><published>2011-11-28T09:16:00Z</published><updated>2011-11-28T09:16:00Z</updated><author><name>一条辉</name><uri>http://www.cnblogs.com/liunx/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liunx/archive/2011/11/28/2266494.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liunx/archive/2011/11/28/2266494.html"/><content type="html">&lt;p&gt;话说一个人，背着一个大包，很艰辛得走在路上。压得头都抬不起。更别说欣赏路上的风光了。&lt;/p&gt;&lt;p&gt;一禅大师看到了，就问他：&amp;#8220;请问你身上背的是什么东西？&amp;#8221;旅者说：&amp;#8220;这包里背的是我一路走来的辛酸、痛苦、创伤、磨难、眼泪..........虽然它们很重，但正因为有了它们，我才能坚持到今天，我才能走到这。我全靠它们才能完成我的旅程。&amp;#8221;&lt;/p&gt;&lt;p&gt;大师听后不语。&lt;/p&gt;&lt;p&gt;走了一段路，大师和旅者一起撑船过了一条河。&lt;/p&gt;&lt;p&gt;到了对岸，一禅大师对旅者说：&amp;#8220;好了，现在请你背起刚才的那条船再上路完成你的旅程吧。&amp;#8221;&lt;br /&gt;旅者听了很疑惑，问：&amp;#8220;为什么呀，船是用来摆渡的，我们都过来了，为什么我还要背着它走啊？那不是很笨？&amp;#8221;&lt;/p&gt;&lt;p&gt;大师说：&amp;#8220;你不是觉得一路上走来的所有经历都是支持你走下去的力量吗？你不是要把它们都背在身上，才可以继续前行吗？刚才的船不是帮你过了河吗？它也是帮你走下去的很重要的工具啊。你怎么能把它拉下？应该带上的。&amp;#8221;&lt;/p&gt;&lt;p&gt;听到这，旅者恍然大悟。放下背包，轻装上阵了。&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liunx/aggbug/2266494.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liunx/archive/2011/11/28/2266494.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liunx/archive/2011/11/24/2261373.html</id><title type="text">HTML5 WebSocket：下一次Web通信革命揭幕</title><summary type="text">Google的工程师Ian Hickson说“数据的字节数急剧减少到2字节，延迟从150毫秒减少到50毫秒，实际上，这两个因素已经足以引起Google的兴趣了”。通过在一个浏览器中模拟全双工连接，HTML 5 Web Socket对Web通信带来了显著的改善。让我们与传统的解决方案相比，看看HTML 5 Web Socket是如何减少不必要的网络流量和延迟的。</summary><published>2011-11-24T03:15:00Z</published><updated>2011-11-24T03:15:00Z</updated><author><name>一条辉</name><uri>http://www.cnblogs.com/liunx/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liunx/archive/2011/11/24/2261373.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liunx/archive/2011/11/24/2261373.html"/><content type="html">&lt;div class="article_content" id="article_content" sizset="34" sizcache="1"&gt;&lt;div class="sum"&gt;&lt;ul class="summary"&gt;让我们一起来了解HTML 5对当前Web通信的改变。HTML 5 Web Socket通过在Web上的一个单一Socket定义了一个全双工通信信道为Web通信带来了显著的改善。 &lt;/ul&gt;&lt;/div&gt;&lt;p&gt;HTML5 WebSocket：下一次Web通信革命揭幕&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;【51CTO译文】关于HTML 5的各种前沿技术应用51CTO已经报道过很多，比如HTML 5的视频音频元素、HTML 5 Web SQL Database、HTML5 File API以及如何从零开始构建一个HTML 5页面等等。这些都是HTML 5对当前Web开发标准技术的升级或扩展。今天，51CTO带您了解HTML 5的另一面&amp;#8212;&amp;#8212;HTML 5 Web Socket，以及它对当前Web通信的改变。&lt;/p&gt;&lt;p&gt;最近关于HTML 5 Web Socket的流言已经满天飞，它通过Web上的一个单一Socket定义了一个全双工通信信道，&lt;strong&gt;HTML 5 Web Socket并不是普通HTTP通信的增强版，它代表着一个巨大的进步，特别是针对实时的、事件驱动的Web应用程序&lt;/strong&gt; 。&lt;/p&gt;&lt;p&gt;Google的工程师Ian Hickson说&amp;#8220;数据的字节数急剧减少到2字节，延迟从150毫秒减少到50毫秒，实际上，这两个因素已经足以引起Google的兴趣了&amp;#8221;。通过在一个浏览器中模拟全双工连接，HTML 5 Web Socket对Web通信带来了显著的改善。&lt;/p&gt;&lt;p&gt;让我们与传统的解决方案相比，看看HTML 5 Web Socket是如何减少不必要的网络流量和延迟的。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;当前的Web通信&amp;#8212;&amp;#8212;头疼的轮询&lt;/strong&gt; (Polling)&lt;/p&gt;&lt;p&gt;通常，当浏览器访问一个网页时，会向托管该网页的Web服务器发送一个HTTP请求，Web服务器识别这一请求，并返回响应。例如，股票价格，新闻报道，门票销售，流量模式，医疗设备读数等，在浏览器渲染页面时，响应可能会过期，如果你想获得最新的&amp;#8220;实时&amp;#8221;信息，你可以不断地手动刷新页面，但显然这不是最好的办法。&lt;/p&gt;&lt;p&gt;目前提供的实时Web程序主要是围绕轮询和其它服务器端推送技术进行的，最著名的是Comnet，它推迟了HTTP响应的结束，基于Comnet的推送通常是使用JavaScript结合长轮询(Long Polling)或流连接策略实现的。&lt;/p&gt;&lt;p&gt;使用轮询时，浏览器定期发送HTTP请求，并立即收到响应，这种技术是交付实时信息的第一次尝试，显然，如果知道消息传递的时间间隔，这算是一个好办法，因为你可以在服务器上的信息可用时同步客户端请求，但实时数据往往是不可预测的，不可避免会产生一些不必要的请求，导致许多连接处于打开状态，有些不必关闭的连接却被关闭了。&lt;/p&gt;&lt;p&gt;使用长轮询时，浏览器向服务器发送一个请求，服务器在既定期限内保持请求处于打开状态，如果在此期间收到通知，向客户端发送一个包含消息的响应，如果在此期间没有收到消息，服务器发送一个响应终止打开的请求。最重要的是要理解，当你的信息容量很高时，长轮询与传统的轮询相比不提供任何性能改善。实际上，它可能更糟，因为长轮询可能会失控进入一个死循环。&lt;/p&gt;&lt;p&gt;使用流时，浏览器发送一个完整的请求，但服务器发送一个响应，并保存打开状态，然后不断更新使其一直保持打开（或在一段时间内保持打开），无论何时消息准备好发送时，响应就更新，但服务器不会发送一个结束的响应，因此连接就一直保持打开状态，后面发送的消息就可以继续使用这个连接。但流仍然是封装在 HTTP中的，阻扰了防火墙和代理服务器选择缓冲区中的内容进行响应，因此消息传递的时间就延长了。许多流式Comnet解决方案都转向了长轮询，另外，TLS（SSL）连接可以用来屏蔽来自缓冲区的响应，但在这种情况下，每个连接消耗的服务器资源更多了。&lt;/p&gt;&lt;p&gt;最终，所有这些方法都提供了实时数据，包含HTTP请求和响应头，其中包含许多额外的，不必要的头数据，最重要的是，全双工连接需要的不仅仅是从服务器到客户端的下行连接。为了模拟基于半双工HTTP上的全双工通信，目前的许多解决方案都使用了两个连接：一个下行连接，一个上行连接。维护和协调这两个连接需要大量的系统开销，并增加了复杂性。简言之，HTTP不是为实时的，全双工通信设计的，如图1所示，它显示了构建一个Comnet Web应用程序的复杂性，它从后端数据源使用发布/订阅模式基于半双工HTTP显示实时数据。&lt;/p&gt;&lt;p sizset="34" sizcache="1"&gt;&lt;a href="http://images.51cto.com/files/uploadimg/20100317/0907040.jpg" target="_blank"&gt;&lt;img class="fit-image" height="335" alt="Comnet程序的复杂性" src="http://images.51cto.com/files/uploadimg/20100317/0907040.jpg" width="468" border="0" /&gt; &lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: smaller"&gt;图 1：Comnet程序的复杂性&lt;/span&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;当你试图向外扩展那些Comet解决方案时，情况变得更糟糕，模拟基于HTTP的双向通信容易出错，即使最终用户感觉某些东西看起来象是一个实时Web应用程序，但这种&amp;#8220;实时&amp;#8221;体验的代价都是非常高昂的，需要付出更多的延迟等待时间，不必要的网络流量和对CPU性能的拖累。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;HTML 5 Web Socket&lt;/strong&gt; &amp;#8212;&amp;#8212;&lt;strong&gt;拯救&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;HTML 5 Web Socket定义在HTML 5规范的通信章节，它代表Web通信的下一个演变：通过一个单一的Socket实现一个全双工，双向通信的信道。HTML 5 Web Socket提供了一个真正的标准，你可以使用它构建可扩展的实时Web应用程序。此外，由于它提供了一个浏览器自带的套接字，消除了Comet解决方案的许多问题，Web Socket显著降低了系统开销和复杂性。&lt;/p&gt;&lt;p&gt;为了建立一个Web Socket连接，客户端和服务器在初始握手期间要从HTTP协议升级到WebSocket协议，如下面的例子：&lt;/p&gt;&lt;p&gt;例1：WebSocket握手（浏览器请求，服务器响应）&lt;/p&gt;&lt;ol class="dp-xml"&gt;&lt;li class="alt"&gt;&lt;span&gt;GET&amp;nbsp;/text&amp;nbsp;HTTP/1.1/r/n &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Upgrade:&amp;nbsp;WebSocket/r/n &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;Connection:&amp;nbsp;Upgrade/r/n &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Host:&amp;nbsp;www.websocket.org/r/n &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;.../r/n &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;HTTP/1.1&amp;nbsp;101&amp;nbsp;WebSocket&amp;nbsp;Protocol&amp;nbsp;Handshake/r/n &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;Upgrade:&amp;nbsp;WebSocket/r/n &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Connection:&amp;nbsp;Upgrade/r/n &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;.../r/n&amp;nbsp;&lt;/span&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;建立好连接后，WebSocket数据帧就可以在客户端和服务器之间以全双工模式传输，在同一时间任何方向，可以全双工发送文本和二进制帧，最小的帧只有2个字节。在文本帧中，每一帧始于0x00直接，止于0xFF字节，数据使用UTF-8编码。WebSocket文本帧使用终结器，而二进制帧使用一个长度前缀。&lt;/p&gt;&lt;p&gt;注意：虽然WebSocket协议已经可以支持多种客户端，但不能将原始数据传递给 JavaScript，因为JavaScript不支持字节类型，因此，如果客户端是JavaScript，二进制数据会被忽略，但可以传递给支持字节类型的客户端。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Comet和HTML 5 Web Socket之间的对决&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;人们最关注的是HTML 5 Web Socket如何减少不必要的网络流量和延迟，我们比较一个轮询应用程序和Web Socket应用程序就知道了。&lt;/p&gt;&lt;p&gt;对于轮询的例子，我创建了一个简单的Web应用程序，一个网页使用传统的发布/订阅模式从 RabbitMQ消息代理请求实时的股票数据，它是通过轮询一个托管在Web服务器上的Java Servlet实现的，RabbitMQ消息代理从一个虚构的，不断更新价格的股票价格源接收数据，网页连接并订阅一个特定的股票频道（消息代理上的一个主题），使用XMLHttpRequest每秒更新一次进行轮询。当收到更新时，执行一些计算，然后将股票数据显示在图2所示的表中。&lt;/p&gt;&lt;p sizset="35" sizcache="1"&gt;&lt;a href="http://images.51cto.com/files/uploadimg/20100317/0907041.jpg" target="_blank"&gt;&lt;img class="fit-image" height="209" alt="一个JavaScript股票行情应用程序" src="http://images.51cto.com/files/uploadimg/20100317/0907041.jpg" width="468" border="0" /&gt; &lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: smaller"&gt;图 2：一个JavaScript股票行情应用程序&lt;/span&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;注意：后端的股票源每秒实际上产生了大量的股票价格更新，因此使用每秒一次轮询的方式比使用长轮询方式更好，长轮询会产生许多连续的轮询，轮询会更有效地阻止传入更新。&lt;/p&gt;&lt;p&gt;这一切看起来还不错，但仔细观察，你就会发现这种应用程序存在严重的问题，例如，使用Firefox的Firebug插件（允许你调试网页和监控页面加载和脚本执行时间），你可以看到每秒都有一个GET请求砸向服务器。打开Live HTTP Headers（另一个Firefox 插件，显示实时的HTTP消息头流量）揭示每个请求关联的消息头开销数量是相当惊人的。下面两个例子显示了一个请求和响应的HTTP消息头数据。&lt;/p&gt;&lt;p&gt;例2：HTTP请求头&lt;/p&gt;&lt;ol class="dp-xml"&gt;&lt;li class="alt"&gt;&lt;span&gt;GET&amp;nbsp;/PollingStock//PollingStock&amp;nbsp;HTTP/1.1 &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Host:&amp;nbsp;localhost:8080 &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;User-Agent:&amp;nbsp;Mozilla/5.0&amp;nbsp;(Windows;&amp;nbsp;U;&amp;nbsp;Windows&amp;nbsp;NT&amp;nbsp;5.1;&amp;nbsp;en-US;&amp;nbsp;rv:1.9.1.5)&amp;nbsp;Gecko/20091102&amp;nbsp;Firefox/3.5.5 &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Accept:&amp;nbsp;text/html,application/xhtml+xml,application/xml;&lt;/span&gt; &lt;span class="attribute"&gt;q&lt;/span&gt; &lt;span&gt;=&lt;/span&gt; &lt;span class="attribute-value"&gt;0&lt;/span&gt; &lt;span&gt;.9,*/*;&lt;/span&gt; &lt;span class="attribute"&gt;q&lt;/span&gt; &lt;span&gt;=&lt;/span&gt; &lt;span class="attribute-value"&gt;0&lt;/span&gt; &lt;span&gt;.8 &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;Accept-Language:&amp;nbsp;en-us &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Accept-Encoding:&amp;nbsp;gzip,deflate &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;Accept-Charset:&amp;nbsp;ISO-8859-1,utf-8;&lt;/span&gt; &lt;span class="attribute"&gt;q&lt;/span&gt; &lt;span&gt;=&lt;/span&gt; &lt;span class="attribute-value"&gt;0&lt;/span&gt; &lt;span&gt;.7,*;&lt;/span&gt; &lt;span class="attribute"&gt;q&lt;/span&gt; &lt;span&gt;=&lt;/span&gt; &lt;span class="attribute-value"&gt;0&lt;/span&gt; &lt;span&gt;.7 &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Keep-Alive:&amp;nbsp;300 &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;Connection:&amp;nbsp;keep-alive &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Referer:&amp;nbsp;http://www.example.com/PollingStock/ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;Cookie:&amp;nbsp;&lt;/span&gt; &lt;span class="attribute"&gt;showInheritedConstant&lt;/span&gt; &lt;span&gt;=&lt;/span&gt; &lt;span class="attribute-value"&gt;false&lt;/span&gt; &lt;span&gt;;&amp;nbsp;&lt;br /&gt; &lt;/span&gt; &lt;span class="attribute"&gt;showInheritedProtectedConstant&lt;/span&gt; &lt;span&gt;=&lt;/span&gt; &lt;span class="attribute-value"&gt;false&lt;/span&gt; &lt;span&gt;;&amp;nbsp;&lt;br /&gt; &lt;/span&gt; &lt;span class="attribute"&gt;showInheritedProperty&lt;/span&gt; &lt;span&gt;=&lt;/span&gt; &lt;span class="attribute-value"&gt;false&lt;/span&gt; &lt;span&gt;;&amp;nbsp;&lt;br /&gt; &lt;/span&gt; &lt;span class="attribute"&gt;showInheritedProtectedProperty&lt;/span&gt; &lt;span&gt;=&lt;/span&gt; &lt;span class="attribute-value"&gt;false&lt;/span&gt; &lt;span&gt;;&amp;nbsp;&lt;br /&gt; &lt;/span&gt; &lt;span class="attribute"&gt;showInheritedMethod&lt;/span&gt; &lt;span&gt;=&lt;/span&gt; &lt;span class="attribute-value"&gt;false&lt;/span&gt; &lt;span&gt;;&lt;br /&gt;&amp;nbsp;&lt;/span&gt; &lt;span class="attribute"&gt;showInheritedProtectedMethod&lt;/span&gt; &lt;span&gt;=&lt;/span&gt; &lt;span class="attribute-value"&gt;false&lt;/span&gt; &lt;span&gt;;&lt;br /&gt;&amp;nbsp;&lt;/span&gt; &lt;span class="attribute"&gt;showInheritedEvent&lt;/span&gt; &lt;span&gt;=&lt;/span&gt; &lt;span class="attribute-value"&gt;false&lt;/span&gt; &lt;span&gt;;&amp;nbsp;&lt;br /&gt; &lt;/span&gt; &lt;span class="attribute"&gt;showInheritedStyle&lt;/span&gt; &lt;span&gt;=&lt;/span&gt; &lt;span class="attribute-value"&gt;false&lt;/span&gt; &lt;span&gt;;&amp;nbsp;&lt;br /&gt; &lt;/span&gt; &lt;span class="attribute"&gt;showInheritedEffect&lt;/span&gt; &lt;span&gt;=&lt;/span&gt; &lt;span class="attribute-value"&gt;false&lt;/span&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;例3：HTTP响应头&lt;/p&gt;&lt;ol class="dp-xml"&gt;&lt;li class="alt"&gt;&lt;span&gt;HTTP/1.x&amp;nbsp;200&amp;nbsp;OK &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;X-Powered-By:&amp;nbsp;Servlet/2.5 &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;Server:&amp;nbsp;Sun&amp;nbsp;Java&amp;nbsp;System&amp;nbsp;Application&amp;nbsp;Server&amp;nbsp;9.1_02 &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Content-Type:&amp;nbsp;text/html;&lt;/span&gt; &lt;span class="attribute"&gt;charset&lt;/span&gt; &lt;span&gt;=&lt;/span&gt; &lt;span class="attribute-value"&gt;UTF&lt;/span&gt; &lt;span&gt;-8 &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;Content-Length:&amp;nbsp;21 &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Date:&amp;nbsp;Sat,&amp;nbsp;07&amp;nbsp;Nov&amp;nbsp;2009&amp;nbsp;00:32:46&amp;nbsp;GMT&amp;nbsp;&lt;/span&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;HTTP请求和响应头信息开销总共包括871字节，而且还不包括任何数据，当然，这只是一个例子，你的消息头数据完全可能低于871字节，但我也看到过消息头数据超过2000字节的情况。在这个例子中，股票主题消息数据大约只有20个字符。&lt;/p&gt;&lt;p&gt;当你把这样的程序大规模部署给用户时会怎么样？我们使用三个不同的用例观察一下该轮询应用程序关联的HTTP请求和响应头数据需要的网络吞吐量。&lt;/p&gt;&lt;p&gt;用例A：1000客户端，每秒轮询一次&lt;br /&gt;网络吞吐量（871x1000）=871000字节=6968000比特/秒（6.6Mbps）&lt;/p&gt;&lt;p&gt;用例B：10000客户端，每秒轮询一次&lt;br /&gt;网络吞吐量（871x10000）=8710000字节=69680000比特/秒（66Mbps）&lt;/p&gt;&lt;p&gt;用例C：100000客户端，每秒轮询一次&lt;br /&gt;网络吞吐量（871x100000）=87100000字节=696800000比特/秒（665Mbps）&lt;/p&gt;&lt;p&gt;这是一个不必要的巨大的网络吞吐量，这时我们可以使用HTML 5 Web Socket，我使用HTML 5 Web Socket重构了应用程序，给网页添加了一个事件处理程序，同步监听来自消息代理的股票更新消息。每个消息都是一个Web Socket帧，开销只有2个字节（而不是871字节），再来看看对网络吞吐量的影响。&lt;/p&gt;&lt;p&gt;用例A：1000客户端，每秒轮询一次&lt;br /&gt;网络吞吐量（2x1000）=2000字节=16000比特/秒（0.015Mbps）&lt;/p&gt;&lt;p&gt;用例B：10000客户端，每秒轮询一次&lt;br /&gt;网络吞吐量（2x10000）=20000字节=160000比特/秒（0.153Mbps）&lt;/p&gt;&lt;p&gt;用例C：100000客户端，每秒轮询一次&lt;br /&gt;网络吞吐量（2x100000）=200000字节=1600000比特/秒（1.526Mbps）&lt;/p&gt;&lt;p&gt;正如你在图3中可以看到的，与轮询解决方案相比，HTML 5 Web Socket减少了不必要的网络流量。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p sizset="36" sizcache="1"&gt;&lt;a href="http://images.51cto.com/files/uploadimg/20100317/091412438.jpg" target="_blank"&gt;&lt;img class="fit-image" height="335" alt="" src="http://images.51cto.com/files/uploadimg/20100317/091412438.jpg" width="468" border="0" /&gt; &lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: smaller"&gt;图 3：&lt;span style="font-family: '宋体'"&gt;比较轮询和&lt;span style="font-family: Times New Roman"&gt;WebSocket&lt;/span&gt; &lt;span style="font-family: 宋体"&gt;应用程序之间的网络吞吐量&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;!-- EndFragment--&gt;&lt;p&gt;延迟减少怎么样呢？看看图4便知，图中上半部分显示了半双工轮询方案的延迟，这里我们假设消息从服务器传输到浏览器需要50毫秒，轮询方式引入许多额外的延迟，因为当响应完成时，一个新的请求已经发送到服务器了，这个新请求又需要50毫秒，在此期间服务器不能发送任何消息给浏览器，导致额外的服务器内存消耗。&lt;/p&gt;&lt;p&gt;图4下半部分显示了Web Socket方式产生的延迟，一旦连接升级到Web Socket，消息的传输会更及时，从服务器传输到浏览器仍然需要50毫秒，但Web Socket连接保持打开，之后就再也不用向服务器发送请求了。&lt;/p&gt;&lt;p sizset="37" sizcache="1"&gt;&lt;a href="http://images.51cto.com/files/uploadimg/20100317/0907042.jpg" target="_blank"&gt;&lt;img class="fit-image" height="334" alt="比较轮询和WebSocket应用程序之间的网络吞吐量" src="http://images.51cto.com/files/uploadimg/20100317/0907042.jpg" width="468" border="0" /&gt; &lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: smaller"&gt;图 4：&lt;span style="font-family: '宋体'"&gt;轮询和&lt;span style="font-family: Times New Roman"&gt;Web&amp;nbsp;Socket&lt;/span&gt; &lt;span style="font-family: 宋体"&gt;应用程序之间的延迟对比&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;!-- EndFragment--&gt;&lt;p&gt;&lt;strong&gt;HTML5 Web Socket和Kaazing WebSocket网关&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;目前，只有Google的Chrome浏览器原生支持HTML 5 Web Socket，但其它浏览器也将提供支持，若要解决这个限制，Kaazing Web Socket网关为所有旧浏览器（IE 5.5+，Firefox 1.5+，Safari 3.0+和Opera 9.5+）提供了一个完整的Web Socket仿真，因此你现在就可以使用HTML 5 Web Socket API。&lt;/p&gt;&lt;p&gt;Web Socket很了不起，但在你的浏览器中有一个全双工套接字连接后可以做什么呢？为了充分利用HTML 5 Web Socket的全部功能，Kaazing为二进制通信提供了一个ByteSocket库，为诸如Stomp、AMQP、XMPP、IRC等协议提供了更高级的库，它们都是建立在Web Socket之上的。&lt;/p&gt;&lt;p&gt;例如，如果你为Stomp或AMQP协议使用了一个更高级的库，这时你可以直接与后端消息代理如RabbitMQ进行通信，通过直接连接服务，不再需要额外的应用程序服务逻辑将这些双向，全双工TCP后端协议转换成非双向，半双工HTTP连接，因为浏览器本身就可以理解这些协议。&lt;/p&gt;&lt;p sizset="38" sizcache="1"&gt;&lt;a href="http://images.51cto.com/files/uploadimg/20100317/091320353.jpg" target="_blank"&gt;&lt;img class="fit-image" height="334" alt="5 Kaazing Web &amp;#13;&amp;#10;Socket网关扩展基于TCP的消息，并具有更好的性能" src="http://images.51cto.com/files/uploadimg/20100317/091320353.jpg" width="468" border="0" /&gt; &lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: smaller"&gt;图&lt;span style="font-family: 'Times New Roman'"&gt;5&lt;/span&gt; &lt;span style="font-family: '宋体'"&gt;&amp;nbsp;：Kaazing&amp;nbsp;Web&amp;nbsp;Socket&lt;span style="font-family: 宋体"&gt;网关扩展基于&lt;/span&gt; &lt;span style="font-family: Times New Roman"&gt;TCP&lt;/span&gt; &lt;span style="font-family: 宋体"&gt;的消息，并具有更好的性能&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;!-- EndFragment--&gt;&lt;p&gt;&lt;strong&gt;总结&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;HTML 5 Web Socket在实时Web应用扩展性方面朝前迈出了一大步，正如你在本文中所看到的，HTML 5 Web Socket可以提供5000：1或 &amp;#8211; 根据HTTP消息头大小 &amp;#8211; 1000：1的比例减少不必要的HTTP头流量和3：1的比例减少通信延迟，这不是一个渐进式的改进，而是一次革命性的飞跃。&lt;/p&gt;&lt;p&gt;Kaazing Web Socket网关让HTML 5 Web Socket代码能够在所有浏览器中运行，同时提供额外的协议库允许你充分利用HTML 5 Web Socket提供的全双工套接字连接功能，直接与后端服务进行通信。&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/liunx/aggbug/2261373.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liunx/archive/2011/11/24/2261373.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liunx/archive/2011/10/26/2225208.html</id><title type="text">数据轮播(Data Carousel)发送端软件设计</title><summary type="text">随着数字技术、网络技术和多媒体技术的发展，广播电视系统正在向全面数字化的方向发展，数字化后的广播电视网络不仅可以传输视频、音频等信息，而且还可以传输包括图像、文字、数据等各种信息在内的多媒体综合信息，这类广播业务与音视频节目毫无关系，是数字电视广播的新应用。2004年3月，国家广电总局发布了《数字电视系统中的数据广播规范》(GY/T 201-2004)[1]，根据不同的应用类型定义了五种数据封装格式，分别是数据管道、数据流、多协议封装、数据轮播和对象轮播。本文利用该标准中数据轮播(DC, Data Carousel)的数据封装方法，实现了对天气预报、交通信息、股票信息等数据信息的广播。</summary><published>2011-10-26T06:55:00Z</published><updated>2011-10-26T06:55:00Z</updated><author><name>一条辉</name><uri>http://www.cnblogs.com/liunx/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liunx/archive/2011/10/26/2225208.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liunx/archive/2011/10/26/2225208.html"/><content type="html">&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 引言&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 随着数字技术、网络技术和多媒体技术的发展，广播电视系统正在向全面数字化的方向发展，数字化后的广播电视网络不仅可以传输视频、音频等信息，而且还可以传输包括图像、文字、数据等各种信息在内的多媒体综合信息，这类广播业务与音视频节目毫无关系，是数字电视广播的新应用。2004年3月，国家广电总局发布了《数字电视系统中的数据广播规范》(GY/T 201-2004)[1]，根据不同的应用类型定义了五种数据封装格式，分别是数据管道、数据流、多协议封装、数据轮播和对象轮播。本文利用该标准中数据轮播(DC, Data Carousel)的数据封装方法，实现了对天气预报、交通信息、股票信息等数据信息的广播。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;1 数据轮播基本原理&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 数据轮播是一种支持服务器端周期性地传输数据模块到用户端的数据广播业务。其中的数据模块是重复循环广播的，如果客户端希望接收数据轮播中的特定或指定模块，只需要在该模块广播时接收即可。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;1.1 数据轮播标准&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 我国在制订数据轮播标准时，主要采用了欧洲的DVB(Digital Video Broadcasting)标准[2-5]。在DVB规范中，信源部分采用的是MPEG-2国际标准[6]，MPEG-2在系统层详细定义了音视频数据的传输方法[7]，同时简单定义了非音视频数据的传输方法。ISO/IEC13818-6[8]数字存储媒体的命令和控制(DSM-CC, Digital Storage Media Command &amp;amp; Control)是数据广播的重要基础。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;1.2 数据轮播中数据的组织方式&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 数据轮播规范规定了数据从发送端到接收端的循环传输方法。同一个数据轮播中的数据是以模块(Module)的形式组织的，模块是已知大小的，模块又被分成数据块(Block)。如果业务需要，模块可以组成一个模块群(Group)，多个模块群还可以组成超群(Super Group)。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;1.3 数据轮播中的四种信息&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在数据轮播标准中，采用了DSM-CC规范中的四种信息：(1) 下载数据块消息DDB (DownloadDataBlock)；(2) 下载指示消息DII(DownloadInfoIndication)；(3) 下载服务器初始化消息DSI(DownloadServerInitiate)；(4) 下载取消消息DownloadCancel。其中，需要传输的数据封装在DDB中，控制信息封装在DSI、DII和DownloadCancel中。在DSI消息中，主要描述一个超群中一个或多个群的信息，这些信息包括组成超群的群的数目(NumberOfGroups)、每个群的群号(group_id)，群的大小(group_size)，还可以描述每个群的属性，比如采用Name_descriptor进行群的名字描述等等。在DII消息中，主要描述一个群中一个或多个模块的信息。包括该模块群中传输的数据块的大小(blockSize)，该群中模块的个数(NumberOfModules)，同时逐个描述该群中每个模块的信息，模块信息主要包括模块号(Module_id)，模块的大小(module_size)以及模块的版本号(module_version)，另外，在模块信息中(moduleInfobyte)还可以采用描述子对模块属性进行描述。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;1.4 数据轮播中数据的三次封装&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (1) 将轮播数据存入DDB消息的负载中，相应的控制信息放入DII和DSI消息中；&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (2) 将上一步获得的DDB、DII和DSI消息按照DSM-CC section的封装规范进行封装；&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (3) 将得到的DSM-CC表按照MPEG-2中对private section的处理方法封装成TS流。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 经过这三次封装，轮播数据就可以在数据广播网络中传输了。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;1.5 数据轮播的结构&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 数据轮播中有两种基本结构：一层的数据轮播和两层的数据轮播。一层数据轮播拥有一个控制层DII，该控制层描述了单个群。当需要两层控制信息时，DSI消息用于描述超群中的不同的群，DSI消息的用途和单层数据轮播中的用途一样。在本设计中采用一层的数据轮播结构。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;2 软件设计&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 本软件主要分为以下几个部分：用户界面部分，SI信息表生成部分，数据模块封装部分，控制信息生成部分以及TS流封装部分。它们的具体结构如图1所示。 &lt;!--source from www.dvbcn.com--&gt;&lt;div style="text-align: center"&gt;&lt;br /&gt;&lt;img style="width: 407px; height: 203px" height="203" alt="" src="http://www.dvbcn.com/files/content/2010-4/449220001.jpg" width="407" /&gt;&lt;br /&gt;图1 软件设计总体结构&lt;br /&gt;&amp;nbsp;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 下面对主要的SI信息和DSM-CC表进行设计。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;2.1 DDB的设置和消息封装&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 此部分将文件数据信息打包成DDB，并封装成DSM-CC分段(section)。在此次封装中，table_id=0x3C，说明DSM-CC分段中存放的是DDB消息。数据轮播对文件的大小是有限制的，因为DSI、DII和DDB是封装在DSM-CC分段中传输的，标准中规定每个分段不能超过4KB，以分段的大小为4096 B计算，DDB中的最大数据净荷为4066 B。同样可以计算出，一个分段可以容纳的群、模块的数目。一个分段最多可以容纳238个群或192个模块。并且每个模块最多可以包含256个DDB，因此一个模块的最大容量为4066&amp;#215;256 B。标准中规定，每个模块被分割为一个或多个数据块，这些数据块是封装在DDB中的，每个DDB消息具有相同的大小（除最后一个数据块的大小可能比较小以外）。在本设计中，采用了一个文件对应一个模块，一个DSM-CC分段对应一个DDB的数据组织方法。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (1) 如果播发文件小于4066 B，则只用一个DDB（或一个DSM-CC分段）就可以存放下，将table_id_extension设置为此消息的moduleid，last_section_number＝blockNumber＝0。并将生成的DDB文件以moduleid为名存储到指定的硬盘目录下。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (2) 如果文件大于4066 B但小于4 066&amp;#215;256 B，则需要对文件进行分块。根据文件的大小，计算分成的块的数量，并对每一块进行DSM-CC分段封装，并且有section_number＝blockNumber。注意，除最后一块外（最后一块的大小可能小于4066 B），所有块的大小均为4066 B。当对所有的块封装完毕后，这样就完成了DDB的整个DSM-CC分段的封装。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;2.2 DII的设置和消息封装&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 广播网络中模块的传输参数由DII消息来传送，在一个DII消息中可以传输同一个数据轮播的多个模块的传输参数。此部分将控制信息打包成DDB，并封装成DSM-CC分段。在此次封装中，table_id=0x3B，说明DSM-CC分段中存放的是DII消息。因为DII消息是作为顶级控制信息，transactionId=0x0000；downloadId的值同DDB中downloadId字段的值相同，在本软件设计中，可以根据实际情况自行设定模块个数，例如当有6个模块时，numberOfModules=0x0110。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;2.3 SI信息的生成&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在数据轮播中，SI信息主要包括NIT、SDT、PAT以及PMT，按顺序分别介绍如下。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (1) NIT表的设置&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NIT表被分成网络信息段(network_information_section)。任何构成NIT表的段，都要由PID为0x0010的TS包传输。描述本地网络的NIT表所有段的table_id=0x40。original_network_id 和 transport_stream_id 两个标识符相结合唯一确定了网络中的TS流。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (2) SDT表的设置&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SDT表被分成业务描述段(service_description_section)。任何构成SDT表的段，都要由PID为0x0011的TS包传输。描述本地网络的SDT表所有段的table_id=0x42。数据广播信息是通过SDT表中的data_broadcast_descriptor进行描述的，该描述符用于识别数据成分的类型并提供数据成分的文本描述，它所对应的descriptor_tag＝0x64。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data_broadcast_descriptor含有数据广播的特征信息，如数据广播的类型、播发比特率等信息。对于数据轮播来说data_broadcast_id=0x0006。data_broadcast_descriptor中的component_tag与PMT中的stream_identifier_descriptor中的component_tag具有相同的值，通过二者的关系可获得数据轮播的PID。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (3) PAT表的设置&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAT表提供一节目号和包含此节目定义的传送流分组的PID之间的关联。PAT表的节目关联分段(program_association_section)都要由PID为0x0000的TS包传输。PAT分段的table_id=0x00。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (4) PMT表的设置&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PMT表提供节目号码与组成它们的原始流之间的映射。任何构成SDT表的段，在标准中没有具体规定，其PID是私自定义的。在数据轮播中，stream_identifier_descriptor有效地建立了component_tag与PID的关联，可确定模块所在的PID；&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 将预播发文件中的数据作为TS流的负载并加上一定的表头和引导表（NIT表、SDT表、PAT表、PMT表和DSM-CC表（DII表、DSI表和DDB表）），形成完整的TS流，然后通过码流输出卡输出至复用器进行码流复用就可以在数据广播网络中传输了。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 软件实现&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 发送端把预播发文件进行打包，定制TS流的软件是在Visual C++环境编程下实现的，程序的主界面如图2所示。&lt;br /&gt;&lt;!--source from www.dvbcn.com--&gt;&lt;div style="text-align: center"&gt;&lt;br /&gt;&lt;img height="221" alt="" src="http://www.dvbcn.com/files/content/2010-4/449220002.jpg" width="286" /&gt;&lt;br /&gt;图2 数据轮播TS流生成系统界面&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 该界面主要由四个部分组成：&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (1) 参数部分： 参数部分共有四部分组成，分别为网络参数、传输系统参数、节目参数和数据轮播参数等，这些参数的值在TS流中是不确定的，需要由播发端在播发时设置。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (2) 预播发文件部分：在这部分中，指定需要封装成TS流的播发文件目录路径，本设计中可以播发任意类型的文件，例如天气预报、列车时刻表、航班信息、股票信息、房产信息、医疗信息等。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (3) TS流存放路径：确定生成TS流的名称和存放位置。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (4) 控制按钮部分：主要有两个按钮：生成TS流和退出；生成TS流按钮主要负责将选择的文件按照上面所介绍的各个表的设置方法将(2)中指定目录中的所有文件封装成完整的TS流文件；退出按钮用于退出操作界面。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 运行发送端生成TS流的程序，可以得到封装好的、完整的TS流文件。用已有的分析软件EPGDump分析生成的TS流，分析结果如图3所示。&lt;br /&gt;&lt;!--source from www.dvbcn.com--&gt;&lt;div style="text-align: center"&gt;&lt;br /&gt;&lt;img height="216" alt="" src="http://www.dvbcn.com/files/content/2010-4/449220003.jpg" width="279" /&gt;&lt;br /&gt;图3 对TS流的分析结果&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;4 结论&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;本文首先介绍了数据广播中的数据轮播规范，接着详细论述了数据轮播中的数据封装方式，并在Visual C++环境下设计软件实现了数据轮播发送端播发文件的TS流封装。结果表明，本文设计的软件系统能按照我国数据广播标准的要求，正确地对轮播数据进行封装，生成的TS流文件是完全符合数据广播标准的。数据广播是数字电视广播的重要组成部分，随着电视广播从模拟向数字化的过渡，数据广播在广播电视事业中的作用和影响也会越来越大。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;参考文献&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;[1] GY/T 201-2004, 数字电视系统中的数据广播规范 [S], 国家广播电影电视总局, 2004.03.&lt;br /&gt;[2] ETSI EN 300 468 V1.5.1, Digital Video Broadcasting (DVB) Specification for Service Information (SI) in DVB systems [S], 2003.05.&lt;br /&gt;[3] ETSI TR 101 211 V1.6.1, Digital Video Broadcasting (DVB) Guidelines on implementation and usage of Service Information (SI) [S], 2004.05.&lt;br /&gt;[4] TR.101.202.V1.1.1, Digital Video Broadcasting (DVB) Implementation guidelines for Data Broadcasting [S], 1999.02.&lt;br /&gt;[5] EN 301 192 V1.3.1, Digital Video Broadcasting (DVB) Specification for data broadcasting [S], 2003.05.&lt;br /&gt;[6] 钟玉琢, 王琦, 赵黎等. MPEG-2运动图像压缩编码国际标准及MPEG的新进展 [M], 北京: 清华大学出版社, 2002&lt;br /&gt;[7] ISO/IEC 13818-1, Generic Coding of Moving Picture and Associated Audio: systems [S], 1994.&lt;br /&gt;[8] ISO/IEC 13818-6, Generic Coding of Moving Picture and Associated Audio: Digital Storage Media Command &amp;amp; Control [S], 1996.06.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=" 楷体_GB2312"&gt;作者：天津大学电子信息工程学院 何宇清、王成优&lt;/font&gt;&lt;/p&gt;  &lt;img src="http://www.cnblogs.com/liunx/aggbug/2225208.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liunx/archive/2011/10/26/2225208.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liunx/archive/2011/10/23/2221646.html</id><title type="text">每个男人心中都有一段《西西里的美丽传说》</title><summary type="text">对玛莲娜说，美丽是一种罪，是一把匕首，朝向自己狠狠刺去的匕首，这不是她的错，是上帝的错，是社会的错。  每次看托纳多雷的片子，结束时心里都会有悲凉的感觉。如鲁迅所说，悲剧是把世界上美好的东西撕碎给人看。而导演总是营造一个美得令人窒息的东西出来然后再亲手撕碎，这就是世界，这就是现实。他总是把温情与残酷完美地融合为一体。不管事情多么糟糕，他从不用绝望做结。他总是留给人希望，对现实生活的希望。不管多么残酷，他从不曾熄了希望的光。是的，这个世界是残酷的，所以我们，更需要美好，需要希望，需要坚强。   我喜欢这样的女子，高贵、低调、坚韧而包容。</summary><published>2011-10-23T03:05:00Z</published><updated>2011-10-23T03:05:00Z</updated><author><name>一条辉</name><uri>http://www.cnblogs.com/liunx/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liunx/archive/2011/10/23/2221646.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liunx/archive/2011/10/23/2221646.html"/><content type="html">&lt;p&gt;中文片名：《西西里的美丽传说》&amp;nbsp; &lt;br /&gt;英文片名：（Malena）&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;其他译名：《真爱伴我行》 &lt;br /&gt;国别：意大利&amp;nbsp;&amp;nbsp; &lt;br /&gt;导演：朱塞佩&amp;#183;托纳托雷&amp;nbsp; &lt;br /&gt;主演：莫尼卡&amp;#183;贝鲁奇　朱塞佩&amp;#183;萨法罗&amp;nbsp; &lt;br /&gt;长度：113分钟&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&lt;img alt="" src="http://altes.cinemusic.de/2001/malena-1.jpg" border="0" /&gt;&lt;/p&gt;&lt;p&gt;剧情介绍：&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 二战期间，西西里的某城镇上居住着一位美丽的女人玛莲娜，她是众多男人的幻想。少年雷托纳就是其中一个，为她夜间遗精遭到父母痛打。这里虽然不是战场，但人心里却展开了一场战斗。因为嫉妒、欲望，玛莲娜被迫开始卖淫，战后又被众人赶出城镇。当她残废的丈夫回来时，所有人只是嘲笑，只有雷托纳偷偷告诉了他妻子的去向&amp;#8230;&amp;#8230;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 影片是以少年雷托纳的视角展开的，美丽的玛莲娜是他的老师，他的性意识萌动从她开始。他和伙伴们每天放学就要奔跑到路边，等待着风姿绰约的玛莲娜从身前走过。他所能做的只是幻想，而周围那些成年男人却用快掉了眼球的眼神注视着她。虽然她是独居，但是丈夫在战场上，一般的男人只有眼馋的份了。随着战争的进行，她丈夫阵亡的消息传来，同时玛莲娜在周围的人嫉妒和欲望下，丧失了工作，不得不卖淫为生。这下那些男人乐坏了。而女人更加嫉妒了。雷托纳从她那里得到了人生第一次体验。战后，玛莲娜被嫉妒的女人殴打出小镇，男人们保持了沉默&amp;#8230;&amp;#8230;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 少年偷窥的视线固然局限了情色的表达，但也增加了性挑逗的色彩。赤裸裸的性*爱可能会让人产生反感，但这部影片不会。影片在表现情色上把握的很好。女演员的身材、秀腿、气质，都让人产生遐想。也怪不得影片中的男人无论大人小孩，一个个瞧上去那副色迷迷的怪神情。&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; 《玛莲娜》投射出的不仅是一个少年的青春期萌动和性启发，更为重要的是人内心的善与恶放大到群体中的可怕。&lt;img style="width: 490px; height: 325px" height="325" alt="" src="http://www.monicabelluccifan.com/gallery/albums/Films/2000%20Malena/Stills/Malena_004.jpg" width="490" border="0" /&gt;&lt;/p&gt;&lt;p&gt;下载地址（迅雷）：DVD转rmvb 564.6M&lt;br /&gt;thunder://QUFmdHA6Ly9sYWRvOmZmZHlAZnRwMTkuZmZkeS5jbjoxMTI2L873zvfA77&lt;/p&gt;&lt;p&gt;XEw8DA9rSry7Uvvq215L7nx+mhts73zvfA77XEw8DA9rSry7Wht7jfx+XO+kRWRNbQ19Yucm12Ylpa&lt;/p&gt;&lt;script type="text/javascript"&gt;&lt;!--google_ad_client = "pub-7388487149134550";/* 468x15, 创建于 11-3-29 */google_ad_slot = "7765197048";google_ad_width = 468;google_ad_height = 15;//--&gt;&lt;/script&gt;&lt;script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;&lt;/script&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;评论：&lt;/p&gt;&lt;p&gt;1、原来很多人都在那时哭了。&lt;/p&gt;&lt;p&gt;她被打时，维利多为什么不站出来，至少喊一两声吧。电影到那时，我们都成维利多了，我们都爱上她了。她被打，被性侵，都对我们是一种折磨。这就是一部好电影！&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;2、&amp;#8220;只有重返旧地，才能重拾尊严&amp;#8221;&lt;/p&gt;&lt;p&gt;当玛莲娜和丈夫返回西西里，我不明白她为何回来。 &lt;br /&gt;后来在市场，两个妇女说了一句意大利的古语另我恍然大悟：&amp;#8220;只有重返旧地，才能重拾尊严&amp;#8221;。 &lt;br /&gt;是啊，玛莲娜的悲剧是战争的罪恶、是女人的嫉妒、是男人的贪婪造成的，她依然能放下怨恨，放下伤痛重返旧地，为的就是找回那原本属于自己的尊严。这也许是导演想通过电影传达给我们的一个意思吧。 &lt;br /&gt;还有片尾语&amp;#8220;岁月匆匆，而今我爱上过很多女人，当她们紧紧拥抱我时，问我会不会挂念她们，我相信我当时心里是会的；但唯一我一直没有忘记的，是一个从来没有问过我的人，她就是玛莲娜&amp;#8221;另我记忆深刻，初恋是多么美好值得回味的事情，尽管你可能有了新的女朋友，或者娶妻生子，但初识的恋人，是永远不可能忘记的，她或他一定藏在心中的一个秘密的角落，它只属于自己！ &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liunx/aggbug/2221646.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liunx/archive/2011/10/23/2221646.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liunx/archive/2011/10/04/2198840.html</id><title type="text">老子道德經</title><summary type="text">老 子 道 經唐 易 州 龍 興 觀 道 德 經 碑 本     一 章 道 ， 可 道 ， 非 常 道 ； 名 ， 可 名 ， 非 常 名 ． 無 名 ， 天 地始 ； 有 名 ， 萬 物 母 ． 常 無 ， 欲 觀 其 妙 ； 常 有 ， 欲 觀 其 徼． 此 兩 者 同 出 而 異 名 ， 同 謂 之 玄 ， 玄 之 又 玄 ， 眾 妙 之 門．</summary><published>2011-10-04T03:20:00Z</published><updated>2011-10-04T03:20:00Z</updated><author><name>一条辉</name><uri>http://www.cnblogs.com/liunx/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liunx/archive/2011/10/04/2198840.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liunx/archive/2011/10/04/2198840.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;font color="#66ffff"&gt;老 子 道 經&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;唐 易 州 龍 興 觀 道 德 經 碑 本 &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 一 章 &lt;p&gt;道 ， 可 道 ， 非 常 道 ； 名 ， 可 名 ， 非 常 名 ． 無 名 ， 天 地始 ； 有 名 ， 萬 物 母 ． 常 無 ， 欲 觀 其 妙 ； 常 有 ， 欲 觀 其 徼． 此 兩 者 同 出 而 異 名 ， 同 謂 之 玄 ， 玄 之 又 玄 ， 眾 妙 之 門． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 二 章 &lt;p&gt;天 下 皆 知 美 之 為 美 ， 斯 惡 已 ； 皆 知 善 之 為 善 ， 斯 不 善已 ． 故 有 無 相 生 ， 難 易 相 成 ， 長 短 相 形 ， 高 下 相 傾 ， 音聲 相 和 ， 前 後 相 隨 ． 是 以 聖 人 處 無 為 之 事 ， 行 不 言 之 教． 萬 物 作 而 不 辭 ， 生 而 不 有 ， 為 而 不 恃 ， 成 功 不 居 ． 夫唯 不 居 ， 是 以 不 去 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 三 章 &lt;p&gt;不 上 賢 ， 使 民 不 爭 ； 不 貴 難 得 之 貨 ， 使 民 不 盜 ； 不 見可 欲 ， 使 心 不 亂 ． 聖 人 治 ： 虛 其 心 ， 實 其 腹 ， 弱 其 志 ，強 其 骨 ． 常 使 民 無 知 無 欲 ， 使 知 者 不 敢 為 ， 則 無 不 治 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 四 章 &lt;p&gt;道 沖 ， 而 用 之 久 不 盈 ． 深 乎 ！ 萬 物 宗 ． 挫 其 銳 ， 解 其忿 ， 和 其 光 ， 同 其 塵 ． 湛 常 存 ． 吾 不 知 誰 子 ？ 象 帝 之 先． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 五 章 &lt;p&gt;天 地 不 仁 ， 以 萬 物 為 芻 狗 ； 聖 人 不 仁 ， 以 百 姓 為 芻 狗． 天 地 之 間 ， 其 猶 橐 蘥 ． 虛 而 不 屈 ， 動 而 俞 出 ． 多 言 數窮 ， 不 如 守 中 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 六 章 &lt;p&gt;谷 神 不 死 ， 是 謂 玄 牝 ． 玄 牝 門 ， 天 地 根 ． 綿 綿 若 存 ，用 之 不 勤 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 七 章 &lt;p&gt;天 長 地 久 ． 天 地 所 以 能 長 久 者 ， 以 其 不 自 生 ， 故 能 長久 ． 是 以 聖 人 後 其 身 而 身 先 ， 外 其 身 而 身 存 ． 以 其 無 私， 故 能 成 其 私 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 八 章 &lt;p&gt;上 善 若 水 ． 水 善 利 萬 物 ， 又 不 爭 ． 處 眾 人 之 所 惡 ， 故幾 於 道 ． 居 善 地 ， 心 善 淵 ， 與 善 人 ， 言 善 信 ， 政 善 治 ，事 善 能 ， 動 善 時 ． 夫 唯 不 爭 ， 故 無 尤 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 九 章 &lt;p&gt;持 而 盈 之 ， 不 若 其 以 ． 揣 而 銳 之 ， 不 可 長 保 ． 金 玉 滿堂 ， 莫 之 能 守 ． &lt;br /&gt;富 貴 而 驕 ， 自 遺 其 咎 ． 功 成 、 名 遂 、 身 退 ， 天 之 道 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 十 章 &lt;p&gt;載 營 魄 抱 一 ， 能 無 離 ？ 專 氣 致 柔 ， 能 嬰 兒 ？ 滌 除 玄 覽， 能 無 疵 ？ 愛 人 治 國 ， 能 無 為 ？ 天 門 開 闔 ， 能 為 雌 ？ 明白 四 達 ， 能 無 知 ？ 生 之 畜 之 ， 生 而 不 有 ， 為 而 不 恃 ， 長而 不 宰 ， 是 謂 玄 德 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 十 一 章 &lt;p&gt;三 十 輻 共 一 轂 ， 當 其 無 有 ， 車 之 用 ． 埏 埴 以 為 器 ， 當其 無 有 ， 器 之 用 ． 鑿 戶 牖 以 為 室 ， 當 其 無 有 ， 室 之 用 ．有 之 以 為 利 ， 無 之 以 為 用 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 十 二 章 &lt;p&gt;五 色 令 人 目 盲 ； 五 音 令 人 耳 聾 ； 五 味 令 人 口 爽 ； 馳 騁田 獵 ， 令 人 心 發 狂 ； 難 得 之 貨 ， 令 人 行 妨 ． 是 以 聖 人 為腹 不 為 目 ． 故 去 彼 取 此 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 十 三 章 &lt;p&gt;寵 辱 若 驚 ， 貴 大 患 若 身 ． 何 謂 寵 辱 ？ 辱 為 下 ． 得 之 若驚 ， 失 之 若 驚 ， 是 謂 寵 辱 若 驚 ． 何 謂 貴 大 患 若 身 ？ 吾 所以 有 大 患 ， 為 我 有 身 ． 及 我 無 身 ， 吾 有 何 患 ！ 故 貴 身 於天 下 ， 若 可 託 天 下 ； 愛 以 身 為 天 下 者 ， 若 可 寄 天 下 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 十 四 章 &lt;p&gt;視 之 不 見 ， 名 曰 夷 ； 聽 之 不 聞 ， 名 曰 希 ； 摶 之 不 得 ，名 曰 微 ． 此 三 者 不 可 致 詰 ， 故 混 而 為 一 ． 其 上 不 曒 ， 在下 不 昧 ． 繩 繩 不 可 名 ， 復 歸 於 無 物 ． 是 謂 無 狀 之 狀 ， 無物 之 象 ， 是 謂 忽 恍 ． 迎 不 見 其 首 ， 隨 不 見 其 後 ． 執 古 之道 ， 以 語 今 之 有 ． 以 知 古 始 ， 是 謂 道 已 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 十 五 章 &lt;p&gt;古 之 善 為 士 者 ， 微 妙 玄 通 ， 深 不 可 識 ． 夫 唯 不 可 識 ，故 強 為 之 容 ： 豫 若 冬 涉 川 ， 猶 若 畏 四 鄰 ， 儼 若 客 ， 渙 若冰 將 釋 ， 敦 若 朴 ， 混 若 濁 ， 曠 若 谷 ． 熟 能 濁 以 靜 之 ？ 徐清 ． 安 以 動 之 ？ 徐 生 ． 保 此 道 者 ， 不 欲 盈 ． &lt;br /&gt;夫 唯 不 盈 ， 能 弊 復 成 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 十 六 章 &lt;p&gt;致 虛 極 ， 守 靜 篤 ． 萬 物 並 作 ， 吾 以 觀 其 復 ． 夫 物 云 云， 各 歸 其 根 ． 歸 根 曰 靜 ， 靜 曰 復 命 ， 復 命 曰 常 ， 知 常 曰明 ． 不 知 常 ， 忘 作 ， 凶 ． 知 常 容 ， 容 能 公 ， 公 能 王 ， 王能 天 ， 天 能 道 ， 道 能 久 ， 沒 身 不 殆 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 十 七 章 &lt;p&gt;太 上 ， 下 知 有 之 ； 其 次 ， 親 之 豫 之 ； 其 次 ， 畏 之 侮 之． 信 不 足 ， 有 不 信 ！ 由 其 貴 言 ． 成 功 事 遂 ， 百 姓 謂 我 自然 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 十 八 章 &lt;p&gt;大 道 癈 ， 有 人 義 ． 智 惠 出 ， 有 大 偽 ． 六 親 不 和 ， 有 孝慈 ． 國 家 昏 亂 ， 有 忠 臣 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 十 九 章 &lt;p&gt;絕 聖 棄 智 ， 民 利 百 倍 ； 絕 民 棄 義 ， 民 復 孝 慈 ； 絕 巧 棄利 ， 盜 賊 無 有 ． &lt;br /&gt;此 三 者 ， 為 文 不 足 ， 故 令 有 所 屬 ： 見 素 抱 朴 ， 少 私 寡欲 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 二 十 章 &lt;p&gt;絕 學 無 憂 ． 唯 之 與 阿 ， 相 去 幾 何 ？ 善 之 與 惡 ， 相 去 何若 ？ 人 之 所 畏 ， 不 可 不 畏 ． 忙 兮 其 未 央 ！ 眾 人 熙 熙 ， 若享 太 牢 ， 若 春 登 臺 ． 我 魄 未 兆 ， 若 嬰 兒 未 孩 ． 乘 乘 無 所歸 ！ 眾 人 皆 有 餘 ， 我 獨 若 遺 ． 我 愚 人 之 心 ， 純 純 ． 俗 人昭 昭 ， 我 獨 若 昏 ． 俗 人 察 察 ， 我 獨 悶 悶 ． 淡 若 海 ， 漂 無所 止 ． 眾 人 皆 有 已 ， 我 獨 頑 似 鄙 ． 我 獨 異 於 人 ， 而 貴 食母 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 二 十 一 章 &lt;p&gt;孔 得 之 容 ， 唯 道 是 從 ． 道 之 為 物 ， 唯 恍 唯 忽 ． 忽 恍 中有 象 ， 恍 忽 中 有 物 ． 真 冥 中 有 精 ， 其 精 甚 真 ， 其 中 有 信． 自 古 及 今 ， 其 名 不 去 ， 以 閱 眾 甫 ． 吾 何 以 知 眾 甫 之 然？ 以 此 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 二 十 二 章 &lt;p&gt;曲 則 全 ， 枉 則 正 ； 窪 則 盈 ， 弊 則 新 ； 少 則 得 ， 多 則 或． 是 以 聖 人 抱 一 為 天 下 式 ． 不 自 見 ， 故 明 ； 不 自 是 ， 故彰 ； 不 自 伐 ， 故 有 功 ； 不 自 矜 ， 故 長 ． 夫 惟 不 爭 ， 故 天下 莫 能 與 之 爭 ． 古 之 所 謂 「 曲 則 全 」 ， 豈 虛 語 ？ 故 成 全而 歸 之 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 二 十 三 章 &lt;p&gt;希 言 自 然 ． 飄 風 不 終 朝 ， 驟 雨 不 終 日 ． 熟 為 此 ？ 天 地． 天 地 上 不 能 久 ， 而 況 於 人 ？ 故 從 事 而 道 者 ， 道 德 之 ；同 於 德 者 ， 德 德 之 ； 同 於 失 者 ， 道 失 之 ． 信 不 足 ， 有 不信 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 二 十 四 章 &lt;p&gt;企 者 不 久 ， 跨 者 不 行 ， 自 見 不 明 ， 自 是 不 彰 ， 自 伐 無功 ， 自 矜 不 長 ． &lt;br /&gt;其 在 道 ， 曰 餘 食 贅 行 ， 物 或 有 惡 之 ， 故 有 道 不 處 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 二 十 五 章 &lt;p&gt;有 物 混 成 ， 先 天 地 生 ． 寂 漠 ！ 獨 立 不 改 ， 周 行 不 殆 ，可 以 為 天 下 母 ． &lt;br /&gt;吾 不 知 其 名 ， 強 字 之 曰 道 ， 強 為 之 名 曰 大 ． 大 曰 逝 ，逝 曰 遠 ， 遠 曰 返 ． 道 大 ， 天 大 ， 地 大 ， 王 大 ． 域 中 有 四大 ， 而 王 處 一 ． 人 法 地 ， 地 法 天 ， 天 法 道 ， 道 法 自 然 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 二 十 六 章 &lt;p&gt;重 為 輕 根 ， 靜 為 躁 君 ． 是 以 君 子 終 日 行 ， 不 離 輜 重 ，雖 有 榮 觀 ， 燕 處 超 然 ． 如 何 萬 乘 之 主 ， 以 身 輕 天 下 ？ 輕則 失 臣 ， 躁 則 失 君 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 二 十 七 章 &lt;p&gt;善 行 ， 無 轍 跡 ； 善 言 ， 無 瘕 謫 ； 善 計 ， 不 用 籌 策 ； 善閉 ， 無 關 鍵 不 可 開 ； 善 結 ， 無 繩 約 不 可 解 ． 是 以 聖 人 常善 救 人 ， 而 無 棄 人 ； 常 善 救 物 ， 而 無 棄 物 ． 是 謂 襲 明 ．善 人 ， 不 善 人 之 師 ； 不 善 人 ， 善 人 之 資 ． 不 貴 其 師 ， 不愛 其 資 ， 雖 知 大 迷 ， 此 謂 要 妙 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 二 十 八 章 &lt;p&gt;知 其 雄 ， 守 其 雌 ， 為 天 下 蹊 ． 為 天 下 蹊 ， 常 德 不 離 ，復 歸 於 嬰 兒 ． 知 其 白 ， 守 其 黑 ， 為 天 下 式 ． 常 得 不 忒 ，復 歸 於 無 極 ． 知 其 榮 ， 守 其 辱 ， 為 天 下 谷 ． 為 天 下 谷 ，常 得 乃 足 ， 復 歸 於 朴 ． 朴 散 為 器 ， 聖 人 用 為 官 長 ． 是 以大 制 無 割 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 二 十 九 章 &lt;p&gt;將 欲 取 天 下 而 為 之 ， 吾 見 其 不 得 已 ． 天 下 神 器 ， 不 可為 ． 為 者 敗 之 ， 執 者 失 之 ． 夫 物 或 行 或 隨 ， 或 噓 或 吹 ，或 強 或 贏 ， 或 接 或 隳 ． 是 以 聖 人 去 甚 ， 去 奢 ， 去 泰 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 三 十 章 &lt;p&gt;以 道 作 人 主 者 ， 不 以 兵 強 天 下 ， 其 事 好 還 ： 師 之 所 處， 荊 棘 生 ． 故 善 者 果 而 已 ， 不 以 取 強 ． 果 而 勿 驕 ， 果 而勿 矜 ， 果 而 勿 伐 ， 果 而 不 得 以 ， 是 果 而 勿 強 ． 物 牡 則 老， 謂 之 非 道 ， 非 道 早 已 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 三 十 一 章 &lt;p&gt;夫 佳 兵 者 ， 不 祥 之 器 ， 物 或 惡 之 ， 故 有 道 不 處 ． 君 子居 則 貴 左 ， 用 兵 則 貴 右 ． 兵 者 不 祥 之 器 ， 非 君 子 之 器 ，不 得 已 而 用 之 ， 恬 惔 為 上 ， 故 不 美 ， 若 美 之 ， 是 樂 殺 人． 夫 樂 殺 者 ， 不 可 得 意 於 天 下 ． 故 吉 事 尚 左 ， 凶 事 尚 右． 是 以 偏 將 軍 居 左 ， 上 將 軍 居 右 ． 殺 人 眾 多 ， 以 悲 哀 泣之 ； 戰 勝 ， 以 哀 禮 處 之 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 三 十 二 章 &lt;p&gt;道 常 無 名 ． 朴 雖 小 ， 天 下 不 敢 臣 ． 王 侯 若 能 守 ， 萬 物將 自 賓 ． 天 地 相 合 ， 以 降 甘 露 ， 人 莫 之 令 而 自 均 ． 始 制有 名 ． 名 亦 既 有 ， 天 將 知 止 ． &lt;br /&gt;知 止 不 殆 ． 譬 道 在 天 下 ， 猶 川 谷 與 江 海 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 三 十 三 章 &lt;p&gt;知 人 者 智 ， 自 知 者 明 ． 勝 人 有 力 ， 自 勝 者 強 ． 知 足 者富 ， 強 行 有 志 ． &lt;br /&gt;不 失 其 所 者 久 ， 死 而 不 亡 者 壽 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 三 十 四 章 &lt;p&gt;大 道 汜 ， 其 可 左 右 ． 萬 物 恃 之 以 生 而 不 辭 ， 成 功 不 名有 ． 愛 養 萬 物 不 為 主 ， 可 名 於 大 ． 是 以 聖 人 終 不 為 大 ，故 能 成 其 大 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 三 十 五 章 &lt;p&gt;執 大 象 ， 天 下 往 ． 往 而 不 害 ， 安 平 太 ． 樂 與 餌 ， 過 客止 ． 道 出 言 ， 淡 無 味 ， 視 不 足 見 ， 聽 不 足 聞 ， 用 不 可 既． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 三 十 六 章 &lt;p&gt;將 欲 翕 之 ， 必 故 張 之 ； 將 欲 弱 之 ， 必 故 強 之 ； 將 欲 癈之 ， 必 固 興 之 ； 將 欲 奪 之 ， 必 固 與 之 ． 是 謂 微 明 ． 柔 勝剛 ， 弱 勝 強 ． 魚 不 可 脫 於 淵 ， &lt;br /&gt;國 有 利 器 ， 不 可 示 人 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 三 十 七 章 &lt;p&gt;道 常 無 為 而 無 不 為 ． 侯 王 若 能 守 ， 萬 物 將 自 化 ． 化 而欲 作 ， 吾 將 鎮 之 以 無 名 之 朴 ． 無 名 之 朴 ， 亦 將 不 欲 ． 不欲 以 靜 ， 天 下 將 自 正 ． &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;p&gt;&lt;strong&gt;&lt;font color="#66ffff"&gt;老 子 德 經&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;唐 易 州 龍 興 觀 道 德 經 碑 本 &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 三 十 八 章 &lt;p&gt;上 德 不 德 ， 是 以 有 德 ． 下 德 不 失 德 ， 是 以 無 德 ． 上 德無 為 而 無 以 為 ， &lt;br /&gt;下 德 無 為 而 有 以 為 ． 上 仁 為 之 而 無 以 為 ， 上 義 為 之 而有 以 為 ． 上 禮 為 之 而 莫 之 應 ， 則 攘 臂 而 仍 之 ． 故 失 道 而後 德 ， 失 德 而 後 仁 ， 失 仁 而 後 義 ， 失 義 而 後 禮 ． 夫 禮 者， 忠 信 之 薄 ， 而 亂 之 首 ． 前 識 者 ， 道 之 華 ， 而 愚 之 始 ．是 以 大 丈 夫 處 其 厚 不 處 其 薄 ， 居 其 實 不 居 其 華 ． 故 去 彼取 此 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 三 十 九 章 &lt;p&gt;昔 之 得 一 者 ： 天 得 一 以 清 ， 地 得 一 以 寧 ， 神 得 一 以 靈， 谷 得 一 以 盈 ， 万 物 得 一 以 生 ， 侯 王 得 一 以 為 天 下 正 ．天 無 以 清 ， 將 恐 裂 ； 地 無 以 寧 ， 將 恐 發 ； 神 無 以 靈 ， 將恐 歇 ； 谷 無 以 盈 ， 將 恐 竭 ； 萬 物 無 以 生 ， 將 恐 滅 ； 侯 王無 以 貞 ， 將 恐 蹶 ． 故 貴 以 賤 為 本 ， 高 以 下 為 基 ． 是 以 侯王 自 謂 孤 、 寡 、 不 轂 ， 此 其 以 賤 為 本 耶 非 ？ 故 致 數 車 無車 ． 不 欲 琭 琭 如 玉 ， 落 落 如 石 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 四 十 章 &lt;p&gt;反 者 道 之 動 ， 弱 者 道 之 用 ． 天 下 万 物 生 於 有 ， 有 生 於無 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 四 十 一 章 &lt;p&gt;上 士 聞 道 ， 勤 而 行 之 ； 中 士 聞 道 ， 若 存 若 亡 ； 下 士 聞道 ， 大 笑 之 ． 不 笑 不 足 以 為 道 ． 故 建 言 有 之 ： 明 道 若 昧， 進 道 若 退 ， 夷 道 若 類 ， 上 德 若 谷 ， 大 白 若 辱 ， 廣 德 若不 足 ， 建 德 若 偷 ， 質 真 若 渝 ， 大 方 無 隅 ， 大 器 晚 成 ， 大音 希 聲 ， 大 象 無 形 ． 道 隱 無 名 ． 夫 唯 道 ， 善 貸 且 善 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 四 十 二 章 &lt;p&gt;道 生 一 ， 一 生 二 ， 二 生 三 ， 三 生 万 物 ． 万 物 負 陰 而 抱陽 ， 沖 氣 以 為 和 ． 人 之 所 惡 ， 唯 孤 、 寡 、 不 轂 ， 而 王 公以 為 稱 ． 故 物 或 損 之 而 益 ， 或 益 之 而 損 ． 人 之 所 教 ， 我亦 教 之 ： 強 梁 者 不 得 其 死 ， 吾 將 以 為 教 父 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 四 十 三 章 &lt;p&gt;天 下 之 至 柔 ， 馳 騁 天 下 之 至 堅 ． 無 有 入 於 無 聞 ． 是 以知 無 為 有 益 ． 不 言 之 教 ， 無 為 之 益 ， 天 下 希 及 之 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 四 十 四 章 &lt;p&gt;名 與 身 熟 親 ？ 身 與 貨 熟 多 ？ 得 與 亡 熟 病 ？ 是 故 甚 愛 必大 費 ， 多 藏 必 厚 亡 ． 故 知 足 不 辱 ， 知 止 不 殆 ， 可 以 長 久． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 四 十 五 章 &lt;p&gt;大 成 若 缺 ， 其 用 不 弊 ． 大 盈 若 沖 ， 其 用 不 窮 ． 大 直 若屈 ， 大 巧 若 拙 ， 大 辯 若 訥 ． 躁 勝 塞 ， 靜 勝 熱 ， 清 靜 以 為天 下 正 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 四 十 六 章 &lt;p&gt;天 下 有 道 ， 卻 走 馬 以 糞 ； 天 下 無 道 ， 戎 馬 生 於 郊 ． 罪莫 大 於 可 欲 ， 禍 莫 大 於 不 知 足 ， 罪 莫 大 於 欲 得 ． 故 知 足之 足 ， 常 足 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 四 十 七 章 &lt;p&gt;不 出 戶 ， 知 天 下 ； 不 窺 牖 ， 見 天 道 ． 其 出 彌 遠 ， 其 知彌 近 ． 是 以 聖 人 不 行 而 知 ， 不 見 而 名 ， 不 為 而 成 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 四 十 八 章 &lt;p&gt;為 學 日 益 ， 為 道 日 損 ， 損 之 又 損 之 ， 以 至 於 無 為 ． 無為 無 不 為 ． 取 天 下 常 以 無 事 ， 及 其 有 事 ， 不 足 以 取 天 下． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 四 十 九 章 &lt;p&gt;聖 人 無 心 ， 以 百 姓 心 為 心 ． 善 者 吾 善 之 ， 不 善 者 吾 亦善 之 ， 得 善 ． 信 者 吾 信 之 ， 不 信 者 吾 亦 信 之 ， 得 信 ． 聖人 在 天 下 ， 怵 怵 ； 為 天 下 ， 渾 其 心 ． 百 姓 皆 注 其 耳 目 ，聖 人 皆 孩 之 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 五 十 章 &lt;p&gt;出 生 入 死 ． 生 之 徒 十 有 三 ， 死 之 徒 十 有 三 ， 人 之 生 ，動 之 死 地 ， 十 有 三 ． 夫 何 故 ？ 以 其 生 生 之 厚 ． 蓋 聞 善 攝生 者 ， 陸 行 不 遇 虎 兕 ， 入 軍 不 被 甲 兵 ． 兕 無 所 投 其 角 ，虎 無 所 措 其 爪 ， 兵 無 所 容 其 刃 ． 夫 何 故 ？ 以 其 無 死 地 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 五 十 一 章 &lt;p&gt;道 生 之 ， 德 畜 之 ， 物 形 之 ， 勢 成 之 ． 是 以 万 物 莫 不 尊道 而 貴 德 ． 道 之 尊 ， 德 之 貴 ， 夫 莫 之 命 而 常 自 然 ． 故 道生 之 ， 德 畜 之 ， 長 之 育 之 ， 成 之 熟 之 ， 養 之 覆 之 ． 生 而不 有 ， 為 而 不 恃 ， 長 而 不 宰 ， 是 謂 玄 德 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 五 十 二 章 &lt;p&gt;天 下 有 始 ， 以 為 天 下 母 ． 既 知 其 母 ， 又 知 其 子 ． 既 知其 子 ， 復 守 其 母 ． 沒 身 不 殆 ． 塞 其 兌 ， 閉 其 門 ． 終 身 不勤 ． 開 其 兌 ， 濟 其 事 ， 終 身 不 救 ． 見 小 曰 明 ， 守 柔 曰 強． 用 其 光 ， 復 歸 其 明 ， 無 遺 身 殃 ， 是 謂 習 常 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 五 十 三 章 &lt;p&gt;使 我 介 然 有 知 ， 行 於 大 道 ， 唯 施 是 畏 ． 大 道 甚 夷 ， 而人 好 俓 ． 朝 甚 除 ， 田 甚 蕪 ， 倉 甚 虛 ， 服 文 綵 ， 帶 利 劍 ，厭 飲 食 ， 財 貨 有 餘 ， 是 謂 盜 誇 ． 非 道 也 哉 ！ &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 五 十 四 章 &lt;p&gt;善 建 者 不 拔 ， 善 抱 者 不 脫 ， 子 孫 祭 祀 不 輟 ． 脩 之 身 ，其 乃 德 真 ； 脩 之 家 ， 其 德 有 餘 ； 脩 之 鄉 ， 其 德 乃 長 ； 脩之 於 國 ， 其 德 乃 豐 ； 脩 之 於 天 下 ， 其 德 乃 普 ． 故 以 身 觀身 ， 以 家 觀 家 ， 以 鄉 觀 鄉 ， 以 國 觀 國 ， 以 天 下 觀 天 下 ．吾 何 以 知 天 下 之 然 ？ 以 此 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 　 五 十 五 章 &lt;p&gt;含 德 之 厚 ， 比 於 赤 子 ． 毒 蟲 不 螫 ， 猛 獸 不 據 ， 玃 鳥 不搏 ． 骨 弱 筋 柔 而 握 固 ． 未 知 牝 牡 之 合 而 朘 作 ， 精 之 至 ．終 日 號 而 不 嗄 ， 和 之 至 ． 知 和 曰 常 ， 知 常 曰 明 ， 益 生 曰祥 ， 心 使 氣 曰 強 ． 物 壯 則 老 ， 謂 之 不 道 ， 不 道 早 已 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 五 十 六 章 &lt;p&gt;知 者 不 言 ， 言 者 不 知 ． 塞 其 兌 ， 閉 其 門 ， 挫 其 銳 ， 解其 忿 ， 和 其 光 ， 同 其 塵 ， 是 謂 玄 同 ． 故 不 可 得 而 親 ， 不可 得 而 疏 ； 不 可 得 而 利 ， 亦 不 可 得 而 害 ， 不 可 得 而 貴 ，亦 不 可 得 而 賤 ． 故 為 天 下 貴 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 　 　 五 十 七 章 &lt;p&gt;以 正 治 國 ， 以 奇 用 兵 ， 以 無 事 取 天 下 ． 吾 何 以 知 其 然？ 以 此 ． 天 下 多 忌 諱 ， 而 人 彌 貧 ； 人 多 利 器 ， 國 家 滋 昏； 人 多 伎 巧 ， 奇 物 滋 起 ； 法 物 滋 彰 ， 盜 賊 多 有 ． 故 聖 人云 ： 「 我 無 為 ， 人 自 化 ； 我 好 靜 ， 人 自 正 ； 我 無 事 ， 人自 富 ； 我 無 欲 ， 人 自 朴 ． 」 &lt;br /&gt;&amp;nbsp; &lt;p&gt;　&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 　 　 五 十 八 章 &lt;p&gt;其 政 悶 悶 ， 其 人 醇 醇 ； 其 政 察 察 ， 其 人 缺 缺 ． 禍 ， 福之 所 倚 ； 福 ， 禍 之 所 伏 ． 熟 知 其 極 ？ 其 無 正 ． 政 復 為 奇， 善 復 為 妖 ． 人 之 迷 ， 其 日 固 久 ． 是 以 聖 人 方 而 不 割 ，廉 而 不 害 ， 直 而 不 肆 ， 光 而 不 曜 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 　 五 十 九 章 &lt;p&gt;治 人 事 天 ， 莫 若 嗇 ． 夫 唯 嗇 ， 是 謂 早 服 ． 早 服 謂 之 重積 德 ． 重 積 德 則 無 不 剋 ， 無 不 剋 則 莫 知 其 極 ． 莫 知 其 極， 可 以 有 國 ． 有 國 之 母 ， 可 以 長 久 ． 是 謂 深 根 、 固 蔕 、長 生 、 久 視 之 道 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 六 十 章 &lt;p&gt;治 大 國 若 亨 小 鮮 ． 以 道 蒞 天 下 ， 其 鬼 不 神 ． 非 其 鬼 不神 ， 其 神 不 傷 人 ． 非 其 神 不 傷 人 ， 聖 人 亦 不 傷 人 ． 夫 兩不 相 傷 ， 故 得 交 歸 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 六 十 一 章 &lt;p&gt;大 國 者 下 流 ， 天 下 之 交 ， 天 下 之 牝 ． 牡 常 以 靜 勝 牝 ，以 靜 為 下 ． 故 大 國 以 下 小 國 ， 則 取 小 國 ； 小 國 以 下 大 國， 則 取 大 國 ． 故 或 下 以 取 ， 或 下 如 取 ． 大 國 不 過 欲 兼 畜人 ， 小 國 不 過 欲 入 事 人 ． 此 兩 者 各 得 其 所 欲 ， 大 者 宜 為下 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 六 十 二 章 &lt;p&gt;道 者 ， 萬 物 之 奧 ． 善 ， 人 之 寶 ； 不 善 ， 人 之 所 不 保 ．美 言 可 以 市 尊 ， 行 可 以 加 人 ． 人 之 不 善 ， 何 棄 之 有 ？ 故立 天 子 ， 置 三 公 ， 雖 有 拱 璧 以 先 駟 馬 ， 不 如 坐 進 此 道 ．古 之 所 以 貴 此 道 者 何 ？ 不 曰 求 以 得 ， 有 罪 以 勉 ， 故 為 天下 貴 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 六 十 三 章 &lt;p&gt;為 無 為 ， 事 無 事 ， 味 無 味 ． 大 小 多 少 ， 報 怨 以 德 ． 圖難 於 易 ， 為 大 於&amp;nbsp; 細 ． 天 下 難 事 ， 必 作 於 易 ； 天 下 大事 ， 必 作 於 細 ． 是 以 聖 人 終 不 為 大 ， 故 能 成 其 大 ． 夫 輕諾 必 寡 信 ， 多 易 必 多 難 ， 是 以 聖 人 猶 難 之 ， 故 終 無 難 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 六 十 四 章 &lt;p&gt;其 安 易 持 ， 其 未 兆 易 謀 ， 其 脆 易 破 ， 其 微 易 散 ． 為 之於 未 有 ， 治 之 於 未 亂 ． 合 抱 之 木 ， 生 於 毫 末 ； 九 層 之 臺， 起 於 累 土 ； 千 里 之 行 ， 始 於 足 下 ． 為 者 敗 之 ， 執 者 失之 ． 是 以 聖 人 無 為 ， 故 無 敗 ； 無 執 ， 故 無 失 ． 民 之 從 事， 常 於 幾 成 而 敗 之 ． 慎 終 如 始 ， 則 無 敗 事 ． 是 以 聖 人 欲不 欲 ， 不 貴 難 得 之 貨 ； 學 不 學 ， 復 眾 人 之 所 過 ． 以 輔 萬物 之 自 然 而 不 敢 為 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 六 十 五 章 &lt;p&gt;古 之 善 為 道 者 ， 非 以 明 人 ， 將 以 愚 之 ． 民 之 難 治 ， 以其 多 智 ． 以 智 治 國 ， 國 之 賊 ； 不 以 智 治 國 ， 國 之 福 ． 知此 兩 者 ， 亦 揩 式 ． 常 知 揩 式 ， 是 謂 玄 德 ． 玄 德 深 遠 ， 與物 反 ， 然 後 乃 至 大 順 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 六 十 六 章 &lt;p&gt;江 海 所 以 能 為 百 谷 王 ， 以 其 善 下 之 ， 故 能 為 百 谷 王 ．是 以 聖 人 欲 上 人 ， 必 以 言 下 之 ； 欲 先 人 ， 必 以 身 後 之 ．是 以 聖 人 處 上 而 人 不 重 ， 處 前 而 人 不 害 ， 是 以 天 下 樂 推而 不 厭 ． 以 其 不 爭 ， 故 天 下 莫 與 之 爭 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 六 十 七 章 &lt;p&gt;天 下 皆 謂 我 大 ， 不 肖 ． 夫 唯 大 ， 故 不 肖 ． 若 肖 ， 久 矣其 細 ！ 我 有 三 寶 ， 持 而 寶 之 ： 一 曰 慈 ， 二 曰 儉 ， 三 曰 不敢 為 天 下 先 ． 夫 慈 ， 故 能 勇 ； 儉 ， 故 能 廣 ； 不 敢 為 天 下先 ， 故 能 成 器 長 ． 今 捨 慈 且 勇 ， 捨 儉 且 廣 ， 捨 後 且 先 ，死 矣 ． 夫 慈 ， 以 戰 則 勝 ， 以 守 則 固 ． 天 將 救 之 ， 以 慈 衛之 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 六 十 八 章 &lt;p&gt;古 之 善 為 士 者 不 武 ， 善 戰 者 不 怒 ， 善 勝 敵 者 不 爭 ， 善用 仁 者 為 下 ． 是 謂 不 爭 之 德 ， 是 以 用 人 之 力 ， 是 謂 配 天古 之 極 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 六 十 九 章 &lt;p&gt;用 兵 有 言 ： 「 吾 不 敢 為 主 而 為 客 ， 不 敢 進 寸 而 退 尺 ．」 是 謂 行 無 行 ， 攘 無 臂 ， 仍 無 敵 ， 執 無 兵 ． 禍 莫 大 於 輕敵 ， 輕 敵 幾 喪 吾 寶 ． 故 抗 兵 相 加 ， 則 哀 者 勝 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 七 十 章 &lt;p&gt;吾 言 甚 易 知 ， 甚 易 行 ． 天 下 莫 能 知 ， 莫 能 行 ． 言 有 宗， 事 有 君 ． 夫 唯 無 知 ， 是 以 不 我 知 ． 知 我 者 希 ， 則 我 者貴 ． 是 以 聖 人 被 褐 懷 玉 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 七 十 一 章 &lt;p&gt;知 不 知 上 ， 不 知 知 ， 病 ． 是 以 聖 人 不 病 ． 以 其 病 病 ，是 以 不 病 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 七 十 二 章 &lt;p&gt;民 不 畏 威 ， 大 威 至 ． 無 狹 其 所 居 ， 無 厭 其 所 生 ． 夫 唯不 厭 ， 是 以 不 厭 ． 是 以 聖 人 自 知 不 自 見 ， 自 愛 不 自 貴 ．故 去 彼 取 此 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 七 十 三 章 &lt;p&gt;勇 於 敢 則 殺 ， 勇 於 不 敢 則 活 ， 知 此 兩 者 或 利 或 害 ． 天之 所 惡 ， 孰 知 其 &lt;br /&gt;故 ？ 天 之 道 ， 不 爭 而 善 勝 ， 不 言 而 善 應 ， 不 召 而 自 來， 坦 然 而 善 謀 ． 天 網 恢 恢 ， 疏 而 不 漏 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 七 十 四 章 &lt;p&gt;民 不 畏 死 ， 奈 何 以 死 懼 之 ？ 若 使 常 畏 死 ， 而 為 奇 者 ，吾 執 得 而 殺 之 ， &lt;br /&gt;熟 敢 ？ 常 有 司 殺 者 殺 ． 夫 代 司 殺 者 殺 ， 是 謂 代 大 匠 斲． 夫 代 大 匠 斲 ， 希 有 不 傷 其 手 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 七 十 五 章 &lt;p&gt;民 之 飢 ， 以 其 上 食 稅 之 多 ， 是 以 飢 ． 民 之 難 治 ， 以 其上 有 為 ， 是 以 難 治 ． 人 之 輕 死 ， 以 其 生 生 之 厚 ， 是 以 輕死 ． 夫 唯 無 以 生 為 者 ， 是 賢 於 貴 生 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 七 十 六 章 &lt;p&gt;人 生 之 柔 弱 ， 其 死 堅 強 ． 万 物 草 木 生 之 柔 脆 ， 其 死 枯槁 ． 故 堅 強 者 死 之 徒 ， 柔 弱 者 生 之 徒 ． 是 以 兵 強 則 不 勝， 木 強 則 共 ． 故 堅 強 處 下 ， 柔 弱 處 上 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 七 十 七 章 &lt;p&gt;天 之 道 ， 其 猶 張 弓 ！ 高 者 抑 之 ， 下 者 舉 之 ， 有 餘 者 損之 ， 不 足 者 與 之 ． 天 之 道 ， 損 有 餘 而 補 不 足 ； 人 道 則 不然 ， 損 不 足 ， 奉 有 餘 ． 熟 能 有 餘 以 奉 天 下 ？ 其 唯 有 道 者． 是 以 聖 人 為 而 不 恃 ， 功 成 不 處 ， 斯 不 見 賢 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 七 十 八 章 &lt;p&gt;天 下 柔 弱 莫 過 於 水 ， 而 攻 堅 ； 強 莫 之 能 先 ． 其 無 以 易之 ． 故 弱 勝 強 ， 柔 勝 剛 ， 天 下 莫 能 知 ， 莫 能 行 ． 故 聖 人云 ： 「 受 國 之 垢 ， 是 謂 社 稷 主 ； 受 國 不 祥 ， 是 謂 天 下 王． 」 正 言 若 反 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 七 十 九 章 &lt;p&gt;和 大 怨 ， 必 有 餘 怨 ， 安 可 以 為 善 ？ 是 以 聖 人 執 左 契 ，不 責 於 人 ． 故 有 德 司 契 ， 無 德 司 徹 ． 天 道 無 親 ， 常 與 善人 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 八 十 章 &lt;p&gt;小 國 寡 人 ， 使 有 什 伯 之 器 而 不 用 ， 使 人 重 死 而 不 遠 徙． 雖 有 舟 轝 ， 無 所 乘 之 ； 雖 有 甲 兵 ， 無 所 陳 之 ． 使 民 復結 繩 而 用 之 ． 甘 其 食 ， 美 其 服 ， 安 其 居 ， 樂 其 俗 ， 鄰 國相 望 ， 雞 狗 之 聲 相 聞 ， 民 至 老 死 ， 不 相 往 來 ． &lt;br /&gt;&amp;nbsp; &lt;p&gt;　 　 　 　 八 十 一 章 &lt;p&gt;信 言 不 美 ， 美 言 不 信 ． 善 者 不 辯 ， 辯 者 不 善 ． 知 者 不博 ， 博 者 不 知 ． &lt;br /&gt;聖 人 不 積 ， 既 以 為 人 己 愈 有 ， 既 以 與 人 己 愈 多 ． 天 之道 ， 利 而 不 害 ． 聖 人 之 道 ， 為 而 不 爭 ． &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liunx/aggbug/2198840.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liunx/archive/2011/10/04/2198840.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liunx/archive/2011/09/30/2196298.html</id><title type="text">一个令周润发感动流泪的故事《树》</title><summary type="text">很久以前，有一棵大大的苹果树。一个小男孩每天都喜欢来这儿玩。他有时爬到苹果树上吃苹果，有时躲在树荫里打个盹儿……时光流逝，小男孩渐渐长大。一天，男孩回到树旁，一脸忧伤。</summary><published>2011-09-30T03:33:00Z</published><updated>2011-09-30T03:33:00Z</updated><author><name>一条辉</name><uri>http://www.cnblogs.com/liunx/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liunx/archive/2011/09/30/2196298.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liunx/archive/2011/09/30/2196298.html"/><content type="html">&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 很久以前，有一棵大大的苹果树。一个小男孩每天都喜欢来这儿玩。他有时爬到苹果树上吃苹果，有时躲在树荫里打个盹儿&amp;#8230;&amp;#8230;时光流逝，小男孩渐渐长大。一天，男孩回到树旁，一脸忧伤。树说：&amp;#8220;和我一起玩吧！&amp;#8221;男孩回答：&amp;#8220;我已经不是小男孩了，我想要玩具，我想有钱来买玩具。&amp;#8221;树说：&amp;#8220;抱歉，我没有钱&amp;#8230;&amp;#8230;但是你可以摘下我的苹果拿去卖。&amp;#8221;男孩把苹果摘了个精光，开心地离去了。一天男孩回来了，树喜出望外。树说：&amp;#8220;和我一起玩吧！&amp;#8221;&amp;#8220;我没时间玩，我要干活养家，我们要盖房子住。你能帮我吗？&amp;#8221;&amp;#8220;你可以砍下我的树枝来盖房子。&amp;#8221;男孩把树枝砍了精光，树再次寂寞和难过。一个盛夏，男孩回来了，树雀跃万分。男孩说：&amp;#8220;我越来越老了，我想去划船，悠闲一下。你能给我一条船吗？&amp;#8221;&amp;#8220;用我的树干去造一条船吧。你可以开开心心地想划多远就划多远。&amp;#8221;男孩锯下树干，造了一条船，终于，多年以后，男孩回来了。树说：&amp;#8220;抱歉，我的孩子，可惜我现在什么也不能给你了&amp;#8230;&amp;#8230;我唯一留下的就是枯老的根了。&amp;#8221;树流着泪说。&amp;#8220;我现在只要有个地方歇一下就好了。经过了这些年，我太累了。&amp;#8221;男孩说：&amp;#8220;老树根是歇脚的最好的地方了。&amp;#8221;男孩坐了下来，树开心得热泪盈眶&amp;#8230;&amp;#8230;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="center"&gt;《20年和20分钟》&lt;/p&gt;&lt;p align="center"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#8212;&amp;#8212;张俊以&lt;/p&gt;&lt;p align="center"&gt;月亮最知我心&lt;/p&gt;&lt;p align="center"&gt;我爱错了一个人&lt;/p&gt;&lt;p align="center"&gt;长夜最懂得一言难尽&lt;/p&gt;&lt;p align="center"&gt;我让妈妈太伤心&lt;/p&gt;&lt;p align="center"&gt;20年的寒暑&lt;/p&gt;&lt;p align="center"&gt;20年的艰辛&lt;/p&gt;&lt;p align="center"&gt;妈妈&lt;/p&gt;&lt;p align="center"&gt;你把我养大成人&lt;/p&gt;&lt;p align="center"&gt;20分钟的甜言&lt;/p&gt;&lt;p align="center"&gt;20分钟的蜜语&lt;/p&gt;&lt;p align="center"&gt;她勾走了你的心&lt;/p&gt;&lt;p align="center"&gt;她勾走了你这个人&lt;/p&gt;&lt;p align="center"&gt;有了娘别忘了感恩&lt;/p&gt;&lt;p align="center"&gt;娘的话在你心中重千斤&lt;/p&gt;&lt;p align="center"&gt;媳妇不在了&lt;/p&gt;&lt;p align="center"&gt;你可以再找一个美人&lt;/p&gt;&lt;p align="center"&gt;如果妈妈不在了&lt;/p&gt;&lt;p align="center"&gt;你还到哪里去找世上最疼你的亲人&amp;#8230;&amp;#8230;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liunx/aggbug/2196298.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liunx/archive/2011/09/30/2196298.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liunx/archive/2011/07/25/2116000.html</id><title type="text">数字电视的电子节目指南(EPG)及其系统</title><summary type="text">数字电视由于传输数字化，多种业务可以混合在一起通过一个信道传输。因此，数字电视已经不是单一的电视业务，而是指通过电视传输通道传输的数字业务，包括 视频、音频、图像、数据等。全球数字电视已经进入快速发展阶段。可以预见，在今后几年，与数字电视相关的业务将大幅度增长。随之而来的问题是当数字电视 能为用户提供数倍于目前节目量的节目及多种业务时，用户怎样才能便捷地找到所要的节目和信息呢？电子节目指南(EPG)显然是必不可少的工具。</summary><published>2011-07-25T03:32:00Z</published><updated>2011-07-25T03:32:00Z</updated><author><name>一条辉</name><uri>http://www.cnblogs.com/liunx/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liunx/archive/2011/07/25/2116000.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liunx/archive/2011/07/25/2116000.html"/><content type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;数字电视由于传输数字化，多种业务可以混合在一起通过一个信道传输。因此，数字电视已经不是单一的电视业务，而是指通过电视传输通道传输的数字业务，包括 视频、音频、图像、数据等。全球数字电视已经进入快速发展阶段。可以预见，在今后几年，与数字电视相关的业务将大幅度增长。随之而来的问题是当数字电视 能为用户提供数倍于目前节目量的节目及多种业务时，用户怎样才能便捷地找到所要的节目和信息呢？电子节目指南(EPG)显然是必不可少的工具。&lt;/p&gt;&lt;p&gt;　  电子节目指南给用户提供一个容易使用的、界面友好的、可以快速访问节目的一种方式，用户还可以通过该功能收看一个或多个频道，甚至所有频道近期将播放的节 目。同时，EPG可提供分类功能，可以帮助用户浏览和选择各种类型的节目。当然电子节目指南对业务提供商也有很重要的意义。 &lt;/p&gt;&lt;p&gt;数字电视的信息&lt;/p&gt;&lt;p&gt;1、节目说明信息&lt;/p&gt;&lt;p&gt;　  在数字电视中，所有的信息和信号，包括视频、音频、文字、图片等经数字化后都变成了数据。数据在传输前要按照有关标准(一般是MPEG-2)打包，形成固 定长度的传送(TS)包，MPEG-2的TS包长为188字节，然后再通过网络快速传输到目的地。对于这些长度相同的TS包，如果没有引导信息，接收端解 码器是无法找到需要的码流的。因此，在MPEG-2中专门定义了PSI。PSI的作用是自动设置和引导解码器进行解码。 PSI由节目关联表(PAT)、条件接收表(CAT)、节目映射表(PMT)和网络信息表(NIT)组成，每个表分成若干段映射(变换)到TS中传输。&lt;/p&gt;&lt;p&gt;　  PSI的几个表包含了解码和重现节目所需信息，其主要作用是找到节目和要解压缩的码流。其中PAT是所有表的根，它的PID值为0。实际应用中，解码器要 对一特定码流解码时，首先要找到PAT。然后在PAT中找到所需节目(比如节目1)，根据节目1相应的PMT的PID(如22)，找到节目1的PMT。 PMT中可能包括多个数字码流(包括视频码流、音频码流和数据码流)，每个码流也有一个PID。如果要解码的是视频码流，则在PMT中找到视频码流的 PID是54，再到TS中去找PID是54的包，并把所有PID是54的包送到视频解码器。在PAT中，节目0总是为NIT预留的。&lt;/p&gt;&lt;p&gt;　 这里PID值是十进制的，在有关标准中分配的PID值是十六进制的，即用0&amp;#215;开头的值表示。如十进制的22、54，在十六进制中分别是0&amp;#215;16、0&amp;#215;36。&lt;/p&gt;&lt;p&gt;2、业务信息&lt;/p&gt;&lt;p&gt;　  PSI数据提供接收机能自动设置的信息，使之能对复用流中的不同节目流进行解码。但是PSI表不能提供有关业务和节目的识别信息。因此，DVB组织对 MPEG-2的PSI进行了扩展，提供了不同信息种类的多种表格，称之为SI。SI是用来描述传送系统、传送内容和广播数据流时间表等数据，它帮助综合接 收解码器(IRD)自动调谐，给用户提供附加信息，使IRD能自动设置可供选择的业务。 &lt;/p&gt;&lt;p&gt;　 SI由业务群关联表(BAT)、业务描述表(SDT)、事件信息表(EIT)等9个表提供，它们分成若干段映射到TS包中传输。&lt;/p&gt;&lt;p&gt;　 在PSI中，网络信息表(NIT)的内容是专用的且未作规定，但在SI表中专门定义了NIT的语法和语义，扩展了NIT的数据格式，旨在提供更多有关物理网络的信息。&lt;/p&gt;&lt;p&gt;　  与PSI中PAT、PMT、CAT不同的是，SI的9个表在实际使用中并不都是强制性传送的。在实际(现行)传送系统中，NIT、SDT、EIT及TDT 的传送是强制性的。在其它传送系统中，NIT、SDT、EIT是可选传送的。BAT、RST、TOT在任何情况下都是可选传送的。ST、SIT和DIT则 是需要时才存在。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;　 除携带时间表信息的EIT外，所有的PSI和SI表都不能加扰，以免影响解码器正常工作。&lt;/p&gt;&lt;p&gt;　 在实际应用中，节目播出前端将符合标准定义的PSI和SI表插入TS包，构成数字电视广播码流，传输给用户。接收端解码器根据PSI解复用和解码所需的码流，利用SI提供的数据构成各种功能的EPG。解码器根据包标识符(PID)和表标识符找到所需的码流和数据。&lt;/p&gt;&lt;p&gt;　 在插入TS之前，PSI和SI表被分成一段或若干段。段是用来把PSI和SI变换为TS包的语法结构，其长度是可变的。EIT的段限长4096字节，其余PSI和SI表的段限长1024字节。每段包含以下元素：表标识符、表标识符扩展、版本号和当前/后续指示符。&lt;/p&gt;&lt;p&gt;　 PSI和SI表分段映射到TS包后，带有相应的包标识符，用以指示TS包的性质。表标识符是为了标识段是属于什么表的。&lt;/p&gt;&lt;p&gt;　  PSI表只能在确切知道节目是什么、在什么时间播出时才能找到要解码的码流，并不提供有关节目是什么、在什么时间开始等信息，也没有多种码流的选择信息。 在数字电视业务不断增加的情况下，用户在选择业务时会感到很不方便。如果能将用户所需信息有序组织起来，提供类似节目报、又能在电视机上即时浏览的功能， 将大大方便用户使用。EPG正好能起到这种作用。&lt;/p&gt;&lt;p&gt;　 根据《数字电视广播业务信息规范》对EPG的要求，EPG应提供节目单和当前节目播放等基本功能，还可提供节目附加信息、节目分类、节目预订和家长分级控制等高级功能。&lt;/p&gt;&lt;p&gt;　 在交互电视中，EPG更复杂，应能提供诸如节目内容背景资料、视角切换、天气预报、游戏等功能。&lt;/p&gt;&lt;p&gt;　 EPG的这些功能均可通过SI提供的数据来实现。也就是说SI是实现EPG功能的前提。在SI表中，最重要的是NIT、EIT和SDT，利用这3个表中的数据就可以构造出功能不同的EPG。&lt;/p&gt;&lt;p&gt;3、网络信息表&lt;/p&gt;&lt;p&gt;　 在PSI中定义的NIT的传送是可选的。在SI中，要求在实际(现行)传送流中，NIT的传送是强制性的。 &lt;/p&gt;&lt;p&gt;　 NIT指出了传送当前业务的物理网络信息及该网络的特性，例如业务是通过何种传送系统(卫星或地面或有线)传送的、传送系统的有关参数等。任一网络由独立分配的网络标识符值唯一标识。 &lt;/p&gt;&lt;p&gt;　 NIT主要携带网络标识符、网络名称和传送系统参数等信息。&lt;/p&gt;&lt;p&gt;　 传送系统有两个标识，即网络标识符和原始网络标识符。当NIT在产生TS的网络上传送时，网络标识符和原始网络标识符取同一值。在原始网络标识符中的每个业务标识符都是唯一的。含于TS中的某个业务转移到另一传送系统时，网络标识符改变，原始网络标识符保持不变。&lt;/p&gt;&lt;p&gt;　 卫星传送系统的参数有：轨道位置、轨道的东西标志、频率、调制方式、极化方式、符号率及前向纠错(FEC)内码。&lt;/p&gt;&lt;p&gt;　 有线传送系统参数包括：频率、调制方式、FEC外码、符号率、FEC内码。　&lt;/p&gt;&lt;p&gt;　 地面传送系统参数我国还未定义。&lt;/p&gt;&lt;p&gt;　 NIT中提供的上述数据是供解码器自动搜索频道用的，也可以显示出来为用户提供参考数据。另外，还可以传输一些可选信息，如多语种提供网络名称、业务列表等。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;4、业务描述表 &lt;/p&gt;&lt;p&gt;　 SDT的每一个子表都对一个特定TS流中的业务进行描述。这些业务可能是实际TS流的一部分，也可能是其它TS流的一部分，可以通过不同的表标识符来区分。&lt;/p&gt;&lt;p&gt;　 SDT可分成若干业务描述段，任何构成SDT的段都要由PID为0&amp;#215;0011的TS包传送。&lt;/p&gt;&lt;p&gt;　 SDT提供业务所属的业务群、业务使用的加密系统、与其它业务的链接信息、该业务的准用国家、业务名称和业务提供者、业务是否允许NVOD，以及多画面的控制、实现交互式回传信道的电话号码和多语种业务名称等信息。&lt;/p&gt;&lt;p&gt;　 为了更容易获得有关业务，一般遵循这样一些规则：对于实际TS，SDT的传送是强制性的，而且在一特定TS的SDT中，SI码流至少应列出该TS中的所有业务信息；其它TS的SDT应当列出该TS的所有业务。&lt;/p&gt;&lt;p&gt;5、事件信息表&lt;/p&gt;&lt;p&gt;　 EIT按时间顺序提供每个业务中包含的事件的信息，其类型通过表识别符进行区别，见《数字电视广播业务信息规范》中的表2。任何构成EIT段均在PID为0&amp;#215;0012的传送包中进行传送&lt;/p&gt;&lt;p&gt;　 当前/后续事件信息表只包含给定业务中的当前和后续一个事件的信息，但在NVOD情况下可以有多于两个事件描述信息。&lt;/p&gt;&lt;p&gt;　 EIT提供的信息包括：事件的标识号、起始时间、节目长度；播放状态、是否加密；事件的详细介绍；两段同样事件的时间偏移；事件多语种的简短介绍；节目限定的级别等。&lt;/p&gt;&lt;p&gt;　 在所有PSI和SI表中，只有EIT的时间表可以被加扰。&lt;/p&gt;&lt;p&gt;电子节目指南的构成&lt;/p&gt;&lt;p&gt;　 根据NIT、SDT和EIT等SI表提供的信息，可以构成各种各样的EPG，使用户能通过多种方式找到所要的信息。&lt;/p&gt;&lt;p&gt;　 在数字电视系统中，对于电视台和用户来说，增加EPG功能是非常必要的，而EPG所需的信息正是由SI提供的。&lt;/p&gt;&lt;p&gt;　  实际上SI表提供的各种信息是通过描述符来实现的。《数字电视广播业务信息规范》中的表12列出了描述符在SI表中最可能出现的位置，从中可以看到，同一 类信息允许出现在多个SI表中，而且表示的是标识符最可能出现的位置，并没有限制在其它表中使用该标识符；此外，SI表提供的各种信息并不都是强制性的。 这样就为EPG前端系统和SI编辑器的开发提供了较大的空间和灵活性，同时也表明EPG是一种定制系统，它的功能与节目业务提供商打算向用户提供什么样的 服务有关。 &lt;/p&gt;&lt;p&gt;　 EPG包含两个部分：一是播出前端的EPG编辑器；二是用户端数字电视接收机中相应的接收/显示/控制软件。两部分一一对应，如果一个厂家的接收机产品要 进入一个业已采用某种EPG前端产品(数据结构封装)的传输网络(用户群体)，则必须按照前端定义的数据结构来改造其接收机的相关部分，从而接收显示前端 送出的业务信息。而在EPG前端编辑器中，根据所需的功能，将采用适当的描述符来提供有关的信息。 &lt;/p&gt;&lt;p&gt;EPG系统的组成&lt;/p&gt;&lt;p&gt;　 EPG系统分为前端子系统和接收端子系统，前端子系统主要负责SI数据的组织和生成，一般来说，由一个专门的SI复用器（SI Server ）来完成这部分工作，并把生成的SI数据与节目等的其它数据流进行系统层复用，在TS流中传输。&lt;/p&gt;&lt;p&gt;　 接收端子系统主要负责SI数据的接收、解析等。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;综 合接收解码器（Integrated Receive Decoder，IRD）从接收的TS流中解析出SI数据，并在本地建立SI数据库，用户通过EPG界面与SI数据库进行交互。为了方便用户的随机接入， SI数据是重复发送的，有关它的重传速率在EN 300 468[1]中有详细的规定。接收端不停地接收、解析来自发端的SI数据，当发端的SI数据改变时，SI数据库更新，否则接收的SI数据被丢弃。 &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;　  EPG的应用程序运行于数字电视的机顶盒中，应用程序管理器负责EPG应用的管理，上层的EPG API屏蔽了下层的软硬件实体，使编写EPG应用程序时可以不考虑底层的具体实现，只需调用相应的API函数，下层的DVB-SI API也是起同样的作用。下层的解复用模块接收TS流，解出DVB SI数据流，再经SI数据解析模块，生在SI信息表，存于本地数据库中，由DVB-SI API提供的接口向上层提供服务。&lt;/p&gt;&lt;p&gt;　 国内外的EPG系统的实现方案，概括起来主要有以下两种：&lt;/p&gt;&lt;p&gt;　  （1）本地应用方案：这种实现方案要求节目列表及详细信息作为业务信息的形式复用于MPEG-2传输层中，数据经信道传输后，在接收端的解码器对这些数据 进行解码，并在接收机RAM中形成专用的EPG数据库，EPG应用将检索数据库并根据用户输入的指令显示用户关心的节目信息。目前大多数厂商提供的EPG 采用该种实现方案。&lt;/p&gt;&lt;p&gt;　 （2）交互式实现方案：这种实现方案首先要求数字电视机顶盒的软件系统中有中间件（以HTML引擎为例），在发送端的EPG服务器将把HTML页面的形式 组织，通过数据广播信道传输到机顶盒，机顶盒通过HTML引擎显示这些页面，如同在PC世界中的浏览网页。用户与EPG的交互分成两种形式，对于没有回传 信道的情况下，HTML页面通过Da&lt;wbr&gt;ta Carousel发送，实现本地交互；而对于有回传信道的情况下，机顶盒将根据用户的输入从网络中获取新的所需页面。该方案以OpenTV为代表。&lt;/p&gt;&lt;p&gt;　 上述两种实现方案都要求业务信息或HTML页面随着时间迁移或节目修改而做相应变更，对于本地应用和本地交互方案还要求数据有一定的重传率，以保证EPG的随机接入。&lt;/p&gt;&lt;p&gt;　 比较上述两种实现方案，前者的EPG显示形式是由接收机中的EPG应用完全决定的，发送端只提供必须的信息条目，比较容易实现；后者的EPG显示形式完全由EPG服务器提供的页面决定，即由发送端决定。 &lt;/p&gt;&lt;p&gt;EPG系统的关键技术 &lt;/p&gt;&lt;p&gt;　  实现EPG系统主要有以下几个关键技术：发端的SI数据的组织和生成，接收端SI数据的接收和解析，接收端SI数据库的建立，EPG界面的显示等。其中有 些是用硬件实现，如SI数据的接收和解析；有些则用软件实现，如SI数据库的建立和EPG界面的显示。具体如下：&lt;/p&gt;&lt;p&gt;1、SI数据的组织和生成&lt;/p&gt;&lt;p&gt;　  发端的SI数据的组织和生成，由发端的SI服务器（SI Server）完成这部分功能，接收端的SI解析与此功能相反，主要负责SI数据表的重建。SI数据的组织要符合DVB-SI中的语法定义和MPEG-2 的语法定义，同时要纵观传输网络中的所有业务信息。信息内容应与PSI和SI表中的信息相对应，它可按照Network-Transport Stream-Service-Event的分层顺序描述，同时内嵌Transport Stream-Program(Service)-Element Stream的分层顺序。 &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2、SI数据库的建立 &lt;/p&gt;&lt;p&gt;　  SI数据必须按照一定的数据结构进行存储，这样才能方便、快捷地对其进行检索和数据的提取。特别是对EPG系统，运行于机顶盒的实时操作系统中，需要对用 户的交互进行实时的动作。SI数据库建立的好坏对其性能有重要的影响。SI数据主要有：网络信息、传输流信息、业务（节目）信息，业务的事件信息等，并且 大量的信息都是通过描述子来传输的，所以可用树状链表来存储数据，构成从网络、传输流、业务、事件的树状结构，传送不同信息的描述子用继承于同一基类的描 述子类来表示。 &lt;/p&gt;&lt;p&gt;3、EPG系统的显示技术 &lt;/p&gt;&lt;p&gt;　 当电视节目和EPG应用同时启动时，用户看到的可能是节目画面和EPG界面的叠加，用户所看到的电视画面从前到后可以分为三层，依次为图形层、视频层和背景层。&lt;/p&gt;&lt;p&gt;　  这里的图形层也就是下面所说的OSD（On Screen Display）层，OSD界面显示技术指在图像画面上叠加文字显示，使屏幕为用户提供更多的附加信息。视频层为当前正在收看的节目（解码出来的活动图 像）；背景层为没有播放电视节目和启动EPG菜单时的屏幕图像。EPG画面在图形层上构建，EPG画面是由许多EPG图形元素（如按钮、文本框、选择按 钮、组件容器等）叠加而成。界面的状态转移是通过消息驱动的机制来实现的，在消息响应函数中进行消息处理。见到的屏幕图像是这三层的叠加（blend）后 的图像。&lt;/p&gt;&lt;p&gt;　 EPG界面显示的总体思想是：SI数据与图形元素分离。包括以下几部分：SI数据的检索与提取，EPG界面所需的图形元素库，状态转移控制器，OSD层绘 制引擎，OSD层图、视频层、背景层及这三层的Blend操作。SI数据检索模块快速的检索本地SI数据库，提供EPG界面当前输入焦点所需的数据信息； OSD层图形元素库提供界面所需的图形元素，该库存于本地机顶盒的ROM中；状态转移控制器接收用户遥控器的输入，提供当前显示所需的活动焦点，控制状态 转移地流向；OSD层图像是指EPG界面图形元素合成后的图像；OSD绘制引擎决定显示的相应算法，接收各模块提供的数据，完成OSD层图形的绘制，最后 是OSD层、视频层和背景层的blend操作。&lt;/p&gt;&lt;p&gt;　 数字电视的优势不仅仅是提供高质量的视频、音频节目，更重要的是采用数字化处理后，提供了业务的灵活性和多样性。其中电子节目指南，它描述节目的播出时间 和简要内容，可帮助观众方便快速地寻找自己感兴趣的节目。将为观众收看电视带来极大的帮助，因此。必须重视数字电视的电子节目指南系统的研究和内容的制 作。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liunx/aggbug/2116000.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liunx/archive/2011/07/25/2116000.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liunx/archive/2011/07/25/2115998.html</id><title type="text">基于DVB-SI的数字有线电视机顶盒节目指南的设计实现</title><summary type="text">本文介绍了电子节目指南信息的构成以及MPEG-2 PSI和DVB-SI信息规范，提出了一种EPG信息的存储结构和节目数据库的生成方案，并据此讲述了如何在数字有线电视机顶盒中生成电子节目指南EPG。</summary><published>2011-07-25T03:31:00Z</published><updated>2011-07-25T03:31:00Z</updated><author><name>一条辉</name><uri>http://www.cnblogs.com/liunx/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liunx/archive/2011/07/25/2115998.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liunx/archive/2011/07/25/2115998.html"/><content type="html">&amp;nbsp;&lt;p align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;王景存　王瑞胡&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;北京科技大学信息工程学院&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;武汉科技大学信息科学与工程学院&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;摘要 本文介绍了电子节目指南信息的构成以及MPEG-2 PSI和DVB-SI信息规范，提出了一种EPG信息的存储结构和节目数据库的生成方案，并据此讲述了如何在数字有线电视机顶盒中生成电子节目指南EPG。&lt;/p&gt;&lt;p&gt;关键词 机顶盒 MPEG-2 PSI节目专用信息 DVB-SI业务信息 电子节目指南 &lt;/p&gt;&lt;p&gt;1 引言 &lt;/p&gt;&lt;p&gt;目前数字电视已经进入快速发展阶段，与数字电视相关的业务也将大幅度增长。当节目运营商将大量的节目信息通过有线网络提供给用户，用 户在欣赏高质量节目源的同时如何才能方便快捷地找到这些业务或信息就成了开发者们需要解决的一个关键问题。电子节目指南（EPG，Electronic Program Guide）正是为了方便用户对信息的获取而制作的运行于用户端综合接收解码器（IRD，Integrated Receiver Decoder）的应用程序，它通过电视屏幕向用户提供由文字、图形、图像组成的人机交互界面，负责电视节目和各种业务的导航[1]。用户通过电子节目指 南，能够了解到节目的相关信息（包括节目时间、播放时间、内容梗概等），并且实现对节目的快速检索和访问。 &lt;/p&gt;&lt;p&gt;EPG的形成依赖于节目播出前端将符合DVB（Digital Video Broadcasting）标准的业务信息（SI，Service Information）插入到承载节目信息的传送流（TS，Transport Stream）中，这些SI信息携带了EPG所需的全部数据。&lt;/p&gt;&lt;p&gt;2 电子节目指南信息的组成和传输 &lt;/p&gt;&lt;p&gt;电子节目指南信息（以下称EPG信息）由两部分组成：基本EPG信息和扩展EPG信息。 &lt;/p&gt;&lt;p&gt;基本EPG信息是指完全可以用《数字广播业务信息规范（GY/Z174-2001）》中的网络信息表NIT、业务群关联表BAT、业务描述表SDT、事件信息表EIT等进行描述的EPG信息。 &lt;/p&gt;&lt;p&gt;扩展EPG信息是指在基本EPG信息之外，通过数据轮播传递的EPG信息，这些信息的入口采用EPG映射表EMT进行描述，信息的内容被封装成具有多级目录结构的文件系统，称为扩展EPG内容信息（XECI）。 &lt;/p&gt;&lt;p&gt;　一个EPG系统至少应该包括基本EPG信息[ 2 ]。 &lt;/p&gt;&lt;p&gt;本文也仅就基本EPG信息进行论述。 &lt;/p&gt;&lt;p&gt;&amp;#8220;数据广播业务信息规范&amp;#8221;中NIT、BAT、SDT、EIT和EMT表都被分成一个或若干个段（section）来表示，然后插入到 TS包中。段是一种用来把SI信息表和EPG信息表映射为TS包的语法结构，这些信息符合GB/T 17975.1定义的专用段语法结构。段可直接映射到TS包中。段可能起始于TS包有效负载的起始处，但这并不是必须的，因为TS包有效负载的第一个段的 起始位置是由pointer_field字段指定的[ 3 ]。&lt;/p&gt;&lt;p&gt;3 MPEG-2 PSI节目专用信息与DVB-SI信息简介 &lt;/p&gt;&lt;p&gt;在数字电视中，所有的音、视频信号和数据信息经过编码后，在进入传输系统前，必须按照MPEG-2标准打包，形成固定长度的TS包， 包长为188字节或204字节。对于这些长度相同的包，如果没有引导信息，IRD是无法找到所需要的码流的。为此在MPEG-2标准中专门定义了节目专用 信息（PSI，Program Specification Information），其作用在于自动设置和引导IRD进行解码[ 4 ]。 &lt;/p&gt;&lt;p&gt;PSI信息由以下四种表组成： （1）节目关联表PAT; （2）节目映射表PMT; （3）网络信息表NIT; （4）条件访问表CAT。 &lt;/p&gt;&lt;p&gt;在实际应用中，解码器IRD要对某一路特定码流进行解码时，首先要找到PAT表，根据PAT表找到所需的节目及该节目对应的PMT表 的PID。PMT表中可能包含多个数字码流，每个码流都有一个唯一的PID与之对应。如果要解码的是视频码流，则在PMT表中找到video PID值，再从TS流中过滤出PID值与之匹配的TP包并送到视频解码器。 &lt;/p&gt;&lt;p&gt;MEPG-2的PSI信息提供了相关节目组成和相互关系的信息，从而使得接收端IRD可以对多路传输流进行解析，但是这些信息在实 际应用中仍显得不够，它不能提供节目的名称、节目的开始时间、持续时间及节目的附加信息等。为此在DVB中扩展定义了SI业务信息。PSI信息基本上都是 与现行流（AS，Actual Stream）相关的，而SI信息则可以包括不在现行流中的一些业务和事件信息，从而允许用户进行更多的选择和了解更多的其它业务信息。 &lt;/p&gt;&lt;p&gt;与PSI定义的四种表不同，SI中定义了9种表，其中构成基本EPG信息的最重要的表是网络信息表NIT、业务描述表SDT和事件信息表EIT。 SI 表传送的信息都是通过描述符（descriptor）的形式给出的。 &lt;/p&gt;&lt;p&gt;每个描述符都以descriptor_tag（用于唯一标识descriptor的类型）和descriptor_length开始。不同的描述符用于描述不同SI表中承载的信息[ 6 ]。&lt;/p&gt;&lt;p&gt;4 系统介绍 &lt;/p&gt;&lt;p&gt;本EPG系统是在STMicroelectronic公司所提供的机顶盒开发方案上实施的，其主控制芯片采用STi5518，内部集 成有32位主CPU、专用DVB传输流解复用和解扰模块、MEPG-2音、视频解码单元、数字视频编码器及各种接口等。与之配套的软件开发平台选用的也是 该公司开发的STLite/OS20嵌入式操作系统，支持多任务、存储器管理、进程调度、定时器管理等实时特性。该系统能实时接收用户通过遥控按键或前面 板触发的交互信号，实现节目基本信息的浏览、节目列表的生成、节目之间的跳转以及节目预告信息的查询等。&lt;/p&gt;&lt;p&gt;5 系统设计及实现&lt;/p&gt;&lt;p&gt;5.1 EPG信息的存储结构 &lt;/p&gt;&lt;p&gt;TS流里携带的EPG数据信息通过IRD接收以后都以树状链表的结构存储在PROG_INFO_STRUCT和TRANSPONDER_INFO_STRUCT这样两个结构中。 &lt;/p&gt;&lt;p&gt;在本机顶盒有关节目操作的各项功能中，绝大部分都与节目数据库有关，比如自动节目搜索时，需要建立节目数据库，并为搜索到的节目在数 据库中建立相应的数据单元，用于存储该节目的各种信息；在切换节目时，需要根据不同节目中音、视频数据的PID值从而选择不同的码流进行音、视频解码等。 &lt;/p&gt;&lt;p&gt;节目数据库主要来自PSI表的内容。 &lt;/p&gt;&lt;p&gt;在具体的软件实现过程中，节目数据库的建立主要通过ParsePAT（）、ParsePMT（）两个函数来实现。ParsePAT（）函数调用的结果是得到有线传输系统中不同的节目PID，而ParsePMT则获取各个节目中音、视频码流的PID值 &lt;/p&gt;&lt;p&gt;5.2 节目跳转的实现 &lt;/p&gt;&lt;p&gt;系统响应用户在不同节目之间的切换时，需要将用户选定节目的音、视频码流从复用的多路节目码流中提取出来并分别送到音、视频解码器进 行解码。它依赖于硬件可编程传输接口（PTI，Programmable Transport Interface）来实现。在系统生成的节目数据库结构中的stProgNo变量存储有转发器号TransponderId及节目的音、视频PID值。&lt;/p&gt;&lt;p&gt;5.3 事件信息的获取 &lt;/p&gt;&lt;p&gt;事件信息表EIT按时间顺序提供每个业务中包含的事件的信息。（这里的事件相当于传统意义上的节目，而业务则指的是提供节目源的某个 电视台，如业务&amp;#8220;中央电视台-1&amp;#8221;的事件&amp;#8220;新闻联播&amp;#8221;。）EIT包含两种不同类型的表，分别为EIT present/following（简称EIT p/f）和EIT Schedule（EIT-S）。EIT p/f给出了指定业务中当前和后一个事件的信息，而EIT-S则包含一周内或更长时间的节目预告信息。任何构成EIT的event information section均在PID为0x0012的TS包中传输，它给出了业务中事件的名称、事件开始时间、持续时间及其他一些信息。 &lt;/p&gt;&lt;p&gt; 以下以EIT p/f为例来讲述事件信息的获取方式： &lt;/p&gt;&lt;p&gt; 在EIT p/f中，每个业务service都用两个section分别来描述当前（present）和后续（following）信息，其中的section number为0 的用来描述当前事件，而section number为1的section则用来描述后续事件。 &lt;/p&gt;&lt;p&gt;在节目信息结构PROG_INFO_STRUCT中，定义了EVENT_INFO_BASIC类型的二维数组 event_info_database[2]用来存放一个业务中的present和following事件的信息。这些信息包括事件的名称、事件的开始 时间、事件的持续时间。 &lt;/p&gt;&lt;p&gt;事件的日期和时间在TS流里是按照MJD（Modified Julian Date，修正的儒略日期）+ UTC（Universal Time Co-ordinate，通用时间坐标）的格式并以16进制的形式给出的。在MJD+UTC和local MJD+local time之间的转换可参照GY/Z174-2001来进行。如TS流里的数据为0xCE1F 0056 0001 0600，则转换以后得到的信息为：该事件的播出时间为2003年5月8日，星期四，开始时间为00：56：00，持续时间为01：06：00。 &lt;/p&gt;&lt;p&gt;而事件的名称则通过解析描述符short_event_descriptor来实现。并将得到的信息存储在event_info_database结构中。 &lt;/p&gt;&lt;p&gt;所有解析得到的信息最终都将存储在节目数据库中，提供给显示模块直接调用。&lt;/p&gt;&lt;p&gt;6 结束语 &lt;/p&gt;&lt;p&gt;真正完整意义上的EPG的功能是十分强大的，它不仅能提供节目表单和当前节目播放等基本功能，还可提供节目预定和家长分级控制等高级 功能。本文从实用的角度给出了一个基本EPG系统的实现方案。另外我们也实现了EPG交互式应用中的SI增值业务如天气预报、新闻、股票数据等的接收，以 菜单触发的形式提供给用户一个由文本和图形组成的反馈信息。 &lt;/p&gt;&lt;img src="http://www.cnblogs.com/liunx/aggbug/2115998.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liunx/archive/2011/07/25/2115998.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liunx/archive/2011/07/25/2115956.html</id><title type="text">电子节目指南(EPG)在机顶盒中的实现</title><summary type="text">电子节目指南(Electronic Program Guide，EPG)，是指在符合MPEG-2 (13818-1)的TS传输流中插入DVB标准定义的业务信息(Service Information，SI)，使机顶盒(Set-Top-Box)的综合接收解码器(IRD)可以从TS流中提取出节目提供商播出节目的列表和播出参数，以直观的形式显示给数字电视用户，使得用户可以方便地接收、选择数字电视节目。EPG信息由两部分信息组成(如图)：基本EPG信息和扩展EPG信息。</summary><published>2011-07-25T03:00:00Z</published><updated>2011-07-25T03:00:00Z</updated><author><name>一条辉</name><uri>http://www.cnblogs.com/liunx/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liunx/archive/2011/07/25/2115956.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liunx/archive/2011/07/25/2115956.html"/><content type="html">&lt;p&gt;　一 EPG简介 &lt;/p&gt;&lt;p&gt;电子节目指南(Electronic Program Guide，EPG)，是指在符合MPEG-2 (13818-1)的TS传输流中插入DVB标准定义的业务信息(Service Information，SI)，使机顶盒(Set-Top-Box)的综合接收解码器(IRD)可以从TS流中提取出节目提供商播出节目的列表和播出参数，以直观的形式显示给数字电视用户，使得用户可以方便地接收、选择数字电视节目。EPG信息由两部分信息组成(如图)：基本EPG信息和扩展EPG信息。 &lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="转 EPG DVB 节目跳转 - challenge0816 - 翱翔" src="http://ithaha.bokee.com/inc/epg.bmp" __1311562447031__="ev_4196596345" /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;基本EPG信息是指完全可以用《数字广播业务信息规范(GY/Z174-2001)》中的网络信息表(Network Information Table，NIT)、业务群关联表(BAT)、业务描述表(SDT)和事件信息表(EIT)进行描述的EPG信息。扩展EPG信息是指在基本EPG信息 之外，通过数据轮播传递的EPG信息，这些信息的入口采用EPG映射表(EMT)进行描述，信息的内容被封装成具有多级目录结构的文件系统，称为扩展 EPG内容信息(XECI)。 &lt;/p&gt;&lt;p&gt;在数字电视节目的播出过程中，可以加入辅助的SI信息，供机顶盒解码器的开发者来实现五花八门的电 子节目指南的导航功能。利用机顶盒收看数字电视节目，用户通过EPG不仅能够接收普通的电视节目、广播节目或图文电视节目，而且，还可以查看感兴趣的信 息，比如：按节目分类(如音乐节目、体育节目、电影等)检索节目、按节目提供者检索节目、查看未来一段时间内节目播出表以及视频网络中节目播出情况等信 息。 &lt;/p&gt;&lt;p&gt;二 PSI/SI信息及其功能 &lt;/p&gt;&lt;p&gt;1. PSI信息 &lt;/p&gt;&lt;p&gt;MPEG-2中的传送码流是根据 ITU-TRecH220、ISO/IECDIS13818-2和ISO/IEC13818-3协议定义的一种数据流，其目的是为了在有可能发生严重错误 的环境下进行一道或多道程序的编码数据的传送和存储。这种错误表现为比特值错误或分组丢失。传送流的速率可以是变化的或固定不变的。传送流速率由节目参考 时钟(PCR)字段的位置和数值决定，通常对于每个程序都有自己的PCR字段。传送流中有关PID的信息及各PID之间的关系包含在节目特定信息 (Program Specific Information，PSI)中，MPEG-2解码器将使用PSI信息来自动设置解码所需的各种参数。PSI信息使用4个表来定义码流的结构：节目关 联表(Program Association Table，PAT)、节目映射表(Program Map Table，PMT)、NIT、条件访问表(Conditional Access Table，CAT)。 &lt;/p&gt;&lt;p&gt;(1)PAT：PAT表的PID号为&amp;#8220;0x00&amp;#8221;，解复用器工作总是通过寻找PAT表开始。PAT给出了构成传送流中各个节目业务的PMT的PID，可根据节目PID找到相应的PMT包；同时也给出了NIT的PID号。 &lt;/p&gt;&lt;p&gt;　 　(2)PMT：PMT表指出了组成节目业务(Service)的各个码流的PID号，并对各路码流进行描述。PMT表提供程序号码与组成它们的原始流之 间的映射，这种映射表是一个传送流中所有程序定义的集合。此表将在分组中传送，其PID值是私自选择的。如果需要的话，可以使用多个PID值。 &lt;/p&gt;&lt;p&gt;　 　(3)NIT：NIT表由ETS300468定义，它符合ISO/IEC13818-1标准，其内容是私有的，目的是提供有关物理网络的信息。如果存 在，Network PID值由用户定义，并且应在PAT表中定义，其Program Number为保留的0x0000。 &lt;/p&gt;&lt;p&gt;(4) CAT：CAT表提供一个或多个CA系统，PID值固定由0x0001标识。CAT表提供系统中条件接入的信息，指定CA系统与它们相应的权限管理信息 EMM(Entitlement Management Messages)信息之间的联系，指定EMM的PID，以及其它相关的参数。 &lt;/p&gt;&lt;p&gt;2. SI信息 &lt;/p&gt;&lt;p&gt;　 　MPEG-2在PSI中提供了不少有关节目组成和相互关系的信息，从而使得在接收端可以正确地对TS流进行解复用。但是这些信息在实际使用时仍然显得不 够，为此在DVB标准中采用SI信息对PSI信息进行了进一步的扩展。PSI中的信息基本上都是与当前码流相关，即它们所涉及的内容都与当前码流中的部分 信息相关；而SI信息可以包括不在当前码流中的一些服务和事件，允许用户进行更多的选择和了解更多的其他服务。 &lt;/p&gt;&lt;p&gt;SI信息表主要有以下内容： &lt;/p&gt;&lt;p&gt;(1)BAT：BAT表提供了所涉及的有关节目业务群的信息，包括节目业务群名称及节目业务群所包含的节目业务清单。利用BAT可以方便地进行相关节目或某一类节目的浏览和选择。 &lt;/p&gt;&lt;p&gt;(2)SDT：SDT表用于描述系统中服务的名称、服务提供者、是否有相应的事件描述表等方面的信息；服务描述表可以描述当前传输流，也可以描述其他传输流，这由表的Table ID来区分。 &lt;/p&gt;&lt;p&gt;(3)EIT：EIT表包含事件或节目的有关数据，如事件的名称、开始时间、时间长度、运行状态等。 &lt;/p&gt;&lt;p&gt;(4)RST：RST表提供某一事件或多个事件的运行状态和时间，即某一事件运行或不运行的信息，如：正在运行、即将运行、暂停、不运行等，可用于按时自动切换到指定的事件。 &lt;/p&gt;&lt;p&gt;(5)TDT：TDT表给出了当前的时间和日期相关的信息。由于这些信息更新频繁，所以需要使用一个单独的表。 &lt;/p&gt;&lt;p&gt;(6)TOT：TOT表给出当前的时间、日期和本地时间偏移相关的信息。 &lt;/p&gt;&lt;p&gt;(7)ST：ST表的作用是表明其内容是无效的，只是作为填充字节，不传递有用信息。 &lt;/p&gt;&lt;p&gt;SI信息是用来描述传送系统，传送内容和广播数据流时间表等的数据，是补充MPEG-2中PSI的附加数据，这些数据帮助IRD自动调谐，给用户提供附加信息，使IRD能自动设置可供选择的业务。各业务信息表均分配了特定的PID，如表所示。 &lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="转 EPG DVB 节目跳转 - challenge0816 - 翱翔" src="http://ithaha.bokee.com/inc/pid.bmp" __1311562447031__="ev_5170246913" /&gt;&lt;/p&gt;&lt;p&gt;头端系统每隔一定周期将重复传送SI信息，对于最高速率为100Mb/s的传送流而言，重复传送SI信息的最小间隔为25ms。这样，对于开机的用户，在很短的时间内，就可以接收到SI，构成EPG所需的各项条款。&lt;/p&gt;&lt;p&gt;三 EPG的设计和实现方法 &lt;/p&gt;&lt;p&gt;1. EPG信息的提取 &lt;/p&gt;&lt;p&gt;　 　一般而言，PAT表的PID号为&amp;#8220;0x00&amp;#8221;，解复用器工作总是通过寻找PAT表开始。PAT给出了构成传送流中各个节目业务的PMT的PID，同时也 给出了NIT的PID号。根据PID值及对应的Table ID值可以从流中解出相应的PMT、NIT、SDT、EIT等信息。机顶盒接收端的解析主要负责这些SI数据信息的重建。信息内容应与PSI和SI表中的 信息相对应，它可按照Network-Transport Stream-Service-Event的分层顺序描述，同时内嵌Transport Stream-Program(Service)-Element Stream的分层顺序。SI数据信息必须按照一定的数据结构进行存储，这样才能方便、快捷地对其进行检索和提取数据。特别是对于运行于机顶盒的实时操作 系统中的EPG，需要对用户的交互进行实时的动作，所以对响应速度的要求很高，SI数据库建立的好坏对其性能有重要的影响。SI数据主要有：网络信息、传 输流信息、业务(节目)信息，业务的事件信息等，并且大量的信息都是通过描述子来传输的，所以可用树状链表来存储数据，构成从网络、传输流、业务、事件的 树状结构，传送不同信息的描述子用继承于同一基类的描述子类来表示。 &lt;/p&gt;&lt;p&gt;网络信息表传送本网络以及与此有关的其它网络的一些信息。每个网络都 有唯一的识别符，网络编码请参看ETR162。网络信息表主要携带：网络识别符(Network_ID)、网络名称、传输系统参数(有线传输系统参数包 括：频率、调制方式、FEC外码、符号率、FEC内码)、节目业务类型及Service_ID等信息。如果NIT表中有关于传输系统参数的正确描述，只要 调谐到携带此NIT表的传送流中，即可提取其它网络的参数，一般解码器便可根据提取出来的信息，自动搜索频道。 &lt;/p&gt;&lt;p&gt;节目业务描述表提供了如下 的信息：属于哪一个节目业务群；节目业务的类型，如PAL、NTSC、SECAM、调频广播、图文电视、准视频点播等；节目业务的提供者；可以接收该节目 业务的国家和不可以接收该节目业务的国家；指向特定信息的链接信息；实现准视频点播的指导信息；实现多画面的控制信息；指示使用的加密系统；给出实现交互 式回传信道的电话号码；提供多语种的节目业务名称和广播者以及私有数据。 &lt;/p&gt;&lt;p&gt;事件信息表提供如下信息：节目段的标识号、起始时间、节目长度、 播放状态、是否加密；指向特定信息的链接信息；节目段多语种的简短介绍；节目段的详细介绍；两段同样节目段的时间偏移；基本码流类型，如视频的幅型比、伴 音的类型、字幕的类型等；使用的加密系统；节目类型，如电影/戏剧、新闻、综艺、体育、少儿、音乐、艺术、社会政治、文教等；节目限定年龄的级别；给出实 现交互式回传信道的电话号码；为满足各节目段的码率而提供的缓存大小信息及私有数据。事件信息中提供了类似于广播电视报所提供的节目表的内容，根据EIT 及其它表所提供的信息，可以做出各种EPG功能，如按节目类型检索、按时间检索及对某类节目的锁定等。 &lt;/p&gt;&lt;p&gt;2. EPG的实现 &lt;/p&gt;&lt;p&gt;　 　现在市场上的大多数机顶盒产品通常采用从PAT表&amp;#8594;PMT表&amp;#8594;NIT表&amp;#8594;SDT表&amp;#8594;EIT表解析构造EPG、搜索节目的方法。我公司在开发机顶盒过程 中，根据SI标准及机顶盒的解码流程，首次提出从NIT表直接构造EPG，即先忽略PAT、PMT表，从传输流中直接提取NIT表，根据NIT表携带的传 输系统参数搜索所有载波信息，再解析SDT、EIT表等信息构造出基本的EPG信息。EPG提供的信息主要包括：传送信息的天数(例如一周)、传送频道的 数目和名称、传送的节目数、节目提供商的标识和名称、传送网络的信息(网络标识和网络名称)，其细节信息还包括：节目名称、节目的简单介绍、节目的开始和 结束时间、节目的主题、节目的类属、节目的观看分级限制(例如对某个年龄段进行限制)。 &lt;/p&gt;&lt;p&gt;在选择频道时再判断节目信息是否已经被解析，且在切换不同频率的频道时仅解析相应的PAT和PMT表，而无需再次重复解析NIT、SDT等信息。这样，无论在时间上还是在效率上都得到很大提升，解码和频道切换速度都很快，给用户的交互使用带来方便并留下良好的印象。 &lt;/p&gt;&lt;p&gt;　 　EPG使用SI来帮助用户对节目进行搜索。在选择一个节目时，可能首先查找BAT，根据BAT的名称列出一系列的节目种类，比如新闻、体育、电影、音乐 等，选择其中自己感兴趣的类型，如电影等，于是得到有关电影的BAT。接收应用程序根据此BAT中包含的服务信息，得到一个服务选择列表。此时可以根据喜 好，选择所希望观看的电影频道。要实现这一目的，EPG需要找到服务所对应的传输流，这是EPG根据BAT中所对应的传输流标识符查找NIT中传输流的描 述，直到找到相应的传输流标识流所对应的描述，根据描述子中的参数(如频率、调制方式等)将IRD调到相应的播出频道。调到该频道后，就可以解调出传输 流，再根据BAT中得到的服务标识符在当前的传输流的SDT中查找对应的服务，得到有关服务的信息，然后用户就可以根据自己的兴趣来对事件项进行选择。这 时EPG根据所选事件的标识符和服务标识符查找EIT，得到有关事件的信息，比如什么时间开始、共多长等。 &lt;/p&gt;&lt;p&gt;3. EPG的显示技术 &lt;/p&gt;&lt;p&gt;　 　当电视节目和EPG应用同时启动时，用户看到的可能是节目画面和EPG界面的叠加，电视画面从前到后可以分为三层，依次为图形层(On Screen Display，OSD)、视频层和背景层。OSD界面显示技术指在图像画面上叠加文字显示，使屏幕为用户提供更多的附加信息；视频层为当前正在收看的节 目，即解码出来的活动图像；背景层为没有播放电视节目和启动EPG菜单时的屏幕图像。EPG画面在图形层上构建，EPG画面是由许多EPG图形元素(如按 钮、文本框、选择按钮、组件容器等)叠加而成。界面的状态转移是通过消息驱动的机制来实现的，在消息响应函数中进行消息处理。用户见到的是屏幕图像是这三 层的叠加后的图像。 &lt;/p&gt;&lt;p&gt;SI数据检索模块快速地检索本地SI数据库，提取数据信息供EPG显示使用；OSD层图形元素库提供界面所需的图形元 素；状态转移控制器接收用户遥控器的输入，控制状态转移流向；OSD层图像是指EPG界面图形元素合成后的图像，完成图形绘制。最后是OSD层、视频层和 背景层的叠加操作。 &lt;/p&gt;&lt;p&gt;四 结束语 &lt;/p&gt;&lt;p&gt;电视数字化，让电视以一个崭新的面貌出现，电视数字化的好处不仅仅是 提供高质量的视频、音频节目，更重要的是采用数字化处理后，可以开展更多灵活多样的增值业务，EPG在其中将起到很重要的作用。如何在机顶盒中构造出美观 大方、功能强大、操作简单且易于用户交互的EPG是机顶盒厂商所关注的问题。我们期待着中文EPG标准的早日出台，各厂商也能推出包含丰富内容、功能各异 EPG的数字电视机顶盒。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liunx/aggbug/2115956.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liunx/archive/2011/07/25/2115956.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
