Deinterlace 비디오로
[이 페이지와 연결된 기능인 Windows Media Format 11 SDK는 레거시 기능입니다. 원본 판독기 및 싱크 작성기에 의해 대체되었습니다. 원본 판독기 및 싱크 작성기는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 소스 판독기 및 싱크 기록기를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
비디오 캡처 카드와 같은 일부 비디오 원본은 인터레이스 디스플레이에 대한 비디오 데이터를 제공합니다. 인터레이스된 비디오의 각 프레임은 두 개의 필드로 구성됩니다. 위쪽 필드에는 비디오의 첫 번째 줄과 그 이후의 다른 모든 줄이 포함됩니다. 아래쪽 필드에는 비디오의 두 번째 줄과 그 이후의 다른 모든 줄이 포함됩니다. 따라서 한 필드에는 모든 짝수 번호가 매겨진 줄이 포함되고 다른 필드에는 홀수 번호가 매겨진 모든 줄이 포함됩니다. 프레임을 구성하는 필드는 약간 다른 프레젠테이션 시간을 나타내므로 인터리브할 때 정적 이미지를 형성하지 않습니다.
컴퓨터 모니터에 비디오를 표시하려는 경우 비디오의 각 프레임이 하나의 이미지로 표시되어야 합니다(한 번에 하나의 전체 프레임으로 비디오를 표시하는 이 방법을 점진적 비디오라고 함). 인터레이스된 비디오를 점진적으로 표시하는 경우 두 필드 간의 시간 차이로 인해 프레임이 제대로 표시되지 않을 수 있습니다. Windows Media 비디오 코덱과 Windows Media 비디오 고급 프로필 코덱은 모두 인터레이스 콘텐츠를 점진적 프레임으로 변환하는 전처리 기능을 지원합니다.
코덱 디인터레이스 입력 비디오를 사용하려면 IWMWriterAdvanced2::SetInputSetting 메서드를 호출합니다. 사용할 설정은 g_wszDeinterlaceMode. 디인터레이싱 모드를 다음 값 중 하나로 설정합니다.
값 | 설명 |
---|---|
WM_DM_NOTINTERLACED | 입력은 점진적입니다. 이전에 디인터레이싱 모드를 다른 값으로 설정한 경우 이 설정을 사용하여 디인터레이싱을 중지합니다. |
WM_DM_DEINTERLACE_NORMAL | 이 모드를 선택하여 인터레이스된 프레임의 짝수 및 홀수 필드를 혼합합니다(동작 보정 메커니즘 사용). 혜택:
|
WM_DM_DEINTERLACE_HALFSIZE | 출력 해상도가 입력 해상도의 절반 이하인 경우 이 모드를 선택합니다. 예를 들어 입력 비디오 해상도가 640 x 480픽셀이고 출력 비디오 해상도가 320 x 240픽셀인 경우 이 모드를 사용합니다. 혜택:
|
WM_DM_DEINTERLACE_HALFSIZEDOUBLERATE | 출력 해상도가 입력 해상도의 절반 이하이고 출력 프레임 속도가 두 배 높으면 이 모드를 선택합니다. 예를 들어 입력 비디오 해상도가 30개 인터레이스 프레임/초에서 640 x 480픽셀이고 출력 비디오 해상도가 60프레임/초에서 320 x 240픽셀인 경우 이 모드를 사용합니다. 혜택:
|
WM_DM_DEINTERLACE_INVERSETELECINE | 텔레신된 30프레임/초 비디오를 원래 필름의 24프레임/초로 변환하려면 이 모드를 선택합니다. 혜택:
|
WM_DM_DEINTERLACE_VERTICALHALFSIZEDOUBLERATE | 입력 세로 해상도의 세로 출력 해상도가 절반 이하이고 출력 프레임 속도가 두 배 높은 경우 이 모드를 선택합니다. 예를 들어 입력 세로 비디오 해상도는 30개 인터레이스 프레임/초에서 640 x 480픽셀이고 출력 세로 비디오 해상도는 60프레임/초에서 320 x 240픽셀입니다. 혜택:
|
혼합 콘텐츠의 경우 새 형식의 샘플을 전달하기 전에 필요에 따라 디인터레이싱 모드를 설정합니다. 예를 들어 점진적 입력으로 인코딩을 시작하려면 디인터레이싱 모드를 설정할 필요가 없습니다. 일부 샘플에 일반 디인터레이싱이 필요한 경우 디인터레이싱 모드를 WM_DM_DEINTERLACE_NORMAL 설정해야 합니다. 그런 다음 추가 점진적 샘플을 처리하려면 디인터레이싱 모드를 WM_DM_NOTINTERLACED 설정해야 합니다.
역 텔레사인 설정
역 텔레사인에 대한 설명은 역 텔레신 사용을 참조하세요.
디인터레이싱 모드를 WM_DM_DEINTERLACE_INVERSETELECINE 설정하면 IWMWriterAdvanced2::SetInputSetting을 호출하여 첫 번째 입력 프레임의 텔레신 패턴을 지정할 수 있습니다. 사용할 설정은 g_wszInitialPatternForInverseTelecine. 초기 패턴을 다음 값 중 하나로 설정합니다.
값 | 설명 |
---|---|
WM_DM_IT_DISABLE_COHERENT_MODE | 입력 미디어가 텔레사인 프로세스를 거쳤지만 프레임이 더 이상 예측 가능한 패턴이 아니라는 것을 지정합니다. 이는 일반적으로 텔레신 처리 후 미디어가 편집되었음을 나타냅니다. 이 설정을 사용하면 코덱이 원래 프레임을 자체적으로 재구성하려고 시도합니다. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_TOP | AA 프레임의 위쪽 필드가 첫 번째 샘플임을 지정합니다. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_TOP | BB 프레임의 위쪽 필드가 첫 번째 샘플임을 지정합니다. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_TOP | BC 프레임의 위쪽 필드가 첫 번째 샘플임을 지정합니다. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_TOP | CD 프레임의 위쪽 필드가 첫 번째 샘플임을 지정합니다. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_TOP | DD 프레임의 위쪽 필드가 첫 번째 샘플임을 지정합니다. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_BOTTOM | AA 프레임의 아래쪽 필드가 첫 번째 샘플임을 지정합니다. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_BOTTOM | BB 프레임의 아래쪽 필드가 첫 번째 샘플임을 지정합니다. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_BOTTOM | BC 프레임의 아래쪽 필드가 첫 번째 샘플임을 지정합니다. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_BOTTOM | CD 프레임의 아래쪽 필드가 첫 번째 샘플임을 지정합니다. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_BOTTOM | DD 프레임의 아래쪽 필드가 첫 번째 샘플임을 지정합니다. |