Halo a-rithist! Lorg mi an artaigil seo sgrìobhte air ais sa Chèitean 2019. Tha seo a’ leantainn air sreath de artaigilean mu WAVE agus JPEG, an seo
Pìos de dh'eachdraidh
spàin-bùird de artaigil Wikipedia:
Tha JPEG (Co-bhuidheann de eòlaichean dhealbhan) mar aon de na cruthan grafaigean raster mòr-chòrdte a thathas a’ cleachdadh airson dealbhan agus ìomhaighean coltach ris a stòradh.
Chaidh an inbhe seo a leasachadh leis a’ Bhuidheann Eòlaichean Dealbhan air ais ann an 1991 airson teannachadh ìomhaigh èifeachdach.
Ciamar a thèid dealbhan bho amh gu JPEG?
Tha cuid den bheachd gur e dàta amh a th’ ann an ìomhaighean JPEG a’ cleachdadh modh Huffman, ach chan eil seo fìor. Mus tèid smachd a chumail air teannachadh, bidh dàta a’ siubhal astar fada.
An toiseach, tha am modail dath air atharrachadh bho RGB gu YCbCr. Tha eadhon algorithm sònraichte ann airson seo -
Is e a 'chiad rud a nì thu leis an ìomhaigh "tanadh" (fo-shamhlachadh). Tha e furasta a thuigsinn: thèid sreath 2 × 2 de piogsail a ghabhail, an uairsin thèid Cb agus Cr a ghabhail - luachan cuibheasach gach aon de na pàirtean YCbCr de na 4 piogsail sin. Mar sin, Bhuannaich sinn 6 bytes, an àite 4 Y, 4 Cb, 4 Cr fhuair sinn 4 Y agus an aon Cb agus Cr airson gach fear dhiubh (4 + 4 + 4 = 12; 4 + 1 + 1 = 6; 12 - 6 = 6). Aig eadhon sgèile 2 × 2, tha teannachadh cally le co-mheas teannachaidh 2: 1 a ’fuaimeachadh cruaidh. Tha seo a 'buntainn ris an ìomhaigh gu lèir. Agus mar sin - thuit iad gu leth meud. Agus is urrainn dhuinn an dòigh seo a chleachdadh le taing don tuigse dath againn. Mothaichidh neach gu furasta eadar-dhealachadh ann an soilleireachd, ach chan ann ann an dath, ma tha e cuibheasach thairis air bloc beag de piogsail. Faodar tanachadh a dhèanamh cuideachd ann an loidhne, 4 piogsail gu còmhnard agus gu dìreach. Tha a 'chiad roghainn air a chleachdadh nas trice. Ma tha càileachd ìomhaigh cudromach, chan eil lughdachadh sam bith air a dhèanamh.
Dealbh lèirsinneach de tanachadh (cha leig Habr leam gif a chuir a-steach) -
Am prìomh phàirt den ullachadh
PrEP
A-nis thig am pàirt as cruaidhe agus as fheumaile. Tha an ìomhaigh gu lèir air a roinn ann am blocaichean 8 × 8 (tha lìonadh air a chleachdadh mura h-eil an rùn iomadaidh taobh a’ bhloc).
A-nis cuir a-steach airson gach bloc DCT (cruth-atharrachadh cosine air leth). Anns a 'phàirt seo, thèid a h-uile dad neo-riatanach a thoirt a-mach às an dealbh. A’ cleachdadh DCT, feumaidh tu tuigsinn a bheil bloc sònraichte (8 × 8) a’ toirt cunntas air pàirt monotonous sam bith den ìomhaigh: an speur, am balla; no tha structar iom-fhillte ann (falt, samhlaidhean, msaa). Tha e loidsigeach gum faodar 64 piogsail den aon dath a mhìneachadh le dìreach 1, oir tha fios mu mheud a’ bhloca mu thràth. Na h-uimhir airson an teannachadh: 64 gu 1.
Bidh DCT a ’tionndadh a’ bhloc gu speactram, agus far a bheil na leughaidhean ag atharrachadh gu mòr, bidh an co-èifeachd a ’fàs deimhinneach, agus mar as gèire a bhios an gluasad, is ann as àirde a bhios an toradh. Far a bheil an co-èifeachd nas àirde, tha an dealbh a 'sealltainn eadar-ghluasadan soilleir ann an dath agus soilleireachd, far a bheil e nas ìsle - atharrachaidhean lag (rèidh) ann an luachan co-phàirtean YCbCr sa bhloc.
Cainntearachd
Tha roghainnean teannachaidh air an cur an sàs an seo mu thràth. Tha gach aon de na co-èifeachdan anns gach aon de na matrices 8x8 air a roinn le àireamh sònraichte. Mura lughdaich thu càileachd ìomhaigh às deidh a h-uile atharrachadh, bu chòir don roinnear a bhith mar aon. Ma tha an cuimhne a tha san dealbh seo nas cudromaiche dhut, bidh an roinnear nas motha na 1, agus thèid an àireamh a chruinneachadh. Tha e a 'tionndadh a-mach gu bheil an dèidh cruinneachadh thu gu tric a' tighinn gu crìch le tòrr neoni.
Bithear a’ tomhas gus am bi e comasach teannachadh eadhon nas motha a chruthachadh. Seo cò ris a tha e coltach a’ cleachdadh an eisimpleir de bhith a’ tomhas a’ ghraf y = sin(x):
Compression
An toiseach thèid sinn tron mhaitris ann am pàtran zig-zag:
Gheibh sinn sreath aon-thaobhach le àireamhan. Tha sinn a 'faicinn gu bheil tòrr neamhan ann, faodar an toirt air falbh. Gus seo a dhèanamh, an àite sreath de iomadh neoni, bidh sinn a’ dol a-steach 1 neoni agus às a dhèidh àireamh a’ sealltainn an àireamh aca san t-sreath. San dòigh seo faodaidh tu ath-shuidheachadh gu 1/3 meud an t-sreath gu lèir. Agus an uairsin bidh sinn dìreach a’ teannachadh an t-sreath seo a ’cleachdadh modh Huffman agus ga sgrìobhadh a-steach don fhaidhle fhèin.
Far a bheilear a ’cleachdadh
Anns gach àite. Coltach ri PNG, tha JPEG air a chleachdadh ann an camarathan, OSn (mar suaicheantasan companaidh, ìomhaighean tagraidh, òrdagan) agus anns a h-uile raon a dh’ fhaodadh a bhith ann far am feumar ìomhaighean a stòradh gu h-èifeachdach.
co-dhùnadh
Aig an àm seo, tha eòlas air JPEG a-nis luachmhor a-mhàin airson adhbharan foghlaim, oir tha e mu thràth air a thogail anns a h-uile àite agus air a bharrrachadh le buidhnean mòra de dhaoine, ach tha clach-ghràin saidheans fhathast blasta.
Stòran
Source: www.habr.com