Ku saabsan hab la yaab leh oo lagu badbaadinayo meel disk adag

Isticmaale kale ayaa raba inuu u qoro qayb cusub oo xog ah darawalka adag, laakiin ma haysto meel bannaan oo ku filan oo uu tan ku sameeyo. Sidoo kale ma rabo inaan tirtiro wax, maadaama "wax walba waa mid aad muhiim u ah oo lagama maarmaanka ah." Maxaan ku samaynaa?

Qofna dhibkan ma qabo. Waxaa jira terabyte oo macluumaad ah oo ku jira darawalladayada adag, lacagtani uma muuqato inay hoos u dhacdo. Laakiin sidee ayay u gaar tahay? Dhammaadka, dhammaan faylasha waa qaybo dherer ah oo gaar ah, waxayna u badan tahay, kan cusubi wax badan kama duwana kii horeba loo kaydiyay.

Way caddahay in raadinta qaybo ka mid ah macluumaadka horay loogu kaydiyay dariiqa adag ay tahay, haddii aysan ahayn guuldarro, ka dibna ugu yaraan maaha hawl waxtar leh. Dhanka kale, haddii farqiga u yar yahay, markaa waxaad hagaajin kartaa wax yar ...

Ku saabsan hab la yaab leh oo lagu badbaadinayo meel disk adag

TL; DR - isku daygii labaad ee lagaga hadlo hab la yaab leh oo lagu hagaajinayo xogta iyadoo la adeegsanayo faylasha JPEG, hadda qaab la fahmi karo.

Ku saabsan xoogaa iyo faraqa

Haddii aad qaadatid laba qaybood oo xog ah oo aan kala sooc lahayn, ka dib celcelis ahaan kala badh qashin-qubka ay ku jiraan ayaa isku beegmay. Runtii, ka mid ah jaantusyada suurtogalka ah ee lammaane kasta ('00, 01, 10, 11'), sida saxda ah kala badh waxay leeyihiin qiime isku mid ah, wax walba waa ku fudud yihiin halkan.

Laakiin dabcan, haddii aan kaliya soo qaadanno laba fayl oo aan midna ku dhejino kan labaad, markaa waxaan lumin doonnaa mid iyaga ka mid ah. Haddii aan badbaadino isbeddellada, waxaan si fudud dib u curin doonnaa codeeynta delta, kaas oo si fiican u jira la'aanteenna, inkasta oo aan inta badan loo isticmaalin ujeedooyin isku mid ah. Waxaan isku dayi karnaa inaan ku dhejino taxane yar oo mid weyn, laakiin sidaas darteed waxaan halis u nahay inaan lumino qaybaha muhiimka ah ee xogta haddii aan u isticmaalno si taxadar la'aan ah wax kasta.

Maxaa u dhexeeya iyo waa maxay markaas kala duwanaanshaha la tirtiri karaa? Hagaag, taasi waa, faylka cusub ee uu qoray isticmaaluhu waa uun isku xigxiga xoogaa yar, kaas oo aynaan keligeed waxba ku samayn karin. Markaa waxaad u baahan tahay oo kaliya inaad ka heshid qashinka noocaas ah ee darawalka adag si ay u beddelaan iyada oo aan la kaydin farqiga, si aad uga badbaado khasaaradooda iyada oo aan cawaaqib xun. Waxayna macno samaynaysaa in aan la beddelin oo keliya faylka FS laftiisa, laakiin qaar ka mid ah macluumaadka xasaasiga ah ee gudaha ku jira. Laakiin kee iyo sidee?

Hababka ku habboon

Faylasha lumiyay ee la isku cadeeyey ayaa u soo gurmada. Dhammaan jpegyadan, mp3-yada iyo kuwa kale, in kasta oo cadaadisku uu khasaare yahay, waxa ay ka kooban yihiin qaybo farabadan oo si badbaado leh loo beddeli karo. Waa suurtogal in la isticmaalo farsamooyin horumarsan oo si aan la fahmi karin wax uga beddelaya qaybahooda heerar kala duwan oo codayn ah. Sug Farsamo horumarsan...wax ka beddel aan la fahmi karin...midba mid kale galay...waxay ku dhowdahay sida steganography!

Runtii, ku-daridda hal macluumaad mid kale waxay xasuusinaysaa hababkeeda sida wax kale. Waxa kale oo aan aad ula dhacay sida aan loo fahmi karin isbeddellada lagu sameeyay dareenka bini'aadamka. Halka ay jidadku ku kala duwan yihiin sir ahaan: hawsheenu waxay hoos ugu dhacdaa isticmaaluhu gelinta macluumaadka dheeraadka ah ee darawalkiisa adag; kaliya waxay dhaawici doontaa isaga. Mar kale ayuu illoobi doonaa.

Sidaa darteed, inkastoo aan isticmaali karno, waxaan u baahanahay inaan wax ka bedelno. Kadibna waxaan u sheegi doonaa oo tusi doonaa iyaga oo isticmaalaya tusaale ahaan mid ka mid ah hababka jira iyo qaabka faylka caadiga ah.

