libjpeg-turbo

Screenshot Software:
libjpeg-turbo
Mga detalye ng Software:
Bersyon: 1.4.90 Na-update
I-upload ang petsa: 10 Mar 16
Nag-develop: D. R. Commander
Lisensya: Libre
Katanyagan: 68

Rating: nan/5 (Total Votes: 0)

libjpeg-turbo ay isang open source, cross-platform at ganap na libreng software engineered na magbigay ng isang mataas na bilis bersyon ng orihinal na software libjpeg library, partikular na crafted para sa x86 at x86-64 processors, na gumamit ng SIMD ( Single Instruction, Maramihang Data) mga tagubilin, tulad ng SSE2, MMX at nEON, upang mapabilis baseline JPEG decompression at compression.


Isang sobrang mabilis JPEG image codec

Ang software ay isang lubhang mabilis JPEG image codec na sa pangkalahatan ay 2-4x mas mabilis kaysa sa unmodified bersyon ng libjpeg. Ang proyekto ay orihinal na batay sa libjpeg / SIMD proyekto na nilikha ng Miyasaka Masaru.


Nagpapatupad ng tradisyonal libjpeg API

Ito turbo bersyon ng libjpeg library din nagpapatupad ng tradisyonal libjpeg API, pati na rin ang tapat TurboJPEG API. Nagtatampok ito ng mga extension colorspace, na nagpapahintulot sa mga user upang i-compress mula sa o magbawas ng bigat sa malaki-endian at 32-bit pixel buffers (XBGR, RGBX, atbp), at isang ganap na tampok Java interface.


Ipinamamahagi bilang katutubong installers para DEB at RPM-based OSes

Para sa iyong kaginhawaan, ang software ay ipinamamahagi bilang katutubong installers para DEB at RPM-based operating system, tulad ng Debian, Ubuntu, Linux Mint, Fedora, CentOS, Red Hat Enterprise Linux, openSUSE, Mageia, etc., na sumusuporta sa parehong 64 at 32-bit hardware platform.


Pagsisimula sa libjpeg-turbo

Ang libjpeg-turbo proyekto ay maaaring maging madaling-install mula sa pangunahing software repositories ng isang pamamahagi GNU / Linux. Ito din awtomatikong naka-install kasama ng anumang software na ito ay nangangailangan.

Upang i-install ito nang manu-mano gamit ang source package, kung sakaling gusto mong i-optimize ito para sa iyong hardware architecture / operating system, i-download at i-save ang mga pinakabagong archive mula Softoware, kunin ang mga nilalaman nito gamit ang isang archive manager utility, buksan ang isang terminal app at pumunta sa mga lokasyon ng mga nahango archive file (eg cd / home / softoware / libjpeg-turbo).

Pagkatapos, patakbuhin ang & lsquo; ./ configure && gumawa & rsquo; command upang i-configure at ilista ang mga programa, na sinusundan ng & lsquo; sudo gumawa install & rsquo; commad i-install ito sistema ng malawak at gawin itong available sa lahat ng mga application

