KR20090079838A - Iptv 수신 시스템 및 그 데이터 처리 방법 - Google Patents

Iptv 수신 시스템 및 그 데이터 처리 방법 Download PDF

Info

Publication number
KR20090079838A
KR20090079838A KR1020090003936A KR20090003936A KR20090079838A KR 20090079838 A KR20090079838 A KR 20090079838A KR 1020090003936 A KR1020090003936 A KR 1020090003936A KR 20090003936 A KR20090003936 A KR 20090003936A KR 20090079838 A KR20090079838 A KR 20090079838A
Authority
KR
South Korea
Prior art keywords
layer
video
information
video stream
stream
Prior art date
Application number
KR1020090003936A
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 엘지전자 주식회사
Publication of KR20090079838A publication Critical patent/KR20090079838A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/015High-definition television systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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 or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream 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 or manipulating encoded video stream 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
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2362Generation or processing of Service Information [SI]
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP

Landscapes

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

Abstract

본 발명은 IPTV 수신 시스템 및 수신 시스템에서 데이터 처리 방법에 관한 것으로, 본 발명에 따른 IPTV 수신 시스템의 일 예는, 베이스 레이어와 적어도 하나의 인핸스먼트 레이어로 구성되며, 각 레이어마다 서로 다른 식별자를 갖는 IPTV 서비스를 위한 스케일러블 비디오 스트림과 상기 스케일러블 비디오 스트림을 위한 프로그램 테이블 정보를 포함하는 방송 신호를 수신하는 신호 수신부; 상기 수신된 방송 신호로부터 각 레이어의 스케일러블 비디오 스트림과 프로그램 테이블 정보를 복조하는 복조부; 상기 복조된 프로그램 테이블 정보를 참조하여 베이스 레이어의 비디오 스트림을 구분하여 출력하고, 기 설정된 조건에 따라 적어도 하나의 인핸스먼트 레이어의 비디오 스트림을 구분하여 출력하는 역다중화기; 및 상기 역다중화기에서 구분되어 출력되는 적어도 하나의 레이어의 비디오 스트림을 비디오 복호하는 복호기를 포함하는 것을 특징으로 한다. 따라서, 본 발명에 따르면, IPTV 수신 시스템으로 하여금 스케일러블 비디오를 지원할 수 있게 하고, IPTV 수신기의 사양 차이 및 유동적인 네트워크 환경에 적절히 대응할 수 있도록 하는 효과가 있다.
IPTV, 스케일러블 비디오 서비스, 베이스 레이어, 인핸스먼트 레이어, 엘리멘터리 스트림

Description

