Apple ve Xiaomi 10 tarafından kullanılan HEIF fotoğraf formatının şifresini çözme, Nokia ve Huawei büyük katkıda bulundu

Bir süre önce piyasaya çıkan Xiaomi Mi 10 serisi cep telefonları yeni bir görüntü formatı kullanıyor: HEIF, aynı görüntü kalitesini korurken dosya boyutunu en az% 50 azaltabiliyor.

Resim: HEIF resmi web sitesi

HEIF formatındaki fotoğraflar için dosya uzantısı genellikle .HEIC'dir (diğer formatlar da mevcuttur). Bu format adını görünce, iPhone kullananların buna aşina olması gerekir.

Doğru, Apple 2017'de iOS 11'de bu görüntü formatını zaten destekledi. IT House'un eski makalelerine gidebilirsiniz (buraya tıklayın).

Windows 10 sistemi ve Android 9 sistemi de 2018 yılında HEIF görüntü formatını desteklemeye başladı. Aynı yıl, Samsung Note9 aslında .HEIC fotoğraflarını desteklemektedir.

Mi 10 piyasaya sürülmeden önce Lei Jun, HEIF'in popüler hale gelmesinden sonra JPEG ve GIF'in ortadan kaldırılabileceğinin tahmin edildiğini söyledi.

Xiyuan, gelecekte HEIF popüler hale gelirse JPEG ve GIF'in yerini alabileceğini düşünüyor.

Bunu söyledikten sonra, herkesin çok meraklı olduğuna inanıyorum, HEIF görüntü kalitesini nasıl değiştirmez ve dosya boyutunu nasıl küçültebilir?

Xi Yuan internetteki bilgilere baktı ve çoğu bu konuyu net bir şekilde açıklamadı. Dolayısıyla bu makale, herkese tanıtmak için bu konuya odaklanmayı amaçlamaktadır.

HEIF, aynı görüntü kalitesini korurken dosya boyutunu JPEG ile karşılaştırıldığında neden önemli ölçüde azaltabilir?

Öncelikle JPEG görüntü formatının ne olduğunu anlamalıyız.

Sözde JPEG formatlı resim aslında görüntü sıkıştırma için teknik bir standarda atıfta bulunur Bu standart kullanılarak sıkıştırılan resimler "JPEG dosyaları" olarak adlandırılır.

JPEG dosya uzantıları arasında JPG, JPEG, JPE, JFIF ve JIF bulunur. Hepsi bize tanıdık geliyor.

Peki JPEG standardı resimleri nasıl sıkıştırır?

Bir resim büyütüldükten sonra her pikseli görebileceğinizi biliyoruz.

Her piksel, pikselin rengini tanımlayan bir dizi değer içerir. Buna, bilinen RGB renk alanı ve CMYK renk alanı gibi renk alanı denir.

Genel olarak fotoğraflar RGB renk alanını kullanırken, JPEG standardı YCbCr adlı bir renk alanı kullanır. Bu nedenle, renk alanı dönüşümü sıkıştırmadan önce yapılmalıdır.

Kaynak: wikimedia

YCbCr renk uzayında, Y parlaklığı, Cb mavinin rengini ve Cr kırmızının kromasını temsil eder.

Başka bir deyişle, Y parlaklığı, CbCr ise renk anlamına gelir.

Dönüştürmeden sonra, her piksel başka bir değer kümesi haline gelir.

İnsan gözü parlaklığa duyarlı olduğundan ve renge çok duyarlı olmadığından, JPEG standardı gerçek sıkıştırma sırasında parlaklık bilgilerinde çok fazla değişiklik yapmaz ve esas olarak renk bilgilerini sıkıştırır.

İki tür sıkıştırma vardır; biri kayıplı sıkıştırma, diğeri kayıpsız sıkıştırma. JPEG sıkıştırıldığında, her ikisi de kullanılır.Genel olarak, önce kayıplı sıkıştırma, ardından kayıpsız sıkıştırma gerçekleştirilir.

