[Elphel-support] 答复: 答复: 答复: 答复: 答复: 答复: 答复: 答复: 答复: 答复: Re: Quote for 1 NC393-Stereo camera

Oleg support-list at support.elphel.com
Fri May 4 15:00:07 PDT 2018


> What is different of the format yuv and yours jp4? How can I get yuv-data?
> If I want to get high quality image not to be compressed, whether I choose
> the yuv data or jp4 data? Thank you!


See https://wiki.elphel.com/wiki/JP4

JP4 is 4:0:0 YCbCr encoded. After reordering back blocks of pixels you get
the pixel values of the Bayer pattern. Try this python script
<https://wiki.elphel.com/wiki/JP4#python> for deblocking. After deblocking
you can:
* unapply gammas to get to linear scale
* unapply gains to work with unamplified data

I want to get camera image raw data(.jp4) buffer, but I cannot get it
> through gstreamer. I should do a demo app with C/C++, how can I get the
> camera image raw data, and keep the two camera sync?
>
>
The sensors are always in sync (if exposure time is less than 1/fps).

Your problem is to download matching jp4 images from different ports
buffers, correct?

If yes then here's what you can do in your program - example for port 0 and
port 1:

*I.* Without stopping compressor/sensors

*step 1* Read current image pointers in port 0 and port 1 buffers:

port0: http://192.168.0.9:2323/pointers
port1: http://192.168.0.9:2324/pointers

(responses are xml, extract <this>...</this> value)
port0:

> ...

<this>55801952</this>

...

port1:

> ...

<this>xxxxxxx1</this>

...


And so:
$THISPOINTER0 = 55801952
$THISPOINTER1 = xxxxxxx1

*step 2 *Read meta data

http://192.168.0.9:2323/$THISPOINTER0/meta
http://192.168.0.9:2324/$THISPOINTER1/meta

Responses are xml - extract and compare timestamps (from <timestamp>...</
timestamp>)

*step 2a *If timestamps don't match and 'port 0 timestamp' < 'port 1
timestamp' - you will need check one frame back for port 1.

Note: there a short help how to navigate the buffers:
http://192.168.0.9:2323

port1: http://192.168.0.9:2324/$THISPOINTER1/prev/pointers

> ...

<this>xxxxxxx2</this>

...

$NEWPOINTER1 = xxxxxxx2

next read timestamp from http://192.168.0.9:2324/$NEWPOINTER1/meta and
compare. If 'port 0 timestamp' still < 'port 1 timestamp' then
$THISPOINTER1 = $NEWPOINTER1, repeat this step

*step 3* When timestamps are finally matching, download image(s):
http://192.168.0.9:2323/$THISPOINTER0/img
http://192.168.0.9:2324/$THISPOINTER1/img

Here, we are assuming all requests are performed quickly enough

*II.* With stopping triggering

*step 1 *
Set TRIG_PERIOD=0

... next steps are the same as in I. but most likely the latest timestamps
will match and you won't have to navigate through buffers:
meta: http://192.168.0.9:2323/meta
meta: http://192.168.0.9:2324/meta
image: http://192.168.0.9:2323/img
image: http://192.168.0.9:2324/img

*step X*
Restore TRIG_PERIOD

I could probably make a script to do those things and put on the camera.

https://wiki.elphel.com/wiki/Using_gstreamer please look at the red
> rectangle area, what is this mean?

This is outdated information. It should work as described here
<https://wiki.elphel.com/wiki/Tmp_manual#RTSP>.
So, after you start the streamers:

> elphel393~# /usr/bin/str

To watch a stream with gstreamer from PC, example:
port0: gst-launch-1.0 rtspsrc location=rtsp://192.168.0.9:554 !
rtpjpegdepay ! jpegdec ! videoscale ! video/x-raw,width=640,height=480 !
xvimagesink sync=false
port1: gst-launch-1.0 rtspsrc location=rtsp://192.168.0.9:554 !
rtpjpegdepay ! jpegdec ! videoscale ! video/x-raw,width=640,height=480 !
xvimagesink sync=false

 And this web paper introduce an stream of yuv-format(“gst-launch -v
> rtspsrc location=rtsp://192.168.0.9:554 ! queue ! rtpjpegdepay ! queue !
> jpegdec ! queue ! \

videorate ! capsfilter caps="video/x-raw-yuv, format=(fourcc)I420,
> width=(int)1024, height=(int)768, framerate (fraction)25/1" ! \

queue ! avimux ! filesink location=/tmp/test.avi”), but in you setting web
> of image, I cannot find the value point to the yuv


Value point? This is an old example - I cannot make it work.

Best regards,
Oleg Dzhimiev
Electronics Engineer
phone: +1 801 783 5555 x124
Elphel, Inc.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://support.elphel.com/pipermail/support-list_support.elphel.com/attachments/20180504/d875982d/attachment-0001.html>


More information about the Support-list mailing list