KR20230143377A - 장면 단위 예측 기반의 동영상 인코딩 최적화 방법 및 시스템 - Google Patents

장면 단위 예측 기반의 동영상 인코딩 최적화 방법 및 시스템 Download PDF

Info

Publication number
KR20230143377A
KR20230143377A KR1020220042178A KR20220042178A KR20230143377A KR 20230143377 A KR20230143377 A KR 20230143377A KR 1020220042178 A KR1020220042178 A KR 1020220042178A KR 20220042178 A KR20220042178 A KR 20220042178A KR 20230143377 A KR20230143377 A KR 20230143377A
Authority
KR
South Korea
Prior art keywords
encoding
option
crf
scene
frame image
Prior art date
Application number
KR1020220042178A
Other languages
English (en)
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 KR1020220042178A priority Critical patent/KR20230143377A/ko
Publication of KR20230143377A publication Critical patent/KR20230143377A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/87Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving scene cut or scene change detection in combination with video compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • 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/142Detection of scene cut or scene change
    • 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
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

장면 단위 예측 기반의 동영상 인코딩 최적화 방법 및 시스템을 개시한다. 일실시예에 따른 인코딩 최적화 방법은 입력 영상의 최초 세그먼트에서 추출된 프레임 이미지에 기본 인코딩 옵션을 적용하여 인코딩을 처리하는 단계, 인공지능 모델을 이용하여 이전 세그먼트에서 추출된 프레임 이미지로 현재 인코딩 옵션을 결정하는 단계, 상기 결정된 현재 인코딩 옵션으로 프레임 이미지를 인코딩하는 단계 및 장면 전환에 따라 예측된 인코딩 옵션을 통해 상기 장면 전환의 발생 이후의 프레임 이미지를 인코딩하는 단계를 포함할 수 있다.

Description