Ku saabsan dawacooyinka

Haddii aad si dhab ah u tuujiso, waa shayga ugu cadaadiska badan adduunka. Waxaan, dabcan, ka hadlaynaa faylasha JPEG. Ma aha oo kaliya inay jiraan qalab badan iyo habab jira oo lagu dhex gelinayo xogta, laakiin waa qaabka sawirada ugu caansan meerahan.

Ku saabsan hab la yaab leh oo lagu badbaadinayo meel disk adag

Si kastaba ha ahaatee, si aadan ugu lug yeelan taranta eyda, waxaad u baahan tahay inaad xaddido goobtaada dhaqdhaqaaqa faylasha qaabkan. Qofna ma jecla labajibbaaran monochrome oo u muuqda cufnaanta xad dhaafka ah awgeed, marka waxaad u baahan tahay inaad naftaada xaddido inaad ku shaqeyso fayl hore loo cufay, ka fogaanshaha dib u habeynta. Si gaar ah, oo leh isku-dhafan isku-dhafan, kuwaas oo hadha ka dib hawlgallada mas'uul ka ah luminta xogta - DCT iyo qiyaasid, taas oo si fiican loogu soo bandhigay nidaamka codaynta (mahadsanid wiki ee Maktabadda Qaranka ee Bauman):
Ku saabsan hab la yaab leh oo lagu badbaadinayo meel disk adag

Waxaa jira habab badan oo suurtagal ah oo lagu hagaajinayo faylasha jpeg. Waxaa jira wanaajin aan khasaare lahayn (jpegtran), waxaa jira tayayn "khasaare la'aan", taas oo dhab ahaantii wax kale ku kordhinaysa, laakiin ma daneyno iyaga. Ka dib oo dhan, haddii isticmaaluhu uu diyaar u yahay inuu mid ka mid ah macluumaadka ku dhejiyo mid kale si uu u kordhiyo booska diskka ee bilaashka ah, ka dibna wuxuu hagaajiyay sawirradiisa wakhti dheer ka hor, ama ma rabo inuu tan sameeyo dhammaan cabsida tayada lumin.

F5

Qoys dhan oo algorithms ah ayaa ku habboon shuruudahan, kuwaas oo aad baran karto naftaada bandhigan wanaagsan. Kuwa ugu horumarsan ee iyaga ka mid ah waa algorithm F5 Waxaa qoray Andreas Westfeld, isagoo la shaqeynaya isku-xireyaasha qaybta dhalaalka, maadaama isha bini'aadamka ay ugu dareen yar tahay isbeddelladeeda. Waxaa intaa dheer, waxay isticmaashaa farsamo ku dhejinta oo ku salaysan matrix encoding, taas oo suurtogal ka dhigaysa in la sameeyo isbeddello yar marka la dhexgelinayo isla qadarka macluumaadka, way weyn tahay cabbirka weelka la isticmaalo.

Isbeddellada laftoodu waxay hoos u dhigaan inay hoos u dhigaan qiimaha saxda ah ee isku-xireyaasha mid ka mid ah xaaladaha qaarkood (taasi waa, had iyo jeer maaha), taas oo kuu oggolaanaysa inaad isticmaasho F5 si aad u wanaajiso kaydinta xogta ee darawalkaaga adag. Xaqiiqdu waxay tahay in isbarbardhigga isbeddelka noocan oo kale ah ka dib ay u badan tahay inuu ku ekaado xoogaa yar ka dib markii Huffman uu codeeyo sababtoo ah qaybinta tirakoobka ee qiyamka JPEG, eberyada cusubi waxay ku siin doonaan faa'iido marka la codsado iyaga oo isticmaalaya RLE.

Wax ka beddelka lagama maarmaanka ah ayaa hoos u dhigaya in la tirtiro qaybta mas'uulka ka ah sirta (habaynta erayga sirta ah), kaas oo kaydiya agabka iyo wakhtiga fulinta, iyo ku darida habka loogu shaqaynayo faylal badan halkii uu mid mid ka ahaan lahaa. Akhristaha lagama yaabo inuu si faahfaahsan u xiisaynayo geeddi-socodka isbeddelka, markaa aan u gudubno sharraxaadda hirgelinta.

Farsamada sare

Si loo muujiyo sida habkani u shaqeeyo, waxaan ku hirgeliyay habka saafiga ah ee C waxaanan fuliyay tiro ka mid ah hagaajinta labadaba marka la eego xawaaraha fulinta iyo xusuusta (ma qiyaasi kartid inta ay le'eg tahay sawiradani miisaan la'aan, xitaa ka hor DCT). Iskutallaab-madaxeed lagu gaaray iyadoo la adeegsanayo isku-dhafka maktabadaha libjpeg, pcre ΠΈ tindir, taas oo aan uga mahadcelineyno. Waxaas oo dhan waxaa lagu soo daray 'sameeyay', markaa isticmaaleyaasha Windows waxay rabaan inay naftooda ku rakibaan xoogaa Cygwin si ay u qiimeeyaan, ama ula macaamilaan Visual Studio iyo maktabadaha keligood.

