BPG Image format
bellard.org
bellard.org
He's also made several other impressive hacks: https://bellard.org/
I've seen this in practice, so it's not theoretical. It's the main reason my friends don't even try.
But the reason is more subtle than that. Say you made BPG. If you don't have past accomplishments, people will tear you to shreds here. Yet the comments are all "Look at what this genius has made."
I'm trying, hard, to find a way to resist credentialism. A meritocracy is something I want to live in.
Look, the reason I'm writing this comment is because my friend just gave up on open sourcing their amazing project. Why? Because incentives. I've been trying to convince him to MIT the code, but I can't say I blame him for keeping it closed. And part of the reason is that the only people who get paid for writing open source side project software are those high-profile genius types that we're lauding on HN.
Credentialism. Reputation. Audience. These are harmful to a meritocracy. If you've made something good, no one should give a damn who you are or how many people like you.
I'm not sure what is called the kind of tabula rasa system you're advocating, but I don't think it's meritocracy.
The essence of meritocracy is that anyone can do something like this. And in this case, it's simply not true. No one would be paying attention if Ballard didn't write this, and that's at odds with the idea that you yourself could create it.
Another way of putting it is that in a meritocracy, each project should be judged on its own merits, independent of the author. Art is separable from the artist, but unless your culture values this, you get a clique of insiders.
An author has a promising idea but asks for people to invest early in order to iterate the idea to the point where it's strictly superior to existing alternatives. Investors want to know that the idea will bare fruit, and that the author will not abandon it. How do they evaluate the author's capacity to see the project through without resorting to the author's past history of seeing projects through, references, or credentials?
Moreover, what stops malicious actors from inundating us with garbage that takes longer to refute than to produce? We can't ban spammers because banning them is based on their past history, not what they're producing now. What if their next post isn't spam and has value?
Surely these considerations mandate that even if you believe people are insufficiently charitable to new entrants in the market of ideas, you can't throw the babies (credentials, reputation, audience) out with the bathwater. This is a good opportunity to position yourself as having made a provocative statement that will, of course, require some concessions to reason.
Nobody gets torn to shreds on HN for showing people their project, people get torn to shreds for trying to use open source and HN as a cynical self-marketing tool, especially when they can't back it up with something cool and interesting. Open source doesn't exist to further the career or finances or reputations of open source authors, it's just a nice little miracle when it does.
If someone makes something great, there's a teeny tiny chance it'll catch on to become widely used, and if that happens there's an even teenier, tinier chance that the creator will at some point get paid to work on it, but that's a tiny sliver of the open source world. If that's all your friend cares about, then the meritocracy is real and working. Someone who will only write open source to become rich and famous is clearly deeply confused about how and why any of this stuff exists in the first place, and until they grow up they can't be relied on to do good work for good reasons.
However, there's a silver lining. If instead of becoming the next Linus, someone simply wants to steer their career towards working on open source professionally, that's awesome and commendable. There are lots of companies and government agencies and so on that pay people to work on open source projects as their day-to-day job. That doesn't take social capital or name recognition, that just requires getting a job in one of those organizations, which span the gamut from tiny startups, to giant companies like Google/Apple/Microsoft/etc., to government agencies like NASA. Tons of people get paid to work on open source if that's what your friend cares about.
We all rely on open source tools, but lately they're coming exclusively from large companies that can afford to develop it. And that should worry us. It means we're losing the control we used to have.
In a scientific paper, the related work section doesn't present the past work of the authors, unless it's related to the topic at hand. There's a reason Ballard didn't mention himself (beyond signing the page at the bottom).
Do you have any evidence to support this?
In the age of GitHub and social coding I would have thought that open source is more individuals, and less corporate (percentage-wise) than ever before.
P.S. I work for my self and open source a fair bit. I tend to open source libraries rather than products, which is true for most companies. Facebook open source React, not Facebook.
Sure it's not everywhere, and sure I'd love it if more free software developers could afford to spend all of their time writing free software. That would be fantastic! But to say that it is worse now than it was previously? I'm afraid you are mistaken.
The thing you have to understand is that "control" in free software is different than control with other software. The "eyes" have it. If you are able to coordinate enough development, and you aren't working against the community, and you are producing things that people want, then you will be successful. Yes, a company that offers to pay people to do these activities is at a huge advantage. I'm not sure in what universe that's a bad thing. But the point of free software is freedom. If I don't like what you are doing and I can convince enough people to go in another direction, then I am free to do so. In fact, I don't even need other people... I can just do it myself, although it will take longer.
I don't know about you, but I choose to rely on tools that are free software. I'm not forced to do so. Although it is waaaaay easier than it used to be, I go out of my way to pick something that I know I can work on myself if I need to. Yes, I've read the code for both vim and emacs. I've written extensions. I've found bugs. I've fixed bugs in compilers, interpreters, desktop environments, the works.
It wasn't that long ago that I was forced to use MS tools in order to receive my salary. I vividly remember phoning up support one day, "I'm having problems with X. I have a reproduction scenario here if you like". "How many seats do you have?" "Seats? We're a platinum partner. I don't know how many seats we use." "Do you have less than 1,000 programmers there?" "Uh... Yeah, a lot less, but like I said, we're a platinum partner. We're supposed to have support" "I can't do anything for you unless you have more than 1,000 seats. But thank you for the bug report." "Just before we go, can I ask if the bug has been reported before? Is it likely to go into the next release?" "I can't answer that question unless you have 1,000 seats and then I can prioritise it for you."...
You get the idea. I don't care if free software is being funded by a company. I care that I can do something about it if my software doesn't work, or if I want to make an extension, or if I want to go in a completely different direction altogether.
If your friend does not think that they can make a business case for freeing up their code, then that's their decision. They don't owe me anything. It's their project and they can do what they want. If you are complaining that it would be nice that there were more viable business plans for free software, I'll join you on that -- but to be honest, I think most people don't look very hard before they conclude that it is impossible.
Then why not celebrate BPG? It appears to stand on its own as superior to older formats. Or celebrate Fabrice? I don’t know him, but his merit appears to be earned, I think.
Why do you think Fabrice bothers posting stuff when Google & Facebook & Microsoft exist? He could easily give up, fighting image & web standards is an impossible task for most people.
> my friend just gave up on open sourcing their amazing project
That’s too bad, but it’s extremely common because building an audience and solving real world problems takes a lot of work, work that’s not programming. Many amazing OSS projects fail for lack of adoption because they’re programming things that, as awesome as they may be, have no demonstrated need nor enough engagement or support to keep them going.
> Credentialism. Reputation. Audience. These are harmful to a meritocracy.
Credentialism I could agree with, but what’s wrong with reputation or audience? What is merit exactly, and how does it exist without reputation or audience?
Think carefully & be honest — how many software appps or projects do you invest your own time in that have no reputation or audience? There are people, early adopters, who try unknown things a lot. Most people aren’t early adopters and don’t want to spend their time waiting for bug fixes and improvements until the software they hope will work actually works. I’d say that not only is this natural, it’s necessary in a meritocracy.
Does he do public talks? I'd love to see him and shake his hand for many, many reasons.
To be fair his stack may not be as complete as the one we were aiming for, we spent a lot of time and money on the air interface.
I wonder why?
Discussion about the specification from 3 years ago: https://news.ycombinator.com/item?id=10604465 (32 comments)
HEIF is a standards based based MPEG image format that like BPG is based on HEVC. Due to HEIF being an MPEG standard and the traction it is getting in the marketplace it looks like we might finally have a true next gen format to replace JPEG.
None of this takes away anything from BPG. I just thought is was curious that given HEIF is the obvious elephant in the room, the linked page didn't mention HEIF and indeed until now, no other comment has mentioned it.
Another one to keep an eye on in the near future is AVIF which is AV1 in a HEIF container as standardized by the AOMedia. With so many big players being behind AV1 it'll be interesting to see if it can gain user traction faster than HEIF.
In less than one year from introduction, about a half billion iOS 11 users† are using it as their default photo format. Not bad for traction.
Of course it wasn't their decision, it just sort of happened.
␄
† I must confess I made up this number. >80% of iOS users are using iOS 11, last year there were 700M iPhones, there are some iPads too, and some Macs, though not all iOS hardware can do HEIF. Let's just say I'm probably within a factor two.
My opinion is that HEIF (using HEVC) is dead in the water as a widely used jpeg replacement, since there's pretty much zero chance of it being adopted on the internet due to it's patent/royalty situation.
I don't see sites (nor FOSS browsers like Firefox) agreeing to pay royalties to show/support images.
A more likely contender would be 'AVIF' based upon AV1:
https://aomediacodec.github.io/av1-avif/
But even this format which checks all the boxes will have a very hard time succeeding jpeg, as it is supported everywhere and simply 'good enough'.
Hopefully the HEVC patent holders are reasonable and license under liberal terms - the market and opportunity is much much larger than just videos and HEIF has decent chance of killing jpeg.
Something AV1 based for still image might find more widespread use.
https://www.techpowerup.com/240863/google-and-mozilla-push-f...
http://xooyoozoo.github.io/yolo-octo-bugfixes/#abandoned-fac...
I think the above link shows it best. Not only does the jpg get better details in the middle walls and broken windows, but it's also smaller. But the BPG gets the blue sky gradient without banding and artifacts.
Are you sure the details you're seeing in the jpg aren't just artifacts? There's only one thing I see in the middle wall that I am confident is supposed to be there in the jpg.
The nature of lossy compression is that you need to decide where the losses will be. I think BPG is making the right choices.
>Supported by most Web browsers with a small Javascript decoder (gzipped size: 56 KB).
56kb isn't particularly small, but for an image galary it might be worth it.
What are HEVC, AVIF, and HEIC licensing and why are browsers partial to some over the others?
The newer, better version is called h.265 or HEVC. BPG is a way to use HEVC's single-frame encoding to store an image. HEIC is essentially the same thing, but supported by Apple.
HEVC has ugly licensing, causing a lot of companies to come together to make their own license-free video format called AV1. AVIF is the image format based on AV1.
So nobody wants to go near HEVC, and if they did they would support HEIC over BPG. AVIF might get support, if they think it will be used enough to be worth it.
AVIF is based on AV1, by Open Media Alliance lead by Google, is royalty free. ( But not patent free, please don't mixed this up ) It is new and the spec has only been released for no more then 6 weeks. Google doesn't want to pay the licensing, especially when the initial licensing terms for HEVC include cost per streaming. All of Youtube video requires VP9 ( the predecessor of AV1 ) for 2K+ resolution, and does not and likely will not ever include HEVC.
Chrome does not support HEVC decoding even if you have hardware decoding. The same for Firefox. That is why the parent said BPG won't ever be included in browser, or Chrome and Firefox. M$ IE 11 / Edge and Safari both support HEVC.
Want them to care? File bugs. Have _everyone_ file bugs. Bug popularity and duplicate marking surfaces issues that need to be prioritised. File them for _all_ the big browsers, right now, before you take the time to respond to this comment: file them on https://developer.microsoft.com/en-us/microsoft-edge/platfor..., https://bugzilla.mozilla.org, https://bugs.chromium.org/p/chromium/issues/list, and https://bugs.webkit.org
"Getting it" is not creating worthless busywork for maintainers by spamming their bug trackers with pointless issues — unless you're reporting to the black hole that is Apple's RADAR — it might be actually deciding to take on the issue, getting a hold of the relevant stakeholders and asking if and what it would take for this to be merged if you implemented it, and being ready to be told "no" and "nothing because it won't be".
This is not "busywork for maintainers", that is how updating specs work. You WONTFIX a spec when it's too early, and then people can refile once the spec's been reworked, made usable, etc. If your project is the size of a browser, the number of issues you immediately close rivals or even eclipses the number of issues you actually work on - it's why you have weekly/daily triage sessions to go "what's now in our bin since last triage? dupe dupe wontfix dupe assign request-for-clarification wontfix, done let's get to work"
I work for one of these companies, pretty sure I have at least a decent idea what I'm talking about. We WONTFIX specs that are too drafty, and then one or even more years later, you refile an implementation issue because the world has changed, and what was WONTFIX in the past, is now worth doing.
You can actually see this same pattern as far back as the 60's. When the most dominant player in the tech market adopts a technology, and it's not encumbered by patents or proprietary technology or something stupid like that, it becomes a de facto standard. (It helps when they actually standardize it, but it isn't necessary)
Comparing large size to large size, the difference in resolution (to me) seems minor. The difference in filesize is 2kb, but it takes 56kb javascript to add browser support.
Can somebody explain what I'm not understanding about the benefits here?
It's also a good way to start deploying the technologies before it receives full adoption.
I think the hope is that soon browsers will implement BPG themselves, so no javascript will be required.
My first focus point was the light on the right bottom side.
My second focus point was the details of the bridge where it blends with the sky.
My third focus point was the sun.
My fourth focus point was the rest of the framework I missed in ref point two.
Medium vs medium BPG is slightly bigger. We're talking about < 1 kB here. Small vs small JPG is slightly bigger. We're once again talking about < 1 kB here. Such differences are irrelevant over 2G even, so I'm cool with them.
The quality however, on these 3 focus points, is night and day. As soon as you get JPG to small or tiny, you see block artifacts. BPG not. From this sample, I'd say that JPG medium =~ BPG small and JPG small =~ BPG tiny. So, based on that example, BPG delivers a better quality or a better compression depending on your viewpoint/interests.
Also, browser support is just a temporary bloat issue. But yeah, we'll see which standard takes over from JPEG... there are so many, right? Plus, hardware will have to start supporting that standard as well. Look at how difficult microUSB and 3.5 mm are to replace.
[1] https://xooyoozoo.github.io/yolo-octo-bugfixes/
[2] https://xooyoozoo.github.io/yolo-octo-bugfixes/#pont-de-queb...
I’ve read about BPG before, but not sure I noticed alpha support. This is intriguing! I’m a bit curious: what are the use cases for a lossy image with an alpha channel? BPG doesn’t have a lossless mode, does it? Games maybe?
And I love that it has both pre-multiplied and un-pre-multiplied storage. PNG’s un-pre-multiplied only is what prevents adoption of PNG for so many alpha related workflows.
Acording to the linked site: "Lossless compression is supported."
Basically any image that's not flat and has a shape cut out of it (you can do this with CSS nowadays, but an alpha channel is cleaner and part of the image, allowing sharing/reuse). I personally would have loved it for old oval portraits for Wikipedia where I'd be able to make the background transparent. Currently, you have to use PNG which isn't lossy and doesn't lend itself to photographs.
My question was about lossy alpha specifically. I use alpha a lot, but I've never seen a production workflow that used lossy alpha. The alpha channel is more sensitive to compression artifacts because unlike a 3-channel sRGB image, you have no guarantees about how it gets used or what it's composited over. JPEG is designed with specific channel tolerances loosely based on the differences most humans can see in the red, green & blue channels. Since alpha applies to all channels of the background and foreground, you'd have to make extremely conservative choices with the compression. I'm not certain, but at first glance it appears to me that BPG with alpha has visible artifacts. When I look at the dice images here: https://bellard.org/bpg/gallery2.html the green one on the left has some severe banding in the edges where the one on the right is smoother.
Yes, games. Web animation. Ad banners. I usually use 8-bit PNG with quantized compression ( https://pngquant.org/ ).
Is it patent encumbered then? And can it replace JPEG in such case?
My understanding is that it's biggest problem is decode speed.
Also JPEG was 1990 iirc so it's closer to 30 years old by now.
Similar compression to HEIF, but it's a much simpler container.
https://bugzilla.mozilla.org/show_bug.cgi?id=1111277
> Thomas Daede [:TD-Linux]
> Comment 13 • 3 years ago
> The licensing costs for HEVC makes implementing BPG in Firefox impractical.
> In addition, supporting a patent encumbered image format is not in line with Mozilla's goals of promoting the free and open web.
> BPG's technical performance is impressive, but a successor to JPEG needs to not regress on the freedom of usage that JPEG offers.
It's HEVC-based, so it might be able to outperform FLIF for in-browser decoding speed.
The BPG encoder as a whole is released under the GPL version 2 license. The BPG encoder sources excluding x265 are released under the BSD license. The x265 library is released under the GPL version 2 license. "
They did actually try to get the ICC (International Criminal Court) involved. But the judges demurred, citing an obscure software patent from 2002 and suggesting The Hague's War Crimes Tribunal as a better venue.