MPEG-TS

Վիքիպեդիայից՝ ազատ հանրագիտարանից
Jump to navigation Jump to search
Մի քանի MPEG ծրագրեր միավորվում են, այնուհետև ուղարկվում հաղորդող ալեհավաքին:

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

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

Հոսքի կառուցվածքը[խմբագրել | խմբագրել կոդը]

Փոխադրական հոսքում կարելի է առանձնացնել աբստրակցիայի մի քանի մակարդակներ, որոնք աստիճանակարգային կառուցվածքը հիշեցնում է OSI մոդելին։ Օրինակ տեսանյութ պարունակող հոսքը կարելի է ներկայացնել հետևյալ կերպ.

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

Փոխադրական հոսքի կարևոր տարրերը[խմբագրել | խմբագրել կոդը]

Փաթեթ[խմբագրել | խմբագրել կոդը]

Փաթեթը փոխադրական հոսքի հիմնային միավորն է։

  • Վերնագիրն սկսվում է հայտնի Սինխրոնիզացիոն բայթից (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 մասնավոր հոսքերի դեպքում։
    • 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 նիշքեր ընդունող ծրագրեր[խմբագրել | խմբագրել կոդը]

Բազմահարթակային[խմբագրել | խմբագրել կոդը]

Linux[խմբագրել | խմբագրել կոդը]

Windows[խմբագրել | խմբագրել կոդը]

Mac OS X[խմբագրել | խմբագրել կոդը]

Ծանոթագրություններ[խմբագրել | խմբագրել կոդը]

Արտաքին հղումներ[խմբագրել | խմբագրել կոդը]