Some questions about VP8 decoder assembly functions

9 views
Skip to first unread message

Ashok K

unread,
Sep 23, 2010, 1:21:00 AM9/23/10
to apps-...@webmproject.org

 

Hi,

 

This is Ashok from SASKEN communication Technologies, we were working on VP8 decoder porting on cortex A8 and in the code there are some functions like

 

#if HAVE_ARMV7

void vp8_push_neon(INT64 *store);

void vp8_pop_neon(INT64 *store);

#endif

 

I would like know whether this code is written for ARM7 and if so then how to include them in our project and also can we make use of them for cortex A8.

 

Also I would like to know is there any other assembly functions already written for ARM which we can use directly in our project. Because now I have to optimize the code for higher resolution like VGA, D1, 720P…..

 

Thanks & Regards,

Ashok K H

| Sasken Communication Technologies Limited | Senior Software Engineer| Semiconductor Solutions Group |

Tel: +91-20-6641 8558| Mob: 91-97301 40357 | ash...@sasken.com

 

 

 

 



SASKEN BUSINESS DISCLAIMER: This message may contain confidential, proprietary or legally privileged information. In case you are not the original intended Recipient of the message, you must not, directly or indirectly, use, disclose, distribute, print, or copy any part of this message and you are requested to delete it and inform the sender. Any views expressed in this message are those of the individual sender unless otherwise stated. Nothing contained in this message shall be construed as an offer or acceptance of any offer by Sasken Communication Technologies Limited ("Sasken") unless sent with that express intent and with due authority of Sasken. Sasken has taken enough precautions to prevent the spread of viruses. However the company accepts no liability for any damage caused by any virus transmitted by this email.
Read Disclaimer at http://www.sasken.com/extras/mail_disclaimer.html

Yunqing Wang

unread,
Sep 23, 2010, 8:55:00 AM9/23/10
to apps-...@webmproject.org
Hi Ashok,

The ARM optimization code are under vp8/common/arm and
vp8/decoder/arm. If HAVE_ARMV6 is on, it calls ARMV6 functions, and if
HAVE_ARMV7 is on, it calls NEON functions (you could tell it easily
since they all have "neon" in their name).

Regarding to your question on

#if HAVE_ARMV7
void vp8_push_neon(INT64 *store);
void vp8_pop_neon(INT64 *store);
#endif

this code is written for ARM7 NEON. For ARM NEON, d8-d15 are
callee-saved registers. vp8_push_neon() saves d8-d15 values before
going into decoding, and vp8_pop_neon() restores those saved values
after decoding is done. The prevents problem when these registers are
used in user application and their values need to be preserved before
and after the decoding. For example, if you measure time before and
after the decoding for testing performance, the beginning time needs
to be preserved, which is floating-point number and can be in d8-d15.
Therefore, d8-d15 values have to be stored to make it right.

Once you configure using armv7 target (for example: armv7-linux-gcc),
HAVE_ARMV7 is on and this code will be included in your build.

Please let us know if you have more questions.

Yunqing

> --
> You received this message because you are subscribed to the Google Groups
> "Application Developers" group.
> To post to this group, send email to apps-...@webmproject.org.
> To unsubscribe from this group, send email to
> apps-devel+...@webmproject.org.
> For more options, visit this group at
> http://groups.google.com/a/webmproject.org/group/apps-devel/?hl=en.
>

Reply all
Reply to author
Forward
0 new messages