From: Andrey Astafiev Date: Mon, 20 Aug 2001 05:30:09 +0000 (+0000) Subject: revision for 1.0 X-Git-Tag: 1.2.0~2112 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=41842068184dae1c90d2f12f8f07656d9cf5d69a;p=platform%2Fupstream%2Fflac.git revision for 1.0 --- diff --git a/doc/ru/developers.html b/doc/ru/developers.html index 7418921..6c4a006 100644 --- a/doc/ru/developers.html +++ b/doc/ru/developers.html @@ -1,114 +1,114 @@ - - - - - - - - - - -FLAC: ðàçðàáîòêà - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|íà÷àëî |íîâîñòè |ôàéëû |õàðàêòåðèñòèêè |öåëè |ôîðìàò |
|id |ñðàâíåíèå | - ðàçðàáîòêà |äîêóìåíòàöèÿ |ññûëêè |àâòîðû |
- -

- - - - - -
|english | - ðóññêèé |

- - -

FLAC: ðàçðàáîòêà

- -

Ïðîåêò FLAC

- -

FLAC - ýòî îòêðûòûé ïðîåêò è íàì áóäåò î÷åíü ïðèÿòíî, åñëè êòî-ëèáî çàõî÷åò ê íàì ïðèñîåäèíèòüñÿ. Âû ìîæåòå ïðèíèìàòü ó÷àñòèå â ðàçðàáîòêå ÷åðåç ñïèñîê ðàññûëêè, ñîîáùàÿ îá îøèáêàõ èëè âûñêàçûâàÿ ñâîè èäåè, èëè êàê ðàçðàáîò÷èê.  ëþáîì ñëó÷àå, ïî÷èòàéòå ñïèñîê öåëåé, ñòîÿùèõ ïåðåä ïðîåêòîì, ïîòîìó ÷òî íåêîòîðûå âîçìîæíîñòè, òàêèå êàê çàùèòà îò êîïèðîâàíèÿ è ñæàòèå ñ ïîòåðÿìè, ìû äîáàâëÿòü íå õîòèì.

- -

Ñïèñîê îñîáåííî âàæíûõ çàäà÷:

- -

