2012-04-05 4 views
0

아래의 파이프 라인은 압축 된 JPEG 이미지를 저장하는 데는 문제가 없지만 gstreamer를 사용하여 무손실 압축 JPEG 이미지를 저장하는 방법이 있습니까?무손실 압축 JPEG gstreamer 요소?

gst-launch v4l2src 항상 복사 = false num-buffers = 1 chain-ipipe = true! 'video/x-raw-yuv, format = (fourcc) NV12, 너비 = 2176, 높이 = 1944'! dmaiaccel! dm365facedetect draw-square = true! dmaienc_jpeg! filesink 위치 = $ FILE_NAME

+0

JPG는 정의 상 손실 형식입니다. JPG로 저장할 때 데이터를 잃지 않는 것은 불가능합니다. 무손실이 필요한 경우 PNG –

+2

으로 이동하십시오. http://en.wikipedia.org/wiki/Lossless_JPEG – ShinTakezou

+0

@MarcB : 무손실 압축 PNG gstreamer 요소가 있습니까? – jacknad

답변

3

당신은 모든있는 GStreamer 플러그인을 설치 한 가정 (좋은 나쁜, 그리고 추한), 당신은 FFmpeg에있는 GStreamer 요소를 통해 당신의 처리에 무손실 비디오 압축기의 인상적인 수 있습니다. 여기에는 ffenc_png (PNG 인코딩 용), ffenc_jpegls (무손실 JPEG 알고리즘) 및 그다지 일반적인 것이 없습니다.

그러나 GStreamer 명령 줄을 올바르게 읽는다면 특정 유형의 하드웨어에 연결되는 일련의 사용자 지정 구성 요소를 호출하는 것처럼 보입니다. (인터넷 검색을 수행하고 있지만, 그것은). JPEG 인코더 구성 요소는 'dmaienc_jpeg'입니다. 체인 앞의 요소 (dm365facedetect)는 dmaienc_jpeg가 해석 할 수있는 데이터 만 출력 할 수 있습니다. 그러나 일반적인 색 공간이라면 FFmpeg 무손실 인코더를 통해 색 공간 변환을 통해 보낼 수 있습니다. 그 대답은 요소에 대해 'gst-inspect'를 호출하고 출력 (src 및 sink 데이터 유형)을 조사하여 확인할 수 있습니다.

새 데이터에 따른 업데이트 : 좋은 소식 : dm365facedetect 요소는 원시 YUV를 NV12 형식으로 출력합니다. 매우 유연하며 많은 옵션이 있습니다.

어떤 플랫폼을 사용하고 계십니까? 우분투 리눅스를 사용하는 경우, 사용하는있는 GStreamer 플러그인의 무리를 설치

apt-get install gstreamer0.10-plugins-good \ 
    gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly gstreamer0.10-ffmpeg 

일부 무손실 코덱 옵션 : PNG는 'pngenc'또는 'ffenc_png'(중 하나를 통해이 기술적으로 인한 손실의 작은 조금이 부과 될 수 있지만, YUV -> RGB 색상 공간 변환), 'ffenc_huffyuv', 'ffenc_jpegls'또는 'ffenc_ljpeg'. 인코딩 할 때는 avimux 구성 요소를 통해 보내십시오. 그래서, 명령 줄의 끝에 예 수정 :

... ! dm365facedetect draw-square=true ! ffenc_ljpeg ! \ 
    avimux ! filesink location=$FILE_NAME 

는 이전에 받고 있던 JPEG 데이터보다 다소 크게 무손실 코덱 데이터를 기대합니다. 다른 코덱을 실험 해보고 좋아하는 것을보고 원하는 툴체인을 사용하여 상대방의 데이터를 디코딩 할 수 있는지 확인하십시오 (FFmpeg 및 VLC는 항상이를 처리 할 수 ​​있어야합니다).

+0

예. 일부 맞춤 구성 요소가 있습니다. dm365facedetect는 TI DaVinci [TMS320DM368] (http://www.ti.com/product/tms320dm368)에서 [RidgeRun SDK] (https://www.ridgerun.com/developer/wiki/index.php/RidgeRun_2011Q2_SDK_User_Guide) 얼굴 주위에 직사각형을 그리는 HW Face Detect Engine. 그리고 네. gst-inspect는 플러그인 (145)과 기능 (520)의 보트로드를 반환하지만 ffenc_png 또는 ffenc_jpegls가 표시되지 않습니다. GStreamer 플러그인은 일반적으로 어떻게 설치됩니까? ffenc_jpegls 또는 ffenc_png에서 손실없는 JPEG 파일을 저장할 수 있습니까? 또한. 색이 필요 없어. 그레이 스케일은 괜찮습니다. – jacknad

+0

gst-inspect 결과는 [여기]입니다 (https://docs.google.com/document/d/19ovBIEPNz1BFKuJLjw20Q4YmP47Xu7dvVUu_okUn4Uo/edit) – jacknad

+0

gst-inspect의 결과를 게시 해 주셔서 감사합니다. 귀하의 질문에 대답하기 위해 좀 더 자세한 정보가 필요합니다 : 'gst-inspect dm365facedetect'및 'gst-inspect dmaienc_jpeg'의 출력을 게시하십시오. 또한 'gst-inspect TIDmaiVideoSink'를보고 싶습니다. –

관련 문제