인코딩 메서드(Microsoft Media Foundation)

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

인코딩 메서드는 모두 디코더가 압축된 입력 데이터를 관리하는 데 사용하는 버퍼에 중점을 줍니다. 이 버퍼는 스트림의 비트 속도(초당 비트 수) 및 버퍼 창(밀리초)으로 정의됩니다. 인코딩할 때 코덱은 버퍼의 구속을 준수합니다. 버퍼에 대한 자세한 내용은 새는 버킷 버퍼 모델을 참조하세요.

상수 비트 전송률 인코딩

Windows Media 오디오 및 비디오 코덱 중 하나로 인코딩된 모든 스트림의 비트 속도는 일정하지 않습니다. CBR(상수 비트 비율) 인코딩은 다소 오해의 소지가 있는 용어입니다. CBR로 인코딩된 스트림의 구분 기능은 샘플 크기의 변형을 제한하는 작은 버퍼 창입니다. CBR 인코딩은 주로 네트워크를 통해 대상으로 스트리밍되는 콘텐츠에 사용됩니다. 이러한 시나리오에서는 일관된 대역폭 사용에 의존할 수 있어야 합니다.

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

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

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

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

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

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

CBR 인코딩은 실제로 일정한 비트 속도를 유지하지 않으므로 VBR(가변 비트 속도 인코딩)과 VBR(가변 비트 비율 인코딩)의 차이는 약간 흐릿해 보일 수 있습니다. CBR과 VBR 간의 주요 차이점은 사용되는 버퍼 창의 크기입니다. VBR로 인코딩된 스트림은 일반적으로 CBR로 인코딩된 스트림에 비해 버퍼 창이 큽니다. 품질 기반 VBR은 비트 속도나 버퍼 창을 정의하지 않는다는 점도 예외는 아닙니다. 대신 품질 값을 설정합니다. 그런 다음 코덱은 결과 스트림의 버퍼 요구 사항에 관계없이 인코딩된 미디어의 품질이 기간 내내 일관되도록 데이터를 압축하려고 시도합니다.

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

제한되지 않는 가변 비트 전송률 인코딩

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

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

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

최종 인코딩 모드는 최대 제한 VBR입니다. 제한되지 않은 VBR과 마찬가지로 이 모드는 두 개의 인코딩 패스와 인코딩을 사용하여 지정된 비트 전송률로 인코딩합니다. 그러나 최대 제한 VBR을 사용하면 인코딩에 대한 최대값도 구성합니다. 피크 값은 일반 버퍼 구성 값과 유사합니다. 피크 비트 속도 및 최대 버퍼 창이 있습니다. 파일은 스트림의 전체 평균 비트 속도가 지정한 평균 비트 전송률 값과 같거나 작다는 조건과 함께 최대 값으로 설명된 버퍼를 준수하도록 인코딩됩니다.

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

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

최대 제한 VBR 인코딩은 한정된 버퍼 용량 및 일부 데이터 속도 제약 조건이 있는 재생 디바이스에 유용합니다. 일반적인 예로 DVD에 사용되는 인코딩이 있습니다.

VBR 인코딩 사용

Windows Media 코덱