公告

文章

评论

留言

连接

   流媒体世界

信息

登陆

搜索

2008-4-27 22:33:00

25日晚上的邮件,让我长长舒了口气,一个多月的准备和测试工作,整个team都沉浸在一种竭尽全力的气氛当中,但在这一刻,大家都倍感欣慰。应该说标准化这条路,我们也是刚刚起步,在一步一步摸爬滚打中,才慢慢走到今天,只有三个字可以形容我的这种心情“不容易”。

谢谢组里每一位打这一战的同事,大家的强烈职业精神和责任感,和很多很多付出,才是打胜这一战的关键。这是大家对自己的证明。


……


2008-4-20 23:46:00

http://kernelnewbies.org/LinuxChanges

1.1. Memory Resource Controller

Recommended LWN article (somewhat outdated, but still interesting): "Controlling memory use in containers"
……



2008-4-20 17:01:00

一个星期过去了,总体情况还可以,没有遇到明显的问题,虽然说离最终结论还尚早,但总体来说,还是有信心。这和之前大家的努力是分不开的,每一个case都认真的分析和验证过,对其中发现的问题,及时地fix。

应该说,CTC给大家提供了一个提高自己,总结自己的机会,让大家知道,开放的重要性,规范的重要性。尽管这其中的很多地方还需要去改进,但只要能迈出第一步,就是好的,问题总是可以解决的,只要方向是对的。个人希望,IPTV标准化的这跳路,能走的更远,更好,不但是规范的本身,还有商业化应用。



2008-4-13 10:33:00

刚刚打完IPQAM一战,就转入了CTC的测试当中,经过大家的不懈努力,终于在昨天完成了一个重要的Mileston,之前发现的很多问题,在昨天得到了解决,并且在验证和回顾测试中,都表现不错。非常鼓舞人心,虽然过程中历经坎坷,但最终有惊无险,顺利的完成了这一步的工作。

非常感谢Team的每一位,无论前方后方,大家紧密配合,很好的沟通和强烈的责任心,是打好这一战的基础。所谓百炼成钢,不打几场硬仗,团队怎么可能提高,产品怎么可能提高。不过,这只是一个开始,但却是一个好的起点!



2008-2-5 22:12:00

EVMS lets you manage storage space in a way that is more intuitive and flexible than many other Linux volume management systems. Practical tasks, such as migrating disks or adding new disks to your Linux system, become more manageable with EVMS because EVMS can recognize and read from different volume types and file systems. EVMS provides additional safety controls by not allowing commands that are unsafe. These controls help maintain the integrity of the data stored on the system.……



2008-2-3 23:52:00


最近完成了一个广电的IPTV项目,虽然只是阶段性的,但还是感觉到万事开头难,历经不少磨难啊。回到正题吧,因为前面5节对MPEG2 TS做过介绍,这次主要就结合实际项目的应用再总结下:

1. PSI依然是"根",只有定位到PSI表后,才能索引出PAT,和各个节目的PMT表。

2. PAT表记录了什么呢?表头信息和节目信息。

    》表头信息包含若干字段,但最关键的是version_number,why?因为TS流里任何节目信息的变化,这个字段都会往上递加,从而使得TS解码器可以据此让Decoder对不同节目做解码复位。

    》节目信息包括TS流里每路节目的program_number,PMT_PID。由此再结合表头信息,TS解码器即可以定位到具体的有变化的节目流(新增或减少)。如下图:



……



2008-1-20 20:44:00

1. Provide fast remote file access across nodes

2. Support large amount of storage (TB), that can grow dynamically as disks and nodes are added

3. Provide high R/W performance while supporting RAID 0/1 configuration over the cluster

4. Restart quickly, even for an unclean shutdown due to power failure or system crash

5. Support small size files, and large number of files(>1000K)

6. Support generic URL file name



2006-12-12 23:51:00

=================================

在学习过程中,你千万不要不愿意把好的思路,想法和结果与别人分享,担心别人走到你的前面是不健康的,也无助于你的成功...。在团队之中,要勇于承认他人的贡献。如果借助了别人的智慧和成果,就应该声明。

=================================


……


2006-12-10 21:44:00

=================================

自信是自觉而非自傲

自信的第一步:不要小看自己,多给自己打气;自信的第二步:用毅力,用勇气,从成功里获得自信,从失败里增加自觉;自觉地定具体的目标,虚心地听他人的评估

=================================

书中提到"人贵有自知之明,实际上是说,社会生活中的每个人都应当对自己的素质,潜能,特长,缺陷,经验等各种基本能力有一个清醒的认识,对自己在社会工作生活中可能扮演的角色有一个明确的定位"。


……


2006-12-3 22:49:00

