የ JPEG ቅርጸት እንዴት እንደሚሰራ

JPEG ምስሎች በዲጂታል ህይወታችን ውስጥ በሁሉም ቦታ ይገኛሉ፣ ነገር ግን ከዚያ የግንዛቤ ካባ ጀርባ የሰው አይን ማየት የማይችላቸውን ዝርዝሮች የሚያስወግዱ ስልተ ቀመሮች አሉ። ውጤቱ በትንሹ የፋይል መጠን ውስጥ ከፍተኛው የእይታ ጥራት ነው - ግን ሁሉም በትክክል እንዴት ነው የሚሰራው? ዓይኖቻችን የማያዩትን በትክክል እንይ!

የ JPEG ቅርጸት እንዴት እንደሚሰራ

ፎቶን ለጓደኛዎ የመላክ ችሎታን እንደ ቀላል ነገር መውሰድ እና የትኛውን መሳሪያ፣ አሳሽ ወይም ኦፕሬቲንግ ሲስተም እንደሚጠቀሙ አለመጨነቅ - ግን ሁልጊዜ እንደዚያ አልነበረም። እ.ኤ.አ. በ1980ዎቹ መጀመሪያ ላይ ኮምፒውተሮች ዲጂታል ምስሎችን ማከማቸት እና ማሳየት ይችሉ ነበር፣ ነገር ግን ይህን ለማድረግ በጣም ጥሩው መንገድ ብዙ ተፎካካሪ ሀሳቦች ነበሩ። ምስልን ከአንድ ኮምፒውተር ወደ ሌላ መላክ እና እንደሚሰራ ተስፋ ማድረግ አይችሉም።

ይህንን ችግር ለመፍታት ከዓለም ዙሪያ የተውጣጡ የባለሙያዎች ኮሚቴ በ 1986 "" በሚል ስም ተሰብስበው ነበር.የጋራ የፎቶግራፍ ባለሙያዎች ቡድን"(የጋራ የፎቶግራፍ ኤክስፐርቶች ቡድን፣ JPEG)፣ በጄኔቫ (ስዊዘርላንድ) ዋና መሥሪያ ቤት የሆኑት ሁለት ዓለም አቀፍ ደረጃዎች ድርጅቶች በዓለም አቀፍ ደረጃ ለደረጃ (ISO) እና ለዓለም አቀፍ ኤሌክትሮቴክኒክ ኮሚሽን (IEC) የጋራ ሥራ አካል ሆኖ ተመሠረተ።

JPEG የተባለ የሰዎች ቡድን በ 1992 የ JPEG ዲጂታል ምስል መጭመቂያ መስፈርት ፈጠረ። በይነመረብን የተጠቀመ ማንኛውም ሰው በJPEG የተመሰጠሩ ምስሎች አጋጥመውት ሊሆን ይችላል። ምስሎችን ለመላክ፣ ለመላክ እና ለማከማቸት በጣም የተለመደው መንገድ ይህ ነው። ከድረ-ገፆች እስከ ኢሜል ወደ ማህበራዊ ሚዲያ፣ JPEG በቀን በቢሊዮኖች የሚቆጠሩ ጊዜዎች ጥቅም ላይ ይውላል - መስመር ላይ ምስል ባየን ወይም በላክን ቁጥር ማለት ይቻላል። JPEG ከሌለ ድሩ ያነሰ ብሩህ፣ ቀርፋፋ እና ምናልባትም ያነሱ የድመት ምስሎች ይኖሩታል!

ይህ ጽሑፍ የ JPEG ምስልን እንዴት እንደሚፈታ ነው. በሌላ አነጋገር በኮምፒዩተር ላይ የተጨመቀውን መረጃ ወደ ስክሪኑ ላይ ወደሚታየው ምስል ለመቀየር ምን እንደሚያስፈልግ። ይህ ሊታወቅ የሚገባው በየቀኑ የምንጠቀመውን ቴክኖሎጂ ለመረዳት አስፈላጊ ስለሆነ ብቻ ሳይሆን የጨመቁትን ደረጃዎች በመግለጥ ግንዛቤን እና እይታን እና እንዲሁም ዓይኖቻችን በጣም የትኞቹ ዝርዝሮች እንደሆኑ ማወቅ አለብን. ስሜትን የሚነካ።

በተጨማሪም, በዚህ መንገድ ምስሎችን መጫወት በጣም አስደሳች ነው.

የ JPEG ቅርጸት እንዴት እንደሚሰራ

JPEG ውስጥ በመመልከት ላይ

በኮምፒተር ላይ ሁሉም ነገር እንደ ሁለትዮሽ ቁጥሮች ቅደም ተከተል ተቀምጧል. አብዛኛውን ጊዜ እነዚህ ቢትስ፣ ዜሮዎች እና አንዶች፣ በስምንት ይመደባሉ፣ ባይት ይሠራሉ። የ JPEG ምስል በኮምፒተርዎ ላይ ሲከፍቱ አንድ ነገር (አሳሽ ፣ ኦፕሬቲንግ ሲስተም ፣ ማንኛውም) ባይት ዲኮድ ማድረግ አለበት ፣ ይህም ዋናውን ምስል ሊታዩ የሚችሉ ቀለሞች ዝርዝር አድርጎ ወደነበረበት ይመልሳል።

ይህን ቆንጆ ካወረዱ የአንድ ድመት ፎቶ እና በጽሑፍ አርታኢ ውስጥ ይክፈቱት ፣ የተዘበራረቁ ቁምፊዎችን ያያሉ።