Ano ang bago sa ito release:.

    < li> Nakapirming isang build isyu sa OS X PowerPC platform (md5cmp nabigo upang bumuo dahil OS X ay hindi nagbibigay ng le32toh () at htole32 () function.).
  • Ang mga di-SIMD RGB565 kulay conversion code ay hindi gumagana nang tama sa malaking endian machine. Ito ay naayos na.
  • Inayos ang isang isyu sa tjPlaneSizeYUV () kung saan ito ay hindi wasto bumalik 1 sa halip ng -1 kung componentID ay & gt; 0 at subsamp ay TJSAMP_GRAY.
  • Inayos ang isang isyu sa tjBufSizeYUV2 () wherby ito ay hindi wasto bumalik 0 sa halip ng -1 kung width ay & lt; 1.
  • Ang Huffman encoder ngayon ay gumagamit ng CLZ at bsr mga tagubilin para sa bit pagbibilang sa arm64 platform.
  • Ang close () method sa mga klase TJCompressor at TJDecompressor Java ay ngayon idempotent. Noong nakaraan, ang pamamaraan na iyon ay tumawag sa mga katutubong tjDestroy () function kahit na ang TurboJPEG halimbawa ay na-nawasak. Ito sanhi ng isang exception sa bumalibag sa panahon finalization, kung ang close () method ay nai-tinatawag na. exception ay nahuli, ngunit ito ay pa rin ng isang mamahaling operasyon.
  • Ang TurboJPEG API dati nakabuo ng isang error (& quot; Hindi matukoy subsampling uri para JPEG image & quot;) kapag sa pagtatangka upang magbawas ng bigat grayscale mga imahe JPEG na compressed na may isang sampling factor maliban sa 1 (halimbawa, sa 'cjpeg -grayscale - sample 2x2 '). Subsampling technically ay walang kahulugan sa grayscale mga JPEG, at sa gayon ay ang horizontal at vertical sampling kadahilanan para sa mga naturang mga imahe ay hindi pinansin ng decompressor. Gayunman, ang TurboJPEG API ay pagiging masyadong matigas at ay umaasang ang sampling mga kadahilanan upang maging katumbas ng 1 bago ito ginagamot ang imahe bilang isang grayscale JPEG.
  • cjpeg, djpeg, at jpegtran ngayon tanggapin ang isang argument ng -Bersyon, na kung saan ay i-print ang library bersyon at exit.
  • Sa pagtukoy sa 1.4 beta1 [15], isa pang lubhang bihirang pangyayari ay natuklasan sa ilalim kung saan mga lokal na buffer ang Huffman encoder ay maaaring ma-Pagsobra kapag ang isang buffered destination manager ay ginagamit at isang lubhang-mataas na dalas ng block (talaga data junk imahe) ay ini-naka-encode. Kahit na ang Huffman lokal buffer ay nadagdagan mula sa 128 bytes sa 136 bytes upang harapin ang nakaraang isyu, ang mga bagong isyu na sanhi kahit na ang mas malaking buffer na kumalat at maminsala. Ang karagdagang pagsusuri ay nagpapakita na, sa absolute pinakamasama kaso (tulad ng pagtatakda ng alternating AC coefficients sa 32,767 at -32,768 sa JPEG scanning order), ang Huffman encoder ay maaaring makabuo ng naka-encode bloke na lapitan double ang laki ng unencoded bloke. Kaya, ang Huffman lokal buffer ay nadagdagan sa 256 bytes, na kung saan ay dapat na maiwasan ang anumang naturang isyu mula muling nagaganap sa hinaharap.
  • Ang bagong tjPlaneSizeYUV (), tjPlaneWidth (), at tjPlaneHeight () function ay hindi tunay na kapaki-pakinabang sa anumang platform maliban OS X at Windows, dahil ang mga function ay hindi kasama sa ang libturbojpeg mapfile. Ito ay naayos na.
  • Naipanumbalik ang JPP (), JMETHOD (), at FAR macros sa mga file libjpeg-turbo header. Ang JPP () at JMETHOD () macros ay orihinal na ipinatupad sa libjpeg bilang isang paraan ng pagsuporta non-ANSI compilers na lacked suporta para sa mga parameter prototype. libjpeg-turbo ay hindi kailanman suportado tulad compilers, ngunit ang ilang mga pakete ng software pa rin gamitin ang macros upang tukuyin ang kanilang sariling mga modelo. Katulad nito, libjpeg-turbo ay hindi kailanman suportado MS-DOS at iba pang mga platform na may malayo simbolo, ngunit ang ilang mga pakete ng software pa rin gamitin ang FAR macro. Isang kaakit-akit magandang argument ay maaaring gawin na ito ay isang masamang kaugalian sa bahagi ng software na pinag-uusapan, ngunit dahil ito ay nakakaapekto sa higit sa isang pakete, ito ay lamang ng mas madali na ayusin ito dito.
  • Fixed isyu na pumipigil sa ARM 64-bit SIMD code mula ipon para sa iOS, at kasama ng isang ARMv8 architecture sa lahat ng mga binaries install sa pamamagitan ng & quot; opisyal & quot; libjpeg-turbo SDK para sa OS X.