主要讲述ITV和IPTV领域的新闻,市场,Startup和技术动态等方面,值得关注。

http://blog.itvt.com/

 



2006-11-26 19:10:00

=================================

积极主动的七个步骤:

                                    7. 积极地推销自己

                              6. 积极争取,创造机遇


……


2006-10-31 10:11:00

TS是支持多路复用的,所以它可用来传输经复用后的多层节目。在复用过程中,要注意的是,解码过程中所需要面对的时间参考和同步问题,因为解复用是需要各种信息同步进行的,所以在复用过程中,就需要插入相关的时间信息:PTS,DTS,PCR。

在TS形成过程中,PTS和DTS是在ES打包成PES时,根据STC的参考,将其时钟信息注入PES包中的,而之后在PES切成TS时,再将PID和PCR信息注入到TS包中,当多路TS再进行复用的时候,各路TS的PCR将会被提取出来,再进行分析,然后再根据统一的STC参考,将新的PCR生成并注入到TS中去,最后,因为原来PAT表信息不在适用,所以新的PAT表需要再生成,并附加到新的TS流中去。经过这多层的复用之后,新的TS流即可以进入调制,传输阶段。过程可参见下图:



……


2006-10-22 17:17:00

看完这两个东西后,觉得有些意思,本质上差不多,但表现形式差别很大,所以放在一起小结一下。通俗一点,都是做包头地址转换,都是基于Netfilter来开发的。只是IPVS依靠负载平衡做转发策略,而NAT更多靠静态配置。

IPVS其实可以内嵌NAT,并完成NAT的一定功能。当然IPVS有多种形式的转换和平衡策略,比如NAT模式,IP隧道模式,直接路由模式。而NAT一样,分别提供Full cone,Restricted cone,Port restricted cone和Symmetric四种模式。

对IPVS的理解,从设计上看,关键在于它的8种负载平衡算法:


……


2006-10-16 16:01:00

This summary has been stayed some time in my Draft box, I am unwilling to interrupt the current logic on the mmu, but it takes time anyway, for this sake, so, just put a little words to track done my minds on this.


……


2006-10-15 13:02:00

前面3节总结了MPEG2 TS的基本格式,其中包括PES,PS和TS,以及相关字段的介绍。那么作为一种传输流,TS将内容进行打包/复用,让其媒体内容变成TS传输,并最终在解码端解码。简单来看,TS是一个传输层的协议栈,它可以承载各种内容的传输,比如MPEG,WMV,H264,甚至是IP,那么其中的传输规范是如何定义的呢?这个即是PSI(节目特定信息)要做的事情。

PSI由四张表构成:PAT,PMT,CAT和NIT,这四张表分别描述了一个TS所包括的所有ES流的传输结构。首先的一个概念是,TS是以包形式传播,在编解码端都需要以一定的包ID来标识TS流里承载的内容,比如,PAT表会存在于一个或多个TS包里,所以要用一个特别的包ID来表示,另外,不同的ES流也需要不同的包ID来标识。我们有了PAT和PMT这两种表,解码器就可以根据PID,将TS上从不同ES来的TS包区分出来进行解码。


……


2006-10-14 10:46:00




2006-10-11 18:08:00

Process and the VM
 
1. how it works when we make an alloc call.
 
When a process allocates virtual memory, Linux does not actually reserve physical memory for the process. Instead, it describes the virtual memory by creating a new vm_area_struct data structure. This is linked into the process's list of virtual memory. When the process attempts to write to a virtual address within that new virtual memory region then the system will page fault. The processor will attempt to decode the virtual address, but as
……


2006-10-11 18:04:00

 
4. Page Swap and Cache
 
A user process page is kept in either the page cache or the swap cache, the kernel tries to keep as much as pages remain in the memory, so that page faults can be serviced quickly, but, physical memory is always limited resources, thus, swap cache can be a better-than-none replacement.
 
Logically, the cache is a layer between the kernel memory management code and the disk I/O code. Practically, the cache here means, only freeing the memory has to be necessary
……


2006-10-11 18:03:00

3. MMU系统初始化
 
  1. Paging启动
 
    在bootloader过程中,内核会被调入到物理地址0x100000(1M),开始执行的是head.S, 在这段指令的执行中,Paging会被激活,之后内核跳到PAGE_OFFSET+some_address,开始执行start_kernel (start_kernel()将不会执行,直到Paging被激活??)。start_kernel()会初始化所有的内核数据,并且开始init内核线程的运行。对MMU的初始化,是在setup_arch()里完成的,这个函数是平台相关的,主要完成底层的初始化,首先,此函数会计算总共的Low- memory和High-memory的页数(在setup_memory()里完成),接下来,setup_arch()调用init_bootmem ()来初始化boot-time内存分配器(也称之为bootmem分配器),此分配器的工作是为内核的初始化和永久数据提供内存页,在boot之后,这些页是不参与MMU的管理的。
……


2006-10-11 18:01:00

2. 非连续内存分配
  vmalloc()是内核可以用来分配连续虚存,但非连续物理内存的方法。
  对于内核,可以用来分配的虚存介于VMALLOC_START和VMALLOC_END之间。VMALLOC_START的起始位置取决于可用的物理l内存总量。因为是给不连续物理内存分配,所以每块物理单元都是用:vm_struct来描述。此结构很简单,包括单元块使用标志,起始地址,长度,及至向next的指针。
  一个有意思的地方是,每一个离散的被分配的块之间至少会有一页的间隔,以此来避免overrun。
 
  1. 分配/释放非连续区域
    首先找到可以满足分配的足够大的一块区,再分配PGD条目,PMD条目,PTE条目,最后才分配页。释放的顺序正好相反,先释放PGD条目,PMD条目,PTE条目,最后是页。
……


2006-10-11 17:56:00

1. 物理页申请(allocation)
  核心算法是:Binary Buddy Allocator.
  1. 空闲块管理
    每个zone有一个free_area数组, 第0个元素表示的块大小是1个页, 第1个元素表示的块大小是2个页...最大的块大小是512个页.
    每个区有一个bitmap, 每一位用来记载一对buddy的使用状态, 如果bit是0, 表示那对page(两页)都是full or free. 如果bit是1, 表示只有其中一页是在用.
 
  2. 申请页
    页申请的核心调用是: __all
……


2006-10-10 9:19:00

一直在想这样一个问题,如何让视频博客用P2P来传播,对视频博客门户来说,媒体流量的压力是昂贵的,也直接涉及到访问规模。用传统的集中式服务模式,其出口带宽总是有限,提高带宽,成本就随之提高。如果用cache代理模式,其费用也不便宜。

视频博客网的一个典型的特点是:web-based。在用户端没有驻留的client application,这样做有其优势,但也带来缺陷。所有business logic集中处理(在web server和application server端),是可以很好地为非媒体性质的业务提供服务。但对具有大量媒体内容服务的业务,比如视频博客,就不便于展开P2P的应用。

就目前的实现而言,在client browser这边,一般是通过Marcomedia player将视频文件拉到本地,且边拉边放,以此实现快速播放响应。在播放完后,视频文件也就临时性地驻留在客户机里。应该说这种做法是最简单,快速的一种实现方法。在server这边,也不需要什么控制,基本上视频服务器就是做FTP server的功能。但其局限性就在于:客户机对媒体文件的管理是无状态的。


……


2006-10-7 23:19:00

TS流也是由一个或多个PES组合而来的,他们可以具有相同的时间基准,也可以不同。其基本的复用思想是,对具有相同时间基准的多个PES现进行节目复用,然后再对相互有独立时间基准的各个PS进行传输复用,最终产生出TS。
 
TS包由包头和包数据2部分组成,其中包头还可以包括扩展的自适用区。包头长度占4bytes,自使用区和包数据共占184bytes,整个TS包长度相当于4个ATM包长。
……


2006-9-28 14:45:00

上节介绍过,ES首先需打包成PES流包,然后PES根据需要打包成PS或TS包进行存储或传输。其每路ES只包含一路信源的编码数据流,所以每路PES也只包含相对应信源的数据流。

对PS流而言,每个PES包头含有PTS和DTS,流识别码,用于区别不同性质ES。然后通过PS复用器将PES包复用成PS包。实际上是将PES包分解为更细小的PS包。在解码的时候,解复用器将PS分解成一个个PES包,拆包器然后将PES包拆成视频和音频的ES,最后输入至各自解码器进行解码。一个问题是:各个ES在解码时,如何保证视音频的同步呢?除了PTS和DTS的配合工作外,还有一个重要的参数是SCR(system clock reference)。在编码的时候,PTS,DTS和SCR都是由STC(system time clock)生成的,在解码时,STC会再生,并通过锁相环路(PLL-phase lock loop),用本地SCR相位与输入的瞬时SCR相位锁相比较,以确定解码过程是否同步,若不同步,则用这个瞬时SCR调整27MHz的本地时钟频率。最后,PTS,DTS和SCR一起配合,解决视音频同步播放的问题。PS格式摘录如下:


……


2006-9-27 15:08:00

应该说真正了解TS,还是看了朋友推荐的《数字电视业务信息及其编码》一书之后,MPEG2 TS和数字电视是紧密不可分割的,值得总结一下其中的一些关系。

