Mo tetahi tikanga kee mo te penapena mokowā kōpae mārō

Ko tetahi atu kaiwhakamahi e hiahia ana ki te tuhi i tetahi waahanga hou o nga raraunga ki te puku pakeke, engari kaore i te nui te waahi mokowhiti hei mahi i tenei. Kaore hoki au e hiahia ki te whakakore i tetahi mea, i te mea "he mea tino nui nga mea katoa, he mea tika." A me aha tatou ki taua mea?

Karekau he tangata e pa ana ki tenei raru. He terabytes o nga korero kei runga i o maatau puku, a kaore tenei moni e heke iho. Engari he pehea te ahurei? I te mutunga, ko nga konae katoa he huinga moka noa te roa, a, ko te mea pea, kaore i tino rerekee te mea hou mai i te mea kua rongoa.

E marama ana ko te rapu mo nga waahanga korero kua rongoatia ki runga i te puku pakeke, ki te kore he rahua, karekau he mahi whai hua. I tetahi atu taha, mena he iti te rereketanga, katahi ka taea e koe te whakatika iti ...

Mo tetahi tikanga kee mo te penapena mokowā kōpae mārō

TL;DR - te tuarua o nga ngana ki te korero mo tetahi tikanga kee mo te arotau i nga raraunga ma te whakamahi i nga konae JPEG, inaianei i roto i te ahua maamaa ake.

Mo nga moka me te rereke

