Why PNG compression is that much slower than JPEG on Android?

I’ve been toying with Android Bitmaps a bit and found out, that PNG compression takes much more time than even highest quality JPEG one. Much much more. On my device it can be roughly up to 10 seconds against 1.

AFAIK, PNG is basically filtered strings of pixels compressed with deflate. Well, finding the best filter for each string might be time consuming task, but there can be compromise established between speed and compression effectiveness. It shouldn’t be that slower than JPEG. How come it is?

  • Learn about android internals(dive deep into the system)
  • Android - Hide all shown Toast Messages
  • Loader restarts on orientation change
  • Set two buttons to same width regardless of screen size?
  • How to implement RecyclerView with CardView rows in a Fragment with TabLayout
  • Android: Detecting USB
  • Maybe it’s the other way around. Is there some ultra-fast JPEG implementation on Android?

    UPDATE: I realy just do things like

    mBitmap.compress(CompressFormat.JPEG, 100, stream);


    mBitmap.compress(CompressFormat.PNG, 100, stream);

  • Interface Builder(User Interface Designer) for Android
  • AlertDialog with EditText, open soft keyboard automatically with focus on EditText doesn't work
  • How to get access to all SD-cards, using the new Lollipop API?
  • How to iterate through SparseArray?
  • Why is the app waiting for the debugger when its not connected to computer?
  • Declare EditText as TextView in Android
  • One Solution collect form web for “Why PNG compression is that much slower than JPEG on Android?”

    I’ve tested my project on emulator with much bigger pictures and though PNG compression was little slower, there was no drastic difference in performance. Therefore it should be due to the hardware acceleration, as told by BitBank in the comment.

    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.