Ano ang bago sa bersyon 1.4.2:

  • Ang Nakatakdang ng isang build isyu sa OS X PowerPC platform ( nabigo md5cmp upang bumuo dahil OS X ay hindi nagbibigay ng le32toh () at htole32 () function.).
  • Ang mga di-SIMD RGB565 kulay conversion code ay hindi gumagana nang tama sa malaking endian machine. Ito ay naayos na.
  • Inayos ang isang isyu sa tjPlaneSizeYUV () kung saan ito ay hindi wasto bumalik 1 sa halip ng -1 kung componentID ay & gt; 0 at subsamp ay TJSAMP_GRAY.
  • Inayos ang isang isyu sa tjBufSizeYUV2 () wherby ito ay hindi wasto bumalik 0 sa halip ng -1 kung width ay & lt; 1.
  • Ang Huffman encoder ngayon ay gumagamit ng CLZ at bsr mga tagubilin para sa bit pagbibilang sa arm64 platform.
  • Ang close () method sa mga klase TJCompressor at TJDecompressor Java ay ngayon idempotent. Noong nakaraan, ang pamamaraan na iyon ay tumawag sa mga katutubong tjDestroy () function kahit na ang TurboJPEG halimbawa ay na-nawasak. Ito sanhi ng isang exception sa bumalibag sa panahon finalization, kung ang close () method ay nai-tinatawag na. exception ay nahuli, ngunit ito ay pa rin ng isang mamahaling operasyon.
  • Ang TurboJPEG API dati nakabuo ng isang error (& quot; Hindi matukoy subsampling uri para JPEG image & quot;) kapag sa pagtatangka upang magbawas ng bigat grayscale mga imahe JPEG na compressed na may isang sampling factor maliban sa 1 (halimbawa, sa 'cjpeg -grayscale - sample 2x2 '). Subsampling technically ay walang kahulugan sa grayscale mga JPEG, at sa gayon ay ang horizontal at vertical sampling kadahilanan para sa mga naturang mga imahe ay hindi pinansin ng decompressor. Gayunman, ang TurboJPEG API ay pagiging masyadong matigas at ay umaasang ang sampling mga kadahilanan upang maging katumbas ng 1 bago ito ginagamot ang imahe bilang isang grayscale JPEG.
  • cjpeg, djpeg, at jpegtran ngayon tanggapin ang isang argument ng -Bersyon, na kung saan ay i-print ang library bersyon at exit.
  • Sa pagtukoy sa 1.4 beta1 [15], isa pang lubhang bihirang pangyayari ay natuklasan sa ilalim kung saan mga lokal na buffer ang Huffman encoder ay maaaring ma-Pagsobra kapag ang isang buffered destination manager ay ginagamit at isang lubhang-mataas na dalas ng block (talaga data junk imahe) ay ini-naka-encode. Kahit na ang Huffman lokal buffer ay nadagdagan mula sa 128 bytes sa 136 bytes upang harapin ang nakaraang isyu, ang mga bagong isyu na sanhi kahit na ang mas malaking buffer na kumalat at maminsala. Ang karagdagang pagsusuri ay nagpapakita na, sa absolute pinakamasama kaso (tulad ng pagtatakda ng alternating AC coefficients sa 32,767 at -32,768 sa JPEG scanning order), ang Huffman encoder ay maaaring makabuo ng naka-encode bloke na lapitan double ang laki ng unencoded bloke. Kaya, ang Huffman lokal buffer ay nadagdagan sa 256 bytes, na kung saan ay dapat na maiwasan ang anumang naturang isyu mula muling nagaganap sa hinaharap.
  • Ang bagong tjPlaneSizeYUV (), tjPlaneWidth (), at tjPlaneHeight () function ay hindi tunay na kapaki-pakinabang sa anumang platform maliban OS X at Windows, dahil ang mga function ay hindi kasama sa ang libturbojpeg mapfile. Ito ay naayos na.
  • Naipanumbalik ang JPP (), JMETHOD (), at FAR macros sa mga file libjpeg-turbo header. Ang JPP () at JMETHOD () macros ay orihinal na ipinatupad sa libjpeg bilang isang paraan ng pagsuporta non-ANSI compilers na lacked suporta para sa mga parameter prototype. libjpeg-turbo ay hindi kailanman suportado tulad compilers, ngunit ang ilang mga pakete ng software pa rin gamitin ang macros upang tukuyin ang kanilang sariling mga modelo. Katulad nito, libjpeg-turbo ay hindi kailanman suportado MS-DOS at iba pang mga platform na may malayo simbolo, ngunit ang ilang mga pakete ng software pa rin gamitin ang FAR macro. Isang kaakit-akit magandang argument ay maaaring gawin na ito ay isang masamang kaugalian sa bahagi ng software na pinag-uusapan, ngunit dahil ito ay nakakaapekto sa higit sa isang pakete, ito ay lamang ng mas madali na ayusin ito dito.
  • Fixed isyu na pumipigil sa ARM 64-bit SIMD code mula ipon para sa iOS, at kasama ng isang ARMv8 architecture sa lahat ng mga binaries install sa pamamagitan ng & quot; opisyal & quot; libjpeg-turbo SDK para sa OS X.

