සම්පීඩන පරාමිතියක් ඇති බැවින් PNG අලාභ රහිත වන්නේ කෙසේද?


161

පීඑන්ජී ලිපිගොනු පාඩු රහිත සම්පීඩනය භාවිතා කරන බව කියනු ලැබේ. කෙසේ වෙතත්, මම GIMP වැනි රූප සංස්කාරකයක සිටින විට සහ පින්තූරයක් PNG ගොනුවක් ලෙස සුරැකීමට උත්සාහ කරන විට, එය සම්පීඩන පරාමිතිය ඉල්ලා සිටින අතර එය 0 සහ 9 අතර පරාසයක පවතී. එහි දෘශ්‍ය නිරවද්‍යතාවයට බලපාන සම්පීඩන පරාමිතියක් තිබේ නම් සම්පීඩිත රූපය, එය PNG නැති කර ගන්නේ කෙසේද?

සම්පීඩන පරාමිතිය 9 ට සැකසූ විට පමණක් මට පාඩු රහිත හැසිරීමක් ලැබේද?


42
බොහෝ පාඩු රහිත සම්පීඩන ඇල්ගොරිතම වල සුසර කළ හැකි (ශබ්ද කෝෂයේ ප්‍රමාණය වැනි) “නිමැවුම් ප්‍රමාණය අවම කිරීම සඳහා කොපමණ උත්සාහයක් දැරිය යුතුද” යන ස්ලයිඩරය තුළ සාමාන්‍යකරණය කර ඇත. මෙය වලංගු වන්නේ ZIP, GZip, BZip2, LZMA, ...
ඩැනියෙල් බී

21
ප්‍රශ්නය වෙනස් ලෙස ප්‍රකාශ කළ හැකිය. සම්පීඩනයෙන් කිසිදු ගුණාත්මක භාවයක් නැති නොවේ නම්, සෑම විටම කුඩාම ප්‍රමාණය නිපදවන සම්පීඩනය භාවිතා නොකරන්නේ මන්ද? එවිට පිළිතුර වනුයේ සම්පීඩනය හා විසංයෝජනය සඳහා වැඩි RAM සහ වැඩි CPU කාලයක් අවශ්‍ය වන බැවිනි. සමහර විට ඔබට වේගවත් සම්පීඩනයක් අවශ්‍ය වන අතර සම්පීඩන අනුපාතය ගැන එතරම් තැකීමක් නොකරයි.
kasperd

14
PNG සම්පීඩනය ZIPping ගොනු වලට බොහෝ දුරට සමාන වේ. ඔබට ඒවා අඩු හෝ වැඩි වශයෙන් සම්පීඩනය කළ හැකි නමුත් එය දිරාපත් වූ විට ඔබට නිවැරදි ගොනුව නැවත ලැබෙනු ඇත.
mikebabcock

13
Zip සහ Rar වැනි බොහෝ සම්පීඩන මෘදුකාංග මඟින් ඔබට "සම්පීඩන මට්ටම" ඇතුළු කිරීමට ඉඩ සලසයි, එමඟින් කුඩා ගොනුව <--> කෙටි කාලය අතර තෝරා ගැනීමට ඉඩ ලබා දේ. සම්පීඩනය අතරතුර මෙම මෘදුකාංග දත්ත ඉවතලන බව එයින් අදහස් නොවේ. මෙම සිටුවම (GIMP, pngcrush, ආදිය) සමාන වේ.
සල්මාන් ඒ

2
@naxa: png සැබවින්ම අලාභ රහිතද යන්න පිළිබඳව කිසිදු අවවාදයක් නොමැත. එය සෑම විටම 100% පාඩු රහිත ය. ගැමා නිවැරදි කිරීම හැසිරවීම සඳහා සමහර පැරණි බ්‍රව්සර් ඔවුන්ගේ පීඑන්ජී ක්‍රියාත්මක කිරීමේදී ඇති වූ දෝෂ ගැන පමණක් ලිපිය ඔබට අනතුරු අඟවයි. එය අර්ථවත් වන්නේ ඔබට වර්ණය CSS වර්ණ සමඟ ගැලපීමට අවශ්‍ය නම් පමණි (ඒවා ගැමා නිවැරදි කර නැත).
පෝලි එල්

Answers:


186

