DirectShow 보유 DIB 의 조작 이미지의 보폭   [목차열람] [주소복사] [슬롯비우기]
이미지의 보폭
 
Microsoft DirectX 9.0

이미지의 보폭

그래픽스 하드웨어나 GDI 가 비트 맵용의 메모리 버퍼를 할당하는 경우, 어떠한 경계에 정렬시키기 위해서(때문에) 여분의 바이트로 행을 패딩 하는 일이 있다. 바이트 단위의 이미지의 폭에, 추가한 패딩의 폭을 더한 것을,"보폭" 이라고 부른다. 보폭은, 이미지의 최초의 행의 선두로부터 다음의 행의 선두로 나아가기 위해서(때문에) 필요한 바이트수이다고 생각해도 괜찮다.

RGB DIB 의 경우, 보폭은 항상, 적어도 DWORD 경계에 정렬된다. 이것은, 비트 깊이가 2 의 짝수승인 YUV 포맷에도 해당한다. 디코더 및 비디오 소스는,BITMAPINFOHEADERbiWidth 멤버가 이미지의 폭인 포맷을 제시해야 하는 것이다. 비디오 렌더러는,biWidth 가 표면의 보폭에 동일해져,VIDEOINFOHEADER 또는 IDEOINFOHEADER2 구조체의 rcTarget 멤버가 이미지의 폭을 지정하도록(듯이), 이 포맷을 변경하는 경우가 있다. 비디오 렌더러는, 출력 핀으로 IPin::QueryAccept 를 호출해, 새로운 포맷을 다음의 미디어 샘플에 접속해, 변경한 포맷을 제시한다. 더 자세한 정보는, 「동적 포맷 변경」을 참조할것. 비디오 렌더러가 보폭을 지정하기 위해서 포맷을 변경하지 않는 경우는,biWidth 의 값을 가장 가까운 DWORD 경계에 말아야 하는 것이다. 다만, 2 의 거듭제곱이 아닌 YUV 포맷은 제외하다.

32 비트 픽셀 포맷이어도, 보폭이 이미지의 폭과 동일하면 가정해서는 안 된다. 많은 그래픽 카드에서는 64 비트 이상의 alignment가 필요하게 되기 때문이다.

↑TOP