Makemake kekahi mea hoʻohana e kākau i kahi ʻāpana ʻikepili hou i ka paʻa paʻa, akā ʻaʻole lawa kāna wahi kaʻawale e hana ai i kēia. ʻAʻole wau makemake e holoi i kekahi mea, no ka mea "he mea nui a pono nā mea āpau." A he aha kā mākou e hana ai me ia?
ʻAʻohe kanaka i kēia pilikia. Aia nā terabytes o ka ʻike ma kā mākou paʻa paʻa, a ʻaʻole e emi kēia nui. Akā, pehea ke kū hoʻokahi? I ka hopena, ʻo nā faila a pau he mau ʻāpana o kekahi lōʻihi a, ʻoi aku paha, ʻaʻole ʻokoʻa ka mea hou mai ka mea i mālama ʻia.
ʻIke ʻia ʻo ka ʻimi ʻana i nā ʻāpana o ka ʻike i mālama ʻia ma kahi kīkī paʻakikī, inā ʻaʻole he hāʻule, a laila ʻaʻole ia he hana kūpono. Ma ka ʻaoʻao ʻē aʻe, inā liʻiliʻi ka ʻokoʻa, a laila hiki iā ʻoe ke hoʻoponopono liʻiliʻi ...
TL; DR - ka lua o ka ho'āʻo ʻana e kamaʻilio e pili ana i kahi ala ʻē aʻe o ka hoʻonui ʻana i ka ʻikepili me ka hoʻohana ʻana i nā faila JPEG, i kēia manawa ma kahi ʻano hoʻomaopopo.
E pili ana i nā ʻāpana a me ka ʻokoʻa
Inā ʻoe e lawe i ʻelua mau ʻāpana ʻikepili holoʻokoʻa, a laila ma ka awelika o ka hapalua o nā ʻāpana i loko o lākou e kūlike. ʻOiaʻiʻo, ma waena o nā hoʻonohonoho hiki no kēlā me kēia pālua ('00, 01, 10, 11′), ʻo ka hapalua like nā waiwai like, maʻalahi nā mea āpau ma aneʻi.
Akā ʻoiaʻiʻo, inā mākou e lawe i ʻelua faila a hoʻopili i kekahi i ka lua, a laila e nalowale kekahi o lākou. Inā mālama mākou i nā hoʻololi, e hana hou mākou
Ma waena o ke aha a me ka mea hiki ke hoʻopau ʻia ka ʻokoʻa? ʻAe, ʻo ia hoʻi, kahi faila hou i kākau ʻia e ka mea hoʻohana he kaʻina o nā bits, me ka hiki ʻole iā mākou ke hana i kekahi mea iā ia iho. A laila pono ʻoe e ʻimi i nā ʻāpana like ʻole ma ka hard drive e hiki ke hoʻololi iā lākou me ka ʻole o ka mālama ʻana i ka ʻokoʻa, i hiki iā ʻoe ke ola i ko lākou poho me ka ʻole o nā hopena koʻikoʻi. A he mea kūpono ke hoʻololi ʻaʻole wale i ka faila ma ka FS ponoʻī, akā kekahi mau ʻike liʻiliʻi i loko. Akā ʻo wai a pehea?
Nā ʻano hana kūpono
E hoʻopakele nā faila i hoʻopaʻa ʻia. ʻO kēia mau jpegs a pau, mp3 a me nā mea ʻē aʻe, ʻoiai ʻo ka hoʻopiʻi nalowale ʻana, loaʻa i kahi pūpū o nā bits hiki ke hoʻololi palekana. Hiki ke hoʻohana i nā ʻenehana kiʻekiʻe e hoʻololi pono ʻole i kā lākou mau ʻāpana ma nā ʻano like ʻole o ka hoʻopā ʻana. E kali. ʻO nā ʻenehana kiʻekiʻe ... hiki ʻole ke hoʻololi ʻia ... hoʻokahi wahi i kekahi ... ua like ia
ʻOiaʻiʻo, ʻo ka hoʻokomo ʻana i kekahi ʻike i loko o kahi ʻē aʻe e hoʻomanaʻo nei i kāna mau ʻano like ʻole. Pīhoihoi nō hoʻi au i ka ʻike ʻole ʻia o nā loli i hana ʻia i nā manaʻo kanaka. Ma kahi huna o nā alahele: hiki mai kā mākou hana i ka mea hoʻohana e hoʻokomo i nā ʻike hou aʻe ma kāna hard drive; e pōʻino wale ia iā ia. E poina hou ana.
No laila, ʻoiai hiki iā mākou ke hoʻohana iā lākou, pono mākou e hana i kekahi mau hoʻololi. A laila e haʻi wau a hōʻike iā lākou me ka hoʻohana ʻana i ke ʻano o kekahi o nā ʻano hana a me kahi ʻano faila maʻamau.
E pili ana i nā ʻīlio hae
Inā ʻoe e ʻomi maoli iā ia, ʻo ia ka mea maʻalahi loa i ka honua. Ke kamaʻilio nei mākou e pili ana i nā faila JPEG. ʻAʻole wale ka nui o nā mea hana a me nā ʻano hana no ka hoʻokomo ʻana i ka ʻikepili i loko, akā ʻo ia ka palapala kiʻi kaulana loa ma kēia honua.
Eia naʻe, i ʻole e komo i ka hoʻoulu ʻana i ka ʻīlio, pono ʻoe e kaupalena i kāu kahua hana i nā faila o kēia ʻano. ʻAʻohe mea makemake i nā ʻāpana monochrome i ʻike ʻia ma muli o ke kaomi nui ʻana, no laila pono ʻoe e kaupalena iā ʻoe iho i ka hana ʻana me kahi faila i hoʻopili ʻia, ka pale ʻana i ka hoʻopili hou ʻana. ʻOi aku ka kikoʻī, me nā coefficients integer, e waiho nei ma hope o nā hana i kuleana no ka nalowale ʻana o ka ʻikepili - DCT a me ka quantization, i hōʻike maikaʻi ʻia i ka hoʻopā ʻana (mahalo i ka wiki o ka Bauman National Library):
Nui nā ala e hiki ai ke koho i nā faila jpeg. Loaʻa ka loiloi ʻole (jpegtran), aia ka loiloi "
F5
ʻO kahi ʻohana holoʻokoʻa o nā algorithm e kūpono i kēia mau kūlana, hiki iā ʻoe ke hoʻomaʻamaʻa iā ʻoe iho
ʻO nā hoʻololi iā lākou iho e hoʻohaʻahaʻa i ka waiwai piha o nā coefficients e kekahi ma lalo o kekahi mau kūlana (ʻo ia hoʻi, ʻaʻole i nā manawa a pau), hiki iā ʻoe ke hoʻohana i ka F5 no ka hoʻopaʻa ʻana i ka ʻikepili ma kāu hard drive. ʻO ka manaʻo, ʻo ka coefficient ma hope o ia hoʻololi e noho liʻiliʻi paha ma hope o ka hoʻopili ʻana o Huffman ma muli o ka hoʻohele helu helu o nā waiwai ma JPEG, a e hāʻawi nā zeros hou i ka waiwai i ka wā e hoʻopili ai iā lākou me ka hoʻohana ʻana iā RLE.
ʻO nā hoʻololi e pono ai e hoʻopau i ka ʻāpana kuleana no ka hūnā (hoʻonohonoho hou ʻana i ka ʻōlelo huna), ka mea e mālama ai i nā kumuwaiwai a me ka manawa hoʻokō, a hoʻohui i kahi hana no ka hana ʻana me nā faila he nui ma kahi o ka manawa hoʻokahi. ʻAʻole makemake paha ka mea heluhelu i ke kaʻina hana hoʻololi i nā kikoʻī hou aku, no laila e neʻe mākou i kahi wehewehe o ka hoʻokō.
ʻEnehana kiʻekiʻe
No ka hōʻike ʻana i ke ʻano o ka hana ʻana o kēia ala, ua hoʻokō wau i ke ʻano i loko o ka C maʻemaʻe a ua hoʻokō i ka nui o nā optimizations ma ke ʻano o ka wikiwiki o ka hoʻokō a me ka hoʻomanaʻo (ʻaʻole hiki iā ʻoe ke noʻonoʻo i ka nui o kēia mau kiʻi me ka ʻole o ka paʻi ʻana, ʻoiai ma mua o DCT). Loaʻa ʻia ka cross-platform me ka hoʻohana ʻana i nā hale waihona puke
Loaʻa ka hoʻokō ma ke ʻano o ka console utility a me ka waihona. Hiki i ka poʻe makemake ke ʻike hou aku e pili ana i ka hoʻohana ʻana i ka mea hope ma ka readme i ka waihona ma Github, ka loulou aʻu e hoʻopili ai ma ka hope o ka pou.
Pehea e hoʻohana ai?
E akahele. Koho ʻia nā kiʻi i hoʻohana ʻia no ka hoʻopili ʻana ma ka huli ʻana me ka hoʻohana ʻana i kahi ʻōlelo maʻamau i ka papa kuhikuhi kumu i hāʻawi ʻia. I ka pau ʻana, hiki ke hoʻoneʻe ʻia nā faila, inoa hou a kope ʻia ma ka makemake i loko o kona mau palena, hoʻololi i ka faila a me nā ʻōnaehana hana, a me nā mea ʻē aʻe. ʻO ka lilo ʻana o ka waiwai o hoʻokahi bit hiki ʻole ke hoʻihoʻi hou i ka ʻike.
I ka pau ʻana, waiho ka pono i kahi faila waihona kūikawā i loaʻa nā ʻike āpau e pono ai no ka wehe ʻana, me ka ʻikepili e pili ana i nā kiʻi i hoʻohana ʻia. ʻO ia iho, ʻelua kilobytes kona kaumaha a ʻaʻohe hopena koʻikoʻi i ka wahi disk i noho ʻia.
Hiki iā ʻoe ke kālailai i ka mana hiki ke hoʻohana i ka hae '-a': './f5ar -a [kōnae hulina] [huaʻōlelo maʻamau kūpono-Perl]'. Hoʻopau ʻia ka paʻi ʻana me ke kauoha './f5ar -p [pūnaewele huli] [huaʻōlelo maʻamau e like me Perl-compatible] [faila i hoʻopaʻa ʻia] [inoa waihona]', a wehe ʻia me './f5ar -u [faila waihona] [inoa faila i hoʻihoʻi ʻia. ]' .
Hōʻike i ka hana
No ka hōʻike ʻana i ka maikaʻi o ke ʻano, ua hoʻouka wau i kahi hōʻiliʻili o 225 mau kiʻi manuahi manuahi o nā ʻīlio mai ka lawelawe.
He mea maʻalahi ke kaʻina:
$ 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/
Kiʻi kiʻi no nā mea pā
Hiki ke heluhelu ʻia ka faila i wehe ʻole ʻia:
E like me kāu e ʻike ai, mai ka 633 + 36 == 669 megabytes o ka ʻikepili ma ka hard drive, ua hele mākou i kahi ʻoluʻolu 551. Ua wehewehe ʻia kēlā ʻano ʻokoʻa e ka emi ʻana o nā waiwai o nā coefficients, e pili ana i kā lākou ʻO ka hoʻoemi ʻole ʻia ʻana: hiki i ka hoʻemi ʻana i hoʻokahi i hoʻokahi wale nō hiki ke "ʻoki i ʻelua mau paita mai ka faila hope loa. Eia nō naʻe, ʻo kēia ka nalowale o ka ʻikepili, ʻoiai he mea liʻiliʻi loa, āu e hoʻomanawanui ai.
ʻO ka mea pōmaikaʻi, ʻaʻole ʻike ʻia lākou e ka maka. Ma lalo o ka mea hao (no ka mea ʻaʻole hiki i ka habrastorage ke mālama i nā faila nui), hiki i ka mea heluhelu ke loiloi i ka ʻokoʻa ma o ka maka a me ko lākou ikaika, loaʻa ma ka unuhi ʻana i nā waiwai o ka mea i hoʻololi ʻia mai ka mea kumu:
Ma kahi o ka hopena
Ke noʻonoʻo nei i kēia mau pilikia a pau, ke kūʻai ʻana i kahi kīkī paʻakikī a i ʻole ka hoʻouka ʻana i nā mea āpau i ke ao e like paha me kahi hopena maʻalahi loa i ka pilikia. Akā ʻoiai mākou e noho nei i kahi manawa maikaʻi loa i kēia manawa, ʻaʻohe mea e hōʻoiaʻiʻo i ka lā ʻapōpō hiki ke hele ma ka pūnaewele a hoʻouka i kāu ʻikepili hou aʻe ma kahi. A i ʻole e hele i ka hale kūʻai a kūʻai aku iā ʻoe iho i kahi pahu paʻa ʻē aʻe tausani terabyte. Akā hiki iā ʻoe ke hoʻohana i nā hale e kū nei.
->
Source: www.habr.com