KR20180116835A - 비디오 비트 스트림 혼합 방법 및 이를 수행하는 장치 - Google Patents

비디오 비트 스트림 혼합 방법 및 이를 수행하는 장치 Download PDF

Info

Publication number
KR20180116835A
KR20180116835A KR1020170049606A KR20170049606A KR20180116835A KR 20180116835 A KR20180116835 A KR 20180116835A KR 1020170049606 A KR1020170049606 A KR 1020170049606A KR 20170049606 A KR20170049606 A KR 20170049606A KR 20180116835 A KR20180116835 A KR 20180116835A
Authority
KR
South Korea
Prior art keywords
svc
unit
bitstreams
bitstream
mixing
Prior art date
Application number
KR1020170049606A
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 KR1020170049606A priority Critical patent/KR20180116835A/ko
Priority to US15/882,352 priority patent/US20180302636A1/en
Publication of KR20180116835A publication Critical patent/KR20180116835A/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/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal 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
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers

Abstract

비디오 비트 스트림 혼합 방법 및 이를 수행하는 장치들이 개시된다. 일 실시 예에 따른 비디오 비트 스트림 혼합 방법은 사용자 장치의 화면 구성에 따라 복수의 SVC(Scalable Video Coding) 비트 스트림을 계층별로 혼합하여 혼합 SVC 비트 스트림을 생성하는 단계와, 상기 사용자 장치의 수신 환경에 기초하여 상기 혼합 SVC 비트 스트림으로부터 하나의 계층에 대응하는 단일 SVC 비트 스트림을 추출하는 단계와, 상기 단일 SVC 비트 스트림을 상기 사용자 장치에 전송하는 단계를 포함한다.

Description