පීඑන්ජී පාඩු රහිත ය. GIMP බොහෝ විට මෙම නඩුවේ හොඳම වචනය භාවිතා නොකෙරේ. එය "සම්පීඩනයේ ගුණාත්මකභාවය" හෝ වෙනත් වචනවලින් කිවහොත් "සම්පීඩන මට්ටම" ලෙස සිතන්න. අඩු සම්පීඩනය සමඟ, ඔබට විශාල ගොනුවක් ලැබෙනු ඇත, නමුත් එය නිෂ්පාදනය කිරීමට අඩු කාලයක් ගත වන අතර, ඉහළ සම්පීඩනය සමඟ, ඔබට නිෂ්පාදනය කිරීමට වැඩි කාලයක් ගතවන කුඩා ගොනුවක් ලැබේ. ඉහළම සම්පීඩන මට්ටම් කරා යන විට සාමාන්‍යයෙන් ඔබට අඩු ප්‍රතිලාභ ලැබෙනු ඇත (එනම්, ගතවන කාලය වැඩිවීමට සාපේක්ෂව ප්‍රමාණයෙන් අඩු වීමක් නොවේ), නමුත් එය ඔබට භාරයි.


42
එසේම, පීඑන්ජී සම්පීඩනය ඇත්ත වශයෙන්ම සුසර කළ හැකි පරාමිතීන් බොහෝමයක් ඇති අතර එමඟින් දෙපැත්තටම ගැලපීම් මඟින් ප්‍රභවයේ අන්තර්ගතය අනුව ප්‍රතිදාන ප්‍රමාණය හැකිලෙනු ඇත - එය සරල “වඩා හොඳ” සහ “නරක” ස්ලයිඩරයකට වඩා බෙහෙවින් සංකීර්ණ ය. සාමාන්‍ය අරමුණු සඳහා, එය එතරම් වැදගත් නොවේ, නමුත් ඔබට නිරපේක්ෂ කුඩාම අවශ්‍ය නම් එවැනි මෙවලමක් භාවිතා කිරීමෙන් pngcrushහැකි කුඩාම සඳහා බොහෝ වෙනස්කම් සැසඳිය හැකිය.
බොබ්

4
ඉහළ සම්පීඩන මට්ටමක් සම්පීඩන කාලය වැඩි කරයි, නමුත් එය විසංයෝජනයට ද බලපාන්නේද ?
Nolonar

10
Ol නොලෝනාර් සාමාන්‍යයෙන් නැත; වැඩි සම්පීඩන මට්ටමක් සාමාන්‍යයෙන් විසංයෝජන කාලය අඩු කරන්නේ නම් එය කියවීමට හා සැකසීමට අඩු දත්ත ප්‍රමාණයක් ඇත. සම්පීඩනය සඳහා රටා සොයා ගැනීම (වැඩිපුර සරල කිරීම) වඩාත් ගැඹුරු කාර්යයක් කිරීම නිසා දිගු සම්පීඩන කාලය ඇතිවේ.
සුදුමැලි

1
uffluffy LordNeckbeard ගේ පිළිතුරට ඉහළම සම්පීඩනය අඩුම අගයට වඩා විකේතනය කිරීමට 5x කාලයක් ගත විය.
ඇන්ඩ්‍රේ චලෙල්ලා

1
පීඑන්ජී සඳහා, වඩා හොඳ සම්පීඩිත ලිපිගොනු සඳහා දිගු විසංයෝජන කාලයක් තිබීම සාමාන්‍ය දෙයකි. ගැටළුව වන්නේ පීඑන්ජී සමඟ එක් උපක්‍රමයක් නම් ගොනුව කුඩා වන තාක් දුරට සම්පීඩන ඇල්ගොරිතම යෙදීමයි. ප්‍රමාණය වැඩි වූ පසු, ඔබ එය යෙදීම නවත්වයි. එබැවින් ඔබ සම්පීඩන ඇල්ගොරිතම 5 හෝ 6 වතාවක් යෙදිය හැකි ය, එයින් අදහස් වන්නේ රූපය ප්‍රදර්ශනය කිරීම සඳහා ගොනුව 5 හෝ 6 වතාවක් විසංයෝජනය කළ යුතු බවයි.
යෝ '

215

පීඑන්ජී සම්පීඩිත නමුත් පාඩු රහිත ය

සම්පීඩන මට්ටම යනු ගොනු විශාලත්වය සහ කේතන / විකේතන වේගය අතර හුවමාරුවකි. ඕනෑවට වඩා සාමාන්‍යකරණය කිරීම සඳහා, FLAC වැනි රූප නොවන ආකෘතීන්ට පවා සමාන සංකල්ප ඇත.

විවිධ සම්පීඩන මට්ටම්, එකම විකේතනය කළ ප්‍රතිදානය

ගොනු ප්‍රමාණයන් වෙනස් වුවද, විවිධ සම්පීඩන මට්ටම් හේතුවෙන් සත්‍ය විකේතනය කළ ප්‍රතිදානය සමාන වේ.

විකේතනය කළ නිමැවුම් වල MD5 හැෂ් ffmpeg, MD5 muxer භාවිතා කිරීම සමඟ සැසඳිය හැකිය .

