Jump to content

RIFF

Վիքիպեդիայից՝ ազատ հանրագիտարանից
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
RIFF

Ընդլայնում.riff
MIMEapplication/x-riff[1]
ՄշակողՄայքրոսոֆթ[2] և IBM
Ֆորմատի տեսակֆայլի ֆորմատ և ֆայլային ձևաչափերի ընտանիք
ՀիմքIFF

RIFF (անգլ.՝ Resource Interchange File Format), կոնտեյների ֆայլերի ֆորմատներից մեկն է նախատեսված հոսքային մուլտիմեդիա-տվյալների (վիդեո, աուդիո, հնարավոր է տեքստ) պահպանման համար։ RIFF-ը, որպես կոնտեյներ օգտագործող, ամենից հայտնի ֆորմատներն են AVI (վիդեո), WAV (աուդիո), RMI (MIDI-շավիղներ)։

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)- թվայնացումը իրականացնող մասնագետ։ (չի օգտագործվում)

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