[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20210055278A - 하이브리드 비디오 코딩 방법 및 시스템 - Google Patents

하이브리드 비디오 코딩 방법 및 시스템 Download PDF

Info

Publication number
KR20210055278A
KR20210055278A KR1020190141545A KR20190141545A KR20210055278A KR 20210055278 A KR20210055278 A KR 20210055278A KR 1020190141545 A KR1020190141545 A KR 1020190141545A KR 20190141545 A KR20190141545 A KR 20190141545A KR 20210055278 A KR20210055278 A KR 20210055278A
Authority
KR
South Korea
Prior art keywords
frames
video
scaled
processor
layer
Prior art date
Application number
KR1020190141545A
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 KR1020190141545A priority Critical patent/KR20210055278A/ko
Priority to US17/086,636 priority patent/US11245914B2/en
Priority to JP2020185607A priority patent/JP2021078122A/ja
Publication of KR20210055278A publication Critical patent/KR20210055278A/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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
    • 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/187Methods 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 scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

하이브리드 비디오 코딩 방법 및 시스템을 개시한다. 일실시예에 따른 하이브리드 비디오 코딩 방법은 원본 비디오의 프레임들을 스케일-다운(scale-down)하여 스케일-다운된 비디오의 프레임들을 생성하는 단계, 상기 스케일-다운된 비디오 프레임들을 소프트웨어 코덱의 제1 인코더를 통해 인코딩하여 제1 계층의 스크림을 생성하는 단계 및 상기 원본 비디오의 프레임들 및 하드웨어 코덱의 제2 인코더를 이용하여 제2 계층의 스트림을 생성하는 단계를 포함할 수 있다.

Description

하이브리드 비디오 코딩 방법 및 시스템{METHOD AND SYSTEM FOR HYBRID VIDEO CODING}
아래의 설명은 하이브리드 비디오 코딩 방법 및 시스템에 관한 것이다.
코덱(codec)은 음성 또는 영상의 데이터 스트림이나 신호에 대해, 인코딩이나 디코딩 혹은 인코딩과 디코딩 둘 모두를 처리할 수 있는 하드웨어나 소프트웨어를 의미한다. 예를 들어, 한국공개특허 제10-2014-0145114호는 비디오 인코딩 방법과 비디오 디코딩 방법을 개시하고 있다.
소프트웨어 코덱은 소프트웨어적으로 인코딩 및/또는 디코딩을 처리하는 것으로, 상황에 따라 새로운 기능을 추가하거나 기능의 변경 등이 가능하다는 점에서 유연성을 가지며, 네트워크 상에서 손상된 데이터의 복구에 용이하며, 호환성이 높으며 안정적이라는 장점이 있다. 다만, 소프트웨어 코덱은 CPU 자원을 하드웨어 코덱에 비해 상대적으로 많이 소모하며 인코딩 및 디코딩 속도가 느리다는 단점이 있다. 하드웨어 코덱은 하드웨어 로직을 통해 인코딩과 디코딩을 처리하는 것으로, 인코딩 및 디코딩 속도가 빠르며 CPU 성능에 영향을 주지 않을 수 있는 장점이 있다. 다만, 하드웨어 코덱은 정적이며, 최초 생산시에 추가된 기능만을 수행할 수 있다. 이에 하드웨어 코덱은 CPU 성능이 상대적으로 떨어지는 스마트폰과 같은 모바일 장치에서 주로 사용되고, 소프트웨어 코덱은 데스크탑과 같은 기기에서 주로 사용되었다.
종래에는 스마트폰과 같은 모바일 기기에서의 코덱의 활용이 스마트폰들간의 영상 통화와 같이 모바일 기기간의 비디오 전송을 위해 활용되었다. 반면, 최근에는 스마트폰을 이용한 방송 등과 같이 모바일 기기에서 모바일 기기뿐만 아니라, 데스크탑 등과 같은 다양한 해상도를 요구하는 다양한 기기들로 비디오를 전송해야 하는 요구들이 증가하고 있다. 그러나, 스마트폰과 같은 모바일 기기에서 다양한 해상도의 영상들을 각각 인코딩하여 네트워크를 통해 전송하는 것은 모바일 기기에서의 소프트웨어 코덱의 사용을 요구하며, 해상도가 상이한 중복된 영상들의 전송에 따라 네트워크 데이터 사용량을 증가시킬 뿐만 아니라, 네트워크 트래픽을 증가시키게 된다.
하드웨어 코덱과 소프트웨어 코덱의 장점을 융합할 수 있는 하이브리드 비디오 코딩 방법 및 시스템을 제공한다.
적어도 하나의 프로세서를 포함하는 컴퓨터 장치의 하이브리드 비디오 코딩 방법에 있어서, 상기 적어도 하나의 프로세서에 의해, 원본 비디오의 프레임들을 스케일-다운(scale-down)하여 스케일-다운된 비디오의 프레임들을 생성하는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 스케일-다운된 비디오 프레임들을 소프트웨어 코덱의 제1 인코더를 통해 인코딩하여 제1 계층의 스크림을 생성하는 단계; 및 상기 적어도 하나의 프로세서에 의해, 상기 원본 비디오의 프레임들 및 하드웨어 코덱의 제2 인코더를 이용하여 제2 계층의 스트림을 생성하는 단계를 포함하는 하이브리드 비디오 코딩 방법을 제공한다.
일측에 따르면, 상기 하이브리드 비디오 코딩 방법은, 상기 적어도 하나의 프로세서에 의해, 상기 제1 인코더를 이용하여 인코딩된 프레임들을 상기 소프트웨어 코덱의 디코더를 이용하여 디코딩하는 단계; 및 상기 적어도 하나의 프로세서에 의해, 상기 디코딩된 프레임들을 스케일-업(scale-up)하여 스케일-업된 비디오의 프레임들을 생성하는 단계를 더 포함할 수 있다.
다른 측면에 따르면, 상기 제2 계층의 스트림을 생성하는 단계는, 상기 원본 비디오의 프레임들 및 상기 스케일-업된 비디오의 프레임들에 대한 차분영상들을 생성하는 단계; 및 상기 생성된 차분영상들을 상기 제2 인코더를 통해 인코딩하여 상기 제2 계층의 스크림을 생성하는 단계를 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 차분영상들을 생성하는 단계는, 상기 차분영상들의 화소값들의 제1 범위를 상기 원본 비디오의 프레임들의 화소값들의 제2 범위 또는 상기 스케일-업된 비디오의 프레임들의 화소값들의 제3 범위로 조정하는 단계를 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 제2 범위 또는 상기 제3 범위는 0부터 (n+n+1)까지의 범위를 포함하고, 상기 제1 범위는 -(n+n+1)부터 (n+n+1)까지의 범위를 포함하고, 상기 조정하는 단계는, 상기 차분영상들의 화소값들 중 -(n+1) 미만의 화소값을 -(n+1)의 화소값으로 변경하고, n을 초과하는 화소값을 n의 화소값으로 변경하는 단계; 및 상기 차분영상의 화소값들 각각에 n을 더하는 단계를 포함하고, 상기 n은 자연수인 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 하이브리드 비디오 코딩 방법은, 상기 적어도 하나의 프로세서에 의해, 수신측 장치로부터 요청되는 해상도에 따라, 상기 제1 계층의 스트림 및 상기 제2 계층의 스트림 중 적어도 하나를 전송하는 단계를 더 포함할 수 있다.
적어도 하나의 프로세서를 포함하는 컴퓨터 장치의 하이브리드 비디오 코딩 방법에 있어서, 상기 적어도 하나의 프로세서에 의해, 전송측 장치로부터 원본 비디오에 대해 생성된 제1 계층의 스트림 및 제2 계층의 스트림을 수신하는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 제1 계층의 스트림을 소프트웨어 코덱의 제1 디코더를 통해 디코딩하여 스케일-다운된 비디오의 프레임들을 생성하는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 제2 계층의 스트림을 하드웨어 코덱의 제2 디코더를 통해 디코딩하여 차분영상들을 생성하는 단계; 및 상기 적어도 하나의 프로세서에 의해, 상기 스케일-다운된 비디오의 프레임들 및 상기 차분영상들을 통해 상기 원본 비디오의 프레임들을 복원하는 단계를 포함하는 것을 특징으로 하는 하이브리드 비디오 코딩 방법을 제공한다.
컴퓨터 장치와 결합되어 상기 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제공한다.
상기 방법을 컴퓨터 장치에 실행시키기 위한 프로그램이 기록되어 있는 컴퓨터 판독 가능한 기록매체를 제공한다.
컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해, 원본 비디오의 프레임들을 스케일-다운(scale-down)하여 스케일-다운된 비디오의 프레임들을 생성하고, 상기 스케일-다운된 비디오 프레임들을 소프트웨어 코덱의 제1 인코더를 통해 인코딩하여 제1 계층의 스크림을 생성하고, 상기 원본 비디오의 프레임들 및 하드웨어 코덱의 제2 인코더를 이용하여 제2 계층의 스트림을 생성하는 것을 특징으로 하는 컴퓨터 장치를 제공한다.
컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해, 전송측 장치로부터 원본 비디오에 대해 생성된 제1 계층의 스트림 및 제2 계층의 스트림을 수신하고, 상기 제1 계층의 스트림을 소프트웨어 코덱의 제1 디코더를 통해 디코딩하여 스케일-다운된 비디오의 프레임들을 생성하고, 상기 제2 계층의 스트림을 하드웨어 코덱의 제2 디코더를 통해 디코딩하여 차분영상들을 생성하고, 상기 스케일-다운된 비디오의 프레임들 및 상기 차분영상들을 통해 상기 원본 비디오의 프레임들을 복원하는 것을 특징으로 하는 컴퓨터 장치를 제공한다.
하드웨어 코덱과 소프트웨어 코덱의 장점이 융합된 하이브리드 비디오 코딩 방법 및 시스템을 제공할 수 있다.
하나의 비디오에 대해 다양한 해상도의 비디오들을 전송함에 있어서, 중복되는 데이터의 전송을 줄일 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다.
도 3은 본 발명의 일실시예에 따른 하이브리드 비디오 코딩 과정의 예를 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 하이브리드 비디오 코딩 과정의 다른 예를 도시한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 화소값들간의 차이값들에 대한 도수분포를 나타낸 그래프들이다.
도 6은 본 발명의 일실시예에 있어서, 차분영상을 생성하는 예를 도시한 도면이다.
도 7은 본 발명의 일실시예에 있어서, 차분영상의 화소값을 조정하는 예를 도시한 도면이다.
도 8은 본 발명의 일실시예에 있어서, 전송측 장치의 하이브리드 비디오 코딩 방법의 예를 도시한 흐름도이다.
도 9는 본 발명의 일실시예에 있어서, 수신측 장치의 하이브리드 비디오 코딩 방법의 예를 도시한 흐름도이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
본 발명의 실시예들에 따른 하이브리드 비디오 코딩 시스템은 적어도 하나의 컴퓨터 장치에 의해 구현될 수 있으며, 본 발명의 실시예들에 따른 하이브리드 비디오 코딩 방법은 하이브리드 비디오 코딩 시스템에 포함되는 적어도 하나의 컴퓨터 장치를 통해 수행될 수 있다. 이때, 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 실시예들에 따른 하이브리드 비디오 코딩 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 하이브리드 비디오 코딩 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다. 또한, 도 1의 네트워크 환경은 본 실시예들에 적용 가능한 환경들 중 하나의 예를 설명하는 것일 뿐, 본 실시예들에 적용 가능한 환경이 도 1의 네트워크 환경으로 한정되는 것은 아니다.
복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 도 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)로 서비스(일례로, 그룹 통화 서비스(또는 음성 컨퍼런스 서비스), 메시징 서비스, 메일 서비스, 소셜 네트워크 서비스, 지도 서비스, 번역 서비스, 금융 서비스, 결제 서비스, 검색 서비스, 컨텐츠 제공 서비스 등)를 제공하는 시스템일 수 있다.
도 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)에 포함된 형태로 구현될 수 있다.
또한, 다른 실시예들에서 컴퓨터 장치(200)는 도 2의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 장치(200)는 상술한 입출력 장치(250) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
도 3은 본 발명의 일실시예에 따른 하이브리드 비디오 코딩 과정의 예를 도시한 도면이다. 도 3은 원본 비디오의 프레임들(310)을 스케일-다운(scale-down)하여 스케일-다운된 비디오의 프레임들(320)을 생성하는 예를 나타내고 있다. 이때, 원본 비디오의 프레임들(310)은 계층 1(Layer 1)의 프레임들일 수 있으며, 스케일-다운된 비디오의 프레임들(320)은 계층 0(Layer 0)의 프레임들일 수 있다. 본 실시예와 이후의 실시예들에서는 두 계층의 프레임들(310 및 320)을 활용하고 있으나, 실시예에 따라 셋 이상의 계층들 각각을 위한 프레임들이 생성 및 활용될 수도 있다.
비디오를 전송하고자 하는 전송측 장치는 하드웨어 코덱(330)과 소프트웨어 코덱(340)을 모두 포함할 수 있다. 이때, 전송측 장치는 원본 비디오의 프레임들(310)을 하드웨어 코덱(330)의 인코더 1(331)을 통해 인코딩하여 계층 1의 스트림(350)을 생성할 수 있고, 스케일-다운된 비디오의 프레임들(320)을 소프트웨어 코덱(340)의 인코더 0(341)을 통해 인코딩하여 계층 0의 스트림(360)을 생성할 수 있다. 이 경우, 전송측 장치는 생성된 계층 1의 스트림(350)과 계층 0의 스트림(360)을 각각 네트워크(170)를 통해 서로 다른 해상도를 요구하는 수신측 장치들로 전송할 수 있다. 여기서, 전송측 장치와 수신측 장치들 각각은 도 2를 통해 설명한 컴퓨터 장치(200)를 통해 구현될 수 있다.
이처럼, 전송측 장치는 높은 성능과 많은 계산량이 요구되는 원본 비디오의 프레임들(310)의 인코딩을 하드웨어 코덱(330)을 이용하여 처리하고, 상대적으로 낮은 성능과 적은 계산량을 요구하나 에러에 강해야 하는 스케일-다운된 비디오의 프레임들(320)의 인코딩을 소프트웨어 코덱(340)을 이용하여 처리함으로써, 하드웨어 코덱(330)과 소프트웨어 코덱(340)의 장점을 융합하여 상대적으로 CPU 성능이 낮은 장치에서도 소프트웨어 코덱(340)을 활용할 수 있을 뿐만 아니라, 다양한 해상도의 비디오 컨텐츠를 제공할 수 있게 된다.
도 4는 본 발명의 일실시예에 따른 하이브리드 비디오 코딩 과정의 다른 예를 도시한 도면이다. 한편, 스마트폰과 같은 모바일 기기에서 동일한 비디오에 대한 다양한 해상도 버전들을 제공하는 것은 데이터의 중복 전송으로 인해 데이터 사용량의 증가와 네트워크 트래픽의 증가를 발생시킬 수 있다. 따라서, 동일한 비디오에 대한 다양한 해상도 버전들에 대한 중복을 줄일 필요성이 있다.
본 실시예에 따른 전송측 장치는 도 3을 통해 설명한 바와 같이, 스케일-다운된 비디오의 프레임들(320)을 소프트웨어 코덱(340)의 인코더 0(341)을 통해 인코딩하여 계층 0의 스트림(360)을 생성할 수 있다. 이 경우, 본 실시예에 따른 전송측 장치는 인코더 0(341)을 통해 인코딩된 데이터를 소프트웨어 코덱(340)이 포함하는 디코더 0(410)을 통해 다시 디코딩한 후, 스케일-업(scale-up) 함으로써, 스케일-업된 비디오의 프레임들(420)을 생성할 수 있다. 이후, 전송측 장치는 차분영상 생성부(430)를 통해 원본 비디오의 프레임들(310)과 스케일-업된 비디오의 프레임들(420)간의 차분영상(differential image, 440)을 생성할 수 있으며, 생성된 차분영상(440)을 하드웨어 코덱(330)의 인코더 1(331)을 통해 인코딩하여 계층 1의 스트림(450)을 생성할 수 있다. 일례로, 차분영상(440)은 원본 비디오의 프레임들(310)과 스케일-업된 비디오의 프레임들(420) 각각의 서로 대응하는 화소의 화소값의 차이에 기반하여 계산될 수 있다. 이때, 차분영상(440)은 원본 비디오의 프레임들(310)과 스케일-업된 비디오의 프레임들(420)의 서로 대응하는 두 프레임들마다 하나씩 생성될 수 있다.
이때, 도 3의 계층 1의 스트림(340)은 원본 비디오의 프레임들(310)을 인코딩한 데이터인 반면, 도 4의 계층 1의 스트림(450)은 차분영상(440)을 인코딩한 데이터이기 때문에, 계층 0 스트림(360)과의 중복을 최소화할 수 있다.
이 경우, 수신측 장치로서 스마트폰과 같은 모바일 기기에서는 계층 0 스트림(360)을 수신하여 스케일-다운된 비디오의 프레임들(320)을 재생할 수 있으며, 수신측 장치로서 데스크탑과 같은 기기에서는 계층 0 스트림(360)과 계층 1 스트림(450)을 모두 수신한 후, 원본 비디오의 프레임들(310)을 복원하여 재생할 수 있다.
예를 들어, 수신측 장치는 계층 0 스트림(360)을 수신측 장치의 소프트웨어 코덱을 이용하여 디코딩한 후, 디코딩된 데이터를 스케일-업 함으로써, 스케일-업된 비디오의 프레임들(420)에 대응하는 프레임들을 얻을 수 있다. 또한, 수신측 장치는 계층 1 스트림(450)을 수신측 장치의 하드웨어 코덱을 이용하여 디코딩함으로써, 차분영상(440)을 얻을 수 있다. 이 경우, 수신측 장치는 계층 1 스트림(450)과 차분영상(440)을 통해 원본 비디오의 프레임들(310)을 복원하여 재생할 수 있게 된다.
한편, 앞서 설명한 바와 같이, 차분영상(440)은 원본 비디오의 프레임들(310)과 스케일-업된 비디오의 프레임들(420) 각각의 서로 대응하는 화소의 화소값의 차이에 기반하여 계산될 수 있다. 이때, 차분영상(440)의 화소값의 범위는 피연산자 데이터(operand data)의 범위의 두 배가 된다. 예를 들어, 기존 화소값이 1 바이트(0~255)의 범위로 표현되는 경우, 화소값의 차이는 2 바이트(-255~255)의 범위로 표현되게 된다. 이 경우, 차분영상(440)을 위한 각각의 화소값을 위해 추가 바이트를 사용하는 것은 '비트 당 품질'에 따른 성능을 저하시키는 결과를 가져올 수 있다.
이러한 문제를 해결하기 위해, 화소값들간의 차이값의 범위가 피연산자 데이터의 범위에 대응하도록 화소값들간의 차이값들을 조정할 수 있다.
도 5는 본 발명의 일실시예에 있어서, 화소값들간의 차이값들에 대한 도수분포를 나타낸 그래프들이다. 제1 그래프(510)는 원본 비디오의 프레임들(310)과 스케일-업된 비디오의 프레임들(420) 각각의 서로 대응하는 화소의 화소값의 차이에 기반하여 -255~255의 범위로 계산된 차분영상(440)의 화소값들에 대한 히스토그램을 나타내고 있다. 이때, y축은 차분영상(440)에서 각 화소값이 등장하는 개수의 예를 나타내고 있다. 차분영상(440)의 화소값들은 대부분 0에 가까운 값을 가짐을 알 수 있다. 제2 그래프(520)는 차분영상(440)의 화소값들이 0~255의 범위에 포함되도록 차분영상(440)의 화소값들을 조정(calibration)한 경우의 히스토그램을 나타내고 있다. 일례로, 전송측 장치는 -255~-128 범위의 화소값을 모두 -128로 변경하고, 128~255 범위의 화소값들을 모두 127로 변경하여 차분영상(440)의 화소값들이 모두 -128~127의 범위에 포함되도록 차분영상(440)의 화소값들을 변경할 수 있다. 제1 그래프(510)에서 -255~-128 범위의 화소값들의 개수와, 128~255 범위의 화소값들의 개수가 많지 않기 때문에 전체적인 화질에는 크게 영향을 주지 않는다. 이후, 전송측 장치는 -128~127의 범위에 포함되는 차분영상(440)의 화소값들 각각에 128을 더해 범위를 시프트 시킴으로써 차분영상(440)의 화소값들이 0(-128 + 128)~255(127+128)의 범위에 포함되도록 조정할 수 있다.
도 6은 본 발명의 일실시예에 있어서, 차분영상을 생성하는 예를 도시한 도면이다. 도 6은 차분영상 생성부(430)를 통해 원본영상(610)의 화소값에서 왜곡된 영상(620)의 화소값들을 빼서 제1 차분영상(630)을 생성하는 예를 나타내고 있다. 여기서, 원본영상(610)은 앞서 설명한 원본 비디오의 프레임들(310) 중 하나의 프레임일 수 있으며, 왜곡된 영상(620)은 스케일-업된 비디오의 프레임들(420) 중 원본영상(610)에 대응하는 프레임일 수 있다. 화소값은 1 바이트에 따른 범위(십진수로 0~255, 16 진수로 0x00~0xFF) 내에서 16 진수로 표현되어 있다.
이때, 원본영상(610)의 {1열, 4행} 위치의 화소값 '0xB1'에서 왜곡된 영상(620)의 {1열, 4행} 위치의 화소값 '0xB2'를 빼면, '-1'의 값이 나타나야 하나, 1 바이트에 따른 범위 내에서의 16 진수로 '-1'을 표현하면 제1 차분영상(630)의 {1열, 4행} 위치의 화소값 '0xFF'와 같이 '255'에 대응하는 값이 나타나게 된다. 이는 -1이 '0~255'의 범위로 표현할 수 없는 값이기 때문이다.
도 7은 본 발명의 일실시예에 있어서, 차분영상의 화소값을 조정하는 예를 도시한 도면이다. 도 7은 도 6의 제1 차분영상(630)의 화소값들 각각에 '0x80(십진수로 128)'을 더하여 화소값들이 16 진수로 0x00~0xFF의 범위(십진수로는 0~255의 범위)에 포함되도록 화소값들을 조정하여 제2 차분영상(710)을 생성한 예를 나타내고 있다. 제2 차분영상(710)에서는 -128이 '0x00'에, 127이 '0xFF'에, 0이 '0x80'에 각각 매핑될 수 있다. 따라서, -128~127의 범위가 0~255의 범위 즉, 1 바이트의 범위로 시프트될 수 있다.
도 8은 본 발명의 일실시예에 있어서, 전송측 장치의 하이브리드 비디오 코딩 방법의 예를 도시한 흐름도이다. 본 실시예에 따른 하이브리드 비디오 코딩 방법은 앞서 설명한 전송측 장치를 구현하는 컴퓨터 장치(200)에 의해 수행될 수 있다. 이 경우, 컴퓨터 장치(200)의 프로세서(220)는 메모리(210)가 포함하는 운영체제의 코드나 적어도 하나의 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(220)는 컴퓨터 장치(200)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(200)가 도 8의 방법이 포함하는 단계들(810, 820, 830, 840, 850, 851, 852 및 860)을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다.
단계(810)에서 컴퓨터 장치(200)는 원본 비디오의 프레임들을 스케일-다운하여 스케일-다운된 비디오의 프레임들을 생성할 수 있다. 일례로 앞서 도 3 및 도 4를 통해, 원본 비디오의 프레임들(310)을 스케일-다운하여 스케일-다운된 비디오의 프레임들(320)을 생성하는 예를 설명한 바 있다.
단계(820)에서 컴퓨터 장치(200)는 스케일-다운된 비디오 프레임들을 소프트웨어 코덱의 제1 인코더를 통해 인코딩하여 제1 계층의 스크림을 생성할 수 있다. 일례로 앞서 도 3 및 도 4를 통해, 스케일-다운된 비디오의 프레임들(320)을 소프트웨어 코덱(340)의 인코더 0(341)를 통해 인코딩하여 계층 0 스트림(350)을 생성하는 예를 설명한 바 있다.
단계(830)에서 컴퓨터 장치(200)는 제1 인코더를 이용하여 인코딩된 프레임들을 소프트웨어 코덱의 디코더를 이용하여 디코딩할 수 있다. 일례로 앞서 도 4를 통해, 소프트웨어 코덱(340)의 인코더 0(341)를 통해 인코딩된 프레임들을 디코더 0(410)를 통해 다시 디코딩하는 예를 설명한 바 있다.
단계(840)에서 컴퓨터 장치(200)는 디코딩된 프레임들을 스케일-업하여 스케일-업된 비디오의 프레임들을 생성할 수 있다. 일례로 앞서 도 4를 통해, 디코딩된 프레임들을 스케일-업하여 스케일-업된 비디오의 프레임들(420)을 생성하는 예를 설명한 바 있다.
단계(830) 및 단계(840)는 일례로 도 4를 통해 설명한 차분영상(440)을 생성 및 활용하는 실시예에서 컴퓨터 장치(200)에 의해 수행될 수 있다. 차분영상(440)을 활용하지 않는 경우 단계(830) 및 단계(840)는 생략될 수도 있다.
단계(850)에서 컴퓨터 장치(200)는 원본 비디오의 프레임들 및 하드웨어 코덱의 제2 인코더를 이용하여 제2 계층의 스트림을 생성할 수 있다. 일례로, 도 4를 통해 설명한 차분영상(400)을 생성 및 활용하지 않는 경우, 컴퓨터 장치(200)는 원본 비디오의 프레임들을 하드웨어 코덱의 제2 인코더를 통해 인코딩하여 제2 계층의 스트림을 생성할 수 있다. 반면, 차분영상(400)을 생성 및 활용하는 경우 단계(850)은 단계(851) 및 단계(852)를 포함할 수 있다.
단계(851)에서 컴퓨터 장치(200)는 원본 비디오의 프레임들 및 스케일-업된 비디오의 프레임들에 대한 차분영상들을 생성할 수 있다. 예를 들어, 컴퓨터 장치(200)는 원본 비디오의 프레임들의 화소값과 스케일-업된 비디오의 프레임들의 대응하는 위치의 화소값들간의 차이를 통해 차분영상들을 생성할 수 있다. 이때, 원본 비디오의 프레임들과 스케일-업된 비디오의 프레임들 중 서로 대응하는 두 프레임들마다 하나의 차분영상이 생성될 수 있다.
이때, 컴퓨터 장치(200)는 차분영상들의 화소값들의 제1 범위를 원본 비디오의 프레임들의 화소값들의 제2 범위 또는 스케일-업된 비디오의 프레임들의 화소값들의 제3 범위로 조정할 수 있다. 예를 들어, 제2 범위 또는 상기 제3 범위는 0부터 (n+n+1)까지의 범위를 포함하고, 상기 제1 범위는 -(n+n+1)부터 (n+n+1)까지의 범위를 포함할 수 있다. 여기서, 'n'은 자연수일 수 있다. 이 경우, 컴퓨터 장치(200)는 차분영상들의 화소값들 중 -(n+1) 미만의 화소값을 -(n+1)의 화소값으로 변경하고, n을 초과하는 화소값을 n의 화소값으로 변경할 수 있으며, 차분영상의 화소값들 각각에 n을 더함으로써, 차분영상들의 화소값들의 제1 범위를 0부터 (n+n+1)까지의 범위로 조정할 수 있다. 앞서 도 6 및 도 7에서는 1 바이트의 크기를 위해 n이 '127'인 경우의 실시예를 설명한 바 있다.
단계(852)에서 컴퓨터 장치(200)는 생성된 차분영상들을 하드웨어 코덱의 제2 인코더를 통해 인코딩하여 제2 계층의 스크림을 생성할 수 있다. 이 경우에는 원본 비디오의 프레임들을 인코딩한 스트림이 아닌, 대부분 '0'의 값을 갖는 차분영상들을 인코딩한 스트림을 제2 계층의 스트림으로 활용할 수 있기 때문에 동일한 비디오에 대해 서로 다른 해상도의 버전들을 제공하더라도 데이터의 중복 전송을 최소화할 수 있다.
단계(860)에서 컴퓨터 장치(200)는 수신측 장치로부터 요청되는 해상도에 따라, 제1 계층의 스트림 및 제2 계층의 스트림 중 적어도 하나를 전송할 수 있다. 일례로, 수신측 장치가 낮은 해상도의 스트림을 요청하는 경우, 컴퓨터 장치(200)는 스케일-다운된 비디오의 프레임들을 인코딩하는 생성한 제1 계층의 스트림을 수신측 장치로 전송할 수 있다. 반면, 수신측 장치가 높은 해상도의 스트림을 요청하는 경우, 컴퓨터 장치(200)는 원본 비디오의 프레임들을 인코딩한 제2 계층의 스트림을 수신측 장치로 전송할 수 있다. 만약, 차분영상들이 활용된 경우라면, 컴퓨터 장치(200)는 제1 계층의 스트림과 제2 계층의 스트림을 모두 전송하여 수신측 장치가 제1 계층의 스트림 및 제2 계층의 스트림을 통해 원본 비디오의 프레임들을 복원하도록 할 수 있다.
도 9는 본 발명의 일실시예에 있어서, 수신측 장치의 하이브리드 비디오 코딩 방법의 예를 도시한 흐름도이다. 본 실시예에 따른 하이브리드 비디오 코딩 방법은 앞서 설명한 수신측 장치를 구현하는 컴퓨터 장치(200)에 의해 수행될 수 있다. 이 경우, 컴퓨터 장치(200)의 프로세서(220)는 메모리(210)가 포함하는 운영체제의 코드나 적어도 하나의 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(220)는 컴퓨터 장치(200)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(200)가 도 8의 방법이 포함하는 단계들(910 내지 940)을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다.
단계(910)에서 컴퓨터 장치(200)는 전송측 장치로부터 원본 비디오에 대해 생성된 제1 계층의 스트림 및 제2 계층의 스트림을 수신할 수 있다. 앞서 설명한 바와 같이, 제1 계층의 스트림은 전송측 장치에서 원본 비디오의 프레임들을 스케일-다운하여 생성되는 스케일-다운된 비디오의 프레임들을 전송측 장치의 소프트웨어 코덱의 제1 인코더를 통해 인코딩하여 생성될 수 있다. 또한, 제2 계층의 스트림은 원본 비디오의 프레임들과 하드웨어 코덱의 제2 인코더를 이용하여 생성될 수 있다. 본 실시예에서 제2 계층의 스트림은 차분영상을 전송측 장치의 하드웨어 코덱의 제2 인코더로 인코딩하여 생성될 수 있다. 이때, 차분영상은 원본 비디오의 프레임들의 화소값과 스케일-업된 비디오의 프레임들의 화소값들간의 차이를 통해 생성될 수 있다. 여기서 스케일-업된 비디오의 프레임들은 전송측 장치의 소프트웨어 코덱의 제1 인코더를 통해 인코딩된 프레임들을 전송측 장치의 소프트웨어 코덱의 디코더를 통해 디코딩한 후, 스케일-업하여 생성될 수 있다.
단계(920)에서 컴퓨터 장치(200)는 제1 계층의 스트림을 소프트웨어 코덱의 제1 디코더를 통해 디코딩하여 스케일-다운된 비디오의 프레임들을 생성할 수 있다. 앞서 설명한 바와 같이, 제1 계층의 스트림은 원본 비디오의 프레임들을 스케일-다운하여 생성되는 스케일-다운된 비디오의 프레임들을 전송측 장치의 소프트웨어 코덱의 제1 인코더를 통해 인코딩하여 생성되며, 컴퓨터 장치(200)는 이러한 제1 계층의 스트림을 소프트웨어 코덱의 제1 디코더를 통해 디코딩함으로써, 스케일-다운된 비디오의 프레임들을 얻을 수 있다.
단계(930)에서 컴퓨터 장치(200)는 제2 계층의 스트림을 하드웨어 코덱의 제2 디코더를 통해 디코딩하여 차분영상들을 생성할 수 있다. 여기서, 차분영상들은 전송측 장치에서 원본 비디오의 프레임들 및 스케일-업된 비디오의 프레임들간에 화소값의 차이를 통해 생성될 수 있다. 이때, 차분영상들의 화소값들의 범위가 앞서 도 7을 통해 설명한 바와 같이 시프트되어 조정된 경우, 컴퓨터 장치(200)는 차분영상들의 화소값들의 범위를 다시 원래의 범위로 조정할 수 있다. 예를 들어, 도 7에서는 16 진수 '0x80'을 각 화소값들에 더했던 만큼, 컴퓨터 장치(200)는 생성된 차분영상들의 화소값들 각각에서 '0x80'을 빼서 차분영상들의 화소값들의 범위를 다시 원래의 범위로 재조정할 수 있다.
단계(940)에서 컴퓨터 장치(200)는 스케일-다운된 비디오의 프레임들 및 상기 차분영상들을 통해 원본 비디오의 프레임들을 복원할 수 있다. 예를 들어, 컴퓨터 장치(200)는 스케일-다운된 비디오의 프레임들을 스케일-업하여 스케일-업된 비디오의 프레임들을 생성하고, 스케일-업된 비디오 프레임들의 화소값에 차분영상의 대응하는 위치의 화소값을 더하여 원본 비디오의 프레임들의 복원할 수 있다. 컴퓨터 장치(200)는 복원된 원본 비디오의 프레임들을 이용하여 원본 비디오를 재생할 수 있게 된다.
이와 같이, 본 발명의 실시예들에 따르면, 하드웨어 코덱과 소프트웨어 코덱의 장점이 융합된 하이브리드 비디오 코딩 방법 및 시스템을 제공할 수 있다. 또한, 하나의 영상에 대해 다양한 해상도의 영상들을 전송함에 있어서, 중복되는 데이터의 전송을 줄일 수 있다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 (15)

  1. 적어도 하나의 프로세서를 포함하는 컴퓨터 장치의 하이브리드 비디오 코딩 방법에 있어서,
    상기 적어도 하나의 프로세서에 의해, 원본 비디오의 프레임들을 스케일-다운(scale-down)하여 스케일-다운된 비디오의 프레임들을 생성하는 단계;
    상기 적어도 하나의 프로세서에 의해, 상기 스케일-다운된 비디오 프레임들을 소프트웨어 코덱의 제1 인코더를 통해 인코딩하여 제1 계층의 스크림을 생성하는 단계; 및
    상기 적어도 하나의 프로세서에 의해, 상기 원본 비디오의 프레임들 및 하드웨어 코덱의 제2 인코더를 이용하여 제2 계층의 스트림을 생성하는 단계
    를 포함하는 하이브리드 비디오 코딩 방법.
  2. 제1항에 있어서,
    상기 적어도 하나의 프로세서에 의해, 상기 제1 인코더를 이용하여 인코딩된 프레임들을 상기 소프트웨어 코덱의 디코더를 이용하여 디코딩하는 단계; 및
    상기 적어도 하나의 프로세서에 의해, 상기 디코딩된 프레임들을 스케일-업(scale-up)하여 스케일-업된 비디오의 프레임들을 생성하는 단계
    를 더 포함하는 하이브리드 비디오 코딩 방법.
  3. 제2항에 있어서,
    상기 제2 계층의 스트림을 생성하는 단계는,
    상기 원본 비디오의 프레임들 및 상기 스케일-업된 비디오의 프레임들에 대한 차분영상들을 생성하는 단계; 및
    상기 생성된 차분영상들을 상기 제2 인코더를 통해 인코딩하여 상기 제2 계층의 스크림을 생성하는 단계
    를 포함하는 것을 특징으로 하는 하이브리드 비디오 코딩 방법.
  4. 제3항에 있어서,
    상기 차분영상들을 생성하는 단계는,
    상기 차분영상들의 화소값들의 제1 범위를 상기 원본 비디오의 프레임들의 화소값들의 제2 범위 또는 상기 스케일-업된 비디오의 프레임들의 화소값들의 제3 범위로 조정하는 단계
    를 포함하는 것을 특징으로 하는 하이브리드 비디오 코딩 방법.
  5. 제4항에 있어서,
    상기 제2 범위 또는 상기 제3 범위는 0부터 (n+n+1)까지의 범위를 포함하고,
    상기 제1 범위는 -(n+n+1)부터 (n+n+1)까지의 범위를 포함하고,
    상기 조정하는 단계는,
    상기 차분영상들의 화소값들 중 -(n+1) 미만의 화소값을 -(n+1)의 화소값으로 변경하고, n을 초과하는 화소값을 n의 화소값으로 변경하는 단계; 및
    상기 차분영상의 화소값들 각각에 n을 더하는 단계
    를 포함하고,
    상기 n은 자연수인 것을 특징으로 하는 하이브리드 비디오 코딩 방법.
  6. 제1항에 있어서,
    상기 적어도 하나의 프로세서에 의해, 수신측 장치로부터 요청되는 해상도에 따라, 상기 제1 계층의 스트림 및 상기 제2 계층의 스트림 중 적어도 하나를 전송하는 단계
    를 더 포함하는 하이브리드 비디오 코딩 방법.
  7. 적어도 하나의 프로세서를 포함하는 컴퓨터 장치의 하이브리드 비디오 코딩 방법에 있어서,
    상기 적어도 하나의 프로세서에 의해, 전송측 장치로부터 원본 비디오에 대해 생성된 제1 계층의 스트림 및 제2 계층의 스트림을 수신하는 단계;
    상기 적어도 하나의 프로세서에 의해, 상기 제1 계층의 스트림을 소프트웨어 코덱의 제1 디코더를 통해 디코딩하여 스케일-다운된 비디오의 프레임들을 생성하는 단계;
    상기 적어도 하나의 프로세서에 의해, 상기 제2 계층의 스트림을 하드웨어 코덱의 제2 디코더를 통해 디코딩하여 차분영상들을 생성하는 단계; 및
    상기 적어도 하나의 프로세서에 의해, 상기 스케일-다운된 비디오의 프레임들 및 상기 차분영상들을 통해 상기 원본 비디오의 프레임들을 복원하는 단계
    를 포함하는 것을 특징으로 하는 하이브리드 비디오 코딩 방법.
  8. 제7항에 있어서,
    상기 원본 비디오의 프레임들을 복원하는 단계는,
    상기 스케일-다운된 비디오의 프레임들을 스케일-업하여 스케일-업된 비디오의 프레임들을 생성하는 단계; 및
    상기 스케일-업된 비디오 프레임들의 화소값에 상기 차분영상의 대응하는 위치의 화소값을 더하여 상기 원본 비디오의 프레임들의 복원하는 단계
    를 포함하는 것을 특징으로 하는 하이브리드 비디오 코딩 방법.
  9. 제7항에 있어서,
    상기 차분영상은 상기 전송측 장치에서 상기 원본 비디오의 프레임들 및 상기 스케일-업된 비디오의 프레임들간에 화소값의 차이를 통해 생성되는 것을 특징으로 하는 하이브리드 비디오 코딩 방법.
  10. 컴퓨터 장치와 결합되어 제1항 내지 제9항 중 어느 한 항의 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
  11. 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서에 의해,
    원본 비디오의 프레임들을 스케일-다운(scale-down)하여 스케일-다운된 비디오의 프레임들을 생성하고,
    상기 스케일-다운된 비디오 프레임들을 소프트웨어 코덱의 제1 인코더를 통해 인코딩하여 제1 계층의 스크림을 생성하고,
    상기 원본 비디오의 프레임들 및 하드웨어 코덱의 제2 인코더를 이용하여 제2 계층의 스트림을 생성하는 것
    을 특징으로 하는 컴퓨터 장치.
  12. 제11항에 있어서,
    상기 적어도 하나의 프로세서에 의해,
    상기 제1 인코더를 이용하여 인코딩된 프레임들을 상기 소프트웨어 코덱의 디코더를 이용하여 디코딩하고,
    상기 디코딩된 프레임들을 스케일-업(scale-up)하여 스케일-업된 비디오의 프레임들을 생성하는 것
    을 특징으로 하는 컴퓨터 장치.
  13. 제12항에 있어서,
    상기 적어도 하나의 프로세서에 의해,
    상기 원본 비디오의 프레임들 및 상기 스케일-업된 비디오의 프레임들에 대한 차분영상들을 생성하고,
    상기 생성된 차분영상들을 상기 제2 인코더를 통해 인코딩하여 상기 제2 계층의 스크림을 생성하는 것
    을 특징으로 하는 컴퓨터 장치.
  14. 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서에 의해,
    전송측 장치로부터 원본 비디오에 대해 생성된 제1 계층의 스트림 및 제2 계층의 스트림을 수신하고,
    상기 제1 계층의 스트림을 소프트웨어 코덱의 제1 디코더를 통해 디코딩하여 스케일-다운된 비디오의 프레임들을 생성하고,
    상기 제2 계층의 스트림을 하드웨어 코덱의 제2 디코더를 통해 디코딩하여 차분영상들을 생성하고,
    상기 스케일-다운된 비디오의 프레임들 및 상기 차분영상들을 통해 상기 원본 비디오의 프레임들을 복원하는 것
    을 특징으로 하는 컴퓨터 장치.
  15. 제14항에 있어서,
    상기 적어도 하나의 프로세서에 의해,
    상기 스케일-다운된 비디오의 프레임들을 스케일-업하여 스케일-업된 비디오의 프레임들을 생성하고,
    상기 스케일-업된 비디오 프레임들의 화소값에 상기 차분영상의 대응하는 위치의 화소값을 더하여 상기 원본 비디오의 프레임들의 복원하는 것
    을 특징으로 하는 컴퓨터 장치.
