
BPG Image format - mjs
http://bellard.org/bpg/
======
pslam
The big story here is this introduces a new image file format _without
requiring you to upgrade a browser or download a plugin_. Those aren't PNGs of
representative images you're looking at - that's BPG decoding happening in
your browser.

So we don't like HVEC due to patent worries? Fine, we can swap in another
format and use the same technique.

We don't have an I-frame format for Daala that's finalized yet? Fine, we can
use work-in-progress. The format _does not need to be finalized_. If you
update it, you rebuild your images and bundle a new JavaScript decoder.

The ability to ship media along with a sandboxed, runnable decoder is awesome,
and I'm surprised it hasn't caught on until now. I remember Google a while
back implemented their own "video" codec in JavaScript using JPEGs and
primitive inter-frame processing, exactly because there wasn't a universal
video codec format they could use.

~~~
akshatpradhan
If you want Designers to start using this, then we need a photoshop plugin, an
illustrator plugin, a Sketch plugin, a pixelmator plugin. Make it easier for
us to export images as a .BGP. If the images are truly smaller without
affecting the current user experience of users using mostly modern web
browsers, then we're more likely to pick up on using this.

~~~
woah
This can all be handled by Gulp or Grunt and designers won't have to worry
about it if someone on the team can code.

~~~
akshatpradhan
What if I use this: [http://getbootstrap.com/examples/starter-
template/](http://getbootstrap.com/examples/starter-template/) and add an img
tag with a src to a .bgp? Will it render when I refresh the browser? I see
that the BPG images are decoded in your browser with a small Javascript
decoder. So a JS file is referenced in the HTML, and everything will run ok
when I refresh? That's the promise?

~~~
178
Yes.

------
mark-r
I was ready to pass by this post with a yawn until I saw where it was coming
from: Fabrice Bellard. He's no doubt an absolute freakin' genius. And if
anybody knows about image conversion, it's him.

Even the things he does just for fun are impressive. Have you ever booted up
Linux inside your browser?
[http://bellard.org/jslinux/](http://bellard.org/jslinux/)

~~~
pervycreeper
>I was ready to pass by this post with a yawn until I saw where it was coming
from

Would this have been less interesting or valuable if it hadn't been made by a
hacker celebrity?

~~~
mark-r
New file format proposals generally aren't news, unless they're already
implemented in some popular product. Finding out the latest amazing thing that
Fabrice Bellard has been working on, that's news. And that it's already
implemented in your browser via Javascript? Priceless.

------
anigbrowl
EDIT: I didn't expect this comment to be so popular and feel like I've
hijacked the thread a little - sorry. Feel free to continue at
[https://news.ycombinator.com/item?id=8706850](https://news.ycombinator.com/item?id=8706850)

I would much rather someone revived the Fractal Image format, which is now out
of patent. It's very expensive to encode, but that's nowhere near as big a
problem as it used to be. It's very fast to decode, very small, and the files
are resolution independent:
[http://en.wikipedia.org/wiki/Fractal_compression](http://en.wikipedia.org/wiki/Fractal_compression)

I was blown away when I encountered it at PC Magazine in the 90s and it seems
like it would be very responsive to the needs of today's web.

~~~
bane
[http://www.verrando.com/pulcini/gp-
uw1.html](http://www.verrando.com/pulcini/gp-uw1.html)

They have a 6-minute figure on their page. I wonder what modern hardware could
do with it? Anybody care to give it a whirl?

~~~
ChrisGranger
I wonder how much that figure would drop if one could optimize the process for
modern CPUs...

~~~
tachyonbeam
Even without optimizations. That page is from 1997. They probably ran this on
a 200MHz machine at best. Modern CPUs are 30-50x faster just in terms of
instructions per second. Then once you factor in multiple cores, we have
desktop machines that are easily 100x faster.

In terms of optimizations we have SIMD and GPGPUs to make it even faster. Not
unrealistic to think we could bring that 6 minute figure down to one second...
And then, of course, there might be algorithmic tweaks that help us even more.
Get 100 people looking at that code, and for sure they'd find ways to speed it
up.

~~~
Intermernet
In the same magazine there is an ad for a $3795 Gateway 2000 workstation.
486DX2 66MHz, 8MB RAM, 500MB SCSI HDD, SVGA graphics with 1MB RAM, 14" CRT.

I remember looking at systems like that and drooling. Now the latest CPUs have
8MB L3 cache.

~~~
tachyonbeam
Theres 8-core i7s with 20MB L3 cache now.

------
justinmayer
After making a few needed tweaks to get libbpg to compile on Mac OS X, I used
the compiled bpgenc binary to convert a test PNG to BPG format. I also
converted the PNG to a JPEG for comparison purposes. You can see the results
here:

[http://justinmayer.com/bpg-test/](http://justinmayer.com/bpg-test/)

Size of PNG before conversion: 186K

Size after conversion to JPEG: 52K

Size after conversion to BPG: 9K

I took the liberty of submitting a Homebrew formula, so hopefully this will
soon be a quick "brew install libbpg" away. (^_^)

[https://github.com/Homebrew/homebrew/pull/34722](https://github.com/Homebrew/homebrew/pull/34722)

~~~
ChrisFoster
I think your page has a bug - the "original png" seems to be encoded in jpg!
(The usual jpg artifacts are very visible around the edges.) Thanks for
posting the extra example, the bgp looks very good indeed.

~~~
justinmayer
I believe that's because PageSpeed is automatically converting the PNG to JPEG
on-the-fly before serving the image to the browser, ostensibly for speed
reasons. How ironic. ;^)

------
ChrisGranger
Looking at the Lena pictures demo, the extremely low file size comparison at
the top shows just how good .bpg is in that use case. That could make for some
much lighter websites when used for less important items like image thumbnails
on shopping sites, for example.

When the file size gets larger at the end, it looks like there might be a
little loss of detail. Ideally I'd like to compare them by switching back and
forth using the original image and the .bpg as Photoshop layers...

~~~
akavel
PrintScreen should let you do it, I suppose?

------
pdknsk
I notice the container has no ICC profile support. Trivial do add as an
extension tag, but should definitely be in the first spec IMO. And if I read
this correctly, extension tags are hardcoded as numbers, rather than using a
tag name. I don't think that's a good idea.

~~~
panic
Is there a situation where 14-bit sRGB isn't enough? There are a lot of weird
color matching issues on the web caused by inconsistent application of ICC
profiles to PNG images by different browsers / platforms.

~~~
oofabz
Storing HDR images, where the brightest parts are greater than 1.0. That way,
when you later edit the image and adjust the levels, new detail comes into
view. OpenEXR is the best we have for this now. It uses half-precision 16-bit
floating point color components.

------
jason_slack
No doubt Fabrice is very smart. I read about his 4G base station the other
day. I'd love to be a fly on the wall while he codes and thinks out these
projects.

His accomplishments are impressive: QEMU, FFMPEG, TCC, JSLinux, the list goes
on

------
ChuckMcM
Is there anything this guy can't do? Seriously.

I have been wishing there was a JPEG equivalent with an alpha channel for like
forever. That allows better compositing to arbitrary background images or
patterns. Now the question is how long before browsers _might_ support it
natively.

~~~
SeyelentEco
Webp is has lossless and lossy support, and alpha channel. It's also much
smaller than JPG and much better looking for small JPGs (like this one).

It's also supported natively on all newish (4.0+) Android devices and Chrome.

~~~
threeseed
Unfortunately given the relationship between Google and Apple and also between
Web* and H.26* there is little chance of it going anywhere since without iOS
you have nothing.

------
jason_slack
There was an interesting article about Fabrice:
[http://blog.smartbear.com/careers/fabrice-bellard-
portrait-o...](http://blog.smartbear.com/careers/fabrice-bellard-portrait-of-
a-super-productive-programmer/)

Does anyone know if he has a day job or does he just lock himself away and
work on these interesting projects?

~~~
paraboul
As far as I know :
[http://www.amarisoft.com/?p=about](http://www.amarisoft.com/?p=about)

------
userbinator
_Its purpose is to replace the JPEG image format when quality or file size is
an issue._

 _Some of the HEVC algorithms may be protected by patents in some countries_

There have been some patent disputes over JPEG, but I don't think replacing it
with another possibly patented format is a good idea, even if it's technically
superior in some ways.

~~~
reidrac
"Most devices already include or will include hardware HEVC support, so we
suggest to use it if patents are an issue."

I don't know if that suggestion makes much sense, but you missed it in your
quote.

~~~
sp332
What kinds of devices have hardware HEVC acceleration? Phones, PC graphics
cards, Blu-ray players?

~~~
WhitneyLand
One of Samsung's cameras, iPhone 6 uses it for FaceTime, various 4k TV's.

------
1ris
Why not use Daala to start from? The overlapping transform probably help
especially for still images, and the patent situation is probably at least
better.

~~~
aidenn0
I'm not sure that Daala has finalized it's I-frame format yet.

~~~
TD-Linux
There's no reason to wait until the I-frame format is finalized - a still
image format would probably be a separate codec anyway, so compatibility isn't
important.

~~~
sp332
Especially if you're shipping the decoder in JS alongside the encoded file.

------
AshleysBrain
This definitely looks like it compares favourably against both JPEG and PNG.
The test doesn't directly compare against JPEG-2000, JPEG XR or WebP, but the
results are more convincing than any examples I've seen for any other formats,
and the Mozilla study showed HEVC's format did best on quality metrics.

I hope browser vendors take note. The patent issues are concerning, but if
that can be worked around and a new spec designed, then we might just actually
have a new image format for the web which really is better than what we've
already got.

------
tericho
I'm not qualified to comment on BPG, but this is the first I've heard of Mr.
Bellard. I enjoy reading works from minds of this caliber. He seems to be a
model citizen for the programming community. Are there others I should know
about like Fabrice?

------
GhotiFish
So can anyone talk about the patent issues? I hear there are multiple holders
of HVEC patents and they are willing to use them. So if you use this library,
wouldn't you be liable?

I'd really like to know that. Because I'd _really_ like to use this.

------
grondilu
I've tried it with a picture of mine. The encoding process was painfully slow,
but I guess that does not concern the end-user much. The file size went from
1.2M in jepg to 164K in bpg, and the decoding was fairly fast. After turning
the image back into PNG the quality seemed OK but that's tough to assess
objectively.

The coolest thing is this javascript program that can decode and display the
pictures on-the-fly.

Definitely an image format that could save storage space and bandwith, IMHO.

------
sp332
Wow, I didn't even know there were open-source HEVC encoders. I thought there
were patent issues. Now I'm off to re-encode my bluray collection!

~~~
TD-Linux
There are still patent issues, and you still need to obtain a license to use
the software. You will never see this image format integrated into any other
open source projects, like Firefox, for this reason.

~~~
wmf
Like how you'll never see H.264, DRM, or WebKit in Firefox?

~~~
sp332
WebKit in Firefox?

~~~
derf_
He is referring to <[https://github.com/mozilla/firefox-
ios>](https://github.com/mozilla/firefox-ios>).

But you will note that none of those things are "in" Firefox. H.264 support in
the <video> tag is implemented via platform-specific APIs (which, for example
_still_ don't work on OS X). DRM requires a CDM binary blob, which is again
platform specific. You do not have the open-source freedom to port these
features to some other platform that does not support them.

------
ksec
Few questions and thoughts on top of my head.

1\. Why a Subset of HEVC Still Picture Profile? Why not just a use HEVC
Picture instead?

2\. Since JS sources are readable and being interpreted by VM ( Free Speech ),
patents issues should not be a problem?

3\. I am assuming the quality of BGP still has Lots and Lots improvement to be
made? Since all H.265 encoder hasn't had the time to be tuned. ( Compared to
x264 )

------
hyp0
I guess the JS is just for proof of concept until support is shipped with
browsers etc, but it isn't rendering properly in the stock Android browser
(4.2.2).

It gets to Lena's head in the first image, then becomes brigtly multi-
coloured, though it looks like the difference between colours right... as if
maybe an int overflow in the browser's JS implementation?

------
asah
holy crap, check this out:
[http://img1.buyersbestfriend.com/mkg/snackspage/images/bpg.h...](http://img1.buyersbestfriend.com/mkg/snackspage/images/bpg.html)

186,967 ==> 29,872 and indistinguishable, 6.25:1

(and pls tell me if it breaks on your browser - I want to push this live!!!)

adam

~~~
ChrisGranger
That's far from indistinguishable to me. It's actually _quite_ obvious that
the BPG is blurring detail at that compression ratio.

Edit: it's particularly noticeable in the wood grain patterns. Also, there's a
soft grey dot to the left of the top of the lamp, 100px or so, that's entirely
missing in the BPG. There are loads more examples...

Edit again: the color saturation of the rug is pretty washed-out as well.

~~~
asah
oops, I wasn't clear... it's meant as a giant background image, and the
quality competes with really nasty jaggies that start appearing below ~100KB
in size. Nobody will notice wood grain, a few missing details, etc.

~~~
nfoz
> a giant background image

why would you do this

------
PythonicAlpha
I would guess, that decoding speed can become an issue for websites, where
many images are already in the cache but are re-displayed rather often...

I write this, because I am building such an application and for now it has
many PNGs ... and yes, using a format like BPG would be fine, because I use
the PNGs only because of transparency ... but when redisplay is done via a
Java Script, I doubt that I could have the same speed. Loading is not so much
a limiting factor, since after some time, all relevant PNGs are already in the
browser cache.

Can anybody say something to this topic?

Of course, it would be great to have this integrated into the mayor browsers
soon ...

------
spb
Don't we already have WebP?

~~~
WhitneyLand
Yes but webp hasn't taken off as much as some would like as a defacto
standard.

BPG looks good upon cursory inspection. It seems to be more efficient than
WebP and supports 42-bit color. It also has .png's features of transparency
and lossless compression although I didn't see anything mentioned about
animation to replace .gif.

Bonus: since it's based on h.265 hardware support will come naturally and
should be just a software update for devices that already have HEVC
capability.

~~~
dahjelle
Not to mention it has a JavaScript port that means it can work it browsers
_today_.

~~~
kzrdude
Doesn't a JavaScript implementation offset most of the performance benefits?
Today we have browsers that are smart about when to cache the decoded image
and when not, etc; does that have to be reimplemented in javascript?

~~~
billconan
I have tried a dart webp decoder. it was so slow. decoding a small image
(400*300) takes 300msecs.

------
xyproto
This is the guy behind Tiny C Compiler, jslinux.org (running Linux in
JavaScript in the browser) and Qemu. (And several other interesting projects).
This alone makes me have great faith in BPG.

------
vmarsy
Impressive! Right now it requires a .js decoder, of 75kb.

Assuming a fast C++ decoder instead,(possibly GPU accelerated if the decoding
algorithm is well suited for it) and not using JS but what would be the
rendering times?

PNG are 4x bigger in his experiments, but interlaced PNG makes it more
pleasant to users since it can be rendered progressively, can BPG benefit from
such a thing?

edit: Interlacing is also used in JPEG, isn't it ?

It's a tradeoff, as a user, it's obvisouly a win situation when we have a low
bandwidth, and as a server it's obviously a win.

~~~
TD-Linux
Progressive rendering of HEVC is not possible in the same way as it is done
for JPEG or PNG. It is also not very suited to GPU rendering.

A C++ decoder with assembly optimizations could easily run four times as fast
as the Javascript version. Unfortunately distributing it would not be possible
due to patents.

~~~
kinghajj
Why would a C++ version have to worry about patents but the JS one does not?

~~~
TD-Linux
They both have to worry, just a different person. For JS, it is the page
author / publisher. For C++, it would be the browser vendor.

------
pronoiac
I think we crashed the site. Coral Cache has the front page, at least:
[http://bellard.org.nyud.net/bpg/](http://bellard.org.nyud.net/bpg/)

~~~
beefsack
[https://webcache.googleusercontent.com/search?q=cache:http%3...](https://webcache.googleusercontent.com/search?q=cache:http%3A%2F%2Fbellard.org%2Fbpg%2F)

~~~
jason_slack
bellard.org seems to be back up now..

------
libroj
Unfortunately, a lot of what I do with images is constrained by what can be
losslessly embedded in a PDF. Even if no influential organisation is opposed
to BPG it will take at least 3 years, I would guess, for BPG to become part of
the PDF standard, and then another year or so for it to become reasonable to
expect people to have PDF readers that can handle it. However, I wouldn't be
surprised to see BPG being widely used in 2020.

------
msoad
How does it compare to WebP? Also, how you measures lossy image quality? What
are the metrics? I hope it's not just by looking at result and judging.

~~~
TD-Linux
Looking at the result and judging is actually the best and most important
metric. There are numerical metrics, like SSIM, but they are always worse than
human comparison trials. You're optimizing for what looks best to a human in
the end, after all.

~~~
pornel
It's very hard to create a fair test.

The problem with human judgement that it's very imprecise. You're unlikely to
notice difference between JPEG at Q=90 and Q=95, but you can't say it doesn't
matter, because that can cause 40% difference in file size. OTOH objective
metrics can easily spot that.

"Looks the same to me" leaves a lot of room for error and you could be
unfairly telling one format to save much more detail than the other. And
almost by definition these are the details you're least likely to be able to
see.

There's also a pitfall of choosing image that looks subjectively "nicer"
rather than closer to the original. Codecs that are better (e.g. faithfully
preserve noise) may be judged as worse than another codec that's an accidental
Instagram filter.

------
lorddoig
Does anyone know what percentage of traffic is JPG/PNG? My curiosity wants to
try to put a dollar-value on the potential global bandwidth savings.

~~~
ahoge
[http://httparchive.org/interesting.php](http://httparchive.org/interesting.php)

------
than
Pronounced 'bee-peg'?

~~~
artmageddon
Kinda curious about this as well. I wonder if the alternate would be "bee-pee-
gee" which feels way too long to say :)

~~~
dluan
I naturally started saying in my head "bee-pee-gee", but since the P stands
for portable, maybe even "bee-porg" instead of "bee-peg"? :)

------
aidenn0
How many "better JPEGs" have been created now, without significantly
displacing JPEG's market share?

~~~
ChrisGranger
Indeed. Without out-of-the-box support in the major image editors like
Photoshop and all the popular web browsers, I don't think we'll see JPEG
overtaken any time soon.

~~~
dluan
Honestly, just last night I was looking and editing photos of a recent trip,
and I uploaded them to tumblr to share on a small photo blog I just recently
started. After spending some time trying to get the colors right, I realized
that tumblr's image compression is god awfully horrendous. I felt so bad
looking at my source JPEGs next to the tumblr post that I created a new flickr
account right then.

I don't necessarily think JPEG is bad, or that it's even Tumblr's fault that I
first thought to share photos there, but if any service/software started using
BPG I think I would excitedly try it out.

[e.g. [http://www.huddug.com/](http://www.huddug.com/) vs
[https://www.flickr.com/photos/127341162@N03/15762469070/](https://www.flickr.com/photos/127341162@N03/15762469070/)]

------
ajmurmann
This worked awesome on my MacBook and my PC, but I am getting some massive
rendering errors in Safari on my iPad 3:
[https://dl.dropboxusercontent.com/u/18855215/bpg.PNG](https://dl.dropboxusercontent.com/u/18855215/bpg.PNG)

------
_nickwhite
I really dig it, but I'm not yet familiar with BPG. It seems that decoding it
would take more processing power, and potentially be slower than JPG. Is this
the case? Under the "performance" section, decoding speed was not mentioned.

~~~
sp332
Yes, it's slower and takes more RAM than JPG. I can see a delay of about a
second in my browser. (Edit: I assume my browser is caching the data, but if
not, some of that time could be re-downloading the data.)

~~~
biot
[Edit] I had misunderstood the quoted Mozilla performance claims[0] to be
related to processing speed, whereas they refer to performance being a
measurement of quality. Thanks sp332 for the correction.

[0]
[http://people.mozilla.org/~josh/lossy_compressed_image_study...](http://people.mozilla.org/~josh/lossy_compressed_image_study_july_2014/)

~~~
sp332
Compression performance does not mean speed. It just means how well it
compressed the images. None of the tests on that page even mention speed.

------
azakai
Looks like the JS decoder is compiled using emscripten, very nice.

------
frontsideair
Very out of topic but, is lena.jpg still acceptable? I mean, tech industry is
getting better at inclusion but come on, are we still using that crop from
Playboy?

~~~
CamperBob2
Considering that Lenna herself is fine with it, I'd say so. (Unless you want
to deny a woman the right to permit the use of her own body for aesthetic,
erotic, or academic purposes, which is the logical if ironic outcome of some
schools of feminism.)

The problem with the Lenna imagery isn't political correctness, it's the fact
that it's a crappy scan from a magazine that always had crappy photography to
begin with.

~~~
j2kun
The "fine" thing would be to let Lena use photographs of herself in her own
work.

The problem is that women in science cannot read a paper on image processing
without being reminded that it's a boy's club.

~~~
CamperBob2
_The problem is that women in science cannot read a paper on image processing
without being reminded that it 's a boy's club._

I find this attitude far more patronizing than any conceivable choice of test
imagery in a graphics research project.

Suggest reading this before posting anything else about the delicate
sensibilities of "women in science":
[http://www.nytimes.com/2014/12/07/magazine/my-great-great-
au...](http://www.nytimes.com/2014/12/07/magazine/my-great-great-aunt-
discovered-francium-and-it-killed-her.html?_r=0)

Do you think any of those women would have spared a half-second's thought
about this issue? Somehow, I don't think so. I think they were too busy doing
science.

~~~
j2kun
I'm sure they do, because I can point to them speaking up about it.

[http://en.wikipedia.org/wiki/Lenna#Controversy](http://en.wikipedia.org/wiki/Lenna#Controversy)

I'm not saying all women are crippled by it, because they have to deal with
such nonsense while walking down the street every day. But can't we as
scientists strive to improve the status quo?

~~~
CamperBob2
(Shrug) I can point to outraged people "speaking up" about everything from
global warming to Jar-Jar Binks. It doesn't prove much, except that some
people enjoy a good bout of outrage.

The scientists in the article I linked, on the other hand, aren't speaking up
about anything, because they're all dead.

~~~
j2kun
You're implying that because the women you picked didn't speak up and just did
their work, that somehow that is the model all women should follow (because
Science, apparently). Yet you provide no evidence that they were not affected
by attitudes toward women. Just because they did not speak up does not imply
there were no negative effects of contemporary attitudes toward women. On the
other hand, I have evidence that researchers _are_ affected by it.

~~~
CamperBob2
_Yet you provide no evidence that they were not affected by attitudes toward
women._

The New York Times Magazine article is pretty long, it'll take you a few
minutes to read it. I'll wait.

Short version: they suffered _real_ discrimination, which you've diminished by
comparing it to the use of Lenna.jpg in a graphics project.

~~~
j2kun
Fine, I didn't read it. What is your point? That just because something is
worse for one person that we should ignore problems affecting another? That
someone else has suffered in the past is not a reason to give up improving the
status quo today.

------
thewarrior
The best coders seem to have the simplest websites.

------
tbro
Has anyone installed the bpg encoder bpg-0.9.2-win32 on a windows 7 machine,
and if so how did you do it?

------
joegaudet
Looks like his site is down, too much HN traffic.

------
loudmax
I appreciate the historical tradition of using the photo of beautiful young
Lena Söderberg as a test image, but it's time to move on. It's fun for us
hetero males, but like it or not, this sends a message to young women that
they aren't welcome in this field. I wish Fabrice Bellard would have left them
out of the demo set.

Having said that, all those demo photos do look good. I was wondering how we
were going to see a demo in the browser without built-in support, but leave it
to the man who put Linux in the browser to write a decoder in javascript. This
is an encouraging project.

~~~
gambiter
People are too sensitive. I'm a hetero male, and I don't find the image 'fun'
at all... it's just an image. It doesn't send a message to anyone. If
anything, I don't really care for it for image algorithm tests because the
palette is fairly flat.

No matter how you feel about the image itself, though, there is value in
continuing to use it... people are familiar with it, to the point of it
becoming almost cliché. This takes the focus off of the image and subject and
puts it squarely on the image algorithm.

~~~
sp332
The smallish downside of continuing with it may outweigh the very small
upside. The image by itself might not be a big deal, but we're trying to
disrupt the pattern of women being used only as objects, not perpetuate it.

~~~
lectrick
If we used a male model as a photographic test subject here, is that not the
sexist objectification of males? Should we use an unattractive person or an
animal instead? Are you going to attack the very notion of beauty or the fact
that women are the "fairer sex"?

~~~
sp332
Sure, it could be objectification. It's pretty cut and dried in this case
since the image was scanned from a magazine almost at random. The woman had no
agency in the decision at all.

Of course I'm going to attack that. Women are required to be beautiful or they
are deemed worthless, or failures. So they put a lot of work into it from a
fear of failure. Men can be beautiful too, especially to a woman's eye which
you've never seen through. If men were made to worry about their appearance as
much as women, we'd be "fair" too.

~~~
mnx
>Women are required to be beautiful or they are deemed worthless, or failures.

I am truly sad for you if that is the case in your enviroment, but please,
please do not generalise like that.

~~~
sp332
Fortunately, it is not the case in my environment. But it is a dominant
message.

------
faragon
Bellard is a genius.

------
joelthelion
Fabrice Bellard strikes again!

------
wtbob
> Supported by most Web browsers with a small Javascript decoder

Well, so much for that. Executing code in order to view an image is just
begging to be exploited…

------
Animats
The results only show marginal improvement.

What's needed is a compression method that doesn't introduce artifacts on hard
edges, as JPEG does, but is otherwise no worse at compression than JPEG. Then
we wouldn't need to do some things in JPEG and others in PNG, and we'd be
spared the pain of JPEG screenshots. Much better results on the Tecnick image
set (which is mostly hard edges) would indicate one had been found. The
results only indicate modest improvement in that area.

~~~
sillysaurus3
_The results only show marginal improvement._

The improvement is far from marginal. In particular:

... I just tried to link you to a BPG image, and discovered that I can't.

Well, I'm going to ignore that little flaw for the moment, because that's just
a browser feature. If BPG catches on, that's sure to change.

Anyway, the improvement is far from marginal:
[http://a.pomf.se/cdywsc.png](http://a.pomf.se/cdywsc.png)

In particular, look around her face, eyes, and the background. The JPG is not
just worse, but in fact very worse.

A more serious flaw is that it doesn't support animation. It doesn't need to
be a video format. It just needs to be able to play a sequence of frames in
succession. This is as easy as including a header that specifies how many
frames are in the animation and the duration of each frame, followed by the
image data itself. The fact that PNG doesn't have this has plagued the format
since the internet became popular.

That may seem like "a video format," but it's not. Video decoders optimize for
inter-frame compression, not intra-frame compression, so it's a different
problem altogether. BPG doesn't need to do everything, but it should probably
have basic animation.

~~~
cwyers
That depends on what you mean by "worse" and "very". I think for most use-
cases, those differences are not something likely to be noticed by the
majority of users.

~~~
sillysaurus3
The purpose of a test like this is to measure visual performance, and the JPG
result is performing very badly.

Open these two images in a separate browser tab, then switch back and forth
between them:

[http://a.pomf.se/fsnfxz.png](http://a.pomf.se/fsnfxz.png)

[http://a.pomf.se/lfzyrh.png](http://a.pomf.se/lfzyrh.png)

Those are the upper images of the test. Also try these, the lower images:

[http://a.pomf.se/bgqcag.png](http://a.pomf.se/bgqcag.png)

[http://a.pomf.se/hxlwcm.png](http://a.pomf.se/hxlwcm.png)

Again, JPG is not merely worse, but very worse. In fact, JPG makes it look
like she's wearing a hat that's made of crosshatch material at the top, when
in fact the top is composed of rings of fiber, not crosshatch.

