Saturday, September 11, 2010

debugging video/image formats over JTAG

If you pay 10,000 Euros for a Lauterbach JTAG debugger, you better use it to full extent :P

We can use Lauterbach to debug various image formats with data.image command.


It will be handy to debug/verify output of codec, or check sanity of a frame before posting to display.

Command syntax
Data.IMAGE <address> <horiz> <vert> [/<format> | <options>]
                        
    <format>:       MONO, CGA, GrayScale8, JPEG
                         Palette256 <red> <green> <blue> …
                         Palette256X6 <address>
                         Palette256X12 <address>
                         Palette256X24 <address>
                         RGB111, RGB555, RGB555LE, RGB565, RGB565LE,
                         RGB888, RGB888LE, RGBX888, RGBX888LE,
                         YUV420, YUV422, YUV422P, YUV422PS, YUV422W, YUV422WS
    <options>:     BottomUp
                         FullUpdate
More details can be found in Lauterbach Commands document Lauterbach General Commands Reference
Example commands
to display buffers of various pixel formatFor YUV 4:2:0
Data.IMAGE C:0x40a1b0bc 320. 240. /YUV420

For NV12 YUV 4:2:0 Packed semiplanar, we need to break up into Y buffer and a UV buffer.
Data.IMAGE a:0x60000000 1920. 1080. /STRIDE 0x4000 /GS8
Data.IMAGE a:0x68001000 960. 540. /STRIDE 0x8000 /RGB565


PS.
A sample view is shown above, with Y-buffer, and uv-buffer, with commands used on window header.
(note in this case, we use strided and physical address of  a 2D buffer directly. Also, some padding used by codec is seen as junk on edge of video frame)

No comments:

 
Copyright 2009 dev.blog. Powered by Blogger. Statistics