KR1020190141545A 2019-11-07 2019-11-07 하이브리드 비디오 코딩 방법 및 시스템 KR20210055278A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190141545A KR20210055278A (ko) 2019-11-07 2019-11-07 하이브리드 비디오 코딩 방법 및 시스템
US17/086,636 US11245914B2 (en) 2019-11-07 2020-11-02 Method and system for hybrid video coding
JP2020185607A JP2021078122A (ja) 2019-11-07 2020-11-06 ハイブリッドビデオコーディング方法およびコンピュータ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190141545A KR20210055278A (ko) 2019-11-07 2019-11-07 하이브리드 비디오 코딩 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20210055278A true KR20210055278A (ko) 2021-05-17

Family

ID=75847154

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190141545A KR20210055278A (ko) 2019-11-07 2019-11-07 하이브리드 비디오 코딩 방법 및 시스템

Country Status (3)

Country Link
US (1) US11245914B2 (ko)
JP (1) JP2021078122A (ko)
KR (1) KR20210055278A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023027288A1 (ko) * 2021-08-23 2023-03-02 삼성전자 주식회사 영상 통화를 수행하는 동안 복수의 이미지 스트림을 전송하는 전자 장치 및 전자 장치의 동작 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672761B (zh) * 2021-07-16 2023-07-25 北京奇艺世纪科技有限公司 视频处理方法及装置
US20240163324A1 (en) * 2022-11-15 2024-05-16 MIXHalo Corp. Systems and methods for additive bitrate fragmentation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963353B1 (en) * 2003-05-14 2005-11-08 Cisco Technology, Inc. Non-causal speaker selection for conference multicast
US7953156B2 (en) * 2003-08-29 2011-05-31 Koninklijke Philips Electronics N.V. System and method for encoding and decoding enhancement layer data using descriptive model parameters
US20060248210A1 (en) * 2005-05-02 2006-11-02 Lifesize Communications, Inc. Controlling video display mode in a video conferencing system
KR102489001B1 (ko) 2012-03-22 2023-01-18 엘지전자 주식회사 비디오 인코딩 방법, 비디오 디코딩 방법 및 이를 이용하는 장치
US9877025B2 (en) * 2013-07-12 2018-01-23 British Broadcasting Corporation Video encoding and decoding with prediction at higher precision
US9471995B2 (en) * 2014-01-14 2016-10-18 Vixs Systems Inc. Codec engine with inline image processing
US9609275B2 (en) * 2015-07-08 2017-03-28 Google Inc. Single-stream transmission method for multi-user video conferencing
WO2018017891A1 (en) * 2016-07-20 2018-01-25 Arris Enterprises Llc Client feedback enhanced methods and devices for efficient adaptive bitrate streaming
WO2018165487A1 (en) * 2017-03-08 2018-09-13 Arris Enterprises Llc Excess bitrate distribution based on quality gain in sabr server
US10250658B2 (en) * 2017-03-17 2019-04-02 The Directv Group, Inc. Hybrid media stream delivery using multiple network connections
CN111727358B (zh) * 2017-12-29 2023-11-21 前视红外系统股份公司 具有被配置用于不同光谱响应的传感器的红外传感器阵列
US11463757B2 (en) * 2018-09-27 2022-10-04 Intel Corporation Media streaming for receiver-enabled resolution

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023027288A1 (ko) * 2021-08-23 2023-03-02 삼성전자 주식회사 영상 통화를 수행하는 동안 복수의 이미지 스트림을 전송하는 전자 장치 및 전자 장치의 동작 방법

