KR100586883B1 - 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법 - Google Patents

비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법 Download PDF

Info

Publication number
KR100586883B1
KR100586883B1 KR1020040027862A KR20040027862A KR100586883B1 KR 100586883 B1 KR100586883 B1 KR 100586883B1 KR 1020040027862 A KR1020040027862 A KR 1020040027862A KR 20040027862 A KR20040027862 A KR 20040027862A KR 100586883 B1 KR100586883 B1 KR 100586883B1
Authority
KR
South Korea
Prior art keywords
bitstream
video
frame
resolution
video sequence
Prior art date
Application number
KR1020040027862A
Other languages
English (en)
Other versions
KR20050089720A (ko
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 KR20050089720A publication Critical patent/KR20050089720A/ko
Application granted granted Critical
Publication of KR100586883B1 publication Critical patent/KR100586883B1/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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01CCONSTRUCTION OF, OR SURFACES FOR, ROADS, SPORTS GROUNDS, OR THE LIKE; MACHINES OR AUXILIARY TOOLS FOR CONSTRUCTION OR REPAIR
    • E01C15/00Pavings specially adapted for footpaths, sidewalks or cycle tracks
    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01CCONSTRUCTION OF, OR SURFACES FOR, ROADS, SPORTS GROUNDS, OR THE LIKE; MACHINES OR AUXILIARY TOOLS FOR CONSTRUCTION OR REPAIR
    • E01C11/00Details of pavings
    • E01C11/22Gutters; Kerbs ; Surface drainage of streets, roads or like traffic areas
    • E01C11/221Kerbs or like edging members, e.g. flush kerbs, shoulder retaining means ; Joint members, connecting or load-transfer means specially for kerbs
    • E01C11/223Kerb-and-gutter structures; Kerbs with drainage openings channel or conduits, e.g. with out- or inlets, with integral gutter or with channel formed into the kerb ; Kerbs adapted to house cables or pipes, or to form conduits
    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01CCONSTRUCTION OF, OR SURFACES FOR, ROADS, SPORTS GROUNDS, OR THE LIKE; MACHINES OR AUXILIARY TOOLS FOR CONSTRUCTION OR REPAIR
    • E01C11/00Details of pavings
    • E01C11/22Gutters; Kerbs ; Surface drainage of streets, roads or like traffic areas
    • E01C11/224Surface drainage of streets
    • E01C11/225Paving specially adapted for through-the-surfacing drainage, e.g. perforated, porous; Preformed paving elements comprising, or adapted to form, passageways for carrying off drainage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • 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/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • 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/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/23439Processing 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 for generating different versions
    • 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/2365Multiplexing of several video streams
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/4347Demultiplexing of several video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440227Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by 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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8451Structuring of content, e.g. decomposing content into time segments using Advanced Video Coding [AVC]
    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01CCONSTRUCTION OF, OR SURFACES FOR, ROADS, SPORTS GROUNDS, OR THE LIKE; MACHINES OR AUXILIARY TOOLS FOR CONSTRUCTION OR REPAIR
    • E01C2201/00Paving elements
    • E01C2201/20Drainage details

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Architecture (AREA)
  • Structural Engineering (AREA)
  • Civil Engineering (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

비디오 스트리밍 서비스를 위한 비디오 코딩방법과 프리디코딩방법과 비디오 디코딩방법, 이를 위한 장치를 제공한다.
비디오 코딩방법은 제1 비디오 시퀀스 및 상기 제1 비디오 시퀀스와 해상도, 프레임 레이트 및 화질 중 적어도 하나가 다른 제2 비디오 시퀀스를 각각 스케일러블 비디오 코딩하여 제1 비트스트림 및 제2 비트스트림을 생성하는 단계, 및 상기 제1 및 제2 비트스트림을 포함하는 수퍼 비트스트림을 생성하는 단계를 포함한다.
비디오 코딩, 스케일러블, simulcasting, 수퍼 비트스트림

Description

비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법{Method and apparatus for video coding, pre-decoding, video decoding for vidoe streaming service, and method for image filtering}
도 1은 종전의 비디오 스트리밍 서비스의 개념을 보여주는 도면이다.
도 2는 종전의 스케일러블 비디오 스트리밍 서비스의 개념을 보여주는 도면이다.
도 3은 본 발명의 일 실시예에 따른 비디오 스트리밍 서비스의 개념을 보여주는 도면이다.
도 4는 스케일러블 비디오 인코더와 AVC 비디오 인코더의 구성을 간략히 보여주는 도면이다.
도 5는 각 방식에 따른 스트리밍 서비스를 비교하는 도면이다.
도 6은 본 발명의 일 실시예에 따른 인트라 프레임 공유를 설명하기 위한 도면이다.
도 7은 본 발명의 다른 실시예에 따른 인트라 프레임 공유를 설명하기 위한 도면이다.
도 8은 본 발명의 또 다른 실시예에 따른 부드러운 참조 프레임을 생성하는 방법을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 비디오 스트리밍 서비스 과정을 보여주는 도면이다.
도 10은 본 발명의 일 실시예에 따른 수퍼 비트스트림의 구조를 보여주는 도면이다.
본 발명은 비디오 스트리밍 서비스를 위한 비디오 인코딩 방법과, 비트스트림 구조와, 프리디코딩방법 및 장치와, 비디오 시퀀스 복원방법 및 장치와, 이미지 필터링방법에 관한 것이다.
인터넷 기술의 급격한 발달과 더불어 다양한 서비스가 새로 생겨나고 있다. 인터넷의 발달과 더불어 생긴 서비스 중의 하나가 주문형 비디오(Video On Demand; 이하, VOD라 함) 서비스이다. VOD 서비스는 서비스 이용자의 요구에 따라 영화나 뉴스 등의 영상 기반 서비스를 전화선이나 케이블 또는 인터넷을 통해 제공하는 새로운 개념의 서비스 사업을 말한다. VOD 서비스를 통해 서비스 이용자는 영화관에 가지 않고도 집에서 영화를 감상할 수 있고, 또 학원이나 학교에 가지 않고도 동영상 강의를 통해 다양한 지식을 습득할 수 있다.
이러한 VOD 서비스가 가능하려면 여러가지 조건이 필요한데, 많은 정보를 송수신할 수 있는 광대역 통신 서비스와 동영상 압축기술이 이에 해당한다. 이 중에 서 동영상 압축기술은 데이터 전송에 필요한 대역폭을 효과적으로 감소시키켜 VOD 서비스가 가능하게 한다. 예를 들면, 640*480의 해상도를 갖는 24 bit 트루컬러의 동영상 이미지는 한 프레임당 640*480*24 bit의 용량, 즉 약 7.37Mbit의 데이터가 필요하다. 만일 프레임 레이트가 초당 30 프레임인 경우에 VOD 서비스를 위하여 필요한 대역폭은 약 221Mbit/sec가 된다. 한편, 이러한 동영상 이미지로 된 90분짜리 영화를 저장하려면 약 1200G bit의 용량을 갖는 저장매체를 필요로 한다. 이와 같이 압축되지 않은 동영상은 전송시에 엄청난 대역폭을 필요로 하고 저장공간 또한 엄청나게 많이 필요하므로, 현재의 네트워크 환경에서 VOD 서비스를 하려면 압축 기술은 필수적이라고 할 수 있다.
데이터를 압축하는 기본적인 원리는 데이터의 중복(redundancy)을 없애는 것이다. 하나의 이미지 프레임에서 동일한 색이나 객체가 반복되거나, 움직임이 비교적 작아 인접 프레임이 거의 변화가 없는 경우에 동영상 압축은 효과적으로 이루어질 수 있다.
동영상을 압축하는데 알려진 비디오 코딩 알고리즘으로 MPEG-1, MPEG-2, H.263, H.264(혹은 AVC) 등이 있다. 이러한 비디오 코딩 방식들은 모션 보상 예측 코딩법에 기초하여 시간적 중복은 모션 보상에 의해 제거하고, 공간적 중복은 이산 코사인 변환(Discrete Cosine Transform; 이하, "DCT"라 함)에 의해 제거한다. 모션 보상에 의한 시간적 중복제거와 DCT에 의한 공간적 중복은 효과적이어서, 이들 압축 방식은 높은 비디오 코딩 효율을 갖는다. 이러한 비디오 코딩 방식들은 높은 비디오 코딩 효율을 갖지만, 기본적으로 재귀적 접근 방식을 채택함으로써 만족할 만한 스케일러빌리티(scalability)를 제공하지는 못한다. 최근에는 웨이브렛변환 방식과 모션보상 시간적 필터링(Motion Compensated Temporal Filtering; 이하, "MCTF"라 함) 방식을 채택한 스케일러블 비디오 코딩 알고리즘에 대한 연구가 활발하다. 스케일러블 비디오 코딩 알고리즘의 특성인 스케일러빌리티는 하나의 비트스트림(콘텐츠)에서 다양한 해상도, 프레임 레이트, 및 화질의 비디오 시퀀스를 디코딩할 수 있는 특성을 의미한다.
스케일러빌리티 특성이 적은 비디오 코딩 방식에 의한 비디오 스트리밍 서비스와 스케일러블 비디오 코딩 방식에 의한 비디오 스트리밍 서비스에 대해서는 각각 도 1과 도 2를 통해 설명한다. 설명의 편의를 위하여 하나의 비디오 시퀀스에 대한 비디오 스트리밍 서비스를 기준으로 설명한다.
도 1을 참조하여, 비디오 스트리밍 제공자(100)은 비디오 시퀀스를 입력받아 MPEG-1, MPEG-2, H.263, H.264와 같은 비디오 코딩 알고리즘으로 비디오 시퀀스에 대한 비디오 코딩을 수행한다. 이러한 코딩 알고리즘으로 비디오 시퀀스를 코딩하여 얻은 비트스트림은 스케일러블하지 않거나 스케일러블한 특성이 약하다. 따라서, 다양한 해상도와 프레임 레이트로 비디오 스트리밍 서비스를 하려면 각 해상도와 프레임 레이트별로 비트스트림을 생성해야 한다. 이를 위하여 비디오 시퀀스에 대한 해상도와(해상도 또는) 프레임 레이트를 변환시켜 낮은 해상도와(해상도 또는) 프레임 레이트의 비디오 시퀀스를 생성하는 복수의 변환부들(110-2 내지 110-n)과, 비디오 시퀀스 또는 변환된 비디오 시퀀스들을 비디오 코딩 알고리즘으로 코딩하여 비트스트림을 생성하는 복수의 비디오 인코더들(120-1, 120-2, 120- 3,...,120-n), 및 생성된 각 해상도와 프레임 레이트의 비트스트림들 중 어느 하나를 선택하여 비디오 디코더(140)로 보내주는 선택부(130)를 포함한다.
제2 변환부(110-2)는 비디오 시퀀스를 입력받아 다운샘플링 또는 프레임 레이트 변환을 통해 낮은 해상도 또는(및) 낮은 프레임 레이트의 비디오 시퀀스로 변환시킨다. MEPG 방식의 다운샘플링은 다운샘플링된 이미지가 부드러운 특성을 갖는다. 변환된 비디오 시퀀스는 제2 비디오 인코더(120-2)로 보낸다. 마찬가지로 제3 변환부(110-3)는 비디오 시퀀스를 변환하여 제3 비디오 인코더(120-3)로 보내고, 제n 변환부(110-n)는 비디오 시퀀스를 제n 비디오 인코더(120-n)로 보낸다.
제1 비디오 인코더(120-1)는 비디오 시퀀스에 대해 최고의 해상도와 프레임 레이트로 비디오 코딩을 수행한다. 예를 들면, 704x576의 해상도를 갖고 60Hz의 프레임 레이트를 갖는 비디오 시퀀스를 받아 704x576의 해상도 및 60Hz 프레임 레이트를 갖도록 비디오 코딩을 수행하여 비트스트림을 생성한다. 이렇게 원시 비디오 시퀀스의 해상도와 프레임 레이트를 그대로 유지하면서 코딩하여 얻은 비트스트림은 네트워크 대역폭이 충분히 보장되는 경우에 사용자에게 제공될 수 있다. 예를 들면 6 Mbps의 네트워크 대역폭이 안정적으로 보장되는 경우에 제1 비디오 인코더(120-1)를 통해 생성된 비트스트림을 사용자에게 제공할 수 있다. 사용자에게 제공되는 비트스트림은 비디오 디코더(140)를 통해 디코딩되고, 디코딩을 통해 704x576의 해상도를 갖고 60Hz 프레임 레이트를 갖는 비디오 시퀀스가 복원된다(reconstruct).
제2 비디오 인코더(120-2)는 제1 비디오 인코더(120-2)보다 낮은 해상도 및( 또는) 프레임 레이트를 갖는 비디오 시퀀스 비디오 코딩하여 비트스트림을 생성한다. 마찬가지로 제3 비디오 인코더(120-3)도 제1 및 제2 비디오 인코더들(110-1, 110-2)과 다른 해상도 및(또는) 다른 프레임 레이트로 비디오 코딩을 수행하여 비트스트림을 얻는다. 이러한 방식으로 제1 내지 제n 비디오 인코더들(110-1 내지 110-n)은 동일한 비디오 시퀀스에 대한 서로 다른 해상도 및(또는) 프레임 레이트를 갖는 비트스트림들을 생성한다.
선택부(120)는 사용자(비디오 디코더(130))로부터 요청받은 해상도와 프레임 레이트의 비트스트림을 비디오 디코더(130)에 제공한다. 네트워크의 대역폭이 안정적으로 보장되는 경우에 사용자는 높은 해상도와 프레임 레이트를 갖는 비디오를 요청할 수 있고, 이 경우에 비디오 스트리밍 제공자(100)은 사용자가 선택한 높은 해상도와 프레임 레이트를 갖는 비트스트림을 사용자에게 제공한다. 네트워크 대역폭이 안정적이지 않을 때 높은 해상도와 프레임 레이트를 갖도록 코딩된 비트스트림을 수신하는 비디오 디코더(130)에서 복원되는 비디오 시퀀스는 재생될 때 중간 중간에 끊김 현상이 자주 발생할 수 있다. 이런 경우에 사용자는 보다 낮은 해상도 및(또는) 프레임 레이트를 갖도록 코딩된 비트스트림을 비디오 스트리밍 제공자(100)에 요청할 수 있다.
비디오 디코더(130)는 비디오 스트리밍 제공자(100)으로부터 비디오 시퀀스에 대한 비트스트림을 받아 이를 디코딩한다. 예를 들면, MPEG-2 방식으로 코딩된 비트스트림의 경우에는 MPEG-2 방식으로 디코딩하고, H.264 방식으로 코딩된 비트스트림의 경우에는 H.264 방식으로 디코딩하여 비디오 시퀀스를 복원한다(reconstruct).
도 1의 비디오 스트리밍 제공자(100)과 같이 스케일러빌리티를 갖지 않거나 스케일러빌리티가 약한 비디오 코딩 알고리즘을 사용하여 비디오 시퀀스에 대한 비디오 코딩을 수행하는 비디오 스트리밍 제공자는 네트워크 환경이나 사용자의 요구에 따라 동일한 비디오 시퀀스에 대하여 다양한 해상도와 프레임 레이트를 갖는 복수의 비디오 코딩과정을 수행해야 한다. 그 결과 하나의 비디오 시퀀스로부터 복수의 비트스트림들이 생성되는데, 해상도와 프레임 레이트이 다를 때마다 비트스트림들을 생성하려면 높은 연산능력을 필요로 하고, 또 다양한 해상도와 프레임 레이트로 비디오 스트림을 사용자에게 제공하는 서비스, 이른바 동시방송(simulcasting) 서비스를 하려면 생성된 비트스트림들을 저장하기 위한 고용량의 저장매체를 필요로 한다.
도 2는 웨이브렛 기반의 스케일러블 비디오 코딩방식을 이용하는 비디오 스트리밍 제공자(200)의 구성을 간략히 보여주고 있다. 편의상 하나의 비디오 시퀀스에 대한 비디오 코딩을 중심으로 설명한다.
비디오 스트리밍 제공자(200)은 비디오 시퀀스를 코딩하기 위한 스케일러블 비디오 인코더(210)와 프리디코더(220)를 구비한다. 스케일러블 비디오 인코더(210)는 스케일러빌리티를 갖는 비디오 코딩 알고리즘을 사용하여 스케일러빌리티를 갖는 비트스트림을 생성한다. 현재 알려진 스케일러블 비디오 코딩 알고리즘에서 공간적 스케일러빌리티는 웨이브렛 변환을 통해 얻을 수 있고, 시간적 스케일러빌리티는 MCTF나 UMCTF(Unconstrained MCTF) 또는 STAR(successive temporal approximation and referencing)와 같은 방식에 의해 얻을 수 있으며, 신호대잡음비(Signal to Noise Ration) 스케일러빌리티는 임베디드 양자화를 통해 얻을 수 있다.
스케일러블 비디오 인코더(210)를 통해 비디오 시퀀스를 코딩하여 얻은 비트스트림은 프리디코더(220)를 통해 프리디코딩된다. 프리디코딩이란 스케일러블 비트스트림의 일부 비트들을 잘라내는(truncation) 과정을 의미하는데, 프리디코딩을 통해 비트스트림은 원시의 비트스트림보다 낮은 해상도의 비트스트림이 되거나 낮은 프레임 레이트의 비트스트림 또는 낮은 화질의 비트스트림이 될 수 있다. 사용자측의 비디오 디코더(230)에서 비디오 시퀀스에 대해 해상도와 프레임 레이트를 비디오 스트리밍 제공자(200)에 요청하면, 비디오 스트리밍 제공자(200)의 프리디코더(220)는 비트스트림의 일부 비트들을 잘라낸다. 일부 비트들이 제거된 비트스트림은 비디오 디코더(230)에 제공되고 비디오 디코더(230)는 비트스트림을 디코딩하여 요청한 해상도와 프레임 레이트를 갖는 비디오 시퀀스를 복원한다.
이와 같이 스케일러블 비디오 코딩 알고리즘을 사용한 비디오 스트리밍 서비스는 하나의 비디오 시퀀스에 대하여 하나의 비트스트림을 생성하고도 다양한 해상도와 프레임 레이트를 갖는 비트스트림을 제공하는 동시방송이 가능하다. 그렇지만 현재 알려진 스케일러블 비디오 코딩 알고리즘의 경우에 모든 해상도에서 화질이 좋은 비트스트림을 제공하지는 못하고 있다. 예를 들면, 가장 높은 해상도의 비디오를 복원하는 경우에는 좋은 화질을 얻을 수 있으나, 낮은 해상도의 비디오를 복원하는 경우에는 만족할만한 화질을 얻게 된다. 낮은 해상도의 화질을 높이기 위해 많은 비트를 할당하여 비디오 코딩을 수행할 수 있으나 이 경우에 비디오 코딩 효율이 저하된다.
앞서 설명한 바와 같이 도 1의 비디오 스트리밍 서비스는 모든 해상도에서 최적화된 비트스트림 제공이 가능하지만 연산능력과 저장공간의 낭비가 발생될 수 있고, 도 2의 비디오 스트리밍 서비스는 하나의 비트스트림으로 다양한 해상도와 프레임 레이트를 갖는 비트스트림 제공이 가능하지만 일부 해상도에서 화질이 나쁘거나 화질을 개선하려면 코딩효율이 저하된다. 이러한 배경에서 비디오 스트리밍 서비스를 위하여 화질과 비디오 코딩의 효율간의 적절한 타협을 통해 만족할만한 화질과 비디오 코딩 효율을 갖는 비디오 코딩 방안이 필요하다.
본 발명의 목적은 좋은 화질과 비디오 코딩 효율을 갖는 비디오 스트리밍 서비스를 위한 비디오 코딩방법과 프리디코딩방법 및 비디오 디코딩방법, 및 이를 위한 장치를 제공하는 것이다.
본 발명의 다른 목적은 이러한 비디오 스트리밍 서비스를 위한 비디오 코딩 알고리즘의 효율을 높이는 것이다.
본 발명의 또 다른 목적은 이러한 비디오 스트리밍 서비스에 의해 제공되는 비디오 시퀀스의 화질을 개선하는 것이다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해되어질 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 비디오 코딩 방법은 제1 비디오 시퀀스 및 상기 제1 비디오 시퀀스와 해상도, 프레임 레이트 및 화질 중 적어도 하나가 다른 제2 비디오 시퀀스를 각각 스케일러블 비디오 코딩하여 제1 비트스트림 및 제2 비트스트림을 생성하는 단계, 및 상기 제1 및 제2 비트스트림을 포함하는 수퍼 비트스트림을 생성하는 단계를 포함한다.
상기 목적을 달성하기 위하여, 본 발명의 다른 실시예에 따른 비디오 코딩 방법은 제1 비디오 시퀀스 및 상기 제1 비디오 시퀀스와 해상도, 프레임 레이트 및 화질 중 적어도 하나가 다른 제2 내지 제n(n은 2이상의 자연수) 시퀀스들을 각각 비디오 코딩하여 제1 내지 제n 비트스트림들 생성하는 단계, 및 상기 제1 내지 제n 비트스트림들을 포함하는 수퍼 비트스트림을 생성하는 단계를 포함한다.
상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 수퍼 비트스트림 구조는 가장 높은 해상도를 갖는 제1 비디오 시퀀스를 비디오 코딩하여 얻은 제1 비트스트림, 및 상기 제1 비디오 시퀀스와 해상도, 프레임 레이트 및 화질 중 적어도 하나가 다른 제2 내지 제n(n은 2이상의 자연수) 시퀀스들을 각각 비디오 코딩하여 제2 내지 제n 비트스트림들을 포함한다.
상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 비디오 인코더는 제1 비디오 시퀀스 및 상기 제1 비디오 시퀀스와 해상도, 프레임 레이트 및 화질 중 적어도 하나가 다른 제2 내지 제n 비디오 시퀀스를 각각 비디오 코딩하는 비디오 인코딩부, 및 상기 비디오 인코더부에 의해 생성된 제1 내지 제n 비트스트림들 과 필요한 헤더 정보를 포함하여 수퍼 비트스트림을 생성하는 수퍼 비트스트림 생성부를 포함한다.
상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 프리디코딩방법은 소정의 해상도와 프레임 레이트 및 화질을 갖는 비디오 시퀀스를 요청받는 단계와, 요청받은 비디오 시퀀스에 대한 서로 다른 해상도와 프레임 레이트를 갖는 복수의 비트스트림들을 포함하는 수퍼 비트스트림이 요청받은 해상도와 프레임 레이트 및 화질이 되도록 상기 수퍼 비트스트림의 일부를 잘라내는 단계, 및 상기 일부가 잘려진 수퍼 비트스트림을 디코더로 전송하는 단계를 포함한다.
상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 프리디코더는 소정의 해상도와 프레임 레이트 및 화질을 갖는 비디오 시퀀스를 요청받는 요청 수신부와, 상기 요청받은 비디오 시퀀스에 대한 서로 다른 해상도와 프레임 레이트를 갖는 복수의 비트스트림들을 포함하는 수퍼 비트스트림이 요청받은 해상도와 프레임 레이트 및 화질이 되도록 상기 수퍼 비트스트림의 일부를 잘라내는 수퍼 비트스트림 절단부, 및 상기 절단된 수퍼 비트스트림을 디코더로 전송하는 전송부를 포함한다.
상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 비디오 시퀀스 복원방법은 압축된 비디오 시퀀스를 수신하여, 상기 압축된 비디오 시퀀스를 역양자화하고 역변환하여 인트라 프레임을 복원하는 단계와, 상기 인트라 프레임이 인터 프레임의 참조 프레임이 될 수 있도록 상기 인트라 프레임을 필터링하는 단계, 및 상기 필터링된 인트라 프레임을 참조하여 인터 프레임을 복원하는 단계를 포함 한다.
상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 비디오 시퀀스 복원장치는 압축된 비디오 시퀀스를 수신하는 수신부와, 상기 수신된 압축된 비디오 시퀀스를 디코딩하여 인트라 프레임을 복원하는 디코딩부, 및 상기 복원된 인트라 프레임이 인터 프레임의 참조 프레임이 될 수 있도록 상기 인트라 프레임을 필터링하는 필터링부를 포함하며, 상기 디코딩부는 상기 필터링된 인트라 프레임을 참조하여 상기 수신된 압축된 비디오 시퀀스를 디코딩하여 인터 프레임을 복원한다.
상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 이미지 필터링 방법은 웨이브렛 방식으로 다운샘플링된 이미지를 웨이브렛 방식으로 업샘플링하는 단계, 및 상기 업샘플링된 이미지를 소정의 다운샘플링 방식으로 다운샘플링하는 단계를 포함하는 웨이브렛 방식으로 다운샘플링된 이미지를 필터링하는 하는 단계를 포함한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.
본 발명의 실시예는 다양한 해상도와 프레임 레이트를 갖는 비트스트림을 생성하기 위하여 스케일러블 비디오 코딩을 사용한다. 스케일러블 코딩을 이용하면 하나의 스케일러블 비트스트림으로부터 다양한 해상도와 프레임 레이트의 비트스트림을 쉽게 얻을 수 있다.
해상도와 관련하여, 현재까지 알려진 스케일러블 코딩 알고리즘으로 코딩된 하나의 스케일러블 비트스트림으로부터 어떤 해상도에서는 좋은 화질의 비디오 시 퀀스를 복원할 수 있으나 다른 해상도에서는 좋지 않은 화질의 비디오 시퀀스를 얻게 된다. 따라서 본 발명의 실시예는 기본적으로 스케일러블 비디오 코딩 알고리즘을 이용하여 비디오 시퀀스에 대하여 비디오 코딩을 수행하지만, 코딩된 하나의 스케일러블 비트스트림으로부터 모든 해상도와 프레임 레이트의 비디오 시퀀스를 얻도록 하지는 않는다. 일 실시예에 있어서, 하나의 비디오 시퀀스에 대해 두개 이상의 스케일러블 비트스트림을 생성한다. 다른 실시예에 있어서, 하나의 비디오 시퀀스에 대해 스케일러블 비트스트림과 MPEG 계열의 비트스트림을 생성한다. 생성된 비트스트림들로 하나의 수퍼 비트스트림을 생성한다. 복수의 스케일러블 비트스트림을 생성한 후 수퍼 비트스트림을 생성하여 비디오 디코더에 제공하는 비디오 스트리밍 제공자는 도 3을 통해 설명한다.
도 3은 본 발명의 일 실시예에 따른 비디오 스트리밍 서비스의 개념을 보여주는 도면이다. 하나의 비디오 시퀀스(콘텐트)에 대한 서비스라고 가정하고 설명한다.
비디오 스트리밍 제공자(300)은 변환부(310)와 비디오 인코딩부(320)와 수퍼 비트스트림 생성부(330) 및 프리디코더(340)를 포함한다.
비디오 인코딩부(320)는 서로 다른 해상도와 프레임 레이트 및 화질을 갖는 복수의 비디오 시퀀스들을 비디오 코딩하여 비트스트림들을 생성한다. 일 실시예에 있어서, 비디오 인코딩부(320)는 스케일러블 비디오 코딩방식만을 이용하여 비디오 시퀀스들로부터 비트스트림을 생성한다. 다른 실시예에 있어서, 비디오 인코딩부(320)는 스케일러블 비디오 코딩방식과 DCT방식에 기반한 스케일러블하지 않은 비디오 코딩방식을 사용하여 비디오 시퀀스들로부터 비트스트림을 생성한다.
스케일러블 비디오 코딩방식만을 이용하는 실시예는 도 3에 도시된 바와 같이 하나의 비디오 시퀀스(콘텐트)에 대해 다른 해상도와 프레임 레이트를 갖는 n개의 비디오 시퀀스들을 입력받아 n개의 비트스트림을 생성한다. 이를 위하여 비디오 인코딩부(320)는 제1 스케일러블 비디오 인코딩부(320-1) 내지 제n 스케일러블 비디오 인코딩부(320-n)를 포함하는데, 이들 제1 내지 제n 스케일러블 비디오 인코딩부들은 하나의 통합된 스케일러블 비디오 인코딩부일 수도 있고, 각각 별도의 스케일러블 비디오 인코딩부일 수도 있다.
제1 스케일러블 비디오 인코더(320-1)는 비디오 시퀀스에 대하여 가장 높은 해상도와 프레임 레이트를 갖는 스케일러블 비디오 코딩을 수행한다. 제2 스케일러블 비디오 인코딩부(320-2)는 제1 스케일러블 비디오 인코딩부(320-1)보다 낮은 해상도 또는 낮은 프레임 레이트를 갖는 스케일러블 비디오 코딩을 수행한다. 마찬가지로 나머지 스케일러블 비디오 인코딩부들(320-2 내지 320-n)도 각기 다른 해상도 또는 프레임 레이트를 갖는 스케일러블 비디오 코딩을 수행한다. 스케일러블 비트스트림으로부터 해상도를 낮춰서 비디오 시퀀스를 복원할 때 화질의 저하와 프레임 레이트를 낮춰서 비디오 시퀀스를 복원할 때 화질의 저하를 비교하면 전자가 훨씬 크게 나타나므로, 각 스케일러블 비디오 인코더들은 서로 다른 해상도의 스케일러블 비트스트림을 생성하는 것이 바람직하다.
변환부(310)는 비디오 시퀀스를 입력받고, 입력받은 비디오 시퀀스를 낮은 해상도 또는 프레임 레이트를 갖는 비디오 시퀀스들로 변환시킨다. 제2 변환부(310-2)는 제2 스케일러블 비디오 인코더(320-2)에서 생성할 스케일러블 비트스트림의 해상도와 프레임 레이트로 비디오 시퀀스의 해상도와 프레임 레이트를 변환시킨다. 마찬가지로 다른 변환부들(310-3 내지 310-n)도 각각 스케일러블 비디오 인코더들(320-3 내지 320-n)을 위하여 비디오 시퀀스의 해상도와 프레임 레이트를 변환시킨다. 일 실시예에 있어서, 해상도 변환은 웨이브렛 방식으로 다운샘플링한다. 다른 실시예에 있어서, 해상도 변환은 MPEG 방식으로 다운샘플링한다.
또 다른 실시예에 있어서, 해상도 변환은 웨이브렛 방식으로 다운샘플링하고 다운샘플링된 프레임을 웨이브렛 방식으로 업샘플링한 후 업샘플링된 프레임을 다시 MPEG 방식으로 다운샘플링한다. 이 중에서 웨이브렛 방식의 해상도 변환은 이미지를 웨이브렛 방식으로 공간압축할 때 얻은 저주파 및 고주파 서브밴드들 중에서 저주파 서브밴드를 선택하는 것을 의미한다. 웨이브렛 방식의 해상도 변환은 별도의 구현하지 않고 스케일러블 비디오 인코딩부가 함께 수행할 수 있다.
비디오 시퀀스들은 각 스케일러블 비디오 인딩부들(320-1 내지 320-n)을 거쳐 n개의 서로 다른 해상도와 프레임 레이트를 갖는 스케일러블 비트스트림이 된다. 일 실시예에 있어서, 비디오 스트리밍 제공자(300)는 복수의 비트스트림들로 수퍼 비트스트림을 생성하는 수퍼 비트스트림 생성부(330)을 더 포함하는데, 생성된 스케일러블 비트스트림들은 수퍼 비트스트림 생성부(330)를 거쳐 수퍼 비트스트림으로 통합된다.
프리디코더(340)는 요청받은 해상도와 프레임 레이트의 비트스트림을 디코더(350)측으로 보낸다. 일 실시예에 있어서, 프리디코더(340)는 n개의 비트스 트림 중에서 요청받은 해상도에 해당되는 비트스트림을 선택하고, 선택된 비트스트림이 요청받은 프레임 레이트가 될 수 있도록 불필요한 비트들을 잘라내고 불필요한 부분이 잘려진 비트스트림을 디코더(350)에 보내준다. 비디오 시퀀스와 비디오 시퀀스의 해상도와 프레임 레이트의 요청은 디코더(350)로부터 직접받을 수도 있으나, 비디오 스트리밍 제공자(300)가 디코더(350)로부터 비디오 시퀀스와 비디오 시퀀스의 해상도와 프레임 레이트의 요청을 받고 이를 프리디코더(340)에 전달할 수도 있다. 이를 위하여 프리디코더(340)는 상기 요청을 수신하는 요청 수신부(미 도시됨)와 비트스트림의 비트를 절단하는 비트스트림 절단부(미 도시됨)를 포함한다. 다른 실시예에 있어서, 프리디코더(340)는 요청 수신부(미 도시됨)에서 수신된 비디오 시퀀스와 비디오 시퀀스의 해상도 및 프레임 레이트에 해당하는 비트스트림을 n개의 비트스트림을 포함하는 수퍼 비트스트림에서 선택하고, 선택된 비트스트림을 제외한 비트스트림들과 선택된 비트스트림의 불필요한 부분을 잘라낸다. 불필요한 부분이 잘려진 수퍼 비트스트림은 디코더(350)로 전송된다.
다른 실시예에 있어서, 요청받은 해상도의 스케일러블 비트스트림이 없는 경우라면 요청받은 해상도보다 더 높은 해상도의 스케일러블 비트스트림들 중 어느 하나의 불필요한 부분을 잘라내고 디코더(350)에 보내준다. 일 실시예에 있어서 선택하는 기준은 요청받은 것과의 해상도 차이가 가장 적은 스케일러블 비트스트림을 선택하고, 선택된 비트스트림에서 불필요한 비트들을 잘라낸 후에 디코더(350)에 보내준다. 한편, 프리디코더(340)는 해상도와 프레임 레이트가 동일하더라도 네트워크의 상태에 따라 비트스트림을 더 잘라내어 낮은 SNR 값을 갖는 비트스트림을 만들고 이를 디코더(350)에 보낼 수도 있다.
일 실시예에 있어서, 프리디코더(340)는 비디오 인코딩부(320)와 별도로 구현될 수 있다. 이러한 경우에 프리디코더(340)는 비디오 스트리밍 제공자로서의 역할을 하게 된다. 즉, 프리디코더(340)는 디코더(350)로부터 스트리밍 특정한 해상도와 프레임 레이트의 비디오 시퀀스를 요청받는다. 프리디코더(340)는 사전에 인코딩된 복수의 비트스트림들을 포함하는 수퍼 비트스트림에서 어느 한 비트스트림을 선택하고, 선택된 비트스트림의 일부 비트들과 나머지 비트스트림들을 제거하고 나서 요청받은 해상도와 프레임 레이트의 비디오 시퀀스로 복원될 수퍼 비트스트림을 디코더(350)에 전송한다.
다른 실시예에 있어서, 프리디코더(340)는 디코더(350)와 함께 사용자측에 있다. 이러한 경우에 디코더(350)는 비디오 스트리밍 제공자(300)로부터 수퍼 비트스트림을 받고 프리디코더(330)를 통해 선택한 비트스트림의 일부 비트들과 불필요한 비트스트림의 비트들을 잘라내어 디코더(350)가 원하는 해상도와 프레임 레이트의 비디오 시퀀스를 복원할 수 있도록 한다.
앞서 설명한 구성부분들은 기능성 모듈로서 이미 설명한 바와 같은 역할들을 수행한다. 이러한 기능성 모듈은 소프트웨어 또는 FPGA 또는 ASIC과 같은 하드웨어로 구현될 수 있다. 그렇지만 기능성 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 기능성 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다.
따라서, 일 예로서 기능성 모듈은 소프트웨어 구성요소들, 객체지향 소프트 웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 모듈들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 모듈들은 통신 시스템 내의 하나 또는 그 이상의 컴퓨터들을 실행시키도록 구현될 수도 있다.
도 4는 스케일러블 비디오 인코더와 AVC 비디오 인코더의 구성을 간략히 보여주는 도면이다.
스케일러블 비디오 인코더(410)는 모션보상 시간적 필터링부(420)와 웨이브렛 변환부(430) 및 임베디드 양자화부(440)를 포함한다. 스케일러블 비디오 인코더(410)는 비디오 시퀀스를 입력받아 GOP(Group Of Picture) 단위로 처리한다. 하나의 GOP는 복수의 프레임들로 구성된다. 예를 들면, GOP는 2, 4, 8, 16, 또는 32 프레임들 중 어느 하나로 구성된다. 스케일러블 비디오 코딩 방식들로 알려진 많은 알고리즘들은 GOP가 포함하는 프레임들의 수(GOP 사이즈)가 커지면 비디오 압축 효율을 높아지지만, 비디오 코딩부터 비디오 디코딩까지의 알고리즘 지연시간이 증가하는 성질을 갖고, GOP 사이즈가 작아지면 알고리즘 지연시간은 감소하지만 압축 효율은 감소하는 성질을 갖는다.
모션 보상 시간적 필터링부(420)는 GOP 단위로 입력된 프레임들간의 시간적 중복을 제거한다. 프레임들간의 시간적 중복을 제거하는 방식으로는 MCTF, UMCTF, STAR와 같은 알고리즘이 알려져 있다. 이러한 알고리즘을 이용하면 프레임들간의 시간적 중복을 제거할 수 있을 뿐만 아니라, 시간적 스케일러빌리티를 갖도록 비디오 코딩을 할 수 있다.
웨이브렛 변환부(430)는 시간적 중복이 제거된 프레임들을 웨이브렛 변환 방식으로 변환시켜 공간적 중복을 제거한다. 웨이브렛 변환 알고리즘은 JPEG2000에도 사용되고 있는 알고리즘으로 하나의 프레임을 저주파 서브밴드와 고주파 서브밴드로 나눈다. 저주파 서브밴드는 원래 프레임의 축소된 이미지와 거의 유사한 이미지이다.
임베디드 양자화부(440)는 웨이브렛 변환부(430)에서 프레임들을 웨이브렛 변환하여 얻은 변환계수들을 임베디드 양자화시킨다. 임베디드 양자화된 변환계수들은 엔트로피 코딩을 거쳐 비트스트림화 된다.
본 발명의 실시예 중에는 스케일러블 비디오 코딩과 다른 비디오 코딩알고리즘을 사용하여 비디오 시퀀스에 대한 일부 또는 전체 비트스트림들을 생성하는 것이 있다. 현재 알려진 비디오 코딩알고리즘으로 가장 압축 효율이 높은 것이 AVC(Advance Video Coding) 방식이다. AVC는 H.264 또는 MPEG4-part10으로 불리기도 하는 비디오 코딩방식으로 DCT(Discrete Cosine Transform)을 변환방식으로 채용한다. 스케일러블하지 않은 비디오 코딩방식을 사용하는 실시예에 있어서는 AVC를 사용하는 것이 바람직하다.
AVC 비디오 인코더(460)는 모션 보상 예측부(470)와 DCT 변환부(480) 및 양자화부(490)를 포함한다. 모션 보상 예측부(470)는 비디오 시퀀스를 구성하는 프 레임들의 시간적 중복을 제거한다. AVC에서 시간적 중복을 제거하는 블록의 타입의 다양하게 지원된다. 즉, 4X4, 4X8, 8X4, 8X8, 16X8, 8X16, 16X16과 같이 다양한 타입을 지원하고 있어 높은 압축효율을 달성할 수 있다.
DCT 변환부(480)는 모션 보상 예측부를 통해 시간적 중복이 제거된 프레임을 매크로 블록 단위로 DCT 변환한다. AVC에서는 매크로 블록단위로 DCT 변환을 수행하므로 웨이브렛 변환 방식과는 달리 공간적 스케일러빌리티를 갖지 못한다.
양자화부(490)는 DCT 변환된 변환계수들을 양자화한다. 양자화를 거친 변환계수들은 엔트로피 코딩되어 비트스트림화 된다.
도 3의 실시예에서 비디오 인코딩부(320)는 앞서 설명한 스케일러블 비디오 인코더(410)만을 포함할 수도 있으나, AVC 비디오 인코더(460)를 포함할 수도 있다. 비디오 인코딩부(320)는 이 밖에 다른 비디오 인코더를 포함할 수도 있다.
한편, 디코더(도시되지 않음) 인코딩과정과 반대의 과정으로 비디오 시퀀스를 복원한다. 즉, 비트스트림(압축된 비디오 시퀀스)을 수신하고, 이를 역양자화(또는 역 임베디드 양자화) 및 역공간적 변환(웨이브렛 변환 또는 DCT 변환)한 후, 역 모션보상 시간적 필터링 또는 역 모션보상 예측을 통해 비디오 시퀀스를 복원한다.
도 5는 각 방식에 따른 스트리밍 서비스를 비교하는 도면이다.
도 5의 도시된 스트리밍 서비스들은 (a)는 스케일러블하지 않은 비디오 코딩방식을 (b)는 스케일러블 비디오 코딩방식을 (c)와 (d)는 본 발명에 따른 실시예에 따른 코딩방식을 보여주고 있다.
먼저 스케일러블하지 않은 비디오 코딩방식의 경우를 설명한다. 스케일러블하지 않은 비디오 코딩방식의 경우에는 하나의 콘텐츠(비디오 시퀀스)를 다양한 해상도와 프레임 레이트로 사용자에게 서비스하려고 하면 각 해상도와 프레임 레이트에 해당하는 비트스트림을 필요로 한다. 예를 들면, 704x576의 해상도와 60Hz의 프레임 레이트를 갖는 비디오 스트리밍 서비스와, 352x288의 해상도와 30Hz의 프레임 레이트를 갖는 비디오 스트리밍 서비스, 및 176x144의 해상도와 15Hz의 프레임 레이트를 갖는 비디오 스트리밍 서비스를 하려고 하면 하나의 비디오 시퀀스에 대해 704x576의 해상도와 60Hz의 프레임 레이트, 352x288의 해상도와 30Hz의 프레임 레이트, 및 176x144의 해상도와 15Hz의 프레임 레이트로 비디오 코딩하여 세개의 비트스트림들(511, 512, 513)을 얻는다. 예를 들어, 사용자가 704x576의 해상도와 60Hz의 프레임 레이트을 요청하면 비디오 스트리밍 제공자는 704x576의 해상도와 60Hz의 프레임 레이트를 갖는 비트스트림(511)을 사용자에게 제공한다. 예를 들어, 사용자가 352x288의 해상도와 30Hz의 프레임 레이트을 요청하면 비디오 스트리밍 제공자는 352x288의 해상도와 30Hz의 프레임 레이트를 갖는 비트스트림(512)을 사용자에게 제공한다. 예를 들어, 사용자가 176x144의 해상도와 15Hz의 프레임 레이트을 요청하면 비디오 스트리밍 제공자는 176x144의 해상도와 15Hz의 프레임 레이트를 갖는 비트스트림(513)을 사용자에게 제공한다. 도 5에 도시된 바와 같이 704x576의 해상도와 60Hz의 프레임 레이트의 비트스트림을 서비스하려면 6Mbps의 안정된 네트워크 대역폭이 필요하고, 352x288의 해상도와 30Hz의 프레임 레이트의 비트스트림을 서비스하려면 750kbps의 안정된 네트워크 대역폭이 필요하며, 176x144의 해상도와 15Hz의 프레임 레이트의 비트스트림을 서비스하려면 128kbps의 안정된 네트워크 대역폭이 필요하다. 따라서, 사용자는 어떤 해상도와 프레임 레이트의 비트스트림을 선택할 때 네트워크 대역폭을 고려하여 선택한다. 즉, 6Mbps 이상의 안정된 대역폭이 보장될 때 사용자는 비디오 스트리밍 제공자로부터 704x576의 해상도와 60Hz의 프레임 레이트를 갖는 비디오 스트리밍 서비스와, 352x288의 해상도와 30Hz의 프레임 레이트를 갖는 비디오 스트리밍 서비스, 및 176x144의 해상도와 15Hz의 프레임 레이트를 갖는 비디오 스트리밍 서비스를 제공받을 수 있지만, 750kbps 이상의 안정된 대역폭은 보장되지만 6Mbps의 안정된 대역폭은 보장되지 않을 때 사용자는 352x288의 해상도와 30Hz의 프레임 레이트를 갖는 비디오 스트리밍 서비스, 및 176x144의 해상도와 15Hz의 프레임 레이트를 갖는 비디오 스트리밍 서비스만을 제공받을 수 있다. 마찬가지로 128kbps의 대역폭이 보장되는 경우에 사용자는 176x144의 해상도와 15Hz의 프레임 레이트를 갖는 비디오 스트리밍 서비스만을 제공받을 수 있다.
5Mbps의 안정된 대역폭이 보장될 때 사용자는 704x576의 해상도와 60Hz의 프레임 레이트를 갖는 비디오 스트리밍 서비스를 제공받지 못하게 되고 352x288의 해상도와 30Hz의 프레임 레이트를 갖는 비디오 스트리밍 서비스를 제공받을 수 있게 되는데, 더 높은 해상도와 프레임 레이트를 원하는 사용자를 충족시키려면 비디오 스트리밍 제공자는 5Mbps의 대역폭에 최적화된 해상도와 프레임 레이트로 비디오 시퀀스를 코딩할 필요가 있다. 즉, 네트워크 상태나 사용자의 기호 등에 따라 다양한 해상도와 프레임 레이트를 갖는 비디오 스트리밍 서비스를 하려고 할 때 스케 일러블하지 않은 비디오 코딩 알고리즘을 채용한 스트리밍 서비스는 각 해상도와 프레임 레이트마다 비디오 코딩을 해야하는 한계점을 갖는다. 이러한 한계점에 대한 대안으로 스케일러블 비디오 코딩방식을 이용하는 비디오 스트리밍 서비스에 대해서 살펴본다.
스케일러블 비디오 코딩방식을 채용한 경우를 살펴보면, 스케일러블 비디오 스트리밍 서비스는 하나의 콘텐츠(비디오 시퀀스)에 대해 단지 하나의 스케일러블 비트스트림(520)을 생성한다. 스케일러블 비트스트림(520)은 프리디코더를 거쳐 손쉽게 낮은 해상도를 갖는 비트스트림이 될 수 있고, 낮은 프레임 레이트를 갖는 비트스트림이 될 수 있다. 또한 스케일러블 비트스트림(520)은 프리디코더를 거쳐 낮은 해상도 및 낮은 프레임 레이트를 갖는 비트스트림이 될 수도 있다.
예를 들면, 704x576의 해상도와 60Hz의 프레임 레이트를 갖고 6Mbps의 대역폭이 필요한 스케일러블 비트스트림은 프리디코더를 거쳐서 해상도는 변화없이 프레임 레이트가 30Hz인 비트스트림으로 될 수 있고, 프레임 레이트가 15Hz인 비트스트림이 될 수도 있다.
또한 704x576의 해상도와 60Hz의 프레임 레이트를 갖고 6Mbps의 안정된 대역폭이 필요한 스케일러블 비트스트림(520)은 프리디코더를 거쳐서 해상도와 프레임 레이트가 낮게 되어 352x288의 해상도와 30Hz의 프레임 레이트를 갖고 750kbps의 안정된 대역폭이 필요한 비트스트림으로 될 수도 있고, 352x288의 해상도와 15Hz의 프레임 레이트를 갖고 192kbps의 안정된 대역폭이 필요한 비트스트림이 될 수도 있으며, 176x144의 해상도와 15Hz의 프레임 레이트를 갖고 128kbps의 안정된 대역폭 한 비트스트림이 될 수도 있다.
뿐만 아니라, 스케일러블 비트스트림(520)은 프리디코더를 거쳐 해상도와 프레임 레이트에는 변화가 없고 단지 화질만 낮은 스케일러블 비트스트림이 될 수도 있다. 예를 들면, 352x288의 해상도와 30Hz의 프레임 레이트를 갖고 750kbps의 안정된 대역폭이 필요한 비트스트림으로 사용자에게 제공될 수도 있지만, 해상도와 프레임 레이트는 352x288의 해상도와 30Hz로 동일하지만 384kbps의 안정된 대역폭이 필요한 비트스트림으로 사용자에게 제공될 수도 있다. 후자의 경우에는 복원되는 비디오 시퀀스의 화질이 전자보다 낮게 된다. 마찬가지로 176x144의 해상도와 15Hz의 프레임 레이트를 갖고 128kbps의 안정된 대역폭이 필요한 비트스트림으로 사용자에게 제공될 수도 있지만, 동일한 해상도와 프레임 레이트를 갖지만 화질은 조금 떨어지면서 64kbps의 안정된 대역폭으로도 서비스가 가능한 비트스트림으로 사용자에게 제공될 수도 있다.
(a)의 경우와는 달리 스케일러블 코딩방식을 이용하는 (b)의 경우에는 하나의 스케일러블 비트스트림으로부터 다양한 해상도와 프레임 레이트 및 화질을 갖는 비디오 스트리밍 서비스가 가능하다. 즉, 스케일러블 비디오 코딩방식을 사용할 때는 네트워크의 상태나 사용자의 기기의 성능에 따라 다양한 비디오 스트리밍 서비스를 손쉽게 할 수 있는 장점이 있다. 그렇지만 현재까지 알려진 스케일러블 비디오 코딩방식을 사용할 때, 어느 한 해상도에서는 좋은 화질을 갖는 비디오 시퀀스를 복원할 수 있으나 다른 해상도에서는 좋은 화질을 갖는 비디오 시퀀스를 복원하기 어려울 수 있다. 예를 들면, (b)에서 704x576의 해상도에서는 좋은 화질을 갖는 비디오 시퀀스를 복원할 수 있지만 176x144의 해상도에서는 좋은 화질을 갖는 비디오 시퀀스를 복원하기 힘들 수 있다.
이에 따라 본 발명에 따른 실시예는 비디오 시퀀스를 다양한 해상도와 프레임 레이트 및 화질로 서비스할 때 하나의 스케일러블 비트스트림을 프리디코더로 가공하여 서비스하는 방식이 아니고 복수의 스케일러블 비트스트림을 생성하고 복수의 스케일러블 비트스트림으로 하나의 수퍼 비트스트림을 생성하는 방식을 사용한다. 이에 대해서는 도 5의 (c)를 참조하여 설명한다.
본 실시예는 하나의 비디오 시퀀스에 대해 해상도를 달리하는 복수의 스케일러블 비트스트림들(531, 532, 533)을 생성한다. 생성된 스케일러블 비트스트림들(531, 532, 533)로 수퍼 비트스트림(530)을 생성한다. 그러나 이는 예시적인 것으로서, 하나의 비디오 시퀀스에 대해 하나 또는 해상도를 달리하는 복수의 스케일러블 비트스트림들과 스케일러블하지 않은 하나 또는 복수의 스케일러블 비트스트림들을 생성하는 것도 가능하다. 이에 대해서는 (d)의 수퍼 비트스트림(540)으로 후술한다.
본 실시예에서 제1 스케일러블 비트스트림(531)은 비디오 시퀀스에 대한 최고의 해상도와 프레임 레이트를 갖는다. 즉, 제1 스케일러블 비트스트림은 704x576의 해상도를 갖고 60Hz의 프레임 레이트를 갖는다. 제2 스케일러블 비트스트림(532)은 동일한 비디오 시퀀스에 대해 제1 스케일러블 비트스트림보다 낮은 해상도(및 프레임 레이트)를 갖는다. 예를 들면, 제2 스케일러블 비트스트림(532)은 352x288의 해상도와 30Hz의 프레임 레이트를 갖는다. 마찬가지 방식으로 제3 스케 일러블 비트스트림(530)은 176x144의 해상도와 15Hz의 프레임 레이트를 갖는다.
일 실시예에 있어서, 384kpbs의 대역폭이 보장될 때 사용자가 352x288의 해상도를 갖는 프레임을 요구하면 사용자에게 제2 스케일러블 비트스트림(530)을 프리디코더로 불필요한 비트들을 잘라내어 352x288의 해상도와 30Hz의 프레임 레이트를 갖으면서 화질을 조금 낮춘 비트스트림을 사용자에게 보내준다.
물론 352x288의 해상도와 30Hz의 프레임 레이트를 갖고 384kbps의 대역폭으로 전송되는 비트스트림은 제1 스케일러블 비트스트림(531)으로부터 얻는 것도 가능하겠지만 그렇게 얻은 비트스트림은 제2 스케일러블 비트스트림(532)으로부터 얻은 비트스트림보다 화질이 나쁠 수 있다. 도시된 실시예에서 제2 및 제3 스케일러블 비트스트림들(532, 533)의 해상도와 프레임 레이트는 제1 스케일러블 비트스트림의 해상도와 프레임 레이트로부터 1/2, 1/4, 1/8 의 크기를 갖고 있으나 이는 예시적인 것으로서, 1/3, 1/6도 가능하다.
다른 실시예에 있어서, 제1 스케일러블 비트스트림(531)은 704x576의 해상도를 가지는데 반해, 제2 스케일러블 비트스트림(532)은 600x480의 해상도를 가질 수 있다. 이러한 경우에서 352x288의 해상도를 갖는 비트스트림은 제1 스케일러블 비트스트림(531)을 프리디코딩하여 얻게 되며, 300x240의 해상도를 갖는 스케일러블 비트스트림은 제2 스케일러블 비트스트림(532)을 프리디코딩하여 얻을 수 있다.
5의 실시예 1은 기본적으로 스케일러블 비디오 코딩을 이용함으로써 스케일러블 비디오 코딩의 특징인 스케일러빌리티를 가질 수 있고, 복수의 스케일러블 비트스트림을 사용함으로써 하나의 스케일러블 비트스트림으로부터 다양한 해상도와 프레임 레이트를 가질 때 생길 수 있는 화질의 저하를 감소시킬 수 있다. 따라서, 하나의 비디오 시퀀스로부터 다양한 해상도와 프레임 레이트 및 화질을 갖는 비디오 스트리밍 서비스, 소위 동시방송(simulcasting)을 할 때 실시예 1에 따르면 해상도에 따른 화질의 수준은 적절히 보장되면서 다양한 해상도와 프레임 레이트 및 화질을 갖는 비디오 스트리밍 서비스를 달성할 수 있다.
한편, (d)의 실시예 2와 같이 일부 비트스트림은 스케일러블하지 않은 비트스트림을 포함할 수 있다. 즉, 수퍼 비트스트림(540)은 제1 스케일러블 비트스트림(541)과 제2 스케일러블 비트스트림(542) 및 스케일러블하지 않은 제2 비트스트림(543)을 포함한다. 제1 및 제2 스케일러블 비트스트림은 스케일러블 비디오 코딩방식으로 생성된 비트스트림이지만, 제3 비트스트림(543)은 스케일러블하지 않은 비디오 코딩방식, 예를 들면 AVC 방식으로 비디오 코딩하여 얻은 비트스트림이다.
한편, 도 5의 (b)와 같이 하나의 스케일러블 비트스트림(520)으로 스트리밍 서비스를 하는 경우보다 본 발명의 실시예들에 따른 경우에 더 많은 데이터 저장공간을 필요로 하게 되는데 이러한 오버헤드를 줄이는 방안은 도 6과 도 7을 통해 설명한다. 도 6 및 도 7의 실시예는 편의상 수퍼 비트스트림에는 두 개의 스케일러블 비트스트림이 포함되는 경우를 가정하고 설명한다.
도 6은 본 발명의 일 실시예에 따른 인트라 프레임 공유를 설명하기 위한 도면이다.
비디오 시퀀스를 코딩할 때 비디오 시퀀스를 구성하는 프레임들은 다른 프레임을 참조하지 않고 코딩되는 프레임들과 다른 프레임을 참조하여 코딩되는 프레임 들로 나눌 수 있다. 전자의 경우를 인트라 프레임(Intra Frame)이라 하고 STAR 방식의 스케일러블 비디오 코딩방식과 MPEG 비디오 코딩방식에서는 I 프레임이라고 하고, UMCTF 방식의 스케일러블 비디오 코딩방식에서는 A 프레임이라고 한다. 후자의 경우를 인터 프레임(Inter Frame)이라 하는데, MPEG 비디오 코딩방식에서는 하나의 프레임을 참조한 경우를 P 프레임이라고 하고 두개의 프레임을 참조한 경우를 B 프레임이라고 한다. 한편, 스케일러블 비디오 코딩방식에서는 인터 프레임을 H 프레임이라고 부른다.
(a)는 가장 높은 해상도를 갖는 제1 비트스트림(704x576)이고 인트라 프레임(610)과 인터 프레임(620)을 포함한다. (c)는 제1 비트스트림과 인트라 프레임을 공유한 제2 비트스트림(352X288)이고 인터 프레임(640)들만을 가지고 있다.
(b)는 (a)와 (c)로 재구성된 제2 비트스트림(352X288)으로서 제1 비트스트림의 공유된 인트라 프레임에서 얻은 인트라 프레임(630)과 제2 비트스트림의 인터 프레임(640)을 포함한다.
제2 비트스트림이 제1 비트스트림과 인트라 프레임을 공유한다는 말은 제2 비트스트림은 인트라 프레임을 포함하지 않는 것을 의미하고, 제2 비트스트림으로부터 비디오 시퀀스를 복원할 때는 제1 비트스트림의 공유된 인트라 프레임을 이용한다. 즉, 수퍼 비트스트림에는 제1 비트스트림(a)과 제2 비트스트림(c)을 포함하고 있으며, 352X288의 해상도를 갖는 비디오 시퀀스를 요청받으면 비디오 스트리밍 제공자는 수퍼 비트스트림에 포함된 제1 비트스트림(a)의 인트라 프레임과 제2 비트스트림(c)을 이외의 다른 비트스트림들을 제거하여 재구성된 제2 비트스트림(b) 을 만든다.
도 7은 본 발명의 다른 실시예에 따른 인트라 프레임 공유를 설명하기 위한 도면이다.
본 실시예는 도 6의 실시예와 마찬가지로 인트라 프레임을 공유방식을 채용한다. 다른 점은 제2 비트스트림의 프레임 레이트가 제1 비트스트림의 프레임 레이트보다 작아졌다는 점이다. 한편, 저해상도의 비트스트림의 경우에 도시된 바와같이 프레임 레이트가 고해상도보다 작아진데 반해 GOP 사이즈는 동일하게 하였다.
시 말하면 GOP간 시간 간격을 길게 함으로써 재구성된 제2 비트스트림의 인트라 프레임의 수를 최소화한다. 따라서, 이 경우에 프리디코더를 거쳐 전송되는 제2 비트스트림의 인트라 프레임의 비율은 도 6의 실시예보다 적어지게 되므로 적은 보다 적은 대역폭으로도 비디오 스트리밍 서비스를 할 수 있다. 예를 들면, 제2 비트스트림의 GOP간 시간간격은 제1 비트스트림의 GOP간 시간간격보다 2배로 길어지게 된다. 다시 말하면 제2 비트스트림은 제1 비트스트림에 비해 프레임 레이트가 1/2이면서 GOP를 구성하는 프레임의 수를 동일하게 함으로써 GOP간 시간간격은 제1 비트스트림의 그것보다 2배가 된다. 이 때 제2 비트스트림의 H(2) 프레임은 도시된 바와 같이 인트라 코딩하지 않고 인터 코딩하여 얻는다. 한편, 도 6의 실시예와 마찬가지로 제2 비트스트림은 제1 비트스트림과 인트라 프레임 공유를 할 수 있는데, 이러한 경우에 제2 비트스트림은 제1 비트스트림의 2 GOP마다 인트라 프레임(710)을 공유한다. 수퍼 비트스트림에는 제1 비트스트림과 제2 비트스트림이 포함되어 있는데, 352X288의 해상도를 갖는 비디오 시퀀스를 요청받으면 비디 오 스트리밍 제공자는 수퍼 비트스트림에서 제1 비트스트림의 인터 프레임(720)과 인트라 프레임 공유되지 않은 인트라 프레임(750)을 제거하고, 인트라 프레임 공유된 인트라 프레임(710)의 일부 비트들을 잘라내어 재구성한 인트라 프레임(730)을 만들고 제2 비트스트림의 인터 프레임(740)과 함께 재구성된 제2 비트스트림을 만든다. 재구성된 제2 비트스트림은 비디오 디코더로 전송한다. 한편, GOP의 시간간격 조정과 인트라 프레임 공유방식을 모드 채용하는 실시예도 가능하지만, 인트라 프레임 공유를 전혀 하지 않고 프레임 레이트에 따라 비트스트림들의 GOP의 시간 간격만 다르게 하는 실시예도 가능하다.
도 6과 도 7의 실시예의 해상도 및(또는) 프레임 레이트가 다른 복수의 비트스트림들간의 리던던씨를 제거하는데 효과적이다. 도 6과 7의 실시예는 비디오 코딩 기술과 독립적인 기술이기 때문에 인트라 프레임과 인터 프레임을 사용하는 스케일러블 비디오 코딩 알고리즘들의 대부분은 도 6과 도 7의 실시예에 따른 비디오 코딩이 가능하다.
한편, 도 6과 도 7의 실시예와 같이 해상도를 줄이기 위해 제1 비트스트림의 인트라 프레임의 일부 비트들을 잘라내어 재구성된 제2 비트스트림의 인트라 프레임을 얻는 방식도 가능하지만, 제1 비트스트림의 인트라 프레임의 해상도를 그대로 유지하면서 제2 비트스트림의 인터 프레임과 함께 재구성된 제2 비트스트림을 얻을 수도 있다. 이러한 방식은 프레임의 해상도를 쉽게 조절하기 어려운 스케일러블하지 않은 AVC 비디오 코딩방식을 적용하는 경우에 유용할 수 있다. 즉, 도 7에서 제1 및 제2 비트스트림이 AVC 비디오 코딩방식으로 생성된 비트스트림일 경우에 재 구성된 제2 비트스트림은 제1 비트스트림의 인트라 프레임(710)과 제2 비트스트림의 인터 프레임(740)으로 구성할 수 있다. 이 경우에 디코더는 인트라 프레임(710)을 복원하고 다운샘플링하여 인터 프레임(740)을 복원하기 위한 참조 프레임으로 사용할 수 있다.
앞서 설명했듯이 일부 실시예들에서는 하나의 비디오 시퀀스를 이용하여 서로 다른 해상도의 하나 또는 그 이상의 비디오 시퀀스들을 만들고, 각 해상도의 비디오 시퀀스들을 스케일러블 비디오 코딩방법으로 코딩하여 스케일러블 비트스트림들을 생성하고 스케일러블 비트스트림들의 전부 혹은 (인트라 프레임을 제외한) 일부를 포함하여 수퍼 비트스트림을 생성한다. 스케일러블 비디오 코딩 방식에서는 비디오 시퀀스에서 저해상도의 비디오 시퀀스를 만들 때 웨이브렛 변환된 프레임의 저주파 서브밴드로부터 저해상도의 비디오 시퀀스를 얻는다. 실제적으로 웨이브렛 변환 방식으로 저해상도 프레임을 얻을 때 저해상도는 샤프한 이미지가 되는 경향이 있다. 이러한 경우에 모션 보상 시간적 필터링이 쉽지 않아 비디오 코딩의 효율이 나빠질 수 있다. 따라서 비디오 시퀀스로부터 저해상도 비디오 시퀀스를 얻을 때 기존의 MPEG 비디오 코딩방식 다운샘플링을 이용하면 좀더 부드러운 저해상도의 비디오 시퀀스를 얻을 수 있다. 한편, MPEG 비디오 코딩방식의 다운샘플링을 이용할 때 웨이브렛 방식과의 조화를 위해 웨이브렛 방식으로 프레임을 다운샘플링하고 다운샘플링된 프레임을 업샘플링한 후 MPEG 비디오 코딩방식으로 다운샘플링할 수도 있다.
한편, 도 6과 도 7의 실시예에서 제2 비트스트림은 제1 비트스트림을 생성하 는데 사용되는 비디오 시퀀스를 웨이브렛 방식으로 다운샘플링하여 얻은 비디오 시퀀스를 스케일러블 비디오 코딩하여 얻는다. 이러한 경우에 352X288의 비디오 스트리밍 서비스를 위해서 비디오 스트리밍 제공자는 수퍼 비트스트림에서 불필요한 비트를 제거하여 인트라 프레임을 포함하지 않는 제2 비트스트림과 제1 비트스트림의 일부 또는 전부의 인트라 프레임을 남겨둔다. 한편, 제1 비트스트림의 남겨진 인트라 프레임으로 352X288 해상도의 인트라 프레임을 만들기 위해서 웨이브렛 변환으로 생성된 제1 해상도의 인트라 프레임에서 고주파 서브밴드를 제거한다. 즉, 제1 해상도(704X576)의 인트라 프레임은 352X288의 크기를 갖는 4개의 서브밴드들(하나의 저주파 서브밴드와 3개의 고주파 서브밴드들)로 구성되는데, 저주파 서브밴드를 남겨두고 고주파 서브밴드들을 제거하여 제2 해상도(352X288)의 인트라 프레임을 얻는다. 비디오 시퀀스를 다운샘플링할 때 웨이브렛 방식으로 각 프레임들을 다운샘플링하는 것보다 MPEG 방식으로 각 프레임들을 다운샘플링할 때 보다 부드러운 이미지를 갖는 프레임들이 된다. 따라서 MPEG 방식으로 다운샘플링한 비디오 시퀀스로 제2 비트스트림을 생성하는 것이 웨이브렛 방식으로 다운샘플링한 비디오 시퀀스로 제2 비트스트림을 생성한 것보다 압축효율과 화질이 좋을 수 있다.
비디오 시퀀스를 직접 MPEG 방식으로 다운샘플링하여 저해상도의 비디오 시퀀스를 생성하고 이를 비디오 코딩할 수도 있지만, 웨이브렛 방식으로 다운샘플링하고 다운샘플링된 각 프레임들을 업샘플링한 후 MPEG 방식으로 다운샘플링한 저해상도의 비디오 시퀀스를 생성하고 이를 비디오 코딩할 수도 있다. 후자의 경우는 도 8을 참조하여 설명한다.
도 8은 본 발명의 또 다른 실시예에 따른 부드러운 참조 프레임을 생성하는 방법을 설명하기 위한 도면이다.
도면에서 D는 다운샘플링을 의미하고, U는 업샘플링을 의미한다. 아래 첨자중에서 W는 웨이브렛 방식을 의미하고, M은 MPEG 방식을 의미한다. F는 고해상도 프레임을 의미하고, Fs는 저해상도 프레임을 의미하고, FL은 고해상도 프레임의 저주파 서브밴드를 의미한다.
저해상도의 비트스트림을 생성하기 위하여 비디오 시퀀스를 웨이브렛 방식으로 다운샘플링하고 다운샘플링된 비디오 시퀀스를 업샘플링한 후 MPEG 방식으로 다운샘플링한다. 그리고 나서 MPEG 방식으로 다운샘플링된 저해상도의 비디오 시퀀스를 스케일러블 비디오 코딩한다. 저해상도의 프레임 Fs가 인트라 프레임인 경우에 비트스트림(수퍼 비트스트림)에는 포함시키지 않는다. 저해상도의 프레임 Fs는 수퍼 비트스트림에 포함된 고해상도의 인트라 프레임 F로부터 구할 수 있다. 다시 말하면 인트라 프레임 Fs는 비트스트림(수퍼 비트스트림)에 포함시키지 않고 F를 통해서 얻는다. 즉, F를 웨이브렛 방식으로 다운샘플링하고 다시 업샘플링하면 원래의 F와 거의 유사한 이미지가 된다. 이를 다시 MPEG 방식으로 다운샘플링하면 부드러운 저 해상도 인트라 프레임 Fs를 얻을 수 있다. 한편 고해상도의 인트라 프레임 F는 웨이브렛 변환과 양자화를 거쳐 수퍼 비트스트림에 포함된다. 디코더측에서 수신하기 전에 수퍼 비트스트림은 프리디코더에서 일부 비트들이 잘려진다.
F에서 고주파 서브밴드가 잘려지면 F의 저주파 서브밴드(FL)를 얻을 수 있 다. F의 저주파 서브밴드 FL은 F를 웨이브렛 방식으로 다운샘플링한 것(DW(F))과 같다. 디코더측에서는 FL을 수신하고 이를 웨이브렛 방식으로 업샘플링하고 다시 MPEG 방식으로 다운샘플링하면 부드러운 인트라 프레임을 얻을 수 있다.
이를 일반화 시키면 고해상도 비디오 시퀀스에서 저해상도 비디오 시퀀스를 얻기 위해 A라는 방식의 다운샘플링을 사용하였고, 고해상도 비디오 시퀀스와 저해상도 비디오 시퀀스를 비디오 코딩하여 고해상도 및 저해상도 비트스트림들생성한다. 그리고 나서 고해상도 및 저해상도 비트스트림들을 포함하는 수퍼 비트스트림을 생성한다. 이 때 수퍼 비트스트림에 포함된 고해상도 비트스트림에는 모든 프레임들이 포함되지만 저해상도 비트스트림에는 인트라 프레임을 제외한 인터 프레임들만 포함된다. 이러한 저해상도 수퍼 비트스트림에서 저해상도의 비디오 시퀀스를 복원하려면 수퍼 비트스트림에서 불필요한 비트들을 잘라낸다. 잘라내는 비트들에는 고해상도 비트스트림의 인터 프레임들과 고해상도의 인트라 프레임 공유된 프레임이 아닌 인트라 프레임이다. 그리고 고해상도의 인트라 프레임 공유된 프레임에서 고주파 서브밴드들을 잘라낸다. 이렇게 함으로써 수퍼 비트스트림에는 고해상도 인트라 프레임 공유된 프레임의 저주파 서브밴드들과 저해상도의 인터 프레임들이 남는다. 비디오 디코더는 수신된 수퍼 비트스트림안의 고해상도의 저주파 서브밴드들로 인트라 프레임을 복원하고 복원된 인트라 프레임을 업샘플링하고 나서 다시 A라는 다운샘플링방식으로 다운샘플링하여 저해상도의 인터프레임을 복원하기 위한 기준 프레임을 생성한다. 여기서 A 방식은 웨이브렛 방식을 제외한 MPEG에 관한 문서 N3908에 기재된 MPEG 다운샘플링 필터링 방식이 될 수도 있고, 이미지 필터분야에서 잘 알려진 bicubic 필터일 수도 있다.
이와 같은 방식은 비디오 코딩에만 적용되는 것은 아니며, 정지된 이미지에도 적용할 수 있다. 즉, 웨이브렛 방식으로 다운샘플링된 이미지가 날카롭기 때문에 MPEG 방식으로 다운샘플링된 이미지를 얻고 싶다면, 다운샘플링된 이미지를 웨이브렛 방식으로 업샘플링하고, 업샘플링된 이미지를 MPEG 방식으로 다운샘플링 하여 부드러운 이미지를 얻는다.
도 9는 본 발명의 일 실시예에 따른 비디오 스트리밍 서비스 과정을 보여주는 도면이다.
비디오 스트리밍 서비스 과정을 설명하면 다음과 같다.
1. 본 실시예에서 스케일러블 비디오 인코더(910)는 하나의 비디오 시퀀스에 대해 해상도 및(또는) 프레임 레이트를 달리한 다양한 비디오 시퀀스들을 만들고 비디오 시퀀스들을 비디오 코딩한다.
2. 비디오 코딩을 통해 생성된 복수의 스케일러블 비트스트림으로부터 하나의 수퍼 비트스트림을 생성한다. 수퍼 비트스트림에 대해서는 도 10을 통해 보다 상세히 설명한다.
3. 생성된 수퍼 비트스트림을 프리디코더(920)에 전달한다.
4. 비디오 디코더(930)를 사용하는 사용자가 비디오 시퀀스 및 해상도/프레임 레이트/품질을 요청한다. 한편, 과정 3. 과 과정 4. 는 순서를 달리할 수 있다.
5. 프리디코더(920)는 비디오 시퀀스에 대한 해상도/프레임 레이트/품질을 요청받으면 수퍼 비트스트림으로부터 일부 불필요한 비트들을 잘라낸다.
6. 그리고 나서 프리디코더(920)는 불필요한 비트들이 잘려진 수퍼 비트스트림을 비디오 디코더(930)로 전달한다.
7. 비디오 디코더(930)는 전달받은 수퍼 비트스트림으로부터 비디오 시퀀스를 복원한다.
프리디코더(920)는 비디오 스트리밍 서비스의 형태들에 따라 각기 다른 곳에 위치할 수 있다. 일 실시예에 있어서, 프리디코더(920)는 비디오 스트리밍 제공자측에 존재한다. 즉, 스케일러블 비디오 인코더(910)와 프리디코더(920)는 비디오 스트리밍 제공자로서, 비디오 디코더(930)를 사용하는 사용자측으로부터 비디오 시퀀스 및 이에 대한 해상도/프레임 레이트/품질을 요청받을 때 비디오 시퀀스의 수퍼 비트스트림을 프리디코딩하여 전달한다. 따라서, 스트리밍 서비스 제공자와 사용자간의 네트워크 상에서 전달되는 수퍼 비트스트림은 불필요한 부분은 제거된 상태이다.
다른 실시예에 있어서, 비디오 스트리밍 제공자는 프리디코더(920)를 포함하고 있으며, 스케일러블 비디오 인코더(910)를 포함하고 있는 콘텐츠 제공자로부터 수퍼 비트스트림을 공급받는다. 수퍼 비트스트림 공급은 유선 또는 무선을 통해 온라인으로 전달받을 수도 있고, 저장매체를 통해 오프라인상으로 전달받을 수도 있다. 전달받은 수퍼 비트스트림은 비디오 스트리밍 제공자의 저장장치(미 도시됨)에 저장한다. 비디오 디코더(930)를 사용하는 사용자로부터 비디오 시퀀스를 요청받으면 비디오 스트리밍 제공자는 요청받은 비디오 시퀀스에 대한 수퍼 비트스트림을 저장장치(미 도시됨)로부터 찾고, 찾은 수퍼 비트스트림에 불필요한 부분을 잘라낸 후에 이를 사용자측에 전달한다.
또 다른 실시예에 있어서, 프리디코더(920)는 사용자측에 존재한다. 비디오 스트리밍 제공자측에는 프리디코더(920)를 포함할 수도 있고, 포함하지 않을 수도 있다. 전자의 경우에는 앞서 설명한 일 실시예에 준하는 동작을 한다. 후자의 경우를 살펴본다. 비디오 스트리밍 제공자는 스케일러블 비디오 인코더(910)를 통해 비디오 시퀀스에 대한 수퍼 비트스트림을 생성한다. 사용자측으로부터 비디오 시퀀스의 요청을 받으면 수퍼 비트스트림을 사용자측에 유선 또는 무선으로 전달한다. 사용자측은 전달받은 수퍼 비트스트림이 원하는 해상도/프레임 레이트/화질이 되도록 불필요한 부분을 수퍼 비트스트림에서 잘라난 후 수퍼 비트스트림으로부터 비디오 시퀀스를 복원한다.
또 다른 실시예에 있어서, 프리디코더(920)는 원하는 해상도/프레임 레이트의 비트스트림이 수퍼 비트스트림 내에 존재하지 않는 경우에 더 높은 해상도/프레임 레이트의 어느 한 비트스트림을 제외한 나머지 부분의 비트들을 수퍼 비트스트림으로부터 잘라낸다. 바람직하게는 원하는 해상도/프레임 레이트의 비트스트림에서 가장 해상도의 차이가 적은 비트스트림을 제외한 나머지 부분들을 잘라낸다.
도 10은 본 발명의 일 실시예에 따른 수퍼 비트스트림의 구조를 보여주는 도면이다.
수퍼 비트스트림은 다음과 같은 과정을 거쳐 생성된다. 하나의 비디오 시퀀 스에서 다양한 해상도의 비디오 시퀀스들을 생성한다. 각 비디오 시퀀드들을 스케일러블 비디오 코딩 방식으로 압축하여 비트스트림을 얻고, 각 비트스트림을 통합하여 수퍼 비트스트림을 얻는다. 비트스트림에는 비디오 압축과정에서 얻은 움직임 보상 벡터들과, 웨이브렛 변환 계수들을 임베디드 양자화하여 얻은 정보들이 포함된다.
수퍼 비트스트림은 수퍼 비트스트림 헤더(900)와, 제1 내지 제n 비트스트림들(910-1 내지 910-n)을 포함한다. 수퍼 비트스트림 헤더(900)에는 수퍼 비트스트림에 필요한 다양한 정보를 포함한다. 예를 들면, 수퍼 비트스트림에 포함된 비트스트림들의 개수, 인트라 프레임 공유여부에 대한 정보 등이 수퍼 비트스트림 헤더(900)에 포함될 수 있다.
각 비트스트림들 중에서 제1 비트스트림(1010-1)을 살펴본다.
제1 비트스트림(1010-1)에는 가장 높은 해상도의 원래 비디오 시퀀스를 비디오 코딩한 정보들이 들어 있다. 비트스트림 헤더(1020)에는 제1 비트스트림에 대한 각종 필요한 정보가 담겨있다. 제1 비트스트림의 길이, 해상도, 프레임 레이트, GOP의 개수 등의 정보가 담겨있다. GOP 헤더(1030)에는 GOP 정보가 담겨있는데, GOP를 구성하는 프레임의 수, GOP의 크기 등이 담겨있다. GOP 헤더(1030) 다음으로 각 프레임들(1040-1 내지 1040-n)이 뒤따른다. 하나의 GOP가 끝나면 다음 GOP가 시작되는데, 이 경우에도 GOP 헤더가 먼저 오고 프레임들이 뒤따른다.
이 들 중에서 프레임 #1(1040-1)을 살펴본다. 프레임 #1(1040-1)은 GOP의 첫 프레임으로서 대개의 스케일러블 비디오 코딩 방식에서는 인트라 프레임(I 프레 임 또는 A 프레임)이 된다. 프레임 헤더(1050)에는 프레임이 어떤 종류의 프레임인지를 나타내는 정보와 프레임의 크기 등의 필요한 정보를 포함한다. 프레임 헤더(1050) 뒤에는 저주파 서브밴드(1060)와 고주파 서브밴드(1070) 정보가 뒤따른다. 저주파 서브밴드(1060)는 해당 프레임을 웨이브렛 변환하여 얻은 저주파 성분(LL 이미지)을 임베디드 양자화 과정을 거쳐 얻은 텍스쳐 이미지를 말하고 고주파 서브밴드(1070)는 해당 프레임을 웨이브렛 변환하여 얻은 고주파 성분(LH, HH 이미지들)을 임베디드 양자화 과정을 거쳐 얻은 텍스쳐 이미지를 말한다. 이 외에 프레임 #1(1040-1)에는 움직임 벡터 정보(도시되지 않음)를 포함한다.
수퍼 비트스트림과 관련하여 도 6과 도 7의 실시예에서 저주파 인트라 프레임 공유의 경우를 살펴본다. 가장 높은 해상도의 제1 비트스트림(1010-1)에는 원시 비디오 시퀀스의 모든 프레임 정보를 포함하고 있다. 그렇지만 낮은 해상도의 제2 비트스트림(1010-2)에는 인트라 프레임은 포함되지 않는다. 수퍼 비트스트림을 프리디코딩하여 제2 비트스트림을 얻는다고 할 때, 다양한 방식이 가능하다. 일 실시예는 제1 비트스트림(1010-1)의 인트라 프레임들과 제2 비트스트림(1010-2)을 남겨두고 다른 부분들을 잘라낸다. 이러한 경우에 디코딩측에서는 제1 비트스트림의 인트라프레임을 복원하고 다음 샘플링한다음에 제2 비트스트림의 나머지 프레임들을 복원할 수 있다.
다른 실시예는 일 실시예는 제1 비트스트림(1010-1)의 인트라 프레임들과 제2 비트스트림(1010-2)을 남겨두고 다른 부분들을 잘라낸다. 그리고 나서 남겨진 제1 비트스트림(1010-1)의 각 인트라 프레임들의 저주파 서브밴드를 남기고 고주파 서브밴드를 제거한다. 그리고 나서 디코딩측에서는 제1 비트스트림의 인트라프레임의 저주파 서브밴드를 복원한 후에 업샘플링하고 다시 다운샘플링하여 다른 인터 프레임을 위한 참조 프레임을 복원한다. 일 실시예와 다른 실시예를 비교하면, 후자의 경우가 디코딩측에 전송되는 비트스트림의 데이터량이 전자의 경우보다 작다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 상세한 설명에서 복수의 스케일러블 비디오 코딩방식을 이용한 비디오 스트리밍 제공자에 대해서 설명하였으나, 스케일러블 비디오 코딩방식과 스케일러빌리티를 갖지 않는 비디오 코딩방식을 모두 사용한 비디오 스트리밍 서비스 또한 가능하다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명에 따르면 좋은 화질과 비디오 코딩 효율을 갖는 동시방송을 위한 비디오 코딩이 가능하며 이를 이용한 비디오 스트리밍 서비스를 제공할 수 있다.
또한 본 발명에 따르면 비디오 스트리밍 서비스를 위한 비디오 코딩 알고리즘의 효율을 높일 수 있다.
이와 더불어 본 발명에 따르면 비디오 스트리밍 서비스에 의해 제공되는 비 디오 스트림의 화질을 개선할도 10은 본 발명의 일 실시예에 따른 수퍼 비트스트림의 구조를 보여주는 도면이다.
도 9는 본 발명의 일 실시예에 따른 비디오 스트리밍 서비스 과정을 보여주는 도면이다.
(1010-1) 수 있다. 이러한 화질 개선은 비단 동영상에서만 의미가 있는 것은 아니며 개별적인 이미지(정지영상)에 대해서도 의미가 있을 수 있다.

Claims (35)

  1. 제1 비디오 시퀀스를 스케일러블 비디오 코딩함으로써 스케일 가능한 제1 비트스트림을 생성하는 단계;
    상기 제1 비디오 시퀀스와 해상도, 프레임 레이트 및 화질 중 적어도 하나가 다른 제2 비디오 시퀀스를 스케일러블 비디오 코딩함으로써 스케일 가능한 제2 비트스트림을 생성하는 단계; 및
    상기 제1 및 제2 비트스트림을 포함하는 수퍼 비트스트림을 생성하는 단계를 포함하는 비디오 코딩방법.
  2. 제1항에 있어서,
    상기 제1 및 제2 비디오 시퀀스와 해상도, 프레임 레이트 및 화질 중 적어도 하나가 다른 제3 내지 제n 비디오 시퀀스를 각각 스케일러블 비디오 코딩하여 제3 내지 제n 비트스트림을 생성하는 단계를 더 포함하며, 상기 수퍼 비트스트림은 상기 제3 내지 제n 비트스트림을 더 포함하는 비디오 코딩방법.
  3. 제 2항에 있어서,
    상기 제 2 비디오 시퀀스 내지 제 n 비디오 시퀀스는 상기 제 1 비디오 시퀀스를 구성하는 각 프레임들을 다운샘플링하는 해상도 변환과, 상기 제1 비디오 시퀀스를 구성하는 프레임들 중 일부 프레임을 제거하는 프레임 레이트 변환 중 적어도 한 가지 변환을 적용하여 얻는 비디오 코딩방법.
  4. 제3항에 있어서,
    상기 다운샘플링 방식은 상기 제1 비디오 시퀀스를 구성하는 각 프레임들을 MPEG 방식으로 다운샘플링하는 것인 비디오 코딩방법.
  5. 제3항에 있어서,
    상기 다운샘플링 방식은 상기 제1 비디오 시퀀스를 구성하는 각 프레임들을 웨이브렛 방식으로 다운샘플링하고 상기 다운샘플링된 각 프레임들을 웨이브렛 방식으로 업샘플링한 후에 MPEG 방식으로 다운샘플링하는 것인 비디오 코딩방법.
  6. 제1항에 있어서,
    상기 수퍼 비트스트림에 포함된 상기 제2 비트스트림은 인트라 코딩된 프레임을 포함하지 않는 비디오 코딩방법.
  7. 제1항에 있어서,
    상기 제2 비디오 시퀀스는 상기 제1 비디오 시퀀스보다 낮은 프레임 레이트를 갖고 상기 제1 비디오 시퀀스보다 긴 GOP간 시간간격을 갖는 비디오 코딩방법.
  8. 제1 비디오 시퀀스 및 상기 제1 비디오 시퀀스와 해상도, 프레임 레이트 및 화질 중 적어도 하나가 다른 제2 내지 제n(n은 2이상의 자연수) 시퀀스들을 각각 비디오 코딩하여 제1 내지 제n 비트스트림들 생성하는 단계; 및
    상기 제1 내지 제n 비트스트림들을 포함하는 수퍼 비트스트림을 생성하는 단계를 포함하는데,
    상기 제1 내지 제n 비트스트림들 중 적어도 하나는 스케일 가능하도록 스케일러블 비디오 코딩 방식으로 생성된 비디오 코딩방법.
  9. 삭제
  10. 제8항에 있어서,
    상기 제1 내지 제n 비트스트림들 중 적어도 하나는 스케일러블 비디오 코딩 방식으로 생성되고 상기 제1 내지 제n 비트스트림들 중 적어도 하나는 AVC 비디오 코딩 방식으로 생성된 비디오 코딩방법.
  11. 제8항에 있어서,
    상기 제1 내지 제n 비트스트림들 중 가장 높은 해상도의 비트스트림은 AVC 비디오 코딩 방식으로 생성된 비디오 코딩방법.
  12. 제8항에 있어서,
    상기 제1 내지 제n 비트스트림들 중 가장 낮은 해상도의 비트스트림은 AVC 비디오 코딩 방식으로 생성된 비디오 코딩방법.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 제1 비디오 시퀀스를 스케일러블 비디오 코딩함으로써 스케일 가능한 제1 비트스트림을 생성하는 제1 스케일러블 비디오인코딩부;
    상기 제1 비디오 시퀀스와 해상도, 프레임 레이트 및 화질 중 적어도 하나가 다른 제2 비디오 시퀀스를 스케일러블 비디오 코딩함으로써 스케일 가능한 제2 비트스트림을 생성하는 제2 스케일러블 비디오 인코딩부; 및
    상기 생성된 제1 비트스트림, 제2 비트스트림 및 필요한 헤더 정보를 포함하는 수퍼 비트스트림을 생성하는 수퍼 비트스트림 생성부를 포함하는 비디오 인코더.
  17. 제16항에 있어서,
    상기 비디오 인코딩부는 스케일러블 비디오 코딩방식으로 비디오 시퀀스들을 비디오 코딩하는 비디오 인코더.
  18. 제16항에 있어서,
    상기 비디오 인코딩부는 AVC 방식으로 비디오 시퀀스들을 비디오 코딩하는 비디오 인코더.
  19. 제16항에 있어서,
    상기 비디오 인코딩부는 상기 제1 내지 제n 비디오 시퀀스들 중에서 적어도 하나 이상은 스케일러블 비디오 코딩방식으로 비디오 시퀀스들을 비디오 코딩하고, 상기 제1 내지 제n 비디오 시퀀스들 중 적어도 하나 이상은 AVC 방식으로 비디오 코딩하는 비디오 인코더.
  20. 제16항에 있어서,
    비디오 시퀀스를 구성하는 프레임들을 다운샘플링하는 해상도 변환과, 프레임들 중 일부를 선택하여 프레임 레이트를 줄이는 프레임 레이트 변환을 수행하는 변환부를 더 포함하며,
    상기 변환부는 상기 제1 비디오 시퀀스를 변환하여 제2 내지 제n 비디오 시 퀀스를 생성하는 비디오 인코더.
  21. 제16항에 있어서,
    상기 비디오 인코딩부는 제1 내지 제n 비디오 시퀀스를 각각 비디오 코딩하여 비트스트림들을 생성할 때 최소한 하나의 비트스트림들에는 인트라 프레임을 포함하지 않도록 비디오 코딩하는 비디오 인코더.
  22. 소정의 해상도와 프레임 레이트 및 화질을 갖는 비디오 시퀀스를 요청받는 단계;
    요청받은 비디오 시퀀스에 대한 서로 다른 해상도와 프레임 레이트를 갖는 복수의 비트스트림들을 포함하는 수퍼 비트스트림이 요청받은 해상도와 프레임 레이트 및 화질이 되도록 상기 수퍼 비트스트림의 일부를 잘라내는 단계; 및
    상기 일부가 잘려진 수퍼 비트스트림을 디코더로 전송하는 단계를 포함하는 프리디코딩 방법.
  23. 제22항에 있어서,
    상기 수퍼 비트스트림의 일부를 잘라내는 단계는 요청받은 해상도와 프레임 레이트에 해당하는 비트스트림(A)을 상기 수퍼 비트스트림에서 선택하고, 요청받은 해상도와 프레임 레이트 및 화질을 갖도록 수퍼 비트스트림에서 상기 선택된 비트스트림(A)을 제외한 나머지 비트스트림들(C)과 상기 선택된 비트스트림(A)의 불필 요한 비트들을 잘라내는 프리디코딩 방법.
  24. 제22항에 있어서,
    상기 수퍼 비트스트림의 일부를 잘라내는 단계는 요청받은 해상도와 프레임 레이트에 해당하는 비트스트림(A)을 상기 수퍼 비트스트림에서 선택하고, 상기 선택된 비트스트림(A)이 인트라 프레임을 포함하지 않는 경우에, 상기 요청받은 해상도와 프레임 레이트 및 화질을 갖도록 수퍼 비트스트림에서 상기 선택된 비트스트림(A)과 인트라 프레임을 공유한 비트스트림(B)을 제외한 나머지 비트스트림들(C)과 상기 선택된 비트스트림(A) 및 상기 인트라 프레임을 공유한 비트스트림(B)의 불필요한 비트들을 잘라내는 프리디코딩 방법.
  25. 소정의 해상도와 프레임 레이트 및 화질을 갖는 비디오 시퀀스를 요청받는 요청 수신부;
    상기 요청받은 비디오 시퀀스에 대한 서로 다른 해상도와 프레임 레이트를 갖는 복수의 비트스트림들을 포함하는 수퍼 비트스트림이 요청받은 해상도와 프레임 레이트 및 화질이 되도록 상기 수퍼 비트스트림의 일부를 잘라내는 수퍼 비트스트림 절단부; 및
    상기 절단된 수퍼 비트스트림을 디코더로 전송하는 전송부를 포함하는 프리디코더.
  26. 압축된 비디오 시퀀스를 수신하여, 상기 압축된 비디오 시퀀스를 역양자화하고 역변환하여 인트라 프레임을 복원하는 단계;
    상기 인트라 프레임이 인터 프레임의 참조 프레임이 될 수 있도록 상기 인트라 프레임을 업샘플링 또는 다운샘플링 하는 단계; 및
    상기 업샘플링 또는 다운샘플링 된 인트라 프레임을 참조하여 인터 프레임을 복원하는 단계를 포함하는 비디오 시퀀스 복원방법.
  27. 삭제
  28. 제26항에 있어서,
    상기 인트라 프레임의 필터링은 상기 디코딩된 인트라 프레임을 웨이브렛 방식으로 업샘플링하고, 업샘플링된 프레임을 다시 MPEG 방식으로 다운샘플링하는 비디오 시퀀스 복원방법.
  29. 압축된 비디오 시퀀스를 복원하는 장치에 있어서,
    상기 압축된 비디오 시퀀스를 수신하는 수신부;
    상기 수신된 압축된 비디오 시퀀스를 디코딩하여 인트라 프레임을 복원하는 디코딩부; 및
    상기 복원된 인트라 프레임이 인터 프레임의 참조 프레임이 될 수 있도록 상기 인트라 프레임을 업샘플링 또는 다운샘플링 하는 필터링부를 포함하며,
    상기 디코딩부는 상기 업샘플링 또는 다운샘플링 된 인트라 프레임을 참조하여 상기 수신된 압축된 비디오 시퀀스를 디코딩하여 인터 프레임을 복원하는 비디오 시퀀스 복원장치.
  30. 삭제
  31. 제30항에 있어서,
    상기 디코딩된 인트라 프레임을 웨이브렛 방식으로 업샘플링하고, 업샘플링된 프레임을 다시 MPEG 방식으로 다운샘플링하는 비디오 시퀀스 복원장치.
  32. 제31항에 있어서,
    상기 디코딩부는 상기 압축된 비디오 시퀀스를 역양자화하고 역양자화로 얻은 변환계수들을 역공간적 변환하여 인트라 프레임을 복원하고, 상기 필터링부가 상기 복원된 인트라 프레임을 필터링하며, 상기 디코딩부는 상기 압축된 비디오 시퀀스를 역양자화하고 역양자화로 얻은 변환계수들을 역공간적 변환한 후 상기 필터링된 인트라 프레임을 참조하여 인터 프레임을 복원하는 비디오 시퀀스 복원장치.
  33. 제1항 내지 제8항, 제10항 내지 제12항, 제22항 내지 제24항, 제26항 및 제28항 중 어느 한 항의 방법을 실행시키기 위한 컴퓨터로 읽을 수 있는 기록매체.
  34. 웨이브렛 방식으로 다운샘플링된 이미지를 웨이브렛 방식으로 업샘플링하는 단계; 및
    상기 업샘플링된 이미지를 소정의 다운샘플링 방식으로 다운샘플링하는 단계를 포함하는 웨이브렛 방식으로 다운샘플링된 이미지를 필터링하는 방법.
  35. 제34항에 있어서,
    상기 다운샘플링 방식은 AVC 다운샘플링 방식인 웨이브렛 방식으로 다운샘플링된 이미지를 필터링하는 방법.
KR1020040027862A 2004-03-04 2004-04-22 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법 KR100586883B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US54954404P 2004-03-04 2004-03-04
US60/549,544 2004-03-04
KR20040022985 2004-04-02
KR10-2004-0022985 2004-04-02
KR1020040022985 2004-04-02

Publications (2)

Publication Number Publication Date
KR20050089720A KR20050089720A (ko) 2005-09-08
KR100586883B1 true KR100586883B1 (ko) 2006-06-08

Family

ID=34921822

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040027862A KR100586883B1 (ko) 2004-03-04 2004-04-22 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법

Country Status (7)

Country Link
US (2) US8331434B2 (ko)
EP (1) EP1721466A4 (ko)
JP (2) JP4988547B2 (ko)
KR (1) KR100586883B1 (ko)
BR (1) BRPI0508354A (ko)
CA (1) CA2557294C (ko)
WO (1) WO2005086486A1 (ko)

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453355B1 (en) 1998-01-15 2002-09-17 Apple Computer, Inc. Method and apparatus for media data transmission
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
EP2348640B1 (en) 2002-10-05 2020-07-15 QUALCOMM Incorporated Systematic encoding of chain reaction codes
CN1954501B (zh) 2003-10-06 2010-06-16 数字方敦股份有限公司 通过通信信道接收从源发射的数据的方法
US7418651B2 (en) 2004-05-07 2008-08-26 Digital Fountain, Inc. File download and streaming system
CN101057296B (zh) * 2004-11-02 2010-10-13 Lg电子株式会社 记录介质以及从该记录介质再现数据的方法和装置
US8780957B2 (en) 2005-01-14 2014-07-15 Qualcomm Incorporated Optimal weights for MMSE space-time equalizer of multicode CDMA system
RU2402885C2 (ru) * 2005-03-10 2010-10-27 Квэлкомм Инкорпорейтед Классификация контента для обработки мультимедийных данных
WO2006137253A1 (ja) * 2005-06-22 2006-12-28 Matsushita Electric Industrial Co., Ltd. 画像生成装置および画像生成方法
US20070014365A1 (en) * 2005-07-18 2007-01-18 Macinnis Alexander Method and system for motion estimation
US20070022215A1 (en) * 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
US8879635B2 (en) 2005-09-27 2014-11-04 Qualcomm Incorporated Methods and device for data alignment with time domain boundary
DE102005047730B4 (de) * 2005-09-29 2013-03-07 T-Online International Ag Verfahren zur Verbesserung der Videobildqualität
US8948260B2 (en) 2005-10-17 2015-02-03 Qualcomm Incorporated Adaptive GOP structure in video streaming
US8654848B2 (en) * 2005-10-17 2014-02-18 Qualcomm Incorporated Method and apparatus for shot detection in video streaming
US20070206117A1 (en) * 2005-10-17 2007-09-06 Qualcomm Incorporated Motion and apparatus for spatio-temporal deinterlacing aided by motion compensation for field-based video
KR100825743B1 (ko) * 2005-11-15 2008-04-29 한국전자통신연구원 실시간으로 비트스트림의 공간 해상도를 변환할 수 있는스케일러블 비디오 코딩 방법 및 그 방법을 이용한 코덱
US8723951B2 (en) * 2005-11-23 2014-05-13 Grandeye, Ltd. Interactive wide-angle video server
JP5550834B2 (ja) 2006-02-13 2014-07-16 デジタル ファウンテン, インコーポレイテッド 可変fecオーバヘッド及び保護期間を利用したストリーミング及びバッファリング
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US9131164B2 (en) 2006-04-04 2015-09-08 Qualcomm Incorporated Preprocessor method and apparatus
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
KR100806858B1 (ko) * 2006-09-26 2008-02-22 삼성전자주식회사 고화질 영상표시장치 및 그 프레임레이트변환방법
CN101485193B (zh) * 2006-10-19 2012-04-18 松下电器产业株式会社 图像生成装置以及图像生成方法
US20080101455A1 (en) * 2006-10-25 2008-05-01 Digital Deck, Inc. Apparatus and method for multiple format encoding
US8711929B2 (en) * 2006-11-01 2014-04-29 Skyfire Labs, Inc. Network-based dynamic encoding
US8443398B2 (en) * 2006-11-01 2013-05-14 Skyfire Labs, Inc. Architecture for delivery of video content responsive to remote interaction
US9247260B1 (en) 2006-11-01 2016-01-26 Opera Software Ireland Limited Hybrid bitmap-mode encoding
US8375304B2 (en) * 2006-11-01 2013-02-12 Skyfire Labs, Inc. Maintaining state of a web page
KR100805805B1 (ko) * 2006-12-04 2008-02-21 한국전자통신연구원 스케일러블 비디오 스트림의 동적 스케일러블 정보 처리장치 및 그 방법
WO2008069503A1 (en) * 2006-12-04 2008-06-12 Electronics And Telecommunications Research Institute Apparatus and method for dynamically processing scalable information in scalable video coding
WO2008092131A2 (en) * 2007-01-25 2008-07-31 Skyfire Labs, Inc. Mobile device user interface for remote interaction
US20080181298A1 (en) * 2007-01-26 2008-07-31 Apple Computer, Inc. Hybrid scalable coding
US8098941B2 (en) * 2007-04-03 2012-01-17 Aptina Imaging Corporation Method and apparatus for parallelization of image compression encoders
JP2009010649A (ja) * 2007-06-27 2009-01-15 Sharp Corp スケーラブルビデオストリーム復号装置およびスケーラブルビデオストリーム生成装置
US20090052551A1 (en) * 2007-08-23 2009-02-26 Shinji Kitamura Method and apparatus for coding moving image and imaging system
AU2008298602A1 (en) 2007-09-12 2009-03-19 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
JP4829867B2 (ja) * 2007-10-30 2011-12-07 日本放送協会 画像符号化装置及び画像復号装置
JP5216303B2 (ja) * 2007-11-01 2013-06-19 株式会社東芝 合成映像配信装置ならびにその方法およびプログラム
US8457958B2 (en) 2007-11-09 2013-06-04 Microsoft Corporation Audio transcoder using encoder-generated side information to transcode to target bit-rate
JP2009164725A (ja) * 2007-12-28 2009-07-23 Panasonic Corp 画像記録装置および画像再生装置
US8363734B2 (en) * 2008-01-12 2013-01-29 Huaya Microelectronics Multi-directional comb filtering in a digital video decoder
US8965183B1 (en) * 2008-01-30 2015-02-24 Dominic M. Kotab Systems and methods for creating and storing reduced quality video data
JP4849130B2 (ja) * 2008-02-19 2012-01-11 ソニー株式会社 画像処理装置、および画像処理方法、並びにプログラム
JP5369893B2 (ja) * 2008-05-30 2013-12-18 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法、動画像復号プログラム、動画像再符号化装置、動画像再符号化方法、動画像再符号化プログラム
US9232174B1 (en) 2008-06-25 2016-01-05 Dominic M. Kotab Methods for receiving and sending video to a handheld device
TWI387317B (zh) * 2008-12-11 2013-02-21 Novatek Microelectronics Corp 產生重新取樣參考畫面之裝置及其方法與影像解碼系統
US8311115B2 (en) * 2009-01-29 2012-11-13 Microsoft Corporation Video encoding using previously calculated motion information
US8396114B2 (en) * 2009-01-29 2013-03-12 Microsoft Corporation Multiple bit rate video encoding using variable bit rate and dynamic resolution for adaptive video streaming
JPWO2010092740A1 (ja) * 2009-02-10 2012-08-16 パナソニック株式会社 画像処理装置、画像処理方法、プログラムおよび集積回路
US20100208795A1 (en) * 2009-02-19 2010-08-19 Motorola, Inc. Reducing aliasing in spatial scalable video coding
US20100309975A1 (en) * 2009-06-05 2010-12-09 Apple Inc. Image acquisition and transcoding system
US8270473B2 (en) * 2009-06-12 2012-09-18 Microsoft Corporation Motion based dynamic resolution multiple bit rate video encoding
US8209730B2 (en) * 2009-06-22 2012-06-26 Sony Corporation Speculative video on demand
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
JP5395621B2 (ja) * 2009-11-05 2014-01-22 株式会社メガチップス 画像生成方法および画像再生方法
US9143729B2 (en) 2010-05-12 2015-09-22 Blue Jeans Networks, Inc. Systems and methods for real-time virtual-reality immersive multimedia communications
US9225961B2 (en) 2010-05-13 2015-12-29 Qualcomm Incorporated Frame packing for asymmetric stereo video
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US8806050B2 (en) 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
US9407876B1 (en) * 2010-09-14 2016-08-02 Pixia Corp. Method and system for encoding and decoding multiple wide-area surveillance area-of-interest video codestreams
US9124757B2 (en) * 2010-10-04 2015-09-01 Blue Jeans Networks, Inc. Systems and methods for error resilient scheme for low latency H.264 video coding
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
CN103548353B (zh) * 2011-04-15 2015-08-19 Sk普兰尼特有限公司 使用多轨视频的高速可伸缩视频编码装置和方法
KR101594411B1 (ko) * 2011-05-20 2016-02-16 에스케이플래닛 주식회사 고속 움직임 예측을 이용하여 멀티트랙 비디오를 스케일러블 비디오로 인코딩하는 방법 및 장치
US9369673B2 (en) 2011-05-11 2016-06-14 Blue Jeans Network Methods and systems for using a mobile device to join a video conference endpoint into a video conference
US9300705B2 (en) 2011-05-11 2016-03-29 Blue Jeans Network Methods and systems for interfacing heterogeneous endpoints and web-based media sources in a video conference
JP5654414B2 (ja) * 2011-05-26 2015-01-14 日本電信電話株式会社 映像符号化装置、映像符号化方法、プログラム
US11496760B2 (en) 2011-07-22 2022-11-08 Qualcomm Incorporated Slice header prediction for depth maps in three-dimensional video codecs
US9521418B2 (en) 2011-07-22 2016-12-13 Qualcomm Incorporated Slice header three-dimensional video extension for slice header prediction
US9288505B2 (en) 2011-08-11 2016-03-15 Qualcomm Incorporated Three-dimensional video with asymmetric spatial resolution
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9591318B2 (en) 2011-09-16 2017-03-07 Microsoft Technology Licensing, Llc Multi-layer encoding and decoding
US9485503B2 (en) 2011-11-18 2016-11-01 Qualcomm Incorporated Inside view motion prediction among texture and depth view components
US11089343B2 (en) 2012-01-11 2021-08-10 Microsoft Technology Licensing, Llc Capability advertisement, configuration and control for video coding and decoding
KR20130099515A (ko) * 2012-02-29 2013-09-06 삼성전자주식회사 키 프레임을 이용하여 컨텐츠를 재생하는 단말기의 장치 및 방법
US20140044197A1 (en) * 2012-08-10 2014-02-13 Yiting Liao Method and system for content-aware multimedia streaming
EP2793475A1 (en) * 2013-03-15 2014-10-22 Ricoh Company, Ltd. Distribution control system, distribution control method, and computer-readable storage medium
ITMI20130785A1 (it) * 2013-05-13 2014-11-14 Sky Italia S R L Codifica near-real time di un segnale lineare
US9386257B2 (en) 2013-08-15 2016-07-05 Intel Corporation Apparatus, system and method of controlling wireless transmission of video streams
US9973780B2 (en) 2013-10-31 2018-05-15 Microsoft Technology Licensing, Llc Scaled video for pseudo-analog transmission in spatial domain
US10212439B2 (en) * 2014-04-28 2019-02-19 Sony Corporation Video processing apparatus and method for controlling video processing apparatus
US10547860B2 (en) * 2015-09-09 2020-01-28 Avago Technologies International Sales Pte. Limited Video coding with trade-off between frame rate and chroma fidelity
KR101749613B1 (ko) 2016-03-09 2017-06-21 에스케이플래닛 주식회사 고속 움직임 예측을 이용하여 멀티트랙 비디오를 스케일러블 비디오로 인코딩하는 방법 및 장치
GB2552944B (en) 2016-08-09 2022-07-27 V Nova Int Ltd Adaptive content delivery network
US10389786B1 (en) * 2016-09-30 2019-08-20 Amazon Technologies, Inc. Output tracking for protected content-stream portions
KR101875853B1 (ko) * 2017-06-02 2018-07-06 에스케이플래닛 주식회사 고속 움직임 예측을 이용하여 멀티트랙 비디오를 스케일러블 비디오로 인코딩하는 방법 및 장치
US11049219B2 (en) 2017-06-06 2021-06-29 Gopro, Inc. Methods and apparatus for multi-encoder processing of high resolution content
CN109587570B (zh) * 2017-09-29 2022-02-22 腾讯科技(深圳)有限公司 视频的播放方法和装置
CN107659844B (zh) * 2017-10-30 2019-08-20 电子科技大学 一种基于小波变换的视频图像高分辨率重构方法
US10951902B2 (en) 2019-06-12 2021-03-16 Rovi Guides, Inc. Systems and methods for multiple bit rate content encoding
US11228781B2 (en) 2019-06-26 2022-01-18 Gopro, Inc. Methods and apparatus for maximizing codec bandwidth in video applications
US11481863B2 (en) 2019-10-23 2022-10-25 Gopro, Inc. Methods and apparatus for hardware accelerated image processing for spherical projections
CN111405199B (zh) * 2020-03-27 2022-11-01 维沃移动通信(杭州)有限公司 一种图像拍摄方法和电子设备

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5552824A (en) * 1993-02-18 1996-09-03 Lynx System Developers, Inc. Line object scene generation apparatus
KR0151212B1 (ko) 1994-12-21 1998-10-15 이헌조 간이형 에이치디티브이 수신장치
US5621660A (en) 1995-04-18 1997-04-15 Sun Microsystems, Inc. Software-based encoder for a software-implemented end-to-end scalable video delivery system
US6055012A (en) * 1995-12-29 2000-04-25 Lucent Technologies Inc. Digital multi-view video compression with complexity and compatibility constraints
US5852565A (en) 1996-01-30 1998-12-22 Demografx Temporal and resolution layering in advanced television
US5841473A (en) * 1996-07-26 1998-11-24 Software For Image Compression, N.V. Image sequence compression and decompression
US5818533A (en) * 1996-08-08 1998-10-06 Lsi Logic Corporation Method and apparatus for decoding B frames in video codecs with minimal memory
US6233017B1 (en) * 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
US6175592B1 (en) 1997-03-12 2001-01-16 Matsushita Electric Industrial Co., Ltd. Frequency domain filtering for down conversion of a DCT encoded picture
US6057884A (en) 1997-06-05 2000-05-02 General Instrument Corporation Temporal and spatial scaleable coding for video object planes
US6275616B1 (en) * 1997-09-12 2001-08-14 Samsung Electronics Co., Ltd. Method and apparatus for converting a high definition image to a relatively lower definition image using wavelet transforms
JP4018335B2 (ja) * 2000-01-05 2007-12-05 キヤノン株式会社 画像復号装置及び画像復号方法
JP2001309378A (ja) * 2000-04-10 2001-11-02 Samsung Electronics Co Ltd 空間上階層構造と画質上階層構造とを同時に有する動映像符号化/復号化方法及び装置
WO2002001881A2 (en) 2000-06-30 2002-01-03 Koninklijke Philips Electronics N.V. Encoding method for the compression of a video sequence
FI109393B (fi) 2000-07-14 2002-07-15 Nokia Corp Menetelmä mediavirran enkoodaamiseksi skaalautuvasti, skaalautuva enkooderi ja päätelaite
US6920175B2 (en) * 2001-01-03 2005-07-19 Nokia Corporation Video coding architecture and methods for using same
KR20030026109A (ko) * 2001-09-24 2003-03-31 엠큐브웍스(주) 채널 적응적 멀티미디어 데이터 전송 장치 및 방법
CN1253008C (zh) * 2001-10-26 2006-04-19 皇家飞利浦电子股份有限公司 空间可分级压缩的方法和设备
US6944222B2 (en) 2002-03-04 2005-09-13 Koninklijke Philips Electronics N.V. Efficiency FGST framework employing higher quality reference frames
KR20050038732A (ko) * 2003-10-22 2005-04-29 삼성전자주식회사 프리디코더를 이용하는 스케일러블 비디오 코딩 방법 및장치
KR20050049644A (ko) * 2003-11-22 2005-05-27 삼성전자주식회사 시각적 화질을 균일하게 하는 비트 레이트 컨트롤 방법 및장치

Also Published As

Publication number Publication date
JP2010178389A (ja) 2010-08-12
EP1721466A1 (en) 2006-11-15
EP1721466A4 (en) 2009-01-21
CA2557294A1 (en) 2005-09-15
US20050195899A1 (en) 2005-09-08
JP4988547B2 (ja) 2012-08-01
JP2007525923A (ja) 2007-09-06
US8929436B2 (en) 2015-01-06
BRPI0508354A (pt) 2007-10-16
KR20050089720A (ko) 2005-09-08
US8331434B2 (en) 2012-12-11
WO2005086486A1 (en) 2005-09-15
US20130223541A1 (en) 2013-08-29
CA2557294C (en) 2013-04-23
JP5550442B2 (ja) 2014-07-16

Similar Documents

Publication Publication Date Title
KR100586883B1 (ko) 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법
KR100596705B1 (ko) 비디오 스트리밍 서비스를 위한 비디오 코딩 방법과 비디오 인코딩 시스템, 및 비디오 디코딩 방법과 비디오 디코딩 시스템
KR100679030B1 (ko) 하이브리드 비트스트림의 프리디코딩 방법 및 장치
JP4891234B2 (ja) グリッド動き推定/補償を用いたスケーラブルビデオ符号化
KR100621581B1 (ko) 기초 계층을 포함하는 비트스트림을 프리디코딩,디코딩하는 방법, 및 장치
KR100596706B1 (ko) 스케일러블 비디오 코딩 및 디코딩 방법, 이를 위한 장치
KR100679018B1 (ko) 다계층 비디오 코딩 및 디코딩 방법, 비디오 인코더 및디코더
US20060013311A1 (en) Video decoding method using smoothing filter and video decoder therefor
KR100834749B1 (ko) 스케일러블 비디오 스트림 재생장치 및 그 방법
CA2557312C (en) Video encoding and decoding methods and systems for video streaming service
JP4660550B2 (ja) 多階層ビデオコーディングおよびデコーディング方法、ビデオエンコーダおよびデコーダ
EP1813114A1 (en) Method and apparatus for predecoding hybrid bitstream

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130429

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140429

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150429

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160428

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee