http://hi.baidu.com/ccqi0000/archive/tag/dvb
UTC(Universal Time, Co-ordinated) 世界协调时
MJD(Modified Julian Date) 修正的儒略日期
所使用的符号:
MJD: 修正的儒略日期
UTC: 世界协调时
Y: 从1900年开始(例如:对于2003年,Y=103)
M: 从1到12月
D: 从1到31日
WY: 从1900 年算起的星期数
WN: 根据ISO 8601 规定的星期数
WD: 从星期1到星期日(7)
K,L,M′,W,Y′: 临时变量
×: 乘法
int: 取整,忽略了余数
Mod 7: 模7,被7除之后的余数(0至6)
a) 如何从MJD中计算Y,M,D,见式(B1)、式(B2)、式(B3)、式(B4)、式(B5)。
Y′ = int[(MJD-15078.2)/365.25………………………………………………(B1)
M′ = int{[MJD-14956.1-int(Y′′365.25)]/30.6001}……………………….(B2)
D = MJD-14956-int(Y′′365.25)-int(M′′30.6001)……………………….(B3)
如果M′ == 14或M′ == 15,那么K = 1;否则K = 0
Y = Y′+K…………………………………………………………………………….(B4)
M = M′-1-K′12……………………………………………………………………..(B5)
b) 如何根据Y,M,D计算MJD,见式(B6)
如果M == 1或者M == 2那么L = 1;否则L = 0
MJD = 14956+D+int[(Y-L)′365
TS流的解码过程-ES-PES-DTS-PTS-PCR
TS 流解码过程:
1. 获取TS中的PAT
2. 获取TS中的PMT
3. 根据PMT可以知道当前网络中传输的视频(音频)类型(H264),相应的PID,PCR的PID等信息。
4. 设置demux 模块的视频Filter 为相应视频的PID和stream type等。
5. 从视频Demux Filter 后得到的TS数据包中的payload 数据就是 one piece of PES,在TS header中有一些关于此 payload属于哪个 PES的 第多少个数据包。 因此软件中应该将此payload中的数据copy到PES的buffer中,用于拼接一个PES包。
6. 拼接好的PES包的包头会有 PTS,DTS信息,去掉PES的header就是 ES。
7. 直接将 被被拔掉 PES包头的ES包送给decoder就可以进行解码。解码出来的数据就是一帧一帧的视频数据,这些数据至少应当与PES中的PTS关联一下,以便进行视音频同步。
8. I,B,B,P 信息是在ES中的。
ES是直接从编码器出来的数据流,可以是编码过的视频数据流,音频数据流,或其他编码数据流的统称。ES流经过PES打包器之后,被转
1.锁频是需要时间的,如果一次锁频没成功,一般可以多尝试几次。
2.目前已知的demux一般是才有二级硬件过滤:
第一级以PID过滤
第二级以payload 的PES、section过滤,一般是前14个字节吧。
demux 通过二级过滤条件过滤到一个完整的section数据后会将数据丢给上次SI/PSI模块去解析。
具体如何协调channel,filter,mem等资源,看平台实现吧。
一、引言
MPEG-2系统用于视音频同步以及系统时钟恢复的时间标签分别在ES,PES和TS这3个层次中。在ES层,与同步有关的主要是视频缓冲验证VBV(Video Buffer Verifier),用以防止解码器的缓冲器出现上溢或者下溢;在PES层,主要是在PES头信息里出现的显示时间标签PTS(Presentation Time Stamp)和解码时间标签DTS(Decoding Time Stamp);在TS层中,TS头信息包含了节目时钟参考PCR(Program Clock Reference),用于恢复出与编码端一致的系统时序时钟STC(System Time Clock)。在节目流PS包头中加入SCR,它的作用与PCR域相似。标准规定在原始音频和视频流中,PTS的间隔不能超过0.7s,而出现在TS包头的PCR间隔不能超过0.1s。
我们知道,MPEG-2对视频的压缩产生I帧、P帧、B帧。把帧顺序I1帧-P4帧-B2帧-B3帧-P7帧-B5帧-B6帧的编码ES,通过打包并在每个帧中插入PTS/DTS标志,变成PES。在插入PTS/DTS标志时,由于在B帧PTS和DTS是相等的,所以无须在B帧多插入DTS(参见图1)。而对于I帧和P帧,由于经过
大概流程:
1.cable ts
信号(signel)--》tuner--》demux-》video,audio解码编码-》输出显示
2.本地ts
file--》demux-》video,audio解码编码-》输出显示
如果有解扰逻辑,则需要在demux后对video,audio包解扰处理。
3.对cable ts 的录制即:信号(signel)--》tuner--》demux-》磁盘--》demux--》video,audio解码编码-》输出显示
即多了一个步骤,需要将解扰的流保存到磁盘中,如果需要播放磁盘中的文件,则将磁盘中的文件数据传给demux,也就是一个逆向过程。
当然demux的处理牵涉到section,filter另做讨论。
-----------------------------------------------------------------------------------------------------------------------------------
以下将分节讨论:
1.TUNER 调谐器
一般有有线cable,卫星satellite,地面territory 3种type
tuner工作需要知道频率freq,符号率symb,QAM大小,tuner获取到的信号signel有信号强度,误码率,质量,等级等,主要就是锁住某个需要的频点去获取信息(模拟信号-》数字信号)。一般问题就是锁不住频点,拿不到signel。
目前一般是STB 的tuner某一时刻只能处理一个频点信息,也许以后会启动同时处理多个频点或多个tuner的双xx模式或多xx模式。终端屏幕的越来越大,完全是可以在一个屏上显示多个流的。
2.Demux
终端主要是解复用,也就是解析自
1.
信号质量和误码率的关系是由信号中的前身纠错率(FEC)决定的。下面是两张示例图片中的信号参数:
3760 水平(H) 26000 7/8 (FEC). 4040 水平(H) 26500 1/2 (FEC).
从以上两组参数对比中可以看出:误码率高的3760一组信号中它的FEC(前身纠错率)是7/8,而误码率低的4040一组信号中的FEC是1/2,
在DVB-S的标准中,只规定了1/2、2/3、3/4、5/6、7/8五种FEC误码率。在其它参数相同的条件下,FEC越低,则纠错码占据的比例越高;同样功率时对解码的门限要求越低,接收越容易。FEC越高则反之。
所以就会出现信号质量高的误码率,反而比信号质量低的误码率高的现象。
2.
误码率百科名片
误码率(BER:bit error ratio)是衡量数据在规定时间内数据传输精确性的指标。误码率=传输中的误码/所传输的总码数*100%。如果有误码就有误码率。 另外,也有将误码率定义为用来衡量误码出现的频率。IEEE802.3标准为1000Base-T网络制定的可接受的最高限度误码率为10-10。这个误码率标准是针对脉冲振幅调制(PAM-5)编码而设定的,也就是千兆以太网的编码方式。
目录
CA移植:移植第三方CA,一般需要做一个中间层。1.调用CA库的接口LIBCA_xxxFun_ 2.实现第三方CA需要的接口PORTING_CA_xxxFun_3.给上层抛消息的接口XXXCA_NOTIFICATION_EVENT_xxx,给上层获取特定数据的接口XXXCA_get_xxx 4.中间层内部处理中转数据的接口 s_ca_xxx_Fun_一般需要考虑以下几个方面:CA初始化,接收CAT表,接收PMT表中ca描述子中信息。
一。初始化 开机初始化中同时上层初始化CA,注册callback 将 XXXCA_NOTIFICATION_EVENT_xxx注册下去,可能需要设置一部分全局配置信息维护CA 层。(考虑到有些第三方CA初始化可能耗时长,可以建一个task负责并行初始化CA)
二。接收CAT表接收CAT一般是和EMM相关,主要是为了获取加密的SK,和加密的授权信息。将对应的ca sysid的 ca_emm_pid,ca_emm_private_data传给第三方CA库去处理。(一般来说第三方CA拿到emmpid会去开filter解析对应emmpid的es)。不同的第三方ca接收CAT表不一样,有些是开机后接收一次CAT就可以,有些是开机接收,每次切换频点也都需要接收CAT。
三。接收PMT表中ca描述子中信息主要是获取加密的cw和一些节目收费信息在PMT中一般有program info descriptor中ca条件描述子,获取ca system id ,找到对应的ca system id,获取ca ecm pid和私有的其他信息。将这些信息传递给第三方CA库处理。(一般来说需要同时附带