JPEG. algorithm cadaadis

Hello mar kale! Waxaan helay maqaalkan oo dib loo qoray May 2019. Tani waa sii socoshada maqaallo taxane ah oo ku saabsan WAVE iyo JPEG, halkan marka hore. Daabacaadan waxaa ku jiri doona macluumaadka ku saabsan sawirka codeynta algorithm iyo qaabka laftiisa guud ahaan.

qanjaruufo taariikhda

Qaado maqaal Wikipedia ah:

JPEG (Kooxda Khubarada Sawirka ee Wadajirka ah) waa mid ka mid ah qaababka garaafyada raster-ka caanka ah ee loo isticmaalo kaydinta sawirada iyo sawirada la midka ah.

Heerkan waxa soo saaray Kooxda Khubarada Sawirka ee Wadajirka ah sannadkii 1991kii si loo helo sawir hufan.

Sidee sawiradu uga baxaan cayriin ilaa JPEG?

Dadka qaarkiis waxay u maleynayaan in sawirada JPEG ay yihiin xog ceeriin ah oo la cufan iyadoo la adeegsanayo habka Huffman, laakiin tani run maaha. Kahor xakamaynta xakamaynta, xogtu waxay socotaa meel dheer.

Marka hore, qaabka midabka waxa laga beddelay RGB oo loo beddelay YCbCr. Xitaa waxaa jira algorithm gaar ah tan - halkan. Y lama taaban, maadaama ay mas'uul ka tahay dhalaalka, isbeddelkeeduna waa la dareemi doonaa.

Waxa ugu horreeya ee lagu sameeyo sawirka waa "khafiif ah" (hoos u dhigid). Way fududahay in la fahmo: 2x2 array of pixels ayaa la qaadayaa, ka dibna Cb iyo Cr ayaa la qaadayaa - celceliska qiyamka mid kasta oo ka mid ah qaybaha YCbCr ee 4tan pixels. Haddaba, waxaan ku guuleysanay 6 bytes, halkii 4 Y, 4 Cb, 4 Cr waxaan helnay 4 Y iyo isku Cb iyo Cr mid kasta oo iyaga ka mid ah (4 + 4 + 4 = 12; 4 + 1 + 1 = 6; 12 - 6 = 6). Xataa cabbirka 2x2, isku-buufinta khasaaraha leh oo leh 2:1 saamiga isku-buufinta ayaa u muuqda mid adag. Tani waxay khusaysaa sawirka oo dhan. Oo sidaas daraaddeed - waxay hoos u dhigeen nus cabbir. Oo waxaan isticmaali karnaa farsamadan iyada oo ay ugu wacan tahay aragtidayada midabka. Qofku wuxuu si fudud u ogaan doonaa farqi u dhexeeya dhalaalka, laakiin ma aha midabka, haddii lagu qiyaaso in ka badan block yar oo pixels ah. Khafiifinta sidoo kale waxaa lagu samayn karaa xariiq, 4 pixels oo siman iyo toosan. Doorashada ugu horreysa waxaa loo isticmaalaa marar badan. Haddii tayada sawirku ay muhiim tahay, markaa dhimista gabi ahaanba lama sameeyo.
Sawir muuqaal ah oo khafiif ah (Habr iima ogola inaan gif galiyo) - https://i.ibb.co/Rg5Th9H/150953010617579181.gif

Qaybta ugu muhiimsan ee diyaarinta

Dkp

Hadda waxay timaaddaa qaybta ugu adag uguna lagama maarmaanka ah. Sawirka oo dhan wuxuu u qaybsan yahay 8x8 baloog (buuxinta waxaa la isticmaalaa haddii xallintu aysan ahayn dhowr qaybood oo dhinaca block ah).

