DVB 码流学习,并试着用 TCP 的思维去理解了 DVB

DVB 码流学习,并试着用 TCP 的思维去理解了 DVB

广播电视领域重要技术要点:DVB 码流规范学习。

1. DVB 简介

  • DVB 码流(Digital Video Broadcasting Stream)是指符合 DVB 标准的数字电视信号传输数据流。

  • DVB 是由欧洲电信标准化协会(ETSI)和其他国际组织制定的一系列标准,用于通过各种传输媒介(如卫星、有线电视、地面广播和互联网)传输数字电视、音频、视频和其他多媒体内容。

  • DVB 码流通常采用 MPEG-2 或 MPEG-4(H.264/AVC)等压缩技术进行编码,并通过特定的传输协议进行封装和传输。


2. DVB 要点

以下为 DVB 码流的一些技术要点:

  1. 信源编码压缩音视频数据。
  2. TS复用将多路节目整合为单一传输流。
  3. SI表提供节目元数据。
  4. 信道编码(RS码) 增强传输可靠性。
  5. 调制与信道编码适配不同媒介。
  6. 加扰与CA保护内容。

这一整套流程确保了DVB系统在广播、卫星、有线和地面传输中的高效性、可靠性和商业可行性。

2.1. 信源编码采用 MPEG-2 视音频压缩方式

2.1.1. 技术背景

  • 信源编码的目的是减少原始音视频信号的冗余数据,提高传输效率。
  • MPEG-2(ISO/IEC 13818)是DVB标准中定义的信源编码核心,支持标清(SD)和高清(HD)视频压缩。

2.1.2. 关键细节

  • 视频编码
    • 采用基于块的运动补偿(Motion Compensation)和离散余弦变换(DCT)技术。
    • 支持多种分辨率(如720×576、1920×1080)和帧率(如25fps、30fps)。
  • 音频编码
    • 支持MPEG-1 Layer II(MP2)或AAC(Advanced Audio Coding)格式。
    • 提供多声道音频(如立体声、5.1环绕声)。
  • 兼容性
    • MPEG-2是早期DVB标准的基石,后续标准(如DVB-S2)逐步引入H.264/AVC、H.265/HEVC等更高效率的编码。

2.1.3. 作用

  • 将原始音视频数据压缩为适合传输的低带宽流(例如,标清视频从160 Mbps压缩到4-8 Mbps)。

2.2. 数据复用采用 MPEG-2 传输(TS)复用方式

2.2.1. 技术背景

  • 传输流(TS, Transport Stream) 是 MPEG-2 定义的复用标准,专为广播环境设计,支持多路节目(Service)和鲁棒性传输。

2.2.2. 关键细节

  • TS 包结构
    • 每个TS包固定为188字节,包含4字节包头(含PID)和184字节有效载荷。
    • 支持多路复用:多个音视频流、PSI/SI表、条件接收信息(CA)通过不同PID共存于同一TS流。
  • 复用流程
    1. 音视频流被分割为PES(Packetized Elementary Stream)包。
    2. PES包进一步分割为TS包,分配唯一PID。
    3. PSI/SI表(如PAT、PMT)周期性插入TS流,描述节目结构。

2.2.3. 作用

  • 实现多路节目(如多个电视频道)在同一物理信道中的高效传输。

2.3. 采用公共的系统服务信息(SI)描述广播节目

2.3.1. 技术背景

  • 服务信息(SI, Service Information) 是 DVB 标准中定义的元数据,帮助接收设备(如机顶盒)解析节目内容和网络信息。

2.3.2. 关键表格

  • PSI(Program Specific Information)
    • PAT(Program Association Table):入口表,列出所有节目的PMT PID。
    • PMT(Program Map Table):描述特定节目的音视频流PID和编码格式。
  • SI(Service Information)
    • NIT(Network Information Table):网络配置信息(如频率、调制参数)。
    • SDT(Service Description Table):频道名称、服务类型(TV/Radio)。
    • EIT(Event Information Table):节目时间表和事件详情(如电影名称、播放时间)。

2.3.3. 作用

  • 提供电子节目指南(EPG)和频道导航功能,增强用户体验。

