MPEG 트랜스포트 스트림

위키百科, 우리 모두의 百科事典.

여러 個의 MPEG 프로그램이 하나로 합쳐져 안테나로 傳達된다. 그 뒤 美國 디지털 TV에서 ATSC 受信機 는 TS를 디코딩하여 畵面에 보여 준다. 世界 수많은 地域에서 하나 以上의 變種 모듈러 DVB 시스템을 통하여 傳達이 이루어진다.
MPEG 트랜스포트 스트림
파일 擴張字 .ts, .tsv, .tsa, .m2t
인터넷 미디어 타입
video/MP2T [1]
開發 MPEG
發表日 1995年  ( 1995 ) [2]
포맷 種類 미디어 컨테이너
다음의 컨테이너 오디오, 비디오, 데이터
다음으로 확장 M2TS , TOD
標準 ISO/IEC 13818-1, ITU-T Recommendation H.222.0 [2]

MPEG 트랜스포트 스트림 (MPEG transport stream, TS, TP, MPEG-TS로 줄임)은 오디오 , 비디오 , 데이터 電送을 위한 通信 프로토콜 이다. PES(packetized elementary streams) 와 其他 데이터를 包含하는 디지털 컨테이너 포맷의 一種이다. TS는 MPEG-2 파트 1, 시스템( ISO / IEC 標準 13818-1)에 規定되어 있다. [3] ITU-T Rec. H.222.0으로도 알려져 있다. 디지털 映像과 소리를 多重化 하고 出力을 동기화하는 것이 이 시스템의 目標이다. 트랜스포트 스트림은 信賴할 수 없는 媒體의 誤謬 訂正 機能을 提供하고 DVB ATSC 와 같은 映像 應用에도 쓰인다. DVD 와 같은 信賴할 수 있는(데이터 損失 憂慮가 없는) 媒體用으로 開發된 MPEG 프로그램 스트림 과는 對照된다.

通信 階層 [ 編輯 ]

OSI 네트워크 프로토콜 스택 과 비슷하게 트랜스포트 스트림은 階層 構造에서 受信機가 處理한다. 이를테면 비디오를 包含하는 스트림은 다음과 같은 處理를 할 수 있다.

  1. 多樣한 프로그램 構成
  2. PES (패킷化된 基礎 스트림, Packetized Elementary Stream)
  3. ES (基礎 스트림, Elementary stream) - 소리 및 映像 (아래의 것은 映像만)
  4. GOP 救助 (Group of pictures) - 任意 接近 포인트 提供
  5. 슬라이스 (Slice) - 相互 豫測을 통하여 波及된 誤謬 防止
  6. 매크로블록 - 6~12個의 DCT 블록으로 이루어져 있음
  7. 인코딩 블록 / 單純 블록 - DCT 인코딩 블록, 8x8 畫素

트랜스포트 스트림(TS)으로 多重化 處理된 데이터의 例가 바로 EPG (電子 프로그램 案內)이다. 더 仔細한 內容은 프로그램과 시스템 情報 프로토콜 을 參考하라.

트랜스포트 스트림의 重要 要素 [ 編輯 ]

패킷 [ 編輯 ]

패킷은 트랜스포트 스트림의 基本 데이터 單位이다. 값이 0x47人 싱크 바이트 와 그 뒤를 이어 3個의 1비트 플래그와 13비트의 PID (패킷 證明者), 4비트의 連續 카운터, 追加的인 有效한 필드 信號가 있으면 追加로 選擇할 수 있는 트랜스포트 필드가 온다. 패킷의 나머지는 페이로드(payload)다. 패킷들의 길이는 188 바이트이지만 [3] 通信 媒體는 패킷에다 誤謬 訂正 바이트를 몇 個 追加할 수 있다. ISDB-T 및 DVB-T/C/S의 電送 패킷 크기(트랜스포트 스트림 패킷 + FEC 데이터)는 204 바이트이며 ATSC 8-VSB의 電送 패킷 크기는 208 바이트이다. ATSC는 20바이트의 리드 솔로몬 前方 誤謬 訂正 을 使用하여 208바이트의 패킷을 만들어낸다. [4] 188바이트의 패킷 크기는 元來 ATM 體系 와의 互換性을 위하여 選定된 것이다. [5] [6]

TS 패킷 포맷 一部
이름 비트 32-bit BE mask 說明
싱크 바이트 8 0xff000000 0x47 (ASCII char 'G')
電送 誤謬 表示器 (TEI) 1 0x800000 스트림에서 誤謬를 訂正할 수 없으면 復調 를 통하여 設定됨. 逆多重火器(demultiplxer)에 패킷에 訂正할 수 없는 誤謬가 있음을 알려 준다 [7]
페이로드 유닛 始作 表示器 1 0x400000 1은 PES(PSI)의 始作을 나타내고 그렇지 않으면 0이다.
電送 優先 順位 1 0x200000 1은 같은 PID를 갖는 다른 패킷들보다 더 높은 優先 順位를 갖는 것을 뜻한다.
PID 13 0x1fff00 패킷 ID
스크램블 制御 2 0xc0 '00' = 스크램블(scramble) 안 函.   DVB 基準: [8]   '01' = 使用 豫約,   '10' = 짝數로 스크램블,   '11' = 홀數로 스크램블
有效 필드 制御 2 0x30 01 - 有效 필드 없음, 페이로드 存在

