libjpeg-turbo

Tela Software:
libjpeg-turbo
Detalhes de Software:
Versão: 1.4.90 Atualizado
Data de upload: 10 Mar 16
Revelador: D. R. Commander
Licença: Livre
Popularidade: 68

Rating: nan/5 (Total Votes: 0)

libjpeg-turbo é uma fonte aberta, multi-plataforma e software totalmente gratuito projetado para fornecer uma versão de alta velocidade do software biblioteca libjpeg original, especificamente criado para x86 e x86-64 processadores, que usam SIMD ( Single Instruction, Multiple Data) instruções, como SSE2, MMX e neon, para acelerar a linha de base de descompressão JPEG e compressão.


Um codec de imagem extremamente rápido JPEG

O software é um codec de imagem JPEG extremamente rápido, que geralmente é 2-4x mais rápido do que a versão não modificada do libjpeg. O projeto foi originalmente baseado no projeto libjpeg / SIMD criado por Miyasaka Masaru.


Implementa a API libjpeg tradicional

Esta versão turbo da biblioteca libjpeg também implementa a API libjpeg tradicional, bem como a API TurboJPEG simples. Ele possui extensões de espaço de cor que permite aos usuários para comprimir a partir de ou descomprimir a buffers de pixel big-endian e 32 bits (XBGR, RGBX, etc.), e uma interface Java completo.


Distribuído como instaladores nativos para DEB e sistemas operacionais baseados em RPM

Para sua conveniência, o software é distribuído como instaladores nativos para DEB e sistemas operacionais baseados em RPM, como Debian, Ubuntu, Linux Mint, Fedora, CentOS, Red Hat Enterprise Linux, openSUSE, Mageia, etc., suportando tanto 64 e 32-bit plataformas de hardware.


Começando com libjpeg-turbo

O projeto libjpeg-turbo pode ser facilmente instalado a partir dos principais repositórios de uma distribuição GNU / Linux do software. Também será instalado automaticamente, juntamente com qualquer software que o exija.

Para instalá-lo manualmente usando o pacote fonte, no caso de você deseja otimizar-lo para sua arquitetura de hardware / sistema operacional, faça o download e salvar o arquivo mais recente de Softoware, extrair seu conteúdo usando um utilitário gerenciador de arquivos, abra um aplicativo Terminal e ir para a localização do arquivo extraído (por exemplo, cd / home / softoware / libjpeg-turbo).

Em seguida, executar o & lsquo; ./ configure && make & rsquo; comando para configurar e compilar o programa, seguido pelo & lsquo; sudo make install & rsquo; commad para instalá-lo em todo o sistema e torná-lo disponível para todos os aplicativos

