E uiga i se auala ese mo le faasaoina o avanoa hard disk

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 ...

E uiga i se auala ese mo le faasaoina o avanoa hard disk

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 fa'asologa o delta, lea e i ai lelei atoatoa e aunoa ma i tatou, e ui lava e le masani ona faʻaaogaina mo faamoemoega tutusa. E mafai ona tatou taumafai e faʻapipiʻi se faʻasologa laʻititi i totonu o se faʻasologa tele, ae tusa lava pe tatou te lamatia le leiloa o vaega taua o faʻamaumauga pe a tatou faʻaaogaina ma le le mafaufau i mea uma.

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 steganography!

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.

E uiga i se auala ese mo le faasaoina o avanoa hard disk

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 uiga i se auala ese mo le faasaoina o avanoa hard disk

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 "leai se gau", lea e saofagā moni ai se isi mea, ae matou te le popole ia i latou. A uma mea uma, afai ua sauni le tagata faʻaoga e faʻapipiʻi le tasi faʻamatalaga i le isi ina ia faʻateleina le avanoa avanoa, ona ia faʻaogaina lea o ana ata i se taimi ua leva, pe le manaʻo e faia lenei mea ona o le fefe i le leiloa o le lelei.

F5

O se aiga atoa o algorithms e fetaui ma nei tulaga, lea e mafai ona e masani ai i lenei fa'aaliga lelei. O le sili ona maualuga o latou o le algorithm F5 saunia e Andreas Westfeld, o loʻo galue faʻatasi ma le coefficients o le vaega susulu, talu ai o le mata o le tagata e sili ona le maaleale i ona suiga. E le gata i lea, o loʻo faʻaaogaina se metotia faʻapipiʻi e faʻavae i luga o le matrix encoding, lea e mafai ai ona fai ni nai suiga pe a faʻapipiʻi tutusa le aofaʻi o faʻamatalaga, o le tele o le lapoʻa o loʻo faʻaaogaina.

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 tapoleni, pcre и tinydir, lea tatou te faafetai atu ai ia i latou. O nei mea uma e tuʻufaʻatasia e le 'faia', o lea e manaʻo ai tagata faʻaoga Windows e faʻapipiʻi nisi Cygwin mo i latou lava mo le iloiloga, pe faʻatautaia le Visual Studio ma faletusi na o latou lava.

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. Unsplash ma maua i totonu o pepa o se pdf tele o 45 mita o le voluma lona lua Art of Polokalama Knuta.

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

E uiga i se auala ese mo le faasaoina o avanoa hard disk

O le faila e le'i fa'apipi'iina e mafai ma e tatau lava ona faitau:

E uiga i se auala ese mo le faasaoina o avanoa hard disk

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: le uluai kopi, ma faʻamatalaga i totonu, eseesega (o le vaivai o le lanu, o le laʻititi foi lea o le eseesega i le poloka).

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.

-> GitHub

puna: www.habr.com

Faaopoopo i ai se faamatalaga