비디오 비트 스트림 혼합 방법 및 이를 수행하는 장치{METHOD OF PROVIDING VIDEO AND APPARATUSES PERFORMING THE SAME}
아래 실시예들은 비디오 비트 스트림 혼합 방법 및 이를 수행하는 장치들에 관한 것이다.
SVC(scalable video coding) 기술은 하나의 비디오 데이터를 다양한 공간적 해상도(spatial resolution), 화질(quality) 및 프레임율(frame-rate)을 가지도록 계층화(layer)하여 하나의 부호화 비트스트림으로 수신 단말에 제공할 수 있는 부호화 기술이며, H.264/SVC는 H.264/AVC의 확장 부호화 방식으로 다양한 네트워크 환경과 다양한 수신 단말기 환경에 효율적으로 비디오를 전송하기 위한 국제 표준 비디오 부호화 방식이다.
SVC 기술은 하나의 비디오 데이터를 하나의 기본 계층(base layer)과 하나 이상의 향상 계층(enhancement layer)으로 순차적으로 부호화 비스트림을 구성하여 수신자 단말에 전송할 수 있다. 부호화 비트스트림은 각 수신 단말의 네트워크 환경, 해상도 등 다양한 수신 환경에 맞게 복호기에서 하위 계층 정보를 기반으로 향상 계층(enhancement layer)을 복원하여 영상을 디스플레이할 수 있다.
그러나 다자간 화상회의, 대규모 영상 관제 서비스, 다채널 방송 서비스 등과 같이 여러 장소(또는, 원격지)에서 사용자들이 동시에 다수의 SVC 비트 스트림을 생성하여 전송할 경우, 수신자 단말에서는 다수의 SVC 비트 스트림을 동시에 추출하여 복원 및 재생해야 함으로 수신 단말에 여러 개의 복호기를 구비해야 하는 문제점을 가지고 있다.
실시예들은 사용자 장치의 화면 구성에 따라 복수의 SVC(Scalable Video Coding) 비트 스트림을 계층별로 혼합하여 혼합 SVC 비트 스트림을 생성하는 기술을 제공할 수 있다.
또한, 실시예들은 상기 사용자 장치의 수신 환경에 기초하여 상기 혼합 SVC 비트 스트림으로부터 하나의 계층에 대응하는 단일 SVC 비트 스트림을 추출하는 기술을 제공할 수 있다.
또한, 실시예들은 상기 단일 SVC 비트 스트림을 복호화하여 상기 사용자 장치에 전송함으로써 동시에 복수의 SVC 비트 스트림들로 부호화된 비디오를 동시 재생할 수 있는 기술을 제공할 수 있다.
일 실시예에 따른 비디오 비트 스트림 혼합 방법은 사용자 장치의 화면 구성에 따라 복수의 SVC(scalable video coding) 비트 스트림들을 계층별로 혼합하여 단일 혼합 SVC 비트 스트림을 생성하는 단계와, 상기 사용자 장치의 수신 환경에 기초하여 상기 혼합 SVC 비트 스트림으로부터 하나의 계층에 대응하는 단일 SVC 비트 스트림을 추출하는 단계와, 상기 단일 SVC 비트 스트림을 복호화하여 상기 사용자 장치에 전송하는 단계를 포함한다.
상기 복수의 SVC 비트 스트림들은 복수의 원격지들로부터 전송된 하나의 기본 계층(base layer)와 복수의 향상 계층(enhancement layer)들로 구성된 비트 스트림들일 수 있다.
상기 생성하는 단계는 상기 복수의 SVC 비트 스트림들을 날-유닛(network abstraction layer unit) 단위로 분석하는 단계와 상기 분석 결과에 기초하여 상기 사용자 장치의 화면 배치 구성 파라미터에 따라 분석된 복수의 SVC 비트 스트림들을 혼합하는 단계를 포함할 수 있다.
상기 분석하는 단계는 상기 복수의 SVC 비트 스트림들 각각의 날-유닛의 헤더 정보 분석을 통해 날-유닛을 식별하는 단계와, 상기 식별 결과에 기초하여 상기 사용자 장치의 화면 배치 구성 파라미터에 따라 상기 복수의 SVC 비트 스트림들의 날-유닛을 선별하는 단계를 포함할 수 있다.
상기 혼합하는 단계는 상기 분석된 복수의 SVC 비트 스트림들 중 기준 비트 스트림의 SPS(sequence parameter set)를 변환하는 단계와, 상기 사용자 장치의 화면 배치 구성 파라미터에 기초하여 상기 분석된 복수의 SVC 비트 스트림들 각각의 슬라이스 헤더(slice header)를 변환하는 단계와, 상기 복수의 계층들 각각의 계층 순서에 기초하여 변환된 복수의 SVC 비트 스트림들을 재배치하여 혼합 SVC 비트 스트림을 생성하는 단계를 포함할 수 있다.
상기 SPS를 변환하는 단계는 최종 혼합 화면의 해상도 크기에 기초하여 혼합할 최종 화면의 가로 크기의 필드값 및 세로 크기의 필드값을 변경하는 단계를 포함할 수 있다.
상기 각각의 슬라이스 헤더를 변환하는 단계는 상기 분석된 복수의 SVC 비트 스트림들을 각각의 기본 계층(base layer) 및 향상 계층(enhancement layer)의 슬라이스 데이터에 대한 슬라이스 헤더의 매크로블록(macroblock) 시작 번지 필드값을 변경하는 단계를 포함할 수 있다.
상기 생성하는 단계는 상기 변환된 복수의 SVC 비트 스트림들을 구성하는 기본 계층(base layer) 및 향상 계층(enhancement layer) 각각의 슬라이스 데이터에 대한 슬라이스 헤더의 매크로블록 어드레스(macroblock address) 정보에 기초하여 상기 변환된 복수의 SVC 비트 스트림들 각각의 슬라이스 데이터로 구성된 날-유닛의 비트 수를 계산하는 단계를 포함할 수 있다.
상기 계산하는 단계는 계산된 슬라이스 데이터에 RBSP(raw byte sequence payload) trailing 비트를 삽입하여 슬라이스 날-유닛의 바이트 정렬하는 단계를 포함할 수 있다.
일 실시예에 따른 비디오 비트 스트림 혼합 장치는 사용자 장치의 화면 구성에 따라 복수의 SVC(scalable video coding) 비트 스트림들을 계층별로 혼합하여 단일 혼합 SVC 비트 스트림을 생성하는 혼합기와, 상기 사용자 장치의 수신 환경에 기초하여 상기 혼합 SVC 비트 스트림으로부터 하나의 계층에 대응하는 단일 SVC 비트 스트림을 추출하는 추출기와, 상기 단일 SVC 비트 스트림을 상기 사용자 장치에 전송하는 복호화기를 포함한다.
상기 복수의 SVC 비트 스트림들은 복수의 원격지들로부터 전송된 하나의 기본 계층(base layer) 및 복수의 향상 계층(enhancement layer)들로 구성된 비트 스트림들일 수 있다.
상기 혼합기는 버퍼 충만도(buffer fullness)에 기초하여 상기 복수의 SVC 비트 스트림들을 날-유닛(network abstraction layer unit) 단위로 제공하는 버퍼부와, 상기 복수의 SVC 비트 스트림들을 상기 날-유닛(network abstraction layer unit) 단위로 분석하는 분석부와, 상기 분석 결과에 기초하여 상기 사용자 장치의 화면 배치 구성 파라미터에 따라 분석된 복수의 SVC 비트 스트림들을 혼합하는 처리부를 포함할 수 있다.
상기 분석부는 상기 복수의 SVC 비트 스트림들 각각의 날-유닛(network abstraction layer unit)의 헤더 정보 분석을 통해 날-유닛을 식별하고, 상기 식별 결과에 기초하여 상기 사용자 장치의 화면 배치 구성 파라미터에 따라 상기 복수의 SVC 비트 스트림들의 날-유닛을 선별할 수 있다.
상기 처리부는 상기 분석된 복수의 SVC 비트 스트림 중에서 기분 비트 스트림의 SPS(sequence parameter set)를 변환하는 제1 변환부와, 상기 사용자 장치의 화면 배치 구성 파라미터에 기초하여 상기 분석된 복수의 SVC 비트 스트림들 각각의 슬라이스 헤더(slice header)를 변환하는 제2 변환부와, 상기 변환된 복수의 SVC 비트 스트림들 각각의 복수의 계층들 각각의 계층 순서에 기초하여 변환된 복수의 SVC 비트 스트림들을 재배치하여 혼합 SVC 비트 스트림을 생성하는 생성부를 포함할 수 있다.
상기 제1 변환부는 최종 혼합 화면의 해상도 크기에 기초하여 혼합할 최종 화면의 가로 크기의 필드값 및 세로 크기의 필드값을 변경할 수 있다.
상기 제2 변환부는 상기 분석된 복수의 SVC 비트 스트림들 각각의 기본 계층(base layer) 및 향상 계층(enhancement layer)의 슬라이스 데이터에 대한 슬라이스 헤더의 매크로블록(macroblock) 시작 번지 필드값을 변경할 수 있다.
상기 생성부는 상기 변환된 복수의 SVC 비트 스트림들을 구성하는 기본 계층(base layer) 및 향상 계층(enhancement layer) 각각의 슬라이스 데이터에 대한 슬라이스 헤더의 매크로블록 어드레스(macroblock address) 정보에 기초하여 상기 변환된 복수의 SVC 비트 스트림들 각각의 슬라이스 데이터로 구성된 날-유닛의 비트 수를 계산할 수 있다.
상기 생성부는 계산된 슬라이스 데이터에 RBSP(raw byte sequence payload) trailing 비트를 삽입하여 슬라이스 날-유닛의 바이트 정렬할 수 있다.
도 1은 일 실시예에 따른 비디오 비트 스트림 혼합 시스템의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 비디오 비트 스트림 혼합 장치의 개략적인 블록도를 나타낸다.
도 3은 도 2에 도시된 컨트롤러의 개략적인 블록도를 나타낸다.
도 4는 도 3에 도시된 혼합기의 개략적인 블록도를 나타낸다.
도 5는 도 4에 도시된 처리부의 개략적인 블록도를 나타낸다.
도 6은 SVC 비트 스트림의 구조를 설명하기 위한 일 예를 나타낸다.
도 7은 SVC 비트 스트림의 날-유닛 구조를 설명하기 위한 일 예를 나타낸다.
도 8은 단일 SVC 비트 스트림을 설명하기 위한 예들을 나타낸다.
도 9는 사용자 장치의 화면 구성을 설명하기 위한 예들을 나타낸다.
도 10은 혼합기의 동작을 설명하기 위한 일 예를 나타낸다.
도 11은 도 1에 도시된 비디오 비트 스트림 혼합 장치를 설명하기 위한 순서도를 나타낸다.
본 명세서에서 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 잇고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 “~사이에”와 “바로~사이에” 또는 “~에 이웃하는”과 “~에 직접 이웃하는” 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, “포함하다” 또는 “가지다” 등의 용어를 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 비디오 비트 스트림 혼합 시스템의 개략적인 블록도를 나타낸다.
도 1을 참조하면, 비디오 비트 스트림 혼합 시스템(a video bit stream mixing system; 10)은 복수의 원격지들(a plural of remote locations; 100), 비디오 비트 스트림 혼합 장치(a video bit stream mixing apparatus; 200) 및 사용자 장치(an user’s apparatus; 300)를 포함한다.
복수의 원격지들(100) 각각은 비디오 비트 스트림 혼합 장치(200)와 통신할 수 있다. 예를 들어, 복수의 원격지들(100) 각각은 동시에 SVC 비트 스트림(scalable video coding bit stream)을 비디오 비트 스트림 혼합 장치(200)에 전송할 수 있다. 이때, SVC 비트 스트림은 공간적, 시간적 및 화질적 요소로 기본 계층 및 복수의 향상 계층으로 분리되고 부호화된 SVC 비트 스트림일 수 있다.
복수의 원격지들(100) 각각은 제1 원격지(100-1) 내지 제n 원격지(100-n)를 포함할 수 있다. 예를 들어, n은 1이상의 자연수일 수 있다.
복수의 원격지들(100)은 전자 장치로 구현될 수 있다. 예를 들어, 전자 장치는 PC(personal computer), 데이터 서버, 또는 휴대용 장치로 구현될 수 있다.
휴대용 전자 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), e-북(e-book), 스마트 디바이스(smart device)으로 구현될 수 있다. 이때, 스마트 디바이스는 스마트 워치(smart watch) 또는 스마트 밴드(smart band)로 구현될 수 있다.
비디오 비트 스트림 혼합 장치(200)는 사용자 장치(300)와 통신할 수 있다. 이에, 비디오 비트 스트림 혼합 장치(200)는 사용자 장치(200)에 다자간 화상회의, 대규모 영상 관제 서비스, 다채널 방송 서비스 등을 제공할 수 있다.
예를 들어, 비디오 비트 스트림 혼합 장치(200)는 복수의 원격지들(100)로부터 동시에 전송된 복수의 SVC 비트 스트림들을 혼합하여 사용자 장치(300)에 전송할 수 있다.
구체적으로, 비디오 비트 스트림 혼합 장치(200)는 복수의 계층으로 구성된 복수의 SVC 비트 스트림들을 화소 단위로 복호화 하지 않고, 비트 스트림을 구성하는 비트열의 부호화 파라미터 일부를 수정 및 추가하여 복수의 계층으로 구성된 하나의 SVC 비트 스트림으로 재구성할 수 있다. 이후에, 비디오 비트 스트림 혼합 장치(200)는 사용자 장치(300)의 하나의 SVC 비트 스트림의 복수의 계층들 중에서 수신 환경에 따른 하나의 계층의 SVC 비트 스트림을 추출하여 사용자 장치(300)에 전송할 수 있다.
이에, 비디오 비트 스트림 혼합 장치(200)는 복수의 원격지들(100)로부터 동시에 전송된 복수의 SVC 비트 스트림들을 실시간으로 동시 복원 및 재생할 수 있는 하나의 SVC 비트 스트림을 사용자 장치(300)에 제공할 수 있다. 또한, 비디오 비트 스트림 혼합 장치(200)는 비트열 혼합 과정에서 기준 영상에 따라 저해상도의 비디오부터 고해상도의 비디오까지 자유롭게 혼합할 수 있다.
비디오 비트 스트림 혼합 장치(200)는 사용자 장치(300)와 함께 제공될 수 있다. 또한, 비디오 비트 스트림 혼합 장치(200)는 사용자 장치(300)의 환경에 맞게 MCU(multipoint control unit) 또는 SVC 관제 서버 등에서 미리 제공될 수 있다.
사용자 장치(300)는 비디오 비트 스트림을 디스플레이할 수 있다. 예를 들어, 사용자 장치(300)는 비디오 비트 스트림 혼합 장치(200)로부터 전송된 SVC 비트 스트림을 디스플레이할 수 있다. 이때, SVC 비트 스트림은 복호화된 SVC 비트 스트림일 수 있다.
또한, 사용자 장치(300)는 복수의 SVC 비트 스트림들을 화소 단위로 혼합 및 재부호화에 따른 화질 열화 현상이 없을 수 있다.
사용자 장치(300)는 SVC 비트 스트림 복호기를 포함한 전자 장치로 구현될 수 있다. 예를 들어, 전자 장치는 PC(personal computer), 데이터 서버, 또는 휴대용 장치로 구현될 수 있다.
휴대용 전자 장치는 데스크탑(desktop) 컴퓨터, 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), e-북(e-book), 스마트 디바이스(smart device)으로 구현될 수 있다. 이때, 스마트 디바이스는 스마트 워치(smart watch) 또는 스마트 밴드(smart band)로 구현될 수 있다.
도 2는 도 1에 도시된 비디오 비트 스트림 혼합 장치의 개략적인 블록도를 나타내고, 도 3은 도 2에 도시된 컨트롤러의 개략적인 블록도를 나타내고, 도 4는 도 3에 도시된 혼합기의 개략적인 블록도를 나타내고, 도 5는 도 4에 도시된 처리부의 개략적인 블록도를 나타낸다.
도 2를 참조하면, 비디오 비트 스트림 혼합 장치(200)는 송수신기(transceiver; 210), 컨트롤러(controller; 230) 및 메모리(memory; 250)를 포함한다.
송수신기(210)는 복수의 원격지들(100) 및 사용자 장치(300)와 통신할 수 있다. 이에, 송수신기(210)는 OFDMA(Orthogonal Frequency Division Multiple Access), SC-FDMA(Single Carrier Frequency Division Multiple Access), GFDM(Generalized Frequency Division Multiplexing), UFMC(Universal Filtered Multi-Carrier), FBMC(Filter Bank Multicarrier), BFDM(Biorthogonal Frequency Division Multiplexing), NOMA(Non-Orthogonal multiple access), CDMA(Code Division Multiple Access) 및 IOT(Internet Of Things) 등 다양한 통신 프로토콜 기반으로 복수의 원격지들(100) 및 사용자 장치(300)와 통신할 수 있다.
송수신기(210)는 복수의 원격지들(100)로부터 SVC(scalable video coding) 비트 스트림들을 수신할 수 있다. 이때, SVC 비트 스트림들은 복수의 원격지들(100)로부터 전송된 복수의 계층들(예를 들어, 하나의 기본 계층(base layer)와 복수의 향상 계층(enhancement layer)들)로 구성된 복수의 SVC 비트 스트림들일 수 있다.
송수신기(210)는 사용자 장치(300)에 비디오 비트 스트림을 전송할 수 있다. 이때, 비디오 비트 스트림은 비디오 비트 스트림 혼합 장치(200)에서 생성되어 사용자 장치(300)에 디스플레이되는 하나의 계층으로 구성된 단일 SVC 비트 스트림일 수 있다.
컨트롤러(230)는 비디오 비트 스트림 혼합 장치(200)의 전반적인 동작을 제어할 수 있다. 예를 들어, 컨트롤러(230)는 각 구성(210 및 250)의 동작을 제어할 수 있다.
컨트롤러(230)는 송수신기(210)를 통해 수신된 비디오 비트 스트림들을 획득할 수 있다. 예를 들어, 컨트롤러(230)는 송수신기(210)를 통해 수신된 복수의 SVC 비트 스트림들을 획득할 수 있다. 이때, 컨트롤러(230)는 복수의 SVC 비트 스트림들을 메모리(250)에 저장할 수 있다.
컨트롤러(230)는 복수의 SVC 비트 스트림들을 혼합하여 하나의 비디오 비트 스트림을 생성할 수 있다. 예를 들어, 컨트롤러(230)는 사용자 장치(300)의 화면 구성에 따라 복수의 SVC 비트 스트림들을 계층별로 혼합하여 단일 혼합 SVC 비트 스트림을 생성할 수 있다. 이때, 컨트롤러(230)는 단일 혼합 SVC 비트 스트림을 메모리(250)에 저장할 수 있다.
컨트롤러(230)는 비디오 비트 스트림을 추출 및 복호화할 수 있다. 예를 들어, 컨트롤러(23)는 사용자 장치의 수신 환경에 기초하여 혼합 SVC 비트 스트림으로부터 하나의 계층에 대응하는 단일 SVC 비트 스트림을 추출 및 복호화할 수 있다. 이때, 컨트롤러(230)는 추출 및 복호화된 단일 SVC 비트 스트림을 메모리(250)에 저장할 수 있다.
도 3을 참조하면, 컨트롤러(230)는 혼합기(mixer; 231), 추출기(extractor; 233) 및 복호화기(decoder; 235)를 포함한다.
혼합기(231)는 복수의 비디오 비트 스트림들을 혼합하여 하나의 비디오 비트 스트림을 생성할 수 있다. 예를 들어, 혼합기(231)는 사용자 장치(300)의 화면 구성에 따라 복수의 계층으로 구성된 복수의 SVC 비트 스트림들을 계층별로 혼합하여 복수의 계층으로 구성된 혼합 SVC 비트 스트림을 생성할 수 있다.
구체적으로, 혼합기(231)는 사용자 장치(300)의 화면 구성에 따라 복수의 계층들로 구성된 복수의 SVC 비트 스트림들을 계층별로 동일한 해상도의 비디오 또는 하나의 고해상도와 다수의 저해상도 비디오로 구성되게 혼합하여 복수의 계층으로 구성된 혼합 SVC 비트 스트림을 생성할 수 있다. 이때, 혼합 SVC 비트 스트림은 하나의 기본 계층 및 하나 이상의 향상 계층으로 구성된 하나의 SVC 비트 스트림일 수 있다.
추출기(233)는 복수의 계층으로 구성된 비디오 비트 스트림으로부터 하나의 계층으로 구성된 비디오 비트 스트림을 추출할 수 있다. 예를 들어, 추출기(233)는 사용자 장치(300)의 수신 환경에 기초하여 복수의 계층으로 구성된 혼합 SVC 비트 스트림으로부터 하나의 계층에 대응하는 단일 SVC 비트 스트림을 추출할 수 있다. 이때, 단일 SVC 비트 스트림은 하나의 계층으로 구성된 하나의 혼합된 비디오 비트 스트림일 수 있다.
복호화기(235)는 비디오 비트 스트림을 복호화할 수 있다. 예를 들어, 복호화기(235)는 사용자 장치(300)에서 디스플레이될 수 있게 추출된 단일 SVC 비트 스트림을 복호화할 수 있다.
도 4를 참조하면, 혼합기(231)는 버퍼부(buffer unit; 231a), 분석부(Analyzer; 231b) 및 처리부(processor; 231c)를 포함한다.
버퍼부(231a)는 복수의 비디오 비트 스트림들을 날-유닛(network abstraction layer unit) 단위로 분석부(231b)에 제공할 수 있다. 예를 들어, 버퍼부(231a)는 GOP(group of picture) 단위로 수신된 복수의 계층으로 구성된 복수의 SVC 비트 스트림들을 버퍼 충만도(buffer fullness)에 기초하여 날-유닛 단위로 분석부(231b)에 제공할 수 있다.
분석부(231b)는 복수의 비디오 비트 스트림들을 날-유닛 단위로 분석할 수 있다. 이때, 날-유닛은 날-유닛의 종류와 SVC 비트 스트림의 계층을 분리할 수 있는 날-유닛 헤더와 함께 구성된 non-VCL(non video coding layer) 날-유닛 및 VCL(video coding layer) 날-유닛을 포함하고, SVC 비트 스트림을 프레임 단위로 공간적, 시간적 및 화질적 계층으로 하나의 기본 계층(base layer)과 하나 이상의 향상 계층(enhancement layer)으로 계층화된 날-유닛일 수 있다.
non-VCL(non video coding layer) 날-유닛은 시퀀스 파라미터 셋(sequence parameter set; SPS) 데이터, 픽쳐 파라미터 셋(picture parameter set; PPS) 데이터 및 보충적 부가정보(supplemental enhancement information; SEI) 데이터를 포함할 수 있다. 이때, 시퀀스 파라미터 셋(sequence parameter set; SPS) 데이터는 SVC 비트 스트림의 비디오 프로파일(video profile), 레벨, 해상도 등 부호화 전체에 대한 파라미터를 정의한 것이고, 픽쳐 파라미터 셋(picture parameter set; PPS) 데이터는 엔트로피 코딩 모드(entropy coding mode), 슬라이스 그룹 형태, 양자화 속성 등 부호화 프레임 단위에 대한 파라미터를 정의한 것이고, 보충적 부가정보(supplemental enhancement information; SEI) 데이터는 계층화 계층 정보를 정의한 것일 수 있다.
VCL(video coding layer) 날-유닛은 기본 계층(base layer) 및 향상 계층(enhancement layer)에 따른 슬라이스 헤더(slice header, slice header in scalable extension) 와 함께 슬라이스 데이터(slice data)를 포함할 수 있다. 이때, 슬라이스 데이터(slice data)는 하나의 프레임을 구성하는 매트로블록(macroblock) 단위로 부호화된 슬라이스 데이터(slice data)일 수 있다. 이때, 슬라이스 데이터(slice data)를 구성하는 하나의 프레임은 하나의 슬라이스로 구성될 수도 있고 복수의 슬라이스로 구성될 수 있다.
따라서, 분석부(231b)는 복수의 비디오 비트 스트림들의 여러 형태의 날-유닛들을 식별하여 처리부(231c)에서 계층별로 혼합에 사용되는 날-유닛들을 선별할 수 있다. 예를 들어, 분석부(231b)는 복수의 SVC 비트 스트림들 각각의 날-유닛 헤더 정보를 통해 날-유닛을 식별하고, 식별 결과에 기초하여 사용자 장치(300)의 화면 배치 구성 파라미터에 따라 복수의 SVC 비트 스트림들을 선별할 수 있다.
예를 들어, 분석부(231b)는 사용자 장치(300)의 화면 배치 구성 파라미터에 따라 복수의 SVC 비트 스트림들 중에서 기준 비트 스트림을 설정할 수 있다. 기준 비트 스트림은 혼합의 기준이 되는 SVC 비트 스트림일 수 있다.
이후에, 분석부(231b)는 기준 비트 스트림의 non-VCL 날-유닛을 처리부(231c)에 제공하고, 기준이 아닌 비트 스트림들의 non-VCL 날-유닛을 처리부(231c)에 제공하지 않으며 복수의 SVC 비트 스트림들을 구성하는 기본 계층(base layer) 및 향상 계층(enhancement layer) 별로 VCL 날-유닛의 부호화된 슬라이스 데이터를 각각 slice header 및 slice header in scalable extension 정보와 함께 날-유닛 단위로 처리부(231c)에 제공할 수 있다. 또한, 분석부(231b)는 보충적 부가정보(supplemental enhancement information; SEI) 데이터 날-유닛의 정보를 통해 복수의 SVC 비트 스트림들의 계층화 정보를 파악하고, nal unit header SVC extension의 dependency id, quality id 및 temporal id 필드 값을 통해 복수의 계층 각각을 구성하는 날-유닛을 식별하여 처리부(231c)의 혼합 순서에 따라 순차적으로 처리부(231c)에 제공할 수 있다.
처리부(231c)는 분석된 복수의 비디오 비트 스트림들을 혼합하여 하나의 비디오 비트 스트림을 생성할 수 있다. 예를 들어, 처리부(231c)는 분석 결과에 기초하여 사용자 장치(300)의 화면 배치 구성 파라미터에 따라 복수의 계층으로 구성된 복수의 SVC 비트 스트림들 혼합하여 복수의 계층으로 구성된 혼합 SVC 비트 스트림을 생성할 수 있다. 구체적으로, 처리부(231c)는 분석 결과를 기반으로 복수의 SVC 비트 스트림들을 사용자 장치(300)의 화면 배치 구성 파라미터 및 복수의 SVC 비트 스트림들로부터 복수의 계층 각각을 구성하는 non-VCL. VCL 날-유닛을 선택적으로 변화하여 복합 SVC 비트 스트림으로 재구성할 수 있다.
도 5를 참조하면, 처리부(231c)는 제1 변환부(a first converter; 231c-1), 제2 변환부(a second converter; 231c-3) 및 생성부(generator; 231c-5)를 포함한다.
제1 변환부(231c-1)는 기준 SVC 비트 스트림의 시퀀스 파라미터 셋 정보를 변환할 수 있다. 예를 들어, 제1 변환부(231c-1)는 사용자 장치(300)의 화면 배치 구성 파라미터에 기초하여 기준 SVC 비트 스트림의 시퀀스 파라미터 셋 정보를 변환할 수 있다.
구체적으로, 제1 변환부(231c-1)는 기준 SVC 비트 스트림의 시퀀스 파라미터 셋 정보에 포함된 사용자 장치(300)의 화면 배치 구성을 위한 파라미터(또는 필드 값)을 변환할 수 있다. 예를 들어, 제1 변환부(231c-1)는 사용자 장치(300)에 디스플레이되는 최종 혼합 화면의 해상도 크기에 기초하여 혼합 기준이 되는 SVC 비트 스트림의 시퀀스 파라미터 셋 정보에 대한 혼합할 화면의 해상도 정보를 변환할 수 있다. 이때, 해상도 정보는 혼합할 최종 화면의 가로의 크기를 나타내는 pic width in mbs minus1 필드값 및 세로의 크기를 나타내는 pic height in mbs minus1 필드값일 수 있다.
제2 변환부(231c-3)는 분석된 복수의 SVC 비트 스트림들의 슬라이스 데이터를 기본 계층(base layer) 및 향상 계층(enhancement layer)에 따라 슬라이스 헤더를 변환할 수 있다. 예를 들어, 제2 변환부(231c-3)는 사용자 장치(300)의 화면 배치 구성 파라미터에 기초하여 분석된 복수의 SVC 비트 스트림들 각각의 슬라이스 데이터의 슬라이스 헤더를 변환할 수 있다.
구체적으로, 제2 변환부(231c-3)는 분석된 복수의 SVC 비트 스트림들 각각의 기본 계층(base layer) 및 향상 계층(enhancement layer)을 구성하는 슬라이스 데이터에 대한 슬라이스 헤더의 매크로블록(macroblock) 어드레스(address) 필드 값을 변경할 수 있다. 이에, 제2 변환부(231c-3)는 사용자 장치(300)의 화면 배치 구성 파라미터에 기초하여 하나의 화면을 구성하는 슬라이스 헤더의 시작 매크로블록(macroblock) 어드레스(address)를 지시하는 first mb in slice 필드값을 변경한다.
즉, 하나의 화면을 구성하는 슬라이스 헤더의 시작 매크로블록(macroblock) 어드레스(address)를 기준 SVC 비트 스트림으로 설정하고 혼합할 복수의 SVC 비트 스트림들을 화면 배치 구성 파라미터에 따라 새로운 매크로블록(macroblock) 어드레스(address)로 슬라이스 헤더의 first mb in slice 필드값을 변경할 수 있다.
이때, 슬라이스 헤더의 필드값은 혼합할 화면을 구성하는 복수의 SVC 비트 스트림들의 기본 계층(base layer) 및 향상 계층(enhancement layer) 각각의 슬라이스 데이터에 대한 slice header 및 slice header in scalable extension 필드값일 수 있다.
생성부(231c-5)는 복수의 비디오 비트 스트림들을 재배치하여 하나의 비디오 비트 스트림을 생성할 수 있다. 예를 들어, 생성부(231c-5)는 복수의 계층들 각각의 계층 순서에 기초하여 변환된 복수의 SVC 비트 스트림들을 재배치하여 혼합 SVC 비트 스트림을 생성할 수 있다. 이때, 변환된 복수의 SVC 비트 스트림들을 재배치하는 것은 변환된 복수의 SVC 비트 스트림들의 날-유닛들을 재배치하는 것일 수 있다. 구체적으로, 생성부(231c-5)는 변환된 복수의 SVC 비트 스트림들 각각의 슬라이스 데이터에 대한 슬라이스 헤더의 매크로블록 어드레스(macroblock address) 정보에 기초하여 변환된 복수의 SVC 비트 스트림들 각각의 슬라이스 데이터로 구성된 날-유닛의 비트수를 계산하고 계산된 슬라이스 데이터에 RBSP(raw byte sequence payload) trailing 비트를 삽입하여 최종 마지막 비트들을 바이트 정렬하여 날-유닛의 바이트가 정렬된 혼합 SVC 비트 스트림을 생성할 수 있다. 이때, 계산된 슬라이스 데이터의 비트수는 늘어나거나 줄어든 슬라이스 데이터의 최종 바이트일 수 있다. 또한, RBSP(raw byte sequence payload) trailing 비트는 0일 수 있다.
도 6은 SVC 비트 스트림의 구조를 설명하기 위한 일 예를 나타낸다.
도 6을 참조하면, SVC 비트 스트림은 복수의 계층들을 포함한다. 구체적으로, SVC 비트 스트림(600)은 하나의 기본 계층(610) 및 복수의 향상 계층들을 포함한다. 이때, SVC 비트 스트림(600)의 복수의 향상 계층들은 제1 향상 계층(630) 및 제2 향상 계층(650)을 포함한다.
SVC 비트 스트림(600)은 SVC ISO/IEC MPEG 및 ITUT-T VCEG의 JVT에서 H. 264/AVC의 확장형 비디오 부호화 방식을 이용해 부호화된 압축 비트 스트림이다. 이때, 확장형 비디오 부호화 방식은 다양한 네트워크 환경과 다양한 수신 단말기 환경에 효율적으로 비디오를 전송하기 위한 국제 표준 비디오 부호화 방식이다.
또한, SVC 비트 스트림(600)은 사용자 장치(300)의 수신 환경에 따라 비디오 해상도, 프레임율 및 SNR(signal-to-noise) 등이 선택적으로 조절되어 수신 및 복원될 수 있다.
도 7은 SVC 비트 스트림의 날-유닛 구조를 설명하기 위한 일 예를 나타낸다.
도 7을 참조하면, SVC 비트 스트림(600)은 날-유닛을 구분하는 3 byte 또는 4 byte 개시부호(start prefix code; 710)와 날-유닛(730)을 포함한다. 이때, 날-유닛은 날-유닛 헤더(nal unit header; 731), 날-유닛 헤더 SVC 확장 헤더(nal unit header SVC extension header; 733) 및 날-데이터(nal data; 735)를 포함한다.
날-유닛(730)은 SVC 비트 스트림의 기본 계층(base layer) 및 향상 계층(enhancement layer) 구성 정보 필드를 포함하는 SEI(supplemental enhancement information), 비디오 시퀀스의 프로파일 및 레벨 등 전체 부호화 정보 필드를 포함하는 SPS(sequence parameter set), 비디오 화면 전체의 부호화 모드 정보 필드를 포함하는 PPS(picture parameter set) non-VCL(video coding layer) 날-유닛, 및 하나의 화면을 슬라이스 단위로 부호화한 슬라이스 데이터를 포함한 VCL(video coding layer) 날-유닛을 포함한다.
VCL 날-유닛은 기본 계층(base layer) 및 향상 계층(enhancement layer)에 따라 슬라이스 단위로 부호화한 슬라이스 데이터(slice data)와 슬라이스 헤더(slice header) 및 슬라이스 확장 헤더(slice header in scalable extension)를 포함한다.
날-유닛 헤더(731)는 non-VCL 및 VCL 날-유닛을 식별할 수 있는 nal_unit_type 필드 정보를 포함한다.
날-유닛 헤더 SVC 확장 헤더(733)는 공간적, 시간적, 화질적 프레임의 계층화 계층 정보를 dependence_id, quality_id 및 temporal_id 필드 정보를 통해 제공한다.
날-데이터(735)는 non-VCL 날-유닛인 supplemental enhancement information, seq parameter set data, pic parameter set의 필드 정보 또는 VCL 날-유닛의 실제 부호화 데이터를 포함한다.
도 8은 단일 SVC 비트 스트림을 설명하기 위한 예들을 나타낸다.
도 8에서는 설명의 편의를 위해 복수의 원격지들(100)의 개수를 4개인 것으로 가정한다.
도 8을 참조하면, CASE1은 사용자 장치(300)의 수신 환경에 따라 혼합 SVC 비트 스트림으로부터 추출된 기본 계층(610)으로 구성된 단일 SVC 비트 스트림을 나타내고, CASE2는 사용자 장치(300)의 수신 환경에 따라 혼합 SVC 비트 스트림으로부터 추출된 제1 향상 계층(630)으로 구성된 단일 SVC 비트 스트림을 나타내고, CASE3은 사용자 장치(300)의 수신 환경에 따라 혼합 SVC 비트 스트림으로부터 추출된 제2 향상 계층(650)으로 구성된 단일 SVC 비트 스트림을 나타낸다.
CASE1, CASE2 및 CASE3의 혼합 SVC 비트 스트림은 제1 원격지(100-1)의 제1 SVC 비트 스트림, 제2 원격지(100-2)의 제2 SVC 비트 스트림, 제3 원격지(100-3)의 제3 SVC 비트 스트림 및 제4 원격지(100-4)의 제4 SVC 비트 스트림들이 계층별로 혼합된 복수의 계층으로 구성된 하나의 SVC 비트 스트림이다.
즉, 단일 SVC 비트 스트림은 사용자 장치(300)의 수신 환경에 따라 복수의 계층으로 구성된 복수의 SVC 비트 스트림이 혼합되어 하나의 계층으로 구성된 하나의 SVC 비트 스트림이다.
도 9는 사용자 장치의 화면 구성을 설명하기 위한 예들을 나타낸다.
도 9에서는 설명의 편의를 위해 복수의 원격지들(100)의 개수를 6개인 것으로 가정한다.
도 9를 참조하면, 사용자 장치(300)의 화면 구성은 CASE4, CASE5 및 CASE6과 같을 수 있다.
CASE4, CASE5 및 CASE6은 복수의 원격지들(100)로부터 전송된 복수의 SVC 비트 스트림을 혼합, 추출 및 복호화된 단일 SVC 비트 스트림에 대한 화면 구성을 나타낸다. 예를 들어, CASE4, CASE5 및 CASE6의 전체 화면은 복수의 SVC 비트 스트림이 혼합되어 사용자 장치(300)의 디스플레이 되는 최종 혼합 화면일 수 있다. 또한, CASE4, CASE5 및 CASE6의 전체 화면은 복수의 원격지(100-1 내지 100-4) 각각의 SVC 비트 스트림에 대한 화면 크기가 다른 최종 화면을 혼합하여 구성된 최종 혼합 화면일 수 있다.
CASE4인 경우에는 비디오 비트 스트림 혼합 장치(200)가 사용자 장치(300)의 수신 환경에 따라 제1 원격지(100-1), 제2 원격지(100-2), 제3 원격지(100-3) 및 제4 원격지(100-4)에 대한 SVC 비트 스트림을 포함한 단일 SVC 비트 스트림만을 사용자 장치(300)에 전송한다. 이때, CASE4의 단일 SVC 비트 스트림의 화면 구성은 제1 원격지(100-1), 제2 원격지(100-3), 제3 원격지(100-3) 및 제4 원격지(100-4)의 SVC 비트 스트림의 화면 크기를 동일하게 구성한 화면 구성이다.
CASE5인 경우에는 CASE4인 경우와 동일하게 비디오 비트 스트림 혼합 장치(200)가 사용자 장치(300)의 수신 환경에 따라 제1 원격지(100-1), 제2 원격지(100-2), 제3 원격지(100-3) 및 제4 원격지(100-4)에 대한 SVC 비트 스트림을 포함하는 단일 SVC 비트 스트림을 사용자 장치(300)에 전송한다.
하지만, CASE5의 단일 SVC 비트 스트림의 화면 구성은 CASE4의 단일 SVC 비트 스트림의 화면 구성과 다르다. 즉, CASE5의 단일 SVC 비트 스트림의 화면 구성은 제1 원격지(100-1)의 제1 SVC 비트 스트림의 화면 크기를 나머지 SVC 비트 스트림들의 화면 크기보다 크게 구성한 화면 구성이다.
CASE6인 경우에는 비디오 비트 스트림 혼합 장치(200)가 사용자 장치(300)의 수신 환경에 따라 복수의 원격지들(100)에 대한 SVC 비트 스트림을 모두 포함하는 단일 SVC 비트 스트림을 사용자 장치(300)에 전송한다. 이때, CASE6의 단일 SVC 비트 스트림의 화면 구성은 제1 원격지(100-1)의 제1 SVC 비트 스트림의 화면 크기를 나머지 SVC 비트 스트림들의 화면 크기보다 크게 구성한 화면 구성이다.
따라서, 비디오 비트 스트림 혼합 장치(200)는 사용자 장치(300)의 수신 환경에 맞게 복수의 SVC 비트 스트림을 혼합, 추출 및 복호화하여 다양한 화면 크기를 갖는 단일 SVC 비트 스트림을 사용자 장치(300)에 전송할 수 있다.
도 10은 혼합기의 동작을 설명하기 위한 일 예를 나타낸다.
도 10에서는 설명의 편의를 위해 복수의 원격지들(100)의 개수를 4개인 것으로 가정한다.
도 10을 참조하면, 혼합기(230)는 복수의 SVC 비트 스트림들을 계층별로 혼합하여 날-유닛을 재구성한다. 예를 들어, 혼합기(230)는 제1 원격지(100-1)의 제1 SVC 비트 스트림(1010), 제2 원격지(100-2)의 제2 SVC 비트 스트림(1030), 제3 원격지(100-3)의 제3 SVC 비트 스트림(1050) 및 제4 원격지(100-4)의 제4 SVC 비트 스트림(1070)의 non-VCL 날-유닛을 제1 원격지(100-1)의 제1 SVC 비트 스트림(1010)의 non-VCL 날-유닛으로 혼합하고 복수의 계층 각각을 구성하는 VCL 날-유닛을 계층별로 혼합하여 복수의 SVC 비트 스트림을 혼합 SVC 비트 스트림으로 재구성한다.
제1 원격지(100-1)의 제1 SVC 비트 스트림(1010)의 non-VCL 날-유닛은 SEI 데이터(1011), SPS 데이터(1013) 및 PPS 데이터(1015)를 포함하고, 제1 SVC 비트 스트림(1010)의 VCL 날-유닛은 기본 계층의 부호화된 슬라이스 데이터(1017) 및 향상 계층의 부호화된 슬라이스 데이터(1019)를 포함한다.
제2 원격지(100-2)의 제2 SVC 비트 스트림(1030)의 non-VCL 날-유닛은 SEI 데이터(1031), SPS 데이터(1033) 및 PPS 데이터(1035)를 포함하고, 제2 SVC 비트 스트림(1030)의 VCL 날-유닛은 기본 계층의 부호화된 슬라이스 데이터(1037) 및 향상 계층의 부호화된 슬라이스 데이터(1039)를 포함한다.
제3 원격지(100-3)의 제3 SVC 비트 스트림(1050)의 non-VCL 날-유닛은 SEI 데이터(1051), SPS 데이터(1053) 및 PPS 데이터(1055)를 포함하고, 제3 SVC 비트 스트림(1050)의 VCL 날-유닛은 기본 계층의 부호화된 슬라이스 데이터(1057) 및 향상 계층의 부호화된 슬라이스 데이터(1019)를 포함한다.
제4 원격지(100-4)의 제4 SVC 비트 스트림(1070)의 non-VCL 날-유닛은 SEI 데이터(1071), SPS 데이터(1073) 및 PPS 데이터(1075)를 포함하고, 제4 SVC 비트 스트림(1070)의 VCL 날-유닛은 기본 계층의 부호화된 슬라이스 데이터(1077) 및 향상 계층의 부호화된 슬라이스 데이터(1079)를 포함한다.
복합 SVC 비트 스트림(1090)은 제1 SVC 비트 스트림(1010)의 non-VCL 날-유닛의 SEI 데이터(1011), SPS 데이터(1013), PPS 데이터(1015) 및 복수의 계층의 VCL 날-유닛을 포함한다. 이때, 기본 계층의 VCL 날-유닛은 제1 SVC 비트 스트림(1010)의 VCL 날-유닛의 부호화된 슬라이스 데이터(1017), 제2 SVC 비트 스트림(1030)의 VCL 날-유닛의 부호화된 슬라이스 데이터(1037), 제3 SVC 비트 스트림(1050)의 VCL 날-유닛의 부호화된 슬라이스 데이터(1057) 및 제4 SVC 비트 스트림(1070)의 VCL 날-유닛의 부호화된 슬라이스 데이터(1077)를 포함하고, 향상 계층의 VCL 날-유닛은 제1 SVC 비트 스트림(1010)의 VCL 날-유닛의 부호화된 슬라이스 데이터(1019), 제2 SVC 비트 스트림(1030)의 VCL 날-유닛의 부호화된 슬라이스 데이터(1039), 제3 SVC 비트 스트림(1050)의 VCL 날-유닛의 부호화된 슬라이스 데이터(1059) 및 제4 SVC 비트 스트림(1070)의 VCL 날-유닛의 부호화된 슬라이스 데이터(1079)를 포함한다.
도 11은 도 1에 도시된 비디오 비트 스트림 혼합 장치를 설명하기 위한 순서도를 나타낸다.
도 11을 참조하면, 비디오 비트 스트림 혼합 장치(200)는 복수의 원격지들(100)로부터 전송된 하나의 기본 계층 및 복수의 향상 계층들로 구성된 복수의 SVC 비트 스트림들을 수신할 수 있다(S1011).
비디오 비트 스트림 혼합 장치(200)는 복수의 SVC 비트 스트림들을 날-유닛 단위로 분석할 수 있다(S1012).
비디오 비트 스트림 혼합 장치(200)는 사용자 장치(300)의 화면 배치 구성 파라미터에 기초하여 분석된 복수의 SVC 비트 스트림들을 변환할 수 있다(S1013).
비디오 비트 스트림 혼합 장치(200)는 변환된 복수의 SVC 비트 스트림들을 계층별로 혼합하여 복수의 계층으로 구성된 혼합 SVC 비트 스트림을 생성할 수 있다(S1014).
비디오 비트 스트림 혼합 장치(200)는 사용자 장치(300)의 수신 환경에 기초하여 혼합 SVC 비트 스트림으로부터 하나의 계층에 대응하는 단일 SVC 비트 스트림을 추출할 수 있다(S1015).
비디오 비트 스트림 혼합 장치(200)는 하나의 계층으로 구성된 단일 SVC 비트 스트림을 사용자 장치(300)에 전송할 수 있다(S1016).
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (18)

  1. 사용자 장치의 화면 구성에 따라 복수의 SVC(scalable video coding) 비트 스트림들을 계층별로 혼합하여 혼합 SVC 비트 스트림을 생성하는 단계;
    상기 사용자 장치의 수신 환경에 기초하여 상기 혼합 SVC 비트 스트림으로부터 하나의 계층에 대응하는 단일 SVC 비트 스트림을 추출하는 단계; 및
    상기 단일 SVC 비트 스트림을 상기 사용자 장치에 전송하는 단계
    를 포함하는 비디오 비트 스트림 혼합 방법.
  2. 제1항에 있어서,
    상기 복수의 SVC 비트 스트림들은,
    복수의 원격지들로부터 전송된 하나의 기본 계층(base layer) 및 복수의 향상 계층(enhancement layer)들로 구성된 비트 스트림들인 비디오 비트 스트림 혼합 방법.
  3. 제1항에 있어서,
    상기 생성하는 단계는,
    상기 복수의 SVC 비트 스트림들을 날-유닛(network abstraction layer unit) 단위로 분석하는 단계;
    상기 분석 결과에 기초하여 상기 사용자 장치의 화면 배치 구성 파라미터에 따라 분석된 복수의 SVC 비트 스트림들을 혼합하는 단계
    를 포함하는 비디오 비트 스트림 혼합 방법.
  4. 제3항에 있어서,
    상기 분석하는 단계는,
    상기 복수의 SVC 비트 스트림들 각각의 날-유닛(network abstraction layer unit)의 헤더 정보 분석을 통해 날-유닛을 식별하는 단계; 및
    상기 식별 결과에 기초하여 상기 사용자 장치의 화면 배치 구성 파라미터에 따라 상기 복수의 SVC 비트 스트림들의 날-유닛을 선별하는 단계
    를 포함하는 비디오 비트 스트림 혼합 방법.
  5. 제3항에 있어서,
    상기 혼합하는 단계는,
    상기 분석된 복수의 SVC 비트 스트림 중에서 기준 비트 스트림의 SPS(sequence parameter set)를 변환하는 단계;
    상기 사용자 장치의 화면 배치 구성 파라미터에 기초하여 상기 분석된 복수의 SVC 비트 스트림들 각각의 슬라이스 헤더(slice header)를 변환하는 단계; 및
    상기 변환된 복수의 SVC 비트 스트림들 각각의 복수의 계층들 각각의 계층 순서에 기초하여 변환된 복수의 SVC 비트 스트림들을 재배치하여 상기 혼합 SVC 비트 스트림을 생성하는 단계
    를 포함하는 비디오 비트 스트림 혼합 방법.
  6. 제5항에 있어서,
    상기 SPS(sequence parameter set)를 변환하는 단계는,
    최종 혼합 화면의 해상도 크기에 기초하여 혼합할 최종 화면의 가로 크기의 필드값 및 세로 크기의 필드값을 변경하는 단계
    를 포함하는 비디오 비트 스트림 혼합 방법.
  7. 제5항에 있어서,
    상기 각각의 슬라이스 헤더를 변환하는 단계는,
    상기 분석된 복수의 SVC 비트 스트림들 각각의 기본 계층(base layer) 및 향상 계층(enhancement layer)의 슬라이스 데이터에 대한 슬라이스 헤더의 매크로블록(macroblock) 시작 번지 필드값을 변경하는 단계를 포함하는 비디오 비트 스트림 혼합 방법.
  8. 제5항에 있어서,
    상기 생성하는 단계는,
    상기 변환된 복수의 SVC 비트 스트림들을 구성하는 기본 계층(base layer) 및 향상 계층(enhancement layer) 각각의 슬라이스 데이터에 대한 슬라이스 헤더의 매크로블록 어드레스(macroblock address) 정보에 기초하여 상기 변환된 복수의 SVC 비트 스트림들 각각의 슬라이스 데이터로 구성된 날-유닛의 비트 수를 계산하는 단계
    를 포함하는 비디오 비트 스트림 혼합 방법.
  9. 제8항에 있어서,
    상기 계산하는 단계는,
    계산된 슬라이스 데이터에 RBSP(raw byte sequence payload) trailing 비트를 삽입하여 슬라이스 날-유닛의 바이트 정렬하는 단계
    를 포함하는 비디오 비트 스트림 혼합 방법.
  10. 사용자 장치의 화면 구성에 따라 복수의 SVC(scalable video coding) 비트 스트림들을 계층별로 혼합하여 혼합 SVC 비트 스트림을 생성하는 혼합기;
    상기 사용자 장치의 수신 환경에 기초하여 상기 혼합 SVC 비트 스트림으로부터 하나의 계층에 대응하는 단일 SVC 비트 스트림을 추출하는 추출기; 및
    상기 단일 SVC 비트 스트림을 상기 사용자 장치에 전송하는 복호화기
    를 포함하는 비디오 비트 스트림 혼합 장치.
  11. 제10항에 있어서,
    상기 복수의 SVC 비트 스트림들은,
    복수의 원격지들로부터 전송된 하나의 기본 계층(base layer) 및 복수의 향상 계층(enhancement layer)들로 구성된 비트 스트림들인 비디오 비트 스트림 혼합 장치.
  12. 제10항에 있어서,
    상기 혼합기는,
    버퍼 충만도(buffer fullness)에 기초하여 상기 복수의 SVC 비트 스트림들을 날-유닛(network abstraction layer unit) 단위로 제공하는 버퍼부;
    상기 복수의 SVC 비트 스트림들을 상기 날-유닛(network abstraction layer unit) 단위로 분석하는 분석부;
    상기 분석 결과에 기초하여 상기 사용자 장치의 화면 배치 구성 파라미터에 따라 분석된 복수의 SVC 비트 스트림들을 혼합하는 처리부
    를 포함하는 비디오 비트 스트림 혼합 장치.
  13. 제12항에 있어서,
    상기 분석부는,
    상기 복수의 SVC 비트 스트림들 각각의 날-유닛(network abstraction layer unit)의 헤더 정보 분석을 통해 날-유닛을 식별하고, 상기 식별 결과에 기초하여 상기 사용자 장치의 화면 배치 구성 파라미터에 따라 상기 복수의 SVC 비트 스트림들의 날-유닛을 선별하는 비디오 비트 스트림 혼합 장치.
  14. 제12항에 있어서,
    상기 처리부는,
    상기 분석된 복수의 SVC 비트 스트림 중에서 기준 비트 스트림의 SPS(sequence parameter set)를 변환하는 제1 변환부;
    상기 사용자 장치의 화면 배치 구성 파라미터에 기초하여 상기 분석된 복수의 SVC 비트 스트림들 각각의 슬라이스 헤더(slice header)를 변환하는 제2 변환부; 및
    상기 변환된 복수의 SVC 비트 스트림들 각각의 복수의 계층들 각각의 계층 순서에 기초하여 변환된 복수의 SVC 비트 스트림들을 재배치하여 혼합 SVC 비트 스트림을 생성하는 생성부
    를 포함하는 비디오 비트 스트림 혼합 장치.
  15. 제14항에 있어서,
    상기 제1 변환부는,
    최종 혼합 화면의 해상도 크기에 기초하여 혼합할 최종 화면의 가로 크기의 필드값 및 세로 크기의 필드값을 변경하는 비디오 비트 스트림 혼합 장치.
  16. 제14항에 있어서,
    상기 제2 변환부는,
    상기 분석된 복수의 SVC 비트 스트림들 각각의 기본 계층(base layer) 및 향상 계층(enhancement layer)의 슬라이스 데이터에 대한 슬라이스 헤더의 매크로블록(macroblock) 시작 번지 필드값을 변경하는 비디오 비트 스트림 혼합 장치.
  17. 제14항에 있어서,
    상기 생성부는,
    상기 변환된 복수의 SVC 비트 스트림들을 구성하는 기본 계층(base layer) 및 향상 계층(enhancement layer) 각각의 슬라이스 데이터에 대한 슬라이스 헤더의 매크로블록 어드레스(macroblock address) 정보에 기초하여 상기 변환된 복수의 SVC 비트 스트림들 각각의 슬라이스 데이터로 구성된 날-유닛의 비트 수를 계산하는 비디오 비트 스트림 혼합 장치.
  18. 제17항에 있어서,
    상기 생성부는,
    계산된 슬라이스 데이터에 RBSP(raw byte sequence payload) trailing 비트를 삽입하여 슬라이스 날-유닛의 바이트 정렬하는 비디오 비트 스트림 혼합 장치.
