두 개의 비디오 파일을 비교하여 최상의 품질을 가진 파일을 찾으십시오.


30

두 개 이상의 파일로 인코딩 된 동일한 비디오 자료가 있다고 가정합니다. 품질이 "최고"인 파일을 기본적으로 지적한 유틸리티를 실행하고 싶습니다. "Groundly"는 여러 가지 측면 (예 : 비디오 해상도, 비디오 비트 레이트, 오디오 샘플링 속도, 오디오 비트 레이트 등)을 하나씩 비교 한 다음 전체를 설명하는 일부 통합 점수를보고하는 보고서를 받고 싶습니다. 그들의.

그것은 기능에 관한 것이지만, 그 유틸리티를 실제로 사용할 수 있으려면 오픈 소스와 명령 줄이어야합니다.


관련 정보 (위의 기준에 따른 솔루션은 아님)를 수집하기 시작하려면 repo.or.cz/w/mplayer.git/blob/HEAD:/TOOLS/psnr-video.sh 가 있습니다. "프로와 같은 것": 압축 .RU / 비디오 / quality_measure / ... . 그러나 그것은 오픈 소스가 아니며 단지 2 개의 편향되지 않은 파일이 아니라 "원본"과 "복사"를 비교합니다.
pfalcon

답변:


88

비디오 품질 연구를하고 있는데 질문에 대한 간단한 대답을하기가 어렵습니다. 원하는 것은 비디오의 MOS ( Mean Opinion Score ), 즉 1에서 5 사이 또는 0에서 100 사이의 숫자 를 제공하는 프로그램 으로, 사람이 인식하는 품질에 해당합니다.

단순히 비트 전송률 / 해상도 등을 비교할 수없는 이유는 무엇입니까?

비디오 해상도를 비교하는 것만으로는 품질에 대해 아무 것도 알려주지 않습니다. 실제로, 그것은 완전히 오도 될 수 있습니다. 700MB 크기의 1080p 영화 립은 700MB의 720p 립보다 나빠질 수 있습니다. 전자의 경우 비트 전송률이 너무 낮아 모든 종류의 압축 아티팩트가 발생하기 때문입니다.

서로 다른 인코더가 실제로 적은 비트 전송률로 더 나은 품질을 제공 할 수 있기 때문에 비슷한 프레임 크기에서 비트 전송률을 비교하는 것도 마찬가지입니다. 예를 들어, XviD로 제작 된 720p 700MB 립은 x264로 제작 된 700MB 립보다 훨씬 나쁩니다. 후자는 훨씬 효율적입니다.

또한 최종 "적분 점수"(MOS)가 개별 품질 요소로 구성되는 방법을 정의해야합니다. 이것은 다음을 포함하지만 이에 국한되지 않는 몇 가지 사항에 크게 좌우됩니다.

  • 비교중인 비디오 유형 (만화, 영화, 뉴스 등)
  • 그들의 길이
  • 시청자
  • 원래 프레임 크기
  • 인코딩되기 전에 원래의 "품질"

우리는 인간이 어떻게 비디오를 인식하는지 이야기하지 않습니다. 생생한 디테일과 높은 모션 해상도를 즐기기 때문에 영화를보고있는 친구가 있다고 가정 해 봅시다. 컨텐츠위해 영화를보고있는 친구보다 낮은 품질의 립을 볼 때 훨씬 더 중요 합니다 . 그들은 영화가 재미 있거나 재미 있다면 아마 품질에 관심이 없을 것입니다.

다양한 유형의 비디오 품질 메트릭이 있습니다!

오늘 제가 생각하는 비디오 품질의 기본 평가에 가장 일반적으로 사용되는 목록을 알려 드리겠습니다. 품질을 결정하는 데 사용되는 정보의 종류에 따라 분류 할 수있는 몇 가지 비디오 품질 메트릭이 있습니다. 원칙적으로 말하면 다음과 같이 구별됩니다.

  • 비 참조 측정 항목 – 입력으로 하나의 동영상 만 있고 품질 평가 점수를 출력합니다. 귀하의 경우에는 종종 원본 비디오가 없기 때문에 참조 없음 측정법을 찾고 있습니다. 이러한 측정 항목은 하나의 동영상을 가져와 하나의 품질 평가 점수를 출력합니다. 다음은 NR 메트릭이 감지하는 문제의 입니다 (예 : 블러 링).

  • 전체 참조 메트릭 – 두 개의 입력이 있습니다. 하나는 원래 입력 비디오이고 다른 하나는 인코딩 된 비디오입니다. 예를 들어, DVD 영화를 촬영 한 다음 그로부터 2 개의 립을 생성하고 전체 참조 메트릭을 사용하여 원본 DVD 영화 (예 : 디스크의 MPEG-2 비디오)와 립 간의 품질 손실을 추정 할 수 있습니다. 계산하는 데 시간이 오래 걸리지 만 더 정확합니다.

위의 메트릭은 비디오 코딩 품질을 보지만 비디오를 스트리밍 할 때 초기로드 시간 및 정지 이벤트와 같은 문제를 포함하는 메트릭도 있습니다 (예 : ITU-T P.1203 ).

어떤 소프트웨어를 사용할 수 있습니까?

다음은 일부 메트릭을 테스트하는 데 사용할 수있는 바로 사용할 수있는 도구 목록입니다 (일부는 Windows에만 해당).

이제 어떤 측정 항목이 있습니까?

PSNR, PSNR-HVS 및 PSNR-HVS-M

우선 PSNR (Peak Signal-to-Noise Ratio)은 사용하기 매우 간단하지만 비디오 품질을 평가하는 방법이 다소 부족합니다. 대부분의 응용 프로그램에서는 비교적 잘 작동하지만 인간이 품질을 어떻게 인식하는지는 잘 예측하지 못합니다.

PSNR은 프레임 단위로 계산 될 수 있으며, 예를 들어 최종 점수를 얻기 위해 전체 비디오 시퀀스의 PSNR을 평균화합니다. PSNR이 높을수록 좋습니다.

PSNR-HVS 및 PSNR-HVS-M은 인간의 시각적 인식을 모방하려는 PSNR의 확장이므로 더욱 정확해야합니다. VQMTMSU 는 두 비디오 간의 PSNR, PSNR-HVS 및 PSNR-HVS-M을 계산할 수 있습니다.

SSIM, MS-SSIM

SSIM ( Structural Similarity )은 PSNR만큼 계산하기 쉽고보다 정확한 결과를 제공하지만 여전히 프레임 단위로 제공됩니다. Wikipedia 링크에서 일부 구현을 찾거나 VQMT 또는 MSU를 사용할 수 있습니다 . 이러한 도구에는 SSIM보다 더 나은 (즉,보다 대표적인) 결과를 제공하는 MS-SSIM과 다른 파생 제품도 포함됩니다.

결과는 PSNR과 유사해야합니다. 이 작업을 수행하려면 처리 된 비디오에 대한 참조를 비교해야하며 두 비디오의 크기가 동일해야합니다.

VMAF

Netflix의 Video Multi-Method Assessment Fusion 은 기존의 일부 메트릭을 기반으로 비디오 품질을 계산하는 도구 모음으로, 머신 러닝 방법으로 0에서 100 사이의 최종 점수로 통합됩니다. Netflix는 여기에서 모든 것을 설명했습니다 .

[VMAF]는 여러 기본 품질 측정 항목을 결합하여 주관적 품질을 예측합니다. 기본 이론적 근거는 각 기본 메트릭이 소스 컨텐츠 특성, 아티팩트 유형 및 왜곡 정도와 관련하여 자체 강점과 약점을 가질 수 있다는 것입니다. 기계 학습 알고리즘을 사용하여 기본 메트릭을 최종 메트릭으로 '퓨징'(이 경우에는 SVM (Response Vector Machine) 회귀)-각 기본 메트릭에 가중치를 할당함으로써 최종 메트릭은 개별 메트릭의 모든 장점을 보존 할 수 있습니다 보다 정확한 최종 점수를 제공합니다.

VMAF 점수를 계산 하는 ffmpeg 사용할 수도 있습니다 .

VQM

비디오 품질 메트릭 에서 검증 된 비디오 품질 전문가 그룹 (VQEG)와 아주 좋은 전체 참조 알고리즘이다. VQM을 무료로 다운로드하거나 MSU에서 구현을 사용할 수 있습니다.

