libjpeg-turbo

Software screenshot:
libjpeg-turbo
Dettagli del software:
Versione: 1.4.90 Aggiornato
Data di caricamento: 10 Mar 16
Sviluppatore: D. R. Commander
Licenza: Libero
Popolarità: 68

Rating: nan/5 (Total Votes: 0)

libjpeg-turbo è un open source, cross-platform e software completamente gratuito progettato per fornire una versione ad alta velocità del software originale biblioteca libjpeg, appositamente realizzato per x86 e x86-64 processori, che utilizzano SIMD ( single Instruction, multiple) le istruzioni di dati, come ad esempio SSE2, MMX e neon, per accelerare la decompressione della linea di base JPEG e compressione.


Un codec JPEG immagine estremamente veloce

Il software è estremamente veloce JPEG immagine codec che è generalmente 2-4x più veloce rispetto alla versione non modificata del libjpeg. Il progetto è stato originariamente basato sul progetto libjpeg / SIMD creato da Miyasaka Masaru.


Implementa la tradizionale API libjpeg

Questa versione turbo della libreria libjpeg implementa anche la tradizionale API libjpeg, nonché la semplice API TurboJPEG. È dotato di estensioni spazio colore, che permette agli utenti di comprimere o decomprimere da al big-endian e 32 bit buffer pixel (XBGR, RGBX, ecc), e un'interfaccia full-optional Java.


Distribuito come installazione nativi per DEB e RPM sistemi operativi basati su

Per la vostra comodità, il software è distribuito come installazione nativi per i DEB e sistemi operativi basati su RPM, come Debian, Ubuntu, Linux Mint, Fedora, CentOS, Red Hat Enterprise Linux, openSUSE, Mageia, ecc, supportando sia 64 e 32-bit piattaforme hardware.


Iniziare con libjpeg-turbo

Il progetto libjpeg-turbo può essere installato facilmente dalle principali repository di software di una distribuzione GNU / Linux. Sarà inoltre installato automaticamente insieme a tutto il software che lo richiede.

Per installarlo manualmente utilizzando il pacchetto sorgente, nel caso in cui si desidera ottimizzare per la vostra architettura hardware / sistema operativo, scaricare e salvare l'ultimo archivio da Softoware, estrarne il contenuto utilizzando un'utilità Archive Manager, aprire un app terminale e andare alla posizione del file di archivio estratto (ad esempio cd / home / softoware / libjpeg-turbo).

Quindi, eseguire il & lsquo; ./ configure && make & rsquo; comando per configurare e compilare il programma, seguito dal & lsquo; sudo make install & rsquo; commad per installarlo a livello di sistema e renderlo disponibile a tutte le applicazioni

