Я провел довольно много времени с FJCore и LibJpeg.Net .FJCore проще в использовании, поскольку он был перенесен с Java и имеет объектную модель, которая немного напоминает то, что вы ожидаете увидеть в C #.Тем не менее, LibJpeg.NET является гораздо более полной библиотекой (она основана на неформально канонической libjpeg ), и она также значительно быстрее.Чтобы привести один пример, FJCore использует наивную реализацию обратного дискретного косинусного преобразования, которая включает в себя что-то вроде 1024 умножения и дополнительные 1024 сложения для каждого блока 8x8.В отличие от этого, LibJpeg.NET использует высокопроизводительный алгоритм AAN, который принимает только 144 умножения и 464 сложения (см. http://datasheets.chipdb.org/Intel/x86/MMX/MMX/AP528.HTM#AAN Алгоритм ).Кроме того, FJCore довольно неэффективно использует память, постоянно воссоздавая объекты, которые можно легко использовать повторно.В то же время, поскольку в FJCore меньше оптимизаций, его гораздо проще взломать.
Для моего текущего проекта (который включает в себя написание видеокодека для Silverlight), я использовал FJCore в качестве отправной точки, исправил целый рядиз-за его неэффективности заменил алгоритм IDCT на алгоритм из LibJpeg.NET и в результате получил нечто, в 10 раз превышающее исходную производительность.