2.4. 信道的第一级信道编码采用RS前向纠错码

2.4.1. 技术背景

  • 信道编码用于对抗传输中的误码,提高可靠性。
  • RS码(Reed-Solomon) 是DVB中第一级前向纠错(FEC)编码,属于外码(Outer Code)

2.4.2. 关键细节

  • RS(204,188)编码
    • 输入188字节数据,添加16字节纠错码,生成204字节的RS帧。
    • 可纠正最多8字节错误。
  • 级联编码
    • RS码与内层卷积码(如DVB-S中的Viterbi解码)结合,形成级联纠错机制。

2.4.3. 作用

  • 在恶劣传输环境(如卫星信号衰减)中显著降低误码率。

2.5. 调制及其它附属的信道编码方式由不同的传媒来确定

2.5.1. 技术背景

  • 调制方式信道编码根据传输媒介(卫星、有线、地面)的不同而优化。

2.5.2. 典型实现

  • DVB-S/S2(卫星)
    • 调制:QPSK(DVB-S)、8PSK(DVB-S2)。
    • 信道编码:LDPC(低密度奇偶校验码)+ BCH码(DVB-S2)。
  • DVB-C/C2(有线)
    • 调制:QAM(16-QAM、64-QAM、256-QAM)。
    • 信道编码:RS码 + 卷积交织。
  • DVB-T/T2(地面)
    • 调制:COFDM(编码正交频分复用)。
    • 信道编码:LDPC + BCH码(DVB-T2)。

作用

  • 针对不同媒介的信道特性(如噪声、多径干扰)优化传输性能。

2.6. 使用通用的加扰算法及CA接口

2.6.1. 技术背景

  • **加扰(Scrambling)条件接收(CA, Conditional Access)**用于内容保护和用户授权。

2.6.2. 关键细节

  • 加扰算法
    • 采用伪随机序列生成器(如DVB-CSA,Common Scrambling Algorithm)。
    • 加扰仅影响TS包的有效载荷,保留包头PID。
  • CA接口
    • ECM(Entitlement Control Message):携带解密密钥。
    • EMM(Entitlement Management Message):管理用户订阅权限。
    • 支持多种CA系统(如Conax、Nagra),通过标准接口(如DVB-CI)集成。

2.6.3. 作用

  • 防止未经授权的访问,支持商业运营(如付费电视)。

3. 有关 DVB 的 Tables(表)

在 DVB(Digital Video Broadcasting)系统中,表(Tables) 是用于描述传输流(TS)中节目和服务信息的核心元数据。这些表帮助接收设备(如机顶盒或智能电视)解析、解码和呈现内容。以下是DVB系统中常见的表及其关系的详细解释。


3.1. 表的类型

DVB中的表可以分为两类:

  • PSI(Program Specific Information)表:由MPEG-2标准定义,主要用于描述TS流中节目的结构。
  • SI(Service Information)表:由DVB标准扩展定义,提供更丰富的服务信息,如频道名称、节目时间表等。

3.2. 常见的表及其功能

3.2.1. PSI 表

PSI 表是MPEG-2 TS流的基本组成部分,所有DVB系统都必须支持这些表。

  • PAT(Program Association Table)

    • PID: 固定为0x0000。
    • 功能: PAT 是TS流的入口表,列出所有节目(Service)的 PMT PID。
    • 示例:
      PAT 表内容:
      Service ID 1 → PMT PID = 0x100
      Service ID 2 → PMT PID = 0x200
      
  • PMT(Program Map Table)

    • PID: 每个 Service 对应一个 PMT,PID 在 PAT 中指定。
    • 功能: 描述特定节目中包含的所有组件(视频、音频、字幕等)及其 PID。
    • 示例(Service 1 的 PMT):
      PMT PID = 0x100:
        - 视频流 PID = 0x101(H.264)
        - 音频流 PID = 0x102(AAC)
        - 字幕流 PID = 0x103
      
  • CAT(Conditional Access Table)

    • PID: 固定为0x0001。
    • 功能: 包含条件接收(CA)系统的相关信息,如 EMM(Entitlement Management Message)的 PID。
    • 用途: 支持加密内容的解密。
  • NIT(Network Information Table)

    • PID: 通常为0x0010。
    • 功能: 提供网络配置信息,如频率、调制方式等。
    • 用途: 帮助接收设备扫描和锁定信号。