장면 단위 예측 기반의 동영상 인코딩 최적화 방법 및 시스템{METHOD AND SYSTEM FOR OPTIMIZING VIDEO ENCODING BASED ON SCENE UNIT PREDICTION}
아래의 설명은 동영상 인코딩 기술에 관한 것이다.
최근 영상과 음향이 통신 및 컴퓨터와 결합되어 새로운 미디어로 융합된 멀티미디어 정보가 제공되고 있다. 예를 들면, 고속의 데이터 전송망이 공급됨에 따라 입체 음향과 고화질의 영상을 시청할 수 있고, 화상 전화를 통해 사용자 간에 얼굴을 마주보며 통화할 수 있다. 또한, 컴퓨터나 TV를 통해 상품 정보를 실시간으로 보면서 상품을 구매할 수 있고, 웹 사이트를 통해 음악 또는 영화를 감상할 수 있다. 또한, 컴퓨터를 통해 동영상 강의를 수강하는 것이 가능하다.
이러한 멀티미디어 정보들은 동영상 압축(즉, 인코딩) 기술을 기반으로 하여 발전되어 왔다. 정보를 전달하는 데이터는 데이터로부터 중복 요소(데이터를 정확히 복원하는 데 꼭 필요하지 않은 요소)를 제거함으로써 압축될 수 있다. 손실 압축의 경우, 디코더에서 복원되는 데이터가 원본 데이터와 동일하지 않지만, 높은 압축 효율을 얻기 위하여 주관적인 중복 요소가 제거된다. 이미지 또는 비디오 압축에 있어서 주관적인 중복 요소는 보는 사람이 직관적으로 느낄 수 있는 화질에 큰 영향을 주지 않고 제거할 수 있는 요소이다.
[선행문헌번호]
한국등록특허 제10-1136858호
인공지능(AI) 기술을 이용하여 영상의 구간 별로 최적의 인코딩 파라미터를 찾아 압축 효율을 향상시킬 수 있는 인코딩 최적화 기술을 제공한다.
세그먼트 단위 분석이 아닌, 새로운 이미지 추출 시점에 이전 세그먼트에서 추출한 이미지들과 현재 시점에서 새로 추출한 이미지 한 장을 추가하여 분석을 수행하는 슬라이딩 윈도우 단위 예측을 통해 세그먼트 단위 분석의 지연을 줄일 수 있는 인코딩 최적화 기술을 제공한다.
인퍼런스들 사이에도 장면이 변환되는 경우에는 CRF와 같은 인코딩 옵션을 예측하여 적용함으로써, 장면 변환에 대응할 수 있는 인코딩 최적화 기술을 제공한다.
유사한 장면들로 이루어진 세그먼트들을 데이터셋으로 이용하여 학습되는 숏(shot) 기반 세그먼트 모델을 이용하여 각 숏의 특성에 맞는 인코딩 옵션을 보다 정확히 예측할 수 있는 인코딩 최적화 기술을 제공한다.
적어도 하나의 프로세서를 포함하는 컴퓨터 장치에서 실행되는 인코딩 최적화 방법에 있어서, 상기 적어도 하나의 프로세서에 의해, 입력 영상의 최초 세그먼트에서 추출된 프레임 이미지에 기본 인코딩 옵션을 적용하여 인코딩을 처리하는 단계; 상기 적어도 하나의 프로세서에 의해, 인공지능 모델을 이용하여 이전 세그먼트에서 추출된 프레임 이미지로 현재 인코딩 옵션을 결정하는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 결정된 현재 인코딩 옵션으로 프레임 이미지를 인코딩하는 단계; 및 상기 적어도 하나의 프로세서에 의해, 장면 전환에 따라 예측된 인코딩 옵션을 통해 상기 장면 전환의 발생 이후의 프레임 이미지를 인코딩하는 단계를 포함하는 인코딩 최적화 방법을 제공한다.
일측에 따르면, 상기 장면 전환의 발생 이후의 프레임 이미지를 인코딩하는 단계는, 매 프레임 이미지에 대해 장면 전환 탐지를 수행하는 단계; 상기 장면 전환의 발생시 적용할 인코딩 옵션을 예측하는 단계; 및 상기 예측된 인코딩 옵션으로 상기 장면 전환의 발생 이후의 프레임 이미지를 인코딩하는 단계를 포함하는 것을 특징으로 할 수 있다.
다른 측면에 따르면, 상기 장면 전환 탐지를 수행하는 단계는, 상기 결정된 현재 인코딩 옵션으로 프레임 이미지를 인코딩하는 과정에서 프레임 이미지들의 평균 화질을 기록하는 단계; 상기 기록된 평균 화질에 따른 현재 장면의 이전 장면 대비 복잡도를 계산하는 단계; 및 상기 계산된 복잡도에 기반하여 장면 전환의 발생시에 적용할 인코딩 옵션을 예측하는 단계를 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 평균 화질을 기록하는 단계는, 프레임 이미지들의 PSNR(Peak Signal-to-Noise Ratio) 및 SSIM(Structural Similarity) 중 적어도 하나를 기록하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 장면 전환의 발생시에 적용할 인코딩 옵션을 예측하는 단계는, 상기 예측된 인코딩 옵션에 따라 인코딩될 프레임 이미지의 화질이 이전 세그먼트의 화질에 수렴하도록 상기 장면 전환의 발생시에 적용할 인코딩 옵션을 예측하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 장면 전환의 발생 이후의 프레임 이미지를 인코딩하는 단계는, 장면 전환이 포함되지 않은 숏 단위 세그먼트 데이터셋을 이용하여 학습된 숏 단위 세그먼트 모델을 이용하여 장면 전환에 따라 예측된 인코딩 옵션을 예측하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 현재 인코딩 옵션을 결정하는 단계는, 상기 인공지능 모델을 이용하여 n(상기 n은 자연수)번째 인퍼런스 시점에 추출된 새로운 프레임 이미지와 이전에 추출된 m(상기 m은 자연수)개의 프레임 이미지들을 포함하는 슬라이딩 윈도우 단위로 현재 인코딩 옵션을 결정하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 인공지능 모델은 각 프레임 이미지에 대한 프레임 피처를 추출하기 위한 CNN(convolution neural network) 모델, 상기 프레임 이미지 간의 관계를 바탕으로 비디오 피처를 추출하기 위한 RNN(recurrent neural network) 모델, 및 상기 비디오 피처에 해당되는 인코딩 옵션을 분류하는 분류기(classifier)를 포함하는 인코딩 옵션 예측 모델로서 상기 CNN 모델과 상기 RNN 모델 및 상기 분류기가 하나의 손실 함수에 대해 E2E(end-to-end) 방식으로 학습되는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 현재 인코딩 옵션을 결정하는 단계는, 상기 현재 인코딩 옵션으로서 목표 VMAF(Video Multi-method Assessment Fusion) 점수를 만족하는 CRF(Constant Rate Factor)를 예측하는 단계를 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 현재 인코딩 옵션을 결정하는 단계는, 상기 현재 인코딩 옵션으로서 목표 VMAF 점수를 만족하는 제1 CRF를 예측하는 단계; 상기 현재 인코딩 옵션으로서 목표 비트레이트를 만족하는 제2 CRF를 예측하는 단계; 및 상기 제1 CRF와 상기 제2 CRF를 이용하여 상기 입력 영상에 대한 인코딩에 실제 적용할 제3 CRF를 결정하는 단계를 포함하는 것을 특징으로 할 수 있다.
컴퓨터 장치와 결합되어 상기 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제공한다.
상기 방법을 컴퓨터 장치에 실행시키기 위한 프로그램이 기록되어 있는 컴퓨터 판독 가능한 기록매체를 제공한다.
컴퓨터 장치에 있어서, 상기 컴퓨터 장치에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해, 입력 영상의 최초 세그먼트에서 추출된 프레임 이미지에 기본 인코딩 옵션을 적용하여 인코딩을 처리하고, 인공지능 모델을 이용하여 이전 세그먼트에서 추출된 프레임 이미지로 현재 인코딩 옵션을 결정하고, 상기 결정된 현재 인코딩 옵션으로 프레임 이미지를 인코딩하고, 장면 전환에 따라 예측된 인코딩 옵션을 통해 상기 장면 전환의 발생 이후의 프레임 이미지를 인코딩하는 것을 특징으로 하는 컴퓨터 장치를 제공한다.
인공지능(AI) 기술을 이용하여 영상의 구간 별로 최적의 인코딩 파라미터를 찾아 압축 효율을 향상시킬 수 있다.
세그먼트 단위 분석이 아닌, 새로운 이미지 추출 시점에 이전 세그먼트에서 추출한 이미지들과 현재 시점에서 새로 추출한 이미지 한 장을 추가하여 분석을 수행하는 슬라이딩 윈도우 단위 예측을 통해 세그먼트 단위 분석의 지연을 줄일 수 있다.
인퍼런스들 사이에도 장면이 변환되는 경우에는 CRF와 같은 인코딩 옵션을 예측하여 적용함으로써, 장면 변환에 대응할 수 있다.
유사한 장면들로 이루어진 세그먼트들을 데이터셋으로 이용하여 학습되는 숏(shot) 기반 세그먼트 모델을 이용하여 각 숏의 특성에 맞는 인코딩 옵션을 보다 정확히 예측할 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다.
도 3은 본 발명의 일실시예에 있어서 분산 인코딩 시스템의 구성요소의 예를 도시한 도면이다.
도 4는 본 발명의 일실시예에 있어서 인코딩 최적화를 위한 인코딩 옵션 예측 모델의 기본 컨셉을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 있어서 동영상 인코딩 최적화 방법을 나타낸 것이다.
도 6과 도 7은 본 발명의 일실시예에 있어서 해상도 별 화질 측정 지표를 설명하기 위한 예시 도면이다.
도 8은 본 발명의 일실시예에 있어서 모델 학습을 위한 라벨 데이터를 생성하는 과정을 설명하기 위한 예시 도면이다.
도 9는 본 발명의 일실시예에 있어서 서비스 제약 사항을 고려한 추가 인코딩 옵션을 예측하는 과정을 설명하기 위한 예시 도면이다.
도 10 및 도 11은 본 발명의 일실시예에 따른 슬라이딩 윈도우 단위 예측의 예를 도시한 도면들이다.
도 12 및 도 13은 본 발명의 일실시예에 있어서, 그래프의 예를 도시한 도면이다.
도 14는 본 발명의 일실시예에 있어서, 추가 인퍼런스를 처리하는 예를 도시한 도면이다.
도 15는 본 발명의 일실시예에 있어서, 서빙단에서 클라이언트로 최적 옵션을 전달하는 과정의 예를 도시한 흐름도이다.
도 16은 본 발명의 일실시예에 따른 인코딩 최적화 방법의 예를 도시한 흐름도이다.
도 17은 본 발명의 일실시예에 따른 인코딩 최적화 방법의 다른 예를 도시한 흐름도이다.
도 18은 본 발명의 일실시예에 있어서, 인코딩 옵션을 결정하는 예를 도시한 도면이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
본 발명의 실시예들에 따른 동영상 인코딩 최적화 시스템은 적어도 하나의 컴퓨터 장치에 의해 구현될 수 있다. 이때, 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 실시예들에 따른 동영상 인코딩 최적화 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 동영상 인코딩 최적화 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다.
복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 시스템으로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 내비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC, 게임 콘솔(game console), 웨어러블 디바이스(wearable device), IoT(internet of things) 디바이스, VR(virtual reality) 디바이스, AR(augmented reality) 디바이스 등이 있다. 일례로 도 1에서는 전자 기기(110)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서 전자 기기(110)는 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140) 및/또는 서버(150, 160)와 통신할 수 있는 다양한 물리적인 컴퓨터 시스템들 중 하나를 의미할 수 있다.
통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망, 위성망 등)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.
서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 콘텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 예를 들어, 서버(150)는 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 제1 서비스를 제공하는 시스템일 수 있으며, 서버(160) 역시 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 제2 서비스를 제공하는 시스템일 수 있다. 보다 구체적인 예로, 서버(150)는 복수의 전자 기기들(110, 120, 130, 140)에 설치되어 구동되는 컴퓨터 프로그램으로서의 어플리케이션을 통해, 해당 어플리케이션이 목적하는 서비스(일례로, 동영상 서비스 등)를 제1 서비스로서 복수의 전자 기기들(110, 120, 130, 140)로 제공할 수 있다. 다른 예로, 서버(160)는 상술한 어플리케이션의 설치 및 구동을 위한 파일을 복수의 전자 기기들(110, 120, 130, 140)로 배포하는 서비스를 제2 서비스로서 제공할 수 있다.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다. 앞서 설명한 복수의 전자 기기들(110, 120, 130, 140) 각각이나 서버들(150, 160) 각각은 도 2를 통해 도시된 컴퓨터 장치(200)에 의해 구현될 수 있다.
이러한 컴퓨터 장치(200)는 도 2에 도시된 바와 같이, 메모리(210), 프로세서(220), 통신 인터페이스(230) 그리고 입출력 인터페이스(240)를 포함할 수 있다. 메모리(210)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(210)와는 구분되는 별도의 영구 저장 장치로서 컴퓨터 장치(200)에 포함될 수도 있다. 또한, 메모리(210)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(210)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(210)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(230)를 통해 메모리(210)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(170)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 컴퓨터 장치(200)의 메모리(210)에 로딩될 수 있다.
프로세서(220)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(210) 또는 통신 인터페이스(230)에 의해 프로세서(220)로 제공될 수 있다. 예를 들어 프로세서(220)는 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 인터페이스(230)는 네트워크(170)를 통해 컴퓨터 장치(200)가 다른 장치(일례로, 앞서 설명한 저장 장치들)와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 장치(200)의 프로세서(220)가 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(230)의 제어에 따라 네트워크(170)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(170)를 거쳐 컴퓨터 장치(200)의 통신 인터페이스(230)를 통해 컴퓨터 장치(200)로 수신될 수 있다. 통신 인터페이스(230)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(220)나 메모리(210)로 전달될 수 있고, 파일 등은 컴퓨터 장치(200)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.
입출력 인터페이스(240)는 입출력 장치(250)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(240)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(250)는 컴퓨터 장치(200)와 하나의 장치로 구성될 수도 있다.
또한, 다른 실시예들에서 컴퓨터 장치(200)는 도 2의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 장치(200)는 상술한 입출력 장치(250) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
동영상 압축 알고리즘 중 하나는 사람의 시각 특성을 고려하여 원본 영상에 사람이 인지하기 힘든 정도의 손실을 주어 압축률을 높이는 방법을 사용하고 있다. 손실 정도를 조정하여 영상 압축률을 조절할 수 있다.
상용 비디오 압축기(코덱)들은 손실 압축 방식을 통해 영상의 품질을 크게 저하시키지 않으면서 스트리밍에 문제가 되지 않는 정도의 비트 전송률(초당 영상 사이즈)을 유지하도록 비트 전송률 제어(Bitrate Control) 기능을 제공한다.
일반적으로 많이 사용되는 비디오 코덱들은 고정된 목표 비트 전송률을 유지하거나 혹은 일정 화질을 유지하는 비트 전송률 제어 기능을 제공한다. 여기서, 일정 화질 유지란 인코딩 결과물의 화질이 균일함을 의미하며 그 화질의 수준은 인코딩 전에는 알 수가 없다.
그러나, 영상 별로 복잡도와 특성이 다르기 때문에 모든 영상에 대해 동일한 목표 비트 전송률이나 화질로 압축하면 사람이 인지하는 것 이상의 고품질로 압축되어 필요 이상의 크기로 압축되는 결과가 발생한다.
또한, 동영상은 복잡도와 특성이 다른 여러 장면으로 이루어지는 경우가 많기 때문에 영상의 구간에 따라서도 위와 같은 문제가 발생할 수 있다.
본 실시예들은 AI 기술을 통해 영상의 구간 별 특성에 따라 적정 비트 전송률 또는 적정 화질 옵션을 결정하여 동영상의 압축률을 최적화하고자 하는 것이다.
도 3은 본 발명의 일실시예에 있어서 분산 인코딩 시스템의 구성요소의 예를 도시한 도면이다.
도 3을 참조하면, 분산 인코딩 시스템(300)은 동영상 플랫폼(330)에 적용하기 위한 최적화 인코더 구성요소로서, 분산 인코더(distributed encoder)(310), 및 AI 서빙 모듈(serving module)(320)을 포함할 수 있다.
분산 인코더(310)나 AI 서빙 모듈(320) 각각은 도 2를 통해 설명한 컴퓨터 장치(200)에 의해 구현될 수 있다.
동영상 서비스에서는 서비스하고자 하는 영상을 동영상 플랫폼(330)으로 업로드하여 분산 인코딩 시스템(300)을 통해 인코딩을 진행할 수 있다. 인코딩 옵션 최적화 여부는 동영상 플랫폼(330)에서 결정되며 최적화 적용 시에는 인코딩 요청에 모델 정보 등의 파라미터가 추가될 수 있다.
분산 인코더(310)는 분산 처리부(distributor)(311) 및 워커(312)를 포함할 수 있다.
분산 처리부(311)는 원본 영상을 여러 개의 세그먼트로 분할하여 다수의 워커(312)에 할당한다. 워커(312)에서 인코딩이 진행되면서 압축된 비트스트림을 수신하고, 수신된 비트스트림은 로컬 저장소에 임시 저장되거나 메모리에 로드된 상태로 관리된다. 분산 처리부(311)는 세그먼트 각각에 대한 워커(312)의 인코딩 결과를 병합하여(merge) 최종 영상 파일을 생성할 수 있다.
워커(312)는 인코딩 작업을 수행하기 위한 단위 트랜스코더로서 분산 처리부(311)로부터 할당받은 영상 세그먼트를 인코딩하는 역할을 한다. 이때, 워커(312)는 인코딩 옵션을 최적화하기 위한 AI 서빙 모듈(320)과 직접 연동하여 동작할 수 있다. 인코딩 옵션 최적화가 활성화되어 있다면 인코딩 옵션 예측에 필요한 일부 프레임 이미지를 준비하고 준비된 프레임 이미지를 모델 정보와 함께 AI 서빙 모듈(320)에 전달하여 최적의 인코딩 옵션을 요청할 수 있다. 워커(312)는 AI 서빙 모듈(320)의 예측 결과를 적용하여 인코딩을 수행하고 인코딩 결과 화질과 전송 비트율을 점검한다. 워커(312)는 인코딩 결과 화질 또는 전송 비트율이 적정 범위를 벗어나는 경우 예측 오차를 실험치에 근거하여 보간하고 다시 인코딩을 수행한다. 인코딩 진행과 동시에 압축된 비트스트림은 분산 처리부(311)로 전송하고, 모델의 예측 결과와 인코딩 결과 데이터를 동영상 플랫폼(330)에 저장한다.
AI 서빙 모듈(320)은 분산 인코더(310)와 연동하여 동작하는 것으로, 인코딩 옵션 예측 모델(321)을 포함한다. AI 서빙 모듈(320)은 각 워커(312)로부터 영상 세그먼트를 인코딩하기 위한 인코딩 옵션 요청을 수신하는 경우 수신된 요청에서 지정하는 인코딩 옵션 예측 모델(321)을 통해 최적의 인코딩 옵션을 예측하여 예측 결과를 워커(312)로 반환할 수 있다.
동영상 플랫폼(330)은 ELK(Elastic Logstash Kibana)와 같은 클라우드 서치(cloud search)를 바탕으로 인코딩 옵션 예측 모델(321)의 예측 정확도에 대한 로그를 수집할 수 있다. 다시 말해, 동영상 플랫폼(330)은 워커(312)의 인코딩 결과를 로그로 기록하여 인코딩 옵션 예측 모델(321)의 정확도를 모니터링하고 모니터링 결과와 사용자(예를 들어, 관리자 등)(340)에 의한 입력 값을 바탕으로 새로운 영상을 통한 모델 추가 학습과 예측 정확도 개선을 지원할 수 있다.
본 실시예에서 인코딩 옵션 예측 모델(321)은 AI 기반의 예측 모델로서 영상의 세그먼트 별 특성을 판단하고 그에 맞는 최적의 인코딩 옵션을 예측하는 것이다.
인코딩 옵션은 인코딩 레이트, 즉 영상 압축률을 조절할 수 있는 파라미터를 의미하는 것으로, 일례로 최적화 인코딩 옵션으로 CRF(Constant Rate Factor)를 사용할 수 있다.
CRF는 CQP(constant quantization parameter)와 대비하여 시각적으로 보다 균일한 화질을 보장하며, 사람의 지각적인 인지 특성을 반영할 수 있다.
인코딩 옵션 예측 모델(321)의 기본 컨셉은 도 4와 같다.
도 4를 참조하면, 인코딩 옵션 예측 모델(321)은 영상을 구성하는 프레임의 이미지들(401)을 입력받아 딥러닝 모델을 통해 영상의 피처를 추출할 수 있다. 이때, 딥러닝 모델은 CNN(convolution neural network) 모델과 RNN(recurrent neural network) 모델을 포함할 수 있다. CNN 모델은 프레임 이미지의 피처를 추출하는 역할을 하고, RNN 모델은 데이터(프레임 이미지의 피처) 시퀀스 간의 관계를 학습하는 역할을 한다.
인코딩 옵션 예측 모델(321)은 지도 학습(supervised learning)으로 딥러닝 모델을 통해 추출된 피처 별로 최적의 CRF 클래스를 분류하도록 학습된다.
이러한 방식으로 학습된 인코딩 옵션 예측 모델(321)에 새로운 영상의 프레임 이미지를 입력하게 되면 해당 이미지의 특성에 맞는 최적의 CRF 카테고리를 예측할 수 있다.
도 5는 본 발명의 일실시예에 있어서 동영상 인코딩 최적화 방법을 나타낸 것이다.
도 5를 참조하면, 분산 인코딩 시스템(300)은 인코딩 옵션 예측 모델(321)에 대한 학습 과정(S510)과 추론 과정(S520)을 포함한다.
인코딩 옵션 예측 모델(321)은 CNN 모델, RNN 모델, 및 분류기(classifier)를 포함한다.
먼저, 분산 인코딩 시스템(300)은 전처리(pre-processing) 과정을 수행한다. 전처리 과정은 영상 세그먼트에서 프레임 이미지를 추출하는 과정을 포함한다. 분산 인코딩 시스템(300)은 학습 과정(S510)에서의 메모리 문제를 방지하고 정확도를 높이기 위해 프레임 이미지 사이즈, 프레임 이미지 개수 등을 최적화할 수 있다.
인코딩 옵션 예측 모델(321)을 학습하기 위한 데이터 셋은 동영상 플랫폼에 업로드된 비디오를 이용하여 제작한 비디오 세그먼트 데이터 셋을 활용할 수 있다.
일례로, 인코딩 최적화 옵션은 CRF를 사용하고, 데이터 셋의 분포와 실제 인코딩 시 유효한 범위를 고려하여 학습 대상이 되는 CRF 범위를 결정할 수 있다.
프레임 이미지 사이즈는 최초 224×224부터, 336×336, 448×448, 560×560, 그 이상까지 키울 수 있다. 336×336 이하에서는 원본 영상을 80% 중앙 자르기(center-crop) 후에 리사이즈할 수 있다. 원본 정보가 가능한 유지될 수 있게끔 리사이즈하되 원본의 종횡비(aspect ratio)는 변경될 수 있다.
원본 영상의 프레임 이미지(1920×1080)가 위 사이즈로 리사이즈되면 리사이즈 과정에서 정보 손실이 발생할 수 밖에 없고 이러한 손실을 줄이기 위해서 이미지 사이즈를 가능한 키우는 것이 정확도 향상에 도움이 된다.
프레임 이미지 개수의 경우 정확도 향상을 위해 4초 세그먼트 영상에서 250ms 간격으로 15장의 이미지를 모델 입력으로 사용할 수 있다. 분산 인코딩 시스템(300)은 정확도 향상을 위해 5초 세그먼트 영상에서 500ms 간격으로 10장의 이미지를 선정한 후 선정된 이미지를 CNN에서 처리 가능한 336×336 사이즈로 리사이즈할 수 있다. 다시 말해, 세그먼트 영상 하나에 대하여 10장×(336×336×3) 만큼의 데이터가 인코딩 옵션 예측 모델(321)의 입력으로 제공될 수 있다.
이는 예시적인 것일 뿐 모델 입력으로 사용하지 위한 이미지 선정은 얼마든지 변경 가능하다. 예를 들어, 4초 세그먼트 영상에서 200ms 간격으로 20장의 이미지를 선정하는 것 또한 가능하다.
각 영상의 반복 인코딩을 통해 VMAF(Video Multi-method Assessment Fusion) 기준의 적정 화질을 만족하는 CRF 옵션을 탐색하여 이렇게 수집된 4초 길이 세그먼트 영상과 GT(ground truth) 데이터 셋을 인코딩 옵션 예측 모델(321)의 학습 과정(S510)에 사용할 수 있다.
다음으로, 분산 인코딩 시스템(300)은 영상 피처 추출(video feature extraction) 과정을 수행한다. CNN에서 인코딩 옵션 예측 모델(321)의 입력으로 주어지는 각 프레임 이미지에 대한 프레임 피처를 추출할 수 있고, CNN에서 추출된 프레임 피처를 이미지 순서대로 RNN(LSTM(Long Short-Term Memory))에 입력하여 피처 시퀀스 간의 관계 정보를 바탕으로 비디오 피처를 추출할 수 있다.
마지막으로, 분산 인코딩 시스템(300)은 분류(classification) 과정을 수행하는 것으로, 일례로 소프트맥스 분류기(softmax classifier)를 이용하여 RNN에서 추출된 비디오 피처를 분류할 수 있다.
따라서, 분산 인코딩 시스템(300)은 CNN 모델까지 파인-튜닝(fine-tuning)하고 CNN 모델을 포함한 모델 전체를 하나의 손실 함수에 대해 E2E(end-to-end) 방식으로 학습할 수 있다.
이미지 분류 성능을 위해 학습 과정(S510)에서 학습된 CNN의 가중치(weight)를 영상 특성을 잘 구분하도록 최적화할 수 있다. 지도 학습 방법으로 영상의 특성, 즉 비디오 피처와 인코딩 옵션(CRF) 간의 관계를 학습하여 영상의 특성에 맞는 최적의 옵션으로 분류하는 모델을 구축할 수 있다.
상기한 학습 과정(S510)을 통해 학습된 인코딩 옵션 예측 모델(321)에 새로운 영상의 프레임 이미지를 입력하게 되면 추론 과정(S520)으로서 해당 이미지의 특성에 맞는 최적의 CRF 카테고리를 예측할 수 있다.
특히, 본 실시예들은 인코딩 옵션 예측 모델(321)을 단일 모델로 구축하여 여러 해상도 영상의 목표 화질 달성 파라미터를 예측할 수 있다.
스트리밍 서비스에서는 하나의 영상을 여러 해상도로 서비스하며 각 해상도를 목표 화질로 인코딩해야 한다. 목표 화질로 인코딩하기 위한 인코딩 파라미터는 AI를 이용한 영상 분석을 통해 도출 가능하며 각 해상도 별로 도출 결과가 다를 수 있다. 이러한 경우 각 해상도 별로 모델을 따로 운영하는 것이 일반적이다.
예를 들어, 1080p와 720p 영상을 인코딩하는 경우 1080p용 모델과 720p용 모델을 각각 만들고 각 영상을 상응하는 모델로 추론하게 된다. 이와 같이, 여러 해상도를 지원하는 서비스 환경에서 모델이 많아지면서 모델의 개발과 관리 및 유지보수에 어려움이 있다.
일반적으로 스트리밍 서비스의 화질 측정 지표로 VMAF를 사용하고 있다. VMAF는 압축 아티팩트(compression artifact)와 스케일링 아티팩트(scaling artifact)를 모두 고려한 영상 품질 지표이다.
도 6은 일반적인 VMAF 측정 방법으로, 인코딩한 해상도를 모두 1080p로 리사이즈하여 원본 1080p와 비교한 결과이다.
중첩된 VMAF 커브의 컨벡스-헐(convex-hull)을 구하고 컨벡스-헐 상의 점을 선택하면 해당 비트레이트의 최적 해상도 선택이 가능하다. 그러나, 각 해상도의 VMAF 범위가 달라 해상도 별 VMAF 기준을 동일하게 가져갈 수 없다.
도 7은 각 해상도의 인코딩 결과를 동일한 해상도의 인코딩 전 원본 영상과 비교하는 것으로, 스케일링 아티팩트를 제외하고 압축 아티팩트만 고려한 결과이다.
컨벡스-헐을 만들지 못하나 전체 해상도에 대해서 VMAF 기준을 동일하게 가져갈 수 있다. 다시 말해, 인코딩 옵션 예측 모델(321)의 학습에 사용되는 라벨을 구할 때 전체 해상도에 대해 같은 화질 점수(예를 들어, VMAF 93)를 GT 값으로 가져갈 수 있다.
이와 같이, 전 해상도에 대해 동일 기준(VMAF 점수)를 만족하는 화질 인코딩 파라미터(CRF, QP(quantization parameter) 등과 같은 고정 화질 인코딩 파라미터) 값을 라벨로 사용하면 CRF를 같은 카테고리로 묶을 수 있다.
다시 말해, 해상도 별로 동일한 VMAF 기준을 만족하는 CRF값들을 라벨로 구하게 되면 같은 라벨을 가지는 영상들은 해상도가 달라도 같은 라벨의 데이터로 묶을 수 있다. 예를 들어, 1080p CRF 23과 720p CRF 23을 같은 카테고리로 묶을 수 있으므로 학습을 위한 데이터 셋을 구성할 때 CRF 23 카테고리의 데이터 셋을 1080p와 720p 영상을 혼합하여 구성할 수 있다.
각 라벨 카테고리를 여러 해상도를 혼합한 데이터 셋으로 구성하여 학습하면 하나의 모델로 여러 해상도의 인코딩에 사용될 수 있다. 1080p와 720p 해상도 인코딩에 대한 CRF를 하나의 모델로 예측할 수 있다.
라벨 데이터를 생성하는 방법은 다음과 같다.
각 세그먼트 영상의 최적 CRF 값을 라벨로 사용한다.
도 8을 참조하면, 분산 인코딩 시스템(300)은 세그먼트 영상(801)에 대해 CRF 값을 달리하여 인코딩을 반복하고(S81), 이때 인코딩 결과 화질을 측정하여(S83) 일정 수준의 화질을 만족하는지 여부를 판단한다(S83).
분산 인코딩 시스템(300)은 상기한 과정(S81 내지 S83)을 통해 일정 수준의 화질을 만족하는 CRF 값을 찾아 라벨(802)을 구할 수 있다.
화질의 기준은 사람의 지각적인 부분을 가장 잘 반영하는 VMAF을 사용하고, 예를 들어 스트리밍 서비스에 적합한 VMAF 93을 기준으로 할 수 있다. 각 세그먼트 영상(801)의 VMAF 값이 93이 될 때까지 CRF를 변경하면서 인코딩하고 VMAF 값이 93이 되는 시점의 CRF 값을 라벨(802)로 선정한다.
예를 들어, 1080p와 720p 해상도 인코딩에 대한 라벨 생성 과정은 다음과 같다.
1080p 해상도 인코딩 라벨은 VMAF 93을 기준으로 원본 1080p를 베이스로 라벨 CRF를 구한다.
720p 해상도 인코딩 라벨의 경우, 먼저 원본 1080p를 720p로 리사이즈하고 리사이즈된 720p를 베이스로 CRF를 달리하여 인코딩을 반복하면서 라벨 CRF를 구한다. 화질 기준은 1080p와 동일하게 VMAF 93으로 한다. 이때, VMAF를 구할 때 화질 비교 원본은 1080p를 720p로 리사이즈한 영상이 된다. 즉, 리사이즈 아티팩트는 고려하지 않고 압축 아티팩트만 고려해서 VMAF를 측정하고 이에 맞는 CRF를 구한다. 압축 아티팩트만 고려한 특정 화질(VMAF)을 만족하는 CRF를 각 해상도 별로 구하고, 이때 CRF 카테고리는 여러 해상도로 묶을 수 있으므로 1080p와 720p 해상도를 묶어서 각 카테고리의 데이터 셋을 생성할 수 있다.
따라서, 1080p와 720p가 혼합된 데이터 셋으로 1080p와 720p 해상도를 모두 지원하는 단일 모델을 구축할 수 있고, 이를 통해 1080p 세그먼트 영상과 720p 세그먼트 영상에 대한 추론 결과로 최적의 CRF 결과를 획득할 수 있다.
라벨 데이터를 생성하는 과정에서 예를 들어 CRF를 1 단위로 변경하면서 인코딩을 진행하는 경우 VMAF 93에 가장 가까운 CRF를 선정하기 때문에 라벨의 정확도가 떨어지는 문제가 있다.
이를 해결하기 위해, CRF 단위에 대한 테스트를 통해서 CRF를 1보다 작은 단위, 예를 들어 0.5 단위로 하여 라벨 클래스를 적용함으로써 라벨의 정확도를 개선할 수 있다.
따라서, CRF 예측을 위해 구축된 인코딩 옵션 예측 모델(321)을 이용함으로써 인코딩을 최적화하고 반복적인 과정을 최소화할 수 있다.
더 나아가, 본 실시예들은 서비스 제약 사항 하에서 효율적인 목표 화질 달성 파라미터를 예측할 수 있다.
스트리밍 서비스를 위한 영상 압축 시 영상 화질 저하의 최소화와 함께 끊김 없는 시청을 보장하기 위한 비트레이트 제약이 필요하다. 따라서, 비트레이트 제약 이내로 결과 영상을 생성하는 것이 필요하며, 서비스 별로 비트레이트 제약 및 제약의 중요도가 다르다. 동일 비트레이트에서 되도록 높은 화질의 결과물을 만드는 것 또한 중요하다.
도 9는 본 발명의 일실시예에 있어서 서비스 제약을 고려한 실제 인코딩에 적용할 화질 파라미터를 도출하는 과정의 일례를 도시한 것이다.
도 9를 참조하면, 분산 인코딩 시스템(300)은 입력 영상(901)의 피처를 추출한 후(S900) 추출된 피처에 최적화된 인코딩 옵션을 예측할 수 있다(S901 내지 S904).
인코딩 옵션을 예측하는 과정에서 단계(S903)를 제외한 나머지 단계(S901, S902, S903)는 AI 기반의 인코딩 옵션 예측 모델(321)을 이용한다.
상세하게, 분산 인코딩 시스템(300)은 입력 영상(901)의 피처에 대응되는 인코딩 옵션으로서 목표 화질(예를 들어, VMAF 93)을 만족하는 화질 인코딩 파라미터인 제1 CRF(CRF1)를 예측할 수 있다(S901). 제1 CRF를 예측하는 방법은 위에서 설명한 바와 동일하므로 구체적인 설명은 생략한다.
분산 인코딩 시스템(300)은 입력 영상(901)의 피처에 대응되는 인코딩 옵션으로서 목표 비트레이트를 만족하는 화질 인코딩 파라미터인 제2 CRF(CRF2)를 예측할 수 있다(S902). 영상 화질 조절 파라미터로는 일반적으로 구간 별로 고른 화질을 보이는 CRF 옵션을 사용하게 되는데, CRF로 인코딩 시 인코딩 결과 영상의 비트레이트를 알 수 없다. 목표 비트레이트를 만족하는 CRF를 찾기 위해서는 CRF 값을 조절하며 반복 인코딩을 수행한 후 결과 비트레이트를 확인해야 하며 이는 매우 큰 인코딩 비용이 발생한다. 적은 인코딩 비용으로 목표 화질과 서비스 비트레이트 제한을 만족하기 위해서는 목표 비트레이트를 만족하는 제2 CRF 예측이 필요하다. 목표 화질을 만족하는 제1 CRF와 함께 목표 비트레이트를 만족하는 제2 CRF를 예측하면 비용 절감과 함께 서비스 품질 향상이 가능하다.
제2 CRF 예측을 위해서는 각 세그먼트 영상의 특정 비트레이트를 만족하는 CRF 값을 라벨로 사용한다. 각 세그먼트 영상에 대해 CRF 값을 달리 인코딩해서 목표 비트레이트를 만족하는 CRF 값을 찾고 해당 CRF 값을 라벨로 선정할 수 있다. 목표 비트레이트는 어플리케이션마다 상이할 수 있으며, 예를 들어 카테고리 1의 경우 제2 CRF 23, 카테고리 2의 경우 제2 CRF 23.5, 카테고리 3의 경우 제2 CRF 24 등과 같이 라벨 데이터를 생성할 수 있다.
실시예에 따라서는 제1 CRF와 제2 CRF를 합쳐서 라벨 데이터를 생성하는 것 또한 가능하다. 예를 들어 카테고리 1의 경우 제1 CRF 23과 제2 CRF 24, 카테고리 2의 경우 제1 CRF 23과 제2 CRF 25, 카테고리 3의 경우 제1 CRF 23과 제2 CRF 26 등과 같이 라벨 데이터를 생성할 수 있다. 제1 CRF와 제2 CRF가 결합된 라벨 데이터를 사용하는 경우, 도 9에서 단계(S902)와 단계(S903)가 생략되고 단계(S901)에서 예측된 CRF를 인코딩에 적용하기 위한 최종 CRF로 사용할 수 있다.
인코딩 옵션 예측 모델(321)은 입력 영상(901)을 구성하는 프레임의 이미지들을 입력받아 딥러닝(CNN 및 RNN)으로 영상의 피처를 추출하고 추출된 피처를 이용하여 각 CRF에 상응하는 클래스로 분류하도록 지도 학습으로 학습된다. 이때, CRF 클래스의 정답 라벨은 상기에서 라벨 데이터로 생성된 제2 CRF가 된다. 제1 CRF와 제2 CRF를 합쳐서 라벨 데이터를 생성한 경우 CRF 클래스의 정답 라벨은 제1 CRF와 제2 CRF의 조합으로 구성된다. 이러한 라벨 데이터 셋으로 학습된 인코딩 옵션 예측 모델(321)에 분석 대상이 되는 영상의 프레임들을 입력하면 비트레이트를 만족하는 CRF에 해당하는 클래스를 출력할 수 있다.
분산 인코딩 시스템(300)은 목표 화질을 만족하는 제1 CRF와 목표 비트레이트를 만족하는 제2 CRF를 고려하여 실제 인코딩에 적용할 최종 CRF인 제3 CRF(CRF3)를 결정할 수 있다(S903). 일례로, 분산 인코딩 시스템(300)은 제1 CRF가 제2 CRF보다 크거나 같은 경우 제1 CRF를 제3 CRF로 결정할 수 있다. 한편, 분산 인코딩 시스템(300)은 제1 CRF가 제2 CRF보다 작은 경우 모델 학습과 관련된 사용자 입력 값인 비트레이트 제한 준수 가중치를 고려하여 제3 CRF를 결정할 수 있다(S903). 비트레이트 제약이 엄격해야 하는 어플리케이션에서는 제1 CRF가 제2 CRF보다 작은 경우 제2 CRF를 제3 CRF로 결정할 수 있다. 비트레이트 제약이 상대적으로 덜 엄격한 어플리케이션에서는 화질 이득을 위해 제1 CRF 쪽에 더 가까운 값을 선택할 수 있다. 이때, 분산 인코딩 시스템(300)은 사용자 입력 값인 비트레이트 제한 준수 가중치(w)를 이용하여 CRF 값을 보정함으로써 제3 CRF를 결정할 수 있다(수학식 1).
[수학식 1]
CRF3 = CRF1×(1-w)+CRF2×w
비트레이트 제한 준수 가중치는 0에서 1.0 이내의 값으로 입력될 수 있다. 가중치가 0인 경우 비트레이트 제한을 준수하지 않고 제1 CRF를 제3 CRF로 결정하고, 가중치가 1인 경우 비트레이트 제한을 엄격히 준수하도록 제2 CRF를 제3 CRF로 결정할 수 있다.
분산 인코딩 시스템(300)은 입력 영상의 피처에 대응되는 추가적인 인코딩 옵션으로서 QP 제한 파라미터를 예측할 수 있다(S904).
화질 인코딩 파라미터 중 하나인 CRF는 프레임 QP를 결정한다. 인코더는 체감 화질 향상을 위한 AQ(adaptive quantization), MB(macroblock)-트리와 같은 다양한 블록 단위 QP 결정 알고리즘을 탑재하고 있으며 CRF와 해당 인코딩 옵션들을 조합해서 사용하는 경우가 일반적이다. QP 결정 알고리즘은 CRF로부터 결정된 프레임 QP에 각 블록 별로 오프셋 값을 적용하여 블록 QP를 결정하게 되는데, 이때 지나치게 낮거나 높은 QP가 할당되는 블록이 생기게 된다. 인코더는 QP 제한을 위해 최소 QP(minqp) 및 최대 QP(maxqp)와 같은 옵션을 제공하며, 이를 활용하여 블록들의 QP 값을 적절한 수준으로 제한하면 체감 화질을 유지하면서 추가적인 비트레이트 절감을 달성할 수 있다.
분산 인코딩 시스템(300)은 제3 CRF와 함께 적용 시 최적의 비트레이트 대비 화질을 얻을 수 있는 최소 QP 값과 최대 QP 값을 도출할 수 있다. 최소 QP는 과도하게 높은 화질을 방지하고 최대 QP는 과도하게 낮은 화질을 방지하는 역할을 하며, 블록 단위로 적용하여 시각적으로 보다 고른 화질을 달성할 수 있다. 일례로, 분산 인코딩 시스템(300)은 제3 CRF에 오프셋을 적용하여 최소 QP 값과 최대 QP 값을 도출할 수 있다(minqp=CRF3-offset, maxqp=CRF3+offset). 예를 들어, CRF 오프셋을 2라 할 때, CRF3에서 2를 뺀 값을 최소 QP 값으로 설정하고, CRF3에 2를 더한 값을 최대 QP 값으로 설정할 수 있다.
분산 인코딩 시스템(300)은 제3 CRF와 함께 최소 QP 값과 최대 QP 값을 인코딩 옵션으로 적용할 수 있으며, 실시예에 따라서는 추론 시간을 줄이기 위해 QP 제한 파라미터를 예측하는 과정(S904)을 생략하고 제3 CRF만을 실제 인코딩에 적용하는 것 또한 가능하다.
QP 제한 파라미터를 예측하기 위해서는 각 세그먼트에 대해 결정된 인코딩 CRF(CRF3)와 조합 시 최적 비용을 만족하는 CRF 오프셋을 라벨로 사용한다. 각 세그먼트 영상에 대해 CRF 값을 달리 하고 각 CRF 값 당 최소 QP와 최대 QP(또는 오프셋)를 다르게 설정하여 인코딩한다. 각 인코딩 결과의 비트레이트와 화질(VMAF)을 구한 후 이로부터 비용을 구해 비용이 가장 작은 영상의 오프셋 값을 라벨로 선정할 수 있다.
비용은 수학식 2와 같이 정의될 수 있다
[수학식 2]
Cost = rate+λ×d
여기서, λ(lambda) 값은 비트레이트 절감을 우선할지 또는 화질 보존을 우선할지에 따라 모델 학습 시 사용자 입력 값으로 결정된다.
영상의 피처와 이전 단계에서 결정된 제3 CRF이 입력 값이 되며, 예를 들어 카테고리 1의 경우 CRF오프셋 2, 카테고리 2의 경우 CRF오프셋 4, 카테고리 3의 경우 CRF오프셋 6 등과 같이 라벨 데이터를 생성할 수 있다. 최종적으로 인코딩 적용 파라미터는 제3 CRF, 최소 QP(CRF3-offset), 최대 QP(CRF3+offset)가 된다.
일반적으로 QP가 낮아질수록 비트레이트 대비 화질 이득이 떨어지므로 오프셋은 비대칭 적용 가능하다. 다시 말해, 최소 QP는 (CRF3-offset+1)과 같이 결정되고, 최대 QP는 (CRF3+offset)과 같이 적용될 수 있다. 예를 들어, 제3 CRF 값이 26이고, 오프셋이 4라고 할 때, 최소 QP 값은 23, 최대 QP 값은 30이 될 수 있다.
인코딩 옵션 예측 모델(321)은 입력 영상을 구성하는 프레임의 이미지들을 입력받아 딥러닝(CNN 및 RNN)으로 영상의 피처를 추출하고 해당 피처와 인코딩 CRF 별 최적의 코스트 클래스로 분류하도록 지도 학습으로 학습된다. 이때, CRF 클래스의 정답 라벨은 상기에서 라벨 데이터로 생성된 CRF 오프셋으로 구성된다. 이러한 라벨 데이터 셋으로 학습된 인코딩 옵션 예측 모델(321)에 분석 대상이 되는 영상의 프레임 이미지와 제3 CRF 값을 입력하게 되면 분류 결과 카테고리에 상응하는 QP 제한 파라미터로서 CRF 오프셋 값을 얻을 수 있다.
따라서, 본 실시예에서는 AI 기반의 인코딩 옵션 예측 모델(321)을 이용하여 인코딩에 적용할 최적의 인코딩 옵션을 예측함에 있어 목표 화질을 만족하는 화질 인코딩 파라미터를 예측하는 것은 물론이고, 서비스 제약 사항 하에서 목표 비트레이트를 만족하는 화질 인코딩 파라미터 및/또는 화질 균형 조건을 만족하는 QP 제한 파라미터를 추가로 예측할 수 있다.
한편, 이상의 실시예들에서는 프레임 이미지 개수의 경우 정확도 향상을 위해 분석 세그먼트 단위(일례로, 4초 세그먼트 영상)에서 250ms 간격으로 15장의 이미지를 모델 입력으로 사용할 수 있음을 설명하였다. 이 경우, 분석 세그먼트 단위인 최소 4초의 지연에 더해 인퍼런스 지연이 발생하게 된다.
이러한 지연을 줄이기 위해, 라이브 영상은 장면 전환이 크지 않기 때문에 현재 세그먼트 장면과 미래 세그먼트의 차이가 크지 않다는 점을 이용하여, 이후 설명될 슬라이딩 윈도우 단위 예측이 이용될 수 있다. 슬라이딩 윈도우 단위 예측은 세그먼트 단위 분석이 아닌, 새로운 이미지 추출 시점에 이전 세그먼트에서 추출한 이미지들과 현재 시점에서 새로 추출한 이미지 한 장을 추가하여 분석을 수행할 수 있다.
도 10 및 도 11은 본 발명의 일실시예에 따른 슬라이딩 윈도우 단위 예측의 예를 도시한 도면들이다. 본 실시예에서는 세그먼트 길이가 4초이고, 세그먼트 당 250ms 간격으로 15개 이미지를 추출하는 경우를 고려한다. 여기서, 250ms는 인퍼런스의 간격, 다시 말해 인퍼런스를 요청하는 간격을 의미할 수 있다. 일례로, 분산 인코딩 시스템(300)은 초기 0-3.75초까지 추출된 14장의 프레임 이미지들에 대해서는 기본 인코딩 옵션(일례로, 기본 CRF)으로 인코딩을 수행할 수 있다. 이때, 영상의 3.75초 지점에서 15번째 프레임 이미지(①)가 추출되면, 추출된 15장의 프레임 이미지를 이용하여 인코딩 옵션 예측 모델(321)을 통해 인퍼런스를 수행함에 따라 제1 예측 옵션을 결정할 수 있으며, 3.75초 지점부터 결정된 제1 예측 옵션에 따라 프레임 이미지들에 대한 인코딩을 수행할 수 있다.
그 다음 프레임 이미지(②)의 추출 지점인 4초 지점에서는 이전 15장의 프레임 이미지들 중 첫 번째 프레임 이미지를 제외한 14장의 프레임 이미지들에 새로 추출한 프레임 이미지(②)를 추가하여 0.25-4초 지점의 15장의 프레임 이미지를 이용하여 인코딩 옵션 예측 모델(321)을 통해 인퍼런스를 수행함에 따라 제2 예측 옵션을 결정할 수 있다. 이 경우, 4초 지점부터 결정된 제2 예측 옵션에 따라 프레임 이미지들에 대한 인코딩을 수행할 수 있다.
그 다음 프레임 이미지의 추출 지점인 4.25초 지점에서도 이전과 동일한 방법으로 0.50-4.25초 지점의 15장의 프레임 이미지를 이용하여 인코딩 옵션 예측 모델(321)을 통해 인퍼런스를 수행함에 따라 제3 예측 옵션을 결정할 수 있다. 이 경우, 4.25초 지점부터 결정된 제3 예측 옵션에 따라 프레임 이미지들에 대한 인코딩을 수행할 수 있다.
다시 말해, 250ms마다 인코딩 옵션이 변경될 수 있다. 다만 현재 시점에 결정되는 예측 옵션은 인퍼런스를 위해 사용되는 15장의 프레임 이미지들에 따라 이전 예측 옵션과 동일하게 결정될 수도 있다. 또한, 이미 설명한 바와 같이, 세그먼트의 구간(또는 길이, 4초)와 인퍼런스 요청 간격(250ms)은 실시예에 따라 다양하게 조절될 수 있다. 일례로, 어플리케이션 및 라이브 영상의 종류에 따라 세그먼트의 길이와 인퍼런스 요청 간격이 조절될 수 있다. 보다 구체적인 예로, 예측을 위한 세그먼트의 구간을 4초에서 2초로, 인퍼런스를 위해 이용되는 프레임 이미지의 수도 15장에서 5장 내지 10장으로 줄일 수 있다. 인퍼런스 요청시 전달되는 이미지가 줄게 되면, 인퍼런스 수행시간도 줄게 되며, 이미지 개수가 줄면서 정확도가 일부 줄어들 수 있으므로, 정확도 변화 정도에 따라 세그먼트의 구간의 크기 및 이미지 개수가 조정될 수 있다. 또한, 인퍼런스 요청 간격을 250ms 에서 500~1000ms로 늘리면 인퍼런스 서빙 장비의 부하를 줄일 수 있다. 간격조정으로 정확도(품질)와 장비수요간에 트레이드 오프가 있으므로, 서비스 상황에 맞게 적절히 조절하는 것이 요구된다. 만일 인퍼런스 지연이 발생하여, 현재 프레임이 인코더에 인입되기 전까지 인코딩 파라미터 예측값을 수신하지 못할 경우, 수 프레임의 지연은 화질에 크게 문제되지는 않기 때문에 이전 옵션으로 그대로 인코딩을 수행할 수 있다.
한편, 인퍼런스 구조는 기본적으로 인퍼런스 요청시마다 기설정된 개수(일례로, 15장)의 프레임 이미지에 대해서 인퍼런스가 수행되는 구조이다. 그러나, 서빙단(일례로, AI 서빙 모듈(320))에서 이전 그래프 수행상태가 유지되고, 클라이언트(일례로, 분산 인코더(310))와 커넥션이 유지되면, 추가된 현재 프레임 이미지만을 클라이언트에서 서빙단으로 전달하여 인퍼런스를 수행할 수 있으며, 이를 통해 인퍼런스 수행시간을 대폭 단축할 수 있다.
예를 들어, 앞서 설명한 바와 같이 세그먼트의 길이가 4초이고, 세그먼트 당 250ms 간격으로 15장의 프레임 이미지를 추출하는 경우를 고려할 수 있다. 클라이언트는 첫 세그먼트에서 15장의 프레임 이미지를 추출하여 서빙단으로 전달하면, 서빙단은 3.75ms 시점에 인퍼런스를 수행할 수 있다. 이후, 클라이언트는 4초 시점에 앞의 14장의 프레임 이미지와 새로 추출한 프레임 이미지를 이용하여 서빙단으로 다시 인퍼런스를 요청할 수 있다. 이때, 서빙단은 인코딩 옵션 예측 모델(321)로 새로 추출한 프레임 이미지만을 전달하고, 인코딩 옵션 예측 모델(321)은 새로 추출한 프레임 이미지만을 수신하여 인퍼런스를 수행하도록 최적화된 인퍼런스 과정이 제공될 수 있다.
서빙단은 15개의 프레임 이미지를 받아서 그래프를 수행하고, 그 결과를 클라이언트에 전달할 수 있다. 그래프 내부적으로는 CNN을 거쳐서 각 이미지의 피처를 추출하고, 추출된 피처를 순서대로 LSTM에 넣어서 비디오의 피처를 추출하여 최적 옵션 클래스로 분류하는 과정을 거치게 된다.
도 12 및 도 13은 본 발명의 일실시예에 있어서, 그래프의 예를 도시한 도면이다. 도 12는 프레임 이미지 7장을 입력으로 CNN에서 얻어진 7개의 피처(1 내지 7)가 LSTM에 순서대로 들어가고 결과(8)을 얻는 구조를 나타내고 있다. 한편, 실제 LSTM의 구조는 도 13에서와 같이 하나의 셀(cell 또는 뉴런(neuron))을 재사용하면서 순차적인 데이터를 입력으로 받게 된다. 일례로, 분산 인코더(310)는 LSTM의 마지막 출력(도 13의 ht)를 전달받아 이용하게 된다.
따라서 인코딩 옵션 예측 모델(321)은 최초 15장으로 인퍼런스 후, 다음 번 인퍼런스를 위해 추가로 한 장의 프레임 이미지만을 전달받아도 이전 15장의 프레임 이미지들을 처리한 상태가 유지되는 상황에서 추가 입력에 대한 그래프가 수행되므로 앞의 14장의 프레임 이미지들과 새로 추출된 한 장의 프레임 이미지들을 이용하여 인퍼런스를 수행하는 것과 동일한 결과를 얻게 된다.
도 14는 본 발명의 일실시예에 있어서, 추가 인퍼런스를 처리하는 예를 도시한 도면이다. 도 14는 최초 15장의 프레임 이미지를 이용하여 인퍼런스가 수행된 후, 추가로 한 장의 프레임 이미지가 전달됨에 따라 제1 점선박스(1410)에 나타난 블록이 추가로 수행됨을 나타내고 있다. 도 13에서 설명한 바와 같이 LSTM에는 실질적으로 이전 14장의 프레임 이미지들을 처리한 상태가 유지되어 있는 상태에서 새로 추출된 한 장의 프레임 이미지가 처리됨에 따라 ht+1은 15장의 프레임 이미지를 이용하여 인퍼런스를 수행하는 것과 동일한 결과를 갖게 된다.
이처럼, 서빙단에서는 최초 15장의 프레임 이미지를 이용한 인퍼런스와 이후에는 지속적으로 추가되는 한 장의 프레임 이미지를 더 이용하는 인퍼런스를 구분하여 처리할 수 있어 인퍼런스 수행시간을 대폭 줄일 수 있다.
도 15는 본 발명의 일실시예에 있어서, 서빙단에서 클라이언트로 최적의 인코딩 옵션을 전달하는 과정의 예를 도시한 흐름도이다. 본 실시예에서도 세그먼트의 길이는 4초, 세그먼트 당 250ms 간격으로 15장의 프레임 이미지가 추출된다고 가정한다. 클라이언트(1510)에서는 0-3.75초까지 250ms마다 추출되는 15장의 프레임 이미지를 포함하는 인퍼런스 요청(1531)을 서빙단(1520)으로 전달할 수 있다. 이때, 서빙단(1520)은 인공지능 모델(일례로, 인코딩 옵션 예측 모델(321))을 이용하여 15장의 프레임 이미지에 해당하는 최적의 인코딩 옵션을 결정할 수 있다. 이후, 서빙단(1520)은 결정된 인코딩 옵션을 클라이언트(1510)로 전달(1532)할 수 있다. 이 경우, 클라이언트(1510)는 결정된 인코딩 옵션을 통해 프레임 이미지들을 인코딩(1533)할 수 있다.
250ms 후, 다시 말해 영상의 4초 시점에서는 새로운 프레임 이미지가 추출될 수 있고, 클라이언트(1510)는 새로운 프레임 이미지를 포함하는 인퍼런스 요청(1534)을 서빙단(1520)으로 전달할 수 있다. 앞서 설명한 바와 같이 서빙단(1520)이 포함할 수 있는 인공지능 모델에는 이전 14장의 프레임 이미지들이 적용된 상태를 유지하고 있기 때문에 서빙단(1520)은 새로운 프레임 이미지를 적용함으로써, 15장의 프레임 이미지에 해당하는 최적의 인코딩 옵션을 결정할 수 있다. 이후, 서빙단(1520)은 결정된 인코딩 옵션을 클라이언트(1510)로 전달(1535)할 수 있다. 이 경우, 클라이언트(1510)는 결정된 인코딩 옵션을 통해 프레임 이미지들을 인코딩(1536)할 수 있다.
이후, 250ms마다 인퍼런스 요청과 최적의 인코딩 옵션의 전달, 그리고 전달된 인코딩 옵션을 이용한 인코딩의 처리가 이루어질 수 있다.
클라이언트(1510)로부터 최종 인퍼런스 요청(1537)이 전달되면, 서빙단(1520)은 동일한 방법으로 최적의 인코딩 옵션을 결정하여 클라이언트(1510)로 전달(1538)할 수 있으며, 클라이언트(1510)는 결정된 인코딩 옵션을 통해 프레임 이미지들을 인코딩(1539)할 수 있다.
이후, 서버단(1520)은 서빙 자원을 해제(1540)할 수 있다.
도 16은 본 발명의 일실시예에 따른 인코딩 최적화 방법의 예를 도시한 흐름도이다. 본 실시예에 따른 인코딩 최적화 방법은 컴퓨터 장치(200)에 의해 수행될 수 있다. 이때, 컴퓨터 장치(200)의 프로세서(220)는 메모리(210)가 포함하는 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(220)는 컴퓨터 장치(200)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(200)가 도 16의 방법이 포함하는 단계들(1610 내지 1630)을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다.
단계(1610)에서 컴퓨터 장치(200)는 입력 영상의 최초 세그먼트에서 추출된 프레임 이미지에 기본 인코딩 옵션을 적용하여 인코딩을 처리할 수 있다. 인코딩 옵션은 앞서 설명한 CRF를 포함할 수 있으며, 기본 인코딩 옵션은 기본 CRF를 포함할 수 있다.
단계(1620)에서 컴퓨터 장치(200)는 인공지능 모델을 이용하여 n(n은 자연수)번째 인퍼런스 시점에 추출된 새로운 프레임 이미지와 이전에 추출된 m(m은 자연수)개의 프레임 이미지들을 포함하는 슬라이딩 윈도우 단위로 인코딩 옵션을 예측할 수 있다. 실시예에 따라 인공지능 모델은 컴퓨터 장치(200)와는 물리적으로 분리되는 별도의 장치에 구현될 수도 있다. 이 경우, 컴퓨터 장치(200)는 네트워크(170)를 통해 인공지능 모델이 구현된 별도의 장치와 통신하여 인코딩 옵션을 예측할 수 있다. 이 경우, 실질적으로 인코딩 옵션을 예측하는 것은 인공지능 모델일 수 있으며, 컴퓨터 장치(200)는 인공지능 모델을 통해 예측된 인코딩 옵션을 수신 및 활용할 수 있다.
한편, 인공지능 모델을 포함하는 서빙 모듈에서 하나의 셀을 재사용하여 순차적으로 데이터를 처리함에 따라 셀에 이전 그래프 수행 상태가 유지될 수 있다. 이를 통해 컴퓨터 장치(200)는 n번째 인퍼런스 시점에 추출된 새로운 프레임 이미지에 대한 피처(feature)를 이전 그래프 수행 상태가 유지되는 셀에 입력하여 슬라이딩 윈도우 단위로 인코딩 옵션을 예측할 수 있다.
또한, 세그먼트의 길이 및 인퍼런스 간격에 따라 슬라이딩 윈도우 단위가 포함하는 프레임 이미지의 개수가 결정될 수 있다. 일례로, 슬라이딩 윈도우 단위가 포함하는 이미지의 개수가 15인 경우, m은 새로운 프레임 이미지를 제외한 14가 될 수 있다. 이미 설명한 바와 같이, 인퍼런스 요청시 전달되는 이미지의 개수를 줄임에 따라 인퍼런스 수행시간을 줄일 수 있으며, 인퍼런스 간격을 늘리는 경우에는 인퍼런스 서빙 장비의 부하를 줄일 수 있음을 설명한 바 있다. 세그먼트의 길이 및 인퍼런스 간격은 입력 영상의 종류 및 입력 영상을 처리하는 어플리케이션의 종류 중 적어도 하나에 따라 결정될 수 있다.
또한, 인공지능 모델에 대해서는 앞서 자세히 설명한 바 있으며, 인코딩 옵션으로서 CRF를 예측하는 구체적인 방법에 대해서도 앞서 자세히 설명한 바 있다.
단계(1630)에서 컴퓨터 장치(200)는 n+1번째 인퍼런스 시점 이전의 프레임 이미지들에 대해 예측된 인코딩 옵션을 적용하여 인코딩을 처리할 수 있다. 따라서, 본 실시예에서는 세그먼트 단위가 아닌 슬라이딩 윈도우 단위로 인코딩을 처리함에 따라 세그먼트 단위의 지연을 줄일 수 있으며, 하나의 셀을 재사용하여 순차적으로 데이터를 처리함에 따라 셀에 이전 그래프 수행 상태가 유지되도록 하고, n번째 인퍼런스 시점에 추출된 새로운 프레임 이미지에 대한 피처를 해당 셀에 입력하여 슬라이딩 윈도우 단위로 인코딩 옵션을 예측함으로써 인퍼런스 지연 역시 줄일 수 있게 된다.
한편, 슬라이딩 윈도우 단위 예측 방식의 경우, 세그먼트 단위로 예측하고 예측 파라미터를 이후 프레임이 그대로 적용한다. 이때, 예측에 사용된 프레임과 이후 프레임들이 유사하다는 점을 이용하여 장면(scene) 단위 예측을 사용할 수 있다. 예를 들어, 한번 예측한 인코딩 파라미터는 유사한 장면일 경우에는 그대로 적용해도 문제가 없지만, 유사하지 않은 장면들이 이어지는 경우에는 영상의 특성에 맞는 인코딩 파라미터를 재예측하는 것이 요구된다. 라이브 영상에서는 이어지는 장면들이 어떻게 변경될지 알 수 없으므로, 일정 간격마다 예측을 수행하는 것이 요구된다.
이에 대한 대안으로 장면 전환 탐지(scene change detection)를 통해서 라이브 방송내에서 장면의 전환이 있는 경우에 인퍼런스를 하고, 예측된 파라미터를 적용하여 인코딩을 처리할 수 있다. 이때, 장면 전환 탐지 알고리즘은 라이브 영상의 처리 과정에서 지연속도(latency)에 부하를 주지 않도록 모션 벡터(motion vector) 또는 히스토그램 베이스(histogram base) 등의 가벼운 알고리즘을 사용할 수 있다. 이 경우, 장면 전환이 발생하는 상황의 전후로 인퍼런스 요청을 함에 따라 동일한 장면들이 이어지는 경우에는 인퍼런스 요청의 수를 줄일 수 있게 된다.
이때, 장면 전환 탐지부터 인퍼런스 완료까지 최소 1개 세그먼트 분량의 구멍(hole)이 발생하게 된다. 이러한 구멍 구간의 프레임들에 대해서는 이전 예측 인코딩 파라미터를 사용하거나 또는 이전 장면과 새로운 장면간의 복잡도를 비교하여 임시 보정 인코딩 파라미터를 적용할 수 있다.
도 17은 본 발명의 일실시예에 따른 인코딩 최적화 방법의 다른 예를 도시한 흐름도이다. 본 실시예에 따른 인코딩 최적화 방법은 컴퓨터 장치(200)에 의해 수행될 수 있다. 이때, 컴퓨터 장치(200)의 프로세서(220)는 메모리(210)가 포함하는 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(220)는 컴퓨터 장치(200)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(200)가 도 17의 방법이 포함하는 단계들(1710 내지 1730)을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다.
단계(1710)에서 컴퓨터 장치(200)는 입력 영상의 최초 세그먼트에서 추출된 프레임 이미지에 기본 인코딩 옵션을 적용하여 인코딩을 처리할 수 있다. 인코딩 옵션은 앞서 설명한 CRF를 포함할 수 있으며, 기본 인코딩 옵션은 기본 CRF를 포함할 수 있다.
단계(1720)에서 컴퓨터 장치(200)는 인공지능 모델을 이용하여 이전 세그먼트에서 추출된 프레임 이미지로 현재 인코딩 옵션을 결정할 수 있다. 인코딩 옵션으로서 CRF를 예측하는 구체적인 방법에 대해서는 앞서 자세히 설명한 바 있다. 실시예에 따라 인공지능 모델은 컴퓨터 장치(200)와는 물리적으로 분리되는 별도의 장치에 구현될 수도 있다. 이 경우, 컴퓨터 장치(200)는 네트워크(170)를 통해 인공지능 모델이 구현된 별도의 장치와 통신하여 인코딩 옵션을 예측할 수 있다. 이 경우, 실질적으로 인코딩 옵션을 예측하는 것은 인공지능 모델일 수 있으며, 컴퓨터 장치(200)는 인공지능 모델을 통해 예측된 인코딩 옵션을 수신 및 활용할 수 있다. 한편, 현재 인코딩 옵션은 앞서 설명한 세그먼트 단위로 예측될 수도 있고, 실시예에 따라 슬라이딩 윈도우 단위로 예측될 수도 있다.
단계(1730)에서 컴퓨터 장치(200)는 결정된 현재 인코딩 옵션으로 프레임 이미지를 인코딩할 수 있다. 이전 세그먼트에서 추출된 프레임 이미지와 현재 프레임 이미지가 유사한 경우에는 동일한 인코딩 옵션이 결정될 수 있으며, 계속 동일한 인코딩 옵션으로 인코딩이 진행될 수 있다.
이후 설명될 단계(1731) 내지 단계(1733)는 단계(1730)에 포함되어 수행될 수 있다.
단계(1731)에서 컴퓨터 장치(200)는 매 프레임 이미지에 대해 장면 전환 탐지를 수행할 수 있다. 컴퓨터 장치(200)는 단계(1730)에서 프레임 이미지들을 인코딩하는 과정에서 프레임 이미지들의 평균 화질을 기록할 수 있다. 일례로, 컴퓨터 장치(200)는 PSNR(Peak Signal-to-Noise Ratio) 및/또는 SSIM(Structural Similarity)과 같은 빠른 화질 메트릭(metric)을 사용하여 프레임 이미지들의 평균 화질을 기록할 수 있다. 이때, 컴퓨터 장치(200)는 인코딩을 수행하면서 동시에 기록된 평균 화질에 기반하여 매 프레임 이미지에 대해 장면 전환 탐지를 수행할 수 있다. 예를 들어, 컴퓨터 장치(200)는 x264의 lookahead 모듈과 같이 1/4 크기의 프레임에서 ME(Motion Estimation)를 수행하거나 기타 이미 잘 알려진 빠른 장면 전환 방식을 사용하여 매 프레임 이미지에 대해 고속으로 장면 전환 탐지를 수행할 수 있다. 이 경우, 컴퓨터 장치(200)는 장면 전환 탐지를 수행하면서 현재 장면의 이전 장면 대비 복잡도의 값을 얻을 수 있다.
단계(1732)에서 컴퓨터 장치(200)는 장면 전환의 발생시 적용할 인코딩 옵션을 예측할 수 있다. 컴퓨터 장치(200)는 이전 장면 대비 복잡도로부터 다음 인퍼런스가 이루어지기 전까지 적용할 인코딩 옵션을 예측할 수 있다. 장면 전환 후, 인퍼런스 전에 기본 인코딩 옵션을 적용할 수도 있으나, 짧은 간격으로 인코딩 옵션이 변환됨에 따른 문제가 발생할 수도 있다. 반면, 본 실시예에서는 이전 장면 대비 복잡도에 기반하여 장면 변환에 따른 인코딩 옵션을 예측함에 따라 인퍼런스의 예측 전에 최적 인코딩 옵션에 보다 가깝게 인코딩을 처리할 수 있게 된다.
단계(1733)에서 컴퓨터 장치(200)는 예측된 인코딩 옵션으로 장면 전환의 발생 이후의 프레임 이미지를 인코딩할 수 있다. 이후, 새로운 인퍼런스의 예측을 통해 단계(1720)에서와 같이 다시 현재 인코딩 옵션이 결정되면, 컴퓨터 장치(200)는 결정된 현재 인코딩 옵션으로 프레임 이미지들에 대한 인코딩을 처리할 수 있다.
앞서 단계(1731)에서 복잡도의 빠른 파악을 위해, 컴퓨터 장치(200)는 프레임 복잡도와 모션 가중치를 이용할 수 있다. 이때, 컴퓨터 장치(200)는 빠른 연산이 가능한 기준 메트릭을 정하고, 이전 세그먼트의 화질과 유사하게 수렴하도록 복잡도를 결정할 수 있다. 예를 들어, 이전 세그먼트의 RSNR이 평균 37이라면, 컴퓨터 장치(200)는 단계(1732)에서 예측된 인코딩 옵션에 따라 인코딩될 프레임 이미지들의 화질도 RSNR이 37 정도가 되도록 인코딩 옵션을 예측할 수 있다. 필요 시, 해당 구간은 프레임 단위로 품질을 조절할 수 있으며, 실시간 연산이 가능한 화질 메트릭이 고려되어야 한다.
도 18은 본 발명의 일실시예에 있어서, 인코딩 옵션을 결정하는 예를 도시한 도면이다. 도 18에서는 좌측부터 인코딩이 수행되는 프레임 이미지들을 개괄적으로 나타내고 있다. 좌측부터 순차적으로 살펴보면, 먼저 처음에는 기본 CRF(26)가 적용되어 프레임 이미지들에 대한 인코딩이 수행될 수 있다. 이후, 첫 번째 인퍼런스에 의해 CRF(32)가 예측됨에 따라 예측된 CRF(32)가 적용되어 프레임 이미지들에 대한 인코딩이 수행될 수 있다. 이때, 도 18에서는 두 번째 인퍼런스 이전에 장면 전환이 탐지됨에 따라 CRF(30)이 프레임 복잡도에 기반하여 예측되고, 그에 따라 CRF(30)이 적용되어 프레임 이미지들에 대한 인코딩이 수행되는 예를 나타내고 있다. 이후, 두 번째 인퍼런스에 의해 CRF(24)가 예측됨에 따라 예측된 CRF(24)가 적용되어 프레임 이미지들에 대한 인코딩이 수행될 수 있다. 또한, 도 18에서는 세 번째 인퍼런스 이전에 장면 전환이 탐지됨에 따라 CRF(27)이 프레임 복잡도에 기반하여 예측되고, 그에 따라 CRF(27)이 적용되어 프레임 이미지들에 대한 인코딩이 수행되는 예를 나타내고 있다. 이후, 세 번째 인퍼런스에 의해 CRF(27)이 예측됨에 따라 CRF의 변동 없이 CRF(27)이 적용되어 프레임 이미지들에 대한 인코딩이 수행될 수 있다.
이처럼, 인퍼런스들 사이에도 장면이 변환되는 경우에는 CRF와 같은 인코딩 옵션을 예측하여 적용함으로써, 장면 변환에 대응할 수 있다.
한편, 숏(shot) 단위로 인퍼런스를 처리하기 위해 숏 기반 세그먼트 모델이 구성 및 활용될 수 있다. 여기서, 숏 단위는 새로운 장면으로 변경되기 전까지 유사한 장면으로 구성된 영상의 구간을 의미할 수 있다. 다시 말해, 컴퓨터 장치(200)는 단계(1732)에서 이러한 숏 기반 세그먼트 모델을 이용하여 장면 전환 시의 인코딩 옵션을 예측할 수 있다. 이러한 숏 기반 세그먼트 모델에 대한 학습 시, 중간에 장면 전환이 포함되지 않은 숏 단위 세그먼트 데이터셋이 이용될 수 있다. 만약 임의의 4초 세그먼트의 프레임 이미지들로 이루어진 데이터셋을 학습에 사용하는 경우, 세그먼트 내에 여러 장면들이 포함될 수 있고, 이에 대해 평균적인 세그먼트 특성에 맞는 옵션을 예측하게 된다. 반면, 본 실시예에 따른 숏 기반 세그먼트 모델은 유사한 장면들로 이루어진 세그먼트들을 데이터셋으로 이용하여 학습되기 때문에 각 숏의 특성에 맞는 옵션을 보다 정확히 예측할 수 있게 된다.
또한, 유사한 장면들로 구성된 숏 단위에서는 인퍼런스에 필요한 프레임 이미지들의 수를 줄여도 높은 정확도를 달성할 수 있다. 이에 따라 인퍼런스 소요 시간을 단축하여 라이브에 적합한 저지연 인코딩을 달성하는 것이 가능해진다.
이처럼, 본 발명의 실시예들에 따르면, 인공지능(AI) 기술을 이용하여 영상의 구간 별로 최적의 인코딩 파라미터를 찾아 압축 효율을 향상시킬 수 있다. 또한, 세그먼트 단위 분석이 아닌, 새로운 이미지 추출 시점에 이전 세그먼트에서 추출한 이미지들과 현재 시점에서 새로 추출한 이미지 한 장을 추가하여 분석을 수행하는 슬라이딩 윈도우 단위 예측을 통해 세그먼트 단위 분석의 지연을 줄일 수 있다. 또한, 인퍼런스들 사이에도 장면이 변환되는 경우에는 CRF와 같은 인코딩 옵션을 예측하여 적용함으로써, 장면 변환에 대응할 수 있다. 또한, 유사한 장면들로 이루어진 세그먼트들을 데이터셋으로 이용하여 학습되는 숏(shot) 기반 세그먼트 모델을 이용하여 각 숏의 특성에 맞는 인코딩 옵션을 보다 정확히 예측할 수 있다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (17)

  1. 적어도 하나의 프로세서를 포함하는 컴퓨터 장치에서 실행되는 인코딩 최적화 방법에 있어서,
    상기 적어도 하나의 프로세서에 의해, 입력 영상의 최초 세그먼트에서 추출된 프레임 이미지에 기본 인코딩 옵션을 적용하여 인코딩을 처리하는 단계;
    상기 적어도 하나의 프로세서에 의해, 인공지능 모델을 이용하여 이전 세그먼트에서 추출된 프레임 이미지로 현재 인코딩 옵션을 결정하는 단계;
    상기 적어도 하나의 프로세서에 의해, 상기 결정된 현재 인코딩 옵션으로 프레임 이미지를 인코딩하는 단계; 및
    상기 적어도 하나의 프로세서에 의해, 장면 전환에 따라 예측된 인코딩 옵션을 통해 상기 장면 전환의 발생 이후의 프레임 이미지를 인코딩하는 단계
    를 포함하는 인코딩 최적화 방법.
  2. 제1항에 있어서,
    상기 장면 전환의 발생 이후의 프레임 이미지를 인코딩하는 단계는,
    매 프레임 이미지에 대해 장면 전환 탐지를 수행하는 단계;
    상기 장면 전환의 발생시 적용할 인코딩 옵션을 예측하는 단계; 및
    상기 예측된 인코딩 옵션으로 상기 장면 전환의 발생 이후의 프레임 이미지를 인코딩하는 단계
    를 포함하는 것을 특징으로 하는 인코딩 최적화 방법.
  3. 제2항에 있어서,
    상기 장면 전환 탐지를 수행하는 단계는,
    상기 결정된 현재 인코딩 옵션으로 프레임 이미지를 인코딩하는 과정에서 프레임 이미지들의 평균 화질을 기록하는 단계;
    상기 기록된 평균 화질에 따른 현재 장면의 이전 장면 대비 복잡도를 계산하는 단계; 및
    상기 계산된 복잡도에 기반하여 장면 전환의 발생시에 적용할 인코딩 옵션을 예측하는 단계
    를 포함하는 것을 특징으로 하는 인코딩 최적화 방법.
  4. 제3항에 있어서,
    상기 평균 화질을 기록하는 단계는,
    프레임 이미지들의 PSNR(Peak Signal-to-Noise Ratio) 및 SSIM(Structural Similarity) 중 적어도 하나를 기록하는 것을 특징으로 하는 인코딩 최적화 방법.
  5. 제3항에 있어서,
    상기 장면 전환의 발생시에 적용할 인코딩 옵션을 예측하는 단계는,
    상기 예측된 인코딩 옵션에 따라 인코딩될 프레임 이미지의 화질이 이전 세그먼트의 화질에 수렴하도록 상기 장면 전환의 발생시에 적용할 인코딩 옵션을 예측하는 것을 특징으로 하는 인코딩 최적화 방법.
  6. 제1항에 있어서,
    상기 장면 전환의 발생 이후의 프레임 이미지를 인코딩하는 단계는,
    장면 전환이 포함되지 않은 숏 단위 세그먼트 데이터셋을 이용하여 학습된 숏 단위 세그먼트 모델을 이용하여 장면 전환에 따라 예측된 인코딩 옵션을 예측하는 것을 특징으로 하는 인코딩 최적화 방법.
  7. 제1항에 있어서,
    상기 현재 인코딩 옵션을 결정하는 단계는,
    상기 인공지능 모델을 이용하여 n(상기 n은 자연수)번째 인퍼런스 시점에 추출된 새로운 프레임 이미지와 이전에 추출된 m(상기 m은 자연수)개의 프레임 이미지들을 포함하는 슬라이딩 윈도우 단위로 현재 인코딩 옵션을 결정하는 것을 특징으로 하는 인코딩 최적화 방법.
  8. 제1항에 있어서,
    상기 인공지능 모델은 각 프레임 이미지에 대한 프레임 피처를 추출하기 위한 CNN(convolution neural network) 모델, 상기 프레임 이미지 간의 관계를 바탕으로 비디오 피처를 추출하기 위한 RNN(recurrent neural network) 모델, 및 상기 비디오 피처에 해당되는 인코딩 옵션을 분류하는 분류기(classifier)를 포함하는 인코딩 옵션 예측 모델로서 상기 CNN 모델과 상기 RNN 모델 및 상기 분류기가 하나의 손실 함수에 대해 E2E(end-to-end) 방식으로 학습되는 것
    을 특징으로 하는 인코딩 최적화 방법.
  9. 제1항에 있어서,
    상기 현재 인코딩 옵션을 결정하는 단계는,
    상기 현재 인코딩 옵션으로서 목표 VMAF(Video Multi-method Assessment Fusion) 점수를 만족하는 CRF(Constant Rate Factor)를 예측하는 단계
    를 포함하는 것을 특징으로 하는 인코딩 최적화 방법.
  10. 제1항에 있어서,
    상기 현재 인코딩 옵션을 결정하는 단계는,
    상기 현재 인코딩 옵션으로서 목표 VMAF 점수를 만족하는 제1 CRF를 예측하는 단계;
    상기 현재 인코딩 옵션으로서 목표 비트레이트를 만족하는 제2 CRF를 예측하는 단계; 및
    상기 제1 CRF와 상기 제2 CRF를 이용하여 상기 입력 영상에 대한 인코딩에 실제 적용할 제3 CRF를 결정하는 단계
    를 포함하는 것을 특징으로 하는 인코딩 최적화 방법.
  11. 제1항 내지 제10항 중 어느 한 항의 인코딩 최적화 방법을 상기 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독가능한 기록 매체에 저장되는 컴퓨터 프로그램.
  12. 컴퓨터 장치에 있어서,
    상기 컴퓨터 장치에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서에 의해,
    입력 영상의 최초 세그먼트에서 추출된 프레임 이미지에 기본 인코딩 옵션을 적용하여 인코딩을 처리하고,
    인공지능 모델을 이용하여 이전 세그먼트에서 추출된 프레임 이미지로 현재 인코딩 옵션을 결정하고,
    상기 결정된 현재 인코딩 옵션으로 프레임 이미지를 인코딩하고,
    장면 전환에 따라 예측된 인코딩 옵션을 통해 상기 장면 전환의 발생 이후의 프레임 이미지를 인코딩하는 것
    을 특징으로 하는 컴퓨터 장치.
  13. 제12항에 있어서,
    상기 적어도 하나의 프로세서에 의해 상기 장면 전환의 발생 이후의 프레임 이미지를 인코딩하기 위해,
    매 프레임 이미지에 대해 장면 전환 탐지를 수행하고,
    상기 장면 전환의 발생시 적용할 인코딩 옵션을 예측하고,
    상기 예측된 인코딩 옵션으로 상기 장면 전환의 발생 이후의 프레임 이미지를 인코딩하는 것
    을 특징으로 하는 컴퓨터 장치.
  14. 제13항에 있어서,
    상기 적어도 하나의 프로세서에 의해 상기 장면 전환 탐지를 수행하기 위해,
    상기 결정된 현재 인코딩 옵션으로 프레임 이미지를 인코딩하는 과정에서 프레임 이미지들의 평균 화질을 기록하고,
    상기 기록된 평균 화질에 따른 현재 장면의 이전 장면 대비 복잡도를 계산하고,
    상기 계산된 복잡도에 기반하여 장면 전환의 발생시에 적용할 인코딩 옵션을 예측하는 것
    을 특징으로 하는 컴퓨터 장치.
  15. 제14항에 있어서,
    상기 적어도 하나의 프로세서에 의해 상기 장면 전환의 발생시에 적용할 인코딩 옵션을 예측하기 위해,
    상기 예측된 인코딩 옵션에 따라 인코딩될 프레임 이미지의 화질이 이전 세그먼트의 화질에 수렴하도록 상기 장면 전환의 발생시에 적용할 인코딩 옵션을 예측하는 것
    을 특징으로 하는 컴퓨터 장치.
  16. 제12항에 있어서,
    상기 적어도 하나의 프로세서에 의해 상기 장면 전환의 발생 이후의 프레임 이미지를 인코딩하기 위해,
    장면 전환이 포함되지 않은 숏 단위 세그먼트 데이터셋을 이용하여 학습된 숏 단위 세그먼트 모델을 이용하여 장면 전환에 따라 예측된 인코딩 옵션을 예측하는 것
    을 특징으로 하는 컴퓨터 장치.
  17. 제12항에 있어서,
    상기 적어도 하나의 프로세서에 의해 상기 현재 인코딩 옵션을 결정하기 위해,
    상기 인공지능 모델을 이용하여 n(상기 n은 자연수)번째 인퍼런스 시점에 추출된 새로운 프레임 이미지와 이전에 추출된 m(상기 m은 자연수)개의 프레임 이미지들을 포함하는 슬라이딩 윈도우 단위로 현재 인코딩 옵션을 결정하는 것
    을 특징으로 하는 컴퓨터 장치.
