Îøèáêè è îïå÷àòêè


Íèæå ïðèâåäåíû èçâåñòíûå îøèáêè è íåòî÷íîñòè, à òàêæå îïå÷àòêè, èñêàæàþùèå ñìûñë òåêñòà.
Ñòðàíèöà Èñõîäíûé òåêñò Âàðèàíò ïðàâèëüíîãî íàïèñàíèÿ, ïîÿñíåíèÿ
Âî âñåì òåêñòå "ïîäðàçäåë" ñëåäóåò ïîíèìàòü êàê "ïîäïóíêò" %-)
18 Åñëè ðàçìåð êàæäîãî òàêîãî ôàéëà â ðåçóëüòàòå îáðàáîòêè óìåíüøàåòñÿ õîòÿ áû íà 1 áèò, òî 2n èñõîäíûì ôàéëàì áóäåò ñîîòâåòñòâîâàòü ñàìîå áîëüøåå 2n-1 ðàçëè÷àþùèõñÿ àðõèâíûõ ôàéëîâ. Åñëè ðàçìåð êàæäîãî òàêîãî ôàéëà â ðåçóëüòàòå îáðàáîòêè óìåíüøàåòñÿ õîòÿ áû íà 1 áèò, òî 2n èñõîäíûì ôàéëàì áóäåò ñîîòâåòñòâîâàòü ñàìîå áîëüøåå 2n-1 ðàçëè÷àþùèõñÿ àðõèâíûõ ôàéëîâ.
31

Êàíîíè÷åñêèé àëãîðèòì Õàôôìàíà

Îäèí èç êëàññè÷åñêèõ àëãîðèòìîâ, èçâåñòíûõ ñ 60-õ ãîäîâ.

Êàíîíè÷åñêèé àëãîðèòì Õàôôìàíà