የ JPEG ቅርጸት እንዴት እንደሚሰራ
እዚህ የፋይሉን ይዘት ለመፈተሽ ኖትፓድ++ን እየተጠቀምኩ ነው ምክንያቱም እንደ ኖትፓድ ከዊንዶው ያሉ የተለመዱ የጽሁፍ አርታኢዎች ካስቀመጡ በኋላ ሁለትዮሽ ስለሚያደርጉት እና ከJPEG ቅርጸት ጋር አይጣጣምም።

ምስልን በፅሁፍ አርታኢ ውስጥ መክፈት ኮምፒውተሮዎን ግራ ያጋባል፣ ልክ አይንዎን ሲያሻሹ እና ባለ ቀለም ነጠብጣቦችን ማየት ሲጀምሩ አንጎልዎን እንደሚያደናግሩት!

እነዚህ የሚያዩዋቸው ቦታዎች በመባል ይታወቃሉ ፎስፌኖች, እና በአእምሮ ለሚፈጠሩ የብርሃን ማነቃቂያዎች ወይም ቅዠቶች የመጋለጥ ውጤቶች አይደሉም. እነሱ የሚከሰቱት አንጎልዎ በኦፕቲክ ነርቮች ውስጥ ያሉ ማንኛውም የኤሌክትሪክ ምልክቶች ስለ ብርሃን መረጃን ይይዛሉ ብሎ ስለሚያስብ ነው። አእምሮ እንደዚህ አይነት ግምቶችን ማድረግ ያስፈልገዋል, ምክንያቱም ምልክቱ ድምጽ, ራዕይ ወይም ሌላ ነገር መሆኑን ለማወቅ ምንም መንገድ የለም. በሰውነት ውስጥ ያሉ ሁሉም ነርቮች በትክክል ተመሳሳይ የኤሌክትሪክ ግፊቶችን ያስተላልፋሉ. በዓይንዎ ላይ ጫና በሚፈጥሩበት ጊዜ, የማይታዩ ምልክቶችን ይልካሉ, ነገር ግን በአይን ውስጥ ያሉ ተቀባይ ተቀባይዎችን ያንቀሳቅሱ, ይህም አንጎልዎ የሚተረጉመው - በዚህ ሁኔታ, በስህተት - እንደ ምስላዊ ነገር ነው. ግፊቱን በትክክል ማየት ይችላሉ!

ኮምፒውተሮች ከአንጎል ጋር ምን ያህል እንደሚመሳሰሉ ማሰብ የሚያስቅ ነገር ነው፣ነገር ግን የመረጃ ትርጉም ምን ያህል በሰውነት ውስጥ በነርቭ ተወስዶ ወይም በኮምፒዩተር ውስጥ የተከማቸ - እንዴት እንደሚተረጎም የሚያሳይ ምሳሌ ነው። ሁሉም ሁለትዮሽ መረጃዎች በXNUMXs እና XNUMXs የተሰሩ ናቸው፣መሠረታዊ አካላት ማንኛውንም አይነት መረጃ ማስተላለፍ የሚችሉ። ኮምፒውተርዎ ብዙ ጊዜ እንደ ፋይል ቅጥያ ያሉ ፍንጮችን በመጠቀም እንዴት እንደሚተረጉማቸው ይገምታል። አሁን እንደ ጽሑፍ እንዲተረጉማቸው እያደረግን ነው፣ ምክንያቱም የጽሑፍ አርታኢው የሚጠብቀው ይህንኑ ነው።

JPEGን እንዴት መፍታት እንደሚቻል ለመረዳት የመጀመሪያዎቹን ምልክቶች እራሳቸው ማየት አለብን - የሁለትዮሽ ውሂብ። ይህ በሄክስ አርታኢ ወይም በቀጥታ በ ላይ ሊከናወን ይችላል። የዋናው መጣጥፍ ድረ-ገጽ! ምስል አለ፣ በአጠገቡ በፅሁፍ መስክ ሁሉም ባይት (ከርዕሱ በስተቀር) በአስርዮሽ መልክ ቀርቧል። እነሱን መቀየር ይችላሉ እና ስክሪፕቱ እንደገና ኮድ እና በራሪ ላይ አዲስ ምስል ይፈጥራል.

የ JPEG ቅርጸት እንዴት እንደሚሰራ

ከዚህ አርታኢ ጋር በመጫወት ብቻ ብዙ መማር ይችላሉ። ለምሳሌ፣ ፒክስሎች በምን ቅደም ተከተል እንደተቀመጡ ማወቅ ትችላለህ?

በዚህ ምሳሌ, የሚያስደንቀው ነገር አንዳንድ ቁጥሮችን መቀየር በምስሉ ላይ ምንም ተጽእኖ አያመጣም, እና ለምሳሌ, በመጀመሪያው መስመር ላይ ቁጥር 17 ን በ 0 ከተተኩ, ከዚያም ፎቶው ሙሉ በሙሉ ይበላሻል!

የ JPEG ቅርጸት እንዴት እንደሚሰራ

በ 7 መስመር ላይ ያለውን 1988 ወደ 254 መቀየር የመሳሰሉ ሌሎች ለውጦች ቀለሙን ይቀይሩ, ነገር ግን ተከታይ ፒክስሎች ብቻ ናቸው.

የ JPEG ቅርጸት እንዴት እንደሚሰራ

ምናልባትም በጣም የሚያስደንቀው ነገር አንዳንድ ቁጥሮች ቀለሙን ብቻ ሳይሆን የምስሉን ቅርጽ ይለውጣሉ. ከ70 እስከ 12 ባለው መስመር ላይ 2 ን ይቀይሩ እና ምን ለማለት እንደፈለኩ ለማየት የምስሉን የላይኛው ረድፍ ይመልከቱ።

የ JPEG ቅርጸት እንዴት እንደሚሰራ