Ano ang bago sa bersyon 1.4.0:

  • Ang Nakatakdang ng isang build isyu sa OS X PowerPC platform ( nabigo md5cmp upang bumuo dahil OS X ay hindi nagbibigay ng le32toh () at htole32 () function.).
  • Ang mga di-SIMD RGB565 kulay conversion code ay hindi gumagana nang tama sa malaking endian machine. Ito ay naayos na.
  • Inayos ang isang isyu sa tjPlaneSizeYUV () kung saan ito ay hindi wasto bumalik 1 sa halip ng -1 kung componentID ay & gt; 0 at subsamp ay TJSAMP_GRAY.
  • Inayos ang isang isyu sa tjBufSizeYUV2 () wherby ito ay hindi wasto bumalik 0 sa halip ng -1 kung width ay & lt; 1.
  • Ang Huffman encoder ngayon ay gumagamit ng CLZ at bsr mga tagubilin para sa bit pagbibilang sa arm64 platform.
  • Ang close () method sa mga klase TJCompressor at TJDecompressor Java ay ngayon idempotent. Noong nakaraan, ang pamamaraan na iyon ay tumawag sa mga katutubong tjDestroy () function kahit na ang TurboJPEG halimbawa ay na-nawasak. Ito sanhi ng isang exception sa bumalibag sa panahon finalization, kung ang close () method ay nai-tinatawag na. exception ay nahuli, ngunit ito ay pa rin ng isang mamahaling operasyon.
  • Ang TurboJPEG API dati nakabuo ng isang error (& quot; Hindi matukoy subsampling uri para JPEG image & quot;) kapag sa pagtatangka upang magbawas ng bigat grayscale mga imahe JPEG na compressed na may isang sampling factor maliban sa 1 (halimbawa, sa 'cjpeg -grayscale - sample 2x2 '). Subsampling technically ay walang kahulugan sa grayscale mga JPEG, at sa gayon ay ang horizontal at vertical sampling kadahilanan para sa mga naturang mga imahe ay hindi pinansin ng decompressor. Gayunman, ang TurboJPEG API ay pagiging masyadong matigas at ay umaasang ang sampling mga kadahilanan upang maging katumbas ng 1 bago ito ginagamot ang imahe bilang isang grayscale JPEG.
  • cjpeg, djpeg, at jpegtran ngayon tanggapin ang isang argument ng -Bersyon, na kung saan ay i-print ang library bersyon at exit.
  • Sa pagtukoy sa 1.4 beta1 [15], isa pang lubhang bihirang pangyayari ay natuklasan sa ilalim kung saan mga lokal na buffer ang Huffman encoder ay maaaring ma-Pagsobra kapag ang isang buffered destination manager ay ginagamit at isang lubhang-mataas na dalas ng block (talaga data junk imahe) ay ini-naka-encode. Kahit na ang Huffman lokal buffer ay nadagdagan mula sa 128 bytes sa 136 bytes upang harapin ang nakaraang isyu, ang mga bagong isyu na sanhi kahit na ang mas malaking buffer na kumalat at maminsala. Ang karagdagang pagsusuri ay nagpapakita na, sa absolute pinakamasama kaso (tulad ng pagtatakda ng alternating AC coefficients sa 32,767 at -32,768 sa JPEG scanning order), ang Huffman encoder ay maaaring makabuo ng naka-encode bloke na lapitan double ang laki ng unencoded bloke. Kaya, ang Huffman lokal buffer ay nadagdagan sa 256 bytes, na kung saan ay dapat na maiwasan ang anumang naturang isyu mula muling nagaganap sa hinaharap.
  • Ang bagong tjPlaneSizeYUV (), tjPlaneWidth (), at tjPlaneHeight () function ay hindi tunay na kapaki-pakinabang sa anumang platform maliban OS X at Windows, dahil ang mga function ay hindi kasama sa ang libturbojpeg mapfile. Ito ay naayos na.
  • Naipanumbalik ang JPP (), JMETHOD (), at FAR macros sa mga file libjpeg-turbo header. Ang JPP () at JMETHOD () macros ay orihinal na ipinatupad sa libjpeg bilang isang paraan ng pagsuporta non-ANSI compilers na lacked suporta para sa mga parameter prototype. libjpeg-turbo ay hindi kailanman suportado tulad compilers, ngunit ang ilang mga pakete ng software pa rin gamitin ang macros upang tukuyin ang kanilang sariling mga modelo. Katulad nito, libjpeg-turbo ay hindi kailanman suportado MS-DOS at iba pang mga platform na may malayo simbolo, ngunit ang ilang mga pakete ng software pa rin gamitin ang FAR macro. Isang kaakit-akit magandang argument ay maaaring gawin na ito ay isang masamang kaugalian sa bahagi ng software na pinag-uusapan, ngunit dahil ito ay nakakaapekto sa higit sa isang pakete, ito ay lamang ng mas madali na ayusin ito dito.
  • Fixed isyu na pumipigil sa ARM 64-bit SIMD code mula ipon para sa iOS, at kasama ng isang ARMv8 architecture sa lahat ng mga binaries install sa pamamagitan ng & quot; opisyal & quot; libjpeg-turbo SDK para sa OS X.