KR1020220042178A 2022-04-05 2022-04-05 장면 단위 예측 기반의 동영상 인코딩 최적화 방법 및 시스템 KR20230143377A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220042178A KR20230143377A (ko) 2022-04-05 2022-04-05 장면 단위 예측 기반의 동영상 인코딩 최적화 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220042178A KR20230143377A (ko) 2022-04-05 2022-04-05 장면 단위 예측 기반의 동영상 인코딩 최적화 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20230143377A true KR20230143377A (ko) 2023-10-12

Family

ID=88291603

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220042178A KR20230143377A (ko) 2022-04-05 2022-04-05 장면 단위 예측 기반의 동영상 인코딩 최적화 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20230143377A (ko)

Similar Documents

Publication Publication Date Title
US20220239925A1 (en) Method and apparatus for applying deep learning techniques in video coding, restoration and video quality analysis (vqa)
KR102472971B1 (ko) 인공지능 모델을 이용한 동영상 인코딩 최적화 방법, 시스템, 및 컴퓨터 프로그램
US20220030244A1 (en) Content adaptation for streaming
CN109844736B (zh) 概括视频内容
CN110262819B (zh) 一种联邦学习的模型参数更新方法及装置
CN103999471A (zh) 由视频描述长度引导的视频编码的速率-失真-复杂性优化
CN112584119B (zh) 一种基于强化学习的自适应全景视频传输方法及系统
WO2022000298A1 (en) Reinforcement learning based rate control
US20220067417A1 (en) Bandwidth limited context based adaptive acquisition of video frames and events for user defined tasks
CN114900692A (zh) 视频流帧率调整方法及其装置、设备、介质、产品
US20220408097A1 (en) Adaptively encoding video frames using content and network analysis
JP2024511103A (ja) 近似値に基づいて画像又はビデオの品質を評価する方法及び装置、第1のモデルの訓練方法及び装置、電子機器、記憶媒体、並びにコンピュータプログラム
CN110913221A (zh) 一种视频码率预测方法及装置
Micó-Enguídanos et al. Per-title and per-segment CRF estimation using DNNs for quality-based video coding
CN114900506B (zh) 面向用户体验质量的360度视频视口预测方法
KR20230143377A (ko) 장면 단위 예측 기반의 동영상 인코딩 최적화 방법 및 시스템
KR20230140276A (ko) 슬라이딩 윈도우 단위 예측 기반의 동영상 인코딩 최적화 방법 및 시스템
KR20230143429A (ko) 영상 세그먼트 단위의 최적 인코딩 프리셋을 이용한 동영상 인코딩 최적화 방법 및 시스템
KR20230140266A (ko) 단일 인코딩 구조에서 더블 버퍼링을 이용한 동영상 인코딩 최적화 방법 및 시스템
US11481541B2 (en) Techniques for comparing the compression efficiency of encoding configurations
Li et al. JUST360: Optimizing 360-Degree Video Streaming Systems With Joint Utility
Raufmehr et al. A neuro-fuzzy QP estimation approach for H. 266/VVC-based live video broadcasting systems
CN116996661B (zh) 三维视频展示方法、装置、设备及介质
WO2024109138A1 (zh) 视频编码方法、装置及存储介质
EP4141796A1 (en) Methods and systems for encoder parameter setting optimization