MPEG-TS

մինի|Մի քանի MPEG ծրագրեր միավորվում են, այնուհետև ուղարկվում հաղորդող ալեհավաքին:
**Փոխադրական հոսքը (TS, TP, MPEG-TS, կամ M2TS)** ձայնա և տեսատվյալների հաղորդման արձանագրություն է։ Այս ստանդարտի մշակման նպատակը ձայնա և տեսատվյալների մուլտիփլեքսացումն է (, տվյալների մի քանի հոսքի նույն խողովակով փոխանցում) և նրանց ելքի սինխրոնիզացում։ Փոխադրական հոսքը բացում է փոխադրական միջոցների սխալների ուղղման հնարավորություն, ինչպիսին են DVB և ATSC-ը։

TS-ն մեդիակոնտեյների ֆորմատ է, որը բացում է տարրական հոսքերի և այլ տվյալների փաթեթները։

## Հոսքի կառուցվածքը
Փոխադրական հոսքում կարելի է առանձնացնել աբստրակցիայի մի քանի մակարդակներ, որոնք աստիճանակարգային կառուցվածքը հիշեցնում է OSI մոդելին։ Օրինակ տեսանյութ պարունակող հոսքը կարելի է ներկայացնել հետևյալ կերպ.
* Տարբեր ծրագրերի խառնուրդ
** Փաթեթավորված տարրական հոսք ()
*** Տարրական հոսք (Elementary stream, ES)
**** Պատկերների խումբ (Group of pictures, GOP), ներկայացնում է պատահական մուտք դեպի նկարը
***** Առանձին պատկեր (կադր)
****** Հատում (), սխալների տարածման կանխման համար կադրի նշված մաս
******* Մակրոբլոկ` կազմված 6 -ից 12 DCT բլոկներից
******** Կոդավորման տարրական բլոկ (DCT բլոկ), 8x8 կետ չափերով

## Փոխադրական հոսքի կարևոր տարրերը
### Փաթեթ
Փաթեթը փոխադրական հոսքի հիմնային միավորն է։
* Վերնագիրն սկսվում է հայտնի Սինխրոնիզացիոն բայթից (8 բիթ) 0x47 (0100 0111)։
* Հաջորդ երեք բիթային դրոշներն օգտագործվում են օգտակար բեռնվածության մշակումը ցույց տալու համար։ 
** 1. Առաջին դրոշակը նշում է փոխադրական սխալը։
** 2. Երկրորդ դրոշակը նշում է օգտակար բեռնվածության սկիզբը ()։ Երբ 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 մասնավոր հոսքերի դեպքում։
** 3. Երրորդ դրոշակը նշում է առաջնային փոխադրական բիթը։
* Դրոշակներն ուղեկցվում են Փաթեթի իդենտիֆիկատորով (13 բիթ) PID: Օգտագործվում, որպեսզի միանշանակ որոշվի հոսքը, որին պատկանում է մուլտիփլեքսորի արտադրած փաթեթը (օրինակ` ES-ին համապատասխանող PES փաթեթը)։ PID-ի որոշ արժեքներ կանխորոշված են և օգտագործվում են ղեկավարման տեղեկության տարբեր հոսքերը նշելու համար։ Ստացողին չպահանջվող անհայտ PID-ով փաթեթից պարզապես հրաժարվում են։ PID 0x1FFF յուրահատուկ արժեքը գրանցված է փաթեթ-զրոյական փաթեթը նշելու համար (և պետք է անտեսվի ստացողի կողմից)։
* Հաջորդ երկու ծառայողական բիթերն օգտագործվում են որոշ TS փաթեթների օգտակար բեռնվածության ծածկագրերի պայմանական մուտքի պրոցեդուրաների կողմից։
** 1. 00 — չծածկագրված փաթեթ
** 2. 01 — հետագա օգտագործման համար ԳՐԱՆՑՎԱԾ
** 3. 10 — զույգ բանալիով ծածկագրված փաթեթ
** 4. 11 — կենտ բանալիով ծածկագրված փաթեթ։
* Ադապտացիայի դաշտի ծառայողական երկու բիթ, որոնք կարող են ունենալ չորս արժեք.
** 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 հաղորդումն Reed-Solomon սխալների առաջնային վերացմանն ավելացնում է 20 բայթ, 208 բայթ երկարությամբ փաթեթ ստեղծելու համար։ Փաթեթի 188 բայթանոց չափն ի սկզբանե ընտրված էր ATM համակարգերի հետ համատեղելության համար։