Kayıplı sıkıştırmanın ilk adımı, Cb kanalının ve Cr kanalının renk verilerini belirli bir orana göre örneklemektir. Bu süreçte verilerin bir kısmı kaybolur.

İkinci adım, bir resimdeki pikselleri, her biri 64 veri setine karşılık gelen 64 piksel olan sayısız 8 × 8 piksel karelere bölmektir.

Daha sonra 64 veri kümesi, ayrık kosinüs dönüşümü (DCT) adı verilen bir matematiksel işleme tabi tutulur ve bu 64 veri kümesi, işlendikten sonra daha kısa bir katsayı matrisi haline gelir.

Bu ayrık kosinüs dönüşümünün nasıl yapılacağına gelince, onu anlamanıza gerek yok.Yüksek sayıları bilen BT ev arkadaşları kendi kendilerine öğrenebilirler.

Kısaca DCT dönüşümünden sonra 64 set piksel değeri 64 katsayı olur ve bu işlem veri kaybına neden olur.

Daha sonra, bu 8 × 8 sıra matris grubu için, doğrudan işlenemez ve "niceleme" adı verilen bir işleme devam edilmelidir.

Nicemlemenin nasıl yapıldığını bilmenize gerek yok, sadece nicelemenin amacının matristeki her piksel arasındaki farkı uygun şekilde azaltmak olduğunu bilmeniz gerekir. İnsan gözü küçük bir alandaki yüksek pikselli bölgeleri ayırt edemediğinden, farklılıklarını azaltmak daha iyidir.

Niceleme işleminden sonra, 8 × 8 sıralı matris, 0 büyük bir alana sahip daha kısa bir dijital matris kümesi haline gelir.

Açıkçası, bu adım verilerin bir kısmını kaybetti.

İşte bu noktada, bir sonraki adım kayıpsız sıkıştırmadır.

İlk olarak, önceki adımda nicelleştirilmiş 8 × 8 dijital matrisi çıkarıyoruz. Çıkarma sırası şu "Z" gibidir.

Çıkarıldıktan sonra 64 veri elde edilir. Bu 64 veri arasında ilk sayıya DC katsayı kodlaması, son 63 sayıya AC katsayı kodlaması denir.

Bir resmin çok sayıda 8 × 8 küçük kare içerebileceğini bilmemiz gerekir Yukarıdaki işlemden sonra, çok sayıda DC katsayıları vardır.

Bir grup oluşturmak için çok sayıda DC katsayısını çıkarıyoruz ve ardından bunlar üzerinde diferansiyel kodlama ve Huffman kodlaması yapıyoruz.

Diğer AC katsayılarına gelince, bunlar üzerinde uzunluk kodlaması yapıyoruz.

Bu şekilde JPEG standardının sıkıştırma adımları temelde tamamlanmış olur.

Bu adımlar tamamlandıktan sonra, sıkıştırılmış .JPG dosyası orijinal görüntüden çok daha küçük olacak ve tabii ki görüntü kalitesi kaybolacaktır.

Ama henüz bitmedik.

Yukarıdaki üç tür kayıpsız sıkıştırma kodlamasının işlem sürecini bilmenize gerek yoktur, ancak herkesin sıkıştırma fikirlerini bilmesi gerekir.

Diferansiyel kodlama, ilk sayı dışında bir sayı dizisi için diğer sayıların kendisiyle önceki sayı arasındaki fark olarak ifade edilmesi anlamına gelir. Örneğin 100, 101, 103, 104, 107 veri serileri 100, 1, 2, 1, 3 olarak ifade edilebilir. Bunun bir sıkıştırma etkisi vardır.

Huffman kodlaması, genel fikri, bir veri dizisinde, daha sık sayıları temsil etmek için kısa karakterlerin kullanılması ve daha az sıklıkta sayıları temsil etmek için daha uzun karakterlerin kullanılmasıdır.

