KR102636099B1 - 양자화 파라미터를 조절하는 비디오 인코딩을 위한 장치 및 방법 - Google Patents

양자화 파라미터를 조절하는 비디오 인코딩을 위한 장치 및 방법 Download PDF

Info

Publication number
KR102636099B1
KR102636099B1 KR1020160176847A KR20160176847A KR102636099B1 KR 102636099 B1 KR102636099 B1 KR 102636099B1 KR 1020160176847 A KR1020160176847 A KR 1020160176847A KR 20160176847 A KR20160176847 A KR 20160176847A KR 102636099 B1 KR102636099 B1 KR 102636099B1
Authority
KR
South Korea
Prior art keywords
quantization parameter
data
ssim
quantization
psnr
Prior art date
Application number
KR1020160176847A
Other languages
English (en)
Other versions
KR20180073231A (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 삼성전자주식회사
Priority to KR1020160176847A priority Critical patent/KR102636099B1/ko
Priority to US15/684,172 priority patent/US10412392B2/en
Priority to CN201710931179.6A priority patent/CN108235011B/zh
Publication of KR20180073231A publication Critical patent/KR20180073231A/ko
Application granted granted Critical
Publication of KR102636099B1 publication Critical patent/KR102636099B1/ko

Links

Images

Classifications

    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/136Incoming video signal characteristics or properties
    • 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
    • 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
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 개시의 예시적 실시예에 따른 비디오 인코딩을 위한 장치는, 입력 데이터의 초기 양자화 파라미터의 크기에 기초하여, 출력 데이터로부터 생성된 인코딩된 데이터에 대한 객관적(objective) 평가 수치를 상승시키도록 입력 데이터를 양자화함으로써 출력 데이터를 생성하거나, 인코딩된 데이터에 대한 주관적(subjective)평가 수치를 상승시키도록 입력 데이터를 양자화함으로써 출력 데이터를 생성하는 양자화기를 포함할 수 있다.

Description

양자화 파라미터를 조절하는 비디오 인코딩을 위한 장치 및 방법{APPARATUS AND METHOD FOR ENCODING VIDEO ADJUSTING QUANTIZATION PARAMETER}
본 개시의 기술적 사상은 비디오 인코딩에 관한 것으로서, 자세하게는 양자화 파라미터를 조절하는 비디오 인코딩을 위한 장치 및 방법에 관한 것이다.
비디오 인코딩은 원본 데이터, 즉 이미지 데이터 또는 일련의 이미지 데이터로 구성된 비디오 데이터로부터 원본 데이터보다 적은 용량을 가지는 인코딩된 데이터를 생성하는 과정을 지칭할 수 있다. 인코딩된 데이터 또는 비트스트림(bitstream)을 디코딩함으로써 생성된 디코딩된 데이터는, 비디오 인코딩 방식에 따라 원본 데이터와 동일할 수도 있고 상이할 수도 있다. 예를 들면, 비손실(lossless) 압축에 따라 인코딩된 데이터로부터 디코딩된 데이터는 원본 데이터와 동일할 수 있는 한편, 손실(lossy) 압축에 따라 인코딩된 데이터로부터 디코딩된 데이터는 원본 데이터와 상이할 수 있다.
손실 압축에 따라 인코딩된 데이터의 크기, 즉 비트스트림의 비트 레이트(bit rate)를 감소시키면서도 디코딩된 데이터와 원본 데이터의 차이를 감소시키는 것은, 비디오 인코딩의 주요 해결 과제들 중 하나이다. 이에 따라, 원본 데이터로부터 디코딩된 데이터에 발생한 왜곡(distortion)을 정확하게 측정하고, 측정된 왜곡을 감소시키기 위한 비디오 인코딩이 필요하다.
본 개시의 기술적 사상은 비디오 인코딩을 위한 장치 및 방법에 관한 것으로서, 원본 데이터와의 관계에서 디코딩된 데이터를 정확하게 평가하는 기준을 제공하고, 그러한 기준에 부합하도록 원본 데이터를 인코딩하기 위한 장치 및 방법에 관한 것이다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 비디오 인코딩을 위한 장치는, 입력 데이터의 초기 양자화 파라미터의 크기에 기초하여, 출력 데이터로부터 생성된 인코딩된 데이터에 대한 객관적(objective) 평가 수치를 상승시키도록 입력 데이터를 양자화함으로써 출력 데이터를 생성하거나, 인코딩된 데이터에 대한 주관적(subjective)평가 수치를 상승시키도록 입력 데이터를 양자화함으로써 출력 데이터를 생성하는 상기 양자화기를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 비디오 인코딩을 위한 장치는, 입력 데이터의 초기 양자화 파라미터를 적어도 하나의 기준치과 비교하고 비교 결과에 따라 출력 데이터로부터 생성된 인코딩된 데이터에 대한 PSNR(peak signal-to-noise ratio)를 상승시키거나 SSIM(structural similarity or structural similarity index)를 상승시키는 최종 양자화 파라미터를 생성하는 양자화 파라미터 생성기, 및 최종 양자화 파라미터에 따라 입력 데이터를 양자화함으로써 출력 데이터를 생성하는 양자화 처리기를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 비디오 인코딩 방법은, 입력 데이터의 초기 양자화 파라미터를 적어도 하나의 기준치와 비교하는 단계, 비교 결과에 따라 출력 데이터로부터 생성된 인코딩 데이터에 대한 PSNR(peak signal-to-noise ratio)를 상승시키거나 SSIM(structural similarity index)를 상승시키는 최종 양자화 파라미터를 생성하는 단계, 및 최종 양자화 파라미터에 따라 입력 데이터를 양자화함으로써 출력 데이터를 생성하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따라 비디오 화질을 평가함으로써 비디오 품질 지수를 출력하는 방법은, 프레임 데이터의 시퀀스를 수신하는 단계, 프레임 데이터 및 기준 데이터에 기초하여, PSNR(peak signal-to-noise ratio) 및 SSIM(structural similarity index)를 계산하는 단계, PSNR 및 SSIM의 가중합으로서 화질 지수를 계산하는 단계, 및 프레임 데이터의 시퀀스에 대응하는 복수의 화질 지수들에 기초하여 비디오 화질 지수를 계산하여 출력하는 단계를 포함할 수 있다.
본 개시의 예시적 실시예에 따른 비디오 인코딩을 위한 장치 및 방법에 의하면, 디코딩된 데이터의 실제적인 비디오 화질을 나타내는 비디오 화질 지수를 제공함으로써 비디오 인코딩의 성능이 실제적으로 평가될 수 있다.
또한, 본 개시의 예시적 실시예에 따른 비디오 인코딩을 위한 장치 및 방법에 의하면, 실제적인 기준에 따라 향상된 성능을 나타내는 비디오 인코딩이 가능할 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 비디오 인코딩을 위한 장치를 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따라 화질 지수를 설명하기 위한 그래프들을 나타낸다.
도 3은 본 개시의 예시적 실시예에 따라 도 1의 양자화 모듈의 예시를 나타내는 블록도이다.
도 4는 본 개시의 예시적 실시예에 따라 양자화 파라미터의 함수들로서 PSNR 및 SSIM을 나타내는 그래프들이다.
도 5는 본 개시의 예시적 실시예에 따라 도 4의 PSNR 및 SSIM을 양자화 파라미터로 미분한 함수들을 나타내는 그래프이다.
도 6은 본 개시의 예시적 실시예에 따라 도 3의 양자화 파라미터 생성기의 예시의 블록도이다.
도 7은 본 개시의 예시적 실시예에 따라 도 6의 양자화 파라미터 선택기의 예시적인 동작을 나타내는 순서도이다.
도 8a 및 도 8b는 본 개시의 예시적 실시예들에 따라 도 6의 기준치 생성기의 예시들의 블록도들이다.
도 9a 및 도 9b는 본 개시의 예시적 실시예에 따라 도 6의 기준치 생성기의 예시들의 블록도들이다.
도 10은 본 개시의 예시적 실시예에 따라 비디오 인코딩 방법을 나타내는 순서도이다.
도 11은 본 개시의 예시적 실시예에 따라 도 10의 적어도 하나의 기준치를 계산하는 방법을 나타내는 순서도이다.
도 12는 본 개시의 예시적 실시예에 따라 비디오 화질 평가기를 나타내는 블록도이다.
도 13은 본 개시의 예시적 실시예에 따라 비디오 화질을 평가하는 방법을 나타내는 순서도이다.
도 14는 본 개시의 예시적 실시예에 따라 도 13의 단계 S260의 예시를 나타내는 순서도이다.
도 15는 본 개시의 예시적 실시예에 따른 시스템-온-칩(system on chip; SoC)을 나타내는 블록도이다.
본 명세서의 도면들에 도시된 블록들은, 출력들을 생산하기 위하여 입력들에 대하여 특정 기능들을 수행하는 모듈이거나 그러한 모듈을 형성하도록 구성된, 특화되거나(specialized) 일반적인 목적의 하드웨어 및/또는 소프트웨어로 만들어질 수 있다. 예를 들면, 블록은 논리 합성 등을 통해서 설계된 하드웨어 모듈일 수도 있고, 프로세서 등에 의해서 실행되는 일련의 명령어(instruction)들을 포함하는 소프트웨어 모듈일 수도 있다.
도 1은 본 개시의 예시적 실시예에 따른 비디오 인코딩을 위한 장치(10)를 나타내는 블록도이다. 비디오 인코딩을 위한 장치(10)는 비디오 데이터를 처리하는 다양한 장치들 중 하나일 수 있다. 예를 들면, 비디오 인코딩을 위한 장치(10)는 비디오 데이터를 출력하는 디스플레이를 포함하는 장치, 예컨대 모바일 폰, 테스크톱 PC, 랩탑 PC, 태블릿 PC 등일 수도 있고, 비디오 데이터를 생성하는 카메라 모듈을 포함하는 장치, 예컨대 디지털 카메라, 디지털 캠코더, 스마트 폰 등일 수도 있고, 네트워크와 같은 통신 채널을 통해서 데이터를 전송하기 위하여 비디오 인코딩을 수행하는 서버 등일 수도 있다. 또한, 비디오 인코딩을 위한 장치(10)는 전술된 장치들에 포함되는 부품으로서 하나 이상의 반도체 칩으로 구성될 수도 있고, 비디오 인코딩을 수행하기 위하여 CPU나 GPU 등에 의해서 실행되는 명령어들로 구성된 소프트웨어가 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수도 있다. 이하에서, 비디오 인코딩을 위한 장치(10)는 비디오 인코더로서 지칭되나, 비디오 인코딩을 위한 장치(10)는 비디오 인코더를 포함하는 장치일 수도 있는 점은 인정되어야 할 것이다.
도 1은 비디오 인코더(10)에 포함되는 모듈들 중 일부 모듈들만을 도시한 것으로서, 비디오 인코더(10)는 원본 비디오 데이터(5)를 인코딩함으로써 인코딩된 데이터, 즉 코드화된(coded) 비트스트림을 생성할 수 있다. 도 1에 도시된 바와 같이 복수의 모듈들, 즉 제어 모듈(100), 변환 모듈(200), 양자화 모듈(300), 역양자화 모듈(400), 역변환 모듈(500), 디블록킹/SAO(sample adaptive offset) 필터 모듈(600), 디코딩된 프레임 버퍼(700), 인트라 예측 모듈(800), 인터 예측 모듈(900)을 포함할 수 있고, 데이터의 가산이나 감산을 연산하는 연산 블록들을 포함할 수 있다.
컨트롤 모듈(100)은 비디오 인코딩을 제어할 수 있다. 예를 들면, 컨트롤 모듈(100)은 원본 비디오 데이터(5)를 수신할 수 있고, 도 1에서 점선으로 표시된 바와 같이 비디오 인코더(10)에 포함된 다른 모듈들에 제어 신호를 전달할 수 있다. 비록 도 1에 도시되지 아니하였으나 컨트롤 모듈(100)은 컨트롤 데이터를 출력할 수 있고, 컨트롤 데이터는 비디오 인코더(10)가 생성하는 비트스트림에 포함될 수 있다.
변환 모듈(200)은 원본 데이터(D_ORG) 및 예측 데이터(D_PRE)의 차이인 잔차(residual) 데이터(D_RES)를 변환함으로써 입력 데이터(D_IN)를 생성할 수 있다. 예를 들면, 변환 모듈(200)은, 잔차 데이터(D_RS)를 이산 코사인 변환(discrete cosine transform; DCT)함으로써 입력 데이터(D_IN)를 생성할 수 있고, 이에 따라 공간 영역(domain)의 입력 데이터(D_IN)는 주파수 영역의 입력 데이터(D_IN)로 변환될 수 있다.
양자화 모듈(또는 양자화기)(300)은 입력 데이터(D_IN)를 양자화(quantization)함으로써 출력 데이터(D_OUT)를 생성할 수 있다. 예를 들면, 양자화 모듈(300)은 양자화 파라미터(quantization parameter; QP)에 따라 입력 데이터(D_IN)를 양자화할 수 있다. 후술되는 바와 같이, 본 개시의 예시적 실시예에 따라 양자화 모듈(300)은, 출력 데이터(D_OUT)로부터 생성된 인코딩된 데이터, 즉 비트스트림으로부터 디코딩된 데이터의 실제적인 비디오 화질을 향상시키기 위하여 조절된 양자화 파라미터(QP)를 생성할 수 있고, 그러한 양자화 파라미터(QP)에 따라 입력 데이터(D_IN)를 양자화함으로써 출력 데이터(D_OUT)를 생성할 수 있다. 도 1에 도시된 바와 같이, 양자화 모듈(300)은 양자화 파라미터 생성기(320) 및 양자화 처리기(340)를 포함할 수 있다.
양자화 파라미터 생성기(320)는 비트스트림으로부터 디코딩된 데이터의 실제적인 비디오 화질을 향상시키기 위한 양자화 파라미터(QP)를 생성할 수 있다. 예를 들면, 양자화 파라미터 생성기(320)는 초기 양자화 파라미터(예컨대, 도 6의 QP0)를 적어도 하나의 기준치(예컨대, 도 6의 REF)와 비교할 수 있고, 비교 결과에 따라 비트스트림에 대한 객관적(objective) 평가 수치를 상승시키거나 주관적(subjective) 평가 수치를 상승시키는 양자화 파라미터(QP)를 생성할 수 있다.
비디오 화질 평가 또는 왜곡(distortion) 측정에서, 객관적 평가 수치 및 주관적 평가 수치가 사용될 수 있다. 객관적 평가 수치는 비디오 데이터의 픽셀 점별 오차(pixel pointwise error)에 기초할 수 있다. 예를 들면, 객관적 평가 수치는 MSE(mean square error), MAE(mean absolute error), PSNR(peak signal-to-noise ratio), RMSE(root mean squared error), SNR(signal-to-noise ratio) 등을 포함할 수 있다. 주관적 평가 수치는 비디오 데이터가 나타내는 내용에 기초할 수 있다. 예를 들면, 주관적 평가 수치는 SSIM(structural similarity), MS-SSIM(multi-scale SSIM) 등을 포함할 수 있다. 후술되는 바와 같이, 양자화 파라미터 생성기(320)는 객관적 평가 수치 및 주관적 평가 수치 중 하나만을 고려하는 대신, 객관적 평가 수치 및 주관적 평가 수치 모두에 기초하여 정의된, 실제적인 비디오 화질을 측정할 수 있는 화질 지수(quality index; QI)(예컨대, 도 2의 QI)를 고려함으로써 양자화 파라미터(QP)를 생성할 수 있다. 화질 지수(QI)에 대한 자세한 내용은 도 2를 참조하여 후술될 것이다.
양자화 처리기(340)는 양자화 파라미터(QP)에 따라 입력 데이터(D_IN)를 양자화함으로써 출력 데이터(D_OUT)를 생성할 수 있다. 예를 들면, 양자화 처리기(340)는 양자화 행렬(quantization matrix)을 사용하여 입력 데이터(D_IN)를 양자화할 수 있고, 양자화 파라미터(QP)에 따라 양자화 행렬이 결정됨으로써 입력 데이터(D_IN)의 양자화 수준이 조절될 수 있다.
역양자화 모듈(400) 및 역변환 모듈(500)은, 양자화 모듈(300) 및 변환 모듈(200)의 역동작을 수행할 수 있다. 예를 들면, 역양자화 모듈(400)은 출력 데이터(D_OUT)를 역양자화할 수 있고, 역변환 모듈(500)은 역양자화 모듈(400)에 의해서 생성된 데이터, 즉 주파수 영역의 데이터를 역변환함으로써 공간 영역의 데이터를 생성할 수 있다. 역변환 모듈(500)에 의해서 생성된 데이터는 복원된 잔차 데이터일 수 있다.
디블록킹/SAO 필터 모듈(600) 및 디코딩된 프레임 버퍼(700)는 인터 예측을 위하여 디코딩된 프레임 데이터를 생성하고 저장할 수 있다. 디블록킹/SAO 필터 모듈(600)은 역양자화 모듈(400) 및 역변환 모듈(500)에 의해서 복원된 잔차 데이터와 예측 데이터(D_PRE)가 합산된 데이터를 필터링할 수 있고, 이에 따라 하나의 프레임을 구성하는 블록들에 의한 오차들이 감소함으로써 보다 실제적인 이미지를 나타내는 프레임 데이터를 생성할 수 있다. 디코딩된 프레임 버퍼(700)는 디블록킹/SAO 필터 모듈(600)에 의해서 생성된 프레임 데이터를 저장할 수 있고, 저장된 프레임 데이터를 인터 예측 모듈(900)에 제공할 수 있다.
인트라 예측 모듈(800)은 역양자화 모듈(400) 및 역변환 모듈(500)에 의해서 복원된 잔차 데이터와 예측 데이터(D_PRE)가 합산된 데이터 및 원본 데이터(D_ORG)에 기초하여 인트라 예측 데이터를 생성할 수 있다. 예를 들면, 인트라 예측 모듈(800)은 프레임내(intra-frame) 추정(estimation) 및 프레임내(intra-frame) 예측을 수행함으로써 인트라 예측 데이터를 생성할 수 있다.
인터 예측 모듈(900)은 디코딩된 프레임 버퍼(700)로부터 제공된 프레임 데이터 및 원본 데이터(D_ORG)에 기초하여 인터 예측 데이터를 생성할 수 있다. 예를 들면, 인터 예측 모듈(900)은 모션 추정(motion estimation) 및 모션 보상(motion compensation)을 수행함으로써 인터 예측 데이터를 생성할 수 있다.
컨트롤 모듈(100)에 의해서 인트라 예측 데이터 및 인터 예측 데이터 중 하나가 예측 데이터(D_PRE)로서 선택될 수 있고, 원본 데이터(D_ORG)로부터 잔차 데이터(D_RES)를 생성하는데 사용될 수 있다.
도 1에서, 원본 데이터(D_ORG)는 원본 비디오 데이터(5)의 한 프레임을 구성하는 블록들 중 하나일 수 있다. 즉, 복수의 프레임들을 포함하는 원본 비디오 데이터(5)는 각 프레임마다 블록 별로 인코딩이 수행될 수 있고, 이에 따라 원본 데이터(D_ORG), 예측 데이터(D_PRE), 잔차 데이터(D_RES), 입력 데이터(D_IN) 및 출력 데이터(D_OUT)는 하나의 블록에 대응할 수 있다. 양자화 모듈(300)의 양자화 파라미터 생성기(320)는 블록에 대응하는 양자화 파라미터(QP)를 생성할 수 있다. 즉, 양자화 파라미터(QP)는 블록 마다 상이한 값을 가지도록 생성될 수 있다.
도 2는 본 개시의 예시적 실시예에 따라 화질 지수(QI)를 설명하기 위한 그래프들을 나타낸다. 구체적으로, 그래프(20)는 실험 결과에 따라 MOS 및 PSNR 사이 관계를 나타내고, 그래프(30)는 실험 결과에 따라 MOS 및 SSIM 사이 관계를 나타내고, 그래프(40)는 MOS 및 화질 지수(QI) 사이 관계를 나타낸다.
MOS(mean opinion score)는 표본 집단의 인간들의 평가를 점수화한 것으로서, MOS가 높을수록 비디오 화질이 좋은 것을 나타낸다. 실험 결과들은 MOS와 객관적 평가 수치의 관계 또는 MOS와 주관적 평가 수치의 관계가 비선형적인 것을 보여준다. 예를 들면, 그래프(20)에 도시된 바와 같이 객관적 평가 수치의 예시로서 PSNR이 증가할수록 MOS의 증가분은 감소하는 한편, 그래프(30)에 도시된 바와 같이 주관적 평가 수치의 예시로서 SSIM이 증가할수록 MOS의 증가분은 상승할 수 있다. 이에 따라, 비디오 화질을 객관적 평가 수치만으로 평가하거나 주관적 평가 수치만으로 평가하는 것은 실제적이지 아니할 수 있고, 비디오 인코딩 역시 객관적 평가 수치만을 향상시키거나 주관적 평가 수치만을 향상시키도록 설계된 경우 실제적인 비디오 화질의 향상을 도모할 수 없을 수 있다. 따라서, MOS와 선형적인 관계를 가지는 수치가 비디오 화질을 평가하는데 적합할 수 있고, 후술되는 바와 같이 화질 지수(QI)가 정의될 수 있다.
화질 지수(QI)는 MOS와 실질적으로 선형적인 관계를 가질 수 있고, 객관적 평가 수치 및 주관적 평가 수치의 함수로서 정의될 수 있다. 예를 들면, 도 2에 도시된 바와 같이, 화질 지수(QI)는 객관적 평가 수치의 예시로서 PSNR 및 주관적 평가 수치의 예시로서 SSIM의 함수(f)로서 정의될 수 있다. 본 개시의 예시적 실시예에 따라, 함수(f)는 PSNR 및 SSIM의 가중합(weighted sum)을 나타낼 수 있고, 화질 지수(QI)는 아래 [수학식1]과 같이 정의될 수 있다.
[수학식 1]에서, 제1 가중치(W1) 및 제2 가중치(W2)는 화질 지수(QI) 및 MOS가 실질적으로 선행적인 관계를 가지도록 설정될 수 있다. PSNR은 정의상 무한대의 값을 가질 수 있으므로(PSNR = 10log(s2 / MSE)), 화질 지수(QI)를 계산하기 위한 가중합에서 PSNR은 상한으로 제한될 수 있다. 즉, PSNR의 상한이 'MaxVal'일 때, 화질 지수(QI)는 아래 [수학식2]와 같이 정의될 수 있다.
일 실시예에서, 'MaxVal'은 50일 수 있다. SSIM은 정의상 0 내지 1의 값을 가질 수 있으므로, 가중합에서 PSNR의 범위 및 SSIM의 범위를 일치시키기 위하여 제2 가중치(W2)는 스케일 인자(C)를 포함할 수 있고, 예컨대 스케일 인자(C)는 PSNR의 상한인 'MaxVal'과 일치할 수 있다. 이에 따라, 제2 가중치(W2)는 스케일 인자(C) 및 제1 가중치(W1)와의 합이 일정하도록(예컨대, 1이 되도록) 설정된 SSIM 인자(WS)의 곱일 수 있다. 즉, 화질 지수(QI)는 아래 [수학식3]과 같이 정의될 수 있다.
도 1의 비디오 인코더(10)는 전술된 화질 지수(QI)를 상승시키도록 비디오 인코딩을 수행할 수 있다. 예를 들면, 도 1의 양자화 모듈(300)의 양자화 파라미터 생성기(320)는 출력 데이터(D_OUT)로부터 생성되는 비트스트림(즉, 인코딩된 데이터)에 대한 화질 지수(QI)가 상승하도록 양자화 파라미터(QP)를 생성할 수 있다. 이를 위하여, 도 4를 참조하여 후술되는 바와 같이 PSNR 및 SSIM이 양자화 파라미터(QP)의 함수들로서 표현될 수 있고, 도 5를 참조하여 후술되는 바와 같이 화질 지수(QI)를 상승시키기 위하여 양자화 파라미터(QP)가 상승시켜야 할 수치가 PSNR인지 SSIM인지를 결정하기 위한 함수들을 양자화 파라미터(QP)로 미분한 함수들이 사용될 수 있다. 이하에서 본 개시의 예시적 실시예들은 객관적 평가 수치의 예시로서 PSNR 및 주관적 평가 수치의 예시로서 SSIM을 사용하여 설명되나, 본 개시의 기술적 사상이 이에 제한되지 아니하는 점은 이해될 것이다.
도 3은 본 개시의 예시적 실시예에 따라 도 1의 양자화 모듈(300)의 예시를 나타내는 블록도이다. 도 1을 참조하여 전술된 바와 같이, 도 3의 양자화 모듈(300')은 양자화 파라미터(QP)에 따라 입력 데이터(D_IN)를 양자화함으로써 출력 데이터(D_OUT)를 생성할 수 있다. 도 3에 도시된 바와 같이, 양자화 모듈(300')은 양자화 파라미터 생성기(320') 및 양자화 처리기(340')를 포함할 수 있다.
양자화 파라미터 생성기(320')는 원본 데이터(D_ORG)의 분산(variance)(VAR)을 수신할 수 있다. 분산(VAR)은 원본 데이터(D_ORG)에 포함된 픽셀들의 분산일 수 있다. 양자화 파라미터 생성기(320')는 도 1의 제어 모듈(100)로부터 분산(VAR)을 수신할 수도 있고, 도 3에 도시된 바와 상이하게 원본 데이터(D_ORG)를 수신하고 수신된 원본 데이터(D_ORG)로부터 분산(VAR)을 계산할 수도 있다. 양자화 파라미터 생성기(320')는 분산(VAR)의 함수로서, 화질 지수(IQ)의 제1 및 제2 가중치(W1, W2)에 기초하여 정의된 기준치 함수를 사용하여 적어도 하나의 기준치를 생성할 수 있다. 양자화 파라미터 생성기(320')는 초기 양자화 파라미터를 적어도 하나의 기준치와 비교할 수 있고, 비교 결과에 따라 PSNR을 상승시키기 위한 양자화 파라미터(QP) 또는 SSIM을 상승시키기 위한 양자화 파라미터(QP)를 생성할 수 있다.
양자화 처리기(340')는, 도 1의 양자화 처리기(340)와 유사하게, 양자화 파라미터(QP)에 의해서 결정된 양자화 행렬을 사용하여 입력 데이터(D_IN)를 양자화함으로써 출력 데이터(D_OUT)를 생성할 수 있다.
도 4는 본 개시의 예시적 실시예에 따라 양자화 파라미터(QP)의 함수들로서 PSNR 및 SSIM을 나타내는 그래프들이고, 도 5는 도 4의 PSNR 및 SSIM을 양자화 파라미터(QP)로 미분한 함수들을 나타내는 그래프이다. 구체적으로, 도 4의 (a)는 PSNR을 양자화 파라미터(QP)의 함수로서 나타내는 그래프이고, 도 4의 (b)는 SSIM을 양자화 파라미터(QP)의 함수로서 나타내는 그래프이다.
MSE(mean square error)는 아래 [수학식 4]와 같이 양자화 파라미터(QP)의 함수로서 나타낼 수 있다. [수학식 4]에서 'α'는 라운딩 오프셋(rounding offset)에 의존하는 상수로서, 예컨대 라운딩 오프셋이 1/2, 1/3 및 1/6이면, 'α'는 1/12, 1/9 및 7/36일 수 있다.
픽셀의 풀 스케일이 255일 때, PSNR은 아래 [수학식 5]와 같이 양자화 파라미터(QP)의 함수로서 나타낼 수 있다. 즉, PSNR은 양자화 파라미터(QP)의 1차 함수로서 근사적으로 나타낼 수 있다.
"On Rate Distortion Optimization Using SSIM"(C. Yeo, H. L. Tan, and Y. H. Tan, IEEE Trans. CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, Vol. 23, no. 7, pp. 1170-1181, Jul. 2013)에 따르면, SSIM은 아래 [수학식 6]과 같이 양자화 파라미터(QP)의 함수로서 나타낼 수 있다. [수학식 6]에서 'σ2'은 원본 데이터(D_ORG)의 분산(즉, VAR)을 나타낼 수 있고, 'c2'는 SSIM의 정의에서 사용되는 수치적 안정성(numerical stability)을 위한 상수일 수 있다.
이에 따라, [수학식 4]의 MSE를 [수학식 6]에 대입하면, SSIM은 아래 [수학식 7]과 같이 양자화 파라미터(QP)의 함수로서 나타낼 수 있다.
[수학식 5], [수학식 7]을 참조하면, 도 4의 (a)에 도시된 바와 같이 양자화 파라미터(QP)의 1차 함수인 PSNR과 상이하게, 도 4의 (b)에 도시된 바와 같이 SSIM은 양자화 파라미터(QP)뿐만 아니라 원본 데이터(D_ORG)의 분산(VAR) 'σ2'에 따라 값이 변할 수 있다.
본 개시의 예시적 실시예에 따라, 화질 지수(QI)를 형성하는 PSNR 및 SSIM 각각의 양자화 파라미터(QP)에 대한 민감도를 평가하기 위하여, [수학식 5]의 PSNR 및 [수학식 7]의 SSIM을 양자화 파라미터(QP)로 각각 미분한 미분함수들이 아래 [수학식 8] 및 [수학식 9]와 같이 표현될 수 있다.
[수학식 8] 및 [수학식 9]를 참조하면, 도 5에 도시된 바와 같이 PSNR의 미분 함수는 실질적으로 일정한 값(즉, -1)을 가지는 한편, SSIM의 미분 함수는 QP에 따라 변동할 수 있고, PSNR의 미분 함수와 교차할 수 있다. 도 5에 도시된 바와 같이, SSIM의 미분 함수는 PSNR의 미분 함수보다 낮은 값을 가지는 구간들(P1, P2, P3)을 가질 수 있다. 도 4의 (b)와 유사하게, SSIM의 미분 함수 역시 양자화 파라미터(QP)뿐만 아니라 분산(VAR) 'σ2'에 의존할 수 있고, 분산(VAR) 'σ2'에 따라 구간들(P1, P2, P3)이 상이할 수 있다.
도 5를 참조하면, SSIM의 미분 함수가 PSNR의 미분 함수보다 낮은 구간에서, 양자화 파라미터(QP)의 감소에 따른 SSIM의 증가분이 PSNR의 증가분보다 크므로, 양자화 파라미터(QP)를 SSIM을 상승시키도록 조절하는 것이 유리할 수 있다. 다른 한편으로, PSNR의 미분 함수가 SSIM의 미분 함수보다 낮은 구간에서, 양자화 파라미터(QP)의 감소에 다른 PSNR의 증가분이 SSIM의 증가분보다 크므로, 양자화 파라미터(QP)를 PSNR을 상승시키도록 조절하는 것이 유리할 수 있다. 다만, SSIM 및 PSNR이 화질 지수(QI)에 미치는 영향은 제1 및 제2 가중치(W1, W2)에 의해서 결정되므로, 도 6을 참조하여 후술되는 바와 같이, 양자화 파라미터(QP)의 범위, 즉 SSIM을 상승시키도록 조절이 필요한 양자화 파라미터(QP)의 범위 또는 PSNR을 상승시키도록 조절이 필요한 양자화 파라미터(QP)의 범위는, 분산(VAR)뿐만 아니라 제1 및 제2 가중치(W1, W2)에 의해서 결정될 수 있다.
도 6은 본 개시의 예시적 실시예에 따라 도 3의 양자화 파라미터 생성기(320')의 예시의 블록도이다. 도 3을 참조하여 전술된 바와 같이, 도 6의 양자화 파라미터 생성기(320")는 분산(VAR)을 수신할 수 있고, 양자화 파라미터(QP)를 생성할 수 있다. 도 6에 도시된 바와 같이, 양자화 파라미터 생성기(320")는 기준치 생성기(322), 제1 양자화 파라미터 계산기(324), 제2 양자화 파라미터 계산기(326) 및 양자화 파라미터 선택기(328)를 포함할 수 있다.
양자화 파라미터 생성기(320")는 초기 양자화 파라미터(QP0)를 적어도 하나의 기준치(REF)와 비교할 수 있고, 비교 결과에 따라 제1 양자화 파라미터(QP1) 또는 제2 양자화 파라미터(QP2) 중 하나를 양자화 파라미터(QP)로서 선택하여 출력할 수 있다. 초기 양자화 파라미터(QP0)는 입력 데이터(D_IN)에 대하여 미리 결정될 수 있다. 예를 들면, 초기 양자화 파라미터(QP0)는 도 1의 컨트롤 모듈(100)로부터 수신될 수 있고, 컨트롤 모듈(100)은 원본 비디오 데이터(5)를 인코딩함으로써 생성된 비트스트림의 비트 레이트(bit rate)에 기초하여 초기 양자화 파라미터(QP0)를 결정할 수 있다. 즉, 비트 레이트에 마진이 충분한 있는 경우 상대적으로 작은 초기 양자화 파라미터(QP0)가 생성될 수 있고, 비트 레이트에 마진이 부족한 경우 상대적으로 큰 초기 양자화 파라미터(QP0)가 생성될 수 있다. 일 실시예에서, 도 6에 도시된 바와 상이하게, 초기 양자화 파라미터(QP0)는 양자화 파라미터 생성기(320") 내부에서 생성될 수도 있다.
기준값 생성기(322)는 분산(VAR)을 수신할 수 있고 적어도 하나의 기준치(REF)를 생성할 수 있다. 도 5를 참조하여 전술된 바와 같이, 적어도 하나의 기준치(REF)는 양자화 파라미터(QP)의 변화에 따라 화질 지수(QI)가 PSNR에 더 민감한 구간 및 SSIM에 더 민감한 구간을 정의할 수 있다. 예를 들면, [수학식 8]의 PSNR의 미분 함수 및 [수학식 9]의 SSIM의 미분함수의 비율이 제2 가중치 및 제1 가중치(W2, W1)의 비율과 일치하도록 하는 양자화 파라미터(QP)가 적어도 하나의 기준치(REF)로서 계산될 수 있다. 즉, 아래 [수학식 10]을 만족하는 양자화 파라미터(QP)가 계산될 수 있다.
[수학식 10]에 의해서, 아래 [수학식 11] 및 [수학식 12]와 같이 제1 기준치(REF1) 및 제2 기준치(REF2)가 계산될 수 있다.
이에 따라, 초기 양자화 파라미터(QP0)가 제1 기준치(REF1) 및 제2 기준치(REF2) 사이에 있는 경우, 즉 PSNR의 미분 함수 및 SSIM의 미분함수의 비율이 제2 가중치 및 제1 가중치(W2, W1)의 비율보다 큰 경우, 화질 지수(QI)는 PSNR보다 SSIM에 더 민감할 수 있다. 다른 한편으로, 초기 양자화 파라미터(QP0)가 제1 기준치(REF1)이하 또는 제2 기준치(REF2)이상인 경우, 즉 PSNR의 미분 함수 및 SSIM의 미분함수의 비율이 제2 가중치 및 제1 가중치(W2, W1)의 비율 이하인 경우, 화질 지수(QI)는 SSIM보다 PSNR에 더 민감할 수 있다.
[수학식 7]을 참조하면, 'β'는 분산(VAR) 'σ2'으로부터 결정되므로, [수학식 11] 및 [수학식 12]에서 제1 및 제2 가중치(W1, W2) 및 기타 상수들을 결정하면, 제1 기준치(REF1) 및 제2 기준치(REF2) 각각은, 아래 [수학식 13] 및 [수학식 14]와 같이 분산(VAR) ' σ2'의 함수로서 나타낼 수 있다.
이에 따라, 기준치 생성기(322)는 [수학식 11] 및 [수학식 12]의 함수들(g, h)을 사용하여 분산(VAR)에 따른 제1 및 제2 기준치(REF1, REF2)를 포함하는 적어도 하나의 기준치(REF)를 생성할 수 있다. 예를 들어 도 5를 참조하면, 분산(VAR) 'σ2'가 50일 때, 함수들(g, h)로부터 도출된 제1 및 제2 기준치(REF1, REF2)는 구간(P1)의 하한 및 상한을 각각 나타낼 수 있다. 함수들(g, h)은 기준치 함수들로서 지칭될 수도 있다.
제1 양자화 파라미터 계산기(324)는 초기 양자화 파라미터(QP0)를 수신할 수 있고, 비트스트림에 대한 PSNR을 상승시키기 위한 제1 양자화 파라미터(QP1)를 계산할 수 있다. 예를 들면, 제1 양자화 파라미터 계산기(324)는, "Scalable Rate Control for MPEG-4 Video"(H. Lee, T. Chiang, and Y. Zhang, IEEE Trans. CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, Vol. 10, no. 6, pp. 878-894, Sep. 2000)에서 제안된 SRC(scalable rate control) 스킴에 기초하여 제1 양자화 파라미터(QP1)를 계산할 수도 있고, "Rate Control for H.264 Video With Enhanced Rate and Distortion Models"(D. Kwon, M. Shen, and C. J. Kuo, IEEE Trans. CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, Vol. 17, no. 5, pp. 517-529, May. 2007)에서 제안된 레이트-왜곡(rate-distortion) 모델에 기초하여 제1 양자화 파라미터(QP1)를 계산할 수도 있고, "λ Domain Rate Control Algorithm for High Effciency Video Coding"(B. Li, H. Li, L. Li, and J. Zhang, IEEE Trans. IMAGE PROCESSING, Vol. 23, no. 9, 3841-3854, Sep. 2014)에서 제안된 비트레이트-라그랑즈 승수(bitrate-Lagrange multiplier; R-λ) 모델에 기초하여 제1 양자화 파라미터(QP1)를 계산할 수도 있다. 제1 양자화 파라미터 계산기(324)는 전술된 예시적인 방식들 외에도 다양한 방식으로 PSNR을 상승시키기 위한 제1 양자화 파라미터(QP1)를 계산할 수 있다.
제2 양자화 파라미터 계산기(326)는 초기 양자화 파라미터(QP0)를 수신할 수 있고, 비트스트림에 대한 SSIM을 상승시키기 위한 제2 양자화 파라미터(QP2)를 계산할 수 있다. 예를 들면, 제2 양자화 파라미터 계산기(326)는 "On Rate Distortion Optimization Using SSIM"(C. Yeo, H. L. Tan, and Y. Tan, IEEE Trans. CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, Vol. 23, no. 7, Jul. 2013)에서 제안된 레이트-왜곡 최적화(rate-distortion optimation; RDO) 방식에 기초하여 제2 양자화 파라미터(QP2)를 계산할 수도 있고, "SSIM-based adaptive quantization in HEVC"(C. Yeo, H. L. Tan, and Y. H. Tan, in IEEE Internaltional Conference on Acoustics, Speech and Signal Processing (ICASSP), May. 2013, pp. 1690-1694)에서 제안된 양자화 파라미터 선택 방법에 기초하여 제2 양자화 파라미터(QP2)를 계산할 수도 있다. 제2 양자화 파라미터 계산기(326)는 전술된 예시적인 방식들 외에도 다양한 방식으로 SSIM을 상승시키기 위한 제2 양자화 파라미터(QP2)를 계산할 수 있다.
양자화 파라미터 선택기(328)는 초기 양자화 파라미터(QP0) 및 적어도 하나의 기준치(REF)를 수신할 수 있고, 제1 및 제2 양자화 파라미터(QP1, QP2)를 수신할 수 있다. 양자화 파라미터 선택기(328)는 초기 양자화 파라미터(QP0) 및 적어도 하나의 기준치(REF)를 비교함으로써 제1 및 제2 양자화 파라미터(QP1, QP2) 중 하나를 양자화 파라미터(QP)로서 출력할 수 있다. 양자화 파라미터 선택기(328)에 대한 자세한 내용은 도 7을 참조하여 설명될 것이다.
도 7은 본 개시의 예시적 실시예에 따라 도 6의 양자화 파라미터 선택기(328)의 예시적인 동작을 나타내는 순서도이다. 도 6을 참조하여 전술된 바와 같이, 양자화 파라미터 선택기(328)는 제1 및 제2 기준치(REF1, REF2), 초기 양자화 파라미터(QP0), 제1 및 제2 양자화 파라미터(QP1, QP2)를 수신할 수 있고, 양자화 파라미터(QP)를 출력할 수 있다.
단계 S92에서, 양자화 파라미터 선택기(328)는 초기 양자화 파라미터(QP0)와 제1 및 제2 기준치(REF1, REF2) 각각을 비교할 수 있다. 예를 들면, 도 7에 도시된 바와 같이, 양자화 파라미터 선택기(328)는 초기 양자화 파라미터(QP0)가 제1 및 제2 기준치(REF1, REF2) 사이에 있는지 여부를 판단할 수 있다. 초기 양자화 파리미터(QP0)가 제1 및 제2 기준치(REF1, REF2) 사이에 있지 아니하는 경우, 단계 S94에서 양자화 파라미터 선택기(328)는 양자화 파라미터(QP)를, PSNR을 상승시키기 위한 제1 양자화 파라미터(QP1)로서 결정할 수 있다. 다른 한편으로, 초기 양자화 파라미터(QP0)가 제1 및 제2 기준치(REF1, REF2) 사이에 있는 경우, 단계 S96에서 양자화 파라미터 선택기(328)는 양자화 파라미터(QP)를, SSIM을 상승시키기 위한 제2 양자화 파라미터(QP2)로서 결정할 수 있다.
도 8a 및 도 8b는 본 개시의 예시적 실시예들에 따라 도 6의 기준치 생성기(322)의 예시들의 블록도들이다. 도 6을 참조하여 전술된 바와 같이, 도 8a 및 도 8b의 기준치 생성기(322a, 322b)는 분산(VAR)을 수신할 수 있고, 제1 및 제2 기준치(REF1, REF2)를 출력할 수 있다.
도 8a를 참조하면, 본 개시의 예시적 실시예에 따라 기준치 생성기(322a)는 룩업 테이블(lookup table)(322_1)을 포함할 수 있다. 룩업 테이블(322_1)은 플래시 메모리, EEPROM, PRAM, RRAM, MRAM, FRAM 등과 같이 비휘발성 메모리에 저장될 수도 있고, 비휘발성 메모리로부터 로딩됨으로써 DRAM, SRAM, 모바일 DRAM과 같은 휘발성 메모리에 저장될 수도 있다. 룩업 테이블(322_1)은 복수의 분산값들 및 복수의 분산값들에 대응하는 제1 및 제2 기준치들을 포함할 수 있다. 예를 들면, 도 8a에 도시된 바와 같이, 룩업 테이블(322_1)은, 'V2', [수학식 11]의 함수 'g'를 사용하여 'V2'에 따라 미리 계산된 'R12' 및 [수학식 12]의 함수 'h'를 사용하여 'V2'에 따라 미리 계산된 'R22'를 하나의 그룹으로서 포함할 수 있다. 이에 따라, 수신된 분산(VAR)이 'V2'인 경우, 기준치 생성기(322a)는 제1 및 제2 기준치(REF1, REF2)로서 'R12' 및 'R22'를 각각 출력할 수 있다.
도 8b를 참조하면, 본 개시의 예시적 실시예에 따라 기준치 생성기(322b)는 기준치 계산기(322_2)를 포함할 수 있다. 즉, 기준치 계산기(322_2)는 [수학식 11] 및 [수학식 12]의 함수들(g, h)을 사용하여 분산(VAR)에 따라 직접 계산함으로써 제1 및 제2 기준치(REF1, REF2)를 생성할 수 있다. 예를 들면, 기준치 계산기(322_2)가 논리 합성을 통해서 설계된 하드웨어 모듈인 경우, 기준치 계산기(322_2)는 적어도 하나의 승산기(multiplier) 및 가산기(adder) 등을 포함할 수 있고, 연산 결과들을 저장하는 레지스터를 포함할 수 있다.
도 9a 및 도 9b는 본 개시의 예시적 실시예에 따라 도 6의 기준치 생성기(322)의 예시들의 블록도들이다. 도 6을 참조하여 전술된 바와 같이, 도 9a 및 도 9b의 기준치 생성기(322c, 322d)는 분산(VAR)을 수신할 수 있고, 제1 및 제2 기준치(REF1, REF2)를 출력할 수 있다. 도 8a 및 도 8b의 기준치 생성기(322a, 322b)와 비교할 때, 도 9a 및 도 9b의 기준치 생성기(322c, 322d)는 설정 신호(CFG)를 더 수신할 수 있고, 설정 신호(CFG)에 응답하여 분산(VAR)으로부터 적어도 하나의 기준치(REF)를 생성하는 방식을 변경할 수 있다.
도 9a를 참조하면, 기준치 생성기(322c)는 룩업 테이블(322_3)을 포함할 수 있다. 도 8a의 룩업 테이블(322_1)과 유사하게, 룩업 테이블(322_3)은 복수의 분산값들 및 복수의 분산값들에 대응하는 제1 및 제2 기준치들을 포함할 수 있다. 룩업 테이블(322_3)은 기준치 생성기(322c)의 외부로부터 설정 신호(CFG)를 수신할 수 있고, 설정 신호(CFG)에 응답하여 룩업 테이블(322_3)에 포함된 값을 갱신할 수 있다. 예를 들면, 룩업 테이블(322_3)은 설정 신호(CFG)에 응답하여 룩업 테이블(322_3)에 포함된, 적어도 하나의 분산값, 적어도 하나의 제1 기준치 또는 적어도 하나의 제2 기준치를 갱신할 수 있다. 이에 따라, 비디오 화질 평가 기준이 변경되는 경우, 예컨대 화질 지수(QI)의 제1 및 제2 가중치(W1, W2)가 변경되는 경우, 설정 신호(CFG)에 의해서 제1 및 제2 기준치(REF1, REF2)는 개정될 수 있다.
도 9b를 참조하면, 기준치 생성기(322d)는 기준치 계산기(322_4) 및 계수 저장소(322_5)를 포함할 수 있다. 기준치 계산기(322_4)는 도 8b의 기준치 계산기(322_2)와 유사하게, 분산(VAR)에 따라 제1 및 제2 기준치(REF1, REF2)를 계산할 수 있다. 계수 저장소(322_5)는 기준치 계산기(322_4)가 분산(VAR)으로부터 제1 및 제2 기준치(REF1, REF2)를 계산하는데 사용되는 적어도 하나의 계수를 저장할 수 있다. 예를 들면, 계수 저장소(322_5)는 전술된 수학식들에서 사용된 임의의 상수를 저장할 수 있다. 계수 저장소(322_5)는 플래시 메모리, EEPROM, PRAM, RRAM, MRAM, FRAM 등과 같이 비휘발성 메모리일 수도 있고, 계수가 비휘발성 메모리로부터 로딩되는 DRAM, SRAM, 모바일 DRAM과 같은 휘발성 메모리나 레지스터일 수도 있다.
계수 저장소(322_5)는 기준치 생성기(322d) 외부로부터 설정 신호(CFG)를 수신할 수 있고, 설정 신호(CFG)에 응답하여 계수 저장소(322_5)에 저장된 적어도 하나의 계수를 갱신할 수 있다. 예를 들면, 계수 저장소(322_5)는 미리 정해진 공간(예컨대, 어드레스 영역)에 제1 계수를 저장할 수 있고, 설정 신호(CFG)에 응답하여 제1 계수를 새로운 제2 계수로 변경할 수 있다. 이에 따라, 기준치 계산기(322_4)는 제2 계수에 기초하여 분산(VAR)으로부터 제1 및 제2 기준치(REF1, REF2)를 계산할 수 있다.
도 10은 본 개시의 예시적 실시예에 따라 비디오 인코딩 방법을 나타내는 순서도이다. 예를 들면, 도 10의 비디오 인코딩 방법은 도 3의 양자화 모듈(300')에 의해서 수행될 수 있다. 도 10에 도시된 바와 같이, 비디오 인코딩 방법은 복수의 단계들(S120, S140, S160)을 포함할 수 있고, 이하에서 도 10은 도 3을 참조하여 설명될 것이다.
단계 S120에서, 입력 데이터(D_IN)로부터 적어도 하나의 기준치(REF)를 생성하는 동작이 수행될 수 있다. 적어도 하나의 기준치(REF)는, PSNR 및 SSIM의 가중합으로 정의되는 화질 지수(QI)에서의 제1 및 제2 가중치(W1, W2)와 입력 데이터(D_IN)가 생성된 원본 데이터(D_ORG)의 분산(VAR)에 기초하여 결정될 수 있다. 적어도 하나의 기준치(REF)는 양자화 파라미터(QP)의 변화에 따라 화질 지수(QI)가 PSNR에 더 민감한 구간 및 SSIM에 더 민감한 구간을 정의할 수 있다. 예를 들면, 적어도 하나의 기준치(REF)는 제1 및 제2 기준치(REF1, REF2)를 포함할 수 있고, 제1 및 제2 기준치(REF1, REF2) 사이에서 화질 지수(QI)는 양자화 파라미터(QP)의 변화에 따라 SSIM에 더 민감할 수 있다.
단계 S140에서, 비교 결과에 따라, PSNR을 상승시키거나 SSIM을 상승시키는 양자화 파라미터를 생성하는 동작이 수행될 수 있다. 예를 들면, 초기 양자화 파라미터(QP0)가 제1 및 제2 기준치(REF1, REF2) 사이에 있는 경우, SSIM을 상승시키는 양자화 파라미터(QP)가 생성될 수 있다. 다른 한편으로, 초기 양자화 파라미터(QP0)가 제1 및 제2 기준치(REF1, REF2) 사이에 있지 아니한 경우, PSNR을 상승시키는 양자화 파라미터(QP)가 생성될 수 있다. 일 실시예에서, PSNR을 상승시키는 제1 양자화 파라미터(QP1) 및 SSIM을 상승시키는 제2 양자화 파라미터(QP2)가 모두 계산될 수 있고, 초기 양자화 파라미터(QP0) 및 적어도 하나의 기준치(REF) 사이 비교 결과에 따라 제1 및 제2 양자화 파라미터(QP1, QP2) 중 하나가 선택될 수도 있다.
단계 S160에서, 양자화 파라미터(QP)에 따라 입력 데이터(D_IN)를 양자화함으로써 출력 데이터(D_OUT)를 생성하는 동작이 수행될 수 있다. 예를 들면, 양자화 파라미터(QP)에 따라 양자화 행렬이 결정될 수 있고, 결정된 양자화 행렬을 사용하여 입력 데이터(D_IN)를 양자화할 수 있다.
도 11은 본 개시의 예시적 실시예에 따라 도 10의 적어도 하나의 기준치를 계산하는 방법(S110)을 나타내는 순서도이다. 구체적으로, 도 11은 제1 및 제2 기준치(REF1, REF2)를 생성하는 방법을 나타내고, 도 11의 단계 S110은 도 10의 단계 S120 이전에 수행될 수 있다. 일 실시예에서, 도 11의 적어도 하나의 기준치를 계산하는 방법(S110)은 도 8a 및 도 8b의 기준치 생성기(322a, 322b)에 의해서 수행될 수 있다. 이하에서 도 11은 도 8b를 참조하여 설명될 것이다.
단계 S112에서, 원본 데이터(D_ORG)의 분산(VAR)을 수신하는 동작이 수행될 수 있다. 예를 들면, 기준치 생성기(322b)는 원본 데이터(D_ORG)에 포함된 픽셀들의 분산을 수신할 수 있다. [수학식 6]을 참조하면, SSIM은 원본 데이터(D_ORG)의 분산 'σ2'에 의존하므로, 기준치 생성기(322b)는 원본 데이터(D_ORG)의 분산(VAR)을 수신할 수 있다.
단계 S114에서, 분산(VAR)에 기초하여 제1 및 제2 기준치(REF1, REF2)를 생성하는 동작이 수행될 수 있다. 예를 들면, 기준치 생성기(322b)는, 원본 데이터(D_ORG)의 함수로서 화질 지수(QI)에서의 제1 및 제2 가중치(W1, W2)에 기초하여 정의된 기준치 함수들(예컨대, 수학식 11 및 12의 g, h)을 사용하여 제1 및 제2 기준치(REF1, REF2)를 생성할 수 있다. 구체적으로, 기준치 함수들은 PSNR을 양자화 파라미터(QP)로 미분한 제1 미분 함수 및 SSIM을 양자화 파라미터(QP)로 미분한 제2 미분 함수의 비율과 제2 가중치 및 제1 가중치의 비율이 일치할 때의 양자화 파라미터(QP)의 값으로부터 제1 및 제2 기준치(REF1, REF2)가 도출될 수 있다.
도 12는 본 개시의 예시적 실시예에 따라 비디오 화질 평가기(1000)를 나타내는 블록도이다. 비디오 화질 평가기(1000)는 데이터를 처리하는 컴퓨팅 시스템일 수 있다. 예를 들면, 비디오 화질 평가기(1000)는 데스크톱 PC, 랩탑 PC, 태블릿 PC와 같은 퍼스널 컴퓨팅 시스템일 수도 있고, 서버, 워크스테이션 등과 같은 컴퓨팅 시스템일 수도 있다. 도 12에 도시된 바와 같이, 비디오 화질 평가기(1000)는 비디오 디코더(2000)가 인코딩된 데이터(D_ENC)를 디코딩함으로써 생성한 디코딩된 데이터(D_DEC)를 수신할 수 있고, 비디오 화질 지수(VQ)를 출력할 수 있다. 비디오 화질 평가기(1000)는 PSNR 계산기(1100), SSIM 계산기(1200), 기준 데이터 제공기(1300), 화질 지수 계산기(1400) 및 비디오 화질 지수(VQ) 계산기를 포함할 수 있다.
본 개시의 예시적 실시예에 따라, 비디오 화질 평가기(1000)는 객관적 평가 수치 및 주관적 평가 수치의 가중합에 기초하여 비디오 화질을 평가할 수 있다. 예를 들면, 도 12에 도시된 바와 같이, 비디오 화질 평가기(1000)는 객관적 평가 수치의 예시로서 PSNR을 계산하는 PSNR 계산기(1100) 및 주관적 평가 수치의 예시로서 SSIM을 계산하는 SSIM 계산기(1200)를 포함할 수 있고, PSNR 및 SSIM의 가중합에 기초하여 비디오 화질을 평가할 수 있다.
기준 데이터 제공기(1300)는 기준 데이터(D_REF)를 PSNR 계산기(1100) 및 SSIM 계산기(1200)에 제공할 수 있다. 기준 데이터(D_REF)는 비디오 인코더에 의해서 인코딩된 데이터(D_ENC)가 생성된 원본 데이터와 일치할 수 있다.
PSNR 계산기(1100)는 디코딩된 데이터(D_DEC) 및 기준 데이터(D_REF)에 기초하여 PSNR(peak signal-to-noise ratio)을 계산할 수 있다. 예를 들면, PSNR 계산기(1100)는 디코딩된 데이터(D_DEC) 및 기준 데이터(D_REF)에 기초하여 MSE(mean square error)를 계산할 수 있고, MSE에 기초하여 PSNR을 계산할 수 있다. 유사하게, SSIM 계산기(1100)는 디코딩된 데이터(D_DEC) 및 기준 데이터(D_REF)에 기초하여 SSIM(structural similarity)을 계산할 수 있다.
화질 지수 계산기(1400)는 PSNR 및 SSIM의 가중합으로서 화질 지수(QI)를 계산할 수 있다. 예를 들면, 화질 지수 계산기(1400)는 [수학식 1]과 같이, 제1 및 제2 가중치(W1, W2)를 사용하여 PSNR 및 SSIM의 가중합을 계산할 수 있다. 도 2를 참조하여 전술된 바와 같이, 제1 및 제2 가중치(W1, W2)는 MOS(mean opinion score) 및 PSNR 사이 관계 및 MOS 및 SSIM 사이 관계에 기초하여 MOS 및 화질 지수가 선형 관계에 있도록 결정될 수 있다. 일 실시예에서, 화질 지수 계산기(1400)는 PSNR을 상한으로 제한할 수 있고, 상한으로 제한된 PSNR 및 SSIM의 가중합으로서 화질 지수(QI)를 계산할 수 있다. 또한, 제2 가중치(W2)는 PSNR 및 SSIM의 범위를 일치시키기 위한 스케일 인자 및 제1 가중치(W1)과의 합이 일정하도록 설정된 SSIM 인자(WS)의 곱일 수 있다.
비디오 화질 지수 계산기(1500)는 화질 지수(QI)를 수신할 수 있고, 복수의 화질 지수(QI)들에 기초하여 비디오 화질 지수(VQ)를 계산할 수 있다. 화질 지수(QI)는 하나의 프레임 또는 프레임에 포함된 하나의 블록에 대응할 수 있다. 이에 따라, 비디오 화질 지수 계산기(1500)는 복수의 화질 지수(QI)들을 수신할 수 있고, 복수의 화질 지수(QI)들에 기초하여, 예컨대 복수의 화질 지수(QI)들을 평균하거나 필터링함으로써 프레임 시퀀스의 비디오 화질 지수(VQ)를 계산할 수 있다.
도 13은 본 개시의 예시적 실시예에 따라 비디오 화질을 평가하는 방법을 나타내는 순서도이다. 일 실시예에서 도 13의 비디오 화질을 평가하는 방법은 도 12의 비디오 화질 평가기(1000)에 의해서 수행될 수 있다. 도 13에 도시된 바와 같이, 비디오 화질을 평가하는 방법은, 복수의 단계들(S220, S240, S260, S280)을 포함할 수 있다.
단계 S220에서, 프레임 데이터의 시퀀스를 수신하는 동작이 수행될 수 있다. 프레임의 시퀀스는 비트스트림을 디코딩함으로써 생성된 데이터일 수 있다. 그 다음에, 단계 S240에서, 프레임 데이터 및 기준 데이터에 기초하여 PSNR 및 SSIM을 계산하는 동작이 수행될 수 있다. PSNR 및 SSIM은 하나의 프레임에 대응할 수도 있고, 프레임에 포함된 복수의 블록들 중 하나에 대응할 수도 있다.
단계 S260에서, PSNR 및 SSIM의 가중합으로서 화질 지수(QI)를 계산하는 동작이 수행될 수 있다. 가중합에서 PSNR의 제1 가중치(W1) 및 SSIM의 제2 가중치(W2)는, MOS와 PSNR 사이 관계 및 MOS와 SSIM 사이 관계에 기초하여, MOS와 화질 지수(QI)가 실질적으로 선형 관계에 있도록 결정될 수 있다. 일 실시예에서, 제2 가중치(W2)는 PSNR 및 SSIM의 범위를 일치시키기 위한 스케일 인자 및 제1 가중치(W1)과의 합이 일정하도록 설정된 SSIM 인자(WS)의 곱일 수 있다.
단계 S280에서, 복수의 화질 지수(QI)들에 기초하여 비디오 품질 지수(VQ)를 계산하는 동작이 수행될 수 있다. 화질 지수(QI)는 하나의 프레임 또는 프레임에 포함된 하나의 블록에 대응할 수 있고, 이에 따라 복수의 화질 지수(QI)들에 기초하여 프레임 데이터의 시퀀스에 대응하는 비디오 품질 지수(VQ)가 계산될 수 있다.
도 14는 본 개시의 예시적 실시예에 따라 도 13의 단계 S260의 예시를 나타내는 순서도이다. 도 13을 참조하여 전술된 바와 같이, 도 14의 단계 S260'에서, PSNR 및 SSIM의 가중합으로서 화질 지수(QI)를 계산하는 동작이 수행될 수 있다.
단계 S262에서, PSNR 및 PSNR의 상한인 'MaxVal'을 비교하는 동작이 수행될 수 있다. PSNR이 'MaxVal'보다 큰 경우, 단계 S264에서 PSNR은 'MaxVal'로 설정될 수 있다. PSNR은 정의상 무한대의 값을 가질 수 있고(PSNR = 10log(s2 / MSE)), 일정 수준이상에서 PSNR의 편차는 무시할 수 있다. 따라서, PSNR은 'MaxVal'로 제한될 수 있고, 일 실시예에서 'MaxVal'은 50일 수 있다. 그 다음에, 단계 S266에서 PSNR 및 SSIM의 가중합으로서 화질 지수(QI)를 계산하는 동작이 수행될 수 있다.
도 15는 본 개시의 예시적 실시예에 따른 시스템-온-칩(system on chip; SoC)(2000)을 나타내는 블록도이다. SoC(2000)는 반도체 장치로서, 본 개시의 예시적 실시예에 따른 비디오 인코더를 포함하거나 비디오 인코딩 방법을 수행할 수 있다. 또한, SoC(2000)는 본 개시의 예시적 실시예에 따른 비디오 화질 평가 방법을 수행할 수도 있다. SoC(2000)는 다양한 기능을 수행하는 복잡한 기능 블록 (예컨대, IP(intellectual property))들을 하나의 칩에 구현한 것으로서, 본 개시의 예시적 실시예에 따른 비디오 인코딩 방법을 수행함으로써 향상된 화질을 제공하는 인코딩된 데이터, 즉 비트스트림이 생성될 수 있다.
도 15을 참조하면, SoC(2000)는 모뎀(2200), 디스플레이 컨트롤러(2300), 메모리(2400), 외부 메모리 컨트롤러(2500), CPU(central processing unit)(2600), 트랜잭션 유닛(2700), PMIC(2800) 및 GPU(graphic processing unit)(2900)을 포함할 수 있고, SoC(2000)의 각 기능 블록들은 시스템 버스(2100)를 통해서 서로 통신할 수 있다.
SoC(2000)의 동작을 전반적으로 제어할 수 있는 CPU(2600)는 다른 기능 블록들(2200, 2300, 2400, 2500, 2700, 2800, 2900)의 동작을 제어할 수 있다. 일 실시예에서, CPU(2600)는 메모리(2400)에 저장된 명령어들을 실행함으로써 본 개시의 예시적 실시예에 따른 비디오 인코딩 방법을 수행할 수 있다. 예를 들면, CPU(2600)는 외부 메모리 컨트롤러(2500)로부터 수신되는 원본 데이터를 인코딩함으로써 비트스트림을 생성할 수 있고, 생성된 비트스트림을 모뎀(2200)에 전달할 수 있다. 다른 실시예에서, CPU(2600)는 메모리(2400)에 저장된 명령어들을 실행함으로서 본 개시의 예시적 실시예에 따른 비디오 화질 평가 방법을 수행할 수 있다. 예를 들면, CPU(2600)는 외부 메모리 컨트롤러(2500)로부터 수신되거나 모뎀(2200)으로부터 수신되는 비트스트림을 디코딩할 수 있고, 디코딩된 데이터에 기초하여 비디오 화질을 평가할 수 있다.
모뎀(2200)은 SoC(2000) 외부로부터 수신되는 신호를 복조(demodulation)하거나, SoC(2000) 내부에서 생성된 신호를 변조(modulation)하여 외부로 송신할 수 있다. 외부 메모리 컨트롤러(2500)는 SoC(2000)에 연결된 외부 메모리 장치로부터 데이터를 송수신하는 동작을 제어할 수 있다. 예를 들면, 외부 메모리 장치에 저장된 프로그램 및/또는 데이터는 외부 메모리 컨트롤러(2500)의 제어 하에서 CPU(2600) 또는 GPU(2900)에 제공될 수 있다.
GPU(2900)는 그래픽 처리와 관련된 프로그램 명령(instruction)들을 실행할 수 있다. GPU(2900)는 외부 메모리 컨트롤러(2500)를 통해서 그래픽 데이터를 수신할 수도 있고, GPU(2900)에 의해서 처리된 그래픽 데이터를 외부 메모리 컨트롤러(2500)를 통해서 SoC(2000) 외부로 전송할 수도 있다. 일 실시예에서, GPU(2900)는 본 개시의 예시적 실시예에 따른 비디오 인코딩 방법을 수행할 수 있다. 예를 들면, GPU(2900)는 외부 메모리 컨트롤러(2500)로부터 수신되는 원본 데이터를 인코딩함으로써 비트 스트림을 생성할 수 있고, 비트스트림을 모뎀(2200)에 전달할 수 있다.
트랜잭션 유닛(2700)은 각 기능 블록들의 데이터 트랜잭션을 모니터링할 수 있고, PMIC(2800)는 트랜잭션 유닛(2700)의 제어에 따라 각 기능 블록으로 공급되는 전력을 제어할 수 있다. 디스플레이 컨트롤러(2300)는 SoC(2000) 외부의 디스플레이(또는 디스플레이 장치)를 제어함으로써 SoC(2000) 내부에서 생성된 데이터를 디스플레이에 전송할 수 있다.
메모리(2400)는, 비휘발성 메모리로서 EEPROM (non-volatile memory such as a Electrically Erasable Programmable Read-Only Memory), 플래시 메모리(flash memory), PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM (Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM (Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 등을 포함할 수도 있고, 휘발성 메모리로서 DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), 모바일 DRAM, DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR (Low Power DDR) SDRAM, GDDR (Graphic DDR) SDRAM, RDRAM(Rambus Dynamic Random Access Memory) 등을 포함할 수도 있다. 메모리(2400)는 전술된 원본 데이터 또는 비트스트림을 저장할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 양자화기를 포함하는 비디오 인코딩을 위한 장치로서,
    상기 양자화기는, 입력 데이터의 초기 양자화 파라미터의 크기에 기초하여,
    상기 입력 데이터의 상기 초기 양자화 파라미터의 크기가 적어도 하나의 범위 밖에 있는 경우, 출력 데이터로부터 생성된 인코딩된 데이터에 대한 객관적(objective) 평가 수치를 상승시키도록 상기 입력 데이터를 양자화함으로써 상기 출력 데이터를 생성하고,
    상기 입력 데이터의 상기 초기 양자화 파라미터의 크기가 상기 적어도 하나의 범위 내에 있는 경우, 상기 인코딩된 데이터에 대한 주관적(subjective) 평가 수치를 상승시키도록 상기 입력 데이터를 양자화함으로써 상기 출력 데이터를 생성하는 것을 특징으로 하는 장치.
  2. 청구항 1에 있어서,
    상기 양자화기는,
    상기 초기 양자화 파라미터를, 상기 적어도 하나의 범위를 정의하는 적어도 하나의 기준치와 비교하고,
    상기 객관적 평가 수치를 상승시키는 제1 양자화 파라미터를 생성하고,
    상기 주관적 평가 수치를 상승시키는 제2 양자화 파라미터를 생성하고,
    상기 비교 결과에 따라 상기 제1 양자화 파라미터 및 상기 제2 양자화 파라미터 중 하나를 최종 양자화 파라미터로서 선택하는 양자화 파라미터 생성기; 및
    상기 최종 양자화 파라미터에 따라 상기 입력 데이터를 양자화함으로써 상기 출력 데이터를 생성하는 양자화 처리기를 포함하는 것을 특징으로 하는 장치.
  3. 청구항 2에 있어서,
    상기 양자화 파라미터 생성기는, 상기 입력 데이터가 생성된 원본 데이터의 분산의 함수로서, 상기 객관적 평가 수치 및 주관적 평가 수치의 가중합으로 정의되는 화질 지수에서 상기 객관적 평가 수치 및 주관적 평가 수치의 제1 및 제2 가중치에 기초하여 정의된 기준치 함수를 사용하여 상기 적어도 하나의 기준치를 생성하는 것을 특징으로 하는 장치.
  4. 청구항 3에 있어서,
    상기 기준치 함수는, 상기 객관적 평가 수치를 나타내는 제1 함수를 양자화 파라미터로 미분한 제1 미분 함수 및 상기 주관적 평가 수치를 나타내는 제2 함수를 양자화 파라미터로 미분한 제2 미분 함수의 비율과 상기 제2 가중치 및 제1 가중치의 비율이 일치할 때의 양자화 파라미터로부터 도출되고,
    상기 양자화 파라미터 생성기는, 상기 기준치 함수를 사용하여 상기 분산에 따라 제1 및 제2 기준치를 생성하는 것을 특징으로 하는 장치.
  5. 청구항 4에 있어서,
    상기 양자화 파라미터 생성기는,
    상기 초기 양자화 파라미터가 상기 제1 및 제2 기준치 사이에 있는 경우, 상기 제2 양자화 파라미터를 상기 최종 양자화 파라미터로서 선택하고,
    상기 초기 양자화 파라미터가 상기 제1 및 제2 기준치 사이에 있지 아니한 경우, 상기 제1 양자화 파라미터를 상기 최종 양자화 파라미터로서 선택하는 것을 특징으로 하는 장치.
  6. 청구항 3에 있어서,
    상기 양자화 파라미터 생성기는, 복수의 분산값들 및 상기 복수의 분산값들에 따른 기준치 함수값들을 포함하는 룩업(lookup) 테이블을 포함하는 것을 특징으로 하는 장치.
  7. 청구항 2에 있어서,
    상기 입력 데이터는, 잔차(residual) 데이터를 변환함으로써 생성된 데이터이고,
    상기 잔차 데이터는, 원본 데이터로부터 예측 데이터를 감산함으로써 생성된 데이터이고,
    상기 원본 데이터는 이미지 프레임에 포함된 복수의 블록들 중 하나의 블록을 포함하고,
    상기 양자화 파라미터 생성기는, 상기 하나의 블록에 기초하여 상기 제1 양자화 파라미터 및 상기 제2 양자화 파라미터 중 하나를 상기 최종 양자화 파라미터로서 선택하는 것을 특징으로 하는 장치.
  8. 청구항 1에 있어서,
    상기 객관적 평가 수치는 PSNR(peak signal-to-noise ratio)이고,
    상기 주관적 평가 수치는 SSIM(structural similarity index) 또는 MS-SSIM(multi-scale SSIM)인 것을 특징으로 하는 장치.
  9. 비디오 인코딩을 위한 장치로서,
    최종 양자화 파라미터를 생성하는 양자화 파라미터 생성기; 및
    상기 최종 양자화 파라미터에 따라 입력 데이터를 양자화함으로써 출력 데이터를 생성하는 양자화 처리기를 포함하고,
    상기 양자화 파라미터 생성기는,
    상기 입력 데이터의 초기 양자화 파라미터를 적어도 하나의 기준치과 비교하고,
    상기 초기 양자화 파라미터가 적어도 하나의 범위 내에 있는 것을 상기 비교 결과가 나타내는 경우, 상기 출력 데이터로부터 생성된 인코딩된 데이터에 대한 SSIM(structural similarity index)를 상승시키는 양자화 파라미터를 상기 최종 양자화 파라미터로서 생성하고,
    상기 초기 양자화 파라미터가 상기 적어도 하나의 범위 밖에 있는 것을 상기 비교 결과가 나타내는 경우, 상기 출력 데이터로부터 생성된 인코딩된 데이터에 대한 PSNR(peak signal-to-noise ratio)를 상승시키는 양자화 파라미터 를 상기 최종 양자화 파라미터로 생성하는 것을 특징으로 하는 장치.
  10. 청구항 9에 있어서,
    상기 양자화 파라미터 생성기는, 상기 입력 데이터가 생성된 원본 데이터의 분산의 함수로서, 상기 PSNR 및 SSIM의 가중합으로 정의되는 화질 지수에서 상기 PSNR 및 SSIM의 제1 및 제2 가중치에 기초하여 정의된 기준치 함수를 사용하여 상기 적어도 하나의 기준치를 생성하는 기준치 생성기를 포함하는 것을 특징으로 하는 장치.
  11. 청구항 10에 있어서,
    상기 기준치 함수는, 상기 PSNR을 나타내는 제1 함수를 양자화 파라미터로 미분한 제1 미분 함수 및 상기 SSIM을 나타내는 함수를 양자화 파라미터로 미분한 제2 미분 함수의 비율과 상기 제2 가중치 및 제1 가중치의 비율이 일치할 때의 양자화 파라미터로부터 도출되고,
    상기 기준치 생성기는, 상기 기준치 함수를 사용하여 상기 분산에 따라 제1 및 제2 기준치를 생성하는 것을 특징으로 하는 장치.
  12. 청구항 10에 있어서,
    양자화 파라미터 생성기는,
    상기 PSNR을 상승시키는 제1 양자화 파라미터를 계산하는 제1 양자화 파라미터 계산기;
    상기 SSIM을 상승시키는 제2 양자화 파라미터를 계산하는 제2 양자화 파라미터 계산기; 및
    상기 초기 양자화 파라미터가 상기 제1 및 제2 기준치 사이에 있는 경우 상기 제2 양자화 파라미터를 상기 최종 양자화 파라미터로서 출력하고, 그렇지 아니한 경우 상기 제1 양자화 파라미터를 상기 최종 양자화 파라미터로서 출력하는 양자화 파라미터 선택기를 더 포함하는 것을 특징으로 하는 장치.
  13. 청구항 10에 있어서,
    상기 제2 가중치는, 상기 SSIM의 범위를 상기 PSNR의 범위와 일치시키기 위한 스케일 인자와 상기 제1 가중치와의 합이 일정하도록 설정된 SSIM 인자의 곱인 것을 특징으로 하는 장치.
  14. 청구항 10에 있어서,
    상기 기준치 생성기는, 복수의 분산들 및 상기 복수의 분산들에 따른 기준치 함수값들을 포함하는 룩업(lookup) 테이블을 포함하는 것을 특징으로 하는 장치.
  15. 청구항 14에 있어서,
    상기 룩업 테이블은, 상기 기준치 생성기의 외부로부터 수신된 설정 신호에 응답하여 갱신되는 것을 특징으로 하는 장치.
  16. 청구항 9에 있어서,
    상기 입력 데이터는, 잔차(residual) 데이터를 변환함으로써 생성된 데이터이고,
    상기 잔차 데이터는, 원본 데이터로부터 예측 데이터를 감산함으로써 생성된 데이터인 것을 특징으로 하는 장치.
  17. 최종 양자화 파라미터를 생성하는 양자화 파라미터 생성기; 및
    상기 최종 양자화 파라미터에 따라 입력 비디오 데이터를 양자화함으로써 출력 비디오 데이터를 생성하는 양자화 처리기를 포함하고,
    상기 양자화 파라미터 생성기는,
    원본 비디오 데이터의 분산에 기초하여, 적어도 하나의 범위를 생성하고,
    초기 양자화 파라미터가 상기 적어도 하나의 범위 밖에 있는 경우, 제1 양자화 파라미터를 상기 최종 양자화 파라미터로서 생성하고,
    상기 초기 양자화 파라미터가 상기 적어도 하나의 범위 내에 있는 경우, 상기 제1 양자화 파라미터와 상이한 제2 양자화 파라미터를 상기 최종 양자화 파라미터로서 생성하고,
    상기 입력 비디오 데이터는, 상기 원본 비디오 데이터의 적어도 일부를 변환된 것을 특징으로 하는 비디오 인코더.
  18. 청구항 17에 있어서,
    상기 양자화 파라미터 생성기는,
    상기 분산에 기초하여, 상기 적어도 하나의 범위를 정의하는 기준치들을 생성하고,
    상기 초기 양자화 파라미터 및 상기 기준치들에 기초하여, 상기 제1 양자화 파라미터 및 상기 제2 양자화 파라미터 중 하나를 상기 최종 양자화 파라미터로서 선택하는 것을 특징으로 하는 비디오 인코더.
  19. 청구항 18에 있어서,
    상기 양자화 처리기는, 상기 출력 비디오 데이터를 비트스트림(bitstream)으로 출력하고,
    상기 제1 양자화 파라미터는, PSNR(peak signal-to-noise ratio)를 상승시키는 양자화 파라미터이고,
    상기 제2 양자화 파라미터는, SSIM(structural similarity index)를 상승시키는 양자화 파라미터인 것을 특징으로 하는 비디오 인코더.
  20. 청구항 18에 있어서,
    상기 양자화 파라미터 생성기는, 복수의 분산들 및 상기 복수의 분산들에 대응하는 상기 기준치들을 포함하는 룩업(lookup) 테이블을 사용하여 상기 기준치들을 생성하는 것을 특징으로 하는 비디오 인코더.
KR1020160176847A 2016-12-22 2016-12-22 양자화 파라미터를 조절하는 비디오 인코딩을 위한 장치 및 방법 KR102636099B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160176847A KR102636099B1 (ko) 2016-12-22 2016-12-22 양자화 파라미터를 조절하는 비디오 인코딩을 위한 장치 및 방법
US15/684,172 US10412392B2 (en) 2016-12-22 2017-08-23 Apparatus and method for encoding video and adjusting a quantization parameter
CN201710931179.6A CN108235011B (zh) 2016-12-22 2017-10-09 视频编码设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160176847A KR102636099B1 (ko) 2016-12-22 2016-12-22 양자화 파라미터를 조절하는 비디오 인코딩을 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180073231A KR20180073231A (ko) 2018-07-02
KR102636099B1 true KR102636099B1 (ko) 2024-02-13

Family

ID=62630443

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160176847A KR102636099B1 (ko) 2016-12-22 2016-12-22 양자화 파라미터를 조절하는 비디오 인코딩을 위한 장치 및 방법

Country Status (3)

Country Link
US (1) US10412392B2 (ko)
KR (1) KR102636099B1 (ko)
CN (1) CN108235011B (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2599566B (en) * 2016-09-08 2022-10-05 V Nova Int Ltd Data processing apparatuses, methods, computer programs and computer-readable media
US10341670B1 (en) * 2017-09-26 2019-07-02 Amazon Technologies, Inc. Video encoder bit rate stabilization
KR102432486B1 (ko) * 2017-11-22 2022-08-12 삼성전자주식회사 비디오 복호화 장치 및 이를 포함하는 컴퓨팅 시스템 및 비디오 복호화 방법
WO2020080623A1 (ko) * 2018-10-19 2020-04-23 삼성전자 주식회사 영상의 ai 부호화 및 ai 복호화 방법, 및 장치
US11368692B2 (en) * 2018-10-31 2022-06-21 Ati Technologies Ulc Content adaptive quantization strength and bitrate modeling
CN110225340B (zh) * 2019-05-31 2021-07-09 北京猿力未来科技有限公司 一种视频编码的控制方法及装置、计算设备和存储介质
US11563945B2 (en) * 2019-09-30 2023-01-24 Advanced Micro Devices, Inc. Adaptive offset for variance based quantization
US20210127125A1 (en) * 2019-10-23 2021-04-29 Facebook Technologies, Llc Reducing size and power consumption for frame buffers using lossy compression
CN112601073B (zh) * 2020-11-30 2023-05-05 北京金山云网络技术有限公司 编码器评价方法、装置、计算机设备和存储介质
CN114051144A (zh) * 2021-11-09 2022-02-15 京东科技信息技术有限公司 视频的压缩方法、装置、计算机设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8045614B2 (en) 2005-05-11 2011-10-25 Dolby Laboratories Licensing Corporation Quantization control for variable bit depth
US8139881B2 (en) 2005-04-04 2012-03-20 Thomson Licensing Method for locally adjusting a quantization step and coding device implementing said method
WO2007058515A1 (en) 2005-11-21 2007-05-24 Electronics And Telecommunications Research Institute Method and apparatus for controlling bitrate of scalable video stream
US8396118B2 (en) 2007-03-19 2013-03-12 Sony Corporation System and method to control compressed video picture quality for a given average bit rate
US20090074315A1 (en) 2007-09-19 2009-03-19 Himax Technologies Limited Method of image compression and device thereof
WO2010057170A1 (en) 2008-11-17 2010-05-20 Cernium Corporation Analytics-modulated coding of surveillance video
CN101605272B (zh) * 2009-07-09 2011-05-11 浙江大学 一种部分参考型图像客观质量评价方法
US8581987B1 (en) 2011-03-21 2013-11-12 Marvell International Ltd. Systems and methods for evaluating video quality
WO2012171113A1 (en) * 2011-06-14 2012-12-20 Zhou Wang Method and system for structural similarity based rate-distortion optimization for perceptual video coding
US20130272390A1 (en) * 2012-04-16 2013-10-17 Qualcomm Incorporated Uniform granularity for quantization matrix in video coding
US9854246B2 (en) * 2014-02-28 2017-12-26 Apple Inc. Video encoding optimization with extended spaces
KR102338980B1 (ko) * 2015-03-23 2021-12-13 삼성전자주식회사 플리커를 제거하기 위해 양자화 계수를 조절할 수 있은 인코더와 이를 포함하는 장치
US10542262B2 (en) * 2016-11-15 2020-01-21 City University Of Hong Kong Systems and methods for rate control in video coding using joint machine learning and game theory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Chuohao Yeo et al., "On Rate Distortion Optimization Using SSIM",IEEE Transactions on Circuits and Systems for Video Technology(2013.01.16.)*

Also Published As

Publication number Publication date
CN108235011A (zh) 2018-06-29
US10412392B2 (en) 2019-09-10
CN108235011B (zh) 2021-05-18
KR20180073231A (ko) 2018-07-02
US20180184092A1 (en) 2018-06-28

Similar Documents

Publication Publication Date Title
KR102636099B1 (ko) 양자화 파라미터를 조절하는 비디오 인코딩을 위한 장치 및 방법
CN111866504B (zh) 一种编码方法、编码器及计算机可读存储介质
US9781449B2 (en) Rate distortion optimization in image and video encoding
US10841583B2 (en) Coding unit depth determining method and apparatus
JP2006140758A (ja) 動画像符号化方法、動画像符号化装置および動画像符号化プログラム
CN103918262A (zh) 基于结构相似度的码率失真优化感知视频编码方法和系统
US10631011B2 (en) Image processing method and apparatus for performing sample adaptive offset processing
CN107846593B (zh) 一种率失真优化方法及装置
US20190141324A1 (en) Encoding data arrays
KR102331043B1 (ko) 인코딩 시스템 및 이의 동작 방법
CN104320657A (zh) Hevc无损视频编码的预测模式选择方法及相应的编码方法
Wang et al. Rate-SSIM optimization for video coding
KR20150095591A (ko) 시각적 인지 특성을 이용한 pvc 방법
JP2023543985A (ja) 多用途ビデオコーディングのためのテンプレートマッチング予測
WO2015115645A1 (ja) 動画像符号化装置及び動画像符号化方法
US20160277767A1 (en) Methods, systems and apparatus for determining prediction adjustment factors
CN113132728B (zh) 编码方法及编码器
WO2022021422A1 (zh) 视频编码方法、编码器、系统以及计算机存储介质
US10616585B2 (en) Encoding data arrays
WO2021136110A1 (zh) 编码方法及编码器
KR101377833B1 (ko) 분석적이고 경험적인 하이브리드 인코딩 왜곡 모델링을 위한 방법 및 장치
KR20150126438A (ko) 시스템 온 칩과 이를 포함하는 데이터 처리 시스템
KR20230074514A (ko) 포인트 클라우드 부호화 방법과 관련 장치
CN112243129B (zh) 视频数据处理方法、装置、计算机设备及存储介质
KR102402671B1 (ko) 보간 필터의 연산 복잡도를 조절할 수 있는 영상 처리 장치, 영상 보간 방법 및 영상 부호화 방법

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
GRNT Written decision to grant