እና ምንም አይነት የ JPEG ምስል ቢጠቀሙ ሁልጊዜ ባይት በሚያርትዑበት ጊዜ እነዚያን ሚስጥራዊ የቼዝ ቅጦችን ያገኛሉ።

ከአርታዒው ጋር መጫወት፣ JPEG መጭመቂያ በደረጃ በደረጃ የሚተገበሩ ሶስት የተለያዩ ቴክኖሎጂዎችን ስላቀፈ ፎቶን ከእነዚህ ባይቶች እንዴት እንደገና መፍጠር እንደሚቻል ለማወቅ ከባድ ነው። የምንመለከተውን ሚስጥራዊ ባህሪ ለማወቅ እያንዳንዳቸውን ለየብቻ እናጠናለን።

ሶስት የ JPEG መጭመቂያ ደረጃዎች

  1. የቀለም ንዑስ ናሙና.
  2. Discrete Cosine Transform and Discretization.
  3. አሂድ ርዝመት ኮድ, ዴልታ и ሁፍማን

ስለ መጭመቂያው መጠን ሀሳብ ለመስጠት ፣ ከላይ ያለው ምስል 79 ቁጥሮችን እንደሚወክል ልብ ይበሉ ፣ ይህም ወደ 819 ኪ.ቢ. ያለ መጭመቂያ ብናከማች, ለእያንዳንዱ ፒክሰል ሶስት ቁጥሮች ያስፈልጉናል - ለቀይ, አረንጓዴ እና ሰማያዊ ክፍሎች. ይህ 79 ቁጥሮች ወይም ካ. 917 ኪ.ባ. በ JPEG መጭመቅ ምክንያት, የመጨረሻው ፋይል ከ 700 ጊዜ በላይ ቀንሷል!

በእውነቱ, ይህ ምስል የበለጠ ሊጨመቅ ይችላል. ከታች ያሉት ሁለት ምስሎች ጎን ለጎን ናቸው - በቀኝ በኩል ያለው ፎቶ ወደ 16 ኪ.ባ. ማለትም ካልተጨመቀ ስሪት 57 እጥፍ ያነሰ ነው!

የ JPEG ቅርጸት እንዴት እንደሚሰራ

በቅርበት ከተመለከቱ, እነዚህ ምስሎች ተመሳሳይ እንዳልሆኑ ያያሉ. ሁለቱም የ JPEG መጭመቂያ ያላቸው ስዕሎች ናቸው, ነገር ግን ትክክለኛው በድምጽ መጠን በጣም ትንሽ ነው. እንዲሁም ትንሽ የከፋ ይመስላል (የጀርባ ቀለም ካሬዎችን ይመልከቱ). ስለዚህ, JPEG ደግሞ losy compression ይባላል; በጨመቁ ሂደት ውስጥ ምስሉ ይለወጣል እና አንዳንድ ዝርዝሮችን ያጣል።

1. የቀለም ንዑስ ናሙና

የመጀመሪያው የመጨመቂያ ደረጃ ብቻ የተተገበረ ምስል እዚህ አለ።

የ JPEG ቅርጸት እንዴት እንደሚሰራ
(በይነተገናኝ ስሪት በ የመጀመሪያው ጽሑፎች). አንድ ቁጥር ማስወገድ ሁሉንም ቀለሞች ያጠፋል. ነገር ግን, በትክክል ስድስት ቁጥሮች ከተወገዱ, በምስሉ ላይ ምንም ተጽእኖ አይኖረውም.

አሁን ቁጥሮቹ ለመረዳት ትንሽ ቀላል ናቸው። ይህ ማለት ይቻላል ቀላል የቀለም ዝርዝር ነው, እያንዳንዱ ባይት በትክክል አንድ ፒክሰል ይለውጣል, ነገር ግን አስቀድሞ ያልተጨመቀ ምስል ግማሽ መጠን ነው (ይህም በግምት 300 ኪ.ባ. እንደዚህ ያለ ቅናሽ መጠን ይወስዳል). ለምን እንደሆነ ገምት?

እነዚህ ቁጥሮች መደበኛውን ቀይ, አረንጓዴ እና ሰማያዊ ክፍሎችን እንደማይወክሉ ማየት ይችላሉ, ምክንያቱም ሁሉንም ቁጥሮች በዜሮዎች ከተተካ, አረንጓዴ ምስል እናገኛለን (ነጭ አይደለም).

የ JPEG ቅርጸት እንዴት እንደሚሰራ

ይህ የሆነበት ምክንያት እነዚህ ባይቶች Y (ብሩህነት)ን የሚያመለክቱ በመሆናቸው ነው።

የ JPEG ቅርጸት እንዴት እንደሚሰራ

ሲቢ (አንፃራዊ ሰማያዊ)፣

የ JPEG ቅርጸት እንዴት እንደሚሰራ

እና Cr (አንጻራዊ ቀይ ቀለም) ስዕሎች.

የ JPEG ቅርጸት እንዴት እንደሚሰራ

ለምን RGB አትጠቀምም? ከሁሉም በላይ, አብዛኛዎቹ ዘመናዊ ማያ ገጾች የሚሠሩት በዚህ መንገድ ነው. የእርስዎ ማሳያ ለእያንዳንዱ ፒክሰል ቀይ፣ አረንጓዴ እና ሰማያዊን ጨምሮ ማንኛውንም አይነት ቀለም ማሳየት ይችላል። ነጭ የሚገኘው ሦስቱን ሙሉ ብሩህነት በማብራት ነው, እና ጥቁር እያጠፋቸው ነው.

የ JPEG ቅርጸት እንዴት እንደሚሰራ

እንዲሁም የሰው ዓይን እንዴት እንደሚሰራ በጣም ተመሳሳይ ነው. በዓይናችን ውስጥ ያሉት የቀለም ተቀባይዎች ይባላሉ "ኮኖች"፣ እና በሦስት ዓይነት የተከፋፈሉ ናቸው፣ እያንዳንዳቸው ለቀይ፣ ወይም ለአረንጓዴ፣ ወይም ለሰማያዊ ቀለሞች የበለጠ ስሜታዊ ናቸው [ኤስ-አይነት ኮኖች በቫዮሌት-ሰማያዊ (ኤስ ከእንግሊዝኛ። አጭር - የአጭር ሞገድ ስፔክትረም) ), M-አይነት - በአረንጓዴ-ቢጫ (ኤም ከ እንግሊዝኛ. መካከለኛ - መካከለኛ ማዕበል), እና ኤል-አይነት - በቢጫ-ቀይ (L ከ እንግሊዝኛ. ረጅም - ረጅም-ማዕበል) የጨረር ክፍሎች. እነዚህ ሦስት ዓይነት ኮኖች (እና በትሮች ፣ በጨረር አረንጓዴ ክፍል ውስጥ ስሱ) መኖራቸው ለአንድ ሰው የቀለም እይታ ይሰጣል። / በግምት. ትርጉም]። ዱላዎችበአይናችን ውስጥ ያለው ሌላው የፎቶ ተቀባይ አይነት የብሩህነት ለውጦችን መለየት ይችላል ነገር ግን ለቀለም የበለጠ ስሜታዊ ነው። ዓይኖቻችን ወደ 120 ሚሊዮን የሚጠጉ ዘንጎች እና 6 ሚሊዮን ኮኖች ብቻ አላቸው.

ስለዚህ ዓይኖቻችን ከቀለም ለውጦች በተሻለ የብሩህነት ለውጦችን ያስተውላሉ። ቀለሙን ከብሩህነት ከለዩ, ትንሽ ቀለም ማስወገድ ይችላሉ, እና ማንም ምንም ነገር አያስተውልም. የ Chroma ንዑስ ናሙና የምስል ቀለም ክፍሎችን ከብርሃን ክፍሎች ባነሰ ጥራት የመወከል ሂደት ነው። ከላይ ባለው ምሳሌ እያንዳንዱ ፒክሰል በትክክል አንድ Y አካል አለው፣ እና እያንዳንዱ የአራት ፒክሰሎች ቡድን በትክክል አንድ Cb እና አንድ Cr አካል አላቸው። ስለዚህ, ምስሉ ከመጀመሪያው አራት እጥፍ ያነሰ የቀለም መረጃ ይዟል.

የYCbCr ቀለም ቦታ በJPEGዎች ውስጥ ብቻ ጥቅም ላይ አይውልም። መጀመሪያ የተፈለሰፈው በ1938 ለቲቪ ትዕይንቶች ነው። ሁሉም ሰው ባለቀለም ቲቪ የለውም፣ ስለዚህ ቀለም እና ብሩህነት መለያየት ሁሉም ሰው አንድ አይነት ምልክት እንዲያገኝ አስችሎታል፣ እና ቀለም የሌላቸው ቴሌቪዥኖች የብሩህነት ክፍሉን ብቻ ተጠቅመዋል።

ስለዚህ, ከአርታዒው አንድ ቁጥር ማስወገድ ሁሉንም ቀለሞች ሙሉ በሙሉ ያጠፋል. አካላት በዓዓዓዓ ሲቢሲአር (በእርግጥ ፣ በዚህ ቅደም ተከተል የግድ አይደለም - የማከማቻ ቅደም ተከተል በፋይል ራስጌ ውስጥ ተገልጿል)። የመጀመሪያውን ቁጥር ማስወገድ የ Cb የመጀመሪያ እሴት እንደ Y, Cr እንደ Cb እና በአጠቃላይ, የዶሚኖ ተጽእኖ ይኖረዋል, ሁሉንም የምስሉን ቀለሞች ይቀይራል.

የJPEG መግለጫው YCbCr እንድትጠቀም አይፈልግም። ነገር ግን በአብዛኛዎቹ ፋይሎች ውስጥ ጥቅም ላይ የሚውለው ከ RGB ጋር ሲነጻጸር ከንዑስ ናሙና በኋላ የተሻሉ ምስሎችን ስለሚሰጥ ነው. ግን ቃሌን መቀበል የለብዎትም። እያንዳንዱ ነጠላ አካል በ RGB እና YCbCr ውስጥ እንዴት እንደሚመስል ከታች ባለው ሠንጠረዥ ውስጥ ለራስዎ ይመልከቱ።

የ JPEG ቅርጸት እንዴት እንደሚሰራ
(በይነተገናኝ ስሪት በ የመጀመሪያው ጽሑፎች).

ሰማያዊ መወገድ እንደ ቀይ ወይም አረንጓዴ የሚታይ አይደለም. ያ በዓይንዎ ውስጥ ባሉት ስድስት ሚሊዮን ኮኖች ምክንያት 64% የሚሆኑት ለቀይ ፣ 32% ለአረንጓዴ እና 2% ለሰማያዊ ስሜታዊ ናቸው።

የY ክፍል (ከታች በስተግራ) ንዑስ ናሙና በደንብ ይታያል። ትንሽ ለውጥ እንኳን ይስተዋላል።

ምስልን ከRGB ወደ YCbCr መቀየር የፋይሉን መጠን አይቀንሰውም ነገር ግን ሊወገዱ የሚችሉ ብዙም የማይታዩ ዝርዝሮችን ለማግኘት ቀላል ያደርገዋል። የመጥፋት መጨናነቅ በሁለተኛው ደረጃ ላይ ይከሰታል. መረጃን ይበልጥ በተጨናነቀ መልክ የማቅረብ ሃሳብ ላይ የተመሰረተ ነው.