උදාහරණ කිහිපයක් සමඟ මෙය වඩාත් හොඳින් පෙන්වයි:

PNG ගොනු සාදන්න:

$ ffmpeg -i input -vframes 1 -compression_level 0 0.png
$ ffmpeg -i input -vframes 1 -compression_level 100 100.png
  • පෙරනිමියෙන් PNG ප්‍රතිදානය සඳහා ffmpegභාවිතා -compression_level 100වේ.

ගොනු ප්‍රමාණය සංසන්දනය කරන්න:

$ du -h *.png
  228K    0.png
  4.0K    100.png

PNG ගොනු විකේතනය කර MD5 හැෂ් පෙන්වන්න:

$ ffmpeg -loglevel error -i 0.png -f md5 -
3d3fbccf770a51f9d81725d4e0539f83

$ ffmpeg -loglevel error -i 100.png -f md5 -
3d3fbccf770a51f9d81725d4e0539f83

හැෂ් දෙකම එක හා සමාන බැවින් විකේතනය කළ ප්‍රතිදානයන් (සම්පීඩිත, අමු වීඩියෝ) හරියටම සමාන බව ඔබට සහතික විය හැකිය.


27
Ffmpeg හට pngs හැසිරවිය හැකි බව +1 දැන සිටියේ නැත.
ලෙකන්ස්ටයින්

21
Ek ලෙකන්ස්ටයින් තිරපිටපත් සෑදීම සඳහා එය විශිෂ්ටයි . තත්පර 30 ක් මඟ හැර තිර රුවක් ගැනීමට උදාහරණය: රූප රූපයෙන් පිටත වීඩියෝ සෑදීමffmpeg -ss 30 -i input -vframes 1 output.png සඳහා ද අනෙක් අතට.
llogan

PNG විදැහුම් කිරීමට සිදුවන සෑම අවස්ථාවකම එය විසංයෝජනය කළ යුතු බව මින් අදහස් වේද? මන්ද එය සත්‍ය නම් අප විය යුත්තේ
akshay2000

ඔබ ගොනුව තැටියෙන් හෝ හැඹිලියෙන් නැවත කියවන්නේ නම්, ඔව්, එය විසංයෝජනය කළ යුතුය. එම පිටුව තුළම හැඹිලිය දිරාපත් වූ අනුවාදය නැවත භාවිතා කළ හැකිය.
ඩේවිඩ් මාර්ටෙන්සන්

1
ks akshay2000 PNG ලබා දෙන වැඩසටහන ක්‍රියාත්මක වන ආකාරය මත රඳා පවතී. සාමාන්‍යයෙන් ගොනුව තැටියෙන් කියවා, විසංයෝජනය කර RAM තුළ බෆර් කරනු ලැබේ. එබැවින් එය RAM තුළ බෆර් කර ඇති තාක් කල් එයට රූපය නැවත විසංයෝජනය කිරීමට අවශ්‍ය නොවේ.
xZise

24

PNG සම්පීඩනය අදියර දෙකකින් සිදු වේ.

  1. පූර්ව සම්පීඩනය මඟින් රූප දත්ත නැවත සකස් කිරීම මඟින් පොදු අරමුණු සම්පීඩන ඇල්ගොරිතමයක් මඟින් එය වඩාත් සම්පීඩිත වේ.
  2. සත්‍ය සම්පීඩනය සිදු කරනු ලබන්නේ DEFLATE වන අතර එය කෙටි ටෝකන මගින් ප්‍රතිස්ථාපනය කිරීමෙන් අනුපිටපත් බයිට් අනුක්‍රමයන් සොයයි.

පියවර 2 ඉතා කාලය / සම්පත් දැඩි කාර්යයක් බැවින්, යටින් ඇති ස්ලිබ් පුස්තකාලය (අමු DEFLATE සංවෘත කිරීම) සම්පීඩන පරාමිතියක් 1 = වේගවත් සම්පීඩනය, 9 = හොඳම සම්පීඩනය, 0 = සම්පීඩනයක් නැත. 0-9 පරාසය පැමිණෙන්නේ එතැනිනි, සහ GIMP සරලවම එම පරාමිතිය zlib වෙත යොමු කරයි. 0 මට්ටමේ දී ඔබේ png එක සමාන බිට්මැප් වලට වඩා තරමක් විශාල වන බව නිරීක්ෂණය කරන්න.

