KR20210072344A - 전자장치 및 그 제어방법 - Google Patents

전자장치 및 그 제어방법 Download PDF

Info

Publication number
KR20210072344A
KR20210072344A KR1020190162566A KR20190162566A KR20210072344A KR 20210072344 A KR20210072344 A KR 20210072344A KR 1020190162566 A KR1020190162566 A KR 1020190162566A KR 20190162566 A KR20190162566 A KR 20190162566A KR 20210072344 A KR20210072344 A KR 20210072344A
Authority
KR
South Korea
Prior art keywords
region
electronic device
bits
image
complexity
Prior art date
Application number
KR1020190162566A
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 KR1020190162566A priority Critical patent/KR20210072344A/ko
Priority to PCT/KR2020/017399 priority patent/WO2021118149A1/en
Priority to US17/110,505 priority patent/US11394981B2/en
Publication of KR20210072344A publication Critical patent/KR20210072344A/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/115Selection of the code volume for a coding unit prior to coding
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
    • 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/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
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/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/176Methods 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 block, e.g. a macroblock
    • 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/18Methods 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 a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals

Landscapes

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

Abstract

전자장치는, 외부장치와 통신하게 마련된 인터페이스부와, 영상컨텐트의 각 프레임의 영역 별로 영역 내의 영상의 복잡도에 기초한 비트수로 영상컨텐트의 데이터를 인코딩하고, 인코딩된 데이터를 인터페이스부를 통해 외부장치로 전송하도록 하는 프로세서를 포함한다.

Description

전자장치 및 그 제어방법 {ELECTRONIC APPARATUS AND CONTROL METHOD THEREOF}
본 발명은 영상컨텐트 데이터를 소정의 영상포맷으로 인코딩이 가능한 전자장치 및 그 제어방법에 관한 것으로서, 상세하게는 목표 비트율에 맞도록 영상컨텐트 데이터를 압축시키면서도 영상의 화질을 보장하는 인코딩을 수행할 수 있는 전자장치 및 그 제어방법에 관한 것이다.
소정의 정보를 특정 프로세스에 따라서 연산 및 처리하기 위해, 연산을 위한 CPU, 칩셋, 메모리 등의 전자부품들을 기본적으로 포함하는 전자장치는, 처리 대상이 되는 정보 또는 사용 용도가 무엇인지에 따라서 다양한 종류로 구분될 수 있다. 예를 들면, 전자장치에는 범용의 정보를 처리하는 PC나 서버 등의 정보처리장치, 영상컨텐트 데이터를 처리하는 영상처리장치, 오디오신호를 처리하는 오디오장치, 가정 내 잡무를 수행하는 생활가전 등이 있다. 영상처리장치는 영상컨텐트 데이터를 사전 설정된 영상포맷으로 인코딩하여 출력하는 소스기기와, 소스기기로부터 출력되는 인코딩된 데이터를 디코딩하는 싱크기기를 포함한다. 싱크기기가 영상데이터를 자체 구비한 디스플레이 패널(display panel) 상에 영상으로 표시하는 디스플레이장치로 구현되는 경우에, 싱크기기는 디코딩된 데이터에 기반한 영상을 디스플레이 패널에 표시할 수 있다.
소스기기는 데이터를 인코딩함에 있어서, 고정 비트율(Constant Bit Rate) 또는 가변 비트율(Variable Bit Rate)로 인코딩 시의 비트율을 제어할 수 있다. 실시간 영상 스트리밍 서비스를 제공하거나 또는 VOD(Video On Demand) 서비스를 제공하는 경우에는 통상적으로 네트워크 상의 데이터 전송 대역폭에 제한이 있으므로, 일정한 평균 비트율로 인코딩되는 고정 비트율이 적용된다. 반면에, DVD, 블루레이와 같은 광학미디어에 데이터를 인코딩하여 기록하는 경우에는, 상기한 제한이 없고 다만 광학미디어의 저장용량만이 제한사항이므로, 가변 비트율이 적용될 수 있다.
고정 비트율을 적용할 때, 예를 들어 소스기기는 전송 대역폭이 허용하는 범위 내에서 가능한 한 영상의 화질이 보장되도록 목표 비트율을 설정하고, 설정된 목표 비트율에 압축률이 맞추어지도록 영상프레임 단위로 영상컨텐트 데이터를 인코딩한다. 영상컨텐트 데이터 전체에 대해 압축률을 설정하는 경우에는, 영상의 특성에 따라서 압축 후의 데이터량이 영상프레임마다 다르므로, 압축 후에 목표 비트율을 맞추는 것이 쉽지 않다. 압축 후의 데이터량이 목표압축률을 초과하게 되면 데이터의 전송이 곤란하게 될 수 있으며, 압축 후의 데이터량이 목표압축률에 못미치게 되면 영상 품질이 저하될 수 있다.
이러한 관점에서, 소스기기가 영상의 화질의 저하를 최소화시키면서도 용이하게 영상컨텐트 데이터를 목표 비트율로 인코딩하는 방법이 요구될 수 있다.
본 발명의 실시예에 따른 전자장치는, 외부장치와 통신하게 마련된 인터페이스부와, 영상컨텐트의 각 프레임의 영역 별로 상기 영역 내의 영상의 복잡도에 기초한 비트수로 상기 영상컨텐트의 데이터를 인코딩하고, 상기 인코딩된 데이터를 상기 인터페이스부를 통해 상기 외부장치로 전송하도록 하는 프로세서를 포함한다.
또한, 상기 프로세서는, 상기 프레임의 제1영역을 제1비트수로 인코딩하고, 상기 프레임의 제1영역보다 상기 복잡도가 높은 상기 프레임의 제2영역을 상기 제1비트수보다 큰 제2비트수로 인코딩할 수 있다.
또한, 상기 영상의 복잡도는 상기 영역 내의 영상의 주파수 특성에 기초하여 정해질 수 있다.
또한, 상기 프로세서는, 상기 프레임 내 영상의 주파수 특성이 서로 다른 복수의 영역을 식별하고, 상기 식별된 각 영역 별로 해당 영역의 주파수 특성에 대응하는 비트수를 할당할 수 있다.
또한, 상기 프로세서는, 주파수 성분에 따라서 복수의 기준값이 분포된 블록에 기초하여, 상기 프레임 내 영상의 주파수 특성이 서로 다른 복수의 영역을 식별할 수 있다.
또한, 상기 프로세서는, 상기 식별된 각 영역 별로 주파수 성분의 에너지의 크기에 기초하여 상기 비트수를 할당할 수 있다.
또한, 상기 프로세서는, 상기 영상의 복잡도에 관하여 학습된 모델에 기초하여 상기 비트수를 정할 수 있다.
또한, 상기 모델은 학습영상을 기 정의된 비트수로 인코딩하여 획득된 기준영상에 기초하여 학습될 수 있다.
또한, 상기 프로세서는, 목표 비트율을 식별하고, 상기 식별된 목표 비트율에 기초하여 상기 인코딩할 비트수를 정할 수 있다.
또한, 상기 프로세서는, 상기 영역에 대해 정해진 비트수에 반비례하도록 마련된 양자화 패러미터를 도출하고, 상기 도출된 양자화 패러미터에 따라서 상기 영역의 데이터를 인코딩할 수 있다.
또한, 본 발명의 실시예에 따른 전자장치의 제어방법은, 영상컨텐트를 획득하는 단계와, 상기 영상컨텐트의 각 프레임의 영역 별로 상기 영역 내의 영상의 복잡도에 기초한 비트수로 상기 영상컨텐트의 데이터를 인코딩하는 단계와, 상기 인코딩된 데이터를 상기 외부장치로 전송하는 단계를 포함한다.
도 1은 복수의 전자장치가 상호 통신 가능하게 연결된 모습을 나타내는 예시도이다.
도 2는 전자장치의 구성 블록도이다.
도 3은 전자장치의 제어방법을 나타내는 플로우차트이다.
도 4는 전자장치가 영상프레임을 복잡도에 기반하여 복수의 영역으로 분할한 상태를 나타내는 예시도이다.
도 5는 전자장치가 AI 모델링 기법에 따라서 영상프레임을 복수의 영역으로 구분하는 원리를 나타내는 예시도이다.
도 6은 전자장치가 DCT 주파수 성분의 분석기법에 따라서 영상프레임을 복수의 영역으로 구분하는 원리를 나타내는 예시도이다.
이하에서는 첨부도면을 참조하여 본 발명에 따른 실시예들에 관해 상세히 설명한다. 각 도면을 참조하여 설명하는 실시예들은 특별한 언급이 없는 한 상호 배타적인 구성이 아니며, 하나의 장치 내에서 복수 개의 실시예가 선택적으로 조합되어 구현될 수 있다. 이러한 복수의 실시예의 조합은 본 발명의 기술분야에서 숙련된 기술자가 본 발명의 사상을 구현함에 있어서 임의로 선택되어 적용될 수 있다.
만일, 실시예에서 제1구성요소, 제2구성요소 등과 같이 서수를 포함하는 용어가 있다면, 이러한 용어는 다양한 구성요소들을 설명하기 위해 사용되는 것이며, 용어는 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용되는 바, 이들 구성요소는 용어에 의해 그 의미가 한정되지 않는다. 실시예에서 사용하는 용어는 해당 실시예를 설명하기 위해 적용되는 것으로서, 본 발명의 사상을 한정하지 않는다.
또한, 본 명세서에서의 복수의 구성요소 중 "적어도 하나(at least one)"라는 표현이 나오는 경우에, 본 표현은 복수의 구성요소 전체 뿐만 아니라, 복수의 구성요소 중 나머지를 배제한 각 하나 혹은 이들의 조합 모두를 지칭한다.
도 1은 복수의 전자장치가 상호 통신 가능하게 연결된 모습을 나타내는 예시도이다.
도 1에 도시된 바와 같이, 복수의 전자장치(110, 120, 130, 140)는 광역 네트워크 또는 로컬 네트워크를 통해 상호간에 통신에 가능하도록 연결된다. 다양한 종류의 네트워크 하에서, 각 전자장치(110, 120, 130, 140)는 타 전자장치(110, 120, 130, 140)에 영상컨텐트 데이터를 제공할 수 있다. 본 실시예에서는 서버(110), AP(120), 영상처리장치(130), 디스플레이장치(140)의 네 가지 전자장치(110, 120, 130, 140)를 예시로 들고 있지만, 전자장치(110, 120, 130, 140)는 이러한 예시로 한정되지 않는다. 전자장치(110, 120, 130, 140)는 TV, 컴퓨터 모니터, 전자칠판, 디지털 사이니지(signage), 전자액자, 셋탑박스, 비디오 월(video wall), 휴대용 멀티미디어 재생기기, 광학미디어 재생기기, 웨어러블 디바이스, 태블릿, 모바일기기, 호스트장치 등과 같이, 영상컨텐트를 처리 가능한 다양한 종류의 장치가 될 수 있다.
이러한 복수의 전자장치(110, 120, 130, 140) 중에서, 역할에 따라서 영상컨텐트를 제공하는 측은 소스기기로, 영상컨텐트를 제공받는 측은 싱크기기로 각기 구분하여 지칭될 수 있다. 예를 들어 싱크기기로서의 디스플레이장치(140)는 다양한 종류의 소스기기로부터, 다양한 종류의 전송방식에 따라서 영상컨텐트 데이터를 수신한다.
디스플레이장치(140)가 AP(120)를 통해 와이파이 방식에 따라서 서버(110)와 연결될 때, 소스기기로서의 서버(110)는 영상컨텐트 데이터를 스트리밍 방식으로 AP(120)를 거쳐서 디스플레이장치(140)에 전송할 수 있다. 또는, 서버(110)는 LTE(Long Term Evolution) 등과 같은 이동통신을 통해 디스플레이장치(140)에 영상컨텐트 데이터를 전송할 수 있다.
그러나, 소스기기로서의 역할을 광역 네트워크 상의 서버(110)만이 수행할 수 있는 것은 아니다. 예를 들면, 동일한 AP(120)에 연결된 영상처리장치(130) 및 디스플레이장치(140)가 있다고 할 때, 소스기기로서의 영상처리장치(130)는 영상컨텐트 데이터를 AP(120)를 통해 디스플레이장치(140)에 전송할 수 있다. 또는, 영상처리장치(130)는 AP(120)를 통하지 않고, BT(Bluetooth), BLE(Bluetooth Low Energy) 등과 같은 Peer-to-Peer 무선통신에 의해 영상컨텐트 데이터를 디스플레이장치(140)에 전송할 수도 있다. 또는, 복수의 디스플레이장치(140)의 조합에 의해 구현된 비디오 월이 있는 경우에, 비디오 월의 호스트장치 또는 메인 영상처리장치가 소스기기가 되고, 복수의 디스플레이장치(140)가 싱크기기가 될 수 있다.
이와 같이 다양한 종류의 전자장치(110, 120, 130, 140)가 다양한 방식으로 영상컨텐트를 제공하고 또 제공받을 수 있다. 이 때, 전자장치(110, 120, 130, 140) 중 소스기기는 무선통신환경의 사용 가능한 대역폭의 제한 등의 요인을 고려하여, 영상컨텐트 데이터를 사전 설정된 목표 비트율에 대응하는 압축률로 인코딩하고, 인코딩된 데이터를 싱크기기에 전송한다. 소스기기가 데이터를 인코딩하는 방법에 관해서는 후술한다.
이하, 전자장치(110, 120, 130, 140)의 구성에 관해 설명한다.
도 2는 전자장치의 구성 블록도이다.
도 2에 도시된 바와 같이, 전자장치(200)는 동작에 필요한 여러 하드웨어적 구성요소들을 포함한다. 전자장치(200)가 포함하는 구성요소는 본 예시만으로 한정되는 것은 아니며, 전자장치(200)의 구현 시에 필요에 따라서 추가적인 구성을 더 포함할 수도 있고, 또는 본 예시에서 나타내는 일부 구성을 포함하지 않을 수도 있다. 예를 들면, 전자장치(200)는 영상을 표시하기 위한 디스플레이 패널을 추가로 가질 수도 있다.
본 실시예의 전자장치(200)는 영상컨텐트 데이터를 전송하는 소스기기로 동작한다. 외부장치(205)는 전자장치(200)로부터 영상컨텐트 데이터를 수신하는 싱크기기로 동작한다. 외부장치(205)는 영상컨텐트 데이터를 영상으로 표시 가능하도록 디코딩하는 동작 이외에는, 본 실시예에서의 전자장치(200) 또는 통상적인 디스플레이장치와 기본적인 구성이 유사하므로, 자세한 설명을 생략한다.
전자장치(200)는 인터페이스부(210)를 포함할 수 있다. 인터페이스부(210)는 전자장치(200)가 외부장치(205)를 비롯한 다양한 종류의 장치 및 서버와 통신을 수행하고, 또한 데이터를 송수신하기 위한 인터페이스 회로를 포함한다. 인터페이스부(210)는 접속 방식에 따라서, 유선 통신연결을 위한 하나 이상의 유선인터페이스부(211)와, 무선 통신연결을 위한 하나 이상의 무선인터페이스부(212)를 포함한다.
유선인터페이스부(211)는 기 정의된 전송규격의 케이블이 접속되는 커넥터 또는 포트를 포함한다. 예를 들면, 유선인터페이스부(211)는 방송신호를 수신하도록 지상파 또는 위성방송 안테나에 접속되거나 케이블방송의 케이블이 접속되는 포트를 포함한다. 또는, 유선인터페이스부(211)는 다양한 영상처리장치와 접속하도록 HDMI, DP, DVI, 컴포넌트, 컴포지트, S-Video, 썬더볼트 등 다양한 유선전송규격의 케이블이 접속되는 포트를 포함한다. 또는, 유선인터페이스부(211)는 USB 기기와 접속하기 위한 USB 규격의 포트를 포함한다. 또는, 유선인터페이스부(211)는 광케이블이 접속되는 광포트를 포함한다. 또는, 유선인터페이스부(211)는 외부 마이크로폰이 접속되는 오디오 입력 포트와, 헤드셋, 이어폰, 외부 스피커 등이 접속되는 오디오 출력 포트를 포함한다. 또는, 유선인터페이스부(211)는 광역 네트워크에 접속하기 위해 게이트웨이, 라우터, 허브 등에 접속하는 이더넷 포트를 포함한다.
무선인터페이스부(212)는 다양한 종류의 무선통신 프로토콜에 대응하는 통신모듈, 통신칩 등의 구성요소들 중 적어도 하나 이상을 포함하는 양방향 통신회로를 포함한다. 예를 들면, 무선인터페이스부(212)는 와이파이 방식에 따라서 AP와 무선통신을 수행하는 와이파이 통신칩과, 블루투스, Zigbee, Z-Wave, WirelessHD, WiGig, NFC 등의 무선통신을 수행하는 통신칩, IR 통신을 위한 IR 모듈, 모바일기기와 이동통신을 수행하는 이동통신칩 등을 포함한다.
전자장치(200)는 사용자입력부(220)를 포함할 수 있다. 사용자입력부(220)는 사용자의 입력을 수행하기 위해 사용자가 조작할 수 있도록 마련된 다양한 종류의 사용자 입력 인터페이스 관련 회로를 포함한다. 사용자입력부(220)는 전자장치(200)의 종류에 따라서 여러 가지 형태의 구성이 가능하며, 예를 들면 전자장치(200)의 기계적 또는 전자적 버튼부, 터치패드, 센서, 카메라, 터치스크린, 전자장치(200)의 본체와 분리된 리모트 컨트롤러 등이 있다.
전자장치(200)는 저장부(230)를 포함할 수 있다. 저장부(230)는 디지털화된 데이터를 저장한다. 저장부(230)는 전원의 제공 유무와 무관하게 데이터를 보존할 수 있는 비휘발성 속성의 스토리지(storage)와, 프로세서(240)에 의해 처리되기 위한 데이터가 로딩되며 전원이 제공되지 않으면 데이터를 보존할 수 없는 휘발성 속성의 메모리(memory)를 포함한다. 스토리지에는 플래시메모리(flash-memory), HDD(hard-disc drive), SSD(solid-state drive) ROM(Read Only Memory) 등이 있으며, 메모리에는 버퍼(buffer), 램(RAM; Random Access Memory) 등이 있다.
전자장치(200)는 프로세서(240)를 포함할 수 있다. 프로세서(240)는 인쇄회로기판 상에 장착되는 CPU, 칩셋, 버퍼, 회로 등으로 구현되는 하나 이상의 하드웨어 프로세서를 포함하며, 설계 방식에 따라서는 SOC(system on chip)로 구현될 수도 있다. 프로세서(240)는 멀티플렉서, 비디오 인코더, 오디오 인코더 등의 다양한 프로세스에 대응하는 모듈들을 포함한다. 여기서, 이러한 모듈들 중 일부 또는 전체가 SOC로 구현될 수 있다.
프로세서(240)는 인터페이스부(210)를 통해 외부로부터 수신되거나 또는 저장부(230)에 저장된 영상컨텐트 데이터를 획득한다. 프로세서(240)는 목표 비트율에 맞도록 데이터를 인코딩하고, 인코딩된 데이터를 인터페이스부(210)를 통해 외부장치(205)에 전송한다. 이로써, 외부장치(205)는 전자장치(200)로부터 수신되는 인코딩된 데이터를 디코딩하고, 디코딩된 데이터를 영상으로 표시할 수 있다.
그런데, 영상컨텐트 데이터가 포함하는 복수의 영상프레임은 영상정보량이 균일하지 않으므로, 본 실시예에 따른 프로세서(240)는 다음과 같은 방법에 따라서 영상 화질을 높이면서도 영상컨텐트 데이터를 목표 비트율에 맞게 인코딩시킨다.
도 3은 전자장치의 제어방법을 나타내는 플로우차트이다.
도 3에 도시된 바와 같이, 이하 동작은 영상컨텐트 데이터를 인코딩하는 경우에 전자장치의 프로세서에 의해 수행된다.
310 단계에서 전자장치는 영상컨텐트 데이터를 획득한다. 여기서, 획득하는 영상컨텐트 데이터는 인코딩되지 않은 RAW 데이터일 수 있다.
320 단계에서 전자장치는 영상컨텐트 데이터의 영상프레임을 영상의 복잡도에 따라서 복수의 영역으로 구분한다.
330 단계에서 전자장치는 각 복잡도에 대응하여 상이하게 정해진 비트수를 식별한다.
340 단계에서 전자장치는 영상프레임의 각 영역 별로 식별된 비트수로 해당 영상프레임의 데이터를 인코딩한다. 즉, 본 실시예에 따르면, 하나의 영상프레임 전체영역에 동일한 비트수가 할당되는 것이 아니라, 영상프레임의 복잡도에 따른 영역 별로 상이한 비트수가 할당된다.
350 단계에서 전자장치는 현재 주기에서 인코딩할 다음 영상프레임이 있는지 여부를 식별한다. 여기서, 현재 주기는 전자장치가 데이터를 인코딩하여 누적시키고, 누적된 데이터를 외부장치에 전송하는 주기를 나타낸다. 예를 들면, 전자장치는 영상컨텐트 데이터의 전체 재생구간 중에서 소정 구간의 데이터를 인코딩하여 전송하는 단위 동작을 반복하며, 상기한 주기는 하나의 단위 동작이 수행되는 시기를 나타낸다.
현재 주기에서 인코딩할 다음 영상프레임이 있으면, 360 단계에서 전자장치는 다음 영상프레임을 선택하고, 320 단계로 이행한다.
반면에, 현재 주기에서 인코딩할 다음 영상프레임이 없으면, 370 단계에서 전자장치는 인코딩된 데이터를 외부장치에 전송한다.
이로써, 전자장치는 목표 비트율로 영상컨텐트 데이터를 인코딩하면서도, 인코딩 시 발생하는 영상 화질의 열화를 최소화할 수 있다.
한편, 전자장치의 프로세서는 상기와 같이 각 영상프레임의 복수의 영역 별로 영상의 복잡도에 기초하여 정해지는 비트수로 영상컨텐트의 데이터를 인코딩하고, 인코딩된 데이터를 외부장치로 전송하는 동작을 수행하기 위한 데이터 분석, 처리, 및 결과 정보 생성 중 적어도 일부를 규칙 기반 또는 인공지능(Artificial Intelligence) 알고리즘으로서 기계학습, 신경망 네트워크(neural network), 또는 딥러닝 알고리즘 중 적어도 하나를 이용하여 수행할 수 있다.
일 예로, 전자장치의 프로세서는 학습부 및 인식부의 기능을 함께 수행할 수 있다. 학습부는 학습된 신경망 네트워크를 생성하는 기능을 수행하고, 인식부는 학습된 신경망 네트워크를 이용하여 데이터를 인식(또는, 추론, 예측, 추정, 판단)하는 기능을 수행할 수 있다. 학습부는 신경망 네트워크를 생성하거나 갱신할 수 있다. 학습부는 신경망 네트워크를 생성하기 위해서 학습 데이터를 획득할 수 있다. 일 예로, 학습부는 학습 데이터를 전자장치의 저장부 또는 외부로부터 획득할 수 있다. 학습 데이터는, 신경망 네트워크의 학습을 위해 이용되는 데이터일 수 있으며, 상기한 동작을 수행한 데이터를 학습데이터로 이용하여 신경망 네트워크를 학습시킬 수 있다.
학습부는 학습 데이터를 이용하여 신경망 네트워크를 학습시키기 전에, 획득된 학습 데이터에 대하여 전처리 작업을 수행하거나, 또는 복수 개의 학습 데이터들 중에서 학습에 이용될 데이터를 선별할 수 있다. 일 예로, 학습부는 학습 데이터를 기 설정된 포맷으로 가공하거나, 필터링하거나, 또는 노이즈를 추가/제거하여 학습에 적절한 데이터의 형태로 가공할 수 있다. 학습부는 전처리된 학습 데이터를 이용하여 상기한 동작을 수행하도록 설정된 신경망 네트워크를 생성할 수 있다.
학습된 신경망 네트워크는, 복수의 신경망 네트워크(또는, 레이어)들로 구성될 수 있다. 복수의 신경망 네트워크의 노드들은 가중치를 가지며, 복수의 신경망 네트워크들은 일 신경망 네트워크의 출력 값이 다른 신경망 네트워크의 입력 값으로 이용되도록 서로 연결될 수 있다. 신경망 네트워크의 예로는, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN (Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks)과 같은 모델을 포함할 수 있다.
한편 인식부는 상기한 동작을 수행하기 위해, 타겟 데이터를 획득할 수 있다. 타겟 데이터는 전자장치의 저장부 또는 외부로부터 획득된 것일 수 있다. 타겟 데이터는 신경망 네트워크의 인식 대상이 되는 데이터일 수 있다. 인식부는 타겟 데이터를 학습된 신경망 네트워크에 적용하기 전에, 획득된 타겟 데이터에 대하여 전처리 작업을 수행하거나, 또는 복수 개의 타겟 데이터들 중에서 인식에 이용될 데이터를 선별할 수 있다. 일 예로, 인식부는 타겟 데이터를 기 설정된 포맷으로 가공하거나, 필터링 하거나, 또는 노이즈를 추가/제거하여 인식에 적절한 데이터의 형태로 가공할 수 있다. 인식부는 전처리된 타겟 데이터를 신경망 네트워크에 적용함으로써, 신경망 네트워크로부터 출력되는 출력값을 획득할 수 있다. 인식부는 출력값과 함께, 확률값 또는 신뢰도값을 획득할 수 있다.
전자장치의 상기한 동작은 다음과 같이 재분류될 수 있다. 전자장치는, 영상프레임을 영상의 복잡도에 기반하여 복수의 영역으로 분할하는 영역분할단계, 분할된 복수의 영역 별로 비트수를 할당하는 비트수 할당단계, 할당된 비트율에 대응하는 인코딩 패러미터를 식별하는 패러미터 식별단계, 식별된 인코딩 패러미터에 따라서 영상프레임의 인코딩을 수행하는 인코딩 실행단계를 수행한다. 앞선 플로우차트에서, 320 단계는 영역분할단계, 330 단계는 비트수 할당단계, 340 단계는 패러미터 식별단계 및 인코딩 실행단계에 각각 해당한다.
이하, 전자장치가 비트수 할당단계를 수행하는 예시에 관해 설명한다.
도 4는 전자장치가 영상프레임을 복잡도에 기반하여 복수의 영역으로 분할한 상태를 나타내는 예시도이다.
도 4에 도시된 바와 같이, 전자장치는 영상컨텐트 데이터에서 처리 대상인 일 영상프레임(410)을 획득하고, 획득한 영상프레임(410)의 전체영역을 영상의 복잡도에 기반하여 복수의 영역(421, 422, 423, 424)으로 분할하여 인식한다. 전자장치가 실제로 동작할 때에 반드시 영역 분할된 영상프레임(420)을 생성한다는 의미는 아니고, 영역 분할된 영상프레임(420)은 단지 전자장치가 영상프레임(410)을 처리하는 원리를 나타내기 위해 편의상 도시된 것이다.
본 실시예에서는 영상프레임(410)의 전체영역을 복잡도에 따라서 네 가지 영역(421, 422, 423, 424)으로 분할하였다. 영상프레임(420)은 복잡도가 높은 순서대로, 높은 복잡도 영역(421), 제1중간복잡도 영역(422), 제2중간복잡도 영역(423), 낮은 복잡도 영역(424)으로 분할될 수 있다. 복잡도에 따라서 분할되는 영역(421, 422, 423, 424)의 개수는 반드시 네 가지로 한정되는 것은 아니며, 설계 방식에 따라서 달라질 수 있다.
영상프레임(420)의 일 영역(421, 422, 423, 424)에서 복잡도는, 해당 영역(421, 422, 423, 424)이 포함하는 영상정보량, 또는 해당 영역(421, 422, 423, 424) 내 픽셀들이 가지는 픽셀값의 분포도에 비례한다. 어느 영역(421, 422, 423, 424)에서 복잡도가 높다는 것은, 해당 영역(421, 422, 423, 424)이 포함하는 영상정보량이 많다는 것을 나타낸다. 반대로, 어느 영역(421, 422, 423, 424)에서 복잡도가 낮다는 것은, 해당 영역(421, 422, 423, 424)이 포함하는 영상정보량이 적다는 것을 나타낸다.
이와 같이 영상프레임(420)이 복잡도에 따라서 복수의 영역(421, 422, 423, 424)으로 분할되면, 전자장치는 각 복잡도에 대응하는 비트수를 식별한다. 전자장치는 식별된 복수의 비트수를 각 영역(421, 422, 423, 424)에 할당한다. 비트수의 할당은, 영상 인코딩의 영상포맷 별 최소단위인 단위블록으로 이루어진다. 단위블록은 영상포맷에 따라서 상이할 수 있는데, H.264 포맷의 경우에는 매크로블록으로 지칭되며, HEVC 포맷의 경우에는 코딩유닛으로 지칭된다.
하나의 영상프레임(410)에는 목표 비트율이 할당되어 있다. 전자장치는 복수의 영역(421, 422, 423, 424) 중에서, 복잡도가 상대적으로 높은 영역에는 비트수를 상대적으로 많이 할당하고, 복잡도가 상대적으로 낮은 영역에는 비트수를 상대적으로 적게 할당한다. 즉, 한정된 목표 비트율의 범위 내에서 복잡도에 따라서 비트수를 상이하게 할당함으로써, 전자장치는 영상프레임(410)을 목표 비트율로 용이하게 인코딩하면서도 화질 열화를 최소화할 수 있다.
예를 들면, 전자장치는 다음과 같은 수식에 따라서 각 영역(421, 422, 423, 424)에 비트수를 할당할 수 있다.
B_frame = (W_h*N_h + W_1*N_1 + W_2*N_2 + ... + 1*N_f) * B
위 수식에서, B_frame은 영상프레임(410)에 사전 할당된 비트수, 즉 목표 비트율에 해당한다. B는 단위블록 당 할당되는 비트수이다. "*"는 곱셈기호이다.
N_h, N_1, N_2, ..., N_f는 복잡도 별로 분할된 각 영역(421, 422, 423, 424)에 속하는 단위블록의 개수를 나타내며, 복잡도는 N_h > N_1 > N_2 > ... > N_f 이다. 본 실시예의 경우에 N_h는 높은 복잡도 영역(421)에 속하는 단위블록의 개수, N_1는 제1중간복잡도 영역(422)에 속하는 단위블록의 개수, N_2는 제2중간복잡도 영역(423)에 속하는 단위블록의 개수, N_f는 낮은 복잡도 영역(424)에 속하는 단위블록의 개수에 해당한다.
W_h, W_1, W_2는 복잡도 별로 분할된 각 영역(421, 422, 423, 424)에 지정된 가중치를 나타낸다. 이들 값은 사전에 정의된 값으로서, 1 <= ... <= W_2 <= W_1 <= W_h 를 만족한다. 본 실시예의 경우에 W_h는 높은 복잡도 영역(421)에 지정된 가중치, W_1은 제1중간복잡도 영역(422)에 지정된 가중치, W_2는 제2중간복잡도 영역(423)에 지정된 가중치이다. 이와 같이 가중치를 설정하면, 복잡도가 높은 영역일수록 많은 비트수를 필요로 한다. 따라서, 본 실시예는 모든 영역에 동일한 비트수를 할당하는 것에 비해, 제한된 비트율 내에서 인코딩된 데이터의 품질을 높일 수 있다.
이하, 전자장치가 패러미터 식별단계를 수행하는 예시에 관해 설명한다.
통상적으로 인코딩 과정에서는 인코딩 패러미터가 사용된다. 인코딩 패러미터가 조정되면, 결과적으로 인코딩된 데이터의 품질 및 데이터량이 달라진다. 인코딩 패러미터는 예를 들면 양자화 패러미터(quantization parameter; QP)를 포함한다.
물리적인 의미로의 양자화는, 연속적이지 않고 이산적인 물리량으로 변환시키는 동작을 나타내며, 통신적인 의미로의 양자화는 아날로그 신호의 표본화된 진폭값을 특정 이산값으로 바꾸는 동작을 나타낸다. 인코딩 동작은 본질적으로 손실압축에 해당하므로, 이를 고려하면 인코딩에서의 양자화는 픽셀값 단계를 줄이는 것을 나타낸다. 예를 들어 RAW 데이터에서 픽셀값이 0부터 255까지 총 256단계로 구분된다고 할 때, 인코딩에 의해 원래의 256단계가 128단계로 줄어든다고 가정한다. 이 경우에 픽셀값은 0, 1, 2, ..., 254, 255로 구분되는 것이 아닌, 1, 3, 5, ..., 253, 255와 같이 구분될 것이다. 픽셀값의 256단계가 아닌 128단계로 구분하기만 하면 되므로, 인코딩된 데이터는 RAW 데이터에 비해 영상정보량을 확연히 줄일 수 있다. 이와 같이, 인코딩 시 데이터량을 줄이기 위해, 원래 데이터의 대푯값을 재조정하는 방법을 양자화라고 볼 수 있다.
인코딩 시 양자화 패러미터의 레벨이 높게 반영되었다는 것은 대푯값의 재조정이 많이 수행되었다는 것이므로, 인코딩된 데이터의 화질의 손실이 크고 인코딩된 데이터량의 감소폭이 크다. 반면에 인코딩 시 양자화 패러미터의 레벨이 낮게 반영되었다는 것은 대푯값의 재조정이 적게 수행되었다는 것이므로, 인코딩된 데이터량의 감소폭이 작고 인코딩된 데이터의 화질 손실이 적다.
본 실시예에서의 패러미터 식별단계에서, 전자장치는 각 영역(421, 422, 423, 424) 별로 비트수가 할당되면, 전자장치는 할당된 비트수에 기초하여 인코딩 패러미터를 산출하고, 산출된 인코딩 패러미터에 따라서 해당 영역(421, 422, 423, 424)에 대한 인코딩을 수행한다. 각 영역(421, 422, 423, 424) 별 인코딩 패러미터는 다음 식을 만족한다.
QP_h = C_h / R_h
QP_1 = C_1 / R_1
QP_2 = C_2 / R_2
...
QP_f = C_f / R_f
위 수식에서, QP_h, QP_1, QP_2, ... , QP_h는 복잡도에 따른 각 영역(421, 422, 423, 424) 별 양자화 패러미터를 나타낸다. 복잡도 측면에서 보면 QP_h > QP_1 > QP_2 > ... > QP_f이다. 본 실시예의 경우에 QP_h은 높은 복잡도 영역(421)에 대한 양자화 패러미터, QP_1은 제1중간복잡도 영역(422)에 대한 양자화 패러미터, QP_2는 제2중간복잡도 영역(423)에 대한 양자화 패러미터, QP_f는 낮은 복잡도 영역(424)에 대한 양자화 패러미터를 나타낸다.
C_h, C_1, C_2, ... , C_f는 각 영역(421, 422, 423, 424) 별로 기 정의된 모델 상수이다. 본 실시예의 경우에 C_h은 높은 복잡도 영역(421)에 대한 모델 상수, C_1은 제1중간복잡도 영역(422)에 대한 모델 상수, C_2는 제2중간복잡도 영역(423)에 대한 모델 상수, C_f는 낮은 복잡도 영역(424)에 대한 모델 상수를 나타낸다. "/"은 나눗셈기호이다.
R_h, R_1, R_2, ... , R_f는 각 영역(421, 422, 423, 424)에 할당되는 비트수이다. 본 실시예의 경우에 R_h은 높은 복잡도 영역(421)에 할당되는 비트수, R_1은 제1중간복잡도 영역(422)에 할당되는 비트수, R_2는 제2중간복잡도 영역(423)에 할당되는 비트수, R_f는 낮은 복잡도 영역(424)에 할당되는 비트수를 나타낸다.
양자화 패러미터는 비트율과 반비례 관계에 있으므로, 복잡도가 높은 영역일수록 상대적으로 낮은 레벨의 양자화 패러미터가 적용되고, 복잡도가 낮은 영역일수록 상대적으로 높은 레벨의 양자화 패러미터가 적용된다. 즉, 복잡도가 높은 영역은 많은 정보량을 가지므로, 인코딩에 의한 손실압축 시 화질 저하가 심하게 나타나는 영역이다. 따라서, 복잡도가 높은 영역에 대해서는 정보량의 보존 레벨이 높아지도록 낮은 양자화가 반영된다. 반면에, 복잡도가 낮은 영역은 적은 정보량을 가지므로, 인코딩에 의한 손실압축 시 화질 저하가 상대적으로 크게 나타나지 않는다. 따라서, 복잡도가 낮은 영역에 대해서는 데이터 압축률을 높일 수 있도록 높은 양자화가 반영된다.
이와 같이, 전자장치는 복잡도에 따른 각 영역(421, 422, 423, 424)에 대해 상이한 양자화 패러미터를 적용함으로써, 화질 손실을 최소화하면서 목표 비트율에 맞도록 인코딩을 수행할 수 있다. 양자화 패러미터의 계산은 영역(421, 422, 423, 424) 단위로 할 수도 있고, 보다 세밀한 비트율 제어가 필요한 경우에 단위블록 단위로 할 수도 있다.
한편, 영역분할단계는 설계 방식에 따라서 여러 가지 방법이 적용될 수 있다. 예를 들면, DNN(Deep Neural Network) 기반의 Segmentation 기법과 같은 AI 모델링 기법, 또는 DCT(Discrete Cosine Transform) 주파수 성분의 분석기법 등이 영역분할단계에 적용될 수 있다. 이러한 기법들이 적용된 실시예에 관해서는 후술한다.
이하, AI 모델링 기법에 따라서 전자장치가 영상프레임을 복잡도에 따라서 복수의 영역으로 구분하는 방법에 관해 설명한다.
도 5는 전자장치가 AI 모델링 기법에 따라서 영상프레임을 복수의 영역으로 구분하는 원리를 나타내는 예시도이다.
도 5에 도시된 바와 같이, AI 모델링 기법에 따라서 소정의 영상프레임을 영상의 복잡도에 기반하여 복수의 영역으로 구분하는 방법은, 먼저 AI 모델(531)을 구현하는 모델생성단계(510)와, 구현된 AI 모델(531)을 사용하여 영상프레임을 복수의 영역으로 구분하는 인코딩단계(540)로 구분된다. 전자장치는 모델생성단계(510) 및 인코딩단계(540)를 모두 수행할 수도 있다. 또는 전자장치는 인코딩단계(540)만을 수행하고, 서버 등의 타 장치가 모델생성단계(510)을 수행하여 전자장치에 AI 모델(531)을 제공할 수도 있다. 전자장치는 AI 모델(531)을 저장하고 있을 수 있고, 또는 타 장치에 저장된 AI 모델(531)을 인코딩 시에 참조하도록 마련될 수도 있다.
모델생성단계(510)는 학습영상(511)을 복잡도에 따라서 영역 별로 분할시킨 기준영상(512)을 획득하는 기준영상생성단계(520)와, 기준영상(512)에 기초하여 다양한 학습영상(511)에 의해 AI 모델(531)을 학습시키는 모델학습단계(530)를 포함한다.
기준영상생성단계(520)에서, 전자장치는 복수의 학습영상(511)을 동일한 양자화 패러미터로 인코딩한다(521). 이와 같이 여러 학습영상(511)을 동일한 양자화 패러미터로 인코딩하면, 전자장치는 영상프레임 단위로 발생하는 비트를 비교함으로써 영상의 복잡도를 상대적으로 비교할 수 있다.
전자장치는 영상프레임 단위로 비트량을 분석한다(522). 특정 영상프레임을 기 정의된 양자화 패러미터로 인코딩하여 발생한 비트수를 K[bits]라고 하고, 해당 영상프레임에 포함된 매크로블록 또는 코딩유닛과 같은 단위블록의 수를 L개라고 가정한다. 이 때, 해당 영상프레임의 단위블록의 평균 비트수는 K/L[bits/block]이다. 이와 같이 산출된 단위블록당 평균 비트수가 기준값으로 설정된다.
전자장치는 분석된 비트량에 따라서 영상프레임을 복수의 영역으로 분할한다(523). 전자장치는 영상프레임의 실제 단위블록 단위로 인코딩하여 발생한 비트수를 기준값과 비교하여, 단위블록이 기준값보다 많은 비트수가 필요한 영역인지 아닌지 여부를 구분한다. 즉, 전자장치는 인코딩 시 필요한 비트수가 높은 영역을 복잡도가 높은 영역으로 보고, 인코딩 시 필요한 비트수가 낮은 영역을 복잡도가 낮은 영역으로 본다.
예를 들어 복잡도에 따른 영역들을 복잡도의 순서대로 높은 복잡도 영역, 제1중간복잡도 영역, 제2중간복잡도 영역, 낮은 복잡도 영역의 4단계로 구분한다고 가정한다. 전자장치는 영상의 복잡도에 따라서 영상프레임을 다음과 같이 복수의 영역으로 구분할 수 있다.
B_block > M_1*K/L ; 높은 복잡도 영역
M_1*K/L >= B_block > M_2*K/L ; 제1중간복잡도 영역
M_2*K/L >= B_block > M_3*K/L ; 제2중간복잡도 영역
M_3*K/L >= B_block ; 낮은 복잡도 영역
B_block은 영상프레임을 인코딩할 때 각 단위블록에서 실제 발생한 인코딩 비트수이다. M_1, M_2, M_3은 사전 정의된 상수이며, M_1 > M_2 > M_3을 만족한다. "*"는 곱셈기호이다.
예를 들어 M_1=1.5, M_2=1.0, M_3=0.5로 정의되어 있다고 하면, 단위블록의 실제 비트수가 영상프레임의 단위블록 당 평균 비트수의 1.5배보다 많으면, 해당 단위블록은 높은 복잡도 영역에 속한다고 간주된다. 단위블록의 실제 비트수가 영상프레임의 단위블록 당 평균 비트수의 1.5배보다 많지 않으면서도 1배보다 많으면, 해당 단위블록은 제1중간 복잡도 영역에 속한다고 간주된다. 단위블록의 실제 비트수가 영상프레임의 단위블록 당 평균 비트수의 1배보다 많지 않으면서도 0.5배보다 많으면, 해당 단위블록은 제2중간 복잡도 영역에 속한다고 간주된다. 단위블록의 실제 비트수가 영상프레임의 단위블록 당 평균 비트수의 0.5배보다 적으면, 해당 단위블록은 낮은 복잡도 영역에 속한다고 간주된다. 이는 인코딩 복잡도를 4단계로 구분할 경우의 예시이고, 복잡도의 구분 단계에 따라 상수들은 변할 수 있다. 이러한 과정을 통해 모든 학습영상(511)을 부호화 복잡도, 즉 부호화 비트수에 따라 분할함으로써 기준영상(512)을 생성할 수 있다.
즉, 전자장치는 학습영상(511)의 영상프레임 별로 단위블록의 평균 비트수를 산출하고, 산출된 평균 비트수를 기준값으로 하여 해당 영상프레임을 복잡도에 따른 복수의 영역으로 분할하여, 기준영상(512)을 생성한다.
통상적인 방법으로는, 객체 기반의 AI 모델(531)을 위한 기준영상(512)을 생성하기 위해서는 숙련된 사람들이 모든 학습영상(511)에 대하여 객체와 배경의 영역을 표시해주는 태깅(tagging) 작업을 수동으로 해주어야 한다. 이와 달리, 본 실시예에 따른 부호화 복잡도 기반 AI 모델(531)을 위한 기준영상(512)을 생성하기 위해서는 영상의 복잡도를 몇 단계로 구분할 것인가만 사전에 결정하면, 나머지 과정은 자동으로 수행되도록 할 수 있기 때문에 기준영상(512)을 생성하기 위한 비용을 크게 절감할 수 있다.
다음 모델학습단계(530)에서, 전자장치는 학습영상(511) 및 기준영상(512)을 사용하여 AI 모델(531)을 학습시킨다. 모델을 학습하는 과정은 종래의 객체 기반 분할 모델과 똑같이 ResNet, InceptionNet, MobileNet과 같은 모델 네트워크의 구조를 정하고 Backpropagation 과정을 통해 모델 weight를 구한다. 예를 들면, 전자장치는 학습영상(511)을 AI 모델(531)을 사용하여 변환시킨 결과가 기준영상(512)에 대응하도록, AI 모델(531) 내 각 노드 별 패러미터를 조정하는 과정을 반복할 수 있다.
이와 같이 모델생성단계(510)가 끝나고 AI 모델(531)이 구축되면, 전자장치는 인코딩단계(540)에서 AI 모델(531)을 사용하여 인코딩을 수행한다. 전자장치는 컨텐트영상 데이터의 영상프레임(541)을 AI 모델(531)을 사용하여 처리함으로써, 복잡도 기반으로 해당 영상프레임(541)을 복수의 영역으로 분할한다(542). 이후 동작에 관해서는 앞선 실시예에서 설명한 바와 같다.
본 실시예에서는 사전 구축된 AI 모델(531)을 사용하여 전자장치가 인코딩을 수행하는 경우에 관해 설명하였다. 그러나, 설계 방식에 따라서는 전자장치 또는 서버가 구축된 AI 모델(531)을 업데이트하여 사용하는 경우도 가능하다. 예를 들면, 전자장치는 AI 모델(531)을 사용하여 인코딩 동작을 수행하면서, 인코딩 결과를 학습 데이터로 사용하여 AI 모델(531)의 세부 패러미터를 조정하는 업데이트 과정을 계속적으로 수행한다. 이와 같이, 실제 인코딩 결과를 학습 데이터로 사용함으로써, 학습 데이터의 양을 늘려서 보다 향상된 성능의 AI 모델(531)을 구현할 수도 있다.
이하, DCT 주파수 성분의 분석기법에 따라서 전자장치가 영상프레임을 복잡도에 따라서 복수의 영역으로 구분하는 방법에 관해 설명한다.
도 6은 전자장치가 DCT 주파수 성분의 분석기법에 따라서 영상프레임을 복수의 영역으로 구분하는 원리를 나타내는 예시도이다.
도 6에 도시된 바와 같이, 전자장치는 DCT 주파수 성분의 분석기법에 따라서 영상프레임(610)을 복수의 영역으로 구분할 수 있다.
DCT는 시간축의 영상신호를 주파수축으로 변환하는 계수로서 이산적 코사인 함수를 사용하는 직교 변환 부호화 방식이다. DCT 변환에는 기 정의된 DCT 블록이 사용되며, 영상프레임(610)의 각 픽셀이 DCT 블록으로 block-by-block 연산됨으로써 주파수 성분에 따라서 분할된 영상프레임(620)이 도출된다.
DCT 블록은 개별적으로 계수 또는 기준값을 가진 8*8=64개의 서브블록을 포함한다. DCT 블록에서 좌측 상단영역은 저주파수 성분, 우측 하단영역은 고주파수 성분, 중간영역은 중간 주파수 성분에 각기 대응한다. 전자장치는 영상프레임(610)의 픽셀 단위로 DCT를 적용하여 산출된 픽셀 단위 주파수 성분의 에너지의 평균값을 구하고, 본 평균값과 각 픽셀의 주파수 성분의 에너지 크기를 비교한다.
예를 들어, 영상프레임(610)을 DCT 처리된 결과(620)에서 영역 별로 주파수 성분의 크기를 비교하면, 각 영역을 평탄 영역, 저주파 영역, 중주파 영역, 고주파 영역으로 분할할 수 있다. 전자장치는 DCT 처리된 영상프레임(620)의 각 픽셀에 대해 저주파 성분, 중주파 성분, 고주파 성분 각각의 평균 에너지 크기를 서로 비교한다. DCT 처리된 영상프레임(620)의 소정 픽셀의 DCT 분포 결과(621)가 고주파 성분의 에너지가 가장 크다고 나타나면, 해당 픽셀은 고주파 영역으로 구분된다. DCT 처리된 영상프레임(620)의 소정 픽셀의 DCT 분포 결과(622)가 중주파 성분의 에너지가 가장 크다고 나타나면, 해당 픽셀은 중주파 영역으로 구분된다. DCT 처리된 영상프레임(620)의 소정 픽셀의 DCT 분포 결과(623)가 저주파 성분의 에너지가 가장 크다고 나타나면, 해당 픽셀은 저주파 영역으로 구분된다. DCT 처리된 영상프레임(620)의 소정 픽셀의 DCT 분포 결과(624)에서 세 가지 주파수 성분의 에너지가 모두 소정의 임계치보다 작다고 나타나면, 해당 픽셀은 평탄 영역으로 구분된다. 구체적으로는 아래와 같이, DCT 블록 내에서 미리 정의된 각 영역 별 DCT 계수의 에너지의 합을 임계치와 비교함으로써 해당 픽셀을 분류한다.
E[(C_h)^2] > T_h ; 고주파 영역
T_h >= E[(C_m)^2] > T_m ; 중주파 영역
T_m >= E[(C_l)^2] > T_l ; 저주파 영역
위 세가지 경우에 해당하지 않는 나머지의 경우는 평탄영역에 해당한다.
위 수식에서 E[]는 평균함수이다. (C_h)^2, (C_m)^2, (C_l)^2는 DCT 블록 각 주파수 영역에 대응하는 DCT 계수의 에너지를 나타낸다. (C_h)^2는 DCT 블록에서 고주파 영역의 DCT 계수의 에너지, (C_m)^2는 DCT 블록에서 중주파 영역의 DCT 계수의 에너지, (C_l)^2는 DCT 블록에서 저주파 영역의 DCT 계수의 에너지를 각기 나타낸다. T_h, T_m, T_l는 기 정의된 임계치이며, T_h > T_m > T_l을 만족한다. 여기서 정의된 4가지 영역(평탄영역, 저주파 영역, 중주파 영역, 고주파 영역)과 영역 별 포함되는 DCT 계수의 번호는 부호화 코덱의 종류, 입력 영상의 특성에 따라 다양하게 정의될 수 있다.
전자장치는 주파수 성분의 에너지가 큰 영역을 복잡도가 높은 영역으로 보고, 주파수 성분의 에너지가 작은 영역을 복잡도가 낮은 영역으로 식별한다. 즉, 전자장치는 고주파 영역, 중주파 영역, 저주파 영역, 평탄영역 순서대로 영상 복잡도가 높다고 본다. 전자장치는 이러한 식별 결과에 따라서, 각 영역에 대응하는 비트수를 할당한다. 이후 동작에 관해서는 앞선 실시예에서 설명한 바와 같다.
정리하면, 영상의 복잡도는 영상프레임(620)의 각 영역 내의 영상의 주파수 특성에 기초하여 식별될 수 있다. 주파수 특성이 서로 상이한 각 영역은 주파수 성분에 따라서 복수의 계수가 분포된 DCT 블록에 기초하여 식별된다. 전자장치는 이와 같이 주파수 특성이 서로 상이한 복수의 영역이 식별되면, 각 영역의 주파수 특성(구체적으로는 주파수 성분의 에너지)에 대응하는 비트수를 할당한다.
이상 실시예들에서 설명한 바와 같은 장치의 동작은, 해당 장치에 탑재된 인공지능에 의해 수행될 수 있다. 인공지능은 기계 학습 알고리즘을 활용하여 다양한 제반 시스템에 적용될 수 있다. 인공지능 시스템은 인간 수준 내지는 인간 수준에 버금가는 지능을 구현하는 컴퓨터 시스템으로서, 기계, 장치 또는 시스템이 자율적으로 학습하고 판단하며, 사용 경험의 누적에 기반하여 인식률 및 판단 정확도가 향상되는 시스템이다. 인공지능 기술은 입력되는 데이터들의 특징을 스스로 분류하고 학습하는 알고리즘을 이용한 기계학습 기술 및 알고리즘을 활용하여, 인간의 두뇌의 인지, 판단 등의 기능을 모사하는 요소 기술들로 구성된다.
요소 기술들은, 예를 들면 인간의 언어와 문자를 인식하는 언어적 이해 기술, 사물을 인간의 시각처럼 인식하는 시각적 이해 기술, 정보를 판단하여 논리적으로 추론하고 예측하는 추론 및 예측 기술, 인간의 경험 정보를 지식 데이터로 처리하는 지식 표현 기술, 차량의 자율 주행이나 로봇의 움직임을 제어하는 동작 제어 기술 중 적어도 어느 하나를 포함한다.
여기서, 언어적인 이해는 인간의 언어 또는 문자를 인식하고 응용 처리하는 기술로서, 자연어의 처리, 기계 번역, 대화 시스템, 질의 응답, 음성 인식 및 합성 등을 포함한다.
추론 예측은 정보를 판단하여 논리적으로 예측하는 기술로서, 지식 및 확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다.
지식 표현은 인간의 경험 정보를 지식 데이터로 자동화 처리하는 기술로서, 데이터의 생성 및 분류와 같은 지식 구축, 데이터의 활용과 같은 지식 관리 등을 포함한다.
본 발명의 예시적 실시예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이러한 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 예를 들어, 컴퓨터 판독 가능 매체는 삭제 가능 또는 재기록 가능 여부와 상관없이, USB 메모리장치와 같은 비휘발성 저장 장치, 또는 예를 들어 RAM, ROM, 플래시메모리, 메모리 칩, 집적 회로와 같은 메모리, 또는 예를 들어 CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 이동 단말 내에 포함될 수 있는 메모리는 본 발명의 실시 예들을 구현하는 지시들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다. 본 저장 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어의 기술 분야에서 숙련된 기술자에게 공지되어 사용 가능한 것일 수도 있다. 또는, 본 컴퓨터 프로그램 명령은 컴퓨터 프로그램 프로덕트에 의해 구현될 수도 있다.
200 : 전자장치
205 : 외부장치
210 : 인터페이스부
240 : 프로세서

Claims (20)

  1. 전자장치에 있어서,
    외부장치와 통신하게 마련된 인터페이스부와,
    영상컨텐트의 각 프레임의 영역 별로 상기 영역 내의 영상의 복잡도에 기초한 비트수로 상기 영상컨텐트의 데이터를 인코딩하고,
    상기 인코딩된 데이터를 상기 인터페이스부를 통해 상기 외부장치로 전송하도록 하는 프로세서를 포함하는 전자장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 프레임의 제1영역을 제1비트수로 인코딩하고,
    상기 프레임의 제1영역보다 상기 복잡도가 높은 상기 프레임의 제2영역을 상기 제1비트수보다 큰 제2비트수로 인코딩하는 전자장치.
  3. 제1항에 있어서,
    상기 영상의 복잡도는 상기 영역 내의 영상의 주파수 특성에 기초하여 정해지는 전자장치.
  4. 제3항에 있어서,
    상기 프로세서는,
    상기 프레임 내 영상의 주파수 특성이 서로 다른 복수의 영역을 식별하고,
    상기 식별된 각 영역 별로 해당 영역의 주파수 특성에 대응하는 비트수를 할당하는 전자장치.
  5. 제4항에 있어서,
    상기 프로세서는,
    주파수 성분에 따라서 복수의 기준값이 분포된 블록에 기초하여, 상기 프레임 내 영상의 주파수 특성이 서로 다른 복수의 영역을 식별하는 전자장치.
  6. 제4항에 있어서,
    상기 프로세서는,
    상기 식별된 각 영역 별로 주파수 성분의 에너지의 크기에 기초하여 상기 비트수를 할당하는 전자장치.
  7. 제1항에 있어서,
    상기 프로세서는, 상기 영상의 복잡도에 관하여 학습된 모델에 기초하여 상기 비트수를 정하는 전자장치.
  8. 제7항에 있어서,
    상기 모델은 학습영상을 기 정의된 비트수로 인코딩하여 획득된 기준영상에 기초하여 학습된 전자장치.
  9. 제1항에 있어서,
    상기 프로세서는,
    목표 비트율을 식별하고,
    상기 식별된 목표 비트율에 기초하여 상기 인코딩할 비트수를 정하는 전자장치.
  10. 제1항에 있어서,
    상기 프로세서는,
    상기 영역에 대해 정해진 비트수에 반비례하도록 마련된 양자화 패러미터를 도출하고, 상기 도출된 양자화 패러미터에 따라서 상기 영역의 데이터를 인코딩하는 전자장치.
  11. 전자장치의 제어방법에 있어서,
    영상컨텐트를 획득하는 단계와,
    상기 영상컨텐트의 각 프레임의 영역 별로 상기 영역 내의 영상의 복잡도에 기초한 비트수로 상기 영상컨텐트의 데이터를 인코딩하는 단계와,
    상기 인코딩된 데이터를 상기 외부장치로 전송하는 단계를 포함하는 전자장치의 제어방법.
  12. 제11항에 있어서,
    상기 프레임의 제1영역을 제1비트수로 인코딩하고,
    상기 프레임의 제1영역보다 상기 복잡도가 높은 상기 프레임의 제2영역을 상기 제1비트수보다 큰 제2비트수로 인코딩하는 전자장치의 제어방법.
  13. 제11항에 있어서,
    상기 영상의 복잡도는 상기 영역 내의 영상의 주파수 특성에 기초하여 정해지는 전자장치의 제어방법.
  14. 제13항에 있어서,
    상기 프레임 내 영상의 주파수 특성이 서로 다른 복수의 영역을 식별하고,
    상기 식별된 각 영역 별로 해당 영역의 주파수 특성에 대응하는 비트수를 할당하는 전자장치의 제어방법.
  15. 제14항에 있어서,
    주파수 성분에 따라서 복수의 기준값이 분포된 블록에 기초하여, 상기 프레임 내 영상의 주파수 특성이 서로 다른 복수의 영역을 식별하는 전자장치의 제어방법.
  16. 제14항에 있어서,
    상기 식별된 각 영역 별로 주파수 성분의 에너지의 크기에 기초하여 상기 비트수를 할당하는 전자장치의 제어방법.
  17. 제11항에 있어서,
    상기 영상의 복잡도에 관하여 학습된 모델에 기초하여 상기 비트수를 정하는 전자장치의 제어방법.
  18. 제17항에 있어서,
    상기 모델은 학습영상을 기 정의된 비트수로 인코딩하여 획득된 기준영상에 기초하여 학습된 전자장치의 제어방법.
  19. 제11항에 있어서,
    목표 비트율을 식별하고,
    상기 식별된 목표 비트율에 기초하여 상기 인코딩할 비트수를 정하는 전자장치의 제어방법.
  20. 제11항에 있어서,
    상기 프로세서는,
    상기 영역에 대해 정해진 비트수에 반비례하도록 마련된 양자화 패러미터를 도출하고, 상기 도출된 양자화 패러미터에 따라서 상기 영역의 데이터를 인코딩하는 전자장치의 제어방법.
KR1020190162566A 2019-12-09 2019-12-09 전자장치 및 그 제어방법 KR20210072344A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190162566A KR20210072344A (ko) 2019-12-09 2019-12-09 전자장치 및 그 제어방법
PCT/KR2020/017399 WO2021118149A1 (en) 2019-12-09 2020-12-01 Electronic apparatus and control method thereof
US17/110,505 US11394981B2 (en) 2019-12-09 2020-12-03 Electronic apparatus and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190162566A KR20210072344A (ko) 2019-12-09 2019-12-09 전자장치 및 그 제어방법

Publications (1)

Publication Number Publication Date
KR20210072344A true KR20210072344A (ko) 2021-06-17

Family

ID=76210798

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190162566A KR20210072344A (ko) 2019-12-09 2019-12-09 전자장치 및 그 제어방법

Country Status (3)

Country Link
US (1) US11394981B2 (ko)
KR (1) KR20210072344A (ko)
WO (1) WO2021118149A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230158881A (ko) * 2022-05-12 2023-11-21 주식회사 엘지유플러스 자율 주행 시스템 및 자율 주행 시스템의 영상 처리 장치 및 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100390115B1 (ko) * 1999-04-12 2003-07-04 마츠시타 덴끼 산교 가부시키가이샤 화상 처리 방법, 화상 처리 장치 및 데이터 기억 매체
US7535959B2 (en) * 2003-10-16 2009-05-19 Nvidia Corporation Apparatus, system, and method for video encoder rate control
WO2008077119A2 (en) * 2006-12-19 2008-06-26 Ortiva Wireless Intelligent video signal encoding utilizing regions of interest information
US8787445B2 (en) * 2007-03-15 2014-07-22 Nvidia Corporation Allocation of available bits to represent different portions of video frames captured in a sequence
EP2514207A2 (en) * 2009-12-14 2012-10-24 Thomson Licensing Object-aware video encoding strategies
US20150312575A1 (en) * 2012-04-16 2015-10-29 New Cinema, LLC Advanced video coding method, system, apparatus, and storage medium
WO2014008541A1 (en) * 2012-07-09 2014-01-16 Smart Services Crc Pty Limited Video processing method and system
GB201308073D0 (en) * 2013-05-03 2013-06-12 Imagination Tech Ltd Encoding an image
US10230950B2 (en) 2013-05-30 2019-03-12 Intel Corporation Bit-rate control for video coding using object-of-interest data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230158881A (ko) * 2022-05-12 2023-11-21 주식회사 엘지유플러스 자율 주행 시스템 및 자율 주행 시스템의 영상 처리 장치 및 방법

