Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Файл түрінің идентификаторы. Төрт КК ("төрт таңбалы код") – дерек форматтарын бірегей анықтауға қолданылатын төрт байттық тізбек (көбінесе ASCII). Ол классикалық Mac OS жүйесінде қолданылған OSType немесе ResType метадеректер жүйесінде пайда болды және Amiga / Electronic Arts Interchange File Format пен оның туындылары үшін қабылданды. Кейін бұл идея QuickTime және DirectShow жүйелерінде қысылған деректер түрлерін анықтау үшін қайта қолданылды.
Identifier for a file type
A FourCC ("four character code") is a sequence of four bytes (typically ASCII) used to uniquely identify data formats. It originated from the OSType or ResType metadata system used in classic Mac OS and was adopted for the Amiga/Electronic Arts Interchange File Format and derivatives. The idea was later reused to identify compressed data types in QuickTime and DirectShow.
Тарих
1984 жылы Macintosh OS-тің ең алғашқы нұсқасы System 1 жарық көрді. Ол файл түрлерін, жасаушы (қосымша) туралы ақпаратты және қосымша ресурстарды сақтау үшін бір деңгейлі Macintosh файлдық жүйесін, сондай-ақ метадеректер өрістерін және бұрамаларды пайдаланды. Бұл ақпаратты деректерді өзгертусіз өзгертуге мүмкіндік болды, осылайша оларды әртүрлі интерпретациялауға болады. Жүйе бойындағы барлық деректер үшін типтік таңбалар ретінде бірдей кодтар қолданылды. 1985 жылы Electronic Arts компаниясы Amiga үшін әзірленген Interchange File Format (IFF) метаформатын (файл пішімдерінің отбасы) ұсынды. Бұл файлдар кез келген деректерді қамтитын "бөліктер" тізбегінен тұрады, әр бөлік төрт байттық ID арқылы белгіленеді. IFF сипаттамасында FourCC идеясының бастауы Apple компаниясында екені нақты көрсетілген. Бұл IFF бірнеше әзірлеушілер, оның ішінде Apple (AIFF файлдары үшін) және Microsoft (RIFF файлдары үшін – олар AVI және WAV файл пішімдерінің негізі болды) тарапынан қабылданды. Apple осы кодтардың көп бөлігін OSTypes деп атады. Microsoft және Windows әзірлеушілері өздерінің төрт байттық идентификаторларын FourCCs немесе Four Character Codes деп атайды. Microsoft компаниясы DirectX-те, әсіресе DirectShow және DirectX Graphics-те қолданылатын дерек форматтарын анықтау үшін FourCC кодтарын қабылдады.
In 1984, the earliest version of a Macintosh OS, System 1, was released. It used the single level Macintosh File System with metadata fields including file types, creator (application) information, and forks to store additional resources. It was possible to change this information without changing the data itself, so that they could be interpreted differently. Identical codes were used throughout the system, as type tags for all kinds of data. In 1985, Electronic Arts introduced the Interchange File Format (IFF) meta format (family of file formats), originally devised for use on the Amiga. These files consisted of a sequence of "chunks", which could contain arbitrary data, each chunk prefixed by a four byte ID. The IFF specification explicitly mentions that the origins of the FourCC idea lie with Apple. This IFF was adopted by a number of developers including Apple for AIFF files and Microsoft for RIFF files (which were used as the basis for the AVI and WAV file formats). Apple referred to many of these codes as OSTypes. Microsoft and Windows developers refer to their four byte identifiers as FourCCs or Four Character Codes. FourCC codes were also adopted by Microsoft to identify data formats used in DirectX, specifically within DirectShow and DirectX Graphics.
Apple жүйелерінде
Mac OS X Panther-ден бастап OSType қолтаңбалары Бірыңғай типті идентификаторды анықтауға көмектесетін бірнеше көздердің бірі болып табылады және енді негізгі дерек типінің қолтаңбасы ретінде қолданылмайды. Mac OS X (macOS) файл түрлерін атау үшін файл атауының кеңейтімдерін пайдалануды қалайды. Бұл өзгеріс осы кезде ескі пайдаланушылар арасында қатты пікірталас тудырды, олар Apple файл атауындағы деректерді шатастыратын, бұрынғы қарапайым әдіске қайта оралды деп ойлады. Файл жүйесімен байланысты типтік кодтарды пайдаланушылар өзгерту үшін оңай қол жеткізе алмайды, бірақ оларды белгілі бір бағдарламалық қамтамасыз ету арқылы қарауға және өзгертуге болады, әсіресе /Developer/Tools-қа әзірлеуші құралдарының бір бөлігі ретінде орнатылған macOS командалық жолының GetFileInfo және SetFile құралдары, немесе ескі Mac-тер үшін қол жетімді ResEdit қосымшасы арқылы.
Since Mac OS X Panther, OSType signatures are one of several sources that may be examined to determine a Uniform Type Identifier and are no longer used as the primary data type signature. Mac OS X (macOS) prefers the more colloquial convention of labelling file types using file name extensions. At the time of the change, the change was a source of great contention among older users, who believed that Apple was reverting to a more primitive way that misplaces metadata in the filename. Filesystem associated type codes are not readily accessible for users to manipulate, although they can be viewed and changed with certain software, most notably the macOS command line tools GetFileInfo and SetFile which are installed as part of the developer tools into /Developer/Tools, or the ResEdit utility available for older Macs.
Техникалық мәліметтер
Байт тізбегі әдетте ASCII басып шығаратын символдармен шектеледі, ал бос символдар қысқа тізбектерді толтыру үшін резервтелінеді. Файл кеңейтулерінен өзгеше, әріптердің регистрі сақталады. FourCC кейде он алтылық жүйеде кодталады (мысалы, "0x31637661" – 'avc1' үшін) және кейде адам оқи алатын форматта кодталады (мысалы, "mp4a"). Дегенмен, кейбір FourCC символдар басып шығаруға жарамсыз болып келеді және арнайы форматтаусыз оқылмайды; мысалы, 10 биттік Y'CbCr 4:2:2 бейнесінде FourCC ('Y', '3', 10, 10) болуы мүмкін, ffmpeg оны rawvideo (Y3[10][10] / 0x0A0A3359), yuv422p10le түрінде көрсетеді. Төрт байттық идентификаторлар пайдалы, себебі олар есте қалғандық қасиеттері бар төрт адам оқи алатын символдан тұруы мүмкін, сонымен қатар 32 биттік жүйелерде бүтін сандар үшін әдетте бөлінетін төрт байттық жад кеңістігіне сыяды (бірақ эндиандық мәселелер оларды оқуды қиындатуы мүмкін). Осылайша, кодтарды бағдарламалық кодта бүтін сандар ретінде тиімді пайдалануға болады, сондай-ақ тексерілген кезде екілік деректер ағынында меңзеулер беруге мүмкіндік береді.
The byte sequence is usually restricted to ASCII printable characters, with space characters reserved for padding shorter sequences. Case sensitivity is preserved, unlike in file extensions. FourCCs are sometimes encoded in hexadecimal (e. g., "0x31637661" for 'avc1') and sometimes encoded in a human readable way (e. g., "mp4a"). Some FourCCs however, do contain non printable characters, and are not human readable without special formatting for display; for example, 10bit Y'CbCr 4:2:2 video can have a FourCC of ('Y', '3', 10, 10) which ffmpeg displays as rawvideo (Y3[10] [10] / 0x0A0A3359), yuv422p10le. Four byte identifiers are useful because they can be made up of four human readable characters with mnemonic qualities, while still fitting in the four byte memory space typically allocated for integers in 32 bit systems (although endian issues may make them less readable). Thus, the codes can be used efficiently in program code as integers, as well as giving cues in binary data streams when inspected.
Компиляторды қолдау
FourCC негізгі ASCII таңбалар тізбегіне қатысты үлкен ендімен жазылады, осылайша ол тізбектей оқылғанда дұрыс байт ретімен көрінеді. Көптеген C компиляторлары, GCC-де соның ішінде, көп таңбалы мәнді ең кіші маңызды байтқа қарай оңға жылдыруды анықтайды, сондықтан ASCII-де 0x31323334 болады. Бұл Mac OS бағдарламашылары OSType үшін қолданатын FourCC кодтарын жазудың қалыпты тәсілі. (Классикалық Mac OS тек үлкен ендімен жұмыс істеді.) Кішкентай ендімен жұмыс істейтін машиналарда дұрыс нәтиже алу үшін байтты ауыстыру қажет. Мысалы, жоғарыдағы avc1 мысалын қарастырайық: әдеби мән санды бүтін санға түрлендіргенімен, кішкентай ендімен жұмыс істейтін машина байт ретін кері ауыстырып, мәнді сақтайды. Дұрыс байт тізбегін алу үшін, алдын ала ауыстырылған мән қолданылады.
FourCC is written in big endian relative to the underlying ASCII character sequence, so that it appears in the correct byte order when read as a string. Many C compilers, including GCC, define a multi character literal behavior of right aligning to the least significant byte, so that becomes 0x31323334 in ASCII. This is the conventional way of writing FourCC codes used by Mac OS programmers for OSType. (Classic Mac OS was exclusively big endian.) On little endian machines, a byte swap on the value is required to make the result correct. Taking the avc1 example from above: although the literal already converts to the integer value , a little endian machine would have reversed the byte order and stored the value as To yield the correct byte sequence , the pre swapped value is used.