O que é novo nesta versão:.

    < li> Corrigido um problema de construção em plataformas oS X PowerPC (md5cmp não conseguiu construir porque o oS X não fornece a le32toh () e htole32 () funções.).
  • O código de conversão de cor RGB565 não SIMD não funcionar corretamente em máquinas grandes endian. Isso foi corrigido.
  • Corrigido um problema no tjPlaneSizeYUV (), pelo que seria erroneamente retornar 1 em vez de -1 se ComponentId foi & gt; 0 e subsamp foi TJSAMP_GRAY.
  • Corrigido um problema no tjBufSizeYUV2 () wherby seria erroneamente retornar 0 ao invés de -1 se a largura era & lt; 1.
  • O codificador Huffman agora usa instruções CLZ e BSR para pouco contando com plataformas ARM64.
  • O método close () nas classes TJCompressor e TJDecompressor Java está agora idempotentes. Anteriormente, esse método seria chamar a função tjDestroy nativa () mesmo se a instância TurboJPEG já havia sido destruído. Isso fez com que uma exceção seja lançada durante a finalização, se o método close () já havia sido chamado. A exceção foi pego, mas ainda era uma operação cara.
  • A API TurboJPEG anteriormente gerou um erro (& quot; Não foi possível determinar o tipo de subsampling imagem JPEG & quot para;) ao tentar descomprimir imagens JPEG em tons de cinza que foram comprimidos com um fator de amostragem diferente de 1 (por exemplo, com 'cjpeg -grayscale - 2x2 sample '). Subamostragem tecnicamente não tem significado com JPEGs em tons de cinza, e, portanto, os fatores de amostragem horizontais e verticais para tais imagens são ignorados pelo descompressor. No entanto, o TurboJPEG API estava sendo muito rígida e estava esperando os fatores de amostragem para ser igual a 1 antes que ele tratou a imagem como um JPEG em tons de cinza.
  • cjpeg, djpeg e jpegtran agora aceitar um argumento de -version, que irá imprimir a versão da biblioteca e sair.
  • Referindo-se a 1.4 beta 1 [15], uma outra circunstância extremamente raro foi descoberto sob o qual buffer local do codificador Huffman pode ser superado quando um gerente destino tamponada está sendo usado e um bloco-extremamente de alta frequência (basicamente dados de imagem de lixo) é sendo codificado. Mesmo que o buffer local Huffman foi aumentada de 128 bytes para 136 bytes para resolver a questão anterior, a nova edição causou até mesmo o buffer maior a ser invadido. Uma análise mais aprofundada revela que, na pior das hipóteses absoluto (tais como a definição alternando coeficientes AC a 32767 e -32768 na ordem de digitalização JPEG), o codificador Huffman pode produzir blocos codificados que abordam o dobro do tamanho dos blocos não codificados. Assim, o buffer local Huffman foi aumentada para 256 bytes, o que deverá evitar qualquer problema voltem a ocorrer no futuro.
  • O novo tjPlaneSizeYUV (), tjPlaneWidth (), funções e tjPlaneHeight () não foram realmente utilizáveis ​​em qualquer plataforma, exceto OS X e Windows, porque essas funções não foram incluídas na libturbojpeg mapfile. Isso foi corrigido.
  • restaurou a JPP (), JMETHOD (), e macros FAR nos arquivos de cabeçalho libjpeg-turbo. As macros JPP () e JMETHOD () foram inicialmente aplicadas no libjpeg como uma forma de apoiar os compiladores não-ANSI que não tinham suporte para parâmetros do protótipo. libjpeg-turbo nunca apoiou tais compiladores, mas alguns pacotes de software ainda usam as macros para definir os seus próprios protótipos. Da mesma forma, libjpeg-turbo nunca apoiou MS-DOS e outras plataformas que têm símbolos longe, mas alguns pacotes de software ainda usam a macro FAR. Um bom argumento pode ser feito que esta é uma má prática por parte do software em questão, mas uma vez que esta afecta mais de um pacote, é apenas mais fácil para corrigi-lo aqui.
  • Corrigido problemas que impediam o código SIMD ARM de 64 bits a partir de compilação para iOS, e incluiu uma arquitetura ARMv8 em todos os binários instalados pelo & quot; oficial & quot; libjpeg-turbo SDK para OS X.