### PID
Փոխադրական հոսքում յուրաքանչյուր աղյուսակ կամ տարրական հոսք նույնականացվում է 13 բիթանոց PID-ով։ Դեմուլտիփլեքսորն ընդհանուր փոխադրական հոսքից դուրս է հանում տարրական հոսքերը` միացնելով դրանք նման PID ունեցող հոսքերով։ Շատ ներդիրներում նախատեսվում է կիրառել ժամանակավոր մուլտիփլեքացում, որպեսզի որոշվի, թե կոնկրետ PID-ը որքան հաճախ կհայտնվի փոխադրակկան հոսքում։

### Programs
Փոխարդական հոսքն ունի ծրագրի կոնցեպցիա (ըմբռնում)։ Program Map Table (PMT) միակ ծրագիրն է, որն ունի եզակի PID և այդ ծրագրի հետ կապված, իրենց PID-երն ունեցող տարրական հոսքեր, որոնք թվարկված են PMT-ում։ Օրինակ` թվային հեռուստատեսությունում կիրառվող փոխադրական հոսքը կարող է կազմվել երեք ծրագրերից և իր մեջ կրել երեք հեռուստատեսային ալիք։ Ենթադրենք, յուրաքանչյուր ալիք կազմված է մեկ տեսահոսքից և մեկ կամ երկու ձայնային հոսքից և ցանկացած անհրաժեշտ
մետատվյալից։ Ալիքները դեկոդավորել ցանկացող ընդունիչը դեկոդավորման համար կիրառում է միայն տվյալ ալիքի համար անհրաժեշտ PID-երը, որոնք կապված են իր ծրագրի հետ։ Այն կարող է հրաժարվել նրանում պարունակվող մնացած բոլոր PID-երից։

### Program Specific Information (PSI)
Հատուկ տեղեկություն ծրագրերի մասին.

* Program Association Table (PAT),
* Program Map Table (PMT),
* Conditional Access Table (CAT),
* Network Information Table (NIT)։

MPEG-2 ֆորմատի դասակարգման մեջ CAT-ը և NIT-ը կանոնակարգված չեն։

#### PAT
(Program Association Table, PAT) ծրագրերի աղյուսակը պարունակում է բոլոր PMT-ի PID-եր։ Իր սեփական PID-ը միշտ 0x0:

#### PMT
(Program Map Table, PMT) ծրագրի կառուցվածքի աղյուսակը պարունակում է PID-եր և կոնկրետ ծրագրի տարրական հոսքերի հիմնական բնութագրիչներ` տեսանյութ, ձայն, լրացուցիչ տվյալներ։ Յուրաքանչյուր ծրագրի համար կա իր սեփական PID-ով PMT-ն։ Բացի այդ, եթե ծրագրում առկա են ծածկագրված տարրական հոսքեր, PMT-ն պարունակում է պայմանական մուտքի ECM համակարգի հաղորդագրություն։

### PCR
Որպեսզի դեկոդերը կարողանա վերարտադրել ծրագրերը ճիշտ ժամանակին, ճիշտ արագությամբ և սինխրոնիզացիայով, ծրագրերը սովորաբար պարբերական հաղորդում են Program Clock Reference, կամ PCR` ծրագրի հոսքերից մեկում։ Դա այդպես էլ կոչվում է` հենակետային հաճախության (Master Clock) հիմնական աղբյուր։ MPEG2-ում ժամանակային միջակայքերը հաշվվում են այդ հաճախությամբ։ Օրինակ` ներկայացման ժամանակային նշումը (PTS) համապատասխանում է PCR-ին։ Առաջին 33 բիթը համապատասխանում են 90 կՀց հենակետային հաճախությանը։ Ներկայացման ընդլայնումը մինչև 9 բիթ, համապատասխանում է 27 մՀց հաճախությանը։

### Null packets
Հաղորդման որոշ արձանագրություններ, ինչպիսիք են ATSC և DVB ստանդարտները, խիստ սահմանափակ են փոխադրական հոսքի բիթ-րեյթի պահանջների հանդեպ։ Այսպիսով, որպեսզի տվյալների հոսքն ընդունի հաղորդման խիստ տրված արագությունը, Multiplexer-ը պետք է ունենա հոսքում լրացուցիչ փաթեթներ ավելացնելու հնարավորություն։ PID 0x1FFF փաթեթները ծառայում են հենց այդ նպատակին։ Այդ փաթեթների օգտակար բեռնվածությունը չի պպարունակում որևէ օգտակար տեղեկություն, այդ կերպ, ռեսիվերն ստանալով այդպիսի փաթեթ անտեսում է նրա պարունակությունը։

## M2TS նիշքեր ընդունող ծրագրեր
### Բազմահարթակային
* FFmpeg
* MPlayer
* VideoLAN 
* մերդիանվագարկիչ VLC
* ProjectX
* PS3Muxer
### [[Linux]]
* Մերդիանվագարկիչ VLC
* xine
* MythTV
* SMPlayer
### [[Windows]]
* Combined Community Codec Pack
* K-Lite Codec Pack
* GOM Player
* Haenlein-Software DVR Studio
* The KMPlayer
* Squared 5 MPEG Streamclip
* VideoReDo
* VobEdit
* BSPlayer
* jetAudio
* Մերդիանվագարկիչ VLC
* Light alloy
### [[Mac OS X]]
* Squared 5 MPEG Streamclip
* Movist
* Մերդիանվագարկիչ VLC

## Ծանոթագրություններ

## Արտաքին հղումներ
* MPEG-2 Systems FAQ 
* MPEG-4 Systems FAQ 
* MPEG-1 description 
* Powerpoint MPEG-2 Transport Stream introduction 
* http://www.glue.umd.edu/~karir/mpeg2/MPEG-2.PPT
* Splicing FAQ 
* Freeware TS-Muxer
* MPEG-2 Transport Stream
* MPEG-2 Transmission 

Կատեգորիա:MPEG