Cosa c'è di nuovo in questa versione:.

    < li> È stato risolto un problema di generazione su piattaforme OS X PowerPC (md5cmp non è riuscito a costruire perché OS X non fornisce la le32toh () e htole32 () funzioni.).
  • Il codice di conversione del colore RGB565 non SIMD non ha funzionato correttamente su grandi macchine endian. Questo è stato risolto.
  • Risolto un problema in tjPlaneSizeYUV (), per cui sarebbe erroneamente restituire 1 invece di -1 se ComponentID era & gt; 0 e subsamp era TJSAMP_GRAY.
  • Risolto un problema in tjBufSizeYUV2 () wherby sarebbe erroneamente restituire 0 invece di -1 se la larghezza è & lt; 1.
  • Il codificatore Huffman ora utilizza istruzioni CLZ e BSR per bit di contare su piattaforme ARM64.
  • Il metodo close () nelle classi TJCompressor e TJDecompressor Java è ormai idempotente. In precedenza, tale metodo avrebbe chiamato la funzione tjDestroy nativo () anche se l'istanza TurboJPEG era già stata distrutta. Ciò ha causato una eccezione per essere gettato durante la finalizzazione, se il metodo close () era già stato chiamato. L'eccezione è stato catturato, ma era ancora un'operazione costosa.
  • L'API TurboJPEG precedentemente generato un errore (& quot; Impossibile determinare il tipo sottocampionamento immagine JPEG & quot per;) quando si tenta di decomprimere le immagini JPEG in scala di grigi che sono stati compressi con un fattore di campionamento diverso da 1 (per esempio, con 'cjpeg -grayscale - 2x2 campione '). Sottocampionamento tecnicamente non ha alcun significato con file JPEG in scala di grigi, e, quindi, i fattori di campionamento orizzontali e verticali per tali immagini vengono ignorati dalla decompressione. Tuttavia, il TurboJPEG API stava essendo troppo rigido e si aspettava i fattori di campionamento di essere uguale a 1 prima di essere trattata l'immagine come JPEG in scala di grigi.
  • cjpeg, djpeg, e jpegtran ora accettano un argomento di -version, che stamperà la versione della libreria e uscire.
  • riferimento alla 1.4 beta1 [15], un'altra circostanza estremamente rara è stato scoperto sotto il quale buffer locale del codificatore Huffman può essere invasa quando si utilizza un gestore di destinazione tamponata e un blocco estremamente alta frequenza (in sostanza i dati di immagine spazzatura) è in fase di codifica. Anche se il buffer locale Huffman è stata aumentata da 128 byte a 136 byte per affrontare la questione precedente, il nuovo numero causato anche il buffer più grande per essere invasa. Ulteriori analisi rivela che, nel caso peggiore assoluto (ad esempio l'impostazione alternati coefficienti AC a 32767 e -32768 nell'ordine di scansione JPEG), il codificatore Huffman può produrre blocchi codificati che si avvicinano doppio delle dimensioni dei blocchi non codificati. Così, il buffer locale Huffman è stata aumentata a 256 byte, che dovrebbe prevenire qualsiasi problema si verifichi nuovamente in futuro.
  • Il nuovo tjPlaneSizeYUV (), tjPlaneWidth (), funzioni e tjPlaneHeight () non erano in realtà utilizzabile su qualsiasi piattaforma, tranne OS X e Windows, perché queste funzioni non sono state incluse nel libturbojpeg mapfile. Questo è stato risolto.
  • ripristinato il JPP (), JMETHOD (), e le macro lontano nel file di intestazione libjpeg-turbo. Le macro JPP () e JMETHOD () è stato inizialmente attuato in libjpeg come un modo per sostenere compilatori non ANSI che mancava il supporto per i parametri di prototipo. libjpeg-turbo non ha mai sostenuto tali compilatori, ma alcuni pacchetti software ancora usare le macro per definire i propri prototipi. Allo stesso modo, libjpeg-turbo non ha mai sostenuto di MS-DOS e altre piattaforme che hanno i simboli, ma alcuni pacchetti software ancora utilizzare la macro FAR. Un buon argomento può essere fatto che si tratta di una cattiva pratica da parte del software in questione, ma dal momento che questo colpisce più di un pacchetto, è solo più facile per risolvere il problema qui.
  • Problemi risolti che impedivano l'ARM SIMD codice a 64 bit da compilare per iOS, e comprendeva una architettura ARMv8 in tutti i binari installati dal & quot; ufficiale & quot; libjpeg-turbo SDK per OS X.

Cosa c'è di nuovo nella versione 1.4.2:

  • È stato risolto un problema di generazione su piattaforme OS X PowerPC ( md5cmp non è riuscito a costruire perché OS X non fornisce la le32toh () e htole32 () funzioni.).
  • Il codice di conversione del colore RGB565 non SIMD non ha funzionato correttamente su grandi macchine endian. Questo è stato risolto.
  • Risolto un problema in tjPlaneSizeYUV (), per cui sarebbe erroneamente restituire 1 invece di -1 se ComponentID era & gt; 0 e subsamp era TJSAMP_GRAY.
  • Risolto un problema in tjBufSizeYUV2 () wherby sarebbe erroneamente restituire 0 invece di -1 se la larghezza è & lt; 1.
  • Il codificatore Huffman ora utilizza istruzioni CLZ e BSR per bit di contare su piattaforme ARM64.
  • Il metodo close () nelle classi TJCompressor e TJDecompressor Java è ormai idempotente. In precedenza, tale metodo avrebbe chiamato la funzione tjDestroy nativo () anche se l'istanza TurboJPEG era già stata distrutta. Ciò ha causato una eccezione per essere gettato durante la finalizzazione, se il metodo close () era già stato chiamato. L'eccezione è stato catturato, ma era ancora un'operazione costosa.
  • L'API TurboJPEG precedentemente generato un errore (& quot; Impossibile determinare il tipo sottocampionamento immagine JPEG & quot per;) quando si tenta di decomprimere le immagini JPEG in scala di grigi che sono stati compressi con un fattore di campionamento diverso da 1 (per esempio, con 'cjpeg -grayscale - 2x2 campione '). Sottocampionamento tecnicamente non ha alcun significato con file JPEG in scala di grigi, e, quindi, i fattori di campionamento orizzontali e verticali per tali immagini vengono ignorati dalla decompressione. Tuttavia, il TurboJPEG API stava essendo troppo rigido e si aspettava i fattori di campionamento di essere uguale a 1 prima di essere trattata l'immagine come JPEG in scala di grigi.
  • cjpeg, djpeg, e jpegtran ora accettano un argomento di -version, che stamperà la versione della libreria e uscire.
  • riferimento alla 1.4 beta1 [15], un'altra circostanza estremamente rara è stato scoperto sotto il quale buffer locale del codificatore Huffman può essere invasa quando si utilizza un gestore di destinazione tamponata e un blocco estremamente alta frequenza (in sostanza i dati di immagine spazzatura) è in fase di codifica. Anche se il buffer locale Huffman è stata aumentata da 128 byte a 136 byte per affrontare la questione precedente, il nuovo numero causato anche il buffer più grande per essere invasa. Ulteriori analisi rivela che, nel caso peggiore assoluto (ad esempio l'impostazione alternati coefficienti AC a 32767 e -32768 nell'ordine di scansione JPEG), il codificatore Huffman può produrre blocchi codificati che si avvicinano doppio delle dimensioni dei blocchi non codificati. Così, il buffer locale Huffman è stata aumentata a 256 byte, che dovrebbe prevenire qualsiasi problema si verifichi nuovamente in futuro.
  • Il nuovo tjPlaneSizeYUV (), tjPlaneWidth (), funzioni e tjPlaneHeight () non erano in realtà utilizzabile su qualsiasi piattaforma, tranne OS X e Windows, perché queste funzioni non sono state incluse nel libturbojpeg mapfile. Questo è stato risolto.
  • ripristinato il JPP (), JMETHOD (), e le macro lontano nel file di intestazione libjpeg-turbo. Le macro JPP () e JMETHOD () è stato inizialmente attuato in libjpeg come un modo per sostenere compilatori non ANSI che mancava il supporto per i parametri di prototipo. libjpeg-turbo non ha mai sostenuto tali compilatori, ma alcuni pacchetti software ancora usare le macro per definire i propri prototipi. Allo stesso modo, libjpeg-turbo non ha mai sostenuto di MS-DOS e altre piattaforme che hanno i simboli, ma alcuni pacchetti software ancora utilizzare la macro FAR. Un buon argomento può essere fatto che si tratta di una cattiva pratica da parte del software in questione, ma dal momento che questo colpisce più di un pacchetto, è solo più facile per risolvere il problema qui.
  • Problemi risolti che impedivano l'ARM SIMD codice a 64 bit da compilare per iOS, e comprendeva una architettura ARMv8 in tutti i binari installati dal & quot; ufficiale & quot; libjpeg-turbo SDK per OS X.