3.2.2. SI 表

SI 表是DVB标准对MPEG-2 PSI表的扩展,提供了更详细的广播服务信息。

  • SDT(Service Description Table)

    • PID: 通常为0x0011。
    • 功能: 描述每个 Service 的名称、类型(TV/Radio)和服务状态。
    • 示例:
      Service ID 1 → 名称 = "新闻频道", 类型 = TV
      Service ID 2 → 名称 = "音乐广播", 类型 = Radio
      
  • EIT(Event Information Table)

    • PID: 通常为0x0012。
    • 功能: 提供节目时间表和事件详情,例如电影名称、播放时间等。
    • 用途: 实现电子节目指南(EPG)。
  • BAT(Bouquet Association Table)

    • PID: 通常为0x0011。
    • 功能: 将多个 Service 组织成“花束”(Bouquet),便于用户选择。
    • 用途: 适用于多频道套餐(如体育频道包、电影频道包)。
  • TDT(Time and Date Table)

    • PID: 通常为0x0014。
    • 功能: 提供当前的时间和日期信息。
    • 用途: 同步接收设备的时间。
  • TOT(Time Offset Table)

    • PID: 通常为0x0014。
    • 功能: 提供时区偏移信息。
    • 用途: 支持全球范围内的时间同步。

3.3. 表之间的关系

3.3.1. PAT 和 PMT 的关系

  • PAT 是TS流的入口表,列出所有 Service 的 PMT PID。
  • PMT 描述特定 Service 的组件(视频、音频等)及其 PID。
  • 关系图:
    PAT → PMT → 视频/音频/字幕流
    

3.3.2. CAT 和 CA 的关系

  • CAT 列出条件接收系统的信息(如 EMM 的 PID)。
  • EMMECM 用于解密受保护的内容。
  • 关系图:
    CAT → EMM → ECM → 解密音视频流
    

3.3.3. NIT 和 SDT 的关系

  • NIT 提供网络配置信息(如频率、调制方式)。
  • SDT 提供 Service 的名称和类型。
  • 关系图:
    NIT → 网络参数 → SDT → Service 信息
    

3.3.4. EIT 和 TDT/TOT 的关系

  • EIT 提供节目时间表。
  • TDTTOT 提供时间和时区信息。
  • 关系图:
    TDT/TOT → 当前时间 → EIT → 节目时间表
    

3.4. 表的周期性更新

DVB系统中的表是周期性广播的,以确保接收设备能够动态获取最新的信息:

  • PAT 和 PMT: 每隔几百毫秒广播一次。
  • NIT、SDT、EIT: 根据优先级周期性广播,高优先级表(如当前节目信息)更新频率更高。
  • TDT 和 TOT: 每秒广播一次,确保时间同步。

PID功能依赖关系
PAT0x0000入口表,列出所有 Service 的 PMT PID
PMT动态分配描述特定 Service 的组件及其 PID依赖于 PAT
CAT0x0001条件接收系统信息
NIT0x0010网络配置信息
SDT0x0011Service 名称和类型依赖于 NIT
EIT0x0012节目时间表依赖于 SDT
TDT/TOT0x0014时间和时区信息

4. 类比 TCP 的五层模型理解 DVB

4.1. 物理层

在 DVB 中,一些把模拟信号与数字信号互相转换的工作可以理解为是“物理层”:

  • 信号传输:将数字信号通过特定媒介(卫星、有线、地面)发送到接收端。
  • 调制技术:将二进制数据转换为适合传输的模拟信号。

经过这一“层”, 经过调制的高频信号,通过天线、同轴电缆或地面发射塔发送。


4.2. 数据链路层

TS 包的概念有些类似 MAC 帧,在 DVB 的 TS 流传输过程中,我们不关心里面装着的是什么数据,只是在把数据打包传输:

在这一层发生的事情:

  • 数据封装:将原始数据分割为固定格式的TS包。
  • 错误控制:通过前向纠错(FEC)和交织技术提高传输可靠性。