2. የተለየ ኮሳይን መለወጥ እና መገለል

ይህ የመጨመቅ ደረጃ, በአብዛኛው, የ JPEG ምንነት ይገልፃል. ቀለሞቹን ወደ YCbCr ከቀየሩ በኋላ ክፍሎቹ በተናጥል የተጨመቁ ናቸው ስለዚህ ከአሁን በኋላ በ Y አካል ላይ ብቻ ማተኮር እንችላለን እና እዚህ ደረጃ ከተተገበሩ በኋላ የ Y ክፍል ባይት ምን ይመስላል።

የ JPEG ቅርጸት እንዴት እንደሚሰራ
(በይነተገናኝ ስሪት በ የመጀመሪያው ጽሑፎች). በይነተገናኝ ስሪት ውስጥ፣ ፒክሰል ላይ ጠቅ ማድረግ አርታዒውን ወደሚወከለው መስመር ያሸብልለዋል። ቁጥሮችን ከመጨረሻው ለማስወገድ ይሞክሩ ወይም ጥቂት ዜሮዎችን ወደ የተወሰነ ቁጥር ያክሉ።

በመጀመሪያ ሲታይ, በጣም መጥፎ መጨናነቅ ይመስላል. በምስሉ ውስጥ 100 ፒክሰሎች አሉ እና ብርሃናቸውን (Y-components) ለማመልከት 000 ቁጥሮች ያስፈልጋል - ይህ ምንም ነገር ከመጨመቅ የከፋ ነው!

ሆኖም፣ እነዚህ ቁጥሮች አብዛኛዎቹ ዜሮ መሆናቸውን ልብ ይበሉ። ከዚህም በላይ በመስመሮቹ መጨረሻ ላይ ያሉት እነዚህ ሁሉ ዜሮዎች ምስሉን ሳይቀይሩ ሊወገዱ ይችላሉ. ወደ 26 የሚጠጉ ቁጥሮች አሉ ፣ ይህም ወደ 000 እጥፍ ያነሰ ነው!

ይህ ደረጃ የቼዝ ቅጦች ሚስጥር ይዟል. ከተመለከትናቸው ሌሎች ተፅዕኖዎች በተለየ፣ የእነዚህ ቅጦች ገጽታ ችግር አይደለም። እነሱ የሙሉው ምስል ህንጻዎች ናቸው. እያንዳንዱ የአርታዒው መስመር በትክክል 64 ቁጥሮችን፣ ከ64 ልዩ ዘይቤዎች ጥንካሬ ጋር የሚዛመዱ የዲስትሪክት ኮሳይን ትራንስፎርሜሽን (DCT) ቅንጅቶችን ይይዛል።

እነዚህ ቅጦች በኮሳይን ሴራ ላይ ተመስርተዋል. አንዳንዶቹ ምን እንደሚመስሉ እነሆ፡-

የ JPEG ቅርጸት እንዴት እንደሚሰራ
8 ከ 64 ዕድሎች

ከታች ሁሉንም 64 ቅጦች የሚያሳይ ምስል አለ።

የ JPEG ቅርጸት እንዴት እንደሚሰራ
(በይነተገናኝ ስሪት በ የመጀመሪያው ጽሑፎች).

የ 8x8 ምስሎችን መሠረት በማድረግ እነዚህ ቅጦች ልዩ ጠቀሜታ አላቸው. ከመስመር አልጀብራ ጋር የማታውቁት ከሆነ ይህ ማለት ማንኛውም 8x8 ምስል ከእነዚህ 64 ቅጦች ማግኘት ይቻላል ማለት ነው። ዲሲቲ ምስሎችን ወደ 8x8 ብሎኮች የመሰባበር እና እያንዳንዱን ብሎኮች ወደ እነዚህ 64 ውህዶች የመቀየር ሂደት ነው።

ማንኛውም ምስል በ64 ልዩ ዘይቤዎች የተዋቀረ መሆኑ አስማት ይመስላል። ሆኖም ይህ በምድር ላይ ያለ ማንኛውም ቦታ በሁለት ቁጥሮች ሊገለጽ ይችላል ከሚለው ጋር ተመሳሳይ ነው - ኬክሮስ እና ኬንትሮስ ትርጉም]። ብዙውን ጊዜ የምድርን ገጽ እንደ ሁለት ገጽታ እናስባለን, ስለዚህ ሁለት ቁጥሮች ብቻ እንፈልጋለን. 8x8 ምስል 64 ልኬቶች አሉት, ስለዚህ 64 ቁጥሮች እንፈልጋለን.

ይህ ከጨመቅ አንፃር እንዴት እንደሚረዳን እስካሁን ግልጽ አይደለም. 64x8 ምስልን ለመወከል 8 ቁጥሮች ከፈለግን 64 የብርሃን ክፍሎችን ከማከማቸት ለምን የተሻለ ይሆናል? ይህንን የምናደርገው በተመሳሳይ ምክንያት ሶስት RGB ቁጥሮችን ወደ ሶስት YCbCr ቁጥሮች ቀይረናል፡ ስውር ዝርዝሮችን እንድናስወግድ ያስችለናል።

JPEG በ 8x8 ብሎኮች ላይ DCT ስለሚተገበር በዚህ ደረጃ ምን ዓይነት ዝርዝሮች እንደሚወገዱ በትክክል ለማየት አስቸጋሪ ነው። ነገር ግን በጠቅላላው ምስል ላይ እንዳንጠቀም ማንም አይከለክለንም. በጠቅላላው ምስል ላይ ሲተገበር DCT ለY ክፍል ምን እንደሚመስል እነሆ፡-