Cosa c'è di nuovo nella versione 1.4.0:

  • È stato risolto un problema di generazione su piattaforme OS X PowerPC ( md5cmp non è riuscito a costruire perché OS X non fornisce la le32toh () e htole32 () funzioni.).
  • Il codice di conversione del colore RGB565 non SIMD non ha funzionato correttamente su grandi macchine endian. Questo è stato risolto.
  • Risolto un problema in tjPlaneSizeYUV (), per cui sarebbe erroneamente restituire 1 invece di -1 se ComponentID era & gt; 0 e subsamp era TJSAMP_GRAY.
  • Risolto un problema in tjBufSizeYUV2 () wherby sarebbe erroneamente restituire 0 invece di -1 se la larghezza è & lt; 1.
  • Il codificatore Huffman ora utilizza istruzioni CLZ e BSR per bit di contare su piattaforme ARM64.
  • Il metodo close () nelle classi TJCompressor e TJDecompressor Java è ormai idempotente. In precedenza, tale metodo avrebbe chiamato la funzione tjDestroy nativo () anche se l'istanza TurboJPEG era già stata distrutta. Ciò ha causato una eccezione per essere gettato durante la finalizzazione, se il metodo close () era già stato chiamato. L'eccezione è stato catturato, ma era ancora un'operazione costosa.
  • L'API TurboJPEG precedentemente generato un errore (& quot; Impossibile determinare il tipo sottocampionamento immagine JPEG & quot per;) quando si tenta di decomprimere le immagini JPEG in scala di grigi che sono stati compressi con un fattore di campionamento diverso da 1 (per esempio, con 'cjpeg -grayscale - 2x2 campione '). Sottocampionamento tecnicamente non ha alcun significato con file JPEG in scala di grigi, e, quindi, i fattori di campionamento orizzontali e verticali per tali immagini vengono ignorati dalla decompressione. Tuttavia, il TurboJPEG API stava essendo troppo rigido e si aspettava i fattori di campionamento di essere uguale a 1 prima di essere trattata l'immagine come JPEG in scala di grigi.
  • cjpeg, djpeg, e jpegtran ora accettano un argomento di -version, che stamperà la versione della libreria e uscire.
  • riferimento alla 1.4 beta1 [15], un'altra circostanza estremamente rara è stato scoperto sotto il quale buffer locale del codificatore Huffman può essere invasa quando si utilizza un gestore di destinazione tamponata e un blocco estremamente alta frequenza (in sostanza i dati di immagine spazzatura) è in fase di codifica. Anche se il buffer locale Huffman è stata aumentata da 128 byte a 136 byte per affrontare la questione precedente, il nuovo numero causato anche il buffer più grande per essere invasa. Ulteriori analisi rivela che, nel caso peggiore assoluto (ad esempio l'impostazione alternati coefficienti AC a 32767 e -32768 nell'ordine di scansione JPEG), il codificatore Huffman può produrre blocchi codificati che si avvicinano doppio delle dimensioni dei blocchi non codificati. Così, il buffer locale Huffman è stata aumentata a 256 byte, che dovrebbe prevenire qualsiasi problema si verifichi nuovamente in futuro.
  • Il nuovo tjPlaneSizeYUV (), tjPlaneWidth (), funzioni e tjPlaneHeight () non erano in realtà utilizzabile su qualsiasi piattaforma, tranne OS X e Windows, perché queste funzioni non sono state incluse nel libturbojpeg mapfile. Questo è stato risolto.
  • ripristinato il JPP (), JMETHOD (), e le macro lontano nel file di intestazione libjpeg-turbo. Le macro JPP () e JMETHOD () è stato inizialmente attuato in libjpeg come un modo per sostenere compilatori non ANSI che mancava il supporto per i parametri di prototipo. libjpeg-turbo non ha mai sostenuto tali compilatori, ma alcuni pacchetti software ancora usare le macro per definire i propri prototipi. Allo stesso modo, libjpeg-turbo non ha mai sostenuto di MS-DOS e altre piattaforme che hanno i simboli, ma alcuni pacchetti software ancora utilizzare la macro FAR. Un buon argomento può essere fatto che si tratta di una cattiva pratica da parte del software in questione, ma dal momento che questo colpisce più di un pacchetto, è solo più facile per risolvere il problema qui.
  • Problemi risolti che impedivano l'ARM SIMD codice a 64 bit da compilare per iOS, e comprendeva una architettura ARMv8 in tutti i binari installati dal & quot; ufficiale & quot; libjpeg-turbo SDK per OS X.

