다음을 통해 공유


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 이 모드를 선택하여 인터레이스된 프레임의 짝수 및 홀수 필드를 혼합합니다(동작 보정 메커니즘 사용). 혜택:
  • 프로그레시브 디스플레이의 인터레이스 아티팩트가 크게 줄어듭니다.
  • Windows Media 비디오 코덱은 고품질의 압축 비디오를 생성합니다.
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프레임/초로 변환하려면 이 모드를 선택합니다. 혜택:
  • 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 프레임의 아래쪽 필드가 첫 번째 샘플임을 지정합니다.

고급 항목