Hirgelinta waxaa lagu heli karaa qaab utility console iyo maktabad. Kuwa xiiseynaya waxay ka heli karaan wax badan oo ku saabsan isticmaalka dambe ee akhrinta ee kaydka Github, isku xirka aan ku lifaaqi doono dhamaadka boostada.

Sidee loo isticmaalaa?

Si taxadar leh. Sawirada loo isticmaalo baakadaha waxaa lagu doortaa raadinta iyadoo la isticmaalayo odhaah joogto ah oo ku jirta hagaha xididka la siiyay. Marka la dhammeeyo, faylasha waa la rari karaa, la bedeli karaa oo la koobi karaa sida la doono gudaha xuduudahooda, beddelaan faylka iyo nidaamyada hawlgalka, iwm. Si kastaba ha ahaatee, waa inaad aad uga taxadirtaa oo ha beddelin waxa ku jira sinaba. Luminta qiimaha xitaa hal xoogaa waxay ka dhigi kartaa mid aan suurtagal ahayn in la soo celiyo macluumaadka.

Marka la dhammeeyo, utility-gu wuxuu ka tagayaa faylka kaydka gaarka ah oo ka kooban dhammaan macluumaadka lagama maarmaanka u ah furida, oo ay ku jiraan xogta ku saabsan sawirada la isticmaalay. Laftigeedu, waxa uu miisaankiisu ku saabsan yahay laba kilobytes mana laha wax saamayn ah oo la taaban karo oo ku saabsan booska saxanka ee la haysto.

Waxaad ku falanqeyn kartaa awoodda suurtogalka ah adigoo isticmaalaya '-a' calanka: './f5ar -a [galka raadinta] [Perl-ku-qaban-qabta hadalka joogtada ah]'. Xiritaanka waxaa lagu sameeyaa amarka './f5ar -p [faylka raadinta] [Faylka caadiga ah ee Perl ku habboon] [faylka la buuxiyey] [magaca kaydka]', iyo furitaanka './f5ar -u [faylka kaydka] [magaca faylka la soo kabsaday ]'

Muujinta shaqada

Si loo muujiyo waxtarka habka, waxaan soo galiyay 225 sawir oo bilaash ah oo ah eeyaha adeegga Aadaabta waxaana laga helay dukumeentiyada pdf weyn oo 45 mitir ah oo mugga labaad ah Fanka Barnaamijyada Knut.

Tixdu waa mid fudud:

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

Sawirada taageerayaasha

Ku saabsan hab la yaab leh oo lagu badbaadinayo meel disk adag

Faylka aan la xidhin waa la akhriyi karaa:

Ku saabsan hab la yaab leh oo lagu badbaadinayo meel disk adag

Sida aad arki karto, laga soo bilaabo asalka 633 + 36 == 669 megabyte xogta ku saabsan darawalka adag, waxaan u nimid aad u fiican 551. Farqiga xagjirka ah ee noocan oo kale ah ayaa lagu sharaxay hoos u dhaca qiimaha coefficients, kaas oo saameeya iyaga Isku-buufin aan khasaare lahayn oo soo socota: mid-mid-hoos u dhigista waxay si fudud u β€œ jari kartaa dhowr bytes galka u dambeeya. Si kastaba ha ahaatee, tani weli waa lumis xog, in kasta oo aad u yar, oo ay tahay inaad u dulqaadato.

Nasiib wanaag, gabi ahaanba lama arki karo isha. Marka la eego kharribayaha (maadaama habrastorage aysan xamili karin faylal waaweyn), akhristuhu wuxuu qiimeyn karaa farqiga u dhexeeya isha iyo xoojinta labadaba, oo lagu helo iyada oo laga jarayo qiyamka qaybta la beddelay ee asalka ah: asalka ah, iyada oo xogta ku jirta, kala duwanaansho (midabka caajiska ah, inta yar ee farqiga u dhexeeya block).

Halkii gabagabo

Iyadoo la tixgelinayo dhammaan dhibaatooyinkaas, iibsashada darawal adag ama wax kasta oo ku dhejinta daruuraha waxay u ekaan kartaa xal aad u fudud dhibaatada. Laakiin inkasta oo aan hadda ku noolnahay waqti cajiib ah, ma jirto wax dammaanad ah in berrito ay weli suurtagal noqon doonto in la galo internetka oo aad geliso dhammaan xogtaada dheeraadka ah meel. Amma dukaanka aado oo soo iibso kun kale oo terabyte hard drive ah. Laakiin mar walba waxaad isticmaali kartaa guryaha jira.

-> GitHub

Source: www.habr.com

Add a comment