Skip to content

VP8 lossy codec support#2

Draft
matanui159 wants to merge 15 commits into
mainfrom
lossy
Draft

VP8 lossy codec support#2
matanui159 wants to merge 15 commits into
mainfrom
lossy

Conversation

@matanui159

@matanui159 matanui159 commented Feb 6, 2022

Copy link
Copy Markdown
Owner
  • raw header and image size
  • boolean entropy-coder
  • compressed header
  • read prediction modes (macroblock header)
  • DCT & WHT coefficients
  • basic prediction modes
  • independent prediction modes
  • loop filters

Will try and keep an updated list of features that I am skipping during development to potentially add later ("currently unsupported"):

  • frame upscaling (section 9.1). not sure if its worth supporting this since I don't think many images would use it. maybe it should just be ignored and the image returned at the encoded resolution, if the user knows there is upscaling (maybe through API? but unlikely. keeping API small) they can upscale themselves using their own method that would probably be faster and better quality than whatever I could come up with.
  • filter adjustments (section 9.4). I can't seem to get cwebp to generate them anyway
  • data partitions (section 9.5). There is a way to force cwebp to do it and on initial look it may do it automatically if the file is too large, TODO: add large image test
  • Coefficient skipping (section 11.1). Should be easy to support just lazy and my test image doesn't have it

Prepare for macroblock data reading

Test macros to see why GCC is detected as BE

Dump AArch64 macros

Remove macro dump

Fix weird change that somehow appeared

Read DCT blocks

Improve macro state handling

For now, show DCT blocks in luminance

Format code

Use jebp_ubyte instead of uint8_t

DCT/WHT inversions

First attmempt at YUV-RGB conversion (broken)

Fix color conversion

Implement UV prediction
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant