Jump to content

Ogg Media

Վիքիպեդիայից՝ ազատ հանրագիտարանից
Ogg Media

Ընդլայնում.ogm
Ֆորմատի տեսակմեդիայի պարունակիչ
ՀիմքOgg

Ogg Media (OGM) - ձայնային, վիդեո և ուղեկցող տեքստով տվյալների հոսքերի պահպանման համար կոնտեյներ ֆորմատ է։ Ապահովում է ֆայլի ապահով փոխադրման անհրաժեշտ միջոցները, ֆայլի ամբողջականության վերահսկողությունը, մի քանի հոսքի վերարտադրման ընթացքում (հերթագայում) ֆայլում տեղափոխման քանակի նվազեցումը։

Ogg Media կոնտեյները Ogg կոնտեյների կողմնակի վերափոխումն է, հաշվարկված է Xiph.Org-ով ընդունվող ազատ կոդեկների վրա, ստեղծված է ոչ ազատ կոդեկների ընդունման համար, սովորաբար օգտագործվում է DirectShow-ի միջոցով AVI կոնտեյների հետ։ Ogg Media ստեղծվել է 2002 թ.` անկախ Xiph.Org-ից, որը 2004 թ. հրապարակեց խնդրանք` հեռացնել կոնտեյների անունից մոլորության մեջ գցող «Ogg» բառը[1]։

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
0x1 continued_packet_flag էջը պարունակում է փաթեթի շարունակությունը
0x2 begin_of_stream էջը հոսքի առաջին էջն է
0x4 end_of_stream էջը հոսքի վերջին էջն է
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 բացակայում է։

Ogg

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

[խմբագրել | խմբագրել կոդը]
  1. «OGM». Արխիվացված է օրիգինալից 2012 թ․ մարտի 17-ին. Վերցված է 2016 թ․ հուլիսի 5-ին.