Şu cümle varsa: "IT House Netizens Discuss IT House Editor", "IT House" kelimelerinin tekrar tekrar göründüğü "IT House" Ana sayfa ve sonra bu cümle 1 netizen 1 editörü tartışıyor oluyor, sıkıştırılmış mı?

Yukarıdaki örneğin, Huffman kodlama fikrini herkesin anlamasını kolaylaştırmak için kesin olmadığını unutmayın. Asıl işlem çok karmaşıktır.Olası dikkate almak ve bir ikili ağaç yapmak gerekir. BT ev arkadaşlarıyla ilgileniyorsanız, kendiniz öğrenebilirsiniz.

Çalışma uzunluğu kodlaması, bu çok basit, sadece örnekle açıklamak için kullanın. Bir "aaabbbccccdddddd" karakter dizisi varsa, 3 a, 3 b, 4 c, 6 d içerir, bu nedenle "3a3b4c6d" olarak kodlayın.

Açıktır ki, bu kayıpsız kodlamaların sıkıştırmasını en üst düzeye çıkarmak için, verilerin aynı karakterlerin geniş alanları, daha yüksek frekanslı birçok karakter veya birçok benzer karakter gibi belirli özelliklere sahip olduğundan emin olmanız gerekir.

Bundan bahsetmişken, neden bu kadar çok kayıplı işlem yapmanız gerektiğini anlayacağınıza inanıyorum, nedenlerinden biri de kayıpsız sıkıştırmaya uygun verileri elde etmektir.

Normal şartlar altında, bir resimde aslında birçok özdeş veya benzer piksel vardır, bu da arkalarındaki verilerin sıkıştırma için çok fazla alana sahip olduğu anlamına gelir.

JPEG'in amacı bunu yapmak, bu yüzden herkesin anlayabileceğine inanıyorum.

Çok fazla JPEG'den bahsetmişken, HEIF ne olacak?

Endişelenmeyin, JPEG görüntü sıkıştırma yöntemine hakim olduktan sonra, HEIF'in görüntü hacmini nasıl daha fazla sıkıştırdığını anlamak daha kolay olacaktır.

Aslında HEIF tarafından yapılan iş JPEG ile benzerdir ve genel yol benzerdir, ancak bazı detaylarda iyileştirmeler vardır.

Önce basit bir açıklama yapmamız gerekiyor. Aslında, sözde HEIF, resimlerin kapsülleme formatıdır ve esas olarak HEVC adı verilen bir kodlama yöntemi kullanır.

Örneğin, bir resmin bilgisi aslında HEVC kodlama yöntemiyle kodlanır ve ardından kodlanan bilgiler HEIF adı verilen bir kutu (kap) içinde paketlenir.

HEIF kutuyu kodlama yönteminden ayırır, JPEG ayırmaz.

HEIF'in çalışması birçok video formatına çok benzer.Çoğunlukla gördüğümüz MP4, MKV, AVI vb. Video formatları aslında kutunun adı ve kutunun içindeki MPEG-4, H.264 gibi kodlama yöntemidir, H.265 vb.

Görsel-işitsel yazılım bir video dosyasını oynattığında, önce kutuyu açar ve ardından içindeki kodlanmış dosyanın kodunu çözer.

Yukarıda bahsedilen H.265'in HEVC olarak adlandırılan bir adı da vardır.Bu doğru, esas olarak HEIF formatında kullanılan kodlama yöntemidir, bu nedenle bu resim formatı aslında video kodlama yöntemini kullanır.

HEVC'ye ek olarak, HEIF formatı başka kodlama yöntemlerini de kullanabilir, ancak bunlar nadirdir. Kodlama yöntemi ve karşılık gelen son ek adı aşağıdaki gibidir:

Hem Xiaomi Mi 10 hem de iPhone'un HEVC kodlaması kullandığını görüyoruz ve sonek .HEIC.