කෙසේ වෙතත්, 9 වන මට්ටම යනු ස්ලිබ් උත්සාහ කරන “හොඳම” පමණක් වන අතර එය තවමත් සම්මුතිවාදී විසඳුමකි .
මේ සඳහා සැබවින්ම හැඟීමක් ලබා ගැනීම සඳහා, ඔබ පරිපූර්ණ සෙවුමක් සඳහා 1000x වැඩි සැකසුම් බලයක් වැය කිරීමට කැමති නම්, ඔබට zlib වෙනුවට zopfli භාවිතා කරමින් 3-8% ඉහළ දත්ත ity නත්වයක් ලබා ගත හැකිය .
සම්පීඩනය තවමත් පාඩු රහිත ය, එය දත්තවල වඩාත් ප්‍රශස්ත DEFLATE නිරූපණයකි. මෙය ස්ලිබ්-අනුකූල පුස්තකාලයක සීමාවන්ට ළඟා වන අතර එම නිසා පීඑන්ජී භාවිතයෙන් ලබා ගත හැකි සැබෑ “හොඳම” සම්පීඩනය වේ.


2
සටහන: සම්පීඩන මට්ටම නොසලකා zomplipng භාවිතා කරන විට පුනරාවර්තන කාලය සමාන වේ.
ඇඩ්‍රියා

16

පීඑන්ජී ආකෘතිය සඳහා මූලික පෙළඹවීමක් වූයේ ජීඅයිඑෆ් සඳහා ආදේශකයක් නිර්මාණය කිරීම නොමිලේ පමණක් නොව එය සෑම අතින්ම වැඩිදියුණු කිරීමකි. එහි ප්‍රති As ලයක් වශයෙන්, පීඑන්ජී සම්පීඩනය මුළුමනින්ම පාඩු රහිත ය - එනම්, මුල් රූප දත්ත හරියටම ප්‍රතිනිර්මාණය කළ හැකිය, බිට් බිට් සඳහා - ජීඅයිඑෆ් හා බොහෝ ටීඅයිඑෆ් හි මෙන්.

PNG අදියර 2 ක සම්පීඩන ක්‍රියාවලියක් භාවිතා කරයි:

  1. පූර්ව සම්පීඩනය: පෙරීම (පුරෝකථනය)
  2. සම්පීඩනය: DEFLATE ( විකිපීඩියා බලන්න )

පූර්ව සම්පීඩන පියවර පෙරහන් ලෙස හැඳින්වේ, එය ප්‍රධාන සම්පීඩන එන්ජිමට වඩාත් කාර්යක්ෂමව ක්‍රියා කළ හැකි වන පරිදි රූප දත්ත ආපසු හැරවිය හැකි ලෙස පරිවර්තනය කිරීමේ ක්‍රමයකි.

සරල උදාහරණයක් ලෙස, 1 සිට 255 දක්වා ඒකාකාරව වැඩි වන බයිට් අනුක්‍රමයක් සලකා බලන්න:

1, 2, 3, 4, 5, .... 255

අනුපිළිවෙලෙහි පුනරාවර්තනයක් නොමැති බැවින්, එය ඉතා දුර්වල ලෙස හෝ කිසිසේත් සම්පීඩනය නොකරයි. නමුත් අනුක්‍රමයේ සුළු වෙනස් කිරීමක් - එනම්, පළමු බයිටය තනිවම තබන නමුත් පසුව එන සෑම බයිට් එකක්ම සහ එහි පූර්වගාමියා අතර වෙනස මගින් ප්‍රතිස්ථාපනය කිරීම - අනුක්‍රමය අතිශය සම්පීඩ්‍ය කට්ටලයක් බවට පරිවර්තනය කරයි:

1, 1, 1, 1, 1, .... 1

බයිට් කිසිවක් අතහැර දමා නැති අතර එය සම්පූර්ණයෙන්ම ආපසු හැරවිය හැකි බැවින් ඉහත පරිවර්තනය අලාභ රහිත ය. මෙම ශ්‍රේණියේ සම්පීඩිත ප්‍රමාණය බොහෝ දුරට අඩු වනු ඇත, නමුත් මුල් ශ්‍රේණිය තවමත් පරිපූර්ණ ලෙස ප්‍රතිනිර්මාණය කළ හැකිය.

තථ්‍ය රූප-දත්ත කලාතුරකින් එතරම් පරිපූර්ණ නොවේ, නමුත් පෙරීම මඟින් අළු පාට සහ සත්‍ය වර්ණ රූපවල සම්පීඩනය වැඩි දියුණු වන අතර සමහර පලත් රූප සඳහාද එය උපකාරී වේ. PNG ෆිල්ටර වර්ග පහකට සහය දක්වයි, තවද කේතයේ ඇති එක් එක් පේළිය සඳහා වෙනස් පෙරණයක් භාවිතා කිරීමට කේතන ක්‍රමයක් තෝරා ගත හැකිය:

