[Mp4-tech] [H.264] Deblocking across Slices/SliceGroups

Gary Sullivan garysull windows.microsoft.com
Wed Feb 1 12:59:07 ESTEDT 2006


Mohit et al,
Reply interspersed below.
Best Regards,
Gary Sullivan
________________________________
	From: mp4-tech-bounces lists.mpegif.org
[mailto:mp4-tech-bounces lists.mpegif.org] On Behalf Of Mohit Garg
	Sent: Tuesday, January 31, 2024 9:30 PM
	To: mp4-tech lists.mpegif.org
	Subject: [Mp4-tech] [H.264] Deblocking across Slices/SliceGroups
	Hello All, 
	I have some confusion regarding the Deblocking specifications.
The specifications [Ref: ITU-T Rec. H.264 (03/2005) - Prepublished
version] in Section 8.7, say that when  "disable_deblocking_filter_idc
is equal to 2, macroblocks in different slices are considered not
available during specified steps of the operation of the deblocking
filter process." It also mentions that
filterLeftEdgeMBFlag/filterTopEdgeMBFlag=0 when
disable_deblocking_filter_idc =2 and mbAddrA/mbAddrB is not available.
Since 'availability' (Section 6.4.5) is defined to treat macroblocks in
different slices as not available, this means that when
disable_deblocking_filter_idc =2 we do not have to apply the filter
across slice edges. Some questions:
	~ What about the case when disable_deblocking_filter_idc =0? Do
we have to filter across slices in this case? 
	[GJS: ] Yes.  I think the spec is clear about that.  It
specifies what the decoder is supposed to do in that case, and what it
says the decoder must do is not dependent on whether the edges are slice
boundaries or not.  By the specified decoder actions, the answer is
KNOWN.  Do not be mesmerized by a web of preconceptions.
	 Doesn't this conflict with the fundamental idea behind slices
(error resilience)?
	[GJS: ]  Not necessarily. In fact, coupling deblocking with
error concealment strategies seems to often improve the concealment
quality.  And the slice structuring still lets the decoder find a spot
in the picture at which it can recover the video data in subsequent
slices of the frame at least approximately (i.e., except for exact
values near slice edges).  But in any case if you are making an encoder
and you think it isn't a good idea to filter across the slice edges,
then just set disable_deblocking_filter_idc equal to 2 and the decoder
will do what you want.  Generally, we try to let encoders decide what is
a good idea and what isn't -- decoders just do what they are told to do
(within the limited scope of proper receipt of conforming bitstreams, of
course).
	~ What about sliceGroups? Since every sliceGroup edge will
necessarily be a slice edge, does the above apply to sliceGroup edges
too? 
	[GJS: ] Yes.  As you said, the edge of a slice group will be the
edge of a slice.  So what applies to the edge of a slice will apply to
the edge of a slice group. 
	Thanks and regards, 
	Mohit Garg 
	Nvidia Graphics Pvt. Ltd. 
	"We may say that we KNOW, but by our actions it is KNOWN" --
Anon 
	Personal Homepage: http://mohitgarg.vectorstar.net
<http://mohitgarg.vectorstar.net>  
	Social Work: http://www.noragging.com <http://www.noragging.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: /pipermail/mp4-tech/attachments/20060201/1d44ef4a/attachment-0001.html


More information about the Mp4-tech mailing list