DSPRelated.com
Forums

YCrCb demultiplexing on TMS320DM6437

Started by archilles_ray87 January 19, 2011
Hi, I'm new to the group, and I have a problem regarding TMS320DM6437 on image processing.

If i want to demux a YCrCb image captured from CCD camera into corresponding unpacked luma, chroma r and chroma b data using the 'IMG_yc_demux_le16' function, can I do it this way?

#include

/* Video Frame buffers: */
static FVID_Frame *frameBuffPtr = NULL;

/* Video Driver Handles: */
static FVID_Handle hGioVpfeCcdc = NULL;

/* for NTSC image 720 x 480 which in 345600 pixels, and YCrCb ratio is 4:2:2 */
short y[172800]; /*initialize array for Unpacked luma data.*/
short cr[86400]; /*initialize array for Unpacked chroma r data.*/
short cb[86400]; /*initialize array for Unpacked chroma r data.*/

/* suppose the video display driver is properly set */

FVID_exchange(hGioVpfeCcdc, &frameBuffPtr);
IMG_yc_demux_le16(345600,frameBuffPtr->frame.frameBufferPtr,y,cr,cb);
When I debugged the program, it will always run up to the 'FVID_exchange' function, step over and not executing the 'IMG_yc_demux_le16' function. Can anyone tell me what's the problem is and how to fix it? Any help and suggestion is greatly appreciated.
Regards,
Ray

_____________________________________
archilles,

I not sure I understand your scenario.

If I do understand it correctly..

Then
1) be sure the watchdog is disabled
2) display mixed source/assembly
3) single step the assembly code

I would expect the library functions do not have the source available for the
debugger and it seems you are stepping the source code.
It will be necessary to step the assembly code

R. Williams
---------- Original Message -----------
From: "archilles_ray87"
To: c...
Sent: Wed, 19 Jan 2011 04:29:54 -0000
Subject: [c6x] YCrCb demultiplexing on TMS320DM6437

> Hi, I'm new to the group, and I have a problem regarding TMS320DM6437
> on image processing.
>
> If i want to demux a YCrCb image captured from CCD camera into
> corresponding unpacked luma, chroma r and chroma b data using the
> 'IMG_yc_demux_le16' function, can I do it this way?
>
> #include /* Video Frame buffers: */
> static FVID_Frame *frameBuffPtr = NULL;
>
> /* Video Driver Handles: */
> static FVID_Handle hGioVpfeCcdc = NULL;
>
> /* for NTSC image 720 x 480 which in 345600 pixels, and YCrCb
> ratio is 4:2:2 */ short y[172800]; /*initialize array for
> Unpacked luma data.*/ short cr[86400]; /*initialize array
> for Unpacked chroma r data.*/ short cb[86400];
> /*initialize array for Unpacked chroma r data.*/
>
> /* suppose the video display driver is properly set */
>
> FVID_exchange(hGioVpfeCcdc, &frameBuffPtr);
> IMG_yc_demux_le16(345600,frameBuffPtr->frame.frameBufferPtr,y,cr,
> cb);
>
> When I debugged the program, it will always run up to the
> 'FVID_exchange' function, step over and not executing the
> 'IMG_yc_demux_le16' function. Can anyone tell me what's the problem is
> and how to fix it? Any help and suggestion is greatly appreciated.
>
> Regards,
> Ray
------- End of Original Message -------

_____________________________________
Ray-

> Hi, I'm new to the group, and I have a problem
> regarding TMS320DM6437 on image processing.
>
> If i want to demux a YCrCb image captured from CCD
> camera into corresponding unpacked luma, chroma r
> and chroma b data using the 'IMG_yc_demux_le16'
> function, can I do it this way?
>
> #include /* Video Frame buffers: */
> static FVID_Frame *frameBuffPtr = NULL;
>
> /* Video Driver Handles: */
> static FVID_Handle hGioVpfeCcdc = NULL;
>
> /* for NTSC image 720 x 480 which in 345600 pixels, and YCrCb ratio is 4:2:2 */
> short y[172800]; /*initialize array for Unpacked luma data.*/
> short cr[86400]; /*initialize array for Unpacked chroma r data.*/
> short cb[86400]; /*initialize array for Unpacked chroma r data.*/
> /* suppose the video display driver is properly set */
>
> FVID_exchange(hGioVpfeCcdc, &frameBuffPtr);
> IMG_yc_demux_le16(345600,frameBuffPtr->frame.frameBufferPtr,y,cr,cb);
> When I debugged the program, it will always run up to
> the 'FVID_exchange' function, step over and not executing
> the 'IMG_yc_demux_le16' function. Can anyone tell me
> what's the problem is and how to fix it? Any help and
> suggestion is greatly appreciated.

It could be that execution did go into the function, but something bad happened in the "function prolog", which then
returned before the first executable line of C code in the function was reached.

Do you see any linker warnings, like "function declared implicitly"? Are you absolutely sure of the parameters you're
passing? No NULL ptrs, no params that should be non-zero?

-Jeff

_____________________________________