-
  • Òåñòèðîâàíèå. Åíêîäåð, ñæèìàþùèé ôàéë áåç ïîòåðü, äîëæåí ðàáîòàòü àáñîëþòíî êà÷åñòâåííî äëÿ ëþáûõ âõîäíûõ äàííûõ. Íàáîð òåñòîâ ñîäåðæèò îáðàçöû ðàçðàáîòàííûõ ñïåöèàëüíî, ÷òîáû çàñòàâèòü åíêîäåð èçðÿäíî ïîòðóäèòüñÿ, îäíàêî òîëüêî èìè íåëüçÿ îãðàíè÷èâàòüñÿ. ×åì áîëüøå áóäåò òåñòîâ, òåì ëó÷øå.
  • - -
  • Áîëüøå ïëàãèíîâ äëÿ ïëåéåðîâ. Ñåé÷àñ åñòü ïëàãèíû òîëüêî äëÿ Winamp è XMMS. Õî÷åòñÿ áîëüøå!
  • -

    - -

    ×åãî áû åùå õîòåëîñü:

    - -

    -
  • Óëó÷øèòü ìåòîäû ñæàòèÿ.
  • - -
  • Ïîïðàâèòü ìåéêôàéëû äëÿ MSVC, ÷òîáû âìåñòî libFLAC.lib íà âûõîäå ïîëó÷àëñÿ libFLAC.dll.
  • - -
  • Îáåñïå÷èòü íàñòðàèâàåìóþ ïîääåðæêó ID3v1 è ID3v2 â ïëàãèíàõ.
  • - -
  • Cäåëàòü ïîääåðæêó äëÿ áîëüøåãî êîëè÷åñòâà òèïîâ âõîäíûõ ôàéëîâ (íå òîëüêî WAVE è raw).
  • - -
  • Íàðèñóéòå êëàññíîå ëîãî!
  • -

    - - -

    Èñïîëüçîâàíèå â äðóãèõ ïðîãðàììàõ

    - -

    FLAC îòêðûò äëÿ ðàçðàáîò÷èêîâ, æåëàþùèõ äîáàâèòü ïîääåðæêó FLAC â ñâîèõ ïðîãðàììàõ. Âñå íåîáõîäèìûå ôóíêöèè íàõîäÿòñÿ â áèáëèîòåêå libFLAC, ðàñïðîñòðàíÿåìîé ïî ëèöåíçèè LGPL. Ñîîòâåòñòâóþùàÿ äîêóìåíòàöèÿ íàõîäèòñÿ çäåñü:

    - - - -

     èñõîäíûõ òåêñòàõ ïðîåêòà åñòü íåñêîëüêî ïðèìåðîâ èñïîëüçîâàíèÿ libFLAC. Íà ñòðàíèöå ôàéëû íàïèñàíî, êàê ìîæíî èõ ïîëó÷èòü.

    - -

     Copyright (c) 2001 Josh Coalson

    - - - + + + + + + + + + + +FLAC: ðàçðàáîòêà + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    |íà÷àëî |íîâîñòè |ôàéëû |õàðàêòåðèñòèêè |öåëè |ôîðìàò |
    |id |ñðàâíåíèå | + ðàçðàáîòêà |äîêóìåíòàöèÿ |ññûëêè |àâòîðû |
    + +

    + + + + + +
    |english | + ðóññêèé |

    + + +

    FLAC: ðàçðàáîòêà

    + +

    Ïðîåêò FLAC

    + +

    FLAC - ýòî îòêðûòûé ïðîåêò è íàì áóäåò î÷åíü ïðèÿòíî, åñëè êòî-ëèáî çàõî÷åò ê íàì ïðèñîåäèíèòüñÿ. Âû ìîæåòå ïðèíèìàòü ó÷àñòèå â ðàçðàáîòêå ÷åðåç ñïèñîê ðàññûëêè, ñîîáùàÿ îá îøèáêàõ èëè âûñêàçûâàÿ ñâîè èäåè, èëè êàê ðàçðàáîò÷èê.  ëþáîì ñëó÷àå, ïî÷èòàéòå ñïèñîê öåëåé, ñòîÿùèõ ïåðåä ïðîåêòîì, ïîòîìó ÷òî íåêîòîðûå âîçìîæíîñòè, òàêèå êàê çàùèòà îò êîïèðîâàíèÿ è ñæàòèå ñ ïîòåðÿìè, ìû äîáàâëÿòü íå õîòèì.

    + +

    Ñïèñîê îñîáåííî âàæíûõ çàäà÷:

    + +

    +
  • Òåñòèðîâàíèå. Åíêîäåð, ñæèìàþùèé ôàéë áåç ïîòåðü, äîëæåí ðàáîòàòü àáñîëþòíî êà÷åñòâåííî äëÿ ëþáûõ âõîäíûõ äàííûõ. Íàáîð òåñòîâ ñîäåðæèò îáðàçöû ðàçðàáîòàííûõ ñïåöèàëüíî, ÷òîáû çàñòàâèòü åíêîäåð èçðÿäíî ïîòðóäèòüñÿ, îäíàêî òîëüêî èìè íåëüçÿ îãðàíè÷èâàòüñÿ. ×åì áîëüøå áóäåò òåñòîâ, òåì ëó÷øå.
  • + +
  • Áîëüøå ïëàãèíîâ äëÿ ïëåéåðîâ. Ñåé÷àñ åñòü ïëàãèíû òîëüêî äëÿ Winamp è XMMS. Õî÷åòñÿ áîëüøå!
  • +

    + +

    ×åãî áû åùå õîòåëîñü:

    + +

    +
  • Óëó÷øèòü ìåòîäû ñæàòèÿ.
  • + +
  • Ïîïðàâèòü ìåéêôàéëû äëÿ MSVC, ÷òîáû âìåñòî libFLAC.lib íà âûõîäå ïîëó÷àëñÿ libFLAC.dll.
  • + +
  • Îáåñïå÷èòü íàñòðàèâàåìóþ ïîääåðæêó ID3v1 è ID3v2 â ïëàãèíàõ.
  • + +
  • Cäåëàòü ïîääåðæêó äëÿ áîëüøåãî êîëè÷åñòâà òèïîâ âõîäíûõ ôàéëîâ (íå òîëüêî WAVE è raw).
  • + +
  • Íàðèñóéòå êëàññíîå ëîãî!
  • +

    + + +

    Èñïîëüçîâàíèå â äðóãèõ ïðîãðàììàõ

    + +

    FLAC îòêðûò äëÿ ðàçðàáîò÷èêîâ, æåëàþùèõ äîáàâèòü ïîääåðæêó FLAC â ñâîèõ ïðîãðàììàõ. Âñå íåîáõîäèìûå ôóíêöèè íàõîäÿòñÿ â áèáëèîòåêå libFLAC, ðàñïðîñòðàíÿåìîé ïî ëèöåíçèè LGPL. Ñîîòâåòñòâóþùàÿ äîêóìåíòàöèÿ íàõîäèòñÿ çäåñü:

    + + + +

     èñõîäíûõ òåêñòàõ ïðîåêòà åñòü íåñêîëüêî ïðèìåðîâ èñïîëüçîâàíèÿ libFLAC. Íà ñòðàíèöå ôàéëû íàïèñàíî, êàê ìîæíî èõ ïîëó÷èòü.

    + +

     Copyright (c) 2001 Josh Coalson

    + + + diff --git a/doc/ru/documentation.html b/doc/ru/documentation.html index 2a5166a..95a77ec 100644 --- a/doc/ru/documentation.html +++ b/doc/ru/documentation.html @@ -1,566 +1,566 @@ - - - - - - - - - - -FLAC: äîêóìåíòàöèÿ - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |íà÷àëî |íîâîñòè |ôàéëû |õàðàêòåðèñòèêè |öåëè |ôîðìàò |
    |id |ñðàâíåíèå |ðàçðàáîòêà | - äîêóìåíòàöèÿ |ññûëêè |àâòîðû |
    - -

    - - - - - -
    |english | - ðóññêèé |

    - - -

    FLAC: äîêóìåíòàöèÿ

    - -

    Äîêóìåíòàöèÿ

    - -

    Ýòà ñòðàíèöà ðàçáèòà íà ñëåäóþùèå ðàçäåëû:

    - -çäåñü íàõîäèòñÿ äîêóìåíòàöèÿ äëÿ óòèëèòû êîìàäíîé ñòðîêè flac, ðåäàêòîðà ìåòàäàííûõ metaflac è ïëàãèíîâ äëÿ ïëååðîâ.

    - - - - -

    Ïîìíèòå, ÷òî îíëàéíîâàÿ âåðñèÿ ýòîãî äîêóìåíòà (íà àíãëèéñêîì ÿçûêå) âêëþ÷àåòñÿ â ïîñëåäíèé ðåëèç.

    - - -

    Ôîðìàò

    - -

    Îïöèè ïî óìîë÷àíèþ äëÿ flac íàñòðîåíû íà ïîëó÷åíèå îïòèìàëüíîãî ñîîòíîøåíèÿ ñêîðîñòü/óðîâåíü ñæàòèÿ äëÿ áîëüøèíñòâà òèïîâ âõîäíûõ ôàéëîâ. Çäåñü îïèñûâàåòñÿ êàê ìîæíî ïîïûòàòüñÿ óâåëè÷èòü óðîâåíü èëè ñêîðîñòü ñæàòèÿ èëè ñ íàèáîëüøèì ýôôåêòîì èñïîëüçîâàòü ñèñòåìó ìåòàäàííûõ.

    - -

    Îñíîâíûìè ÷àñòÿìè ïîòîêà ÿâëÿþòñÿ:

    - -

    - -

    Ïåðâûå ÷åòûðå áàéòà èäåòèôèöèðóþò ïîòîê FLAC. Ñëåäóþùèå çà íèìè ìåòàäàííûå ñîäåðæàò èíôîðìàöèþ î ïîòîêå, çàòåì èäóò ñæàòûå àóäèîäàííûå.

    - - -

    Ìåòàäàííûå

    - -

    FLAC îïðåäåëÿåò íåñêîëüêî òèïîâ áëîêîâ ìåòàäàííûõ (âñå îíè ïåðå÷èñëåíû íà ñòðàíèöå ôîðìàò). Áëîêè ìåòàäàííûõ ìîãóò áûòü ëþáîãî ðàçìåðà, íîâûå áëîêè ìîãóò áûòü ëåãêî äîáàâëåíû. Äåêîäåð èìååò âîçìîæíîñòü ïðîïóñêàòü íåèçâåòíûå åìó áëîêè ìåòàäàííûõ. Îáÿçàòåëåí òîëüêî áëîê STREAMINFO.  íåì ñîäåðæèòñÿ ÷àñòîòà äèñêðåòèçàöèÿ, êîëè÷åñòâî êàíàëîâ è ò.ï., à òàêæå äàííûå ïîçâîëÿþùèå äåêîäåðó íàñòðîèòü áóôôåðû. Ñþäà òàêæå çàïèñûâàåòñÿ ïîäïèñü MD5 íåñæàòûõ àóäèîäàííûõ. Ýòî ïîëåçíî äëÿ ïðîâåðêè âñåãî ïîòîêà ïîñëå åãî ïåðåäà÷è.

    - -

    Äðóãèå áëîêè ïðåäíàçíà÷åíû äëÿ ðåçåðâèðîâàíèÿ ìåñòà, õðàíåíèÿ òàáëèö òî÷åê ïîèñêà, à òàêæå äàííûõ äëÿ êîíêðåòíûõ ïðèëîæåíèé. Îïöèè äëÿ äîáàâëåíèÿ áëîêîâ PADDING èëè òî÷åê ïîèñêà ïðèâåäåíû íèæå. FLAC íå íóæäàåòñÿ â òî÷êàõ ïîèñêà, îäíàêî îíè ïîçâîëÿþò çíà÷èòåëüíî óâåëè÷èòü ñêîðîñòü äîñòóïà, à òàêæå ìîãóò áûòü èñïîëüçîâàíèÿ äëÿ ðàññòàíîâêè ìåòîê â àóäèî ðåäàêòîðàõ.

    - -

    Åñëè Âàì íóæåí ñîáñòâåííûé áëîê ìåòàäàííûõ, Âû ìîæåòå îïðåäåëèòü åãî è çàïðîñèòü èäåíòèôèêàòîð çäåñü. Âû ìîæåòå çàðåçåðâèðîâàòü áëîê PADDING íåîáõîäèìîãî ðàçìåðà è çàïèñàòü íà åãî ìåñòî ñâîè äàííûå ïîñëå êîäèðîâàíèÿ. Ïîëó÷åíííûé ïîòîê áóäåò îòâå÷àòü ôîðìàòó FLAC, äåêîäåðû ðàñïîçíàþùèå ýòè áëîêè ñìîãóò èõ èñïîëüçîâàòü, îñòàëüíûå áóäóò èõ ïðîïóñêàòü.

    - - -

    Àóäèîäàííûå

    - -

    Çà ìåòàäàííûì ñëåäóþò ñæàòûå àóäèîäàííûå. Ìåòàäàííûå è àóäèîäàííûå íå ÷åðåäóþòñÿ. Êàê è áîëüøèíñòâî êîäåêîâ FLAC äåëèò âõîäíîé ïîòîê íà áëîêè è êîäèðóåò èõ íåçàâèñèìî äðóã îò äðóãà. Áëîê óïàêîâûâàòñÿ âî ôðåéì è äîáàâëÿåòñÿ ê ïîòîêó. Áàçîâûé åíêîäåð èñïîëüçóåò áëîêè ïîñòîÿííîãî ðàçìåðà äëÿ âñåãî ïîòîêà, îäíàêî ôîðìàò ïðåäóñìàòðèâàåò íàëè÷èå áëîêîâ ðàçíîé äëèíû â ïîòîêå.

    - - -

    Ðàçáèåíèå íà áëîêè

    - -

    Ðàçìåð áëîêà - î÷åíü âàæíûé ïàðàìåòð äëÿ êîäèðîâàíèÿ. Åñëè îí î÷åíü ìàë, òî â ïîòîêå áóäåò ñëèøêîì çàãîëîâêîâ ôðåéìîâ, ÷òî óìåíüøèò óðîâåíü ñæàòèÿ. Åñëè ðàçìåð áîëüøîé, òî åíêîäåð íå ñìîæåò ïîäîáðàòü ýôôåêòèâíóþ ìîäåëü ñæàòèÿ. Ïîíèìàíèå ïðîöåññà ìîäåëèðîâàíèÿ ïîìîæåò Âàì óâåëè÷èòü óðîâåíü ñæàòèÿ äëÿ íåêîòîðûõ òèïîâ âõîäíûõ äàííûõ. Îáû÷íî ïðè èñïîëüçîâàíèè ëèíåéíîãî ïðîãíîçèðîâàíèÿ íà àóäèîäàííûõ ñ ÷àñòîòîé äèñêðåòèçàöèè 44.1 êÃö îïòèìàëüíûé ðàçìåð áëîêà ëåæèò â äèàïàçîíå 2-6 òûñÿ÷ ñýìïëîâ.  ýòîì ñëó÷àå çíà÷åíèå ïî óìîë÷àíèþ - 4608. Åñëè èñïîëüçîâàòü áûñòðûå ïîñòîÿííûå ïðåäèêòîðû, ïðåäïî÷òèòåëüíåå ìåíüøèå ðàçìåðû áëîêîâ, òàê êàê â ýòîì ñëó÷àå ðàçìåðû çàãîëîâêîâ ôðåéìîâ ìåíüøå.

    - - -

    Ìåæêàíàëüíàÿ äåêîððåëÿöèÿ

    - -

    Åñëè íà âõîä ïîñòóïàþò ñòåðåî àóäèîäàííûå, îíè ìîãóò ïðîéòè ÷åðåç ñòàäèþ ìåæêàíàëüíîé äåêîððåëÿöèè. Ïðàâûé è ëåâûé êàíàë ïðåîáðàçóþòñÿ ê ñðåäíåìó è ðàçíîñòíîìó ïî ôîðìóëàì: ñðåäíèé = (ëåâûé + ïðàâûé)/2, ðàçíîñòíûé = ëåâûé - ïðàâûé.  îòëè÷èå îò joint stereo ýòîò ïðîöåññ íå ïðèâîäèò ê ïîòåðÿì. Äëÿ äàííûõ ñ àóäèî êîìïàêò-äèñêîâ ýòî îáû÷íî ïðèâîäèò ê çíà÷èòåëüíîìó óâåëè÷åíèþ óðîâíÿ ñæàòèÿ. Äëÿ âêëþ÷åíèÿ èñïîëüçîâàíèÿ ýòîãî ìåòîäà êîäèðîâàíèÿ flac èìååò äâå îïöèè: -m âñåãäà äåëàåò ðàçíîñòíóþ è íåçàâèñèìóþ âåðñèþ áëîêà è âûáèðàåò íàèìåíüøèé ôðåéì è -M, êîòîðàÿ àäàïòèâíî âûáèðàåò ñõåìó ñæàòèÿ.

    - - -

    Ìîäåëèðîâàíèå

    - -

    Íà ñëåäóþùåì ýòàïå åíêîäåð ïûòàåòñÿ àïïðîêñèìèðîâàòü ñèãíàë òàêîé ôóíêöèåé, ÷òîáû ïîëó÷åííûé ïîñëå åå âû÷èòàíèÿ èç îðèãèíàëà ðåçóëüòàò (íàçûâàåìûé ðàçíîñòüþ, îñòàòêîì, îøèáêîé) ìîæíî áûëî çàêîäèðîâàòü ìèíèìàëüíûì êîëè÷åñòâîì áèòîâ. Ïàðàìåòðû ôóíêöèé òîæå äîëæíû çàïèñûâàòüñÿ, ïîýòîìó îíè íå äîëæíû çàíèìàòü ìíîãî ìåñòà. FLAC èñïîëüçóåò äâà ìåòîäà ôîðìèðîâàíèÿ àïïðîêñèìàöèé: 1) ïîäãîíêà ïðîñòîãî ïîëèíîìà ê ñèãíàëó è 2) îáùåå êîäèðîâàíèå ñ ëèíåéíûìè ïðåäèêòîðàìè (LPC).

    - -

    Âî-ïåðâûõ, ïîñòîÿííîå ïîëèíîìèàëüíîå ïðåäñêàçàíèå (-l 0) ðàáîòàåò çíà÷èòåëüíî áûñòðåå, íî ìåíåå òî÷íî, ÷åì LPC. ×åì âûøå ïîðÿäîê LPC, òåì ìåäëåííåå, íî ëó÷øå áóäåò ìîäåëü. Îäíàêî ñ óâåëè÷åíèåì ïîðÿäêà âûèãðûø áóäåò âñå ìåíåå çíà÷èòåëüíûì.  íåêîòîðîé òî÷êå (îáû÷íî îêîëî 9) ïðîöåäóðà åíêîäåðà, îïðåäåëÿþùàÿ íàèëó÷øèé ïîðÿäîê, íà÷èíàåò îøèáàòüñÿ è ðàçìåð ïîëó÷àåìûõ ôðåéìîâ âîçðàñòàåò. ×òîáû ïðåîäîëåòü ýòî, ìîæíî èñïîëüçîâàòü ïîëíûé ïåðåáîð (îïöèÿ -e), ÷òî ïðèâåäåò ê çíà÷èòåëüíîìó óâåëè÷åíèþ âðåìåíè êîäèðîâàíèÿ.

    - -

    Âî-âòîðûõ, ïàðàìåòðû äëÿ ïîñòîÿííûõ ïðåäèêòîðîâ ìîãóò áûòü îïèñàíû òðåìÿ áèòàìè, à ïàðàìåòðû äëÿ ìîäåëè LPC çàâèñÿò îò êîëè÷åñòâà áèò íà ñýìïë è ïîðÿäêà LPC. Ýòî çíà÷èò, ÷òî ðàçìåð çàãîëîâêà ôðåéìà çàâèñèò îò âûáðàííîãî ìåòîäà è ïîðÿäêà è ìîæåò ïîâëèÿòü íà îïòèìàëüíûé ðàçìåð áëîêà.

    - - -

    Îñòàòî÷íîå êîäèðîâàíèå

    - -

    Êîãäà ìîäåëü ïîäîáðàíà, åíêîäåð âû÷èòàåò ïðèáëèæåíèå èç îðèãèíàëà, ÷òîáû ïîëó÷èòü îñòàòî÷íûé (îøèáî÷íûé) ñèãíàë, êîòîðûé çàòåì êîäèðóåòñÿ áåç ïîòåðü. Äëÿ ýòîãî èñïîëüçóåòñÿ òî îáñòîÿòåëüñòâî, ÷òî ðàçíîñòíûé ñèãíàë îáû÷íî èìååò ðàñïðåäåëåíèå Ëàïëàñà è åñòü íàáîð ñïåöèàëüíûé êîäîâ Õàôôìàíà, íàçûâàåìûå êîäàìè Ðàéñà, ïîçâîëÿþùèå ýôôåêòèâíî è áûñòðî êîäèðîâàòü ýòè ñèãíàëû áåç èñïîëüçîâàíèÿ ñëîâàðÿ.

    - -

    Êîäèðîâàíèå Ðàéñà ñîñòîèò èç íàõîæäåíèÿ îäíîãî ïàðàìåòðà, îòâå÷àþùåãî ðàñïðåäåëåíèþ ñèãíàëà, à çàòåì èñïîëüçîâàíèÿ åãî äëÿ ñîñòàâëåíèÿ êîäîâ. Ïðè èçìåíåíèè ðàñïðåäåëåíèÿ ìåíÿåòñÿ è îïòèìàëüíûé ïàðàìåòð, ïîýòîìó èìååòñÿ ìåòîä ïîçâîëÿþùèé ïåðåñ÷èòûâàòü åãî ïî íåîáõîäèìîñòè. Îñòàòîê ìîæåò áûòü ðàçáèò íà êîíòåêñòû èëè ðàçäåëû, ó êàæäîãî èç êîòîðûõ áóäåò ñâîé ïàðàìåòð Ðàéñà. flac ïîçâîëÿåò óêàçàòü, êàê íóæíî ïðîèçâîäèòü ðàçáèåíèå, ñ ïîìîùüþ îïöèè -r. Îñòàòîê ìîæåò áûòü ðàçáèò íà 2^n ðàçäåëà, åñëè èñïîëüçîâàòü -r n,n. Ïàðàìåòð n íàçûâàåòñÿ ïîðÿäêîì ðàçäåëà. Òàêæå åíêîäåð ìîæåò èñêàòü â ïðåäåëàõ îò m äî n ïîðÿäêà, âûáèðàÿ ëó÷øèé âàðèàíò, åñëè óêàçàòü -r m,n. Îáû÷íî âûáîð n íå âëèÿåò íà ñêîðîñòü êîäèðîâàíèÿ. Îò ðàçíèöû ìåæäó m è n ñèëüíî çàâèñèò âðåìÿ ðàáîòû, ÷åì îíà áîëüøå, òåì áîëüøå âðåìåíè áóäåò çàòðà÷èâàòüñÿ íà ïîèñê ëó÷øåãî ïîðÿäêà. Âûáîð ðàçìåðà áëîêà òàêæå âëèÿåò íà îïòèìàëüíûé ïîðÿäîê ðàçäåëà.

    - - -

    Ñîñòàâëåíèå ôðåéìîâ

    - -

    Àóäèîôðåéìó ïðåäøåñòâóåò çàãîëîâîê, êîòîðûé íà÷èíàåòñÿ ñ êîäà ñèíõðîíèçàöèè è ñîäåðæèò ìèíèìóì èíôîðìàöèè, íåîáõîäèìîé äåêîäåðó äëÿ âîñïðîèçâåäåíèÿ ïîòîêà. Ñþäà òàêæå çàïèñûâàåòñÿ íîìåð áëîêà èëè ñýìïëà è âîñüìèáèòíàÿ êîíòðîëüíàÿ ñóììà ñàìîãî çàãîëîâêà. Êîä ñèíõðîíèçàöèè, CRC çàãîëîâêà ôðåéìà è íîìåð áëîêà/ñýìïëà ïîçâîëÿþò îñóùåñòâëÿòü ïåðåñèíõðîíèçàöèþ è ïîèñê äàæå â îòñóòñòâèå òî÷åê ïîèñêà.  êîíöå ôðåéìà çàïèñûâàåòñÿ åãî øåñòíàäöàòèáèòíàÿ êîíòðîëüíàÿ ñóììà. Åñëè áàçîâûé äåêîäåð îáíàðóæèò îøèáêó, áóäåò ñãåíåðèðîâàí áëîê òèøèíû.

    - - -

    Ðàçíîå

    - -

    ×òîáû ïîääåðæèâàòü îñíîâíûå òèïû ìåòàäàííûõ, áàçîâûé äåêîäåð óìååò ïðîïóñêàòü òåãè ID3V1 è ID3V2, ïîýòîìó èõ ìîæíî ñâîáîäíî äîáàâëÿòü. Òåãè ID3V2 äîëæíû ðàñïîëàãàòüñÿ ïåðåä ìàðêåðîì "fLaC", à òåãè ID3V1 - â êîíöå ôàéëà.

    - -

    Ó flac åñòü îïöèÿ (-V) äëÿ ïðîâåðêè âûõîäíûõ äàííûõ ïðè êîäèðîâàíèè.  ýòîì ñëó÷àå äåêîäåð ðàáîòàåò îäíîâðåìåííî ñ åíêîäåðîì è åãî âûõîä ñðàâíèâàåòñÿ ñ îðèãèíàëüíûì ââîäîì. Åñëè áóäåò íàéäåíî îòëè÷èå, flac çàêîí÷èò ðàáîòó ñ ñîîáùåíèåì îá îøèáêå.

    - - - -

    flac

    - -

    flac - ýòî êîäåê, ðàáîòàþùèé èç êîìàíäíîé ñòðîêè. Âõîäîì äëÿ åíêîäåðà è âûõîäîì äëÿ äåêîäåðà äîëæåí áûòü ëèáî äàííûå â ôîðìàòå RIFF WAVE, ëèáî ïîòîê ñýìïëîâ áåç çàãîëîâêà. flac èñïîëüçóåò òîëüêî ëèíåéíûå PCM ñýìïëû (äðóãèìè ñëîâàìè, A-LAW, uLAW, è ò.ï. íå ïîääåðæèâàþòñÿ). Ñëåäóþùèì îãðàíè÷åíèåì ÿâëÿåòñÿ òî, ÷òî âî êîäèðóåìîì ôàéëå ñýìïëû äîëæíû áûòü 8, 16 èëè 24-áèòíûìè. Ýòî íå îãðàíè÷åíèå ôîðìàòà, ïðîñòî òàê ðàáîòàþò áàçîâûé åíêîäåð è äåêîäåð.

    - -

    flac ïðåäïîëàãàåò, ÷òî ôàéëû RIFF WAVE èìåþò ñóôôèêñ ".wav"; ýòî óìîë÷àíèå ìîæåò áûòü ïåðåîïðåäåëåíî ñïåöèàëüíûì êëþ÷îì. Äëÿ äàííûõ, ïîñòóïàþùèõ èç ïîòîêà, flac ïûòàåòñÿ îïðåäåëèòü òèï, ïðîñìàòðèâàÿ íà÷àëî ôàéëà â ïîèñêå çàãîëîâêà.  îñòàëüíûõ ñëó÷àÿõ flac íå äåëàåò ïðåäïîëîæåíèé î ñóôôèêñàõ, õîòÿ ïî ñîãëàøåíèþ ôàéëû FLAC èìåþò ñóôôèêñ ".flac" (èëè ".fla" íà ñòàðûõ ôàéëîâûõ ñèñòåìàõ òàêèõ êàê FAT-16).

    - -

    Ïåðåä ïîëíûì îïèñàíèåì êëþ÷åé, èñïîëüçóåìûõ flac, îáðàòèì âíèìàíèå íà òî ÷òî: 1) ïî óìîë÷àíèþ flac ñæèìàåò ôàéëû (äëÿ äåêîäèðîâàíèÿ èñïîëüçóéòå êëþ÷ -d); 2) êëþ÷è -0..-9, óïðàâëÿþùèå óðîâíåì ñæàòèÿ, ÿâëÿþòñÿ ñèíîíèìàìè äëÿ ðàçëè÷íûõ ãðóïï íàñòðîåê êîäèðîâàíèÿ. Òîãî æå ýôôåêòà ìîæíî äîáèòüñÿ, èñïîëüçóÿ íàáîðû ñîîòâåòñòâóþùèõ êëþ÷åé; 3) ìîäåëü îáðàáîòêè âõîäíûõ è âûõîäíûõ ôàéëîâ ó flac àíàëîãè÷íà gzip.

    - -

    flac âûçûâàåòñÿ îäíèì èç ÷åòûðåõ ñïîñîáîâ:

    - -

    - -

     ëþáîì ñëó÷àå, åñëè âõîäíîé ôàéë íå óêàçàí, ïîäðàçóìåâàåòñÿ ñòàíäàðòíûé ââîä. Åñëè óêàçàí òîëüêî îäèí âõîäíîé ôàéë, òî ýòî ìîæåò áûòü "-" äëÿ ñòàíäàðòíîãî ââîäà (stdin). Êîãäà èñïîëüçóåòñÿ ñòàíäàðòíûé ââîä, flac ïèøåò â ñòàíäàðòíûé âûâîä (stdout).  îñòàëüíûõ ñëó÷àÿõ flac âûïîëíèò óêàçàííûå äåéñòâèÿ äëÿ êàæäîãî âõîäíîãî ôàéëà è çàïèøåò ðåçóëüòàòû â ôàéëû ñ àíàëîãè÷íûìè èìåíàìè (ïðè êîäèðîâàíèè ñóôôèêñ áóäåò çàìåíåí íà ".flac" èëè, åñëè åãî íå áûëî, áóäåò äîáàâëåí; ïðè äåêîäèðîâàíèè ñóôôèêñû òàêæå èçìåíÿþòñÿ â ñîîòâåòñòâèè ñ òèïîì âûõîäíûõ äàííûõ.) Îðèãèíàë óäàëÿåòñÿ, òîëüêî åñëè óêàçàí êëþ÷ --delete-input-file.

    - -

    Ñóùåñòâóþò îñîáûå ôîðìû âûçîâà ïðîöåäóð êîäèðîâàíèÿ/äåêîäèðîâàíèÿ èç ñòàíäàíäàðòíîãî ââîäà â ôàéë.

    - -

    - - -

    êîòîðûå ëó÷øå ÷åì

    - - -

    - -

    òàê êàê â ïåðâîì ñëó÷àå ñîõðàíÿåòñÿ âîçìîæíîñòü ïðîèçâåñòè ïðè íåîáõîäèìîñòè ïîñëåäóþùóþ îáðàáîòêó ôàéëà, íàïðèìåð äëÿ çàïèñè çàãîëîâêîâ RIFF WAVE èëè STREAMINFO.

    - -

    Äàííûå â ñòàíäàðòíûé âûâîä ìîæíî ïåðåíàïðàâèòü ñ ïîìîùüþ êëþ÷à -c.

    - -

    Îïöèè êîäèðîâàíèÿ âëèÿþò íà ñêîðîñòü ðàáîòû è óðîâåíü ñæàòèÿ. Íàñòðîéêè ôîðìàòà îïðåäåëÿþò ðàñïîëîæåíèå ñýìïëîâ, åñëè íà âõîä ïîñòóïàåò ôàéë áåç çàãîëîâêà. Åñëè ó ôàéëà åñòü çàãîëîâîê RIFF WAVE, òî íàñòîéêè ôîðìàòà íå íóæíû, òàê êàê îíè áåðóòñÿ èç ôàéëà.

    - -

     ðåæèìå òåñòèðîâàíèÿ flac ðàáîòàåò êàê è ïðè äåêîäèðîâàíèè, òîëüêî âûõîäíîé ôàéë íå çàïèñûâàåòñÿ. Ðåæèìû äåêîäèðîâàíèÿ è òåñòèðîâàíèÿ ïðîâåðÿþò ïîòîê íà íàëè÷èå îøèáîê, à òàêæå ñðàâíèâàþò ïîäïèñü MD5 äåêîäèðîâàííîãî ïîòîêà ñ ñîõðàíåííîé ïîäïèñüþ, äàæå åñëè ôîðìàò ïîòîêà ïðàâèëüíûé.

    - -

    Îñíîâíûå êëþ÷è

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -dÄåêîäèðîâàíèå (ïî óìîë÷àíèþ flac êîäèðóåò). flac çàâåðøèò ðàáîòó ñ êîäîì âûõîäà 1, åñëè áóäåò âñòðå÷åíà îøèáêà èëè êîíòðîëüíàÿ ñóììà MD5 äåêîäèðîâàííîãî ïîòîêà íå ñîâïàäåò ñ ñîõðàíåííîé. Åñëè îøèáîê íå áóäåò, êîä âîçâðàòà áóäåò ðàâåí 0.
    -tÒåñòèðîâàíèå (òî æå ñàìîå, ÷òî è äåêîäèðîâàíèå, òîëüêî âûõîä íå çàïèñûâàåòñÿ â ôàéë). Êîäû âîçâðàòà òå æå.
    -aÀíàëèç (òî æå ñàìîå, ÷òî è äåêîäèðîâàíèå, òîëüêî âûõîäîì ÿâëÿåòñÿ ôàéë ñòàòèñòèêè). Êîäû âîçâðàòà òå æå. Ðåæèì ïðåäíàçíà÷åí â îñíîâíîì äëÿ ðàçðàáîò÷èêîâ.  âûõîäíîé òåêñòîâûé ôàéë çàïèñûâàåòñÿ èíôîðìàöèÿ î êàæäîì ôðåéìå è ïîäôðåéìå.
    -cÍàïðàâèòü ðåçóëüòàò â ñòàíäàðòíûé âûâîä (stdout).
    -sÍå ïîêàçûâàòü ñòàòèñòèêó ïðè êîäèðîâàíèè/äåêîäèðîâàíèè.
    -o ôàéëßâíî óêàçàòü èìÿ âûõîäíîãî ôàéëà, ïî óìîë÷àíèþ flac ïðîñòî çàìåíÿåò ñóôôèêñ.
    --output-prefix ñòðîêàÄîáàâëÿåò ïðåôèêñ ê êàæäîìó èìåíè âûõîäíîìó ôàéëó. Ìîæåò èìñïîëüçîâàòüñÿ äëÿ êîäèðîâàíèÿ/äåêîäèðîâàíèÿ ôàéëîâ â äðóãîé êàòàëîã. Åñëè óêàçàííàÿ ñòðîêà ÿâëÿåòñÿ ÷àñòüþ ïóòè, óáåäèòåñü, ÷òî îíà çàêàí÷èâàåòñÿ ñëýøåì '/'.
    --delete-input-fileÏîñëå óñïåøíîãî îêîí÷àíèÿ êîäèðîâàíèÿ/äåêîäèðîâàíèÿ âõîäíîé ôàéë áóäåò óäàëåí. Åñëè ïðîèçîéäåò îøèáêà, èñõîäíûé ôàéë îñòàíåòñÿ.
    --skip #Ïðîïóñòèòü ïåðâûå # ñýìïëîâ âõîäíîãî ôàéëà. Ðàáîòàåò äëÿ êîäèðîâàíèÿ è äåêîäèðîâàíèÿ, íî íå äëÿ òåñòèðîâàíèÿ.
    - - -

    Îïöèè àíàëèçà

    - - - - - - - -
    --a-rtextÄîáàâëÿåò â ôàéë îñòàòî÷íûé ñèãíàë. Ðåçóëüòèðóþùèé ôàéë ïîëó÷àåòñÿ î÷åíü áîëüøèì.
    --a-rgpÑîçäàåò ôàéëû-äèàãðàììû äëÿ êàæäîãî ïîäôðåéìà.  êàæäîì ôàéëå áóäåò îñòàòî÷íîå ðàñïðåäåëåíèå äëÿ ïîäôðåéìà. Áóäåò ñîçäàíî î÷åíü ìíîãî ôàéëîâ.
    - - -

    Îïöèè êîäèðîâàíèÿ

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    --laxÏîçâîëÿåò åíêîäåðó ñîçäàâàòü ôàéëû, îòâå÷àþùèå ïîäìíîæåñòâó ôîðìàòà FLAC.  ðåçóëüòàòå ðàáîòû áóäåò ïîëó÷àòüñÿ íåïîòîêîâûé ôàéë, ïîýòîìó ýòîò êëþ÷ ñëåäóåò èñïîëüçîâàòü òîëüêî äëÿ àðõèâèðîâàíèÿ. Äåêîäåð áóäåò ïîääåðæèâàòü âîñïðîèçâåäåíèå è ïîèñê â òàêèõ ôàéëàõ.
    --sector-align -

    Ïðè êîäèðîâàíèè íåñêîëüêèõ WAVE ôàéëîâ ôîðìàòà CD-Audio âûðàâíèâàòü èõ íà ãðàíèöó ñåêòîðà. Ýòà îïöèÿ ïðèìåíèìà òîëüêî äëÿ êîäèðîâàíèÿ íåñêîëüêèõ WAVE ôàéëîâ, êàæäûé èç êîòîðûõ äîëæåí èìåòü ÷àñòîòó äèñêðåòèçàöèè 44.1 êÃö è äâà êàíàëà. Åñëè áóäåò óêàçàíà ýòà îïöèÿ åíêîäåð âûðîâíÿåò ïîòîêè .flac òàê, -÷òî èõ äëèíû áóäóò êðàòíû ðàçìåðó ñåêòîðà CD-Audio (ðàâíû 1/75 ñåêóíäàì èëè 588 ñýìïëàì). Ýòî îñóùåñòâëÿåòñÿ ïåðåíîñîì ÷àñòè ñåêòîðà â êîíöå êàæäîãî WAVE ôàéëà â íà÷àëî ñëåäóþùåãî. Ïîñëåäíèé ïîòîê áóäåò äîïîëíåí äî ãðàíèöû âûðàâíèâàíèÿ íóëÿìè.

    -

    Èñïîëüçîâàíèå ýòîé îïöèè íå ïðèâåäåò íè ê ÷åìó, åñëè ôàéëû óæå âûðîâíåíû (íàïðèìåð, åñëè ïðàâèëüíî ñêîïèðîâàíû ñ àóäèî-CD). flac ìîæåò âûðîâíÿòü òîëüêî íåñêîëüêî ôàéëîâ çà îäèí âûçîâ.

    - -

    ÂÍÈÌÀÍÈÅ: Ïîðÿäîê ôàéëîâ èìååò çíà÷åíèå! Åñëè âû ñäåëàåòå ñëåäóþùèé âûçîâ 'flac --sector-align *.wav', êîìàíäíûé ïðîöåññîð ìîæåò îáðàáîòàòü øàáëîí íå â òîì ïîðÿäêå, â êàêîì âû ðàññ÷èòûâàåòå. Ïîýòîìó ëó÷øå âñåãî âûçûâàòü ïðîãðàììó, ÿâíî óêàçàâ ñïèñîê ôàéëîâ, íàïðèìåð, 'flac --sector-align 8.wav 9.wav 10.wav'. -

    -S {#|X|#x}Äîáàâëÿåò òî÷êè äëÿ ïîèñêà â òàáëèöó SEEKTABLE. - -
      -
    • : ñîçäàåòñÿ òî÷êà ïîèñêà äëÿ ñýìïëà ñ îïðåäåëåííûì íîìåðîì.
    • - -
    • : ðåçåðâèðóåìûå òî÷êè (âñåãäà ïîìåùàþòñÿ â êîíöå SEEKTABLE).
    • - -
    • #x : # ðàâíîìåðíî ðàñïðåäåëåííûõ òî÷åê ïîèñêà, ïåðâàÿ ñîîòâåòñòâóåò 0 ñýìïëó.
    • -
    - -

    Îïöèþ -S ìîæíî èñïîëüçîâàòü íåñêîëüêî ðàç.  ðåçóëüòàòå ïîëó÷èòñÿ îáúåäèíåííàÿ òàáëèöà, â êîòîðîé áóäóò ïðèñóòñòâîâàòü òîëüêî óíèêàëüíûå çíà÷åíèÿ.
    -Ïî óìîë÷àíèþ flac èñïîëüçóåò -S 100x. Åñëè òàáëèöà ïîèñêà íå íóæíà, óêàæèòå -S-.
    -ÏÐÈÌÅ×ÀÍÈÅ: -S #x íå áóäåò ðàáîòàòü, åñëè åíêîäåð íå ñìîæåò îïðåäåëèòü ðàçìåð âõîäíîãî ôàéëà â íà÷àëå ðàáîòû.
    -ÏÐÈÌÅ×ÀÍÈÅ: åñëè # áîëüøå èëè ðàâåí êîëè÷åñòâó ñýìïëîâ âî âõîäíîì ôàéëå, òî òî÷êè äîáàâëåíû íå áóäóò, åñëè ðàçìåð ìîæíî îïðåäåëèòü äî êîäèðîâàíèÿ, â ïðîòèâíîì ñëó÷àå áóäóò çàïèñàíû ðåçåðâèðóåìûå òî÷êè.

    -
    -P #Eíêîäåð çàïèøåò áëîê ìåòàäàííûõ PADDING, óêàçàííîãî ðàçìåðà (â áàéòàõ), ïîñëå áëîêà STREAMINFO. -P 0 óêàçûâàåò, ÷òî áëîê PADDING íå íóæåí (çíà÷åíèå ïî óìîë÷àíèþ). Ýòîò áëîê ïîëåçåí, åñëè âû ñîáèðàåòåñü äîáàâèòü òýã â ôàéë ïîçæå. Âìåñòî òîãî, ÷òîáû ïåðåïèñûâàòü ôàéë ïîëíîñòüþ, ìîæíî áóäåò çàïèñàòü èíôîðìàöèþ âìåñòî áëîêà PADDING.
    -b #Óñòàíàâëèâàåò ðàçìåð áëîêà â ñýìïëàõ. Ïî óìîë÷àíèþ 1152 äëÿ -l 0, èíà÷å 4608. Ñòàíäàðòíûå ïîòîêè äîëæíû èñïîëüçîâàòü îäíî èç óêàçàíûõ çíà÷åíèé: 192/576/1152/2304/4608/256/512/1024/2048/4096/8192/16384/32768. Ñåé÷àñ åíêîäåð èñïîëüçóåò ïîñòîÿííûé ðàçìåð áëîêà äëÿ âñåãî ôàéëà.
    -mÂêëþ÷àåò ðàçíîñòíîå êîäèðîâàíèå (òîëüêî äëÿ ñòåðåî ïîòîêîâ). Îáû÷íî óâåëè÷èâàåò óðîâåíü ñæàòèÿ íà íåñêîëüêî ïðîöåíòîâ. Äëÿ êàæäîãî áëîêà ñîçäàåòñÿ óñðåäíåííàÿ è ñòåðåî âåðñèÿ áëîêà, ñîõðàíÿåòñÿ áëîê ìåíüøåãî ðàçìåðà. Ñåé÷àñ ðàçíîñòíîå êîäèðîâàíèå äîñòóïíî äëÿ ôàéëîâ, ãäå ñýìïë èìååò ðàçìåð íå áîëüøå 16 áèò.
    -MÂêëþ÷àåò ñâîáîäíîå ðàçíîñòíîå êîäèðîâàíèå (òîëüêî äëÿ ñòåðåî ïîòîêîâ). Ðàáîòàåò àíàëîãè÷íî -m, îäíàêî åíêîäåð ïåðåêëþ÷àåòñÿ ìåæäó íåçàâèñèìûì è óñðåäíÿþùèì êîäèðîâàíèåì àäàïòèâíî. Ìåòîä ðàáîòàåò áûñòðåå, íî óðîâåíü ñæàòèÿ ìåíüøå, òàê êàê -m ïðîèçâîäèò ïîëíûé ïåðåáîð âàðèàíòîâ.
    -0..-9Áûñòðåéøåå ñæàòèå ... ìàêñèìàëüíîå ñæàòèå. Ïî óìîë÷àíèþ -5.
    -0Àíàëîãè÷íî -l 0 -b 1152 -r 2,2.
    -1Àíàëîãè÷íî -l 0 -b 1152 -r 2,2 -M.
    -2Àíàëîãè÷íî -l 0 -b 1152 -r 3 -m.
    -3Àíàëîãè÷íî -l 6 -b 4608 -r 3,3
    -4Àíàëîãè÷íî -l 8 -b 4608 -r 3,3 -M.
    -5Àíàëîãè÷íî -l 8 -b 4608 -r 3,3 -m.
    -6Àíàëîãè÷íî -l 8 -b 4608 -r 4 -m.
    -7Àíàëîãè÷íî -l 8 -b 4608 -r 6 -m -e.
    -8Àíàëîãè÷íî -l 12 -b 4608 -r 6 -m -e.
    -9Àíàëîãè÷íî -l 32 -b 4608 -r 16 -m -e -E -p. Ðàáîòàåò î÷åíü ìåäëåííî, íî äîñòèãàåòñÿ ìàêñèìàëüíûé óðîâåíü ñæàòèÿ äëÿ äàííîãî ðàçìåðà áëîêà.
    -eÏîëíûé ïîèñê ìîäåëè (ðàáîòàåò ìåäëåííî!). Îáû÷íî åíêîäåð îïðåäåëÿåò ëó÷øóþ ìîäåëü è êîäèðóåò äàëåå îïèðàÿñü íà íåå.  äàííîì ðåæèìå åíêîäåð áóäåò ñîçäàâàòü ïîäôðåéìû âñåõ ïîðÿäêîâ è èñïîëüçîâàòü íàèìåíüøèé. Åñëè ìàêñèìàëüíîå çíà÷åíèå ïîðÿäêà LPC âåëèêî, âðåìÿ êîäèðîâàíèÿ ñóùåñòâåííî âîçðàñòåò. Âûèãðûø îáû÷íî ñîñòàâëÿåò îêîëî 0.5%.
    -EÈñïîëüçîâàòü óïðàâëÿþùèå êîäû â êîäåðå ýíòðîïèè. Ýòà îïöèÿ ïîçâîëÿåò çàïèñûâàòü íåçàêîäèðîâàííîå ïðåäñòàâëåíèå îñòàòêà â ðàçäåëå, åñëè åãî ðàçìåð ìåíüøå. Ïðè ýòîì âðåìÿ ðàáîòû óâåëè÷èâàåòñÿ, à óðîâåíü ñæàòèÿ îáû÷íî óëó÷øàåòñÿ ïðèìåðíî íà 1%.
    -l #Îïðåäåëÿåò ìàêñèìàëüíûé ïîðÿäîê LPC (êîýôôèöèåíòîâ ëèíåéíîãî ïðîãíîçèðîâàíèÿ). ×èñëî äîëæíî áûòü ìåíüøå èëè ðàâíî 32. Åñëè çíà÷åíèå ðàâíî 0, åíêîäåð áóäåò èñïîëüçîâàòü âìåñòî îáùåãî ëèíåéíîãî ïðîãíîçèðîâàíèÿ ïîñòîÿííûå êîýôôèöèåíòû. Ýòîò ìåòîä óâåëè÷èâàåò ñêîðîñòü ðàáîòû, íî ôàéëû ïîëó÷àþòñÿ íà 5-10% áîëüøå.
    -q #Îïðåäåëÿåò òî÷íîñòü äèñêðåòíûõ êîýôôèöèåíòîâ ëèíåéíîãî ïðîãíîçèðîâàíèÿ â áèòàõ. Ïî óìîë÷àíèþ -q 0, ÷òî ïîçâîëÿåò åíêîäåðó ïðèíèìàòü ðåøåíèå â çàâèñèìîñòè îò ñèãíàëà. Ëó÷øå îñòàâëÿòü çíà÷åíèå ïî óìîë÷àíèþ.
    -pÏðîèçâîäèòü îïòèìèçàöèþ LPC. Ïåðåîïðåäåëÿåò ëþáóþ îïöèþ -q. Ñèëüíî çàìåäëÿåò ðàáîòó, è óìåíüøàåò ðàçìåð ôàéëà íà äîëþ ïðîöåíòà. -q íå ðàáîòàåò, êîãäà èñïîëüçóåòñÿ -l 0.
    -r [#,]#Óñòàíîâèòü [min,]max ïîðÿäîê ðàçäåëà. Åñëè ìèíèìàëüíîå çíà÷åíèå íå óêàçàíî, òî îíî óñòàíàâëèâàåòñÿ ðàâíûì 0. Ïî óìîë÷àíèþ åíêîäåð îäèí ïàðàìåòð Ðàéñà äëÿ âñåãî îñòàòêà ïîäôðåéìà. Åñëè èñïîëüçîâàòü ýòó îïöèþ, îñòàòîê áóäåò ðàçäåëÿòüñÿ íà 2^min# ... 2^max ÷àñòåé, äëÿ êàæäîé èç êîòîðûõ áóäåò îïðåäåëåí ñîáñòâåííûé ïàðàìåòð Ðàéñà. Ñ óâåëè÷åíèåì ïàðàìåòðà max âûèãðûø áóäåò âñå ìåíüøå. Íàèáîëåå îïòèìàëüíûé âàðèàíò äîñòèãàåòñÿ ïðè èñïîëüçîâàíèè -r 2,2 (è áîëüøèõ çíà÷åíèé äëÿ áîëüøèõ ðàçìåðîâ áëîêîâ). Ïðè ýòîì ñæàòèå îáû÷íî óâåëè÷èâàåòñÿ íà 1.5%. Âûáîð îïòèìàëüíîãî çíà÷åíèÿ ìîæíî ïðîèçâåñòè ïî ôîðìóëå ðàçìåð_áëîêà/(2^n)=128. Ìàêñèìàëüíûé óðîâåíü ñæàòèÿ äîñòèãàåòñÿ ïðè èñïîëüçîâàíèè -r 0,16.
    -R #Óñòàíîâèòü ïðåäåëû ïîèñêà ïàðàìåòðà Ðàéñà. Ïî óìîë÷àíèþ 0. Êîäåð îñòàòêîâ áóäåò èñêàòü íàèëó÷øèé ïàðàìåòð Ðàéñà â óêàçàííîì ïðåäåëå äëÿ êàæäîãî ðàçäåëà îñòàòêîâ. Èñïîëüçîâàíèå ýòîé îïöèè íå äàåò áîëüøîãî âûèãðûøà, íî ñèëüíî çàìåäëÿåò ðàáîòó.  ðåçóëüòàòå, îïöèè -0 ... -9 íå èñïîëüçóþò åå.
    -VÏðîâåðÿòü ïðîöåññ ñæàòèÿ.  äàííîì ñëó÷àå flac ñîçäàåò ïàðàëëåëüíûé äåêîäåð, ðàñêîäèðóþùèé âûõîä åíêîäåðà è ñðàâíèâàåò ðåçóëüòàò ñ îðèãèíàëîì. Åñëè áóäåò íàéäåíî íåñîîòâåòñòâèå, êîäèðîâàíèå ïðåêðàòèòñÿ. Âðåìÿ ðàáîòû ñ ýòîé îïöèåé óâåëè÷èâàåòñÿ, îäíàêî, ïðè ýòîì ãàðàíòèðóåòñÿ, ÷òî ôàéë áóäåò ïðàâèëüíî äåêîäèðîâàí.
     -S-, -m-, -V-, -e-, -E-, -p-, --lax-, --delete-input-file-, --sector-align èñïîëüçóþòñÿ äëÿ îòêëþ÷åíèÿ ñîîòâåòñòâóþùèõ îïöèé.
    - - -

    Íàñòðîéêè ôîðìàòà

    - - - - - - - - - - - - - - - - - - - - - - -
    -fb | -flÎïðåäåëÿåò ïîðÿäîê áàéòîâ â ôàéëå áåç çàãîëîâêà big-endian | little-endian.
    -fc nÎïðåäåëÿåò êîëè÷åñòâî êàíàëîâ â ôàéëå áåç çàãîëîâêà.
    -fp nÎïðåäåëÿåò êîëè÷åñòâî áèò íà ñýìïë â ôàéëå áåç çàãîëîâêà.
    -fs nÎïðåäåëÿåò êîëè÷åñòâî ñýìïëîâ â ñåêóíäó â ôàéëå áåç çàãîëîâêà.
    -fuÓêàçûâàåò, ÷òî ñýìïëû â ôàéëå áåç çàãîëîâêà áåççíàêîâûå (ïî óìîë÷àíèþ çíàêîâûå).
    -frÂîñïðèíèìàòü âõîäíîé (èëè âûõîäíîé ïðè äåêîäèðîâàíèè) ôàéë êàê raw ïîòîê ñýìïëîâ âíå çàâèñèìîñòè îò ñóôôèêñà.
    -fwÂîñïðèíèìàòü âõîäíîé (èëè âûõîäíîé ïðè äåêîäèðîâàíèè) ôàéë êàê RIFF WAVE âíå çàâèñèìîñòè îò ñóôôèêñà.
    - - - -

    metaflac

    - -

    metaflac - ýòî ðåäàêòîð ìåòàäàííûõ, ðàáîòàþùèé èç êîìàíäíîé ñòðîêè. Ñåé÷àñ îí òîëüêî âûâîäèò ñîäåðæèìîå áëîêîâ ìåòàäàííûõ âî .flac ôàéëå, íî ñêîðî ñ åãî ïîìîùüþ ìîæíî áóäåò âñòàâëÿòü, óäàëÿòü è ðåäàêòèðîâàòü áëîêè.

    - -

    Cåé÷àñ metaflac âûçûâàåòñÿ òîëüêî îäíèì ñïîñîáîì:

    - -

    metaflac [-v] âõîäíîé_ôàéë

    - -

    Âõîäíûì_ôàéëîì ìîæåò áûòü "-" äëÿ ñòàíäàðòíîãî ââîäà (stdin). åñëè èñïîëüçîâàòü -v, áóäåò ïîëó÷åí áîëåå ïîäðîáíûé îò÷åò.

    - - -
    -

    Ïëàãèí äëÿ XMMS

    - -

    Äëÿ åãî óñòàíîâêè íåîáõîäèìî ñêîïèðîâàòü libxmms-flac.so â êàòàëîã, ãäå íàõîäÿòñÿ ïëàãèíû ââîäà XMMS (îáû÷íî /usr/lib/xmms/Input). Áîëüøå íè÷åãî íàñòðàèâàòü íå íàäî. Äëÿ âîñïðîèçâåäåíèÿ .flac ôàéëîâ ïåðåçàïóñòèòå XMMS.

    - - -
    -

    Ïëàãèí äëÿ Winamp

    - -

    Äëÿ åãî óñòàíîâêè íåîáõîäèìî ñêîïèðîâàòü in_flac.dll â êàòàëîã, ãäå íàõîäÿòñÿ ïëàãèíû ââîäà Winamp (îáû÷íî /Plugins). Áîëüøå íè÷åãî íàñòðàèâàòü íå íàäî. Äëÿ âîñïðîèçâåäåíèÿ .flac ôàéëîâ ïåðåçàïóñòèòå Winamp.

    - - -
    -

    libFLAC

    - -

    Áèáëèîòåêà libFLAC ÿâëÿåòñÿ ðåàëèçàöèåé íà C áàçîâîãî åíêîäåðà è äåêîäåðà. Èñïîëüçóÿ ýòó áèáëèîòåêó è íàïèñàâ íåìíîãî êîäà, ìîæíî äîáàâèòü ïîääåðæêó FLAC â ñâîþ ïðîãðàììó. Óñëîâèÿ ðàñïðîñòðàíåíèÿ - LGPL. Èñõîäíûå êîäû áèáëèîòåêè libFLAC, òàêæå êàê è êîíñîëüíîãî êîäåêà è ïëàãèíîâ äîñòóïíû, è ìîãóò ïîñëóæèòü õîðîøèì ïðèìåðîì äëÿ èñïîëüçîâàíèÿ.

    - -

    libFLAC òðåáóåò ñòàíäàðòíóþ è ìàòåìàòè÷åñêóþ áèáëèîòåêè äëÿ ÿçûêà C. Ïîòîêè íå èñïîëüçóþòñÿ, îäíàêî, òàê êàê libFLAC íå èñïîëüçóåò ãëîáàëüíûå ïåðåìåííûå, áèáëèîòåêà äîëæíà áûòü thread-safe.

    - -

    Èíòåðôåéñ libFLAC îïèñàí â ïóáëè÷íûõ çàãîëîâî÷íûõ ôàéëàõ â êàòàëîãå include/FLAC. Äëÿ èñïîëüçîâàíèÿ ñêîìïèëèðîâàííîé áèáëèîòåêè íóæíû òîëüêî ïóáëè÷íûå çàãîëîâêè. Îáðàòèòå âíèìàíèå íà òî, ÷òî êîä èç src/libFLAC/, âêëþ÷àÿ çàùèùåííûå çàãîëîâî÷íûå ôàéëû èç src/libFLAC/include/ íå íóæåí.

    - -

    Â îñíîâíîì èñïîëüçîâàíèå libFLAC ñîñòîèò â ñëåäóþùåì:

    - -
      -
    1. Ïðîãðàììà ñîçäàåò ýêçåìïëÿð åíêîäåðà èëè äåêîäåðà ñ ïîìîùüþ ôóíêöèé *_new().
    2. - -
    3. Ïðîãðàììà óñòàíàâëèâàåò ïàðàìåòðû ýêçåìïëÿðà è ïðåäîñòàâëÿåò åìó îáðàòíûå âûçîâû äëÿ ÷òåíèÿ, çàïèñè, ñîîáùåíèÿ îá îøèáêàõ è ðàáîòû ñ ìåòàäàííûìè ñ ïîìîùüþ ôóíêöèé *_set_*().
    4. - -
    5. Ïðîãðàììà èíèöèàëèçèðóåò ýêçåìïëÿð, ïðîâåðÿåò ïàðàìåòðû è ãîòîâèòñÿ ê êîäèðîâàíèþ/äåêîäèðîâàíèþ, èñïîëüçóÿ ôóíêöèè *_init().
    6. - -
    7. Ïðîãðàììà âûçûâàåò ôóíêöèè *_process_*() äëÿ êîäèðîâàíèÿ èëè äåêîäèðîâàíèÿ äàííûõ, êîòîðûå â ñâîþ î÷åðåäü äåëàþò îáðàòíûå âûçîâû.
    8. - -
    9. Ïðîãðàììà çàâåðøàåò ðàáîòó ýêçåìïëÿðà ôóíêöèåé *_finish(), êîòîðàÿ ñáðàñûâàåò áóôåðû ââîäà è âûâîäà.
    10. - -
    11. Ýêçåìïëÿð ìîæåò áûòü èñïîëüçîâàí ñíîâà ëèáî óäàëåí ôóíêöèåé *_delete().
    12. - -
    - -

    Äëÿ äåêîäèðîâàíèÿ libFLAC ïðåäîñòàâëÿåò äâà óðîâíÿ äîñòóïà. Íà íèæíåì óðîâíå íàõîäèòñÿ äåêîäåð ïîòîêîâ, à íà âåðõíåì - ôàéëîâ (ÿâëÿþùèéñÿ â ñâîþ î÷åðåäü îáîëî÷êîé äëÿ ïîòîêîâîãî äåêîäåðà). Èíòåðôåéñû îïèñàíû â ôàéëàõ stream_decoder.h è file_decoder.h ñîîòâåòñòâåííî. Ôàéëîâûé äåêîäåð ñàì îñóùåñòâëÿåò îáðàòíûå âûçîâû äëÿ ÷òåíèÿ è ïðåäîñòàâëÿåò ôóíêöèè ïîèñêà. Åíêîäåð ïîêà ÷òî ðåàëèçîâàí òîëüêî íà ïîòîêîâîì óðîâíå (stream_encoder.h).

    - -

    Ñòðóêòóðû è êîíñòàíòû, îòíîñÿùèåñÿ ê ôîðìàòó, îïðåäåëåíû â ôàéëå format.h.

    - - -

    ÄÅÊÎÄÅÐ ÏÎÒÎÊÎÂ

    - -

    Ñíà÷àëà îáñóäèì äåêîäåð ïîòîêîâ. Òèï åãî ýêçåìïëÿðà FLAC__StreamDecoder. Îáû÷íî â ïðîãðàììå ýêçåìïëÿð ñîçäàåòñÿ âûçîâîì FLAC__stream_decoder_new() è èíèöèàëèçèðóåòñÿ FLAC__stream_decoder_init(). Ïðîãðàììà òàêæå ìîæåò ïðåäîñòàâëÿòü óêàçàòåëü client_data íà FLAC__stream_decoder_init(), êîòîðûé áóäåò èñïîëüçîâàòüñÿ äëÿ îáðàòíûõ âûçîâîâ.

    - - - -

    Êîãäà äåêîäåð èíèöèàëèçèðîâàí, ïðîãðàììà ìîæåò âûçâàòü îäíó èç ñëåäóþùèõ ôóíêöèé äëÿ äåêîäèðîâàíèÿ:

    - - - -

    Êîãäà äåêîäåð çàêàí÷èâàåò ðàáîòó, ýêçåìïëÿð îáðàáàòûâàåòñÿ ôóíêöèåé FLAC__stream_decoder_finish(), êîòîðàÿ ïðîâåðÿåò ñîñòîÿíèå äåêîäåðà è îñâîáîæäàåò ïàìÿòü. Çàòåì ýêçåìïëÿð ìîæåò áûòü óäàëåí ôóíêöèåé FLAC__stream_decoder_delete() èëè èíèöèàëèçèðîâàí çàíîâî äëÿ äåêîäèðîâàíèÿ äðóãîãî ïîòîêà.

    - -

    Îáðàòèòå âíèìàíèå íà òî, ÷òî ïîòîêîâûé äåêîäåð íå èìååò ïðåäñòàâëåíèÿ î ïîçèöèè â ïîòîêå, îí òîëüêî ïðåîáðàçîâûâàåò äàííûå. ×òîáû îñóùåñòâëÿòü ïîèñê â ïîòîêå ôóíêöèè îáðàòíîãî âûçîâà ìîãóò òîëüêî ñáðàñûâàòü äàííûå äåêîäåðà ôóíêöèåé FLAC__stream_decoder_flush() è íà÷èíàòü ïîäàâàòü äàííûå ñ íîâîé ïîçèöèè ñ ïîìîùüþ îáðàòíîãî âûçîâà äëÿ ÷òåíèÿ. Äåêîäåð ôàéëîâ ïîñòóïàåò èìåííî òàê.

    - - -

    ÄÅÊÎÄÅÐ ÔÀÉËÎÂ

    - -

    Äåêîäåð ôàéëîâ - ýòî îáîëî÷êà äåêîäåðà ïîòîêîâ, ïðèçâàííàÿ óïðîñòèòü ïðîöåññ äåêîäèðîâàíèÿ ôàéëîâ. Òèï åãî ýêçåìïëÿðà - FLAC__FileDecoder. Îòëè÷èå îò ïîòîêîâîãî äåêîäåðà ñîñòîèò â òîì, ÷òî âìåñòî îáðàòíîãî âûçîâà äëÿ ÷òåíèÿ (êîòîðûé îáðàáàòûâàåò ñàì äåêîäåð) ïðè èíèöèàëèçàöèè óêàçûâàåòñÿ ïóòü ê ôàéëó. Îñòàëüíûå ôóíêöèè àíàëîãè÷íû ýêâèâàëåíòàì â äåêîäåðå ïîòîêîâ.

    - -

    Òàê êàê äåêîäåð ôàéëîâ ñàì óïðàâëÿåò âõîäíûìè äàííûìè, îí ìîæåò ïðåäîñòàâèòü è ïîèñê. Îí îñóùåñòâëÿåòñÿ ìåòîäîì FLAC__file_decoder_seek_absolute().  ëþáîé ìîìåíò ïîñëå èíèöèàëèçàöèè äåêîäåðà ôàéëîâ ïðîãðàììà ìîæåò âûçâàòü ýòó ôóíêöèþ äëÿ ïîèñêà ñýìïëà â ôàéëå. Âïîñëåäñòâèè, ïðè ïåðâîì îáðàòíîì âûçîâå äëÿ çàïèñè îí áóäåò ñîäåðæàòü (âîçæîæíî íåïîëíûé) áëîê, íà÷èíàþùèéñÿ ñ ýòîãî ñýìïëà.

    - -

    Äåêîäåð ôàéëîâ òàêæå ïðåäîñòàâëÿåò ïðîâåðêó ïîäïèñè MD5. Åñëè ýòà âîçìîæíîñòü áóäåò âêëþ÷åíà ïåðåä èíèöèàëèçàöèåé, FLAC__file_decoder_finish() ñîîáùèò, åñëè ïîäïèñü MD5 ðàñïàêîâàííûõ äàííûõ íå ñîâïàäåò ñ ñîõðàíåííîé â áëîêå STREAMINFO. Ïðîâåðêà MD5 àâòîìàòè÷åñêè âûêëþ÷àåòñÿ, åñëè â áëîêå STREAMINFO íåò ïîäïèñè èëè ïðè ïîïûòêå îñóùåñòâëåíèÿ ïîèñêà. - - -

    ÅÍÊÎÄÅÐ ÏÎÒÎÊÎÂ

    - -

    Åíêîäåð ïîòîêîâ ðàáîòàåò àíàëîãè÷íî äåêîäåðó, îäíàêî èìååò ìåíüøå îáðàòíûõ âûçîâîâ è áîëüøå îïöèé. Òèï ýêçåìïëÿðà - FLAC__StreamEncoder. Äëÿ ñîçäàíèÿ íîâîãî ýêçåìïëÿðà â ïðîãðàììå íóæíî âûçâàòü ôóíêöèþ FLAC__stream_encoder_new(), à ÷òîáû ïðîèíèöèàëèçèðîâàòü åãî - FLAC__stream_encoder_init().

    - -

     îòëè÷èå îò ïðîöåññà äåêîäèðîâàíèÿ êîäèðîâàíèå â ôîðìàò FLAC èìååò ìíîæåñòâî îïöèé, âëèÿþùèõ íà ñêîðîñòü è óðîâåíü ñæàòèÿ. Êîãäà ïðîãðàììà âûçûâàåò FLAC__stream_encoder_init(), åíêîäåð ïðîâåðÿåò çíà÷åíèÿ, ïîýòîìó íåîáõîäèìî óáåäèòüñÿ, ÷òî âîçâðàùåìîå ýòîé ôóíêöèåé çíà÷åíèå - FLAC__STREAM_ENCODER_OK. Äëÿ óñòàíîâêè ïàðàìåòðîâ íóæíî èìåòü íåêîòîðîå ïðåäñòàâëåíèå î ôîðìàòå (ñì. îïèñàíèå ôîðìàòà äëÿ ïîëüçîâàòåëÿ èëè åãî ôîðìàëüíîå îïèñàíèå). Ñïèñîê íåîáõîäèìûõ ïàðàìåòðîâ ïðèâåäåí çäåñü:

    - - - -

    Ïðîãðàììà äîëæíà ïðåäîñòàâèòü FLAC__stream_encoder_init() àäðåñà äëÿ ñëåäóþùèõ îáðàòíûõ âûçîâîâ: - -

    - -

    Âûçîâ FLAC__stream_encoder_init() íåïîñðåäñòâåííî ïðîèçâîäèò îáðàòíûé âûçîâ äëÿ çàïèñè ñèãíàòóðû "fLaC" è âñåõ îïðåäåëåííûõ íà äàííûé ìîìåíò ìåòàäàííûõ.

    - -

    Ïîñëå èíèöèàëèçàöèè ýêçåìïëÿðà ïðîãðàììà ìîæåò ïåðåäàâàòü äàííûå åíêîäåðó äâóìÿ ñïîñîáàìè:

    - - - -

    Äëÿ çàâåðøåíèÿ êîäèðîâàíèÿ äàííûõ ïðîãðàììà âûçûâàåò ôóíêöèþ FLAC__stream_encoder_finish(), êîòîðàÿ êîäèðóåò îñòàâøèåñÿ äàííûå èç âõîäíîãî ïîòîêà è äåëàåò îáðàòíûé âûçîâ äëÿ ðàáîòû ñ ìåòàäàííûìè ñ êîððåêòíîé ñòàòèñòèêîé î ïðîöåññå êîäèðîâàíèÿ. Ýêçåìïëÿð ìîæåò áûòü óäàëåí ôóíêöèåé FLAC__stream_encoder_delete() èëè èíèöèàëèçèðîâàí ñíîâà äëÿ êîäèðîâàíèÿ íîâîãî ïîòîêà.

    - - -

    ÐÀÇÍÎÅ

    - -

    Íåîáõîäèìî îòìåòèòü, ÷òî êîãäà ïåðåäàþòñÿ óêàçàòåëè íà àóäèî äàííûå, èõ ïîðÿäîê èìååò çíà÷åíèå òîëüêî äëÿ ñòåðåî ïîòîêîâ. Êàíàë 0 ñîîòâåòñòâóåò ëåâîìó êàíàëó, à 1 - ïðàâîìó.

    - - -

    ÌÅÒÀÄÀÍÍÛÅ

    - -

    Ïðîãðàììû, çàïèñûâàþùèå ñâîè áëîêè ìåòàäàííûõ APPLICATION, ìîãóò óêàçàòü åíêîäåðó, ÷òîáû îí çàïèñàë áëîê ìåòàäàííûõ PADDING íóæíîãî ðàçìåðà.  ýòîì ñëó÷àå âìåñòî ïåðåçàïèñè âñåãî ïîòîêà ïîñëå êîäèðîâàíèÿ ïðîãðàììà ñìîæåò ïðîñòî çàìåíèòü áëîê PADDING íà ñâîé. Åñëè èçâåñòåí òîëüêî ìàêñèìàëüíûé ðàçìåð áëîêà APPLICATION, ïðîãðàììà ìîæåò ñîçäàòü ðåçåðâíûé áëîê ÷óòü áîëüøåãî ðàçìåðà, à ïîñëå êîäèðîâàíèÿ ðàçäåëèòü åãî íà áëîêè APPLICATION è PADDING.

    - -

    Åñëè ðàçìåð áëîêà ìåòàäàííûõ APPLICATION èçâåñòåí çàðàíåå, ðàçìåð ðåçåðâèðóåìîé îáëàñòè ìîæåò áûòü ëåãêî âû÷åñëåí. Åñëè ðàçìåð áëîêà APPLICATION (íå âêëþ÷àÿ çàãîëîâîê áëîêà) ðàâåí N áàéòàì, òî ýêçåìïëÿðó FLAC__StreamEncoder ïåðåä èíèöèàëèçàöèåé íóæíî ïåðåäàòü çíà÷åíèå N+4. Ýòî íóæíî, ÷òîáû ó÷åñòü äîïîëíèòåëüíîå ìåñòî íåîáõîäèìîå äëÿ õðàíåíèÿ èäåíòèôèêàòîðà ïðèëîæåíèÿ.

    - -

    Êîãäà èçâåñòåí òîëüêî ìàêñèìàëüíûé ðàçìåð, ñêàæåì, N áàéò, íóæíî çàðåçåðâèðîâàòü N+8 áàéò. ×åòûðå äëÿ ID ïðèëîæåíèÿ è ÷åòûðå äëÿ äîïîëíèòåëüíîãî áëîêà PADDING, êîòîðûé çàïîëíèò îñòàâøååñÿ ïðîñòðàíñòâî. Ïî îêîí÷àíèè êîäèðîâàíèÿ, êîãäà ðàçìåð áëîêà äàííûõ APPLICATION ñòàíîâèòñÿ èçâåñòíîé è ðàâíîé, äîïóñòèì, M áàéòàì, íà ìåñòî ïåðâîíà÷àëüíîãî áëîêà PADDING áóäåò çàïèñàí áëîê APPLICATION è áëîê PADDING äëèíîé N-M áàéòîâ.

    - - - -

    Èçâåñòíûå îøèáêè

    - -

    Îòñëåæèâàíèå îøèáîê âåäåòñÿ íà ýòîé ñòðàíèöå ïðîåêòà, íàõîäÿùåéñÿ íà SourceForge. Åñëè Âû áóäåòå ñîîáùàòü îá îøèáêå, ïîæàëóéñòà, îñòàâüòå e-mail äëÿ êîíòàêòà.

    - -

     Copyright (c) 2001 Josh Coalson

    - - - + + + + + + + + + + +FLAC: äîêóìåíòàöèÿ + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    |íà÷àëî |íîâîñòè |ôàéëû |õàðàêòåðèñòèêè |öåëè |ôîðìàò |
    |id |ñðàâíåíèå |ðàçðàáîòêà | + äîêóìåíòàöèÿ |ññûëêè |àâòîðû |
    + +

    + + + + + +
    |english | + ðóññêèé |

    + + +

    FLAC: äîêóìåíòàöèÿ

    + +

    Äîêóìåíòàöèÿ

    + +

    Ýòà ñòðàíèöà ðàçáèòà íà ñëåäóþùèå ðàçäåëû:

    + +çäåñü íàõîäèòñÿ äîêóìåíòàöèÿ äëÿ óòèëèòû êîìàäíîé ñòðîêè flac, ðåäàêòîðà ìåòàäàííûõ metaflac è ïëàãèíîâ äëÿ ïëååðîâ.

    + + + + +

    Ïîìíèòå, ÷òî îíëàéíîâàÿ âåðñèÿ ýòîãî äîêóìåíòà (íà àíãëèéñêîì ÿçûêå) âêëþ÷àåòñÿ â ïîñëåäíèé ðåëèç.

    + + +

    Ôîðìàò

    + +

    Îïöèè ïî óìîë÷àíèþ äëÿ flac íàñòðîåíû íà ïîëó÷åíèå îïòèìàëüíîãî ñîîòíîøåíèÿ ñêîðîñòü/óðîâåíü ñæàòèÿ äëÿ áîëüøèíñòâà òèïîâ âõîäíûõ ôàéëîâ. Çäåñü îïèñûâàåòñÿ êàê ìîæíî ïîïûòàòüñÿ óâåëè÷èòü óðîâåíü èëè ñêîðîñòü ñæàòèÿ èëè ñ íàèáîëüøèì ýôôåêòîì èñïîëüçîâàòü ñèñòåìó ìåòàäàííûõ.

    + +

    Îñíîâíûìè ÷àñòÿìè ïîòîêà ÿâëÿþòñÿ:

    + +

    + +

    Ïåðâûå ÷åòûðå áàéòà èäåòèôèöèðóþò ïîòîê FLAC. Ñëåäóþùèå çà íèìè ìåòàäàííûå ñîäåðæàò èíôîðìàöèþ î ïîòîêå, çàòåì èäóò ñæàòûå àóäèîäàííûå.

    + + +

    Ìåòàäàííûå

    + +

    FLAC îïðåäåëÿåò íåñêîëüêî òèïîâ áëîêîâ ìåòàäàííûõ (âñå îíè ïåðå÷èñëåíû íà ñòðàíèöå ôîðìàò). Áëîêè ìåòàäàííûõ ìîãóò áûòü ëþáîãî ðàçìåðà, íîâûå áëîêè ìîãóò áûòü ëåãêî äîáàâëåíû. Äåêîäåð èìååò âîçìîæíîñòü ïðîïóñêàòü íåèçâåòíûå åìó áëîêè ìåòàäàííûõ. Îáÿçàòåëåí òîëüêî áëîê STREAMINFO.  íåì ñîäåðæèòñÿ ÷àñòîòà äèñêðåòèçàöèÿ, êîëè÷åñòâî êàíàëîâ è ò.ï., à òàêæå äàííûå ïîçâîëÿþùèå äåêîäåðó íàñòðîèòü áóôôåðû. Ñþäà òàêæå çàïèñûâàåòñÿ ïîäïèñü MD5 íåñæàòûõ àóäèîäàííûõ. Ýòî ïîëåçíî äëÿ ïðîâåðêè âñåãî ïîòîêà ïîñëå åãî ïåðåäà÷è.

    + +

    Äðóãèå áëîêè ïðåäíàçíà÷åíû äëÿ ðåçåðâèðîâàíèÿ ìåñòà, õðàíåíèÿ òàáëèö òî÷åê ïîèñêà, à òàêæå äàííûõ äëÿ êîíêðåòíûõ ïðèëîæåíèé. Îïöèè äëÿ äîáàâëåíèÿ áëîêîâ PADDING èëè òî÷åê ïîèñêà ïðèâåäåíû íèæå. FLAC íå íóæäàåòñÿ â òî÷êàõ ïîèñêà, îäíàêî îíè ïîçâîëÿþò çíà÷èòåëüíî óâåëè÷èòü ñêîðîñòü äîñòóïà, à òàêæå ìîãóò áûòü èñïîëüçîâàíèÿ äëÿ ðàññòàíîâêè ìåòîê â àóäèî ðåäàêòîðàõ.

    + +

    Åñëè Âàì íóæåí ñîáñòâåííûé áëîê ìåòàäàííûõ, Âû ìîæåòå îïðåäåëèòü åãî è çàïðîñèòü èäåíòèôèêàòîð çäåñü. Âû ìîæåòå çàðåçåðâèðîâàòü áëîê PADDING íåîáõîäèìîãî ðàçìåðà è çàïèñàòü íà åãî ìåñòî ñâîè äàííûå ïîñëå êîäèðîâàíèÿ. Ïîëó÷åíííûé ïîòîê áóäåò îòâå÷àòü ôîðìàòó FLAC, äåêîäåðû ðàñïîçíàþùèå ýòè áëîêè ñìîãóò èõ èñïîëüçîâàòü, îñòàëüíûå áóäóò èõ ïðîïóñêàòü.

    + + +

    Àóäèîäàííûå

    + +

    Çà ìåòàäàííûì ñëåäóþò ñæàòûå àóäèîäàííûå. Ìåòàäàííûå è àóäèîäàííûå íå ÷åðåäóþòñÿ. Êàê è áîëüøèíñòâî êîäåêîâ FLAC äåëèò âõîäíîé ïîòîê íà áëîêè è êîäèðóåò èõ íåçàâèñèìî äðóã îò äðóãà. Áëîê óïàêîâûâàòñÿ âî ôðåéì è äîáàâëÿåòñÿ ê ïîòîêó. Áàçîâûé åíêîäåð èñïîëüçóåò áëîêè ïîñòîÿííîãî ðàçìåðà äëÿ âñåãî ïîòîêà, îäíàêî ôîðìàò ïðåäóñìàòðèâàåò íàëè÷èå áëîêîâ ðàçíîé äëèíû â ïîòîêå.

    + + +

    Ðàçáèåíèå íà áëîêè

    + +

    Ðàçìåð áëîêà - î÷åíü âàæíûé ïàðàìåòð äëÿ êîäèðîâàíèÿ. Åñëè îí î÷åíü ìàë, òî â ïîòîêå áóäåò ñëèøêîì çàãîëîâêîâ ôðåéìîâ, ÷òî óìåíüøèò óðîâåíü ñæàòèÿ. Åñëè ðàçìåð áîëüøîé, òî åíêîäåð íå ñìîæåò ïîäîáðàòü ýôôåêòèâíóþ ìîäåëü ñæàòèÿ. Ïîíèìàíèå ïðîöåññà ìîäåëèðîâàíèÿ ïîìîæåò Âàì óâåëè÷èòü óðîâåíü ñæàòèÿ äëÿ íåêîòîðûõ òèïîâ âõîäíûõ äàííûõ. Îáû÷íî ïðè èñïîëüçîâàíèè ëèíåéíîãî ïðîãíîçèðîâàíèÿ íà àóäèîäàííûõ ñ ÷àñòîòîé äèñêðåòèçàöèè 44.1 êÃö îïòèìàëüíûé ðàçìåð áëîêà ëåæèò â äèàïàçîíå 2-6 òûñÿ÷ ñýìïëîâ.  ýòîì ñëó÷àå çíà÷åíèå ïî óìîë÷àíèþ - 4608. Åñëè èñïîëüçîâàòü áûñòðûå ïîñòîÿííûå ïðåäèêòîðû, ïðåäïî÷òèòåëüíåå ìåíüøèå ðàçìåðû áëîêîâ, òàê êàê â ýòîì ñëó÷àå ðàçìåðû çàãîëîâêîâ ôðåéìîâ ìåíüøå.

    + + +

    Ìåæêàíàëüíàÿ äåêîððåëÿöèÿ

    + +

    Åñëè íà âõîä ïîñòóïàþò ñòåðåî àóäèîäàííûå, îíè ìîãóò ïðîéòè ÷åðåç ñòàäèþ ìåæêàíàëüíîé äåêîððåëÿöèè. Ïðàâûé è ëåâûé êàíàë ïðåîáðàçóþòñÿ ê ñðåäíåìó è ðàçíîñòíîìó ïî ôîðìóëàì: ñðåäíèé = (ëåâûé + ïðàâûé)/2, ðàçíîñòíûé = ëåâûé - ïðàâûé.  îòëè÷èå îò joint stereo ýòîò ïðîöåññ íå ïðèâîäèò ê ïîòåðÿì. Äëÿ äàííûõ ñ àóäèî êîìïàêò-äèñêîâ ýòî îáû÷íî ïðèâîäèò ê çíà÷èòåëüíîìó óâåëè÷åíèþ óðîâíÿ ñæàòèÿ. Äëÿ âêëþ÷åíèÿ èñïîëüçîâàíèÿ ýòîãî ìåòîäà êîäèðîâàíèÿ flac èìååò äâå îïöèè: -m âñåãäà äåëàåò ðàçíîñòíóþ è íåçàâèñèìóþ âåðñèþ áëîêà è âûáèðàåò íàèìåíüøèé ôðåéì è -M, êîòîðàÿ àäàïòèâíî âûáèðàåò ñõåìó ñæàòèÿ.

    + + +

    Ìîäåëèðîâàíèå

    + +

    Íà ñëåäóþùåì ýòàïå åíêîäåð ïûòàåòñÿ àïïðîêñèìèðîâàòü ñèãíàë òàêîé ôóíêöèåé, ÷òîáû ïîëó÷åííûé ïîñëå åå âû÷èòàíèÿ èç îðèãèíàëà ðåçóëüòàò (íàçûâàåìûé ðàçíîñòüþ, îñòàòêîì, îøèáêîé) ìîæíî áûëî çàêîäèðîâàòü ìèíèìàëüíûì êîëè÷åñòâîì áèòîâ. Ïàðàìåòðû ôóíêöèé òîæå äîëæíû çàïèñûâàòüñÿ, ïîýòîìó îíè íå äîëæíû çàíèìàòü ìíîãî ìåñòà. FLAC èñïîëüçóåò äâà ìåòîäà ôîðìèðîâàíèÿ àïïðîêñèìàöèé: 1) ïîäãîíêà ïðîñòîãî ïîëèíîìà ê ñèãíàëó è 2) îáùåå êîäèðîâàíèå ñ ëèíåéíûìè ïðåäèêòîðàìè (LPC).

    + +

    Âî-ïåðâûõ, ïîñòîÿííîå ïîëèíîìèàëüíîå ïðåäñêàçàíèå (-l 0) ðàáîòàåò çíà÷èòåëüíî áûñòðåå, íî ìåíåå òî÷íî, ÷åì LPC. ×åì âûøå ïîðÿäîê LPC, òåì ìåäëåííåå, íî ëó÷øå áóäåò ìîäåëü. Îäíàêî ñ óâåëè÷åíèåì ïîðÿäêà âûèãðûø áóäåò âñå ìåíåå çíà÷èòåëüíûì.  íåêîòîðîé òî÷êå (îáû÷íî îêîëî 9) ïðîöåäóðà åíêîäåðà, îïðåäåëÿþùàÿ íàèëó÷øèé ïîðÿäîê, íà÷èíàåò îøèáàòüñÿ è ðàçìåð ïîëó÷àåìûõ ôðåéìîâ âîçðàñòàåò. ×òîáû ïðåîäîëåòü ýòî, ìîæíî èñïîëüçîâàòü ïîëíûé ïåðåáîð (îïöèÿ -e), ÷òî ïðèâåäåò ê çíà÷èòåëüíîìó óâåëè÷åíèþ âðåìåíè êîäèðîâàíèÿ.

    + +

    Âî-âòîðûõ, ïàðàìåòðû äëÿ ïîñòîÿííûõ ïðåäèêòîðîâ ìîãóò áûòü îïèñàíû òðåìÿ áèòàìè, à ïàðàìåòðû äëÿ ìîäåëè LPC çàâèñÿò îò êîëè÷åñòâà áèò íà ñýìïë è ïîðÿäêà LPC. Ýòî çíà÷èò, ÷òî ðàçìåð çàãîëîâêà ôðåéìà çàâèñèò îò âûáðàííîãî ìåòîäà è ïîðÿäêà è ìîæåò ïîâëèÿòü íà îïòèìàëüíûé ðàçìåð áëîêà.

    + + +

    Îñòàòî÷íîå êîäèðîâàíèå

    + +

    Êîãäà ìîäåëü ïîäîáðàíà, åíêîäåð âû÷èòàåò ïðèáëèæåíèå èç îðèãèíàëà, ÷òîáû ïîëó÷èòü îñòàòî÷íûé (îøèáî÷íûé) ñèãíàë, êîòîðûé çàòåì êîäèðóåòñÿ áåç ïîòåðü. Äëÿ ýòîãî èñïîëüçóåòñÿ òî îáñòîÿòåëüñòâî, ÷òî ðàçíîñòíûé ñèãíàë îáû÷íî èìååò ðàñïðåäåëåíèå Ëàïëàñà è åñòü íàáîð ñïåöèàëüíûé êîäîâ Õàôôìàíà, íàçûâàåìûå êîäàìè Ðàéñà, ïîçâîëÿþùèå ýôôåêòèâíî è áûñòðî êîäèðîâàòü ýòè ñèãíàëû áåç èñïîëüçîâàíèÿ ñëîâàðÿ.

    + +

    Êîäèðîâàíèå Ðàéñà ñîñòîèò èç íàõîæäåíèÿ îäíîãî ïàðàìåòðà, îòâå÷àþùåãî ðàñïðåäåëåíèþ ñèãíàëà, à çàòåì èñïîëüçîâàíèÿ åãî äëÿ ñîñòàâëåíèÿ êîäîâ. Ïðè èçìåíåíèè ðàñïðåäåëåíèÿ ìåíÿåòñÿ è îïòèìàëüíûé ïàðàìåòð, ïîýòîìó èìååòñÿ ìåòîä ïîçâîëÿþùèé ïåðåñ÷èòûâàòü åãî ïî íåîáõîäèìîñòè. Îñòàòîê ìîæåò áûòü ðàçáèò íà êîíòåêñòû èëè ðàçäåëû, ó êàæäîãî èç êîòîðûõ áóäåò ñâîé ïàðàìåòð Ðàéñà. flac ïîçâîëÿåò óêàçàòü, êàê íóæíî ïðîèçâîäèòü ðàçáèåíèå, ñ ïîìîùüþ îïöèè -r. Îñòàòîê ìîæåò áûòü ðàçáèò íà 2^n ðàçäåëà, åñëè èñïîëüçîâàòü -r n,n. Ïàðàìåòð n íàçûâàåòñÿ ïîðÿäêîì ðàçäåëà. Òàêæå åíêîäåð ìîæåò èñêàòü â ïðåäåëàõ îò m äî n ïîðÿäêà, âûáèðàÿ ëó÷øèé âàðèàíò, åñëè óêàçàòü -r m,n. Îáû÷íî âûáîð n íå âëèÿåò íà ñêîðîñòü êîäèðîâàíèÿ. Îò ðàçíèöû ìåæäó m è n ñèëüíî çàâèñèò âðåìÿ ðàáîòû, ÷åì îíà áîëüøå, òåì áîëüøå âðåìåíè áóäåò çàòðà÷èâàòüñÿ íà ïîèñê ëó÷øåãî ïîðÿäêà. Âûáîð ðàçìåðà áëîêà òàêæå âëèÿåò íà îïòèìàëüíûé ïîðÿäîê ðàçäåëà.

    + + +

    Ñîñòàâëåíèå ôðåéìîâ

    + +

    Àóäèîôðåéìó ïðåäøåñòâóåò çàãîëîâîê, êîòîðûé íà÷èíàåòñÿ ñ êîäà ñèíõðîíèçàöèè è ñîäåðæèò ìèíèìóì èíôîðìàöèè, íåîáõîäèìîé äåêîäåðó äëÿ âîñïðîèçâåäåíèÿ ïîòîêà. Ñþäà òàêæå çàïèñûâàåòñÿ íîìåð áëîêà èëè ñýìïëà è âîñüìèáèòíàÿ êîíòðîëüíàÿ ñóììà ñàìîãî çàãîëîâêà. Êîä ñèíõðîíèçàöèè, CRC çàãîëîâêà ôðåéìà è íîìåð áëîêà/ñýìïëà ïîçâîëÿþò îñóùåñòâëÿòü ïåðåñèíõðîíèçàöèþ è ïîèñê äàæå â îòñóòñòâèå òî÷åê ïîèñêà.  êîíöå ôðåéìà çàïèñûâàåòñÿ åãî øåñòíàäöàòèáèòíàÿ êîíòðîëüíàÿ ñóììà. Åñëè áàçîâûé äåêîäåð îáíàðóæèò îøèáêó, áóäåò ñãåíåðèðîâàí áëîê òèøèíû.

    + + +

    Ðàçíîå

    + +

    ×òîáû ïîääåðæèâàòü îñíîâíûå òèïû ìåòàäàííûõ, áàçîâûé äåêîäåð óìååò ïðîïóñêàòü òåãè ID3V1 è ID3V2, ïîýòîìó èõ ìîæíî ñâîáîäíî äîáàâëÿòü. Òåãè ID3V2 äîëæíû ðàñïîëàãàòüñÿ ïåðåä ìàðêåðîì "fLaC", à òåãè ID3V1 - â êîíöå ôàéëà.

    + +

    Ó flac åñòü îïöèÿ (-V) äëÿ ïðîâåðêè âûõîäíûõ äàííûõ ïðè êîäèðîâàíèè.  ýòîì ñëó÷àå äåêîäåð ðàáîòàåò îäíîâðåìåííî ñ åíêîäåðîì è åãî âûõîä ñðàâíèâàåòñÿ ñ îðèãèíàëüíûì ââîäîì. Åñëè áóäåò íàéäåíî îòëè÷èå, flac çàêîí÷èò ðàáîòó ñ ñîîáùåíèåì îá îøèáêå.

    + + + +

    flac

    + +

    flac - ýòî êîäåê, ðàáîòàþùèé èç êîìàíäíîé ñòðîêè. Âõîäîì äëÿ åíêîäåðà è âûõîäîì äëÿ äåêîäåðà äîëæåí áûòü ëèáî äàííûå â ôîðìàòå RIFF WAVE, ëèáî ïîòîê ñýìïëîâ áåç çàãîëîâêà. flac èñïîëüçóåò òîëüêî ëèíåéíûå PCM ñýìïëû (äðóãèìè ñëîâàìè, A-LAW, uLAW, è ò.ï. íå ïîääåðæèâàþòñÿ). Ñëåäóþùèì îãðàíè÷åíèåì ÿâëÿåòñÿ òî, ÷òî âî êîäèðóåìîì ôàéëå ñýìïëû äîëæíû áûòü 8, 16 èëè 24-áèòíûìè. Ýòî íå îãðàíè÷åíèå ôîðìàòà, ïðîñòî òàê ðàáîòàþò áàçîâûé åíêîäåð è äåêîäåð.

    + +

    flac ïðåäïîëàãàåò, ÷òî ôàéëû RIFF WAVE èìåþò ñóôôèêñ ".wav"; ýòî óìîë÷àíèå ìîæåò áûòü ïåðåîïðåäåëåíî ñïåöèàëüíûì êëþ÷îì. Äëÿ äàííûõ, ïîñòóïàþùèõ èç ïîòîêà, flac ïûòàåòñÿ îïðåäåëèòü òèï, ïðîñìàòðèâàÿ íà÷àëî ôàéëà â ïîèñêå çàãîëîâêà.  îñòàëüíûõ ñëó÷àÿõ flac íå äåëàåò ïðåäïîëîæåíèé î ñóôôèêñàõ, õîòÿ ïî ñîãëàøåíèþ ôàéëû FLAC èìåþò ñóôôèêñ ".flac" (èëè ".fla" íà ñòàðûõ ôàéëîâûõ ñèñòåìàõ òàêèõ êàê FAT-16).

    + +

    Ïåðåä ïîëíûì îïèñàíèåì êëþ÷åé, èñïîëüçóåìûõ flac, îáðàòèì âíèìàíèå íà òî ÷òî: 1) ïî óìîë÷àíèþ flac ñæèìàåò ôàéëû (äëÿ äåêîäèðîâàíèÿ èñïîëüçóéòå êëþ÷ -d); 2) êëþ÷è -0..-9, óïðàâëÿþùèå óðîâíåì ñæàòèÿ, ÿâëÿþòñÿ ñèíîíèìàìè äëÿ ðàçëè÷íûõ ãðóïï íàñòðîåê êîäèðîâàíèÿ. Òîãî æå ýôôåêòà ìîæíî äîáèòüñÿ, èñïîëüçóÿ íàáîðû ñîîòâåòñòâóþùèõ êëþ÷åé; 3) ìîäåëü îáðàáîòêè âõîäíûõ è âûõîäíûõ ôàéëîâ ó flac àíàëîãè÷íà gzip.

    + +

    flac âûçûâàåòñÿ îäíèì èç ÷åòûðåõ ñïîñîáîâ:

    + +

    + +

     ëþáîì ñëó÷àå, åñëè âõîäíîé ôàéë íå óêàçàí, ïîäðàçóìåâàåòñÿ ñòàíäàðòíûé ââîä. Åñëè óêàçàí òîëüêî îäèí âõîäíîé ôàéë, òî ýòî ìîæåò áûòü "-" äëÿ ñòàíäàðòíîãî ââîäà (stdin). Êîãäà èñïîëüçóåòñÿ ñòàíäàðòíûé ââîä, flac ïèøåò â ñòàíäàðòíûé âûâîä (stdout).  îñòàëüíûõ ñëó÷àÿõ flac âûïîëíèò óêàçàííûå äåéñòâèÿ äëÿ êàæäîãî âõîäíîãî ôàéëà è çàïèøåò ðåçóëüòàòû â ôàéëû ñ àíàëîãè÷íûìè èìåíàìè (ïðè êîäèðîâàíèè ñóôôèêñ áóäåò çàìåíåí íà ".flac" èëè, åñëè åãî íå áûëî, áóäåò äîáàâëåí; ïðè äåêîäèðîâàíèè ñóôôèêñû òàêæå èçìåíÿþòñÿ â ñîîòâåòñòâèè ñ òèïîì âûõîäíûõ äàííûõ.) Îðèãèíàë óäàëÿåòñÿ, òîëüêî åñëè óêàçàí êëþ÷ --delete-input-file.

    + +

    Ñóùåñòâóþò îñîáûå ôîðìû âûçîâà ïðîöåäóð êîäèðîâàíèÿ/äåêîäèðîâàíèÿ èç ñòàíäàíäàðòíîãî ââîäà â ôàéë.

    + +

    + + +

    êîòîðûå ëó÷øå ÷åì

    + + +

    + +

    òàê êàê â ïåðâîì ñëó÷àå ñîõðàíÿåòñÿ âîçìîæíîñòü ïðîèçâåñòè ïðè íåîáõîäèìîñòè ïîñëåäóþùóþ îáðàáîòêó ôàéëà, íàïðèìåð äëÿ çàïèñè çàãîëîâêîâ RIFF WAVE èëè STREAMINFO.

    + +

    Äàííûå â ñòàíäàðòíûé âûâîä ìîæíî ïåðåíàïðàâèòü ñ ïîìîùüþ êëþ÷à -c.

    + +

    Îïöèè êîäèðîâàíèÿ âëèÿþò íà ñêîðîñòü ðàáîòû è óðîâåíü ñæàòèÿ. Íàñòðîéêè ôîðìàòà îïðåäåëÿþò ðàñïîëîæåíèå ñýìïëîâ, åñëè íà âõîä ïîñòóïàåò ôàéë áåç çàãîëîâêà. Åñëè ó ôàéëà åñòü çàãîëîâîê RIFF WAVE, òî íàñòîéêè ôîðìàòà íå íóæíû, òàê êàê îíè áåðóòñÿ èç ôàéëà.

    + +

     ðåæèìå òåñòèðîâàíèÿ flac ðàáîòàåò êàê è ïðè äåêîäèðîâàíèè, òîëüêî âûõîäíîé ôàéë íå çàïèñûâàåòñÿ. Ðåæèìû äåêîäèðîâàíèÿ è òåñòèðîâàíèÿ ïðîâåðÿþò ïîòîê íà íàëè÷èå îøèáîê, à òàêæå ñðàâíèâàþò ïîäïèñü MD5 äåêîäèðîâàííîãî ïîòîêà ñ ñîõðàíåííîé ïîäïèñüþ, äàæå åñëè ôîðìàò ïîòîêà ïðàâèëüíûé.

    + +

    Îñíîâíûå êëþ÷è

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    -dÄåêîäèðîâàíèå (ïî óìîë÷àíèþ flac êîäèðóåò). flac çàâåðøèò ðàáîòó ñ êîäîì âûõîäà 1, åñëè áóäåò âñòðå÷åíà îøèáêà èëè êîíòðîëüíàÿ ñóììà MD5 äåêîäèðîâàííîãî ïîòîêà íå ñîâïàäåò ñ ñîõðàíåííîé. Åñëè îøèáîê íå áóäåò, êîä âîçâðàòà áóäåò ðàâåí 0.
    -tÒåñòèðîâàíèå (òî æå ñàìîå, ÷òî è äåêîäèðîâàíèå, òîëüêî âûõîä íå çàïèñûâàåòñÿ â ôàéë). Êîäû âîçâðàòà òå æå.
    -aÀíàëèç (òî æå ñàìîå, ÷òî è äåêîäèðîâàíèå, òîëüêî âûõîäîì ÿâëÿåòñÿ ôàéë ñòàòèñòèêè). Êîäû âîçâðàòà òå æå. Ðåæèì ïðåäíàçíà÷åí â îñíîâíîì äëÿ ðàçðàáîò÷èêîâ.  âûõîäíîé òåêñòîâûé ôàéë çàïèñûâàåòñÿ èíôîðìàöèÿ î êàæäîì ôðåéìå è ïîäôðåéìå.
    -cÍàïðàâèòü ðåçóëüòàò â ñòàíäàðòíûé âûâîä (stdout).
    -sÍå ïîêàçûâàòü ñòàòèñòèêó ïðè êîäèðîâàíèè/äåêîäèðîâàíèè.
    -o ôàéëßâíî óêàçàòü èìÿ âûõîäíîãî ôàéëà, ïî óìîë÷àíèþ flac ïðîñòî çàìåíÿåò ñóôôèêñ.
    --output-prefix ñòðîêàÄîáàâëÿåò ïðåôèêñ ê êàæäîìó èìåíè âûõîäíîìó ôàéëó. Ìîæåò èìñïîëüçîâàòüñÿ äëÿ êîäèðîâàíèÿ/äåêîäèðîâàíèÿ ôàéëîâ â äðóãîé êàòàëîã. Åñëè óêàçàííàÿ ñòðîêà ÿâëÿåòñÿ ÷àñòüþ ïóòè, óáåäèòåñü, ÷òî îíà çàêàí÷èâàåòñÿ ñëýøåì '/'.
    --delete-input-fileÏîñëå óñïåøíîãî îêîí÷àíèÿ êîäèðîâàíèÿ/äåêîäèðîâàíèÿ âõîäíîé ôàéë áóäåò óäàëåí. Åñëè ïðîèçîéäåò îøèáêà, èñõîäíûé ôàéë îñòàíåòñÿ.
    --skip #Ïðîïóñòèòü ïåðâûå # ñýìïëîâ âõîäíîãî ôàéëà. Ðàáîòàåò äëÿ êîäèðîâàíèÿ è äåêîäèðîâàíèÿ, íî íå äëÿ òåñòèðîâàíèÿ.
    + + +

    Îïöèè àíàëèçà

    + + + + + + + +
    --a-rtextÄîáàâëÿåò â ôàéë îñòàòî÷íûé ñèãíàë. Ðåçóëüòèðóþùèé ôàéë ïîëó÷àåòñÿ î÷åíü áîëüøèì.
    --a-rgpÑîçäàåò ôàéëû-äèàãðàììû äëÿ êàæäîãî ïîäôðåéìà.  êàæäîì ôàéëå áóäåò îñòàòî÷íîå ðàñïðåäåëåíèå äëÿ ïîäôðåéìà. Áóäåò ñîçäàíî î÷åíü ìíîãî ôàéëîâ.
    + + +

    Îïöèè êîäèðîâàíèÿ

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    --laxÏîçâîëÿåò åíêîäåðó ñîçäàâàòü ôàéëû, îòâå÷àþùèå ïîäìíîæåñòâó ôîðìàòà FLAC.  ðåçóëüòàòå ðàáîòû áóäåò ïîëó÷àòüñÿ íåïîòîêîâûé ôàéë, ïîýòîìó ýòîò êëþ÷ ñëåäóåò èñïîëüçîâàòü òîëüêî äëÿ àðõèâèðîâàíèÿ. Äåêîäåð áóäåò ïîääåðæèâàòü âîñïðîèçâåäåíèå è ïîèñê â òàêèõ ôàéëàõ.
    --sector-align +

    Ïðè êîäèðîâàíèè íåñêîëüêèõ WAVE ôàéëîâ ôîðìàòà CD-Audio âûðàâíèâàòü èõ íà ãðàíèöó ñåêòîðà. Ýòà îïöèÿ ïðèìåíèìà òîëüêî äëÿ êîäèðîâàíèÿ íåñêîëüêèõ WAVE ôàéëîâ, êàæäûé èç êîòîðûõ äîëæåí èìåòü ÷àñòîòó äèñêðåòèçàöèè 44.1 êÃö è äâà êàíàëà. Åñëè áóäåò óêàçàíà ýòà îïöèÿ åíêîäåð âûðîâíÿåò ïîòîêè .flac òàê, +÷òî èõ äëèíû áóäóò êðàòíû ðàçìåðó ñåêòîðà CD-Audio (ðàâíû 1/75 ñåêóíäàì èëè 588 ñýìïëàì). Ýòî îñóùåñòâëÿåòñÿ ïåðåíîñîì ÷àñòè ñåêòîðà â êîíöå êàæäîãî WAVE ôàéëà â íà÷àëî ñëåäóþùåãî. Ïîñëåäíèé ïîòîê áóäåò äîïîëíåí äî ãðàíèöû âûðàâíèâàíèÿ íóëÿìè.

    +

    Èñïîëüçîâàíèå ýòîé îïöèè íå ïðèâåäåò íè ê ÷åìó, åñëè ôàéëû óæå âûðîâíåíû (íàïðèìåð, åñëè ïðàâèëüíî ñêîïèðîâàíû ñ àóäèî-CD). flac ìîæåò âûðîâíÿòü òîëüêî íåñêîëüêî ôàéëîâ çà îäèí âûçîâ.

    + +

    ÂÍÈÌÀÍÈÅ: Ïîðÿäîê ôàéëîâ èìååò çíà÷åíèå! Åñëè âû ñäåëàåòå ñëåäóþùèé âûçîâ 'flac --sector-align *.wav', êîìàíäíûé ïðîöåññîð ìîæåò îáðàáîòàòü øàáëîí íå â òîì ïîðÿäêå, â êàêîì âû ðàññ÷èòûâàåòå. Ïîýòîìó ëó÷øå âñåãî âûçûâàòü ïðîãðàììó, ÿâíî óêàçàâ ñïèñîê ôàéëîâ, íàïðèìåð, 'flac --sector-align 8.wav 9.wav 10.wav'. +

    -S {#|X|#x}Äîáàâëÿåò òî÷êè äëÿ ïîèñêà â òàáëèöó SEEKTABLE. + +
      +
    • : ñîçäàåòñÿ òî÷êà ïîèñêà äëÿ ñýìïëà ñ îïðåäåëåííûì íîìåðîì.
    • + +
    • : ðåçåðâèðóåìûå òî÷êè (âñåãäà ïîìåùàþòñÿ â êîíöå SEEKTABLE).
    • + +
    • #x : # ðàâíîìåðíî ðàñïðåäåëåííûõ òî÷åê ïîèñêà, ïåðâàÿ ñîîòâåòñòâóåò 0 ñýìïëó.
    • +
    + +

    Îïöèþ -S ìîæíî èñïîëüçîâàòü íåñêîëüêî ðàç.  ðåçóëüòàòå ïîëó÷èòñÿ îáúåäèíåííàÿ òàáëèöà, â êîòîðîé áóäóò ïðèñóòñòâîâàòü òîëüêî óíèêàëüíûå çíà÷åíèÿ.
    +Ïî óìîë÷àíèþ flac èñïîëüçóåò -S 100x. Åñëè òàáëèöà ïîèñêà íå íóæíà, óêàæèòå -S-.
    +ÏÐÈÌÅ×ÀÍÈÅ: -S #x íå áóäåò ðàáîòàòü, åñëè åíêîäåð íå ñìîæåò îïðåäåëèòü ðàçìåð âõîäíîãî ôàéëà â íà÷àëå ðàáîòû.
    +ÏÐÈÌÅ×ÀÍÈÅ: åñëè # áîëüøå èëè ðàâåí êîëè÷åñòâó ñýìïëîâ âî âõîäíîì ôàéëå, òî òî÷êè äîáàâëåíû íå áóäóò, åñëè ðàçìåð ìîæíî îïðåäåëèòü äî êîäèðîâàíèÿ, â ïðîòèâíîì ñëó÷àå áóäóò çàïèñàíû ðåçåðâèðóåìûå òî÷êè.

    +
    -P #Eíêîäåð çàïèøåò áëîê ìåòàäàííûõ PADDING, óêàçàííîãî ðàçìåðà (â áàéòàõ), ïîñëå áëîêà STREAMINFO. -P 0 óêàçûâàåò, ÷òî áëîê PADDING íå íóæåí (çíà÷åíèå ïî óìîë÷àíèþ). Ýòîò áëîê ïîëåçåí, åñëè âû ñîáèðàåòåñü äîáàâèòü òýã â ôàéë ïîçæå. Âìåñòî òîãî, ÷òîáû ïåðåïèñûâàòü ôàéë ïîëíîñòüþ, ìîæíî áóäåò çàïèñàòü èíôîðìàöèþ âìåñòî áëîêà PADDING.
    -b #Óñòàíàâëèâàåò ðàçìåð áëîêà â ñýìïëàõ. Ïî óìîë÷àíèþ 1152 äëÿ -l 0, èíà÷å 4608. Ñòàíäàðòíûå ïîòîêè äîëæíû èñïîëüçîâàòü îäíî èç óêàçàíûõ çíà÷åíèé: 192/576/1152/2304/4608/256/512/1024/2048/4096/8192/16384/32768. Ñåé÷àñ åíêîäåð èñïîëüçóåò ïîñòîÿííûé ðàçìåð áëîêà äëÿ âñåãî ôàéëà.
    -mÂêëþ÷àåò ðàçíîñòíîå êîäèðîâàíèå (òîëüêî äëÿ ñòåðåî ïîòîêîâ). Îáû÷íî óâåëè÷èâàåò óðîâåíü ñæàòèÿ íà íåñêîëüêî ïðîöåíòîâ. Äëÿ êàæäîãî áëîêà ñîçäàåòñÿ óñðåäíåííàÿ è ñòåðåî âåðñèÿ áëîêà, ñîõðàíÿåòñÿ áëîê ìåíüøåãî ðàçìåðà. Ñåé÷àñ ðàçíîñòíîå êîäèðîâàíèå äîñòóïíî äëÿ ôàéëîâ, ãäå ñýìïë èìååò ðàçìåð íå áîëüøå 16 áèò.
    -MÂêëþ÷àåò ñâîáîäíîå ðàçíîñòíîå êîäèðîâàíèå (òîëüêî äëÿ ñòåðåî ïîòîêîâ). Ðàáîòàåò àíàëîãè÷íî -m, îäíàêî åíêîäåð ïåðåêëþ÷àåòñÿ ìåæäó íåçàâèñèìûì è óñðåäíÿþùèì êîäèðîâàíèåì àäàïòèâíî. Ìåòîä ðàáîòàåò áûñòðåå, íî óðîâåíü ñæàòèÿ ìåíüøå, òàê êàê -m ïðîèçâîäèò ïîëíûé ïåðåáîð âàðèàíòîâ.
    -0..-9Áûñòðåéøåå ñæàòèå ... ìàêñèìàëüíîå ñæàòèå. Ïî óìîë÷àíèþ -5.
    -0Àíàëîãè÷íî -l 0 -b 1152 -r 2,2.
    -1Àíàëîãè÷íî -l 0 -b 1152 -r 2,2 -M.
    -2Àíàëîãè÷íî -l 0 -b 1152 -r 3 -m.
    -3Àíàëîãè÷íî -l 6 -b 4608 -r 3,3
    -4Àíàëîãè÷íî -l 8 -b 4608 -r 3,3 -M.
    -5Àíàëîãè÷íî -l 8 -b 4608 -r 3,3 -m.
    -6Àíàëîãè÷íî -l 8 -b 4608 -r 4 -m.
    -7Àíàëîãè÷íî -l 8 -b 4608 -r 6 -m -e.
    -8Àíàëîãè÷íî -l 12 -b 4608 -r 6 -m -e.
    -9Àíàëîãè÷íî -l 32 -b 4608 -r 16 -m -e -E -p. Ðàáîòàåò î÷åíü ìåäëåííî, íî äîñòèãàåòñÿ ìàêñèìàëüíûé óðîâåíü ñæàòèÿ äëÿ äàííîãî ðàçìåðà áëîêà.
    -eÏîëíûé ïîèñê ìîäåëè (ðàáîòàåò ìåäëåííî!). Îáû÷íî åíêîäåð îïðåäåëÿåò ëó÷øóþ ìîäåëü è êîäèðóåò äàëåå îïèðàÿñü íà íåå.  äàííîì ðåæèìå åíêîäåð áóäåò ñîçäàâàòü ïîäôðåéìû âñåõ ïîðÿäêîâ è èñïîëüçîâàòü íàèìåíüøèé. Åñëè ìàêñèìàëüíîå çíà÷åíèå ïîðÿäêà LPC âåëèêî, âðåìÿ êîäèðîâàíèÿ ñóùåñòâåííî âîçðàñòåò. Âûèãðûø îáû÷íî ñîñòàâëÿåò îêîëî 0.5%.
    -EÈñïîëüçîâàòü óïðàâëÿþùèå êîäû â êîäåðå ýíòðîïèè. Ýòà îïöèÿ ïîçâîëÿåò çàïèñûâàòü íåçàêîäèðîâàííîå ïðåäñòàâëåíèå îñòàòêà â ðàçäåëå, åñëè åãî ðàçìåð ìåíüøå. Ïðè ýòîì âðåìÿ ðàáîòû óâåëè÷èâàåòñÿ, à óðîâåíü ñæàòèÿ îáû÷íî óëó÷øàåòñÿ ïðèìåðíî íà 1%.
    -l #Îïðåäåëÿåò ìàêñèìàëüíûé ïîðÿäîê LPC (êîýôôèöèåíòîâ ëèíåéíîãî ïðîãíîçèðîâàíèÿ). ×èñëî äîëæíî áûòü ìåíüøå èëè ðàâíî 32. Åñëè çíà÷åíèå ðàâíî 0, åíêîäåð áóäåò èñïîëüçîâàòü âìåñòî îáùåãî ëèíåéíîãî ïðîãíîçèðîâàíèÿ ïîñòîÿííûå êîýôôèöèåíòû. Ýòîò ìåòîä óâåëè÷èâàåò ñêîðîñòü ðàáîòû, íî ôàéëû ïîëó÷àþòñÿ íà 5-10% áîëüøå.
    -q #Îïðåäåëÿåò òî÷íîñòü äèñêðåòíûõ êîýôôèöèåíòîâ ëèíåéíîãî ïðîãíîçèðîâàíèÿ â áèòàõ. Ïî óìîë÷àíèþ -q 0, ÷òî ïîçâîëÿåò åíêîäåðó ïðèíèìàòü ðåøåíèå â çàâèñèìîñòè îò ñèãíàëà. Ëó÷øå îñòàâëÿòü çíà÷åíèå ïî óìîë÷àíèþ.
    -pÏðîèçâîäèòü îïòèìèçàöèþ LPC. Ïåðåîïðåäåëÿåò ëþáóþ îïöèþ -q. Ñèëüíî çàìåäëÿåò ðàáîòó, è óìåíüøàåò ðàçìåð ôàéëà íà äîëþ ïðîöåíòà. -q íå ðàáîòàåò, êîãäà èñïîëüçóåòñÿ -l 0.
    -r [#,]#Óñòàíîâèòü [min,]max ïîðÿäîê ðàçäåëà. Åñëè ìèíèìàëüíîå çíà÷åíèå íå óêàçàíî, òî îíî óñòàíàâëèâàåòñÿ ðàâíûì 0. Ïî óìîë÷àíèþ åíêîäåð îäèí ïàðàìåòð Ðàéñà äëÿ âñåãî îñòàòêà ïîäôðåéìà. Åñëè èñïîëüçîâàòü ýòó îïöèþ, îñòàòîê áóäåò ðàçäåëÿòüñÿ íà 2^min# ... 2^max ÷àñòåé, äëÿ êàæäîé èç êîòîðûõ áóäåò îïðåäåëåí ñîáñòâåííûé ïàðàìåòð Ðàéñà. Ñ óâåëè÷åíèåì ïàðàìåòðà max âûèãðûø áóäåò âñå ìåíüøå. Íàèáîëåå îïòèìàëüíûé âàðèàíò äîñòèãàåòñÿ ïðè èñïîëüçîâàíèè -r 2,2 (è áîëüøèõ çíà÷åíèé äëÿ áîëüøèõ ðàçìåðîâ áëîêîâ). Ïðè ýòîì ñæàòèå îáû÷íî óâåëè÷èâàåòñÿ íà 1.5%. Âûáîð îïòèìàëüíîãî çíà÷åíèÿ ìîæíî ïðîèçâåñòè ïî ôîðìóëå ðàçìåð_áëîêà/(2^n)=128. Ìàêñèìàëüíûé óðîâåíü ñæàòèÿ äîñòèãàåòñÿ ïðè èñïîëüçîâàíèè -r 0,16.
    -R #Óñòàíîâèòü ïðåäåëû ïîèñêà ïàðàìåòðà Ðàéñà. Ïî óìîë÷àíèþ 0. Êîäåð îñòàòêîâ áóäåò èñêàòü íàèëó÷øèé ïàðàìåòð Ðàéñà â óêàçàííîì ïðåäåëå äëÿ êàæäîãî ðàçäåëà îñòàòêîâ. Èñïîëüçîâàíèå ýòîé îïöèè íå äàåò áîëüøîãî âûèãðûøà, íî ñèëüíî çàìåäëÿåò ðàáîòó.  ðåçóëüòàòå, îïöèè -0 ... -9 íå èñïîëüçóþò åå.
    -VÏðîâåðÿòü ïðîöåññ ñæàòèÿ.  äàííîì ñëó÷àå flac ñîçäàåò ïàðàëëåëüíûé äåêîäåð, ðàñêîäèðóþùèé âûõîä åíêîäåðà è ñðàâíèâàåò ðåçóëüòàò ñ îðèãèíàëîì. Åñëè áóäåò íàéäåíî íåñîîòâåòñòâèå, êîäèðîâàíèå ïðåêðàòèòñÿ. Âðåìÿ ðàáîòû ñ ýòîé îïöèåé óâåëè÷èâàåòñÿ, îäíàêî, ïðè ýòîì ãàðàíòèðóåòñÿ, ÷òî ôàéë áóäåò ïðàâèëüíî äåêîäèðîâàí.
     -S-, -m-, -V-, -e-, -E-, -p-, --lax-, --delete-input-file-, --sector-align èñïîëüçóþòñÿ äëÿ îòêëþ÷åíèÿ ñîîòâåòñòâóþùèõ îïöèé.
    + + +

    Íàñòðîéêè ôîðìàòà

    + + + + + + + + + + + + + + + + + + + + + + +
    -fb | -flÎïðåäåëÿåò ïîðÿäîê áàéòîâ â ôàéëå áåç çàãîëîâêà big-endian | little-endian.
    -fc nÎïðåäåëÿåò êîëè÷åñòâî êàíàëîâ â ôàéëå áåç çàãîëîâêà.
    -fp nÎïðåäåëÿåò êîëè÷åñòâî áèò íà ñýìïë â ôàéëå áåç çàãîëîâêà.
    -fs nÎïðåäåëÿåò êîëè÷åñòâî ñýìïëîâ â ñåêóíäó â ôàéëå áåç çàãîëîâêà.
    -fuÓêàçûâàåò, ÷òî ñýìïëû â ôàéëå áåç çàãîëîâêà áåççíàêîâûå (ïî óìîë÷àíèþ çíàêîâûå).
    -frÂîñïðèíèìàòü âõîäíîé (èëè âûõîäíîé ïðè äåêîäèðîâàíèè) ôàéë êàê raw ïîòîê ñýìïëîâ âíå çàâèñèìîñòè îò ñóôôèêñà.
    -fwÂîñïðèíèìàòü âõîäíîé (èëè âûõîäíîé ïðè äåêîäèðîâàíèè) ôàéë êàê RIFF WAVE âíå çàâèñèìîñòè îò ñóôôèêñà.
    + + + +

    metaflac

    + +

    metaflac - ýòî ðåäàêòîð ìåòàäàííûõ, ðàáîòàþùèé èç êîìàíäíîé ñòðîêè. Ñåé÷àñ îí òîëüêî âûâîäèò ñîäåðæèìîå áëîêîâ ìåòàäàííûõ âî .flac ôàéëå, íî ñêîðî ñ åãî ïîìîùüþ ìîæíî áóäåò âñòàâëÿòü, óäàëÿòü è ðåäàêòèðîâàòü áëîêè.

    + +

    Cåé÷àñ metaflac âûçûâàåòñÿ òîëüêî îäíèì ñïîñîáîì:

    + +

    metaflac [-v] âõîäíîé_ôàéë

    + +

    Âõîäíûì_ôàéëîì ìîæåò áûòü "-" äëÿ ñòàíäàðòíîãî ââîäà (stdin). åñëè èñïîëüçîâàòü -v, áóäåò ïîëó÷åí áîëåå ïîäðîáíûé îò÷åò.

    + + +
    +

    Ïëàãèí äëÿ XMMS

    + +

    Äëÿ åãî óñòàíîâêè íåîáõîäèìî ñêîïèðîâàòü libxmms-flac.so â êàòàëîã, ãäå íàõîäÿòñÿ ïëàãèíû ââîäà XMMS (îáû÷íî /usr/lib/xmms/Input). Áîëüøå íè÷åãî íàñòðàèâàòü íå íàäî. Äëÿ âîñïðîèçâåäåíèÿ .flac ôàéëîâ ïåðåçàïóñòèòå XMMS.

    + + +
    +

    Ïëàãèí äëÿ Winamp

    + +

    Äëÿ åãî óñòàíîâêè íåîáõîäèìî ñêîïèðîâàòü in_flac.dll â êàòàëîã, ãäå íàõîäÿòñÿ ïëàãèíû ââîäà Winamp (îáû÷íî /Plugins). Áîëüøå íè÷åãî íàñòðàèâàòü íå íàäî. Äëÿ âîñïðîèçâåäåíèÿ .flac ôàéëîâ ïåðåçàïóñòèòå Winamp.

    + + +
    +

    libFLAC

    + +

    Áèáëèîòåêà libFLAC ÿâëÿåòñÿ ðåàëèçàöèåé íà C áàçîâîãî åíêîäåðà è äåêîäåðà. Èñïîëüçóÿ ýòó áèáëèîòåêó è íàïèñàâ íåìíîãî êîäà, ìîæíî äîáàâèòü ïîääåðæêó FLAC â ñâîþ ïðîãðàììó. Óñëîâèÿ ðàñïðîñòðàíåíèÿ - LGPL. Èñõîäíûå êîäû áèáëèîòåêè libFLAC, òàêæå êàê è êîíñîëüíîãî êîäåêà è ïëàãèíîâ äîñòóïíû, è ìîãóò ïîñëóæèòü õîðîøèì ïðèìåðîì äëÿ èñïîëüçîâàíèÿ.

    + +

    libFLAC òðåáóåò ñòàíäàðòíóþ è ìàòåìàòè÷åñêóþ áèáëèîòåêè äëÿ ÿçûêà C. Ïîòîêè íå èñïîëüçóþòñÿ, îäíàêî, òàê êàê libFLAC íå èñïîëüçóåò ãëîáàëüíûå ïåðåìåííûå, áèáëèîòåêà äîëæíà áûòü thread-safe.

    + +

    Èíòåðôåéñ libFLAC îïèñàí â ïóáëè÷íûõ çàãîëîâî÷íûõ ôàéëàõ â êàòàëîãå include/FLAC. Äëÿ èñïîëüçîâàíèÿ ñêîìïèëèðîâàííîé áèáëèîòåêè íóæíû òîëüêî ïóáëè÷íûå çàãîëîâêè. Îáðàòèòå âíèìàíèå íà òî, ÷òî êîä èç src/libFLAC/, âêëþ÷àÿ çàùèùåííûå çàãîëîâî÷íûå ôàéëû èç src/libFLAC/include/ íå íóæåí.

    + +

    Â îñíîâíîì èñïîëüçîâàíèå libFLAC ñîñòîèò â ñëåäóþùåì:

    + +
      +
    1. Ïðîãðàììà ñîçäàåò ýêçåìïëÿð åíêîäåðà èëè äåêîäåðà ñ ïîìîùüþ ôóíêöèé *_new().
    2. + +
    3. Ïðîãðàììà óñòàíàâëèâàåò ïàðàìåòðû ýêçåìïëÿðà è ïðåäîñòàâëÿåò åìó îáðàòíûå âûçîâû äëÿ ÷òåíèÿ, çàïèñè, ñîîáùåíèÿ îá îøèáêàõ è ðàáîòû ñ ìåòàäàííûìè ñ ïîìîùüþ ôóíêöèé *_set_*().
    4. + +
    5. Ïðîãðàììà èíèöèàëèçèðóåò ýêçåìïëÿð, ïðîâåðÿåò ïàðàìåòðû è ãîòîâèòñÿ ê êîäèðîâàíèþ/äåêîäèðîâàíèþ, èñïîëüçóÿ ôóíêöèè *_init().
    6. + +
    7. Ïðîãðàììà âûçûâàåò ôóíêöèè *_process_*() äëÿ êîäèðîâàíèÿ èëè äåêîäèðîâàíèÿ äàííûõ, êîòîðûå â ñâîþ î÷åðåäü äåëàþò îáðàòíûå âûçîâû.
    8. + +
    9. Ïðîãðàììà çàâåðøàåò ðàáîòó ýêçåìïëÿðà ôóíêöèåé *_finish(), êîòîðàÿ ñáðàñûâàåò áóôåðû ââîäà è âûâîäà.
    10. + +
    11. Ýêçåìïëÿð ìîæåò áûòü èñïîëüçîâàí ñíîâà ëèáî óäàëåí ôóíêöèåé *_delete().
    12. + +
    + +

    Äëÿ äåêîäèðîâàíèÿ libFLAC ïðåäîñòàâëÿåò äâà óðîâíÿ äîñòóïà. Íà íèæíåì óðîâíå íàõîäèòñÿ äåêîäåð ïîòîêîâ, à íà âåðõíåì - ôàéëîâ (ÿâëÿþùèéñÿ â ñâîþ î÷åðåäü îáîëî÷êîé äëÿ ïîòîêîâîãî äåêîäåðà). Èíòåðôåéñû îïèñàíû â ôàéëàõ stream_decoder.h è file_decoder.h ñîîòâåòñòâåííî. Ôàéëîâûé äåêîäåð ñàì îñóùåñòâëÿåò îáðàòíûå âûçîâû äëÿ ÷òåíèÿ è ïðåäîñòàâëÿåò ôóíêöèè ïîèñêà. Åíêîäåð ïîêà ÷òî ðåàëèçîâàí òîëüêî íà ïîòîêîâîì óðîâíå (stream_encoder.h).

    + +

    Ñòðóêòóðû è êîíñòàíòû, îòíîñÿùèåñÿ ê ôîðìàòó, îïðåäåëåíû â ôàéëå format.h.

    + + +

    ÄÅÊÎÄÅÐ ÏÎÒÎÊÎÂ

    + +

    Ñíà÷àëà îáñóäèì äåêîäåð ïîòîêîâ. Òèï åãî ýêçåìïëÿðà FLAC__StreamDecoder. Îáû÷íî â ïðîãðàììå ýêçåìïëÿð ñîçäàåòñÿ âûçîâîì FLAC__stream_decoder_new() è èíèöèàëèçèðóåòñÿ FLAC__stream_decoder_init(). Ïðîãðàììà òàêæå ìîæåò ïðåäîñòàâëÿòü óêàçàòåëü client_data íà FLAC__stream_decoder_init(), êîòîðûé áóäåò èñïîëüçîâàòüñÿ äëÿ îáðàòíûõ âûçîâîâ.

    + + + +

    Êîãäà äåêîäåð èíèöèàëèçèðîâàí, ïðîãðàììà ìîæåò âûçâàòü îäíó èç ñëåäóþùèõ ôóíêöèé äëÿ äåêîäèðîâàíèÿ:

    + + + +

    Êîãäà äåêîäåð çàêàí÷èâàåò ðàáîòó, ýêçåìïëÿð îáðàáàòûâàåòñÿ ôóíêöèåé FLAC__stream_decoder_finish(), êîòîðàÿ ïðîâåðÿåò ñîñòîÿíèå äåêîäåðà è îñâîáîæäàåò ïàìÿòü. Çàòåì ýêçåìïëÿð ìîæåò áûòü óäàëåí ôóíêöèåé FLAC__stream_decoder_delete() èëè èíèöèàëèçèðîâàí çàíîâî äëÿ äåêîäèðîâàíèÿ äðóãîãî ïîòîêà.

    + +

    Îáðàòèòå âíèìàíèå íà òî, ÷òî ïîòîêîâûé äåêîäåð íå èìååò ïðåäñòàâëåíèÿ î ïîçèöèè â ïîòîêå, îí òîëüêî ïðåîáðàçîâûâàåò äàííûå. ×òîáû îñóùåñòâëÿòü ïîèñê â ïîòîêå ôóíêöèè îáðàòíîãî âûçîâà ìîãóò òîëüêî ñáðàñûâàòü äàííûå äåêîäåðà ôóíêöèåé FLAC__stream_decoder_flush() è íà÷èíàòü ïîäàâàòü äàííûå ñ íîâîé ïîçèöèè ñ ïîìîùüþ îáðàòíîãî âûçîâà äëÿ ÷òåíèÿ. Äåêîäåð ôàéëîâ ïîñòóïàåò èìåííî òàê.

    + + +

    ÄÅÊÎÄÅÐ ÔÀÉËÎÂ

    + +

    Äåêîäåð ôàéëîâ - ýòî îáîëî÷êà äåêîäåðà ïîòîêîâ, ïðèçâàííàÿ óïðîñòèòü ïðîöåññ äåêîäèðîâàíèÿ ôàéëîâ. Òèï åãî ýêçåìïëÿðà - FLAC__FileDecoder. Îòëè÷èå îò ïîòîêîâîãî äåêîäåðà ñîñòîèò â òîì, ÷òî âìåñòî îáðàòíîãî âûçîâà äëÿ ÷òåíèÿ (êîòîðûé îáðàáàòûâàåò ñàì äåêîäåð) ïðè èíèöèàëèçàöèè óêàçûâàåòñÿ ïóòü ê ôàéëó. Îñòàëüíûå ôóíêöèè àíàëîãè÷íû ýêâèâàëåíòàì â äåêîäåðå ïîòîêîâ.

    + +

    Òàê êàê äåêîäåð ôàéëîâ ñàì óïðàâëÿåò âõîäíûìè äàííûìè, îí ìîæåò ïðåäîñòàâèòü è ïîèñê. Îí îñóùåñòâëÿåòñÿ ìåòîäîì FLAC__file_decoder_seek_absolute().  ëþáîé ìîìåíò ïîñëå èíèöèàëèçàöèè äåêîäåðà ôàéëîâ ïðîãðàììà ìîæåò âûçâàòü ýòó ôóíêöèþ äëÿ ïîèñêà ñýìïëà â ôàéëå. Âïîñëåäñòâèè, ïðè ïåðâîì îáðàòíîì âûçîâå äëÿ çàïèñè îí áóäåò ñîäåðæàòü (âîçæîæíî íåïîëíûé) áëîê, íà÷èíàþùèéñÿ ñ ýòîãî ñýìïëà.

    + +

    Äåêîäåð ôàéëîâ òàêæå ïðåäîñòàâëÿåò ïðîâåðêó ïîäïèñè MD5. Åñëè ýòà âîçìîæíîñòü áóäåò âêëþ÷åíà ïåðåä èíèöèàëèçàöèåé, FLAC__file_decoder_finish() ñîîáùèò, åñëè ïîäïèñü MD5 ðàñïàêîâàííûõ äàííûõ íå ñîâïàäåò ñ ñîõðàíåííîé â áëîêå STREAMINFO. Ïðîâåðêà MD5 àâòîìàòè÷åñêè âûêëþ÷àåòñÿ, åñëè â áëîêå STREAMINFO íåò ïîäïèñè èëè ïðè ïîïûòêå îñóùåñòâëåíèÿ ïîèñêà. + + +

    ÅÍÊÎÄÅÐ ÏÎÒÎÊÎÂ

    + +

    Åíêîäåð ïîòîêîâ ðàáîòàåò àíàëîãè÷íî äåêîäåðó, îäíàêî èìååò ìåíüøå îáðàòíûõ âûçîâîâ è áîëüøå îïöèé. Òèï ýêçåìïëÿðà - FLAC__StreamEncoder. Äëÿ ñîçäàíèÿ íîâîãî ýêçåìïëÿðà â ïðîãðàììå íóæíî âûçâàòü ôóíêöèþ FLAC__stream_encoder_new(), à ÷òîáû ïðîèíèöèàëèçèðîâàòü åãî - FLAC__stream_encoder_init().

    + +

     îòëè÷èå îò ïðîöåññà äåêîäèðîâàíèÿ êîäèðîâàíèå â ôîðìàò FLAC èìååò ìíîæåñòâî îïöèé, âëèÿþùèõ íà ñêîðîñòü è óðîâåíü ñæàòèÿ. Êîãäà ïðîãðàììà âûçûâàåò FLAC__stream_encoder_init(), åíêîäåð ïðîâåðÿåò çíà÷åíèÿ, ïîýòîìó íåîáõîäèìî óáåäèòüñÿ, ÷òî âîçâðàùåìîå ýòîé ôóíêöèåé çíà÷åíèå - FLAC__STREAM_ENCODER_OK. Äëÿ óñòàíîâêè ïàðàìåòðîâ íóæíî èìåòü íåêîòîðîå ïðåäñòàâëåíèå î ôîðìàòå (ñì. îïèñàíèå ôîðìàòà äëÿ ïîëüçîâàòåëÿ èëè åãî ôîðìàëüíîå îïèñàíèå). Ñïèñîê íåîáõîäèìûõ ïàðàìåòðîâ ïðèâåäåí çäåñü:

    + + + +

    Ïðîãðàììà äîëæíà ïðåäîñòàâèòü FLAC__stream_encoder_init() àäðåñà äëÿ ñëåäóþùèõ îáðàòíûõ âûçîâîâ: + +

    + +

    Âûçîâ FLAC__stream_encoder_init() íåïîñðåäñòâåííî ïðîèçâîäèò îáðàòíûé âûçîâ äëÿ çàïèñè ñèãíàòóðû "fLaC" è âñåõ îïðåäåëåííûõ íà äàííûé ìîìåíò ìåòàäàííûõ.

    + +

    Ïîñëå èíèöèàëèçàöèè ýêçåìïëÿðà ïðîãðàììà ìîæåò ïåðåäàâàòü äàííûå åíêîäåðó äâóìÿ ñïîñîáàìè:

    + + + +

    Äëÿ çàâåðøåíèÿ êîäèðîâàíèÿ äàííûõ ïðîãðàììà âûçûâàåò ôóíêöèþ FLAC__stream_encoder_finish(), êîòîðàÿ êîäèðóåò îñòàâøèåñÿ äàííûå èç âõîäíîãî ïîòîêà è äåëàåò îáðàòíûé âûçîâ äëÿ ðàáîòû ñ ìåòàäàííûìè ñ êîððåêòíîé ñòàòèñòèêîé î ïðîöåññå êîäèðîâàíèÿ. Ýêçåìïëÿð ìîæåò áûòü óäàëåí ôóíêöèåé FLAC__stream_encoder_delete() èëè èíèöèàëèçèðîâàí ñíîâà äëÿ êîäèðîâàíèÿ íîâîãî ïîòîêà.

    + + +

    ÐÀÇÍÎÅ

    + +

    Íåîáõîäèìî îòìåòèòü, ÷òî êîãäà ïåðåäàþòñÿ óêàçàòåëè íà àóäèî äàííûå, èõ ïîðÿäîê èìååò çíà÷åíèå òîëüêî äëÿ ñòåðåî ïîòîêîâ. Êàíàë 0 ñîîòâåòñòâóåò ëåâîìó êàíàëó, à 1 - ïðàâîìó.

    + + +

    ÌÅÒÀÄÀÍÍÛÅ

    + +

    Ïðîãðàììû, çàïèñûâàþùèå ñâîè áëîêè ìåòàäàííûõ APPLICATION, ìîãóò óêàçàòü åíêîäåðó, ÷òîáû îí çàïèñàë áëîê ìåòàäàííûõ PADDING íóæíîãî ðàçìåðà.  ýòîì ñëó÷àå âìåñòî ïåðåçàïèñè âñåãî ïîòîêà ïîñëå êîäèðîâàíèÿ ïðîãðàììà ñìîæåò ïðîñòî çàìåíèòü áëîê PADDING íà ñâîé. Åñëè èçâåñòåí òîëüêî ìàêñèìàëüíûé ðàçìåð áëîêà APPLICATION, ïðîãðàììà ìîæåò ñîçäàòü ðåçåðâíûé áëîê ÷óòü áîëüøåãî ðàçìåðà, à ïîñëå êîäèðîâàíèÿ ðàçäåëèòü åãî íà áëîêè APPLICATION è PADDING.

    + +

    Åñëè ðàçìåð áëîêà ìåòàäàííûõ APPLICATION èçâåñòåí çàðàíåå, ðàçìåð ðåçåðâèðóåìîé îáëàñòè ìîæåò áûòü ëåãêî âû÷åñëåí. Åñëè ðàçìåð áëîêà APPLICATION (íå âêëþ÷àÿ çàãîëîâîê áëîêà) ðàâåí N áàéòàì, òî ýêçåìïëÿðó FLAC__StreamEncoder ïåðåä èíèöèàëèçàöèåé íóæíî ïåðåäàòü çíà÷åíèå N+4. Ýòî íóæíî, ÷òîáû ó÷åñòü äîïîëíèòåëüíîå ìåñòî íåîáõîäèìîå äëÿ õðàíåíèÿ èäåíòèôèêàòîðà ïðèëîæåíèÿ.

    + +

    Êîãäà èçâåñòåí òîëüêî ìàêñèìàëüíûé ðàçìåð, ñêàæåì, N áàéò, íóæíî çàðåçåðâèðîâàòü N+8 áàéò. ×åòûðå äëÿ ID ïðèëîæåíèÿ è ÷åòûðå äëÿ äîïîëíèòåëüíîãî áëîêà PADDING, êîòîðûé çàïîëíèò îñòàâøååñÿ ïðîñòðàíñòâî. Ïî îêîí÷àíèè êîäèðîâàíèÿ, êîãäà ðàçìåð áëîêà äàííûõ APPLICATION ñòàíîâèòñÿ èçâåñòíîé è ðàâíîé, äîïóñòèì, M áàéòàì, íà ìåñòî ïåðâîíà÷àëüíîãî áëîêà PADDING áóäåò çàïèñàí áëîê APPLICATION è áëîê PADDING äëèíîé N-M áàéòîâ.

    + + + +

    Èçâåñòíûå îøèáêè

    + +

    Îòñëåæèâàíèå îøèáîê âåäåòñÿ íà ýòîé ñòðàíèöå ïðîåêòà, íàõîäÿùåéñÿ íà SourceForge. Åñëè Âû áóäåòå ñîîáùàòü îá îøèáêå, ïîæàëóéñòà, îñòàâüòå e-mail äëÿ êîíòàêòà.

    + +

     Copyright (c) 2001 Josh Coalson

    + + + diff --git a/doc/ru/features.html b/doc/ru/features.html index a7ad0a4..f086f05 100644 --- a/doc/ru/features.html +++ b/doc/ru/features.html @@ -1,132 +1,132 @@ - - - - - - - - - - -FLAC: õàðàêòåðèñòèêè - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |íà÷àëî |íîâîñòè |ôàéëû | - õàðàêòåðèñòèêè |öåëè |ôîðìàò |
    |id |  -ñðàâíåíèå |  -ðàçðàáîòêà |äîêóìåíòàöèÿ |ññûëêè |àâòîðû |
    - -

    - - - - - -
    |english | - ðóññêèé |

    - - -

    FLAC: õàðàêòåðèñòèêè

    - -

    FLAC - ýòî àááðåâèàòóðà îò free lossless audio codec (ñâîáîäíûé êîäåê, îáåñïå÷èâàþùèé ñæàòèå áåç ïîòåðü). Ïðîåêò FLAC âêëþ÷àåò:

    - -

    - -

    "Ñâîáîäà" îçíà÷àåò, ÷òî ñïåöèôèêàöèÿ ïîòîêîâîãî ôîðìàòà îòíîñèòñÿ ê êàòåãîðèè public domain (ïðîåêò FLAC îñòàâëÿåò çà ñîáîé ïðàâî óñòàíàâëèâàòü ñïåöèôèêàöèè è ñåðòèôèöèðîâàòü îòíîñÿùèåñÿ ê íåìó ïðîäóêòû íà ñîâìåñòèìîñòü), à òàêæå òî, ÷òî íè ôîðìàò, íè îäèí èç ðåàëèçîâàííûõ ìåòîäîâ êîäèðîâàíèÿ/äåêîäèðîâàíèÿ íå çàïàòåíòîâàíû. Ýòî òàêæå çíà÷èò, ÷òî èñõîäíèêè libFLAC äîñòóïíû ïî ëèöåíçèè LGPL, à èñõîäíèêè flac è ïëàãèíîâ - ïî GPL.

    - - -

    Õàðàêòåðèñòèêè FLAC:

    - -

    - -

    Íåêîòîðûå äîïîëíèòåëüíûå ïðåèìóùåñòâà, âûòåêàþùèå èç ïðèâåäåííûõ âûøå õàðàêòåðèñòèê:

    - -

    - -

    ×åãî íåò âî FLAC?

    - -

    - -

     Copyright (c) 2001 Josh Coalson

    - - - + + + + + + + + + + +FLAC: õàðàêòåðèñòèêè + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    |íà÷àëî |íîâîñòè |ôàéëû | + õàðàêòåðèñòèêè |öåëè |ôîðìàò |
    |id |  +ñðàâíåíèå |  +ðàçðàáîòêà |äîêóìåíòàöèÿ |ññûëêè |àâòîðû |
    + +

    + + + + + +
    |english | + ðóññêèé |

    + + +

    FLAC: õàðàêòåðèñòèêè

    + +

    FLAC - ýòî àááðåâèàòóðà îò free lossless audio codec (ñâîáîäíûé êîäåê, îáåñïå÷èâàþùèé ñæàòèå áåç ïîòåðü). Ïðîåêò FLAC âêëþ÷àåò:

    + +

    + +

    "Ñâîáîäà" îçíà÷àåò, ÷òî ñïåöèôèêàöèÿ ïîòîêîâîãî ôîðìàòà îòíîñèòñÿ ê êàòåãîðèè public domain (ïðîåêò FLAC îñòàâëÿåò çà ñîáîé ïðàâî óñòàíàâëèâàòü ñïåöèôèêàöèè è ñåðòèôèöèðîâàòü îòíîñÿùèåñÿ ê íåìó ïðîäóêòû íà ñîâìåñòèìîñòü), à òàêæå òî, ÷òî íè ôîðìàò, íè îäèí èç ðåàëèçîâàííûõ ìåòîäîâ êîäèðîâàíèÿ/äåêîäèðîâàíèÿ íå çàïàòåíòîâàíû. Ýòî òàêæå çíà÷èò, ÷òî èñõîäíèêè libFLAC äîñòóïíû ïî ëèöåíçèè LGPL, à èñõîäíèêè flac è ïëàãèíîâ - ïî GPL.

    + + +

    Õàðàêòåðèñòèêè FLAC:

    + +

    + +

    Íåêîòîðûå äîïîëíèòåëüíûå ïðåèìóùåñòâà, âûòåêàþùèå èç ïðèâåäåííûõ âûøå õàðàêòåðèñòèê:

    + +

    + +

    ×åãî íåò âî FLAC?

    + +

    + +

     Copyright (c) 2001 Josh Coalson

    + + + diff --git a/doc/ru/format.html b/doc/ru/format.html index 3c8fca9..7172180 100644 --- a/doc/ru/format.html +++ b/doc/ru/format.html @@ -1,901 +1,901 @@ - - - - - - - - - - -FLAC: ôîðìàò - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |íà÷àëî |íîâîñòè |ôàéëû |õàðàêòåðèñòèêè |öåëè | - ôîðìàò |
    |id |ñðàâíåíèå |ðàçðàáîòêà |äîêóìåíòàöèÿ |ññûëêè |àâòîðû |
    - -

    - - - - - -
    |english | - ðóññêèé |

    - - -

    FLAC: ôîðìàò

    - - -

    Ôîðìàò

    - -

    Çäåñü ïðèâåäåíî ïîëíîå îïèñàíèå ôîðìàòà FLAC. Ôîðìàò ñåé÷àñ íàõîäèòñÿ íà ñòàäèè áåòà-òåñòèðîâàíèÿ. Ýòî çíà÷èò, ÷òî èçìåíåíèÿ, íàðóøàþùèå îáðàòíóþ ñîâìåñòèìîñòü, áóäóò âíîñèòüñÿ òîëüêî â ñëó÷àå îáíàðóæåíèÿ ñåðüçíûõ îøèáîê â ôîðìàòå. Äî ïåðâîãî îôèöèàëüíîãî ðåëèçà ëó÷øå âîçäåðæàòüñÿ îò èñïîëüçîâàíèÿ FLAC äëÿ äîëãîâðåìåííîãî àðõèâèðîâàíèÿ äàííûõ.

    - - -

    Îò àâòîðà

    - -

    Âî-ïåðâûõ, êàê îñíîâíîé ðàçðàáîò÷èê, ÿ äîëæåí îòìåòèòü, ÷òî íå ÿâëÿþñü ýêñïåðòîì â îáëàñòè ñæàòèÿ, ïîýòîìó ÷óâñòâóþ ñåáÿ îáÿçàííûì ïîáëàãîäàðèòü ìíîãèõ ëþäåé, ðàáîòàâøèõ íàä óëó÷øåíèåì àëãîðèòìîâ êîìïðåññèè àóäèîäàííûõ. Îòäåëüíóþ áëàãîäàðíîñòü ÿ âûðàæàþ:

    - -

    -
  • Ý. Ðîáèíñîíó çà ðàáîòó íàä Shorten. Åãî êîä è ñòàòüÿ ïîñëóæèëè îòïðàâíîé òî÷êîé äëÿ íåñêîëüêèõ îñíîâíûõ ìåòîäîâ, çàëîæåííûõ âî FLAC. FLAC ðàçâèë èäåþ ïîñòîÿííûõ ïðåäèêòîðîâ, èñïîëüçóåìóþ â Shorten.
  • - -
  • Ñ. Ãîëîìáó è Ðîáåðòó Ðàéñó. Èõ óíèâåðñàëüíûå êîäû èñïîëüçóþòñÿ êîäåðîì ýíòðîïèè.
  • - -
  • Í. Ëåâèíñîíó è Äæ. Äàðáèíó. Áàçîâûé åíêîäåð èñïîëüçóåò ðàçðàáîòàííûé è óëó÷øåííûé èìè àëãîðèòì äëÿ îïðåäåëåíèÿ LPC êîýôôèöèåíòîâ èç êîýôôèöèåíòîâ àâòîêîððåëÿöèè.
  • - -
  • È, êîíå÷íî æå, Ê. Øåííîíó.
  • -

    - -

    --Äæîø Êîëñîí

    - - - -

    Îáëàñòü ïðèìåíåíèÿ

    - -

    Îáùåèçâåñòíî, ÷òî íåò àëãîðèòìà, ñïîñîáíîãî ñæàòü áåç ïîòåðü âõîäíûå äàííûå ëþáîãî òèïà. Áîëüøèíñòâî àðõèâàòîðîâ ïîçèöèîíèðóþòñÿ äëÿ ðàáîòû ñ äàííûìè îïðåäåëåííîãî âèäà è îïòèìèçèðóþòñÿ äëÿ ýòîé îáëàñòè. FLAC ïðåäíàçíà÷åí äëÿ ñæàòèÿ àóäèîäàííûõ. Íåñìîòðÿ íà òî, ÷òî îí ìîæåò ñæàòü áåç ïîòåðü äàííûå ëþáîãî òèïà, òîëüêî îïðåäåëåííûé ââîä àðõèâèðóåòñÿ õîðîøî. FLAC èñïîëüçóåò òîò ôàêò, ÷òî îáû÷íî àóäèîäàííûå èìåþò âûñîêèé ïîðÿäîê êîððåëÿöèè ìåæäó ñýìïëàìè.

    - -

     îáëàñòè àóäèî ñóùåñòâóåò ìíîæåñòâî âîçìîæíûõ ïîäðàçäåëîâ. Íàïðèìåð, ðå÷ü ñ íèçêèì áèòðåéòîì, ìíîãîêàíàëüíàÿ ìóçûêà ñ âûñîêîé ÷àñòîòîé äèñêðåòèçàöèè è ò.ä. FLAC íå íàöåëåí íà êàêîé-ëèáî ïîäðàçäåë, îäíàêî áîëüøèíñòâî ïàðàìåòðîâ ïî óìîë÷àíèþ áàçîâîãî åíêîäåðà ðàññ÷èòàíû íà CD-àóäèî (ò.å. 44.1êÃö, 2 êàíàëà, 16 áèò íà ñýìïë). Âëèÿíèå ïàðàìåòðîâ êîäèðîâàíèÿ íà ðàçíûå òèïû àóäèî áóäåò ðàññìîòðåíî ïîçæå.

    - -
    -

    Àðõèòåêòóðà

    - -

    Ïîäîáíî áîëüøèíñòâó ïðîãðàìì ïîäáíîãî ðîäà, åíêîäåð FLAC âûïîëíÿåò ñëåäóþùèå äåéñòâèÿ:

    - -

    -
  • Ðàçáèåíèå íà áëîêè. Ââîä ðàçáèâàåòñÿ íà ìíîæåñòâî ïîñëåäîâàòåëüíûõ áëîêîâ, êîòîðûå ìîãóò èìåòü ðàçëè÷íûé ðàçìåð. Îïòèìàëüíûé ðàçìåð áëîêà îáû÷íî çàâèñèò îò ìíîãèõ ôàêòîðîâ, òàêèõ êàê ÷àñòîòà äèñêåòèçàöèè, ñïåêòðàëüíàÿ õàðàêòåðèñòèêà âî âðåìåíè è ò.ä. Íåñìîòðÿ íà òî, ÷òî ôîðìàò FLAC ïîçâîëÿåò èñïîëüçîâàòü â ïîòîêå áëîêè ðàçëè÷íîãî ðàçìåðà, áàçîâûé åíêîäåð èñïîëüçóåò ïîñòîÿííûé ðàçìåð.
  • - -
  • Ìåæêàíàëüíàÿ äåêîððåëÿöèÿ.  ñëó÷àå ñòåðåîïîòîêîâ åíêîäåð ñîçäàåò ñðåäíèé è ðàçíîñòíûé ñèãíàëû, îñíîâàííûå íà ñðåäíåì çíà÷åíèè ìåæäó ëåâûì è ïðàâûì êàíàëàìè è èõ ðàçíîñòè ñîîòâåòñòâåííî. Íà ñëåäóþùèé ýòàï êîäèðîâàíèÿ ïåðåäàåòñÿ ëó÷øèé èç âàðèàíòîâ ñæàòîãî ñèãíàëà.
  • - -
  • Ïðîãíîçèðîâàíèå. Äàëåå åíêîäåð ïûòàåòñÿ íàéòè ìàòåìàòè÷åñêîå îïèñàíèå ñèãíàëà (îáû÷íî ïðèáëèçèòåëüíîå). Çà÷àñòóþ îíî çíà÷èòåëüíî ìåíüøå ñàìîãî ñèãíàëà. Òàê êàê ìåòîäû ïðåäñêàçàíèÿ èçâåñòíû è êîäåðó, è äåêîäåðó â ïîòîêå íóæíî óêàçàòü òîëüêî ïàðàìåòðû ïðåäèêòîðà. Ñåé÷àñ FLAC èñïîëüçóåò ÷åòûðå ðàçëè÷íûõ êëàññà ïðåäèêòîðîâ (îïèñàííûõ â ðàçäåëå Ïðîãíîçèðîâàíèå), íî â ôîðìàòå ïðåäóñìîòðåíî ìåñòî äëÿ äîïîëíèòåëüíûõ ìåòîäîâ. FLAC äîïóñêàåò èçìåíåíèå êëàññà ïðåäèêòîðà îò áëîêà ê áëîêó è äàæå â ïðåäåëàõ êàíàëà â áëîêå.
  • - -
  • Êîäèðîâàíèå îñòàòêîâ. Åñëè ïðåäèêòîð íå îïèñûâàåò ñèãíàë òî÷íî, ðàçíèöà ìåæäó îðèãèíàëüíûì ñèãíàëîì è ñïðîãíîçèðîâàííûì (íàçûâàåìûì åùå îøèáî÷íûì èëè îñòàòî÷íûì) äîëæíà áûòü çàêîäèðîâàíà áåç ïîòåðü. Åñëè ïðåäñêàçàíèå ýôôåêòèâíî, îñòàòî÷íûé ñèãíàë áóäåò çàíèìàòü ìåíüøå áèò íà ñýìïë, ÷åì îðèãèíàëüíûé ñèãíàë. Ñåé÷àñ FLAC èñïîëüçóåò òîëüêî îäèí ìåòîä äëÿ êîäèðîâàíèÿ îñòàòêîâ (ñì. ðàçäåë Êîäèðîâàíèå îñòàòêîâ), îäíàêî â ôîðìàòå ïðåäóñìîòðåíî ìåñòî äëÿ äîïîëíèòåëüíûõ ìåòîäîâ. FLAC äîïóñêàåò èçìåíåíèå ìåòîäà êîäèðîâàíèÿ îñòàòêîâ îò áëîêà ê áëîêó è äàæå â ïðåäåëàõ êàíàëà â áëîêå.
  • -

    - -

     äîïîëíåíèå êî âñåìó îïðåäåëåíà ñèñòåìà ìåòàäàííûõ, ïîçâîëÿþùàÿ äîáàâëÿòü â íà÷àëî ïîòîêà ïðîèçâîëüíóþ èíôîðìàöèþ.

    - - - -

    Îïðåäåëåíèÿ

    - -

    Ìíîãèå òåðìèíû, òàêèå êàê "áëîê" è "ôðåéì", èìåþò ðàçëè÷íîå çíà÷åíèå â ñõåìàõ êîäèðîâàíèÿ. Íàïðèìåð, ôðåéì â mp3 ñîîâåòñòâóåò ìíîãèì ñýìïëàì âî âñåõ êàíàëàõ, â òî âðåìÿ êàê ôðåéì S/PDIF ïðåäñòàâëÿåò òîëüêî îäèí ñýìïë äëÿ êàæäîãî êàíàëà. Îáðàòèòå âíèìàíèå íà òî, ÷òî, ãîâîðÿ î "áëîêàõ" è "ïîäáëîêàõ", ìû ññûëàåìñÿ íà íåçàêîäèðîâàííûå àóäèîäàííûå, à òåðìèíû "ôðåéì" è "ïîäôðåéì" èñïîëüçóåì äëÿ äàííûõ ñæàòûõ FLAC.

    - -

    -
  • Áëîê - ýòî îäèí èëè áîëåå ñýìïëîâ, íàõîäÿùèõñÿ â íåñêîëüêèõ êàíàëàõ.
  • - -
  • Ïîäáëîê - ýòî îäèí èëè áîëåå ñýìïëîâ èç îäíîãî êàíàëà. Òàêèì îáðàçîì, áëîê ñîäåðæèò ïîäáëîê äëÿ êàæäîãî êàíàëà è âñå ïîäáëîêè â íåì ñîäåðæàò îäèíàêîâîå êîëè÷åñòâî ñýìïëîâ.
  • - -
  • Ðàçìåð áëîêà - ýòî êîëè÷åñòâî ñýìïëîâ â ëþáîì èç ñâîèõ ïîäáëîêîâ. Íàïðèìåð, áëîê äëèíîé â îäíó ñåêóíäó ñ ÷àñòîòîé äåñêðåòèçàöèè 44.1êÃö èìååò ðàçìåð áëîêà 44100 âíå çàâèñèìîñòè îò êîëè÷åñòâà êàíàëîâ.
  • - -
  • Ôðåéì - ýòî çàãîëîâîê è îäèí èëè íåñêîëüêî ïîäôðåéìîâ.
  • - -
  • Ïîäôðåéì - ýòî çàãîëîâîê è îäèí èëè íåñêîëüêî çàêîäèðîâàííûõ ñýìïëîâ èç äàííîãî êàíàëà. Âñå ïîäôðåéìû â äàííîì ôðåéìå ñîäåðæàò îäèíàêîâîå êîëè÷åñòâî ñýìïëîâ.
  • -

    - - -
    -

    Ðàçáèåíèå íà áëîêè

    - -

    Ðàçìåð áëîêîâ ñèëüíî âëèÿåò íà óðîâåíü ñæàòèÿ. Åñëè ðàçìåð áëîêà áóäåò ñëèøêîì ìàë, òî â èòîãå ïîëó÷èòñÿ î÷åíü ìíîãî ôðåéìîâ, à ýòî çíà÷èò, ÷òî íà çàãîëîâêè áóäåò ïîòðà÷åíî ìíîãî áèòîâ. Åñëè æå ðàçìåð áëîêà áîëüøîé, à õàðàêòåðèñòèêè ñèãíàëà ñèëüíî âàðüèðóþòñÿ, åíêîäåð íå ñìîæåò íàéòè õîðîøèé ïðåäèêòîð. ×òîáû óïðîñòèòü êîäåê, FLAC îïðåäåëÿåò ìèíèìàëüíûé ðàçìåð áëîêà â 16 ñýìïëîâ, à ìàêñèìàëüíûé â 65535 ñýìïëîâ. Ýòîò èíòåðâàë ïîêðûâàåò îïòèìàëüíûå ðàçìåðû áëîêîâ äëÿ âñåõ àóäèîäàííûõ, ïîääåðæèâàåìûõ FLAC.

    - -

    Ñåé÷àñ áàçîâûé åíêîäåð èñïîëüçóåò ïîñòîÿííûé ðàçìåð áëîêà, îïòèìèçèðîâàííûé ïî ÷àñòîòå äèñêðåòèçàöèè ââîäà. Ïîñëåäóþùèå âåðñèè ñìîãóò èçìåíÿòü ðàçìåð áëîêà â çàâèñèìîñòè îò õàðàêòåðèñòèê ñèãíàëà.

    - -

    Ðàçáèòûå íà áëîêè äàííûå ïåðåäàþòñÿ íà ñòàäèþ ïðîãíîçèðîâàíèÿ ïî îäíîìó ïîäáëîêó. Êàæäûé ïîäáëîê êîäèðóåòñÿ â ïîäôðåéì íåçàâèñèìî, à ïîçæå îíè îáúåíäèíÿþòñÿ âî ôðåéì. Òàê êàê êàæäûé êàíàë êîäèðóåòñÿ îòäåëüíî, ýòî îçíà÷àåò, ÷òî îäèí êàíàë ñòåðåî ôðåéìà ìîæåò ñæèìàòüñÿ êàê ïîñòîÿííûé ïîäôðåéì, à âòîðîé êàê LPC ïîäôðåéì.

    - - -
    -

    Ìåæêàíàëüíàÿ äåêîððåëÿöèÿ

    - -

     áîëüøèíñòâå ñëó÷àåâ â ñòåðåî ïîòîêàõ ñóùåñòâóåò äîñòàòî÷íûé óðîâåíü êîððåëÿöèè ìåæäó ëåâûì è ïðàâûì êàíàëàìè. FLAC ïîçâîëÿåò ôðåéìàì â ñòåðåî ïîòîêàõ èìåòü ðàçëè÷íîå ðàñïðåäåëåíèå êàíàëîâ, à åíêîäåð ìîæåò èñïîëüçîâàòü ëó÷øåå ïðåäñòàâëåíèå.

    - -

    -
  • Íåçàâèñèìîå. Ëåâûé è ïðàâûé êàíàëû êîäèðóþòñÿ íåçàâèñèìî.
  • - -
  • Ðàçíîñòíîå. Ëåâûé è ïðàâûé êàíàë ïðåîáðàçîâûâàþòñÿ â ñðåäíèé è îñòàòî÷íûé êàíàëû. Ñðåäíèé êàíàë - ýòî ñðåäíåå çíà÷åíèå ëåâîãî è ïðàâîãî ñèãíàëîâ, à îñòàòî÷íûé - ðàçíèöà ìåæäó íèìè (ëåâûé ìèíóñ ïðàâûé).
  • - -
  • Ëåâîñòîðîííåå. Êîäèðóåòñÿ ëåâûé è îñòàòî÷íûé êàíàëû.
  • - -
  • Ïðàâîîñòîðîííåå. Êîäèðóåòñÿ ïðàâûé è îñòàòî÷íûé êàíàëû.
  • -

    - -

    Îêàçûâàåòñÿ, ÷òî ëåâîñòîðîííåå è ïðàâîñòîðîííåå êîäèðîâàíèå ìîãóò áûòü áîëåå ýôôåêòèâíûìè âî ìíîãèõ ôðåéìàõ, íåñìîòðÿ íà òî, ÷òî íåîáõîäèìîå äëÿ îðèãèíàëüíîãî ñèãíàëà êîëè÷åñòâî áèòîâ íà ñýìïë íåìíîãî áîëüøå, ÷åì äëÿ íåçàâèñèìîãî èëè óñðåäíåííîãî êîäèðîâàíèÿ.

    - - -
    -

    Ïðîãíîçèðîâàíèå

    - -

    FLAC èñïîëüçóåò ÷åòûðå ìåòîäà äëÿ ìîäåëèðîâàíèÿ âõîäíîãî ñèãíàëà:

    - -

    -
  • Äîñëîâíûé. Ïî ñóùåñòâó ýòî ïðîãíîçèðîâàíèå ñèãíàëà íóëåâîãî óðîâíÿ. Ïðåäèêòîðîì ñèãíàëà ÿâëÿåòñÿ ñàì ñèãíàë, ïîòîìó ñæàòèå íå ïðîèñõîäèò. Ýòî îáðàçåö, ñ êîòîðûì ñâåðÿþòñÿ âñå îñòàëüíûå ïðåäèêòîðû. Åñëè ïåðåäàòü åíêîäåðó ñëó÷àéíûå äàííûå, äëÿ âñåõ ïîäáëîêîâ ñêîðå âñåãî áóäåò èñïîëüçîâàí äîñëîâíûé ïðåäèêòîð. Òàê êàê íåîáðàáîòàííûé ñèãíàë íå ïðîõîäèò ñòàäèþ êîäèðîâàíèÿ îñòàòêîâ, ðåçóëüòàòû íå áóäóò ñîâïàäàòü ñ ëèíåéíûì ïðåäèêòîðîì íóëåâîãî ïîðÿäêà.
  • - -
  • Ïîñòîÿííûé. Ýòîò ïðåäèêòîð èñïîëüçóåòñÿ, êîãäà ïîäáëîê ñîäåðæèò öèôðîâóþ òèøèíó, ò.å. íà âõîä ïîñòóïàåò îäíà êîíñòàíòà. Ñèãíàë êîäèðóåòñÿ ïî âñåé äëèíå è äîáàâëÿåòñÿ ê ïîòîêó.
  • - -
  • Ïîñòîÿííûé ëèíåéíûé ïðåäèêòîð. FLAC èñïîëüçóåò êëàññ ýôôåêòèâíî âû÷èñëÿåìûõ ïîñòîÿííûõ ëèíåéíûõ ïðåäèêòîðîâ (õîðîøåå îïèñàíèå ïðèâåäåíî ó Shorten è AudioPak). FLAC äîáàâëÿåò ïðåäèêòîð ÷åòâåðòîãî óðîâíÿ ê èñïîëüçîâàííûì â Shorten ïðåäèêòîðàì îò íóëåâîãî äî òðåòüåãî óðîâíÿ. Òàê êàê ïðåäèêòîðû ïîñòîÿííû, â ñæàòîì ïîòîêå íåîáõîäèìî ñîõðàíèòü òîëüêî ïîðÿäîê ïðåäèêòîðà. Îñòàòî÷íûé ñèãíàë ïåðåäàåòñÿ êîäåðó îñòàòêîâ.
  • - -
  • Ëèíåéíîå ïðîãíîçèðîâàíèå FIR. Äëÿ áîëåå òî÷íîãî ìîäåëèðîâàíèÿ (çà ñ÷åò ìåäëåííîé ðàáîòû) FLAC ïîääåðæèâàåò ëèíåéíîå ïðîãíîçèðîâàíèå FIR äî 32 ïîðÿäêà (ñì. Shorten è AudioPak). Áàçîâûé åíêîäåð èñïîëüçóåò ìåòîä Ëåâèíñîíà-Äàðáèíà äëÿ ðàñ÷åòà LPC êîýôôèöèåíòîâ èç êîýôôèöèåíòîâ àâòîêîððåëÿöèè è êîýôôèöèåíòû ðàçáèâàþòñÿ ïåðåä âû÷èñëåíèåì îñòàòêîâ.  òî âðåìÿ êàê òàêèå åíêîäåðû êàê Shorten èñïîëüçóþò ïîñòîÿííîå ðàçáèåíèå äëÿ âñåãî ââîäà, FLAC ïîçâîëÿåò äëÿ êàæäîãî ôðåéìà ìåíÿòü òî÷íîñòü êîýôôèöèåíòà ðàçáèåíèÿ. Áàçîâûé åíêîäåð FLAC îöåíèâàåò îïòèìàëüíóþ òî÷íîñòü, îñíîâûâàÿñü íà ðàçìåðå áëîêà è äèàïàçîíå îðèãèíàëüíîãî ñèãíàëà.
  • -

    - - -

    Êîäèðîâàíèå îñòàòêîâ

    - -

    Äëÿ êîäèðîâàíèÿ îñòàòî÷íîãî ñèãíàëà îò ñòàäèè ïðîãíîçèðîâàíèÿ FLAC èñïîëüçóåò äâà ïîõîæèõ ìåòîäà. Îñòàòî÷íûé ñèãíàë ñæèìàåòñÿ ñ èñïîëüçîâàíèåì êîäîâ Ðàéñà ñëåäóþùèìè ñïîñîáàìè:

    - -
      -
    1. Åíêîäåð îöåíèâàåò îäèíî÷íûé ïàðàìåòð Ðàéñà, îñíîâàííûé íà ðàçíèöå îñòàòêà è êîäîâ Ðàéñà. Âåñü îñòàòîê êîäèðóåòñÿ ñ èñïîëüçîâàíèåì ýòîãî ïàðàìåòðà.
    2. - -
    3. Îñòàòîê äåëèòñÿ íà íåñêîëüêî èíòåðâàëîâ îäèíàêîâîé äëèíû è êàæäûé èç íèõ êîäèðóåòñÿ ñî ñâîèì ïàðàìåòðîì Ðàéñà, îñíîâàííûì íà ñðåäíåì çíà÷åíèè äëÿ äàííîãî èíòåðâàëà.
    4. -
    - -

    Îáðàòèòå âíèìàíèå íà òî, ÷òî ïåðâûé ìåòîä ÿâëÿåòñÿ ÷àñòíûì ñëó÷àåì âòîðîãî ñ îäíèì èíòåðâàëîì. Îòëè÷èå ñîñòîèò â òîì, ÷òî â ïåðâîì ìåòîäå ïàðàìåòð Ðàéñà âû÷èñëÿåòñÿ äëÿ ðàçíèöû îñòàòêà, à íå äëÿ ñðåäíåãî çíà÷åíèÿ.

    - -

    Â ôîðìàòå FLAC çàðåçåðâèðîâàíî ìåñòî äëÿ äðóãèõ ìåòîäîâ êîäèðîâàíèÿ. Êòî-íèáóäü ìîæåò ïîïûòàòüñÿ íàéòè ëó÷øåå êîíòåêñòíîå ìîäåëèðîâàíèå ïàðàìåòðà Ðàéñà èëè êîäèðîâàíèÿ Õàôôìàíà. Îïèñàíèÿ íåñêîëüêèõ óíèâåðñàëüíûõ êîäîâ ìîæíî íàéòè íà ñòðàíèöàõ LOCO-I è pucrunch.

    - - - -

    Ôîðìàò

    - -

     ýòîì ðàçäåëå îïèñûâàåòñÿ ôîðìàò ôàéëà. Ôîðìàò FLAC íå ïðåäóñìàòðèâàåò ïîëÿ äëÿ íîìåðà âåðñèè, îäíàêî ñîäåðæèò íåñêîëüêî çàðåçåðâèðîâàííûõ ïîçèöèé. Ïîñëåäóþùèå âåðñèè ñìîãóò èñïîëüçîâàòü ýòî ìåñòî áåç íàðóøåíèÿ ñîâìåñòèìîñòè ñ ïðåäûäóùèìè âåðñèÿìè. Áîëåå ñòàðûå âåðñèè äåêîäåðîâ ìîãóò ëèáî ïðåêðàùàòü ðàáîòó, ëèáî ïðîïóñêàòü äàííûå, çàêîäèðîâàííûå íîâûìè ìåòîäàìè. Êðîìå òîãî çàðåçåðâèðîâàíû íåêîòîðûå ñïåöèàëüíûå çíà÷åíèÿ, êîòîðûå íå ìîãóò ïîÿâèòüñÿ íè â îäíîé èç âåðñèé ôîðìàòà. Ýòî îáû÷íî äåëàåòñÿ äëÿ óëó÷øåíèÿ ìåõàíèçìà ñèíõðîíèçàöèè.

    - -

    Âñå ÷èñëà â ôîðìàòå FLAC ÿâëÿþòñÿ öåëûìè, ìëàäøèé áàéò êîòîðûõ çàïèñûâàåòñÿ âíà÷àëå (big-endian). ×èñëà ÿâëÿþòñÿ áåççíàêîâûìè, êðîìå òåõ ñëó÷àåâ, ãäå ÿâíî óêàçàíî îáðàòíîå.

    - -
    -

    Ê ïîòîêó FLAC ìîãóò áûòü äîáàâëåíû òýãè ID3v1 (â êîíöå) è ID3v2 (â íà÷àëå). Ýòè äàííûå íå îòíîñÿòñÿ ê ôîðìàòó, îäíàêî äåêîäåð óìååò ïðîïóñêàòü èõ. Ïëàãèíû ââîäà ïîääåðæèâàþò òýãè ID3v1.

    - -

    Ïåðåä ïîëíûì îïèñàíèåì ôîðìàòà ïðèâåäåì åãî êðàòêèé îáçîð.

    - -

    -
  • Ôîðìàò FLAC ñîñòîèò èç ìàðêåðà "fLaC" â íà÷àëå ïîòîêà, çà êîòîðûì ñëåäóåò îáÿçàòåëüíûé áëîê STREAMINFO, ëþáîå êîëè÷åñòâî äðóãèõ áëîêîâ ìåòàäàííûõ, à çàòåì àóäèîôðåéìû.
  • - -
  • FLAC ïîääåðæèâàåò äî 128 áëîêîâ ìåòàäàííûõ. Ñåé÷àñ îïðåäåëåíû:
  • - -
    - -
  • Àóäèîïîòîê ñîñòîèò èç îäíîãî èëè íåñêîëüêèõ ôðåéìîâ. Ó êàæäîãî ôðåéìà åñòü çàãîëîâîê, ñîñòîÿùèé èç êîäà ñèíõðîíèçàöèè, èíôîðìàöèè î ôðåéìå (ðàçìåð áëîêà, ÷àñòîòà äèñêðåòèçàöèè, êîëè÷åñòâî êàíàëîâ è ò.ï.) è âîñüìèáèòíîé êîíòðîëüíîé ñóììû. Òàêæå â çàãîëîâêå ñîäåðæèòñÿ ëèáî íîìåð ïåðâîãî ñýìïëà âî ôðåéìå îòíîñèòåëüíî âñåãî ïîòîêà (äëÿ ïîòîêîâ ñ èçìåíÿþùèìñÿ ðàçìåðîì áëîêà) èëè íîìåð ôðåéìà (äëÿ ïîòîêîâ ñ ïîñòîÿííûì ðàçìåðîì áëîêà). Ýòî ïîçâîëÿåò ïðîèçâîäèòü áûñòðûé è òî÷íûé ïîèñê. Äàëåå ñëåäóþò çàêîäèðîâàííûå ïîäôðåéìû (ïî îäíîìó íà êàæäûé êàíàë) è, íàêîíåö, ôðåéì, äîïîëíåííûé íóëÿìè äî ãðàíèöû áàéòà. Êàæäûé ïîäôðåéì èìååò ñâîé çàãîëîâîê, îïðåäåëÿþùèé ñïîñîá åãî äåêîäèðîâàíèÿ.
  • - -
  • Òàê êàê äåêîäåð ìîæåò íà÷àòü ðàáîòó â ñåðåäèíå ïîòîêà, äîëæåí áûòü ìåòîä îïðåäåëåíèÿ íà÷àëà ôðåéìà. Êàæäûé ôðåéì íà÷èíàåòñÿ ñ 14-áèòíîãî ñèíõðîíèçèðóþùåãî êîäà. Ýòîò êîä íå ìîæåò ïîÿâëÿòüñÿ íè â îäíîì äðóãîì ìåñòå çàãîëîâêà ôðåéìà. Îäíàêî òàê êàê ýòî êîä ìîæåò ïîÿâèòüñÿ â ïîäôðåéìàõ, ó äåêîäåðà åñòü äâà ñïîñîáà îïðåäåëèòü, ÷òî äàííàÿ ïîñëåäîâàòåëüíîñòü ÿâëÿåòñÿ íà÷àëîì ôðåéìà. Ñíà÷àëà ïðîâåðÿåòñÿ êîððåêòíîñòü äàííûõ âî âñåì ôðåéìå. Îäíàêî ýòîò øàã íå ìîæåò ãàðàíòèðîâàòü îòñóòñòâèÿ îøèáîê, ïîýòîìó äîïîëíèòåëüíî ïðîèçâîäèòñÿ ðàñ÷åò âîñüìèáèòíîé êîíòðîëüíîé ñóììû çàãîëîâêà ôðåéìà è ïîëó÷åííûé ðåçóëüòàò ñðàâíèâàåòñÿ ñî çíà÷åíèåì, ïîëó÷åííûì ïðè êîäèðîâàíèè è çàïèñàííûì ïîñëå çàãîëîâêà ôðåéìà.
  • - -
  • Êàæäûé ôðåéì äîëæåí ñîäåðæàòü îñíîâíóþ èíôîðìàöèþ î ïîòîêå, òàê êàê äåêîäåð ìîæåò íå èìåòü äîñòóïà ê áëîêó ìåòàäàííûõ STREAMINFO â íà÷àëå ïîòîêà. Ñþäà âõîäèò ÷àñòîòà äèñêðåòèçàöèè, êîëè÷åñòâî áèò íà ñýìïë, êîëè÷åñòâî êàíàëîâ è ò.ä. Òàê êàê çàãîëîâîêè ôðåéìîâ âíîñÿò äîïîëíèòåëüíûå íàêëàäíûå ðàñõîäû, òî îíè âëèÿþò óðîâåíü ñæàòèÿ. ×òîáû ñäåëàòü çàãîëîâêè ôðåéìîâ ìèíèìàëüíûìè, FLAC èñïîëüçóåò òàáëèöû ïîèñêà äëÿ íàèáîëåå ÷àñòî èñïîëüçóåìûõ çíà÷åíèé ïàðàìåòðîâ ôðåìîâ. Íàïðèìåð, ÷àñòü, îòâå÷àþùàÿ çà ÷àñòîòó äèñêðåòèçàöèè, çàíèìàåò 4 áèòà. Âîñåìü ïðåäîïðåäåëåííûõ çíà÷åíèé ñîîòâåòñòâóþò íàèáîëåå ñàìûì ðàñïðîñòðàíåííûì ÷àñòîòàì (8/16/22.05/24/32/44.1/48/96 êÃö). Îäíàêî äîïîëíèòåëüíûå ÷àñòîòû ìîãóò áûòü èñïîëüçîâàíû ñ ïîìîùüþ ñïåöèàëüíîãî íàáîðà áèòîâ, óêàçûâàþùåãî äåêîäåðó, ÷òî íåîáõîäèìîå çíà÷åíèå íàõîäèòñÿ â êîíöå çàãîëîâêà. Òàêîé æå ìåòîä èñïîëüçóåòñÿ äëÿ óêàçàíèÿ ðàçìåðà áëîêà è êîëè÷åñòâà áèòîâ íà ñýìïë.  ýòîì ñëó÷àå çàãîëîâîê îñòàåòñÿ äîñòàòî÷íî ìàëûì äëÿ íàèáîëåå ðàñïðîñòðàíåííûõ òèïîâ àóäèîäàííûõ.
  • - -
  • Ïîäôðåéìû (ïî îäíîìó äëÿ êàæäîãî êàíàëà) êîäèðóþòñÿ âî ôðåéìå îòäåëüíî è õðàíÿòñÿ â ïîòîêå ïîñëåäîâàòåëüíî. Ýòî âåäåò ê óïðîùåíèþ äåêîäåðà, îäíàêî öåíîé ýòîìó ÿâëÿåòñÿ óâåëè÷åíèå ðàçìåðîâ áóôôåðà. Ó êàæäîãî ïîäôðåéìà åñòü ñâîé çàãîëîâîê, îïðåäåëÿþùèé åãî àòòðèáóòû (ìåòîä è ïîðÿäîê ïðîãíîçèðîâàíèÿ, ïàðàìåòðû êîäèðîâàíèÿ îñòàòêîâ è ò.ä.). Çà çàãîëîâêîì ñëåäóþò àóäèîäàííûå äëÿ ýòîãî êàíàëà.
  • - -
    -
  • Âî FLAC îïðåäåëåíî ñïåöèàëüíîå ïîäìíîæåñòâî ôîðìàòà (Subset format). Âñå ïîòîêè ñæàòûå ýòèì ìåòîäîì íà ñàìîì äåëå ÿâëÿþòñÿ ïîòîêîâûìè, òî åñòü äåêîäåð, êîòîðûé íå ìîæåò èñêàòü â ïîòîêå, èìååò âîçìîæíîñòü ïåðåéòè ê ëþáîé åãî òî÷êå è íà÷àòü âîñïðîèçâåäåíèå. Äëÿ ôàéëîâ, îòâå÷àþùèõ ýòîìó ïîäìíîæåñòâó ôîðìàòà, çíà÷èòåëüíî ïðîùå ñäåëàòü àïïàðàòíûé äåêîäåð. flac ïî óìîë÷àíèþ ñîçäàåò ïîòîêè, îòâå÷àþùèå ýòîìó ïîäìíîæåñòâó ôîðìàòà. Êëþ÷ --lax çàïðåùàåò ñîçäàíèå òàêèõ ïîòîêîâ. ×òîáû ôàéë îòâå÷àë äàííîìó ïîäìíîæåñòâó, äëÿ íåãî äîëæíû âûïîëíÿòüñÿ ñëåäóþùèå îãðàíè÷åíèÿ:
  • - -
      -
    • Çíà÷åíèå áèòîâ, îòâå÷àþùèõ çà ðàçìåð áëîêà, äîëæíî áûòü â ïðåäåëàõ 0001-0101 èëè 1000-1111. Ïîòîê äîëæåí ñîñòîÿòü èç áëîêîâ îäèíàêîâîãî ðàçìåðà (çà èñêëþ÷åíèåì ïîñëåäíåãî), à â áëîêå ìåòàäàííûõ STREAMINFO äîëæíû áûòü óêàçàíû ðàâíûå çíà÷åíèÿ äëÿ ìèíèìàëüíîãî è ìàêñèìàëüíîãî ðàçìåðà áëîêà.
    • - -
    • Êîëè÷åñòâî áèò íà ñýìïë â çàãîëîâêå ôðåéìà äîëæíî îïèñûâàòüñÿ ñëåäóþùèì äèàïàçîíîì áèòîâ 001-110.
    • - -
    • ×àñòîòà äèñêðåòèçàöèè â çàãîëîâêå ôðåéìà äîëæíà îïèñûâàòüñÿ ñëåäóþùèì äèàïàçîíîì áèòîâ 0001-1011.
    • -
    -

    - -

     òàáëèöå ïðèâåäåíî ôîðìàëüíîå îïèñàíèå ôîðìàòà FLAC. ×èñëà â óãëîâûõ ñêîáêàõ ïîêàçûâàþò êîëè÷åñòâî áèòîâ, èñïîëüçóåìûõ äàííûì ïîëåì.

    - - -

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ÏÎÒÎÊ
    <32>"fLaC", ìàðêåð ïîòîêà FLAC â êîäèðîâêå ASCII, îçíà÷àþùèé, ÷òî ïåðâûìè ÷åòûðüìÿ áàéòàìè ïîòîêà ÿâëÿþòñÿ 0x66, 0x4C, 0x61, 0x43
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕÎáÿçàòåëüíûé áëîê ìåòàäàííûõ STREAMINFO, ñîäåðæàùèé îñíîâíûå ñâîéñòâà ïîòîêà
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ*Íîëü èëè áîëüøå áëîêîâ ìåòàäàííûõ
    ÔÐÅÉÌ+Îäèí èëè áîëüøå àóäèîôðåéìîâ

    - - -

    - - - - - - - - - - - - - - - -
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ
    ÇÀÃÎËÎÂÎÊ_ÁËÎÊÀ_ÌÅÒÀÄÀÍÍÛÕÇàãîëîâîê, îïðåäåëÿþùèé òèï è ðàçìåð áëîêà ìåòàäàííûõ
    ÑÎÄÅÐÆÈÌÎÅ_ÁËÎÊÀ_ÌÅÒÀÄÀÍÍÛÕ 

    - - -

    - - - - - - - - - - - - - - - - - - - -
    ÇÀÃÎËÎÂÎÊ_ÁËÎÊÀ_ÌÅÒÀÄÀÍÍÛÕ
    <1>Ôëàã ðàâíûé 1, åñëè äàííûé áëîê ìåòàäàííûõ ÿâëÿåòñÿ ïîñëåäíèì ïåðåä àóäèîáëîêàìè, 0 â ïðîòèâíîì ñëó÷àå
    <7>Òèï áëîêà: -
      -
    • 0 : STREAMINFO
    • -
    • 1 : PADDING
    • -
    • 2 : APPLICATION
    • -
    • 3 : SEEKTABLE
    • -
    • 4-127 : çàðåçåðâèðîâàíû
    • -
    -
    <24>Äëèíà â áàéòàõ ñîîòâåòñòâóþùåãî áëîêà ìåòàäàííûõ (íå âêëþ÷àåò ðàçìåð ÇÀÃÎËÎÂÊÀ_ÁËÎÊÀ_ÌÅÒÀÄÀÍÍÛÕ)

    - - -

    - - - - - - - - - - -
    ÑÎÄÅÐÆÈÌÎÅ_ÁËÎÊÀ_ÌÅÒÀÄÀÍÍÛÕ
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_STREAMINFO || ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_PADDING || ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_APPLICATION || ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_SEEKTABLEÑîäåðæèìîå áëîêà äîëæíî ñîîòâåòñòâîâàòü òèïó áëîêà, óêàçàííîìó â çàãîëîâêå

    - - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_STREAMINFO
    <16>Ìèíèìàëüíûé ðàçìåð áëîêà â ñýìïëàõ â äàííîì ïîòîêå.
    <16>Ìàêñèìàëüíûé ðàçìåð áëîêà â ñýìïëàõ â äàííîì ïîòîêå.
    <24>Ìèíèìàëüíûé ðàçìåð ôðåéìà â áàéòàõ â äàííîì ïîòîêå. Åñëè çíà÷åíèå íå èçâåñòíî, òî 0
    <24>Ìàêñèìàëüíûé ðàçìåð ôðåéìà â áàéòàõ â äàííîì ïîòîêå. Åñëè çíà÷åíèå íå èçâåñòíî, òî 0
    <20>×àñòîòà äèñêðåòèçàöèè â Ãö.
    <3>(Êîëè÷åñòâî êàíàëîâ) - 1. FLAC ïîääåðæèâàåò îò 1 äî 8 êàíàëîâ.
    <5>(Êîëè÷åñòâî áèòîâ íà ñýìïë) - 1. FLAC ïîääåðæèâàåò îò 1 äî 32 áèòîâ íà ñýìïë. Ñåé÷àñ áàçîâûå äåêîäåð è åíêîäåð ïîääåðæèâàþò äî 24 áèò íà ñýìïë.
    <36>Êîëè÷åñòâî ñýìïëîâ â ïîòîêå. Åñëè çäåñü óêàçàí 0, òî êîëè÷åñòâî ñýìïëîâ íå èçâåñòíî.
    <128>Ïîäïèñü MD5 íåñæàòûõ àóäèîäàííûõ, êîòîðàÿ ïîçâîëÿåò äåêîäåðó îáíàðóæèòü îøèáêó, äàæå åñëè åå íàëè÷èå íå íàðóøàåò ñòðóêòóðó ïîòîêà.
     Ïðèìå÷àíèÿ: -
      -
    • Âî FLAC îïðåäåëåí ìèíèìàëüíûé ðàçìåð áëîêà â 16 ñýìïëîâ è ìàêñèìàëüíûé ðàçìåð - 65535. Ýòî çíà÷èò, ÷òî çíà÷åíèÿ îò 0 äî 15 â ñîîòâåòñòâóþùèõ ïîëÿõ ÿâëÿþòñÿ îøèáî÷íûìè.
    • -
    -

    - - -

    - - - - - - - - - - -
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_PADDING
    <n>n áèò ñî çíà÷åíèåì 0. n äîëæíî áûòü êðàòíî 8.

    - - -

    - - - - - - - - - - - - - - - -
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_APPLICATION
    <32>Çàðåãèñòðèðîâàííûé id ïðèëîæåíèÿ (ñì. ñòðàíèöó ðåãèñòðàöèè)
    <n>Äàííûå ïðèëîæåíèÿ. n äîëæíî áûòü êðàòíî 8.

    - - -

    - - - - - - - - - - - - - - - -
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_SEEKTABLE
    SEEKPOINT+Îäíà èëè áîëüøå òî÷åê ïîèñêà.
     Ïðèìå÷àíèÿ: -
      -
    • Êîëè÷åñòâî òî÷åê ïîèñêà îïðåäåëÿåòñÿ â ïîëå çàãîëîâêà áëîêà ìåòàäàííûõ "äëèíà" è ðàâíî äëèíà / 18.
    • -
    -

    - - -

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_SEEKPOINT
    <64>Íîìåð ñýìïëà â ïîòîêå ïåðâîãî ñýìïëà öåëåâîãî ôðåéìà èëè 0xFFFFFFFFFFFFFFFF äëÿ çàðåçåðâèðîâàííîé òî÷êè.
    <64>Ñìåùåíèå â áàéòàõ îò ïåðâîãî áàéòà ïåðâîãî çàãîëîâêà ôðåéìà äî ïåðâîãî áàéòà çàãîëîâêà öåëåâîãî ôðåéìà.
    <16>Êîëè÷åñòâî ñýìïëîâ â öåëåâîì ôðåéìå.
     Ïðèìå÷àíèÿ: -
      -
    • Äëÿ çàðåçåðâèðîâàííûõ òî÷åê çíà÷åíèÿ âòîðîãî è òðåòüåãî ïîëÿ íå îïðåäåëåíû.
    • -
    • Òî÷êè ïîèñêà äîëæíû áûòü îòñîðòèðîâàíû â òàáëèöå ïî âîçðàñòàíèþ íîìåðà ñýìïëà.
    • -
    • Ïîëÿ, ñîäåðæàùèå íîìåðà ïåðâûõ ñýìïëîâ â öåëåâîì ôðåéìå, äîëæíû áûòü óíèêàëüíû äëÿ âñåõ òî÷åê, çà èñêëþ÷åíèåì çàðåçåðâèðîâàííûõ.
    • -
    • Èç äâóõ ïðåäûäóùèõ çàìå÷àíèé ñëåäóåò, ÷òî çàðåçåðâèðîâàííûõ òî÷åê ìîæåò áûòü ëþáîå êîëè÷åñòâî, íî îíè äîëæíû ðàñïîëàãàòüñÿ â êîíöå òàáëèöû.
    • -
    -

    - - -

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ÔÐÅÉÌ
    ÇÀÃÎËÎÂÎÊ_ÔÐÅÉÌÀ 
    ÏÎÄÔÐÅÉÌ+Îäèí ïîäôðåéì íà êàíàë
    <?>Âûðàâíèâàíèå íóëÿìè íà ãðàíèöó áàéòà
    ÇÀÂÅÐØÅÍÈÅ_ÔÐÅÉÌÀ 

    - - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ÇÀÃÎËÎÂÎÊ_ÔÐÅÉÌÀ
    <14>êîä ñèíõðîíèçàöèè 11111111111110
    <2>Çàðåçåðâèðîâàíî: -
      -
    • 00 : îáÿçàòåëüíîå çíà÷åíèå
    • -
    • 01-11 : çàðåçåðâèðîâàíî äëÿ ïîñëåäóþùåãî èñïîëüçîâàíèÿ
    • -
    -
    <4>Ðàçìåð áëîêà â ñýìïëàõ: -
      -
    • 0000 : ïîëó÷èòü èç áëîêà ìåòàäàííûõ STREAMINFO
    • -
    • 0001 : 192 ñýìïëà
    • -
    • 0010-0101 : 576 * (2^(2-n)) ñýìïëîâ, ò.å. 576/1152/2304/4608
    • -
    • 0110 : ïîëó÷èòü 8 áèòîâ (ðàçìåð áëîêà-1) èç êîíöà çàãîëîâêà
    • -
    • 0111 : ïîëó÷èòü 16 áèòîâ (ðàçìåð áëîêà-1) èç êîíöà çàãîëîâêà
    • -
    • 1000-1111 : 256 * (2^(n-8)) ñýìïëîâ, ò.å. 256/512/1024/2048/4096/8192/16384/32768
    • -
    -
    <4>×àñòîòà äèñêðåòèçàöèè: -
      -
    • 0000 : ïîëó÷èòü èç áëîêà ìåòàäàííûõ STREAMINFO
    • -
    • 0001-0011 : çàðåçåðâèðîâàíû
    • -
    • 0100 : 8êÃö
    • -
    • 0101 : 16êÃö
    • -
    • 0110 : 22.05êÃö
    • -
    • 0111 : 24êÃö
    • -
    • 1000 : 32êÃö
    • -
    • 1001 : 44.1êÃö
    • -
    • 1010 : 48êÃö
    • -
    • 1011 : 96êÃö
    • -
    • 1100 : ïîëó÷èòü 8-áèòíîå çíà÷åíèå ÷àñòîòû äèñêðåòèçàöèè (â êÃö) èç êîíöà çàãîëîâêà
    • -
    • 1101 : ïîëó÷èòü 16-áèòíîå çíà÷åíèå ÷àñòîòû äèñêðåòèçàöèè (â Ãö) èç êîíöà çàãîëîâêà
    • -
    • 1110 : ïîëó÷èòü 16-áèòíîå çíà÷åíèå ÷àñòîòû äèñêðåòèçàöèè (â äÃö) èç êîíöà çàãîëîâêà
    • -
    • 1111 : îøèáî÷íîå çíà÷åíèå, ÷òîáû íå äîïóñòèòü ñîâïàäåíèå ñ êîäîì ñèíõðîíèçàöèè
    • -
    -
    <4>Ðàñïîëîæåíèå êàíàëîâ: -
      -
    • 0000-0111 : (êîëè÷åñòâî íåçàâèñèìûõ êàíàëîâ)-1. Êîãäà == 0001, êàíàë 0 ÿâëÿåòñÿ ëåâûì, 1 - ïðàâûì
    • -
    • 1000 : ëåâîñòîðîííåå ñòåðåî: êàíàë 0 ÿâëÿåòñÿ ëåâûì, 1 - ðàçíîñòíûì
    • -
    • 1001 : ïðàâîñòîðîííåå ñòåðåî: êàíàë 0 ÿâëÿåòñÿ ðàçíîñòíûì, 1 - ïðàâûì
    • -
    • 1010 : óñðåäíåííîå ñòåðåî: êàíàë 0 ÿâëÿåòñÿ óñðåäíåííûì, 1 - ðàçíîñòíûì -
    • 1011-1111 : çàðåçåðâèðîâàíû
    • -
    -
    <3>Êîëè÷åñòâî áèòîâ íà ñýìïë: -
      -
    • 000 : ïîëó÷èòü èç áëîêà ìåòàäàííûõ STREAMINFO
    • -
    • 001 : 8 áèò íà ñýìïë
    • -
    • 010 : 12 áèò íà ñýìïë
    • -
    • 011 : çàðåçåðâèðîâàíî
    • -
    • 100 : 16 áèò íà ñýìïë
    • -
    • 101 : 20 áèò íà ñýìïë
    • -
    • 110 : 24 áèò íà ñýìïë
    • -
    • 111 : çàðåçåðâèðîâàíî
    • -
    -
    <1>Äîïîëíåíèå íóëåì äî ãðàíèöû áèòà, ÷òîáû íå äîïóñòèòü îøèáêó ñèíõðîíèçàöèè
    <?>Åñëè (ïåðåìåííûé ðàçìåð áëîêà)
    -    <8-56> : íîìåð ñýìïëà â ôîðìàòå UTF-8 (ðàçìåð äåêîäèðóåìîãî ÷èñëà 36 áèò)
    - èíà÷å
    -    <8-48> : íîìåð ôðåéìà â ôîðìàòå UTF-8 (ðàçìåð äåêîäèðóåìîãî ÷èñëà 31 áèò)
    <?>Åñëè (áèòîâàÿ ìàñêà ðàçìåðà áëîêà == 11x)
    -    8/16 áèò (ðàçìåð áëîêà - 1)
    <?>Åñëè (áèòîâàÿ ìàñêà ÷àñòîòû äèñêðåòèçàöèè == 11xx)
    -    ÷àñòîòà äèñêðåòèçàöèè 8/16 áèò
    <8>8-áèòíàÿ ïîëèíîìàëüíàÿ êîíòðîëüíàÿ ñóììà (x^8 + x^2 + x^1 + x^0) äàííûõ çàãîëîâêà, âêëþ÷àÿ êîä ñèíõðîíèçàöèè (x èíèöèàëèçèðóåòñÿ íóëåì).
     Ïðèìå÷àíèÿ: -
      -
    • Áèòû ðàçìåðà áëîêà 0000-0101 ìîãóò áûòü èñïîëüçîâàíû òîëüêî ïðè ïîñòîÿííîì èõ çíà÷åíèè âî âñåì áëîêå. Áèòû 0110-0111 ìîãóò èñïîëüçîâàòüñÿ â ëþáîì ñëó÷àå, äåêîäåð áóäåò ñ÷èòàòü, ÷òî ïîòîê èìååò ïåðåìåííóþ äëèíó áëîêà. Ñóùåñòâóåò îäíî èñêëþ÷åíèå: åíêîäåð ìîæåò èñïîëüçîâàòü áèòû 0110-0111 â ïîñëåäíåì ôðåéìå ïîòîêà ñ ïîñòîÿííûì ðàçìåðîì áëîêà â òîì ñëó÷àå, åñëè åãî äëèíà íå áîëüøå, ÷åì èñïîëüçóåìàÿ â âñåì ïîòîêå.
    • -
    -

    - - -

    - - - - - - - - - - -
    ÇÀÂÅÐØÅÍÈÅ_ÔÐÅÉÌÀ
    <16>16-áèòíàÿ ïîëèíîìàëüíàÿ êîíòðîëüíàÿ ñóììà (x^16 + x^15 + x^2 + x^0) âñåãî ôðåéìà (x èíèöèàëèçèðóåòñÿ íóëåì).

    - - -

    - - - - - - - - - - - - - - - -
    ÏÎÄÔÐÅÉÌ
    ÇÀÃÎËÎÂÎÊ_ÏÎÄÔÐÅÉÌÀ 
    ÏÎÄÔÐÅÉÌ_CONSTANT || ÏÎÄÔÐÅÉÌ_FIXED ||
    ÏÎÄÔÐÅÉÌ_LPC || ÏÎÄÔÐÅÉÌ_VERBATIM
    Òèï ïîäôðåéìà, îïðåäåëÿåìûé â çàãîëîâêå

    - - -

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ÇÀÃÎËÎÂÎÊ_ÏÎÄÔÐÅÉÌÀ
    <1>Áèò ðàâíûé 0, ÷òîáû ïðåäîòâðàòèòü îøèáêó ñèíõðîíèçàöèè.
    <6>Òèï ïîäôðåéìà: - -
    <1+k>Ôëàã 'íåèñïîëüçóåìûå áèòû íà ñýìïë': -
      -
    • 0 : â èñõîäíîì ïîäáëîêå íåò 'íåèñïîëüçóåìûõ áèòîâ', k=0
    • -
    • 1 : k 'íåèñïîëüçóåìûõ áèòîâ' â èñõîäíîì ïîäáëîêå, ÷èñëî çàïèñûâàåòñÿ â óíàðíîì ôîðìàòå; ò.å. äëÿ k=3 ïîñëåäîâàòåëüíîñòü áèòîâ áóäåò âûãëÿäåòü òàê 001, äëÿ k=7 - 0000001.
    • -
    -
     Ïðèìå÷àíèÿ: -
      -
    • 'Íåèñïîëüçóåìûå áèòû' âñòðå÷àþòñÿ â áëîêå äàííûõ, åñëè ïðè çàÿâëåííûõ n áèòàõ çíà÷èìûìè ÿâëÿþòñÿ òîëüêî m. ×èñëî k = n - m è áóäåò îïðåäåëÿòü êîëè÷åñòâî 'íåèñïîëüçóåìûõ áèòîâ'. Íàïðèìåð, åñëè âñå 16-áèòíûå ñýìïëû â èñõîäíîì ïîäáëîêå âûãëÿäÿò êàê 'xxxxxxxxxxxxx000', òî åíêîäåð êîäèðóåò òîëüêî 13 áèò, è çàïîìèíàåò, ÷òî 3 áèòà ÿâëÿþòñÿ 'íåèñïîëüçóåìûìè'.
    • -
    -

    - - -

    - - - - - -
    - -ÏÎÄÔÐÅÉÌ_CONSTANT
    -<n>Íåñæàòîå ïîñòîÿííîå çíà÷åíèå ïîäáëîêà, n ðàâíî êîëè÷åñòâó áèòîâ íà ñýìïë âî ôðåéìå

    - - -

    - - - - - - - - - - - - - - - -
    ÏÎÄÔÐÅÉÌ_FIXED
    <n>Íåêîäèðóåìûå íà÷àëüíûå ñýìïëû (n ðàâíî êîëè÷åñòâó áèòîâ íà ñýìïë âî ôðåéìå, óìíîæåííîìó íà ïîðÿäîê ïðåäèêòîðà).
    ÎÑÒÀÒÎÊÇàêîäèðîâàííûé îñòàòîê

    - - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ÏÎÄÔÐÅÉÌ_LPC
    <n>Íåêîäèðóåìûå íà÷àëüíûå ñýìïëû (n ðàâíî êîëè÷åñòâó áèòîâ íà ñýìïë âî ôðåéìå, óìíîæåííîìó íà ïîðÿäîê ïðåäèêòîðà).
    <4>(òî÷íîñòü äèñêðåòíîãî êîýôôèöèåòà ëèíåéíîãî ïðîãíîçèðîâàíèÿ (QLP)) - 1. Çíà÷åíèå 1111 íåäîïóñòèìî.
    <5>Íåîáõîäèìûé ñäâèã äèñêðåòíîãî êîýôôèöèåòà ëèíåéíîãî ïðîãíîçèðîâàíèÿ â áèòàõ. (Ïðèìå÷àíèå: ýòî ÷èñëî - çíàêîâîå äîïîëíåíèå äî äâóõ).
    <n>Íåñæàòûå êîýôôèöèåíòû ïðîãíîçèðîâàíèÿ (n = òî÷íîñòü QLP * ïîðÿäîê LPC) (Ïðèìå÷àíèå: ýòè ÷èñëà ÿâëÿþòñÿ çíàêîâûìè äîïîëíåíèÿìè äî äâóõ).
    ÎÑÒÀÒÎÊÇàêîäèðîâàííûé îñòàòîê

    - - -

    - - - - - - - - - - -
    ÏÎÄÔÐÅÉÌ_VERBATIM
    <n*i>Íåñæàòûé ïîäáëîê, n ðàâíî êîëè÷åñòâó áèòîâ íà ñýìïë âî ôðåéìå, i - ðàçìåðó áëîêà

    - - -

    - - - - - - - - - - - - - - - - - - - - -
    ÎÑÒÀÒÎÊ
    <2>Ìåòîä êîäèðîâàíèÿ îñòàòêîâ: -
      -
    • 00 : êîäèðîâàíèå Ðàéñà
    • -
    • 01-11 : çàðåçåðâèðîâàíî
    • -
    -
    ÎÑÒÀÒÊÈ_ÑÆÀÒÛÅ_ÌÅÒÎÄÎÌ_ÐÀÉÑÀ 
     Ïðèìå÷àíèÿ: -
      -
    • Ñåé÷àñ FLAC èñïîëüçóåò òîëüêî îäèí ìåòîä êîäèðîâàíèÿ îñòàòêîâ
    • -
    -

    - - -

    - - - - - - - - - - - - - - - -
    ÎÑÒÀÒÊÈ_ÑÆÀÒÛÅ_ÌÅÒÎÄÎÌ_ÐÀÉÑÀ
    <4>Ïîðÿäîê ðàçäåëà
    ÐÀÇÄÅË_ÐÀÉÑÀ+Äàëåå ñëåäóþò 2^ïîðÿäîê ðàçäåëîâ

    - - -

    - - - - - - - - - - - - - - - -
    ÐÀÇÄÅË_ÐÀÉÑÀ
    <4(+5)>Ïàðàìåòð êîäèðîâàíèÿ: -
      -
    • 0000-1110 : Ïàðàìåòð Ðàéñà.
    • -
    • 1111 : Êîä, îçíà÷àþùèé, ÷òî ðàçäåë ÿâëÿåòñÿ íåñæàòûì è â íåì èñïîëüçóþòñÿ n áèòîâ íà ñýìïë. n ïðåäñòàâëåíî 5-áèòíûì ÷èñëîì. -
    -
    <?>Çàêîäèðîâàííûé îñòàòîê. Êîëè÷åñòâî ñýìïëîâ n â ðàçäåëå îïðåäåëÿåòñÿ ñëåäóþùèì îáðàçîì: -
      -
    • Åñëè ïîðÿäîê ðàçäåëà ðàâåí 0, n ðàâíî ðàçìåðó áëîêà äëÿ ôðåéìà.
    • -
    • èíà÷å åñëè ýòî íå ïåðâûé ðàçäåë ïîäôðåéìà, n = (ðàçìåð áëîêà äëÿ ôðåéìà / (2^ïîðÿäîê ðàçäåëà))
    • -
    • èíà÷å n = (ðàçìåð áëîêà äëÿ ôðåéìà / (2^ïîðÿäîê ðàçäåëà)) - ïîðÿäîê ïðåäèêòîðà
    • -
    -

    - - -

     Copyright (c) 2001 Josh Coalson

    - - - + + + + + + + + + + +FLAC: ôîðìàò + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    |íà÷àëî |íîâîñòè |ôàéëû |õàðàêòåðèñòèêè |öåëè | + ôîðìàò |
    |id |ñðàâíåíèå |ðàçðàáîòêà |äîêóìåíòàöèÿ |ññûëêè |àâòîðû |
    + +

    + + + + + +
    |english | + ðóññêèé |

    + + +

    FLAC: ôîðìàò

    + + +

    Ôîðìàò

    + +

    Çäåñü ïðèâåäåíî ïîëíîå îïèñàíèå ôîðìàòà FLAC. Ôîðìàò ñåé÷àñ íàõîäèòñÿ íà ñòàäèè áåòà-òåñòèðîâàíèÿ. Ýòî çíà÷èò, ÷òî èçìåíåíèÿ, íàðóøàþùèå îáðàòíóþ ñîâìåñòèìîñòü, áóäóò âíîñèòüñÿ òîëüêî â ñëó÷àå îáíàðóæåíèÿ ñåðüçíûõ îøèáîê â ôîðìàòå. Äî ïåðâîãî îôèöèàëüíîãî ðåëèçà ëó÷øå âîçäåðæàòüñÿ îò èñïîëüçîâàíèÿ FLAC äëÿ äîëãîâðåìåííîãî àðõèâèðîâàíèÿ äàííûõ.

    + + +

    Îò àâòîðà

    + +

    Âî-ïåðâûõ, êàê îñíîâíîé ðàçðàáîò÷èê, ÿ äîëæåí îòìåòèòü, ÷òî íå ÿâëÿþñü ýêñïåðòîì â îáëàñòè ñæàòèÿ, ïîýòîìó ÷óâñòâóþ ñåáÿ îáÿçàííûì ïîáëàãîäàðèòü ìíîãèõ ëþäåé, ðàáîòàâøèõ íàä óëó÷øåíèåì àëãîðèòìîâ êîìïðåññèè àóäèîäàííûõ. Îòäåëüíóþ áëàãîäàðíîñòü ÿ âûðàæàþ:

    + +

    +
  • Ý. Ðîáèíñîíó çà ðàáîòó íàä Shorten. Åãî êîä è ñòàòüÿ ïîñëóæèëè îòïðàâíîé òî÷êîé äëÿ íåñêîëüêèõ îñíîâíûõ ìåòîäîâ, çàëîæåííûõ âî FLAC. FLAC ðàçâèë èäåþ ïîñòîÿííûõ ïðåäèêòîðîâ, èñïîëüçóåìóþ â Shorten.
  • + +
  • Ñ. Ãîëîìáó è Ðîáåðòó Ðàéñó. Èõ óíèâåðñàëüíûå êîäû èñïîëüçóþòñÿ êîäåðîì ýíòðîïèè.
  • + +
  • Í. Ëåâèíñîíó è Äæ. Äàðáèíó. Áàçîâûé åíêîäåð èñïîëüçóåò ðàçðàáîòàííûé è óëó÷øåííûé èìè àëãîðèòì äëÿ îïðåäåëåíèÿ LPC êîýôôèöèåíòîâ èç êîýôôèöèåíòîâ àâòîêîððåëÿöèè.
  • + +
  • È, êîíå÷íî æå, Ê. Øåííîíó.
  • +

    + +

    --Äæîø Êîëñîí

    + + + +

    Îáëàñòü ïðèìåíåíèÿ

    + +

    Îáùåèçâåñòíî, ÷òî íåò àëãîðèòìà, ñïîñîáíîãî ñæàòü áåç ïîòåðü âõîäíûå äàííûå ëþáîãî òèïà. Áîëüøèíñòâî àðõèâàòîðîâ ïîçèöèîíèðóþòñÿ äëÿ ðàáîòû ñ äàííûìè îïðåäåëåííîãî âèäà è îïòèìèçèðóþòñÿ äëÿ ýòîé îáëàñòè. FLAC ïðåäíàçíà÷åí äëÿ ñæàòèÿ àóäèîäàííûõ. Íåñìîòðÿ íà òî, ÷òî îí ìîæåò ñæàòü áåç ïîòåðü äàííûå ëþáîãî òèïà, òîëüêî îïðåäåëåííûé ââîä àðõèâèðóåòñÿ õîðîøî. FLAC èñïîëüçóåò òîò ôàêò, ÷òî îáû÷íî àóäèîäàííûå èìåþò âûñîêèé ïîðÿäîê êîððåëÿöèè ìåæäó ñýìïëàìè.

    + +

     îáëàñòè àóäèî ñóùåñòâóåò ìíîæåñòâî âîçìîæíûõ ïîäðàçäåëîâ. Íàïðèìåð, ðå÷ü ñ íèçêèì áèòðåéòîì, ìíîãîêàíàëüíàÿ ìóçûêà ñ âûñîêîé ÷àñòîòîé äèñêðåòèçàöèè è ò.ä. FLAC íå íàöåëåí íà êàêîé-ëèáî ïîäðàçäåë, îäíàêî áîëüøèíñòâî ïàðàìåòðîâ ïî óìîë÷àíèþ áàçîâîãî åíêîäåðà ðàññ÷èòàíû íà CD-àóäèî (ò.å. 44.1êÃö, 2 êàíàëà, 16 áèò íà ñýìïë). Âëèÿíèå ïàðàìåòðîâ êîäèðîâàíèÿ íà ðàçíûå òèïû àóäèî áóäåò ðàññìîòðåíî ïîçæå.

    + +
    +

    Àðõèòåêòóðà

    + +

    Ïîäîáíî áîëüøèíñòâó ïðîãðàìì ïîäáíîãî ðîäà, åíêîäåð FLAC âûïîëíÿåò ñëåäóþùèå äåéñòâèÿ:

    + +

    +
  • Ðàçáèåíèå íà áëîêè. Ââîä ðàçáèâàåòñÿ íà ìíîæåñòâî ïîñëåäîâàòåëüíûõ áëîêîâ, êîòîðûå ìîãóò èìåòü ðàçëè÷íûé ðàçìåð. Îïòèìàëüíûé ðàçìåð áëîêà îáû÷íî çàâèñèò îò ìíîãèõ ôàêòîðîâ, òàêèõ êàê ÷àñòîòà äèñêåòèçàöèè, ñïåêòðàëüíàÿ õàðàêòåðèñòèêà âî âðåìåíè è ò.ä. Íåñìîòðÿ íà òî, ÷òî ôîðìàò FLAC ïîçâîëÿåò èñïîëüçîâàòü â ïîòîêå áëîêè ðàçëè÷íîãî ðàçìåðà, áàçîâûé åíêîäåð èñïîëüçóåò ïîñòîÿííûé ðàçìåð.
  • + +
  • Ìåæêàíàëüíàÿ äåêîððåëÿöèÿ.  ñëó÷àå ñòåðåîïîòîêîâ åíêîäåð ñîçäàåò ñðåäíèé è ðàçíîñòíûé ñèãíàëû, îñíîâàííûå íà ñðåäíåì çíà÷åíèè ìåæäó ëåâûì è ïðàâûì êàíàëàìè è èõ ðàçíîñòè ñîîòâåòñòâåííî. Íà ñëåäóþùèé ýòàï êîäèðîâàíèÿ ïåðåäàåòñÿ ëó÷øèé èç âàðèàíòîâ ñæàòîãî ñèãíàëà.
  • + +
  • Ïðîãíîçèðîâàíèå. Äàëåå åíêîäåð ïûòàåòñÿ íàéòè ìàòåìàòè÷åñêîå îïèñàíèå ñèãíàëà (îáû÷íî ïðèáëèçèòåëüíîå). Çà÷àñòóþ îíî çíà÷èòåëüíî ìåíüøå ñàìîãî ñèãíàëà. Òàê êàê ìåòîäû ïðåäñêàçàíèÿ èçâåñòíû è êîäåðó, è äåêîäåðó â ïîòîêå íóæíî óêàçàòü òîëüêî ïàðàìåòðû ïðåäèêòîðà. Ñåé÷àñ FLAC èñïîëüçóåò ÷åòûðå ðàçëè÷íûõ êëàññà ïðåäèêòîðîâ (îïèñàííûõ â ðàçäåëå Ïðîãíîçèðîâàíèå), íî â ôîðìàòå ïðåäóñìîòðåíî ìåñòî äëÿ äîïîëíèòåëüíûõ ìåòîäîâ. FLAC äîïóñêàåò èçìåíåíèå êëàññà ïðåäèêòîðà îò áëîêà ê áëîêó è äàæå â ïðåäåëàõ êàíàëà â áëîêå.
  • + +
  • Êîäèðîâàíèå îñòàòêîâ. Åñëè ïðåäèêòîð íå îïèñûâàåò ñèãíàë òî÷íî, ðàçíèöà ìåæäó îðèãèíàëüíûì ñèãíàëîì è ñïðîãíîçèðîâàííûì (íàçûâàåìûì åùå îøèáî÷íûì èëè îñòàòî÷íûì) äîëæíà áûòü çàêîäèðîâàíà áåç ïîòåðü. Åñëè ïðåäñêàçàíèå ýôôåêòèâíî, îñòàòî÷íûé ñèãíàë áóäåò çàíèìàòü ìåíüøå áèò íà ñýìïë, ÷åì îðèãèíàëüíûé ñèãíàë. Ñåé÷àñ FLAC èñïîëüçóåò òîëüêî îäèí ìåòîä äëÿ êîäèðîâàíèÿ îñòàòêîâ (ñì. ðàçäåë Êîäèðîâàíèå îñòàòêîâ), îäíàêî â ôîðìàòå ïðåäóñìîòðåíî ìåñòî äëÿ äîïîëíèòåëüíûõ ìåòîäîâ. FLAC äîïóñêàåò èçìåíåíèå ìåòîäà êîäèðîâàíèÿ îñòàòêîâ îò áëîêà ê áëîêó è äàæå â ïðåäåëàõ êàíàëà â áëîêå.
  • +

    + +

     äîïîëíåíèå êî âñåìó îïðåäåëåíà ñèñòåìà ìåòàäàííûõ, ïîçâîëÿþùàÿ äîáàâëÿòü â íà÷àëî ïîòîêà ïðîèçâîëüíóþ èíôîðìàöèþ.

    + + + +

    Îïðåäåëåíèÿ

    + +

    Ìíîãèå òåðìèíû, òàêèå êàê "áëîê" è "ôðåéì", èìåþò ðàçëè÷íîå çíà÷åíèå â ñõåìàõ êîäèðîâàíèÿ. Íàïðèìåð, ôðåéì â mp3 ñîîâåòñòâóåò ìíîãèì ñýìïëàì âî âñåõ êàíàëàõ, â òî âðåìÿ êàê ôðåéì S/PDIF ïðåäñòàâëÿåò òîëüêî îäèí ñýìïë äëÿ êàæäîãî êàíàëà. Îáðàòèòå âíèìàíèå íà òî, ÷òî, ãîâîðÿ î "áëîêàõ" è "ïîäáëîêàõ", ìû ññûëàåìñÿ íà íåçàêîäèðîâàííûå àóäèîäàííûå, à òåðìèíû "ôðåéì" è "ïîäôðåéì" èñïîëüçóåì äëÿ äàííûõ ñæàòûõ FLAC.

    + +

    +
  • Áëîê - ýòî îäèí èëè áîëåå ñýìïëîâ, íàõîäÿùèõñÿ â íåñêîëüêèõ êàíàëàõ.
  • + +
  • Ïîäáëîê - ýòî îäèí èëè áîëåå ñýìïëîâ èç îäíîãî êàíàëà. Òàêèì îáðàçîì, áëîê ñîäåðæèò ïîäáëîê äëÿ êàæäîãî êàíàëà è âñå ïîäáëîêè â íåì ñîäåðæàò îäèíàêîâîå êîëè÷åñòâî ñýìïëîâ.
  • + +
  • Ðàçìåð áëîêà - ýòî êîëè÷åñòâî ñýìïëîâ â ëþáîì èç ñâîèõ ïîäáëîêîâ. Íàïðèìåð, áëîê äëèíîé â îäíó ñåêóíäó ñ ÷àñòîòîé äåñêðåòèçàöèè 44.1êÃö èìååò ðàçìåð áëîêà 44100 âíå çàâèñèìîñòè îò êîëè÷åñòâà êàíàëîâ.
  • + +
  • Ôðåéì - ýòî çàãîëîâîê è îäèí èëè íåñêîëüêî ïîäôðåéìîâ.
  • + +
  • Ïîäôðåéì - ýòî çàãîëîâîê è îäèí èëè íåñêîëüêî çàêîäèðîâàííûõ ñýìïëîâ èç äàííîãî êàíàëà. Âñå ïîäôðåéìû â äàííîì ôðåéìå ñîäåðæàò îäèíàêîâîå êîëè÷åñòâî ñýìïëîâ.
  • +

    + + +
    +

    Ðàçáèåíèå íà áëîêè

    + +

    Ðàçìåð áëîêîâ ñèëüíî âëèÿåò íà óðîâåíü ñæàòèÿ. Åñëè ðàçìåð áëîêà áóäåò ñëèøêîì ìàë, òî â èòîãå ïîëó÷èòñÿ î÷åíü ìíîãî ôðåéìîâ, à ýòî çíà÷èò, ÷òî íà çàãîëîâêè áóäåò ïîòðà÷åíî ìíîãî áèòîâ. Åñëè æå ðàçìåð áëîêà áîëüøîé, à õàðàêòåðèñòèêè ñèãíàëà ñèëüíî âàðüèðóþòñÿ, åíêîäåð íå ñìîæåò íàéòè õîðîøèé ïðåäèêòîð. ×òîáû óïðîñòèòü êîäåê, FLAC îïðåäåëÿåò ìèíèìàëüíûé ðàçìåð áëîêà â 16 ñýìïëîâ, à ìàêñèìàëüíûé â 65535 ñýìïëîâ. Ýòîò èíòåðâàë ïîêðûâàåò îïòèìàëüíûå ðàçìåðû áëîêîâ äëÿ âñåõ àóäèîäàííûõ, ïîääåðæèâàåìûõ FLAC.

    + +

    Ñåé÷àñ áàçîâûé åíêîäåð èñïîëüçóåò ïîñòîÿííûé ðàçìåð áëîêà, îïòèìèçèðîâàííûé ïî ÷àñòîòå äèñêðåòèçàöèè ââîäà. Ïîñëåäóþùèå âåðñèè ñìîãóò èçìåíÿòü ðàçìåð áëîêà â çàâèñèìîñòè îò õàðàêòåðèñòèê ñèãíàëà.

    + +

    Ðàçáèòûå íà áëîêè äàííûå ïåðåäàþòñÿ íà ñòàäèþ ïðîãíîçèðîâàíèÿ ïî îäíîìó ïîäáëîêó. Êàæäûé ïîäáëîê êîäèðóåòñÿ â ïîäôðåéì íåçàâèñèìî, à ïîçæå îíè îáúåíäèíÿþòñÿ âî ôðåéì. Òàê êàê êàæäûé êàíàë êîäèðóåòñÿ îòäåëüíî, ýòî îçíà÷àåò, ÷òî îäèí êàíàë ñòåðåî ôðåéìà ìîæåò ñæèìàòüñÿ êàê ïîñòîÿííûé ïîäôðåéì, à âòîðîé êàê LPC ïîäôðåéì.

    + + +
    +

    Ìåæêàíàëüíàÿ äåêîððåëÿöèÿ

    + +

     áîëüøèíñòâå ñëó÷àåâ â ñòåðåî ïîòîêàõ ñóùåñòâóåò äîñòàòî÷íûé óðîâåíü êîððåëÿöèè ìåæäó ëåâûì è ïðàâûì êàíàëàìè. FLAC ïîçâîëÿåò ôðåéìàì â ñòåðåî ïîòîêàõ èìåòü ðàçëè÷íîå ðàñïðåäåëåíèå êàíàëîâ, à åíêîäåð ìîæåò èñïîëüçîâàòü ëó÷øåå ïðåäñòàâëåíèå.

    + +

    +
  • Íåçàâèñèìîå. Ëåâûé è ïðàâûé êàíàëû êîäèðóþòñÿ íåçàâèñèìî.
  • + +
  • Ðàçíîñòíîå. Ëåâûé è ïðàâûé êàíàë ïðåîáðàçîâûâàþòñÿ â ñðåäíèé è îñòàòî÷íûé êàíàëû. Ñðåäíèé êàíàë - ýòî ñðåäíåå çíà÷åíèå ëåâîãî è ïðàâîãî ñèãíàëîâ, à îñòàòî÷íûé - ðàçíèöà ìåæäó íèìè (ëåâûé ìèíóñ ïðàâûé).
  • + +
  • Ëåâîñòîðîííåå. Êîäèðóåòñÿ ëåâûé è îñòàòî÷íûé êàíàëû.
  • + +
  • Ïðàâîîñòîðîííåå. Êîäèðóåòñÿ ïðàâûé è îñòàòî÷íûé êàíàëû.
  • +

    + +

    Îêàçûâàåòñÿ, ÷òî ëåâîñòîðîííåå è ïðàâîñòîðîííåå êîäèðîâàíèå ìîãóò áûòü áîëåå ýôôåêòèâíûìè âî ìíîãèõ ôðåéìàõ, íåñìîòðÿ íà òî, ÷òî íåîáõîäèìîå äëÿ îðèãèíàëüíîãî ñèãíàëà êîëè÷åñòâî áèòîâ íà ñýìïë íåìíîãî áîëüøå, ÷åì äëÿ íåçàâèñèìîãî èëè óñðåäíåííîãî êîäèðîâàíèÿ.

    + + +
    +

    Ïðîãíîçèðîâàíèå

    + +

    FLAC èñïîëüçóåò ÷åòûðå ìåòîäà äëÿ ìîäåëèðîâàíèÿ âõîäíîãî ñèãíàëà:

    + +

    +
  • Äîñëîâíûé. Ïî ñóùåñòâó ýòî ïðîãíîçèðîâàíèå ñèãíàëà íóëåâîãî óðîâíÿ. Ïðåäèêòîðîì ñèãíàëà ÿâëÿåòñÿ ñàì ñèãíàë, ïîòîìó ñæàòèå íå ïðîèñõîäèò. Ýòî îáðàçåö, ñ êîòîðûì ñâåðÿþòñÿ âñå îñòàëüíûå ïðåäèêòîðû. Åñëè ïåðåäàòü åíêîäåðó ñëó÷àéíûå äàííûå, äëÿ âñåõ ïîäáëîêîâ ñêîðå âñåãî áóäåò èñïîëüçîâàí äîñëîâíûé ïðåäèêòîð. Òàê êàê íåîáðàáîòàííûé ñèãíàë íå ïðîõîäèò ñòàäèþ êîäèðîâàíèÿ îñòàòêîâ, ðåçóëüòàòû íå áóäóò ñîâïàäàòü ñ ëèíåéíûì ïðåäèêòîðîì íóëåâîãî ïîðÿäêà.
  • + +
  • Ïîñòîÿííûé. Ýòîò ïðåäèêòîð èñïîëüçóåòñÿ, êîãäà ïîäáëîê ñîäåðæèò öèôðîâóþ òèøèíó, ò.å. íà âõîä ïîñòóïàåò îäíà êîíñòàíòà. Ñèãíàë êîäèðóåòñÿ ïî âñåé äëèíå è äîáàâëÿåòñÿ ê ïîòîêó.
  • + +
  • Ïîñòîÿííûé ëèíåéíûé ïðåäèêòîð. FLAC èñïîëüçóåò êëàññ ýôôåêòèâíî âû÷èñëÿåìûõ ïîñòîÿííûõ ëèíåéíûõ ïðåäèêòîðîâ (õîðîøåå îïèñàíèå ïðèâåäåíî ó Shorten è AudioPak). FLAC äîáàâëÿåò ïðåäèêòîð ÷åòâåðòîãî óðîâíÿ ê èñïîëüçîâàííûì â Shorten ïðåäèêòîðàì îò íóëåâîãî äî òðåòüåãî óðîâíÿ. Òàê êàê ïðåäèêòîðû ïîñòîÿííû, â ñæàòîì ïîòîêå íåîáõîäèìî ñîõðàíèòü òîëüêî ïîðÿäîê ïðåäèêòîðà. Îñòàòî÷íûé ñèãíàë ïåðåäàåòñÿ êîäåðó îñòàòêîâ.
  • + +
  • Ëèíåéíîå ïðîãíîçèðîâàíèå FIR. Äëÿ áîëåå òî÷íîãî ìîäåëèðîâàíèÿ (çà ñ÷åò ìåäëåííîé ðàáîòû) FLAC ïîääåðæèâàåò ëèíåéíîå ïðîãíîçèðîâàíèå FIR äî 32 ïîðÿäêà (ñì. Shorten è AudioPak). Áàçîâûé åíêîäåð èñïîëüçóåò ìåòîä Ëåâèíñîíà-Äàðáèíà äëÿ ðàñ÷åòà LPC êîýôôèöèåíòîâ èç êîýôôèöèåíòîâ àâòîêîððåëÿöèè è êîýôôèöèåíòû ðàçáèâàþòñÿ ïåðåä âû÷èñëåíèåì îñòàòêîâ.  òî âðåìÿ êàê òàêèå åíêîäåðû êàê Shorten èñïîëüçóþò ïîñòîÿííîå ðàçáèåíèå äëÿ âñåãî ââîäà, FLAC ïîçâîëÿåò äëÿ êàæäîãî ôðåéìà ìåíÿòü òî÷íîñòü êîýôôèöèåíòà ðàçáèåíèÿ. Áàçîâûé åíêîäåð FLAC îöåíèâàåò îïòèìàëüíóþ òî÷íîñòü, îñíîâûâàÿñü íà ðàçìåðå áëîêà è äèàïàçîíå îðèãèíàëüíîãî ñèãíàëà.
  • +

    + + +

    Êîäèðîâàíèå îñòàòêîâ

    + +

    Äëÿ êîäèðîâàíèÿ îñòàòî÷íîãî ñèãíàëà îò ñòàäèè ïðîãíîçèðîâàíèÿ FLAC èñïîëüçóåò äâà ïîõîæèõ ìåòîäà. Îñòàòî÷íûé ñèãíàë ñæèìàåòñÿ ñ èñïîëüçîâàíèåì êîäîâ Ðàéñà ñëåäóþùèìè ñïîñîáàìè:

    + +
      +
    1. Åíêîäåð îöåíèâàåò îäèíî÷íûé ïàðàìåòð Ðàéñà, îñíîâàííûé íà ðàçíèöå îñòàòêà è êîäîâ Ðàéñà. Âåñü îñòàòîê êîäèðóåòñÿ ñ èñïîëüçîâàíèåì ýòîãî ïàðàìåòðà.
    2. + +
    3. Îñòàòîê äåëèòñÿ íà íåñêîëüêî èíòåðâàëîâ îäèíàêîâîé äëèíû è êàæäûé èç íèõ êîäèðóåòñÿ ñî ñâîèì ïàðàìåòðîì Ðàéñà, îñíîâàííûì íà ñðåäíåì çíà÷åíèè äëÿ äàííîãî èíòåðâàëà.
    4. +
    + +

    Îáðàòèòå âíèìàíèå íà òî, ÷òî ïåðâûé ìåòîä ÿâëÿåòñÿ ÷àñòíûì ñëó÷àåì âòîðîãî ñ îäíèì èíòåðâàëîì. Îòëè÷èå ñîñòîèò â òîì, ÷òî â ïåðâîì ìåòîäå ïàðàìåòð Ðàéñà âû÷èñëÿåòñÿ äëÿ ðàçíèöû îñòàòêà, à íå äëÿ ñðåäíåãî çíà÷åíèÿ.

    + +

    Â ôîðìàòå FLAC çàðåçåðâèðîâàíî ìåñòî äëÿ äðóãèõ ìåòîäîâ êîäèðîâàíèÿ. Êòî-íèáóäü ìîæåò ïîïûòàòüñÿ íàéòè ëó÷øåå êîíòåêñòíîå ìîäåëèðîâàíèå ïàðàìåòðà Ðàéñà èëè êîäèðîâàíèÿ Õàôôìàíà. Îïèñàíèÿ íåñêîëüêèõ óíèâåðñàëüíûõ êîäîâ ìîæíî íàéòè íà ñòðàíèöàõ LOCO-I è pucrunch.

    + + + +

    Ôîðìàò

    + +

     ýòîì ðàçäåëå îïèñûâàåòñÿ ôîðìàò ôàéëà. Ôîðìàò FLAC íå ïðåäóñìàòðèâàåò ïîëÿ äëÿ íîìåðà âåðñèè, îäíàêî ñîäåðæèò íåñêîëüêî çàðåçåðâèðîâàííûõ ïîçèöèé. Ïîñëåäóþùèå âåðñèè ñìîãóò èñïîëüçîâàòü ýòî ìåñòî áåç íàðóøåíèÿ ñîâìåñòèìîñòè ñ ïðåäûäóùèìè âåðñèÿìè. Áîëåå ñòàðûå âåðñèè äåêîäåðîâ ìîãóò ëèáî ïðåêðàùàòü ðàáîòó, ëèáî ïðîïóñêàòü äàííûå, çàêîäèðîâàííûå íîâûìè ìåòîäàìè. Êðîìå òîãî çàðåçåðâèðîâàíû íåêîòîðûå ñïåöèàëüíûå çíà÷åíèÿ, êîòîðûå íå ìîãóò ïîÿâèòüñÿ íè â îäíîé èç âåðñèé ôîðìàòà. Ýòî îáû÷íî äåëàåòñÿ äëÿ óëó÷øåíèÿ ìåõàíèçìà ñèíõðîíèçàöèè.

    + +

    Âñå ÷èñëà â ôîðìàòå FLAC ÿâëÿþòñÿ öåëûìè, ìëàäøèé áàéò êîòîðûõ çàïèñûâàåòñÿ âíà÷àëå (big-endian). ×èñëà ÿâëÿþòñÿ áåççíàêîâûìè, êðîìå òåõ ñëó÷àåâ, ãäå ÿâíî óêàçàíî îáðàòíîå.

    + +
    +

    Ê ïîòîêó FLAC ìîãóò áûòü äîáàâëåíû òýãè ID3v1 (â êîíöå) è ID3v2 (â íà÷àëå). Ýòè äàííûå íå îòíîñÿòñÿ ê ôîðìàòó, îäíàêî äåêîäåð óìååò ïðîïóñêàòü èõ. Ïëàãèíû ââîäà ïîääåðæèâàþò òýãè ID3v1.

    + +

    Ïåðåä ïîëíûì îïèñàíèåì ôîðìàòà ïðèâåäåì åãî êðàòêèé îáçîð.

    + +

    +
  • Ôîðìàò FLAC ñîñòîèò èç ìàðêåðà "fLaC" â íà÷àëå ïîòîêà, çà êîòîðûì ñëåäóåò îáÿçàòåëüíûé áëîê STREAMINFO, ëþáîå êîëè÷åñòâî äðóãèõ áëîêîâ ìåòàäàííûõ, à çàòåì àóäèîôðåéìû.
  • + +
  • FLAC ïîääåðæèâàåò äî 128 áëîêîâ ìåòàäàííûõ. Ñåé÷àñ îïðåäåëåíû:
  • + +
    + +
  • Àóäèîïîòîê ñîñòîèò èç îäíîãî èëè íåñêîëüêèõ ôðåéìîâ. Ó êàæäîãî ôðåéìà åñòü çàãîëîâîê, ñîñòîÿùèé èç êîäà ñèíõðîíèçàöèè, èíôîðìàöèè î ôðåéìå (ðàçìåð áëîêà, ÷àñòîòà äèñêðåòèçàöèè, êîëè÷åñòâî êàíàëîâ è ò.ï.) è âîñüìèáèòíîé êîíòðîëüíîé ñóììû. Òàêæå â çàãîëîâêå ñîäåðæèòñÿ ëèáî íîìåð ïåðâîãî ñýìïëà âî ôðåéìå îòíîñèòåëüíî âñåãî ïîòîêà (äëÿ ïîòîêîâ ñ èçìåíÿþùèìñÿ ðàçìåðîì áëîêà) èëè íîìåð ôðåéìà (äëÿ ïîòîêîâ ñ ïîñòîÿííûì ðàçìåðîì áëîêà). Ýòî ïîçâîëÿåò ïðîèçâîäèòü áûñòðûé è òî÷íûé ïîèñê. Äàëåå ñëåäóþò çàêîäèðîâàííûå ïîäôðåéìû (ïî îäíîìó íà êàæäûé êàíàë) è, íàêîíåö, ôðåéì, äîïîëíåííûé íóëÿìè äî ãðàíèöû áàéòà. Êàæäûé ïîäôðåéì èìååò ñâîé çàãîëîâîê, îïðåäåëÿþùèé ñïîñîá åãî äåêîäèðîâàíèÿ.
  • + +
  • Òàê êàê äåêîäåð ìîæåò íà÷àòü ðàáîòó â ñåðåäèíå ïîòîêà, äîëæåí áûòü ìåòîä îïðåäåëåíèÿ íà÷àëà ôðåéìà. Êàæäûé ôðåéì íà÷èíàåòñÿ ñ 14-áèòíîãî ñèíõðîíèçèðóþùåãî êîäà. Ýòîò êîä íå ìîæåò ïîÿâëÿòüñÿ íè â îäíîì äðóãîì ìåñòå çàãîëîâêà ôðåéìà. Îäíàêî òàê êàê ýòî êîä ìîæåò ïîÿâèòüñÿ â ïîäôðåéìàõ, ó äåêîäåðà åñòü äâà ñïîñîáà îïðåäåëèòü, ÷òî äàííàÿ ïîñëåäîâàòåëüíîñòü ÿâëÿåòñÿ íà÷àëîì ôðåéìà. Ñíà÷àëà ïðîâåðÿåòñÿ êîððåêòíîñòü äàííûõ âî âñåì ôðåéìå. Îäíàêî ýòîò øàã íå ìîæåò ãàðàíòèðîâàòü îòñóòñòâèÿ îøèáîê, ïîýòîìó äîïîëíèòåëüíî ïðîèçâîäèòñÿ ðàñ÷åò âîñüìèáèòíîé êîíòðîëüíîé ñóììû çàãîëîâêà ôðåéìà è ïîëó÷åííûé ðåçóëüòàò ñðàâíèâàåòñÿ ñî çíà÷åíèåì, ïîëó÷åííûì ïðè êîäèðîâàíèè è çàïèñàííûì ïîñëå çàãîëîâêà ôðåéìà.
  • + +
  • Êàæäûé ôðåéì äîëæåí ñîäåðæàòü îñíîâíóþ èíôîðìàöèþ î ïîòîêå, òàê êàê äåêîäåð ìîæåò íå èìåòü äîñòóïà ê áëîêó ìåòàäàííûõ STREAMINFO â íà÷àëå ïîòîêà. Ñþäà âõîäèò ÷àñòîòà äèñêðåòèçàöèè, êîëè÷åñòâî áèò íà ñýìïë, êîëè÷åñòâî êàíàëîâ è ò.ä. Òàê êàê çàãîëîâîêè ôðåéìîâ âíîñÿò äîïîëíèòåëüíûå íàêëàäíûå ðàñõîäû, òî îíè âëèÿþò óðîâåíü ñæàòèÿ. ×òîáû ñäåëàòü çàãîëîâêè ôðåéìîâ ìèíèìàëüíûìè, FLAC èñïîëüçóåò òàáëèöû ïîèñêà äëÿ íàèáîëåå ÷àñòî èñïîëüçóåìûõ çíà÷åíèé ïàðàìåòðîâ ôðåìîâ. Íàïðèìåð, ÷àñòü, îòâå÷àþùàÿ çà ÷àñòîòó äèñêðåòèçàöèè, çàíèìàåò 4 áèòà. Âîñåìü ïðåäîïðåäåëåííûõ çíà÷åíèé ñîîòâåòñòâóþò íàèáîëåå ñàìûì ðàñïðîñòðàíåííûì ÷àñòîòàì (8/16/22.05/24/32/44.1/48/96 êÃö). Îäíàêî äîïîëíèòåëüíûå ÷àñòîòû ìîãóò áûòü èñïîëüçîâàíû ñ ïîìîùüþ ñïåöèàëüíîãî íàáîðà áèòîâ, óêàçûâàþùåãî äåêîäåðó, ÷òî íåîáõîäèìîå çíà÷åíèå íàõîäèòñÿ â êîíöå çàãîëîâêà. Òàêîé æå ìåòîä èñïîëüçóåòñÿ äëÿ óêàçàíèÿ ðàçìåðà áëîêà è êîëè÷åñòâà áèòîâ íà ñýìïë.  ýòîì ñëó÷àå çàãîëîâîê îñòàåòñÿ äîñòàòî÷íî ìàëûì äëÿ íàèáîëåå ðàñïðîñòðàíåííûõ òèïîâ àóäèîäàííûõ.
  • + +
  • Ïîäôðåéìû (ïî îäíîìó äëÿ êàæäîãî êàíàëà) êîäèðóþòñÿ âî ôðåéìå îòäåëüíî è õðàíÿòñÿ â ïîòîêå ïîñëåäîâàòåëüíî. Ýòî âåäåò ê óïðîùåíèþ äåêîäåðà, îäíàêî öåíîé ýòîìó ÿâëÿåòñÿ óâåëè÷åíèå ðàçìåðîâ áóôôåðà. Ó êàæäîãî ïîäôðåéìà åñòü ñâîé çàãîëîâîê, îïðåäåëÿþùèé åãî àòòðèáóòû (ìåòîä è ïîðÿäîê ïðîãíîçèðîâàíèÿ, ïàðàìåòðû êîäèðîâàíèÿ îñòàòêîâ è ò.ä.). Çà çàãîëîâêîì ñëåäóþò àóäèîäàííûå äëÿ ýòîãî êàíàëà.
  • + +
    +
  • Âî FLAC îïðåäåëåíî ñïåöèàëüíîå ïîäìíîæåñòâî ôîðìàòà (Subset format). Âñå ïîòîêè ñæàòûå ýòèì ìåòîäîì íà ñàìîì äåëå ÿâëÿþòñÿ ïîòîêîâûìè, òî åñòü äåêîäåð, êîòîðûé íå ìîæåò èñêàòü â ïîòîêå, èìååò âîçìîæíîñòü ïåðåéòè ê ëþáîé åãî òî÷êå è íà÷àòü âîñïðîèçâåäåíèå. Äëÿ ôàéëîâ, îòâå÷àþùèõ ýòîìó ïîäìíîæåñòâó ôîðìàòà, çíà÷èòåëüíî ïðîùå ñäåëàòü àïïàðàòíûé äåêîäåð. flac ïî óìîë÷àíèþ ñîçäàåò ïîòîêè, îòâå÷àþùèå ýòîìó ïîäìíîæåñòâó ôîðìàòà. Êëþ÷ --lax çàïðåùàåò ñîçäàíèå òàêèõ ïîòîêîâ. ×òîáû ôàéë îòâå÷àë äàííîìó ïîäìíîæåñòâó, äëÿ íåãî äîëæíû âûïîëíÿòüñÿ ñëåäóþùèå îãðàíè÷åíèÿ:
  • + +
      +
    • Çíà÷åíèå áèòîâ, îòâå÷àþùèõ çà ðàçìåð áëîêà, äîëæíî áûòü â ïðåäåëàõ 0001-0101 èëè 1000-1111. Ïîòîê äîëæåí ñîñòîÿòü èç áëîêîâ îäèíàêîâîãî ðàçìåðà (çà èñêëþ÷åíèåì ïîñëåäíåãî), à â áëîêå ìåòàäàííûõ STREAMINFO äîëæíû áûòü óêàçàíû ðàâíûå çíà÷åíèÿ äëÿ ìèíèìàëüíîãî è ìàêñèìàëüíîãî ðàçìåðà áëîêà.
    • + +
    • Êîëè÷åñòâî áèò íà ñýìïë â çàãîëîâêå ôðåéìà äîëæíî îïèñûâàòüñÿ ñëåäóþùèì äèàïàçîíîì áèòîâ 001-110.
    • + +
    • ×àñòîòà äèñêðåòèçàöèè â çàãîëîâêå ôðåéìà äîëæíà îïèñûâàòüñÿ ñëåäóþùèì äèàïàçîíîì áèòîâ 0001-1011.
    • +
    +

    + +

     òàáëèöå ïðèâåäåíî ôîðìàëüíîå îïèñàíèå ôîðìàòà FLAC. ×èñëà â óãëîâûõ ñêîáêàõ ïîêàçûâàþò êîëè÷åñòâî áèòîâ, èñïîëüçóåìûõ äàííûì ïîëåì.

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    ÏÎÒÎÊ
    <32>"fLaC", ìàðêåð ïîòîêà FLAC â êîäèðîâêå ASCII, îçíà÷àþùèé, ÷òî ïåðâûìè ÷åòûðüìÿ áàéòàìè ïîòîêà ÿâëÿþòñÿ 0x66, 0x4C, 0x61, 0x43
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕÎáÿçàòåëüíûé áëîê ìåòàäàííûõ STREAMINFO, ñîäåðæàùèé îñíîâíûå ñâîéñòâà ïîòîêà
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ*Íîëü èëè áîëüøå áëîêîâ ìåòàäàííûõ
    ÔÐÅÉÌ+Îäèí èëè áîëüøå àóäèîôðåéìîâ

    + + +

    + + + + + + + + + + + + + + + +
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ
    ÇÀÃÎËÎÂÎÊ_ÁËÎÊÀ_ÌÅÒÀÄÀÍÍÛÕÇàãîëîâîê, îïðåäåëÿþùèé òèï è ðàçìåð áëîêà ìåòàäàííûõ
    ÑÎÄÅÐÆÈÌÎÅ_ÁËÎÊÀ_ÌÅÒÀÄÀÍÍÛÕ 

    + + +

    + + + + + + + + + + + + + + + + + + + +
    ÇÀÃÎËÎÂÎÊ_ÁËÎÊÀ_ÌÅÒÀÄÀÍÍÛÕ
    <1>Ôëàã ðàâíûé 1, åñëè äàííûé áëîê ìåòàäàííûõ ÿâëÿåòñÿ ïîñëåäíèì ïåðåä àóäèîáëîêàìè, 0 â ïðîòèâíîì ñëó÷àå
    <7>Òèï áëîêà: +
      +
    • 0 : STREAMINFO
    • +
    • 1 : PADDING
    • +
    • 2 : APPLICATION
    • +
    • 3 : SEEKTABLE
    • +
    • 4-127 : çàðåçåðâèðîâàíû
    • +
    +
    <24>Äëèíà â áàéòàõ ñîîòâåòñòâóþùåãî áëîêà ìåòàäàííûõ (íå âêëþ÷àåò ðàçìåð ÇÀÃÎËÎÂÊÀ_ÁËÎÊÀ_ÌÅÒÀÄÀÍÍÛÕ)

    + + +

    + + + + + + + + + + +
    ÑÎÄÅÐÆÈÌÎÅ_ÁËÎÊÀ_ÌÅÒÀÄÀÍÍÛÕ
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_STREAMINFO || ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_PADDING || ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_APPLICATION || ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_SEEKTABLEÑîäåðæèìîå áëîêà äîëæíî ñîîòâåòñòâîâàòü òèïó áëîêà, óêàçàííîìó â çàãîëîâêå

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_STREAMINFO
    <16>Ìèíèìàëüíûé ðàçìåð áëîêà â ñýìïëàõ â äàííîì ïîòîêå.
    <16>Ìàêñèìàëüíûé ðàçìåð áëîêà â ñýìïëàõ â äàííîì ïîòîêå.
    <24>Ìèíèìàëüíûé ðàçìåð ôðåéìà â áàéòàõ â äàííîì ïîòîêå. Åñëè çíà÷åíèå íå èçâåñòíî, òî 0
    <24>Ìàêñèìàëüíûé ðàçìåð ôðåéìà â áàéòàõ â äàííîì ïîòîêå. Åñëè çíà÷åíèå íå èçâåñòíî, òî 0
    <20>×àñòîòà äèñêðåòèçàöèè â Ãö.
    <3>(Êîëè÷åñòâî êàíàëîâ) - 1. FLAC ïîääåðæèâàåò îò 1 äî 8 êàíàëîâ.
    <5>(Êîëè÷åñòâî áèòîâ íà ñýìïë) - 1. FLAC ïîääåðæèâàåò îò 1 äî 32 áèòîâ íà ñýìïë. Ñåé÷àñ áàçîâûå äåêîäåð è åíêîäåð ïîääåðæèâàþò äî 24 áèò íà ñýìïë.
    <36>Êîëè÷åñòâî ñýìïëîâ â ïîòîêå. Åñëè çäåñü óêàçàí 0, òî êîëè÷åñòâî ñýìïëîâ íå èçâåñòíî.
    <128>Ïîäïèñü MD5 íåñæàòûõ àóäèîäàííûõ, êîòîðàÿ ïîçâîëÿåò äåêîäåðó îáíàðóæèòü îøèáêó, äàæå åñëè åå íàëè÷èå íå íàðóøàåò ñòðóêòóðó ïîòîêà.
     Ïðèìå÷àíèÿ: +
      +
    • Âî FLAC îïðåäåëåí ìèíèìàëüíûé ðàçìåð áëîêà â 16 ñýìïëîâ è ìàêñèìàëüíûé ðàçìåð - 65535. Ýòî çíà÷èò, ÷òî çíà÷åíèÿ îò 0 äî 15 â ñîîòâåòñòâóþùèõ ïîëÿõ ÿâëÿþòñÿ îøèáî÷íûìè.
    • +
    +

    + + +

    + + + + + + + + + + +
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_PADDING
    <n>n áèò ñî çíà÷åíèåì 0. n äîëæíî áûòü êðàòíî 8.

    + + +

    + + + + + + + + + + + + + + + +
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_APPLICATION
    <32>Çàðåãèñòðèðîâàííûé id ïðèëîæåíèÿ (ñì. ñòðàíèöó ðåãèñòðàöèè)
    <n>Äàííûå ïðèëîæåíèÿ. n äîëæíî áûòü êðàòíî 8.

    + + +

    + + + + + + + + + + + + + + + +
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_SEEKTABLE
    SEEKPOINT+Îäíà èëè áîëüøå òî÷åê ïîèñêà.
     Ïðèìå÷àíèÿ: +
      +
    • Êîëè÷åñòâî òî÷åê ïîèñêà îïðåäåëÿåòñÿ â ïîëå çàãîëîâêà áëîêà ìåòàäàííûõ "äëèíà" è ðàâíî äëèíà / 18.
    • +
    +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    ÁËÎÊ_ÌÅÒÀÄÀÍÍÛÕ_SEEKPOINT
    <64>Íîìåð ñýìïëà â ïîòîêå ïåðâîãî ñýìïëà öåëåâîãî ôðåéìà èëè 0xFFFFFFFFFFFFFFFF äëÿ çàðåçåðâèðîâàííîé òî÷êè.
    <64>Ñìåùåíèå â áàéòàõ îò ïåðâîãî áàéòà ïåðâîãî çàãîëîâêà ôðåéìà äî ïåðâîãî áàéòà çàãîëîâêà öåëåâîãî ôðåéìà.
    <16>Êîëè÷åñòâî ñýìïëîâ â öåëåâîì ôðåéìå.
     Ïðèìå÷àíèÿ: +
      +
    • Äëÿ çàðåçåðâèðîâàííûõ òî÷åê çíà÷åíèÿ âòîðîãî è òðåòüåãî ïîëÿ íå îïðåäåëåíû.
    • +
    • Òî÷êè ïîèñêà äîëæíû áûòü îòñîðòèðîâàíû â òàáëèöå ïî âîçðàñòàíèþ íîìåðà ñýìïëà.
    • +
    • Ïîëÿ, ñîäåðæàùèå íîìåðà ïåðâûõ ñýìïëîâ â öåëåâîì ôðåéìå, äîëæíû áûòü óíèêàëüíû äëÿ âñåõ òî÷åê, çà èñêëþ÷åíèåì çàðåçåðâèðîâàííûõ.
    • +
    • Èç äâóõ ïðåäûäóùèõ çàìå÷àíèé ñëåäóåò, ÷òî çàðåçåðâèðîâàííûõ òî÷åê ìîæåò áûòü ëþáîå êîëè÷åñòâî, íî îíè äîëæíû ðàñïîëàãàòüñÿ â êîíöå òàáëèöû.
    • +
    +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    ÔÐÅÉÌ
    ÇÀÃÎËÎÂÎÊ_ÔÐÅÉÌÀ 
    ÏÎÄÔÐÅÉÌ+Îäèí ïîäôðåéì íà êàíàë
    <?>Âûðàâíèâàíèå íóëÿìè íà ãðàíèöó áàéòà
    ÇÀÂÅÐØÅÍÈÅ_ÔÐÅÉÌÀ 

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ÇÀÃÎËÎÂÎÊ_ÔÐÅÉÌÀ
    <14>êîä ñèíõðîíèçàöèè 11111111111110
    <2>Çàðåçåðâèðîâàíî: +
      +
    • 00 : îáÿçàòåëüíîå çíà÷åíèå
    • +
    • 01-11 : çàðåçåðâèðîâàíî äëÿ ïîñëåäóþùåãî èñïîëüçîâàíèÿ
    • +
    +
    <4>Ðàçìåð áëîêà â ñýìïëàõ: +
      +
    • 0000 : ïîëó÷èòü èç áëîêà ìåòàäàííûõ STREAMINFO
    • +
    • 0001 : 192 ñýìïëà
    • +
    • 0010-0101 : 576 * (2^(2-n)) ñýìïëîâ, ò.å. 576/1152/2304/4608
    • +
    • 0110 : ïîëó÷èòü 8 áèòîâ (ðàçìåð áëîêà-1) èç êîíöà çàãîëîâêà
    • +
    • 0111 : ïîëó÷èòü 16 áèòîâ (ðàçìåð áëîêà-1) èç êîíöà çàãîëîâêà
    • +
    • 1000-1111 : 256 * (2^(n-8)) ñýìïëîâ, ò.å. 256/512/1024/2048/4096/8192/16384/32768
    • +
    +
    <4>×àñòîòà äèñêðåòèçàöèè: +
      +
    • 0000 : ïîëó÷èòü èç áëîêà ìåòàäàííûõ STREAMINFO
    • +
    • 0001-0011 : çàðåçåðâèðîâàíû
    • +
    • 0100 : 8êÃö
    • +
    • 0101 : 16êÃö
    • +
    • 0110 : 22.05êÃö
    • +
    • 0111 : 24êÃö
    • +
    • 1000 : 32êÃö
    • +
    • 1001 : 44.1êÃö
    • +
    • 1010 : 48êÃö
    • +
    • 1011 : 96êÃö
    • +
    • 1100 : ïîëó÷èòü 8-áèòíîå çíà÷åíèå ÷àñòîòû äèñêðåòèçàöèè (â êÃö) èç êîíöà çàãîëîâêà
    • +
    • 1101 : ïîëó÷èòü 16-áèòíîå çíà÷åíèå ÷àñòîòû äèñêðåòèçàöèè (â Ãö) èç êîíöà çàãîëîâêà
    • +
    • 1110 : ïîëó÷èòü 16-áèòíîå çíà÷åíèå ÷àñòîòû äèñêðåòèçàöèè (â äÃö) èç êîíöà çàãîëîâêà
    • +
    • 1111 : îøèáî÷íîå çíà÷åíèå, ÷òîáû íå äîïóñòèòü ñîâïàäåíèå ñ êîäîì ñèíõðîíèçàöèè
    • +
    +
    <4>Ðàñïîëîæåíèå êàíàëîâ: +
      +
    • 0000-0111 : (êîëè÷åñòâî íåçàâèñèìûõ êàíàëîâ)-1. Êîãäà == 0001, êàíàë 0 ÿâëÿåòñÿ ëåâûì, 1 - ïðàâûì
    • +
    • 1000 : ëåâîñòîðîííåå ñòåðåî: êàíàë 0 ÿâëÿåòñÿ ëåâûì, 1 - ðàçíîñòíûì
    • +
    • 1001 : ïðàâîñòîðîííåå ñòåðåî: êàíàë 0 ÿâëÿåòñÿ ðàçíîñòíûì, 1 - ïðàâûì
    • +
    • 1010 : óñðåäíåííîå ñòåðåî: êàíàë 0 ÿâëÿåòñÿ óñðåäíåííûì, 1 - ðàçíîñòíûì +
    • 1011-1111 : çàðåçåðâèðîâàíû
    • +
    +
    <3>Êîëè÷åñòâî áèòîâ íà ñýìïë: +
      +
    • 000 : ïîëó÷èòü èç áëîêà ìåòàäàííûõ STREAMINFO
    • +
    • 001 : 8 áèò íà ñýìïë
    • +
    • 010 : 12 áèò íà ñýìïë
    • +
    • 011 : çàðåçåðâèðîâàíî
    • +
    • 100 : 16 áèò íà ñýìïë
    • +
    • 101 : 20 áèò íà ñýìïë
    • +
    • 110 : 24 áèò íà ñýìïë
    • +
    • 111 : çàðåçåðâèðîâàíî
    • +
    +
    <1>Äîïîëíåíèå íóëåì äî ãðàíèöû áèòà, ÷òîáû íå äîïóñòèòü îøèáêó ñèíõðîíèçàöèè
    <?>Åñëè (ïåðåìåííûé ðàçìåð áëîêà)
    +    <8-56> : íîìåð ñýìïëà â ôîðìàòå UTF-8 (ðàçìåð äåêîäèðóåìîãî ÷èñëà 36 áèò)
    + èíà÷å
    +    <8-48> : íîìåð ôðåéìà â ôîðìàòå UTF-8 (ðàçìåð äåêîäèðóåìîãî ÷èñëà 31 áèò)
    <?>Åñëè (áèòîâàÿ ìàñêà ðàçìåðà áëîêà == 11x)
    +    8/16 áèò (ðàçìåð áëîêà - 1)
    <?>Åñëè (áèòîâàÿ ìàñêà ÷àñòîòû äèñêðåòèçàöèè == 11xx)
    +    ÷àñòîòà äèñêðåòèçàöèè 8/16 áèò
    <8>8-áèòíàÿ ïîëèíîìàëüíàÿ êîíòðîëüíàÿ ñóììà (x^8 + x^2 + x^1 + x^0) äàííûõ çàãîëîâêà, âêëþ÷àÿ êîä ñèíõðîíèçàöèè (x èíèöèàëèçèðóåòñÿ íóëåì).
     Ïðèìå÷àíèÿ: +
      +
    • Áèòû ðàçìåðà áëîêà 0000-0101 ìîãóò áûòü èñïîëüçîâàíû òîëüêî ïðè ïîñòîÿííîì èõ çíà÷åíèè âî âñåì áëîêå. Áèòû 0110-0111 ìîãóò èñïîëüçîâàòüñÿ â ëþáîì ñëó÷àå, äåêîäåð áóäåò ñ÷èòàòü, ÷òî ïîòîê èìååò ïåðåìåííóþ äëèíó áëîêà. Ñóùåñòâóåò îäíî èñêëþ÷åíèå: åíêîäåð ìîæåò èñïîëüçîâàòü áèòû 0110-0111 â ïîñëåäíåì ôðåéìå ïîòîêà ñ ïîñòîÿííûì ðàçìåðîì áëîêà â òîì ñëó÷àå, åñëè åãî äëèíà íå áîëüøå, ÷åì èñïîëüçóåìàÿ â âñåì ïîòîêå.
    • +
    +

    + + +

    + + + + + + + + + + +
    ÇÀÂÅÐØÅÍÈÅ_ÔÐÅÉÌÀ
    <16>16-áèòíàÿ ïîëèíîìàëüíàÿ êîíòðîëüíàÿ ñóììà (x^16 + x^15 + x^2 + x^0) âñåãî ôðåéìà (x èíèöèàëèçèðóåòñÿ íóëåì).

    + + +

    + + + + + + + + + + + + + + + +
    ÏÎÄÔÐÅÉÌ
    ÇÀÃÎËÎÂÎÊ_ÏÎÄÔÐÅÉÌÀ 
    ÏÎÄÔÐÅÉÌ_CONSTANT || ÏÎÄÔÐÅÉÌ_FIXED ||
    ÏÎÄÔÐÅÉÌ_LPC || ÏÎÄÔÐÅÉÌ_VERBATIM
    Òèï ïîäôðåéìà, îïðåäåëÿåìûé â çàãîëîâêå

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    ÇÀÃÎËÎÂÎÊ_ÏÎÄÔÐÅÉÌÀ
    <1>Áèò ðàâíûé 0, ÷òîáû ïðåäîòâðàòèòü îøèáêó ñèíõðîíèçàöèè.
    <6>Òèï ïîäôðåéìà: + +
    <1+k>Ôëàã 'íåèñïîëüçóåìûå áèòû íà ñýìïë': +
      +
    • 0 : â èñõîäíîì ïîäáëîêå íåò 'íåèñïîëüçóåìûõ áèòîâ', k=0
    • +
    • 1 : k 'íåèñïîëüçóåìûõ áèòîâ' â èñõîäíîì ïîäáëîêå, ÷èñëî çàïèñûâàåòñÿ â óíàðíîì ôîðìàòå; ò.å. äëÿ k=3 ïîñëåäîâàòåëüíîñòü áèòîâ áóäåò âûãëÿäåòü òàê 001, äëÿ k=7 - 0000001.
    • +
    +
     Ïðèìå÷àíèÿ: +
      +
    • 'Íåèñïîëüçóåìûå áèòû' âñòðå÷àþòñÿ â áëîêå äàííûõ, åñëè ïðè çàÿâëåííûõ n áèòàõ çíà÷èìûìè ÿâëÿþòñÿ òîëüêî m. ×èñëî k = n - m è áóäåò îïðåäåëÿòü êîëè÷åñòâî 'íåèñïîëüçóåìûõ áèòîâ'. Íàïðèìåð, åñëè âñå 16-áèòíûå ñýìïëû â èñõîäíîì ïîäáëîêå âûãëÿäÿò êàê 'xxxxxxxxxxxxx000', òî åíêîäåð êîäèðóåò òîëüêî 13 áèò, è çàïîìèíàåò, ÷òî 3 áèòà ÿâëÿþòñÿ 'íåèñïîëüçóåìûìè'.
    • +
    +

    + + +

    + + + + + +
    + +ÏÎÄÔÐÅÉÌ_CONSTANT
    +<n>Íåñæàòîå ïîñòîÿííîå çíà÷åíèå ïîäáëîêà, n ðàâíî êîëè÷åñòâó áèòîâ íà ñýìïë âî ôðåéìå

    + + +

    + + + + + + + + + + + + + + + +
    ÏÎÄÔÐÅÉÌ_FIXED
    <n>Íåêîäèðóåìûå íà÷àëüíûå ñýìïëû (n ðàâíî êîëè÷åñòâó áèòîâ íà ñýìïë âî ôðåéìå, óìíîæåííîìó íà ïîðÿäîê ïðåäèêòîðà).
    ÎÑÒÀÒÎÊÇàêîäèðîâàííûé îñòàòîê

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ÏÎÄÔÐÅÉÌ_LPC
    <n>Íåêîäèðóåìûå íà÷àëüíûå ñýìïëû (n ðàâíî êîëè÷åñòâó áèòîâ íà ñýìïë âî ôðåéìå, óìíîæåííîìó íà ïîðÿäîê ïðåäèêòîðà).
    <4>(òî÷íîñòü äèñêðåòíîãî êîýôôèöèåòà ëèíåéíîãî ïðîãíîçèðîâàíèÿ (QLP)) - 1. Çíà÷åíèå 1111 íåäîïóñòèìî.
    <5>Íåîáõîäèìûé ñäâèã äèñêðåòíîãî êîýôôèöèåòà ëèíåéíîãî ïðîãíîçèðîâàíèÿ â áèòàõ. (Ïðèìå÷àíèå: ýòî ÷èñëî - çíàêîâîå äîïîëíåíèå äî äâóõ).
    <n>Íåñæàòûå êîýôôèöèåíòû ïðîãíîçèðîâàíèÿ (n = òî÷íîñòü QLP * ïîðÿäîê LPC) (Ïðèìå÷àíèå: ýòè ÷èñëà ÿâëÿþòñÿ çíàêîâûìè äîïîëíåíèÿìè äî äâóõ).
    ÎÑÒÀÒÎÊÇàêîäèðîâàííûé îñòàòîê

    + + +

    + + + + + + + + + + +
    ÏÎÄÔÐÅÉÌ_VERBATIM
    <n*i>Íåñæàòûé ïîäáëîê, n ðàâíî êîëè÷åñòâó áèòîâ íà ñýìïë âî ôðåéìå, i - ðàçìåðó áëîêà

    + + +

    + + + + + + + + + + + + + + + + + + + + +
    ÎÑÒÀÒÎÊ
    <2>Ìåòîä êîäèðîâàíèÿ îñòàòêîâ: +
      +
    • 00 : êîäèðîâàíèå Ðàéñà
    • +
    • 01-11 : çàðåçåðâèðîâàíî
    • +
    +
    ÎÑÒÀÒÊÈ_ÑÆÀÒÛÅ_ÌÅÒÎÄÎÌ_ÐÀÉÑÀ 
     Ïðèìå÷àíèÿ: +
      +
    • Ñåé÷àñ FLAC èñïîëüçóåò òîëüêî îäèí ìåòîä êîäèðîâàíèÿ îñòàòêîâ
    • +
    +

    + + +

    + + + + + + + + + + + + + + + +
    ÎÑÒÀÒÊÈ_ÑÆÀÒÛÅ_ÌÅÒÎÄÎÌ_ÐÀÉÑÀ
    <4>Ïîðÿäîê ðàçäåëà
    ÐÀÇÄÅË_ÐÀÉÑÀ+Äàëåå ñëåäóþò 2^ïîðÿäîê ðàçäåëîâ

    + + +

    + + + + + + + + + + + + + + + +
    ÐÀÇÄÅË_ÐÀÉÑÀ
    <4(+5)>Ïàðàìåòð êîäèðîâàíèÿ: +
      +
    • 0000-1110 : Ïàðàìåòð Ðàéñà.
    • +
    • 1111 : Êîä, îçíà÷àþùèé, ÷òî ðàçäåë ÿâëÿåòñÿ íåñæàòûì è â íåì èñïîëüçóþòñÿ n áèòîâ íà ñýìïë. n ïðåäñòàâëåíî 5-áèòíûì ÷èñëîì. +
    +
    <?>Çàêîäèðîâàííûé îñòàòîê. Êîëè÷åñòâî ñýìïëîâ n â ðàçäåëå îïðåäåëÿåòñÿ ñëåäóþùèì îáðàçîì: +
      +
    • Åñëè ïîðÿäîê ðàçäåëà ðàâåí 0, n ðàâíî ðàçìåðó áëîêà äëÿ ôðåéìà.
    • +
    • èíà÷å åñëè ýòî íå ïåðâûé ðàçäåë ïîäôðåéìà, n = (ðàçìåð áëîêà äëÿ ôðåéìà / (2^ïîðÿäîê ðàçäåëà))
    • +
    • èíà÷å n = (ðàçìåð áëîêà äëÿ ôðåéìà / (2^ïîðÿäîê ðàçäåëà)) - ïîðÿäîê ïðåäèêòîðà
    • +
    +

    + + +

     Copyright (c) 2001 Josh Coalson

    + + + diff --git a/doc/ru/goals.html b/doc/ru/goals.html index 3e7b8f5..411f4e2 100644 --- a/doc/ru/goals.html +++ b/doc/ru/goals.html @@ -1,104 +1,104 @@ - - - - - - - - - - -FLAC: öåëè - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |  -íà÷àëî |íîâîñòè |ôàéëû |õàðàêòåðèñòèêè | - öåëè |ôîðìàò |
    |id |ñðàâíåíèå |ðàçðàáîòêà |äîêóìåíòàöèÿ |ññûëêè |àâòîðû |
    - -

    - - - - - -
    |english | - ðóññêèé |

    - - -

    FLAC: öåëè

    - -

    Òàê êàê FLAC - ýòî îòêðûòûé ïðîåêò, âàæíî îïðåäåëèòü ñïèñîê öåëåé, ê ÷åìó íóæíî ñòðåìèòüñÿ. Âðåìÿ îò âðåìåíè îíè ìîãóò íåìíîãî èçìåíÿòüñÿ, íî âñåãäà äîëæíû îïðåäåëÿòü íàïðàâëåíèå ðàçâèòèÿ. èçìåíåíèÿ äîëæíû ñîãëàñîâûâàòüñÿ ñ òåêóùèìè öåëÿìè è íå ïûòàòüñÿ âêëþ÷èòü â ñåáÿ àíòèöåëè.

    - -

    Öåëè

    - -

      -
    • FLAC äîëæåí îñòàâàòüñÿ îòêðûòûì ôîðìàòîì. Âñå èñõîäíèêè ëèáî ïîä LGPL, ëèáî ïîä GPL.
    • - -
    • FLAC äîëæåí ïðîèçâîäèòü òîëüêî ñæàòèå áåç ïîòåðü. Âðîäå áû ýòî î÷åâèäíî, îäíàêî, êîäèðîâàíèå ñ ïîòåðÿìè ïûòàåòñÿ ïðîíèêíóòü âî âñå àóäèî êîäåêè. Ýòà öåëü òàêæå îçíà÷àåò, ÷òî FLAC äîëæåí ïðèäåðæèâàòüñÿ òîëüêî ïðèíöèïîâ àðõèâèðîâàíèÿ è ñæèìàòü áåç ïîòåðü àáñîëþòíî âñå òèïû âõîäíûõ äàííûõ. Ðåëèçû äîëæíû òùàòåëüíî òåñòèðîâàòüñÿ.
    • - -
    • FLAC äîëæåí äîñòè÷ü ïðèåìëèìîãî óðîâíÿ ñæàòèÿ ôàéëîâ.
    • - -
    • FLAC äîëæåí èìåòü íèçêèå àïïàðàòíûå òðåáîâàíèÿ è îáåñïå÷èòü äåêîäèðîâàíèå â ðåàëüíîì âðåìåíè äàæå íà ñòàðûõ êîìïüþòåðàõ.
    • - -
    • FLAC äîëæåí ïîääåðæèâàòü áûñòðûé è òî÷íûé ïîèñê.
    • - -
    • FLAC äîëæåí ïîääåðæèâàòü âîñïðîèçâåäåíèå áåç ïàóç äëÿ íåïðåðûâíûõ ïîòîêîâ.
    • - -
    • Ïðîåêò FLAC íàõîäèòñÿ â äîëãó ïåðåä ìíîãèìè ëþäüìè, êòî óëó÷øàë ìåòîäû ñæàòèÿ çâóêà, è íàöåëåí íà ïîääåðæêó íîâûõ èäåé ñ ïîìîùüþ îòêðûòîé ðàçðàáîòêè.
    • -

    - - -

    Àíòèöåëè

    - -

    - -

     Copyright (c) 2001 Josh Coalson

    - - - + + + + + + + + + + +FLAC: öåëè + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    |  +íà÷àëî |íîâîñòè |ôàéëû |õàðàêòåðèñòèêè | + öåëè |ôîðìàò |
    |id |ñðàâíåíèå |ðàçðàáîòêà |äîêóìåíòàöèÿ |ññûëêè |àâòîðû |
    + +

    + + + + + +
    |english | + ðóññêèé |

    + + +

    FLAC: öåëè

    + +

    Òàê êàê FLAC - ýòî îòêðûòûé ïðîåêò, âàæíî îïðåäåëèòü ñïèñîê öåëåé, ê ÷åìó íóæíî ñòðåìèòüñÿ. Âðåìÿ îò âðåìåíè îíè ìîãóò íåìíîãî èçìåíÿòüñÿ, íî âñåãäà äîëæíû îïðåäåëÿòü íàïðàâëåíèå ðàçâèòèÿ. èçìåíåíèÿ äîëæíû ñîãëàñîâûâàòüñÿ ñ òåêóùèìè öåëÿìè è íå ïûòàòüñÿ âêëþ÷èòü â ñåáÿ àíòèöåëè.

    + +

    Öåëè

    + +

    + + +

    Àíòèöåëè

    + +

    + +

     Copyright (c) 2001 Josh Coalson

    + + + diff --git a/doc/ru/id.html b/doc/ru/id.html index 2e5a237..f50c188 100644 --- a/doc/ru/id.html +++ b/doc/ru/id.html @@ -1,122 +1,122 @@ - - - - - - - - - - -FLAC: ðåãèñòðàöèÿ id - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |íà÷àëî |íîâîñòè |ôàéëû |õàðàêòåðèñòèêè |öåëè |ôîðìàò |
    | - id |ñðàâíåíèå |ðàçðàáîòêà |äîêóìåíòàöèÿ |ññûëêè |àâòîðû |
    - -

    - - - - - -
    |english | - ðóññêèé |

    - - -

    FLAC: ðåãèñòðàöèÿ id

    - -

    FLAC ïîçâîëÿåò ïðèëîæåíèÿì òðåòüèõ ëèö çàðåãèñòðèðîâàòü id äëÿ èñïîëüçîâàíèÿ áëîêîâ ìåòàäàííûõ APPLICATION. ×òîáû ïîëó÷èòü id èëè âíåñòè èçìåíåíèå â ñóùåñòâóþùèé id, èñïîëüçóéòå ôîðìó íà ýòîé ñòðàíèöå (ïèøèòå íà àíãëèéñêîì ÿçûêå).

    - -
    -
    - - - - - - - - - -
    * id ïðèëîæåíèÿ:
    * íàçâàíèå ïðèëîæåíèÿ:
    * êîíòàêòíûé e-mail:
    url ïðèëîæåíèÿ:
    url ñïåöèôèêàöèè:
    - -

    Êîììåíòàðèé:

    - - -

    (* - îáÿçàòåëüíîå ïîëå)

    -
    - -

    id äîëæåí ñîñòîÿòü èç âîñüìè ñèìâîëîâ [0..F] è íå êîíôëèêòîâàòü ñ ñóùåñòâóþùèìè èäåíòèôèêàòîðàìè (âíèçó ïðèâåäåíà òàáëèöà çàðåãèñòðèðîâàííûõ id). Ýòî 32-áèòíîå ÷èñëî áóäåò ñîõðàíåíî â áëîêå â ôîðìàòå big-endian.

    - -

    Èíôîðìàöèÿ î ïðèëîæåíèè (íî íå e-mail) áóäåò ïðèâåäåíà â êàòàëîãå id. Âû ìîæåòå ïðåäîñòàâèòü òàêæå ññûëêó íà ñòðàíèöó ïðèëîæåíèÿ è íà ñïåöèôèêàöèþ áëîêà APPLICATION äëÿ âàøåãî ïðèëîæåíèÿ.

    - -

    Ïîäòâåðæäåíèå ðåãèñòðàöèè áóäåò âûñëàíî Âàì ïî ïî÷òå.

    - -

    -
    - -

    Êàòàëîã id

    -

    Ñïèñîê çàðåãèñòðèðîâàííûõ ïðèëîæåíèé è èõ id.

    - -

    - - - - - - - - - - -
    IDÏðèëîæåíèå
    5346464C - "SFFL"Sound Font FLAC
    - - -

     Copyright (c) 2001 Josh Coalson

    - - - + + + + + + + + + + +FLAC: ðåãèñòðàöèÿ id + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    |íà÷àëî |íîâîñòè |ôàéëû |õàðàêòåðèñòèêè |öåëè |ôîðìàò |
    | + id |ñðàâíåíèå |ðàçðàáîòêà |äîêóìåíòàöèÿ |ññûëêè |àâòîðû |
    + +

    + + + + + +
    |english | + ðóññêèé |

    + + +

    FLAC: ðåãèñòðàöèÿ id

    + +

    FLAC ïîçâîëÿåò ïðèëîæåíèÿì òðåòüèõ ëèö çàðåãèñòðèðîâàòü id äëÿ èñïîëüçîâàíèÿ áëîêîâ ìåòàäàííûõ APPLICATION. ×òîáû ïîëó÷èòü id èëè âíåñòè èçìåíåíèå â ñóùåñòâóþùèé id, èñïîëüçóéòå ôîðìó íà ýòîé ñòðàíèöå (ïèøèòå íà àíãëèéñêîì ÿçûêå).

    + +
    +
    + + + + + + + + + +
    * id ïðèëîæåíèÿ:
    * íàçâàíèå ïðèëîæåíèÿ:
    * êîíòàêòíûé e-mail:
    url ïðèëîæåíèÿ:
    url ñïåöèôèêàöèè:
    + +

    Êîììåíòàðèé:

    + + +

    (* - îáÿçàòåëüíîå ïîëå)

    +
    + +

    id äîëæåí ñîñòîÿòü èç âîñüìè ñèìâîëîâ [0..F] è íå êîíôëèêòîâàòü ñ ñóùåñòâóþùèìè èäåíòèôèêàòîðàìè (âíèçó ïðèâåäåíà òàáëèöà çàðåãèñòðèðîâàííûõ id). Ýòî 32-áèòíîå ÷èñëî áóäåò ñîõðàíåíî â áëîêå â ôîðìàòå big-endian.

    + +

    Èíôîðìàöèÿ î ïðèëîæåíèè (íî íå e-mail) áóäåò ïðèâåäåíà â êàòàëîãå id. Âû ìîæåòå ïðåäîñòàâèòü òàêæå ññûëêó íà ñòðàíèöó ïðèëîæåíèÿ è íà ñïåöèôèêàöèþ áëîêà APPLICATION äëÿ âàøåãî ïðèëîæåíèÿ.

    + +

    Ïîäòâåðæäåíèå ðåãèñòðàöèè áóäåò âûñëàíî Âàì ïî ïî÷òå.

    + +

    +
    + +

    Êàòàëîã id

    +

    Ñïèñîê çàðåãèñòðèðîâàííûõ ïðèëîæåíèé è èõ id.

    + +

    + + + + + + + + + + +
    IDÏðèëîæåíèå
    5346464C - "SFFL"Sound Font FLAC
    + + +

     Copyright (c) 2001 Josh Coalson

    + + + diff --git a/doc/ru/links.html b/doc/ru/links.html index 20f78e9..46e346d 100644 --- a/doc/ru/links.html +++ b/doc/ru/links.html @@ -1,110 +1,110 @@ - - - - - - - - - - -FLAC: íà÷àëî - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |íà÷àëî |íîâîñòè |ôàéëû |õàðàêòåðèñòèêè |öåëè |ôîðìàò |
    |id |ñðàâíåíèå |ðàçðàáîòêà |äîêóìåíòàöèÿ | - ññûëêè |àâòîðû |
    - -

    - - - - - -
    |english | - ðóññêèé |

    - - -

    FLAC: ññûëêè

    - -

    -
  • Äîêóìåíòàöèÿ FLAC íà àíãëèéñêîì ÿçûêå
  • - -
  • Ñòðàíèöà ïðîåêòà FLAC íà SourceForge
  • - -
  • Ñòðàíèöà íà Freshmeat
  • - -
  • Îñíîâíûå ïðèíöèïû ñæàòèÿ áåç ïîòåðü
  • - -
  • Óòèëèòû äëÿ ñæàòèÿ àóäèî
  • -

    - - -

    Ïðîãðàììû, èñïîëüçóþùèå FLAC:

    - -

    -
  • Baudline àíàëèçàòîð ñèãíàëà
  • - -
  • Split_wav WAV+CUE splitter
  • - -
  • rawrec/rawplay óòèëèòû äëÿ çàïèñè è âîñïðîèçâåäåíèÿ
  • - -
  • GStreamer ñèñòåìà äëÿ ïîòîâîé ïåðåäà÷è ìåäèà-ôàéëîâ
    - -
  • Soepkip TNG ïëåéåð, óïðàâëÿåìûé ÷åðåç web-èíòåðôåéñ
  • - - - -

    - -

     Copyright (c) 2001 Josh Coalson

    - - - + + + + + + + + + + +FLAC: íà÷àëî + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    |íà÷àëî |íîâîñòè |ôàéëû |õàðàêòåðèñòèêè |öåëè |ôîðìàò |
    |id |ñðàâíåíèå |ðàçðàáîòêà |äîêóìåíòàöèÿ | + ññûëêè |àâòîðû |
    + +

    + + + + + +
    |english | + ðóññêèé |

    + + +

    FLAC: ññûëêè

    + +

    +
  • Äîêóìåíòàöèÿ FLAC íà àíãëèéñêîì ÿçûêå
  • + +
  • Ñòðàíèöà ïðîåêòà FLAC íà SourceForge
  • + +
  • Ñòðàíèöà íà Freshmeat
  • + +
  • Îñíîâíûå ïðèíöèïû ñæàòèÿ áåç ïîòåðü
  • + +
  • Óòèëèòû äëÿ ñæàòèÿ àóäèî
  • +

    + + +

    Ïðîãðàììû, èñïîëüçóþùèå FLAC:

    + +

    +
  • Baudline àíàëèçàòîð ñèãíàëà
  • + +
  • Split_wav WAV+CUE splitter
  • + +
  • rawrec/rawplay óòèëèòû äëÿ çàïèñè è âîñïðîèçâåäåíèÿ
  • + +
  • GStreamer ñèñòåìà äëÿ ïîòîâîé ïåðåäà÷è ìåäèà-ôàéëîâ
    + +
  • Soepkip TNG ïëåéåð, óïðàâëÿåìûé ÷åðåç web-èíòåðôåéñ
  • + + + +

    + +

     Copyright (c) 2001 Josh Coalson

    + + + diff --git a/doc/ru/news.html b/doc/ru/news.html index 5afbb2b..ad5d823 100644 --- a/doc/ru/news.html +++ b/doc/ru/news.html @@ -1,136 +1,136 @@ - - - - - - - - - - -FLAC: íîâîñòè - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |íà÷àëî | - íîâîñòè |ôàéëû |õàðàêòåðèñòèêè |öåëè |ôîðìàò |
    |id |ñðàâíåíèå |ðàçðàáîòêà |äîêóìåíòàöèÿ |ññûëêè |àâòîðû |
    - -

    - - - - - -
    |english | - ðóññêèé |

    - -

    FLAC: íîâîñòè

    - -

  • 20.07.2001
    -Âûøëà âåðñèÿ FLAC 1.0! Äîáàâëåíî íåñêîëüêî íîâûõ âîçìîæíîñòåé, íî â îñíîâíîì èñïðàâëåíèÿ îøèáîê.

    - -

      - -
    • Íîâàÿ îïöèÿ '--sector-align' ïîçâîëÿåò âûðàâíèâàòü ãðóïïó êîäèðóåìûõ àóäèîôàéëîâ íà ãðàíèöó ñåêòîðà â ôîðìàòå Audio-CD.
    • - -
    • Íîâàÿ îïöèÿ '--output-prefix' äîáàâëÿåò ïðåôèêñ êî âñåì âûõîäíûì èìåíàì ôàéëîâ (ïîëåçíî, íàïðèìåð, äëÿ ñîõðàíåíèÿ ðåçóëüòàòîâ ðàáîòû â äðóãîé êàòàëîã).
    • - -
    • Óëó÷øåííîå àâòîîïðåäåëåíèå WAVE (áîëüøå íå ïîëàãàåòñÿ íà ungetc()).
    • - -
    • Áîëåå ïîíÿòíàÿ ñòàòèñòèêà ïðè êîäèðîâàíèè/äåêîäèðîâàíèè.
    • - -
    • Èçìåíåíèÿ â èíòåðåôåéñå áèáëèîòåêè libFLAC äëÿ áîëåå ïðîñòîé ïîääåðæêè áèíàðíîé ñîâìåñòèìîñòè â áóäóùåì.
    • - -
    • Íîâàÿ îïöèÿ '
    • --sse-os
    • ' â êîíôèãóðàöèîííîì ñêðèïòå äëÿ èñïîëüçîâàíèÿ áîëåå áûñòðûõ ïðîöåäóð, îñíîâàííûõ íà SSE. - -
    • Åùå îäíî (íàäåþñü ïîñëåäíåå) èñïðàâëåíèå â ïëàãèíå äëÿ Winamp 2.
    • - -
    • Íåìíîãî óëó÷øåíà îöåíêà ïàðàìåòðà Ðàéñà.
    • - -
    • Èñïðàâëåíèå îøèáîê, âîçíèêàþùèõ â î÷åíü ðåäêèõ ñèòóàöèÿõ ïðè êîäèðîâàíèè.
    • -

    - - -

  • 07.06.2001

  • -Âûøëà âåðñèÿ FLAC 0.10. Ñêîðåå âñåãî ýòî ïîñëåäíÿÿ áåòà âåðñèÿ. Çà ïîñëåäíèå äâà ìåñÿöà áûëî ñäåëàíî ìíîãî óëó÷øåíèé.

    - -

    - - -

  • 31.03.2001

  • -Âûøëà âåðñèÿ 0.9. Èñïðàâëåíû ïëàãèíû äëÿ Winamp è XMMS. Èçìåíåí ôîðìàò (íàäåþñü, ïîñëåäíèé ðàç). Ïîòåðÿíà ñîâìåñòèìîñòü ñî âñåìè ïðåäûäóùèìè âåðñèÿìè.

    - - -

  • 24.03.2001

  • -Áëèçèòñÿ âûõîä âåðñèè 0.9, â êîòîðîé äîëæåí áûòü èñïðàâëåí ïëàãèí äëÿ Winamp. Äæîø îáðàòèëñÿ ÷åðåç ñïèñîê ðàññûëêè, ÷òîáû ïîñëå âûõîäà ýòîé âåðñèè ê íåìó îáðàòèëèñü ñ ïîæåëàíèÿìè (îñîáåííî ðàäèêàëüíûìè, êîòîðûå ìîãóò êîñíóòüñÿ ôîðìàòà).

    - - -

  • 21.03.2001

  • -Òåêóùàÿ âåðñèÿ FLAC - 0.8. Íà÷àò ïåðåâîä äîêóìåíòàöèè.

    - - -

  • 10.12.2000

  • -FLAC âûëîæåí íà SourceForge. Ïîñåòèòå ñòðàíèöó ïðîåêòà, ÷òîáû ïîäïèñàòüñÿ íà ñïèñîê ðàñûëêè èëè ñòàòü ðàçðàáîò÷èêîì.

    - -

     Copyright (c) 2001 Josh Coalson

    - - - + + + + + + + + + + +FLAC: íîâîñòè + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    |íà÷àëî | + íîâîñòè |ôàéëû |õàðàêòåðèñòèêè |öåëè |ôîðìàò |
    |id |ñðàâíåíèå |ðàçðàáîòêà |äîêóìåíòàöèÿ |ññûëêè |àâòîðû |
    + +

    + + + + + +
    |english | + ðóññêèé |

    + +

    FLAC: íîâîñòè

    + +

  • 20.07.2001
    +Âûøëà âåðñèÿ FLAC 1.0! Äîáàâëåíî íåñêîëüêî íîâûõ âîçìîæíîñòåé, íî â îñíîâíîì èñïðàâëåíèÿ îøèáîê.

    + +

      + +
    • Íîâàÿ îïöèÿ '--sector-align' ïîçâîëÿåò âûðàâíèâàòü ãðóïïó êîäèðóåìûõ àóäèîôàéëîâ íà ãðàíèöó ñåêòîðà â ôîðìàòå Audio-CD.
    • + +
    • Íîâàÿ îïöèÿ '--output-prefix' äîáàâëÿåò ïðåôèêñ êî âñåì âûõîäíûì èìåíàì ôàéëîâ (ïîëåçíî, íàïðèìåð, äëÿ ñîõðàíåíèÿ ðåçóëüòàòîâ ðàáîòû â äðóãîé êàòàëîã).
    • + +
    • Óëó÷øåííîå àâòîîïðåäåëåíèå WAVE (áîëüøå íå ïîëàãàåòñÿ íà ungetc()).
    • + +
    • Áîëåå ïîíÿòíàÿ ñòàòèñòèêà ïðè êîäèðîâàíèè/äåêîäèðîâàíèè.
    • + +
    • Èçìåíåíèÿ â èíòåðåôåéñå áèáëèîòåêè libFLAC äëÿ áîëåå ïðîñòîé ïîääåðæêè áèíàðíîé ñîâìåñòèìîñòè â áóäóùåì.
    • + +
    • Íîâàÿ îïöèÿ '
    • --sse-os
    • ' â êîíôèãóðàöèîííîì ñêðèïòå äëÿ èñïîëüçîâàíèÿ áîëåå áûñòðûõ ïðîöåäóð, îñíîâàííûõ íà SSE. + +
    • Åùå îäíî (íàäåþñü ïîñëåäíåå) èñïðàâëåíèå â ïëàãèíå äëÿ Winamp 2.
    • + +
    • Íåìíîãî óëó÷øåíà îöåíêà ïàðàìåòðà Ðàéñà.
    • + +
    • Èñïðàâëåíèå îøèáîê, âîçíèêàþùèõ â î÷åíü ðåäêèõ ñèòóàöèÿõ ïðè êîäèðîâàíèè.
    • +

    + + +

  • 07.06.2001

  • +Âûøëà âåðñèÿ FLAC 0.10. Ñêîðåå âñåãî ýòî ïîñëåäíÿÿ áåòà âåðñèÿ. Çà ïîñëåäíèå äâà ìåñÿöà áûëî ñäåëàíî ìíîãî óëó÷øåíèé.

    + +

    + + +

  • 31.03.2001

  • +Âûøëà âåðñèÿ 0.9. Èñïðàâëåíû ïëàãèíû äëÿ Winamp è XMMS. Èçìåíåí ôîðìàò (íàäåþñü, ïîñëåäíèé ðàç). Ïîòåðÿíà ñîâìåñòèìîñòü ñî âñåìè ïðåäûäóùèìè âåðñèÿìè.

    + + +

  • 24.03.2001

  • +Áëèçèòñÿ âûõîä âåðñèè 0.9, â êîòîðîé äîëæåí áûòü èñïðàâëåí ïëàãèí äëÿ Winamp. Äæîø îáðàòèëñÿ ÷åðåç ñïèñîê ðàññûëêè, ÷òîáû ïîñëå âûõîäà ýòîé âåðñèè ê íåìó îáðàòèëèñü ñ ïîæåëàíèÿìè (îñîáåííî ðàäèêàëüíûìè, êîòîðûå ìîãóò êîñíóòüñÿ ôîðìàòà).

    + + +

  • 21.03.2001

  • +Òåêóùàÿ âåðñèÿ FLAC - 0.8. Íà÷àò ïåðåâîä äîêóìåíòàöèè.

    + + +

  • 10.12.2000

  • +FLAC âûëîæåí íà SourceForge. Ïîñåòèòå ñòðàíèöó ïðîåêòà, ÷òîáû ïîäïèñàòüñÿ íà ñïèñîê ðàñûëêè èëè ñòàòü ðàçðàáîò÷èêîì.

    + +

     Copyright (c) 2001 Josh Coalson

    + + +