የ JPEG ቅርጸት እንዴት እንደሚሰራ

ከ 60 በላይ ቁጥሮች በፎቶው ላይ ምንም የማይታዩ ለውጦች ከመጨረሻው ሊወገዱ ይችላሉ።

የ JPEG ቅርጸት እንዴት እንደሚሰራ

ነገር ግን የመጀመሪያዎቹን አምስት ቁጥሮች ዜሮ ካደረግን ልዩነቱ ግልጽ እንደሚሆን ልብ ይበሉ.

የ JPEG ቅርጸት እንዴት እንደሚሰራ

መጀመሪያ ላይ ያሉት ቁጥሮች በምስሉ ላይ ዝቅተኛ ድግግሞሽ ለውጦችን ያመለክታሉ, እና ዓይኖቻችን ምርጡን ያነሳቸዋል. ወደ መጨረሻው ያሉት ቁጥሮች ለማስተዋል አስቸጋሪ የሆኑ ከፍተኛ ድግግሞሽ ለውጦችን ያመለክታሉ። "አይን ማየት የማይችለውን ለማየት" የመጀመሪያዎቹን 5000 ቁጥሮች ዜሮ በማድረግ እነዚህን ከፍተኛ ፍሪኩዌንሲ ዝርዝሮችን ማግለል እንችላለን።

የ JPEG ቅርጸት እንዴት እንደሚሰራ

ከፒክሰል ወደ ፒክሰል ከፍተኛ ለውጥ የሚከሰትባቸውን ሁሉንም የምስሉ አካባቢዎች እናያለን። የድመቷ አይኖች፣ የጢም ጢሙ፣ የቴሪ ብርድ ልብስ እና ከታች በግራ ጥግ ላይ ያሉት ጥላዎች ጎልተው ይታያሉ። የመጀመሪያዎቹን 10 ቁጥሮች ዜሮ በማድረግ የበለጠ መሄድ ይችላሉ፡-

የ JPEG ቅርጸት እንዴት እንደሚሰራ

20 000

የ JPEG ቅርጸት እንዴት እንደሚሰራ

40 000

የ JPEG ቅርጸት እንዴት እንደሚሰራ

60 000

የ JPEG ቅርጸት እንዴት እንደሚሰራ

እነዚህ ከፍተኛ-ድግግሞሽ ዝርዝሮች በመጨመቂያው ደረጃ በ JPEG ይወገዳሉ። ቀለሞችን ወደ ዲሲቲ ኮፊሸንት መቀየር ኪሳራ የለውም። ከፍተኛ ድግግሞሽ ወይም ወደ ዜሮ የሚጠጉ እሴቶች በሚወገዱበት ናሙና ደረጃ ላይ ኪሳራዎች ይፈጠራሉ። የ JPEG ቁጠባን ጥራት ሲቀንሱ ፕሮግራሙ የሚወገዱትን የእሴቶች ብዛት ከፍ ያደርገዋል ፣ ይህም የፋይሉን መጠን ይቀንሳል ፣ ግን ምስሉን የበለጠ ፒክስል ያደርገዋል። ስለዚህ በመጀመሪያው ክፍል ላይ ያለው ምስል 57 እጥፍ ያነሰ ነበር, ይህን ይመስላል. እያንዳንዱ 8x8 ብሎክ ከከፍተኛ ጥራት እትም ጋር ሲወዳደር በጣም ትንሽ የDCT Coefficients ይወክላል።

ምስሎችን ቀስ በቀስ እንደ መልቀቅ አሪፍ ነገር ማድረግ ትችላለህ። ብዙ ቅንጅቶች ሲወርዱ የበለጠ እና የበለጠ ዝርዝር የሚሆነውን ብዥ ያለ ምስል ማሳየት ይችላሉ።

እዚህ፣ ለመዝናናት፣ 24 ቁጥሮችን ብቻ ሲጠቀሙ ምን ይሆናል፡

የ JPEG ቅርጸት እንዴት እንደሚሰራ

ወይም 5000 ብቻ:

የ JPEG ቅርጸት እንዴት እንደሚሰራ

በጣም ደብዛዛ ግን ሊታወቅ የሚችል!

3. የሩጫ ርዝማኔዎች, ዴልታ እና ሃፍማን ኮድ መስጠት

እስካሁን ድረስ ሁሉም የጨመቁ ደረጃዎች ኪሳራዎች ናቸው. የመጨረሻው ደረጃ, በተቃራኒው, ያለ ኪሳራ ይሄዳል. መረጃን አያስወግድም, ነገር ግን የፋይሉን መጠን በእጅጉ ይቀንሳል.

መረጃን ሳይጥሉ አንድን ነገር እንዴት መጭመቅ ይችላሉ? ቀላል ጥቁር 700 x 437 አራት ማዕዘን እንዴት እንደምንገለጽ አስቡት።

JPEG ለዚህ 5000 ቁጥሮች ይጠቀማል, ነገር ግን በጣም የተሻሉ ውጤቶች ሊገኙ ይችላሉ. በተቻለ መጠን በጥቂት ባይቶች ውስጥ እንዲህ ዓይነቱን ምስል የሚገልጽ የኢኮዲንግ እቅድ መገመት ትችላለህ?

ላመጣው የምችለው አነስተኛ እቅድ አራት ይጠቀማል፡ ሶስት ለቀለም እና አራተኛው ያ ቀለም ስንት ፒክሰሎች አሉት። በእንደዚህ ዓይነት የታመቀ መንገድ ተደጋጋሚ እሴቶችን የመወከል ሀሳብ የሩጫ ርዝመት ኮድ ይባላል። በኮድ የተደረገውን ዳታ በመጀመሪያው መልኩ ማግኘት ስለምንችል ኪሳራ የለውም።