Hadda ku dalbo baloog kasta DCT (Beddelka Cosine Discrete). Qaybtan, wax kasta oo aan loo baahnayn ayaa laga saaray sawirka. Isticmaalka DCT, waxaad u baahan tahay inaad fahamto in xannibaadda la bixiyay (8Γ—8) ay qeexayso qayb kasta oo ka mid ah sawirka: cirka, derbiga; ama waxa uu ka kooban yahay qaab dhismeed adag (timo, calaamado, iwm.). Waa macquul in 64 pixels oo midab isku mid ah lagu tilmaami karo 1 kaliya, sababtoo ah cabbirka block waa la ogaa. Wax badan oo cadaadis ah: 64 ilaa 1.

DCT waxay u rogtaa block-ga spectrum, iyo halka wax-akhrisyadu ay si aad ah isu beddelaan, iskudubbaridu waxay noqotaa mid togan, iyo sida fiiqan ee kala-guurka, korodhka wax-soo-saarka ayaa noqon doona. Meesha isbarbardhigga uu ka sarreeyo, sawirku wuxuu muujinayaa kala-guurka cad ee midabka iyo dhalaalka, halkaas oo ay ka hooseeyaan - daciifnimo (dhaleec) isbeddellada qiyamka qaybaha YCbCr ee xannibaadda.

Tirada

Dejinta cadaadiska ayaa durba halkan lagu dabaqay. Mid kasta oo ka mid ah isku-xireyaasha mid kasta oo ka mid ah 8x8 mitir waxa loo qaybiyaa tiro go'an. Haddii aadan hoos u dhigi doonin tayada sawirka ka dib dhammaan wax ka beddelkeeda, markaa qaybiyuhu waa inuu noqdaa mid. Haddii xusuusta ku jirta sawirkan ay adiga kuugu muhiimsan tahay, markaa qaybiyaha ayaa ka weynaan doona 1, oo qiyaasta ayaa la soo koobayaa. Waxaa soo baxday in ka dib marka la soo koobo aad inta badan ku dhammaato eber badan.

Tiro koobid ayaa loo sameeyaa si loo abuuro suurtagalnimada cadaadis aad u weyn. Waa kuwan sida ay u egtahay iyadoo la adeegsanayo tusaalaha qiyaasidda garaafka y = sin(x):

JPEG. algorithm cadaadis

Cadaadis

Marka hore waxaan ku dhex mareynaa matrixka qaab zigzag ah:

JPEG. algorithm cadaadis

Waxaan helnaa shax hal-cabbir ah oo lambarro leh. Waxaan aragnaa in eber badan ay ku jiraan, waa laga saari karaa. Si tan loo sameeyo, halkii ay ka ahaan lahaayeen taxane eber badan, waxaan galnaa 1 eber ka dibna nambar tilmaamaya nambarkooda isku xigxiga. Sidan waxaad dib ugu dhigi kartaa 1/3 cabbirka dhammaan diyaarinta. Kadibna waxaanu si fudud u cadaadinaynaa shaxtan anagoo adeegsanayna habka Huffman oo ku qor faylka laftiisa.

Halkee loo isticmaalaa

Meel walba. Sida PNG, JPEG waxaa loo isticmaalaa kamaradaha, OS-yada (sida calaamadaha shirkadda, astaanta codsiga, thumbnails) iyo dhammaan meelaha suurtagalka ah ee sawirada u baahan in si hufan loo kaydiyo.

gunaanad

Waqtigan xaadirka ah, aqoonta ku saabsan JPEG hadda waa mid qiimo leh oo kaliya ujeedooyinka waxbarashada, sababtoo ah waxaa horayba loo dhisay meel kasta oo ay hagaajiyeen kooxo badan oo dad ah, laakiin granite sayniska ayaa weli ah mid dhadhan fiican leh.

Ilaha

Maqaal ku saabsan YCbCr ee Wikipedia
Maqaal Wikipedia ee JPEG
Wax yar oo ku saabsan PrEP laga bilaabo boostada Pikabu
Maqaal Wikipedia ee PrEP

Source: www.habr.com

Add a comment