Îäèí èç êëàññè÷åñêèõ àëãîðèòìîâ, èçâåñòíûõ ñ 50-õ ãîäîâ.
40, 41 else if((li >= Third_qtr)&&(hi < First_qrt)){ else if((li >= First_qtr)&&(hi < Third_qrt)){
41 Íà ñèìâîë ñ ìåíüøåé âåðîÿòíîñòüþ ó íàñ òðàòèòñÿ â öåëîì áîëüøåå ÷èñëî áèòîâ, ÷åì íà ñèìâîë ñ ìåíüøåé âåðîÿòíîñòüþ. Íà ñèìâîë ñ ìåíüøåé âåðîÿòíîñòüþ ó íàñ òðàòèòñÿ â öåëîì áîëüøåå ÷èñëî áèòîâ, ÷åì íà ñèìâîë ñ áîëüøåé âåðîÿòíîñòüþ.
45 // Åñëè äëÿ õðàíåíèÿ çíà÷åíèé èñïîëüçóåòñÿ 31 áèò,
// êàæäûé ñèìâîë ñäâèíóò íà 1 áàéò âïðàâî
// â âûõîäíîì ïîòîêå è ïðè äåêîäèðîâàíèè ïðèõîäèòñÿ
// åãî ñ÷èòûâàòü â 2 ýòàïà.
#define EXTRABITS ((CODEBITS-1)%8+1)
// Åñëè äëÿ õðàíåíèÿ çíà÷åíèé èñïîëüçóåòñÿ 31 áèò,
// êàæäûé ñèìâîë ñäâèíóò íà 1 áèò âïðàâî
// â âûõîäíîì ïîòîêå, è ïðè äåêîäèðîâàíèè ïðèõîäèòñÿ
// åãî ñ÷èòûâàòü â 2 ýòàïà.
#define EXTRABITS ((CODEBITS-1)%8+1)
46 void decode_normalize( void ) {
  while( range <= BOTTOM ) {
    range <<= 1;
    low = low<<8 |
        ((next_char<<EXTRABITS) & 0xFF);
    next_char = input_byte();
    low |= next_char >> (8-EXTRABITS);
    range <<= 8;
  }
}
void decode_normalize( void ) {
  while( range <= BOTTOM ) {
    low = low<<8 |
        ((next_char<<EXTRABITS) & 0xFF);
    next_char = input_byte();
    low |= next_char >> (8-EXTRABITS);
    range <<= 8;
  }
}
(óáðàíà ëèøíÿÿ ñòðîêà â öèêëå)
90, 91, 372 Äëÿ îáîçíà÷åíèÿ ìåòîäà Ìèëëåðà-Óýãíàìà (Miller-Wegman) èñïîëüçóåòñÿ àááðåâèàòóðà LZMV âìåñòî LZMW
91 Ïðàêòè÷åñêèå ðåàëèçàöèè LZMV íåèçâåñòíû. LZMW ïðèìåíÿåòñÿ â ÑÓÁÄ DB2 ôèðìû IBM äëÿ ýêîíîìíîãî ïðåäñòàâëåíèÿ èíôîðìàöèè íåïîñðåäñòâåííî â ðåëÿöèîííîé áàçå äàííûõ. Äëÿ ñæàòèÿ äàííûõ â ÑÓÁÄ áîëåå ïðèãîäíû ìåòîäû ñ ÿâíûì ñëîâàðåì, ÷òî ïîçâîëÿåò îðãàíèçîâàòü ñòàòè÷åñêèé ðåæèì ñæàòèÿ ñ ïîìîùüþ çàðàíåå ïîñòðîåííîãî ñëîâàðÿ, áåç àäàïòàöèè ê ëîêàëüíûì èçìåíåíèÿì. «Æàäíàÿ» ñòðàòåãèÿ ïîñòðîåíèÿ ñëîâàðÿ LZMW îáåñïå÷èâàåò çàìåòíîå ïðåèìóùåñòâî íàä LZW ïî ñòåïåíè ñæàòèÿ, ïîñêîëüêó äàííûå îáû÷íî âûñîêîèçáûòî÷íû èç-çà íàëè÷èÿ áîëüøîãî êîëè÷åñòâà äëèííûõ ïîâòîðÿþùèõñÿ ñòðîê è íåîäíîðîäíû (ñæàòèå â DB2 îñóùåñòâëÿåòñÿ ïî ñòðîêàì, à âåäü îòäåëüíûå êîëîíêè îáû÷íî ñèëüíî îòëè÷àþòñÿ). Òàêèì îáðàçîì, LZMW èìååò ñâîþ ñïåöèôè÷åñêóþ íèøó.
179 Îïèñàííûå àëãîðèòìû CTW ðàáîòàþò ñ áèíàðíûì àëôàâèòîì. Ýòî íå òàê. Ñóùåñòâóþò òåîðåòè÷åñêèå ðàçðàáîòêè è ïðàêòè÷åñêèå ðåàëèçàöèè ìóëüòèàëôàâèòíîãî CTW. Íàïðèìåð, ñì. Sadakane K. et al. Implementing the Context Tree Weighting Method for Text Compression
189 for( i=0; i<n; i++) {
  sum += count[i];
  count[i] = sum - count[i];
}
for( i=0; i<N; i++) {
  sum += count[i];
  count[i] = sum - count[i];
}
190 for( i=0; i<n; i++) {
  putc( in[pos], output );
  pos = T[pos];
}
for( i=0; i<n; i++) {
  pos = T[pos];
  putc( in[pos], output );

}

(ïîìåíÿòü ìåñòàìè ñòðî÷êè)
199 Ðèñ. 5.15. 1-2-êîäèðîâàíèå ÷èñåë:
×èñëî ïîâòîðîâ Êîä
... ...
5 z1z1
... ...

×èñëî ïîâòîðîâ Êîä
... ...
5 z2z1
... ...
252 Åñëè èíäåêñ ðàâåí 58, òî îòîáðàæåíèå áóäåò òàêèì: Åñëè èíäåêñ ðàâåí 56, òî îòîáðàæåíèå áóäåò òàêèì:
271 Òðåáóåìûé îáúåì ïàìÿòè ïðè ñæàòèè. PPM: Âàðüèðóåòñÿ â øèðîêèõ ïðåäåëàõ, â çàâèñèìîñòè îò ñëîæíîñòè ìîäåëèðîâàíèÿ è ïîðÿäêà ìîäåëè; âûðàñòàåò íà ìàëîèçáûòî÷íûõ è î÷åíü íåîäíîðîäíûõ äàííûõ Óòâåðæäåíèå îá óâåëè÷åíèè ðàñõîäà ïàìÿòè â ñëó÷àå ìàëîèçáûòî÷íûõ äàííûõ ñïîðíî. Ýòî çàâèñèò îò èñïîëüçóåìûõ â êîìïðåññîðå ñòðóêòóð äàííûõ.  òîì ñëó÷àå, åñëè â ìîäåëè íå õðàíèòñÿ â ÿâíîì âèäå èíôîðìàöèÿ î òàê íàçûâàåìûõ "âèðòóàëüíûõ" ñîñòîÿíèÿõ, âîçíèêøèõ òîëüêî îäèí ðàç, òî ñèòóàöèÿ ìîæåò áûòü è îáðàòíîé, îñîáåííî ïðè áîëüøîì ïîðÿäêå ìîäåëè.  èòîãå äëÿ êîäèðîâàíèÿ óæå ñæàòîãî ôàéëà (ñòåïåíü ñæàòèÿ îêîëî 1) ìîæåò òðåáîâàòüñÿ ìåíüøèé îáúåì ïàìÿòè, ÷åì äëÿ êîäèðîâàíèÿ òåêñòîâîãî ôàéëà (ñòåïåíü ñæàòèÿ 3-4) òàêîãî æå ðàçìåðà.
294 Ïîñëåäîâàòåëüíîñòü êîäîâ äëÿ äàííîãî ïðèìåðà, ïîïàäàþùèõ â âûõîäíîé ïîòîê: <256> <45> <55> <55> <151> <259>. Íå çàêîäèðîâàí ïîñëåäíèé ñèìâîë 55 è ñèìâîë êîíöà ïîòîêà, ïîýòîìó:
Ïîñëåäîâàòåëüíîñòü êîäîâ äëÿ äàííîãî ïðèìåðà, ïîïàäàþùèõ â âûõîäíîé ïîòîê: <256> <45> <55> <55> <151> <259> <55> <257>.
297 Óïðàæíåíèå. Ñîñòàâèòü àëãîðèòì ãåíåðàöèè òàêèõ öåïî÷åê. Ïîïðîáîâàòü ñæàòü ïîëó÷åííûé òàêèì îáðàçîì ôàéë ñòàíäàðòíûìè àðõèâàòîðàìè (zip, arj, gz). Åñëè âû ïîëó÷èòå ñæàòèå, çíà÷èò, àëãîðèòì ãåíåðàöèè íàïèñàí íåïðàâèëüíî.  îáùåì ñëó÷àå ýòî íå òàê. Ïîñêîëüêó ïîäðàçóìåâàþòñÿ LZH-àðõèâàòîðû, òî ìîæåò ñêàçàòüñÿ íàëè÷èå êîäèðîâàíèÿ ïî Õàôôìàíó. Åñëè â ñãåíåðèðîâàííûõ äàííûõ åñòü ëîêàëüíûå îáëàñòè ïðåîáëàäàíèÿ îäíèõ ñèìâîëîâ íàä äðóãèìè, òî îíè ìîãóò áûòü ñæàòû LZH, ïóñòü äàæå è áëî÷íî-àäàïòèâíûì.
302 Ïåðåïóòàíû ïîäïèñè ó ðèñ. 1.1 è ðèñ. 1.2.
307 Íåïðàâèëüíàÿ ìàòðèöà ïåðåõîäà RGB --> YCrCb:

308 Ïëàâíîå èçìåíåíèå öâåòà ñîîòâåòñòâóåò íèçêî÷àñòîòíîé ñîñòàâëÿþùåé, à ðåçêèå ñêà÷êè - íèçêî÷àñòîòíîé. Ïëàâíîå èçìåíåíèå öâåòà ñîîòâåòñòâóåò íèçêî÷àñòîòíîé ñîñòàâëÿþùåé, à ðåçêèå ñêà÷êè - âûñîêî÷àñòîòíîé.
318   ...
  } // Next range block
  Save_Coefficients_to_file(best);
} // Next domain block
  ...
  } // Next domain block
  Save_Coefficients_to_file(best);
} // Next range block
318 Íåâåðíàÿ ôîðìóëà ñäâèãà ïî ÿðêîñòè:
318 Íåâåðíàÿ ôîðìóëà ìåðû:
318 ×àñòü ïðîãðàììû
for (all domain blocks)
for (all range blocks) +
  symmetry transformation
×àñòü ïðîãðàììû
for (all range blocks)
for (all domain blocks) +
  symmetry transformation
319 For(every pixel(i,j) in the block{
  Rij = 0.75Dij + oR;
} //Next pixel
For(every pixel(i,j) in the block{
  Rij = 0.75Dij + q;
} //Next pixel
326 Ïåðåïóòàíû èíäåêñû ó êîýôôèöèåíòîâ h â ôîðìóëàõ ïðåîáðàçîâàíèé:


327 Ñìåùåíû èíäåêñû â ôîðìóëå:
Àâòîðû âûðàæàþò ïðèçíàòåëüíîñòü Ýðàñòó Êóíåíêîâó, Åâãåíèþ Øåëâèíó, Àëåêñåþ Ïàíèíó, Äìèòðèþ Øêàðèíó, Âëàäèìèðó Âîâêó, Ñåðãåþ Îñíà÷ó, Äìèòðèþ Õìåëåâó, Ñåðãåþ Ôðîëîâó, Áîðèñó è Âèêòîðó Çàé÷èêîâó çà èõ êîíñòðóêòèâíûå çàìå÷àíèÿ.

íàâåðõ