ጥቁር ሬክታንግል ያለው የ JPEG ፋይል መጠን ከ 4 ባይት በጣም ትልቅ ነው - ያስታውሱ በዲሲቲ ደረጃ ፣ መጭመቅ በ 8x8 ፒክስል ብሎኮች ላይ ይተገበራል። ስለዚህ፣ ቢያንስ፣ ለእያንዳንዱ 64 ፒክስል አንድ የDCT Coefficient ያስፈልገናል። እኛ አንድ እንፈልጋለን ምክንያቱም አንድ ነጠላ የዲሲቲ ኮፊሸን ከ 63 ዜሮዎች ጋር ከማስቀመጥ ይልቅ የሩጫ ርዝመት ኢንኮዲንግ አንድ ቁጥር እንድናከማች እና "ሌሎች ሁሉ ዜሮዎች ናቸው" የሚለውን ለማመልከት ያስችለናል.

ዴልታ ኢንኮዲንግ እያንዳንዱ ባይት ከፍፁም እሴት ይልቅ ከአንዳንድ እሴት ልዩነት የሚይዝበት ዘዴ ነው። ስለዚህ, የተወሰኑ ባይት ማረም የሁሉንም ፒክስሎች ቀለም ይለውጣል. ለምሳሌ, ከማጠራቀም ይልቅ

12 13 14 14 14 13 13 14

በ 12 ልንጀምር እና ከዚያ የሚቀጥለውን ቁጥር ለማግኘት ምን ያህል መጨመር ወይም መቀነስ እንዳለብን ብቻ ጻፍ። እና በዴልታ ኮድ አሰጣጥ ውስጥ ያለው ይህ ቅደም ተከተል ቅጹን ይወስዳል።

12 1 1 0 0 -1 0 1

የተለወጠው ውሂብ ከመጀመሪያው ውሂብ ያነሰ አይደለም, ነገር ግን እሱን ለመጭመቅ ቀላል ነው. የዴልታ ኢንኮዲንግ በሩጫ-ርዝመት ኢንኮዲንግ መተግበር አሁንም ኪሳራ የሌለው መጭመቅ እያለ ብዙ ይረዳል።

ዴልታ ኢንኮዲንግ ከ8x8 ብሎኮች ውጭ ጥቅም ላይ ከሚውሉ ጥቂት ቴክኒኮች ውስጥ አንዱ ነው። ከ64ቱ የዲሲቲ ጥምርታዎች አንዱ በቀላሉ ቋሚ ሞገድ ተግባር (ጠንካራ ቀለም) ነው። እሱ የሚያመለክተው የእያንዳንዱ ብሎክ አማካኝ ብሩህነት ለብርሃን ክፍሎች ወይም ለሲቢ አካላት አማካይ ሰማያዊነት እና የመሳሰሉትን ነው። የእያንዳንዱ የDCT ብሎክ የመጀመሪያ እሴት የዲሲ እሴት ይባላል፣ እና እያንዳንዱ የዲሲ እሴት ከቀደምቶቹ አንፃር የዴልታ ኮድ ነው። ስለዚህ, የመጀመሪያውን ብሎክ ብሩህነት መቀየር ሁሉንም ብሎኮች ይነካል.

የመጨረሻው ምስጢር ይቀራል-ነጠላ ቁጥርን እንዴት መለወጥ ሙሉውን ምስል ያበላሻል? እስካሁን ድረስ የመጨመቂያ ደረጃዎች እንደዚህ አይነት ባህሪያት አልነበራቸውም. መልሱ በJPEG ራስጌ ላይ ነው። የመጀመሪያዎቹ 500 ባይት ስለ ምስሉ - ስፋት ፣ ቁመት ፣ ወዘተ ሜታዳታ ይይዛሉ ፣ እና እስካሁን ከእነሱ ጋር አልሰራንም።

ራስጌ ከሌለ JPEGን መፍታት ፈጽሞ የማይቻል ነው (በደንብ፣ በጣም ከባድ)። ምስልን ልገልጽልህ የሞከርኩ ይመስላል፣ እና ስሜቴን ለማስተላለፍ ቃላት መፍጠር ጀመርኩ። በትክክል ለማስተላለፍ የምፈልገውን ትርጉም ያላቸውን ቃላት መፈልሰፍ ስለምችል መግለጫው ምናልባት በጣም አጭር ሊሆን ይችላል ፣ ግን ለሌላ ሰው ሁሉ ትርጉም አይሰጡም።

ሞኝ ይመስላል፣ ግን ያ ነው የሚሆነው። እያንዳንዱ የ JPEG ምስል ለእሱ ልዩ በሆኑ ኮዶች የታመቀ ነው። የኮዱ መዝገበ ቃላት በአርዕስት ውስጥ ተከማችቷል። ይህ ዘዴ "Huffman code" ይባላል እና መዝገበ-ቃላቱ ሃፍማን ሰንጠረዥ ይባላል. በርዕሱ ውስጥ, ጠረጴዛው በሁለት ባይት - 255 እና ከዚያ 196. እያንዳንዱ የቀለም ክፍል የራሱ ጠረጴዛ ሊኖረው ይችላል.

የሰንጠረዥ ለውጦች ማንኛውንም ምስል በእጅጉ ይጎዳሉ። ጥሩ ምሳሌ በ15ኛው መስመር 1 ወደ 12 መቀየር ነው።

የ JPEG ቅርጸት እንዴት እንደሚሰራ

