View Full Version : Implementation of high profile SEI data in x264...
Quarkboy
21st October 2005, 11:33
I was reading the h.264 specs, and I noticed that extra SEI info can be included in the video stream.
Three options, in particular, seem to me to be potentially quite useful, namely alpha picture, film grain, and most importantly, in loop deblocking strength adjustment.
At least in the last case, that might improve overall decoding speed (by not deblocking as much when it's not needed) and improve overall quality too, if I understand it correctly.
Do any decoders OR encoders out there support these functions at the moment? Are there any plans to implement them soon?
And can someone explain to me exactly what alpha pictures are for? I still don't really understand what they are.
Kopernikus
21st October 2005, 13:15
lavc doesnt decode SEI messages at the moment.
Alpha pictures store how opaque a pixel is (for blending,...)
bond
21st October 2005, 13:28
if a decoder would support this than my bet would be nero, moonlight or elecard-mainconcept
Manao
21st October 2005, 13:45
> in loop deblocking strength adjustment.
Afaik, it's only a sei saying if the picture shown should be the deblocked one or the not yet deblocked one ( but it doesn't change the strength of the inloop, that would b0rk things ).
> alpha picture
I don't see the point ( blending with what ? )
Anyway, film grain / deblocking disabling is supported by Ateme's decoder. Film grain is useless atm ( nobody generates grain... ) Disabling deblocking is useless too ( a decoder can provide that functionnality even without the SEI ). Bear in mind that all the information that are passed through SEI can be ignored OR can be given by the user when decoding.
Sharktooth
21st October 2005, 15:12
Film grain is useless atm ( nobody generates grain... )
ehr...
Manao
21st October 2005, 15:17
Well, nobody except some beta testers can generate it. I should have said that he couldn't yet generate it.
Doom9
21st October 2005, 15:32
actually there's film grain in HDX4. The results seems somewhat unsatisfactory to me when I tested HDX4 (see the latest codec comparison)
Manao
21st October 2005, 15:37
But normative film grain in SEI messages is different from HDX4's one, am I wrong ? I mean, SEI are part of the MPEG4-10, not part of ASP, so HDX4 didn't have to use AVC's film grain, so I assume it is not AVC's film grain.
bond
21st October 2005, 15:38
is hdx4's film grain different than the one from divx? does hdx4 actually store grain info somewhere in the file?
Doom9
21st October 2005, 16:16
actually, there's no standard for film grain in AVC high profile.. it's just that you can flag if there's grain to be reconstructed in the bitstream but no actual norm for how to do that. HDX4 is, to the best of my knowledge, the first and still only codec to filter out noise during compression, store it separately from the picture, and re-add it during decoding. That's not at all the same as the likes of film grain that you can add via the DivX, VPx or XviD decoder.. that one is purely arbitrary.
Manao
21st October 2005, 16:46
Actually, there is a standard to store grain for AVC. Two methods have been proposed, each of which defines how to generate noise from a standardized set of parameters.
One uses a frequency based approach ( it draws random DCT coefficients, shapes them according to the parameters, then IDCTs them ), the other uses an autoregressive approach ( autoregressive coefficients are the parameters ).
Ateme's encoder / decoder can generate / decode both types. And it generates it by analysing the video source.
bond
21st October 2005, 19:27
Ateme's encoder / decoder can generate / decode both types. And it generates it by analysing the video source.does the encoder also filter the grain away during encoding?
Manao
21st October 2005, 19:31
Taken from the Ateme sticky :When using the denoiser or the film grain modeler, the source is altered before being sent to the encoder.
Doom9
21st October 2005, 19:32
@manao: are you absolutely sure about that? I have before me a MSN log back from December when I was talking to bobo and he said
and nothing is explicitly specified on the encoder side
and but it's up to the deocder to restitute it or not
Manao
21st October 2005, 19:57
The standard specifies only how to decode it ( as it does for AVC itself, the standard only says how to build a decoder ).
Now, the encoder can do whatever it wants to find the coefficients, he can even try random coefficients if it wants. But they'll be normatively decoded afterwards.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.