다음을 통해 공유


비디오 디인터레이스 방법

[Windows Media Format 11 SDK 이 페이지와 연결된 기능은 레거시 기능입니다. 원본 판독기 싱크 작성기 대체되었습니다. 원본 판독기싱크 기록기 Windows 10 및 Windows 11에 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 원본 판독기싱크 기록기 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

비디오 캡처 카드와 같은 일부 비디오 원본은 인터레이스된 디스플레이에 대한 비디오 데이터를 제공합니다. 인터레이스된 비디오의 각 프레임은 두 개의 필드로 구성됩니다. 위쪽 필드에는 비디오의 첫 번째 줄과 그 이후의 다른 모든 줄이 포함됩니다. 아래쪽 필드에는 비디오의 두 번째 줄과 그 이후의 다른 모든 줄이 포함됩니다. 따라서 한 필드에는 모든 짝수 번호가 매겨진 선이 포함되고 다른 필드에는 홀수 번호가 매겨진 모든 줄이 포함됩니다. 프레임을 구성하는 필드는 약간 다른 프레젠테이션 시간을 나타내므로 인터리브할 때 정적 이미지를 형성하지 않습니다.

컴퓨터 모니터에 비디오를 표시하려는 경우 비디오의 각 프레임을 하나의 이미지로 표시해야 합니다(한 번에 하나의 전체 프레임으로 비디오를 표시하는 이 방법을 프로그레시브 비디오라고.) 인터레이스된 비디오를 점진적으로 표시하는 경우 두 필드 간의 시간 차이로 인해 프레임이 제대로 표시되지 않을 수 있습니다. Windows Media 비디오 코덱과 Windows Media Video Advanced Profile 코덱은 모두 인터레이스된 콘텐츠를 프로그레시브 프레임으로 변환하는 전처리 기능을 지원합니다.

코덱 디인터레이스 입력 비디오를 사용하려면 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_디인터레이스_수직_하프사이즈_더블레이트 입력 세로 해상도의 세로 출력 해상도가 절반 이하이고 출력 프레임 속도 두 배 높은 경우 이 모드를 선택합니다. 예를 들어 입력 세로 비디오 해상도는 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 프레임의 위쪽 필드가 첫 번째 샘플임을 지정합니다.
클립의 첫 프레임은 DD 상단입니다 DD 프레임의 위쪽 필드가 첫 번째 샘플임을 지정합니다.
WM_DM_IT_CLIP의 첫 번째 프레임은 AA_BOTTOM입니다 AA 프레임의 아래쪽 필드가 첫 번째 샘플임을 지정합니다.
클립의 첫 프레임은 BB_바닥에 있습니다 (WM_DM_IT) BB 프레임의 아래쪽 필드가 첫 번째 샘플임을 지정합니다.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_BOTTOM BC 프레임의 아래쪽 필드가 첫 번째 샘플임을 지정합니다.
클립의 첫 번째 프레임은 CD 하단입니다. CD 프레임의 아래쪽 필드가 첫 번째 샘플임을 지정합니다.
클립의 첫 번째 프레임이 하단 DD에 있음 DD 프레임의 아래쪽 필드가 첫 번째 샘플임을 지정합니다.

고급 항목