ይህ የሆነበት ምክንያት ሠንጠረዦቹ የግለሰብ ቢትስ እንዴት እንደሚነበቡ ስለሚገልጹ ነው። እስካሁን ድረስ የሰራነው በሁለትዮሽ ቁጥሮች በአስርዮሽ መልክ ብቻ ነው። ነገር ግን ይህ ቁጥር 1 በባይት ውስጥ ማከማቸት ከፈለጉ 00000001 እንደሚመስለው ከእኛ ይሰውረናል ምክንያቱም እያንዳንዱ ባይት በትክክል ስምንት ቢትስ ሊኖረው ይገባል ፣ ምንም እንኳን አንዳቸው ቢያስፈልግም።

ብዙ ትናንሽ ቁጥሮች ካሉዎት ይህ ምናልባት ትልቅ የቦታ ብክነት ነው። ሁፍማን ኮድ እያንዳንዱ ቁጥር ስምንት ቢት መያዝ ያለበትን ይህንን መስፈርት ዘና ለማድረግ የሚያስችል ዘዴ ነው። ይህ ማለት ሁለት ባይት ካዩ፡-

234 115

ከዚያም በሃፍማን ሰንጠረዥ ላይ በመመስረት, ሶስት ቁጥሮች ሊሆን ይችላል. እነሱን ለማውጣት በመጀመሪያ እነሱን ወደ ግለሰባዊ ቢትስ መከፋፈል ያስፈልግዎታል-

11101010 01110011

ከዚያም እነሱን እንዴት ማቧደን እንዳለብን ለመረዳት ወደ ጠረጴዛው እንሸጋገራለን. ለምሳሌ፣ የመጀመሪያዎቹ ስድስት ቢት፣ (111010)፣ ወይም 58 በአስርዮሽ፣ ከዚያም አምስት ቢት (10011)፣ ወይም 19፣ እና በመጨረሻም የመጨረሻዎቹ አራት ቢት (0011) ወይም 3 ሊሆኑ ይችላሉ።

ስለዚህ, በዚህ የመጨመቅ ደረጃ ላይ ባይቶችን ለመረዳት በጣም አስቸጋሪ ነው. ባይት የሚመስለውን አይወክልም። በዚህ ጽሑፍ ውስጥ ከጠረጴዛው ጋር የመሥራት ዝርዝሮችን አልገባም, ግን ቁሳቁሶች በዚህ ጉዳይ ላይ በመስመር ላይ በቂ ነው.

በዚህ እውቀት ልታደርጓቸው ከሚችሉት አሪፍ ዘዴዎች አንዱ ራስጌውን ከ JPEG መለየት እና ለየብቻ ማስቀመጥ ነው። እንደ እውነቱ ከሆነ ፋይሉን እርስዎ ብቻ ማንበብ ይችላሉ. ፌስቡክ ይህን የሚያደርገው ፋይሎችን የበለጠ ለመቀነስ ነው።

ሌላ ምን ማድረግ ይቻላል የሃፍማን ጠረጴዛን ትንሽ መለወጥ ነው. ለሌሎች, የተበላሸ ምስል ይመስላል. እና እሱን ለማስተካከል አስማታዊ አማራጭን እርስዎ ብቻ ያውቃሉ።

ለማጠቃለል፡- ስለዚህ JPEG ን መፍታት ምን ያስፈልጋል? አስፈላጊ፡

  1. የሃፍማን ሰንጠረዡን ከራስጌው ያውጡ እና ቢትቹን ይፍቱ።
  2. የሩጫ ርዝመት ኢንኮዲንግ እና ዴልታ በተገላቢጦሽ በመቀየር ለእያንዳንዱ 8x8 ብሎክ ለእያንዳንዱ ቀለም እና አንፀባራቂ ክፍል የዲስክሪት ኮሳይን ትራንስፎርሜሽን ውህዶችን ያውጡ።
  3. ለእያንዳንዱ 8x8 ብሎክ የፒክሰል እሴቶችን ለማግኘት በኮፊሸን ላይ የተመሰረቱ ኮሳይኖችን ያጣምሩ።
  4. ንዑስ ናሙና ከተሰራ የቀለም ክፍሎችን መጠን (ይህ መረጃ በአርዕስት ውስጥ አለ)።
  5. ለእያንዳንዱ ፒክሰል የተገኙትን የYCbCr ዋጋዎችን ወደ RGB ይለውጡ።
  6. ምስሉን ወደ ማያ ገጹ አምጣ!

ከድመት ጋር ፎቶን በቀላሉ ለማየት ከባድ ስራ! ሆኖም ግን እኔ የምወደው ሰውን ያማከለ የ JPEG ቴክኖሎጂ እንዴት እንደሆነ የሚያሳይ ነው። እሱ በአስተያየታችን ባህሪያት ላይ የተመሰረተ ነው, ይህም ከተለመዱት ቴክኖሎጂዎች የበለጠ የተሻለ መጨናነቅን እንድናገኝ ያስችለናል. እና አሁን, JPEG እንዴት እንደሚሰራ መረዳት, እነዚህ ቴክኖሎጂዎች ወደ ሌሎች አካባቢዎች እንዴት እንደሚተላለፉ መገመት ይችላሉ. ለምሳሌ፣ በቪዲዮ ውስጥ የዴልታ ኢንኮዲንግ የፋይል መጠን በእጅጉ እንዲቀንስ ሊያደርግ ይችላል፣ ምክንያቱም ብዙ ጊዜ ከክፈፍ ወደ ፍሬም የማይለወጡ ሙሉ ቦታዎች (ለምሳሌ ዳራ)።

በአንቀጹ ውስጥ ጥቅም ላይ የዋለው ኮድ, ክፍት ነው, እና ስዕሎቹን በእራስዎ ለመተካት መመሪያዎችን ይዟል.

ምንጭ: hab.com

አስተያየት ያክሉ