libjpeg-turbo orijinal libjpeg kütüphane yazılımı yüksek hızlı versiyonu, özellikle SIMD kullanmak x86 ve x86-64 işlemciler için hazırlanmış sağlamak için tasarlanmış bir açık kaynak, çapraz platform ve tamamen ücretsiz bir yazılım (bir tek Talimat gibi SSE2, MMX ve NEON olarak Çoklu Veri) talimatları, bazal JPEG dekompresyon ve sıkıştırma hızlandırmak için.
Son derece hızlı bir JPEG görüntü codec'i
Yazılım libjpeg değiştirilmemiş sürümü daha genel 2-4x hızlı, son derece hızlı JPEG görüntü codec. Proje başlangıçta Miyasaka Masaru tarafından oluşturulan libjpeg / SIMD projesi dayanmaktadır.
Geleneksel libjpeg API uygular
libjpeg kütüphane Bu turbo versiyonu da geleneksel libjpeg API yanı sıra basit TurboJPEG API uygular. Kullanıcıların gelen sıkıştırmak veya big-endian ve 32-bit piksel tamponlar (XBGR, RGBX, vb) ve tam özellikli bir Java arabirimi. Için sıkıştırmasını sağlar colorspace uzantıları, özellikleri
DEB için yerel montajcılar ve RPM tabanlı işletim sistemleri olarak dağıtılan
Size kolaylık sağlamak için, yazılım hem destekleyen, vb Debian, Ubuntu, Linux Mint, Fedora, CentOS, Red Hat Enterprise Linux, openSUSE, Mageia olarak DEB için yerli montajcılar ve RPM tabanlı işletim sistemleri, olarak dağıtılır 64 ve 32-bit donanım platformları.
libjpeg-turbo başlarken
libjpeg-turbo proje kolayca bir GNU / Linux dağıtımı ana yazılım depolarından kurulabilir. Aynı zamanda otomatik olarak gerektiren herhangi bir yazılım ile birlikte kurulacaktır.
donanım mimarisi / işletim sistemi, indirmek için optimize ve Softoware son arşiv kaydetmek, bir arşiv yöneticisi yardımcı programını kullanarak içeriğini ayıklamak, Terminal uygulamasını açmak istiyorum el durumda, kaynak paketini kullanarak yüklemek için ve çıkarılan arşiv dosyasının konuma gidin (örneğin cd / home / softoware / libjpeg-turbo).
./ Configure && make & rsquo;
Daha sonra, & lsquo koşmak; Komut yapılandırmak ve ardından program derlemek & lsquo; sudo install & rsquo yapmak; commad geniş o sistemi kurmak ve tüm uygulamalar için kullanılabilir hale getirmek için
Bu sürümdeki yeni Nedir:.
- < li> OS X PowerPC platformlarında bir yapı sorunu düzeltildi (md5cmp OS X le32toh () ve htole32 () işlevleri. sağlamaz, çünkü inşa başarısız).
- olmayan SIMD RGB565 renk dönüşüm kod big endian makinelerde doğru işe yaramadı. Bu sabit olmuştur.
- Componentıd oldu & gt eğer yanlışlıkla 1 -1 yerine dönecekti sayede tjPlaneSizeYUV () bir sorunu düzeltildi; 0 ve subsamp TJSAMP_GRAY oldu.
- genişlik oldu ve lt eğer yanlışlıkla -1 yerine 0 dönecekti wherby tjBufSizeYUV2 () bir sorun düzeltildi; 1.
- Huffman kodlayıcı şimdi biraz ARM64 platformlarda sayılması için CLZ ve BSR talimatları kullanır.
- TJCompressor ve TJDecompressor Java sınıfları close () yöntemi artık İdempotent edilir. Daha önce, bu yöntem TurboJPEG örneği zaten tahrip edilmiş olsa bile yerli tjDestroy () işlevini çağırır. Bu close () yöntemini zaten denilen olsaydı bir istisna, sonuçlandırılması sırasında atılan neden oldu. özel durum yakalandı, ama yine de pahalı bir operasyon oldu.
- TurboJPEG API önce bir hata oluşturdu (1 dışında bir örnekleme faktörü ile sıkıştırılan gri tonlu JPEG görüntüleri sıkıştırmasını çalışırken, örneğin, cjpeg -grayscale 'ile - örnek 2x2 '). teknik Subsampling gri tonlama JPEG hiçbir anlamı yoktur ve bu nedenle bu tür görüntüler için yatay ve dikey örnekleme faktörleri açıcı tarafından göz ardı edilir. Ancak, TurboJPEG API çok katı ediliyordu ve bir gri tonlu JPEG gibi görüntü tedavi öncesi 1'e eşit olması için örnekleme faktörleri bekliyordum.
- cjpeg, djpeg ve jpegtran şimdi kütüphane sürümü ve çıkış basacaktır -version bir argüman, kabul edin.
- 1.4 beta1 [15] değinen bir başka son derece nadir bir durum Huffman kodlayıcının yerel tampon tamponlu hedef yöneticisi kullanıldığında taşması ve son derece yüksek frekanslı bloğu (temelde önemsiz görüntü verileri) 'dir edilebilir altında keşfedildi kodlanmış. Huffman yerel tampon önceki sorunu gidermek için 136 bayt 128 byte çıkarıldı olsa da, yeni bir konu bile istila edilmesi büyük bir arabellek neden oldu. Daha fazla analiz ortaya koyuyor ki mutlak kötü durumda (örneğin JPEG tarama amacıyla 32767 ve -32768 için alternatif AC katsayıları ayarlama gibi), kodlanmamış blokların çift boyutu yaklaşım kodlanmış blok üretebilir Huffman kodlayıcı. Böylece, Huffman yerel tampon gelecekte yeniden meydana gelen bu tür sorunu önlemek gerekir 256 bayt, yükseltildi.
- Yeni tjPlaneSizeYUV (), tjPlaneWidth (), ve tjPlaneHeight () işlevleri, OS X ve Windows dışında herhangi bir platformda aslında kullanışlı değildi. Bu sabit olmuştur.
- libjpeg-turbo başlık dosyalarında JPP (), JMETHOD () ve FAR makro restore. JPP () ve JMETHOD () makro aslında prototip parametreleri için desteğinden yoksun ANSI olmayan derleyiciler destekleyen bir yolu olarak libjpeg uygulanmıştır. libjpeg-turbo gibi derleyiciler desteklenen olmamıştı, ancak bazı yazılım paketleri hala kendi prototiplerini tanımlamak için makro kullanabilirsiniz. Benzer şekilde, libjpeg-turbo MS-DOS ve uzak sembolleri olan diğer destekli platformlar olmamıştı, ancak bazı yazılım paketleri hala FAR makro kullanın. Oldukça iyi bir argüman bu söz konusu yazılımın parçası üzerinde kötü bir uygulamadır, ancak bu birden fazla paket etkilediği, burada bunu düzeltmek için sadece daha kolay olduğunu yapılabilir.
- Sabit konular & quot; resmi & quot; OS X için libjpeg-turbo SDK.
(; JPEG görüntüsü & quot için subsampling türünü belirlemek olamazdı; & quot)
bu fonksiyonlar libturbojpeg mapfile dahil değildi çünkü
iOS için derleme gelen ARM 64 bit SIMD kodu önlenmesi ve yüklü çiftlerin her bir ARMv8 mimari alındı
sürüm 1.4.2 yeni Nedir:
- OS X PowerPC platformlarında bir yapı sorunu düzeltildi ( md5cmp OS X le32toh () ve htole32 () işlevleri.) sağlamaz, çünkü inşa etmek için başarısız oldu.
- olmayan SIMD RGB565 renk dönüşüm kod big endian makinelerde doğru işe yaramadı. Bu sabit olmuştur.
- Componentıd oldu & gt eğer yanlışlıkla 1 -1 yerine dönecekti sayede tjPlaneSizeYUV () bir sorunu düzeltildi; 0 ve subsamp TJSAMP_GRAY oldu.
- genişlik oldu ve lt eğer yanlışlıkla -1 yerine 0 dönecekti wherby tjBufSizeYUV2 () bir sorun düzeltildi; 1.
- Huffman kodlayıcı şimdi biraz ARM64 platformlarda sayılması için CLZ ve BSR talimatları kullanır.
- TJCompressor ve TJDecompressor Java sınıfları close () yöntemi artık İdempotent edilir. Daha önce, bu yöntem TurboJPEG örneği zaten tahrip edilmiş olsa bile yerli tjDestroy () işlevini çağırır. Bu close () yöntemini zaten denilen olsaydı bir istisna, sonuçlandırılması sırasında atılan neden oldu. özel durum yakalandı, ama yine de pahalı bir operasyon oldu.
- TurboJPEG API önce bir hata oluşturdu (1 dışında bir örnekleme faktörü ile sıkıştırılan gri tonlu JPEG görüntüleri sıkıştırmasını çalışırken, örneğin, cjpeg -grayscale 'ile - örnek 2x2 '). teknik Subsampling gri tonlama JPEG hiçbir anlamı yoktur ve bu nedenle bu tür görüntüler için yatay ve dikey örnekleme faktörleri açıcı tarafından göz ardı edilir. Ancak, TurboJPEG API çok katı ediliyordu ve bir gri tonlu JPEG gibi görüntü tedavi öncesi 1'e eşit olması için örnekleme faktörleri bekliyordum.
- cjpeg, djpeg ve jpegtran şimdi kütüphane sürümü ve çıkış basacaktır -version bir argüman, kabul edin.
- 1.4 beta1 [15] değinen bir başka son derece nadir bir durum Huffman kodlayıcının yerel tampon tamponlu hedef yöneticisi kullanıldığında taşması ve son derece yüksek frekanslı bloğu (temelde önemsiz görüntü verileri) 'dir edilebilir altında keşfedildi kodlanmış. Huffman yerel tampon önceki sorunu gidermek için 136 bayt 128 byte çıkarıldı olsa da, yeni bir konu bile istila edilmesi büyük bir arabellek neden oldu. Daha fazla analiz ortaya koyuyor ki mutlak kötü durumda (örneğin JPEG tarama amacıyla 32767 ve -32768 için alternatif AC katsayıları ayarlama gibi), kodlanmamış blokların çift boyutu yaklaşım kodlanmış blok üretebilir Huffman kodlayıcı. Böylece, Huffman yerel tampon gelecekte yeniden meydana gelen bu tür sorunu önlemek gerekir 256 bayt, yükseltildi.
- Yeni tjPlaneSizeYUV (), tjPlaneWidth (), ve tjPlaneHeight () işlevleri, OS X ve Windows dışında herhangi bir platformda aslında kullanışlı değildi. Bu sabit olmuştur.
- libjpeg-turbo başlık dosyalarında JPP (), JMETHOD () ve FAR makro restore. JPP () ve JMETHOD () makro aslında prototip parametreleri için desteğinden yoksun ANSI olmayan derleyiciler destekleyen bir yolu olarak libjpeg uygulanmıştır. libjpeg-turbo gibi derleyiciler desteklenen olmamıştı, ancak bazı yazılım paketleri hala kendi prototiplerini tanımlamak için makro kullanabilirsiniz. Benzer şekilde, libjpeg-turbo MS-DOS ve uzak sembolleri olan diğer destekli platformlar olmamıştı, ancak bazı yazılım paketleri hala FAR makro kullanın. Oldukça iyi bir argüman bu söz konusu yazılımın parçası üzerinde kötü bir uygulamadır, ancak bu birden fazla paket etkilediği, burada bunu düzeltmek için sadece daha kolay olduğunu yapılabilir.
- Sabit konular & quot; resmi & quot; OS X için libjpeg-turbo SDK.
(; JPEG görüntüsü & quot için subsampling türünü belirlemek olamazdı; & quot)
bu fonksiyonlar libturbojpeg mapfile dahil değildi çünkü
iOS için derleme gelen ARM 64 bit SIMD kodu önlenmesi ve yüklü çiftlerin her bir ARMv8 mimari alındı
1.4.0 sürümü içinde yeni Nedir:
- OS X PowerPC platformlarında bir yapı sorunu düzeltildi ( md5cmp OS X le32toh () ve htole32 () işlevleri.) sağlamaz, çünkü inşa etmek için başarısız oldu.
- olmayan SIMD RGB565 renk dönüşüm kod big endian makinelerde doğru işe yaramadı. Bu sabit olmuştur.
- Componentıd oldu & gt eğer yanlışlıkla 1 -1 yerine dönecekti sayede tjPlaneSizeYUV () bir sorunu düzeltildi; 0 ve subsamp TJSAMP_GRAY oldu.
- genişlik oldu ve lt eğer yanlışlıkla -1 yerine 0 dönecekti wherby tjBufSizeYUV2 () bir sorun düzeltildi; 1.
- Huffman kodlayıcı şimdi biraz ARM64 platformlarda sayılması için CLZ ve BSR talimatları kullanır.
- TJCompressor ve TJDecompressor Java sınıfları close () yöntemi artık İdempotent edilir. Daha önce, bu yöntem TurboJPEG örneği zaten tahrip edilmiş olsa bile yerli tjDestroy () işlevini çağırır. Bu close () yöntemini zaten denilen olsaydı bir istisna, sonuçlandırılması sırasında atılan neden oldu. özel durum yakalandı, ama yine de pahalı bir operasyon oldu.
- TurboJPEG API önce bir hata oluşturdu (1 dışında bir örnekleme faktörü ile sıkıştırılan gri tonlu JPEG görüntüleri sıkıştırmasını çalışırken, örneğin, cjpeg -grayscale 'ile - örnek 2x2 '). teknik Subsampling gri tonlama JPEG hiçbir anlamı yoktur ve bu nedenle bu tür görüntüler için yatay ve dikey örnekleme faktörleri açıcı tarafından göz ardı edilir. Ancak, TurboJPEG API çok katı ediliyordu ve bir gri tonlu JPEG gibi görüntü tedavi öncesi 1'e eşit olması için örnekleme faktörleri bekliyordum.
- cjpeg, djpeg ve jpegtran şimdi kütüphane sürümü ve çıkış basacaktır -version bir argüman, kabul edin.
- 1.4 beta1 [15] değinen bir başka son derece nadir bir durum Huffman kodlayıcının yerel tampon tamponlu hedef yöneticisi kullanıldığında taşması ve son derece yüksek frekanslı bloğu (temelde önemsiz görüntü verileri) 'dir edilebilir altında keşfedildi kodlanmış. Huffman yerel tampon önceki sorunu gidermek için 136 bayt 128 byte çıkarıldı olsa da, yeni bir konu bile istila edilmesi büyük bir arabellek neden oldu. Daha fazla analiz ortaya koyuyor ki mutlak kötü durumda (örneğin JPEG tarama amacıyla 32767 ve -32768 için alternatif AC katsayıları ayarlama gibi), kodlanmamış blokların çift boyutu yaklaşım kodlanmış blok üretebilir Huffman kodlayıcı. Böylece, Huffman yerel tampon gelecekte yeniden meydana gelen bu tür sorunu önlemek gerekir 256 bayt, yükseltildi.
- Yeni tjPlaneSizeYUV (), tjPlaneWidth (), ve tjPlaneHeight () işlevleri, OS X ve Windows dışında herhangi bir platformda aslında kullanışlı değildi. Bu sabit olmuştur.
- libjpeg-turbo başlık dosyalarında JPP (), JMETHOD () ve FAR makro restore. JPP () ve JMETHOD () makro aslında prototip parametreleri için desteğinden yoksun ANSI olmayan derleyiciler destekleyen bir yolu olarak libjpeg uygulanmıştır. libjpeg-turbo gibi derleyiciler desteklenen olmamıştı, ancak bazı yazılım paketleri hala kendi prototiplerini tanımlamak için makro kullanabilirsiniz. Benzer şekilde, libjpeg-turbo MS-DOS ve uzak sembolleri olan diğer destekli platformlar olmamıştı, ancak bazı yazılım paketleri hala FAR makro kullanın. Oldukça iyi bir argüman bu söz konusu yazılımın parçası üzerinde kötü bir uygulamadır, ancak bu birden fazla paket etkilediği, burada bunu düzeltmek için sadece daha kolay olduğunu yapılabilir.
- Sabit konular & quot; resmi & quot; OS X için libjpeg-turbo SDK.
(; JPEG görüntüsü & quot için subsampling türünü belirlemek olamazdı; & quot)
bu fonksiyonlar libturbojpeg mapfile dahil değildi çünkü
iOS için derleme gelen ARM 64 bit SIMD kodu önlenmesi ve yüklü çiftlerin her bir ARMv8 mimari alındı
sürüm 1.3.0 yeni Nedir:
- [1] 'yapmak testi' artık düzgün çalışıyor FreeBSD üzerinde ve artık diğer Un * x platformlarında mevcut olması md5sum yürütülebilir gerektirir.
- [2] paketleme sistemi Revizyonlu: - satıcı tarafından sağlanan libjpeg-turbo paketleri ile çakışmasını önlemek için, libjpeg-turbo resmi RPM ve Debs & quot değiştirildi edilmiştir; libjpeg-turbo resmi & quot ;. - TurboJPEG kütüphaneler artık satıcı tarafından sağlanan paketleri ile çakışmasını önlemek için, resmi Linux ve Mac paketleri / opt / libjpeg-turbo altında bulunur ve aynı zamanda paketleme sistemi düzene. - Yayın paketleri şimdi yapılandırmak değişkenleri & quot tarafından tanımlanan dizin yapısı ile oluşturulur; önek quot & quot ;, &; quot ;, quot bindir & &; libdir ;, vb (Un * x) veya CMAKE_INSTALL_PREFIX değişkeni tarafından (Windows). Istisna quot & docs hep Un * x ve Mac sistemleri ve Windows sistem varsayılan dokümantasyon dizini altında yer aldığını, TurboJPEG DLL her zaman Windows sistem dizininde bulunur. - Her zaman / opt / libjpeg-turbo / lib32 32-bit kütüphaneleri ve 64-bit kütüphaneleri içinde / opt / libjpeg- kuracak (Mac için hariç), Linux / Unix platformlarında karışıklığı, resmi libjpeg-turbo paketlerini önlemek için turbo / lib64. - Bazı durumlarda, Un * x sistemlerde libjpeg-turbo yürütülebilir düzgün aynı pakette tarafından yüklenen paylaşılan kütüphaneleri ile bağlama değildi sayede, bir sorun düzeltildi. yükleyici & quot; - & quot bina sayede bir sorunu düzeltildi; TurboJPEG JAR önce inşa olmasaydı WITH_JAVA = 1 başarısız ne zaman Windows hedef. - Bina & quot; yüklemek & quot; Windows hedef şimdi yükleyici yok aynı yerlere dosyaları yükler.
- [3] düzgün çalışmıyor I / O süspansiyon engelleyen bir Huffman kodlayıcı hata düzeltildi.
sürüm 1.2.0 yeni Nedir:
- Unix sistemleri üzerinde YASM kullanırken bir yapı sorunu ile karşılaştı tespit edildi.
- SSE2 SIMD kodu okuma bir out-of-sınırları tespit edildi.
- uygulamalar eklendi açılırken 4 baytlık RGB tampon kullanılmayan bayt alfa kanalı olarak ele alınması gerektiğini belirtmek için izin Yeni colorspace uzatma sabitleri.
- regresyon sorunu ile karşılaştı.
- iOS desteği Mac için libjpeg-turbo SDK eklendi.
sabit libjpeg-turbo şeytan oluştururken
nedir sürümü Yeni 1.1 Beta 1:
- turbo libjpeg libjpeg taklit etmek inşa edilebilir v7 veya v8b API / ABI.
- , Windows inşa sistemi artık CMake kullanır.
- TurboJPEG / OSS şimdi gri tonlama bitmaplere sıkıştırması / dan sıkıştırmak ve YUV düzlemsel çıkışı RGB veya JPEG görüntüleri dönüştürebilirsiniz.
- jpgtest mevcut JPEG görüntüleri ile dekompresyon performansını test etmek için kullanılır.
- İsteğe bağlı aritmetik kodlama ve kod çözme desteği eklendi.
- Daha korumaları geçersiz Huffman kodları karşı ilave edildi.
Hangi sürümü 1.0.0 Yeni:.
- Daha fazla FreeBSD üzerinde iyileştirmeler inşa
- Unix / Linux paketleri artık çalışma zamanı libjpeg programları (cjpeg, vb) ve adam sayfaları içerir.
- amd64 Debian sistemler için 32-bit ek paketi yok.
- Cygwin desteği.
- x86 dışındaki mimarileri üzerinde bina / test için tam destek.
- 64-bit OS X ikili artık OS X 10.4. ile geriye dönük uyumludur
- Çeşitli Linux ambalaj tweaks vardır.
Hangi sürümü 0.0.91 yeni
- paketleri Deb eklendi belgeler
- Sabit veri bozulmalarını sorunları büyük JPEG görüntüleri açılıyor ve / veya libjpeg-turbo açıcı tamponlu I / O kullanırken
Yorum Bulunamadı