关键技术:

  • TS包结构
    • 每个TS包188字节,包含同步字节(0x47)、PID、连续性计数器等。
  • 信道编码
    • 外码(Outer Code):RS(Reed-Solomon)码(如RS(204,188))。
    • 内码(Inner Code):LDPC(低密度奇偶校验码)、BCH码(DVB-S2/T2)。
  • 交织(Interleaving):分散数据以减少突发错误的影响。

到这一“层”为止,经过编码和调制的 TS 流,具备抗干扰能力,可在物理媒介中传输。


4.3. 网络层,或者是“复用层”?

在 TCP 中,网络层开始关心每一个数据包属于哪种类型,具体用来实现什么,比如你是 ICMP?还是 ARP?类似的,在 DVB 中我们也有类似的过程。DVB 的 TS 流中有很多 Service,我们需要知道哪些包属于哪些 Service。但是 TCP 的网络层最重要的其实是在做“这个包应该被发去哪”的事,而 DVB 是广播的,不关心这个,所以可能在 DVB 中把这一层叫做 “复用层” 更合适。

在这一过程发生的事情:

  • 多路复用:将多个Service(频道)和组件(视频、音频)整合到单一TS流中。
  • 节目导航:通过PSI/SI表描述TS流中的节目和服务信息。

关键技术:

  • TS复用
    • 每个Service的组件(视频、音频)被分配唯一PID。
    • 复用后的TS流包含多个Service的数据。
  • PSI/SI表
    • PSI表(MPEG-2标准):
      • PAT:入口表,列出所有Service的PMT PID。
      • PMT:描述特定Service的组件(视频、音频等)及其PID。
    • SI表(DVB扩展):
      • NIT:网络配置信息(如频率、调制方式)。
      • SDT:Service名称和类型(TV/Radio)。
      • EIT:节目时间表和事件详情(EPG)。

到这里为止,我们得到了包含多个 Service 的 TS 流,附带元数据(如节目名称、时间表)。


4.4. 传输层

和 TCP 一样,DVB 关心(甚至比 TCP 更加关心)传输的安全性:

在这一“层”发生的事:

  • 条件接收(CA):加密内容并管理用户授权。
  • 加扰与解密:防止未经授权的访问。

关键技术:

  • 加扰算法
    • DVB-CSA(Common Scrambling Algorithm)对TS包的有效载荷进行加扰。
  • 条件接收系统(CA)
    • ECM(Entitlement Control Message):携带解密密钥。
    • EMM(Entitlement Management Message):管理用户订阅权限。
  • 接口标准
    • DVB-CI(Common Interface)支持可插拔的CA模块(如智能卡)。

到这一步,我们得到了加密的TS流,仅授权用户可通过CA系统解密。


4.5. 应用层

最后,我们希望得到一个在电视上播放的节目,这可以被称为“应用层”。

在这一层发生的事:

  • 内容解码与呈现:将接收到的TS流还原为音视频信号。
  • 用户交互:提供电子节目指南(EPG)、点播等功能。

关键技术:

  • 解调与解码
    • 接收设备(机顶盒)解调信号并解析TS流。
  • 音视频解码
    • MPEG-2、H.264/AVC、H.265/HEVC等解码技术。
  • 同步与播放
    • 使用PCR(Program Clock Reference)同步音视频。
  • 用户界面
    • EPG(电子节目指南)、频道列表、点播菜单。

最终,我们得到了看到的电视画面和听到的声音。


4.6. 分层总结

核心功能关键技术作用
物理层信号调制与传输QPSK、QAM、COFDM将调制后的信号发送到传输媒介
数据链路层TS封装、纠错编码RS码、LDPC码、TS包结构通过TS包和纠错码确保数据可靠传输
网络层(复用层)多路复用、节目导航PAT、PMT、NIT、EIT解析PSI/SI表,提取目标Service的PID
传输层内容加密与授权DVB-CSA、ECM、EMM解密加密内容
应用层内容解码、用户交互MPEG解码、EPG、HDMI输出解码音视频并呈现给用户

Comment