KR1020170049606A 2017-04-18 2017-04-18 비디오 비트 스트림 혼합 방법 및 이를 수행하는 장치 KR20180116835A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170049606A KR20180116835A (ko) 2017-04-18 2017-04-18 비디오 비트 스트림 혼합 방법 및 이를 수행하는 장치
US15/882,352 US20180302636A1 (en) 2017-04-18 2018-01-29 Method of mixing video bitstreams and apparatus performing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170049606A KR20180116835A (ko) 2017-04-18 2017-04-18 비디오 비트 스트림 혼합 방법 및 이를 수행하는 장치

Publications (1)

Publication Number Publication Date
KR20180116835A true KR20180116835A (ko) 2018-10-26

Family

ID=63790481

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170049606A KR20180116835A (ko) 2017-04-18 2017-04-18 비디오 비트 스트림 혼합 방법 및 이를 수행하는 장치

Country Status (2)

Country Link
US (1) US20180302636A1 (ko)
KR (1) KR20180116835A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102324609B1 (ko) * 2017-12-22 2021-11-10 한국전자통신연구원 다지점 영상회의 장치 및 그 제어 방법
JP7473656B2 (ja) * 2020-01-09 2024-04-23 テレフオンアクチーボラゲット エルエム エリクソン(パブル) ピクチャヘッダ存在
US11140445B1 (en) * 2020-06-03 2021-10-05 Western Digital Technologies, Inc. Storage system and method for storing scalable video

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9591318B2 (en) * 2011-09-16 2017-03-07 Microsoft Technology Licensing, Llc Multi-layer encoding and decoding