등록하고 다운로드 할 때 NTIA 일반 모델 또는 가변 프레임 지연이 있는 비디오 품질 모델 을 사용하려고합니다 .

다른 측정 항목

  • PEVQ 는 ITU-T J.246에 따라 표준화 된 전체 참조 메트릭입니다. 멀티미디어 신호를 목표로하지만 HD 비디오는 아닙니다.
  • VQuad-HD 는 ITU-T J.341로 표준화 된 또 다른 전체 참조 메트릭입니다. 최신 버전이므로 HD 비디오에 더 적합합니다.

둘 다 상용 솔루션이므로 다운로드 할 소프트웨어를 찾을 수 없습니다.

같은 노 참조 메트릭에 대한 몇 가지 ITU 표준도있다 ITU-T P.1201ITU-T의 P.1202 , IPTV 스트리밍에 대한 비트 스트림으로부터 매개 변수 작품. ITU-T P.1203 은 적응 형 스트리밍 사례에 사용할 수 있습니다.


개요

다음과 같이 객관적으로 측정 가능한 간단한 기준을 비교하려는 경우 :

  • 프레임 크기
  • 비트 레이트
  • 초당 프레임
  • 비디오 해상도

… 간단한 호출로 ffmpeg -i처음에 필요한 모든 세부 정보를 제공해야합니다. 또한 -vstats옵션을 살펴보십시오 . 그런 다음이를 스프레드 시트로 요약 할 수 있습니다. x264예를 들어 비디오를 인코딩 할 때 필요한 경우 PSNR과 같은 항목을 파일에 직접 기록하므로 나중에이 값을 사용할 수 있습니다.

이러한 기준을 측정하는 방법에 대해서는 아마도 비트 전송률을 강조해야합니다. 그러나 코덱이 동일하다는 것을 알고있는 경우에만 가능합니다. 일반적으로 두 비디오 모두 x264를 사용하면 비트 전송률이 높은 것이 더 좋습니다. 보다 일반적으로 동일한 비트 전송률을 가진 두 개의 비디오가있는 경우 업 스케일링으로 인한 저하가 낮은 비트 전송률로 인한 저하만큼 나쁘지 않기 때문에 낮은 해상도를 선택해야합니다.

내용과 개별 인코딩 설정에 대한 자세한 내용 이 없으면 비트 전송률에 따라 다른 코덱을 비교할 없습니다. 프레임 속도도 매우 주관적인 것이며 25Hz 미만인 경우 측정에 포함되어야합니다.

요약하면, 비트 레이트가 유일하게 있다면 비트 레이트를 크게 강조하십시오. 눈을 사용하는 것을 잊지 마십시오 :)


우선, 질문의 원저자로서 전에 의견을 말하지 않아서 유감입니다. 게시물은 정말 훌륭하고 감사합니다. 불행히도, 나는 그것을 원래 질문에 대한 대답으로 받아 들일 수 없습니다. 그 이유는 다음과 같습니다. 기존의 즉시 사용 가능한 도구에 대한 제안을 원했기 때문에 StackOverflow가 아닌 ​​일부러 여기에 질문을 게시했습니다. 그러한 도구를 작성하는 방법에 대한 질문이기 때문에 당신의 대답은 절대 승자가 될 것입니다. 그러나 죄송합니다. 처음부터 필요한 부분을 모두 쓸 수 없으므로 사용자가 질문을하고 답변을 기대하도록하십시오 (어제 나 오늘은 아닐 수도 있습니다.)
pfalcon

1
유익하고 유익한 답변. 직접적인 대답은 아니지만, 사람들이 그러한 유익한 자료를 작성하는 데 시간이 걸리는 것을보고 싶습니다. +1
SuperDuck

1

최종 추천이나 점수를 줄 도구를 모르지만 FFmpeg을 사용 하면 질문에 나열된 모든 세부 정보를 출력 할 수 있습니다.

명령 행에서 ffmpeg -i는 비디오의 정보를 나열합니다. 여기에서 정보를 구문 분석하고 적절하게 표시 할 수있는 스크립트를 작성할 수 있습니다.


고마워, 그래, 내가 좀 더 나은 "마법의"도구가 있는지 묻기로 결정하기 전에 몇 시간 동안
했던
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.