රූප

ඇල්ගොරිතම බයිට් මත ක්‍රියා කරයි, නමුත් විශාල පික්සල් සඳහා (උදා: 24-බිට් ආර්ජීබී හෝ 64-බිට් ආර්ජීබීඒ) අනුරූප බයිට් පමණක් සැසඳේ, එනම් පික්සල් වර්ණවල රතු සංරචක හරිත හා නිල් පික්සෙල් සංරචක වලින් වෙන වෙනම හසුරුවනු ලැබේ.

එක් එක් පේළිය සඳහා හොඳම පෙරණය තෝරා ගැනීමට, හැකි සෑම සංයෝජනයක්ම පරීක්‍ෂා කිරීමට එන්කෝඩරයකට අවශ්‍ය වේ. පේළි 20 ක රූපයකට පවා ට්‍රිලියන 95 කට වඩා වැඩි සංයෝජනයක් අවශ්‍ය වන බැවින් මෙය පැහැදිලිවම කළ නොහැක්කකි. එහිදී “පරීක්ෂා කිරීම” සඳහා සම්පූර්ණ රූපය පෙරීම හා සම්පීඩනය කිරීම අවශ්‍ය වේ.

සම්පීඩන මට්ටම් සාමාන්‍යයෙන් 0 (කිසිවක්) සහ 9 (හොඳම) අතර සංඛ්‍යා ලෙස අර්ථ දැක්වේ. මේවා වේගය සහ ප්‍රමාණය අතර වෙළඳ ගනුදෙනු වලට යොමු වන අතර පේළි-පෙරහන් කොපමණ සංයෝජන අත්හදා බැලිය යුතුද යන්න සම්බන්ධ වේ. මෙම සම්පීඩන මට්ටම් සම්බන්ධයෙන් ප්‍රමිති නොමැත, එබැවින් රූපයේ ප්‍රමාණය ප්‍රශස්තිකරණය කිරීමේදී පෙරහන් කීයක් උත්සාහ කළ යුතුද යන්න පිළිබඳව සෑම රූප සංස්කාරකවරයකුටම තමන්ගේම ඇල්ගොරිතම තිබිය හැකිය.

සම්පීඩන මට්ටම 0 යනු පෙරහන් කිසිසේත් භාවිතා නොකරන අතර එය වේගවත් නමුත් නාස්තියකි. ඉහළ මට්ටම් වලින් අදහස් වන්නේ රූප පේළි මත වැඩි වැඩියෙන් සංයෝජන උත්සාහ කරන අතර හොඳම ඒවා පමණක් රඳවා තබා ගන්නා බවයි.

හොඳම සම්පීඩනය සඳහා ඇති සරලම ප්‍රවේශය නම්, එක් එක් පෙරණය සමඟ එක් එක් පේළිය වැඩි වැඩියෙන් පරීක්‍ෂා කිරීම, කුඩාම ප්‍රති result ලය සුරැකීම සහ ඊළඟ පේළිය සඳහා නැවත නැවත කිරීම ය. මෙය මුළු රූපය පස් වතාවක් පෙරීම හා සම්පීඩනය කිරීමකට සමාන වන අතර, එය බොහෝ වාරයක් සම්ප්‍රේෂණය කර විකේතනය වන රූපයක් සඳහා සාධාරණ වෙළඳාමක් විය හැකිය. මෙවලමෙහි සංවර්ධකයාගේ අභිමතය පරිදි අඩු සම්පීඩන අගයන් අඩු වනු ඇත.

ෆිල්ටර වලට අමතරව, සම්පීඩන මට්ටම 0 (ඩෙෆ්ලේට් නැත) සහ 9 (උපරිම ඩෙෆ්ලේට්) අතර සංඛ්‍යාවක් වන ස්ලිබ් සම්පීඩන මට්ටමට ද බලපායි. PNG හි ප්‍රධාන ප්‍රශස්තිකරණ ලක්ෂණය වන පෙරහන් භාවිතයට නිශ්චිත 0-9 මට්ටම් බලපාන්නේ කෙසේද යන්න තවමත් මෙවලම් සංවර්ධකයා මත රඳා පවතී.

නිගමනය වන්නේ පීඑන්ජී හි සම්පීඩන පරාමිතියක් ඇති අතර එය ගොනු ප්‍රමාණය ඉතා සැලකිය යුතු ලෙස අඩු කළ හැකි අතර සියල්ලම එක පික්සෙල් එකක්වත් අහිමි නොවී ය.

මුලාශ්‍ර:

විකිපීඩියා අතේ ගෙන යා හැකි ජාල ග්‍රැෆික්ස්
libpng ප්‍රලේඛනය 9 වන පරිච්ඡේදය - සම්පීඩනය සහ පෙරීම