Ano ang bago sa bersyon 1.3.0:

  • [1] 'gumawa test' ngayon ay gumagana nang maayos sa FreeBSD, at hindi na ito ay kinakailangan ang md5sum executable upang dumalo sa iba pang mga Un * x platform.
  • [2] Overhauled ang packaging system: - Upang maiwasan ang conflict sa vendor-itinustos libjpeg-turbo pakete, ang opisyal na RPMs at Debs para libjpeg-turbo ay pinalitan ng pangalan sa & quot; libjpeg-turbo-opisyal & quot ;. - Ang TurboJPEG aklatan ay matatagpuan na ngayon sa ilalim ng / opt / libjpeg-turbo sa opisyal na Linux at Mac na mga pakete, upang maiwasan ang conflict sa vendor-itinustos na mga pakete at din upang i-streamline ang packaging system. - Release pakete ay ngayon nilikha gamit ang direktoryo ng istraktura ng tinukoy sa pamamagitan ng mga variable configure & quot; prefix & quot ;, & quot; bindir & quot ;, & quot; libdir & quot ;, at iba pa (Un * x) o sa pamamagitan ng CMAKE_INSTALL_PREFIX variable (Windows.) Exception ay na ang docs ay palaging matatagpuan sa ilalim ng sistema ng default na dokumentasyon na direktoryo sa Un * x at Mac sistema, at sa Windows, ang TurboJPEG DLL ay laging matatagpuan sa direktoryo ng Windows system. - Upang maiwasan ang pagkalito, opisyal libjpeg-turbo pakete sa Linux / Unix platform (maliban para sa Mac) ay palaging i-install ang 32-bit mga aklatan sa / opt / libjpeg-turbo / lib32 at ang 64-bit mga aklatan sa / opt / libjpeg- turbo / lib64. - Nakapirming isang isyu kung saan, sa ilang mga kaso, ang libjpeg-turbo executables sa Un * x sistema ay hindi maayos na pag-uugnay sa mga shared aklatan install sa pamamagitan ng ang parehong package. - Nakapirming isang isyu kung saan ang pagbuo ng & quot; installer & quot; target sa Windows kapag WITH_JAVA = 1 ay hindi magtatagumpay kung ang TurboJPEG JAR may hindi pa dati binuo. - Pagbuo ng & quot; i-install & quot; target sa Windows ngayon i-install ng mga file sa parehong lugar na ang installer ay.
  • [3] Nakatakdang ng isang Huffman encoder bug na pumigil I / O suspensyon mula sa gumagana nang maayos.

