Dwar metodu stramb biex jiġi ffrankat l-ispazju fuq il-hard disk

Utent ieħor irid jikteb biċċa dejta ġdida fuq il-hard drive, iżda m'għandux biżżejjed spazju ħieles biex jagħmel dan. Lanqas ma rrid inħassar xejn, peress li "kollox huwa importanti ħafna u meħtieġ." U x’għandna nagħmlu biha?

Ħadd ma għandu din il-problema. Hemm terabytes ta 'informazzjoni fuq il-hard drives tagħna, u dan l-ammont m'għandux it-tendenza li jonqos. Imma kemm hi unika? Fl-aħħar, il-fajls kollha huma biss settijiet ta 'bits ta' ċertu tul u, x'aktarx, il-ġdid mhux differenti ħafna minn dak li huwa diġà maħżun.

Huwa ċar li t-tfittxija għal biċċiet ta 'informazzjoni diġà maħżuna fuq hard drive hija, jekk mhux falliment, allura għall-inqas mhux kompitu effettiv. Min-naħa l-oħra, jekk id-differenza hija żgħira, allura tista 'taġġustaha ftit...

Dwar metodu stramb biex jiġi ffrankat l-ispazju fuq il-hard disk

TL;DR - it-tieni tentattiv biex titkellem dwar metodu stramb ta 'ottimizzazzjoni tad-dejta bl-użu ta' fajls JPEG, issa f'forma li tinftiehem aktar.

Dwar bits u differenza

Jekk tieħu żewġ biċċiet ta 'dejta kompletament każwali, allura fuq medja nofs il-bits li fihom jikkoinċidu. Tabilħaqq, fost it-tqassim possibbli għal kull par ('00, 01, 10, 11′), eżattament nofshom għandhom l-istess valuri, kollox huwa sempliċi hawn.

Imma ovvjament, jekk nieħdu biss żewġ fajls u noqogħdu wieħed mat-tieni, allura nitilfu wieħed minnhom. Jekk insalvaw il-bidliet, aħna sempliċiment nerġgħu nivvintaw kodifikazzjoni delta, li teżisti perfettament tajjeb mingħajrna, għalkemm normalment ma tintużax għall-istess skopijiet. Nistgħu nippruvaw indaħħlu sekwenza iżgħar f'waħda akbar, iżda anke hekk nirriskjaw li nitilfu segmenti kritiċi ta 'data jekk nużawha b'mod imprudenti ma' kollox.

Bejn xiex u dak imbagħad tista' tiġi eliminata d-differenza? Ukoll, jiġifieri, fajl ġdid miktub mill-utent huwa biss sekwenza ta 'bits, li biha ma nistgħu nagħmlu xejn waħedhom. Imbagħad għandek bżonn biss issib tali bits fuq il-hard drive li jistgħu jinbidlu mingħajr ma jkollok għalfejn taħżen id-differenza, sabiex tkun tista 'tgħix it-telf tagħhom mingħajr konsegwenzi serji. U jagħmel sens li tbiddel mhux biss il-fajl fuq l-FS innifsu, iżda xi informazzjoni inqas sensittiva ġewwa fih. Imma liema waħda u kif?

Metodi ta' twaħħil

Fajls kompressati lossy jiġu għas-salvataġġ. Dawn kollha jpegs, mp3s u oħrajn, għalkemm kompressjoni lossy, fihom mazz ta 'bits li jistgħu jinbidlu mingħajr periklu. Huwa possibbli li jintużaw tekniki avvanzati li jimmodifikaw b'mod imperċettibbli l-komponenti tagħhom f'diversi stadji ta 'kodifikazzjoni. Stenna. Tekniki avvanzati... modifika imperċettibbli... daqsxejn f'oħra... kważi qisu steganografija!

Tabilħaqq, l-inkorporazzjoni ta 'informazzjoni f'oħra hija reminixxenti tal-metodi tagħha bħal xejn. Impressjonat ukoll bl-imperċettibbiltà tal-bidliet li saru fis-sensi umani. Fejn il-mogħdijiet diverġenti huwa fis-segretezza: il-kompitu tagħna jaqa 'fuq l-utent li jdaħħal informazzjoni addizzjonali fuq il-hard drive tiegħu; dan jagħmel biss ħsara lilu. Se jerġa’ jinsa.

Għalhekk, għalkemm nistgħu nużawhom, irridu nagħmlu xi modifiki. U mbagħad ngħidilhom u nurihom billi tuża l-eżempju ta 'wieħed mill-metodi eżistenti u format ta' fajl komuni.

Dwar is-sakals