ISO/IEC-13818-1:系统部分;ISO/IEC-13818-2:视频;ISO/IEC-13818-3:音频;ISO/IEC-13818-4:一致性测试;ISO/IEC-13818-5:软件部分;ISO/IEC-13818-6:数字存储媒体命令与控制;ISO/IEC-13818-7:高级音频编码;ISO/IEC-13818-8:系统解码实时接口;

MPEG2系统任务包括:1. 规定以包传输数据的协议;2. 规定收发两端数据流同步的协议;3. 提供多个数据流的复用和解复用协议;3. 提供数据流加密的协议。以包形式存储和传送数据流是MPEG2系统之要点。

ES是直接从编码器出来的数据流,可以是编码过的视频数据流,音频数据流,或其他编码数据流的统称。ES流经过PES打包器之后,被转换成PES包。PES包由包头和payload组成,具体格式摘录如下:



……


2006-9-21 16:18:00


 

摘自《Ajax for Java developers: Build dynamic Java applications》by Philip McCarthy



2006-9-20 9:45:00

其实Ajax不是没有良好的开发kit,偶尔的发现,Google已经为此做了很多工作,作为web2.0的样板产品开发者,Google是不会把最精华的东西埋在自己家里的。让Web变成Google style,让大家都follow Google的web2.0开发模式,是Google所希望的。

GWT没有提供真正的Ajax IDE,它包括两部份:类库和开发工具。类库包括JRE的仿真库和GWT的WEB UI类库。开发工具包括GWT的Java到Javascript的编译器和GWT hosted浏览器。

类库部分主要是用于开发关键WEB UI所要用到的Java libary,开发工具的编译器部分负责将你写的Java代码,转换为Javascript,让其可以在web mode下运行。GWT hosted浏览器则提供了一个可以在主机模式下运行调试的环境,其主要用于开发阶段,而此模式下,你写的Java代码将只直接运行在JVM上面。

通过使用GWT,你可以将主要的精力花在Ajax的aplication logic上面,而无需像以往那样用很多时间去照顾Javascript的繁琐UI和debug的上面。而application的开发可以用Eclipse,就像开发一般Java application那样自然。


……


2006-9-15 18:17:00

在上文中,概述了几种不同web server的构架特点,在这一节中,主要介绍Ajax的几种client/server数据交互模式。
 
1. 基于内容的模式。client会创建一个IFrame,并向server发起一个请求,这样server会根据Model, View, Controller产生相应的页面内容,并返回给IFrame,这种模式不需要在client这一层有任何business domain模型的存在。
……


2006-9-10 8:40:00

在《Ajax in Action》这本书里,the role of the server这一章节被看作了Ajax的核心技术来介绍,可见其重要性。哪在Ajax眼里究竟什么是server的role呢?

从最顶上往下看,答案是:Server的角色一是负责把application送到browser;角色二是和client的交互,接受请求,把请求的结果数据返回给client。

如果把上述如此简洁的答案看作是金字塔的最顶端,那支撑最顶端的下面部分是怎样的呢?我们要先看看在web里,Server构架的几种形式:

1. 最简单的一种方式是没有构架。browser过来的每个page请求都被直接处理,没有中间层存在,数据处理是直接和数据库发生的。

2. 基于Model2 workflow的构架。应该说这是一种比第一点更层次化,更优的构架。其中,业务流程被组织成workflow的形式,而workflow的处理引擎由一个controller来承担。controller并不直接访问数据库,而是由一个业务数据中间层来做接口。这种构架的设计模式是MVC的一种,在controller接收请求,处理请求,返回结果的时候,其page内容的生成由专门的一个View/pages模块负责完成。


……


2006-9-4 22:14:00

个人认为这是由两个层面的意思构成:rich和client。其主体是client,即指我们所说的web browser。rich的意思是让其更加富有。Ajax为什么要这样做呢?其要针对解决的问题又是什么呢?我认为值得去思考,反过来也帮助更好地理解其本质。

1. 传统browser能提供的用户体验不够丰富。一个基本的问题既是,用户和browser的交互模型不够理想。server控制了用户data model和client session,在用户这一侧,browser只是一个dummy的显示窗口。如果没有下一个link click,browser将不会有data更新。这既是交互式模型不好的表现,大家可以想一些具体的例子来说明这个问题。

2. 网络的延迟性。其实client的定义比较抽象,既可以是本机的业务层client(直接内存访问),也可以是以网络为传输的远端client。这两者有什么不同呢?响应时间的不同。本地业务层client往往没有延迟体验,但远端client确存在不稳定的延迟体验。这个不同点,既是一个Ajax要去解决的问题,怎样将远端交互的延迟和用户体验降到最低。


……


首页 上一页 下一页 尾页 页次:1/2页  30篇日志/页 转到:
Powered by Oblog.