[Mp4-tech] [H.264] Deblocking across Slices/SliceGroups
Mohit Garg
mgarg nvidia.com
Thu Feb 2 17:11:51 ESTEDT 2006
Thanks Gary and John. It clears my doubt.
regards
Mohit Garg
Nvidia, Bangalore
________________________________
From: Gary Sullivan [mailto:garysull windows.microsoft.com]
Sent: Thursday, February 02, 2024 2:29 AM
To: Mohit Garg; mp4-tech lists.mpegif.org
Subject: RE: [Mp4-tech] [H.264] Deblocking across
Slices/SliceGroups
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/20060202/b771ae0b/attachment.html
More information about the Mp4-tech
mailing list