KR102523149B1 - 부트스트래핑을 통한 지각 품질 모델 불확실성의 정량화 - Google Patents

부트스트래핑을 통한 지각 품질 모델 불확실성의 정량화 Download PDF

Info

Publication number
KR102523149B1
KR102523149B1 KR1020207029753A KR20207029753A KR102523149B1 KR 102523149 B1 KR102523149 B1 KR 102523149B1 KR 1020207029753 A KR1020207029753 A KR 1020207029753A KR 20207029753 A KR20207029753 A KR 20207029753A KR 102523149 B1 KR102523149 B1 KR 102523149B1
Authority
KR
South Korea
Prior art keywords
perceptual quality
bootstrap
resampled
baseline
rate
Prior art date
Application number
KR1020207029753A
Other languages
English (en)
Other versions
KR20200131319A (ko
Inventor
크리스토스 밤피스
즈 리
라바냐 샤란
줄리 노박
마틴 팅글리
Original Assignee
넷플릭스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 넷플릭스, 인크. filed Critical 넷플릭스, 인크.
Publication of KR20200131319A publication Critical patent/KR20200131319A/ko
Application granted granted Critical
Publication of KR102523149B1 publication Critical patent/KR102523149B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/251Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/252Processing of multiple end-users' preferences to derive collaborative data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30168Image quality inspection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • H04N17/004Diagnosis, testing or measuring for television systems or their details for digital television systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Traffic Control Systems (AREA)
  • Measurement Of Resistance Or Impedance (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)

Abstract

다양한 실시예들에서, 부트스트래핑 트레이닝 서브시스템은 표본 재추출된 데이터세트를 생성하기 위해 주관 스코어들을 포함하는 트레이닝 데이터베이스에 대해 표본 추출 동작(들)을 수행한다. 각각의 표본 재추출된 데이터세트에 대해, 부트스트래핑 트레이닝 서브시스템은 상이한 부트스트랩 지각 품질 모델을 생성하기 위해 머신 학습 동작(들)을 수행한다. 그 후에, 부트스트래핑 트레이닝 서브시스템은 인코딩된 비디오 콘텐츠의 일 부분에 대한 베이스라인 지각 품질 모델에 의해 생성되는 지각 품질 스코어의 정확도를 정량화하기 위해 부트스트랩 지각 품질 모델들을 사용한다. 유리하게는, 지각 품질 스코어의 정확도가 알려져 있지 않은 종래 기술 솔루션들과 비교하여, 부트스트랩 지각 품질 모델들은 개발자들 및 소프트웨어 애플리케이션들이 지각 품질 스코어에 기초하여 인코딩 동작들을 더 신뢰성있게 최적화하고/하거나 더 유효한 결론들을 도출하는 것을 가능하게 한다.

Description

부트스트래핑을 통한 지각 품질 모델 불확실성의 정량화
관련 출원들에 대한 상호 참조
본 출원은, 일련 번호 62/645,774(대리인 문서 번호 NETF0191USL)를 가지며 2018년 3월 20일자로 출원된 미국 가특허 출원, 일련 번호 62/767,454(대리인 문서 번호 NETF0228USL)를 가지며 2018년 11월 14일자로 출원된 미국 가특허 출원, 일련 번호 16/352,755(대리인 문서 번호 NETF0191US1)를 가지며 2019년 3월 13일자로 출원된 미국 가특허 출원, 및 일련 번호 16/352,757(대리인 문서 번호 NETF0191US2)을 가지며 2019년 3월 13일자로 출원된 미국 특허 출원의 우선권 이익을 주장한다. 이들 관련 출원들의 청구 대상은 이로써 본 명세서에 참조로 포함된다.
발명의 분야
본 발명의 실시예들은 일반적으로 컴퓨터 과학 및 비디오 기술에 관한 것이고, 더 구체적으로는, 부트스트래핑(bootstrapping)을 통해 지각 품질 모델 불확실성(perceptual quality model uncertainty)을 정량화(quantify)하기 위한 기법들에 관한 것이다.
소스 비디오들을 효율적이고 정확하게 인코딩하는 것은 고품질 소스 비디오들의 실시간 전달의 중요한 양태이다. 인코딩된 소스 비디오들의 품질의 변화들 때문에, 인코딩된 소스 비디오들로부터 유도되는 재구축된 소스 비디오들의, 뷰어에 의해 지각되는 바와 같은, 시각 품질이 허용가능하다는 것을 보장하기 위해 품질 제어들이 통상적으로 구현된다. 재구축된 소스 비디오들의 시각 품질을 수동으로 검증하는 것은 엄청나게 시간 소모적이다. 이에 따라, 인코딩된 비디오 품질을 자동으로 예측하는 것은 통상적으로 인코딩 및 스트리밍 인프라스트럭처의 필수적인 부분이다. 예를 들어, 코더/디코더(코덱)들을 평가하고 스트리밍 비트레이트들을 미세 튜닝하여 인코딩된 비디오들의 품질을 최적화할 때, 자동화된 인코딩된 비디오 품질 예측이 전형적으로 채용된다.
인코딩된 비디오 품질을 자동으로 예측하기 위한 하나의 접근법은, 한 세트의 인코딩된 트레이닝 비디오들과 연관된 원시 오피니언 스코어(raw opinion score)들에 기초하여 지각 품질 모델을 생성하기 위해 머신 학습 동작들을 수행하는 것을 수반한다. 원시 오피니언 스코어들은 인코딩된 트레이닝 비디오들의 세트로부터 디코딩되는 한 세트의 재구축된 트레이닝 비디오들을 뷰잉하는 동안 그 재구축된 트레이닝 비디오들의 지각된 시각 품질에 기초하여 한 세트의 인간 대상(human subject)들에 의해 생성된다. 트레이닝 후에, 지각 품질 모델은 다양한 인코딩된 소스 비디오들에 대한 지각 품질 스코어들을 예측하는 데 사용된다. 이러한 방식으로, 원시 오피니언 스코어들은 인코딩된 소스 비디오들에 대한 지각 품질 스코어들의 보다 나은 예측들을 가능하게 한다.
지각 품질 모델을 사용하는 것의 하나의 결점은 지각 품질 모델에 의해 예측되는 지각 품질 스코어들의 정확도가 알려져 있지 않다는 점이다. 더 정밀하게는, 지각 품질 모델을 트레이닝시키는 데 사용되는 인코딩된 트레이닝 비디오들의 세트는 모든 인코딩된 비디오들의 단지 작은 표본(sample)일 뿐이다. 유사하게, 원시 오피니언 스코어들을 제공하는 인간 대상들의 세트는 모든 뷰어들의 단지 작은 표본일 뿐이다. 일반적으로, 표본은 연관된 모집단(population)과 동일한 평균 조성을 전형적으로 갖지 않으며, 주어진 표본의 조성의 변화들은 통계적 불확실성의 원인이다. 결과적으로, 인코딩된 트레이닝 비디오들의 세트와 인간 대상들의 세트 양측 모두는 지각 품질 모델에 의해 예측되는 지각 품질 스코어들의 전체 정확도를 감소시킬 수 있는 통계적 불확실성의 원인들이다.
각각의 지각 품질 스코어의 정확도가 알려져 있지 않기 때문에, 지각 품질 모델에 의해 생성되는 지각 품질 스코어들에 기초하여 유효한 결론들을 도출하고 인코딩 동작들을 최적화하는 것은 문제들을 야기할 수 있다. 예를 들어, 일부 코덱 비교 애플리케이션들은 지각 품질 스코어들에 기초하여 Bjontegaard delta(델타) 레이트("BD-레이트") 값을 컴퓨팅하여, 기준 코덱의 성능과 비교하여 테스트 코덱의 성능을 평가한다. BD-레이트 값은 동일한 지각 품질 스코어를 유지하는 동안 기준 코덱을 사용하여 인코딩하는 것과 비교하여 테스트 코덱을 사용하여 인코딩할 때의 퍼센티지 비트레이트 변경을 특정한다. 그러나, 각각의 지각 품질 스코어의 정확도가 알려져 있지 않기 때문에, BD-레이트 값의 정확도도 또한 알려져 있지 않다. 결과적으로, BD-레이트 값에 기초하여 테스트 코덱이 기준 코덱보다 더 양호하게 수행하는지 여부에 관한 유효한 결론을 도출하는 것이 가능하지 않다.
전술한 것이 예시하는 바와 같이, 본 기술분야에 필요한 것은 지각 품질 스코어들의 정확도를 정량화하기 위한 기법들이다.
본 발명의 일 실시예는 지각 품질 스코어의 정확도를 정량화하기 위한 컴퓨터에 의해 구현되는 방법을 제시한다. 이 방법은, 표본 재추출된 데이터세트(resampled dataset)들을 생성하기 위해 주관 스코어(subjective score)들을 포함하는 트레이닝 데이터베이스에 대해 하나 이상의 표본 추출 동작(sampling operation)들을 수행하는 단계; 각각의 표본 재추출된 데이터세트에 대해, 상이한 부트스트랩 지각 품질 모델을 생성하기 위해 표본 재추출된 데이터세트에 기초하여 하나 이상의 머신 학습 동작들을 수행하는 단계; 및 인코딩된 비디오 콘텐츠의 일 부분에 대한 베이스라인 지각 품질 모델에 의해 생성되는 지각 품질 스코어의 정확도를 정량화하기 위해 부트스트랩 지각 모델들에 기초하여 하나 이상의 동작들을 수행하는 단계를 포함한다.
종래 기술 솔루션들에 비해 개시된 기법들의 하나의 기술적 이점은 부트스트랩 지각 품질 스코어들의 분포가 각각의 베이스라인 지각 품질 스코어와 연관된다는 점이다. 부트스트랩 지각 품질 스코어들의 분포는 베이스라인 지각 품질 스코어의 정확도를 표시한다. 지각 품질 스코어의 정확도가 알려져 있지 않은 종래 기술 솔루션들과는 달리, 부트스트랩 지각 품질 스코어들의 분포는 개발자들 및 소프트웨어 애플리케이션들이 베이스라인 지각 품질 스코어에 기초하여 인코딩 동작들을 더 신뢰성있게 최적화하고/하거나 더 유효한 결론들을 도출하는 것을 가능하게 한다. 특히, 부트스트랩 지각 품질 스코어들에 기초하여 상이한 부트스트랩 Bjontegaard delta 레이트(BD-레이트) 값들을 컴퓨팅하면, 개발자들 및 소프트웨어 애플리케이션들이 베이스라인 지각 품질 스코어들에 기초하여 컴퓨팅되는 베이스라인 BD-레이트 값이 통계적으로 유의한지 여부를 결정하는 것을 가능하게 하는데, 이는 테스트 코덱들이 기준 코덱들에 비해 더 신뢰성있게 테스트되는 것을 가능하게 한다. 이들 기술적 이점들은 종래 기술에 비해 하나 이상의 기술적 진보들을 제공한다.
본 발명의 상기에 언급된 피처(feature)들이 상세히 이해될 수 있는 방식으로, 상기에 간단히 요약된 본 발명의 더 구체적인 설명은 실시예들을 참조하여 행해질 수도 있고, 그 일부는 첨부된 도면들에 예시되어 있다. 그러나, 첨부된 도면들은 본 발명의 전형적인 실시예들만을 예시하고 그에 따라 본 발명의 범주를 제한하는 것으로 간주되어서는 안 되는데, 이는 본 발명이 다른 동일하게 효과적인 실시예들을 인정할 수도 있기 때문이라는 것에 주목해야 한다.
도 1은 본 발명의 하나 이상의 양태들을 구현하도록 구성되는 신뢰 모델링 시스템(confidence modeling system)의 개념적 예시이다.
도 2는 본 발명의 다양한 실시예들에 따른, 도 1의 부트스트래핑 트레이닝 엔진의 더 상세한 예시이다.
도 3은 본 발명의 다른 다양한 실시예들에 따른, 도 1의 부트스트래핑 트레이닝 엔진의 더 상세한 예시이다.
도 4는 본 발명의 또 다른 다양한 실시예들에 따른, 도 1의 부트스트래핑 트레이닝 엔진의 더 상세한 예시이다.
도 5a 및 도 5b는 본 발명의 다양한 실시예들에 따른, 지각 품질 스코어의 정확도를 정량화하기 위한 방법 단계들의 흐름도를 제시한다.
도 6은 본 발명의 하나 이상의 양태들을 구현하도록 구성되는 Bjontegaard의 delta 레이트(BD-레이트) 유의도(significance) 시스템의 개념적 예시이다.
도 7은 본 발명의 다양한 실시예들에 따른, 도 6의 BD-레이트 서브시스템들 중 하나의 BD-레이트 서브시스템의 더 상세한 예시이다.
도 8은 본 발명의 다양한 실시예들에 따른, 도 7의 품질 비교 엔진들 중 하나의 품질 비교 엔진의 더 상세한 예시이다.
도 9는 본 발명의 다양한 실시예들에 따른, BD-레이트의 정확도를 정량화하기 위한 방법 단계들의 흐름도이다.
다음의 설명에서, 본 발명의 더 완전한 이해를 제공하기 위해 다수의 특정 세부사항들이 제시된다. 그러나, 본 발명이 이들 특정 세부사항들 중 하나 이상 없이도 실시될 수도 있다는 것이 본 기술분야의 통상의 기술자에게 명백할 것이다.
미디어 서비스가 뷰어들에게 제공하는 전체 시각적 경험을 최적화하기 위해, 미디어 서비스 제공자는 인코딩 및 스트리밍 인프라스트럭처의 일부로서 자동화된 인코딩된 비디오 품질 예측을 종종 구현한다. 예를 들어, 미디어 서비스 제공자는 자동화된 인코딩된 비디오 품질 예측을 채용하여 코더/디코더(코덱)들을 평가하고/하거나 스트리밍 비트레이트들을 미세 튜닝하여 인코딩된 비디오들의 품질을 최적화할 수 있다. 인코딩된 비디오들의 품질을 평가하기 위한 전형적인 종래 기술 기법에서, 트레이닝 애플리케이션은 한 세트의 인코딩된 트레이닝 비디오들과 연관된 원시 오피니언 스코어들에 기초하여 지각 품질 모델을 생성하기 위해 머신 학습 동작들을 수행한다. 원시 오피니언 스코어들은 인코딩된 트레이닝 비디오들의 세트로부터 디코딩되는 한 세트의 재구축된 트레이닝 비디오들을 뷰잉하는 동안 그 재구축된 트레이닝 비디오들의 지각된 시각 품질에 기초하여 한 세트의 인간 대상들에 의해 생성된다. 트레이닝 후에, 지각 품질 모델은 다양한 인코딩된 소스 비디오들에 대한 지각 품질 스코어들을 예측하는 데 사용된다.
지각 품질 모델을 사용하는 것의 하나의 결점은 지각 품질 모델에 의해 예측되는 지각 품질 스코어들의 정확도가 알려져 있지 않다는 점이다. 더 정밀하게는, 지각 품질 모델을 트레이닝시키는 데 사용되는 인코딩된 트레이닝 비디오들의 세트는 전형적으로 모든 인코딩된 비디오들과 동일한 평균 조성을 갖지 않는다. 유사하게, 원시 오피니언 스코어들을 제공하는 인간 대상들의 세트는 모든 뷰어들과 동일한 평균 조성을 갖지 않는다. 그 결과, 인간 대상들의 세트와 인코딩된 트레이닝 비디오들의 세트 양측 모두는 지각 품질 모델에 의해 예측되는 지각 품질 스코어들의 전체 정확도를 감소시킬 수 있는 통계적 불확실성의 원인들이다.
예를 들어, 모든 인코딩된 비디오들에 대한 모든 뷰어들로부터의 원시 오피니언 스코어들에 기초하여 "이상화된" 지각 품질 모델이 트레이닝될 수 있다고 가정한다. 인간 대상들도 또는 인코딩된 비디오들도 통계적 불확실성의 원인이 되지 않을 것이다. 결과적으로, 임의의 인코딩된 소스 비디오에 대해 이상화된 지각 품질 모델에 의해 컴퓨팅되는 지각 품질 스코어는 인코딩된 소스 비디오로부터 유도되는 재구축된 소스 비디오에 대한 평균 지각된 시각 품질을 정확하게 반영할 것이다. 대조적으로, 2개의 인코딩된 트레이닝 비디오들에 대한 10명의 사람들로부터의 원시 오피니언 스코어들(20개의 총 원시 오피니언 스코어들)에 기초하여 전형적인 지각 품질 모델이 트레이닝되었다고 가정한다. 10명의 사람들과 2개의 인코딩된 트레이닝 비디오들 양측 모두는 높은 통계적 불확실성과 연관될 것이다. 결과적으로, 인코딩된 소스 비디오에 대한 전형적인 지각 품질 모델에 의해 컴퓨팅된 지각 품질 스코어가 인코딩된 소스 비디오로부터 유도되는 재구축된 소스 비디오에 대한 평균 지각 시각 품질을 정확하게 반영할 가능성은 비교적 낮을 것이다.
각각의 지각 품질 스코어의 정확도가 알려져 있지 않기 때문에, 지각 품질 모델에 의해 생성되는 지각 품질 스코어들에 기초하여 유효한 결론들을 도출하고 인코딩 동작들을 최적화하는 것은 문제들을 야기할 수 있다. 예를 들어, 일부 코덱 비교 애플리케이션들은 지각 품질 스코어들에 기초하여 Bjontegaard delta 레이트(BD-레이트) 값을 컴퓨팅하여, 기준 코덱과 비교하여 테스트 코덱의 성능을 평가한다. BD-레이트 값은 동일한 지각 품질 스코어를 유지하는 동안 기준 코덱을 사용하여 인코딩하는 것과 비교하여 테스트 코덱을 사용하여 인코딩할 때의 퍼센티지 비트레이트 변경을 특정한다. 그러나, 각각의 지각 품질 스코어의 정확도가 알려져 있지 않기 때문에, BD-레이트 값의 정확도도 또한 알려져 있지 않다. 결과적으로, BD-레이트 값에 기초하여 테스트 코덱이 기준 코덱보다 더 양호하게 수행하는지 여부에 관한 유효한 결론을 도출하는 것이 가능하지 않다.
예를 들어, -4%의 BD-레이트 값은, 테스트 코덱을 사용하여 인코딩하는 것이 기준 코덱을 사용하여 인코딩하는 것에 비해 평균 4% 비트레이트 절감들을 발생시킴을 표시할 것이다. 그러나, 지각 품질 스코어들과 연관된 불확실성 때문에, 테스트 코덱을 사용하여 인코딩하는 것은 기준 코덱을 사용하여 인코딩하는 것에 비해 평균 -2% 비트레이트 절감들을 실제로 발생시킬 수 있다. 일반적으로, -4% 비트레이트 절감은 통계적으로 유의하지 않을 수도 있다. 그에 따라, 미디어 서비스 제공자가 인코딩 및 스트리밍 인프라스트럭처에 대한 변경들을 행해야 하고 그 변경들이 실제 개선들로 이어지지 않은 경우, 그러면 요구된 엔지니어링 노력이 낭비될 것이다.
그러나, 개시된 기법들을 이용하면, 신뢰 모델링 시스템은 지각 품질 스코어들의 정확도 그리고, 임의로, BD-레이트 값들의 정확도를 자동으로 정량화할 수 있다. 트레이닝 페이즈(training phase)에서, 부트스트래핑 트레이닝 엔진은 M명의 인간 대상들의 세트와 연관된 원시 오피니언 스코어들 및 N개의 인코딩된 트레이닝 비디오들의 세트에 기초하여 머신 학습 동작들을 수행하여 베이스라인 지각 품질 모델을 생성한다. 그 후에, 부트스트래핑 트레이닝 엔진은 원시 오피니언 스코어들 및/또는 인코딩된 트레이닝 비디오들의 세트에 기초하여 부트스트래핑을 수행한다. 일반적으로, 부트스트래핑은, 항목들의 표본과 연관된, 불확실성과 같은, 통계들을 추정하기 위해 항목들의 일반 모집단으로부터의 항목들의 표본에 대해 표본 재추출 위드 대체 동작(resampling with replacement operation)들을 수행하는 것을 수반한다.
일부 실시예들에서, 부트스트래핑 트레이닝 엔진은 모든 인코딩된 비디오들로부터 N개의 인코딩된 트레이닝 비디오들의 세트를 표본 추출하는 것 그리고 모든 인간들로부터 M명의 인간 대상들의 세트를 표본 추출하는 것과 연관된 커플링된 통계적 불확실성을 추정하기 위해 표본 재추출 위드 대체 동작들을 수행한다. 첫 번째로, 부트스트래핑 트레이닝 엔진은 인코딩된 트레이닝 비디오들의 세트와 인간 대상들의 세트에 대해 표본 재추출 위드 대체 동작들을 수행하여, 표본 재추출된 인코딩된 비디오 세트들과 표본 재추출된 대상 세트들을 각각 생성한다. 예를 들어, 인코딩된 트레이닝 비디오들의 세트가 ("A", "B")였고 인간 대상들의 세트가 ("Tom", "Jerry", "Anna")였다고 가정한다. 부트스트래핑 트레이닝 엔진은 2개의 표본 재추출된 인코딩된 비디오 세트들("B", "B") 및 ("A", "A"), 그리고 2개의 표본 재추출된 대상 세트들("Tom", "Jerry", Jerry") 및 ("Tom", Tom", "Tom")을 생성할 수 있다. 그 후에, 부트스트래핑 트레이닝 엔진은 표본 재추출된 인코딩된 비디오 세트들과 표본 재추출된 대상 세트들의 조합들을 생성하여 4개의 표본 재추출된 데이터세트들을 생성할 수 있다. 제1 표본 재추출된 데이터세트는 ("B", "B") 및 ("Tom", Tom", "Tom")에 기초할 수 있고, 제2 표본 재추출된 데이터세트는 ("B", "B") 및 ("Tom", "Jerry", Jerry")에 기초할 수 있고, 제3 표본 재추출된 데이터세트는 ("A", "A") 및 ("Tom", Tom", "Tom")에 기초할 수 있으며, 제4 표본 재추출된 데이터세트는 ("A", "A") 및 ("Tom", "Jerry", Jerry")에 기초할 수 있다.
이에 후속하여, 각각의 표본 재추출된 데이터세트에 대해, 부트스트래핑 트레이닝 엔진은 표본 재추출된 데이터세트에 기초하여 머신 학습 동작들을 수행하여 상이한 부트스트랩 지각 품질 모델을 생성한다. 이에 따라, 부트스트래핑 트레이닝 엔진이 1,000개의 상이한 표본 재추출된 데이터세트들을 생성하는 경우, 그러면 부트스트래핑 트레이닝 엔진은 1,001개의 상이한 지각 품질 모델들 - 1개의 베이스라인 지각 품질 모델 및 1000개의 부트스트랩 지각 품질 모델들 - 을 생성한다.
평가 페이즈에서, 소스 인코딩된 비디오에 대해, 신뢰 애플리케이션이 베이스라인 지각 품질 모델에 기초하여 베이스라인 지각 품질 스코어를 컴퓨팅한다. 각각의 부트스트랩 지각 품질 모델에 대해, 신뢰 엔진은 부트스트랩 지각 품질 모델에 기초하여 상이한 부트스트랩 지각 품질 스코어를 컴퓨팅한다. 함께, 부트스트랩 지각 품질 스코어들은 베이스라인 지각 품질 스코어와 연관된 불확실성을 반영하는 부트스트랩 지각 품질 스코어들의 분포를 형성한다. 그 후에, 신뢰 애플리케이션은 부트스트랩 지각 품질 스코어들의 분포에 기초하여 신뢰 구간(confidence interval)을 생성한다. 신뢰 구간은 베이스라인 지각 품질 스코어의 정확도를 정량화한다.
종래 기술 솔루션들에 비해 개시된 기법들의 적어도 하나의 기술적 이점은, 베이스라인 지각 품질 스코어의 정확도를 정량화하면 개발자들 및 소프트웨어 애플리케이션들이 베이스라인 지각 품질 스코어에 기초하여 더 유효한 데이터 및/또는 더 유효한 결론들을 생성하는 것을 가능하게 한다는 점이다. 예를 들어, 인코딩 동작들을 동적으로 최적화하는 소프트웨어 애플리케이션은 연관된 신뢰 구간들에 기초하여 지각 품질 스코어들의 차이가 유의한지 여부를 결정할 수도 있다. 다른 예에서, 비교적 저해상도의 인코딩된 소스 비디오들에 대한 지각 품질 스코어들과 연관된 신뢰 구간들이 비교적 고해상도의 인코딩된 소스 비디오들에 대한 지각 품질 스코어들과 연관된 신뢰 구간들보다 유의하게 더 크다고 가정한다. 비디오 서비스 제공자는 부가적인 저해상도의 인코딩 소스들을 트레이닝 인코드 데이터베이스에 부가시킬 수 있다. 이에 후속하여, 부트스트래핑 트레이닝 엔진은 저해상도의 인코딩된 소스 비디오들에 대한 베이스라인 지각 품질 스코어들의 정확도를 개선시키기 위해 베이스라인 지각 품질 모델과 부트스트랩 지각 품질 모델을 재트레이닝시킬 수 있다. 이들 기술적 이점들은 종래 기술에 비해 하나 이상의 기술적 진보들을 제공한다.
일부 실시예들에서, BD-레이트 비교 애플리케이션이 베이스라인 지각 품질 모델을 사용하여 테스트 코덱에 대한 베이스라인 BD-레이트 값을 컴퓨팅한다. 각각의 부트스트랩 모델에 대해, BD-레이트 비교 애플리케이션은 지각 품질 부트스트랩 모델을 사용하여 테스트 코덱에 대한 상이한 베이스라인 BD-레이트 값을 컴퓨팅한다. 함께, 테스트 코덱에 대한 부트스트랩 BD-레이트 값들은 베이스라인 BD-레이트 값과 연관된 불확실성을 반영하는 부트스트랩 BD-레이트 값들의 분포를 형성한다. 그 후에, 신뢰 애플리케이션은 부트스트랩 BD-레이트 값들의 분포에 기초하여 베이스라인 BD-레이트 값과 연관된 BD-레이트 신뢰 구간을 생성한다. BD-레이트 신뢰 구간은 베이스라인 BD-레이트 값의 정확도를 정량화한다.
종래 기술 솔루션들에 비해 개시된 기법들의 적어도 하나의 기술적 이점은, 테스트 코덱과 연관된 BD-레이트 신뢰 구간과 BD-레이트 분포 각각이 개발자들 및 소프트웨어 애플리케이션들이 테스트 코덱을 평가할 때 더 유효한 결과들(예를 들어, 데이터, 결론들 등)을 생성하는 것을 가능하게 한다는 점이다. 예를 들어, 테스트 코덱과 기준 코덱 사이의 비트레이트 성능 차이가 통계적으로 유의한지 여부를 결정하기 위해, 소프트웨어 애플리케이션이 테스트 코덱에 대한 BD_레이트 신뢰 구간 및 95%의 신뢰 레벨을 컴퓨팅할 수 있다. 제로의 BD-레이트 값이 BD-레이트 신뢰 구간 내에 있는 경우, 그러면 소프트웨어 애플리케이션은 테스트 코덱과 기준 코덱 사이의 비트레이트 성능 차이가 통계적으로 유의하지 않다고 결론을 내릴 수 있다. 그 결과, 소프트웨어 애플리케이션은 테스트 코덱에 기초하여 소스 비디오들을 재인코딩하는 것을 억제하여, 시간과 컴퓨팅 리소스들 양측 모두를 절감할 수 있다. 이들 기술적 이점들은 종래 기술에 비해 하나 이상의 기술적 진보들을 제공한다.
신뢰 모델링 시스템 개요
도 1은 본 발명의 하나 이상의 양태들을 구현하도록 구성되는 신뢰 모델링 시스템(100)의 개념적 예시이다. 도시된 바와 같이, 신뢰 모델링 시스템(100)은, 제한 없이, 임의의 수 및 타입의 컴퓨트 인스턴스(compute instance)들(110)을 포함한다. 설명의 목적들을 위해, 유사한 객체들의 다수의 인스턴스들이, 객체를 식별하는 참조 번호들 그리고 필요한 경우 인스턴스를 식별하는 삽입구 번호들로 표기된다. 다양한 실시예들에서, 임의의 수의 컴퓨트 인스턴스들(110)은 다수의 지리적 위치들에 걸쳐 분산되거나 또는 임의의 조합으로 하나 이상의 클라우드 컴퓨팅 환경들(, 캡슐화된 공유 리소스들, 소프트웨어, 데이터 등)에서 구현될 수도 있다.
도시된 바와 같이, 컴퓨트 인스턴스들(110) 각각은, 제한 없이, 프로세서(112) 및 메모리(116)를 포함한다. 프로세서(112)는 명령어들을 실행하는 것이 가능한 임의의 명령어 실행 시스템, 장치, 또는 디바이스일 수도 있다. 예를 들어, 프로세서(112)는 중앙 프로세싱 유닛(central processing unit)(CPU), 그래픽 프로세싱 유닛(graphics processing unit)(GPU), 제어기, 마이크로제어기, 상태 머신, 또는 이들의 임의의 조합을 포함할 수 있다. 메모리(116)는 컴퓨트 인스턴스(110)의 프로세서(112)에 의한 사용을 위해 소프트웨어 애플리케이션들 및 데이터와 같은 콘텐츠를 저장한다. 대안적인 실시예들에서, 컴퓨트 인스턴스들(110) 각각은, 제한 없이, 임의의 수의 프로세서들(112) 및 임의의 수의 메모리들(116)을 임의의 조합으로 포함할 수도 있다. 특히, 임의의 수의 컴퓨트 인스턴스들(110)(하나를 포함함)은 임의의 기술적으로 실행가능한 방식으로 멀티프로세싱 환경을 제공할 수도 있다.
메모리(116)는, 랜덤 액세스 메모리(random access memory)(RAM), 판독 전용 메모리(read only memory)(ROM), 플로피 디스크, 하드 디스크, 또는 로컬 또는 원격인 임의의 다른 형태의 디지털 스토리지(digital storage)와 같은 쉽게 입수가능한 메모리 중 하나 이상일 수도 있다. 일부 실시예들에서, 스토리지(도시되지 않음)가 메모리(116)를 보충 또는 대체할 수도 있다. 스토리지는, 프로세서(112)에 액세스가능한 임의의 수 및 타입의 외부 메모리들을 포함할 수도 있다. 예를 들어, 그리고 제한 없이, 스토리지는 보안 디지털 카드(Secure Digital Card), 외부 플래시 메모리, 휴대용 콤팩트 디스크 판독 전용 메모리(compact disc read-only memory)(CD-ROM), 광학 저장 디바이스, 자기 저장 디바이스, 또는 전술한 것의 임의의 적합한 조합을 포함할 수도 있다.
컴퓨트 인스턴스들(110) 각각은 하나 이상의 애플리케이션들(본 명세서에서 "소프트웨어 애플리케이션들"이라고도 또한 지칭됨) 또는 애플리케이션들의 서브시스템들을 구현하도록 구성된다. 단지 설명의 목적들을 위해서만, 각각의 애플리케이션은 단일 컴퓨트 인스턴스(110)의 메모리(116)에 상주하고 단일 컴퓨트 인스턴스(110)의 프로세서(112) 상에서 실행되는 것으로서 묘사되어 있다. 그러나, 본 기술분야의 통상의 기술자가 인식하는 바와 같이, 각각의 애플리케이션의 기능성은 임의의 수의 컴퓨트 인스턴스들(110)의 메모리들(116)에 상주하고 임의의 조합으로 임의의 수의 컴퓨트 인스턴스들(110)의 프로세서들(112) 상에서 실행되는 임의의 수의 다른 애플리케이션들에 걸쳐 분산될 수도 있다. 추가로, 임의의 수의 애플리케이션들 또는 서브시스템들의 기능성이 단일 애플리케이션 또는 서브시스템 내에 통합될 수도 있다.
특히, 컴퓨트 인스턴스(110(1))는 지각 품질 모델을 생성하기 위해 머신 학습 동작들을 수행하도록 구성된다. 보완적인 방식으로, 컴퓨트 인스턴스(110(2))는 지각 품질 모델에 기초하여 인코딩된 비디오 콘텐츠에 대한 지각 품질 스코어들을 생성하도록 구성된다. 각각의 지각 품질 스코어는 소스 비디오 콘텐츠로부터 유도되는 재구축된 비디오 콘텐츠를 뷰잉할 때 보편적인 방식으로 주관 인간 시각 경험과 상관된다. 지각 품질 모델의 일 예는 VMAF 메트릭(metric)에 대한 값들(, 지각 품질 스코어들)을 생성하는 "VMAF"(Video Multimethod Assessment Fusion) 모델이다.
본 명세서에서 이전에 설명된 바와 같이, 지각 품질 모델을 생성하는 것에 대한 종래의 접근법들에서, 지각 품질 모델은 인코딩된 트레이닝 비디오들의 세트와 인간 대상들의 세트 양측 모두와 연관된 원시 오피니언 스코어들 및 인코딩된 트레이닝 비디오들의 세트에 기초하여 트레이닝된다. 이에 후속하여, 지각 품질 모델은 소스 인코딩된 비디오들에 대한 지각 품질 스코어들에 대한 값들을 예측하는 데 사용된다. 지각 품질 모델을 생성하는 것에 대한 종래의 접근법들의 하나의 결점은, 인코딩된 트레이닝 비디오들의 세트와 인간 대상들의 세트 양측 모두가 통계적 불확실성의 원인들이라는 점이다. 알려져 있지 않은 통계적 불확실성과 연관된 데이터에 기초하여 지각 품질 모델이 트레이닝되기 때문에, 결과적인 지각 품질 모델은, 알려져 있지 않은 통계적 불확실성과 또한 연관된다. 그 결과, 지각 품질 모델에 의해 예측되는 각각의 지각 품질 스코어의 정확도가 알려져 있지 않다.
지각 품질 스코어들의 정확도의 정량화
지각 품질 모델에 의해 예측되는 지각 품질 스코어들의 정확도를 정량화하기 위해, 신뢰 모델링 시스템(100)은, 제한 없이, 부트스트래핑 트레이닝 서브시스템(120) 및 신뢰 애플리케이션(190)을 포함한다. 부트스트래핑 트레이닝 서브시스템(120)은 메모리(116(1))에 상주하고 트레이닝 페이즈 동안 컴퓨트 인스턴스(110(1))의 프로세서(112(1)) 상에서 실행된다. 신뢰 애플리케이션(190)은 메모리(116(2))에 상주하고, 트레이닝 페이즈에 뒤이은 평가 페이즈 동안 컴퓨트 인스턴스(110(2))의 프로세서(112(2)) 상에서 실행된다.
설명의 목적들을 위해, 신뢰 모델링 시스템(100)은 비디오들의 맥락에서 설명된다. 그러나, 본 기술분야의 통상의 기술자가 인식하는 바와 같이, 개시된 기법들은 설명된 실시예들 및 기법들의 범주 및 사상으로부터 벗어남이 없이 비디오 콘텐츠의 임의의 수 및 타입의 부분들에 적용될 수도 있다. 예를 들어, 개시된 기법들은, 제한 없이, 장편 영화(feature-length movie)들, 텔레비전 쇼들의 에피소드들, 개별 이미지들, 시청각 클립들 등에 적용될 수도 있다.
트레이닝 페이즈 동안, 부트스트래핑 트레이닝 서브시스템(120)은 트레이닝 인코드 데이터베이스(122) 및 주관 매트릭스(124)에 기초하여 베이스라인 모델(160) 및 부트스트랩 모델들(162(1) 내지 162(Q))을 생성한다. 트레이닝 인코드 데이터베이스(122)와 주관 매트릭스(124)의 조합은 본 명세서에서 "트레이닝 데이터베이스"라고도 또한 지칭된다. 트레이닝 인코드 데이터베이스(122)는, 제한 없이, N개의 트레이닝 비디오/인코딩된 트레이닝 쌍들을 포함한다. 단지 설명의 목적들을 위해서만, 트레이닝 비디오/인코딩된 트레이닝 쌍이 본 명세서에서 "트레이닝 쌍"이라고도 또한 지칭된다. 각각의 트레이닝 쌍은, 제한 없이, 트레이닝 비디오 및 그 트레이닝 비디오의 인코딩된 버전인 인코딩된 트레이닝 비디오를 포함한다.
주관 매트릭스(124)는 원시 오피니언 스코어들의 NxM 매트릭스이고, 여기서 N은 트레이닝 인코드 데이터베이스(122)에 포함되는 트레이닝 쌍들의 수이고 M은 인간 대상들의 수이다. 도시되지 않았지만, 주관 매트릭스(124)를 생성하기 위해, N개의 트레이닝 쌍들 각각에 대해, 디코더가 인코딩된 트레이닝 비디오를 디코딩하여 재구축된 트레이닝 비디오를 생성한다. M명의 인간 대상들은 텔레비전 또는 랩톱의 스크린과 같은 디스플레이 디바이스들 상에서 재구축된 트레이닝 비디오들을 보고, 시각 품질을 개인적으로 등급화한다 - 재구축된 트레이닝 비디오들에 원시 오피니언 스코어들을 할당함 -. 인간 대상들은 재구축된 트레이닝 비디오들의 시각 품질을 평가하고, 임의의 타입의 등급화 시스템에 기초하여 임의의 기술적으로 실행가능한 방식으로 원시 오피니언 스코어들을 할당할 수도 있다.
부트스트래핑 트레이닝 서브시스템(120)은, 제한 없이, 피처 엔진(170) 및 부트스트래핑 트레이닝 엔진(150)을 포함한다. 피처 엔진(170)은 트레이닝 인코드 데이터베이스(122)에 기초하여 피처 매트릭스(172)를 생성한다. 피처 매트릭스(172)의 사이즈는 NxF이고, 여기서 N은 트레이닝 인코드 데이터베이스(122)에 포함되는 트레이닝 쌍들의 수이고 F는 피처들의 수이다. 피처 매트릭스(172)의 각각의 로우(row)는 상이한 트레이닝 쌍과 연관되고, 제한 없이, F개의 피처들 각각에 대한 상이한 피처 값을 포함한다. 피처 매트릭스(172)의 각각의 컬럼(column)은 상이한 피처와 연관되고, 제한 없이, 각각의 트레이닝 쌍에 대한 상이한 피처 값을 포함한다.
각각의 피처는 인코딩된 비디오 콘텐츠 및/또는 연관된 비디오 콘텐츠의 특성을 나타내고 하나 이상의 객관 메트릭(objective metric)들과 연관된다. 피처 엔진(170)은 임의의 기술적으로 실행가능한 방식으로 임의의 수의 객관 메트릭들에 대한 임의의 수의 객관 값들 및 그 객관 값들에 기초하는 임의의 수의 피처들을 컴퓨팅할 수도 있다. 예를 들어, 일부 실시예들에서, 피처 엔진(170)은, 제한 없이, 하나의 "ADM"(additive impairment measure) 피처, 4개의 "VIF"(visual information fidelity) 피처들, 12개의 "BRISQUE"(blind/referenceless image spatial quality evaluator) 피처들, 및 "TI"(temporal information) 피처에 대한 피처 값들을 컴퓨팅한다.
도시된 바와 같이, 부트스트래핑 트레이닝 엔진(150)은 피처 매트릭스(172) 및 주관 매트릭스(124)에 기초하여 베이스라인 모델(160) 및 부트스트랩 모델들(162)을 생성한다. 베이스라인 모델(160) 및 부트스트랩 모델들(162) 각각은 상이한 지각 품질 모델이다. 베이스라인 모델(160)을 생성하기 위해, 대상 집계기(subject aggregator)(도 1에 도시되지 않음)가 Nx1의 사이즈를 갖는 주관 벡터를 컴퓨팅하기 위해 주관 매트릭스(124)에 포함되는 원시 오피니언 스코어들에 대해 임의의 수 및 타입의 집계 동작(aggregation operation)들을 수행한다. 주관 벡터는, 제한 없이, 인코딩된 트레이닝 비디오들 각각에 대해 상이한 집계 주관 스코어(예를 들어, 평균 오피니언 스코어(mean opinion score)(MOS))를 포함한다.
이에 후속하여, 지각 모델 트레이너(도 1에 도시되지 않음)가 피처 매트릭스(172)와 주관 벡터 사이의 패턴들을 인식하는 임의의 수 및 타입의 머신 학습 알고리즘들을 구현한다. 더 정밀하게는, 지각 모델 트레이너는 피처 매트릭스(172)에 포함된 피처 값들을 M명의 인간 대상들의 경험을 반영하는 집계 주관 스코어들로 융합시킨다. 지각 모델 트레이너가 머신 학습 알고리즘들의 실행을 완료한 후에, 지각 모델 트레이너는 인코딩된 비디오 콘텐츠에 대한 피처 값들에 기초하여 인코딩된 비디오 콘텐츠에 대한 지각 품질 스코어들을 컴퓨팅하는 베이스라인 모델(160)을 생성한다.
피처 매트릭스(172)는 모든 인코딩된 비디오들의 모집단의 N 항목 표본과 연관된다. 유사하게, 주관 매트릭스는 모든 인간들의 모집단의 M 항목 표본과 연관된다. 일반적으로, 표본은 연관된 모집단과 동일한 평균 조성을 갖지 않으며, 표본의 조성의 잠재적 변화들은 통계적 불확실성의 원인이다. 결과적으로, 피처 매트릭스(172)와 주관 매트릭스(124) 양측 모두는 베이스라인 모델(160)에 의해 예측되는 지각 품질 스코어들의 정확도를 감소시킬 수 있는 통계적 불확실성의 원인들이다.
피처 매트릭스(172) 및/또는 주관 매트릭스(174)와 연관된 통계적 불확실성들을 추정하기 위해, 부트스트래핑 트레이닝 엔진(150)은 부트스트래핑 동작들을 수행하여 Q개의 표본 재추출된 데이터세트들(도 1에 도시되지 않음)을 생성한다. 본 기술분야의 통상의 기술자가 인식하는 바와 같이, 부트스트래핑은, 항목들의 표본과 연관된, 불확실성과 같은, 통계들을 추정하기 위해 항목들의 일반 모집단으로부터의 항목들의 표본에 대해 표본 재추출 위드 대체 동작들을 수행하는 것을 수반한다.
일부 실시예들에서, 부트스트래핑 트레이닝 엔진(150)은 "인코드 부트스트래핑"을 수행한다. 인코드 부트스트래핑에서, 부트스트래핑 트레이닝 엔진(150)은 N개의 트레이닝 쌍들에 기초하여 피처 매트릭스(172)에 대해 표본 재추출 위드 대체 동작들을 수행하여 Q개의 표본 재추출된 피처 매트릭스들(도 1에 도시되지 않음)을 생성한다. 각각의 표본 재추출된 피처 매트릭스에 대해, 부트스트래핑 트레이닝 엔진은 표본 재추출된 피처 매트릭스 및 주관 벡터에 기초하여 상이한 표본 재추출된 데이터세트를 생성한다. 인코드 부트스트래핑은 도 2와 관련하여 더욱 상세히 설명된다.
다른 실시예들에서, 부트스트래핑 트레이닝 엔진(150)은 "주관 부트스트래핑"을 수행한다. 주관 부트스트래핑에서, 부트스트래핑 트레이닝 엔진(150)은 M명의 인간 대상들에 기초하여 주관 매트릭스(172)에 대해 표본 재추출 위드 대체 동작들을 수행한다. 각각의 표본 재추출된 주관 매트릭스에 대해, 대상 집계기는 대응하는 표본 재추출된 주관 벡터를 생성한다. 이에 후속하여, 각각의 표본 재추출된 주관 벡터에 대해, 부트스트래핑 트레이닝 엔진(150)은 피처 매트릭스(172) 및 표본 재추출된 주관 벡터에 기초하여 상이한 표본 재추출된 데이터세트를 생성한다. 주관 부트스트래핑은 도 3과 관련하여 더욱 상세히 설명된다.
또 다른 실시예들에서, 부트스트래핑 트레이닝 엔진(150)은 "커플링된 부트스트래핑"을 수행한다. 커플링된 부트스트래핑에서, 부트스트래핑 트레이닝 엔진(150)은 M명의 인간 대상들에 기초하는 주관 매트릭스(172)에 대한 표본 재추출 위드 대체 동작들에 부가적으로 N개의 트레이닝 쌍들에 기초하여 피처 매트릭스(172)에 대해 표본 재추출 위드 대체 동작들을 수행한다. 각각의 표본 재추출된 주관 매트릭스에 대해, 대상 집계기는 대응하는 표본 재추출된 주관 벡터를 생성한다. 이에 후속하여, 표본 재추출된 피처 매트릭스와 표본 재추출된 주관 벡터의 각각의 조합에 대해, 부트스트래핑 트레이닝 엔진(150)은 표본 재추출된 피처 매트릭스 및 표본 재추출된 주관 벡터에 기초하여 상이한 표본 재추출된 데이터세트를 생성한다. 커플링된 부트스트래핑은 도 4와 관련하여 더욱 상세히 설명된다.
각각의 표본 재추출된 데이터세트는, 제한 없이, 피처 값들의 NxF 매트릭스 및 집계 주관 스코어들의 Nx1 벡터를 포함한다. Q개의 표본 재추출된 데이터세트들 각각에 대해, 지각 모델 트레이너의 상이한 인스턴스가 표본 재추출된 데이터세트에 포함되는 집계 주관 스코어들 및 피처 값들에 기초하여 상이한 부트스트랩 모델(162)을 생성한다. 결과적인 부트스트랩 모델들(162(1) 내지 162(Q)) 각각은 인코딩된 비디오 콘텐츠에 대한 피처 값들에 기초하여 인코딩된 비디오 콘텐츠에 대한 상이한 지각 품질 스코어를 컴퓨팅한다. 대안적인 실시예들에서, 지각 모델 트레이너의 임의의 수의 인스턴스들이 부트스트랩 모델들(162)을 생성하기 위해 병렬로, 순차적으로, 또는 이들의 임의의 조합으로 실행될 수도 있다. 그러나, 각각의 부트스트랩 모델(162)은 다른 부트스트랩 모델들(162) 및 베이스라인 모델(160)과 독립적으로 트레이닝된다.
후속 평가 페이즈 동안, 신뢰 애플리케이션(190)은 베이스라인 모델(160), 부트스트랩 모델들(162), 소스 비디오(172), 인코딩된 소스 비디오(174), 및 신뢰 레벨(196)에 기초하여 베이스라인 스코어(184), 스코어 분포(194), 및 신뢰 구간(198)을 생성한다. 도시된 바와 같이, 신뢰 애플리케이션(190)은, 제한 없이, 예측 엔진(180) 및 신뢰 엔진(192)을 포함한다.
예측 엔진(180)은, 제한 없이, 피처 엔진(170) 및 스코어링 엔진(182)을 포함한다. 피처 엔진(170)은 소스 비디오(172) 및 인코딩된 소스 비디오(174)에 기초하여 피처 벡터(176)를 생성한다. 피처 벡터(176)는, 제한 없이, F개의 피처 값들을 포함한다. 일반적으로, 스코어링 엔진(182)은 피처 벡터(176) 및 지각 품질 모델에 기초하여 지각 품질 스코어를 생성한다. 단지 설명의 목적들을 위해서만, 스코어링 엔진의 Q개의 인스턴스들(182(0) 내지 182(Q-1))이 도 1에 묘사되어 있다.
도시된 바와 같이, 스코어링 엔진(182(1))은 피처 벡터(176) 및 베이스라인 모델(160)에 기초하여 베이스라인 스코어(184)를 생성한다. 더 정밀하게는, 스코어링 엔진(182(1))은 베이스라인 모델(160)에 대한 입력으로서 피처 벡터(176)를 제공하고, 이에 응답하여, 베이스라인 모델(160)은 베이스라인 스코어(184)를 컴퓨팅한다. 이에 따라, 베이스라인 스코어(184)는, 인코딩된 소스 비디오(174)의 지각 시각 품질을 반영하는 지각 품질 스코어이다. 특히, 베이스라인 소어(184)는 N개의 상이한 트레이닝 쌍들과 연관된 피처 값들 및 M명의 상이한 인간 대상들로부터의 원시 오피니언 스코어들로부터의 영향들을 반영한다.
부트스트랩 모델들(162(x)) 각각에 대해, 스코어링 엔진(182(x))은 피처 벡터(176) 및 부트스트랩 모델(162(x))에 기초하여 부트스트랩 스코어(186(x))를 생성한다. 더 정밀하게는, 스코어링 엔진(182(x))은 부트스트랩 모델(162(x))에 대한 입력으로서 피처 벡터(176)를 제공하고, 이에 응답하여, 부트스트랩 모델(162(x))은 부트스트랩 스코어(186(x))를 컴퓨팅한다. 이에 따라, 부트스트랩 스코어들(186) 각각은, 인코딩된 소스 비디오(174)의 지각 시각 품질을 반영하는 지각 품질 스코어이다. 본 기술분야의 통상의 기술자가 인식하는 바와 같이, 부트스트랩 모델들(162) 각각이 표본 재추출 위드 대체를 사용하여 생성되는 상이한 표본 재추출된 데이터세트와 연관되기 때문에, 부트스트랩 스코어들(186) 각각은 베이스라인 스코어(184)보다 더 적은 원시 오피니언 스코어들 및/또는 더 적은 피처 값들로부터의 영향들을 반영한다.
인코드 부트스트래핑을 구현하는 실시예들의 경우, 부트스트랩 스코어들(186) 각각은 M명의 상이한 인간 대상들로부터의 원시 오피니언 스코어들 및 N개 미만의 상이한 트레이닝 쌍들로부터의 영향들을 반영한다. 대상 부트스트래핑을 구현하는 실시예들의 경우, 부트스트랩 스코어들(186) 각각은 M명 미만의 상이한 인간 대상들로부터의 원시 오피니언 스코어들 및 N개의 상이한 트레이닝 쌍들과 연관된 피처 값들로부터의 영향들을 반영한다. 커플링된 부트스트래핑을 구현하는 실시예들의 경우, 부트스트랩 스코어들(186) 각각은 M명 미만의 상이한 인간 대상들로부터의 원시 오피니언 스코어들 및 N개 미만의 상이한 트레이닝 쌍들과 연관된 피처 값들로부터의 영향들을 반영한다.
부트스트랩 스코어들(186(1) 내지 186(Q))의 수신 시에, 신뢰 엔진(192)은 부트스트랩 스코어들(186(1) 내지 186(Q))을 제한 없이 포함하는 스코어 분포(194)를 생성한다. 유리하게는, 본 기술분야의 통상의 기술자가 인식하는 바와 같이, 스코어 분포(194)는 베이스라인 스코어(184)의 정확도를 정량화한다. 추가로, 신뢰 엔진(192)은 스코어 분포(194) 및 신뢰 레벨(196)에 기초하여 신뢰 구간(198)을 컴퓨팅한다. 신뢰 엔진(196)은 임의의 기술적으로 실행가능한 방식으로 신뢰 구간(198)을 컴퓨팅할 수도 있다. 예를 들어, 95%의 신뢰 레벨에 대한 신뢰 구간(198)을 컴퓨팅하기 위해, 신뢰 엔진(196)은 부트스트랩 스코어들(186)의 최저 2.5%와 부트스트랩 스코어들(186)의 최고 2.5%를 배제시킨 구간을 결정할 수 있다. 유리하게는, 신뢰 구간(198)은 베이스라인 스코어(184)의 정확도를 정량화한다.
이에 후속하여, 신뢰 엔진(162)은 베이스라인 스코어(184), 스코어 분포(194), 및/또는 신뢰 구간(198)을 임의의 수의 소프트웨어 애플리케이션들에게 송신한다. 유리하게는, 스코어 분포(194) 및 신뢰 구간(198) 각각은 개발자들 및 소프트웨어 애플리케이션들이 베이스라인 스코어(184)에 기초하여 유효한 결론들을 도출하고 인코딩 동작들을 신뢰성있게 최적화하는 것을 가능하게 한다.
대안적인 실시예들에서, 신뢰 엔진(162)은 임의의 기술적으로 실행가능한 방식으로 인코딩된 소스 비디오(174)의 지각 품질과 연관된 임의의 수 및 타입의 정확도, 가변성, 불확실성, 및/또는 신뢰 메트릭들을 생성하기 위해 스코어 분포(194)에 기초하여 임의의 타입의 통계 분석을 수행할 수도 있다. 추가로, 신뢰 엔진(162)은 베이스라인 스코어(182) 및/또는 부트스트랩 스코어들(186)과 연관된 임의의 양 및 타입의 데이터를 임의의 수의 소프트웨어 애플리케이션들에게 송신할 수도 있다.
도시되지 않았지만, 신뢰 애플리케이션(190) 및/또는 신뢰 애플리케이션(190)의 상이한 인스턴스들이 비디오 콘텐츠의 임의의 수의 상이한 부분들에 대해 베이스라인 스코어들(184), 연관된 스코어 분포들(194), 및 신뢰 구간들(198)을 생성하기 위해 순차적으로, 동시에, 또는 이들의 임의의 조합으로 실행될 수도 있다.
본 명세서에서 설명되는 기법들은 제한적이기보다는 오히려 예시적인 것이며, 본 발명의 더 넓은 사상 및 범주로부터 벗어남이 없이 변경될 수도 있다는 것에 주목한다. 특히, 부트스트래핑 트레이닝 서브시스템(120), 피처 엔진(170), 부트스트래핑 트레이닝 엔진(150), 스코어링 엔진(182), 및 신뢰 엔진(192)은 임의의 조합으로 임의의 수의 소프트웨어 애플리케이션들에서 구현될 수도 있다. 추가로, 다양한 실시예들에서, 본 명세서에 개시된 임의의 수의 기법들이 구현될 수도 있는 한편 다른 기법들이 임의의 기술적으로 실행가능한 방식으로 생략될 수도 있다.
부트스트래핑 트레이닝 서브시스템(120), 피처 엔진(170), 부트스트래핑 트레이닝 엔진(150), 스코어링 엔진(182), 및 신뢰 엔진(192)에 의해 제공되는 기능성에 대한 많은 수정들 및 변화들은 설명된 실시예들의 범주 및 사상으로부터 벗어남이 없이 본 기술분야의 통상의 기술자에게 명백할 것이다. 대안적인 실시예들은 지각 품질 스코어들의 정확도에 대한 통찰을 제공하는 부가적인 지각 품질 모델들을 생성하기 위해 지각 품질 모델을 트레이닝시킬 때 임의의 타입의 부트스트래핑 동작들을 수행하는 것을 포함한다.
예를 들어, 일부 실시예들에서, 부트스트래핑 트레이닝 엔진(150)은 피처 매트릭스(172) 및/또는 주관 매트릭스(124) 대신에 잔차(residual)들에 기초하여 부트스트래핑 동작들을 수행한다. 더 정밀하게는, 베이스라인 모델(160)을 생성한 후에, 부트스트래핑 트레이닝 엔진(150)은 인코딩된 트레이닝 비디오들 각각에 대한 베이스라인 스코어(184)를 컴퓨팅한다. 각각의 인코딩된 트레이닝 비디오에 대해, 부트스트래핑 트레이닝 엔진(150)은 잔차 벡터에 포함되는 상이한 잔차를 생성하기 위해 집계된 주관 스코어로부터 베이스라인 스코어(184)를 감산한다. 부트스트래핑 트레이닝 엔진(150)은 Q개의 표본 재추출된 잔차 벡터들을 생성하기 위해 잔차 벡터에 대해 표본 재추출 위드 대체 동작들을 수행한다. 각각의 표본 재추출된 잔차 벡터에 대해, 부트스트래핑 트레이닝 엔진(150)은 표본 재추출된 잔차 벡터에 기초하여 주관 벡터를 수정하고, 피처 매트릭스(172) 및 수정된 주관 벡터에 기초하여 트레이닝 동작들을 수행하여 대응하는 부트스트랩 모델(162)을 생성한다.
지각 품질 모델들의 생성
도 2는 본 발명의 다양한 실시예들에 따른, 도 1의 부트스트래핑 트레이닝 엔진(150)의 더 상세한 예시이다. 도 2에 묘사된 부트스트래핑 트레이닝 엔진(150)은 인코드 부트스트래핑을 수행하도록 구성된다. 도시된 바와 같이, 부트스트래핑 트레이닝 엔진(150)은 피처 매트릭스(172), 주관 매트릭스(174), 및 총 인코딩된 비디오 표본 재추출들(226)에 기초하여 베이스라인 모델(160) 및 부트스트랩 모델들(162(1) 내지 162(Q))을 생성한다. 총 인코딩된 비디오 표본 재추출들(226)은 부트스트래핑 트레이닝 엔진(150)이 생성하는 표본 재추출된 피처 매트릭스들(260)의 총 수를 특정한다. 부트스트래핑 트레이닝 엔진(150)이 생성하는 부트스트랩 모델들(162)의 총 수는 표본 재추출된 피처 매트릭스들(260)의 총 수와 동일하다.
도시된 바와 같이, 부트스트래핑 트레이닝 엔진(150)은, 제한 없이, 대상 집계기(220), 주관 벡터(270), 베이스라인 데이터세트(250), 로우 표본 재추출기(row resampler)(210), 표본 재추출된 피처 매트릭스들(260(1) 내지 260(Q)), 표본 재추출된 데이터베이스(270), 및 지각 모델 트레이너(290)를 포함한다. 단지 설명의 목적들을 위해서만, 주관 매트릭스(124)의 차원들은 NxM이고 피처 매트릭스(172)의 차원들은 NxF이고, 여기서 N은 트레이닝 쌍들의 수이고, M은 인간 대상들의 수이며, F는 피처들의 수이다. 주관 매트릭스(124) 및 피처 매트릭스(172)의 대응하는 로우들은 단일의 인코딩된 트레이닝 비디오와 연관된다. 예를 들어, 주관 매트릭스(124) 및 피처 매트릭스(172) 각각의 제1 로우는 인코딩된 트레이닝 비디오 "A"와 연관될 수 있는 한편, 주관 매트릭스(124) 및 피처 매트릭스(172) 각각의 제2 로우는 인코딩된 트레이닝 비디오 "B"와 연관될 수 있다.
주관 매트릭스(124)의 수신 시에, 대상 집계기(220)는 주관 벡터(270)를 컴퓨팅하기 위해 주관 매트릭스(124)에 포함되는 원시 오피니언 스코어들에 대해 임의의 수 및 타입의 집계 동작들을 수행한다. 주관 벡터(270)는, 제한 없이, N개의 인코딩된 트레이닝 비디오들 각각에 대한 상이한 집계 주관 스코어를 포함한다. 예를 들어, 일부 실시예들에서, 각각의 집계 주관 스코어는 상이한 인코딩된 트레이닝 비디오에 대한 평균 오피니언 스코어(MOS)이다. 대상 집계기(220)는 주어진 인코딩된 트레이닝 비디오에 대한 MOS를 그 인코딩된 트레이닝 비디오와 연관된 원시 오피니언 스코어들의 평균으로서 컴퓨팅한다. 이러한 방식으로, 대상 집계기(220)는 주관 매트릭스에서의 각각의 로우에 대해 단일 값을 생성하고, 주관 벡터(270)의 차원들은 Nx1이다.
피처 매트릭스(172)의 수신 시에, 로우 표본 재추출기(210)는 표본 재추출된 피처 매트릭스들(260(1) 내지 260(Q))을 생성한다. 표본 재추출된 피처 매트릭스(260(x))를 생성하기 위해, 로우 표본 재추출기(210)는 피처 매트릭스(172)에 포함되는 상이한 로우들에 대해 표본 재추출 위드 대체 동작들을 수행한다. 로우들 각각이 상이한 인코딩된 트레이닝 비디오와 연관되기 때문에, 로우 표본 재추출기(210)는 인코딩된 트레이닝 비디오들에 대해 표본 재추출 위드 대체 동작들을 간접적으로 수행한다. 특히, 각각의 표본 재추출된 피처 매트릭스(260)의 차원들은 피처 매트릭스(172)의 차원들과 매칭한다. 결과적으로, 각각의 표본 재추출된 피처 매트릭스(260)의 차원들은 NxF이다. 그러나, 각각의 표본 재추출된 피처 매트릭스(260)는, 피처 매트릭스(172)에 포함되는 하나 이상의 로우들의 다수의 카피들(copies)을 전형적으로 포함하고, 그에 따라, 인코딩된 트레이닝 비디오들의 서브세트와 연관된다. 예를 들어, 피처 매트릭스(172)는 300개의 고유 로우들[로우 0, 로우 1, 로우 2, ... 로우 299]을 포함할 수 있고 표본 재추출된 피처 매트릭스(260(1))는 로우들[로우 0, 로우 0, 로우 299, 로우 52, 로우 299 ... 로우 0]을 포함할 수 있다.
도시된 바와 같이, 부트스트래핑 트레이닝 엔진(150)은 베이스라인 데이터세트(250) 및 표본 재추출된 데이터베이스(170)를 생성한다. 베이스라인 데이터세트(250)는, 제한 없이, 피처 매트릭스(172) 및 주관 벡터(270)를 포함한다. 표본 재추출된 데이터베이스(270)는, 제한 없이, 표본 재추출된 데이터세트들(280(1) 내지 280(Q))을 포함한다. 표본 재추출된 데이터세트(280(x))는, 제한 없이, 표본 재추출된 피처 매트릭스(260(x)) 및 주관 벡터의 연관된 수정된 버전(270')을 포함한다. 참조 번호 270 뒤의 틱 마크(tick mark)는 연관된 피처 매트릭스(260(x))에 대응하는 주관 벡터(270)의 수정된 버전을 표시한다.
일반적으로, 표본 재추출된 데이터세트(280(x))를 생성할 때, 부트스트래핑 트레이닝 엔진(150)은 주관 벡터(270)에 포함되는 집계 주관 스코어들에 기초하여 주관 벡터의 연관된 수정된 버전(270')을 생성한다. 더 정밀하게는, 부트스트래핑 트레이닝 엔진은 주관 벡터(270')의 각각의 로우 r과 표본 재추출된 피처 매트릭스(260(x))의 대응하는 로우 r이 동일한 인코딩된 트레이닝 비디오와 연관된다는 것을 보장한다. 예를 들어, 표본 재추출된 피처 매트릭스(260(x))가 인코딩된 트레이닝 비디오 "G"에 대응하는 피처 값들의 로우의 300개의 카피들을 포함하고 있다고 가정한다. 부트스트래핑 트레이닝 엔진(150)은 인코딩된 트레이닝 비디오 "G"와 연관된 집계 주관 스코어의 300개의 카피들을 포함하도록 주관 벡터(270')를 수정할 것이다. 주관 벡터(270')는 전형적으로 각각의 표본 재추출된 데이터세트(280)마다 상이하다.
일반적으로, 지각 모델 트레이너(290)는 인코딩된 비디오 콘텐츠의 일 부분과 연관된 피처 벡터(174)를 지각 품질 스코어로 융합시키는 지각 품질 모델을 생성하기 위해 머신 학습 동작들을 수행한다. 지각 품질 모델 트레이너(290)는 지각 품질 모델을 생성하기 위해 임의의 수 및 타입의 머신 학습 알고리즘들에 기초하여 임의의 수 및 타입의 머신 학습 동작들을 수행할 수도 있다. 예를 들어, 일부 실시예들에서, 지각 품질 모델 트레이너는 피처 값들과 집계 주관 스코어들 사이의 패턴들을 인식하는 머신 학습 알고리즘들을 구현한다.
단지 설명의 목적들을 위해서만, 지각 모델 트레이너의 (Q+1)개의 인스턴스들(290(0) 내지 290(Q))이 도 2에 묘사되어 있다. 지각 모델 트레이너(290(0))는 베이스라인 데이터세트(250)에 기초하여 베이스라인 모델(160)을 생성한다. 표본 재추출된 데이터세트(280(x)) 각각에 대해, 지각 모델 트레이너(290(x))는 표본 재추출된 데이터세트(280(x))에 기초하여 부트스트랩 모델(162(x))을 생성한다. 대안적인 실시예들에서, 지각 모델 트레이너(290)의 임의의 수의 인스턴스들이 베이스라인 모델(160) 및 부트스트랩 모델들(162)을 생성하기 위해 병렬로, 순차적으로, 또는 이들의 임의의 조합으로 실행될 수도 있다. 그러나, 각각의 부트스트랩 모델(162)은 다른 부트스트랩 모델들(162) 및 베이스라인 모델(160)과 독립적으로 트레이닝된다.
도 3은 본 발명의 다른 다양한 실시예들에 따른, 도 1의 부트스트래핑 트레이닝 엔진(150)의 더 상세한 예시이다. 도 3에 묘사된 부트스트래핑 트레이닝 엔진(150)은 주관 부트스트래핑을 수행하도록 구성된다. 도시된 바와 같이, 부트스트래핑 트레이닝 엔진(150)은 피처 매트릭스(172), 주관 매트릭스(174), 및 총 대상 표본 재추출들(326)에 기초하여 베이스라인 모델(160) 및 부트스트랩 모델들(162(1) 내지 162(Q))을 생성한다. 총 대상 표본 재추출들(326)은 부트스트래핑 트레이닝 엔진(150)이 생성하는 표본 재추출된 주관 벡터들(340)의 총 수를 특정한다. 부트스트래핑 트레이닝 엔진(150)이 생성하는 부트스트랩 모델들(162)의 총 수는 표본 재추출된 주관 벡터들(340)의 총 수와 동일하다.
도시된 바와 같이, 부트스트래핑 트레이닝 엔진(150)은, 제한 없이, 컬럼 표본 추출기(310), 대상 집계기(220), 주관 벡터(270), 표본 재추출된 주관 벡터들(340(1) 내지 340(Q)), 베이스라인 데이터세트(250), 표본 재추출된 데이터베이스(270), 및 지각 모델 트레이너(290)를 포함한다. 단지 설명의 목적들을 위해서만, 주관 매트릭스(124)의 차원들은 NxM이고 피처 매트릭스(172)의 차원들은 NxF이고, 여기서 N은 트레이닝 쌍들의 수이고, M은 인간 대상들의 수이며, F는 피처들의 수이다. 주관 매트릭스(124) 및 피처 매트릭스(172)의 대응하는 로우들은 단일의 인코딩된 트레이닝 비디오와 연관된다.
주관 매트릭스(124)의 수신 시에, 컬럼 표본 재추출기(310)는 표본 재추출된 주관 매트릭스들(312(1) 내지 312(Q))을 생성한다. 표본 재추출된 주관 매트릭스(312(x))를 생성하기 위해, 컬럼 표본 재추출기(310)는 주관 매트릭스(124)에 포함되는 상이한 컬럼들에 대해 표본 재추출 위드 대체 동작들을 수행한다. 각각의 컬럼이 상이한 인간 대상과 연관되기 때문에, 컬럼 표본 재추출기(310)는 인간 대상들에 기초하여 표본 재추출 위드 대체 동작들을 간접적으로 수행한다. 특히, 각각의 표본 재추출된 주관 매트릭스(312)의 차원들은 피처 매트릭스(172)의 차원들과 매칭한다. 결과적으로, 각각의 표본 재추출된 주관 매트릭스(312)의 차원들은 NxM이다. 그러나, 각각의 표본 재추출된 주관 매트릭스(312)는, 인간 대상들 중 하나 이상과 연관된 원시 오피니언 스코어들의 다수의 카피들을 전형적으로 포함한다. 예를 들어, 주관 매트릭스(124)는, 24명의 상이한 인간 대상들과 연관된 원시 오피니언 스코어들을 포함할 수 있고, 표본 재추출된 주관 매트릭스(312(Q))는 24명의 상이한 인간 대상들 중 1명과 연관된 원시 오피니언 스코어들의 24개의 카피들을 포함할 수 있다.
단지 설명의 목적들을 위해서만, 대상 집계기의 (Q+1)개의 인스턴스들(220(0) 내지 220(Q))이 도 3에 묘사되어 있다. 대상 집계기(220(0))는 주관 매트릭스(124)에 기초하여 주관 벡터(270)를 생성한다. 유사한 방식으로, 표본 재추출된 주관 매트릭스들(312(x)) 각각에 대해, 대상 집계기(220(x))는 표본 재추출된 주관 매트릭스(312(x))에 기초하여 표본 재추출된 주관 벡터(340(x))를 생성한다. 주관 벡터(270) 및 표본 재추출된 주관 벡터들(240) 각각의 차원들은 Nx1이다. 대안적인 실시예들에서, 대상 집계기(220)의 임의의 수의 인스턴스들이 주관 벡터(270) 및 표본 재추출된 주관 벡터들(340)을 생성하기 위해 병렬로, 순차적으로, 또는 이들의 임의의 조합으로 실행될 수도 있다.
도시된 바와 같이, 부트스트래핑 트레이닝 엔진(150)은 베이스라인 데이터세트(250) 및 표본 재추출된 데이터베이스(170)를 생성한다. 베이스라인 데이터세트(250)는, 제한 없이, 피처 매트릭스(172) 및 주관 벡터(270)를 포함한다. 표본 재추출된 데이터베이스(270)는, 제한 없이, 표본 재추출된 데이터세트들(280(1) 내지 280(Q))을 포함한다. 표본 재추출된 데이터세트(270(x))는, 제한 없이, 피처(172) 및 표본 재추출된 주관 벡터(340(x))를 포함한다.
단지 설명의 목적들을 위해서만, 지각 모델 트레이너의 (Q+1)개의 인스턴스들(290(0) 내지 290(Q))이 도 3에 묘사되어 있다. 지각 모델 트레이너(290(0))는 베이스라인 데이터세트(250)에 기초하여 베이스라인 모델(160)을 생성한다. 표본 재추출된 데이터세트(280(x)) 각각에 대해, 지각 모델 트레이너(290(x))는 표본 재추출된 데이터세트(280(x))에 기초하여 부트스트랩 모델(162(x))을 생성한다. 대안적인 실시예들에서, 지각 모델 트레이너(290)의 임의의 수의 인스턴스들이 부트스트랩 모델들(162)을 생성하기 위해 병렬로, 순차적으로, 또는 이들의 임의의 조합으로 실행될 수도 있다. 그러나, 각각의 부트스트랩 모델(162)은 다른 부트스트랩 모델들(162) 및 베이스라인 모델(160)과 독립적으로 트레이닝된다.
도 4는 본 발명의 또 다른 다양한 실시예들에 따른, 도 1의 부트스트래핑 트레이닝 엔진(150)의 더 상세한 예시이다. 도 4에 묘사된 부트스트래핑 트레이닝 엔진(150)은 커플링된 부트스트래핑을 수행하도록 구성된다. 도시된 바와 같이, 부트스트래핑 트레이닝 엔진(150)은 피처 매트릭스(172), 주관 매트릭스(174), 총 인코딩된 비디오 표본 재추출들(226), 및 총 대상 표본 재추출들(326)에 기초하여 베이스라인 모델(160) 및 부트스트랩 모델들(162(1) 내지 162(Q))을 생성한다. 부트스트래핑된 트레이닝 엔진(150)이 생성하는 부트스트랩 모델들(162)의 총 수는 총 인코딩된 비디오 표본 재추출들(226)과 총 주관 표본 재추출들(326)의 곱과 동일하다. 단지 설명의 목적들을 위해서만, 총 인코딩된 비디오 표본 재추출들(226)은 T와 동일하고, 총 대상 표본 재추출들(326)은 S와 동일하며, 부트스트랩 모델들(162)의 총 수는 Q와 동일하다.
도시된 바와 같이, 부트스트래핑 트레이닝 엔진(150)은, 제한 없이, 로우 표본 재추출기(210), 표본 재추출된 피처 매트릭스들(260(1) 내지 260(T)), 컬럼 표본 추출기(310), 대상 집계기(220), 주관 벡터(270), 표본 재추출된 주관 벡터들(340(1) 내지 340(S)), 베이스라인 데이터세트(250), 표본 재추출된 데이터베이스(270), 및 지각 모델 트레이너(290)를 포함한다. 단지 설명의 목적들을 위해서만, 주관 매트릭스(124)의 차원들은 NxM이고 피처 매트릭스(172)의 차원들은 NxF이고, 여기서 N은 트레이닝 쌍들의 수이고, M은 인간 대상들의 수이며, F는 피처들의 수이다. 주관 매트릭스(124) 및 피처 매트릭스(172)의 대응하는 로우들은 단일의 인코딩된 트레이닝 비디오와 연관된다.
피처 매트릭스(172)의 수신 시에, 로우 표본 재추출기(210)는 표본 재추출된 피처 매트릭스들(260(1) 내지 260(T))을 생성한다. 도 2와 관련하여 이전에 설명된 바와 같이, 표본 재추출된 피처 매트릭스(260(x))를 생성하기 위해, 로우 표본 재추출기(210)는 피처 매트릭스(172)에 포함되는 상이한 로우들에 대해 표본 재추출 위드 대체 동작들을 수행한다. 도시된 바와 같이, 각각의 표본 재추출된 피처 매트릭스(260)의 차원들은 NxF이다.
주관 매트릭스(124)의 수신 시에, 컬럼 표본 재추출기(310)는 표본 재추출된 주관 매트릭스들(312(1) 내지 312(S))을 생성한다. 도 3과 관련하여 이전에 설명된 바와 같이, 표본 재추출된 주관 매트릭스(312(x))를 생성하기 위해, 컬럼 표본 재추출기(310)는 주관 매트릭스(124)에 포함되는 상이한 컬럼들에 대해 표본 재추출 위드 대체 동작들을 수행한다. 도시된 바와 같이, 각각의 표본 재추출된 주관 매트릭스(312)의 차원들은 NxM이다.
단지 설명의 목적들을 위해서만, 대상 집계기의 (S+1)개의 인스턴스들(220(0) 내지 220(S))이 도 4에 묘사되어 있다. 대상 집계기(220(0))는 주관 매트릭스(124)에 기초하여 주관 벡터(270)를 생성한다. 유사한 방식으로, 표본 재추출된 주관 매트릭스들(312(x)) 각각에 대해, 대상 집계기(220(x))는 표본 재추출된 주관 매트릭스(312(x))에 기초하여 표본 재추출된 주관 벡터(340(x))를 생성한다. 주관 벡터(270) 및 표본 재추출된 주관 벡터들(240) 각각의 차원들은 Nx1이다. 대안적인 실시예들에서, 대상 집계기(220)의 임의의 수의 인스턴스들이 주관 벡터(270) 및 표본 재추출된 주관 벡터들(340)을 생성하기 위해 병렬로, 순차적으로, 또는 이들의 임의의 조합으로 실행될 수도 있다.
도시된 바와 같이, 부트스트래핑 트레이닝 엔진(150)은 베이스라인 데이터세트(250) 및 표본 재추출된 데이터베이스(170)를 생성한다. 베이스라인 데이터세트(250)는, 제한 없이, 피처 매트릭스(172) 및 주관 벡터(270)를 포함한다. 표본 재추출된 데이터베이스(270)는, 제한 없이, 표본 재추출된 데이터세트들(280(1) 내지 280(Q))을 포함한다. 각각의 표본 재추출된 데이터베이스(270)는, 표본 재추출된 피처 매트릭스들(260) 중 하나와 표본 재추출된 주관 벡터들 중 하나의 표본 재추출된 주관 벡터의 연관된 수정된 버전(340')의 상이한 조합이다. 참조 번호 340(x) 뒤의 틱 마크는 연관된 표본 재추출된 피처 매트릭스(260)에 대응하는 표본 재추출된 주관 벡터(340(x))의 수정된 버전을 표시한다.
예를 들어, 도시된 바와 같이, 표본 재추출된 데이터세트(280(Q))는, 제한 없이, 표본 재추출된 피처 매트릭스(260(T)) 및 표본 재추출된 주관 벡터의 연관된 수정된 버전(340(S)')을 포함한다. 표본 재추출된 데이터세트(280(Q))를 생성할 때, 부트스트래핑 트레이닝 엔진(150)은 표본 재추출된 주관 벡터(340(S)')에 포함되는 집계 주관 스코어들에 기초하여 표본 재추출된 주관 벡터의 연관된 수정된 버전(340(S)')을 생성한다. 더 정밀하게는, 부트스트래핑 트레이닝 엔진(150)은 주관 벡터(340(S)')의 각각의 로우 r과 표본 재추출된 피처 매트릭스(260(T))의 대응하는 로우 r이 동일한 인코딩된 트레이닝 비디오와 연관된다는 것을 보장한다.
단지 설명의 목적들을 위해서만, 지각 모델 트레이너의 (Q+1)개의 인스턴스들(290(0) 내지 290(Q))이 도 3에 묘사되어 있다. 지각 모델 트레이너(290(0))는 베이스라인 데이터세트(250)에 기초하여 베이스라인 모델(160)을 생성한다. 표본 재추출된 데이터세트(280(x)) 각각에 대해, 지각 모델 트레이너(290(x))는 표본 재추출된 데이터세트(280(x))에 기초하여 부트스트랩 모델(162(x))을 생성한다. 대안적인 실시예들에서, 지각 모델 트레이너(290)의 임의의 수의 인스턴스들이 부트스트랩 모델들(162)을 생성하기 위해 병렬로, 순차적으로, 또는 이들의 임의의 조합으로 실행될 수도 있다. 그러나, 각각의 부트스트랩 모델(162)은 다른 부트스트랩 모델들(162) 및 베이스라인 모델(160)과 독립적으로 트레이닝된다.
도 5a 및 도 5b는 본 발명의 다양한 실시예들에 따른, 지각 품질 스코어의 정확도를 정량화하기 위한 방법 단계들의 흐름도를 제시한다. 방법 단계들이 도 1 내지 도 4의 시스템들과 관련하여 설명되지만, 본 기술분야의 통상의 기술자는 임의의 순서로 방법 단계들을 구현하도록 구성되는 임의의 시스템이 본 발명의 범주 내에 있다는 것을 이해할 것이다.
도시된 바와 같이, 방법(500)은 단계 502에서 시작하고, 여기서 부트스트래핑 트레이닝 서브시스템(120)은 트레이닝 인코드 데이터베이스(122)에 기초하여 피처 매트릭스(172)를 생성한다. 단계 504에서, 부트스트래핑 트레이닝 엔진(150)은 부트스트래핑 트레이닝 엔진(150)이 피처 매트릭스(172)에 대해 부트스트래핑 동작들을 수행하도록 구성되는지 여부를 결정한다. 단계 504에서, 부트스트래핑 트레이닝 엔진(150)이 피처 매트릭스(172)에 대해 부트스트래핑 동작들을 수행하도록 구성되지 않는다고 부트스트래핑 트레이닝 엔진(150)이 결정하는 경우, 그러면 방법(500)은 단계 508로 직접 진행한다.
그러나, 단계 504에서, 부트스트래핑 트레이닝 엔진(150)이 피처 매트릭스(172)에 대해 부트스트래핑 동작들을 수행하도록 구성된다고 부트스트래핑 트레이닝 엔진(150)이 결정하는 경우, 그러면 방법(500)은 단계 506으로 진행한다. 단계 506에서, 로우 표본 재추출기(210)는 표본 재추출된 피처 매트릭스들(260)을 생성하기 위해 피처 매트릭스(172)에 대해 표본 재추출 위드 대체 동작들을 수행한다.
단계 508에서, 대상 집계기(220)는 주관 벡터(270)를 생성하기 위해 주관 매트릭스(124)에 대해 집계 동작들을 수행한다. 단계 510에서, 부트스트래핑 트레이닝 엔진(150)은 부트스트래핑 트레이닝 엔진(150)이 주관 매트릭스(124)에 대해 부트스트래핑 동작들을 수행하도록 구성되는지 여부를 결정한다. 단계 510에서, 부트스트래핑 트레이닝 엔진(150)이 주관 매트릭스(124)에 대해 부트스트래핑 동작들을 수행하도록 구성되지 않는다고 부트스트래핑 트레이닝 엔진(150)이 결정하는 경우, 그러면 방법(500)은 단계 516으로 직접 진행한다.
그러나, 단계 510에서, 부트스트래핑 트레이닝 엔진(150)이 주관 매트릭스(124)에 대해 부트스트래핑 동작들을 수행하도록 구성된다고 부트스트래핑 트레이닝 엔진(150)이 결정하는 경우, 그러면 방법(500)은 단계 512로 진행한다. 단계 512에서, 컬럼 표본 재추출기(310)는 표본 재추출된 주관 매트릭스들(312)을 생성하기 위해 주관 매트릭스(124)에 대해 표본 재추출 위드 대체 동작들을 수행한다. 단계 514에서, 각각의 표본 재추출된 주관 매트릭스(312(i))에 대해, 대상 집계기(220)는 표본 재추출된 주관 벡터(340(i))를 생성하기 위해 표본 재추출된 주관 매트릭스(312(i))에 대해 집계 동작들을 수행한다.
단계 516에서, 부트스트래핑 트레이닝 엔진(150)은 표본 재추출된 데이터세트들(280)을 생성한다. 부트스트래핑 트레이닝 엔진(150)이 인코드 부트스트래핑을 수행하도록 구성되는 경우, 그러면 부트스트래핑 트레이닝 엔진(150)은 표본 재추출된 피처 매트릭스들(260) 및 주관 벡터(270)에 기초하여 표본 재추출된 데이터세트들(170)을 생성한다. 부트스트래핑 트레이닝 엔진(150)이 주관 부트스트래핑을 수행하도록 구성되는 경우, 그러면 부트스트래핑 트레이닝 엔진(150)은 피처 매트릭스(122) 및 표본 재추출된 주관 벡터들(340)에 기초하여 표본 재추출된 데이터세트들(170)을 생성한다. 부트스트래핑 트레이닝 엔진(150)이 커플링된 부트스트래핑을 수행하도록 구성되는 경우, 그러면 부트스트래핑 트레이닝 엔진(150)은 표본 재추출된 피처 매트릭스들(260) 및 표본 재추출된 주관 벡터들(340)에 기초하여 표본 재추출된 데이터세트들(170)을 생성한다.
단계 518에서, 지각 모델 트레이너(290)는 피처 매트릭스(172) 및 주관 벡터(270)에 기초하여 베이스라인 모델(160)을 생성한다. 단계 520에서, 각각의 표본 재추출된 데이터세트(280(i))에 대해, 지각 모델 트레이너(290)는 표본 재추출된 데이터세트(280(i))에 기초하여 부트스트랩 모델(162(i))을 생성한다. 단계 522에서, 예측 엔진(180)은 베이스라인 모델(160), 인코딩된 소스 비디오(174), 및 소스 비디오(172)에 기초하여 인코딩된 소스 비디오(174)에 대한 베이스라인 스코어(184)를 컴퓨팅한다. 단계 524에서, 각각의 부트스트랩 모델(162(i))에 대해, 예측 엔진(180)은 부트스트랩 모델(162(i)), 인코딩된 소스 비디오(174), 및 소스 비디오(172)에 기초하여 인코딩된 소스 비디오(174)에 대한 부트스트랩 스코어(186(i))를 컴퓨팅한다. 단계 526에서, 신뢰 엔진(192)은 부트스트랩 스코어들(186)에 기초하여 스코어 분포(194)를 생성하고 분포(194) 및 신뢰 레벨(196)에 기초하여 신뢰 구간(198)을 컴퓨팅한다. 신뢰 애플리케이션(190)은 베이스라인 스코어(184), 스코어 분포(194), 및/또는 신뢰 구간(198)을 임의의 수의 다른 소프트웨어 애플리케이션들에게 송신한다. 그 후에 방법(500)이 종료된다.
일부 실시예들에서, 하나 이상의 소프트웨어 애플리케이션들은 인코딩 동작들을 미세 튜닝하기 위해 임의의 양 및 타입의 인코딩된 비디오 콘텐츠에 대해 신뢰 애플리케이션(190), 베이스라인 스코어들(184), 스코어 분포들(194), 및/또는 신뢰 구간들(198)을 사용한다. 예를 들어, 일부 실시예들에서, 적응적 스트리밍 애플리케이션(adaptive streaming application)이 지각 품질 스코어들(예를 들어, VMAF 메트릭에 대한 값들)에 기초하여 인코딩 비트레이트를 최적화한다. 적응적 스트리밍 애플리케이션은 90의 지각 품질 스코어에 기초하여 위로부터 인코딩된 비디오 콘텐츠와 연관된 적응적 비트레이트를 캡핑(cap)하도록 구성될 수 있다. 지각 품질 스코어가 90에 도달한다는 것을 보장한 후에, 적응적 스트리밍 애플리케이션은 적응적 비트레이트를 더 이상 증가시키지 않아서, 그에 의해 대역폭을 절감하고 재버퍼링 레이트들을 감소시킬 것이다. 그러나, 지각 품질 스코어와 연관된 불확실성 때문에, 적응적 스트리밍 애플리케이션은 95%의 신뢰 레벨(196)에 기초하여 보수성(conservatism)을 증가시키도록 구성될 수 있다. 예를 들어, 신뢰 구간(198)이 90의 베이스라인 스코어(184)에 대해 87 내지 93인 경우, 그러면 적응적 스트리밍 애플리케이션은 적응적 비트레이트를 90 대신에 93으로 캡핑할 수 있다.
유사한 방식으로, 적응적 스트리밍 애플리케이션은 지각 품질 스코어에 기초하여 아래로부터 인코딩된 비디오 콘텐츠와 연관된 적응적 비트레이트를 캡핑하도록 구성될 수 있다. 특히, 스트리밍 시작 페이즈에서, 적응적 스트리밍 애플리케이션은 60의 초기에 허용가능한 지각 품질 스코어에 기초하여 적응적 비트레이트를 설정할 수 있다. 그러나, 지각 품질 스코어와 연관된 불확실성 때문에, 적응적 스트리밍 애플리케이션은 95%의 신뢰 레벨(196)에 기초하여 보수성을 증가시키도록 구성될 수 있다. 예를 들어, 신뢰 구간(198)이 60의 베이스라인 스코어(184)에 대해 53 내지 67인 경우, 그러면 적응적 스트리밍 애플리케이션은 60 대신에 67의 베이스라인 스코어(184)에 기초하여 적응적 비트레이트를 초기에 설정할 수 있다.
부트스트랩 모델들에 기초하는 BD-레이트 값들의 유의도의 정량화
일부 실시예들에서, 트레이닝 페이즈 후에, 부트스트래핑 트레이닝 서브시스템(120)은 신뢰 애플리케이션(190)에 부가적으로 또는 그 대신에 임의의 수의 소프트웨어 애플리케이션들, 서브시스템들, 또는 시스템들에 베이스라인 모델(160) 및 부트스트랩 모델들(162)을 송신한다. 특히, 다양한 실시예들에서, 부트스트래핑 트레이닝 서브시스템(120)은 베이스라인 모델(160) 및 부트스트랩 모델들(162)을 Bjontegaard의 delta 레이트(BD-레이트) 비교 애플리케이션에 송신한다.
일부 실시예들에서, BD-레이트 비교 애플리케이션은 테스트 코덱의 성능을 기준 코덱의 성능과 비교하기 위해 베이스라인 모델(160)을 사용하여 Bjontegaard delta 레이트(BD-레이트) 값들을 컴퓨팅한다. BD-레이트 값은 본 명세서에서 "BD-레이트에 대한 값"이라고도 또한 지칭된다. 각각의 BD-레이트는 동일한 베이스라인 스코어(184)를 유지하는 동안 기준 코덱을 사용하여 인코딩하는 것과 비교하여 테스트 코덱을 사용하여 인코딩할 때의 퍼센티지 비트레이트 변경을 전형적으로 특정한다. 특히, 부트스트랩 모델들(162)은 BD-레이트 비교 애플리케이션이 BD-레이트 값들의 정확도를 자동으로 정량화하는 것을 가능하게 한다. 도 6 내지 도 9는 BD-레이트 비교 애플리케이션을 제한 없이 포함하는 예시적인 BD-레이트 유의도 시스템을 설명한다.
도 6은 본 발명의 하나 이상의 양태들을 구현하도록 구성되는 Bjontegaard의 delta 레이트("BD-레이트") 유의도 시스템(600)의 개념적 예시이다. 설명의 목적들을 위해, BD-레이트 유의도 시스템(600)은 BD-레이트들에 기초하여 테스트 코덱의 성능을 기준 코덱의 성능과 비교하는 맥락에서 설명된다. 그러나, 본 기술분야의 통상의 기술자가 인식하는 바와 같이, 개시된 기법들은 BD-레이트 대신에 또는 그에 부가적으로 임의의 수 및 타입의 적용가능한 비교 메트릭들에 기초하여 임의의 타입의 테스트 인코딩 구성의 성능을 임의의 타입의 기준 인코딩 구성의 성능과 비교하도록 적용될 수도 있다.
본 명세서에서 언급되는 바와 같이, "인코딩 구성"은 인코더와 구성의 조합이다. 구성은 인코더를 커스터마이징하는 임의의 수 및 타입의 파라미터들에 대한 값들을 특정한다. 구성과 연관된 파라미터들은 본 명세서에서 "구성 파라미터들"이라고도 또한 지칭된다. 구성 파라미터는 인코더에 의해 수행되는 인코딩 동작들에 영향을 미치는 임의의 파라미터, 옵션, 모드, 설정 등일 수도 있다. 구성 파라미터들의 예들은, 제한 없이, 프로파일 레벨, 분석 레벨, 탐색 레벨, 심리-시각적 옵션(psycho-visual option), 성능 옵션, 튜닝 옵션 등을 포함한다. 이에 따라, 대안적인 실시예들에서, BD-레이트 유의도 시스템(100)은 단일 코덱에 대한 상이한 파라미터 세트들의 성능을 비교하는 데 사용될 수도 있다.
도시된 바와 같이, BD-레이트 유의도 시스템(100)은, 제한 없이, 컴퓨트 인스턴스(110)를 포함한다. 대안적인 실시예들에서, BD-레이트 유의도 시스템(100)은 임의의 수의 컴퓨트 인스턴스들(110)을 포함할 수도 있다. 추가로, 임의의 수의 컴퓨트 인스턴스들(110)은 다수의 지리적 위치들에 걸쳐 분산되거나 또는 임의의 조합으로 하나 이상의 클라우드 컴퓨팅 환경들(, 캡슐화된 공유 리소스들, 소프트웨어, 데이터 등)에서 구현될 수도 있다.
BD-레이트 비교 애플리케이션(610)은 메모리(116)에 상주하고 컴퓨트 인스턴스(110)의 프로세서(112) 상에서 실행된다. BD-레이트 비교 애플리케이션(610)은 본 명세서에서 "인코딩 메트릭 비교 애플리케이션"이라고도 또한 지칭된다. BD-레이트 비교 애플리케이션(610)은 테스트 코덱(624), 기준 코덱(622), 비트레이트 설정들(626(1) 내지 626(B)), 베이스라인 모델(160), 부트스트랩 모델들(162(1) 내지 162(Q)), 및 소스 이미지들(602(1) 내지 602(P))에 기초하여 코덱 베이스라인 BD-레이트 값(660), 코덱 BD-레이트 분포(698), 및 코덱 BD-레이트 신뢰 구간(696)을 컴퓨팅한다. 소스 이미지들(602) 각각은, 임의의 포맷으로 표현되는 임의의 타입의 이미지일 수도 있다. 대안적인 실시예들에서, 소스 이미지들(602) 각각은 임의의 부분 및 타입의 비디오 콘텐츠로 대체될 수도 있다. 단지 설명의 목적들을 위해서만, B는 상이한 비트레이트 설정들의 수이고, Q는 상이한 부트스트랩 모델들(162)의 수이며, P는 상이한 소스 이미지(602)의 수이다.
테스트 코덱(624)은 평가를 위한 인코딩 구성을 특정하는 한편, 기준 코덱(622)은 테스트 코덱(624)이 비교되어야 하는 인코딩 구성을 특정한다. 비트레이트 설정들(626) 각각은 테스트 코덱(624) 및 기준 코덱(622)에 의해 수행되는 인코딩 동작들에 영향을 미치는 타깃 비트레이트 구성 파라미터에 대한 상이한 값을 특정한다. 예를 들어, 비트레이트 설정들(626)은, 제한 없이, 8개의 값들 0.05 bpp(bits per pixel), 0.12 bpp, 0.25 bpp, 0.50 bpp, 0.75 bpp, 1.00 bpp, 1.50 bpp, 및 2.00 bpp를 포함할 수 있다. 대안적인 실시예들에서, 비트레이트 설정들(626)은 테스트 코덱(624) 및 기준 코덱(622)에 의해 수행되는 인코딩 동작들에 영향을 미치는 임의의 구성 파라미터에 대한 값들로 대체될 수도 있다.
도시된 바와 같이, BD-레이트 비교 애플리케이션(610)은, 제한 없이, BD-레이트 서브시스템(630), 집계 엔진(650), 및 신뢰 엔진(192)을 포함한다. 단지 설명의 목적들을 위해서만, BD-레이트 서브시스템(630)의 P개의 인스턴스들이 도 6에 묘사되어 있다. BD-레이트 서브시스템(630(x))은 소스 이미지(602(x)), 기준 코덱(622), 테스트 코덱(624), 비트레이트 설정들(626), 베이스라인 모델(160), 및 부트스트랩 모델들(162)에 기초하여 BD-레이트 데이터세트(640(x))를 생성한다. 이에 따라, BD-레이트 데이터세트(640(x))는 소스 이미지(602(x))와 연관된다. 대안적인 실시예들에서, BD-레이트 서브시스템(630)의 임의의 수의 인스턴스들이 BD-레이트 데이터세트들(640(1) 내지 640(P))을 생성하기 위해 병렬로, 순차적으로, 또는 이들의 임의의 조합으로 실행될 수도 있다.
도 7과 관련하여 더욱 상세히 설명되는 바와 같이, BD-레이트 데이터세트(640(x))는, 제한 없이, 베이스라인 BD-레이트 값, 및 Q개의 부트스트랩 BD-레이트 값들을 포함한다. BD-레이트 데이터세트(640(x))에 포함되는 부트스트랩 BD-레이트 값들 및 베이스라인 BD-레이트 값들 각각은 동일한 베이스라인 스코어(180)를 유지하는 동안 기준 코덱(622)을 사용하여 소스 이미지(602(x))를 인코딩하는 것과 비교하여 테스트 코덱(624)을 사용하여 소스 이미지(602(x))를 인코딩할 때의 비트레이트 변경을 특정한다. 베이스라인 BD-레이트 값과 부트스트랩 BD-레이트 값들 각각은 퍼센티지로서 표현된다. 대안적인 실시예들에서, BD-레이트 데이터세트(640(x))에 포함되는 부트스트랩 BD-레이트 값들 및 베이스라인 BD-레이트 값 각각은 임의의 기술적으로 실행가능한 방식으로 소스 이미지(602(x))를 인코딩할 때 테스트 코덱(624)과 기준 코덱(622) 사이의 성능 차이를 표현할 수도 있다.
도 7 및 도 8과 관련하여 더욱 상세히 설명되는 바와 같이, BD-레이트 데이터세트(640(x))를 생성하기 위해, BD-레이트 서브시스템(630(x))은 소스 이미지(602(x))에 기초하여 2xB개의 인코딩된 소스 이미지들을 생성한다. 각각의 인코딩된 소스 이미지는 코덱(, 테스트 코덱(624) 또는 기준 코덱(622))과 비트레이트 설정들(626)의 상이한 조합과 연관된다. 예를 들어, 6개의 비트레이트 설정들(626)의 경우, BD-레이트 서브시스템(630(x))은 소스 이미지(602(x))에 기초하여 12개의 상이한 인코딩된 소스 이미지들을 생성한다. 인코딩된 소스 이미지들 각각에 대해, BD-레이트 서브시스템(630(x))은 실제 비트레이트, 베이스라인 모델(160)에 기초하는 베이스라인 스코어(184), 및 부트스트랩 모델들(162(1) 내지 162(Q)) 각각에 기초하는 부트스트랩 스코어들(186(1) 내지 186(Q))을 컴퓨팅한다.
그 후에, BD-레이트 서브시스템(630(x))은 실제 비트레이트들 및 베이스라인 스코어들(184)에 기초하여 소스 이미지(602(x))에 대한 베이스라인 BD-레이트 값을 컴퓨팅한다. 유사하게, Q개의 부트스트랩 모델들(162) 각각에 대해, BD-레이트 서브시스템(630(x))은 부트스트랩 모델(162)에 기초하여 컴퓨팅된 부트스트랩 스코어들(184) 및 실제 비트레이트들에 기초하여 상이한 부트스트랩 BD-레이트 값을 컴퓨팅한다. 최종적으로, BD-레이트 서브시스템(630(x))은, 소스 이미지(601(x))와 연관된 Q개의 부트스트랩 BD-레이트 값들 및 베이스라인 BD-레이트 값을 제한 없이 포함하는 BD-레이트 데이터세트(640(x))를 생성한다.
이에 후속하여, 집계 엔진(650)은 BD-레이트 데이터세트들(640(1) 내지 640(P))에 포함되는 BD-레이트 값들에 기초하여 코덱 베이스라인 BD-레이트 값(660)을 생성한다. 코덱 베이스라인 BD-레이트 값(660)은 동일한 베이스라인 스코어(184)를 유지하는 동안 기준 코덱(622)을 사용하여 인코딩하는 것과 비교하여 테스트 코덱(624)을 사용하여 인코딩할 때의 비트레이트 변경을 특정한다. 코덱 베이스라인 BD-레이트 값(660)은 퍼센티지로서 표현되고 P개의 소스 이미지들(602)로부터 유도되는 2*P*B개의 인코딩된 소스 이미지들을 반영한다. 대안적인 실시예들에서, 코덱 베이스라인 BD-레이트 값(600)은 임의의 기술적으로 실행가능한 방식으로 테스트 코덱(624)과 기준 코덱(622) 사이의 성능 차이를 표현할 수도 있다.
유사한 방식으로, 부트스트랩 모델들(162(x)) 각각에 대해, 집계 엔진(650)은 부트스트랩 모델(162(x))과 연관된 BD-레이트 데이터세트들(640(1) 내지 640(P))에 포함되는 BD-레이트 값들의 서브세트에 기초하여 코덱 부트스트랩 BD-레이트 값(662(x))을 생성한다. 코덱 부트스트랩 BD-레이트 값(662(x))은 부트스트랩 모델(162(x))에 따라 동일한 부트스트랩 스코어(186)를 유지하는 동안 기준 코덱(622)을 사용하여 인코딩하는 것과 비교하여 테스트 코덱(624)을 사용하여 인코딩할 때의 비트레이트 변경을 특정한다. 코덱 부트스트랩 BD-레이트 값(662(x))은 퍼센티지로서 표현되고 P개의 소스 이미지들(602)로부터 유도되는 2*P*B개의 인코딩된 소스 이미지들을 반영한다. 대안적인 실시예들에서, 코덱 부트스트랩 BD-레이트 값(662(x))은 임의의 기술적으로 실행가능한 방식으로 테스트 코덱(624)과 기준 코덱(622) 사이의 성능 차이를 표현할 수도 있다.
집계 엔진(650)은 코덱 베이스라인 BD-레이트 값(660) 및 코덱 부트스트랩 BD-레이트 값들(662(1) 내지 662(Q))을 생성하기 위해 BD-레이트 데이터세트들(640(1) 내지 640(P))에 대해 임의의 수 및 타입의 동작들(예를 들어, 변환 동작들, 집계 동작들 등)을 수행할 수도 있다. 예를 들어, 일부 실시예들에서, 집계 엔진(650)은 BD-레이트 데이터세트들(640(1) 내지 640(P))에 포함되는 베이스라인 BD-레이트 값들의 평균으로서 코덱 베이스라인 BD-레이트 값(660)을 컴퓨팅한다. 유사한 방식으로, 집계 엔진(650)은 부트스트랩 모델(162(q))과 연관된 BD-레이트 데이터세트들(640(1) 내지 640(P))에 포함되는 부트스트랩 BD-레이트 값들의 서브세트의 평균으로서 코덱 부트스트랩 BD-레이트 값들(662(q)) 각각을 컴퓨팅한다.
다른 실시예들에서, 집계 엔진(650)은 BD-레이트 데이터세트들(640(1) 내지 640(P))에 포함되는 베이스라인 BD-레이트 값들의 기하 평균(geometric average)으로서 코덱 베이스라인 BD-레이트 값(660)을 컴퓨팅한다. 베이스라인 BD-레이트 값들 각각에 대해, 집계 엔진(650)은 다음의 식 (1)에 기초하여 대응하는 변환된 베이스라인 BD-레이트 값을 컴퓨팅한다:
변환된 BD-레이트 값 = 1 + BD-레이트 값/100 (1)
변환된 베이스라인 BD-레이트 값들은 베이스라인 BD-레이트 값들의 의미있는 기하 평균을 가능하게 한다. 그 후에, 집계 엔진(650)은 변환된 기하 평균을 생성하기 위해 P개의 변환된 BD-레이트 값들의 기하 평균을 컴퓨팅한다. 이에 후속하여, 집계 엔진(650)은 다음의 식 (2)에 기초하여 코덱 베이스라인 BD-레이트를 컴퓨팅한다:
코덱 BD-레이트 값 = 100 * (변환된 기하 평균 - 1) (2)
집계 엔진은 유사한 방식으로 코덱 부트스트랩 BD-레이트 값들(662) 각각을 컴퓨팅한다.
코덱 베이스라인 BD-레이트 값(660) 및 코덱 부트스트랩 BD-레이트 값들(662)의 수신 시에, 신뢰 엔진(192)은 코덱 부트스트랩 스코어들(662(1) 내지 662(Q))을 제한 없이 포함하는 코덱 BD-레이트 분포(698)를 생성한다. 유리하게는, 본 기술분야의 통상의 기술자가 인식하는 바와 같이, 코덱 BD-레이트 분포(698)는 코덱 베이스라인 BD-레이트 값(660)의 정확도를 정량화한다. 추가로, 신뢰 엔진(192)은 코덱 BD-레이트 분포(698) 및 코덱 신뢰 레벨(196)에 기초하여 코덱 BD-레이트 신뢰 구간(696)을 컴퓨팅한다.
신뢰 엔진(192)은 임의의 기술적으로 실행가능한 방식으로 코덱 BD-레이트 신뢰 구간(696)을 컴퓨팅할 수도 있다. 예를 들어, 95%의 신뢰 레벨에 대한 코덱 BD-레이트 신뢰 구간(696)을 컴퓨팅하기 위해, 신뢰 엔진(196)은 코덱 부트스트랩 스코어들(662(1) 내지 662(Q))의 최저 2.5%와 코덱 부트스트랩 스코어들(662(1) 내지 662(Q))의 최고 2.5%를 배제시킨 구간을 결정할 수 있다. 유리하게는, 코덱 BD-레이트 신뢰 구간(696)은 베이스라인 스코어(184)의 정확도를 정량화한다.
이에 후속하여, 신뢰 엔진(162)은 코덱 베이스라인 BD-레이트 값(660), 코덱 BD-레이트 분포(698), 및/또는 코덱 BD-레이트 신뢰 구간(696)을 임의의 수의 소프트웨어 애플리케이션들에게 송신한다. 유리하게는, 코덱 베이스라인 BD-레이트 값(660)의 정확도와 유의도를 정량화함으로써, 코덱 BD-레이트 분포(698), 및 코덱 BD-레이트 신뢰 구간(696) 각각은 개발자들 및 소프트웨어 애플리케이션들이 코덱 베이스라인 BD-레이트 값(660)에 기초하여 유효한 결론들을 도출하고 인코딩 동작들을 신뢰성있게 최적화하는 것을 가능하게 한다.
예를 들어, 소프트웨어 애플리케이션이 제로의 BD-레이트 값이 코덱 BD-레이트 신뢰 구간(696) 내에 있다고 결정하는 경우, 그러면 소프트웨어 애플리케이션은 테스트 코덱(624)과 기준 코덱(622) 사이의 비트레이트 성능 차이가 통계적으로 유의하지 않다고 결정할 수 있다. 그 결과, 소프트웨어 애플리케이션은 테스트 코덱(624)에 기초하여 소스 비디오들(172)을 재인코딩하는 것을 억제하여, 시간과 컴퓨팅 리소스들 양측 모두를 절감할 수 있다.
다양한 실시예들에서, 신뢰 엔진(162)은 코덱 베이스라인 BD-레이트 값(660) 및/또는 코덱 부트스트랩 BD-레이트 값들(662)과 연관된 임의의 양 및 타입의 데이터를 임의의 수의 소프트웨어 애플리케이션들에게 송신할 수도 있는데, 이 임의의 수의 소프트웨어 애플리케이션들은 그 후에 코덱 베이스라인 BD-레이트 값(660) 및/또는 코덱 부트스트랩 스코어들(662)에 기초하여 임의의 양의 분석을 수행할 수도 있다. 대안적인 실시예들에서, 신뢰 엔진(192)은 코덱 베이스라인 BD-레이트 값(660)과 연관된 임의의 수 및 타입의 정확도, 가변성, 불확실성, 및/또는 신뢰 메트릭들을 생성하기 위해 코덱 BD-레이트 분포(698)에 기초하여 임의의 타입의 통계 분석을 수행하는 분석 엔진으로 대체 또는 보충될 수도 있다.
일부 대안적인 실시예들에서, 소스 이미지들(602)은 소스 비디오 콘텐츠의 부분들로 대체되고, 콘텐츠 분석 엔진은 코덱 BD-레이트 분포(698), 소스 비디오 콘텐츠의 부분들, BD-레이트 데이터세트들(640), 코덱 베이스라인 BD-레이트 값(660), 및/또는 코덱 부트스트랩 BD-레이트 값들(552)에 기초하여 임의의 양 및 타입의 콘텐츠 분석 동작들을 수행한다. 예를 들어, 콘텐츠 분석 엔진은 코덱 BD-레이트 분포(698)의 좌측에 기초하여 테스트 코덱(624)이 전형적으로 기준 코덱(622)보다 성능이 낮은 소스 비디오 콘텐츠의 타입들을 식별할 수 있다. 유사하게, 분석 엔진은 코덱 BD-레이트 분포(698)의 우측에 기초하여 테스트 코덱(624)이 전형적으로 기준 코덱(622)보다 성능이 뛰어난 소스 비디오 콘텐츠의 타입들을 식별할 수 있다.
도시되지 않았지만, BD-레이트 비교 애플리케이션(610) 및/또는 BD-레이트 비교 애플리케이션(610)의 상이한 인스턴스들이 임의의 수의 상이한 테스트 코덱들(624)에 대해 코덱 베이스라인 BD-레이트 값(660), 코덱 부트스트랩 BD-레이트 값들(662), 코덱 BD-레이트 분포(698), 및/또는 코덱 BD-레이트 신뢰 구간들(696)을 생성하기 위해 순차적으로, 동시에, 또는 이들의 임의의 조합으로 실행될 수도 있다. 이에 후속하여, 멀티-코덱 비교 애플리케이션(도시되지 않음)이 코덱 BD-레이트 분포들(698)에 기초하여 임의의 양 및 타입의 통계 및/또는 유의도 테스팅을 수행할 수도 있다.
예를 들어, 일부 대안적인 실시예들에서, 멀티-코덱 비교 애플리케이션은 2개의 상이한 테스트 코덱들(624)과 연관된 BD-레이트 분포들(698)에 기초하여 논-파라메트릭(non-parametric), 2-표본 Kolmogorov Smirnov 테스트를 수행할 수도 있다. Kolmogorov Smirnov 테스트의 결과는, BD-레이트 분포들(698)의 유사성을 표시하는 p 값이다. 일반적으로, BD-레이트 분포들(698) 사이의 유사성이 증가할수록, p 값도 또한 증가한다. 동일한 또는 다른 대안적인 실시예들에서, 멀티-코덱 비교 애플리케이션은 분위수 함수(quantile function)들을 사용하여 BD-레이트 분포들을 비교할 수도 있다.
본 명세서에서 설명되는 기법들은 제한적이기보다는 오히려 예시적인 것이며, 본 발명의 더 넓은 사상 및 범주로부터 벗어남이 없이 변경될 수도 있다는 것에 주목한다. 특히, BD-레이트 서브시스템(630), 집계 엔진(650), 및 신뢰 엔진(192)은 임의의 조합으로 임의의 수의 소프트웨어 애플리케이션들에서 구현될 수도 있다. 추가로, 다양한 실시예들에서, 본 명세서에 개시된 임의의 수의 기법들이 구현될 수도 있는 한편 다른 기법들이 임의의 기술적으로 실행가능한 방식으로 생략될 수도 있다.
BD-레이트 서브시스템(630), 집계 엔진(650), 및 신뢰 엔진(192)에 의해 제공되는 기능성에 대한 많은 수정들 및 변화들은 설명된 실시예들의 범주 및 사상으로부터 벗어남이 없이 본 기술분야의 통상의 기술자에게 명백할 것이다. 대안적인 실시예들은, 제한 없이, 임의의 타입의 부트스트랩 모델들 및/또는 임의의 타입의 부트스트래핑 동작들에 기초하여 코덱 BD-레이트들의 정확도를 정량화하는 것을 포함한다.
예를 들어, 대안적인 실시예들에서, BD-레이트 서브시스템(630)은 객관 품질 메트릭(예를 들어, 피크 신호 대 잡음비)에 기초하여 소스 이미지들(602) 각각의 베이스라인 BD-레이트 값을 생성하도록 수정된다. 집계 엔진(650)은 상이한 소스 이미지들에 대한 베이스라인 BD-레이트 값들에 기초하여 코덱 베이스라인 BD-레이트 값을 컴퓨팅한다. 부가적으로, 집계 엔진(650)은 코덱 부트스트랩 BD-레이트 값들을 생성하기 위해 소스 이미지들(602)에 기초하여 베이스라인 BD-레이트 값들에 대한 부트스트래핑 동작들을 수행한다. 다른 대안적인 실시예들에서, 집계 엔진(650)은 소스 이미지들(602(1) 내지 602(P))에 기초하여 BD-레이트 데이터세트들(640(1) 내지 640(P))에 대한 부트스트래핑 동작들을 수행하도록 수정된다.
일반적으로, BD-레이트 서브시스템(630)은 BD-레이트 값들을 컴퓨팅하는 데 사용되는 품질 메트릭을 트레이닝시킬 때 불확실성을 캡처하기 위해 부트스트래핑이 사용되었는지 여부에 관계없이 소스 이미지들(602)에 기초하여 부트스트래핑을 수행할 수도 있다. 도 1 내지 도 5b와 관련하여 이전에 설명된 바와 같이, 인코드 부트스트래핑, 주관 부트스트래핑, 및 커플링된 부트스트래핑은 베이스라인 모델(160)의 트레이닝 동안 불확실성의 원인들을 완화시키는 데 사용된다. 대조적으로, 소스 이미지들(602(1) 내지 602(P))에 기초하여 부트스트래핑을 수행하면 BD-레이트 값들을 컴퓨팅하는 데 사용되는 소스 이미지들(602)의 선택과 연관된 불확실성의 원인을 완화시킨다. 예를 들어, 소스 이미지들(602)이 실제로 관찰된 비디오 콘텐츠의 타입들을 나타내지 않는 경우, 그러면 유도된 BD-레이트 값은 테스트 코덱(624)의 실제 성능을 반영하지 않을 것이다.
특히, 선택된 소스 이미지들(602)이 기준 코덱(622)을 사용하는 것보다 테스트 코덱(624)을 사용하여 더 양호하게 수행될 수도 있을 때, 소스 이미지들(602)에 기초하는 부트스트래핑은 표준화된 비디오 코덱 테스팅에 유용하다. 그러한 상황들에서, 코덱 BD-레이트 분포(698)를 생성하기 위해 소스 이미지들(602)에 대해 부트스트래핑을 수행하는 것은 코덱 베이스라인 BD-레이트 값(660)만을 단독으로 생성하는 것보다 실질적으로 더 유익하다. 추가로, 소스 이미지들(602)에 기초하여 부트스트래핑을 수행하면 테스트 코덱(624)을 사용하여 인코딩하는 것으로부터 전형적으로 이익을 얻는 비디오 콘텐츠의 타입들 및 테스트 코덱(624)을 사용하여 인코딩하는 것으로부터 전형적으로 이익을 얻지 못하는 비디오 콘텐츠의 타입들에 대한 통찰을 제공할 수 있다.
BD-레이트 값들의 컴퓨팅
도 7은 본 발명의 다양한 실시예들에 따른, 도 6의 BD-레이트 서브시스템들(630(x)) 중 하나의 BD-레이트 서브시스템의 더 상세한 예시이다. 도시된 바와 같이, BD-레이트 서브시스템(630(x))은 소스 이미지(602(x)), 테스트 코덱(624), 기준 코덱(622), 비트레이트 설정들(626(1) 내지 626(B)), 베이스라인 모델(160), 및 부트스트랩 모델들(162(1) 내지 162(Q))에 기초하여 BD-레이트 데이터세트(640(x))를 생성한다.
BD-레이트 서브시스템(630(x))은, 제한 없이, 품질 비교 엔진, BD-레이트 엔진(780), 및 BD-레이트 데이터세트(640(x))를 포함한다. 단지 설명의 목적들을 위해서만, 품질 비교 엔진(710)의 B개의 인스턴스들이 품질 비교 엔진(710(x,1) 내지 710(x,B))으로서 묘사되어 있다. 첫 번째 삽입구 번호는 입력 소스 이미지(602)를 특정하고 두 번째 삽입구 번호는 입력 비트레이트 설정(626)을 특정한다.
예를 들어, 품질 비교 엔진(710(x, 1))은 소스 이미지(602(x)), 비트레이트 설정(626(1)), 테스트 코덱(624), 기준 코덱(622), 베이스라인 모델(160), 및 부트스트랩 모델들(162)에 기초하여 기준 데이터세트(720(1)) 및 테스트 데이터세트(730(1))를 컴퓨팅한다. 대조적으로, 품질 비교 엔진(710(x, B))은 소스 이미지(602(x)), 비트레이트 설정(626(B)), 테스트 코덱(624), 기준 코덱(622), 베이스라인 모델(160), 및 부트스트랩 모델들(162)에 기초하여 기준 데이터세트(720(B)) 및 테스트 데이터세트(730(B))를 컴퓨팅한다. 대안적인 실시예들에서, 품질 비교 엔진(710)의 임의의 수의 인스턴스들이 기준 데이터세트들(720) 및 테스트 데이터세트들(730)을 생성하기 위해 병렬로, 순차적으로, 또는 이들의 임의의 조합으로 실행될 수도 있다.
품질 비교 엔진(710(x, y))은 소스 이미지(602(x))와 비트레이트 설정(626(y)) 양측 모두와 연관된 테스트 데이터세트(730) 및 기준 데이터세트(720)를 생성한다. 기준 데이터세트(720)를 생성하기 위해, 품질 비교 엔진(710(x, y))은 기준 코덱(622), 소스 이미지(602(x)), 비트레이트 설정(626(y)), 베이스라인 모델(160), 및 부트스트랩 모델들(162)에 기초하여 기준 데이터세트(720)를 생성하도록 품질 엔진의 인스턴스(도 7에 도시되지 않음)를 구성한다. 기준 데이터세트(720)는, 제한 없이, 기준 코덱(622), 소스 이미지(602(x)), 및 비트레이트 설정(626(y))에 기초하여 생성되는 인코딩된 소스 이미지와 연관된 부트스트랩 스코어들(186), 베이스라인 스코어(184), 및 실제 비트레이트를 포함한다.
품질 비교 엔진(710(x,y))은 테스트 코덱(624), 소스 이미지(602(x)), 비트레이트 설정(626(y)), 베이스라인 모델(160), 및 부트스트랩 모델들(162)에 기초하여 테스트 데이터세트(730)를 생성하도록 품질 엔진의 인스턴스를 또한 구성한다. 테스트 데이터세트(730)는, 제한 없이, 테스트 코덱(624), 소스 이미지(602(x)), 및 비트레이트 설정(626(y))에 기초하여 생성되는 인코딩된 소스 이미지와 연관된 부트스트랩 스코어들(186), 베이스라인 스코어(184), 및 실제 비트레이트를 포함한다. 품질 비교 엔진(710)은 도 8과 관련하여 더욱 상세히 설명된다.
BD-레이트 엔진(780)은 기준 데이터세트들(720(1) 내지 720(B)) 및 테스트 데이터세트들(730(1) 내지 730(B))에 기초하여 BD-레이트 데이터세트(640(x))를 컴퓨팅한다. BD-레이트 엔진(780)은 테스트 데이터세트들(730) 및 기준 데이터세트들(720)에 포함되는 베이스라인 스코어들(184) 및 실제 비트레이트들에 기초하여 베이스라인 BD-레이트 값(760)을 컴퓨팅한다. 각각의 부트스트랩 모델(162(q))에 대해, BD-레이트 엔진(780)은 부트스트랩 모델(162(q))과 연관된 테스트 데이터세트들(730) 및 기준 데이터세트들(720)에 포함되는 부트스트랩 스코어들(186(q))의 서브세트 및 실제 비트레이트에 기초하여 상이한 부트스트랩 BD-레이트 값(762(q))을 컴퓨팅한다. BD-레이트 엔진(780)은 베이스라인 BD-레이트 값(760) 및 부트스트랩 BD-레이트 값들(762(1) 내지 762(Q)) 각각을 컴퓨팅하기 위해 본 기술분야에 알려져 있는 바와 같은 임의의 수 및 타입의 BD-레이트 컴퓨테이션 동작들을 수행할 수도 있다.
그 후에, BD-레이트 엔진(780)은 베이스라인 BD-레이트 값(760) 및 부트스트랩 BD-레이트 값들(762(1) 내지 762(Q))을 제한 없이 포함하는 BD-레이트 데이터세트(640(x))를 생성한다. 베이스라인 BD-레이트 값(760) 및 부트스트랩 BD-레이트 값들(762) 각각은 동일한 베이스라인 스코어(184)를 유지하는 동안 기준 코덱(622)을 사용하여 소스 이미지(602(x))를 인코딩하는 것과 비교하여 테스트 코덱(624)을 사용하여 소스 이미지(602(x))를 인코딩할 때의 상이한 비트레이트 변경을 특정한다. 대안적인 실시예들에서, 베이스라인 BD-레이트 값(760) 및 부트스트랩 BD-레이트 값들(762) 각각은 임의의 기술적으로 실행가능한 방식으로 소스 이미지(602(x))를 인코딩할 때 테스트 코덱(624)과 기준 코덱(622) 사이의 성능 차이를 표현할 수도 있다.
도 8은 본 발명의 다양한 실시예들에 따른, 도 7의 품질 비교 엔진들 중 하나의 품질 비교 엔진(710(x, y))의 더 상세한 예시이다. 품질 비교 엔진(710(x, y))은, 제한 없이, 품질 엔진(810), 기준 데이터세트(720), 및 테스트 데이터세트(730)를 포함한다. 단지 설명의 목적들을 위해서만, 품질 엔진(810)의 2개의 인스턴스들이 품질 엔진들(810(0) 및 810(1))로서 묘사되어 있다.
도시된 바와 같이, 품질 엔진(810(0))은 소스 이미지(602(x)), 비트레이트 설정(626(y)), 기준 코덱(622), 베이스라인 모델(160), 및 부트스트랩 모델들(162)에 기초하여 기준 데이터세트(720)를 컴퓨팅한다. 품질 엔진(810(1))은 소스 이미지(602(x)), 비트레이트 설정(626(y)), 테스트 코덱(624), 베이스라인 모델(160), 및 부트스트랩 모델들(162)에 기초하여 테스트 데이터세트(730)를 컴퓨팅한다. 대안적인 실시예들에서, 품질 엔진(810)의 단일 인스턴스는 기준 코덱(622)에 기초하는 기준 데이터세트(720) 및 테스트 코덱(624)에 기초하는 테스트 데이터세트(730)를 생성할 수도 있다.
품질 엔진(810)은, 제한 없이, 인코딩 엔진(820), 인코딩된 소스 이미지(830), 및 예측 엔진(180)을 포함한다. 단지 설명의 목적들을 위해서만, 품질 엔진(810)의 기능성이 타깃 코덱을 참조하여 본 명세서에 설명된다. 품질 엔진(810(0))의 경우, 타깃 코덱은 기준 코덱(622)이다. 품질 비교 엔진(810(1))의 경우, 타깃 코덱은 테스트 코덱(624)이다. 추가로, 연관된 요소가 테스트 코덱(624)이 아니라 기준 코덱(622)에 기초하여 유도된 것을 구별하기 위해 특정 참조 번호들에 제로 위첨자가 추가된다. 예를 들어, 인코딩된 소스 이미지(8300)는 기준 코덱(622)을 사용하여 인코딩되고 인코딩된 소스 이미지(830)는 테스트 코덱(624)을 사용하여 인코딩된다.
소스 이미지(602(x)), 비트레이트 설정(626(y)), 베이스라인 모델(160), 부트스트랩 모델들(162) 및 타깃 코덱(기준 코덱(622) 또는 테스트(624) 중 어느 하나)의 수신 시에, 인코딩 엔진(820)은 인코딩된 소스 이미지(830)를 생성하기 위해 타깃 코덱 및 비트레이트 설정(626(y))에 기초하여 소스 미지(602(x))를 인코딩한다. 품질 엔진(810)은 인코딩된 소스 이미지(830)에 기초하여 실제 비트레이트를 컴퓨팅한다. 예측 엔진(180)은 인코딩된 소스 이미지(830), 소스 이미지(602(x)), 베이스라인 모델(160), 및 부트스트랩 모델들(162))에 기초하여 베이스라인 스코어(184) 및 부트스트랩 스코어들(186)을 컴퓨팅한다. 예측 엔진(180)은 도 1과 관련하여 이전에 상세히 설명되었다.
타깃 코덱이 기준 코덱(622)인 경우, 그러면 품질 엔진(810)은 소스 이미지(602(x)), 비트레이트 설정(626(y)) 및 기준 코덱(622)과 연관된 부트스트랩 스코어들(1860), 베이스라인 스코어(1840), 및 실제 비트레이트(8400)를 제한 없이 포함하는 기준 데이터세트(720)를 생성한다. 타깃 코덱이 테스트 코덱(624)인 경우, 그러면 품질 엔진(810)은 소스 이미지(602(x)), 비트레이트 설정(626(y)) 및 테스트 코덱(624)과 연관된 부트스트랩 스코어들(186), 베이스라인 스코어(184), 및 실제 비트레이트(840)를 제한 없이 포함하는 테스트 데이터세트(730)를 생성한다.
도 9는 본 발명의 다양한 실시예들에 따른, BD-레이트의 정확도를 정량화하기 위한 방법 단계들의 흐름도이다. 방법 단계들이 도 6 내지 도 8의 시스템들과 관련하여 설명되지만, 본 기술분야의 통상의 기술자는 임의의 순서로 방법 단계들을 구현하도록 구성되는 임의의 시스템이 본 발명의 범주 내에 있다는 것을 이해할 것이다.
도시된 바와 같이, 방법(900)은 단계 902에서 시작하고, 여기서 BD-레이트 비교 애플리케이션(610)은 제1 소스 이미지(602)를 선택하고 BD-레이트 서브시스템(630)은 제1 비트레이트 설정(626)을 선택한다. 단계 904에서, 품질 엔진(810)은 기준 코덱(622), 베이스라인 모델(160), 및 부트스트랩 모델들(162)에 기초하여 선택된 소스 이미지(602) 및 선택된 비트레이트 설정(626)에 대한 기준 데이터세트(720)를 생성한다. 단계 906에서, 품질 엔진(810)은 테스트 코덱(624), 베이스라인 모델(160), 및 부트스트랩 모델들(162)에 기초하여 선택된 소스 이미지(602) 및 선택된 비트레이트 설정(626)에 대한 테스트 데이터세트(730)를 생성한다.
단계 908에서, BD-레이트 서브시스템(630)은 선택된 비트레이트 설정(626)이 마지막 비트레이트 설정(626)인지 여부를 결정한다. 단계 908에서, BD-레이트 서브시스템(630)이 선택된 비트레이트 설정(626)이 마지막 비트레이트 설정(626)이라고 결정하는 경우, 그러면 방법(900)은 단계 912로 직접 진행한다. 그러나, 단계 908에서, BD-레이트 서브시스템(630)이 선택된 비트레이트 설정(626)이 마지막 비트레이트 설정(626)이 아니라고 결정하는 경우, 그러면 방법(900)은 단계 910으로 진행한다. 단계 910에서, BD-레이트 서브시스템(630)은 다음 비트레이트 설정(626)을 선택한다. 그 후에, 방법(900)은 단계 904로 돌아가고, 여기서 품질 엔진(810)은 선택된 소스 이미지(602) 및 새롭게 선택된 비트레이트 설정(626)에 대한 기준 데이터세트(720)를 생성한다.
그러나, 단계 908에서, BD-레이트 서브시스템(630)이 선택된 비트레이트 설정(626)이 마지막 비트레이트 설정(626)이라고 결정하는 경우, 그러면 방법(900)은 단계 912로 직접 진행한다. 단계 912에서, BD-레이트 엔진(780)은 소스 이미지(602)와 연관된 기준 데이터세트들(720) 및 선택된 소스 이미지(602)와 연관된 테스트 데이터세트들(730)에 기초하여 선택된 소스 이미지(602)에 대한 BD-레이트 데이터세트(640)를 생성한다.
단계 914에서, BD-레이트 비교 애플리케이션(610)은 선택된 소스 이미지(602)가 마지막 소스 이미지(602)인지 여부를 결정한다. 단계 914에서, BD-레이트 비교 애플리케이션(610)이 선택된 소스 이미지(602)가 마지막 소스 이미지(602)가 아니라고 결정하는 경우, 그러면 방법(900)은 단계 916으로 진행하고, 단계 916에서, BD-레이트 비교 애플리케이션(610)은 다음 소스 이미지(602)를 선택하고 BD-레이트 서브시스템(630)은 제1 비트레이트 설정(626)을 선택한다. 그 후에, 방법(900)은 단계 904로 돌아가고, 여기서 품질 비교 엔진(710)은 새롭게 선택된 소스 이미지(602) 및 새롭게 선택된 비트레이트 설정(626)에 대한 기준 데이터세트(720)를 생성한다.
그러나, 단계 914에서, BD-레이트 비교 애플리케이션(610)이 선택된 소스 이미지(602)가 마지막 소스 이미지(602)라고 결정하는 경우, 그러면 방법(900)은 단계 918로 직접 진행한다. 단계 918에서, 집계 엔진(650)은 코덱 베이스라인 BD-레이트 값(660) 및 코덱 부트스트랩 BD-레이트 값들(662)을 생성하기 위해 소스 이미지들(602)에 걸쳐 BD-레이트 데이터세트들(640)을 집계한다. 단계 920에서, 신뢰 엔진(192)은 코덱 부트스트랩 BD-레이트 값들(662)에 기초하여 코덱 BD-레이트 분포(698)를 생성하고, 코덱 BD-레이트 분포(698) 및 코덱 신뢰 레벨(694)에 기초하여 코덱 BD-레이트 신뢰 구간(696)을 컴퓨팅한다. 유리하게는, 코덱 BD-레이트 분포(698) 및 코덱 BD-레이트 신뢰 구간(696) 각각은 코덱 베이스라인 BD-레이트 값(660)의 정확도를 정량화한다. 단계 922에서, BD-레이트 비교 애플리케이션(610)은 코덱 베이스라인 BD-레이트 값(660), 코덱 BD-레이트 분포(698), 및/또는 코덱 BD-레이트 신뢰 구간(696)을 테스트 코덱(624)과 연관된 평가 동작들을 위한 하나 이상의 소프트웨어 애플리케이션들에게 송신한다. 그 후에 방법(900)이 종료된다.
요약하면, 개시된 기법들은 지각 품질 스코어들의 정확도를 정량화하는 데 사용될 수도 있다. 일부 실시예들에서, 트레이닝 서브시스템은 다수의 인코딩된 트레이닝 비디오들 및 연관된 트레이닝 비디오들을 제한 없이 포함하는 트레이닝 인코드 데이터베이스에 기초하여 피처 매트릭스를 생성한다. 트레이닝 서브시스템에 포함되는 부트스트래핑 트레이닝 엔진은, 인코딩된 트레이닝 비디오들과 연관된 다수의 인간 대상들로부터의 원시 오피니언 스코어들을 나타내는 주관 매트릭스와 피처 매트릭스에 기초하여 베이스라인 데이터세트를 생성한다. 부트스트래핑 트레이닝 엔진은 피처 매트릭스 및/또는 주관 매트릭스에 대해 임의의 수의 복제 표본 재추출 동작들을 수행하여 임의의 수의 표본 재추출된 데이터세트들을 생성한다. 부트스트래핑 트레이닝 엔진은 베이스라인 데이터세트에 기초하여 머신 학습 동작들을 수행하여, 인코딩된 소스 비디오에 대한 지각 품질 스코어를 예측하는 베이스라인 모델을 생성한다. 표본 재추출된 데이터세트들 각각에 대해, 부트스트래핑 트레이닝 엔진은 표본 재추출된 데이터세트에 기초하여 머신 학습 동작들을 수행하여, 인코딩된 소스 비디오에 대한 지각 품질 스코어를 예측하는 상이한 부트스트랩 모델을 생성한다. 인코딩된 소스 비디오는, 이미지를 포함하는 비디오 콘텐츠의 임의의 부분일 수도 있다.
이에 후속하여, 신뢰 애플리케이션은 베이스라인 모델, 인코딩된 소스 비디오, 및 연관된 소스 비디오에 기초하여 인코딩된 소스 비디오에 대한 베이스라인 지각 품질 스코어를 생성한다. 보완적인 방식으로, 부트스트랩 모델들 각각에 대해, 신뢰 애플리케이션은 부트스트랩 모델, 인코딩된 소스 비디오, 및 연관된 소스 비디오에 기초하여 상이한 부트스트랩 지각 품질 스코어를 생성한다. 그 후에, 신뢰 애플리케이션은 부트스트랩 지각 품질 스코어들을 제한 없이 포함하는 스코어 분포를 생성한다. 이에 후속하여, 신뢰 애플리케이션은 스코어 분포 및 신뢰 레벨에 기초하여 신뢰 구간을 컴퓨팅한다. 분포와 신뢰 구간 각각은 베이스라인 지각 품질 스코어의 정확도를 정량화한다.
일부 실시예들에서, BD-레이트 유의도 애플리케이션은 베이스라인 모델 및 부트스트랩 모델들에 기초하여 BD-레이트 값들에 대한 정확도를 정량화한다. 임의의 수의 소스 이미지들 각각에 대해, BD-레이트 서브시스템은 테스트 코덱, 기준 코덱, 임의의 수의 비트레이트 설정들, 베이스라인 모델, 및 부트스트랩 모델들에 기초하여 BD-레이트 데이터세트를 생성한다. 주어진 소스에 대한 BD-레이트 데이터세트는 베이스라인 BD-레이트 값 및 다수의 부트스트랩 BD-레이트 값들을 포함한다. 특히, BD-레이트 서브시스템은 베이스라인 모델에 의해 생성되는 베이스라인 스코어들에 기초하여 베이스라인 BD-레이트 값을 생성하고, 상이한 부트스트랩 모델에 의해 생성되는 부트스트랩 스코어들에 기초하여 부트스트랩 BD-레이트 값들 각각을 생성한다.
이에 후속하여, 집계 엔진은 테스트 코덱과 연관된 코덱 베이스라인 BD-레이트를 생성하기 위해 상이한 소스들의 베이스라인 BD-레이트 값들에 걸쳐 임의의 수 및 타입의 집계 동작들을 수행한다. 유사하게, 부트스트랩 모델들 각각에 대해, 집계 엔진은 테스트 코덱과 연관된 상이한 코덱 부트스트랩 BD-레이트를 생성하기 위해 상이한 소스들의 연관된 부트스트랩 BD-레이트 값들에 걸쳐 임의의 수 및 타입의 집계 동작들을 수행한다. 그 후에, 신뢰 애플리케이션은 코덱 부트스트랩 BD-레이트 값들을 제한 없이 포함하는 코덱 BD-레이트 분포를 생성한다. 이에 후속하여, 신뢰 애플리케이션은 코덱 BD-레이트 분포 및 신뢰 레벨에 기초하여 코덱 BD-레이트 신뢰 구간을 컴퓨팅한다. 코덱 BD-레이트 분포 및 코덱 BD-레이트 신뢰 구간 각각은 테스트 코덱과 연관된 코덱 베이스라인 BD-레이트의 정확도를 정량화한다.
유리하게는, 상이한 부트스트랩 스코어들은 인코딩된 트레이닝 비디오들의 유한 세트 및/또는 인간 대상들의 유한 세트에 기초하여 머신 학습 동작들을 수행하는 것과 연관된 불확실성을 반영한다. 결과적으로, 부트스트랩 스코어들의 분포 및 연관된 신뢰 구간은 베이스라인 스코어의 정확도를 신뢰성있게 예측한다. 베이스라인 스코어의 정확도를 이해하면 개발자들 및 소프트웨어 애플리케이션들이 베이스라인 스코어에 기초하여 더 유효한 결론들을 도출하게 하고/하거나 인코딩 동작들을 더 신뢰성있게 최적화하게 한다. 특히, 부트스트랩 스코어들에 기초하여 코덱 베이스라인 BD-레이트의 정확도를 정량화함으로써, BD-레이트 유의도 애플리케이션은 개발자들 및 소프트웨어 애플리케이션들이 코덱 베이스라인 BD-레이트가 통계적으로 유의한지 여부를 신뢰성있게 평가하는 것을 가능하게 한다. 이들 기술적 이점들은 종래 기술에 비해 하나 이상의 기술적 진보들을 제공한다.
1. 일부 실시예들에서, 컴퓨터에 의해 구현되는 방법은, 복수의 표본 재추출된 데이터세트들을 생성하기 위해 주관 스코어들을 포함하는 트레이닝 데이터베이스에 대해 하나 이상의 표본 추출 동작들을 수행하는 단계; 각각의 표본 재추출된 데이터세트에 대해, 상이한 부트스트랩 지각 품질 모델을 생성하기 위해 표본 재추출된 데이터세트에 기초하여 하나 이상의 머신 학습 동작들을 수행하는 단계; 및 인코딩된 비디오 콘텐츠의 일 부분에 대한 베이스라인 지각 품질 모델에 의해 생성되는 지각 품질 스코어의 정확도를 정량화하기 위해 부트스트랩 지각 모델들에 기초하여 하나 이상의 동작들을 수행하는 단계를 포함한다.
2. 조항 1에 있어서, 베이스라인 지각 품질 모델을 생성하기 위해 트레이닝 데이터베이스에 기초하여 하나 이상의 머신 학습 동작들을 수행하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법.
3. 조항 1 또는 조항 2에 있어서, 지각 품질 모델 및 부트스트랩 지각 품질 모델들 각각은 인코딩된 비디오 콘텐츠를 특성화하는 피처들의 세트에 대한 피처 값들의 세트를 상이한 지각 품질 스코어에 매핑시키는, 컴퓨터에 의해 구현되는 방법.
4. 조항 1 내지 조항 3 중 어느 한 조항에 있어서, 피처들의 세트는 ADM(additive impairment measure) 피처, VIF(visual information fidelity) 피처, BRISQUE(blind/referenceless image spatial quality evaluator) 피처, 및 TI(temporal information) 피처 중 적어도 하나를 포함하는, 컴퓨터에 의해 구현되는 방법.
5. 조항 1 내지 조항 4 중 어느 한 조항에 있어서, 하나 이상의 표본 추출 동작들을 수행하는 단계는, 트레이닝 데이터베이스에 포함되는 트레이닝 인코딩된 비디오 콘텐츠의 부분들과 연관된 피처 값들에 대해 하나 이상의 표본 재추출 위드 대체 동작들을 수행하는 단계를 포함하는, 컴퓨터에 의해 구현되는 방법.
6. 조항 1 내지 조항 5 중 어느 한 조항에 있어서, 하나 이상의 표본 추출 동작들을 수행하는 단계는, 복수의 표본 재추출된 주관 매트릭스들을 생성하기 위해 주관 스코어들에 대해 하나 이상의 표본 재추출 위드 대체 동작들을 수행하는 단계를 포함하는, 컴퓨터에 의해 구현되는 방법.
7. 조항 1 내지 조항 6 중 어느 한 조항에 있어서, 하나 이상의 표본 추출 동작들을 수행하는 단계는, 복수의 표본 재추출된 피처 매트릭스들을 생성하기 위해 트레이닝 데이터베이스에 포함되는 인코딩된 콘텐츠의 부분들과 연관된 피처 값들에 대해 하나 이상의 표본 재추출 위드 대체 동작들을 수행하는 단계; 및 복수의 표본 재추출된 주관 매트릭스들을 생성하기 위해 주관 스코어들에 대해 하나 이상의 표본 재추출 위드 대체 동작들을 수행하는 단계를 포함하는, 컴퓨터에 의해 구현되는 방법.
8. 조항 1 내지 조항 7 중 어느 한 조항에 있어서, 복수의 표본 재추출된 데이터세트들을 생성하기 위해 복수의 표본 재추출된 피처 매트릭스들에 포함되는 각각의 표본 재추출된 피처 매트릭스를, 복수의 표본 재추출된 주관 매트릭스들에 포함되는 각각의 표본 재추출된 주관 매트릭스와 조합하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법.
9. 조항 1 내지 조항 8 중 어느 한 조항에 있어서, 부트스트랩 지각 모델들에 기초하여 하나 이상의 동작들을 수행하는 단계는, 각각의 부트스트랩 지각 모델에 대해, 인코딩된 비디오 콘텐츠의 부분에 기초하여 상이한 부트스트랩 지각 품질 스코어를 생성하는 단계를 포함하고, 부트스트랩 지각 품질 스코어들의 분포는 지각 품질 스코어의 정확도를 정량화하는, 컴퓨터에 의해 구현되는 방법.
10. 조항 1 내지 조항 9 중 어느 한 조항에 있어서, 부트스트랩 지각 모델들에 기초하여 하나 이상의 동작들을 수행하는 단계는, 각각의 부트스트랩 지각 모델에 대해, 인코딩된 비디오 콘텐츠의 부분에 기초하여 상이한 부트스트랩 지각 품질 스코어를 생성하는 단계; 및 부트스트랩 지각 품질 스코어들 및 신뢰 레벨에 기초하여 신뢰 구간을 컴퓨팅하는 단계를 포함하는, 컴퓨터에 의해 구현되는 방법.
11. 일부 실시예들에서, 하나 이상의 비일시적 컴퓨터 판독가능 매체들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 복수의 표본 재추출된 데이터세트들을 생성하기 위해 주관 스코어들을 포함하는 트레이닝 데이터베이스에 대해 하나 이상의 표본 추출 동작들을 수행하는 단계; 각각의 표본 재추출된 데이터세트에 대해, 상이한 부트스트랩 지각 품질 모델을 생성하기 위해 표본 재추출된 데이터세트에 기초하여 하나 이상의 머신 학습 동작들을 수행하는 단계; 및 인코딩된 비디오 콘텐츠의 일 부분에 대한 베이스라인 지각 품질 모델에 의해 생성되는 지각 품질 스코어의 정확도를 정량화하기 위해 부트스트랩 지각 모델들 및 인코딩된 비디오 콘텐츠의 부분에 기초하여 복수의 부트스트랩 지각 품질 스코어들을 컴퓨팅하는 단계를 수행하게 하는 명령어들을 포함한다.
12. 조항 11에 있어서, 주관 스코어들에 포함되는 제1 주관 스코어가, 트레이닝 데이터베이스에 포함되는 인코딩된 비디오 콘텐츠의 일 부분의 재구축된 버전을 뷰잉하는 것에 응답하여 인간에 의해 할당되는, 하나 이상의 비일시적 컴퓨터 판독가능 매체들.
13. 조항 11 또는 조항 12에 있어서, 지각 품질 스코어는 VMAF(Video Multimethod Assessment Fusion) 메트릭에 대한 값인, 하나 이상의 비일시적 컴퓨터 판독가능 매체들.
14. 조항 11 내지 조항 13 중 어느 한 조항에 있어서, 하나 이상의 표본 추출 동작들을 수행하는 단계는, 트레이닝 데이터베이스에 포함되는 트레이닝 인코딩된 비디오 콘텐츠의 부분들과 연관된 피처 값들에 대해 하나 이상의 표본 재추출 위드 대체 동작들을 수행하는 단계를 포함하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체들.
15. 조항 11 내지 조항 14 중 어느 한 조항에 있어서, 하나 이상의 표본 추출 동작들을 수행하는 단계는, 복수의 표본 재추출된 주관 매트릭스들을 생성하기 위해 주관 스코어들에 대해 하나 이상의 표본 재추출 위드 대체 동작들을 수행하는 단계를 포함하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체들.
16. 조항 11 내지 조항 15 중 어느 한 조항에 있어서, 복수의 주관 벡터들을 생성하기 위해 복수의 표본 재추출된 주관 매트릭스들에 포함되는 각각의 표본 재추출된 주관 매트릭스에 대해 하나 이상의 집계 동작들을 수행하는 단계를 더 포함하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체들.
17. 조항 11 내지 조항 16 중 어느 한 조항에 있어서, 하나 이상의 표본 추출 동작들을 수행하는 단계는, 복수의 표본 재추출된 피처 매트릭스들을 생성하기 위해 트레이닝 데이터베이스에 포함되는 인코딩된 콘텐츠의 부분들과 연관된 피처 값들에 대해 하나 이상의 표본 재추출 위드 대체 동작들을 수행하는 단계; 및 복수의 표본 재추출된 주관 매트릭스들을 생성하기 위해 주관 스코어들에 대해 하나 이상의 표본 재추출 위드 대체 동작들을 수행하는 단계를 포함하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체들.
18. 조항 11 내지 조항 17 중 어느 한 조항에 있어서, 복수의 표본 재추출된 데이터세트들을 생성하기 위해 복수의 표본 재추출된 피처 매트릭스들에 포함되는 각각의 표본 재추출된 피처 매트릭스를, 복수의 표본 재추출된 주관 매트릭스들에 포함되는 각각의 표본 재추출된 주관 매트릭스와 조합하는 단계를 더 포함하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체들.
19. 조항 11 내지 조항 18 중 어느 한 조항에 있어서, 복수의 부트스트랩 지각 품질 스코어들 및 신뢰 레벨에 기초하여 신뢰 구간을 컴퓨팅하는 단계를 더 포함하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체들.
20. 일부 실시예들에서, 시스템은, 명령어들을 저장하는 하나 이상의 메모리들; 및 하나 이상의 프로세서들을 포함하고, 하나 이상의 프로세서들은 하나 이상의 메모리들에 커플링되고, 명령어들을 실행할 때, 복수의 표본 재추출된 데이터세트들을 생성하기 위해 주관 스코어들 및 피처 값들을 포함하는 트레이닝 데이터베이스에 대해 하나 이상의 표본 재추출 위드 대체 동작들을 수행하고; 각각의 표본 재추출된 데이터세트에 대해, 상이한 부트스트랩 지각 품질 모델을 생성하기 위해 표본 재추출된 데이터세트에 기초하여 하나 이상의 머신 학습 동작들을 수행하고; 인코딩된 비디오 콘텐츠의 일 부분에 대한 베이스라인 지각 품질 모델에 의해 생성되는 지각 품질 스코어의 정확도를 정량화하기 위해 부트스트랩 지각 모델들에 기초하여 하나 이상의 동작들을 수행하도록 구성된다.
임의의 방식으로, 본 출원에서 설명되는 임의의 요소들 및/또는 청구항들 중 임의의 것에서 언급된 청구항 요소들 중 임의의 것의 임의의 그리고 모든 조합들이 본 발명의 고려된 범주 및 보호 내에 있다.
다양한 실시예들의 설명들은 예시의 목적들을 위해 제시되었지만, 개시된 실시예들로 제한되거나 또는 총망라한 것으로 의도되지 않는다. 많은 수정들 및 변형들이 설명된 실시예들의 범주 및 사상으로부터 벗어남이 없이 본 기술분야의 통상의 기술자에게 명백할 것이다.
본 실시예들의 양태들은 시스템, 방법 또는 컴퓨터 프로그램 제품으로서 구체화될 수도 있다. 이에 따라, 본 개시내용의 양태들은 전적으로 하드웨어 실시예, 전적으로 소프트웨어 실시예(펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함함) 또는 본 명세서에서 "모듈" 또는 "시스템"이라고 모두가 일반적으로 지칭될 수도 있는 소프트웨어 및 하드웨어 양태들을 조합한 실시예의 형태를 취할 수도 있다. 부가적으로, 본 개시내용에서 설명되는 임의의 하드웨어 및/또는 소프트웨어 기법, 프로세스, 기능, 컴포넌트, 엔진, 모듈, 또는 시스템은 회로 또는 회로들의 세트로서 구현될 수도 있다. 게다가, 본 개시내용의 양태들은 컴퓨터 판독가능 프로그램 코드가 구체화되는 하나 이상의 컴퓨터 판독가능 매체(들)로 구체화되는 컴퓨터 프로그램 제품의 형태를 취할 수도 있다.
하나 이상의 컴퓨터 판독가능 매체(들)의 임의의 조합이 이용될 수도 있다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 신호 매체 또는 컴퓨터 판독가능 저장 매체일 수도 있다. 컴퓨터 판독가능 저장 매체는, 예를 들어, 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치, 또는 디바이스, 또는 전술한 것의 임의의 적합한 조합일 수도 있지만, 이에 제한되지 않는다. 컴퓨터 판독가능 저장 매체의 더 구체적인 예들(비포괄적인 리스트)은 다음의 것: 하나 이상의 와이어들을 갖는 전기 커넥션, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거가능 프로그래밍가능 판독 전용 메모리(EPROM 또는 플래시 메모리), 광섬유, 휴대용 콤팩트 디스크 판독 전용 메모리(CD-ROM), 광학 저장 디바이스, 자기 저장 디바이스, 또는 전술한 것의 임의의 적합한 조합을 포함할 것이다. 본 문서의 맥락에서, 컴퓨터 판독가능 저장 매체는 명령어 실행 시스템, 장치, 또는 디바이스에 의해 또는 이들과 관련하여 사용하기 위한 프로그램을 포함 또는 저장할 수 있는 임의의 유형(tangible)의 매체일 수도 있다.
본 개시내용의 양태들은 본 개시내용의 실시예들에 따른 방법들, 장치(시스템들) 및 컴퓨터 프로그램 제품들의 흐름도 예시들 및/또는 블록도들을 참조하여 상술된다. 흐름도 예시들 및/또는 블록도들의 각각의 블록, 및 흐름도 예시들 및/또는 블록도들에서의 블록들의 조합들은, 컴퓨터 프로그램 명령어들에 의해 구현될 수 있다는 것을 이해할 것이다. 이들 컴퓨터 프로그램 명령어들은 범용 컴퓨터, 특수 목적 컴퓨터, 또는 머신을 생성하기 위한 다른 프로그래밍가능 데이터 프로세싱 장치의 프로세서에 제공될 수도 있다. 명령어들은, 컴퓨터 또는 다른 프로그래밍가능 데이터 프로세싱 장치의 프로세서를 통해 실행될 때, 흐름도 및/또는 블록도 블록 또는 블록들에 특정된 기능들/동작들의 구현을 가능하게 한다. 그러한 프로세서들은, 제한 없이, 범용 프로세서들, 특수 목적 프로세서들, 애플리케이션 특정 프로세서들, 또는 필드 프로그래밍가능 게이트 어레이들일 수도 있다.
도면들의 흐름도 및 블록도들은 본 개시내용의 다양한 실시예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능성, 및 동작을 예시한다. 이와 관련하여, 흐름도 또는 블록도들에서의 각각의 블록은 특정된 논리 기능(들)을 구현하기 위한 하나 이상의 실행가능 명령어들을 포함하는 모듈, 세그먼트, 또는 코드의 부분을 나타낼 수도 있다. 일부 대안적인 구현들에서, 블록에서 언급된 기능들은 도면들에서 언급된 순서를 벗어나 발생할 수도 있다는 것에 또한 주목해야 한다. 예를 들어, 연속적으로 도시된 2개의 블록들은, 사실상, 실질적으로 동시에 실행될 수도 있거나, 또는 블록들은 때때로, 관련된 기능성에 따라, 역순으로 실행될 수도 있다. 블록도들 및/또는 흐름도 예시의 각각의 블록, 및 블록도들 및/또는 흐름도 예시에서의 블록들의 조합들은 특정된 기능들 또는 작용들을 수행하는 특수 목적 하드웨어 기반 시스템들, 또는 특수 목적 하드웨어 및 컴퓨터 명령어들의 조합들에 의해 구현될 수 있다는 것에 또한 주목할 것이다.
전술된 것이 본 개시내용의 실시예들에 관한 것이지만, 본 개시내용의 다른 그리고 추가의 실시예들은 본 개시내용의 기본 범주로부터 벗어남이 없이 안출될 수도 있고, 그 범주는 후속하는 청구범위에 의해 결정된다.

Claims (40)

  1. 컴퓨터에 의해 구현되는 방법으로서,
    복수의 표본 재추출된 데이터세트(resampled dataset)들을 생성하기 위해 주관 스코어(subjective score)들을 포함하는 트레이닝 데이터베이스에 대해 하나 이상의 표본 추출 동작(sampling operation)들을 수행하는 단계;
    각각의 표본 재추출된 데이터세트에 대해, 상이한 부트스트랩 지각 품질 모델(bootstrap perceptual quality model)을 생성하기 위해 상기 표본 재추출된 데이터세트에 기초하여 하나 이상의 머신 학습 동작들을 수행하는 단계; 및
    인코딩된 비디오 콘텐츠의 일 부분에 대한 베이스라인 지각 품질 모델에 의해 생성되는 지각 품질 스코어의 정확도를 정량화(quantify)하기 위해 상기 부트스트랩 지각 품질 모델들에 기초하여 하나 이상의 동작들을 수행하는 단계
    를 포함하고,
    상기 베이스라인 지각 품질 모델은 상기 부트스트랩 지각 품질 모델들 중 하나를 포함하지 않고, 상기 인코딩된 비디오 콘텐츠의 일 부분은 상기 트레이닝 데이터베이스에 포함되지 않는, 컴퓨터에 의해 구현되는 방법.
  2. 제1항에 있어서,
    상기 베이스라인 지각 품질 모델을 생성하기 위해 상기 트레이닝 데이터베이스에 기초하여 하나 이상의 머신 학습 동작들을 수행하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법.
  3. 제1항에 있어서,
    상기 베이스라인 지각 품질 모델 및 상기 부트스트랩 지각 품질 모델들 각각은 인코딩된 비디오 콘텐츠를 특성화하는 피처(feature)들의 세트에 대한 피처 값들의 세트를 상이한 지각 품질 스코어에 매핑시키는, 컴퓨터에 의해 구현되는 방법.
  4. 제3항에 있어서,
    상기 피처들의 세트는 ADM(additive impairment measure) 피처, VIF(visual information fidelity) 피처, BRISQUE(blind/referenceless image spatial quality evaluator) 피처, 및 TI(temporal information) 피처 중 적어도 하나를 포함하는, 컴퓨터에 의해 구현되는 방법.
  5. 제1항에 있어서,
    상기 하나 이상의 표본 추출 동작들을 수행하는 단계는, 상기 트레이닝 데이터베이스에 포함되는 트레이닝 인코딩된 비디오 콘텐츠의 부분들과 연관된 피처 값들에 대해 하나 이상의 표본 재추출 위드 대체 동작(resampling with replacement operation)들을 수행하는 단계를 포함하는, 컴퓨터에 의해 구현되는 방법.
  6. 제1항에 있어서,
    상기 하나 이상의 표본 추출 동작들을 수행하는 단계는, 복수의 표본 재추출된 주관 매트릭스들을 생성하기 위해 상기 주관 스코어들에 대해 하나 이상의 표본 재추출 위드 대체 동작들을 수행하는 단계를 포함하는, 컴퓨터에 의해 구현되는 방법.
  7. 제1항에 있어서,
    상기 하나 이상의 표본 추출 동작들을 수행하는 단계는:
    복수의 표본 재추출된 피처 매트릭스들을 생성하기 위해 상기 트레이닝 데이터베이스에 포함되는 인코딩된 콘텐츠의 부분들과 연관된 피처 값들에 대해 하나 이상의 표본 재추출 위드 대체 동작들을 수행하는 단계; 및
    복수의 표본 재추출된 주관 매트릭스들을 생성하기 위해 상기 주관 스코어들에 대해 하나 이상의 표본 재추출 위드 대체 동작들을 수행하는 단계
    를 포함하는, 컴퓨터에 의해 구현되는 방법.
  8. 제7항에 있어서,
    상기 복수의 표본 재추출된 데이터세트들을 생성하기 위해 상기 복수의 표본 재추출된 피처 매트릭스들에 포함되는 각각의 표본 재추출된 피처 매트릭스를, 상기 복수의 표본 재추출된 주관 매트릭스들에 포함되는 각각의 표본 재추출된 주관 매트릭스와 조합하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법.
  9. 제1항에 있어서,
    상기 부트스트랩 지각 품질 모델들에 기초하여 하나 이상의 동작들을 수행하는 단계는, 각각의 부트스트랩 지각 품질 모델에 대해, 상기 인코딩된 비디오 콘텐츠의 일 부분에 기초하여 상이한 부트스트랩 지각 품질 스코어를 생성하는 단계를 포함하고, 상기 부트스트랩 지각 품질 스코어들의 분포는 상기 베이스라인 지각 품질 모델에 의해 생성된 상기 지각 품질 스코어의 정확도를 정량화하는, 컴퓨터에 의해 구현되는 방법.
  10. 제1항에 있어서,
    상기 부트스트랩 지각 품질 모델들에 기초하여 하나 이상의 동작들을 수행하는 단계는:
    각각의 부트스트랩 지각 품질 모델에 대해, 상기 인코딩된 비디오 콘텐츠의 일 부분에 기초하여 상이한 부트스트랩 지각 품질 스코어를 생성하는 단계; 및
    상기 부트스트랩 지각 품질 스코어들 및 신뢰 레벨에 기초하여 신뢰 구간(confidence interval)을 컴퓨팅하는 단계
    를 포함하는, 컴퓨터에 의해 구현되는 방법.
  11. 명령어들을 포함하는 하나 이상의 비일시적 컴퓨터 판독가능 매체들로서,
    상기 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금:
    복수의 표본 재추출된 데이터세트들을 생성하기 위해 주관 스코어들을 포함하는 트레이닝 데이터베이스에 대해 하나 이상의 표본 추출 동작들을 수행하는 단계;
    각각의 표본 재추출된 데이터세트에 대해, 상이한 부트스트랩 지각 품질 모델을 생성하기 위해 상기 표본 재추출된 데이터세트에 기초하여 하나 이상의 머신 학습 동작들을 수행하는 단계; 및
    인코딩된 비디오 콘텐츠의 일 부분에 대한 베이스라인 지각 품질 모델에 의해 생성되는 지각 품질 스코어의 정확도를 정량화하기 위해 상기 부트스트랩 지각 품질 모델들 및 상기 인코딩된 비디오 콘텐츠의 일 부분에 기초하여 복수의 부트스트랩 지각 품질 스코어들을 컴퓨팅하는 단계
    를 수행하게 하고,
    상기 베이스라인 지각 품질 모델은 상기 부트스트랩 지각 품질 모델들 중 하나를 포함하지 않고, 상기 인코딩된 비디오 콘텐츠의 일 부분은 상기 트레이닝 데이터베이스에 포함되지 않는, 하나 이상의 비일시적 컴퓨터 판독가능 매체들.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 시스템으로서,
    명령어들을 저장하는 하나 이상의 메모리들; 및
    하나 이상의 프로세서들
    을 포함하고,
    상기 하나 이상의 프로세서들은 상기 하나 이상의 메모리들에 커플링되고, 상기 명령어들을 실행할 때:
    복수의 표본 재추출된 데이터세트들을 생성하기 위해 주관 스코어들 및 피처 값들을 포함하는 트레이닝 데이터베이스에 대해 하나 이상의 표본 재추출 위드 대체 동작들을 수행하고;
    각각의 표본 재추출된 데이터세트에 대해, 상이한 부트스트랩 지각 품질 모델을 생성하기 위해 상기 표본 재추출된 데이터세트에 기초하여 하나 이상의 머신 학습 동작들을 수행하고;
    인코딩된 비디오 콘텐츠의 일 부분에 대한 베이스라인 지각 품질 모델에 의해 생성되는 지각 품질 스코어의 정확도를 정량화하기 위해 상기 부트스트랩 지각 품질 모델들에 기초하여 하나 이상의 동작들을 수행하도록
    구성되고,
    상기 베이스라인 지각 품질 모델은 상기 부트스트랩 지각 품질 모델들 중 하나를 포함하지 않고, 상기 인코딩된 비디오 콘텐츠의 일 부분은 상기 트레이닝 데이터베이스에 포함되지 않는, 시스템.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
KR1020207029753A 2018-03-20 2019-03-20 부트스트래핑을 통한 지각 품질 모델 불확실성의 정량화 KR102523149B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201862645774P 2018-03-20 2018-03-20
US62/645,774 2018-03-20
US201862767454P 2018-11-14 2018-11-14
US62/767,454 2018-11-14
US16/352,757 US11361416B2 (en) 2018-03-20 2019-03-13 Quantifying encoding comparison metric uncertainty via bootstrapping
US16/352,757 2019-03-13
US16/352,755 2019-03-13
US16/352,755 US20190297329A1 (en) 2018-03-20 2019-03-13 Quantifying perceptual quality model uncertainty via bootstrapping
PCT/US2019/023256 WO2019183280A1 (en) 2018-03-20 2019-03-20 Quantifying perceptual quality model uncertainty via bootstrapping

Publications (2)

Publication Number Publication Date
KR20200131319A KR20200131319A (ko) 2020-11-23
KR102523149B1 true KR102523149B1 (ko) 2023-04-19

Family

ID=67985490

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207029753A KR102523149B1 (ko) 2018-03-20 2019-03-20 부트스트래핑을 통한 지각 품질 모델 불확실성의 정량화

Country Status (10)

Country Link
US (2) US11361416B2 (ko)
EP (1) EP3769536A1 (ko)
KR (1) KR102523149B1 (ko)
CN (1) CN112166616B (ko)
AU (2) AU2019240125B2 (ko)
BR (1) BR112020019320A2 (ko)
CA (1) CA3094357A1 (ko)
MX (1) MX2020009784A (ko)
SG (1) SG11202009244PA (ko)
WO (1) WO2019183280A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11361416B2 (en) 2018-03-20 2022-06-14 Netflix, Inc. Quantifying encoding comparison metric uncertainty via bootstrapping
CN114982227A (zh) * 2019-12-31 2022-08-30 谷歌有限责任公司 使用机器学习基于预测的视觉质量为视频播放器的最优格式选择
CN112153415B (zh) * 2020-09-23 2022-12-02 北京字节跳动网络技术有限公司 一种视频转码方法、装置、设备及存储介质
US11451790B2 (en) * 2020-10-09 2022-09-20 Tencent America LLC Method and apparatus in video coding for machines
US11574273B2 (en) * 2020-12-21 2023-02-07 Sling TV L.L.C. Systems and methods for automated evaluation of digital services
US20240078411A1 (en) * 2021-03-09 2024-03-07 Nec Corporation Information processing system, encoding device, decoding device, model learning device, information processing method, encoding method, decoding method, model learning method, and program storage medium
US11871061B1 (en) * 2021-03-31 2024-01-09 Amazon Technologies, Inc. Automated adaptive bitrate encoding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160021376A1 (en) 2014-07-17 2016-01-21 The British Academy of Film and Television Arts Measurement of video quality

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005020091A1 (en) 2003-08-21 2005-03-03 Idilia Inc. System and method for processing text utilizing a suite of disambiguation techniques
KR20050084940A (ko) * 2005-05-04 2005-08-29 에이전시 포 사이언스, 테크놀로지 앤드 리서치 이미지 또는 비디오의 품질 평가를 위한 품질 지향 유의성맵을 생성하는 방법
US20080133275A1 (en) * 2006-11-28 2008-06-05 Ihc Intellectual Asset Management, Llc Systems and methods for exploiting missing clinical data
CN103299324B (zh) * 2010-11-11 2016-02-17 谷歌公司 使用潜在子标记来学习用于视频注释的标记
US9658314B2 (en) 2012-03-02 2017-05-23 Nokomis, Inc. System and method for geo-locating and detecting source of electromagnetic emissions
US9681116B2 (en) * 2013-03-15 2017-06-13 Arris Enterprises, Inc. System and method for delivering 3DTV content to variety of receivers
US9591316B2 (en) * 2014-03-27 2017-03-07 Intel IP Corporation Scalable video encoding rate adaptation based on perceived quality
US10007977B2 (en) 2015-05-11 2018-06-26 Netflix, Inc. Techniques for predicting perceptual video quality
US10681391B2 (en) * 2016-07-13 2020-06-09 Oath Inc. Computerized system and method for automatic highlight detection from live streaming media and rendering within a specialized media player
US11537869B2 (en) * 2017-02-17 2022-12-27 Twitter, Inc. Difference metric for machine learning-based processing systems
US11361416B2 (en) 2018-03-20 2022-06-14 Netflix, Inc. Quantifying encoding comparison metric uncertainty via bootstrapping

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160021376A1 (en) 2014-07-17 2016-01-21 The British Academy of Film and Television Arts Measurement of video quality

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Bagging Predictors", Machine Learning 24(pp. 123-140), 1996.*

Also Published As

Publication number Publication date
AU2022201403B2 (en) 2023-06-29
CN112166616A (zh) 2021-01-01
US20190295242A1 (en) 2019-09-26
MX2020009784A (es) 2020-10-12
WO2019183280A1 (en) 2019-09-26
AU2019240125A1 (en) 2020-10-15
BR112020019320A2 (pt) 2021-01-05
AU2022201403A1 (en) 2022-03-24
CN112166616B (zh) 2023-05-26
SG11202009244PA (en) 2020-10-29
AU2019240125B2 (en) 2021-12-16
EP3769536A1 (en) 2021-01-27
KR20200131319A (ko) 2020-11-23
US11361416B2 (en) 2022-06-14
CA3094357A1 (en) 2019-09-26
US20190297329A1 (en) 2019-09-26

Similar Documents

Publication Publication Date Title
KR102523149B1 (ko) 부트스트래핑을 통한 지각 품질 모델 불확실성의 정량화
US10475172B2 (en) Techniques for predicting perceptual video quality
AU2020203139B2 (en) Techniques for robustly predicting perceptual video quality
CN111684800B (zh) 用于预测感知视频质量的方法和系统
US11729396B2 (en) Techniques for modeling temporal distortions when predicting perceptual video quality

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right