When I see a solid color in a video, I'm inclined to think that that would compress the most easily, since there is no motion, no value change, or anything like that.
Why is it that blocks show up in these areas? For example, a solid black area should theoritically contain no information, other than that it contains no information, right?
Additionally, is there a way to cure this? I've noticed it most with Divx, but also with other codecs.
blocks in the solid areas of video.
- madbunny
- Joined: Tue Jun 17, 2003 3:12 pm
blocks in the solid areas of video.
Build a man a fire, and he will be warm for a night. Set a man on fire, and he will be warm for the rest of his life.
- Qyot27
- Surreptitious fluffy bunny
- Joined: Fri Aug 30, 2002 12:08 pm
- Status: Creepin' between the bullfrogs
- Location: St. Pete, FL
- Contact:
DivX has a little bug like that; it wouldn't compress black properly, and it'd look a little weird (I think they fixed it, though; I've never had that problem with 5.0.5 Pro). Generally, though, if you set the bitrate high enough you won't see any blocks (or at least, they're too small to detect. My 3500kbps DivX encodes don't have a problem with solid black screens(and they rarely ever need to get up to 3500; they usually cap out at around 2300-2500 but hover down near 2000). Of course, they're also 480x320 or thereabouts, not full DVD res.
It would compress the most easily, if the frame order is set correctly (don't ask me how to adjust that manually, since I don't think you can; except for the Keyframe interval setting, which I don't think dictates this). Try having the video resized to something like 480x320, with DivX's (preferably 5.0.5 or 5.0.5 Pro, because of the Original 1-pass encoding option) keyframe setting set to every 50 frames and the scene change threshold set to 100%. Set the Original 1-pass to 3500kbps and let it go. It shouldn't have a problem with black whatsoever. You can probably drop it down to 1500 or so without any noticeable blocking, either (just make sure to drop the res accordingly; DivX is very tricky on the corrolation between it's bitrate and the resolution of the video). Just make sure 5.0.5 has the profile conformancy disabled, otherwise you won't be able to use the Original 1-pass encoder.
It would compress the most easily, if the frame order is set correctly (don't ask me how to adjust that manually, since I don't think you can; except for the Keyframe interval setting, which I don't think dictates this). Try having the video resized to something like 480x320, with DivX's (preferably 5.0.5 or 5.0.5 Pro, because of the Original 1-pass encoding option) keyframe setting set to every 50 frames and the scene change threshold set to 100%. Set the Original 1-pass to 3500kbps and let it go. It shouldn't have a problem with black whatsoever. You can probably drop it down to 1500 or so without any noticeable blocking, either (just make sure to drop the res accordingly; DivX is very tricky on the corrolation between it's bitrate and the resolution of the video). Just make sure 5.0.5 has the profile conformancy disabled, otherwise you won't be able to use the Original 1-pass encoder.
My profile on MyAnimeList | Quasistatic Regret: yeah, yeah, I finally got a blog
- Zero1
- Joined: Fri Jan 02, 2004 12:51 pm
- Location: Sheffield, United Kingdom
- Contact:
I've also experienced the problem but with XviD.
Solid colours have fluctuating blocks of colour (I think they term them as macroblocks) I'd guess each block is about 16x16 pixels, It's really quite disturbing. I'm hoping AD or Tab will know which feature is causing this and can perhaps help us eliminate it
Solid colours have fluctuating blocks of colour (I think they term them as macroblocks) I'd guess each block is about 16x16 pixels, It's really quite disturbing. I'm hoping AD or Tab will know which feature is causing this and can perhaps help us eliminate it
- AbsoluteDestiny
- Joined: Wed Aug 15, 2001 1:56 pm
- Location: Oxford, UK
- Contact:
It's not that the areas are solid colours... it's that they are ever so lsightly not solid.
See, when you compress something it gets quantized which is a form of averaging.
Now say you have one part of this "solid" colour where the average is pure black - 0. Great, you make a macroblock completely with 0 as the colour.
Now, what happens if the next block along actually has a little bit of noise. Oh well, this is a dark area, they wont notice... so let's average it. It averages to 2.
Uhoh. Suddenly when you put the blocks next to each other you can see a clear difference between them.
So, in short, this is a problem with all mpeg-style encoders as the quantization stage is prone to create these problems when averaging.
So how can you fix it?
Well there are two options:
1) Encode at a higher bitrate, which encodes the noise correctly and doesnt quantize as much.
2) Pre-filter the source with a gentle filter at a large radius so that they are ACTUALLY the same colour not just seemingly so.
See, when you compress something it gets quantized which is a form of averaging.
Now say you have one part of this "solid" colour where the average is pure black - 0. Great, you make a macroblock completely with 0 as the colour.
Now, what happens if the next block along actually has a little bit of noise. Oh well, this is a dark area, they wont notice... so let's average it. It averages to 2.
Uhoh. Suddenly when you put the blocks next to each other you can see a clear difference between them.
So, in short, this is a problem with all mpeg-style encoders as the quantization stage is prone to create these problems when averaging.
So how can you fix it?
Well there are two options:
1) Encode at a higher bitrate, which encodes the noise correctly and doesnt quantize as much.
2) Pre-filter the source with a gentle filter at a large radius so that they are ACTUALLY the same colour not just seemingly so.
- madbunny
- Joined: Tue Jun 17, 2003 3:12 pm
I had a feeling it was something along those lines, thanks for the clarification.AbsoluteDestiny wrote:It's not that the areas are solid colours... it's that they are ever so lsightly not solid.
2) Pre-filter the source with a gentle filter at a large radius so that they are ACTUALLY the same colour not just seemingly so.
Is there a particular filter that you would suggest as a starting point?
Build a man a fire, and he will be warm for a night. Set a man on fire, and he will be warm for the rest of his life.

