aspose.info
AZ

FLIF fayl formasıat

Yeniləndi

FLIF faylı nədir?

FLIF (Free Lossless Image Format) faylları üçün .flif uzantısından istifadə edən itkisiz şəkil formatıdır. FLIF sıxılma nisbətinə görə PNG, itkisiz WebP, itkisiz BPG və itkisiz JPEG 2000-dən üstün olduğunu iddia edir. FLIF mütərəqqi interlacing-dən istifadə edir, buna görə şəklin istənilən qismən endirilməsi bütün təsvir üçün itkili kodlaşdırma kimi istifadə edilə bilər.

Qısa tarix

FLIF was announced in September 2015, and the alpha version was released in October 2015. 2016-cı ilin sentyabrında FLIF-in ilk stabil versiyası buraxıldı.

FLIF Dizayn

FLIF sıxılma üçün CABAC (Context-adaptive binar arifmetic coding), MANIAC (Meta-Adaptive Near-zero Integer Arithmetic Coding) variantından istifadə edir. MANIAC Jon Sneyers və Pieter Wuille tərəfindən hazırlanmış entropiya kodlaşdırma alqoritmidir. MANIAC-da kontekstlər dinamik kodlaşdırma zamanı öyrənilən qərar ağaclarının qovşaqlarıdır. Bu, kontekst modelini daha çox təsvirə xas edir və daha yaxşı sıxılma ilə nəticələnir. FLIF aşağıdakı xüsusiyyətlərə malikdir:

  • İtkisiz sıxılmanı dəstəkləyir
  • Kodlayıcının əvvəlcədən işlənməsi ilə itkili sıxılmanı dəstəkləyir
  • Greyscale, RGB və RGBA dəstəkləyir
  • Kanal başına 1 ilə 16 bit rəng dərinliyini dəstəkləyir
  • İnterlaced və qeyri-interlaced faylları dəstəkləyir
  • Qismən yüklənmiş faylların mütərəqqi dekodlanmasını dəstəkləyir
  • Animasiyalar dəstəkləyir
  • Daxili ICC rəng profillərini, Exif və XMP metadatasını dəstəkləyir
  • Kamera xam fayllarını sıxmaq üçün məhdud dəstəyə malikdir (RGGB)

FLIF Fayl Formatı

FLIF faylı aşağıdakı dörd hissədən ibarətdir:

Əsas başlıq

Əsas başlıq genişlik, hündürlük, rəng dərinliyi, çərçivələrin sayı daxil olmaqla əsas metadatadan ibarətdir.

NövDəyərTəsvir
4 baytFLIFSehrli
4 bit3 = ni still; 4 = mən hələ də; 5 = ni anim; 6 = i animBir-birinə keçid, animasiya
4 bit1 = Boz rəng; 3 = RGB; 4 = RGBAKanalların sayı (nb_channels)
1 bayt‘0’,‘1’,‘2’ (‘0’=xüsusi)Kanal başına bayt (Bpc)
varinten-1Eni
varinthündürlük-1Hündürlük
varintnb_frames-2 (yalnız animasiya olduqda)Kadrların sayı (nb_frames)

Metadata parçaları

Bu hissə Exif/XMP metadatası, ICC rəng profili və s. kimi qeyri-pikselləri ehtiva edir və DEFLATE sıxılma ilə kodlanır. Bu hissələr PNG parçaları ilə eyni şəkildə müəyyən edilir, fərq, çubuq ölçüsünün dəyişən bayt sayı ilə kodlanmasıdır. Parçaların adları 4 hərf (4 bayt) və ya 32-dən aşağı dəyər ola bilər ki, bu da isteğe bağlı olmayan yığını göstərir.

Aşağıda isteğe bağlı çəngəllərin nümunəsi verilmişdir:

Bölmə adıTəsvirMəzmun (DEFLATE-dekompressiyadan sonra)
iCCPICC rəng profilixam ICC rəng profili datası
eXifExif metadataExif\0\0 başlığı, ardınca TIFF başlığı və EXIF datası
eXmpXMP metadataXMP doldurulması olmayan yalnız oxuna bilən xpacket daxilindədir

Ad Konvensiyası

  • İlk hərf: Böyük hərf kritik, kiçik hərf isə qeyri-kritik parçalar üçün istifadə olunur.
  • İkinci Hərf: Böyük hərf ictimai, kiçik hərf isə şəxsi parçalar üçün istifadə olunur
  • Üçüncü Hərf: Şəkli düzgün göstərmək üçün lazım olan böyük hərflər üçün istifadə olunur və şəkli göstərmək üçün kiçik hərf vacib deyil.
  • Dördüncü Hərf: Böyük hərf kor-koranə şəkildə kopyalana bilən çubuqlar üçün istifadə olunur. Kiçik hərflər şəkil məlumatlarından asılıdır.

İkinci başlıq

Bu, piksellərin faktiki kodlaşdırılması ilə bağlı məlumatları ehtiva edir.

NövTəsvirŞərtDefolt dəyər
1 baytNUL bayt (0x00), FLIF16 bit axınının yığın adı
uni_int(1,16)Kanalların piksel başına bitBpc == ‘0’: təkrar(nb_channels)8 əgər Bpc == ‘1’, 16 əgər Bpc == ‘2’
uni_int(0,1)Bayraq: alpha_zeronb_channels > 30
uni_int(0,100)Dövrələrin sayınb_çərçivə > 1
uni_int(0,60_000)ms-də çərçivə gecikməsinb_frames > 1: təkrar(nb_frames)
uni_int(0,1)Bayraq: has_custom_cutoff_and_alpha
uni_int(1,128)kəsməxüsusi_kesmə_və_alfa2
uni_int(2,128)alfa bölücüxüsusi_cutoff_and_alpha19
uni_int(0,1)Bayraq: has_custom_bitchancehas_custom_cutoff_and_alpha0
?Bitchancexüsusi_bitchance
dəyişənTransformasiyalar (aşağıya bax)
uni_int(1) = 0Göstərici bit: çevrilmələrlə tamamlandı
uni_int(0,2)Görünməz piksel proqnozlaşdırıcısıalpha_zero && interlaced && alfa diapazonuna sıfır daxildir

Kanallar

Kanal nömrəsiTəsvir
0Qırmızı və ya Boz
1Yaşıl
2Mavi
3Alfa

Çevrilmələr

NövTəsvir
uni_int(1) = 1Göstərici bit: hələ tamamlanmayıb
uni_int(0,13)Transformasiya identifikatoru
dəyişənTransformasiya məlumatları (transformasiyadan asılıdır)

Transformasiya daha yaxşı sıxılma üçün piksel məlumatlarını dəyişdirmək və əslində baş verən piksel dəyərlərini izləmək üçün istifadə olunur.

Piksel Data

Bu hissə MANIAC entropiya kodlaşdırmasından istifadə edərək kodlanmış faktiki piksel məlumatlarını ehtiva edir. Piksellər interlaced və ya qeyri-interlaced kodlaşdırma ilə kodlaşdırıla bilər.

Keçidilmiş üsul

In this method, zoomlevels are defined. Zoomlevel 0 is used for the full image, zoomlevel 1 is used for all even-numbered rows, zoomlevel 2 is used for all even-numbered columns of zoomlevel 1. Başqa sözlə, hər cüt nömrəli böyütmə səviyyəsi 2k təsvirin 1:2^k miqyasında aşağı nümunəli versiyasıdır. Böyütmə səviyyələri ən yüksəkdən ən aşağıya doğru kodlanır.

Bir-birinə qarışmayan üsul

Bu üsulda MANIAC ağaclarının kodlaşdırılması dərhal piksellərin kodlaşdırılması ilə başlayır.

İstinadlar

Həmçinin bax