blob: b517779e24eae4ece1ea4f3f5635f39c53439ade [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//RU">
<!-- Copyright (c) 2000,2001,2002 Josh Coalson -->
<!-- Permission is granted to copy, distribute and/or modify this document -->
<!-- under the terms of the GNU Free Documentation License, Version 1.1 -->
<!-- or any later version published by the Free Software Foundation; -->
<!-- with no invariant sections. -->
<!-- A copy of the license can be found at http://www.gnu.org/copyleft/fdl.html -->
<HTML>
<HEAD>
<META CHARSET="windows-1251">
<TITLE>FLAC: ôîðìàò</TITLE>
</HEAD>
<BODY>
<CENTER><TABLE cellpadding=0 cellspacing=0 border=0>
<TR>
<TD align=center>|</TD>
<TD height=22 align=center nowrap>
&nbsp;<A HREF="index.html">íà÷àëî</A>&nbsp;</TD>
<TD align=center>|</TD>
<TD align=center nowrap>
&nbsp;<A HREF="news.html">íîâîñòè</A>&nbsp;</TD>
<TD align=center>|</TD>
<TD align=center nowrap>
&nbsp;<A HREF="download.html">ôàéëû</A>&nbsp;</TD>
<TD align=center>|</TD>
<TD align=center nowrap>
&nbsp;<A HREF="features.html">õàðàêòåðèñòèêè</A>&nbsp;</TD>
<TD align=center>|</TD>
<TD align=center nowrap>
&nbsp;<A HREF="goals.html">öåëè</A>&nbsp;</TD>
<TD align=center>|</TD>
<TD align=center nowrap>
&nbsp;ôîðìàò&nbsp;</TD>
<TD align=center>|</TD></TR>
<TR>
<TD align=center>|</TD>
<TD align=center nowrap>
&nbsp;<A HREF="id.html">id</A>&nbsp;</TD>
<TD align=center>|</TD>
<TD align=center nowrap>
&nbsp;<A HREF="comparison.html">ñðàâíåíèå</A>&nbsp;</TD>
<TD align=center>|</TD>
<TD align=center nowrap>
&nbsp;<A HREF="developers.html">ðàçðàáîòêà</A>&nbsp;</TD>
<TD align=center>|</TD>
<TD align=center nowrap>
&nbsp;<A HREF="documentation.html">äîêóìåíòàöèÿ</A>&nbsp;</TD>
<TD align=center>|</TD>
<TD align=center nowrap>
&nbsp;<A HREF="links.html">ññûëêè</A>&nbsp;</TD>
<TD align=center>|</TD>
<TD align=center nowrap>
&nbsp;<A HREF="authors.html">àâòîðû</A>&nbsp;</TD>
<TD align=center>|</TD></TR>
</TABLE></CENTER>
<P><CENTER><TABLE cellpadding=0 cellspacing=0 border=0>
<TR><TD align=center>|</TD>
<TD height=22 align=center nowrap>
&nbsp;<A HREF="../format.html">english</A>&nbsp;</TD>
<TD align=center>|</TD>
<TD align=center nowrap>
&nbsp;ðóññêèé</A>&nbsp;</TD>
<TD align=center>|</TD></TR>
</TABLE></CENTER></P>
<CENTER><H2>FLAC: ôîðìàò</H2></CENTER>
<H3>Ôîðìàò</H3>
<P>Çäåñü ïðèâåäåíî ïîëíîå îïèñàíèå ôîðìàòà FLAC.</P>
<H4>Îò àâòîðà</H4>
<P>Âî-ïåðâûõ, êàê îñíîâíîé ðàçðàáîò÷èê, ÿ äîëæåí îòìåòèòü, ÷òî íå ÿâëÿþñü ýêñïåðòîì â îáëàñòè ñæàòèÿ, ïîýòîìó ÷óâñòâóþ ñåáÿ îáÿçàííûì ïîáëàãîäàðèòü ìíîãèõ ëþäåé, ðàáîòàâøèõ íàä óëó÷øåíèåì àëãîðèòìîâ êîìïðåññèè àóäèîäàííûõ. Îòäåëüíóþ áëàãîäàðíîñòü ÿ âûðàæàþ:</P>
<P><BLOCKQUOTE>
<LI><A HREF="http://svr-www.eng.cam.ac.uk/~ajr/">Ý. Ðîáèíñîíó</A> çà ðàáîòó íàä Shorten. Åãî êîä è ñòàòüÿ ïîñëóæèëè îòïðàâíîé òî÷êîé äëÿ íåñêîëüêèõ îñíîâíûõ ìåòîäîâ, çàëîæåííûõ âî FLAC. FLAC ðàçâèë èäåþ ïîñòîÿííûõ ïðåäèêòîðîâ, èñïîëüçóåìóþ â Shorten.</LI>
<LI><A HREF="http://commsci.usc.edu/faculty/golomb.html">Ñ. Ãîëîìáó</A> è Ðîáåðòó Ðàéñó. Èõ óíèâåðñàëüíûå êîäû èñïîëüçóþòñÿ êîäåðîì ýíòðîïèè.</LI>
<LI>Í. Ëåâèíñîíó è Äæ. Äàðáèíó. Áàçîâûé åíêîäåð èñïîëüçóåò ðàçðàáîòàííûé è óëó÷øåííûé èìè àëãîðèòì äëÿ îïðåäåëåíèÿ LPC êîýôôèöèåíòîâ èç êîýôôèöèåíòîâ àâòîêîððåëÿöèè.</LI>
<LI>È, êîíå÷íî æå, <A HREF="http://www.digitalcentury.com/encyclo/update/shannon.html">Ê. Øåííîíó.</A></LI>
</BLOCKQUOTE></P>
<P>--Äæîø Êîëñîí</P>
<a name="scope">
<H4><u>Îáëàñòü ïðèìåíåíèÿ</u></H4>
<P>Îáùåèçâåñòíî, ÷òî íåò àëãîðèòìà, ñïîñîáíîãî ñæàòü áåç ïîòåðü âõîäíûå äàííûå ëþáîãî òèïà. Áîëüøèíñòâî àðõèâàòîðîâ ïîçèöèîíèðóþòñÿ äëÿ ðàáîòû ñ äàííûìè îïðåäåëåííîãî âèäà è îïòèìèçèðóþòñÿ äëÿ ýòîé îáëàñòè. FLAC ïðåäíàçíà÷åí äëÿ ñæàòèÿ àóäèîäàííûõ. Íåñìîòðÿ íà òî, ÷òî îí ìîæåò ñæàòü áåç ïîòåðü äàííûå ëþáîãî òèïà, òîëüêî îïðåäåëåííûé ââîä àðõèâèðóåòñÿ õîðîøî. FLAC èñïîëüçóåò òîò ôàêò, ÷òî îáû÷íî àóäèîäàííûå èìåþò âûñîêèé ïîðÿäîê êîððåëÿöèè ìåæäó ñýìïëàìè.</P>
<P> îáëàñòè àóäèî ñóùåñòâóåò ìíîæåñòâî âîçìîæíûõ ïîäðàçäåëîâ. Íàïðèìåð, ðå÷ü ñ íèçêèì áèòðåéòîì, ìíîãîêàíàëüíàÿ ìóçûêà ñ âûñîêîé ÷àñòîòîé äèñêðåòèçàöèè è ò.ä. FLAC íå íàöåëåí íà êàêîé-ëèáî ïîäðàçäåë, îäíàêî áîëüøèíñòâî ïàðàìåòðîâ ïî óìîë÷àíèþ áàçîâîãî åíêîäåðà ðàññ÷èòàíû íà CD-àóäèî (ò.å. 44.1êÃö, 2 êàíàëà, 16 áèò íà ñýìïë). Âëèÿíèå ïàðàìåòðîâ êîäèðîâàíèÿ íà ðàçíûå òèïû àóäèî áóäåò ðàññìîòðåíî ïîçæå.</P>
<a name="architecture">
<H4><u>Àðõèòåêòóðà</u></H4>
<P>Ïîäîáíî áîëüøèíñòâó ïðîãðàìì òàêîãî ðîäà, åíêîäåð FLAC âûïîëíÿåò ñëåäóþùèå äåéñòâèÿ:</P>
<P><BLOCKQUOTE>
<LI><A HREF="format.html#blocking">Ðàçáèåíèå íà áëîêè</A>. Ââîä ðàçáèâàåòñÿ íà ìíîæåñòâî ïîñëåäîâàòåëüíûõ áëîêîâ, êîòîðûå ìîãóò èìåòü ðàçëè÷íûé ðàçìåð. Îïòèìàëüíûé ðàçìåð áëîêà îáû÷íî çàâèñèò îò ìíîãèõ ôàêòîðîâ, òàêèõ êàê ÷àñòîòà äèñêåòèçàöèè, ñïåêòðàëüíàÿ õàðàêòåðèñòèêà âî âðåìåíè è ò.ä. Íåñìîòðÿ íà òî, ÷òî ôîðìàò FLAC ïîçâîëÿåò èñïîëüçîâàòü â ïîòîêå áëîêè ðàçëè÷íîãî ðàçìåðà, áàçîâûé åíêîäåð èñïîëüçóåò ïîñòîÿííûé ðàçìåð.</LI>
<LI><A HREF="format.html#interchannel">Ìåæêàíàëüíàÿ äåêîððåëÿöèÿ</A>.  ñëó÷àå ñòåðåîïîòîêîâ åíêîäåð ñîçäàåò ñðåäíèé è ðàçíîñòíûé ñèãíàëû, îñíîâàííûå íà ñðåäíåì çíà÷åíèè ìåæäó ëåâûì è ïðàâûì êàíàëàìè è èõ ðàçíîñòè ñîîòâåòñòâåííî. Íà ñëåäóþùèé ýòàï êîäèðîâàíèÿ ïåðåäàåòñÿ ëó÷øèé èç âàðèàíòîâ ñæàòîãî ñèãíàëà.</LI>
<LI><A HREF="format.html#prediction">Ïðîãíîçèðîâàíèå</A>. Äàëåå åíêîäåð ïûòàåòñÿ íàéòè ìàòåìàòè÷åñêîå îïèñàíèå ñèãíàëà (îáû÷íî ïðèáëèçèòåëüíîå). Çà÷àñòóþ îíî çíà÷èòåëüíî ìåíüøå ñàìîãî ñèãíàëà. Òàê êàê ìåòîäû ïðåäñêàçàíèÿ èçâåñòíû è êîäåðó, è äåêîäåðó â ïîòîêå íóæíî óêàçàòü òîëüêî ïàðàìåòðû ïðåäèêòîðà. Ñåé÷àñ FLAC èñïîëüçóåò ÷åòûðå ðàçëè÷íûõ êëàññà ïðåäèêòîðîâ (îïèñàííûõ â ðàçäåëå <A HREF="format.html#prediction">Ïðîãíîçèðîâàíèå</A>), íî â ôîðìàòå ïðåäóñìîòðåíî ìåñòî äëÿ äîïîëíèòåëüíûõ ìåòîäîâ. FLAC äîïóñêàåò èçìåíåíèå êëàññà ïðåäèêòîðà îò áëîêà ê áëîêó è äàæå â ïðåäåëàõ êàíàëà â áëîêå.</LI>
<LI><A HREF="format.html#residualcoding">Êîäèðîâàíèå îñòàòêîâ</A>. Åñëè ïðåäèêòîð íå îïèñûâàåò ñèãíàë òî÷íî, ðàçíèöà ìåæäó îðèãèíàëüíûì ñèãíàëîì è ñïðîãíîçèðîâàííûì (íàçûâàåìûì åùå îøèáî÷íûì èëè îñòàòî÷íûì) äîëæíà áûòü çàêîäèðîâàíà áåç ïîòåðü. Åñëè ïðåäñêàçàíèå ýôôåêòèâíî, îñòàòî÷íûé ñèãíàë áóäåò çàíèìàòü ìåíüøå áèò íà ñýìïë, ÷åì îðèãèíàëüíûé ñèãíàë. Ñåé÷àñ FLAC èñïîëüçóåò òîëüêî îäèí ìåòîä äëÿ êîäèðîâàíèÿ îñòàòêîâ (ñì. ðàçäåë <A HREF="format.html#residualcoding">Êîäèðîâàíèå îñòàòêîâ</A>), îäíàêî â ôîðìàòå ïðåäóñìîòðåíî ìåñòî äëÿ äîïîëíèòåëüíûõ ìåòîäîâ. FLAC äîïóñêàåò èçìåíåíèå ìåòîäà êîäèðîâàíèÿ îñòàòêîâ îò áëîêà ê áëîêó è äàæå â ïðåäåëàõ êàíàëà â áëîêå.</LI>
</BLOCKQUOTE></P>
<P> äîïîëíåíèå êî âñåìó îïðåäåëåíà ñèñòåìà ìåòàäàííûõ, ïîçâîëÿþùàÿ äîáàâëÿòü â íà÷àëî ïîòîêà ïðîèçâîëüíóþ èíôîðìàöèþ.</P>
<a name="definitions">
<H4><u>Îïðåäåëåíèÿ</u></H4>
<P>Ìíîãèå òåðìèíû, òàêèå êàê "áëîê" è "ôðåéì", èìåþò ðàçëè÷íîå çíà÷åíèå â ñõåìàõ êîäèðîâàíèÿ. Íàïðèìåð, ôðåéì â mp3 ñîîâåòñòâóåò ìíîãèì ñýìïëàì âî âñåõ êàíàëàõ, â òî âðåìÿ êàê ôðåéì S/PDIF ïðåäñòàâëÿåò òîëüêî îäèí ñýìïë äëÿ êàæäîãî êàíàëà. Îáðàòèòå âíèìàíèå íà òî, ÷òî, ãîâîðÿ î "áëîêàõ" è "ïîäáëîêàõ", ìû ññûëàåìñÿ íà íåçàêîäèðîâàííûå àóäèîäàííûå, à òåðìèíû "ôðåéì" è "ïîäôðåéì" èñïîëüçóåì äëÿ äàííûõ ñæàòûõ FLAC.</P>
<P><BLOCKQUOTE>
<LI><B>Áëîê</B> - ýòî îäèí èëè áîëåå ñýìïëîâ, íàõîäÿùèõñÿ â íåñêîëüêèõ êàíàëàõ.</LI>
<LI><B>Ïîäáëîê</B> - ýòî îäèí èëè áîëåå ñýìïëîâ èç îäíîãî êàíàëà. Òàêèì îáðàçîì, áëîê ñîäåðæèò ïîäáëîê äëÿ êàæäîãî êàíàëà è âñå ïîäáëîêè â íåì ñîäåðæàò îäèíàêîâîå êîëè÷åñòâî ñýìïëîâ.</LI>
<LI><B>Ðàçìåð áëîêà</B> - ýòî êîëè÷åñòâî ñýìïëîâ â ëþáîì èç ñâîèõ ïîäáëîêîâ. Íàïðèìåð, áëîê äëèíîé â îäíó ñåêóíäó ñ ÷àñòîòîé äåñêðåòèçàöèè 44.1êÃö èìååò ðàçìåð áëîêà 44100 âíå çàâèñèìîñòè îò êîëè÷åñòâà êàíàëîâ.</LI>
<LI><B>Ôðåéì</B> - ýòî çàãîëîâîê è îäèí èëè íåñêîëüêî ïîäôðåéìîâ.</LI>
<LI><B>Ïîäôðåéì</B> - ýòî çàãîëîâîê è îäèí èëè íåñêîëüêî çàêîäèðîâàííûõ ñýìïëîâ èç äàííîãî êàíàëà. Âñå ïîäôðåéìû â äàííîì ôðåéìå ñîäåðæàò îäèíàêîâîå êîëè÷åñòâî ñýìïëîâ.</LI>
</BLOCKQUOTE></P>
<a name="blocking">
<H4><u>Ðàçáèåíèå íà áëîêè</u></H4>
<P>Ðàçìåð áëîêîâ ñèëüíî âëèÿåò íà óðîâåíü ñæàòèÿ. Åñëè ðàçìåð áëîêà áóäåò ñëèøêîì ìàë, òî â èòîãå ïîëó÷èòñÿ î÷åíü ìíîãî ôðåéìîâ, à ýòî çíà÷èò, ÷òî íà çàãîëîâêè áóäåò ïîòðà÷åíî ìíîãî áèòîâ. Åñëè æå ðàçìåð áëîêà áîëüøîé, à õàðàêòåðèñòèêè ñèãíàëà ñèëüíî âàðüèðóþòñÿ, åíêîäåð íå ñìîæåò íàéòè õîðîøèé ïðåäèêòîð. ×òîáû óïðîñòèòü êîäåê, FLAC îïðåäåëÿåò ìèíèìàëüíûé ðàçìåð áëîêà â 16 ñýìïëîâ, à ìàêñèìàëüíûé â 65535 ñýìïëîâ. Ýòîò èíòåðâàë ïîêðûâàåò îïòèìàëüíûå ðàçìåðû áëîêîâ äëÿ âñåõ àóäèîäàííûõ, ïîääåðæèâàåìûõ FLAC.</P>
<P>Ñåé÷àñ áàçîâûé åíêîäåð èñïîëüçóåò ïîñòîÿííûé ðàçìåð áëîêà, îïòèìèçèðîâàííûé ïî ÷àñòîòå äèñêðåòèçàöèè ââîäà. Ïîñëåäóþùèå âåðñèè ñìîãóò èçìåíÿòü ðàçìåð áëîêà â çàâèñèìîñòè îò õàðàêòåðèñòèê ñèãíàëà.</P>
<P>Ðàçáèòûå íà áëîêè äàííûå ïåðåäàþòñÿ íà ñòàäèþ ïðîãíîçèðîâàíèÿ ïî îäíîìó ïîäáëîêó. Êàæäûé ïîäáëîê êîäèðóåòñÿ â ïîäôðåéì íåçàâèñèìî, à ïîçæå îíè îáúåíäèíÿþòñÿ âî ôðåéì. Òàê êàê êàæäûé êàíàë êîäèðóåòñÿ îòäåëüíî, ýòî îçíà÷àåò, ÷òî îäèí êàíàë ñòåðåî ôðåéìà ìîæåò ñæèìàòüñÿ êàê ïîñòîÿííûé ïîäôðåéì, à âòîðîé êàê LPC ïîäôðåéì.</P>
<a name="interchannel">
<H4><u>Ìåæêàíàëüíàÿ äåêîððåëÿöèÿ</u></H4>
<P> áîëüøèíñòâå ñëó÷àåâ â ñòåðåî ïîòîêàõ ñóùåñòâóåò äîñòàòî÷íûé óðîâåíü êîððåëÿöèè ìåæäó ëåâûì è ïðàâûì êàíàëàìè. FLAC ïîçâîëÿåò ôðåéìàì â ñòåðåî ïîòîêàõ èìåòü ðàçëè÷íîå ðàñïðåäåëåíèå êàíàëîâ, à åíêîäåð ìîæåò èñïîëüçîâàòü ëó÷øåå ïðåäñòàâëåíèå.</P>
<P><BLOCKQUOTE>
<LI><B>Íåçàâèñèìîå</B>. Ëåâûé è ïðàâûé êàíàëû êîäèðóþòñÿ íåçàâèñèìî.</LI>
<LI><B>Ðàçíîñòíîå</B>. Ëåâûé è ïðàâûé êàíàë ïðåîáðàçîâûâàþòñÿ â ñðåäíèé è îñòàòî÷íûé êàíàëû. Ñðåäíèé êàíàë - ýòî ñðåäíåå çíà÷åíèå ëåâîãî è ïðàâîãî ñèãíàëîâ, à îñòàòî÷íûé - ðàçíèöà ìåæäó íèìè (ëåâûé ìèíóñ ïðàâûé).</LI>
<LI><B>Ëåâîñòîðîííåå</B>. Êîäèðóåòñÿ ëåâûé è îñòàòî÷íûé êàíàëû.</LI>
<LI><B>Ïðàâîîñòîðîííåå</B>. Êîäèðóåòñÿ ïðàâûé è îñòàòî÷íûé êàíàëû.</LI>
</BLOCKQUOTE></P>
<P>Îêàçûâàåòñÿ, ÷òî ëåâîñòîðîííåå è ïðàâîñòîðîííåå êîäèðîâàíèå ìîãóò áûòü áîëåå ýôôåêòèâíûìè âî ìíîãèõ ôðåéìàõ, íåñìîòðÿ íà òî, ÷òî íåîáõîäèìîå äëÿ îðèãèíàëüíîãî ñèãíàëà êîëè÷åñòâî áèòîâ íà ñýìïë íåìíîãî áîëüøå, ÷åì äëÿ íåçàâèñèìîãî èëè óñðåäíåííîãî êîäèðîâàíèÿ.</P>
<a name="prediction">
<H4><u>Ïðîãíîçèðîâàíèå</u></H4>
<P>FLAC èñïîëüçóåò ÷åòûðå ìåòîäà äëÿ ìîäåëèðîâàíèÿ âõîäíîãî ñèãíàëà:</P>
<P><BLOCKQUOTE>
<LI><B>Äîñëîâíûé</B>. Ïî ñóùåñòâó ýòî ïðîãíîçèðîâàíèå ñèãíàëà íóëåâîãî óðîâíÿ. Ïðåäèêòîðîì ñèãíàëà ÿâëÿåòñÿ ñàì ñèãíàë, ïîòîìó ñæàòèå íå ïðîèñõîäèò. Ýòî îáðàçåö, ñ êîòîðûì ñâåðÿþòñÿ âñå îñòàëüíûå ïðåäèêòîðû. Åñëè ïåðåäàòü åíêîäåðó ñëó÷àéíûå äàííûå, äëÿ âñåõ ïîäáëîêîâ ñêîðå âñåãî áóäåò èñïîëüçîâàí äîñëîâíûé ïðåäèêòîð. Òàê êàê íåîáðàáîòàííûé ñèãíàë íå ïðîõîäèò ñòàäèþ êîäèðîâàíèÿ îñòàòêîâ, ðåçóëüòàòû íå áóäóò ñîâïàäàòü ñ ëèíåéíûì ïðåäèêòîðîì íóëåâîãî ïîðÿäêà.</LI>
<LI><B>Ïîñòîÿííûé</B>. Ýòîò ïðåäèêòîð èñïîëüçóåòñÿ, êîãäà ïîäáëîê ñîäåðæèò öèôðîâóþ òèøèíó, ò.å. íà âõîä ïîñòóïàåò îäíà êîíñòàíòà. Ñèãíàë êîäèðóåòñÿ ïî âñåé äëèíå è äîáàâëÿåòñÿ ê ïîòîêó.</LI>
<LI><B>Ïîñòîÿííûé ëèíåéíûé ïðåäèêòîð</B>. FLAC èñïîëüçóåò êëàññ ýôôåêòèâíî âû÷èñëÿåìûõ ïîñòîÿííûõ ëèíåéíûõ ïðåäèêòîðîâ (õîðîøåå îïèñàíèå ïðèâåäåíî ó <A HREF="http://svr-www.eng.cam.ac.uk/~ajr/GroupPubs/Robinson94-tr156/index.html">Shorten</A> è <A HREF="http://www.hpl.hp.com/techreports/1999/HPL-1999-144.pdf">AudioPak</A>). FLAC äîáàâëÿåò ïðåäèêòîð ÷åòâåðòîãî óðîâíÿ ê èñïîëüçîâàííûì â Shorten ïðåäèêòîðàì îò íóëåâîãî äî òðåòüåãî óðîâíÿ. Òàê êàê ïðåäèêòîðû ïîñòîÿííû, â ñæàòîì ïîòîêå íåîáõîäèìî ñîõðàíèòü òîëüêî ïîðÿäîê ïðåäèêòîðà. Îñòàòî÷íûé ñèãíàë ïåðåäàåòñÿ êîäåðó îñòàòêîâ.</LI>
<LI><B>Ëèíåéíîå ïðîãíîçèðîâàíèå FIR</B>. Äëÿ áîëåå òî÷íîãî ìîäåëèðîâàíèÿ (çà ñ÷åò ìåäëåííîé ðàáîòû) FLAC ïîääåðæèâàåò ëèíåéíîå ïðîãíîçèðîâàíèå FIR äî 32 ïîðÿäêà (ñì. <A HREF="http://svr-www.eng.cam.ac.uk/~ajr/GroupPubs/Robinson94-tr156/index.html">Shorten</A> è <A HREF="http://www.hpl.hp.com/techreports/1999/HPL-1999-144.pdf">AudioPak</A>). Áàçîâûé åíêîäåð èñïîëüçóåò ìåòîä Ëåâèíñîíà-Äàðáèíà äëÿ ðàñ÷åòà LPC êîýôôèöèåíòîâ èç êîýôôèöèåíòîâ àâòîêîððåëÿöèè è êîýôôèöèåíòû ðàçáèâàþòñÿ ïåðåä âû÷èñëåíèåì îñòàòêîâ.  òî âðåìÿ êàê òàêèå åíêîäåðû êàê Shorten èñïîëüçóþò ïîñòîÿííîå ðàçáèåíèå äëÿ âñåãî ââîäà, FLAC ïîçâîëÿåò äëÿ êàæäîãî ôðåéìà ìåíÿòü òî÷íîñòü êîýôôèöèåíòà ðàçáèåíèÿ. Áàçîâûé åíêîäåð FLAC îöåíèâàåò îïòèìàëüíóþ òî÷íîñòü, îñíîâûâàÿñü íà ðàçìåðå áëîêà è äèàïàçîíå îðèãèíàëüíîãî ñèãíàëà.</LI>
</BLOCKQUOTE></P>
<a name="residualcoding">
<H4><u>Êîäèðîâàíèå îñòàòêîâ</u></H4>
<P>Äëÿ êîäèðîâàíèÿ îñòàòî÷íîãî ñèãíàëà îò ñòàäèè ïðîãíîçèðîâàíèÿ FLAC èñïîëüçóåò äâà ïîõîæèõ ìåòîäà. Îñòàòî÷íûé ñèãíàë ñæèìàåòñÿ ñ èñïîëüçîâàíèåì êîäîâ Ðàéñà ñëåäóþùèìè ñïîñîáàìè:</P>
<BLOCKQUOTE><ol>
<LI>Åíêîäåð îöåíèâàåò îäèíî÷íûé ïàðàìåòð Ðàéñà, îñíîâàííûé íà ðàçíèöå îñòàòêà è êîäîâ Ðàéñà. Âåñü îñòàòîê êîäèðóåòñÿ ñ èñïîëüçîâàíèåì ýòîãî ïàðàìåòðà.</LI>
<LI>Îñòàòîê äåëèòñÿ íà íåñêîëüêî èíòåðâàëîâ îäèíàêîâîé äëèíû è êàæäûé èç íèõ êîäèðóåòñÿ ñî ñâîèì ïàðàìåòðîì Ðàéñà, îñíîâàííûì íà ñðåäíåì çíà÷åíèè äëÿ äàííîãî èíòåðâàëà.</LI>
</ol></BLOCKQUOTE>
<P>Îáðàòèòå âíèìàíèå íà òî, ÷òî ïåðâûé ìåòîä ÿâëÿåòñÿ ÷àñòíûì ñëó÷àåì âòîðîãî ñ îäíèì èíòåðâàëîì. Îòëè÷èå ñîñòîèò â òîì, ÷òî â ïåðâîì ìåòîäå ïàðàìåòð Ðàéñà âû÷èñëÿåòñÿ äëÿ ðàçíèöû îñòàòêà, à íå äëÿ ñðåäíåãî çíà÷åíèÿ.</P>
<P>Â ôîðìàòå FLAC çàðåçåðâèðîâàíî ìåñòî äëÿ äðóãèõ ìåòîäîâ êîäèðîâàíèÿ. Êòî-íèáóäü ìîæåò ïîïûòàòüñÿ íàéòè ëó÷øåå êîíòåêñòíîå ìîäåëèðîâàíèå ïàðàìåòðà Ðàéñà èëè êîäèðîâàíèÿ Õàôôìàíà. Îïèñàíèÿ íåñêîëüêèõ óíèâåðñàëüíûõ êîäîâ ìîæíî íàéòè íà ñòðàíèöàõ <A HREF="http://www.hpl.hp.com/techreports/98/HPL-98-193.html">LOCO-I</A> è <A HREF="http://www.cs.tut.fi/~albert/Dev/pucrunch/packing.html">pucrunch</A>.</P>
<a name="prediction">
<H4><u>Ôîðìàò</u></H4>
<P> ýòîì ðàçäåëå îïèñûâàåòñÿ ôîðìàò ôàéëà. Ôîðìàò FLAC íå ïðåäóñìàòðèâàåò ïîëÿ äëÿ íîìåðà âåðñèè, îäíàêî ñîäåðæèò íåñêîëüêî çàðåçåðâèðîâàííûõ ïîçèöèé. Ïîñëåäóþùèå âåðñèè ñìîãóò èñïîëüçîâàòü ýòî ìåñòî áåç íàðóøåíèÿ ñîâìåñòèìîñòè ñ ïðåäûäóùèìè âåðñèÿìè. Áîëåå ñòàðûå âåðñèè äåêîäåðîâ ìîãóò ëèáî ïðåêðàùàòü ðàáîòó, ëèáî ïðîïóñêàòü äàííûå, çàêîäèðîâàííûå íîâûìè ìåòîäàìè. Êðîìå òîãî çàðåçåðâèðîâàíû íåêîòîðûå ñïåöèàëüíûå çíà÷åíèÿ, êîòîðûå íå ìîãóò ïîÿâèòüñÿ íè â îäíîé èç âåðñèé ôîðìàòà. Ýòî îáû÷íî äåëàåòñÿ äëÿ óëó÷øåíèÿ ìåõàíèçìà ñèíõðîíèçàöèè.</P>
<P>Âñå ÷èñëà â ôîðìàòå FLAC ÿâëÿþòñÿ öåëûìè, ìëàäøèé áàéò êîòîðûõ çàïèñûâàåòñÿ âíà÷àëå (big-endian). ×èñëà ÿâëÿþòñÿ áåççíàêîâûìè, êðîìå òåõ ñëó÷àåâ, ãäå ÿâíî óêàçàíî îáðàòíîå.</P>
<a name="overview">
<P>Ê ïîòîêó FLAC ìîãóò áûòü äîáàâëåíû òýãè ID3v1 (â êîíöå) è ID3v2 (â íà÷àëå). Ýòè äàííûå íå îòíîñÿòñÿ ê ôîðìàòó, îäíàêî äåêîäåð óìååò ïðîïóñêàòü èõ.</P>
<P>Ïåðåä ïîëíûì îïèñàíèåì ôîðìàòà ïðèâåäåì åãî êðàòêèé îáçîð.</P>
<P><BLOCKQUOTE>
<LI>Ôîðìàò FLAC ñîñòîèò èç ìàðêåðà "fLaC" â íà÷àëå ïîòîêà, çà êîòîðûì ñëåäóåò îáÿçàòåëüíûé áëîê STREAMINFO, ëþáîå êîëè÷åñòâî äðóãèõ áëîêîâ ìåòàäàííûõ, à çàòåì àóäèîôðåéìû.</LI>
<LI>FLAC ïîääåðæèâàåò äî 128 áëîêîâ ìåòàäàííûõ. Ñåé÷àñ îïðåäåëåíû:</LI>
<UL>
<A NAME="def_STREAMINFO">
<LI><TT>STREAMINFO</TT>: Ýòîò áëîê ñîäåðæèò èíôîðìàöèþ îáî âñåì ïîòîêå (÷àñòîòó äèñêðåòèçàöèè, êîëè÷åñòâî êàíàëîâ, êîëè÷åñòâî ñýìïëîâ è ò.ä.). Îí âñåãäà äîëæåí áûòü ïåðâûì áëîêîì ìåòàäàííûõ â ïîòîêå. Ñëåäóþùèå áëîêè äîëæíû ñëåäîâàòü çà íèì, è ìîãóò áûòü ïðîïóùåíû äåêîäåðîì.</LI>
<A NAME="def_APPLICATION">
<LI><TT>APPLICATION</TT>: Ýòîò áëîê ïðåäíàçíà÷åí äëÿ èñïîëüçîâàíèÿ ïðèëîæåíèÿìè òðåòüèõ ëèö. Åäèíñòâåííûì îáÿçàòåëüíûì ïîëåì ÿâëÿåòñÿ 32-áèòíûé èäåíòèôèêàòîð, êîòîðûé âûäàåòñÿ ðàçðàáîò÷èêàìè FLAC. Ôîðìàò îñòàâøåéñÿ ÷àñòè áëîêà îïðåäåëÿåòñÿ çàðåãèñòðèðîâàííûì ïîä ýòèì íîìåðîì ïðèëîæåíèåì. ×òîáû ïîëó÷èòü id äëÿ ñâîåãî ïðèëîæåíèÿ, ïîñåòèòå <A HREF="id.html">ñòðàíèöó ðåãèñòðàöèè</A>.</P>
<A NAME="def_PADDING">
<LI><TT>PADDING</TT>: Ýòîò áëîê ïðåäíàçíà÷åí äëÿ ðåçåðâèðîâàíèÿ ìåñòà. Ñîäåðæèìîå áëîêà <TT>PADDING</TT> íå èìååò çíà÷åíèÿ. Îí ïîëåçåí â òîì ñëó÷àå, åñëè èçâåñòíî, ÷òî áëîê ïîñëå êîäèðîâàíèÿ áóäåò äîáàâëåí áëîê <TT>APPLICATION</TT>. Ïîëüçîâàòåëü ìîæåò çàðåçåðâèðîâàòü íåîáõîäèìîå ïðîñòðàíñòâî ñ ïîìîùüþ áëîêà <TT>PADDING</TT>, ÷òîáû ïðèëîæåíèå ñìîãëî çàïèñàòü íà åãî ìåñòî áëîê <TT>APPLICATION</TT>. Ýòà îïåðàöèÿ çàéìåò íàìíîãî ìåíüøå âðåìåíè, ÷åì âñòàâêà áëîêà â íà÷àëî ôàéëà, òàê êàê â âòîðîì ñëó÷àå ïîòðåáóåòñÿ åãî ïîëíàÿ ïåðåçàïèñü.</LI>
<A NAME="def_SEEKTABLE">
<LI><TT>SEEKTABLE</TT>: Ýòî íåîáÿçàòåëüíûé áëîê äëÿ õðàíåíèÿ òî÷åê ïîèñêà.  ïîòîêå FLAC ìîæíî íàéòè ëþáîé ñýìïë áåç ýòîé òàáëèöû, îäíàêî çàäåðæêà ìîæåò áûòü íåïðåäñêàçóåìîé, òàê êàê áèòðåéò â ïîòîêå ìîæåò ñóùåñòâåííî ìåíÿòüñÿ. Ñ ïîìîùüþ òàáëèöû òî÷åê ïîèñêà ïàóçà ìîæåò áûòü ñóùåñòâåííî ñîêðàùåíà. Êàæäàÿ òî÷êà çàíèìàåò 18 áàéòîâ, ïîýòîìó äëÿ áûñòðîãî ïîèñêà ñ òî÷íîñòüþ äî 1% íåîáõîäèìî âñåãî 2êá.  ïîòîêå ìîæåò áûòü òîëüêî îäíè áëîê <TT>SEEKTABLE</TT>, íî â íåì ìîæåò áûòü ëþáîå êîëè÷åñòâî òî÷åê ïîèñêà. Òàêæå ñóùåñòâóþò ðåçåðâèðóåìûå òî÷êè, êîòîðûå ïðîïóñêàþòñÿ äåêîäåðîì, íî ìîãóò èñïîëüçîâàòüñÿ äëÿ ïîñëåäóþùèõ âñòàâîê ðåàëüíûõ òî÷åê ïîèñêà.</LI>
</UL>
<LI>Àóäèîïîòîê ñîñòîèò èç îäíîãî èëè íåñêîëüêèõ ôðåéìîâ. Ó êàæäîãî ôðåéìà åñòü çàãîëîâîê, ñîñòîÿùèé èç êîäà ñèíõðîíèçàöèè, èíôîðìàöèè î ôðåéìå (ðàçìåð áëîêà, ÷àñòîòà äèñêðåòèçàöèè, êîëè÷åñòâî êàíàëîâ è ò.ï.) è âîñüìèáèòíîé êîíòðîëüíîé ñóììû. Òàêæå â çàãîëîâêå ñîäåðæèòñÿ ëèáî íîìåð ïåðâîãî ñýìïëà âî ôðåéìå îòíîñèòåëüíî âñåãî ïîòîêà (äëÿ ïîòîêîâ ñ èçìåíÿþùèìñÿ ðàçìåðîì áëîêà) èëè íîìåð ôðåéìà (äëÿ ïîòîêîâ ñ ïîñòîÿííûì ðàçìåðîì áëîêà). Ýòî ïîçâîëÿåò ïðîèçâîäèòü áûñòðûé è òî÷íûé ïîèñê. Äàëåå ñëåäóþò çàêîäèðîâàííûå ïîäôðåéìû (ïî îäíîìó íà êàæäûé êàíàë) è, íàêîíåö, ôðåéì, äîïîëíåííûé íóëÿìè äî ãðàíèöû áàéòà. Êàæäûé ïîäôðåéì èìååò ñâîé çàãîëîâîê, îïðåäåëÿþùèé ñïîñîá åãî äåêîäèðîâàíèÿ.</LI>
<LI>Òàê êàê äåêîäåð ìîæåò íà÷àòü ðàáîòó â ñåðåäèíå ïîòîêà, äîëæåí áûòü ìåòîä îïðåäåëåíèÿ íà÷àëà ôðåéìà. Êàæäûé ôðåéì íà÷èíàåòñÿ ñ 14-áèòíîãî ñèíõðîíèçèðóþùåãî êîäà. Ýòîò êîä íå ìîæåò ïîÿâëÿòüñÿ íè â îäíîì äðóãîì ìåñòå çàãîëîâêà ôðåéìà. Îäíàêî òàê êàê ýòî êîä ìîæåò ïîÿâèòüñÿ â ïîäôðåéìàõ, ó äåêîäåðà åñòü äâà ñïîñîáà îïðåäåëèòü, ÷òî äàííàÿ ïîñëåäîâàòåëüíîñòü ÿâëÿåòñÿ íà÷àëîì ôðåéìà. Ñíà÷àëà ïðîâåðÿåòñÿ êîððåêòíîñòü äàííûõ âî âñåì ôðåéìå. Îäíàêî ýòîò øàã íå ìîæåò ãàðàíòèðîâàòü îòñóòñòâèÿ îøèáîê, ïîýòîìó äîïîëíèòåëüíî ïðîèçâîäèòñÿ ðàñ÷åò âîñüìèáèòíîé êîíòðîëüíîé ñóììû çàãîëîâêà ôðåéìà è ïîëó÷åííûé ðåçóëüòàò ñðàâíèâàåòñÿ ñî çíà÷åíèåì, ïîëó÷åííûì ïðè êîäèðîâàíèè è çàïèñàííûì ïîñëå çàãîëîâêà ôðåéìà.</LI>
<LI>Êàæäûé ôðåéì äîëæåí ñîäåðæàòü îñíîâíóþ èíôîðìàöèþ î ïîòîêå, òàê êàê äåêîäåð ìîæåò íå èìåòü äîñòóïà ê áëîêó ìåòàäàííûõ <TT>STREAMINFO</TT> â íà÷àëå ïîòîêà. Ñþäà âõîäèò ÷àñòîòà äèñêðåòèçàöèè, êîëè÷åñòâî áèò íà ñýìïë, êîëè÷åñòâî êàíàëîâ è ò.ä. Òàê êàê çàãîëîâîêè ôðåéìîâ âíîñÿò äîïîëíèòåëüíûå íàêëàäíûå ðàñõîäû, òî îíè âëèÿþò óðîâåíü ñæàòèÿ. ×òîáû ñäåëàòü çàãîëîâêè ôðåéìîâ ìèíèìàëüíûìè, FLAC èñïîëüçóåò òàáëèöû ïîèñêà äëÿ íàèáîëåå ÷àñòî èñïîëüçóåìûõ çíà÷åíèé ïàðàìåòðîâ ôðåìîâ. Íàïðèìåð, ÷àñòü, îòâå÷àþùàÿ çà ÷àñòîòó äèñêðåòèçàöèè, çàíèìàåò 4 áèòà. Âîñåìü ïðåäîïðåäåëåííûõ çíà÷åíèé ñîîòâåòñòâóþò íàèáîëåå ñàìûì ðàñïðîñòðàíåííûì ÷àñòîòàì (8/16/22.05/24/32/44.1/48/96 êÃö). Îäíàêî äîïîëíèòåëüíûå ÷àñòîòû ìîãóò áûòü èñïîëüçîâàíû ñ ïîìîùüþ ñïåöèàëüíîãî íàáîðà áèòîâ, óêàçûâàþùåãî äåêîäåðó, ÷òî íåîáõîäèìîå çíà÷åíèå íàõîäèòñÿ â êîíöå çàãîëîâêà. Òàêîé æå ìåòîä èñïîëüçóåòñÿ äëÿ óêàçàíèÿ ðàçìåðà áëîêà è êîëè÷åñòâà áèòîâ íà ñýìïë.  ýòîì ñëó÷àå çàãîëîâîê îñòàåòñÿ äîñòàòî÷íî ìàëûì äëÿ íàèáîëåå ðàñïðîñòðàíåííûõ òèïîâ àóäèîäàííûõ.</LI>
<LI>Ïîäôðåéìû (ïî îäíîìó äëÿ êàæäîãî êàíàëà) êîäèðóþòñÿ âî ôðåéìå îòäåëüíî è õðàíÿòñÿ â ïîòîêå ïîñëåäîâàòåëüíî. Ýòî âåäåò ê óïðîùåíèþ äåêîäåðà, îäíàêî öåíîé ýòîìó ÿâëÿåòñÿ óâåëè÷åíèå ðàçìåðîâ áóôôåðà. Ó êàæäîãî ïîäôðåéìà åñòü ñâîé çàãîëîâîê, îïðåäåëÿþùèé åãî àòòðèáóòû (ìåòîä è ïîðÿäîê ïðîãíîçèðîâàíèÿ, ïàðàìåòðû êîäèðîâàíèÿ îñòàòêîâ è ò.ä.). Çà çàãîëîâêîì ñëåäóþò àóäèîäàííûå äëÿ ýòîãî êàíàëà.</LI>
<A NAME="subset">
<LI>Âî FLAC îïðåäåëåíî ñïåöèàëüíîå ïîäìíîæåñòâî ôîðìàòà (Subset format). Âñå ïîòîêè ñæàòûå ýòèì ìåòîäîì íà ñàìîì äåëå ÿâëÿþòñÿ ïîòîêîâûìè, òî åñòü äåêîäåð, êîòîðûé íå ìîæåò èñêàòü â ïîòîêå, èìååò âîçìîæíîñòü ïåðåéòè ê ëþáîé åãî òî÷êå è íà÷àòü âîñïðîèçâåäåíèå. Äëÿ ôàéëîâ, îòâå÷àþùèõ ýòîìó ïîäìíîæåñòâó ôîðìàòà, çíà÷èòåëüíî ïðîùå ñäåëàòü àïïàðàòíûé äåêîäåð. <B><TT>flac</TT></B> ïî óìîë÷àíèþ ñîçäàåò ïîòîêè, îòâå÷àþùèå ýòîìó ïîäìíîæåñòâó ôîðìàòà. Êëþ÷ <TT>--lax</TT> çàïðåùàåò ñîçäàíèå òàêèõ ïîòîêîâ. ×òîáû ôàéë îòâå÷àë äàííîìó ïîäìíîæåñòâó, äëÿ íåãî äîëæíû âûïîëíÿòüñÿ ñëåäóþùèå îãðàíè÷åíèÿ:</LI>
<UL>
<LI>Çíà÷åíèå áèòîâ, îòâå÷àþùèõ çà ðàçìåð áëîêà, äîëæíî áûòü â ïðåäåëàõ 0001-0101 èëè 1000-1111. Ïîòîê äîëæåí ñîñòîÿòü èç áëîêîâ îäèíàêîâîãî ðàçìåðà (çà èñêëþ÷åíèåì ïîñëåäíåãî), à â áëîêå ìåòàäàííûõ <TT>STREAMINFO</TT> äîëæíû áûòü óêàçàíû ðàâíûå çíà÷åíèÿ äëÿ ìèíèìàëüíîãî è ìàêñèìàëüíîãî ðàçìåðà áëîêà.</LI>
<LI>Êîëè÷åñòâî áèò íà ñýìïë â çàãîëîâêå ôðåéìà äîëæíî îïèñûâàòüñÿ ñëåäóþùèì äèàïàçîíîì áèòîâ 001-110.</LI>
<LI>×àñòîòà äèñêðåòèçàöèè â çàãîëîâêå ôðåéìà äîëæíà îïèñûâàòüñÿ ñëåäóþùèì äèàïàçîíîì áèòîâ 0001-1011.</LI>
</UL>
</BLOCKQUOTE></P>
<P> òàáëèöå ïðèâåäåíî ôîðìàëüíîå îïèñàíèå ôîðìàòà FLAC. ×èñëà â óãëîâûõ ñêîáêàõ ïîêàçûâàþò êîëè÷åñòâî áèòîâ, èñïîëüçóåìûõ äàííûì ïîëåì.</P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="stream"><FONT SIZE="+2"><B><TT>ÏÎÒÎÊ</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;32&gt;</TD>
<TD>"fLaC", ìàðêåð ïîòîêà FLAC â êîäèðîâêå ASCII, îçíà÷àþùèé, ÷òî ïåðâûìè ÷åòûðüìÿ áàéòàìè ïîòîêà ÿâëÿþòñÿ 0x66, 0x4C, 0x61, 0x43</TD>
</TR>
<TR>
<TD VALIGN="TOP"><A HREF="format.html#metadata_block_streaminfo"><TT>ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ</TT></A></TD>
<TD>Îáÿçàòåëüíûé áëîê ìåòàäàííûõ <TT>STREAMINFO</TT>, ñîäåðæàùèé îñíîâíûå ñâîéñòâà ïîòîêà</TD>
</TR>
<TR>
<TD VALIGN="TOP"><A HREF="format.html#metadata_block"><TT>ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ</TT></A>*</TD>
<TD>Íîëü èëè áîëüøå áëîêîâ ìåòàäàííûõ</TD>
</TR>
<TR>
<TD VALIGN="TOP"><A HREF="format.html#frame"><TT>ÔÐÅÉÌ</TT></A>+</TD>
<TD>Îäèí èëè áîëüøå àóäèîôðåéìîâ</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="metadata_block"><FONT SIZE="+2"><B><TT>ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP"><A HREF="format.html#metadata_block_header"><TT>ÇÀÃÎËÎÂÎÊ_ÁËÎÊÀ_ÌÅÒÀÄÀÍÍÛÕ</TT></A></TD>
<TD>Çàãîëîâîê, îïðåäåëÿþùèé òèï è ðàçìåð áëîêà ìåòàäàííûõ</TD>
</TR>
<TR>
<TD VALIGN="TOP"><A HREF="format.html#metadata_block_data"><TT>ÑÎÄÅÐÆÈÌÎÅ_ÁËÎÊÀ_ÌÅÒÀÄÀÍÍÛÕ</TT></A></TD>
<TD>&nbsp;</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="metadata_block_header"><FONT SIZE="+2"><B><TT>ÇÀÃÎËÎÂÎÊ_ÁËÎÊÀ_ÌÅÒÀÄÀÍÍÛÕ</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;1&gt;</TD><TD>Ôëàã ðàâíûé <TT>1</TT>, åñëè äàííûé áëîê ìåòàäàííûõ ÿâëÿåòñÿ ïîñëåäíèì ïåðåä àóäèîáëîêàìè, <TT>0</TT> â ïðîòèâíîì ñëó÷àå</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;7&gt;</TD>
<TD>Òèï áëîêà:
<UL>
<LI>0 : <TT>STREAMINFO</TT></LI>
<LI>1 : <TT>PADDING</TT></LI>
<LI>2 : <TT>APPLICATION</TT></LI>
<LI>3 : <TT>SEEKTABLE</TT></LI>
<LI>4 : <TT>VORBIS_COMMENT</TT></LI>
<LI>5-127 : çàðåçåðâèðîâàíû</LI>
</UL>
</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;24&gt;</TD>
<TD>Äëèíà â áàéòàõ ñîîòâåòñòâóþùåãî áëîêà ìåòàäàííûõ (íå âêëþ÷àåò ðàçìåð <TT>ÇÀÃÎËÎÂÊÀ_ÁËÎÊÀ_ÌÅÒÀÄÀÍÍÛÕ</TT>)</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="metadata_block_data"><FONT SIZE="+2"><B><TT>ÑÎÄÅÐÆÈÌÎÅ_ÁËÎÊÀ_ÌÅÒÀÄÀÍÍÛÕ</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP"><A HREF="format.html#metadata_block_streaminfo"><TT>ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_STREAMINFO</TT></A> || <A HREF="format.html#metadata_block_padding"><TT>ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_PADDING</TT></A> || <A HREF="format.html#metadata_block_application"><TT>ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_APPLICATION</TT></A> || <A HREF="format.html#metadata_block_seektable"><TT>ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_SEEKTABLE</TT></A> || <A HREF="#metadata_block_vorbis_comment"><TT>ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_VORBIS_COMMENT</TT></A></TD>
<TD>Ñîäåðæèìîå áëîêà äîëæíî ñîîòâåòñòâîâàòü òèïó áëîêà, óêàçàííîìó â çàãîëîâêå</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="metadata_block_streaminfo"><FONT SIZE="+2"><B><TT>ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_STREAMINFO</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;16&gt;</TD>
<TD>Ìèíèìàëüíûé ðàçìåð áëîêà â ñýìïëàõ â äàííîì ïîòîêå.</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;16&gt;</TD>
<TD>Ìàêñèìàëüíûé ðàçìåð áëîêà â ñýìïëàõ â äàííîì ïîòîêå.</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;24&gt;</TD>
<TD>Ìèíèìàëüíûé ðàçìåð ôðåéìà â áàéòàõ â äàííîì ïîòîêå. Åñëè çíà÷åíèå íå èçâåñòíî, òî <TT>0</TT></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;24&gt;</TD>
<TD>Ìàêñèìàëüíûé ðàçìåð ôðåéìà â áàéòàõ â äàííîì ïîòîêå. Åñëè çíà÷åíèå íå èçâåñòíî, òî <TT>0</TT></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;20&gt;</TD>
<TD>×àñòîòà äèñêðåòèçàöèè â Ãö.</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;3&gt;</TD>
<TD><TT>(Êîëè÷åñòâî êàíàëîâ) - 1</TT>. FLAC ïîääåðæèâàåò îò 1 äî 8 êàíàëîâ.</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;5&gt;</TD>
<TD><TT>(Êîëè÷åñòâî áèòîâ íà ñýìïë) - 1</TT>. FLAC ïîääåðæèâàåò îò 1 äî 32 áèòîâ íà ñýìïë. Ñåé÷àñ áàçîâûå äåêîäåð è åíêîäåð ïîääåðæèâàþò äî 24 áèò íà ñýìïë.</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;36&gt;</TD>
<TD>Êîëè÷åñòâî ñýìïëîâ â ïîòîêå. Åñëè çäåñü óêàçàí <TT>0</TT>, òî êîëè÷åñòâî ñýìïëîâ íå èçâåñòíî.</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;128&gt;</TD>
<TD>Ïîäïèñü MD5 íåñæàòûõ àóäèîäàííûõ, êîòîðàÿ ïîçâîëÿåò äåêîäåðó îáíàðóæèòü îøèáêó, äàæå åñëè åå íàëè÷èå íå íàðóøàåò ñòðóêòóðó ïîòîêà.</TD>
</TR>
<TR>
<TD VALIGN="TOP">&nbsp;</TD>
<TD><B>Ïðèìå÷àíèÿ</B>:
<UL>
<LI>Âî FLAC îïðåäåëåí ìèíèìàëüíûé ðàçìåð áëîêà â <TT>16</TT> ñýìïëîâ è ìàêñèìàëüíûé ðàçìåð - <TT>65535</TT>. Ýòî çíà÷èò, ÷òî çíà÷åíèÿ îò <TT>0</TT> äî <TT>15</TT> â ñîîòâåòñòâóþùèõ ïîëÿõ ÿâëÿþòñÿ îøèáî÷íûìè.</LI>
</UL>
</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="metadata_block_padding"><FONT SIZE="+2"><B><TT>ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_PADDING</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;n&gt;</TD>
<TD><TT>n</TT> áèò ñî çíà÷åíèåì <TT>0</TT>. <TT>n</TT> äîëæíî áûòü êðàòíî 8.</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="metadata_block_application"><FONT SIZE="+2"><B><TT>ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_APPLICATION</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;32&gt;</TD>
<TD>Çàðåãèñòðèðîâàííûé id ïðèëîæåíèÿ (ñì. ñòðàíèöó <A HREF="id.html">ðåãèñòðàöèè</A>)</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;n&gt;</TD>
<TD>Äàííûå ïðèëîæåíèÿ. <TT>n</TT> äîëæíî áûòü êðàòíî 8.</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="metadata_block_seektable"><FONT SIZE="+2"><B><TT>ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_SEEKTABLE</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP"><A HREF="format.html#metadata_block_seekpoint"><TT>SEEKPOINT</TT></A>+</TD>
<TD>Îäíà èëè áîëüøå òî÷åê ïîèñêà.</TD>
</TR>
<TR>
<TD VALIGN="TOP">&nbsp;</TD>
<TD><B>Ïðèìå÷àíèÿ</B>:
<UL>
<LI>Êîëè÷åñòâî òî÷åê ïîèñêà îïðåäåëÿåòñÿ â ïîëå çàãîëîâêà áëîêà ìåòàäàííûõ &quot;äëèíà&quot; è ðàâíî <TT>äëèíà / 18</TT>.</LI>
</UL>
</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="metadata_block_seekpoint"><FONT SIZE="+2"><B><TT>ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_SEEKPOINT</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;64&gt;</TD>
<TD>Íîìåð ñýìïëà â ïîòîêå ïåðâîãî ñýìïëà öåëåâîãî ôðåéìà èëè 0xFFFFFFFFFFFFFFFF äëÿ çàðåçåðâèðîâàííîé òî÷êè.</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;64&gt;</TD>
<TD>Ñìåùåíèå â áàéòàõ îò ïåðâîãî áàéòà ïåðâîãî çàãîëîâêà ôðåéìà äî ïåðâîãî áàéòà çàãîëîâêà öåëåâîãî ôðåéìà.</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;16&gt;</TD>
<TD>Êîëè÷åñòâî ñýìïëîâ â öåëåâîì ôðåéìå.</TD>
</TR>
<TR>
<TD VALIGN="TOP">&nbsp;</TD>
<TD><B>Ïðèìå÷àíèÿ</B>:
<UL>
<LI>Äëÿ çàðåçåðâèðîâàííûõ òî÷åê çíà÷åíèÿ âòîðîãî è òðåòüåãî ïîëÿ íå îïðåäåëåíû.</LI>
<LI>Òî÷êè ïîèñêà äîëæíû áûòü îòñîðòèðîâàíû â òàáëèöå ïî âîçðàñòàíèþ íîìåðà ñýìïëà.</LI>
<LI>Ïîëÿ, ñîäåðæàùèå íîìåðà ïåðâûõ ñýìïëîâ â öåëåâîì ôðåéìå, äîëæíû áûòü óíèêàëüíû äëÿ âñåõ òî÷åê, çà èñêëþ÷åíèåì çàðåçåðâèðîâàííûõ.</LI>
<LI>Èç äâóõ ïðåäûäóùèõ çàìå÷àíèé ñëåäóåò, ÷òî çàðåçåðâèðîâàííûõ òî÷åê ìîæåò áûòü ëþáîå êîëè÷åñòâî, íî îíè äîëæíû ðàñïîëàãàòüñÿ â êîíöå òàáëèöû.</LI>
</UL>
</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="metadata_block_vorbis_comment"><FONT SIZE="+2"><B><TT>ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_VORBIS_COMMENT</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;n&gt;</TD>
<TD>Ñîäåðæèìîå êîììåòàðèÿ â ôîðìàòå Vorbis, êàê îíî îïèñàíî <A HREF="http://www.xiph.org/ogg/vorbis/doc/v-comment.html">çäåñü</A>. Îáðàòèòå âíèìàíèå íà òî, ÷òî ñïåöèôèêàöèÿ Vorbis îãðàíè÷èâàåò ðàçìåð ýòîãî áëîêà 2 ^ 64 áàéòàìè, â òî âðåìÿ êàê áëîê ìåòàäàííûõ FLAC ìîæåò èìåòü ðàçìåð íå áîëüøå 2 ^ 24 áàéòîâ.  ñîîòâåòñòâèè ñî ñïåöèôèêàöèåé Vorbis 32-áèòíûå äàííûå little-endian coded, â îòëè÷èå îò big-endian coding öåëûõ, èñïîëüçóåìûõ â îñòàëüíûõ ìåñòàõ FLAC.</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="frame"><FONT SIZE="+2"><B><TT>ÔÐÅÉÌ</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP"><A HREF="format.html#frame_header"><TT>ÇÀÃÎËÎÂÎÊ_ÔÐÅÉÌÀ</TT></A></TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD VALIGN="TOP"><A HREF="format.html#subframe"><TT>ÏÎÄÔÐÅÉÌ</TT></A>+</TD>
<TD>Îäèí ïîäôðåéì íà êàíàë</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;?&gt;</TD>
<TD>Âûðàâíèâàíèå íóëÿìè íà ãðàíèöó áàéòà</TD>
</TR>
<TR>
<TD VALIGN="TOP"><A HREF="format.html#frame_footer"><TT>ÇÀÂÅÐØÅÍÈÅ_ÔÐÅÉÌÀ</TT></A></TD>
<TD>&nbsp;</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="frame_header"><FONT SIZE="+2"><B><TT>ÇÀÃÎËÎÂÎÊ_ÔÐÅÉÌÀ</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;14&gt;</TD>
<TD>êîä ñèíõðîíèçàöèè <TT>11111111111110</TT></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;2&gt;</TD>
<TD>Çàðåçåðâèðîâàíî:
<UL>
<LI>00 : îáÿçàòåëüíîå çíà÷åíèå</LI>
<LI>01-11 : çàðåçåðâèðîâàíî äëÿ ïîñëåäóþùåãî èñïîëüçîâàíèÿ</LI>
</UL>
</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;4&gt;</TD>
<TD>Ðàçìåð áëîêà â ñýìïëàõ:
<UL>
<LI>0000 : ïîëó÷èòü èç áëîêà ìåòàäàííûõ <TT>STREAMINFO</TT></LI>
<LI>0001 : <TT>192</TT> ñýìïëà</LI>
<LI>0010-0101 : <TT>576 * (2^(2-n))</TT> ñýìïëîâ, ò.å. <TT>576/1152/2304/4608</TT></LI>
<LI>0110 : ïîëó÷èòü 8 áèòîâ (ðàçìåð áëîêà-1) èç êîíöà çàãîëîâêà</LI>
<LI>0111 : ïîëó÷èòü 16 áèòîâ (ðàçìåð áëîêà-1) èç êîíöà çàãîëîâêà</LI>
<LI>1000-1111 : <TT>256 * (2^(n-8))</TT> ñýìïëîâ, ò.å. <TT>256/512/1024/2048/4096/8192/16384/32768</TT></LI>
</UL>
</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;4&gt;</TD>
<TD>×àñòîòà äèñêðåòèçàöèè:
<UL>
<LI><TT>0000</TT> : ïîëó÷èòü èç áëîêà ìåòàäàííûõ <TT>STREAMINFO</TT></LI>
<LI><TT>0001-0011</TT> : çàðåçåðâèðîâàíû</LI>
<LI><TT>0100</TT> : 8êÃö</LI>
<LI><TT>0101</TT> : 16êÃö</LI>
<LI><TT>0110</TT> : 22.05êÃö</LI>
<LI><TT>0111</TT> : 24êÃö</LI>
<LI><TT>1000</TT> : 32êÃö</LI>
<LI><TT>1001</TT> : 44.1êÃö</LI>
<LI><TT>1010</TT> : 48êÃö</LI>
<LI><TT>1011</TT> : 96êÃö</LI>
<LI><TT>1100</TT> : ïîëó÷èòü 8-áèòíîå çíà÷åíèå ÷àñòîòû äèñêðåòèçàöèè (â êÃö) èç êîíöà çàãîëîâêà</LI>
<LI><TT>1101</TT> : ïîëó÷èòü 16-áèòíîå çíà÷åíèå ÷àñòîòû äèñêðåòèçàöèè (â Ãö) èç êîíöà çàãîëîâêà</LI>
<LI><TT>1110</TT> : ïîëó÷èòü 16-áèòíîå çíà÷åíèå ÷àñòîòû äèñêðåòèçàöèè (â äÃö) èç êîíöà çàãîëîâêà</LI>
<LI><TT>1111</TT> : îøèáî÷íîå çíà÷åíèå, ÷òîáû íå äîïóñòèòü ñîâïàäåíèå ñ êîäîì ñèíõðîíèçàöèè</LI>
</UL>
</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;4&gt;</TD>
<TD>Ðàñïîëîæåíèå êàíàëîâ:
<UL>
<LI><TT>0000-0111</TT> : <TT>(êîëè÷åñòâî íåçàâèñèìûõ êàíàëîâ)-1</TT>. Êîãäà == <TT>0001</TT>, êàíàë <TT>0</TT> ÿâëÿåòñÿ ëåâûì, <TT>1</TT> - ïðàâûì</LI>
<LI><TT>1000</TT> : ëåâîñòîðîííåå ñòåðåî: êàíàë <TT>0</TT> ÿâëÿåòñÿ ëåâûì, <TT>1</TT> - ðàçíîñòíûì</LI>
<LI><TT>1001</TT> : ïðàâîñòîðîííåå ñòåðåî: êàíàë <TT>0</TT> ÿâëÿåòñÿ ðàçíîñòíûì, <TT>1</TT> - ïðàâûì</LI>
<LI><TT>1010</TT> : óñðåäíåííîå ñòåðåî: êàíàë <TT>0</TT> ÿâëÿåòñÿ óñðåäíåííûì, <TT>1</TT> - ðàçíîñòíûì
<LI><TT>1011-1111</TT> : çàðåçåðâèðîâàíû</LI>
</UL>
</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;3&gt;</TD>
<TD>Êîëè÷åñòâî áèòîâ íà ñýìïë:
<UL>
<LI><TT>000</TT> : ïîëó÷èòü èç áëîêà ìåòàäàííûõ <TT>STREAMINFO</TT></LI>
<LI><TT>001</TT> : 8 áèò íà ñýìïë</LI>
<LI><TT>010</TT> : 12 áèò íà ñýìïë</LI>
<LI><TT>011</TT> : çàðåçåðâèðîâàíî</LI>
<LI><TT>100</TT> : 16 áèò íà ñýìïë</LI>
<LI><TT>101</TT> : 20 áèò íà ñýìïë</LI>
<LI><TT>110</TT> : 24 áèò íà ñýìïë</LI>
<LI><TT>111</TT> : çàðåçåðâèðîâàíî</LI>
</UL>
</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;1&gt;</TD>
<TD>Äîïîëíåíèå íóëåì äî ãðàíèöû áèòà, ÷òîáû íå äîïóñòèòü îøèáêó ñèíõðîíèçàöèè</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;?&gt;</TD>
<TD>Åñëè <TT>(ïåðåìåííûé ðàçìåð áëîêà)</TT><BR>
&nbsp;&nbsp;&nbsp;<8-56> : íîìåð ñýìïëà â ôîðìàòå UTF-8 (ðàçìåð äåêîäèðóåìîãî ÷èñëà 36 áèò)<BR>
èíà÷å<BR>
&nbsp;&nbsp;&nbsp;<8-48> : íîìåð ôðåéìà â ôîðìàòå UTF-8 (ðàçìåð äåêîäèðóåìîãî ÷èñëà 31 áèò)</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;?&gt;</TD>
<TD>Åñëè <TT>(áèòîâàÿ ìàñêà ðàçìåðà áëîêà == 11x)</TT><BR>
&nbsp;&nbsp;&nbsp;8/16 áèò <TT>(ðàçìåð áëîêà - 1)</TT></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;?&gt;</TD>
<TD>Åñëè <TT>(áèòîâàÿ ìàñêà ÷àñòîòû äèñêðåòèçàöèè == 11xx)</TT><BR>
&nbsp;&nbsp;&nbsp;÷àñòîòà äèñêðåòèçàöèè 8/16 áèò</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;8&gt;</TD>
<TD>8-áèòíàÿ ïîëèíîìàëüíàÿ êîíòðîëüíàÿ ñóììà <TT>(x^8 + x^2 + x^1 + x^0)</TT> äàííûõ çàãîëîâêà, âêëþ÷àÿ êîä ñèíõðîíèçàöèè (<TT>x</TT> èíèöèàëèçèðóåòñÿ íóëåì).</TD>
</TR>
<TR>
<TD VALIGN="TOP">&nbsp;</TD>
<TD><B>Ïðèìå÷àíèÿ</B>:
<UL>
<LI>Áèòû ðàçìåðà áëîêà <TT>0000-0101</TT> ìîãóò áûòü èñïîëüçîâàíû òîëüêî ïðè ïîñòîÿííîì èõ çíà÷åíèè âî âñåì áëîêå. Áèòû <TT>0110-0111</TT> ìîãóò èñïîëüçîâàòüñÿ â ëþáîì ñëó÷àå, äåêîäåð áóäåò ñ÷èòàòü, ÷òî ïîòîê èìååò ïåðåìåííóþ äëèíó áëîêà. Ñóùåñòâóåò îäíî èñêëþ÷åíèå: åíêîäåð ìîæåò èñïîëüçîâàòü áèòû <TT>0110-0111</TT> â ïîñëåäíåì ôðåéìå ïîòîêà ñ ïîñòîÿííûì ðàçìåðîì áëîêà â òîì ñëó÷àå, åñëè åãî äëèíà íå áîëüøå, ÷åì èñïîëüçóåìàÿ â âñåì ïîòîêå.</LI>
</UL>
</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="frame_footer"><FONT SIZE="+2"><B><TT>ÇÀÂÅÐØÅÍÈÅ_ÔÐÅÉÌÀ</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;16&gt;</TD>
<TD>16-áèòíàÿ ïîëèíîìàëüíàÿ êîíòðîëüíàÿ ñóììà <TT>(x^16 + x^15 + x^2 + x^0)</TT> âñåãî ôðåéìà (<TT>x</TT> èíèöèàëèçèðóåòñÿ íóëåì).</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="subframe"><FONT SIZE="+2"><B><TT>ÏÎÄÔÐÅÉÌ</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP"><A HREF="format.html#subframe_header"><TT>ÇÀÃÎËÎÂÎÊ_ÏÎÄÔÐÅÉÌÀ</TT></A></TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD VALIGN="TOP"><A HREF="format.html#subframe_constant"><TT>ÏÎÄÔÐÅÉÌ_CONSTANT</TT></A> || <A HREF="format.html#subframe_fixed"><TT>ÏÎÄÔÐÅÉÌ_FIXED</TT></A> ||<BR><A HREF="format.html#subframe_lpc"><TT>ÏÎÄÔÐÅÉÌ_LPC</TT></A> || <A HREF="format.html#subframe_verbatim"><TT>ÏÎÄÔÐÅÉÌ_VERBATIM</TT></A></TD>
<TD>Òèï ïîäôðåéìà, îïðåäåëÿåìûé â çàãîëîâêå</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="subframe_header"><FONT SIZE="+2"><B><TT>ÇÀÃÎËÎÂÎÊ_ÏÎÄÔÐÅÉÌÀ</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;1&gt;</TD>
<TD>Áèò ðàâíûé <TT>0</TT>, ÷òîáû ïðåäîòâðàòèòü îøèáêó ñèíõðîíèçàöèè.</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;6&gt;</TD>
<TD>Òèï ïîäôðåéìà:
<UL>
<LI><TT>000000</TT> : <A HREF="format.html#subframe_constant"><TT>ÏÎÄÔÐÅÉÌ_CONSTANT</TT></A></LI>
<LI><TT>000001</TT> : <A HREF="format.html#subframe_verbatim"><TT>ÏÎÄÔÐÅÉÌ_VERBATIM</TT></A></LI>
<LI><TT>00001x</TT> : çàðåçåðâèðîâàíî</LI>
<LI><TT>0001xx</TT> : çàðåçåðâèðîâàíî</LI>
<LI><TT>001xxx</TT> : Åñëè (<TT>xxx</TT> <= 4) <A HREF="format.html#subframe_fixed"><TT>ÏÎÄÔÐÅÉÌ_FIXED</TT></A>, <TT>xxx</TT> = ïîðÿäîê; èíà÷å çàðåçåðâèðîâàíî</LI>
<LI><TT>01xxxx</TT> : çàðåçåðâèðîâàíî</LI>
<LI><TT>1xxxxx</TT> : <A HREF="format.html#subframe_lpc"><TT>ÏÎÄÔÐÅÉÌ_LPC</TT></A>, <TT>xxxxx = ïîðÿäîê-1</TT></LI>
</UL>
</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;1+k&gt;</TD>
<TD>Ôëàã 'íåèñïîëüçóåìûå áèòû íà ñýìïë':
<UL>
<LI>0 : â èñõîäíîì ïîäáëîêå íåò 'íåèñïîëüçóåìûõ áèòîâ', <TT>k=0</TT></LI>
<LI>1 : <TT>k</TT> 'íåèñïîëüçóåìûõ áèòîâ' â èñõîäíîì ïîäáëîêå, ÷èñëî çàïèñûâàåòñÿ â óíàðíîì ôîðìàòå; ò.å. äëÿ <TT>k=3</TT> ïîñëåäîâàòåëüíîñòü áèòîâ áóäåò âûãëÿäåòü òàê <TT>001</TT>, äëÿ <TT>k=7</TT> - <TT>0000001</TT>.</LI>
</UL>
</TD>
</TR>
<TR>
<TD VALIGN="TOP">&nbsp;</TD>
<TD><B>Ïðèìå÷àíèÿ</B>:
<UL>
<LI>'Íåèñïîëüçóåìûå áèòû' âñòðå÷àþòñÿ â áëîêå äàííûõ, åñëè ïðè çàÿâëåííûõ <TT>n</TT> áèòàõ çíà÷èìûìè ÿâëÿþòñÿ òîëüêî <TT>m</TT>. ×èñëî <TT>k = n - m</TT> è áóäåò îïðåäåëÿòü êîëè÷åñòâî 'íåèñïîëüçóåìûõ áèòîâ'. Íàïðèìåð, åñëè âñå 16-áèòíûå ñýìïëû â èñõîäíîì ïîäáëîêå âûãëÿäÿò êàê 'xxxxxxxxxxxxx000', òî åíêîäåð êîäèðóåò òîëüêî 13 áèò, è çàïîìèíàåò, ÷òî 3 áèòà ÿâëÿþòñÿ 'íåèñïîëüçóåìûìè'.</LI>
</UL>
</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR><TD COLSPAN="2" BGCOLOR="#E0E0E0">
<A NAME="subframe_constant"><FONT SIZE="+2"><B><TT>
ÏÎÄÔÐÅÉÌ_CONSTANT</TT></B></FONT></A></TD></TR>
<TR><TD VALIGN="TOP">
&lt;n&gt;</TD>
<TD>Íåñæàòîå ïîñòîÿííîå çíà÷åíèå ïîäáëîêà, <TT>n</TT> ðàâíî êîëè÷åñòâó áèòîâ íà ñýìïë âî ôðåéìå</TD><TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="subframe_fixed"><FONT SIZE="+2"><B><TT>ÏÎÄÔÐÅÉÌ_FIXED</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;n&gt;</TD>
<TD>Íåêîäèðóåìûå íà÷àëüíûå ñýìïëû (<TT>n</TT> ðàâíî êîëè÷åñòâó áèòîâ íà ñýìïë âî ôðåéìå, óìíîæåííîìó íà ïîðÿäîê ïðåäèêòîðà).</TD>
</TR>
<TR>
<TD VALIGN="TOP"><A HREF="format.html#residual"><TT>ÎÑÒÀÒÎÊ</TT></A></TD>
<TD>Çàêîäèðîâàííûé îñòàòîê</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="subframe_lpc"><FONT SIZE="+2"><B><TT>ÏÎÄÔÐÅÉÌ_LPC</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;n&gt;</TD>
<TD>Íåêîäèðóåìûå íà÷àëüíûå ñýìïëû (<TT>n</TT> ðàâíî êîëè÷åñòâó áèòîâ íà ñýìïë âî ôðåéìå, óìíîæåííîìó íà ïîðÿäîê ïðåäèêòîðà).</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;4&gt;</TD>
<TD><TT>(òî÷íîñòü äèñêðåòíîãî êîýôôèöèåòà ëèíåéíîãî ïðîãíîçèðîâàíèÿ (QLP)) - 1</TT>. Çíà÷åíèå <TT>1111</TT> íåäîïóñòèìî.</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;5&gt;</TD>
<TD>Íåîáõîäèìûé ñäâèã äèñêðåòíîãî êîýôôèöèåòà ëèíåéíîãî ïðîãíîçèðîâàíèÿ â áèòàõ. (<B>Ïðèìå÷àíèå</B>: ýòî ÷èñëî - çíàêîâîå äîïîëíåíèå äî äâóõ).</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;n&gt;</TD>
<TD>Íåñæàòûå êîýôôèöèåíòû ïðîãíîçèðîâàíèÿ <TT>(n = òî÷íîñòü QLP * ïîðÿäîê LPC)</TT> (<B>Ïðèìå÷àíèå</B>: ýòè ÷èñëà ÿâëÿþòñÿ çíàêîâûìè äîïîëíåíèÿìè äî äâóõ).</TD>
</TR>
<TR>
<TD VALIGN="TOP"><A HREF="format.html#residual"><TT>ÎÑÒÀÒÎÊ</TT></A></TD>
<TD>Çàêîäèðîâàííûé îñòàòîê</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="subframe_verbatim"><FONT SIZE="+2"><B><TT>ÏÎÄÔÐÅÉÌ_VERBATIM</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;n*i&gt;</TD>
<TD>Íåñæàòûé ïîäáëîê, <TT>n</TT> ðàâíî êîëè÷åñòâó áèòîâ íà ñýìïë âî ôðåéìå, <TT>i</TT> - ðàçìåðó áëîêà</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="residual"><FONT SIZE="+2"><B><TT>ÎÑÒÀÒÎÊ</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;2&gt;</TD>
<TD>Ìåòîä êîäèðîâàíèÿ îñòàòêîâ:
<UL>
<LI><TT>00</TT> : êîäèðîâàíèå Ðàéñà</LI>
<LI><TT>01-11</TT> : çàðåçåðâèðîâàíî</LI>
</UL>
</TD>
</TR>
<TR>
<TD VALIGN="TOP"><A HREF="format.html#partitioned_rice"><TT>ÎÑÒÀÒÊÈ_ÑÆÀÒÛÅ_ÌÅÒÎÄÎÌ_ÐÀÉÑÀ</TT></A></TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD VALIGN="TOP">&nbsp;</TD>
<TD><B>Ïðèìå÷àíèÿ:</B>
<UL>
<LI>Ñåé÷àñ FLAC èñïîëüçóåò òîëüêî îäèí ìåòîä êîäèðîâàíèÿ îñòàòêîâ</LI>
</UL>
</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="partitioned_rice"><FONT SIZE="+2"><B><TT>ÎÑÒÀÒÊÈ_ÑÆÀÒÛÅ_ÌÅÒÎÄÎÌ_ÐÀÉÑÀ</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;4&gt;</TD>
<TD>Ïîðÿäîê ðàçäåëà</TD>
</TR>
<TR>
<TD VALIGN="TOP"><A HREF="format.html#rice_partition"><TT>ÐÀÇÄÅË_ÐÀÉÑÀ</TT></A>+</TD>
<TD>Äàëåå ñëåäóþò 2^ïîðÿäîê ðàçäåëîâ</TD>
</TR>
</TABLE></P>
<P><TABLE WIDTH="100%" BORDER="1">
<TR>
<TD COLSPAN="2" BGCOLOR="#E0E0E0"><A NAME="rice_partition"><FONT SIZE="+2"><B><TT>ÐÀÇÄÅË_ÐÀÉÑÀ</TT></B></FONT></A></TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;4(+5)&gt;</TD>
<TD>Ïàðàìåòð êîäèðîâàíèÿ:
<UL>
<LI><TT>0000-1110</TT> : Ïàðàìåòð Ðàéñà.</LI>
<LI><TT>1111</TT> : Êîä, îçíà÷àþùèé, ÷òî ðàçäåë ÿâëÿåòñÿ íåñæàòûì è â íåì èñïîëüçóþòñÿ <TT>n</TT> áèòîâ íà ñýìïë. <TT>n</TT> ïðåäñòàâëåíî 5-áèòíûì ÷èñëîì.
</UL>
</TD>
</TR>
<TR>
<TD VALIGN="TOP">&lt;?&gt;</TD>
<TD>Çàêîäèðîâàííûé îñòàòîê. Êîëè÷åñòâî ñýìïëîâ <TT>n</TT> â ðàçäåëå îïðåäåëÿåòñÿ ñëåäóþùèì îáðàçîì:
<UL>
<LI>Åñëè ïîðÿäîê ðàçäåëà ðàâåí <TT>0</TT>, <TT>n</TT> ðàâíî ðàçìåðó áëîêà äëÿ ôðåéìà.</LI>
<LI>èíà÷å åñëè ýòî íå ïåðâûé ðàçäåë ïîäôðåéìà, <TT>n = (ðàçìåð áëîêà äëÿ ôðåéìà / (2^ïîðÿäîê ðàçäåëà))</TT></LI>
<LI>èíà÷å <TT>n = (ðàçìåð áëîêà äëÿ ôðåéìà / (2^ïîðÿäîê ðàçäåëà)) - ïîðÿäîê ïðåäèêòîðà</TT></LI>
</UL>
</TD>
</TR>
</TABLE></P>
<P>&nbsp;Copyright (c) 2000,2001,2002 Josh Coalson</P>
</BODY>
</HTML>