Ogg Media
Ogg Media | |
---|---|
Ընդլայնում | .ogm |
Ֆորմատի տեսակ | մեդիայի պարունակիչ |
Հիմք | Ogg |
Ogg Media (OGM) - ձայնային, վիդեո և ուղեկցող տեքստով տվյալների հոսքերի պահպանման համար կոնտեյներ ֆորմատ է։ Ապահովում է ֆայլի ապահով փոխադրման անհրաժեշտ միջոցները, ֆայլի ամբողջականության վերահսկողությունը, մի քանի հոսքի վերարտադրման ընթացքում (հերթագայում) ֆայլում տեղափոխման քանակի նվազեցումը։
Ogg Media կոնտեյները Ogg կոնտեյների կողմնակի վերափոխումն է, հաշվարկված է Xiph.Org-ով ընդունվող ազատ կոդեկների վրա, ստեղծված է ոչ ազատ կոդեկների ընդունման համար, սովորաբար օգտագործվում է DirectShow-ի միջոցով AVI կոնտեյների հետ։ Ogg Media ստեղծվել է 2002 թ.` անկախ Xiph.Org-ից, որը 2004 թ. հրապարակեց խնդրանք` հեռացնել կոնտեյների անունից մոլորության մեջ գցող «Ogg» բառը[1]։
OGM ֆորմատ
[խմբագրել | խմբագրել կոդը]Ogg եզրում տվյալների յուրաքանչյուր հոսք կոչվում է տրամաբանական հոսք (անգլ.՝ logical bitstream), մի քանի տրամաբանական հոսքերը միավորվում են ֆիզիկական հոսքերի մեջ (անգլ.՝ physical bitstream)։
Գոյություն ունեն տրամաբանական հոսքերի մեկ ֆիզիկականի միավորման հետևյալ մեթոդները.
- հաջորդական միավորում (անգլ.՝ chaining), առաջին տրամաբանական հոսքի բոլոր էջերը հաջորդում են մինչև երկրորդ տրամաբանական հոսքը,
- խմբավորում (անգլ.՝ grouping), հոսքերի էջերը տեղաշարժվում են, տարբեր հոսքերից տվյալների միաժամանակյա ընթերցման հնարավորության ապահովման համար, առանց ֆայլում տեղաշարժի էական փոփոխությունների (RIFF կոնտեյների համար հոսքերի այսպիսի դիրքը կոչվում է հերթագայում)։
Յուրաքանչյուր տրամաբանական հոսք բաժանվում է փաթեթների (անգլ.՝ packets). Փաթեթի ֆորմատը որոշվում է օգտագործված կոդեկով։ Փաթեթները բաժանվում են սեգմենտների (անգլ.՝ segments), որոնցից յուրաքանչյուրի չափը չի գերազանցում 255 բայթը։ Սեգմենտները միավորվում են էջերով, յուրաքանչյուր էջը պարունակում է 255 սեգմենտից ոչ ավել (տվյալների ընդհանուր չափը մեկ էջում երբեք չի գերազանցում 64 ԿԲ)։ Փաթեթը կարող է պարունակվել ավելի քան մեկ էջում (այսինքն` 64 ԿԲ-ից ավելի մեծ չափով), այդ դեպքում փաթեթի շարունակություն պարունակող էջի համար դրվում է հատուկ դրոշակ` «փաթեթի շարունակություն» (անգլ.՝ continued_packet_flag)։
Փաթեթի կառուցվածքը
[խմբագրել | խմբագրել կոդը]Միախառնում | Չափ | Տիպ | Անվանում | Նկարագրություն | |||
---|---|---|---|---|---|---|---|
0x0 | 4 | FOURCC | capture_pattern | միշտ հավասար է 'OggS', 0x4f 0x67 0x67 0x53 | |||
0x4 | 1 | BYTE | stream_structure_version | կառուցվածքի տարբերակը, պետք հավասար լինի 0-ի | |||
0x5 | 1 | բիթային դաշտ | header_type_flag |
| |||
0x6 | 8 | INT64 | absolute_granule_position | այդ փաթեթում ամբողջովին կոդավորված շրջանակի համարը։ Փաթեթում ամբողջովին չտեղավորված շրջանակները հաշվի չեն առնվում, եթե փաթեթում ամբողջովին տեղավորվող շրջանաներ չկան, նշվում է 1 մեծությունը։ | |||
0xE | 4 | INT32 | page_serial_number | տրամաբանական հոսքի համարը (տրված ֆիզիկական հոսքի շրջանակներում), որին վերաբերվում է էջի բովանդակությունը։ Մեկ ֆիզիկական հոսքի շրջանակներում պետք է լինի ունիկալ։ | |||
0x12 | 4 | INT32 | page_sequence_no | տրամաբանական հոսքում էջի կարգային համարը | |||
0x16 | 4 | UINT32 | page_checksum | էջի CRC32 կոդը | |||
0x1A | 1 | BYTE | page_segments | էջի հատվածների քանակը։ [0-255]-ում թիվ, 0 և 255 թվեը թույլատրելի են (0-ի դեպքում էջը չունի հատվածներ և պետք բաց թողնվի) | |||
0x1B | page_segments | BYTE | segment_table | էջում հատվածների չափերի աղյուսակ։ Աղյուսակում գրանցումների քանակը սահմանվում է page_segment-ով, զրոյական արժեքի դեպքում segment_table բացակայում է։ |
Տես նաև
[խմբագրել | խմբագրել կոդը]Ծանոթագրություններ
[խմբագրել | խմբագրել կոդը]- ↑ «OGM». Արխիվացված է օրիգինալից 2012 թ․ մարտի 17-ին. Վերցված է 2016 թ․ հուլիսի 5-ին.
|