Jekk tassew tagħfasha, hija l-iktar ħaġa kompressabbli fid-dinja. Aħna, ovvjament, nitkellmu dwar fajls JPEG. Mhux biss hemm tunnellati ta 'għodod u metodi eżistenti għall-inkorporazzjoni tad-data fiha, iżda huwa l-format grafika l-aktar popolari fuq din il-pjaneta.

Dwar metodu stramb biex jiġi ffrankat l-ispazju fuq il-hard disk

Madankollu, sabiex ma tidħolx fit-trobbija tal-klieb, trid tillimita l-qasam ta 'attività tiegħek f'fajls ta' dan il-format. Ħadd ma jħobb kwadri monokromi li jidhru minħabba kompressjoni eċċessiva, għalhekk trid tillimita lilek innifsek biex taħdem ma 'fajl diġà kkompressat, tevita rikodifikazzjoni. B'mod aktar speċifiku, b'koeffiċjenti interi, li jibqgħu wara operazzjonijiet responsabbli għat-telf tad-dejta - DCT u kwantizzazzjoni, li hija perfettament murija fl-iskema ta 'kodifikazzjoni (grazzi għall-wiki tal-Librerija Nazzjonali Bauman):
Dwar metodu stramb biex jiġi ffrankat l-ispazju fuq il-hard disk

Hemm ħafna metodi possibbli għall-ottimizzazzjoni tal-fajls jpeg. Hemm ottimizzazzjoni mingħajr telf (jpegtran), hemm ottimizzazzjoni "ebda telf“, li fil-fatt jikkontribwixxu xi ħaġa oħra, imma aħna ma jimpurtahomx minnhom. Wara kollox, jekk l-utent ikun lest li jdaħħal informazzjoni waħda f'oħra sabiex iżid l-ispazju ħieles tad-disk, allura jew ottimizza l-immaġini tiegħu żmien twil ilu, jew ma jridx jagħmel dan għal kollox minħabba l-biża 'ta' telf ta 'kwalità.

F5

Familja sħiħa ta' algoritmi taqbel ma' dawn il-kundizzjonijiet, li tista' tiffamiljarizza ruħek magħhom f’din il-preżentazzjoni tajba. L-aktar avvanzat minnhom huwa l-algoritmu F5 minn Andreas Westfeld, li jaħdem mal-koeffiċjenti tal-komponent tal-luminożità, peress li l-għajn tal-bniedem hija l-inqas sensittiva għall-bidliet tagħha. Barra minn hekk, juża teknika ta 'inkorporazzjoni bbażata fuq kodifikazzjoni tal-matriċi, li tagħmilha possibbli li jsiru inqas bidliet meta jinkorpora l-istess ammont ta' informazzjoni, iktar ikun kbir id-daqs tal-kontenitur użat.

Il-bidliet infushom jitnaqqsu biex inaqqsu l-valur assolut tal-koeffiċjenti b'wieħed taħt ċerti kundizzjonijiet (jiġifieri, mhux dejjem), li jippermettilek tuża F5 biex tottimizza l-ħażna tad-dejta fuq il-hard drive tiegħek. Il-punt huwa li l-koeffiċjent wara bidla bħal din x'aktarx se jokkupa inqas bits wara l-kodifikazzjoni ta 'Huffman minħabba d-distribuzzjoni statistika tal-valuri f'JPEG, u ż-żeri l-ġodda se jagħtu qligħ meta jikkodifikawhom bl-użu ta' RLE.

Il-modifiki meħtieġa jnaqqsu l-eliminazzjoni tal-parti responsabbli għas-segretezza (arranġament mill-ġdid tal-password), li tiffranka r-riżorsi u l-ħin ta 'eżekuzzjoni, u żżid mekkaniżmu biex taħdem b'ħafna fajls minflok wieħed kull darba. Il-qarrej mhux probabbli li jkun interessat fil-proċess tal-bidla f'aktar dettall, allura ejja ngħaddu għal deskrizzjoni tal-implimentazzjoni.

Teknoloġija avvanzata

Biex nuri kif jaħdem dan l-approċċ, implimentajt il-metodu f'C pur u wettaqt għadd ta 'ottimizzazzjonijiet kemm f'termini ta' veloċità ta 'eżekuzzjoni kif ukoll memorja (ma tistax timmaġina kemm dawn l-istampi jiżnu mingħajr kompressjoni, anke qabel DCT). Cross-pjattaforma miksuba bl-użu ta 'kombinazzjoni ta' libreriji libjpeg, pcre и tinydir, li għalih nirringrazzjawhom. Dan kollu jitqiegħed flimkien b''make', għalhekk l-utenti tal-Windows jixtiequ jinstallaw xi Cygwin għalihom infushom għall-evalwazzjoni, jew jittrattaw Visual Studio u libreriji waħedhom.