Ano ang bago sa bersyon 1.2.0:

  • Ang isang build isyu nakatagpo kapag gumagamit YASM sa Unix systems ay naayos na.
  • Ang isang out-of-hanggahan basahin sa SSE2 SIMD code ay naayos na.
  • New colorspace extension constants na payagan ang mga aplikasyon upang tukuyin na ang mga hindi ginagamit byte sa isang 4-byte RGB buffer dapat na itinuturing bilang isang alpha channel kapag decompressing ay idinagdag.
  • Ang isang pagbabalik isyu nakatagpo kapag pagbuo satanas sa libjpeg-turbo ay naayos na.
  • iOS support ay naidagdag sa libjpeg-turbo SDK para sa Mac.

Ano ang bago sa bersyon 1.1 Beta 1:

  • libjpeg-turbo ay maaaring binuo upang tularan ang libjpeg v7 o v8b API / ABI.
  • Ang build system Windows ngayon ay gumagamit ng CMake.
  • TurboJPEG / OSS ay maaari na ngayong i-compress mula sa / magbawas ng bigat sa grayscale bitmaps at i-convert RGB o JPEG imahe upang YUV planar output.
  • jpgtest ay maaaring gamitin upang subukan ang pagganap decompression sa mga umiiral na mga imahe JPEG.
  • Opsyonal arithmetic encoding at decoding suporta ay idinagdag.
  • Ang karagdagang mga proteksyon ay idinagdag laban sa hindi wastong Huffman code.

Ano ang bago sa bersyon 1.0.0:.

  • Ang karagdagang bumuo ng mga pagpapabuti sa FreeBSD
  • Unix / Linux pakete na ngayong magsama ng libjpeg tumakbo-time na mga programa (cjpeg, atbp) at mga pahina ng tao.
  • May ay isang 32-bit karagdagang pakete para sa amd64 Debian system.
  • Cygwin support.
  • Buong suporta para sa mga gusali / testing sa mga di-x86 architectures.
  • 64-bit OS X binaries ay ngayon pabalik na katugma sa OS X 10.4.
  • May mga iba't ibang Linux packaging tweaks.

Ano ang bago sa bersyon 0.0.91:

  • Idinagdag dokumentasyon upang .deb pakete

  • isyu
  • Fixed data katiwalian kapag decompressing malalaking mga imahe JPEG at / o paggamit buffered I / O sa libjpeg-turbo decompressor

Iba pang mga software developer ng D. R. Commander

VirtualGL
VirtualGL

7 Mar 16

TurboVNC
TurboVNC

3 Jun 15

Mga komento sa libjpeg-turbo

Mga Komento hindi natagpuan
Magdagdag ng komento
I-sa mga imahe!