Also Published As

Publication number Publication date
US20180302636A1 (en) 2018-10-18

Similar Documents

Publication Publication Date Title
CN111989921B (zh) 一种用于视频解码的方法和相关装置
Sánchez et al. Compressed domain video processing for tile based panoramic streaming using HEVC
US11032573B2 (en) Method, apparatus and medium for decoding or encoding
CN108989822B (zh) 用于视频解码的设备
EP2735166B1 (en) Transmission of reconstruction data in a tiered signal quality hierarchy
WO2015012227A1 (ja) 情報処理装置および方法
CN113767633A (zh) 用于解码器侧帧内模式导出和自适应帧内预测模式之间的交互的方法和装置
EP2055106A2 (en) Techniques for variable resolution encoding and decoding of digital video
CN105432083A (zh) 混合向后兼容的信号编码和解码
CN112292859B (zh) 一种用于解码至少一个视频流的方法和装置
CN110708558B (zh) 变换类型的表示方法和设备
KR20210087090A (ko) 타일 및 서브-픽처 파티셔닝
US11930214B2 (en) Method, apparatus and medium for decoding or encoding
CN109963176A (zh) 视频码流处理方法、装置、网络设备和可读存储介质
CN113711605A (zh) 用于在已编码图片中支持混合nal单元类型的方法
KR20180116835A (ko) 비디오 비트 스트림 혼합 방법 및 이를 수행하는 장치
CN112236997B (zh) 对视频序列进行解码、编码的方法、装置及存储介质
CN113812158A (zh) 可缩放视频流的输出层集的信令方法
KR20080006585A (ko) 스케일러블 비디오 코딩에서 비트 스트림 순서의 시그널링
CN115380306A (zh) 视频编解码的方法和装置
CN110731083A (zh) 视频编码系统和方法中的编码块位流结构和语法
CN113508582A (zh) 多线帧内预测的模式列表生成
JP6566864B2 (ja) ビットストリーム変換装置、ビットストリーム変換方法、配信システム及びコンピュータ可読記録媒体
CN110636296B (zh) 视频解码方法、装置、计算机设备以及存储介质
US11849146B2 (en) Method, apparatus and medium for decoding