인코딩 메서드 (Microsoft 미디어 파운데이션)

대부분의 Windows Media 오디오 및 비디오 코덱은 여러 인코딩 메서드를 지원 합니다. 각 방법을 사용 하는 방법과 시기를 알면 고품질 압축 콘텐츠를 만드는 데 도움이 될 수 있습니다.

Encoding 메서드는 디코더가 압축 된 입력 데이터를 관리 하는 데 사용 하는 버퍼에 집중 합니다. 이 버퍼는 스트림의 비트 전송률 (비트/초) 및 버퍼 창 (밀리초)으로 정의 됩니다. 인코딩할 때 코덱은 버퍼의 제한은을 유럽 연합 합니다. 버퍼에 대 한 자세한 내용은 누설 버킷 버퍼 모델을 참조 하세요.

상수 비트 전송률 인코딩

Windows Media 오디오 및 비디오 코덱 중 하나로 인코딩된 스트림의 비트 전송률이 일정 하지 않습니다. CBR (상수 비트 전송률) 인코딩은 약간의 잘못 된 용어입니다. CBR 인코딩된 스트림의 구별 기능은 샘플 크기의 변형을 제한 하는 작은 버퍼 창입니다. CBR 인코딩은 주로 네트워크를 통해 대상으로 스트리밍되는 콘텐츠에 사용 됩니다. 이러한 시나리오에서는 일관 된 대역폭 사용량을 사용 하는 것이 중요 합니다.

구성 관점에서 CBR 인코딩은 인코딩 시작 전에 출력 콘텐츠의 평균 비트 전송률 및 해당 비트 전송률에 적용 되는 버퍼 창을 모두 설정 한다는 점에서 다른 모드와 다릅니다. 다른 모드에서는 인코더를 구성할 때 이러한 값 중 하나 또는 둘 모두를 알 수 없으며, 해당 값이 인코딩 되는 동안 코덱에 의해 계산 됩니다. CBR은 Windows Media Encoder DMOs에서 사용 하는 표준 인코딩 모드입니다.

Two-Pass 상수 비트 전송률 인코딩

표준 CBR은 단일 인코딩 패스를 사용 합니다. 콘텐츠를 입력 샘플로 제공 하면 코덱이 콘텐츠를 압축 하 고 출력 샘플을 반환 합니다. 입력 샘플을 두 번 처리 하는 것도 가능 합니다. 첫 번째 패스에서 코덱은 계산을 수행 하 여 콘텐츠에 대 한 인코딩을 최적화 합니다. 두 번째 패스에서 코덱은 첫 번째 패스에서 수집 된 데이터를 사용 하 여 콘텐츠를 인코딩합니다.

2 패스 CBR 인코딩에는 많은 이점이 있습니다. 버퍼링 요구 사항을 변경 하지 않고도 표준 CBR 인코딩에 대 한 상당한 품질 향상을 생성 하는 경우가 많습니다. 이를 통해이 인코딩 모드는 네트워크를 통해 스트리밍되는 콘텐츠에 적합 합니다. 2 패스 CBR을 사용할 수 없는 유일한 경우는 라이브 원본에서 콘텐츠를 인코딩하고 두 번째 패스를 사용할 수 없는 경우입니다.

2 패스 CBR 스트림의 출력 미디어 유형은 표준 CBR 스트림의 출력 미디어 유형과 동일 합니다. 사용할 비트 전송률 및 버퍼 창을 계속 지정 합니다. DMO를 구성 하는 경우 두 개의 패스를 수행 하도록 설정 해야 합니다. 첫 번째 패스에 대 한 샘플 보내기가 완료 되 면 DMO에 게 알려야 합니다.

Quality-Based 가변 비트 전송률 인코딩

CBR 인코딩은 실제로 상수 비트 전송률을 유지 하지 않기 때문에이를 구분 하는 것은 작은 hazy 수 있습니다. CBR과 VBR의 주요 차이점은 사용 되는 버퍼 창의 크기입니다. VBR 인코딩된 스트림은 일반적으로 CBR 인코딩된 스트림에 비해 크기가 많은 버퍼 창을 포함 합니다. 품질 기반 VBR은 예외 이며, 비트 전송률이 나 버퍼 기간을 정의 하지 않습니다. 대신 품질 값을 설정 합니다. 그러면 코덱이 생성 된 스트림의 버퍼 요구 사항에 관계 없이 해당 기간 동안 인코딩 된 미디어의 품질이 일관 되도록 데이터를 압축 하려고 합니다.

품질 기반 VBR은 단일 인코딩 패스를 사용 하 고 많은 양의 압축 된 스트림을 만드는 경향이 있습니다. 인코딩이 완료 되 면 디코더가 데이터의 압축을 해제할 수 있도록 코덱이 버퍼 요구 사항을 설정 합니다. 인코딩된 VBR 스트림은 네트워크를 통한 스트리밍에 적합 하지 않으므로 품질 기반 VBR은 로컬 재생 시나리오 (또는 다운로드 및 재생)에만 사용 해야 합니다.

제한 없는 가변 비트 전송률 인코딩

품질 기반 VBR과 달리 무제한 VBR은 특정 품질 수준으로 인코딩되지 않습니다. 대신, 지정 된 비트 전송률을 유지 하면서 콘텐츠를 가능한 가장 높은 품질로 인코딩합니다. 제한 없는 VBR은 두 인코딩 패스를 사용 하며, 스트림에 대 한 버퍼 창 설정을 지정 하지 않는다는 점을 제외 하 고는 2 패스 CBR과 비슷합니다. 즉, 평균 비트 전송률이 설정 된 값 보다 작거나 같은 경우에는 스트림의 개별 샘플 크기에 제한이 없습니다.

제한 없는 VBR은 버퍼 요구 사항에 따라 요구 사항을 유지 하는 몇 가지 재생 시나리오가 있으므로 제한 된 사용입니다. 코덱은 버퍼 크기에 대 한 제어를 제공 하지 않고 버퍼 창에서 인코딩 후 필요한 값을 설정할 수 있습니다. 대부분의 경우 버퍼 크기 또는 대역폭 사용의 일관성을 걱정 하지 않는 경우 품질 기반 VBR을 사용 해야 합니다.

Peak-Constrained 가변 비트 전송률 인코딩

최종 인코딩 모드는 최대 제한 된 VBR입니다. 제한 없는 VBR과 마찬가지로이 모드는 두 인코딩 패스를 사용 하 고 지정 된 비트 전송률로 인코딩합니다. 그러나 최대 제약 된 VBR을 사용 하면 인코딩에 대 한 피크 값도 구성할 수 있습니다. 최대 값은 일반 버퍼 구성 값과 유사 합니다. 최대 비트 전송률 및 최대 버퍼 창이 있습니다. 이 파일은 최대 값에서 설명 하는 버퍼를 따르기 위해 인코딩되고 스트림의 전체 평균 비트 전송률이 지정한 평균 비트 전송률 값 보다 작거나 같아야 합니다.

제한 된 VBR은 이해 하기 어려울 수 있습니다. 다음은 사용 되는 버퍼링 모델을 고려 하는 가장 쉬운 방법입니다. 스트림은 버퍼를 정의 하는 데 사용 되는 최대 비트 전송률 및 피크 버퍼 창을 포함 하는 CBR 스트림입니다. 일반적으로 최대 비트 전송률은 매우 높습니다. 인코더는 표시 된 예상 평균 비트 전송률 값이 스트림 기간 동안 유지 되는지 확인 합니다. 스트림의 특정 지점에서 평균 비트 전송률은 스트림 기간 (초)으로 나눈 비트의 총 스트림 크기 보다 크다는 것이 보장 됩니다.

다음 예제를 고려해 보세요. 평균 비트 전송률이 16000 비트, 초당 48000 비트의 최대 비트 전송률, 3000 (3 초)의 최대 버퍼 기간을 사용 하 여 스트림을 구성 합니다. 스트림에 사용 되는 버퍼의 크기는 최대 값으로 결정 되는 144000 비트 (초당 48000 비트 x 3 초)입니다. 인코더는 해당 버퍼를 따르도록 데이터를 압축 합니다. 또한 스트림의 평균 비트 전송률은 16000이 하 여야 합니다. 인코더가 복잡 한 콘텐츠 세그먼트를 처리 하는 매우 큰 샘플을 만들어야 하는 경우 큰 버퍼 크기를 활용할 수 있습니다. 그러나 스트림의 다른 부분은 평균을 지정 된 수준으로 내림 하기 위해 더 낮은 비트 전송률로 인코딩해야 합니다.

최대 제약 된 VBR 인코딩은 유한 버퍼 용량과 일부 데이터 전송률 제약 조건이 있는 재생 장치에 유용 합니다. 이에 대 한 일반적인 예는 Dvd에 사용 되는 인코딩입니다.

VBR 인코딩 사용

Windows 미디어 코덱