Comments (3)
The implementation, that is both encoder and decoder have hardcoded limits of 8bit in the bias computation (which is then stored in 8bit). These limits seem not optimal when there are alot more than 8bits per sample. Theres also an issue with the golomb coder at 14bits and above.
So i would say its probably better for now to disallow this in the spec. We can always undo that OR decide to standarize a different solution for >8bps
from ffv1.
Since it reflects reality, I'm on board with a bit of clear info in the spec to say it isn't allowed.
(If it's there, I missed it...)
from ffv1.
[...] or it's a risk of defining files that don't exist in real life.
Generally speaking, I am not in favor of not defining files that don't exist in real life, as we extend sometimes the encoder or decoder without touching the spec, e.g. we have 9-bit support for all but grey & RGBA, 12-bit support for some color spaces only, 14-bit for only 1 color space, due to limitations in the list of pixel formats supported by the whole tool (so more complex to add these color spaces to the encoder) but we could add the support later (or in another encoder). Current wording in the spec permits to easily implement additional bit depth & color space mix. In my opinion different solutions should be reserved to a new version (when there is no big change, e.g. Bayer is a completely different color space without any definition in the spec, so we could extend v3 for that).
That said, and for this case, I may be in favor of exceptionally limiting Golomb-Rice to 8-bit, as we have Range Coder for all bit depths and we should limit our work, so limiting new work to Range Coder only.
BTW, I am wondering the historical reason Golomb-Rice exists in FFV1, as the focus seems to be on Range Coder (the start of the bistream is always with Range Coder). Would it make sense to consider Golomb-Rice as legacy and limit it to what exists only e.g. we would forbid it in v4 and/or Bayer?
from ffv1.
Related Issues (20)
- 4.6.2. plane_pixel_height has incorrect information on chroma planes
- Quant tables: reference decoder relies too much on reference encoder HOT 3
- [v4] Consider adding prediction to inter mode HOT 5
- sign_extend is used but not defined HOT 1
- IEEE CRC-32 referenced in spec is not a standard IEEE CRC-32 HOT 8
- JPEG2000-RCT transform equations are incomplete / don't match reference HOT 1
- few instances of lines too long HOT 2
- [v4] Consider other RCTs HOT 5
- section 3.8.1.2 needs to define get_rac HOT 8
- section 3.8.1.1 should have pseudocode HOT 16
- [v4] slices HOT 5
- Build produces pages of warnings and errors HOT 8
- Nothing in the Makefile removes the genarated *.svg files HOT 1
- reading through section 3.8.1.1 HOT 8
- add list of ffv4 goals and promises
- Renaming of the repo to ffv1-specification HOT 4
- FFV1 CUDA accelerated version HOT 7
- Handling of odd dimensions, subsampling and more than 1 slice
- remove exceptions from FFV1 version 4? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ffv1.