O que é novo na versão 1.4.2:

  • Corrigido um problema de construção em plataformas OS X PowerPC ( md5cmp não conseguiu construir porque o oS X não fornece a le32toh () e htole32 () funções.).
  • O código de conversão de cor RGB565 não SIMD não funcionar corretamente em máquinas grandes endian. Isso foi corrigido.
  • Corrigido um problema no tjPlaneSizeYUV (), pelo que seria erroneamente retornar 1 em vez de -1 se ComponentId foi & gt; 0 e subsamp foi TJSAMP_GRAY.
  • Corrigido um problema no tjBufSizeYUV2 () wherby seria erroneamente retornar 0 ao invés de -1 se a largura era & lt; 1.
  • O codificador Huffman agora usa instruções CLZ e BSR para pouco contando com plataformas ARM64.
  • O método close () nas classes TJCompressor e TJDecompressor Java está agora idempotentes. Anteriormente, esse método seria chamar a função tjDestroy nativa () mesmo se a instância TurboJPEG já havia sido destruído. Isso fez com que uma exceção seja lançada durante a finalização, se o método close () já havia sido chamado. A exceção foi pego, mas ainda era uma operação cara.
  • A API TurboJPEG anteriormente gerou um erro (& quot; Não foi possível determinar o tipo de subsampling imagem JPEG & quot para;) ao tentar descomprimir imagens JPEG em tons de cinza que foram comprimidos com um fator de amostragem diferente de 1 (por exemplo, com 'cjpeg -grayscale - 2x2 sample '). Subamostragem tecnicamente não tem significado com JPEGs em tons de cinza, e, portanto, os fatores de amostragem horizontais e verticais para tais imagens são ignorados pelo descompressor. No entanto, o TurboJPEG API estava sendo muito rígida e estava esperando os fatores de amostragem para ser igual a 1 antes que ele tratou a imagem como um JPEG em tons de cinza.
  • cjpeg, djpeg e jpegtran agora aceitar um argumento de -version, que irá imprimir a versão da biblioteca e sair.
  • Referindo-se a 1.4 beta 1 [15], uma outra circunstância extremamente raro foi descoberto sob o qual buffer local do codificador Huffman pode ser superado quando um gerente destino tamponada está sendo usado e um bloco-extremamente de alta frequência (basicamente dados de imagem de lixo) é sendo codificado. Mesmo que o buffer local Huffman foi aumentada de 128 bytes para 136 bytes para resolver a questão anterior, a nova edição causou até mesmo o buffer maior a ser invadido. Uma análise mais aprofundada revela que, na pior das hipóteses absoluto (tais como a definição alternando coeficientes AC a 32767 e -32768 na ordem de digitalização JPEG), o codificador Huffman pode produzir blocos codificados que abordam o dobro do tamanho dos blocos não codificados. Assim, o buffer local Huffman foi aumentada para 256 bytes, o que deverá evitar qualquer problema voltem a ocorrer no futuro.
  • O novo tjPlaneSizeYUV (), tjPlaneWidth (), funções e tjPlaneHeight () não foram realmente utilizáveis ​​em qualquer plataforma, exceto OS X e Windows, porque essas funções não foram incluídas na libturbojpeg mapfile. Isso foi corrigido.
  • restaurou a JPP (), JMETHOD (), e macros FAR nos arquivos de cabeçalho libjpeg-turbo. As macros JPP () e JMETHOD () foram inicialmente aplicadas no libjpeg como uma forma de apoiar os compiladores não-ANSI que não tinham suporte para parâmetros do protótipo. libjpeg-turbo nunca apoiou tais compiladores, mas alguns pacotes de software ainda usam as macros para definir os seus próprios protótipos. Da mesma forma, libjpeg-turbo nunca apoiou MS-DOS e outras plataformas que têm símbolos longe, mas alguns pacotes de software ainda usam a macro FAR. Um bom argumento pode ser feito que esta é uma má prática por parte do software em questão, mas uma vez que esta afecta mais de um pacote, é apenas mais fácil para corrigi-lo aqui.
  • Corrigido problemas que impediam o código SIMD ARM de 64 bits a partir de compilação para iOS, e incluiu uma arquitetura ARMv8 em todos os binários instalados pelo & quot; oficial & quot; libjpeg-turbo SDK para OS X.

O que é novo na versão 1.4.0:

  • Corrigido um problema de construção em plataformas OS X PowerPC ( md5cmp não conseguiu construir porque o oS X não fornece a le32toh () e htole32 () funções.).
  • O código de conversão de cor RGB565 não SIMD não funcionar corretamente em máquinas grandes endian. Isso foi corrigido.
  • Corrigido um problema no tjPlaneSizeYUV (), pelo que seria erroneamente retornar 1 em vez de -1 se ComponentId foi & gt; 0 e subsamp foi TJSAMP_GRAY.
  • Corrigido um problema no tjBufSizeYUV2 () wherby seria erroneamente retornar 0 ao invés de -1 se a largura era & lt; 1.
  • O codificador Huffman agora usa instruções CLZ e BSR para pouco contando com plataformas ARM64.
  • O método close () nas classes TJCompressor e TJDecompressor Java está agora idempotentes. Anteriormente, esse método seria chamar a função tjDestroy nativa () mesmo se a instância TurboJPEG já havia sido destruído. Isso fez com que uma exceção seja lançada durante a finalização, se o método close () já havia sido chamado. A exceção foi pego, mas ainda era uma operação cara.
  • A API TurboJPEG anteriormente gerou um erro (& quot; Não foi possível determinar o tipo de subsampling imagem JPEG & quot para;) ao tentar descomprimir imagens JPEG em tons de cinza que foram comprimidos com um fator de amostragem diferente de 1 (por exemplo, com 'cjpeg -grayscale - 2x2 sample '). Subamostragem tecnicamente não tem significado com JPEGs em tons de cinza, e, portanto, os fatores de amostragem horizontais e verticais para tais imagens são ignorados pelo descompressor. No entanto, o TurboJPEG API estava sendo muito rígida e estava esperando os fatores de amostragem para ser igual a 1 antes que ele tratou a imagem como um JPEG em tons de cinza.
  • cjpeg, djpeg e jpegtran agora aceitar um argumento de -version, que irá imprimir a versão da biblioteca e sair.
  • Referindo-se a 1.4 beta 1 [15], uma outra circunstância extremamente raro foi descoberto sob o qual buffer local do codificador Huffman pode ser superado quando um gerente destino tamponada está sendo usado e um bloco-extremamente de alta frequência (basicamente dados de imagem de lixo) é sendo codificado. Mesmo que o buffer local Huffman foi aumentada de 128 bytes para 136 bytes para resolver a questão anterior, a nova edição causou até mesmo o buffer maior a ser invadido. Uma análise mais aprofundada revela que, na pior das hipóteses absoluto (tais como a definição alternando coeficientes AC a 32767 e -32768 na ordem de digitalização JPEG), o codificador Huffman pode produzir blocos codificados que abordam o dobro do tamanho dos blocos não codificados. Assim, o buffer local Huffman foi aumentada para 256 bytes, o que deverá evitar qualquer problema voltem a ocorrer no futuro.
  • O novo tjPlaneSizeYUV (), tjPlaneWidth (), funções e tjPlaneHeight () não foram realmente utilizáveis ​​em qualquer plataforma, exceto OS X e Windows, porque essas funções não foram incluídas na libturbojpeg mapfile. Isso foi corrigido.
  • restaurou a JPP (), JMETHOD (), e macros FAR nos arquivos de cabeçalho libjpeg-turbo. As macros JPP () e JMETHOD () foram inicialmente aplicadas no libjpeg como uma forma de apoiar os compiladores não-ANSI que não tinham suporte para parâmetros do protótipo. libjpeg-turbo nunca apoiou tais compiladores, mas alguns pacotes de software ainda usam as macros para definir os seus próprios protótipos. Da mesma forma, libjpeg-turbo nunca apoiou MS-DOS e outras plataformas que têm símbolos longe, mas alguns pacotes de software ainda usam a macro FAR. Um bom argumento pode ser feito que esta é uma má prática por parte do software em questão, mas uma vez que esta afecta mais de um pacote, é apenas mais fácil para corrigi-lo aqui.
  • Corrigido problemas que impediam o código SIMD ARM de 64 bits a partir de compilação para iOS, e incluiu uma arquitetura ARMv8 em todos os binários instalados pelo & quot; oficial & quot; libjpeg-turbo SDK para OS X.