10 - 有效필드 存在, 페이로드 없음

11 - 有效필드 다음에 페이로드 存在

00 - 追後 使用. (現在는 使用하지 않음)

連續 카운터 4 0xf 各 스트림에서 페이로드 패킷의 連續된 數字. 페이로드가 있을 때만 增加되며 各 PID 單位로 增加된다.
알림: 위의 總 비트 數는 32이며 트랜스포트 스트림 4바이트 接頭辭(prefix)이다.
有效 필드 0 以上 플래그에 依存
페이로드 데이터 0 以上 플래그에 依存
有效 필드 포맷
이름 비트 數 說明
有效 필드 길이 8 卽刻 이 바이트의 길이만큼 有效 필드가 따라온다
不連續 表示器 1 TS 패킷의 連續 카운터가 連續的이지 않으면 1로 設定한다
任意 接近 表示器 1 이 TS 패킷의 PES 패킷이 映像/소리 시퀀스를 始作하면 1로 設定한다
基礎 스트림 優先 順位 表示器 1 1 = 높은 順位
PCR 플래그 1 1이면 有效 필드가 PCR 필드를 包含한다는 것을 뜻한다
OPCR 플래그 1 1이면 有效 필드가 OPCR 필드를 包含한다는 것을 뜻한다
接合(Splicing) 포인트 플래그 1 1이면 有效 필드에 接合 카운트다운 필드가 存在한다는 것을 뜻한다
트랜스포트 個別 데이터 플래그 1 1이면 有效 필드에 個別 데이터 바이트가 存在한다는 것을 뜻한다
有效 필드 擴張 플래그 1 1이면 有效 필드 擴張이 存在한다는 것을 뜻한다
아래의 필드는 選擇 事項이다 可變값 플래그에 依存
PCR 33+9 프로그램 클록 參照
OPCR 33+9 OP(Original Program) 클록 參照.. 하나의 TS가 다른 곳으로 複寫될 때 도와준다.
接合(Splice) 카운트다운 8 이 곳으로부터 얼마나 많은 TS 패킷에 接合 포인트가 發生하였는지 알려 준다 (陰數값)
빈 자리 메우는 바이트 可變값

PID [ 編輯 ]

TS의 各 테이블이나 基礎 스트림(ES)은 13비트 패킷 ID (PID)로 識別한다. 逆多重火器(demultiplexer)는 같은 PID로 識別된 패킷을 檢索하여 部分的으로 TS로부터 基礎 스트림을 抽出한다. 時分割 多重化 는 얼마나 자주 特定한 PID가 TS에 나타나는지를 決定하는 데 쓰인다.

프로그램 [ 編輯 ]

TS에는 프로그램 槪念이 있다. 各 프로그램은 固有 PID를 갖는 프로그램 맵 테이블 (PMT)로 記述되며 그 프로그램과 連結된 基礎 스트림은 PMT에 羅列된 PID를 가진다. 이를테면 디지털 TV에 쓰이는 TS는 세 個의 텔레비전 채널을 表現하기 위하여 이러한 프로그램들을 包含할 수 있다. 各 채널이 하나의 비디오 스트림과 한 두 個의 오디오 스트림, 또 必要한 메타 데이터를 갖고 있다는 假定을 해 볼 수 있다. 受信機 가 特定한 채널을 디코딩하려면 이 프로그램에 連結된 各 PID의 페이로드를 디코딩하여야 한다.

프로그램 指定 情報 (PSI) [ 編輯 ]

프로그램 指定 情報에는 4個의 PSI 가 있다.

  • 프로그램 連結 (Program Association, PAT)
  • 프로그램 맵 (Program Map ,PMT)
  • 條件式 制限 接近(Conditional Access, CAT)
  • 네트워크 情報(Network Information, NIT)

MPEG-2 規格은 CAT와 NIT 포맷에 對하여 規定해 놓지 않았다.

PAT [ 編輯 ]

PAT (프로그램 連結 테이블, Program Association Table)는 TS에서 使用할 수 있는 모든 프로그램을 羅列한다. 羅列된 프로그램은 各各 program_number (프로그램 計數)라 불리는 16비트 값으로 識別된다. PAT에 羅列된 프로그램은 제各各 프로그램 맵 테이블(PMT)의 PID 連結 값을 갖고 있다.

program_number의 값 0x0000는 PID에 네트워크 情報 테이블 位置를 附與하기 위해 保存된다. 該當 프로그램이 PAT에 存在하지 않으면 基本 PID 값 (0x0010)李 NIT에 쓰인다.

PMT [ 編輯 ]