Cosa c'è di nuovo nella versione 1.3.0:

  • [1] 'make test' ora funziona correttamente su FreeBSD, e non richiede più l'eseguibile md5sum di essere presenti su altre piattaforme Un * x.
  • [2] revisionata il sistema di imballaggio: - Per evitare conflitti con i pacchetti libjpeg-turbo forniti dal produttore, gli RPM ufficiali e DEBs per libjpeg-turbo sono stati rinominati a & quot; libjpeg-turbo-ufficiale & quot ;. - Le librerie TurboJPEG si trovano ora sotto / opt / libjpeg-turbo nei pacchetti ufficiali Linux e Mac, per evitare conflitti con i pacchetti forniti dal produttore e anche per semplificare il sistema di imballaggio. - Pacchetti di uscita vengono ora creati con la struttura delle directory definito dalle variabili di configurare & quot; prefisso & quot ;, & quot; bindir & quot ;, & quot; libdir & quot ;, ecc (Un * x) o dalla variabile CMAKE_INSTALL_PREFIX (Windows). L'eccezione è che i documenti sono sempre localizzati nella directory di default del sistema di documentazione sulla Un * x e sistemi Mac e su Windows, la DLL TurboJPEG si trova sempre nella directory di sistema di Windows. - Per evitare confusione, pacchetti ufficiali libjpeg-turbo su piattaforme Linux / Unix (tranne che per Mac) sarà sempre installare le librerie a 32 bit in / opt / libjpeg-turbo / lib32 e le librerie a 64 bit in / opt / libjpeg- turbo / lib64. - Risolto un problema per cui, in alcuni casi, gli eseguibili libjpeg-turbo su un * x sistemi non sono stati adeguatamente il collegamento con le librerie condivise installate dallo stesso pacchetto. - Risolto un problema per cui la costruzione del & quot; installazione di & quot; Obiettivo su Windows quando WITH_JAVA = 1 fallirebbe se il barattolo TurboJPEG non era stato costruito in precedenza. - Costruire il & quot; installare & quot; obiettivo su Windows ora installa i file negli stessi luoghi che l'installer.
  • [3] Corretto un bug codificatore Huffman che impediva la sospensione di I / O di funzionare correttamente.

Cosa c'è di nuovo nella versione 1.2.0:

  • Un problema di accumulo incontrato quando si utilizza yasm su sistemi Unix è stato fissato.
  • Un limiti out-of-leggere nel codice SSE2 SIMD è stato fissato.
  • nuove costanti di estensione spazio colore che consentono alle applicazioni di specificare che il byte inutilizzato in un buffer RGB 4 byte dovrebbe essere trattato come un canale alfa quando decompressione sono stati aggiunti.
  • Un problema di regressione incontrato quando si costruisce diavolo con libjpeg-turbo è stato fissato.
  • Supporto iOS è stato inserito l'SDK libjpeg-turbo per Mac.

Cosa c'è di nuovo nella versione 1.1 Beta 1:

  • libjpeg-turbo può essere costruito per emulare il libjpeg API v7 o V8B / ABI.
  • Il sistema di generazione di Windows ora usa CMake.
  • TurboJPEG / OSS può ora comprimere da / decomprimere, da bitmap in scala di grigi e convertire immagini RGB o JPEG per l'uscita YUV planare.
  • jpgtest può essere utilizzato per testare le prestazioni di decompressione con immagini JPEG esistenti.
  • è stato aggiunto il supporto opzionale di codifica e decodifica aritmetica.
  • ulteriori protezioni sono state aggiunte contro codici di Huffman non validi.

Cosa c'è di nuovo nella versione 1.0.0:.

  • Ulteriori costruire miglioramenti su FreeBSD
  • pacchetti Unix / Linux includono ora libjpeg run-time programmi (cjpeg, ecc) e le pagine man.
  • Vi è un pacchetto aggiuntivo a 32 bit per i sistemi Debian amd64.
  • Supporto Cygwin.
  • Supporto completo per la costruzione / sperimentazione su architetture non-x86.

  • binari
  • 64-bit OS X sono ora compatibile con OS X 10.4.
  • Ci sono vari ritocchi imballaggio Linux.

Cosa c'è di nuovo nella versione 0.0.91:

  • Aggiunta documentazione per pacchetti .deb

  • problemi di corruzione
  • Dati fissi durante la decompressione immagini JPEG di grandi dimensioni e / o utilizzando tampone di I / O con il decompressore libjpeg-turbo

Altri software di sviluppo D. R. Commander

TurboVNC
TurboVNC

3 Jun 15

VirtualGL
VirtualGL

7 Mar 16

Commenti a libjpeg-turbo

I commenti non trovato
Aggiungi commento
Accendere le immagini!