O que é novo na versão 1.3.0:

  • [1] "fazer teste" agora funciona corretamente no FreeBSD, e já não requer o executável md5sum para estar presente em outros Un * x plataformas.
  • [2] revisou o sistema de embalagem: - Para evitar conflito com pacotes de libjpeg-turbo fornecidos pelo fornecedor, as RPMs oficiais e DEBs para libjpeg-turbo foram renomeados para & quot; libjpeg-turbo-oficial & quot ;. - As bibliotecas TurboJPEG agora estão localizados em / opt / libjpeg-turbo nos pacotes oficiais Linux e Mac, para evitar conflitos com pacotes disponibilizados pelos fornecedores e também para agilizar o sistema de embalagem. - pacotes de lançamento agora são criados com a estrutura do diretório definido pelas variáveis ​​de configurar o & quot; prefixo & quot ;, & quot; bindir & quot ;, & quot; libdir & quot ;, etc. (Un * x) ou pela variável CMAKE_INSTALL_PREFIX (Windows). A exceção é que os documentos são sempre localizado sob o diretório de documentação padrão do sistema em sistemas Mac Un * x e, e no Windows, o DLL TurboJPEG está sempre localizado no diretório do sistema do Windows. - Para evitar confusão, os pacotes oficiais libjpeg-turbo em plataformas Linux / Unix (exceto para Mac) será sempre instalar as bibliotecas de 32 bits em / opt / libjpeg-turbo / lib32 e as bibliotecas de 64 bits em / opt / libjpeg- turbo / lib64. - Corrigido um problema em que, em alguns casos, os executáveis ​​libjpeg-turbo UN * x sistemas não foram adequadamente ligação com as bibliotecas compartilhadas instalados pelo mesmo pacote. - Corrigido um problema em que a construção do & quot; instalador & quot; alvo no Windows quando WITH_JAVA = 1 seria um fracasso se o JAR TurboJPEG não havia sido construído. - Construir a & quot; instalar o & quot; -alvo no Windows agora instala arquivos para os mesmos lugares que o instalador faz.
  • [3] Corrigido um codificador bug que impedia Huffman suspensão I / O de funcionar adequadamente.

O que é novo na versão 1.2.0:

  • Uma questão de compilação encontrados ao usar yasm em sistemas Unix foi corrigido.
  • Uma limites fora-de-ler no código SSE2 SIMD foi corrigido.
  • novas constantes de extensão de cores que permitem que aplicativos para especificar que o byte não utilizado em um buffer de RGB de 4 bytes devem ser tratados como um canal alfa ao descomprimir foram adicionados.
  • Uma questão de regressão encontrou quando a construção do diabo com libjpeg-turbo foi corrigido.
  • suporte iOS foi adicionado ao SDK libjpeg-turbo para Mac.

O que é novo na versão 1.1 Beta 1:

  • libjpeg-turbo pode ser construído para emular a libjpeg API v7 ou V8B / ABI.
  • O sistema de compilação do Windows agora utiliza CMake.
  • TurboJPEG / OSS agora pode comprimir de / descomprimir a bitmaps em tons de cinza e converter RGB ou JPEG imagens para a saída planar YUV.
  • jpgtest pode ser usado para testar o desempenho de descompressão com imagens JPEG existentes.
  • foi adicionado opcional suporte de codificação e decodificação de aritmética.
  • Outras proteções foram adicionadas contra códigos Huffman inválidos.

O que é novo na versão 1.0.0:.

  • Outras construir melhorias no FreeBSD
  • pacotes de Unix / Linux agora incluem libjpeg programas (cjpeg, etc.) e páginas de manual tempo de execução.
  • Há um pacote suplementar de 32 bits para sistemas Debian amd64.
  • Suporte Cygwin.
  • O suporte total para a construção / teste em arquiteturas não-x86.

  • binários
  • 64-bit OS X agora são compatíveis com versões anteriores com OS X 10.4.
  • Existem vários ajustes de embalagem Linux.

O que é novo na versão 0.0.91:

  • documentação Adicionado aos .deb pacotes

  • problemas de corrupção
  • Dados fixos ao descomprimir grandes imagens JPEG e / ou usando tamponada I / O com o descompressor libjpeg-turbo

Outro software de desenvolvedor D. R. Commander

VirtualGL
VirtualGL

7 Mar 16

TurboVNC
TurboVNC

3 Jun 15

Comentário para libjpeg-turbo

Comentários não encontrado
Adicionar comentário
Ligue imagens!