프로그램 맵 테이블(PMT)은 프로그램에 對한 情報를 갖고 있다. 各 프로그램마다 PMT가 存在한다. MPEG-2 標準이 하나 以上의 PMT 섹션이 單一 PID에 電送될 수 있는 機能을 提供하지만 ATSC와 SCTE와 같은 領域에 屬한 大部分의 MPEG-2 使用者들은 各 PMT가 다른 어떠한 패킷에도 쓰이지 않는 하나의 區別된 PID 床에서 電送할 것을 要求한다. PMT는 program_number를 비롯하여 TS에 存在하는 各 프로그램에 對한 情報를 提供하며 記述된 MPEG-2 프로그램을 構成하는 基礎 스트림을 羅列한다. 各 基礎 스트림을 爲한 選擇的 技術者뿐 아니라 完全한 MPEG-2 스트림을 記述하는 選擇的 技術者를 위한 位置 情報도 提供한다. 各 基礎 스트림은 stream_type (스트림 種類) 값으로 그 이름이 붙어 있다.

PCR [ 編輯 ]

連結된 映像과 結合된 오디오 트랙과 같이 동기화된 콘텐츠를 表現하는 디코더를 使用하려면 적어도 100 밀리秒마다 프로그램 클록 參照(PCR)가 MPEG-2 TS 패킷의 有效 필드에 電送되어야 한다. MPEG-2 프로그램을 위한 PCR이 있는 PID는 連結된 프로그램 맵 테이블(PMT) 안에서 pcr_pid 값으로 識別된다. 問題가 없다면 PCR의 값은 디코더 안에서 system_timing_clock (시스템 타이밍 클록)을 만들어 낸다. 여기에도 問題가 없으면 STC 디코더는 映像 및 소리의 基礎 시스템을 동기화하는 데 쓰이는 더 正確한 時間帶를 提供한다. MPEG2 타이밍은 이 클록을 參照하는데 이를테면 再現 時間表 (PTS)는 PCR에 關聯되어 있다. 처음 33비트는 90kHz 클록錄 基盤을 두며 마지막 9비트는 27MHz 클록錄 基盤을 둔다. PCR이 許容하는 最大 지터는 +/- 500 나노秒이다.

Null 패킷 [ 編輯 ]

ATSC DVB 와 같은 一部 電送 體系는 嚴格한 固定 비트레이트를 TS에 要求한다. 스트림이 固定 비트레이트를 維持하려면 多重化氣는 一部 追加的인 패킷을 揷入하여야 한다. 이에 PID 0x1FFF가 豫約돼 있다. null 패킷의 페이로드는 데이터에 全혀 包含되지 않으며 受信機가 null 패킷의 콘텐츠 內容을 無視하게 된다.

TS 파일 支援 프로그램 [ 編輯 ]

多重 運營 體制 [ 編輯 ]

리눅스 [ 編輯 ]

윈도 [ 編輯 ]

macOS [ 編輯 ]

같이 보기 [ 編輯 ]

各州 [ 編輯 ]

  1. MIME Type Registration of RTP Payload Formats . July 2003. RFC 3555 . https://tools.ietf.org/html/rfc3555 .  
  2. ITU-T (October 2014). “Recommendation H.222.0 (10/14)” .  
  3. “保管된 寫本” (PDF) . 2010年 6月 11日에 原本 文書 (PDF) 에서 保存된 文書 . 2010年 4月 7日에 確認함 .  
  4. “ATSC transmission” . 2012年 3月 21日에 原本 文書 에서 保存된 文書 . 2010年 4月 7日에 確認함 .  
  5. MPEG Systems FAQ
  6. “Search Results: 14851” . 2005年 2月 9日에 原本 文書 에서 保存된 文書 . 2010年 4月 7日에 確認함 .  
  7. “TSReader Support” . 2010年 3月 27日에 原本 文書 에서 保存된 文書 . 2010年 4月 7日에 確認함 .  
  8. DVB scrambling control bits defined. Page 6 Archived 2007年 11月 29日 - 웨이백 머신
  9. Entering MPlayer homepage
  10. VideoLAN - VLC media player - Open Source Multimedia Framework and Player
  11. “OpenCaster 2.4: the free digital tv software” . 2010年 4月 6日에 原本 文書 에서 保存된 文書 . 2010年 4月 7日에 確認함 .  
  12. “nexgenta's opencaster at master - GitHub” . 2018年 6月 10日에 原本 文書 에서 保存된 文書 . 2010年 4月 7日에 確認함 .  
  13. “CCCP - Combined Community Codec Pack” . 2017年 6月 9日에 原本 文書 에서 保存된 文書 . 2017年 6月 9日에 確認함 .  
  14. Squared 5 - MPEG Streamclip video converter for Mac and Windows
  15. “How to use Mac TS Converter to convert TS to MP4, MOV on Mac?” . 2010年 3月 24日에 原本 文書 에서 保存된 文書 . 2010年 4月 7日에 確認함 .  

外部 링크 [ 編輯 ]