Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
6th December 2014, 03:39 | #1 | Link |
Registered User
Join Date: Dec 2012
Posts: 197
|
BPG Image Format (HEVC subset for browsers)
Website
There's a bundled javascript decoder so you can look at examples: Base bitstream is a subset of Main 4:4:4 16 Still Picture, and when present, an alpha plane is simply a separate monochrome bitstream. The key difference is that header syntax is changed to reduce filesize overhead. However, the list of allowed coding tools is rather permissive, so almost every present and future HEVC intra-frame should be "remuxable" into this format. On the site, there are links to the source files and Windows binary. The code by default link to the HM for HEVC encode. You can get it to link to x265, though CQP usage is hardcoded into the glue file, and I'm not sure how developed x265's 12/14-bit and 422/444 code paths are. Edit: there's a discussion thread for this on HN. Last edited by xooyoozoo; 6th December 2014 at 04:03. |
6th December 2014, 07:17 | #2 | Link |
Registered User
Join Date: Nov 2011
Posts: 66
|
It seems rather powerful (it has a good base technology, anyway), but I can't seem to be able to find the list of command line parameters to test the encoder/decoder myself.
Is this a one-man-effort to promote a novel use for HEVC, or is it something being considered as a potential new, worldwide, universal format to replace JPG or co-exist with it (as happened with PNG and GIF before)? |
6th December 2014, 07:28 | #3 | Link | |
SuperVirus
Join Date: Jun 2012
Location: Antarctic Japan
Posts: 1,351
|
Thanks for the info *THUMBS UP*
Yes, the thing seems to work And since the application is actually slow, a progress indicator would be nice Quote:
Code:
BPG Image Encoder version 0.9 usage: bpgenc [options] infile.[jpg|png] Main options: -h show the full help -o outfile set output filename (default = out.bpg) -q qp set quantizer parameter (smaller gives better quality, range: 0-51, default = 28) -f cfmt set the preferred chroma format (420, 422, 444, default=420) -c color_space set the preferred color space (ycbcr, rgb, ycgco, default=ycbcr) -b bit_depth set the bit depth (8 to 12, default = 10) -lossless enable lossless mode |
|
6th December 2014, 13:57 | #6 | Link |
Registered User
Join Date: Jan 2007
Posts: 729
|
If anybody is interested in knowing how this compares in lossless mode, I quickly tried compressing some screencaps (mostly old or new animation).
Apparently it beats PNG, but similarly to webp and jpeg-xr, it falls short of jpeg2000 in this usage (lossless, I repeat). Filesizes for some random images I tried: (the numbers go like this: (1) PNG level9 through Xnview - (2) BPG via the binary from the original site - (3) Jpeg2000 through Xnview/Lura plugin): (Here they are in a gallery, refer to picture order to see what results are for which one) 489 KB - 395 KB - 352 KB 2,41 MB - 1,94 MB - 1,85 MB 479 KB - 382 KB - 348 KB 2,28 MB - 1,83 MB - 1,63 MB 943 KB - 705 KB - 734 KB (win for BPG - seems the format favours smooth images... or naughty ones?) |
6th December 2014, 15:47 | #7 | Link |
The speed of stupid
Join Date: Sep 2011
Posts: 317
|
The program silently dies on indexed PNGs and crashes hard on certain JPEG images for some reason.
|
6th December 2014, 17:08 | #9 | Link |
Registered User
Join Date: Jan 2007
Posts: 729
|
Hmm, it seems it does substantially better than J2K in lossless compression of computer screenshots (I tested on a printscreen image of the hacker news thread, 1920x1080), but both are far from competitive with PNG in this case.
JPEG2K: 815 KB BPG: 331 KB PNG: 145 KB (still massively better for this usercase). |
6th December 2014, 17:57 | #11 | Link |
Registered User
Join Date: Jan 2007
Posts: 729
|
Large part of the sample image (I already deleted it, but just open the hacker news thread in browser, maximize it, and you have the idea) is just repeat of the same color.
I guess PNG's deflate coding might be more suited to this, whereas HEVC has trouble due to the transforming architecture? (I have no idea if the BPG encoder used the lossless and transform bypass tools of the format properly.) |
6th December 2014, 20:12 | #12 | Link | |
Software Developer
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
|
Quote:
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊ Last edited by LoRd_MuldeR; 6th December 2014 at 20:15. |
|
6th December 2014, 21:19 | #13 | Link | |||
Registered User
Join Date: Dec 2012
Posts: 197
|
Quote:
It's also weird that the HM is used as the default 'high-quality' option. x265's intra prediction is supposed to be superior to HM by now, and adaptive quant is too good a perceptual-tool to pass up. Perhaps the guy made his judgement before the recent spate of 10bit and 422+ bugfix commits. Quote:
Quote:
|
|||
7th December 2014, 00:10 | #15 | Link | |
Registered User
Join Date: Mar 2002
Posts: 863
|
Quote:
Daala is nowhere near ready for action. It's improving quite rapidly, that's what makes it interesting, but in its current form it's not competitive yet. It has rather noticeable ringing artifacts, and at higher compression rates, chroma artifacts. But i think it has the potential to improve quite a lot in the future, maybe even beyond HEVC. Last edited by Tommy Carrot; 7th December 2014 at 01:59. Reason: typo |
|
7th December 2014, 01:03 | #16 | Link | |
Registered User
Join Date: Jan 2007
Posts: 729
|
Quote:
Bild "1417868877483q5jbq.png" anzeigen. Looks that at the ridiculously small bitrate used, HEVC currently smokes WEBP as well as current Daala quite handily. Edit: you can also look at this demo: http://people.xiph.org/~xiphmont/dem...1-tool2b.shtml and compare x265 to Daala. The encodes probably aren't current though. Last edited by mandarinka; 7th December 2014 at 01:08. |
|
7th December 2014, 01:59 | #17 | Link |
Registered User
Join Date: Dec 2012
Posts: 197
|
The x265_glue file is easily modified to get more sane x265 settings. Here's a diff with defaults set to my own tastes.
Edit: Diff changed to version compatible with libbpg 0.9.1. Setting names were also changed, and both deblocking & chroma offsets now also apply to HM encoder. Last edited by xooyoozoo; 9th December 2014 at 04:07. |
8th December 2014, 00:22 | #18 | Link |
Registered User
Join Date: Nov 2009
Location: Northeast Ohio
Posts: 447
|
You can find recent Daala builds here:
https://www.dropbox.com/sh/e1xnuxga4...qdReMWbka?dl=0 |
9th December 2014, 00:54 | #19 | Link | |
Angel of Night
Join Date: Nov 2004
Location: Tangled in the silks
Posts: 9,559
|
Quote:
For screenshots and the like, always turn --cu-lossless and --tskip on for x265, so that you're not wasting bits fighting the DCT when you don't have to. x265 can already switch DCT on and off adaptively at RDO 3 and up, so even without the screen coding tools it can be a worthy competitor to PNG. At this point it's kind of pointless to use HM for anything but rExt (12+ bits), now x265 that has full 4:4:4 10-bit support. I like the file format, and the fact that he went to the effort of completely specifying the format using the same semantics as the HEVC spec is a big plus, though "can be supported in hardware" is pretty optimistic. The only thing missing is basic matrix descriptions, YCbCr is always 601 and RGB just is. You have to include a full ICC profile instead of having a few standards to pick from (601, 709, 2020, sRGB, Adobe RGB, Adobe Wide RGB). That would save a bit of space, so I'll hit him up about it. Edit: Looks like you can easily compile it without HM support and it'll just use x265 for everything. Last edited by foxyshadis; 9th December 2014 at 01:18. |
|
9th December 2014, 03:54 | #20 | Link |
Registered User
Join Date: Dec 2012
Posts: 197
|
Testing, testing.
This is mostly me playing around and trying to graft bpgdec.js and libwebp.js into a copy of xiph.org page linked above. It's a freshman attempt at that (I knew exactly zero html/javascript before this) so expect compatibility errors, especially on mobile. Note that only Safari can currently decode jpeg2000 images. |
Thread Tools | Search this Thread |
Display Modes | |
|
|