Also Published As

Publication number Publication date
JP2021078122A (ja) 2021-05-20
US20210144394A1 (en) 2021-05-13
US11245914B2 (en) 2022-02-08

Similar Documents

Publication Publication Date Title
US8675000B2 (en) Command buffers for web-based graphics rendering
US11163854B2 (en) Encoding optimization for obfuscated media
KR101770070B1 (ko) 비디오 컨퍼런스를 위한 비디오 스트림 제공 방법 및 시스템
US9300818B2 (en) Information processing apparatus and method
KR20210055278A (ko) 하이브리드 비디오 코딩 방법 및 시스템
US10791160B2 (en) Method and apparatus for cloud streaming service
US11785195B2 (en) Method and apparatus for processing three-dimensional video, readable storage medium and electronic device
US20140229533A1 (en) Client-side network page generation
KR102134250B1 (ko) 스트리밍 콘텐츠의 재생 방법 및 시스템
CN111008934A (zh) 一种场景构建方法、装置、设备及存储介质
CN115918095A (zh) 用于视图优化的360度虚拟现实视频流的系统及方法
CN114616596A (zh) 自由视图视频解码
CN114647472B (zh) 图片处理方法、装置、设备、存储介质和程序产品
CN112215774B (zh) 模型训练和图像去雾方法、装置、设备和计算机可读介质
CN111738899B (zh) 用于生成水印的方法、装置、设备和计算机可读介质
US11437052B2 (en) Method and system for parallel audio transcoding
CN112688863B (zh) 网关数据处理方法、装置及电子设备
CN114245134B (zh) 音视频数据生成方法、装置、设备和计算机可读介质
KR102167360B1 (ko) 화면 전송 방법 및 장치
US20240144425A1 (en) Image compression augmented with a learning-based super resolution model
WO2021018178A1 (zh) 文字特效处理方法及装置
KR20200091277A (ko) 오디오 프라이밍을 고려한 디코딩 방법 및 시스템
KR20210011038A (ko) 오디오 인코딩을 위한 방법 및 시스템
WO2021018177A1 (zh) 文字特效处理方法及装置
WO2023136780A2 (zh) 图像处理方法及设备