Öyleyse soru, HEVC'nin kodlama yöntemi hacmi nasıl azaltır?

Aslında iki ana nokta var.

Öncelikle, yukarıdaki girişe göre, JPEG, sıkıştırmalı kodlama için resmi birçok 8 × 8 piksel bloğuna böler.

HEVC kodlama yönteminde, bu piksel bloğunun bölünmesi daha esnektir ve maksimum 64 × 64'e bölünmesine izin verilir ve ardından 64 × 64 piksel bloğunda esnek bir şekilde 32 × 32'ye bölünebilen alt piksel bloklarına bölünebilir. , 16 × 16, 8 × 8 alt bloklar, buna dörtlü birim bölümü denir.

Bunu yapmanın faydaları nelerdir? Cevap, bir resme bakarken, nispeten düz miktarda bilgi içeren bir alan ise, onu bölmek için daha büyük bir piksel bloğu kullanabiliriz ve daha yoğun miktarda bilgi içeren bir alan ise daha küçük bir piksel bloğu kullanabiliriz. Böl.

Gerçek koşullara göre bölünmüş bu kodlama birimi, kodlama verimliliğini büyük ölçüde artırabilir. Özellikle 4K ve diğer yüksek çözünürlüklü, büyük pikselli fotoğraflar için avantajlar daha belirgindir.

HEIF fotoğraflarının dosya boyutu, çoğunlukla bu nedenle azaltılabilir.

İkinci nokta takip ediyor. JPEG'in önceki girişinde, kullandığı çeşitli kayıpsız kodlama yöntemlerinden, yani diferansiyel kodlama, Huffman kodlama ve çalıştırma uzunluğu kodlamasından bahsetmiştik.

Bunlar arasında kodlamadan sonraki veri miktarı açısından en önemlisi iyileştirilebilen Huffman kodlamasıdır.

HEIF standardında, bu kayıpsız kodlama yöntemi esas olarak uyarlanabilir ikili aritmetik kodlamayı kullanır (bundan böyle "aritmetik kodlama" olarak anılacaktır).

Aslında, JPEG zamanın gelişimini takip ettiğinden, aritmetik kodlama JPEG kodlama yöntemine de dahil edilmiştir, ancak esas olarak Huffman kodlamadır.

Huffman kodlaması ile karşılaştırıldığında, aritmetik kodlama, kodlama verimliliğini daha da artırabilir.

Aslında, aritmetik kodlama ilkesi Huffman kodlamasına benzer, her ikisi de verilerdeki farklı karakterlerin olasılığını göz önünde bulundurur ve ardından farklı karakterler için farklı kodlar kullanır.

Aritmetik kodlamanın özgül matematiksel düşüncesi çok güçlüdür, birkaç kelimeyle net bir şekilde açıklamak zordur ve burada genişletmek uygun değildir. Kısaca, aritmetik kodlamanın nihai sonucu çok kısa ama çok uzun bir ondalıktır.

Aritmetik kodlamanın kodlama verimliliğinin Huffman kodlamasından daha yüksek olduğu ve nihayetinde herkese sunulan, aynı fotoğrafın daha küçük bir boyuta sıkıştırılabileceğidir.

Yukarıdakiler temelde HEIF'in resim kalitesini değiştirmeden resmin boyutunu küçültebilmesinin nedenidir.

Son olarak, HEIF hakkında, daha kolay öğrenebileceğiniz bazı daha temel bilgiler vardır. IT House ayrıca Xiaomi'nin HEIF formatındaki resmi makalesini yeniden yayınladı.

HEIF'in tam adı, 2013 yılında Moving Picture Experts Group (MPEG) tarafından başlatılan Yüksek Verimli Görüntü Formatıdır. Önceki JPEG formatına sahip bir organizasyon değil.

HEIF'in ilgili teknolojisinin Nokia'nın teknik personeli tarafından geliştirildiğini belirtmekte fayda var, temelde 2015 yılında tamamlandı ve şimdi Nokia tarafından sürdürülüyor (HEIF resmi web sitesi: buraya tıklayın).

İlginç olan, HEVC'nin anahtar kodlama teknolojisi HEVC ile Huawei'nin ana destekleyicilerden biri olması ve elindeki çok sayıda patentle bu yılın Ocak ayında HEVC Advance patent havuzuna da katıldı.

Elbette, Xiaomi Mi 10, HEIF görüntü formatının kendi güncelliğiyle daha da popülerleşmesini teşvik etmede gerçekten bir rol oynadı.

Her durumda, Xiyuan, HEIF görüntü formatının zorlukların üstesinden gelebileceğini ve mümkün olan en kısa sürede popüler hale gelebileceğini umuyor. Sonuçta, akıllı telefon kameralarının pikselleri 100 milyona ulaşabilir ve cep telefonlarının JPG formatındaki depolama alanı gerçekten dar.

Sonuçta, yalnızca fotoğrafları depolamak istediğiniz için daha fazla depolama alanına sahip bir telefon satın alamazsınız.

referans

  • Çin Üniversitesi MOOC-Yangtze Üniversitesi Açık Kursu, 2019-08-05, "Hareketsiz Görüntü Sıkıştırma Teknolojisi: JPEG Kodlama (Video)".
  • Çin Üniversitesi MOOC-Yangtze Üniversitesi Açık Kursu, 2019-08-05, "Hareketsiz Görüntü Sıkıştırma Teknolojisi: Huffman Kodlaması".
  • Kingsoft Video Cloud, 2017-11-14, "HEIF Formatının Analizi".
  • CSDN-Daguai Yükseltme, 2018-11-29, "H.264 ve H.265 (HEVC) Derin Analizi ve Karşılaştırması".
National Bank Nintendo Switchin yeni oyunları ertelendi, netizenler 315 şikayeti tehdit etti
önceki
Renk uyumu çok "e-spor": Nubia Red Devils 5G oyun cep telefonu Sanayi ve Bilgi Teknolojileri Bakanlığı kimlik fotoğrafları açıklandı
Sonraki
Salgın 0227'den bahsetmişken: Hubei olmayan bölgelerde anormal toparlanma, denizaşırı yeni vakalar ilk kez yurtiçi vakaları aştı
KWG Pacific'in 25. Yıl Dönümü Hediyeleri İyi Ev Sezonu Sıcak Kalp Hediyeleri Altı Büyük Fayda
Huawei Mate Xs piyasaya sürüldü: yeni menteşe + Kirin 9905G, en iyi katlanabilir ekran deneyimini getiriyor
iQOO 3 cep telefonu tushang: çift modlu 5G performans amiral gemisi
Salgın hastalık sayısı 0226: Wuhan dışındaki yeni vakalar azalmaya devam ediyor ve vakalar 33 denizaşırı ülkede görülüyor
iQOO 3 cep telefonu değerlendirmesi: "Performans ilk verimlilik olduğunda"
Baseus, dünyanın en küçük 120W galyum nitrür + silisyum karbür şarj cihazını piyasaya sürdü
Salgın 0225'ten bahsetmişken: Hubei olmayan bölgedeki yeni vakalar tek haneye düştü, Wuhan dalgalandı
3598 yuan'dan 4398 yuan'a kadar iQOO 3 resmi olarak piyasaya sürüldü: Qualcomm Snapdragon 865 ile donatılmış
İşe devam etmek için Wuxi'nin ilk özelleştirilmiş yüksek hızlı treni geldi! 330 kişi "nezaket" aldı
Ördek! 100.000 Ördek Lejyonu bunu yapmak için Pakistan'a gitti! Konsept hisse senedi spekülasyonu geri dönüş yapabilir mi?
Salgın altında tüketici ikmalini nasıl teşvik edebilirim: tüketici kuponları vermek
To Top