Also Published As

Publication number Publication date
US20210176477A1 (en) 2021-06-10
US11394981B2 (en) 2022-07-19
WO2021118149A1 (en) 2021-06-17

Similar Documents

Publication Publication Date Title
JP6928041B2 (ja) 動画を処理するための方法および装置
JP6717385B2 (ja) 量子化パラメータに基づくビデオ処理のためのシステム及び方法
WO2023134523A1 (zh) 内容自适应视频编码方法、装置、设备和存储介质
US20230216521A1 (en) Method and Apparatus for Neural Network Model Compression/Decompression
EP3828811A1 (en) Electronic device, control method thereof, and system
CN114071189A (zh) 视频处理装置及视频串流的处理方法
US20220256140A1 (en) Video encoding method and apparatus, computer device, and storage medium
CN112584119B (zh) 一种基于强化学习的自适应全景视频传输方法及系统
US20150172680A1 (en) Producing an Output Need Parameter for an Encoder
CN114600457A (zh) 替换式端到端视频编解码
CN114900692A (zh) 视频流帧率调整方法及其装置、设备、介质、产品
CN114374841B (zh) 视频编码码率控制的优化方法、装置及电子设备
US11394981B2 (en) Electronic apparatus and control method thereof
CN116708934B (zh) 一种视频编码处理方法及装置
Premkumar et al. Quality-Aware Dynamic Resolution Adaptation Framework for Adaptive Video Streaming
US10735773B2 (en) Video coding techniques for high quality coding of low motion content
KR20240128019A (ko) 멀티-태스크 기계 학습을 위한 비디오 및 특징 코딩
CN116029345A (zh) 中间层特征压缩传输方法、压缩数据的解码方法及装置
US20230108722A1 (en) Allocating bit rate between video streams using machine learning
US20230099526A1 (en) Method For Constructing A Perceptual Metric For Judging Video Quality
KR20230143377A (ko) 장면 단위 예측 기반의 동영상 인코딩 최적화 방법 및 시스템
CN102948147A (zh) 基于变换系数直方图的视频速率控制
KR20210059604A (ko) 복잡도에 기반하여 비디오 프레임을 적응적으로 인코딩하는 기법
GB2540204B (en) Rate control of streaming modules sharing a communication channel
US20200314422A1 (en) Determining quality values for blocks of encoded video