1
සම්පීඩන මට්ටමේ සැකසුම පෙරහන් භාවිතය වෙනස් කරයි යැයි මම නොසිතමි. 1-9 මට්ටමේ සැකසුම බොහෝ විට ස්ලිබ් සම්පීඩන මට්ටම 1-9 තෝරා ගන්නා අතර 0 මට්ටම යනු ඩෙෆ්ලේට් ඇල්ගොරිතම කිසිසේත් භාවිතා නොකරන බවයි. බොහෝ ක්‍රියාත්මක කිරීම් බොහෝ විට පේළියකට පෙරහන් වෙනස් නොකරයි, නමුත් සෑම විටම පාත් ෆිල්ටරය භාවිතා කරන්න.
පෝලි එල්

APauliL: මම එකඟ නොවෙමි, මන්ද PNG සම්පීඩන මෘදුකාංගයේ සියලු සැසඳීම් වලදී, ජනනය කරන ලද රූපවල ප්‍රමාණයන් අතර ඉතා විශාල වෙනස්කම් ඇත. සියලුම නිෂ්පාදන එකම පුස්තකාලය සඳහා එකම පරාමිතීන් භාවිතා කළේ නම්, සියලු ප්‍රමාණ එකම විය යුතුය, වේගයද විය.
harrymc

එවැනි සැසඳීම් සඳහා ඔබට කිසියම් සම්බන්ධයක් තිබේද?
පෝලි එල්

APauliL: මෙම සංසන්දනය සමඟ ඉක්මන් සෙවීමක් සිදු විය .
harrymc

APauliL: PNG හි සම්පීඩන මට්ටම් වලට zlib සම්පීඩන මට්ටම් බලපා ඇති බව ඔබ බොහෝ විට නිවැරදිය. සම්පීඩන මෙවලමක් ඔවුන් හරියටම කරන දේ ලේඛනගත නොකළද මම ඒ අනුව මගේ පිළිතුර වෙනස් කර ඇත. සමහර විට නරකම ප්‍රමාණයේ ප්‍රති results ල ඇති මෙවලම් සඳහා පැහැදිලි කිරීම නම් ඔවුන් කිසිසේත් පෙරහන් භාවිතා නොකරන බවයි, zlib සම්පීඩනය පමණි.
harrymc

5

හරි, මම ත්‍යාගයට ප්‍රමාද වැඩියි, නමුත් මෙන්න මගේ පිළිතුර කෙසේ හෝ වේ.

පීඑන්ජී සෑම විටම පාඩු රහිත ය . එය zip වැඩසටහන් වල භාවිතා කරන ආකාරයටම Deflate / Inflate ඇල්ගොරිතම භාවිතා කරයි.

ඩෙෆ්ලේට් ඇල්ගොරිතම නැවත නැවතත් බයිට් අනුක්‍රමය සොයන අතර ටැග් සහිත ඒවා ප්‍රතිස්ථාපනය කරයි. සම්පීඩන මට්ටමේ සැකසුම මඟින් බයිට් අනුක්‍රමයන්ගේ ප්‍රශස්ත සංයෝජනය සොයා ගැනීමට වැඩසටහන කොපමණ උත්සාහයක් දරන්නේද යන්න සහ ඒ සඳහා කොපමණ මතකයක් වෙන් කර ඇත්ද යන්න නියම කරයි. එය සම්පීඩිත ගොනු ප්‍රමාණයට එදිරිව කාලය සහ මතක භාවිතය අතර සම්මුතියකි. කෙසේ වෙතත්, නවීන පරිගණක ඉතා වේගවත් වන අතර ප්‍රමාණවත් මතකයක් ඇති බැවින් ඉහළම සම්පීඩන සැකසුම හැර වෙනත් භාවිතා කිරීමට අවශ්‍ය වන්නේ කලාතුරකිනි.

බොහෝ PNG ක්‍රියාත්මක කිරීම් සම්පීඩනය සඳහා zlib පුස්තකාලය භාවිතා කරයි. ස්ලිබ්ට සම්පීඩන මට්ටම් නවයක් ඇත, 1-9. මම Gimp හි අභ්‍යන්තරය නොදනිමි, නමුත් එයට සම්පීඩන මට්ටමේ සැකසුම් 0-9 (0 = සම්පීඩනයක් නොමැත) ඇති බැවින්, මෙම සැකසුම හුදෙක් zlib හි සම්පීඩන මට්ටම තෝරා ගනී යැයි මම සිතමි.

