MPEG-TS

Кілька MPEG програм об'єднуються, а потім відправляються на передавальну антену. У трансляціях цифрового ТБ США ATSC-приймач декодує TS і відображає його.

Транспортний потік (TS, TP, MPEG-TS, або M2TS) є протоколом для передачі аудіо і відео даних, описаним у MPEG2 Частина 1 [1]. Мета розробки цього стандарту - мультиплексування аудіо і відео даних і синхронізація їх виходу. Транспортний потік відкриває можливості для виправлення помилок транспортних засобів, таких як DVB і ATSC.

TS - формат медіаконтейнера, який інкапсулює пакети елементарних потоків та інших даних.


1. Структура потоку

У транспортному потоці можна виділити кілька рівнів абстракції, ієрархічна структура яких нагадує мережеву модель OSI. Наприклад потік, що містить відео, можна представити таким чином:

  • Суміш різних програм.
    • Пакетизувавши елементарний потік (Packetized elementary stream, PES)
      • Елементарний потік (Elementary stream, ES)
        • Група зображень (Group of pictures, GOP) - надає випадковий доступ до картинки
          • Окреме зображення (кадр)
            • Зріз (Slice) - частина кадру, виділена для запобігання поширення помилок квантування
              • Макроблок - у складі від 6 до 12 DCT блоків.
                • Елементарний блок кодування (DCT блок) розміром 8x8 точок

2. Важливі елементи транспортного потоку

2.1. Пакет

Пакет, базова одиниця транспортного потоку.

  • заголовок починається з відомого Байта Синхронізації (8 біт) 0x47 (0100 0111).
  • Наступні три бітових прапора використовуються, щоб вказати, як має бути оброблена корисне навантаження.
    • 1. Перший прапорець вказує на транспортну помилку.
    • 2. Другий прапорець вказує початок корисного навантаження (payload_unit_start_indicator). Коли корисне навантаження Transport Stream пакета містить дані по PSI, payload_unit_start_indicator має значення '1 '. Якщо Transport Stream пакет не містить дані по PSI, то значення payload_unit_start_indicator буде 0 ". Посилання на розділи 2.4.4.1 і 2.4.4.2. Це також застосовується до приватних потокам з stream_type 5 (посилання на Таблиця 2-29).
    • 3. Третій прапорець вказує транспортний пріоритетний біт.
  • прапорці супроводжуються Ідентифікатором Пакета (13 біт) PID. Використовується, щоб однозначно визначити потік, якому належить пакет (наприклад, пакети PES, відповідні ES), згенерований мультиплексором. PID дозволяє одержувачеві диференціювати потік, якому належить кожен отриманий пакет. Деякі значення PID зумовлені і використовуються, щоб вказати різні потоки інформації контролю. Від пакета з невідомим PID, який не потрібно одержувачу, просто відмовляються. Специфічне значення PID 0x1FFF зарезервовано, щоб вказати, що пакет - нульовий пакет (і повинен бути проігнорований одержувачем).
  • два наступні службових біта використовуються процедурами умовного доступу до зашифрованої корисному навантаженні деяких пакетів TS.
  • Два службових біта поля адаптації, які можуть мати чотири значення:
    • 1. 01 - без поля адаптації (adaptation_field), тільки корисне навантаження (payload_data)
    • 2. 10 - тільки поля адаптації (adaptation_field), без корисного навантаження (payload_data)
    • 3. 11 - поля адаптації (adaptation_field) і далі слід корисне навантаження (payload_data)
    • 4. 00 - зарезервовано ISO / IEC для майбутнього використання
  • Нарешті є Лічильник Безперервності (4 біти)

Інша частина пакета складається з корисної інформації. Пакети складають 188 байт в довжині, але середовище комунікації може додати деякі байти для усунення помилок пакета. DVB-ASI використовує 204 байти і 208 байтів ATSC як транспортний пакет потоку. (DVB t = 8 і ATSC t = 10 тобто додаткові байти = 2 * t). Передача ATSC додає 20 байтів Reed-Solomon передове усунення помилок, щоб створити пакет, який є 208 байтів завдовжки. 188-байтовий розмір пакета був спочатку вибраний для сумісності з системами ATM.


2.2. PID

Кожна таблиця або елементарний потік в транспортному потоці ідентифікується по 13-бітовому PID. Демультиплексор витягує елементарні потоки із загального транспортного потоку, об'єднуючи їх в потоки з однаковими PID. У більшості додатків планується використовувати тимчасове мультиплексування, щоб вирішувати, як часто конкретний PID буде з'являтися в транспортному потоці.

2.3. Programs

