View Full Version : Blox video codec
Hi!
Some time ago I've started working on a new video codec. Since it has become quite usable (i. e. encoding and playback work) I thought that it's time to introduce it to a broader audience and get some feedback :) .
The homepage of this project is: http://www.ii.uj.edu.pl/~jezabek/blox/
About the codec: there is nothing revolutionary in this codec (yet :D ), it's based on similar principles as MPEG - in fact it was started because I wanted to better understand the basics of DCT-based compression. The quality and speed are quite crappy at the moment, but now that the basic infrastructure is complete I'm planning to spend more time on improving them.
I would like to hear your opinions and comments on this codec. If you're a developer and notice problems that you've come across earlier (and that you possibly know how to solve), I will be grateful for help - Blox is still in an early stage of development and surely contains many bugs/bad design choices.
Thanks,
JJ
unmei
21st May 2004, 04:16
first off, it works. =)
Now, the problems i found: the direct show decompressor seems to have quite some startup problems in itself. When i play the file in MPC there is first a lag - the video starts black for ca 10 frames, but the direct show decoder shows black for about 2.5 seconds (60 or so frames) and then the direct show decoder outputs wrong colors (like some colors replaced by others) for about 10 sec, then after a scenechange (about the 9th keyframe) all direct show decoder related problems are gone.
i found these effects seem related to startup of the codec or player. When i replay the file w/o closing the player they do not appear. I think it's also possible you won't see them on a faster computer because, even if the CPU here is not at 100% on startup, it seems the duration of the distortion is somehow related to how much CPU (or RAM) it has at hand.
When i talked about direct show decoder problems i meant, they don't show up when i browse the file with VirtualDubMod.
The test file i made, i used the default max quality but unchecked the smooth checkbox. Actually i expected a huge but quite lossfree encode, what i got is not that huge but it shows many artifacts. I wonder if you could not set the max higher - i mean these artifacts don't look like errors, but like the "sacrifice" of a lossy encoder. I'm going for a encode with the slider somewhere in the middle next so i can see how small it will get.
Now all this might sound very discouraging, but i think it is not! This codec works - it doesn't crash and the output looks like the input, just the speed and quality are to be improved.
sample (http://www.hta-bi.bfh.ch/~seilf/tila-blox2.mkv) (7.43mb, MKV)
Originally posted by unmei
[B]first off, it works. =)
Thanks for testing it :)
Now, the problems i found: the direct show decompressor seems to have quite some startup problems in itself. When i play the file in MPC there is first a lag - the video starts black for ca 10 frames, but the direct show decoder shows black for about 2.5 seconds (60 or so frames) and then the direct show decoder outputs wrong colors (like some colors replaced by others) for about 10 sec, then after a scenechange (about the 9th keyframe) all direct show decoder related problems are gone.
Yes, I can see it too with the file you provided. I'll have to investigate it once I get home.
i found these effects seem related to startup of the codec or player. When i replay the file w/o closing the player they do not appear. I think it's also possible you won't see them on a faster computer because, even if the CPU here is not at 100% on startup, it seems the duration of the distortion is somehow related to how much CPU (or RAM) it has at hand.
When i talked about direct show decoder problems i meant, they don't show up when i browse the file with VirtualDubMod.
Maybe that's because there's no directshow decoder, just the VfW wrapper ;)
The test file i made, i used the default max quality but unchecked the smooth checkbox. Actually i expected a huge but quite lossfree encode, what i got is not that huge but it shows many artifacts. I wonder if you could not set the max higher - i mean these artifacts don't look like errors, but like the "sacrifice" of a lossy encoder. I'm going for a encode with the slider somewhere in the middle next so i can see how small it will get.
It's because I started with a quantization matrix with high coefficients. Unfortunately the code for the entropy coding won't work with another matrix ATM - I'm currently working on improving the Huffman compression, the highest quality setting should look much better in the next release (it will probably take more space though).
Now all this might sound very discouraging, but i think it is not! This codec works - it doesn't crash and the output looks like the input, just the speed and quality are to be improved.
As I said, this is just a starting point. I'm trying to make it better :) .
Thanks,
JJ
General Lee D. Mented
22nd May 2004, 03:04
How did you get VFW to work right? I've been trying for 4 years.
Originally posted by General Lee D. Mented
How did you get VFW to work right? I've been trying for 4 years.
Hi!
Mostly by trial and error, because MS's documentation leaves many questions open. The VfW driver source is available here (http://www.ii.uj.edu.pl/~jezabek/blox/driver.cpp), I hope this will help you.
Regards,
JJ
getting used to vBcode
Selur
17th December 2004, 17:45
just wondering if it's still in development and if there'll be a update sometime :)
JJ
14th January 2005, 23:10
Hi,
Good to hear that someone still remembers this codec :)
Regarding your question:
My master thesis will be based on Blox - it will serve as a proof of concept for some ideas that I've been researching lately. So this project is definitely alive :D , although I've started to write new code only recently. I'm planning to release a new build at the end of January, of course it will be announced here :) .
Some of the features I'm currently working on:
- better motion vector prediction; there was almost no MV prediction in 0.1.0, so I'm expecting some bitrate savings here,
- better entropy coding (range coding instead of Huffman coding) - this might help when coding the motion vectors
These changes will result in somewhat smaller files, but won't increase the quality of the encodings. On the quality side I need to hunt down a bug which causes some noise in the decoded image regardless of the quantizer used - this is probably a rounding problem at the quantization stage.
These are the changes which will probably make it into 0.2.0. If anyone's interested I can write down a summary of my ideas and plans for the future development of Blox and post it here; some of these ideas have already been partially implemented and will show up in a future build.
Thanks,
JJ
Originally posted by Selur
just wondering if it's still in development and if there'll be a update sometime :)
DeathTheSheep
15th January 2005, 22:35
Wow, this thing uses JPEG-style artifacts...! Interesting...
IgorC
16th January 2005, 04:06
Originally posted by DeathTheSheep
Wow, this thing uses JPEG-style artifacts...! Interesting...
maybe you have your own better codec?
DeathTheSheep
16th January 2005, 20:52
eeeeheheheeee... Maybe I do... (No, I most certainly do NOT, for I don't have one at all. I just use Fusion/XVid or AVC).
Come now, IgorC. I happen to think JPEG-style artifacts are intriguing and are worthy of note. They are far superior to blockiness (although the codec itself is named "Blox"-- a misnomer, and a clever one. I like it).
I beleive it is exteremely difficult for an individual to develop his/her own codec; I wouldn't know where to start, for one! (Perhaps finishing high-school might be of some aid...)
Frankly, I am fasinated by this project and urge it to continue. Good luck with future development!
Bring a bit of CHEER into your life, man! BAaa!
MSlv
16th January 2005, 21:31
the codec is pretty good for a begginer. The high motion scenes look ok, no blocks with the default settings.
but the static scenes have a lot of flickering. There was a scene, from a movie I encoded with Blox, which had a lot of trees and a road in the middle. This scene looks like it's raining because of the flickering.:D
This looks promising. I wish you a happy time improving it's speed and quality!
708145
20th January 2005, 00:18
I'm also looking forward to the next release of this codec!
Maybe you could give us a glimpse at the matrix you use since it seems to favour ringing over blocking big time.
bis besser,
Tobias
Selur
20th January 2005, 07:24
yup, nice to here blox is still alive :)
DeathTheSheep
20th January 2005, 22:47
...and kickin'!
Pandela
18th October 2019, 19:41
...Bump?
Sorry for reviving this stale bread but does anyone have the driver.cpp (http://www.ii.uj.edu.pl/~jezabek/blox/driver.cpp) source that Jan posted? I was a little late to the party and the file has been lost in the sands of time ;-;
I've tried emailing Jan but I don't think the email on the Blox codec page is active anymore.
Both of the archive.org links didn't save it in time, either...
http://web.archive.org/web/20160616005355/http://ww2.ii.uj.edu.pl/~jezabek/blox/driver.cpp
http://web.archive.org/web/20160609091815/http://www.ii.uj.edu.pl/~jezabek/blox/driver.cpp
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.