L-implimentazzjoni hija disponibbli fil-forma ta 'utilità console u librerija. Dawk interessati jistgħu jsiru jafu aktar dwar l-użu ta 'dan tal-aħħar fil-readme fir-repożitorju fuq Github, il-link li se nehmeż magħha fl-aħħar tal-post.

Kif tuża?

B'attenzjoni. L-immaġini użati għall-ippakkjar jintgħażlu billi ssir tfittxija bl-użu ta 'espressjoni regolari fid-direttorju tal-għeruq mogħti. Mat-tlestija, il-fajls jistgħu jiġu mċaqalqa, isem ġdid u kkupjati skond il-konfini tiegħu, jibdlu l-fajl u s-sistemi operattivi, eċċ. Madankollu, għandek toqgħod attent ħafna u ma tbiddel il-kontenut immedjat bl-ebda mod. Titlef il-valur ta 'anki bit wieħed jista' jagħmilha impossibbli li tiġi rkuprata l-informazzjoni.

Mat-tlestija, l-utilità tħalli fajl arkivju speċjali li fih l-informazzjoni kollha meħtieġa għall-ispakkjar, inkluża dejta dwar l-immaġini użati. Minnu nnifsu, jiżen madwar ftit kilobytes u m'għandux impatt sinifikanti fuq l-ispazju tad-diska okkupat.

Tista' tanalizza l-kapaċità possibbli billi tuża l-bandiera '-a': './f5ar -a [folder tat-tiftix] [espressjoni regolari kompatibbli mal-Perl]'. L-ippakkjar isir bil-kmand './f5ar -p [folder ta' tfittxija] [espressjoni regolari kompatibbli mal-Perl] [fajl ippakkjat] [isem tal-arkivju]', u l-ispakkjar b''./f5ar -u [fajl tal-arkivju] [isem tal-fajl irkuprat ]' .

Dimostrazzjoni ta' xoghol

Biex nuri l-effettività tal-metodu, tellajt ġabra ta’ 225 ritratt assolutament b’xejn ta’ klieb mis-servizz Unsplash u sab fid-dokumenti pdf kbir ta’ 45 metru tat-tieni volum Arti tal-Programmazzjoni Knuta.

Is-sekwenza hija pjuttost sempliċi:

$ 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/

Screenshots għall-partitarji

Dwar metodu stramb biex jiġi ffrankat l-ispazju fuq il-hard disk

Il-fajl mhux ippakkjat jista' u xorta għandu jinqara:

Dwar metodu stramb biex jiġi ffrankat l-ispazju fuq il-hard disk

Kif tistgħu taraw, mill-oriġinali 633 + 36 == 669 megabytes ta 'dejta fuq il-hard drive, wasalna għal aktar pjaċevoli 551. Differenza radikali bħal din hija spjegata bit-tnaqqis fil-valuri tal-koeffiċjenti, li taffettwa tagħhom kompressjoni lossless sussegwenti: it-tnaqqis wieħed wieħed jista 'faċilment "jaqta' ftit bytes mill-fajl finali. Madankollu, dan għadu telf ta 'data, għalkemm wieħed estremament żgħir, li inti ser ikollok tlaħħaq magħha.

Fortunatament, huma assolutament inviżibbli għall-għajn. Taħt l-ispoiler (peress li l-habrastorage ma jistax jimmaniġġja fajls kbar), il-qarrej jista’ jevalwa d-differenza kemm bl-għajnejn kif ukoll bl-intensità tagħhom, miksuba billi jitnaqqsu l-valuri tal-komponent mibdul mill-oriġinal: oriġinali, bl-informazzjoni ġewwa, differenza (aktar ma jkun matt il-kulur, iżgħar tkun id-differenza fil-blokka).

Minflok ma tikkonkludi

Meta wieħed iqis dawn id-diffikultajiet kollha, ix-xiri ta 'hard drive jew it-tlugħ ta' kollox fil-cloud jista 'jidher soluzzjoni ħafna aktar sempliċi għall-problema. Iżda minkejja li ngħixu fi żmien hekk mill-isbaħ issa, m'hemm l-ebda garanzija li għada xorta se jkun possibbli li tidħol online u ttella' d-dejta żejda kollha tiegħek x'imkien. Jew mur fil-maħżen u tixtri lilek innifsek hard drive ieħor ta' elf terabyte. Imma dejjem tista 'tuża djar eżistenti.

-> GitHub

Sors: www.habr.com

Żid kumment