2013-04-22 3 views
2

내가 다루는 시나리오는 실제로 다음과 같습니다. OpenGL에서 생성 된 화면을 가져와 알파 채널을 유지하면서 HDMI를 통해 FPGA 구성 요소로 보내야합니다. 하지만 지금은 HDMI를 통해 전송되는 데이터는 RGB (알파 채널이없는 24 비트)입니다. 그래서 어떻게 든이 포트를 통해 알파 비트를 강제로 보내는 방법이 필요합니다.HDMI를 통한 비디오의 알파 투명도 유지

참조 이미지 : 내가 생각할 수있는 http://i.imgur.com/hhlcbb9.jpg

하나의 솔루션은 RGB 버퍼 내에서 알파 채널을 혼합하면서 RGB에 RGBA 모드에서 화면 버퍼를 변환하는 것입니다. 예를 들어

:

The original buffer: [R G B A][R G B A][R G B A] 
The output i want: [R G B][A R G][B A R][G B A] 

요점은 모든 단일 픽셀을 통해 갈 필요하지 않습니다. 하지만 전혀 OpenGL을 또는 기술 (비디오 코어 커널?)

+0

해결책을 찾아 냈습니까? 알파 채널이 HDMI 링크를 통과하지 않는 이유는 무엇입니까? 24 비트 컬러를 지원하려면 HDMI 사양 1.3 이상이 필요합니다. – kevinf

+0

@kevinf, 저는 현재 이것을 사용할 수있는 프로젝트를 진행 중입니다. 누구든지 해결책을 찾았습니까? –

+0

@PaulKnopf 프로젝트와 관련하여 다른 방향으로 나아갔습니다. 그래도 비디오 처리 경로에서 알파 채널에 대해 더 많이 배우고 싶습니다. – kevinf

답변

1

OpenGL을 프레임 버퍼를 사용하여 가능하다면 잘 모르겠어요

당신은 실제로 framebuffer, 또는 어떤 종류의를 의미합니까 조직? 프레임 버퍼 크기를 조정할 수 없으므로이 이미지의 크기는 이되며 크기가 25 % 큽니다. 실제로 그렇게 할 수는 없습니다.

크기 조정만으로 텍스처를 만들 수 있습니다. 일부 버퍼에 glGetTexImage으로 텍셀 데이터를 가져와야하고 glTexImage2D으로 텍셀 데이터를 다른 텍스처로 업로드해야합니다. 단순히 pixel transfer format 및 텍스처 너비를 적절히 변경하면됩니다. 읽기에는 GL_RGBA을 사용하고 쓰기에는 GL_RGB을 사용하며 내부 형식은 GL_RGB8입니다.

성능은 거의 확실하지 않습니다. 그러나 그것은 해야합니다.

아니요,이 문제가 발생하게 만들 수있는 간단한 호출이 없습니다.

+1

안녕하세요, 답장을 보내 주셔서 감사합니다. 내가 다루고있는 시나리오는 실제로 다음과 같습니다 : OpenGL에서 생성 된 화면을 가져와 알파 채널을 유지하면서 HDMI를 통해 FPGA 구성 요소로 보내야합니다. 하지만 지금은 HDMI를 통해 전송되는 데이터는 RGB (알파 채널이없는 24 비트)입니다. 그래서 어떻게 든이 포트를 통해 알파 비트를 강제로 보내는 방법이 필요합니다. 어떤 제안이 있으십니까? Alpha Buffer (스텐실 버퍼와 같은)를 얻는 방법이 있습니까? 감사합니다. –

+0

@AkitoEki : 모든 것이 관련성이 있다면, 질문에 넣어야합니다. 그리고 "알파 버퍼"같은 것은 없습니다. 색상은 최대 4 개의 별도 채널로 구성되며 그 중 하나는 알파입니다. –

+0

Nicol에게 감사 드려, 나는 그림과 함께 나의 질문을 갱신 할 것이다. :) –

1

비디오 카드의 다른 rgb 또는 hdmi 비디오 출력을 통해 OpenGL에서 알파 채널을 개별적으로 보낼 수 있습니다. 이제 PC에서 RGB를 하나의 케이블로 출력 한 다음 알파를 다른 케이블로 출력합니다. 귀하의 알파는 여전히 그레이 스케일로 변환되어야하므로 여전히 24 비트입니다. 그런 다음 FPGA에서 어떤 신호가 키인지 선택하십시오. 귀하의 FPGA가 크로마 키를 지원한다고 가정합니다.

이전에 비슷한 일을했는데 SDI를 지원하는 특정 비디오 카드를 사용하는 Brainstorm이라는 프로그램을 사용하여 RGB와 알파를 별도의 비디오 채널 (케이블)로 분리 한 다음 비전 믹서에서 키잉.

그러나 오늘은 PC에서 여러 비디오 채널을 먼저 혼합 한 다음 최종 혼합 비디오를 RTMP 스트리밍 서버 또는 DVI-SDI 스캔 변환기로 직접 출력하는 새로운 솔루션을 만들었습니다.

관련 문제