Mena ka tangohia e koe kia rua nga wahanga raraunga matapōkeretia, katahi ka rite tonu te haurua o nga mokamoka kei roto. Ae, i roto i nga whakatakotoranga ka taea mo ia takirua ('00, 01, 10, 11′), he rite tonu nga uara o te haurua, he ngawari nga mea katoa i konei.

Engari ko te tikanga, ki te tango noa tatou i nga konae e rua ka uru tetahi ki te tuarua, ka ngaro tetahi o aua konae. Mena ka tiakina e tatou nga huringa, ka whakahou noa tatou whakawaehere delta, e noho pai ana me te kore tatou, ahakoa kaore i te whakamahia mo nga kaupapa kotahi. Ka taea e tatou te ngana ki te whakauru i te raupapa iti ki roto i te waahanga nui ake, engari ka tupono ka ngaro nga waahanga nui o nga raraunga mena ka whakamahi poauau tatou ki nga mea katoa.

I waenga i te aha me te aha ka taea te whakakore i te rereketanga? Ae, ara, ko te konae hou i tuhia e te kaiwhakamahi he raupapa moka noa, e kore e taea e tatou anake te mahi. Na me rapu noa e koe nga moka pera i runga i te puku pakeke ka taea te whakarereke me te kore e penapena i te rereketanga, kia ora ai koe i to mate kaore he hua kino. A he mea tika ki te whakarereke ehara i te konae anake i runga i te FS ake, engari etahi korero iti ake i roto. Engari ko wai me pehea?

Nga tikanga whakauru

Ko nga konae kopeke ngaro ka haere mai ki te whakaora. Ko enei jpeg katoa, mp3 me etahi atu, ahakoa kua ngaro te pupuhi, kei roto i te tini o nga moka ka taea te whakarereke. Ka taea te whakamahi i nga tikanga matatau e kore e kitea te whakarereke i o raatau waahanga i nga waahanga o te whakawaehere. Tatari. Tikanga matatau... whakarerekētanga kore e kitea... tetahi wahi ki tetahi... he rite tonu te whakamaoritanga!

Ae, ko te whakauru i tetahi korero ki tetahi atu ka maumahara ki ana tikanga kaore he mea ke atu. Ka miharo ano ahau ki te kore e kitea nga whakarereketanga o te hinengaro o te tangata. Ko te waahi ka rereke nga huarahi kei roto i te muna: ko ta tatou mahi ka heke iho ki te kaiwhakamahi ki te whakauru i etahi atu korero ki runga i tana puku pakeke; ka mate noa ia. Ka wareware ano ia.

No reira, ahakoa ka taea e taatau te whakamahi, me whakarereke e tatou. Na ka korero ahau ka whakaatu ki a raatau ma te whakamahi i te tauira o tetahi o nga tikanga o mua me te whakatakotoranga konae noa.

Mo nga tarakona

Mena ka tino pehia e koe, koinei te mea tino ngawari o te ao. Ko te tikanga, kei te korero matou mo nga konae JPEG. Ehara i te mea he maha nga taputapu me nga tikanga o naianei mo te whakauru raraunga ki roto, engari ko te whakatakotoranga whakairoiro rongonui rawa atu i tenei ao.

Mo tetahi tikanga kee mo te penapena mokowā kōpae mārō

Heoi, kia kore ai koe e uru ki te whakatipu kuri, me whakawhäitihia to waahi mahi i roto i nga konae penei te whakatakotoranga. Karekau he tangata e pai ana ki nga tapawha monochrome ka puta mai na te nui o te paheketanga, no reira me whakawhäiti koe ki te mahi me te konae kua oti kee, te karo i te recoding. He mea nui ake, me nga whakarea integer, e noho tonu ana i muri i nga whakahaerenga mo te ngaronga raraunga - DCT me te inenga, e tino whakaatuhia ana i roto i te kaupapa whakawaehere (me mihi ki te wiki o te Whare Pukapuka o Bauman National):
Mo tetahi tikanga kee mo te penapena mokowā kōpae mārō

He maha nga tikanga ka taea mo te arotau i nga konae jpeg. He arotautanga korekore (jpegtran), he arotautanga "kahore he mate", e whai waahi ana ki tetahi atu mea, engari kaore matou e aro ki a raatau. I muri i nga mea katoa, mena kua rite te kaiwhakamahi ki te whakauru i tetahi korero ki tetahi atu hei whakanui ake i te mokowā kōpae kore utu, katahi ka whakatikahia e ia ana whakaahua i mua, kaore ranei e hiahia ki te mahi i tenei mo te mataku kei ngaro te kounga.

F5

Ko te whanau katoa o nga algorithm e pai ana ki enei tikanga, ka taea e koe te mohio ki a koe i tenei whakaaturanga pai. Ko te tino matatau o ratou ko te algorithm F5 na Andreas Westfeld, e mahi tahi ana me nga whakarea o te wahanga kanapa, na te mea ko te kanohi o te tangata he iti rawa te aro ki ona huringa. I tua atu, ka whakamahia he tikanga whakauru i runga i te whakawaehere matrix, na reira ka iti ake nga huringa ina whakaurua te nui o nga korero, ka nui ake te rahi o te ipu i whakamahia.

Ko nga huringa ka pupuhi ki raro ki te whakaheke i te uara tino o nga whakarea e tetahi i raro i etahi tikanga (ara, ehara i nga wa katoa), ka taea e koe te whakamahi F5 ki te arotau i te rokiroki raraunga i runga i to puku. Ko te tohu ko te whakarea i muri i tera huringa ka iti ake nga moka i muri i te whakawaehere a Huffman na te tohatoha tatauranga o nga uara i roto i te JPEG, a ka whai hua nga koo hou i te whakawaehere i a raatau ma te whakamahi i te RLE.

Ko nga whakarereketanga e tika ana kia whakakorehia te waahanga mo te huna (whakahou i te kupuhipa), ka penapena rauemi me te waa mahi, me te taapiri i tetahi tikanga mo te mahi me nga konae maha hei utu mo te kotahi i te waa. Kaore pea te kaipanui e aro nui ki te huringa huringa i roto i nga korero taipitopito, na me haere ki te whakaahuatanga o te whakatinanatanga.

Teitei hangarau

Hei whakaatu me pehea te mahi o tenei huarahi, i whakatinanahia e ahau te tikanga i roto i te C parakore me te maha o nga arotautanga e pa ana ki te tere o te mahi me te mahara (kaore e taea e koe te whakaaro ki te taumaha o enei pikitia me te kore e pupuhi, ahakoa i mua i te DCT). I tutuki te papa-whakawhiti ma te whakakotahitanga o nga whare pukapuka libjpeg, pcre и tinydir, ka mihi matou ki a ratou. Ka whakahiatohia enei mea katoa ma te 'hanga', no reira ka hiahia nga kaiwhakamahi Windows ki te whakauru i etahi Cygwin mo ratou ake hei arotake, ki te mahi ranei ki te Visual Studio me nga whare pukapuka ma ratou ake.

Kei te waatea te whakatinanatanga i te ahua o te taputapu papatohu me te whare pukapuka. Ka taea e te hunga e hiahia ana ki te rapu atu mo te whakamahi i te mea whakamutunga i roto i te panui i roto i te putunga i runga i Github, te hono ka hono atu ahau ki te mutunga o te pou.

Me pehea te whakamahi?

Kia tupato. Ko nga whakaahua e whakamahia ana mo te kapi ka tohua ma te rapu ma te whakamahi i nga korero i roto i te raarangi pakiaka. I te otinga, ka taea te nuku, whakaingoatia me te kape i nga konae ki roto i ona rohe, whakarereke i nga konae me nga punaha whakahaere, me era atu. Heoi, me tino tupato koe kia kaua e whakarereke i nga korero o mua. Ka ngaro te uara o te moka kotahi ka kore e taea te whakaora korero.

I te otinga, ka waiho e te taputapu he konae purongo motuhake kei roto nga korero katoa e tika ana mo te wetewete, tae atu ki nga raraunga mo nga whakaahua i whakamahia. Ko ia ano, tata ki te rua kiropaita te taumaha, kaore he paanga nui ki te mokowā kōpae e nohoia ana.

Ka taea e koe te wetewete i te kaha ka taea te whakamahi i te haki '-a': './f5ar -a [kōpaki rapu] [Krero auau rite-Perl]'. Kua oti te tapaki me te whakahau './f5ar -p [kōpaki rapu] [Kōrero rite-Perl-hototahi] [kōnae whakakī] [ingoa pūranga]', me te wetewete ki te './f5ar -u [kōnae pūranga] [ingoa kōnae kua ora. ]' .

Whakaaturanga mahi

Hei whakaatu i te whai huatanga o te tikanga, i tukuna e ahau he kohinga 225 nga whakaahua kore utu o nga kuri mai i te ratonga. Unsplash ka kitea i roto i nga tuhinga he pdf nui o te 45 mita o te pukapuka tuarua Toi Papatono Knuta.

He tino ngawari te raupapa:

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

Whakaahuamata mo nga kaiwhaiwhai

Mo tetahi tikanga kee mo te penapena mokowā kōpae mārō

Ko te konae kua wetewetehia ka taea, me panui tonu:

Mo tetahi tikanga kee mo te penapena mokowā kōpae mārō

Ka taea e koe te kite, mai i te 633 + 36 == 669 megabytes o nga raraunga i runga i te puku pakeke, ka tae mai ki te 551 tino pai. te kōpeketanga korekore e whai ake nei: ko te whakaiti i te kotahi ma te kotahi ka ngawari te " tapahi i nga paita e rua mai i te konae whakamutunga. Heoi, he ngaronga raraunga tonu tenei, ahakoa he mea iti rawa, ka mau tonu koe.

Waimarie, kare e kitea e te kanohi. I raro i te kaipahua (na te mea kaore e taea e te habrastorage te whakahaere i nga konae nui), ka taea e te kaipanui te arotake i te rereketanga ma te kanohi me o raatau kaha, ka whiwhi ma te tango i nga uara o te waahanga rereke mai i te taketake: te mea taketake, me nga korero o roto, Tuhinga (he puhoi ake te tae, he iti ake te rereketanga o te poraka).

Engari o te mutunga

Ma te whakaaro ki enei uauatanga katoa, ko te hoko i te puku pakeke, te tuku ranei i nga mea katoa ki te kapua ka ahua ngawari ake te otinga mo te raru. Engari ahakoa kei te noho tatou i roto i te waa tino ataahua inaianei, kaore he taurangi ka taea tonu apopo te haere ki runga ipurangi me te tuku i o raraunga taapiri katoa ki tetahi waahi. Haere ranei ki te toa ka hoko mai i tetahi atu mano terabyte puku pakeke. Engari ka taea e koe te whakamahi i nga whare o naianei.

-> GitHub

Source: will.com

Tāpiri i te kōrero