O le isi tagata fa'aoga e mana'o e tusi se vaega fou o fa'amaumauga i le kesi malo, ae e le lava le avanoa avanoa e fai ai lenei mea. Ou te le manaʻo foi e tape se mea, talu ai "o mea uma e taua tele ma tatau." Ma o le a le mea e tatau ona tatou faia i ai?
E leai se tasi e i ai lenei faafitauli. O lo'o iai terabytes o fa'amatalaga i luga oa tatou ta'avale malosi, ma o lenei aofa'i e le fa'aitiitia. Ae o le a le tulaga ese? I le faaiuga, o faila uma e naʻo seti o vaega o se umi ma, e foliga mai, o le mea fou e le ese tele mai le mea ua uma ona teuina.
E manino lava o le suʻeina o faʻamatalaga ua uma ona teuina i luga o se kesi malo, pe a le o se toilalo, o lona uiga e le o se galuega aoga. I le isi itu, afai e laʻititi le eseesega, ona mafai lea ona e faʻafetaui sina mea ...
TL; DR - o le taumafaiga lona lua e talanoa e uiga i se auala ese o le faʻaogaina o faʻamaumauga e faʻaaoga ai faila JPEG, i le taimi nei i se faiga e sili atu ona malamalama.
E uiga i vaega ma eseesega
Afai e te aveina ni fasipepa se lua o fa'amaumauga, ona o'o lea i le averesi o le afa o vaega o lo'o i ai e fetaui. Ioe, i totonu o faʻatulagaga talafeagai mo paga taʻitasi ('00, 01, 10, 11′), o le afa tonu lava e tutusa tau, e faigofie mea uma iinei.
Ae o le mea moni, afai tatou te aveina faila e lua ma fetaui le tasi i le lona lua, ona tatou leiloa lea o se tasi oi latou. Afai tatou te faʻasaoina suiga, o le a tatou toe faʻafouina
I le va o le a ma le a le mea e mafai ona faʻaumatia le eseesega? Ia, o lona uiga, o se faila fou na tusia e le tagata faʻaoga ua naʻo se faʻasologa o vaega, lea e le mafai ai ona tatou faia se mea na o ia. Ona e manaʻomia lea ona e suʻeina ia mea i luga o le kesi malo e mafai ona suia e aunoa ma le teuina o le eseesega, ina ia mafai ai ona e ola i lo latou leiloa e aunoa ma ni taunuuga ogaoga. Ma e talafeagai le suia e le naʻo le faila i luga o le FS lava ia, ae o nisi faʻamatalaga maaleale i totonu. Ae o le fea ma e faapefea?
Metotia fetaui
O faila compressed leiloa e sau e laveai. O nei jpegs uma, mp3s ma isi, e ui ina leiloa le faʻamalosi, o loʻo i ai le tele o vaega e mafai ona suia saogalemu. E mafai ona fa'aogaina auala fa'apitoa e fa'amanino le suia o latou vaega i la'asaga eseese o le encoding. Faatali. Fa'atekonolosi fa'apitoa... fa'alelei le va'aia... tasi le vaega i le isi... e pei lava
O le mea moni, o le faʻapipiʻiina o le tasi faʻamatalaga i le isi e faʻamanatuina ai ana metotia e leai se isi mea. Ou te faagaeetia foi i le le iloa o suiga ua faia i lagona faaletagata. O le mea e vaʻavaʻai ai auala e faʻalilolilo: o la tatou galuega e oʻo mai i le tagata faʻaoga e tuʻuina atu faʻamatalaga faaopoopo i luga o lana kiliva malo; e na o le afaina ai o ia. O le a ia toe galo.
O le mea lea, e ui lava e mafai ona tatou faʻaogaina, e manaʻomia ona tatou faia ni suiga. Ona ou taʻu atu lea ma faʻaali atu ia i latou e faʻaaoga ai le faʻataʻitaʻiga o se tasi o auala o loʻo i ai ma se faila faila masani.
E uiga i luko
Afai e te matua oomiina, o le mea sili ona faigofie i le lalolagi. O loʻo matou talanoa e uiga i faila JPEG. E le gata o loʻo i ai le tele o meafaigaluega ma metotia o loʻo i ai mo le faʻapipiʻiina o faʻamaumauga i totonu, ae o le ata sili ona lauiloa i luga o lenei paneta.
Ae ui i lea, ina ia le auai i le faʻatupuina o taifau, e tatau ona e faʻatapulaʻaina lau vaega o gaioiga i faila o lenei faatulagaga. E leai se tasi e fiafia i sikuea monochrome e aliali mai ona o le tele o le faʻamalosi, o lea e tatau ai ona e faʻatapulaʻaina oe lava e galue ma se faila ua uma ona faʻapipiʻiina, aloese mai le toe fa'avasegaina. Aemaise lava, faʻatasi ai ma numera numera, o loʻo tumau pea pe a maeʻa galuega e nafa ma le leiloa o faʻamaumauga - DCT ma le faʻatusatusaina, lea e faʻaalia lelei i le faʻaogaina o le polokalame (faʻafetai i le wiki o le Bauman National Library):
E tele auala talafeagai mo le fa'amalieina o faila jpeg. O loʻo i ai le faʻaogaina lelei (jpegtran), o loʻo i ai le faʻaleleia "
F5
O se aiga atoa o algorithms e fetaui ma nei tulaga, lea e mafai ona e masani ai
O suiga lava ia e faʻapupulaina i lalo i le faʻaitiitia o le tau atoatoa o coefficients e tasi i lalo o nisi tulaga (o lona uiga, e le o taimi uma), lea e mafai ai ona e faʻaogaina le F5 e faʻamalieina ai le teuina o faʻamaumauga i luga o lau kesi malo. O le manatu o le coefficient pe a maeʻa sea suiga o le a sili atu ona itiiti ifo nai vaega pe a maeʻa le faʻaogaina o Huffman ona o le tufatufaina faʻafuainumera o tau i le JPEG, ma o zeros fou o le a maua ai se tupe maua pe a faʻapipiʻiina i latou e faʻaaoga ai le RLE.
O suiga manaʻomia e faʻapipiʻi i lalo e faʻaumatia ai le vaega e nafa ma le faʻalilolilo (faʻasologa o upusii), lea e faʻasaoina ai punaoa ma taimi faʻatinoina, ma faʻaopoopoina se masini mo le galue i le tele o faila nai lo le tasi i le taimi. O le tagata faitau e foliga mai e le fiafia i le suiga o le faagasologa i nisi auiliiliga, o lea ia tatou agai i luma i se faʻamatalaga o le faʻatinoga.
Maualuga tekonolosi
Ina ia faʻaalia pe faʻafefea ona faʻaogaina lenei auala, na ou faʻatinoina le metotia i le mama C ma faʻatinoina le tele o faʻataʻitaʻiga e le gata i le faʻatinoina o le saoasaoa ma le manatua (e le mafai ona e mafaufauina pe o le a le mamafa o nei ata e aunoa ma le faʻamalosi, e oʻo lava i le DCT). Fa'asa'o-tulaga ausia e ala i le tu'ufa'atasiga o faletusi
O lo'o avanoa le fa'atinoga i le tulaga o se fa'aoga fa'amafanafana ma le faletusi. O i latou e fiafia e mafai ona suʻesuʻe atili e uiga i le faʻaogaina o le mea mulimuli i le readme i le fale teu oloa i Github, le fesoʻotaʻiga o le a ou faʻapipiʻi i le pito o le pou.
Faʻafefea ona faʻaaoga?
Fa'aeteete. O ata o lo'o fa'aogaina mo le afifiina e filifilia e ala i le su'esu'eina e fa'aaoga ai se fa'amatalaga masani i totonu o le lisi o a'a. A maeʻa, faila e mafai ona faʻanofo, toe faʻaigoaina ma kopi i le loto i totonu o ona tuaoi, suia faila ma faiga faʻaogaina, ma isi. O le leiloa o le tau e oo lava i le tasi fasi e mafai ona le mafai ai ona toe maua faʻamatalaga.
A maeʻa, e tuʻuina atu e le aoga se faila faʻamaumauga faʻapitoa o loʻo i ai faʻamatalaga uma e manaʻomia mo le tatalaina, e aofia ai faʻamatalaga e uiga i ata na faʻaaogaina. Na o ia lava, e tusa ma le lua kilobytes le mamafa ma e leai se aafiaga taua i luga o le avanoa tisiki nofoia.
E mafai ona e su'esu'eina le gafatia e mafai ona fa'aaoga le '-a' fu'a: './f5ar -a [faiga su'esu'e] [Perl-compatible regular expression]'. O le faʻapipiʻiina o loʻo faia i le faʻatonuga './f5ar -p [saili faila] [Perl-compatible faʻamatalaga masani] [faʻapipiʻi faila] [igoa faʻamaumauga]', ma faʻapipiʻi i le './f5ar -u [faila faʻamaumauga] [igoa faila toe maua. ]' .
Fa'aaliga o galuega
Ina ia faʻaalia le aoga o le metotia, na ou faʻapipiʻiina se aofaʻiga o 225 ata e leai se totogi o taifau mai le tautua.
O le faasologa e fai si faigofie:
$ du -sh knuth.pdf dogs/
44M knuth.pdf
633M dogs/
$ ./f5ar -p dogs/ .*jpg knuth.pdf dogs.f5ar
Reading compressing file... ok
Initializing the archive... ok
Analysing library capacity... done in 17.0s
Detected somewhat guaranteed capacity of 48439359 bytes
Detected possible capacity of upto 102618787 bytes
Compressing... done in 39.4s
Saving the archive... ok
$ ./f5ar -u dogs/dogs.f5ar knuth_unpacked.pdf
Initializing the archive... ok
Reading the archive file... ok
Filling the archive with files... done in 1.4s
Decompressing... done in 21.0s
Writing extracted data... ok
$ sha1sum knuth.pdf knuth_unpacked.pdf
5bd1f496d2e45e382f33959eae5ab15da12cd666 knuth.pdf
5bd1f496d2e45e382f33959eae5ab15da12cd666 knuth_unpacked.pdf
$ du -sh dogs/
551M dogs/
Ata mo tagata fiafia
O le faila e le'i fa'apipi'iina e mafai ma e tatau lava ona faitau:
E pei ona mafai ona e vaʻaia, mai le uluai 633 + 36 == 669 megabytes o faʻamaumauga i luga o le kesi malo, na matou oʻo mai i le sili atu ona manaia 551. O sea eseesega faʻapitoa e faʻamatalaina e le faʻaitiitia o tau o le coefficients, lea e aʻafia ai latou. compression e leai se gau mulimuli ane: fa'aitiitia le tasi i le na'o le tasi e mafai ona faigofie " tipi ese ni lua paita mai le faila mulimuli. Ae ui i lea, o loʻo i ai pea le leiloa o faʻamatalaga, e ui lava o se mea laʻititi, e tatau ona e faʻafeiloaʻi.
O le mea e lelei ai, e matua le vaaia lava e mata. I lalo o le faʻaleagaina (talu ai e le mafai e le habrastorage ona taulimaina faila tetele), e mafai e le tagata faitau ona iloilo le eseesega e ala i le mata ma lo latou malosi, e maua e ala i le toesea o tau o le suiga mai le mea muamua:
Nai lo o se faaiuga
Mafaufau i nei faigata uma, o le faʻatauina o se kesi malo poʻo le tuʻuina atu o mea uma i le ao atonu e foliga mai o se fofo sili atu ona faigofie i le faʻafitauli. Ae e ui lava ina tatou ola i se taimi matagofie i le taimi nei, e leai ni faʻamautinoaga o taeao e mafai lava ona alu i luga ole laiga ma faʻapipiʻi uma au faʻamatalaga faaopoopo i se mea. Pe alu i le faleoloa ma faʻatau oe i le isi afe terabyte hard drive. Ae e mafai ona e faʻaogaina fale o iai i taimi uma.
->
puna: www.habr.com