Транспортний потік має концепцію програми. Єдина програма Program Map Table (PMT), яка має унікальний PID, і елементарні потоки, пов'язані з цією програмою і мають свої PID-и, які перераховані в PMT. Наприклад, транспортний потік, використовуваний у цифровому телебаченні може складатися з трьох програм, і нести в собі три телевізійних канали. Припустимо, кожен канал складається з одного відео потоку і одного або двох аудіо потоку, і будь-які необхідні метадані. Приймач, бажаючий декодувати один з каналів використовує для декодування лише PID-и потрібні для даного каналу, які пов'язані з його програмою. Він може відмовитися від містяться в ній всіх інших PID-ів.


2.4. Program Specific Information (PSI)

Спеціальна інформація про програми

  • Program Association Table (PAT),
  • Program Map Table (PMT),
  • Conditional Access Table (CAT),
  • Network Information Table (NIT).

У специфікації MPEG-2 формат CAT і NIT не регламентований.

2.4.1. PAT

Таблиця програм (Program Association Table, PAT) містить PID-и всіх PMT. Її власний PID завжди 0x0.

2.4.2. PMT

Таблиця структури програм (Program Map Table, PMT) містить PIDи і основні характеристики елементарних потоків конкретної програми - відео, звуку, додаткових даних. Для кожної програми є свій PMT з власним PID. Крім того PMT містить повідомлення EMC системи умовного доступу, якщо в програмі присутні зашифровані елементарні потоки.

2.5. PCR

Щоб декодер міг відтворювати програми в правильний час, на правильній швидкості і з синхронізацією, зазвичай програми періодично передають Program Clock Reference, або PCR, в одному з потоків програми. Це так само називається основне джерело опорної частоти (Master Clock). Тимчасові інтервали в MPEG2 розраховуються за цій частоті. Для прикладу, тимчасова мітка подання (PTS) відповідає PCR. Перші 33-біта відповідають опорній частоті в 90 кГц. Розширення послідовності на 9 біт відповідає частоті в 27 МГц.


2.6. Null packets

Деякі протоколи передачі, такі як у стандартах ATSC і DVB, жорстко обмежені вимогами до біт-рейт транспортного потоку. Таким чином, щоб потік даних підтримував постійний жорстко задану швидкість передачі, Multiplexer повинен мати можливість додавати в потік додаткові пакети. Пакети з PID 0x1FFF якраз служать для цих цілей. Поле корисного навантаження цих пакетів не містить будь-якої корисної інформації, таким чином ресивер отримуючи такий пакет ігнорує його вміст.


3. Модифікація в транспортному потоці, специфікація випадкового доступу до медіа (M2TS)

3.1. Timecode

Транспортний потік був створений для касет і мовлення, тому потрібні зміни для використання в медіапристроїв з випадковим доступом, таких як нове покоління цифрових камер, записуючих на DVD, Blu-ray, жорсткі диски або SSD, карти пам'яті.

Система випадкового доступу може зберігати пакетні дані в буфері, якщо пристрій зберігання не готове (наприклад, поки пристрій запускається).

Пакети записуються не по порядку. Спеціальний трек зберігає їх 4-байтний код часу (timecode - TC), доданий в стандартні 188-байтниє пакети. У результаті виходить 192-байтний пакет. Все це неофіційно називається M2TS потоком. Blu-ray Disc Association назвала це "BDAV MPEG-2 transport stream". JVC назвала TOD (можливо, як абревіатура від "Transport stream on disc") коли використовувала його в відекамерой з HDD, таких як GZ-HD7. Транспортний потік M2TS також використовується для AVCHD відеофайлів, які часто мають розширення MTS.


4. Програми, що підтримують TS-файли

4.1. Мультиплатформенні

4.2. Linux

4.3. Windows


4.4. Mac OS X

  • Squared 5 MPEG Streamclip [6]
  • Movist
  • VLC

Примітки

  1. net.net - One of the Internet's premiere addresses - neuron2.net/library/mpeg2/iso13818-1.pdf
  2. Entering MPlayer homepage - www.mplayerhq.hu/
  3. VideoLAN - VLC media player - Open Source Multimedia Framework and Player - www.videolan.org/vlc/
  4. CCCP - Combined Community Codec Pack - cccp-project.net
  5. The KMPlayer's Forums - www.kmplayer.com/
  6. 1 2 Squared 5 - MPEG Streamclip video converter for Mac and Windows - www.squared5.com
  7. VideoReDo MPEG Video Editing Software - www.videoredo.com
  8. Free-Codecs.com :: Download VobEdit 0.6: VobEdit is a tool for joining, cutting, de-multiplexing DVD VOB files - www.free-codecs.com/download/VobEdit.htm
  9. The media player, movie player, YouTube player, video player, AVCHD player, divx player, free player - BS.Player.com - www.bsplayer.org
  10. JetAudio - www.jetaudio.com/products/jetaudio/