Анонсирован (http://sourceforge.net/p/libjpeg-turbo/mailman/message/33210889/) выпуск проекта libjpeg-turbo 1.4.0 (http://www.libjpeg-turbo.org/), в рамках которого развивается высокопроизводительная библиотека кодирования и декодирования изображений в формате JPEG. Libjpeg-turbo представляет собой совместимый на уровне API/ABI форк классической библиотеки libjpeg (http://ijg.org/), нацеленный на обеспечении максимальной скорости кодирования и декодирования. В свою очередь, от libjpeg-turbo ответвилась библиотека mozjpeg, которая движется в сторону оптимизации размера результирующих изображений.Благодаря использованию инструкций SIMD (MMX, SSE2, NEON) на архитектурах x86, x86-64, and ARM, libjpeg-turbo позволяет добиться ускорения операций кодирования и декодирования JPEG в 2-4 раза, по сравнению с libjpeg. На других архитектурах ускорение не столь значительное, но за счёт применения оптимизированных функций кодирования Хаффмана библиотека всё равно заметно быстрее libjpeg и близка по своим показателям к высококачественным проприетарным кодекам JPEG. Кроме стандартного libjpeg API библиотек также предоставляет расширенный TurboJPEG API, а также ряд расширений с моделями представления цвета, позволяющих сжимать в 32-разрядные пиксельные буферы (RGBX, XBGR) или декодировать из них.
Основные новшества:
- Для ускорения на платформах MIPS задействованы DSPr2-совместимые SIMD-инструкции, что на 70-80% ускорило сжатие полноцветных JPEG и на 25-35% ускорило декодирование;
- В коде кодирования Хаффмана для подсчета битов на платформах ARM и ARM64 задействованы инструкции clz и bsr, что позволило на 64Кб сократить потребление памяти. На двух протестированных Android-устройствах наблюдался рост производительности на 10-20%, при этом ещё на двух наблюдалось падение производительности на ~3-4% при использовании кода ARMv6 и рост производительности на ~3-4% для кода ARMv7. Добавлено использование 64-рарядных SIMD-инструкций ARM для ускорения преобразования цветов YCC-to-RGB и применения алгоритмов IDCT;
- Для закодированных с использованием таблиц Хаффмана JPEG-изображений добавлена возможность подстановки таблиц по умолчанию, если данные таблицы отсутствуют в заголовке файла с изображением. Например, для экономии места в видео в формате Motion JPEG кадры часто не содержат подобных таблиц;- Улучшена точность и производительность реализации алгоритма инвертирования DCT с плавающей точкой, не применяющего SIMD-инструкции.
- В libjpeg API добавлена поддержка цветовой модели JCS_RGB565, что позволяет декодировать изображения JPEG в пиксельный формат RGB565 (16-bit).
- Удалены устаревшие возможности, такие как поддержка не-ANSI компиляторов и модель памяти MS-DOS;- Расширен TurboJPEG API: поддержка CMYK, поддержка операции масштабирования в функции decompress-to-YUV, поддержка задания произвольного заполнения строк при генерации плоских YUV-изображений (YUV planar), возможность сжатия JPEG-изображений на основе исходного YUV-изображения, поддержка цветовой субдискретизации 4:1:1. Значительно переработан Java API для работы с YUV-изображениями, добавлена поддержка кодирования YUV-изображения из произвольной позиции в буфере;
- Возобновлена поддержка JPEG с 12-битами на компонент (при сборке необходимо указать --with-12bit), при включении которой будут отключены все специфичные libjpeg-turbo оптимизации и станет недоступен TurboJPEG API (но останутся доступны расширения, такие как модели представления цвета);
- Пакет для OS X теперь собирается с использованием pkgbuild и productbuild вместо PackageMaker.
URL: http://sourceforge.net/p/libjpeg-turbo/mailman/message/33210889/
Новость: http://www.opennet.me/opennews/art.shtml?num=41421
> и близка по своим показателям к высококачественным проприетарным кодекам JPEG.99% которых спи... код у libjpeg
Есть доказательства? Пиши Столлману в FSF, ибо нарушение лицензии. Они тебе спасибо скажут, может даже процент от иска перечислят.
И откуда вы такие дэбилы лезете ?LEGAL ISSUES
============
In plain English:
1. We don't promise that this software works. (But if you find any bugs,
please let us know!)
2. You can use this software for whatever you want. You don't have to pay us.
3. You may not pretend that you wrote this software. If you use it in a
program, you must acknowledge somewhere in your documentation that
you've used the IJG code.
In legalese:
The authors make NO WARRANTY or representation, either express or implied,
with respect to this software, its quality, accuracy, merchantability, or
fitness for a particular purpose. This software is provided "AS IS", and you,
its user, assume the entire risk as to its quality and accuracy.
This software is copyright (C) 1991-1998, Thomas G. Lane.
All Rights Reserved except as specified below.
Permission is hereby granted to use, copy, modify, and distribute this
software (or portions thereof) for any purpose, without fee, subject to these
conditions:
(1) If any part of the source code for this software is distributed, then this
README file must be included, with this copyright and no-warranty notice
unaltered; and any additions, deletions, or changes to the original files
must be clearly indicated in accompanying documentation.
(2) If only executable code is distributed, then the accompanying
documentation must state that "this software is based in part on the work of
the Independent JPEG Group".
(3) Permission for use of this software is granted only if the user accepts
full responsibility for any undesirable consequences; the authors accept
NO LIABILITY for damages of any kind.These conditions apply to any software derived from or based on the IJG code,
not just to the unmodified library. If you use our work, you ought to
acknowledge us.Permission is NOT granted for the use of any IJG author's name or company name
in advertising or publicity relating to this software or products derived from
it. This software may be referred to only as "the Independent JPEG Group's
software".We specifically permit and encourage the use of this software as the basis of
commercial products, provided that all warranty or liability claims are
assumed by the product vendor.
> 99% которых спи... код у libjpegЭ, Павлин! Перестань нести смуту в неокрепшие умы молодых столманоидов
1. Проприерасты имеют точно такое-же юридическое и моральное право пользоваться libjpeg как и сообщество т.к. это референсный код от Independent JPEG Group, спонсируемой этими самыми проприерастами, а не творчество кулибиных. Причем код распространяется под пермиссивной лицензии, аналогичной MIT/BSD.
2. "высококачественные проприетарные кодеки" высококачественны не от того что имеют некие навороты в коде, которые тщательно прячутся от сообщества, а от того что имеют хорошо подобранные матрицы квантизации в своем составе. Кстати, эти матрицы сохраняются в самом жпеге и легко выдираются оттуда, по этому, если хочешь чтобы libjpeg кодировал не так хреново, как это он делает "иcкаропки", а как фотошоп, то просто выдираешь матрицу из произведенного последним jpeg-а и скармливаешь ее libjpeg-у параметром. И все. Результат - аналогичен
> Э, Павлин! Перестань нести смуту в неокрепшие умы молодых столманоидовЗато сколько окрепших дэбилов срефлекировало целыми простынями в коментах. Всё гадкое нутро в них.
Ну вот сколькими проприетарными либджпегами ты пользовался при разработке?
И не будешь. И даже сабжем (с вероятностью 99%) не будешь.
Зато своё "авторитетное" мнение оставил — а то как же! Вдруг буизнесменом станешь, а код спи3дить будет низя.
А Вы, дайте угадаю, в нашу доблестную полицию метите - искать правонарушения там, где их нет? Побуду кэпом. Если лицензия на код не запрещает использовать его в проприетарщине, то использование оного в проприетарщине не является воровством
http://www.libjpeg-turbo.org/About/License
Вот только гадалок тут и не хватало.
Алё?
"Можно или нельзя" — даже не предмет обсуждения.
А вот оценка содержимого этих проприетарных решений — вполне себе.
По поводу чего и кило-тонны опа-больных комментов даже не у проприетарных разрабов, а у ПОТЕНЦИАЛЬНО-проприетарных (у пока только примазывающихся).Зыж
> Побуду кэпом.Ы-ы-ы???
Не, пока просто — побудешь. :D
Похоже, что не "Алё".
Мое нелепое угадывание было намеком на то, что Ваши собственные, так сказать, предположения по поводу использования/неиспользования либ, мотивов написания комментария предыдущего оратора и "буизнесменов" "ворующих" код - совершенно не к месту.
Посыл не дошел до получателя и вернулся к отправителю. Чтож, ладно.>99% которых спи... код у libjpeg
>оценка содержимого этих проприетарных решенийХорошая оценка, нечего сказать. Больше похоже на голословное утверждение. А указание на то, что лицензия на код libjpeg пермиссивная и, соответственно, использовать его не выполняя условия лицензии (упомянуть авторов где либо в документации) смысла особо нет - это не иначе как "кило-тонны опа-больных комментов". Если же упоминания авторов действительно нигде нет и есть уверенность что код тот же самый, то, без сомнения, надо писать в FSF или куда еще.
>Не, пока просто — побудешь. :D
Что сказать то хотели?
> ... Проприерасты имеют точно ...Так некоторые не пишут лицензию, кто-то статиком копмилит нужные функции, кто-то код выдирает, - я, например.
Ну и молодец, сразу видно культуру программирования. Тебе что, индульгенцию за публичное покаяние выписывать за это?
> Ну и молодец, сразу видно культуру программирования.Вы когда смартфон включаете, здороваетесь с ним?
GCC, после успешной компиляции, спасибо говорите?
Когда ты тыришь код, к Столлману ходишь на исповедание?Когда твоя программа в списке CVE из-за вкомпиленного кода openssl, воздаешь ли ты покаяние богам жадности, глупости и недальновидности?
Никто и не спорит что "имеют право", вопрос стоял в "приближении по скорости работы к проприетарным аналогам". Не такие уж они и крутые, эти аналоги.