{"action":"created","issue":{"url":"https://api.github.com/repos/cloudflare/jpegtran/issues/3","labels_url":"https://api.github.com/repos/cloudflare/jpegtran/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/cloudflare/jpegtran/issues/3/comments","events_url":"https://api.github.com/repos/cloudflare/jpegtran/issues/3/events","html_url":"https://github.com/cloudflare/jpegtran/issues/3","id":110469002,"number":3,"title":"Question: could this merge with libjpeg-turbo and/or friends?","user":{"login":"lovell","id":210965,"avatar_url":"https://avatars.githubusercontent.com/u/210965?v=3","gravatar_id":"","url":"https://api.github.com/users/lovell","html_url":"https://github.com/lovell","followers_url":"https://api.github.com/users/lovell/followers","following_url":"https://api.github.com/users/lovell/following{/other_user}","gists_url":"https://api.github.com/users/lovell/gists{/gist_id}","starred_url":"https://api.github.com/users/lovell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lovell/subscriptions","organizations_url":"https://api.github.com/users/lovell/orgs","repos_url":"https://api.github.com/users/lovell/repos","events_url":"https://api.github.com/users/lovell/events{/privacy}","received_events_url":"https://api.github.com/users/lovell/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2015-10-08T14:52:18Z","updated_at":"2015-10-16T22:04:31Z","closed_at":null,"body":"Impressive results, well done Vlad.\r\n\r\nAm I correct in thinking this improvement could apply not only to the `jpegtran` command line tool but also any compression made via the libjpeg shared library?\r\n\r\nIf so, are you (or Cloudflare) in a position to be able to contribute the benefits back to one of the libjpeg forks?\r\n\r\nlibjpeg-turbo (and the mozjpeg fork of it) already uses SIMD on the decompression side so would make a suitable candidate for SIMD on the compression side also."},"comment":{"url":"https://api.github.com/repos/cloudflare/jpegtran/issues/comments/148847059","html_url":"https://github.com/cloudflare/jpegtran/issues/3#issuecomment-148847059","issue_url":"https://api.github.com/repos/cloudflare/jpegtran/issues/3","id":148847059,"user":{"login":"dcommander","id":651941,"avatar_url":"https://avatars.githubusercontent.com/u/651941?v=3","gravatar_id":"","url":"https://api.github.com/users/dcommander","html_url":"https://github.com/dcommander","followers_url":"https://api.github.com/users/dcommander/followers","following_url":"https://api.github.com/users/dcommander/following{/other_user}","gists_url":"https://api.github.com/users/dcommander/gists{/gist_id}","starred_url":"https://api.github.com/users/dcommander/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcommander/subscriptions","organizations_url":"https://api.github.com/users/dcommander/orgs","repos_url":"https://api.github.com/users/dcommander/repos","events_url":"https://api.github.com/users/dcommander/events{/privacy}","received_events_url":"https://api.github.com/users/dcommander/received_events","type":"User","site_admin":false},"created_at":"2015-10-16T22:04:31Z","updated_at":"2015-10-16T22:04:31Z","body":"Hi, guys.  I can confirm that this speeds up progressive encoding by almost 2X.  This technology will eventually make it into libjpeg-turbo, but I'm trying to secure research funding in order to enhance it.  SSE 4.2 and especially AVX2 intrinsics are tricky, because they require newer compilers than a lot of \"active\" O/S distributions have.  Also, as currently implemented, the choice of whether to use SSE 4.2 or AVX2 has to be made at compile time.  What I want to do is integrate this with the existing libjpeg-turbo SIMD framework, thus allowing run-time detection and execution of the best available Huffman SIMD kernel for a given architecture.  This will involve porting the various flavors of the code to NASM assembly (easy) and introducing a run-time selection mechanism.  I also want to investigate whether a pure SSE2 version can be developed-- perhaps without as much speedup but still probably significant enough to make it worthwhile.  I also want to investigate whether these same techniques could be applied to baseline encoding."}}