ඩෙෆ්ලේට් ඇල්ගොරිතම යනු පොදු අරමුණු සම්පීඩන ඇල්ගොරිතමයකි , එය පින්තූර සම්පීඩනය සඳහා නිර්මාණය කර නොමැත. නැතිවූ බොහෝ පින්තූර ගොනු ආකෘති මෙන් නොව, PNG ආකෘතිය ඊට පමණක් සීමා නොවේ. පීඑන්ජී සම්පීඩනය අප 2D රූපයක් සම්පීඩනය කරන දැනුමෙන් ප්‍රයෝජන ගනී . මෙය සාක්ෂාත් කරගනු ලබන්නේ ඊනියා පෙරහන් මගිනි.

(ෆිල්ටරය ඇත්ත වශයෙන්ම මෙහි තරමක් නොමඟ යවන යෙදුමකි. එය ඇත්ත වශයෙන්ම රූපයේ අන්තර්ගතය වෙනස් නොකරයි, එය වෙනස් ආකාරයකින් කේත කරයි. වඩාත් නිවැරදි නම ඩෙල්ටා එන්කෝඩරය වේ.)

PNG පිරිවිතරයෙන් විවිධ පෙරහන් 5 ක් නියම කරයි (0 = කිසිවක් ඇතුළුව). පෙරණය නිරපේක්ෂ පික්සල් අගයන් පෙර පික්සෙල් සිට වමට, ඉහළ, විකර්ණ හෝ ඒවායේ සංයෝජනයෙන් ප්‍රතිස්ථාපනය කරයි . මෙය සම්පීඩන අනුපාතය සැලකිය යුතු ලෙස වැඩි දියුණු කළ හැකිය. රූපයේ ඇති සෑම ස්කෑන් රේඛාවකටම විවිධ පෙරහන් භාවිතා කළ හැකිය. එක් එක් පේළිය සඳහා හොඳම පෙරණය තෝරාගැනීමෙන් එන්කෝඩරයට සම්පීඩනය ප්‍රශස්ත කළ හැකිය.

PNG ගොනු ආකෘතිය පිළිබඳ විස්තර සඳහා, PNG පිරිවිතර බලන්න .

පාහේ අසීමිත සංයෝජන සංඛ්‍යාවක් ඇති බැවින් ඒවා සියල්ලම උත්සාහ කළ නොහැක. එබැවින්, effective ලදායී සංයෝජනයක් සොයා ගැනීම සඳහා විවිධ ආකාරයේ උපාය මාර්ග සකස් කර ඇත. බොහෝ රූප සංස්කාරකවරු බොහෝ විට පෙරහන් රේඛාව රේඛාව අනුව ප්‍රශස්තිකරණය කිරීමට උත්සාහ නොකරන අතර ඒ වෙනුවට භාවිතා කළේ ස්ථාවර පෙරණයකි (බොහෝ දුරට පේත්).

විධාන රේඛා වැඩසටහනක් pngcrush හොඳම ප්‍රති .ලය සොයා ගැනීමට උපාය මාර්ග කිහිපයක් උත්සාහ කරයි. වෙනත් වැඩසටහන් විසින් නිර්මාණය කරන ලද PNG ගොනුවේ ප්‍රමාණය සැලකිය යුතු ලෙස අඩු කිරීමට එයට හැකි නමුත් විශාල රූප සඳහා එය සෑහෙන කාලයක් ගතවනු ඇත. මූලාශ්‍රය බලන්න - pngcrush .


3

පාඩු රහිත දේවල සම්පීඩන මට්ටම සැමවිටම වෙළඳ කේත කේත සම්පත් (සාමාන්‍යයෙන් කාලය, සමහර විට RAM) එදිරිව බිට්‍රේට් වේ. ගුණාත්මකභාවය සැමවිටම 100% කි.

ඇත්ත වශයෙන්ම, පාඩු රහිත සම්පීඩකවලට කිසිඳු සත්‍ය සම්පීඩනයක් සහතික කළ නොහැක . සසම්භාවී දත්ත අසම්පූර්ණයි, සොයා ගැනීමට රටාවක් නැත, සමානකමක් නැත. ෂැනන් තොරතුරු න්‍යාය සහ ඒ සියල්ල. පාඩු රහිත දත්ත සම්පීඩනයේ සමස්ත කරුණ නම් මිනිසුන් සාමාන්‍යයෙන් ඉහළ අහඹු නොවන දත්ත සමඟ ක්‍රියා කරන නමුත් සම්ප්‍රේෂණය සහ ගබඩා කිරීම සඳහා අපට එය හැකි තරම් බිටු කිහිපයකට සම්පීඩනය කළ හැකිය. මුල් පිටපතෙහි කොල්මෝගොරොව් සංකීර්ණතාවයට හැකි තරම් සමීප වීමට බලාපොරොත්තු වේ.

එය zip හෝ 7z generic data, png images, flac audio, හෝ h.264 (අලාභ රහිත ආකාරයෙන්) වීඩියෝ වේවා, එය එකම දෙයකි. Lzma (7zip) සහ bzip2 වැනි සමහර සම්පීඩන ඇල්ගොරිතම සමඟ, සම්පීඩන සැකසුම ඉහළට ඔසවා තැබීමෙන් DECODER හි CPU කාලය (bzip2) හෝ බොහෝ විට අවශ්‍ය RAM ප්‍රමාණය (lzma සහ bzip2, සහ h.264 වැඩි යොමු රාමු සහිත) වැඩි වේ. . බොහෝ විට විකේතකය RAM හි වැඩි විකේතනය කළ ප්‍රතිදානය සුරැකීමට සිදුවේ, මන්ද ඊළඟ බයිටය විකේතනය කිරීමෙන් මෙගාබයිට් ගණනාවකට පෙර විකේතනය කරන ලද බයිට් එකකට යොමු විය හැකිය (උදා: තත්පර භාගයකට පෙර සිට එකකට වඩා සමාන වීඩියෝ රාමුවක් නැවත රාමු 12 ක් සමඟ යොමු වනු ඇත. ). Bzip2 සමඟ එකම දේ සහ විශාල බ්ලොක් ප්‍රමාණයක් තෝරා ගැනීම, නමුත් එය ද මන්දගාමී වේ. lzma සතුව විචල්‍ය ප්‍රමාණයේ ශබ්ද කෝෂයක් ඇති අතර ඔබට 1 ක් අවශ්‍ය ගොනු සෑදිය හැකිය.


හ්ම්ම්, අලාභ රහිත සම්පීඩනය සැපයීම සඳහා ඩ්‍රයිව් ස්ටෙපර් මෝටරය සහ හිස කෙලින්ම පාලනය කිරීම සඳහා ක්‍රියාත්මක කිරීමක් මම දුටුවෙමි. ඔබට ඉහළ ඔරලෝසු ප්‍රභවයක් තිබේ නම් මැන්චෙස්ටර් කේතීකරණය පහසුවෙන් පරාජය වේ.
යෝෂුවා

Os ජෝෂුවා: ඉහළ dens නත්ව භෞතික ගබඩා ආකෘතියක් භාවිතා කිරීම දත්ත සම්පීඩනයට සමාන නොවේ ...
SamB

0

පළමුව, පීඑන්ජී සෑම විටම පාඩු රහිත ය. පෙනෙන විරුද්ධාභාසය වන්නේ විවිධාකාර සම්පීඩන වර්ග දෙකක් තිබීමයි (ඕනෑම ආකාරයක දත්ත සඳහා): පාඩු සහ අලාභ.

නැතිවූ සම්පීඩනය විවිධ උපක්‍රම භාවිතා කරමින් දත්ත (එනම් ගොනු ප්‍රමාණය) මිරිකා, සියල්ල තබා ගනිමින් සහ කිසිදු තක්සේරුවක් නොකර. එහි ප්‍රති As ලයක් වශයෙන්, පාඩු රහිත සම්පීඩනයට ඇත්ත වශයෙන්ම දේවල් සම්පීඩනය කිරීමට නොහැකි වනු ඇත. (ඉහළ එන්ට්‍රොපිය සහිත තාක්‍ෂණ දත්ත අලාභ රහිත ක්‍රම සඳහා සම්පීඩනය කිරීම ඉතා අසීරු හෝ කළ නොහැකි ය.) පාඩු සම්පීඩනය සැබෑ දත්ත දළ වශයෙන් ගණනය කරයි, නමුත් දළ විශ්ලේෂණය අසම්පූර්ණ ය, නමුත් මෙම නිරවද්‍යතාවයෙන් ඉවතට විසි කිරීම සාමාන්‍යයෙන් වඩා හොඳ සම්පීඩනයට ඉඩ දෙයි.

අලාභ රහිත සම්පීඩනය පිළිබඳ සුළු උදාහරණයක් මෙන්න: ඔබ සතුව කළු පික්සල් 1,000 කින් සාදන ලද රූපයක් තිබේ නම්, කළු සඳහා වටිනාකම 1,000 වතාවක් ගබඩා කරනවා වෙනුවට, ඔබට ගණන් (1000) සහ අගයක් (කළු) ගබඩා කර පික්සෙල් 1000 සම්පීඩනය කළ හැකිය ” රූපය "ඉලක්කම් දෙකකට. (මෙය ධාවන දිග කේතීකරණ ලෙස හැඳින්වෙන පාඩු රහිත සම්පීඩන ක්‍රමයක ගොරහැඩි ආකාරයකි).

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.