HEIF: Czym jest „nowy format graficzny” w iOS 11?
Podczas wczorajszego otwarcia WWDC Apple zapowiedział, że w systemie iOS 11 zastosowany zostanie format HEIF do zapisu grafiki. Pełna nazwa formatu to High Efficiency Image File Format, a jego zastosowanie ma pozwolić nam robić więcej zdjęć. Zapis obrazu z użyciem tego formatu ma pozwolić na zachowanie więcej miejsca na urządzeniu bez straty jakości, zarówno względem JPG, jak i animowanych GIF-ów. W przypadku tych drugich HEIF (pliki z rozszerzeniem HEIC) wypada o wiele lepiej.
06.06.2017 17:47
Zacząć należy od tego, że HEIF nie jest nowy. Specyfikacja i wymagania zostały określone w 2013 roku, implementacja w 2015. Kontener ten to nic innego jak MPEG Part 12, który może zawierać nie tylko podstawowy obraz, ale też animacje i serie zdjęć, co czyni go bardzo przydatnym dla cyfrowej fotografii. HEIF może przechowywać kilka obrazów, wraz z miniaturami, serie (burst photos) robione w krótkich odstępach czasowych, zdjęcia razem z filmami i zsynchronizowanymi napisami, animacje, kinografiki (zdjęcia, na których poruszają się drobne elementy), obrazy stereoskopowe, serie ze zmienną głębią ostrości lub ogniskową do późniejszej obróbki, a nawet różne wersje tego samego obrazu po niedestruktywnej obróbce, z maskowaniem i efektami.
Kontener ten daje ogromne możliwości, a przy tym przechowuje zdjęcia i filmy w taki sposób, by nie zajmowały wiele miejsca. Porządkowanie zdjęć także będzie łatwiejsze, ponieważ w jednym kontenerze można będzie zapisać kilka zdjęć i łatwo udostępnić na przykład wszystkie zdjęcia z jakiegoś wydarzenia w jednym pliku, który nie wymaga rozpakowywania. Co więcej, można łatwo konwertować animowane obrazy na filmy, co zaciera granicę między obrazem, animacją i filmami, w przypadku smartfonowej fotografii zupełnie zbędną.
W kwestii kompresji także mamy ogromną wolność działania. Obrazy kodowane są z użyciem kodeka HEVC, który pozwala skompresować pełnowymiarowy obraz stratnie lub bezstratnie, a przy tym zachowana zostanie miniatura w formacie JPEG na potrzeby wyświetlania na ekranie. Ułatwi to zachowanie kompatybilności z oprogramowaniem i sprzętem, których producenci niekoniecznie chcą inwestować w licencję na kodek HEVC. Kolejną zaletą tego kontenera jest możliwość rozszerzania go o obsługę kolejnych kodeków, łącznie z VP9, WebP i WebM, jeśli zajdzie taka potrzeba. Metadane tez można zapisywać w różnych formatach: EXIF, XMP i MPEG-7. Podstawowym formatem kontenera jest ISOBMFF (ISO base media file format), opracowany przez MPEG z myślą o wymianie, prezentacji (także streamingu) i edycji multimediów. Format ten zawiera informacje o relacjach w czasie i strukturze multimediów i jest zorientowany obiektowo, dzięki czemu można go łatwo „rozłożyć” na mniejsze elementy.
Dla smartfonowych fotografów ważne będzie również to, że kontener pozwala na kadrowanie i obracanie zdjęć bez ponownego kodowania, a więc szybko i oszczędnie. Framework można rozszerzyć o możliwości niedestruktywnej edycji i zapewne Apple zaimplementuje takie możliwości w swoich programach do obróbki zdjęć.
Zastosowanie kontenera HEIF pozwala przede wszystkim na ogromną elastyczność w robieniu zdjęć, ale będzie można też zaoszczędzić trochę miejsca na iPhonie. Porównanie jakości animacji i statycznych obrazów z formatem JPG można znaleźć na GitHubie. Szczególnie korzystnie prezentują się animacje zapisane w kontenerze HEIF, w porównaniu do GIF-ów. Na GitHubie można zobaczyć je w akcji, gdyż na stronie został zaimplementowany skrypt wyświetlający kolejne ramki z kontenera. Nie wymaga to instalacji żadnych dodatków po stronie użytkownika.
Na obrazach nieruchomych, zapisanych w kontenerze HEIF, także można trochę zaoszczędzić. Co ważne, przy podobnym rozmiarze co plik JPG, będą miały nieco lepszą jakość i mniej kwadratowych artefaktów. Wynika to oczywiście ze sposobu kompresji obrazu.
Możliwość umieszczania w jednym kontenerze filmów i obrazu, wraz z wyborem, co ma być wyświetlane i w jaki sposób, daje ogromne pole do popisu także w mediach społecznościowych. Poniżej widać przykład wyświetlania pliku, który zawiera serię zdjęć i film, a także pozwala wybrać jeden z obrazów do prezentacji. Więcej takich przykładów znajdziecie na stronie.
Obrazy zapisane w kontenerach HEIF mają jeszcze jedną zaletę, jeśli zostaną zastosowane na stronach internetowych i jako elementy interfejsu aplikacji. Dzięki możliwości zapisywania w jednym pliku o relatywnie małym rozmiarze różnych obrazów mogą znacząco przyspieszyć ładowanie się stron i zredukować liczbę potrzebnych do prawidłowej pracy plików. Możliwe jest bowiem wykorzystanie kontenerów do zachowywania różnych elementów graficznych stron i wybieranie, które zostaną wyświetlone. Można też skorzystać z możliwości edycji albo maskowania, a nawet wyświetlać kilka zdjęć z jednego pliku obok siebie. Możliwości jest mnóstwo i tylko od autorów oprogramowania zależy, jak pozwolą nam je wykorzystać.
Trzeba też zaznaczyć, że kontener nie jest pomysłem Apple'a. Został opracowany przez Moving Pictures Experts Group (MPEG). Przykładowa implementacja, którą znajdziemy na GitHubie, została opracowana przez Nokia Technologies.
Jeśli macie ochotę samodzielnie przetestować możliwości kontenera, możecie skompilować enkoder i porównać wyniki na własnych zdjęciach i filmach.