IPTV 수신 시스템 및 그 데이터 처리 방법{An IPTV receiving system and a method for processing data thereof}
본 발명은 IPTV 수신 시스템 및 그 데이터 처리 방법에 관한 것이다.
기존의 TV는 방송사에서 제작하는 콘텐츠를, 케이블, 지상파, 또는 위성 방송 프로바이더(provider)가 방송 망 등의 전파 전달 매체를 통해서 송출하고, 시청자는 상기 각 전달 매체를 수신할 수 있는 TV 수상기를 통해 시청하는 방식으로 서비스되었다.
그러나 기존의 아날로그 방송에서 디지털 기반의 디지털TV 기술이 개발되고 상용화되면서, 기존의 전파 매체 외에도 각 가정에 연결되어 있는 인터넷 망을 이용하여 실시간 방송, CoD(Contents on Demand), 게임, 뉴스 등 다양한 콘텐츠를 시청자에게 제공할 수 있게 되었다.
상기 인터넷 망을 이용한 콘텐츠 제공의 예로서 IPTV(Internet Protocol TV)를 들 수 있다. 상기 IPTV는 초고속 인터넷 망을 이용하여 정보 서비스, 동영상 콘텐츠 및 방송 등을 텔레비전으로 제공하는 서비스를 말한다.
상기 IPTV는 비디오를 비롯한 방송 콘텐츠를 제공한다는 점에서는 일반 케이 블방송이나 위성방송과 동일하나, 양방향성이 추가된다는 점에 특징이 있다. 그리고 일반 공중파 방송이나 케이블방송 또는 위성방송과는 달리 시청자가 자신이 편리한 시간에 자신이 보고 싶은 프로그램을 볼 수 있다.
방송 수신기는 그 성능에 따라 지원되는 잔여 저장 공간 값이 다르며, 또한 디스플레이 형식에 따라 요구하는 잔여 저장 공간 값을 달리한다. 그러나 현재는 콘텐츠 제공자가 제공하는 콘텐츠를 획일적으로 수신하여, 서비스 정보량을 불필요하게 늘리게 되는 경우가 많다.
따라서 본 발명의 목적은 IPTV 환경에서는 다양한 수신장치의 사양과 네트워크 환경의 유동적인 대역폭에 의한 변화 가능한 비트레이트 환경을 고려할 때, 비트레이트 변화 및 코덱의 프로파일/레벨의 다양성 지원을 위한 스케일러블 비디오 서비스를 지원하고자 한다.
본 발명의 다른 목적은 IPTV 방송 서비스에서 비디오 스케일러빌리티 를 제공하기 위한 IPTV 수신 시스템 및 그 데이터 처리 방법을 제공함에 있다.
본 발명의 다른 목적은 IPTV 서비스에 사용될 스케일러블 비디오를 처리함에 있어서, 역다중화기에서 각 레이어의 취사선택을 할 수 있도록 함으로써, 비디오 복호기의 연산량을 줄이도록 하는 데 있다.
상기 목적을 달성하기 위하여 본 발명에 따른 IPTV 수신 시스템의 일 예는, 베이스 레이어와 적어도 하나의 인핸스먼트 레이어로 구성되며, 각 레이어마다 서로 다른 식별자를 갖는 IPTV 서비스를 위한 스케일러블 비디오 스트림과 상기 스케일러블 비디오 스트림을 위한 프로그램 테이블 정보를 포함하는 방송 신호를 수신하는 신호 수신부; 상기 수신된 방송 신호로부터 각 레이어의 스케일러블 비디오 스트림과 프로그램 테이블 정보를 복조하는 복조부; 상기 복조된 프로그램 테이블 정보를 참조하여 베이스 레이어의 비디오 스트림을 구분하여 출력하고, 기 설정된 조건에 따라 적어도 하나의 인핸스먼트 레이어의 비디오 스트림을 구분하여 출력하 는 역다중화기; 및 상기 역다중화기에서 구분되어 출력되는 적어도 하나의 레이어의 비디오 스트림을 비디오 복호하는 복호기를 포함하는 것을 특징으로 한다.
이때, 상기 역다중화기는 상기 복조된 프로그램 테이블 정보 중 가상 채널 테이블(VCT)에 포함된 정보를 참조하여 입력되는 비디오 스트림이 IPTV 서비스를 위한 스케일러블 비디오 스트림인지를 확인하고, 확인된 각 비디오 스트림의 식별자를 참조하여 베이스 레이어의 비디오 스트림을 구분한 후 비디오 복호를 위해 출력할 수 있다.
그리고 상기 역다중화기는 비디오 복호의 가능 여부에 따라 적어도 하나의 인핸스먼트 레이어의 비디오 스트림을 구분한 후 비디오 복호를 위해 출력할 수 있다.
또한, 상기 VCT는 입력된 비디오 스트림이 IPTV 서비스용 스케일러블 비디오 스트림인지를 식별할 수 있는 정보와 상기 식별된 해당 비디오 스트림의 레이어 정보 중 적어도 하나를 포함할 수 있다.
그리고 상기 역다중화기는 상기 프로그램 테이블 정보 중 프로그램 맵 테이블(PMT)에 포함된 정보를 참조하여 입력되는 비디오 스트림이 IPTV 서비스를 위한 스케일러블 비디오 스트림인지를 확인하고, 확인된 각 비디오 스트림의 식별자를 참조하여 베이스 레이어의 비디오 스트림을 구분한 후 비디오 복호를 위해 출력할 수 있다.
또한, 상기 역다중화기는 비디오 복호의 가능 여부에 따라 적어도 하나의 인핸스먼트 레이어의 비디오 스트림을 구분한 후 비디오 복호를 위해 출력할 수 있 다.
그리고 상기 PMT는 입력된 비디오 스트림이 IPTV 서비스를 위한 스케일러블 비디오 스트림인지를 식별할 수 있는 정보와 상기 식별된 해당 비디오 스트림의 레이어 정보 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 수신 시스템의 데이터 처리 방법의 일 예는, 베이스 레이어와 적어도 하나의 인핸스먼트 레이어로 구성되며, 각 레이어마다 서로 다른 식별자를 갖는 IPTV 서비스를 위한 스케일러블 비디오 스트림과 상기 스케일러블 비디오 스트림을 위한 프로그램 테이블 정보를 포함하는 방송 신호를 수신하는 단계; 상기 수신된 방송 신호로부터 각 레이어의 스케일러블 비디오 스트림과 프로그램 테이블 정보를 복조하는 단계; 상기 복조된 프로그램 테이블 정보를 참조하여 베이스 레이어의 비디오 스트림을 구분하여 출력하고, 기 설정된 조건에 따라 적어도 하나의 인핸스먼트 레이어의 비디오 스트림을 구분하여 출력하는 단계; 및 상기 구분되어 출력되는 적어도 하나의 레이어의 비디오 스트림을 비디오 복호하는 단계를 포함하는 것을 특징으로 한다.
이때, 상기 역다중화 단계는 상기 프로그램 테이블 정보 중 가상 채널 테이블(VCT)에 포함된 정보를 참조하여 입력되는 비디오 스트림이 IPTV 서비스를 위한 스케일러블 비디오 스트림인지를 확인하고, 확인된 각 비디오 스트림의 식별자를 참조하여 각 레이어의 비디오 스트림을 구분한 후 비디오 복호를 위해 출력할 수 있다.
그리고 상기 역다중화 단계는 상기 프로그램 테이블 정보 중 프로그램 맵 테 이블(PMT)에 포함된 정보를 참조하여 입력되는 비디오 스트림이 IPTV 서비스를 위한 스케일러블 비디오 스트림인지를 확인하고, 확인된 각 비디오 스트림의 식별자를 참조하여 각 레이어의 비디오 스트림을 구분한 후 비디오 복호를 위해 출력할 수 있다.
상술한 본 발명에 따르면,
첫째, IPTV 수신 시스템으로 하여금 스케일러블 비디오를 지원할 수 있게 하는 효과가 있다.
둘째, IPTV 수신기의 사양 차이 및 유동적인 네트워크 환경에 적절히 대응할 수 있도록 하는 효과가 있다.
이하 상기의 목적을 구체적으로 실현할 수 있는 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 설명한다. 이때 도면에 도시되고 또 이것에 의해서 설명되는 본 발명의 구성과 작용은 적어도 하나의 실시 예로서 설명되는 것이며, 이것에 의해서 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.
도 1은 IPTV 서비스의 개념을 도시한 시스템 구성도이다.
도 1을 참조하면, IPTV 시스템은 서비스 프로바이더 영역(service provider Domain), 네트워크 공급자 영역(network provider domain), 고객 영역(consumer domain)으로 구성된다.
서비스 프로바이더 영역은 콘텐츠 공급자(Contents Provider) 및 서비스 프 로바이더(Service Provider)를 포함할 수 있다. 상기 콘텐츠 공급자는 서비스 프로바이더에게 콘텐츠를 제공해주는 역할을 한다. 상기 서비스 프로바이더는 가입자에게 서비스를 제공해주는 역할을 하며, 다양한 콘텐츠를 수집하여 IP 환경에 맞게 신호를 변형하여 사용자에게 전달한다. 또한 서비스 프로바이더는 멀티미디어 데이터를 전송하고, 사용자(Customer)에게 콘텐츠의 안정적인 수신이 될 수 있도록 전송망의 유지 보수 관리 그리고 콘텐츠 공급자에게는 네트워크 전송을 할 수 있는 기반 시설과 기능을 제공한다. 여기서 서비스 프로바이더는 가상의 존재일 수 있고, 콘텐츠 공급자가 곧 서비스 프로바이더가 될 수도 있다.
상기 네트워크 공급자 영역은 사용자와 서비스 프로바이더를 IP 네트워크를 통해서 연결해주는 역할을 한다. 전송 시스템은 접속망(access network), 기간망(backbone network) 또는 무선 WAN(wireless Wide Area Network) 등의 다양한 네트워크 망을 이용할 수 있다.
상기 고객 영역은 IPTV 서비스를 소비하는 영역이다. 상기 고객 영역은 xDSL이나 케이블과 같은 기반시설을 이용하여 들어온 데이터를 재생하고 사용자의 요구에 즉시 반응하는 등의 역할을 한다. 대부분이 IPTV를 생산하는 업체들로 구성이 되고, 그 종류들은 IPTV, IP STB, IP Phone 등으로 나누어질 수 있다. 상기 고객 영역에서 콘텐츠를 제공받아, 방송을 수신하기 위해 고객 영역 장치가 사용될 수 있다. 여기서 고객 영역 장치로 셋탑 박스(set top box), PC, 이동 단말기, ITF(IPTV Terminal Function) 장치 또는 DNG(Delivery Network Gateway) 장치 등이 있다.
각각의 영역에 대하여 자세하게 알아보도록 한다. 먼저, 콘텐츠 공급자는 방송 프로그램을 만드는 TV Station 및 Radio Station이 있을 수 있다. TV Station은 기존의 지상파나 케이블 방송국을 의미하며, 이러한 방송국은 사용자들이 시청할 수 있는 프로그램을 만들어 저장하고 이를 디지털로 바꾸어서 전송할 수 있다. 일반적으로 여러 가지 방송형태로 전송할 수 있도록 하기 위함이다.
Radio Station은 일반 라디오 방송국을 의미하며, 비디오 채널이 때에 따라서 있을 수도 있지만, 대부분의 경우 비디오 채널이 없이 운영된다고 볼 수 있다. VoD(Video on Demand), AoD(Audio on Demand) 서비스는 TV Station이나 Radio Station과는 다른 특성을 가진다. 콘텐츠 공급자에서도 방송할 프로그램을 저장해서 보관하겠지만, 이는 연속성이 있는 라이브 방송으로, 레코딩을 하지 않는 이상은 되감아서 보거나 정지시켜서 볼 수 없는 특징이 있다. 그러나 VoD나 AoD의 경우에는 내가 원하는 방송 프로그램 혹은 영화, 음악 등을 저장해 놓고 나서 재생하여 볼 수 있도록 서비스해준다. 예를 들어 현재 시간이 없어서 제대로 보지 못했던 방송 프로그램이 있는 경우, 이러한 방송 서비스를 제공하는 사이트에 접속해서 해당 파일을 다운로드 받거나 바로 재생을 해서 볼 수 있다. AoD도 마찬가지로 오디오 프로그램을 녹화하기 어렵거나 실시간으로 들을 수 있는 기능을 제공한다. MoD(Music on Demand) 서비스는 내가 원하는 음악을 다운로드 받아서 들을 수 있다. MoD의 서비스의 대상은 음반사 또는 음반 배포사가 기존의 웹 서비스를 확대하여 실시할 수 있다.
이하에서는 콘텐츠 공급자가 제공하는 서비스의 실시 예에 대하여 살펴본다. PF 서버는 콘텐츠 공급자가 제공하는 모든 방송 정보와 Location 정보 등을 대신 관리해주는 업체가 서비스를 할 수 있다. 이 서비스는 주로 해당 방송국의 방송 시간이나 방송에 필요한 위치 정보 및 사용자(Customer)가 접속을 할 수 있는 정보를 담고 있다. 사용자(Customer)는 이 정보를 얻어 화면에 표시할 수 있다. PF 서버는 각 방송국마다 갖추어야 하는 서비스 중에 하나로 IPTV 환경에서는 이 서비스를 제공하여, 사용자가 해당 방송국에 접속하도록 할 수 있다.
EPG 서비스는 방송 프로그램을 사용자가 시간대 별로 조회하고, 채널 별로 파악할 수 있도록 제공하는 편리한 서비스 중에 하나이다. EPG 서비스는 이미 프로그램이 자동으로 Customer 측에 설치가 되어 실행할 수 있도록 되어 있다. 사용자(Customer)는 PF 서버로부터 해당 방송국에 대한 정보만을 얻을 수 있지만, EPG 서비스는 모든 방송국의 실시간 방송 채널에 대한 정보들을 한꺼번에 얻을 수 있어서 매우 편리하게 사용할 수 있다. 가령, CNN 뉴스를 예약 녹화를 한다든지, Disney 방송을 시청 예약한다든지 하는 강력한 기능을 내장하고 있기 때문이다. 따라서 EPG 서비스는 해당 지역의 방송 프로그램의 정보를 시간대별로 자세하게 제공해야 한다. 특히 어떤 드라마의 경우 드라마의 내용을 검색하거나, Category로 나누어 SF, Drama, Animation등의 구분도 할 수 있도록 되어있으며, 간단한 방영 프로그램의 영화나 드라마의 줄거리나 등장 인물들에 대한 세부적인 정보도 포함할 수 있다. EPG 서비스의 큰 문제점은 IPTV를 시청하는 Customer의 라이센스(license)의 종류가 많아 사용자에게 맞는 EPG 데이터를 어떻게 전송할 것이냐 하는 것이 문제가 될 수 있다. EPG 서비스를 접속하려면, Costumer는 간단하게 입 력 키를 리모컨에서 찾아서 누르기만 하면 된다.
ECG 서비스는 콘텐츠 공급자(contents provider)가 가지고 있는 Content의 정보와 접속 서버의 위치 및 접근 권한 등을 사용자가 편리하게 사용할 수 있는 모든 기능을 가지고 있다. 간단히 말하면 Content를 가지고 있는 서버들을 쉽게 접속하도록 하는 기능과 Content의 정보를 상세하게 알려 주는 전자 프로그램 가이드(Electronic Content Guide: EPG) 이다. 즉, 실시간 방송이 아니라 AoD, MoD 그리고 VoD와 같은 서비스들을 EPG와 같이 하나로 묶어서 사용자가 어떤 Content Service에 Content를 보거나 다운로드 하기 위해 개별 접속하는 부담을 덜어 준다. EPG 서비스와 비슷하지만, 이 서비스는 실시간 방송 채널 정보를 알려 주는 것이 아니라 이미 서버에 저장이 되어 있어서 언제든지 시청할 수 있고 다운로드를 해서 저장할 수 있도록 한다. 사용자가 각 Content가 있는 서버에 접속하려면 매우 어려운 주소나 PF 서버들을 접속해서 얻어야 할 것이다. 이것은 매우 복잡한 과정이며, 많은 시간이 소요된다. ECG를 제공하는 업체는 ECG 프로그램을 Customer에 자동 설치되도록 하고, 모든 Content 들에 대한 정보를 수집하여 데이터를 제공한다. ECG 서비스에 접속하려면 Customer는 역시 리모컨에 있는 입력 키 버튼을 클릭하면 된다.
Portal Server는 각 방송국에서 제공하는 웹서비스로 방송국이나 Content를 서비스하는 업체의 웹서버로 연결이 된다. Portal Server의 역할은 각 방송국이나 Content 서비스를 제공하는 콘텐츠 공급자들이 제공하는 프로그램 리스트를 검색하거나 리스트를 볼 수 있다. 이것은 마치 ECG나 EPG와 같은 기능이라고 생각할 수도 있다. 그러나 Portal 서비스에서는 사용자의 인증이나 라이센스 계약등과 같은 기능도 갖추고 있어서 내가 원하는 프로그램을 시청하기 위해서 접속할 필요가 있다. 또한 ECG나 EPG는 통합된 방송이나 Content 리스트를 제공하지만, Portal 서비스는 해당 프로그램 제공 업체에 대한 방송이나 Content 리스트 정보를 제공하여 세부적인 검색이 가능할 수 있다. Portal 서비스에 접속하려면, Customer는 리모컨에서 Portal 입력 버튼을 클릭하면 된다.
이렇게 해서 콘텐츠 공급자 쪽은 이러한 서비스들을 제공하는 기능 등이 포함되어야 하고, 이러한 기능들이 정상적으로 동작하려면, 실시간으로 해당 프로그램을 전송하거나 방송 정보를 전송할 수 있도록 각 서비스 업체들의 서버(130)는 IP 네트워크에 접속되어 있어야 한다. 또한 각 방송국이나 서비스 업체들은 서비스 프로바이더의 네트워크에 연결이 되어 지연과 에러 없이 전송이 되어야 하므로 RTP, RTSP, RSVP 그리고 MPLS 등의 인터넷 실시간 프로토콜을 이용하여 멀티미디어 데이터를 전송할 수 있도록 시스템이 갖추어져야 한다. 예를 들어 현재 뉴스를 제공하는 TV Studio에서 실시간으로 멀티미디어를 전송하려고 할 때, MPEG-2와 AC-3 오디오 스펙으로 꾸며져 있는 경우 이를 IPTV의 포맷에 맞게 바꾸는 Transcode 작업을 해야 한다. 이러한 작업을 하는 서버를 통과하면, Caption이나 Lipync를 맞출 수 있도록 시간 정보가 포함된 RTP/UDP 프로토콜을 붙여 서비스 프로바이더가 제공한 IP Network를 통과하도록 시스템을 구성한다.
서비스 프로바이더는 콘텐츠 공급자에서 전송되는 멀티미디어 데이터와 방송 데이터들을 잘 전송할 수 있도록 네트워크의 안정성과 대역폭을 제공한다. 서비스 프로바이더들은 기존의 케이블 망을 이용하여 IPTV 서비스를 제공할 수도 있는데, 이런 경우에는 전송 네트워크(Delivery Network)의 장비들의 변경이 필요하다. 즉, 실시간 데이터 전송을 할 수 있는 네트워크 장비들로 구성을 해야 하고, Customer에도 대역폭을 감안하여 네트워크를 구성해야 한다. 이러한 장비들은 IPTV의 베이스적인 네트워크 서비스인 Multicast 서비스를 사용하여 대용량의 멀티미디어 데이터들을 처리하여 대역폭을 줄여야 한다. 대역폭이 확보되지 못할 경우에는 Service Provider에서 대역폭을 확보하려는 노력으로 광케이블 망 구성이나 콘텐츠 공급자로부터 오는 멀티미디어 방송 데이터들을 다시 Transcode하여 MPEG-4 나 MPEG-7과 같은 형태로 변형해서 전송할 수도 있다. 서비스 프로바이더에서는 이를 위해서 크게 몇 가지 서비스를 제공해야 하는데 크기 NMS(Network Management System), DHCP(Dynamic Host Control Protocol) 그리고 CDN 서비스를 제공하도록 되어 있다.
NMS 서비스는 서비스 프로바이더가 각 고객(Customer)에게 까지 전송할 수 있는 딜리버리 네트워크(Delivery Network) 관리하고 RCMS(Remote Configuration and Management Server) 기능을 수행한다. 즉, 전송망에 문제가 발생하여 고객(Customer)이 방송 수신을 못 하는 경우 이를 응급 처리할 수 있는 수단을 가지고 있어야 한다. NMS는 원격의 전송 레이어의 기계들을 원활하게 제어하고 관리할 수 있는 표준화된 수단으로 널리 사용되고 있다. 이 서비스를 이용하여 어떤 방송에 대하여 얼마만큼의 트래픽이 발생하고 있고, 어떤 지역에서 대역폭이 모자라는지를 확인할 수 있다. 또한 콘텐츠 공급자에게 Multicast 시에 그룹을 생성하고 관리할 수 있도록 콘텐츠 공급자들에게 제공해야 한다. 때에 따라서는 Multicast 그 룹을 더 생성할 수도 있어야 되기 때문이다.
DHCP 서비스는 고객(Customer)의 IPTV 수신기에게 자동적으로 IP를 할당할 수 있도록 하고, CDN 서버의 주소를 알려 주는데 사용한다. DHCP 서비스는 일반 네트워크에서도 PC에 IP를 할당하는 좋은 수단이 되고 있다. 사용이 허락된 IPTV 수신기에게 접속할 수 있는 주소를 전송해 주어 사용자가 최초 접속할 때 등록 절차를 할 수 있도록 해야 한다. 일반적으로 IPv4를 IPTV 수신기에서는 제공할 것이지만, IPv6도 사용할 수 있도록 되어 있다. 따라서 IPv4를 제공하는 IPTV 수신기라고 해서 사용하지 못하는 것은 아니다.
CDN 서비스는 서비스 프로바이더가 제공하는 데이터로 IPTV 수신기가 최초로 전원이 인가되어 동작할 때, DHCP서비스에 의하여 IP를 받으면서 CDN 정보를 서비스 프로바이더에게 수신 받게 된다. 이 정보는 IPTV 사업자의 사용자의 등록이나 인증 그리고 앞서 언급했던 PF 정보들을 담고 있다. IPTV 수신기가 서비스 프로바이더에게서 CDN 정보를 얻음으로써, IP 방송 신호 수신이 가능할 수 있다.
사용자(Customer)는 여러 가지 형태의 IPTV 수신기를 가질 수 있다. 일반 TV를 가지고 있는 사용자의 경우에는 IPTV STB를 임대하여 저렴하게 IPTV를 즐길 수 있으며, 서비스 프로바이더가 저렴한 가격으로 추가적인 서비스 비용을 지불하고 IP Phone도 함께 신청하여 사용할 수도 있다. IPTV 수신기는 베이스적으로 네트워크에 접속할 수 있는 네트워크 인터페이스(Network Interface)가 있고, 인터넷 프로토콜을 가지고 있어서 네트워크로부터 들어오는 데이터 패킷을 받아 처리하여 멀티미디어 데이터인 경우에는 화면에 재생할 수 있고, 리모컨으로 조작할 경우, 데 이터 패킷을 네트워크로 신속하게 전송해서 해당 정보를 서버에서 얻어 반응을 해야 한다. 즉, IPTV 수신기는 멀티미디어 데이터를 처리하면서 양방향으로 사용자의 요구사항을 전송할 수 있도록 동작할 수 있다. 또한, 서비스를 잘 이용할 수 있도록 리모컨에 IPTV용 버튼들을 제공할 수 있다. 이렇게 제공된 IPTV 수신기에서 사용자는 드라마에 나오는 멋진 장면을 저장하여 볼 수 있고, 위치정보라든지 호텔 예약이라든지 하는 부가 서비스를 누릴 수 있다.
한편, 앞서 언급했던 NMS는 서비스 프로바이더가 망을 관리하는 기능뿐만 아니라 RCMS 기능을 수행한다. RCMS는 사용자가 가지고 있는 IPTV 수신기를 제어하고 관리할 수 있도록 도와 주는데, IPTV 수신기가 급증하고 부가적인 서비스가 늘어나면, RCMS의 역할은 더욱 중요하게 된다. 이 때문에 IPTV 방송 수신기에 SNMP 프로토콜을 의무화 하고 있다. 이는 서비스 프로바이더가 IPTV 방송 수신기를 관리하고 제어할 수 있도록 하겠다는 의도이다. 이렇게 되면, IPTV 방송 수신기는 현재 통신하고 있는 프로토콜의 통계자료 그리고 사용하는 프로세서의 정보, 어떤 TV 생산업체인지 등에 대하여 자세하게 파악할 수 있다.
고객 영역에서 IPTV 서비스를 수신하기 위해, ITF(120)는 DNS 서버(110)에 서버 주소 응답 요청(Server Address resolution request)을 전송할 수 있다. 그러면 DNS 서버(110)는 ITF(120)에게 서버 주소를 전송한다. 그러면 ITF(120)는 전송받은 서버 주소로 서버(130)에 연결하고 IPTV 서비스를 수신받을 수 있게 된다. 여기서 ITF(120)는 서버(130)와 멀티캐스트 방식 및 유니캐스트 방식 중 적어도 하나의 방식으로 연결될 수 있다.
도 2는 멀티캐스트 방식에 대해 개략적으로 도시한 도면이다. 도 2를 참조하면, 멀티캐스트 방식은 특정한 그룹의 다수의 수신자에게 데이터를 전송하는 방식이다. 예를 들어, 서비스 프로바이더는 데이터를 미리 등록된 다수의 ITF에 한꺼번에 전송할 수 있다. 상기 멀티캐스트 등록을 위해 IGMP(Internet Group Management Protocol) 프로토콜 등이 사용될 수 있다.
도 3은 유니캐스트 방식에 대해 개략적으로 도시한 도면이다. 도 3을 참조하면, 상기 유니캐스트 방식은 하나의 송신자와 하나의 수신자 사이에 데이터를 1:1로 전송하는 방식이다. 예를 들어, 유니캐스트 방식의 경우 ITF에서 서비스 프로바이더에 서비스를 요청하면, 상기 서비스 프로바이더는 요청에 따라 해당 서비스를 상기 ITF에 전송한다.
-스케일러블 비디오 서비스(scalable video service)-
본 발명과 관련하여 IPTV 환경에서는 다양한 수신장치의 사양과 네트워크 환경의 유동적인 대역폭(network bandwidth)에 의한 변화 가능한 비트레이트(variable bitrate) 환경을 고려할 때, 비트레이트(bitrate) 변화 및 코덱의 프로파일/레벨(codec profile/level)의 다양성 지원을 위한 스케일러블 비디오(Scalable Video) 서비스가 필요하다.
이에 본 명세서에서는 IPTV 서비스를 위한 스케일러블 비디오를 지원할 수 있도록 하며, 스케일러블 비디오 서비스 제공시 채널 설정 및 IPTV 서비스를 효율적으로 수행할 수 있도록 하는데 있다.
특히, 본 발명은 IPTV 서비스에 사용될 스케일러블 비디오를 처리함에 있어 서, 역다중화기(demultiplexer)에서 각 레이어(layer)의 취사선택을 할 수 있도록 함으로써, 비디오 복호기(video decoder)의 연산량을 줄이도록 하는데 있다.
하나의 스케일러블 비트 스트림(scalable bitstream)은 두 개 혹은 그 이상의 의존적인 레이어로 구성될 수 있다. 이 경우, 스케일러블 코덱(scalable codec)은 하나의 베이스 레이어(base layer)과 다수의 인핸스먼트 레이어(enhancement layer)들로 구성된다. 여기서, 베이스 레이어 및 연속되는 인핸스먼트 레이어의 정보가 함께 이용되어 보다 개선된 비디오 비트 스트림을 만든다. 그 예로, 화질 스케일러빌리티(scalability)는 하나의 비트 스트림으로부터 동일한 공간 및 시간 차원(dimension)을 갖지만 각각 다른 화질을 갖는 비트 스트림들을 만들어 낼 수 있다. 일반적으로 베이스 레이어는 화질을 제공하고, 연속된 인핸스먼트 레이어는 이전 레이어들로 만들어진 비디오보다 높은 화질을 갖도록 부호화한다. 마찬가지로, 시간 및 공간 해상도에서도 동일한 원리를 적용하여 스케일러빌리티를 지원한다.
이러한 점을 고려하여 코딩된 VCL(Video Coding Layer) 데이터들은 이를 전송하거나 저장하기 전에 NAL(Network Abstraction Layer) 단위로 맵핑될 수 있다. 여기서 NAL이란, 전송 또는 저장 등을 위한 시스템의 비트 스트림에 비디오 데이터 또는 헤더 정보를 맵핑시키기 위한 단위를 의미한다. 따라서, 각 NAL 단위는 비디오 데이터 또는 헤더 정보를 포함할 수 있다. NAL 단위로 맵핑된 비디오 신호는 패킷 기반 네트워크 또는 비트 스트림 전송 링크를 통해 전송되거나 저장될 수 있다. 이렇게 NAL 단위로 맵핑된 비디오 신호를 복호하기 위하여 NAL 단위로 파싱을 수행할 수 있다.
도 4는 비디오 데이터 또는 헤더 정보를 전송하기 위한 NAL 단위의 구조를 나타낸다.
NAL 단위는 베이스적으로 NAL 헤더와 RBSP(Raw Byte Sequence Payloads)의 두 부분으로 구성된다. NAL 헤더에는 그 NAL 단위의 참조픽처가 되는 슬라이스가 포함되어 있는지 여부를 나타내는 플래그 정보(nal_ref_idc)와 NAL 단위의 종류를 나타내는 식별자(nal_unit_type)가 포함되어 있다. RBSP에는 압축된 원본의 데이터를 저장하며, RBSP의 길이를 8비트의 배수로 표현하기 위해 RBSP의 마지막에 RBSP 채워넣기 비트(RBSP trailing bit)를 첨가한다. 이러한 NAL 단위의 종류에는 IDR(Instantaneous Decoding Refresh, 순간 복호 리프레쉬) 픽쳐, SPS(Sequence Parameter Set, 시퀀스 파라미터 세트), PPS(Picture Parameter Set, 픽쳐 파라미터 세트), SEI(Supplemental Enhancement Information, 보충적 부가정보) 등이 있다. 또한, NAL 단위로서 스케일러블 비디오 코딩 또는 다시점 비디오 코딩된 슬라이스임을 나타낼 수 있다. 예를 들어, NAL 유닛 타입(nal_unit_type)이 20 일 경우, 현재 NAL은 IDR 픽쳐가 아니면서 스케일러블 비디오 코딩 또는 다시점 비디오 코딩된 슬라이스임을 알 수 있다.
일반적으로 하나 또는 그 이상의 시퀀스 파라미터 셋과 픽쳐 파라미터 셋이 슬라이스 헤더와 슬라이스 데이터가 디코딩되기 전에 디코더로 전송된다. 여기서 시퀀스 파라미터 세트란, 프로파일, 레벨 등 시퀀스 전체의 부호화에 걸쳐있는 정보가 포함되어 있는 헤더 정보를 말한다. 결국, 시퀀스 파라미터 세트 RBSP와 픽쳐 파라미터 세트 RBSP 는 동영상 압축의 결과 데이터에 대한 헤더 정보로써의 역할을 한다. 이때 NAL 헤더 영역 또는 NAL 헤더의 확장 영역에는 여러 가지 속성 정보가 포함될 수 있다. 예를 들어, SVC(Scalable Video Coding), MVC(Multi-view Video Coding)는 AVC 기술에 대한 추가 기술이므로 무조건적으로 추가하기보다는 해당 비트 스트림인 경우에 한해 여러 가지 속성 정보들을 추가하는 것이 더 효율적일 수 있다. 예를 들어, NAL의 헤더 영역 또는 NAL 헤더의 확장 영역에서 MVC 또는 SVC 비트 스트림인지 여부를 식별할 수 있는 플래그 정보를 추가할 수 있다. 상기 플래그 정보에 따라 입력된 비트 스트림이 MVC 또는 SVC 비트 스트림일 경우에 한해 각 영상들에 대한 속성 정보들을 추가할 수 있다. 예를 들어, SVC 비트 스트림일 경우에는 IDR 픽쳐 여부를 나타내는 정보, 우선 순위 정보, 시간적 레벨 정보, NAL의 의존 정보, 퀄러티 레벨 정보, 인터레이어 예측이 사용되었는지를 나타내는 정보 등의 속성 정보를 추가할 수 있다. 이러한 속성 정보들을 이용하여 인핸스드 레이어 비트 스트림이 공간적 인핸스드 레이어 비트 스트림인지 SNR 인핸스드 레이어 비트 스트림인지를 알 수 있다.
여기서, 앞서 언급한 바와 같이 스케일러블 방식인 MCTF로 엔코딩된 픽처 시퀀스는 그 부분 시퀀스만을 수신하여 처리함으로써도 저화질의 영상 표현이 가능하지만, 비트레이트(bitrate)가 낮아지는 경우 화질저하가 크게 나타난다. 이를 해소하기 위해서 낮은 전송률을 위한 별도의 보조 픽처 시퀀스, 예를 들어 소화면 및/또는 초당 프레임수 등이 낮은 픽처 시퀀스를 제공할 수도 있다. 이러한 보조 시퀀스를 베이스 레이어(base layer)라 하고, 주 픽처 시퀀스를 인핸스드(enhanced) 또는 인핸스먼트(enhancement) 레이어라 한다.
또한, 규격에서는 대상 제품을 적당한 비용으로 구현 가능하도록 여러 가지 프로파일 및 레벨로 제약하고 있는데, 복호기는 해당 프로파일과 레벨에서 정해진 제약을 만족시켜야 한다. 이처럼 복호기가 어떤 압축 영상의 범위까지 대응할 수 있는지 그 기능 또는 파라미터를 나타내기 위해 프로파일과 레벨이라는 두 가지의 개념이 정의되었다. 프로파일(Profile)이란 코딩 과정에서 알고리즘상 들어가는 기술적 구성요소를 규격화한 것을 의미한다. 즉, 비트 스트림을 디코딩하기 위해 필요한 기술요소의 집합으로서 일종의 서브 규격이라 할 수 있다. 레벨(Level)이란, 프로파일에서 규정된 기술요소를 어느 범위까지 지원할 것인지를 정의한다. 즉, 디코딩 장치의 능력과 비트 스트림의 복잡도를 정의하는 역할을 한다. 비트 스트림이 어떤 프로파일에 기초하는 것인가는 프로파일 식별자(profile_idc)로 식별할 수 있다. 프로파일 식별자란, 비트 스트림이 기반을 둔 프로파일을 나타내는 플래그를 의미한다. 예를 들어, H.264/AVC에서는 프로파일 식별자가 66이면 베이스라인 프로파일에 기초함을 의미하고, 77이면 메인 프로파일에 기초함을 의미하며, 88이면 확장 프로파일에 기초함을 의미한다. 상기 베이스라인 프로파일은 I 슬라이스와 P 슬라이스를 사용하는 인트라 코딩 및 인터 코딩, 컨텍스트 적응형 가변 길이 코드를 사용하는 엔트로피 코딩을 지원할 수 있다. 상기 베이스라인 프로파일의 응용가능한 분야로는 화상전화, 화상회의 및 무선 통신 등을 들 수 있다. 상기 메인 프로파일은 비월주사 비디오, B 슬라이스를 사용한 인터 코딩, 가중치 예측을 사용하는 인터 코딩 및 컨텍스트 기반 적응형 이진 산술 코딩을 사용하는 엔트로피 코딩을 지원할 수 있다. 상기 메인 프로파일의 응용가능한 분야로는 TV방송과 비디오 저장 등을 들 수 있다. 그리고, 상기 확장 프로파일은 SP 슬라이스와 SI 슬라이스의 사용, 에러 복구를 위한 데이터 분할(data partitioning)을 지원할 수 있다. 상기 확장 프로파일의 응용가능한 분야로는 스트리밍 미디어 등을 들 수 있다. 상기 각각의 프로파일은 광범위한 응용 분야를 지원할 수 있는 충분한 유연성이 있기 때문에 상기 예시 이외의 다른 분야에도 응용 가능할 것이다.
상기 프로파일 식별자는 시퀀스 파라미터 세트에 포함될 수 있다. 따라서, 입력되는 비트 스트림이 어떤 프로파일에 대한 것인지 여부를 식별할 필요가 있다. 예를 들어, MVC 또는 SVC를 위한 프로파일로 식별되면 MVC 또는 SVC에 대한 하나 이상의 추가 정보를 전송할 수 있도록 신택스를 추가할 수 있다. 상기에서 살펴본 바와 같이 어떠한 종류의 비트 스트림인지를 식별하게 되면 디코더는 그에 적합한 방식으로 상기 비트 스트림을 디코딩하게 된다. 이러한 개념을 기초로 하여 이하에서는 상기 스케일러블 비디오 시스템에 대해 상세히 알아보도록 한다.
도 5는 스케일러블 비디오 코딩 방식이 적용되는 스케일러블 코딩 시스템을 개략적으로 도시한 것이다.
도 5를 참조하여 스케일러블 비디오 코딩 기법을 간단히 설명하면, 인코더(502)의 베이스 레이어 인코더(504)는 입력된 영상신호 X(n)을 압축하여 베이스 비트 스트림을 생성하고, 인핸스드 레이어 인코더(506)는 입력 영상신호 X(n)과 베이스 레이어 인코더(504)에 의해 생성되는 정보를 이용하여 인핸스드 레이어 비트 스트림을 생성하며, 다중화부(508)는 베이스 레이어 비트 스트림과 인핸스드 레이어 비트 스트림을 이용하여 스케일러블 비트 스트림을 생성한다. 생성된 스케일러 블 비트 스트림은 소정 채널을 통해 디코더(510)로 전송되고, 전송된 스케일러블 비트 스트림은 디코더(510)의 역다중화부(512)에 의해 인핸스드 레이어 비트 스트림과 베이스 레이어 비트 스트림으로 구분된다. 베이스 레이어 디코더(514)는 베이스 레이어 비트 스트림을 수신하여 출력 영상신호 Xb(n)을 복호할 수 있고, 인핸스드 레이어 디코더(516)는 인핸스드 레이어 비트 스트림을 수신하여 출력 영상신호 Xe(n)를 복호할 수 있다. 여기서, 출력 영상신호 Xb(n)은 출력 영상신호 Xe(n)에 비하여 화질이 낮거나 해상도가 낮은 영상신호가 될 수 있다.
또한, 상기 디코더(510)에 전송된 스케일러블 비트 스트림은 NAL의 타입 정보(nal_unit_type)에 따라 베이스 레이어(base layer) 비트 스트림인지 인핸스드 레이어(enhanced layer) 비트 스트림인지 구별될 수 있다. 인핸스드 레이어 비트 스트림인 경우에는 상기 도 4에서 설명한 바와 같이 NAL 헤더의 확장 영역에 있는 신택스 요소들을 이용하여 상기 인핸스드 레이어 비트 스트림을 디코딩할 수 있다. 예를 들어, 우선 순위 정보(priority_id), NAL의 의존 정보(dependency_id), 퀄러티 레벨 정보(quality_id) 등을 이용하여 상기 인핸스드 레이어 비트 스트림이 공간적 인핸스드 레이어 비트 스트림인지 SNR 인핸스드 레이어 비트 스트림인지를 알 수 있다. 인핸스드 레이어 비트 스트림으로 확인된 경우에는 상기 인핸스드 레이어 디코더(516)를 통해 디코딩을 수행하게 된다. 이때, 스케일러블 비디오 신호 복호화/부호화 기법에 있어서, 레이어 간의 상관 관계를 이용하여 예측 신호를 생성하는 경우에 보다 효율적인 코딩이 될 수 있다. 또한, H.264에서 지원 가능한 여러 가지 툴(tool)들을 스케일러블 비디오 신호 복호화/부호화 기법에도 적용할 수 있 다. 이에 대해서는 이하 도 10 내지 20에서 상세히 설명하도록 한다.
반면에 전송된 스케일러블 비트 스트림이 NAL 유닛 타입(nal_unit_type)에 따라 베이스 레이어(base layer) 비트 스트림으로 확인된 경우에는 상기 베이스 레이어 디코더(514)를 통해서 디코딩할 수 있다. 예를 들어, 상기 베이스 레이어 디코더(514)는 H.264 디코더일 수 있으며, 상기 베이스 레이어 비트 스트림은 H.264 디코딩 프로세스에 따라 디코딩될 수 있다. 따라서, 상기 스케일러블 비디오 코딩 방식 중 공간적 스케일러빌러티, SNR 스케일러빌러티를 설명하기에 앞서 도 7에서는 H.264 방식의 디코딩 프로세스에 대해 간단히 살펴보기로 한다.
도 6과 7은 본 발명이 적용되는 실시예로서, 시간적 스케일러블 비디오 코딩을 설명하기 위해 나타낸 것이다.
시간적 스케일러빌러티는 비디오의 레이어를 프레임 레이트에 의해 결정될 수 있다. 상기 도 6과 7에서는 3 개의 스케일러블 레이어를 예로 하여 설명하고자 한다. 상기 도 6과 7을 보면, 위에서 아래로 갈수록 인핸스먼트 시간적 스케일러블 레이어를 의미하며 이는 프레임 레이트가 높아짐을 나타낸다. 시간적 스케일러블 비디오 코딩은 H.264 비디오 코딩에 레이어적 B 픽쳐(hierarchical B picture) 또는 레이어적 P 픽쳐(hierarchical P picture) 개념을 적용하여 구현할 수 있다. 즉, 비디오 레이어에서 스케일러빌러티를 표현하기 위한 추가적인 비트 스트림 신택스를 요구하지 않는다. 레이어적 B 픽쳐(hierarchical B picture) 또는 레이어적 P 픽쳐(hierarchical P picture) 개념은 다음과 같다.
인핸스드 레이어에서 추가되는 B 픽쳐를 예측할 때, 해당 픽쳐의 인터 예측 을 위한 참조 픽쳐는 현재 픽쳐가 포함된 레이어 또는 그보다 하위 레이어에 속하는 픽쳐로만 국한된다. 예를 들어, 임의의 레이어의 템포럴 레벨을 L 이라고 한다면, 상기 템포럴 레벨 L에 속하는 픽쳐를 예측할 때, 상기 템포럴 레벨 L보다 큰 값을 가지는 템포럴 레벨에 속하는 픽쳐는 참조 픽쳐로 이용될 수 없다. 따라서, 임의의 템포럴 레이어에 속하는 픽쳐는 그보다 인핸스먼트 레이어에 속하는 픽쳐의 디코딩 여부와 관계없이 독립적으로 디코딩이 가능하다. 따라서, 디코더의 능력에 따라서 디코딩이 가능한 레벨이 결정되면 해당 프레임 레이트에 의한 H.264 호환가능한 비디오 신호를 디코딩할 수 있다.
도 8은 본 발명이 적용되는 실시예로서, 시간적 스케일러블 비디오 스트림을 디코딩할 수 있는 장치의 구성도를 나타낸다.
상기 디코딩 장치는 레이어 필터부(810), NAL유닛 디코딩부(830), 비디오 디코딩부(850)를 포함할 수 있다.
레이어 필터부(810)는 디코딩 장치의 능력에 근거하여 디코딩 장치가 디코딩할 수 있는 시간적 레이어(temporal layer)의 최대값을 이용하여 입력되는 스케일러블 비디오 코딩된 NAL 스트림을 필터링한다. 이 때, 시간적 레벨을 나타내는 최대값(Tmax)을 비디오 디코딩부(850)에서 디코딩할 수 있는 최대 프레임 레이트(maximum frame rate)에 상응하는 시간적 레벨 정보(temporal_id) 라고 할 때, 상기 레이어 필터부(810)는 상기 시간적 레벨 정보(temporal_id)가 상기 최대값(Tmax)보다 큰 값을 갖는 NAL 유닛은 출력하지 않는다. 따라서, 상기 비디오 디코딩부(850)에서는 그 능력에 근거하여 출력할 수 있는 최대 프레임 레이트에 해당 하는 시간적 레이어까지만 상기 NAL유닛 디코딩부(7630)로부터 데이터를 수신하여 디코딩할 수 있다.
또한, 비디오 디코딩부(850)에서는 디코딩 과정에서 시간적 레이어에 의한 구분이 필요 없다. 즉, 디코딩 과정에서 베이스 레이어에 해당하는 데이터와 인핸스드 레이어에 속하는 데이터를 구분하여 디코딩할 필요가 없다. 이미 상기 비디오 디코딩부(850)로 입력되는 데이터는 레이어의 구분없이 비디오 디코딩부의 디코딩 프로세스와 동일한 프로세스를 거쳐서 디코딩되기 때문이다. 예를 들어, 상기 비디오 디코딩부(850)가 H.264 비디오 디코더로 구성되어 있다면, 시간적 스케일러블 비디오 코딩된 비트 스트림이 수신되더라도 H.264 디코딩 프로세스에 따라 디코딩을 수행할 것이다. 그러나, 입력되는 비트 스트림이 공간적 스케일러블 비디오 코딩된 비트 스트림, 또는 SNR 스케일러블 비디오 코딩된 비트 스트림이라면 상기 H.264 비디오 디코더는 베이스 레이어에 대해서만 디코딩할 수 있을 것이다.
이하 도 9에에서는 상기 H.264 비디오 디코더의 디코딩 프로세스에 대해 살펴보도록 한다.
도 9는 본 발명에 의한 비디오 디코더의 개략적인 블록도를 나타낸다.
비디오 디코더는 엔트로피 디코딩부(910), 역양자화부(920), 역변환부(930), 인트라 예측부(940), 디블록킹 필터부(950), 복호 픽쳐 버퍼부(960), 인터 예측부(970) 등을 포함한다. 그리고, 상기 인터 예측부(970)는 움직임 보상부(971), 가중치 예측부(973) 등을 포함한다.
수신된 비디오 영상을 복호하기 위하여 NAL 단위로 파싱을 수행한다. 파싱된 비트 스트림은 엔트로피 디코딩부(910)를 통하여 엔트로피 디코딩되고, 각 매크로브록의 계수, 움직임 벡터 등이 추출된다. 역양자화부(920)에서는 수신된 양자화된 값에 일정한 상수를 곱하여 변환된 계수값을 획득하고, 역변환부(930)에서는 상기 계수값을 역변환하여 화소값을 복원하게 된다. 상기 복원된 화소값을 이용하여 인트라 예측부(940)에서는 현재 픽쳐 내의 디코딩된 샘플로부터 화면내 예측을 수행하게 된다. 한편, 디블록킹 필터부(950)에서는 블록 왜곡 현상을 감소시키기 위해 각각의 코딩된 매크로블록에 적용된다. 필터는 블록의 가장자리를 부드럽게 하여 디코딩된 프레임의 화질을 향상시킨다. 필터링 과정의 선택은 경계 세기(boundary strenth)와 경계 주위의 이미지 샘플의 변화(gradient)에 의해 좌우된다. 필터링을 거친 픽쳐들은 출력되거나 참조 픽쳐로 이용하기 위해 복호 픽쳐 버퍼부(960)에 저장된다.
복호 픽쳐 버퍼부(Decoded Picture Buffer)(960)에서는 화면간 예측을 수행하기 위해서 이전에 코딩된 픽쳐들을 저장하거나 개방하는 역할 등을 수행한다. 이 때 복호 픽쳐 버퍼부(960)에 저장하거나 개방하기 위해서 각 픽쳐의 프레임 번호 및 픽쳐 출력 번호(Picture Order Count)를 이용할 수 있다. 현재 픽쳐의 코딩을 위해 참조가 되는 픽쳐들을 저장하고, 화면간 예측을 위한 참조 픽쳐들의 리스트를 생성하게 된다. 그리고, 보다 유연하게 화면간 예측을 실현하기 위하여 참조 픽쳐를 관리한다. 예를 들어, 적응 메모리 관리 방법(Memory Management Control Operation Method)과 이동 윈도우 방법(Sliding Window Method)이 이용될 수 있다. 이는 참조 픽쳐와 비참조 픽쳐의 메모리를 하나의 메모리로 통일하여 관리하고 적 은 메모리로 효율적으로 관리하기 위함이다. 상기 방법들을 통해 관리되는 참조 픽쳐들은 인터 예측부(970)에서 이용될 수 있다.
인터 예측부(970)에서는 복호 픽쳐 버퍼부(960)에 저장된 참조 픽쳐를 이용하여 화면간 예측을 수행한다. 화면간 예측 부호화된 매크로블록은 매크로블록 파티션으로 나누어질 수 있으며, 각 매크로블록 파티션은 하나 또는 두 개의 참조 픽쳐로부터 예측될 수 있다. 상기 인터 예측부(970)는 움직임 보상부(971)와 가중치 예측부(973) 등을 포함할 수 있다.
움직임 보상부(971)에서는 엔트로피 디코딩부(910)로부터 전송된 정보들을 이용하여 현재 블록의 움직임을 보상한다. 비디오 신호로부터 현재 블록에 이웃하는 블록들의 움직임 벡터를 추출하고, 상기 현재 블록의 움직임 벡터 예측값을 획득한다. 상기 획득된 움직임 벡터 예측값과 비디오 신호로부터 추출되는 차분 벡터를 이용하여 현재 블록의 움직임을 보상한다. 또한, 이러한 움직임 보상은 하나의 참조 픽쳐를 이용하여 수행될 수도 있고, 복수의 픽쳐를 이용하여 수행될 수도 있다.
가중치 예측부(973)는 밝기가 시간적으로 변화하는 영상을 부호화할 때 영상의 화질이 크게 열화되는 현상을 보상하기 위해 이용된다. 예를 들어, 가중치 예측 방법에는 명시적(explicit) 가중치 예측 방법과 묵시적(implicit) 가중치 예측 방법이 있다. 상기 명시적 가중치 예측 방법에는 한 장의 참조 픽쳐를 이용하는 경우 또는 두 장의 참조 픽쳐를 이용하는 경우가 있다. 한 장의 참조 픽쳐를 이용하는 경우에는 움직임 보상에 해당하는 예측 신호에 가중치 계수를 곱해서 예측 신호를 생성하고, 두 장의 참조 픽쳐를 이용하는 경우에는 움직임 보상에 해당하는 예측 신호에 가중치 계수를 곱한 값에 오프셋 값을 더하여 예측 신호를 생성한다. 묵시적 가중치 예측 방법은 참조 픽쳐로부터의 거리를 이용하여 가중치 예측을 수행한다. 상기 참조 픽쳐로부터의 거리를 구하는 방법으로는, 예를 들어, 픽쳐의 출력 순서를 나타내는 값인 POC(Picture Order Count)를 이용할 수 있다.
상기에서 살펴본 바와 같이 인트라 예측 또는 인터 예측을 통해 복호화된 픽쳐들은 상기 엔트로피 디코딩부(910)로부터 출력된 모드 정보에 따라 어느 하나의 방식이 선택된다. 그리고 상기 디블록킹 필터부(950)를 거쳐 디스플레이될 수 있다.
이상에서와 같이 본 발명은 IPTV 서비스 수신기에서 비디오 신호를 출력하기 위한 디코딩을 수행할 수 있다.
도 10은 본 발명이 적용되는 실시예로서, 공간적 스케일러블 비디오 코딩을 설명하기 위해 나타낸 것이다.
공간적 스케일러빌러티와 SNR 스케일러빌러티는 멀티 레이어 구조로 구현될 수 있다. 상기 멀티 레이어 구조에서는 원하는 해상도의 영상을 제공하기 위해서 각 레이어마다 다른 해상도의 영상을 부호화해야 한다. 이때 각 공간 레이어에 대해 레이어간 중복성을 제거하기 위해 현재 부호화하고 있는 레이어의 공간 해상도보다 낮은 공간 해상도의 신호를 현재 부호화하고 있는 레이어의 공간 해상도로 업샘플링하여 예측 신호로 사용할 수 있다. 이처럼, 현재 신호와 예측된 신호와의 중복성을 제거한 레지듀얼 신호를 인터레이어 예측 방법을 이용하여 부호화함으로써 공간적 스케일러빌러티를 제공할 수 있게 된다. 상기 인터레이어 예측은 인트라 텍스쳐, 레지듀얼 신호 및 움직임 정보에 대해서 수행할 수 있다. 이에 대해서는 도 11 내지 도 13에서 상세히 설명하도록 한다.
상기 도 10에서는 베이스 레이어 코딩부(1010), 인핸스드 레이어 0 코딩부(1020), 인핸스드 레이어 1 코딩부(1030) 및 다중화부(1040)로 구성된 공간적 스케일러블 인코딩 시스템을 개략적으로 나타낸다. 공간적 스케일러빌러티는 각 레이어 단위로 픽쳐 크기(해상도)의 차별을 부여하는 코딩 방식으로 인핸스먼트 레이어로 갈수록 더 큰 픽쳐 크기를 갖는다. 따라서, 상기 베이스 레이어 코딩부(1010)에서 상기 인핸스드 레이어 1 코딩부(1030)로 갈수록 더 큰 픽쳐의 크기를 갖는다.
베이스 레이어 코딩부(1010)는 공간 해상도가 가장 낮은 픽쳐에 대한 코딩을 수행한다. 상기 베이스 레이어 코딩부(1010)는 기존의 코딩 방식과 호환 가능한 코딩 방식을 이용해야 한다. 예를 들어, H.264 코딩 방식을 이용하는 경우, H.264 디코딩 장치와 호환 가능할 수 있다. 상기 베이스 레이어 코딩부(1010)를 통해 H.264 방식으로 코딩된 비트 스트림을 출력할 수 있다. 인핸스드 레이어 0 코딩부(1020)는 상기 베이스 레이어에 있는 픽쳐를 참조하여 인터레이어 예측(inter-layer prediction)을 수행할 수 있다. 이때, 인터레이어 인트라 예측, 인터레이어 레지듀얼 예측 및 인터레이어 모션 예측이 수행될 있다. 마찬가지로, 인핸스드 레이어 1 코딩부(1030)는 상기 인핸스드 레이어0에 있는 픽쳐를 참조하여 인터레이어 예측을 수행할 수 있다. 이렇게 예측된 정보들은 변환 과정과 엔트로피 코딩을 거쳐 다중화부(1040)로 전송된다. 다중화부(1040)에서는 상기 엔트로피 코딩된 정보들로부터 스케일러블 비트 스트림을 형성할 수 있다.
이하에서는 상기 인터레이어 예측 방법, 즉 인터레이어 인트라 예측, 인터레이어 레지듀얼 예측 및 인터레이어 모션 예측에 대해서 상세히 살펴보도록 한다. 또한, 이들에 대해서 인코딩 관점에서 설명하더라도 동일하게 디코딩 관점에서 유추하여 적용할 수 있다.
도 11은 인터 레이어 인트라 예측을 설명하기 위해 나타낸 것이다.
현재 레이어(Layer N)의 부호화하려는 매크로블록에 대응되는 하위 레이어(Layer N-1)의 블록이 인트라 예측 모드로 부호화된 경우, 상기 대응되는 하위 레이어의 블록을 복원하고 복원된 블록을 상기 매크로블록의 공간 해상도로 업샘플링하여 예측 신호로 사용할 수 있다. 예를 들어, 상기 대응되는 하위 레이어의 블록은 베이스 레이어의 동일 위치(co-located)의 블록일 수 있다. 이렇게 예측된 신호와 상기 현재 매크로블록 사이의 차이인 레지듀얼 신호를 획득하고, 상기 레지듀얼 신호를 양자화, 엔트로피 과정을 통해 부호화할 수 있다. 이때, 상기 하위 레이어의 블록을 복원할 때 상기 하위 레이어의 블록 내 또는 인접한 인트라 블록 사이의 블록킹 효과를 제거하기 위해 복원 후 디블록킹 필터를 적용할 수 있다.
도 12는 인터 레이어 레지듀얼 예측을 설명하기 위해 나타낸 것이다.
부호화하려는 매크로블록에 대응하는 하위 레이어의 블록이 화면간 예측 모드로 부호화되어 잔여 신호를 포함한 경우에도 잔여 신호에 대한 인터레이어 예측을 수행할 수 있다. 현재 매크로블록의 움직임 정보가 하위 레이어의 대응하는 블록의 움직임 정보와 같거나 유사하다면 부호화된 하위 레이어의 잔여 신호를 업샘 플링하여 현재 블록의 예측 신호로 이용하였을 때에도 레이어 간 중복된 정보를 제거하여 부호화 효율을 높일 수 있기 때문이다. 그러나 현재 블록의 움직임 정보가 하위 레이어의 움직임 정보와 차이가 크다면 하위 레이어의 블록을 부호화할 때 참조한 하위 레이어의 블록들과 현재 블록을 부호화하기 위해 참조하는 현재 레이어의 블록들의 위치가 서로 다를 수 있다. 이러한 경우에는 레이어간 중복된 정보가 거의 없어서 레이어 간 예측의 효과가 없을 수 있다. 그러므로 잔여 신호의 인터레이어 예측은 움직임 정보에 따라서 적응적으로 수행할 수 있다.
현재 매크로블록의 움직임 정보가 하위 레이어의 대응하는 블록의 움직임 정보와 같거나 유사할 때 잔여 신호를 이용한 인터레이어 예측 과정을 상기 도 12를 통해 예를 들어 설명하고자 한다.
현재 레이어(Layer N)의 현재 매크로블록(Mcurr)에 대해 순방향 레퍼런스 프레임(forward reference frame)과 역방향 레퍼런스 프레임(backward reference frame)을 이용하여 예측 신호(MbPred_N)을 생성한다. 그리고, 상기 현재 매크로블록과 상기 예측 신호와의 차이값인 레지듀얼 신호(Res_N)를 생성한다. 마찬가지로 상기 현재 매크로블록에 대응하는 하위 레이어(Layer N-1)의 매크로블록(Mcorr)에 대해 순방향 레퍼런스 프레임과 역방향 레퍼런스 프레임을 이용하여 예측 신호(MbPred_N-1)를 생성한다. 그리고, 상기 대응되는 하위 레이어의 매크로블록과 상기 예측 신호(MbPred_N-1)와의 차이값인 레지듀얼 신호(Res_N-1)를 생성하고 이를 업샘플링한다. 이렇게 구해진 상기 현재 매크로블록의 레지듀얼 신호(Res_N)와 상기 대응되는 하위 레이어의 레지듀얼 신호(Res_N-1)를 업샘플링한 신호와의 차이 값을 구하여 이를 부호화하게 된다. 이때 상기 레지듀얼 신호에 대한 업샘플링은 공간 해상도 비에 따라 수행될 수 있으며, 상기 업샘플링 필터로서 바이-리니어(bi-linear) 필터를 사용할 수 있다.
도 13은 인터 레이어 움직임 예측을 설명하기 위해 나타낸 것이다.
공간 스케일러빌러티에 의해 인핸스드 레이어(spatial layer N+1)는 베이스 레이어(spatial layer N)에 비교해 가로 및 세로 방향으로 2배의 크기를 갖는다. 이 때, 인터-레이어 예측에 의해 인핸스드 레이어의 매크로블록이 인터 예측 모드로 코딩되었고 해당 매크로블록의 분할 정보를 베이스 레이어에서 유추하는 모드일 경우를 도 13(a)에서 나타낸다. 베이스 레이어에서 해당되는 위치의 매크로블럭 (co-located macroblock)의 분할(partioning) 정보가 8x8이라면 현재 매크로블럭은 16x16의 크기를 갖는다. 이러한 형태로 베이스 레이어의 분할 정보가 N x M이라면 상응하는 인핸스드 레이어에서의 매크로블록 분할 정보는 2N x 2M으로 결정된다. 또한 베이스 레이어에서의 매크로블럭의 움직임 추정 모드가 직접 모드 또는 16x16일 경우에는 여기에 대응하는 인핸스드 레이어에서의 4 개의 매크로블럭에 대해 16x16이라는 분할 정보를 적용한다.
도 14는 인터-레이어 예측을 위한 구문 요소의 디코딩 흐름도를 나타낸다. 먼저 base_mode_flag를 읽어 현재 매크로블럭 또는 블록에 대한 정보의 유추 여부를 알아낸다. 상기 base_mode_flag가 ‘1’이면 매크로블럭의 분할 정보 및 참조 정보, 움직임 벡터 등을 베이스 레이어에서 대응하는 블록으로부터 유추한다. base_mode_flag가 ‘0’이면 mb_type을 이용하여 추가적으로 유추 여부를 판단하 며, 매크로블럭이 인트라 코딩된 경우가 아니면, 즉 인터 코딩된 경우라면 motion_prediction_flag_l0 및 motion_prediction_flag_l1을 이용하여 인터 레이어 모션 예측의 수행 여부를 판단한다. 즉, list 0와 list 1에 대해 각각 베이스 레이어로부터의 유추 여부를 판단한다. 이때, 슬라이스 단위로 adaptive_motion_prediction_flag가 ‘1’로 설정되어 있어야 한다. Motion_prediction_flag가 ‘0’이면 참조 정보 및 분할 정보가 코딩되어 있으며, 기존의 움직임 벡터 디코딩 방법을 이용하여 디코딩을 수행한다.
도 15는 본 발명이 적용되는 실시예로서, SNR 스케일러블 비디오 코딩을 설명하기 위해 나타낸 것이다.
SNR 스케일러빌러티란 각 레이어 단위로 화질의 점진적인 향상을 부여하는 코딩 방식으로 베이스 레이어와 인핸스드 레이어는 동일한 픽쳐 크기(picture size)를 갖는 공간적 스케일러빌러티의 특별한 케이스로서 취급될 수 있다. 이를 코스-그레인 스케일러빌러티(Coarse-Grain Scalability)라고 한다. 앞서 설명한 공간적 스케일러빌러티의 인터레이어 예측과 동일한 방식이 적용될 수 있다. 다만 대응되는 업샘플링 과정은 이용되지 않을 수 있고, 레지듀얼 예측은 변환 도메인에서 직접 행해진다. 상기 코스-그레인 스케일러블에서 인터레이어 예측을 이용할 때, 텍스쳐 정보에 대한 미세 조정은 이전의 CGS 레이어에서 이용됐던 양자화 스텝 사이즈보다 더 작은 값을 이용하여 양자화함으로써 행해질 수 있다. 이처럼, 인핸스먼트 레이어로 갈수록 상기 양자화 스텝 사이즈 값이 작아지고 더 좋은 화질을 가질 수 있다.
그러나, 일반적으로 지원되는 레이트 포인트(rate points)의 수는 레이어의 수와 동일하다. 다른 CGS 레이어 사이의 스위칭은 오로지 비트 스트림의 정해진 포인트에서만 가능하다. 게다가 연속적인 CGS 레이어 사이의 상대적인 레이트 차이가 점점 작아질수록 멀티 레이어 구조의 효율성이 떨어진다.
따라서, 다양한 비트레이트와 다양한 CGS의 접근이 필요할 수 있다. 이를 미디엄-그레인 스케일러빌러티(Medium-Grain Scalability)라고 한다. 상기 CGS와의 차이는, 조정된 하이 레벨의 코딩 방식을 이용한다는 점이다. 예를 들어, 비트 스트림 내의 임의의 포인트에서 다른 MGS 레이어 사이의 스위칭을 가능하게 한다.
상기 도 15는 레이어 단위로 레지듀얼 미세조정(residual refinement)를 이용한 SNR 스케일러빌러티 코딩의 일실시예를 나타낸다. 모든 레이어는 동일한 해상도의 픽쳐를 갖는다. 이때 SNR 베이스 레이어에서는 인트라 예측만 수행할 수 있다. 원 레지듀얼 신호와 하위 레이어의 복원된 레지듀얼 신호와의 양자화 에러에 대해 코딩을 수행함으로써 상기 레지듀얼 신호에 대해 미세 조정을 할 수 있다. 이에 대한 구체적 예는 이하 도 16에서 상세히 설명하도록 한다.
도 16은 레지듀얼 미세조정(residual refinement)를 이용한 SNR 스케일러빌러티 코딩의 일실시예를 나타낸다.
본 발명의 일실시예로서, 상기 원본 영상과 움직임 보상된 예측 영상으로부터 제 1 레지듀얼 영상을 얻게 된다. 이를 QP = 32 로 양자화를 수행하고, 변환 과정을 수행한다. 이렇게 스케일된 계수값들을 다시 역변환과 역양자화 과정을 통해 제 2 레지듀얼 영상을 얻게 된다. 상기 제 1 레지듀얼 영상과 상기 제 2 레지듀얼 영상과의 차이값을 제 3 레지듀얼 영상이라고 하면, 상기 제 3 레지듀얼 영상이 양자화 에러가 된다. 상기 제 3 레지듀얼 영상에 대해 위와 같은 과정을 다시 반복하게 된다. 이 때에는 SNR 베이스 레이어에서 사용한 QP값(=32)보다 더 작은 QP값을 사용할 수 있다. 예를 들어, SNR 인핸스드 레이어 1에서는 상기 QP값으로 26으로 사용할 수 있고, SNR 인핸스드 레이어 2에서는 상기 QP값으로 그보다 더 작은 값인 20으로 사용할 수 있다. 이러한 과정을 통해 보다 좋은 화질의 영상을 얻을 수 있게 된다.
도 17은 스케일러블 비디오 디코더의 전체적인 흐름도를 나타낸다.
먼저 베이스 레이어와 타겟 레이어 사이에 공간 해상도의 변화가 있는지를 확인한다(S1710). 상기 공간 해상도의 변화가 없는 경우에는 베이스 레이어의 슬라이스에 대해서 디코딩을 수행한다(S1720). 즉, SNR 스케일러블 비트 스트림에 대한 디코딩이 된다. 이에 대해서는 도 18에서 상세히 설명하도록 한다.
그러나, 상기 확인 결과 베이스 레이어와 타겟 레이어 사이에 공간 해상도의 변화가 있는 경우에는 리샘플링 이전에 베이스 레이어의 슬라이스에 대해서 디코딩을 수행한다. 이는 베이스 레이어의 샘플들에 대해 디블록킹 필터링을 거치고(S1740), 상기 베이스 레이어의 슬라이스에 대해서 디코딩을 수행한다(S1750). 즉, 공간적 스케일러블 비트 스트림에 대한 디코딩이 된다. 이에 대해서는 도 19에서 상세히 설명하도록 한다.
이렇게 베이스 레이어에 대한 디코딩이 완료된 후, 인핸스드 레이어 데이터에 대한 디코딩이 수행된다(S1760). 이에 대해서는 도 20에서 상세히 설명하도록 한다. 베이스 레이어와 인핸스드 레이어에 대해서 디코딩이 수행된 후 디블록킹 필터링을 거쳐 영상이 출력될 수 있다(S1770).
도 18은 SNR 스케일러블 비트 스트림에 대한 디코딩 과정을 설명하기 위한 흐름도를 나타낸다.
현재 부호화하려는 매크로블록의 유형(mb_type)이 인트라 예측인지를 확인한다(S1821). 상기 현재 매크로블록의 유형이 인트라 예측이라면, 현재 매크로블럭 또는 블록에 대한 예측 모드의 유추 여부를 알아낸다(S1822). 예측 모드가 유추되는 경우, 스케일된 변환 계수들(scaled transform coefficients)과 변환 계수 레벨들(transform coefficient levels)에 대해서 업데이트를 수행한다(S1823). 4x4 또는 8x8 휘도 블록에 대해 입력되는 변환 계수 레벨값을 기존값에 더하는 축적(accumulation) 방식에 의해 업데이트한다. 스케일된 변환 계수들은 입력되는 레지듀얼 신호를 기존의 스케일된 변환 계수값에 더해서 업데이트한다. 여기서, 변환 계수란, 디코딩 과정 중 역변환 과정에서 1차원 또는 2차원 주파수 인덱스에 관련된 스칼라 양을 의미한다. 변환 계수 레벨이란, 변환 계수값을 스케일링하기 전에 2차원 주파수 인덱스와 관련된 값을 나타내는 정수를 의미한다. 상기 변환 계수와 상기 변환 계수 레벨은 하기의 수학식 1과 같은 관계에 있다.
transform coefficient = transform coefficient level * scaling factor
상기 S1822단계의 결과, 예측 모드가 유추되지 않는 경우에는 기존의 Intra_4x4, Intra_8x8, Intra_16x16과 동일한 방법으로 현재 레이어에 대해 인트라 -픽쳐 예측(intra-picture prediction)을 수행한다(S1824). 예측된 데이터는 레지듀얼 신호와 더해져 샘플을 생성한다. 이때, 상기 생성된 샘플(constructed sample)값은 디블록킹 필터링을 수행하기 전의 픽셀값들을 의미한다.
한편, 상기 S1821단계의 결과, 상기 현재 매크로블록의 유형이 인트라 예측이 아니라면, 모션 벡터와 참조 번호(reference index)에 대한 디코딩을 수행하게 된다(S1825). 예측 모드를 유추하는 경우, 현재 상태에서 초기화된 값을 그대로 이용하여 L0/L1 예측 수행 여부를 알려주는 플래그(prediction utilization flag), 참조 번호 및 모션 벡터값을 유추한다. 여기서, Motion_prediction_flag라는 필드가 존재하여 그 값이 ‘1’이면 모션 벡터 예측값은 현재 레이어를 디코딩하기 전에 초기화된 값을 사용하며, 그렇지 않을 경우에는 기존의 H.264 모션 정보 디코딩과 개념적으로 유사하다. 그리고, 스케일된 변환 계수들(scaled transform coefficients)과 변환 계수 레벨들(transform coefficient levels)을 계산하고, 업데이트를 수행한다(S1826).
도 19는 공간적 스케일러블 비트 스트림에 대한 디코딩 과정을 설명하기 위한 흐름도를 나타낸다.
현재 부호화하려는 매크로블록의 유형(mb_type)이 인트라 예측인지를 확인한다(S8351). 상기 현재 매크로블록의 유형이 인트라 예측이라면, 현재 매크로블럭 또는 블록에 대한 예측 모드의 유추 여부를 알아낸다(S1952). 예측 모드가 유추되는 경우, 인트라 샘플들에 대한 리샘플링 과정이 수행된다(S1953). 이는 인터-레이어 예측을 위해 베이스 레이어의 데이터를 인핸스드 레이어의 위치에 맵핑시키기 위한 업샘플링 과정에 해당된다. 그리고, 스케일된 변환 계수들(scaled transform coefficients)과 변환 계수 레벨들(transform coefficient levels)의 계산을 수행한다(S1959).
상기 S1952단계의 결과, 예측 모드가 유추되지 않는 경우에는 인트라 예측과 샘플 생성 과정이 수행된다(S1954). 기존의 Intra_4x4, Intra_8x8, Intra_16x16과 동일한 방법으로 현재 레이어에 대해 인트라-픽쳐 예측(intra-picture prediction)을 수행한다. 예측된 데이터는 레지듀얼 신호와 더해져 샘플을 생성한다. 이 때, 상기 생성된 샘플(constructed sample)값은 디블록킹 필터링을 수행하기 전의 픽셀값들을 의미한다. 그리고, 스케일된 변환 계수들(scaled transform coefficients)과 변환 계수 레벨들(transform coefficient levels)의 계산을 수행한다(S1959).
한편, 상기 S1951단계의 결과, 상기 현재 매크로블록의 유형이 인트라 예측이 아니라면, 모션 데이터에 대한 리샘플링 과정을 수행한다. 상기 모션 데이터에 대한 리샘플링 과정은 인핸스드 레이어의 매크로블록 또는 블록 파티션에 대해 베이스 레이어에서 그에 대응하는 위치를 계산한 후, 계산된 위치에서의 매크로블록 타입, 서브 매크로블록 타입, 참조 번호 및 모션 벡터의 값을 유추하는 과정이다(S1955). 인트라 샘플들에 대한 리샘플링 과정은 인터-레이어 예측을 위해 베이스 레이어의 데이터를 인핸스드 레이어의 위치에 맵핑시키기 위한 업샘플링 과정에 해당된다(S1956). 넌-인트라 매크로블록에 대한 인터레이어 예측의 경우 샘플값은 사용하지 않는다. 즉, 넌-인트라 매크로블록에 대해 베이스 레이어 상에서 움직임 보상을 수행하지 않으므로 베이스 레이어 디코딩 과정에서 참조 픽쳐의 픽셀을 저 장하기 위한 메모리는 필요 없다. 베이스 레이어가 인트라 모드로 코딩되었다면 이 때에는 베이스 레이어에서 디코딩된 샘플값을 인핸스드 레이어에서 사용한다. 이 때, 사용하는 업샘플링은 4-탭 필터를 사용하며 필터 계수는 계산되는 세로 방향의 위치에 따라 다르게 정의한다. 필드 픽쳐의 경우에 수직 방향의 리샘플링은 기존의 ½ 픽셀 보간법에서 사용하는 6-탭 필터와 동일한 방식을 사용한다. 레지듀얼 신호의 경우에는 바이-리니어(bi-linear) 보간법을 사용하여 업샘플링을 수행한다.
그리고 모션 벡터와 참조 번호에 대한 디코딩이 수행된다(S1957). 현재 상태에서 초기화된 값을 그대로 이용하여 L0/L1 예측 수행 여부를 알려주는 플래그(prediction utilization flag), 참조 번호 및 모션 벡터값을 유추한다. 여기서, Motion_prediction_flag라는 필드가 존재하여 그 값이 ‘1’이면 모션 벡터 예측값은 현재 레이어를 디코딩하기 전에 초기화된 값을 사용하며, 그렇지 않을 경우에는 기존의 H.264 모션 정보 디코딩과 개념적으로 유사하다. 레지듀얼 신호에 대한 리샘플링 과정(S1958)을 거쳐, 스케일된 변환 계수들(scaled transform coefficients)과 변환 계수 레벨들(transform coefficient levels)의 계산을 수행한다(S1959).
도 20은 인핸스드 레이어 데이터에 대한 디코딩 과정을 설명하기 위한 흐름도를 나타낸다.
현재 부호화하려는 매크로블록의 유형(mb_type)이 인트라 예측인지를 확인한다(S2061). 상기 현재 매크로블록의 유형이 인트라 예측이라면, 인터레이어 예측 모드에 대해서 확인한다(S2062). 상기 인터레이어 예측 모드가 0인 경우에는 인트 라 예측과 샘플 생성 과정이 수행된다(S2063). 기존의 Intra_4x4, Intra_8x8, Intra_16x16과 동일한 방법으로 현재 레이어에 대해 인트라-픽쳐 예측(intra-picture prediction)을 수행한다. 예측된 데이터는 레지듀얼 신호와 더해져 샘플을 생성한다. 이 때, 상기 생성된 샘플(constructed sample)값은 디블록킹 필터링을 수행하기 전의 픽셀값들을 의미한다. 상기 인터레이어 예측 모드가 1인 경우에는 베이스 레이어를 이용하여 레지듀얼 신호를 생성하게 된다(S2064). 그리고 이로부터 샘플을 생성하게 된다(S2065).
한편, 상기 S2061단계의 결과, 상기 현재 매크로블록의 유형이 인트라 예측이 아니라면, 레지듀얼 축적 과정(Residual accumulation process)이 수행된다(S2066). 스케일된 변환 계수에 대해 역변환을 수행하면 레지듀얼 신호를 생성할 수 있다. 레지듀얼 축적(residual accumulation) 과정은 베이스 레이어의 디코딩 과정에서 계산되어 저장된 레지듀얼 신호의 값과 현재 레이어에서 계산된 레지듀얼 신호를 더하여 축적하는 과정이다.
현재 레이어에 대해 인터 예측을 수행하고(S2067), 상기 인터 예측된 데이터는 레지듀얼 신호와 더해져 샘플 신호를 생성하게 된다(S2068).
이상에서와 같이 본 발명은 IPTV 서비스 수신기를 장착한 이동 방송 단말 장치에서 비디오 신호를 출력하기 위한 디코딩을 수행할 수 있다.
비디오 스케일러빌리티(Video Scalability)에는 시간 스케일러빌리티(Temporal Scalability), 화면의 크기에 관련된 공간 스케일러빌리티(Spatial Scalability), 화질에 관련된 SNR(Signal-to-Noise Ratio) 스케일러빌리티(SNR Scalability or Fidelity) 등이 있다.
상기 IPTV 서비스 데이터가 전송되는 채널 내에서 IPTV 서비스 데이터를 추출하여 디코딩하기 위해서는 시스템 정보가 필요하다. 이러한 시스템 정보는 경우에 따라서는 서비스 정보라고도 불리운다. 상기 시스템 정보는 채널 정보, 이벤트 정보 등을 포함할 수 있다.
본 발명의 실시예에서는 상기 시스템 정보로서 PSI/PSIP(Program Specific Information/Program and System Information Protocol) 을 적용하나 본 발명은 이에 한정하는 것은 아니다. 즉 시스템 정보를 테이블 포맷으로 전송하는 프로토콜이라면 그 명칭에 상관없이 본 발명에 적용 가능할 것이다.
상기 PSI는 채널 및 프로그램을 분류하기 위해 정의된 MPEG-2의 시스템 규격이고, 상기 PSIP는 채널 및 프로그램의 분류가 가능한 ATSC(Advanced Television Systems Committee) 규격이다.
상기 PSI는 일 실시예로서, PAT(Program Association Table), CAT(Conditional Access Table), PMT(Program Map Table), 및 NIT(Network Information Table)를 포함할 수 있다.
상기 PAT는 PID가 '0'인 패킷에 의해 전송되는 특수 정보로서, 각 프로그램마다 해당 PMT의 PID 정보와 NIT의 PID 정보를 전송한다. 상기 CAT는 송신측에서 사용하고 있는 유료 방송 시스템에 대한 정보를 전송한다. 상기 PMT는 프로그램 식별 번호와 프로그램을 구성하는 비디오, 오디오 등의 개별 비트열이 전송되는 트랜스포트 스트림 패킷의 PID 정보, 및 PCR이 전달되는 PID 정보를 전송한다. 상기 NIT는 실제 전송망의 정보를 전송한다.
상기 PSIP은 일 실시예로서, VCT(Virtual Channel Table), STT(System Time Table), RRT(Rating Region Table), ETT(Extended Text Table), DCCT(Direct Channel Change Table), DCCSCT(Direct Channel Change Selection Code Table), EIT(Event Information Table), 및 MGT(Master Guide Table)를 포함할 수 있다.
상기 VCT는 가상 채널에 대한 정보 예를 들어, 채널 선택을 위한 채널 정보와 오디오 및/또는 비디오의 수신을 위한 패킷 식별자(PID) 등의 정보를 전송한다. 즉, 상기 VCT를 파싱하면 채널 이름, 채널 번호 등과 함께 채널 내에 실려오는 방송 프로그램의 오디오와비디오의 PID를 알 수 있다.
도 21은 본 발명에 따른 VCT의 일실시예를 도시하고 있다. 도 21의 VCT 신택스는 table_id 필드, section_syntax_indicator 필드, private_indicator 필드, section_length 필드, transport_stream_id 필드, version_number 필드, current_next_indicator 필드, section_number 필드, last_section_number 필드, protocol_version 필드, num_channels_in_section 필드 중 적어도 하나를 포함하여 구성된다.
상기 VCT 신택스는 상기 num_channels_in_section 필드 값만큼 반복되는 'for' 루프의 제1 반복문을 더 포함하는데, 상기 제1 반복문 내에는 short_name 필드, major_channel_number 필드, minor_channel_number 필드, modulation_mode 필드, carrier_frequency 필드, channel_TSID 필드, program_number 필드, ETM_location 필드, access_controlled 필드, hidden 필드, service_type 필드, source_id 필드, descriptor_length 필드, 및 이 제1 반복문 내에 포함되는 디스크립터 수만큼 반복되는 'for' 루프로 된 제2 반복문 중 적어도 하나를 포함하여 구성된다. 본 발명에서는 설명의 편의를 위해 상기 제2 반복문을 제1 디스크립터 루프라 한다. 상기 제1 디스크립터 루프에 포함되는 디스크립터 descriptors()는 가상 채널 각각에 개별적으로 적용되는 디스크립터이다.
또한 상기 VCT 신택스는 additional_descriptor_length 필드와, 상기 VCT에 추가되는 디스크립터 수만큼 반복되는 'for' 루프로 된 제3 반복문을 더 포함할 수 있다. 본 발명에서는 설명의 편의를 위해 상기 제3 반복문을 제2 디스크립터 루프라 한다. 상기 제2 디스크립터 루프에 포함되는 디스크립터 additional_descriptors()는 VCT에서 기술되는 모든 가상 채널에 공통적으로 적용되는 디스크립터이다.
이와 같이 구성된 도 21에서, 상기 table_id 필드는 상기 테이블로 전송되는 정보가 VCT임을 인식할 수 있는 고유 식별자(ID)를 표시한다. 즉, 상기 table_id 필드는 이 섹션(section)이 속해 있는 테이블이 VCT라는 것을 알려주는 값을 나타내며, 일 예로 0xC8이 할당될 수 있다.
상기 version_number 필드는 VCT의 버전 값을 나타내고, 상기 section_number 필드는 이 섹션의 번호를, 상기 last_section_number 필드는 완전한 VCT의 마지막 섹션의 번호를 나타낸다. 상기 num_channels_in_section 필드는 상기 VCT 섹션 내에 존재하는 전체 가상 채널의 개수를 지정한다.
그리고, 상기 'for' 루프의 제1 반복문 내에 있는 short_name 필드는 가상 채널 이름을 나타내고, 상기 major_channel_number 필드는 상기 제1 반복문 안에서 정의되는 가상 채널과 관련된 '메이저' 채널 번호를 나타내고, 상기 minor_channel_number 필드는 '마이너' 채널 번호를 나타낸다. 즉, 각각의 가상 채널 번호는 메이저와 마이너 채널 번호에 연결되어 있어야 하며, 메이저, 마이너 채널 번호는 해당 가상 채널에 대한 사용자 참조 번호로 작용한다.
상기 program_number 필드는 MPEG-2 PAT(Program Association Table)와 PMT(Program Map Table)가 정의되어 있는 가상 채널을 연결하기 위해 나타내며, 상기 PAT/PMT안에 있는 프로그램 번호와 일치한다. 여기서, PAT는 각 프로그램 번호마다 그 프로그램의 구성 요소를 기술하는데, PMT를 전송하는 트랜스포트 패킷의 PID를 가리킨다. 상기 PMT는 프로그램 식별 번호와 프로그램을 구성하는 비디오, 오디오 등의 개별 비트열이 전송되고 있는 트랜스포트 패킷의 PID 리스트와 부속 정보를 기술하고 있다.
도 22는 본 발명에 따른 스케일러블 비디오의 각 레이어 데이터를 전송하는 방법의 일 실시예를 보이고 있다.
본 발명에서는 스케일러블 비디오 데이터의 각 레이어별로 각기 다른 PID(packet identifier)를 할당하여 각각의 ES(elementary stream)로 구성하는 것을 일 실시예로 한다. 예를 들면, 베이스 레이어의 비디오 ES를 포함하는 비디오 스트림 패킷(video stream packet)의 헤더(header)에 삽입되는 PID 값과 제1 인핸스먼트 레이어의 비디오 ES를 포함하는 비디오 스트림 패킷의 헤더에 삽입되는 PID 값은 서로 다르다. 본 발명에서 비디오 스트림 패킷은, 헤더와 페이로드(payload) 로 구성되며 이때, 헤더는 4 바이트를, 페이로드는 184 바이트를 할당하는 것을 일 실시예로 한다. 다만, 상기 헤더 및 페이로드에 할당되는 바이트 수는 시스템 설계자에 의해 달라질 수 있으므로 본 발명은 상기 바이트 수로 제한되지 않을 것이다.
각 레이어별로 스케일러블 비디오 데이터에 대해 서로 다른 PID를 할당하면서 비디오 스트림 패킷을 구성하는 과정은 전송 시스템에서 수행될 수도 있다.
예를 들어, 베이스 레이어의 스케일러블 비디오 데이터의 PID 값은 0xF0를 할당하고, 제1 인핸스먼트 레이어의 스케일러블 비디오 데이터의 PID 값은 0xF1를 할당하며, 제2 인핸스먼트 레이어의 스케일러블 비디오 데이터의 PID 값은 0xF2를 할당할 수 있다. 다만, 베이스 PID 값들은 일 실시예일 뿐이며, 상기 PID 값으로 할당되는 수치들에 본 발명의 권리범위가 제한되지는 않을 것이다.
도 23은 수신 시스템에서 각 레이어별로 서로 다른 PID가 할당되어 전송되는 스케일러블 비디오 데이터를 수신하여 처리하는 일 실시예를 보이고 있다.
수신 시스템의 복조부는, 각 레이어별로 서로 다른 PID가 할당되어 전송되는 스케일러블 비디오 데이터를 수신하여 복조한 후 비디오 스트림 패킷 형태로 역다중화기(2301)로 출력한다. 상기 비디오 스트림 패킷 내 헤더는 페이로드의 데이터를 식별할 수 있는 PID를 포함하고, 해당 비디오 스트림 패킷 내 페이로드는 상기 PID가 지시하는 레이어의 스케일러블 비디오 데이터의 ES가 포함되어 있다.
수신 시스템 내 역다중화기(2301)는 비디오 스트림 패킷, 오디오 스트림 패킷, 데이터 스트림 패킷을 모두 입력받을 수 있으나, 본 발명에서는 비디오 스트림 패킷을 입력받아 처리하는 것을 일 실시예로 설명한다. 여기에서, 상기 오디오 스 트림 패킷과 데이터 스트림 패킷은 상기 비디오 스트림 패킷의 처리 과정을 참조하고 상세 설명은 생략한다.
역다중화기(2301)는 입력되는 비디오 스트림 패킷의 PID와 PSI/PSIP 과 같은 프로그램 테이블 정보를 참조하여 입력되는 비디오 스트림 패킷이 어느 레이어의 패킷인지를 구분한다. 상기 역다중화기(2301)는 구분된 베이스 레이어의 비디오 스트림 패킷을 비디오 복호기(2302)로 출력된다. 다만, 역다중화기(2301)는 인핸스먼트 레이어의 비디오 스트림 패킷은 비디오 복호기(2302)로 출력하지 않고 버리거나, 또는 비디오 복호기(2302)로 출력한다.
역다중화기(2301)가 인핸스먼트 레이어의 비디오 스트림 패킷을 비디오 복호기(2302)로 출력하거나, 또는 비디오 복호기(2302)로 출력하지 않고 버리는 판단 기준은 여러 가지가 있을 수 있다. 다만, 본 발명에서는 비디오 복호기(2302)의 복호(decoding) 능력에 따라 판단하는 것을 일 실시예로 한다. 즉, 역다중화기(2301)는 비디오 복호기(2302)가 인핸스먼트 레이어의 비디오 스트림 패킷을 처리할 능력이 있으면, 상기 구분된 인핸스먼트 레이어의 비디오 스트림 패킷을 상기 비디오 복호기(2302)로 출력한다. 또한, 역다중화기(2301)는 비디오 복호기(2302)가 제1 인핸스먼트 레이어의 비디오 스트림 패킷까지 처리할 능력이 있으면, 상기 구분된 베이스 레이어 및 제1 인핸스먼트 레이어의 비디오 스트림 패킷은 상기 비디오 복호기(2302)로 출력한다. 다만, 역다중화기(2301)는 제2 인핸스먼트 레이어의 비디오 스트림 패킷은 비디오 복호기(2302)로 출력하지 않고 버린다.
비디오 복호기(2302)는 역다중화기(2301)로부터 입력되는 비디오 스트림 패 킷을 해당 비디오 복호 알고리즘에 따라 복호(decoding)하여 출력한다. 일 예로, 비디오 복호 알고리즘은 MPEG 2 비디오 복호 알고리즘, MPEG 4 비디오 복호 알고리즘, H.264 복호 알고리즘, SVC 복호 알고리즘, VC-1 복호 알고리즘 중 적어도 하나를 적용할 수 있다.
예를 들어, 역다중화기(2301)는 비디오 복호기(2302)가 베이스 레이어의 비디오 스트림 패킷만 처리할 수 있는 능력이 있다면, 상기 베이스 레이어의 비디오 스트림 패킷만 상기 비디오 복호기(2302)로 출력한다. 그리고 상기 비디오 복호기(2202)는 베이스 레이어의 비디오 스트림 패킷에 대해 복호를 수행한다.
또 다른 예로, 역다중화기(2301)는 디오 복호기(2302)가 제1 인핸스먼트 레이어까지의 비디오 스트림 패킷에 대해서만 처리할 수 있는 능력이 있다면, 베이스 레이어 및 상기 제1 인핸스먼트 레이어의 비디오 스트림 패킷만 비디오 복호기(2302)로 출력하고, 상기 비디오 복호기(2302)는 상기 베이스 레이어 및 제1 인핸스먼트 레이어의 비디오 스트림 패킷에 대해 복호를 수행한다.
도 24는 도 23의 역다중화기(2301)에서 PSI/PSIP 정보 중 VCT를 이용하여 각 레이어의 스케일러블 비디오 데이터를 처리하는 방법의 일 실시예를 블록도로 보이고 있다.
수신 시스템은 VCT(virtual channel table)를 수신하고, 수신된 VCT 내의 scalable_service_location_descriptor를 파싱하여 해당 비디오 스트림 패킷이 IPTV 서비스를 위한 스케일러블 비디오(IPTV Scalable Video)인지 확인한다. 만일 역다중화기(2301)는, IPTV 서비스를 위한 스케일러블 비디오로 확인되면, 해당 비 디오 스트림 패킷이 베이스 레이어의 스케일러블 비디오 데이터인지를 확인하여, 맞으면 해당 비디오 스트림 패킷을 비디오 복호기(2302)로 전달한다. 다만, 역다중화기(8001)는 해당 비디오 스트림 패킷이 IPTV 서비스를 위한 스케일러블 비디오(IPTV Scalable Video)로 확인되었으나, 인핸스먼트 레이어의 스케일러블 비디오 데이터라면 비디오 복호기(2302)의 디코딩 가능 여부에 따라 비디오 복호기(2302)로 출력하거나, 출력하지 않고 버린다.
역다중화기(2301)는, 수신된 VCT 내 scalable_service_location_descriptor의 stream_type 필드 값이 IPTV 서비스를 위한 스케일러블 비디오를 지시하고, layer_id 필드 값이 베이스 레이어를 지시하면, 해당 비디오 스트림 패킷은 무조건 비디오 디코더(2302)로 출력한다. 다른 예로, 역다중화기(2301)는 수신된 VCT 내 scalable_service_location_descriptor의 stream_type 필드 값이 IPTV 서비스를 위한 스케일러블 비디오를 지시하고, layer_id 필드 값이 제1 인핸스먼트 레이어를 지시하면, 해당 비디오 스트림 패킷은 비디오 디코더(2302)로 출력하거나 출력하지 않고 버린다.
즉, 본 발명의 VCT는 도 21에서와 같이 num_channels_in_section 필드 값만큼 반복되는 'for' 루프의 제1 반복문(channel_loop)을 포함할 수 있다.
상기 제1 반복문 short_name 필드, major_channel_number 필드, minor_channel_number 필드, modulation_mode 필드, carrier_frequency 필드, channel_TSID 필드, program_number 필드, ETM_location 필드, access_controlled 필드, hidden 필드, service_type 필드, source_id 필드, descriptor_length 필드, 및 이 제1 반복문 내에 포함되는 디스크립터 수만큼 반복되는 'for' 루프로 된 제2 반복문 중 적어도 하나를 포함할 수 있다. 상기 제1 반복문 내 각 필드의 설명은 도 21을 참조하면 되므로, 여기서는 상세 설명을 생략한다.
본 발명에서는 설명의 편의를 위해 상기 제2 반복문을 디스크립터 루프라 한다. 상기 디스크립터 루프에 포함되는 디스크립터 descriptors()는 가상 채널 각각에 개별적으로 적용되는 디스크립터이다.
본 발명은 상기 디스크립터 루프에 각 레이어의 스케일러블 비디오 데이터를 구분할 수 있는 정보를 전송하는 scalable_service_location_descriptor를 포함하는 것을 일 실시예로 한다.
도 25는 본 발명에 따른 scalable_service_location_descriptor의 비트 스트림 신택스 구조에 대한 일 실시예를 보이고 있다.
도 25의 scalable_service_location_descriptor()는 descriptor_tag 필드, descriptor_length 필드, PCR_PID 필드, number_elements 필드, 및 상기 number_elements 필드 값만큼 반복되는 'for' 루프로 된 반복문 중 적어도 하나를 포함할 수 있다. 본 발명에서는 number_elements 필드 값만큼 반복되는 반복문을 설명의 편의를 위해 ES 루프(ES_loop)라 하기로 한다.
상기 각 ES 루프는 stream_type 필드와 elementary_PID 필드 중 적어도 하나를 포함할 수 있다.
또한, 상기 각 ES 루프는 stream_type 필드 값이 IPTV 서비스를 위한 스케일러블 비디오(IPTV Scalable Video)를 지시하는 경우, scalability_type 필드, layer_id 필드, 및 base_layer_id 필드 중 적어도 하나를 포함할 수 있다. 그리고 상기 각 ES 루프는 상기 scalability_type 필드 값에 따라 사용되는 필드가 달라질 수 있다.
상기 각 ES 루프는 scalability_type 필드 값이 시간 스케일러빌러티를 지시하거나 베이스 레이어를 지시하면, frame_rate_code 필드, frame_rate_num 필드와, frame_rate_denom 필드 중 적어도 하나를 더 포함할 수 있다. 여기에서, 상기 frame_rate_code 필드는 ISO/IEC 13818-2에서 정의한 frame_rate_code 필드이며, 해당 스케일러블 비디오 스트림의 프레임 레이트(frame rate)를 계산하는데 사용된다. 이때, 해당 스트림의 프레임 레이트는 하기와 같은 계산식을 이용할 수 있다.
Frame_rate=frame_rate_value*(frame_rate_num+1)/frame_rate_denom+1)
여기에서, 상기 frame_rate_value는, frame_rate_code로부터 추출되는 실제 frame_rate 값이다. 그리고 각 필드의 값 할당은 ISO/IEC 13818-2에서와 같이 한다.
Frame_rate_num 필드는 2비트의 해당 스케일러블 비디오 스트림의 프레임 레이트를 계산하는데 사용된다. 하지만, frame_rate가 frame_rate_code로부터 바로 추출될 경우, 이 필드는 ‘0’으로 설정한다. Frame_rate_denom는 5비트의 해당 스케일러블 비디오 스트림의 프레임 레이트를 계산하는데 사용된다. 하지만 프레임 레이트가 frame_rate_code로부터 바로 추출될 경우, 이 필드는 ‘0’으로 설정한다. Profile_idc와 level_idc 필드는 해당 스트림을 베이스 레이어와 결합하여 디코딩하였을 때 상응하는 AVC/H.264 프로파일 및 레벨 값을 의미한다. Horizontal_size_of_coded_video와 vertical_size_of_coded_video 필드는 비디오 데이터의 가로 및 세로 크기를 픽셀 단위로 나타낸다. Video_es_bit_rate 필드는 해당 비디오의 비트 레이트를 비트 퍼 세컨드(bit per second) 단위로 표현한다.
상기 각 ES 루프는 scalability_type 필드 값이 공간 스케일러빌러티를 지시하거나 베이스 레이어를 지시하면, profile_idc 필드, constraint_set0_flag ~ constraint_set3_flag 필드, level_idc 필드 중 적어도 하나를 더 포함할 수 있다. 여기에서, 상기 level_idc 필드는 그 하부에 horizontal_size_of_coded_video와 vertical_size_of_coded_video 필드는 비디오 데이터의 가로 및 세로의 크기를 픽셀 단위로 나타낸다.
상기 각 ES 루프는 stream_type 필드 값이 IPTV 서비스용 비디오 데이터의 SNR 스케일러빌러티를 지시하거나 베이스 레이어를 지시하면, profile_idc 필드, level_idc 필드 및 video_es_bit_rate 필드 중 적어느 하나를 더 포함할 수 있다. 여기에서, 상기 video_es_bit_rate 필드는 해당 비디오의 비트 레이트를 비트 퍼 세컨드 단위로 표현한다.
또한, 상기 각 ES 루프는 stream_type 필드 값이 IPTV 서비스를 위한 오디오(IPTV Audio)를 지시하는 경우, additional_info_byte 필드를 포함할 수 있다.
이와 같이 구성된 도 24에서 descriptor_tag 필드는 일 실시예로 8 비트를 할당할 수 있으며, 해당 디스크립터를 유일하게 구분(identify)할 수 있는 값을 표시한다.
상기 descriptor_length 필드는 일 실시예로 8 비트를 할당할 수 있으며, 해 당 디스크립터의 길이를 표시한다.
상기 PCR_PID 필드는 일 실시예로 13비트를 할당할 수 있으며, Program Clock Reference elementary stream의 PID를 표시한다. 즉, 상기 PCR_PID 필드는 program_number 필드에 의해 특정된 프로그램에서 유효한 PCR 필드가 포함된 transport stream 패킷의 PID를 나타낸다.
상기 number_elements 필드는 일 실시예로 8비트를 할당할 수 있으며, 해당 디스크립터 내에 존재하는 ES의 개수를 나타낸다.
상기 number_elements 필드 값에 따라 다음에 기술되는 ES 루프의 반복 횟수가 결정된다.
상기 stream_type 필드는 일 실시예로 8비트를 할당할 수 있으며, 해당 ES의 종류를 나타낸다. 도 26은 본 발명에 따른 stream_type 필드에 할당될 수 있는 값들 및 그 정의의 실시예를 도시하고 있다. 도 26에 도시된 바와 같이, 스트림 타입(stream type)으로는 ITU-T Rec. H.262 | ISO/IEC 13818-2 Video or ISO/IEC 11172-2 constrained parameter video stream, PES packets containing A/90 streaming, synchronized data, DSM-CC sections containing A/90 asynchronous data, DSM-CC addressable sections per A/90, DSM-CC sections containing non-streaming, synchronized data, Audio per ATSC A/53E Annex B, Sections conveying A/90 Data Service Table, Network Resource Table, PES packets containing A/90 streaming, synchronous data 등이 적용될 수 있다. 한편, 본 발명에 따르면, 스트림 타입(stream type)으로 Non-Scalable Video data for IPTV, Audio data for IPTV, Scalable Video data for IPTV 등이 더 적용될 수 있다.
상기 elementary_PID 필드는 일 실시예로 13 비트를 할당할 수 있으며, 해당 ES의 PID를 표시한다.
상기 stream type 필드 값이 IPTV 서비스를 위한 스케일러블 비디오를 지시하면, scalability_type 필드, layer_id 필드, 및 base_layer_id 필드 중 적어도 하나를 포함할 수 있다.
상기 scalability_type 필드는 일 실시예로 4비트를 할당할 수 있으며, 해당 스케일러블 비디오(Scalable Video) 스트림의 스케일러비티의 종류를 나타낸다. 도 27은 본 발명에 따른 scalability_type 필드에 할당될 수 있는 값들 및 그 정의의 실시예를 도시하고 있다. 도 27에서는 상기 scalability_type 필드 값이 0x1이면 공간 스케일러비티(Spatial Scalability)를, 0x2이면 SNR 스케일러비티(SNR Scalability)를, 0x03이면 시간 스케일러비티(Temperal Scalability)를, 0xF이면 베이스 레이어(Base Layer)을 나타내는 것을 일 실시예로 하고 있다.
상기 layer_id 필드는 일 실시예로 4비트를 할당할 수 있으며, 해당 스케일러블 비디오 스트림의 레이어 정보를 나타내며, scalablity_type 필드와 함께 병행해서 해석되는 것이 바람직하다. 해당 비디오 스트림이 베이스 레이어일 경우, 이 값을 0x0으로 할당하며, 인핸스먼트 레이어일수록 높은 값을 갖는다. 예를 들어, 제1 인핸스먼트 레이어의 layer_id 필드 값은 0x01을 할당하고, 제2 인핸스먼트 레이어의 layer_id 필드 값은 0x02를 할당할 수 있다. 여기서 상기 layer_id 필드에 할당되는 값들은 바람직한 실시예이거나 단순한 예시인 바, 상기 수치들에 본 발명 의 권리범위가 제한되지는 않는다.
상기 base_layer_id 필드는 일 실시예로 4비트를 할당할 수 있으며, 해당 스케일러블 비디오 스트림이 인핸스먼트 레이어(Enhancement Layer) 스트림일 경우, 해당 스트림이 참조하는 하위 레이어의 layer_id 값을 나타낸다. 해당 스트림이 베이스 레이어일 경우, 이 base_layer_id 필드는 무시된다(deprecated). 예를 들어, 해당 스케일러블 비디오 스트림이 제1 인핸스먼트 레이어(Enhancement Layer-1) 스트림일 경우, 제1 인핸스먼트 레이어의 스케일러블 비디오 스트림이 참조하는 하위 레이어의 layer_id 값은 베이스 레이어의 layer_id 값이 된다(즉, base_layer_id = 0x00). 또 다른 예로, 해당 스케일러블 비디오 스트림이 제2 인핸스먼트 레이어(Enhancement Layer-2) 스트림일 경우, 해당 스트림이 참조하는 하위 레이어의 layer_id 값은 제1 인핸스먼트 레이어의 layer_id 값이다(즉, base_layer_id = 0x01).
한편, 상기 scalability_type 필드 값이 Temporal(예, 0x3)을 지시하거나 또는 베이스 레이어(예, 0xF)을 지시하면 frame_rate_code 필드, frame_rate_num 필드, frame_rate_denom 필드 중 적어도 하나를 더 포함할 수 있다.
상기 frame_rate_code는 일 실시예로 4비트를 할당할 수 있으며, 해당 스케일러블 비디오 스트림의 프레임 레이트(frame rate)를 계산하는데 사용된다. 일 예로, 상기 frame_rate_code 필드는 ISO/IEC 13818-2에서 정의한 frame_rate_code 필드 값을 표시할 수 있다.
도 28은 본 발명에 따른 frame_rate_code 필드에 할당될 수 있는 값들 및 그 정의의 실시예를 보이고 있다. 예를 들어, 도 28에서 frame_rate_code 필드 값이 1000이면 프레임 레이트가 60Hz임을 의미한다.
상기 frame_rate_num 필드는 일 실시예로 2비트를 할당할 수 있으며, 해당 스케일러블 비디오 스트림의 프레임 레이트를 계산하는데 사용된다. 하지만, 프레임 레이트가 상기 frame_rate_code 필드로부터 바로 추출될 경우, 상기 frame_rate_num 필드는 '0'으로 설정한다.
상기 frame_rate_denom 필드는 일 실시예로 5비트를 할당할 수 있으며, 해당 스케일러블 비디오의 프레임 레이트를 계산하는데 사용된다. 하지만, 프레임 레이트가 상기 frame_rate_code 필드로부터 바로 추출될 경우, 상기 frame_rate_denom 필드는 '0'으로 설정한다.
한편, 상기 scalability_type 필드 값이 Spatial(예, 0x1)을 지시하거나 또는 베이스 레이어(예, 0xF)을 지시하면 profile_idc 필드, constraint_set0_flag ~ constraint_set3_flag 필드, level_idc 필드 중 적어도 하나를 더 포함할 수 있다.
상기 profile_idc 필드는 일 실시예로 8비트를 할당할 수 있으며, 전송되는 스케일러블 비디오 스트림의 프로파일을 나타낸다. 일 예로, 상기 profile_idc 필드는 ISO/IEC 14496-10에서 정의한 profile_idc 필드를 그대로 적용할 수 있다. 도 29는 본 발명에 따른 profile_idc 필드에 할당될 수 있는 값들 및 그 정의의 실시예를 보이고 있다. 예를 들어, profile_idc 필드 값이 66이면 베이스라인(baseline) 프로파일을 의미한다.
상기 constraint_set0_flag ~ constraint_set3_flag 필드는 일 실시예로 각 각 1비트를 할당할 수 있으며, 대응하는 해당 프로파일의 제약 조건을 만족하고 있는지 여부를 나타낸다.
상기 level_idc 필드는 일 실시예로 8비트를 할당할 수 있으며, 전송되는 스케일러블 비디오 스트림의 레벨을 나타낸다. 일 예로, 상기 level_idc 필드는 ISO/IEC 14496-10에서 정의한 level_idc 필드를 그대로 적용할 수 있다. 도 30는 본 발명에 따른 level_idc 필드에 할당될 수 있는 값들 및 그 정의의 실시예를 보이고 있다. 예를 들어, level_idc 필드 값이 11이면 1.1 레벨을 의미한다.
또한, 상기 각 ES 루프는 stream_type 필드 값이 IPTV 서비스를 위한 오디오(IPTV Service Audio)를 지시하는 경우, additional_info_byte 필드를 더 포함할 수 있다. 상기 additional_info_byte 필드는 해당 ES의 언어 코드(language code)를 나타내는 ISO_639_language_code 필드를 포함할 수 있다.
상기 도 25에서 보이고 있는 scalable_service_location_descriptor()에 할당되는 필드의 순서, 위치, 의미는 본 발명의 이해를 돕기 위한 일 실시 예일뿐이며, 상기 scalable_service_location_descriptor()에 할당되는 필드의 순서, 위치, 의미, 추가 할당되는 필드의 수는 당업자에 의해 용이하게 변경될 수 있으므로 본 발명은 상기 실시예로 한정되지 않을 것이다.
도 31은 역다중화기(2301)에서 PSI/PSIP 정보 중 VCT를 이용하여 각 레이어의 스케일러블 비디오 데이터를 처리하는 방법의 일 실시예를 흐름도로 보이고 있다.
가상 채널이 선택되면(S3101), 선택된 가상 채널의 정보를 포함하는 VCT를 수신한다(S3102). 수신된 VCT를 파싱하여 Major/Minor Channel Number, channel_TSID, source_id, hidden, hide_guide, service_type 정보 등을 추출한다(S3103). 이어 상기 VCT 내 scalable_service_location_descriptor()를 파싱하여(S3104), 상기 scalable_service_location_descriptor()로부터 stream_type, elementary_PID 정보 등을 추출한다(S3105).
그리고 상기 stream_type 필드 값이 0xD2인지를 확인한다(S3106). 일 예로, 상기 stream_type 필드 값이 0xD2이면, 그 스트림은 IPTV 서비스용 스케일러블 비디오 데이터를 의미한다.
따라서, 상기 S3106에서 상기 stream_type 필드 값이 0xD2라고 판별되면, 해당 scalable_service_location_descriptor()로부터 scalability_type, layer_id, base_layer_id 필드, 프레임 레이트 정보(예, frame_rate_code, frame_rate_num, frame_rate_denom), 프로파일 정보(예, profile_idc, constraint_set0_flag ~ constraint_set3_flag, level_idc) 등을 추출한다(S3107).
그리고 상기 layer_id 필드 값이 0x0인지를 확인한다(S3108). 일 예로, 상기 layer_id 필드 값이 0x0이면 해당 비디오 스트림은 베이스 레이어의 비디오 스트림을 의미한다.
따라서, 상기 S3108에서 상기 layer_id 필드 값이 0x0라고 판별되면 상기 베이스 레이어의 스케일러블 비디오 데이터를 비디오 디코더(2302)로 출력한다(S3109). 그리고 상기 비디오 디코더(2302)가 인핸스먼트 레이어를 지원하는지를 확인한다(S8110). 만일 상기 S3110에서 인핸스먼트 레이어를 지원한다고 확인되면 S3105로 되돌아가고, 인핸스먼트 레이어를 지원하지 않는다고 판별되면 S8115로 진행한다. 상기 S3115에서는 비디오 복호기(2302)를 통해 베이스 레이어의 비디오 스트림에 대해서만 비디오 복호를 수행하여 유저에게 IPTV 서비스(IPTV service)를 제공한다.
한편, 상기 S3108에서 상기 layer_id 필드 값이 0x0이 아니라고 판별되면 해당 비디오 스트림이 인핸스먼트 레이어의 비디오 스트림을 의미하며, 이 경우 S3111로 진행한다. S3111에서는 비디오 디코더(2302)에서 해당 인핸스먼트 레이어의 스케일러블 비디오 데이터를 지원하는지를 확인한다. 만일 해당 인핸스먼트 레이어를 지원한다고 판별되면 해당 인핸스먼트 레이어의 스케일러블 비디오 데이터를 비디오 디코더(2302)로 출력하고 S3105로 되돌아간다(S3112). 예를 들어, 상기 S3111에서 수신 시스템이 제1 인핸스먼트 레이어를 지원한다고 판별되면, S3112에서 제1 인핸스먼트 레이어의 스케일러블 비디오 데이터는 비디오 디코더(2302)로 출력된다.
만일 S3111에서 해당 인핸스먼트 레이어를 지원하지 않는다고 판별되면 해당 인핸스먼트 레이어의 스케일러블 비디오 데이터를 비디오 디코더(2302)로 출력하지 않고 버린다(Discard packets with this PID). 이때, 해당 인핸스먼트 레이어보다 더 높은 인핸스먼트 레이어의 스케일러블 비디오 데이터도 비디오 디코더(2302)로 출력하지 않고 버린다(Discard upper enhanced layer packets). 예를 들어, 상기 S3111에서 수신 시스템이 제1 인핸스먼트 레이어를 지원하지 않는다고 판별되면 S3113에서는 제1, 제2 인핸스먼트 레이어의 스케일러블 비디오 데이터를 비디오 디 코더(2202)로 출력하지 않고 버린다.
한편, 상기 S3106에서 stream_type 필드 값이 0xD2가 아니면 즉, 해당 스트림이 IPTV 서비스용 스케일러블 비디오 데이터가 아니면 S3114로 진행한다. S3114에서는 입력되는 스트림을 해당 복호기로 출력한다. 이때, 다른 스트림이 남아 있으면 S3105로 되돌아가고, 없으면 S3115로 진행한다.
일 예로, 비디오 복호기(2302)가 제1 인핸스먼트 레이어까지 지원 가능하다면, 상기 S3115에서는 베이스 레이어와 제1 인핸스먼트 레이어의 스케일러블 비디오 데이터에 대해 비디오 복호를 수행하여 유저에게 IPTV 서비스를 제공한다.
도 32는 본 발명에 따른 PMT의 일실시 예를 도시한 것이다.
각 필드를 설명하면, 다음과 같다.
table_id 필드는 8비트 필드로서, 해당 테이블 섹션을 식별하기 위한 것이다. section_syntax_indicator 필드는 1비트로 1로 설정된다. section_length 필드는 12비트 필드로서, 첫 2 비트는 00으로 설정된다. 그것은 CRC 필드를 포함하여 section_length 필드에서 즉시 시작하여 CRC 필드까지 섹션의 바이트 수를 설명한다.
program_number 필드는 16 비트 필드로서, 적용가능한 program_map_PID를 가지는 프로그램 넘버를 설명한다. The program_number may be used as a designation for a broadcast channel, for example. By describing the different elementary streams belonging to a program, data from different sources (e.g. sequential events) can be concatenated together to form a continuous set of streams using a program_number.
version_number 필드는 5 비트 필드로서 섹션의 버전 넘버를 정의한다. 상기 버전 넘버는 섹션 내에서 발생하는 정보가 변경되면 1씩 증가한다. 다만, 31에 해당하면, 0으로 랩 어란운드한다.
current_next_indicator 필드는 1비트 필드로서, 전송된 해당 섹션이 현재 적용 가능한지 여부를 설명한다. 1이면 현재 적용 가능하나 0이면 다음 섹션에 유효하다.
section_number 8비트 필드로서 언제나 0x00 값을 가진다.
last_section_number 필드는 8비트 필드로써 언제나 0x00 값을 가진다.
PCR_PID 필드는 13 비트 필드로서 program_number 필드에 의해 설명되는 프로그램에 유효한 PCR 필ㄷ드들을 포함하는 트랜스포트 스트림 패킷들의 PID를 지시한다.
program_info_length 필드는 12 비트 필드로서 첫 두 비트는 '00'이다.
stream_type 필드는 8 비트 필드로서 elementary_PID에 의해서 설명되는 ㄱ값을 가지는 PID와 관련된 패킷 내에서 전송되는 페이로드 또는 ES의 타입을 ㅅ서설명한다(specfying the type of elementary stream or payload carried within the packets with the PID whose value is specified by the elementary_PID).
elementary_PID 필드는, 13 비트 필드로서 ES 또는 페이로드를 전송하는 TS 패킷들의 PID를 설명한다(a 13 bit field specifying the PID of the Transport Stream packets which carry the associated elementary stream or payload).
ES_info_length 필드는 12 비트 필드로서, 첫 번째 두 비트는 '00'이다. 그것은 바로 뒤따르는 ES_info_length field 필드로 관련된 ES의 디스크립터들의 바이트 수를 설명한다(a 12 bit field, the first two bits of which shall be '00'. It specifies the number of bytes of the descriptors of the associated elementary stream immediately following the ES_info_length field).
CRC_32 필드는 VCT 필드에서 상술한 내용과 동일한다.
도 33은 역다중화기(2201)에서 PSI/PSIP 정보 중 PMT(program map table)를 이용하여 각 레이어의 스케일러블 비디오 데이터를 처리하는 방법의 일 실시예를 블록도로 보이고 있다.
수신 시스템은 PMT를 수신하고, 수신된 PMT 내의 scalable_video_descriptor를 파싱하여 해당 비디오 스트림 패킷이 IPTV 서비스용 스케일러블 비디오(Scalable Video)인지 확인한다. 만일 IPTV 서비스용 스케일러블 비디오로 확인되면 해당 비디오 스트림 패킷이 베이스 레이어(Base Layer)의 스케일러블 비디오 데이터인지를 확인하여, 맞으면 해당 비디오 스트림 패킷을 비디오 복호기(3302)로 전달한다.
그런데 해당 비디오 스트림 패킷이 IPTV 서비스용 스케일러블 비디오(Scalable Video)로 확인되었으나, 인핸스먼트 레이어(Enhanced Layer)의 스케일러블 비디오 데이터라면 비디오 복호기(3302)의 디코딩 가능 여부에 따라 비디오 복호기(3302)로 출력하거나, 출력하지 않고 버린다.
예를 들어, 수신된 PMT 내 scalable_video_descriptor의 stream_type 필드 값이 IPTV 서비스용 스케일러블 비디오를 지시하고, layer_id 필드 값이 베이스 레이어를 지시하면, 해당 비디오 스트림 패킷은 무조건 비디오 디코더(3302)로 출력한다. 다른 예로, 수신된 PMT 내 scalable_video_descriptor의 stream_type 필드 값이 IPTV 서비스용 스케일러블 비디오를 지시하고, layer_id 필드 값이 제1 인핸스먼트 레이어를 지시하면, 해당 비디오 스트림 패킷은 비디오 디코더(8002)로 출력하거나 출력하지 않고 버린다.
즉, 본 발명의 PMT의 PID는 PAT(program association table)로부터 얻을 수 있다. 상기 PAT는 PID=0인 패킷에 의해 전송되는 특수 정보로서, 각 프로그램 번호마다 그 프로그램의 구성 요소를 기술하며, 프로그램 맵 테이블(PMT)을 전송하는 트랜스포트 패킷의 PID를 가리킨다. 즉, PID가 0인 PAT 테이블을 파싱하여 프로그램 번호(Program number)와 PMT의 PID를 알아낸다.
상기 PAT로부터 얻어낸 PMT는 프로그램을 구성하는 구성 요소들간의 상관 관계를 제공한다. 상기 PMT는 프로그램 식별 번호와 프로그램을 구성하는 비디오, 오디오 등의 개별 비트 스트림이 전송되고 있는 트랜스포트 패킷의 PID 리스트와 부속 정보를 기술하고 있다. 즉, 상기 PMT의 역할은 하나의 프로그램을 구성하는데 필요한 ES들이 어떤 PID를 가지고 전송되는가에 대한 정보를 전송하는 데 있다.
상기 PMT는 하나의 프로그램 번호(program_number)에 포함되는 ES의 수만큼 반복되는 'for' 루프의 반복문을 포함하는데, 상기 반복문도 설명의 편의를 위해 ES 루프(ES_loop)라 하기로 한다.
상기 각 ES 루프는 stream_type 필드, elementary_PID 필드, ES_info_length 필드, 및 해당 ES에 포함되는 디스크립터 수만큼 반복되는 'for' 루프로 된 디스크립터 루프 중 적어도 하나를 포함할 수 있다. 상기 디스크립터 루프에 포함되는 descriptor()는 각각의 ES에 개별적으로 적용되는 디스크립터이다.
상기 stream_type 필드는 해당 ES의 종류를 나타낸다. 도 27은 본 발명에 따른 stream_type 필드에 할당될 수 있는 값들 및 그 정의의 실시예를 도시하고 있다. 도 27에 도시된 바와 같이, stream type으로는 ITU-T Rec. H. 262 | ISO/IEC 13818-2 Video or ISO/IEC 11172-2 constrained parameter video stream, PES packets containing A/90 streaming, synchronized data, DSM-CC sections containing A/90 asynchronous data, DSM-CC addressable sections per A/90, DSM-CC sections containing non-streaming, synchronized data, Audio per ATSC A/53E Annex B, Sections conveying A/90 Data Service Table, Network Resource Table, PES packets containing A/90 streaming, synchronous data 등이 적용될 수 있다. 한편, 본 발명에 따르면, 스트림 타입(stream type)으로 Non-Scalable Video data for IPTV, Audio data for IPTV, Scalable Video data for IPTV 등이 더 적용될 수 있다.
상기 elementary_PID 필드는 해당 ES의 PID를 표시한다.
본 발명은 상기 스트림 타입(stream type) 필드 값이 IPTV 서비스를 위한 스케일러블 비디오(Scalable Video Data for IPTV, 즉 0xD2)를 지시하면, 상기 디스크립터 루프에 각 레이어의 스케일러블 비디오 데이터를 구분할 수 있는 정보를 전송하는 scalable_video_descriptor를 포함하는 것을 일 실시예로 한다. 즉, PMT의 두 번째 루프의 descriptor()영역에 scalable_video_descriptor가 포함된다.
도 34는 본 발명에 따른 scalable_video_descriptor의 비트 스트림 신택스 구조에 대한 일 실시예를 보이고 있다.
도 34의 scalable_video_descriptor()는 descriptor_tag 필드, descriptor_length 필드, scalability_type 필드, layer_id 필드, 및 base_layer_id 필드 중 적어도 하나를 포함할 수 있다.
또한, 상기 scalable_video_descriptor()는 scalability_type 필드 값이 시간 스케일러비티를 지시하거나 베이스 레이어를 지시하면, 프레임 레이트 정보 예를 들어, frame_rate_code 필드, frame_rate_num 필드, frame_rate_denom 필드 중 적어도 하나를 더 포함할 수 있다.
상기 scalable_video_descriptor()는 scalability_type 필드 값이 공간 스케일러비티를 지시하거나 베이스 레이어를 지시하면, 프로파일 정보 예를 들어, profile_idc 필드, constraint_set0_flag ~ constraint_set3_flag 필드, level_idc 필드 중 적어도 하나를 더 포함할 수 있다.
이와 같이 구성된 도 34에서 descriptor_tag 필드는 일 실시예로 8 비트를 할당할 수 있으며, 해당 디스크립터를 유일하게 구분(identify)할 수 있는 값을 표시한다.
상기 descriptor_length 필드는 일 실시예로 8 비트를 할당할 수 있으며, 해당 디스크립터의 길이를 표시한다.
상기 scalability_type 필드는 일 실시예로 4비트를 할당할 수 있으며, 해당 스케일러블 비디오(Scalable Video) 스트림의 스케일러빌러티(Scalability) 종류를 나타낸다. 도 27은 본 발명에 따른 scalability_type 필드에 할당될 수 있는 값들 및 그 정의의 실시예를 도시하고 있다. 도 27에서는 상기 scalability_type 필드 값이 0x1이면 공간 스케일러비티를, 0x2이면 SNR 스케일러비티를, 0x03이면 시간 스케일러비티를, 0xF이면 베이스 레이어를 나타내는 것을 일 실시예로 하고 있다.
상기 layer_id 필드는 일 실시예로 4비트를 할당할 수 있으며, 해당 스케일러블 비디오 스트림의 레이어 정보를 나타내며, scalablity_type 필드와 함께 병행해서 해석되는 것이 바람직하다. 해당 비디오 스트림이 베이스 레이어일 경우, 이 값을 0x0으로 할당하며, 인핸스먼트 레이어일수록 높은 값을 갖는다.
상기 base_layer_id 필드는 일 실시예로 4비트를 할당할 수 있으며, 해당 스케일러블 비디오 스트림이 인핸스먼트 레이어(Enhancement Layer) 스트림일 경우, 해당 스트림이 참조하는 하위 레이어의 layer_id 값을 나타낸다. 해당 스트림이 베이스 레이어일 경우, 이 base_layer_id 필드는 무시된다(deprecated). 예를 들어, 해당 스케일러블 비디오 스트림이 제1 인핸스먼트 레이어(Enhancement Layer-1) 스트림일 경우, 제1 인핸스먼트 레이어의 스케일러블 비디오 스트림이 참조하는 하위 레이어의 layer_id 값은 베이스 레이어의 layer_id 값이 된다(즉, base_layer_id = 0x00). 또 다른 예로, 해당 스케일러블 비디오 스트림이 제2 인핸스먼트 레이어(Enhancement Layer-2) 스트림일 경우, 해당 스트림이 참조하는 하위 레이어의 layer_id 값은 제1 인핸스먼트 레이어의 layer_id 값이다(즉, base_layer_id = 0x01).
한편, 상기 scalability_type 필드 값이 Temporal(예, 0x3)을 지시하거나 또는 베이스 레이어(예, 0xF)을 지시하면 frame_rate_code 필드, frame_rate_num 필드, frame_rate_denom 필드 중 적어도 하나를 더 포함할 수 있다.
상기 frame_rate_code는 일 실시예로 4비트를 할당할 수 있으며, 해당 스케일러블 비디오 스트림의 프레임 레이트(frame rate)를 계산하는데 사용된다. 일 예로, 상기 frame_rate_code 필드는 ISO/IEC 13818-2에서 정의한 frame_rate_code 필드 값을 표시할 수 있다.
여기에서, 도 34의 scalable_video_descriptor의 비트 스트림 신택스 구조에 도시되고, 상술한 25와 동일한 필드에 대한 구체적인 비트스트림 신택스는 상술한 도 26 내지 30 부분을 원용하고 이하에서는 중복되는 설명을 생략한다.
도 35는 역다중화기(2201)에서 PSI/PSIP 정보 중 PMT를 이용하여 각 레이어의 스케일러블 비디오 데이터를 처리하는 방법의 일 실시예를 흐름도로 보이고 있다.
가상 채널이 선택되면(S3501), 선택된 가상 채널의 정보를 포함하는 PMT를 수신한다(S3502). 수신된 PMT를 파싱하여 program_number 등을 추출한다(S3503). 이어 상기 PMT로부터 stream_type, elementary_PID 정보 등을 추출한다(S3504).
그리고 상기 stream_type 필드 값이 0xD2인지를 확인한다(S3505). 일 예로, 상기 stream_type 필드 값이 0xD2이면 그 스트림은 IPTV 서비스용 스케일러블 비디오 데이터를 의미한다. 이 경우 PMT의 두 번째 루프에 scalable_video_descriptor()가 포함되어 전송된다.
따라서 상기 S3505에서 상기 stream_type 필드 값이 0xD2라고 판별되면 상기 scalable_video_descriptor()를 파싱하여(S3506), 상기 scalable_video_descriptor()로부터 scalability_type, layer_id, base_layer_id 필드, 프레임 율 정보(예, frame_rate_code, frame_rate_num, frame_rate_denom), 프로파일 정보(예, profile_idc, constraint_set0_flag ~ constraint_set3_flag, level_idc) 등을 추출한다(S3507).
그리고 상기 layer_id 필드 값이 0x0인지를 확인한다(S3508). 일 예로, 상기 layer_id 필드 값이 0x0이면 해당 비디오 스트림은 베이스 레이어의 비디오 스트림을 의미한다.
따라서 상기 S8308에서 상기 layer_id 필드 값이 0x0라고 판별되면 상기 베이스 레이어의 스케일러블 비디오 데이터를 비디오 디코더(2202)로 출력한다(S3509). 그리고 상기 비디오 디코더(2202)가 인핸스먼트 레이어를 지원하는지를 확인한다(S8310). 만일 상기 S3510에서 인핸스먼트 레이어를 지원한다고 확인되면 S3505로 되돌아가고, 인핸스먼트 레이어를 지원하지 않는다고 판별되면 S8315로 진행한다. 상기 S3515에서는 비디오 복호기(2202)를 통해 베이스 레이어의 비디오 스트림에 대해서만 비디오 복호를 수행하여 유저에게 IPTV 서비스(IPTV service)를 제공한다.
한편, 상기 S3508에서 상기 layer_id 필드 값이 0x0이 아니라고 판별되면 해당 비디오 스트림이 인핸스먼트 레이어의 비디오 스트림을 의미하며, 이 경우 S3511로 진행한다. S3511에서는 비디오 디코더(2202)에서 해당 인핸스먼트 레이어 의 스케일러블 비디오 데이터를 지원하는지를 확인한다. 만일 해당 인핸스먼트 레이어를 지원한다고 판별되면 해당 인핸스먼트 레이어의 스케일러블 비디오 데이터를 비디오 디코더(2202)로 출력하고 S3504로 되돌아간다(S3512). 예를 들어, 상기 S3511에서 수신 시스템이 제1 인핸스먼트 레이어를 지원한다고 판별되면, S3512에서 제1 인핸스먼트 레이어의 스케일러블 비디오 데이터는 비디오 디코더(2202)로 출력된다.
만일 S3511에서 해당 인핸스먼트 레이어를 지원하지 않는다고 판별되면 해당 인핸스먼트 레이어의 스케일러블 비디오 데이터를 비디오 디코더(2202)로 출력하지 않고 버린다(Discard packets with this PID). 이때 해당 인핸스먼트 레이어보다 더 높은 인핸스먼트 레이어의 스케일러블 비디오 데이터도 비디오 디코더(2202)로 출력하지 않고 버린다(Discard upper enhanced layer packets). 예를 들어, 상기 S3511에서 수신 시스템이 제1 인핸스먼트 레이어를 지원하지 않는다고 판별되면 S3513에서는 제1, 제2 인핸스먼트 레이어의 스케일러블 비디오 데이터를 비디오 디코더(2202)로 출력하지 않고 버린다.
한편, 상기 S3505에서 stream_type 필드 값이 0xD2가 아니면 즉, 해당 스트림이 IPTV 서비스용 스케일러블 비디오 데이터가 아니면 S3514로 진행한다. S3514에서는 입력되는 스트림을 해당 복호기로 출력한다. 이때 다른 스트림이 남아 있으면 S3504로 되돌아가고, 없으면 S3515로 진행한다.
일 예로, 비디오 복호기(2202)가 제1 인핸스먼트 레이어까지 지원 가능하다면, 상기 S3515에서는 베이스 레이어와 제1 인핸스먼트 레이어의 스케일러블 비디 오 데이터에 대해 비디오 복호를 수행하여 유저에게 IPTV 서비스를 제공한다.
도 36은 본 발명의 또 다른 실시예에 따른 수신 시스템의 구성 블록도를 보이고 있다.
도 36은 본 발명에 따른 IPTV 수신기의 실시예의 구성을 도시한다.
도 36을 참조하면, 본 발명에 따른 IPTV 수신기는 네트워크를 통하여 서비스 공급자와 연결하여, IP 패킷을 송수신하는 네트워크 인터페이스부, 상기 네트워크 인터페이스부에서 수신한 방송 신호를 출력하는 디스플레이부, 상기 잔여 저장 공간 정보를 서비스 공급자로 전송하도록 제어하며, 상기 전송한 잔여 저장 공간 정보에 기인한 맞춤형 방송 신호를 디스플레이하거나 저장하도록 제어하는 제어부를 포함한다.
구체적인 방송 수신 장치의 구성을 살펴보면, 상기 수신기는 네트워크 인터페이스부(3602), IP 매니저(3604), RTP/RTCP 매니저(3605), 제어부(3606), 서비스 매니저(3608), 서비스 정보 디코더(3610), 서비스 정보 데이터베이스(3612), SD&S 매니저(3614), RTSP 매니저(3616), 역다중화부(3618), 오디오/비디오 디코더(3620), 디스플레이부(3622), 제1 저장부(3624), 시스템 매니저(3626), 저장 제어부(3628), 및 제2 저장부(3630)를 포함한다.
상기 네트워크 인터페이스부(3602)는 네트워크 망으로부터 수신되는 패킷(packet)들을 수신하고, 수신기로부터 네트워크 망으로 패킷을 전송한다. 즉, 네트워크를 통하여, 서비스 공급자로 본 발명에 따른 서비스 공급자로부터 본 발명에 따른 IPTV 신호를 수신하며, 상기 IP 매니저(3604)는 수신기에 수신되는 패킷과 수 신기에서 전송하는 패킷에 대하여 소스로부터 목적지까지의 패킷 전달에 관여한다. 그리고 수신된 패킷을 적절한 프로토콜에 대응되도록 분류하고 RTSP 매니저(3616), SD&S 매니저(3614)로 분류된 패킷을 출력한다.
상기 제어부(3606)는 어플리케이션을 제어하며, 사용자 인터페이스(미도시)를 제어하여 사용자의 입력 신호에 따라서 전체 수신기의 동작을 제어한다. 사용자를 위한 그래픽 사용자 인터페이스(Graphic User Interface: GUI)를 OSD(On Screen Display) 등을 이용하여 제공하며, 사용자로부터 입력 신호를 수신하여 상기 입력에 따른 수신기 동작을 수행한다. 예를 들어 사용자로부터 채널선택에 관한 키 입력을 받으면 상기 채널 선택 입력신호를 서비스 매니저(3608)에 전송한다. 또한 사용자로부터 가용 서비스 정보 리스트에 포함된 특정 서비스 선택에 관한 키 입력을 받으면 상기 서비스 선택 입력신호를 서비스 매니저(3608)에 전송한다.
상기 제어부(3606)는 상기 역다중화부(3618)를 제어하여 스케일러블 비디오 스트림을 처리할 수 있도록 제어한다. 또한, 상기 제어부(3606)는, 디스플레이부의 잔여 저장 공간 정보를 서비스 공급자로 전송하도록 제어하며, 상기 전송한 잔여 저장 공간 정보에 기인한 맞춤형 방송 신호를 디스플레이하도록 제어한다.
상기 서비스 매니저(3608)는 수신되는 채널 정보를 저장하여, 채널 맵을 생성한다. 또한, 상기 제어부(3606)로부터 수신한 키 입력에 따라 채널을 선택하거나 서비스를 선택하고, 상기 SD&S 매니저(3614)를 제어한다.
그리고 상기 서비스 매니저(3608)는 서비스정보 디코더(3610)로부터 채널의 서비스정보를 전송받아 역다중화부(3618)에 선택된 채널의 오디오/비디오 PID(Packet Identifier) 설정 등을 수행한다.
상기 서비스정보 디코더(3610)는 PSI(Program Specific Information)와 같은 서비스정보를 디코딩한다. 즉, 상기 역다중화부(3618)에서 역다중화된 PSI 테이블, PSIP(Program and Service Information Protocol) 테이블 또는 DVB-SI(Service Information) 테이블 등을 수신하여 디코딩한다.
상기 서비스 정보 디코더(3610)는 상기 수신된 서비스 정보 테이블들을 디코딩하여 서비스정보에 관한 데이터베이스를 만들고, 상기 서비스정보에 관한 데이터베이스는 서비스정보 데이터베이스(3612)에 저장한다.
상기 SD&S 매니저(3614)는 서비스를 제공하는 서비스 공급자를 선택하는데 필요한 정보 및 서비스를 수신하는데 필요한 정보를 제공한다. 즉 상기 SD&S 매니저(3614)는 서비스 디스커버리 레코드를 수신하고 이를 파싱하여 서비스 공급자를 선택하는데 필요한 정보 및 서비스를 수신하는데 필요한 정보를 추출한다. 상기 제어부(3606)로부터 채널선택에 관한 신호를 수신하면, SD&S 매니저(3614)는 상기 정보를 이용하여 서비스 공급자를 찾는다.
상기 RTSP 매니저(3616)는 서비스의 선택과 제어를 담당한다. 예를 들어 사용자가 기존의 방송방식과 같은 Live Broadcasting 서비스를 선택하는 경우 IGMP 또는 RTSP를 사용하고, VOD(Video On Demand)와 같은 서비스를 선택하는 경우에는 RTSP를 사용하여 서비스의 선택, 제어를 수행한다. 상기 RTSP(real-time streaming protocol)는 실시간 스트리밍에 대해 트릭 모드(trick mode)를 제공할 수 있다.
상기 네트워크 인터페이스부(3602)와 IP 매니저(3604)를 통해 수신된 서비스 에 관한 패킷은 RTP/RTCP 매니저(3605)로 전송된다.
상기 RTP/RTCP 매니저(3605)는 수신되는 서비스 데이터의 제어를 담당한다.
예를 들어 실시간 스트리밍(real-time streaming) 데이터를 제어하는 경우 RTP(Real-Time Transport Protocol/RTCP(RTP Control Protocol)를 사용한다. 상기 실시간 스트리밍 데이터가 RTP를 사용하여 전송되는 경우, 상기 RTP/RTCP 매니저(3605)는 상기 수신된 데이터 패킷을 RTP에 따라 파싱하여 역다중화부(3618)에 전송한다. 그리고 RTCP를 이용하여 상기 네트워크 수신 정보를 서비스를 제공하는 서버측에 피드백(feedback)한다. 이때, 상기 실시간 스트리밍 데이터는 RTP 없이 UDP로 캡슐화되어 직접 전달되기도 한다.
상기 역다중화부(3618)는 수신된 패킷을 오디오, 비디오, PSI(Program Specific Information) 데이터 등으로 역다중화하여 각각 비디오/오디오 디코더(3620), 서비스정보 디코더(3610)에 전송한다. 또한 상기 역다중화부(3618)는 제어부(3608)의 제어에 따라 역다중화된 데이터가 녹화되도록 저장 제어부(3628)에 전송한다.
상기 비디오/오디오 디코더(3620)는 상기 역다중화부(3618)에서 수신된 비디오 데이터와 오디오 데이터를 디코딩한다. 상기 비디오/오디오 디코더(3620)에서 디코딩된 비디오/오디오 데이터는 디스플레이부(3622)를 통하여 사용자에게 제공된다.
상기 제1 저장부(3624)는 시스템에 대한 셋업 데이터 등을 저장한다. 상기 제 1 저장부(3624)로 비휘발성 메모리(NonVolatile RAM: NVRAM) 또는 플래쉬 메모 리 등을 사용할 수 있다.
시스템 매니저(3626)는 상기 수신기 시스템의 전체적인 동작을 전원을 통해 제어한다.
상기 저장 제어부(3628)는 상기 역다중화부(3618)로부터 출력된 데이터의 녹화를 제어한다. 즉, 상기 저장 제어부(3628)는 상기 역다중화부(3618)로부터 출력된 데이터를 제 2 저장부(3630)에 저장한다. 또한 상기 저장 제어부(3628)는 상기 제 2 저장부(3630)의 저장 공간을 관리하며, 잔여 저장 공간 정보를 산출하여 제어부(3606)에 제공할 수 있다.
제 2 저장부(3630)는 저장 제어부(3628)의 제어에 따라 수신한 콘텐츠를 저장한다. 즉 제 2 저장부(3630)는 상기 디멀티플렉서(3618)로부터 출력된 데이터를 상기 저장 제어부(3628)의 제어에 따라 저장한다. 여기서 상기 제 2 저장부(3630)는 HDD 등의 비휘발성 메모리로 구성될 수 있다. 또한 상기 제 2 저장부(3630)에는 상기 제 2 저장부(3630)의 잔여 저장 공간 용량에 따라 각 영역별로 서로 다른 bit-rate를 갖는 콘텐츠가 녹화될 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술분야에서 통상의 지식을 가지는 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다.
따라서, 본 발명에 개시된 실시예들은 본 발명의 기술사상을 한정하기 위한 것이 아니라 설명하기 위한 것에 불과하고, 이러한 실시예에 의하여 본 발명의 기술사상의 범위가 한정되는 것은 아니다. 본 발명의 보호범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
도 1은 IPTV 서비스의 개념을 도시한 시스템 구성도이다.
도 2는 멀티캐스트 방식에 대해 개략적으로 도시한 도면이다.
도 3은 유니캐스트 방식에 대해 개략적으로 도시한 도면이다.
도 4는 비디오 데이터 또는 헤더 정보를 전송하기 위한 NAL 단위의 구조를 나타낸다.
도 5는 스케일러블 비디오 코딩 방식이 적용되는 스케일러블 코딩 시스템을 개략적으로 도시한 것이다.
도 6과 7은 본 발명이 적용되는 실시예로서, 시간적 스케일러블 비디오 코딩을 설명하기 위해 나타낸 것이다.
도 8은 본 발명이 적용되는 실시예로서, 시간적 스케일러블 비디오 스트림을 디코딩할 수 있는 장치의 구성도를 나타낸다.
도 9는 본 발명에 의한 비디오 디코더의 개략적인 블록도를 나타낸다.
도 10은 본 발명이 적용되는 실시예로서, 공간적 스케일러블 비디오 코딩을 설명하기 위해 나타낸 것이다.
도 11은 인터 레이어 인트라 예측을 설명하기 위해 나타낸 것이다.
도 12는 인터 레이어 레지듀얼 예측을 설명하기 위해 나타낸 것이다.
도 13은 인터 레이어 움직임 예측을 설명하기 위해 나타낸 것이다.
도 14는 인터-레이어 예측을 위한 구문 요소의 디코딩 흐름도를 나타낸다.
도 15는 본 발명이 적용되는 실시예로서, SNR 스케일러블 비디오 코딩을 설 명하기 위해 나타낸 것이다.
도 16은 레지듀얼 미세조정(residual refinement)를 이용한 SNR 스케일러빌러티 코딩의 일실시예를 나타낸다.
도 17은 스케일러블 비디오 디코더의 전체적인 흐름도를 나타낸다.
도 18은 SNR 스케일러블 비트 스트림에 대한 디코딩 과정을 설명하기 위한 흐름도를 나타낸다.
도 19는 공간적 스케일러블 비트 스트림에 대한 디코딩 과정을 설명하기 위한 흐름도를 나타낸다.
도 20은 인핸스드 레이어 데이터에 대한 디코딩 과정을 설명하기 위한 흐름도를 나타낸다.
도 21는 본 발명에 따른 스케일러블 비디오의 각 레이어 데이터를 전송하는 방법의 일 실시예를 보이고 있다.
도 22는 수신 시스템에서 각 레이어별로 서로 다른 PID가 할당되어 전송되는 스케일러블 비디오 데이터를 수신하여 처리하는 일 실시예를 보이고 있다.
도 23은 본 발명에 따른 VCT의 일실시예를 도시하고 있다.
도 24는 역다중화기(2201)에서 PSI/PSIP 정보 중 VCT를 이용하여 각 레이어의 스케일러블 비디오 데이터를 처리하는 방법의 일 실시예를 블록도로 보이고 있다.
도 25는 본 발명에 따른 scalable_service_location_descriptor의 비트 스트림 신택스 구조에 대한 일 실시예를 보이고 있다.
도 26은 본 발명에 따른 stream_type 필드에 할당될 수 있는 값들 및 그 정의의 실시예를 도시하고 있다.
도 27은 본 발명에 따른 scalability_type 필드에 할당될 수 있는 값들 및 그 정의의 실시예를 도시하고 있다.
도 28은 본 발명에 따른 frame_rate_code 필드에 할당될 수 있는 값들 및 그 정의의 실시예를 보이고 있다.
도 29는 본 발명에 따른 profile_idc 필드에 할당될 수 있는 값들 및 그 정의의 실시예를 보이고 있다.
도 30는 본 발명에 따른 level_idc 필드에 할당될 수 있는 값들 및 그 정의의 실시예를 보이고 있다.
도 31은 역다중화기에서 PSI/PSIP 정보 중 VCT를 이용하여 각 레이어의 스케일러블 비디오 데이터를 처리하는 방법의 일 실시예를 흐름도로 보이고 있다.
도 32는 본 발명에 따른 PMT의 비트스트림 신택스의 일 예를 도시한 것이다.
도 33은 역다중화기에서 PSI/PSIP 정보 중 PMT(program map table)를 이용하여 각 레이어의 스케일러블 비디오 데이터를 처리하는 방법의 일 실시예를 블록도로 보이고 있다.
도 34는 본 발명에 따른 scalable_video_descriptor의 비트 스트림 신택스 구조에 대한 일 실시예를 보이고 있다.
도 35는 역다중화기에서 PSI/PSIP 정보 중 PMT를 이용하여 각 레이어의 스케일러블 비디오 데이터를 처리하는 방법의 일 실시예를 흐름도로 보이고 있다.
도 36은 본 발명의 일 실시예에 따른 수신 시스템의 구성 블록도를 보이고 있다.

Claims (10)

  1. 베이스 레이어와 적어도 하나의 인핸스먼트 레이어로 구성되며, 각 레이어마다 서로 다른 식별자를 갖는 IPTV 서비스를 위한 스케일러블 비디오 스트림과 상기 스케일러블 비디오 스트림을 위한 프로그램 테이블 정보를 포함하는 방송 신호를 수신하는 신호 수신부;
    상기 수신된 방송 신호로부터 각 레이어의 스케일러블 비디오 스트림과 프로그램 테이블 정보를 복조하는 복조부;
    상기 복조된 프로그램 테이블 정보를 참조하여 베이스 레이어의 비디오 스트림을 구분하여 출력하고, 기 설정된 조건에 따라 적어도 하나의 인핸스먼트 레이어의 비디오 스트림을 구분하여 출력하는 역다중화기; 및
    상기 역다중화기에서 구분되어 출력되는 적어도 하나의 레이어의 비디오 스트림을 비디오 복호하는 복호기를 포함하는 것을 특징으로 하는 수신 시스템.
  2. 제 1 항에 있어서, 상기 역다중화기는
    상기 복조된 프로그램 테이블 정보 중 가상 채널 테이블(VCT)에 포함된 정보를 참조하여 입력되는 비디오 스트림이 IPTV 서비스를 위한 스케일러블 비디오 스트림인지를 확인하고, 확인된 각 비디오 스트림의 식별자를 참조하여 베이스 레이어의 비디오 스트림을 구분한 후 비디오 복호를 위해 출력하는 것을 특징으로 하는 수신 시스템.
  3. 제 2 항에 있어서, 상기 역다중화기는
    비디오 복호의 가능 여부에 따라 적어도 하나의 인핸스먼트 레이어의 비디오 스트림을 구분한 후 비디오 복호를 위해 출력하는 것을 특징으로 하는 수신 시스템.
  4. 제 2 항에 있어서, 상기 VCT는
    입력된 비디오 스트림이 IPTV 서비스용 스케일러블 비디오 스트림인지를 식별할 수 있는 정보와 상기 식별된 해당 비디오 스트림의 레이어 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 수신 시스템.
  5. 제 1 항에 있어서, 상기 역다중화기는
    상기 프로그램 테이블 정보 중 프로그램 맵 테이블(PMT)에 포함된 정보를 참조하여 입력되는 비디오 스트림이 IPTV 서비스를 위한 스케일러블 비디오 스트림인지를 확인하고, 확인된 각 비디오 스트림의 식별자를 참조하여 베이스 레이어의 비디오 스트림을 구분한 후 비디오 복호를 위해 출력하는 것을 특징으로 하는 수신 시스템.
  6. 제 5 항에 있어서, 상기 역다중화기는
    비디오 복호의 가능 여부에 따라 적어도 하나의 인핸스먼트 레이어의 비디오 스트림을 구분한 후 비디오 복호를 위해 출력하는 것을 특징으로 하는 수신 시스템.
  7. 제 5 항에 있어서, 상기 PMT는
    입력된 비디오 스트림이 IPTV 서비스를 위한 스케일러블 비디오 스트림인지를 식별할 수 있는 정보와 상기 식별된 해당 비디오 스트림의 레이어 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 수신 시스템.
  8. 베이스 레이어와 적어도 하나의 인핸스먼트 레이어로 구성되며, 각 레이어마다 서로 다른 식별자를 갖는 IPTV 서비스를 위한 스케일러블 비디오 스트림과 상기 스케일러블 비디오 스트림을 위한 프로그램 테이블 정보를 포함하는 방송 신호를 수신하는 단계;
    상기 수신된 방송 신호로부터 각 레이어의 스케일러블 비디오 스트림과 프로그램 테이블 정보를 복조하는 단계;
    상기 복조된 프로그램 테이블 정보를 참조하여 베이스 레이어의 비디오 스트림을 구분하여 출력하고, 기 설정된 조건에 따라 적어도 하나의 인핸스먼트 레이어의 비디오 스트림을 구분하여 출력하는 단계; 및
    상기 구분되어 출력되는 적어도 하나의 레이어의 비디오 스트림을 비디오 복호하는 단계를 포함하는 것을 특징으로 하는 수신 시스템의 데이터 처리 방법.
  9. 제 8 항에 있어서, 상기 역다중화 단계는
    상기 프로그램 테이블 정보 중 가상 채널 테이블(VCT)에 포함된 정보를 참조하여 입력되는 비디오 스트림이 IPTV 서비스를 위한 스케일러블 비디오 스트림인지를 확인하고, 확인된 각 비디오 스트림의 식별자를 참조하여 각 레이어의 비디오 스트림을 구분한 후 비디오 복호를 위해 출력하는 것을 특징으로 하는 수신 시스템의 데이터 처리 방법.
  10. 제 8 항에 있어서, 상기 역다중화 단계는
    상기 프로그램 테이블 정보 중 프로그램 맵 테이블(PMT)에 포함된 정보를 참조하여 입력되는 비디오 스트림이 IPTV 서비스를 위한 스케일러블 비디오 스트림인지를 확인하고, 확인된 각 비디오 스트림의 식별자를 참조하여 각 레이어의 비디오 스트림을 구분한 후 비디오 복호를 위해 출력하는 것을 특징으로 하는 수신 시스템의 데이터 처리 방법.
KR1020090003936A 2008-01-17 2009-01-16 Iptv 수신 시스템 및 그 데이터 처리 방법 KR20090079838A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US2188008P 2008-01-17 2008-01-17
US61/021,880 2008-01-17

Publications (1)

Publication Number Publication Date
KR20090079838A true KR20090079838A (ko) 2009-07-22

Family

ID=40877511

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090003936A KR20090079838A (ko) 2008-01-17 2009-01-16 Iptv 수신 시스템 및 그 데이터 처리 방법

Country Status (3)

Country Link
US (1) US20090187960A1 (ko)
KR (1) KR20090079838A (ko)
CA (1) CA2650151C (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011062385A3 (ko) * 2009-11-17 2011-09-29 엘지전자 주식회사 방송 신호 송수신 방법 및 그를 이용한 방송 수신 장치
WO2011062386A3 (ko) * 2009-11-18 2011-11-03 엘지전자 주식회사 방송 신호 송수신 방법 및 그를 이용한 방송 수신 장치
WO2013077670A1 (ko) * 2011-11-23 2013-05-30 한국전자통신연구원 스케일러빌리티 및 뷰 정보를 제공하는 스트리밍 서비스를 위한 방법 및 장치
KR101281845B1 (ko) * 2009-12-02 2013-07-03 한국전자통신연구원 스케일러블 비디오 전송 단말 장치에 대한 비주얼 프로그램 가이드 장치 및 방법
WO2013187698A1 (ko) * 2012-06-12 2013-12-19 엘지전자 주식회사 영상 디코딩 방법 및 이를 이용하는 장치
WO2015009020A1 (ko) * 2013-07-15 2015-01-22 주식회사 케이티 스케일러블 비디오 신호 인코딩/디코딩 방법 및 장치
KR20190127850A (ko) * 2017-03-20 2019-11-13 프라운호퍼-게젤샤프트 츄어 푀르더룽 데어 안게반텐 포르슝에.파우. 고급 비디오 데이터 스트림 추출 및 다중 해상도 비디오 송신

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5008664B2 (ja) * 2005-07-11 2012-08-22 トムソン ライセンシング マクロブロック適応型レイヤ間テクスチャ内予測の方法及び装置
KR101580516B1 (ko) * 2008-04-07 2015-12-28 엘지전자 주식회사 방송 신호 수신 방법 및 방송 신호 수신 장치
EP2139179A1 (en) * 2008-06-26 2009-12-30 THOMSON Licensing Method and apparatus for reporting state information
JP5236738B2 (ja) * 2008-10-06 2013-07-17 シャープ株式会社 デジタル放送受信装置及びデジタル放送受信方法
RU2011118468A (ru) * 2008-10-07 2012-11-20 Шарп Кабусики Кайся (Jp) Приемник цифрового широковещания и способ приема
US8391356B1 (en) * 2009-02-18 2013-03-05 Sprint Communications Company L.P. Scalable video coding priority marking
US20100251313A1 (en) * 2009-03-31 2010-09-30 Comcast Cable Communications, Llc Bi-directional transfer of media content assets in a content delivery network
US8341672B2 (en) 2009-04-24 2012-12-25 Delta Vidyo, Inc Systems, methods and computer readable media for instant multi-channel video content browsing in digital video distribution systems
JP5627860B2 (ja) * 2009-04-27 2014-11-19 三菱電機株式会社 立体映像配信システム、立体映像配信方法、立体映像配信装置、立体映像視聴システム、立体映像視聴方法、立体映像視聴装置
WO2011034283A1 (en) 2009-09-20 2011-03-24 Lg Electronics Inc. Method of processing epg metadata in network device and the network device for controlling the same
US8462797B2 (en) * 2009-11-30 2013-06-11 Alcatel Lucent Method of priority based transmission of wireless video
CA2783500C (en) * 2009-12-07 2015-05-05 Lg Electronics Inc. Method of processing epg metadata in network device and the network device for controlling the same
CA2784517A1 (en) 2009-12-17 2011-06-23 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for video coding
JP5594002B2 (ja) * 2010-04-06 2014-09-24 ソニー株式会社 画像データ送信装置、画像データ送信方法および画像データ受信装置
WO2012026746A2 (en) * 2010-08-23 2012-03-01 Lg Electronics Inc. Method for providing 3d video data in a 3dtv
US20120075436A1 (en) * 2010-09-24 2012-03-29 Qualcomm Incorporated Coding stereo video data
JP2012095053A (ja) * 2010-10-26 2012-05-17 Toshiba Corp ストリーム伝送システム、送信装置、受信装置、ストリーム伝送方法及びプログラム
EP2474893B1 (en) * 2011-01-07 2014-10-22 LG Electronics Inc. Method of controlling image display device using display screen, and image display device thereof
US8984144B2 (en) 2011-03-02 2015-03-17 Comcast Cable Communications, Llc Delivery of content
EP3958569A1 (en) 2011-06-15 2022-02-23 Electronics And Telecommunications Research Institute Method for coding and decoding scalable video and apparatus using same
WO2013009237A1 (en) * 2011-07-13 2013-01-17 Telefonaktiebolaget L M Ericsson (Publ) Encoder, decoder and methods thereof for reference picture management
US10237565B2 (en) 2011-08-01 2019-03-19 Qualcomm Incorporated Coding parameter sets for various dimensions in video coding
US9451252B2 (en) * 2012-01-14 2016-09-20 Qualcomm Incorporated Coding parameter sets and NAL unit headers for video coding
WO2013108954A1 (ko) * 2012-01-20 2013-07-25 전자부품연구원 하이브리드 전송환경에서 스케일러블 초고해상도 비디오 서비스를 위한 프로그램 구성 정보 송수신 방법, 효율적인 스케일러 계층 정보 전송을 위한 방법 및 스케일러 계층 정보 전송을 위한 장치
US9172737B2 (en) * 2012-07-30 2015-10-27 New York University Streamloading content, such as video content for example, by both downloading enhancement layers of the content and streaming a base layer of the content
KR20150063135A (ko) * 2012-09-28 2015-06-08 노키아 테크놀로지스 오와이 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
KR20140122202A (ko) * 2013-04-05 2014-10-17 삼성전자주식회사 계층 식별자 확장에 따른 비디오 스트림 부호화 방법 및 그 장치, 계층 식별자 확장에 따른 따른 비디오 스트림 복호화 방법 및 그 장치
JP6571314B2 (ja) * 2013-06-18 2019-09-04 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 送信方法
CN104604234B (zh) * 2013-07-12 2019-07-16 索尼公司 图像编码设备和方法
JP5836424B2 (ja) 2014-04-14 2015-12-24 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
US10397642B2 (en) * 2014-08-07 2019-08-27 Sony Corporation Transmission device, transmission method, and reception device
GB2598255B (en) * 2016-02-17 2022-07-27 V Nova Int Ltd Physical adapter, signal processing equipment, methods and computer programs
WO2017164595A1 (ko) * 2016-03-21 2017-09-28 엘지전자(주) 방송 신호 송수신 장치 및 방법
US10506230B2 (en) * 2017-01-04 2019-12-10 Qualcomm Incorporated Modified adaptive loop filter temporal prediction for temporal scalability support
FR3070566B1 (fr) * 2017-08-30 2020-09-04 Sagemcom Broadband Sas Procede de recuperation d'un fichier cible d'un logiciel d'exploitation et dispositif d'utilisation
US11606528B2 (en) * 2018-01-03 2023-03-14 Saturn Licensing Llc Advanced television systems committee (ATSC) 3.0 latency-free display of content attribute
US10726275B2 (en) * 2018-03-07 2020-07-28 Visteon Global Technologies, Inc. System and method for correlating vehicular sensor data
US10970882B2 (en) 2019-07-24 2021-04-06 At&T Intellectual Property I, L.P. Method for scalable volumetric video coding
US10979692B2 (en) * 2019-08-14 2021-04-13 At&T Intellectual Property I, L.P. System and method for streaming visible portions of volumetric video
GB2598701B (en) * 2020-05-25 2023-01-25 V Nova Int Ltd Wireless data communication system and method
CN113709510A (zh) * 2021-08-06 2021-11-26 联想(北京)有限公司 高速率数据实时传输方法及装置、设备、存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0766471A1 (en) * 1994-12-27 1997-04-02 Kabushiki Kaisha Toshiba Transmitter, receiver, communication processing system integrating them, and digital television broadcasting system
EP1249131B1 (en) * 1999-12-22 2004-03-17 General Instrument Corporation Video compression for multicast environments using spatial scalability and simulcast coding
US20070230564A1 (en) * 2006-03-29 2007-10-04 Qualcomm Incorporated Video processing with scalability
KR100842262B1 (ko) * 2006-11-16 2008-06-30 한국전자통신연구원 Iptv 서비스 또는 디지털 방송 환경에서의 방송 채널전환 가속 시스템 및 그 방법

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9948990B2 (en) 2009-11-17 2018-04-17 Lg Electronics Inc. Method for transmitting and receiving the broadcast signals, and broadcast reception device using said method
US9264759B2 (en) 2009-11-17 2016-02-16 Lg Electronics Inc. Method for transmitting and receiving broadcast signals, and broadcast reception device using said method
WO2011062385A3 (ko) * 2009-11-17 2011-09-29 엘지전자 주식회사 방송 신호 송수신 방법 및 그를 이용한 방송 수신 장치
US9015773B2 (en) 2009-11-18 2015-04-21 Lg Electronics Inc. Method for transmitting and receiving a broadcast signal and a broadcast receiver using the method
WO2011062386A3 (ko) * 2009-11-18 2011-11-03 엘지전자 주식회사 방송 신호 송수신 방법 및 그를 이용한 방송 수신 장치
US9554171B2 (en) 2009-11-18 2017-01-24 Lg Electronics Inc. Method for transmitting and receiving a broadcast signal and a broadcast receiver using the method
KR101281845B1 (ko) * 2009-12-02 2013-07-03 한국전자통신연구원 스케일러블 비디오 전송 단말 장치에 대한 비주얼 프로그램 가이드 장치 및 방법
WO2013077670A1 (ko) * 2011-11-23 2013-05-30 한국전자통신연구원 스케일러빌리티 및 뷰 정보를 제공하는 스트리밍 서비스를 위한 방법 및 장치
WO2013187698A1 (ko) * 2012-06-12 2013-12-19 엘지전자 주식회사 영상 디코딩 방법 및 이를 이용하는 장치
US10863187B2 (en) 2012-06-12 2020-12-08 Lg Electronics Inc. Image decoding method and apparatus using same
US9794582B2 (en) 2012-06-12 2017-10-17 Lg Electronics Inc. Image decoding method and apparatus using same
US10448039B2 (en) 2012-06-12 2019-10-15 Lg Electronics Inc. Image decoding method and apparatus using same
US10469861B2 (en) 2012-06-12 2019-11-05 Lg Electronics Inc. Image decoding method and apparatus using same
US11546622B2 (en) 2012-06-12 2023-01-03 Lg Electronics Inc. Image decoding method and apparatus using same
WO2015009020A1 (ko) * 2013-07-15 2015-01-22 주식회사 케이티 스케일러블 비디오 신호 인코딩/디코딩 방법 및 장치
KR20210131451A (ko) * 2017-03-20 2021-11-02 프라운호퍼-게젤샤프트 츄어 푀르더룽 데어 안게반텐 포르슝에.파우. 고급 비디오 데이터 스트림 추출 및 다중 해상도 비디오 송신
KR20220095246A (ko) * 2017-03-20 2022-07-06 프라운호퍼-게젤샤프트 츄어 푀르더룽 데어 안게반텐 포르슝에.파우. 고급 비디오 데이터 스트림 추출 및 다중 해상도 비디오 송신
US11386660B2 (en) 2017-03-20 2022-07-12 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Advanced video data stream extraction and multi-resolution video transmission
KR20190127850A (ko) * 2017-03-20 2019-11-13 프라운호퍼-게젤샤프트 츄어 푀르더룽 데어 안게반텐 포르슝에.파우. 고급 비디오 데이터 스트림 추출 및 다중 해상도 비디오 송신
US11721103B2 (en) 2017-03-20 2023-08-08 Ge Video Compression, Llc Advanced video data stream extraction and multi-resolution video transmission

Also Published As

Publication number Publication date
CA2650151C (en) 2013-04-02
CA2650151A1 (en) 2009-07-17
US20090187960A1 (en) 2009-07-23

Similar Documents

Publication Publication Date Title
CA2650151C (en) An iptv receiving system and data processing method
EP3205105B1 (en) Operation point for carriage of layered hevc bitstreams
CN106063287B (zh) 用于解码视频数据的方法、装置和计算机可读存储媒体
AU2010259914B2 (en) Multiview video coding over MPEG-2 systems
AU2010279256B2 (en) Signaling characteristics of an MVC operation point
US10205954B2 (en) Carriage of video coding standard extension bitstream data using MPEG-2 systems
Schierl et al. Using H. 264/AVC-based scalable video coding (SVC) for real time streaming in wireless IP networks
Kim et al. A study on feasibility of dual‐channel 3DTV service via ATSC‐M/H
EP2942964B1 (en) Image encoding/decoding method and device and non-transitory computer-readable recording medium
WO2008066257A1 (en) Apparatus and method for hierarchical modulation transmission and reception of scalable video bitstream
KR101396948B1 (ko) 하이브리드 다시점 및 계층화 비디오 코딩 방법과 장치
Choi et al. Dynamic and interoperable adaptation of SVC for QoS-enabled streaming
Buchowicz Video coding and transmission standards for 3D television—a survey
Vaz et al. Video Scalability Advantages for the next Brazilian Terrestrial Digital Television Generation (TV 3.0)
CA3215231A1 (en) Message referencing
Murugan Multiplexing H. 264 video with AAC audio bit streams, demultiplexing and achieving lip synchronization during playback
от Cisco End-to-End IPTV Service Architecture Cisco ExPo, София Май 2007

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid