RIFF
RIFF (անգլ.՝ Resource Interchange File Format), կոնտեյների ֆայլերի ֆորմատներից մեկն է նախատեսված հոսքային մուլտիմեդիա-տվյալների (վիդեո, աուդիո, հնարավոր է տեքստ) պահպանման համար։ RIFF-ը, որպես կոնտեյներ օգտագործող, ամենից հայտնի ֆորմատներն են AVI (վիդեո), WAV (աուդիո), RMI (MIDI-շավիղներ)։
RIFF | |
---|---|
Ընդլայնում | .riff |
MIME | application/x-riff[1] |
Մշակող | Մայքրոսոֆթ[2] և IBM |
Ֆորմատի տեսակ | ֆայլի ֆորմատ և ֆայլային ձևաչափերի ընտանիք |
Հիմք | IFF |
RIFF ֆորմատը օգտագործում է little-endian (փոքր բայթը գնում է առաջինը) բայթերի հերթականություն։ Այն մեքենաների համար, որոնք ունեն big-endian տվյալներով ֆորմատ, առաջարկվում է RIFX ֆորմատը, սակայն այսպիսի ֆորմատի տվյալներով համակարգիչների կենցաղային ոլորտում էականորեն պասիվ հեղինակության պատճառով, RIFX-ը չգոյատևեց։ Ներկայումս RIFF ֆորմատը վերարտադրվում է նաև big-endian հերթականությամբ բայթերով մեքենաների համար։
Սկզբում RIFF-ը ուներ սկզբունքային սահմանափակում 4 ԳԲ տվյալների չափսերի վրա (ավելի ճշգրիտ, ֆայլի մաքսիմալ չափն էր բայթը)։ Համաձայն ֆայլեր ստեղծող կամ վերարտադրող հանրաճանաչ ծրագրերի շարքի առանձնահատկությունների (հիմնականում Microsoft Windows-ում մեդիապաշարի պատճառով)՝ սահմանափակումը խստացավ մինչև 2 ԳԲ (DWORD RIFF-ի փարսերներում signed int32-ով փոխարինման պատճառով)։ 4 ԳԲ-ից ավել ֆայլերի պահպանման համար AVI ֆորմատը ընդլայնվում է մինչև AVI-DV, որը անցնում է RIFF կոնտեյների շրջանակից։ RIFF հիմքի վրա առաջադրված է RF64 ընդլայնումը, որը թույլ է տալիս 64-բիթանոց թվերով աշխատել European Broadcasting Union-ի կողմից մշակված chunk-երի չափսերի համար։
RIFF ֆորմատը համարվում է little-endian համակարգիչների համար IFF ֆորմատի ադապտացիան (հիմնականում, 80x86-ի վրա PC-ի համար)։ Այն մշակվել է 1991 թվականին Microsoft և IBM ընկերությունների կողմից։ (IFF-ն ստեղծվել է Electronic Arts-ի կողմից 1985 թվականին)։
Chunk
խմբագրելRIFF ֆորմատի հիմնական կոնցեպցիան համարվում է chunk-ը, chunk-ի բովանդակությունը ցույց տվող, վերնագրով և ստորագրությամբ տվյալների բաժինը։
chunk-ի ֆորմատ՝
տիպ | անուն | մեկնաբանություն |
---|---|---|
FOURCC | ckID | chunk-ի ստորագրություն |
DWORD | ckSize | chunk-ի տվյալների չափս |
BYTE[] | ckData | chunk-ի տվյալներ |
Եթե chunk-ը կրում է բայթերի կենտ քանակ, ապա դրանից հետո ավելացվում է մեկ բայթ։ Այդ եղանակով chunk-երը միշտ հարթեցված են 2 բայթի սահմանին։
FOURCC
խմբագրելFOURCC-ը (անգլ.՝ Four Character Code) չորս սիմվոլների հաջորդականություն է, որը օգտագործվում է ցանկացած տվյալի նույնականացման համար։ RIFF-ի համար դա ckID (chunk-երի ինդենտիֆիկատորներ) և ֆորմաների տիպեր։ FOURCC վիդեոհոսքը հիմնականում օգտագործվում է կոդեկի նույնականացման համար(օրինակ՝ «XVID», «DIV3», «MP43»)։ FOURCC-ը զբաղեցնում է 4 բայթ։ Դա 32-բիթանոց թվի չափսն է, այնպես որ FOURCC-ը գրում է թվի տեսքով (թվի ներկայացում ASCII little-endian-ում)։
Օրինակ՝
FOURCC | տասնվեցերորդական թիվ | տասնորդական թիվ |
---|---|---|
'RIFF' | 0x46464952 | 1179011410 |
'AVI' | 0x20495641 | 541677121 |
'DIVX' | 0x44495658 | 1145656920 |
'idx1' | 0x31786469 | 829973609 |
Chunk-երի երկու տիպեր՝ RIFF-ը և LIST-ը կարող են իրենց մեջ տեղադրված chunk-եր կրել։ Ողջ ֆայլը իրենից ներկայացնում է մեկ ամբողջական RIFF-chunk (դա ֆայլի չափսի սահմանափակման պատճառներից մեկն է)։
RIFF ֆորմատի chunk-երի համար ckID-ը միշտ գրվում է մեծատառերով ASCII:Ներքին ֆորմատի chunk-երում(RIFF օգտագործող), այնպիսիք ինչպիսին են AVI-ը կամ WAV-ը, ckID-ը գրվում է փոքրատառերով։ Եթե ckID-ը պարունակում է չորս սիմվոլի չհասնող երկու կամ երեք տառ, բայթերը փոխարինվում են բացատներով(AVI → 'AVI ')։
Գրվածքի կառուցվածք
խմբագրելДля удобства записи հատկորոշումների մեջ օգտագործվում է chunk ֆորմատի գրության համար հետևյալ ձևաչափը՝
ckID(<formType> ck)
Օրինակ, AVI ֆայլի գրության համար RIFF('AVI ' LIST('hdrl' avi_header) LIST ('movi' movi) [idx1]) է։ (Քառակուսի փակագծերը ցույց են տալիս մասնիկի անհրաժեշտութունը)։
Ստանդարտ chunk-եր
խմբագրելRIFF
խմբագրելChunk և ckID = 'RIFF' ունենում է հետևյալ ckData կառուցվածքը՝
դաշտի տիպ | դաշտի անվանում | մեկնաբանություն |
---|---|---|
FOURCC | FormType | բովանդակության տիպ |
BYTE[] | ck | բովանդակություն |
Ամենից տարածված տիպեր՝
- 'AVI ' — AVI պարունակում է վիդեո և աուդիո տվյալներ։
- 'WAVE' — WAV պարունակում է ձայնային տվյալներ
- 'RMID' — RMI պարունակում է երաժշտություն MIDI ֆորմատով
Այլ տիպեր՝
- 'RDIB' — անգլ.՝ RIFF Device Independent Bitmap պատկերների պահպանման ֆորմատ
- 'RMMP' — անգլ.՝ RIFF Multimedia Movie File
- 'PAL ' — անգլ.՝ Palette Format
LIST
խմբագրելChunk 'LIST'-ը RIFF-ին համանման ֆորմատ ունի։ Առաջին 4 բայթը պարունակում է ListType (ներդրված chunk-ի տեսակ), հետո մինչև chunk-ի վերջը հաջորդում են ներդրված chunk-եր։ AVI ֆորմատի շրջանակներում՝ LIST-ի մեջ, պահպանվում են ֆայլի վերնագրով և հոսքերի վերնագրերով chunk-եր։ Նաև chunk LIST-ը կիրառվում է բովանդակության մասին տվյալների պահպանման համար։
JUNK և PAD
խմբագրելՎերափաթաթման և մուտք գործելու արագության ապահովման համար կրիչի վրա սեկտորի չափով բլոկների տվյալները հավասարեցնելու համար կա երկու chunk՝ 'JUNK' և 'PAD' , որոնք «ոչինչ չեն նշանակում» և թողարկվում են վերարտադրման ծրագրերով։ Սկզբում ենթադրվում էր, որ ֆայլը ստեղծելուց այդ chunk-երը ուղղակի կլցվեն զրոներով, սակայն որոշ տեսանյութերի խմբագրման ծրագրեր պահում են այնտեղ իրենց ստորագրությունը (օրինակ՝ Virtual Dub-ը այդպես է անում)։
chunk-երի գրություն խտացված նշագրության մեջ՝
JUNK (filler) PAD (filler)
INFO
խմբագրելINFO հատուկ ListType է նախատեսված ֆայլի պարունակության մասին տվյալների պահպանման համար։ INFO-ն չի ազդում ծրագրերի ֆայլերի հետ աշխատանքի վրա։ Այդ տեղեկությունը (մեծ մասամբ) ցուցադրվում է օգտվողին։ INFO-ի նշանակությունը նման է mp3-թեգերի նշանակությանը։
INFO-ի համար chunk-երի ցուցակ՝
- IARL (անգլ.՝ Archival Location)- փաստաթղթի արխիվային պահպանման վայր։ (գրեթե չի օգտագործվում)
- IART (անգլ.՝ Artist) արտադրության հեղինակների ցուցակ։ (ստանդարտ թեգ, արտացոլված է գրեթե բոլոր ձայնարկիչների վրա)
- ICMS (անգլ.՝ Commissioned)- մարդկանց ցուցակ, ովքեր տրամադրել են ֆայլի պարունակությունը։ (չի օգտագործվում)
- ICMT (անգլ.՝ Comments)- մեկնաբանություններ։ (արտացոլված է գրեթե բոլոր ձայնարկիչների վրա)
- ICOP (անգլ.՝ Copyright)- տեղեկություն հեղինակային իրավունքների մասին։
- ICRD (անգլ.՝ Creation date)- օրիգինալ արտադրության ամսաթիվ։ YYYY-MM-DD ֆորմատ։ (հազվադեպ է օգտագործվում)
- ICRP (անգլ.՝ Cropped) արտադրանքը կտրելու մասին ինֆորմացիա։ (չի օգտագործվում)
- IDIM (անգլ.՝ Dimensions)- օրիգինալի ֆիզիկական չափերը։ (չի օգտագործվում)
- IDPI (անգլ.՝ Dots Per Inch)- օրիգինալի DPI: (չի օգտագործվում)
- IENG (անգլ.՝ Engineer)- ֆայլը ստեղծողների ազգանուններ։ (չի օգտագործվում)
- IGNR (անգլ.՝ Genre)-ժանր։ (մասնակի պահպանվում է)
- IKEY (անգլ.՝ Keywords)-բանալի բառերի ցուցակ։ (չի օգտագործվում)
- ILGT (անգլ.՝ Lightness)- օրիգինալի լուսավորության աստիճան (կախված է թվայնացման սարքավորումից)։ (չի օգտագործվում)
- IMED (անգլ.՝ Medium) օրիգինալի կրիչի տիպ։ (չի օգտագործվում)
- INAM (անգլ.՝ Name)- արտադրության անուն։ Կան տարբեր կարծիքներ այն մասին, թե արդյոք պետք է օգտագործել INAM կամ ISBJ արտադրության վերնագիրը պահելու համար։ (ստանդարտ թեգ, պահպանվում է և հաճախ օգտագործվում)
- IPLT (անգլ.՝ Palette Setting) - թվայնացման գույների քանակ։ (չի օգտագործվում)
- IPRD (անգլ.՝ Product)- արտադրության վերնագիր, ինչի համար նախատեսվել էր այն։ (չի օգտագործվում)
- ISBJ (անգլ.՝ Subject)- նկարագրում է ֆայլի բովանդակությունը։ Պարբերաբար INAM-ին հավասար օգտագործվում է վերնագիրը պահպանելու համար։ (օգտագործվում է)
- ISFT (անգլ.՝ Software)- ֆայլի ստեղծման համար օգտագործվող ծրագրային ապահովում։ Սովորաբար մեքենայաբար լցվում է խմբագրող ծրագրերով, բայց թեգերի ցուցակում չի երևում։ (օգտագործվում է)
- ISHP (անգլ.՝ Sharpness)- արտադրությունը վերարտադրելու համար անհրաժեշտ կտրուկության աստիճան։ (չի օգտագործվում)
- ISRC (անգլ.՝ Source)- արտադրությունը ներկայացնող կազմակերպության անվանում։ (չի օգտագործվում)
- ISRF (անգլ.՝ Source Form)- օրիգինալ արտադրության ձև (թուղթ/սլայդ և այլն)։ (չի օգտագործվում)
- ITCH (անգլ.՝ Technician)- թվայնացումը իրականացնող մասնագետ։ (չի օգտագործվում)