coefficient probabilty.

24 views
Skip to first unread message

vijay

unread,
Apr 12, 2012, 6:46:54 AM4/12/12
to WebM Discussion
Hi all,

I have query regarding the probability used for token coefficients.

We use Prob coef_probs [4] [8] [3] [num_dct_tokens-1]; for token
probabilities.
Where 3rd dimension is measure of local complexity. For 1st token of
block, we check if left and above block have any non-zero
coefficients.If both block have non-zero then we take value "2", if
any one of have non-zero we take "1" otherwise if both contain no non-
zero element we take value "0" .

I have confusion incase of Y2 plane. If current MB is 16x16 (either
I16X16 or P16X16) that means it has the Y2 block also. For this MB if
above and/or left MB are B_PRED or SPLIT_MV that means no Y2 plane.
So for that neighbor what value of non-zero cofficient we should take?
Is it "0" ?

If value should be taken "0" then in reference code in encoder and
decoder I found descrepency.

If we see in tokenize.c in encoder folder. Function is void
vp8_tokenize_mb().

*********************************
if(has_y2_block)
{
tokenize2nd_order_b(x, t, cpi);
plane_type = 0;

}

*********************************

We observe that if any block is not Y2 block then we will not enter
into the tokenize2nd_order_b() function and in effect we will not
setting the above and left context which should be "0" for next MB. So
next MB will use previous values which mayn't be the correct one.

Please let me know if my undertanding is correct.

Regards,
Vijay.








|

vijay

unread,
Apr 13, 2012, 8:39:03 AM4/13/12
to WebM Discussion
Hi,

Can somebody answer my query?

Thanks,
Vijay.

Pascal Massimino

unread,
Apr 13, 2012, 8:57:24 AM4/13/12
to webm-d...@webmproject.org
Hi,

On Fri, Apr 13, 2012 at 5:39 AM, vijay <vkumar...@gmail.com> wrote:
Hi,

Can somebody answer my query?

i think paragraph 13.3 of RFC 6386 can shed some light here:

"
   For the first coefficient (DC, unless the block type is 0), we
   consider the (already encoded) blocks within the same plane (Y2, Y,
   U, or V) above and to the left of the current block.  The context
   index is then the number (0, 1, or 2) of these blocks that had at
   least one non-zero coefficient in their residue record.  Specifically
   for Y2, because macroblocks above and to the left may or may not have
   a Y2 block, the block above is determined by the most recent
   macroblock in the same column that has a Y2 block, and the block to
   the left is determined by the most recent macroblock in the same row
   that has a Y2 block.
"

So, basically, it's not the block immediately left or top to the current macroblock,
but the ones that last had an Y2 block in the left or top direction (skipping over
the ones that hadn't).



Thanks,
Vijay.
--
You received this message because you are subscribed to the Google Groups "WebM Discussion" group.
To post to this group, send email to webm-d...@webmproject.org.
To unsubscribe from this group, send email to webm-discuss...@webmproject.org.
For more options, visit this group at http://groups.google.com/a/webmproject.org/group/webm-discuss/?hl=en.


vijay

unread,
Apr 13, 2012, 10:02:01 AM4/13/12
to WebM Discussion
Thank you very much.

On Apr 13, 5:57 pm, Pascal Massimino <pascal.massim...@gmail.com>
wrote:
> Hi,
> > To post to this group, send email to webm-disc...@webmproject.org.
> > To unsubscribe from this group, send email to
> > webm-discuss+unsubscr...@webmproject.org.
> > For more options, visit this group at
> >http://groups.google.com/a/webmproject.org/group/webm-discuss/?hl=en.- Hide quoted text -
>
> - Show quoted text -
Reply all
Reply to author
Forward
0 new messages