KR20110051733A - Network-adaptive variable stream layered method and apparatus for video streaming - Google Patents
Network-adaptive variable stream layered method and apparatus for video streaming Download PDFInfo
- Publication number
- KR20110051733A KR20110051733A KR1020090108466A KR20090108466A KR20110051733A KR 20110051733 A KR20110051733 A KR 20110051733A KR 1020090108466 A KR1020090108466 A KR 1020090108466A KR 20090108466 A KR20090108466 A KR 20090108466A KR 20110051733 A KR20110051733 A KR 20110051733A
- Authority
- KR
- South Korea
- Prior art keywords
- frame
- video stream
- frames
- gop
- stream
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000003044 adaptive effect Effects 0.000 claims description 27
- 230000002457 bidirectional effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 102100037812 Medium-wave-sensitive opsin 1 Human genes 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44209—Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/177—Methods 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23406—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23418—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
본 발명의 일실시예들은 고화질 H.264/AVC 비디오 데이터를 IP기반 유무선 네트워크 환경에서 비디오 데이터를 수신하고 있는 수신 단말들 중에서 가용 대역폭이 감소한 수신 단말에 전송 중인 비디오 데이터의 프레임율(frame-rate)을 실시간으로 변환/제공함으로써, 끊김없는 비디오 스트리밍 서비스를 제공할 수 있다.One embodiment of the present invention provides a frame rate of video data being transmitted to a receiving terminal whose available bandwidth is reduced among receiving terminals receiving high quality H.264 / AVC video data in an IP-based wired / wireless network environment. ) Can be provided in real time, thereby providing a seamless video streaming service.
IP기반 유무선 네트워크 환경의 방송 서비스에서 고화질의 H.264/AVC 비디오 스트림을 제공할 경우, 네트워크 혼잡, 지터(jitter) 등의 영향으로 수신 단말의 가용 대역폭이 감소하고, 전송 비디오 패킷의 손실이 발생함으로써, 끊김없는 비디오 스트리밍 서비스를 보장 할 수 없었다.When providing a high quality H.264 / AVC video stream in a broadcast service of an IP-based wired / wireless network environment, the available bandwidth of the receiving terminal is reduced due to network congestion and jitter, and loss of transmission video packets occurs. By doing so, we couldn't guarantee a seamless video streaming service.
종래기술에서는 이러한 문제점의 해결하기 위해, 동적으로 변화하는 네트워크 대역폭의 손실률에 따라 비트율(bit-rate) 변환부호화기(transcoding)를 이용하여 비디오 스트림을 재부호화 하거나, 국제 비디오 압축표준인 SVC(scalable video coding) 기술을 이용하여 미리 수신 단말의 성능에 따라 비디오 스트림을 계층화 하여 부호화함으로써, 전송 중인 비디오 스트림을 수신 단말의 가용 대역폭에 맞게 선택적으로 수신하도록 하였다. In the related art, to solve this problem, a video stream is re-encoded using a bit-rate transcoding according to a dynamically changing network bandwidth loss rate, or SVC (scalable video), an international video compression standard. By coding and layering the video stream according to the performance of the receiving terminal in advance, the video stream being transmitted is selectively received according to the available bandwidth of the receiving terminal.
그러나, 변환부호화기를 이용한 방법은 네트워크의 전송환경 변화로 감소한 가용 대역폭에 고화질의 비디오 데이터를 실시간으로 적응 변환하여 전송하기에는 어려움이 있다. 왜냐하면, 고화질의 비디오 데이터를 가용 대역폭에 맞게 재부호화하는 과정에서 발생하는 부호화 지연과 화질열화 현상으로 비디오 데이터의 QoS를 보장하기 어렵기 때문이다. 또한, 동일한 방송 프로그램을 시청하고 있는 다수 수신 단말의 가용 대역폭이 독립적으로 변화한 경우, 각각의 수신 단말이 허용할 수 있는 가용 대역폭에 맞게 고화질의 비디오 데이터를 실시간으로 변환부호화기로 변환하여 제공하기에는 무리가 따른다.However, the method using the transform encoder has difficulty in adaptively converting and transmitting high-definition video data in real time to the available bandwidth reduced due to changes in the transmission environment of the network. This is because it is difficult to guarantee the QoS of the video data due to encoding delay and quality degradation which occur in the process of re-encoding the high quality video data according to the available bandwidth. In addition, when the available bandwidths of multiple receiving terminals watching the same broadcast program independently change, it is not sufficient to convert high-quality video data into a conversion encoder in real time according to the available bandwidth that each receiving terminal can allow. Follows.
그리고, SVC 기술을 이용한 방법은 미리 수신 단말의 가용 대역폭에 맞게 비디오 데이터를 계층화하여 부호화함으로써 고화질의 비디오 데이터를 실시간으로 처리하기에는 어려움이 있다. 또한, 수신 단말의 성능에 따른 계층화 스트림을 판별하기 위한 오버헤드가 많다는 문제점이 있다.In addition, the method using the SVC technology is difficult to process the high-quality video data in real time by layering and encoding the video data according to the available bandwidth of the receiving terminal in advance. In addition, there is a problem in that a lot of overhead for determining the layered stream according to the performance of the receiving terminal.
본 발명의 일실시예는 국제 비디오 압축 표준으로 부호화된 H.264/AVC 비디오 스트림을 다수의 수신 단말들이 허용하는 네트워크 가용 대역폭에 맞게 압축 도메인에서 GOP(group of picture)을 구성하는 프레임의 점유 비트량에 따라 프레임을 제거하고, 실시간으로 여러 개의 비트율을 가지는 비디오 스트림으로 계층화하여 제공함으로써, 끊김없는 비디오 스트리밍 서비스를 보장하고, 시청자의 QoE(Quality of Experience)을 향상 시킬 수 있는 장치 및 방법을 제공하는 데 그 목적이 있다.One embodiment of the present invention is the occupied bit of the frame constituting a group of pictures (GOP) in the compression domain to fit the network available bandwidth that allows a plurality of receiving terminals H.264 / AVC video stream encoded by the international video compression standard By removing frames according to the amount and layering them into video streams having multiple bit rates in real time, providing an apparatus and method for guaranteeing a seamless video streaming service and improving viewers' quality of experience (QoE). Its purpose is to.
본 발명의 일실시예에 따른 네트워크 적응형 가변 스트림 계층화 장치는 H.264/AVC로 압축된 비디오 스트림을 분석하여상기 비디오 스트림의 NAL 정보를 출력하는 스트림 분석부, 상기 출력된 NAL 정보를 이용하여 상기 비디오 스트림에 포함된 프레임들을 GOP단위로 정렬하는 맵 테이블 생성부, 각 수신 단말의 가용 대역폭의 패킷 손실률 및 상기 NAL 정보를 참조하여 상기 정렬된 프레임을 선별적으로 제거하거나 또는 선택하는 레이트 제어부, 및 상기 선택된 프레임을 상기 각 수신 단말에서 복호화되도록 재구성하여 상기 각 수신 단말로 전송하는 출력 버퍼를 포함한다.The network adaptive variable stream layering apparatus according to an embodiment of the present invention analyzes a video stream compressed with H.264 / AVC and outputs NAL information of the video stream using the output NAL information. A map table generation unit for arranging frames included in the video stream in units of GOPs, a rate control unit for selectively removing or selecting the aligned frames with reference to the packet loss rate of the available bandwidth of each receiving terminal and the NAL information; And an output buffer for reconfiguring the selected frame to be decoded at each receiving terminal and transmitting the decoded frame to each receiving terminal.
이때, 상기 네트워크 적응형 가변 스트림 계층화 장치는 각 수신 단말이 허용하는 가용 대역폭의 변화 유무에 따라, 상기 비디오 스트림의 계층화 여부를 결 정하는 제1 스위칭부를 더 포함하고, 상기 제1 스위칭부는 상기 가용 대역폭이 변화가 없는 경우, 상기 비디오 스트림을 상기 각 수신 단말들에게 그대로 전송하도록 제어하고, 상기 가용 대역폭이 감소한 경우, 상기 비디오 스트림을 계층화하도록 상기 스트림 분석부로 전달할 수 있다.In this case, the network adaptive variable stream layering apparatus further includes a first switching unit for determining whether the video stream is layered according to whether the available bandwidth allowed by each receiving terminal is changed, and the first switching unit is the available bandwidth. If there is no change, the video stream may be controlled to be transmitted to the receiving terminals as it is, and when the available bandwidth is reduced, the video stream may be transmitted to the stream analyzer to layer the video stream.
이때, 상기 비디오 스트림 분석부는 NAL의 종류, NAL의 순서, NAL 점유 비트량을 정보들을 출력하고, 상기 맵 테이블 생성부는 상기 NAL 정보에 포함된 점유 비트량에 따라, 상기 비디오 스트림에 포함된 프레임을 정렬할 수 있다.In this case, the video stream analyzer outputs information on the type of NAL, the order of the NALs, and the amount of NAL occupied bits, and the map table generator generates a frame included in the video stream according to the amount of occupied bits included in the NAL information. You can sort.
여기서, 상기 H.264/AVC로 압축된 비디오 스트림은 한 개의 GOP를 구성하는 프레임에서 프레임내 압축 영상인 I 프레임, 프레임간의 순방향 예측을 통한 압축 영상인 P 프레임, 쌍방향 예측을 통한 압축 영상인 B 프레임으로 구성된 GOP 구조를 가진다. 이 경우, 상기 맵 테이블 생성부는 GOP를 구성하고 있는 프레임들을 NAL의 점유 비트량의 크기에 따라 I, P, B 프레임을 정렬한다. 이때, 상기 레이트 제어부는 상기 I 프레임을 제외한 나머지 P 프레임과 B 프레임을 제거함으로써 상기 비디오 스트림이 깨지는 현상을 방지할 수 있다.Here, the H.264 / AVC compressed video stream includes an I frame, which is an intra-frame compressed image, a P frame, which is a compressed image through forward prediction between frames, and a B, which is compressed by bidirectional prediction, in a frame constituting one GOP. It has a GOP structure composed of frames. In this case, the map table generation unit aligns I, P, and B frames according to the size of bits occupied by the NAL of the frames constituting the GOP. In this case, the rate controller may prevent the video stream from being broken by removing P frames and B frames other than the I frame.
이때, 상기 네트워크 적응형 가변 스트림 계층화 장치는 상기 비디오 스트림에 포함된 프레임을 GOP 단위로 저장하는 GOP 버퍼를 더 포함하고, 상기 레이트 제어부는 상기 맵 테이블 생성부를 FIFO 방식으로 참조하여 상기 GOP 버퍼로부터 출력되는 프레임들 중 제거 대상이 되는 프레임을 상기 레이트 제어부에서 제2 스위칭부를 제어하여 한 개의 GOP 단위로 제거하고, 제거되지 않은 프레임을 상기 출력 버퍼로 전달할 수 있다.In this case, the network adaptive variable stream layering apparatus further includes a GOP buffer for storing the frames included in the video stream in units of GOP, and the rate controller outputs from the GOP buffer by referring to the map table generator in a FIFO method. Among the frames to be removed, the frame to be removed may be controlled by the rate controller to remove the frames by one GOP, and the unremoved frames may be transferred to the output buffer.
본 발명의 일실시예에 따르면, 동일한 비트율을 가지는 비디오 스트림을 여러 수신 단말들에게 보내는 도중, 수신 단말들의 가용 대역폭이 감소할 경우 전송 비디오 스트림을 재부호화 하지 않고 수신 단말들의 가용 대역폭에 맞게 압축 도메인에서 비트율을 변환하고 전송함으로써 비디오 스트림의 비트율을 조절하여 계층화하고 해당 수신 단말들에게 동시 전송 할 수 있다.According to an embodiment of the present invention, while sending video streams having the same bit rate to multiple receiving terminals, if the available bandwidth of the receiving terminals decreases, the compression domain is adapted to the available bandwidth of the receiving terminals without re-encoding the transmission video stream. By converting and transmitting the bit rate in the video stream, the bit rate of the video stream can be adjusted and layered and transmitted simultaneously to the corresponding receiving terminals.
본 발명의 일실시예에 따르면, 고속으로 비디오 스트림의 GOP내에 프레임을 선별적으로 제거함으로써, 끊김없는 비디오 스트리밍 서비스를 제공할 수 있고, 비디오 스트림에 대한 QoS를 보장할 수 있다.According to an embodiment of the present invention, by selectively removing frames in a GOP of a video stream at high speed, a seamless video streaming service can be provided, and QoS for the video stream can be guaranteed.
이하, 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 다양한 실시예를 상세하게 설명하지만, 본 발명이 실시예에 의해 제한되거나 한정되는 것은 아니다.Hereinafter, various embodiments of the present invention will be described in detail with reference to the accompanying drawings and accompanying drawings, but the present invention is not limited to or limited by the embodiments.
도 1은 본 발명의 일실시예에 따른 GOP 구조를 가진 비디오 스트림의 일례를 도시한 도면이다.1 is a diagram illustrating an example of a video stream having a GOP structure according to an embodiment of the present invention.
도 1을 참조하면, H.264/AVC로 압축된 비디오 스트림은 한 개의 GOP(Group Of Picture)를 구성하는 프레임에서 프레임내 압축 영상인 I 프레임, 프레임간의 순방향 예측을 통한 압축 영상인 P 프레임, 쌍방향 예측을 통한 압축 영상인 B 프레임으로 구성된 GOP 구조를 가진다.Referring to FIG. 1, a video stream compressed with H.264 / AVC includes an I frame, which is an intra frame compressed image, a P frame, which is a compressed image through forward prediction between frames, in a frame constituting one GOP (Group Of Picture); It has a GOP structure composed of B frames, which are compressed images through bidirectional prediction.
도 2는 본 발명의 일실시예에 따른 GOP를 구성하는 프레임의 종속관계에 대 한 일례를 도시한 도면이다.2 is a diagram illustrating an example of a dependency relationship between frames constituting a GOP according to an embodiment of the present invention.
도 2를 참조하면, 한 개의 GOP내에 구성된 I 프레임, P 프레임, B 프레임 간의 상호 종속관계를 나타낸다. GOP을 구성하는 'I 프레임'은 GOP내에서 화면을 독자적으로 압축하고, 'P 프레임'은 이전의 I 프레임 혹은 P 프레임을 참조하여 압축하고, 'B 프레임'은 I 프레임과 P 프레임을 동시에 참조하여 압축된 비디오 스트림이다.Referring to FIG. 2, interdependencies between I frames, P frames, and B frames configured in one GOP are shown. 'I frame', which constitutes GOP, compresses the screen independently in GOP, 'P frame' refers to previous I frame or P frame, and 'B frame' refers to I frame and P frame at the same time. Compressed video stream.
도 3은 본 발명의 일실시예에 따른 H.264/AVC로 압축된 비디오 스트림의 비트열에 대한 일례를 도시한 도면이다.3 is a diagram illustrating an example of a bit string of a H.264 / AVC compressed video stream according to an embodiment of the present invention.
도 3을 참조하면, H.264/AVC 비디오 스트림의 비트열은 4 바이트(byte)의 개시부호(start prefix code), 1 바이트의 Nal의 형태를 표시하는 Nal 헤더(Nal header), 한 개의 GOP내의 비디오 시퀀스 정보에 해당되는 SPS(sequence parameter set), 프레임의 정보에 해당되는 PPS(picture parameter set), I, B, P 프레임의 타입 정보를 가지고 있는 슬라이스 헤더(slice header)와 압축된 정보를 가지는 슬라이스 데이터(slice data)로 구성된다. 여기서 SPS, PPS Nal을 non-VCL(video coding layer) Nal로 구분하고, 나머지는 VCL Nal로 Nal 단위의 종류를 구분한다.Referring to FIG. 3, a bit string of an H.264 / AVC video stream includes a start byte code of 4 bytes, a Nal header indicating a type of Nal of 1 byte, and one GOP. SPS (sequence parameter set) corresponding to video sequence information in the frame, PPS (picture parameter set) corresponding to frame information, slice header including type information of I, B, P frames and compressed information The branch is composed of slice data. Here, SPS and PPS Nal are divided into non-VCL (video coding layer) Nal, and the rest are classified into types of Nal units by VCL Nal.
도 4는 본 발명의 일실시예에 따른 네트워크 적응형 가변 스트림 계층화 장치의 구성을 도시한 블록도이다.4 is a block diagram illustrating a configuration of a network adaptive variable stream layering device according to an embodiment of the present invention.
도 4를 참조하면, 네트워크 적응형 가변 스트림 계층화 장치(400)는 제1 스위칭부(410), 맵 테이블 생성부(420), 레이트 제어부(430), 스트림 분석부(440), GOP 버퍼(450), 제2 스위칭부(460), 및 출력 버퍼(470)를 포함할 수 있다.Referring to FIG. 4, the network adaptive variable
제1 스위칭부(410)는 각 수신 단말이 허용하는 가용 대역폭의 변화 유무에 따라, H.264/AVC로 압축된 비디오 스트림의 계층화 여부를 결정한다. 예컨대, 제1 스위칭부(410)는 상기 가용 대역폭이 변화가 없는 경우, 상기 비디오 스트림을 상기 각 수신 단말에게 그대로 전송하도록 제어하고, 상기 가용 대역폭이 감소한 경우, 상기 비디오 스트림을 계층화하기 위하여, 스트림 분석부(440)로 전달할 수 있다. 또한, 제1 스위칭부(410)는 레이트 제어부(430)로부터 입력된 패킷 손실 여부를 판별할 수 있다. The first switching unit 410 determines whether the H.264 / AVC-compressed video stream is layered according to whether the available bandwidth allows each receiving terminal. For example, the first switching unit 410 controls to transmit the video stream as it is to each receiving terminal when the available bandwidth is unchanged, and when the available bandwidth is reduced, to stream the video stream, It may be delivered to the analysis unit 440. In addition, the first switching unit 410 may determine whether a packet lost from the rate control unit 430 is lost.
스트림 분석부(440)는 상기 비디오 스트림을 분석하여상기 비디오 스트림의 Nal 정보를 출력한다. 예컨대, 도 3을 참조하면, 스트림 분석부(440)는 상기 비디오 스트림의 비트열을 H.264/AVC 비트열에서 4 바이트의 개시부호 정보로 Nal 단위 경계를 파악하고, 1 바이트의 Nal 헤더 정보에서 5 비트(bit)의 nal_unit_type 필드를 분석하여 Nal 단위의 종류를 판별한다. 이 때, VCL Nal인 경우, 스트림 분석부(440)는 슬라이스 헤더의 frame_type 필드 정보로부터 I, B, P 프레임 형태를 구분한다. The stream analyzer 440 analyzes the video stream and outputs Nal information of the video stream. For example, referring to FIG. 3, the stream analyzer 440 detects a Nal unit boundary from the bit stream of the video stream with 4 bytes of start code information in the H.264 / AVC bit string, and 1-byte Nal header information. The type of Nal unit is determined by analyzing a 5 bit nal_unit_type field. In this case, in the case of VCL Nal, the stream analyzer 440 distinguishes the I, B, and P frame types from the frame_type field information of the slice header.
즉, 스트림 분석부(440)는 Nal의 종류, Nal의 순서, GOP에서 Nal 단위로 점유하는 Nal 점유 비트량을 포함하는 Nal 정보를 맵 테이블 생성부(420)로 전송하고, 상기 비디오 스트림의 비트열을 그대로 GOP 버퍼(450)로 전달한다.That is, the stream analyzer 440 transmits Nal information including the type of Nal, the order of Nal, and the amount of Nal occupied bits occupied by the Nal unit in the GOP to the map table generator 420, and transmits bits of the video stream. The heat is transferred to the GOP
맵 테이블 생성부(420)는 상기 출력된 NAL 정보를 이용하여 상기 비디오 스트림에 포함된 프레임을 정렬한다. 즉, 맵 테이블 생성부(420)는 상기 NAL 정보에 포함된 점유 비트량에 따라, 상기 비디오 스트림에 포함된 프레임을 정렬할 수 있 다. 예컨대, 맵 테이블 생성부(420)는 GOP을 구성하는 B 프레임들의 점유 비트량이 큰 순으로 위치에 관계없이 먼저 정렬하고, P 프레임들은 GOP의 마지막 프레임부터 역으로 GOP의 시작 I 프레임까지 FIFO로 정렬된 맵 테이블을 생성한다.The map table generator 420 arranges the frames included in the video stream using the output NAL information. That is, the map table generator 420 may arrange the frames included in the video stream according to the occupied bit amount included in the NAL information. For example, the map table generator 420 first sorts the occupied bit amount of the B frames constituting the GOP regardless of position, and the P frames are arranged in FIFO from the last frame of the GOP to the start I frame of the GOP in reverse. Create a mapped map table
도 5는 본 발명의 일실시예에 따른 맵 테이블 생성부에서 프레임을 정렬하는 일례를 도시한 도면이다.5 is a diagram illustrating an example of arranging frames in a map table generator according to an exemplary embodiment of the present invention.
도 5를 참조하면, 한 개의 GOP를 구성하는 프레임들의 순서와 점유 비트량이 510과 같은 경우, 맵 테이블 생성부(420)는 I, B, P 프레임들의 상호 종속관계에 따라 520과 같이 정렬할 수 있다.Referring to FIG. 5, when the order of frames constituting one GOP and the occupied bit amount are equal to 510, the map table generator 420 may arrange them as shown in 520 according to mutual dependence of I, B, and P frames. have.
레이트 제어부(430)는 각 수신 단말의 가용 대역폭의 패킷 손실률 및 상기 NAL 정보를 참조하여 상기 정렬된 프레임을 선별적으로 제거하거나 또는 선택함으로써, 상기 비디오 스트림을 계층화할 수 있다. The rate controller 430 may layer the video stream by selectively removing or selecting the aligned frames with reference to the packet loss rate of the available bandwidth of each receiving terminal and the NAL information.
여기서, GOP 버퍼(450)는 상기 비디오 스트림에 포함된 프레임을 GOP 단위로 저장한다. 이 경우, 레이트 제어부(430)는 맵 테이블 생성부(420)를 FIFO(First In First Out) 방식으로 참조하여 GOP 버퍼(450)로부터 출력되는 프레임들 중 제거 대상이 되는 프레임을 제2 스위칭부(460)를 제어하여 한 개의 GOP 단위로 제거하고, 제거되지 않은 프레임을 출력 버퍼(470)로 전달할 수 있다. 즉, 레이트 제어부(430)는 제2 스위칭부(460)를 제어하여 프레임을 제거하거나, 선택하여 선택된 프레임을 출력 버퍼(470)로 전달할 수 있다. 예컨대, 레이트 제어부(430)는 상기 각 수신 단말의 가용 대역폭이 허용하는 프레임을 출력 버퍼(470)로 전달할 수 있도록, 제2 스위칭부(460)를 제어할 수 있다.Here, the GOP
이때, SPS, PPS Nal은 수신 단말에 항상 전송해야하는 정보이므로, 레이트 제어부(430)는 SPS, PPS Nal을 각각의 출력 버퍼(470)로 항상 전달할 수 있다.In this case, since the SPS and PPS Nal are information that should always be transmitted to the receiving terminal, the rate controller 430 may always deliver the SPS and PPS Nal to each output buffer 470.
또한, 레이트 제어부(430)는 상기 I 프레임을 제외한 나머지 P 프레임과 B 프레임을 제거함으로써, 상기 비디오 스트림이 깨지는 현상을 방지한다.In addition, the rate controller 430 prevents the video stream from being broken by removing P frames and B frames other than the I frame.
출력 버퍼(470)는 상기 선택된 프레임을 상기 각 수신 단말에서 복호화되도록 구성하여 상기 각 수신 단말로 전송한다. 즉, 출력 버퍼(470)는 SPS, PPS Nal을 상위 출력 스트림으로 정렬하고, 제2 스위칭부(460)에 의해 선택적으로 입력되는 프레임을 상기 각 수신 단말에서 복호화할 수 있도록, 프레임의 순서를 정렬하여 구성할 수 있다.The output buffer 470 configures the selected frame to be decoded at each receiving terminal and transmits the selected frame to each receiving terminal. That is, the output buffer 470 arranges the SPS and PPS Nal into the higher output stream, and arranges the order of the frames so that the frames selectively input by the second switching unit 460 can be decoded by the respective receiving terminals. Can be configured.
도 6은 본 발명의 일실시예에 따른 네트워크 적응형 가변 스트림 계층화 방법의 순서를 도시한 흐름도이다.6 is a flowchart illustrating a procedure of a network adaptive variable stream layering method according to an embodiment of the present invention.
도 6을 참조하면, 네트워크 적응형 가변 스트림 계층화 방법은 H.264/AVC로 압축된 비디오 스트림을 제1 스위칭부로 입력한다(610). 상기 제1 스위칭부는 각 수신 단말이 허용하는 가용 대역폭의 변화 유무에 따라, H.264/AVC로 압축된 비디오 스트림의 계층화 여부를 결정할 수 있다.Referring to FIG. 6, in the network adaptive variable stream layering method, a video stream compressed with H.264 / AVC is input to a first switching unit (610). The first switching unit may determine whether to layer the H.264 / AVC compressed video stream according to whether the available bandwidth allows each receiving terminal.
네트워크 적응형 가변 스트림 계층화 방법은 상기 계층화가 결정된 비디오 스트림을 분석하여상기 비디오 스트림의 NAL 정보를 출력한다(620). 여기서, 상기 NAL 정보는 NAL의 종류, NAL의 순서, NAL 점유 비트량을 포함할 수 있다.The network adaptive variable stream layering method analyzes the video stream in which the layering is determined and outputs NAL information of the video stream (620). Here, the NAL information may include the type of NAL, the order of the NALs, and the amount of bits occupied by the NAL.
네트워크 적응형 가변 스트림 계층화 방법은 상기 출력된 NAL 정보를 이용하여 상기 비디오 스트림에 포함된 프레임을 정렬한다(630). 일례로, 네트워크 적 응형 가변 스트림 계층화 방법은 상기 NAL 정보에 포함된 점유 비트량에 따라, 상기 비디오 스트림에 포함된 프레임을 정렬할 수 있다.The network adaptive variable stream layering method aligns the frames included in the video stream using the output NAL information (630). For example, the network adaptive variable stream layering method may arrange the frames included in the video stream according to the occupied bit amount included in the NAL information.
네트워크 적응형 가변 스트림 계층화 방법은 각 수신 단말의 가용 대역폭의 패킷 손실률 및 상기 NAL 정보를 참조하여 상기 정렬된 프레임을 선별적으로 선택한다(640). 예컨대, 네트워크 적응형 가변 스트림 계층화 방법은 상기 각 수신 단말의 가용 대역폭이 허용하는 프레임을 선택하고, GOP 버퍼에 저장된 프레임 중, 제거 대상이 되는 프레임을 한 개의 GOP 단위로 제거할 수 있다.The network adaptive variable stream layering method selectively selects the aligned frames with reference to the packet loss rate of the available bandwidth of each receiving terminal and the NAL information (640). For example, the network adaptive variable stream layering method may select a frame allowed by the available bandwidth of each receiving terminal, and remove a frame to be removed in one GOP unit among frames stored in the GOP buffer.
네트워크 적응형 가변 스트림 계층화 방법은 상기 선택된 프레임을 상기 각 수신 단말에서 복호화되도록 구성하여 상기 각 수신 단말로 전송한다(650).The network adaptive variable stream layering method configures the selected frame to be decoded at each receiving terminal and transmits the selected frame to each receiving terminal (650).
도 6에 도시된 네트워크 적응형 가변 스트림 계층화 방법은 도 1 내지 도 5를 통해 설명된 네트워크 적응형 가변 스트림 계층화 장치의 내용이 그대로 적용될 수 있다. 따라서, 여기서는 상기 네트워크 적응형 가변 스트림 계층화 방법에 대한 상세한 설명을 생략한다.In the network adaptive variable stream layering method illustrated in FIG. 6, the contents of the network adaptive variable stream layering apparatus described with reference to FIGS. 1 to 5 may be applied. Therefore, a detailed description of the network adaptive variable stream layering method is omitted here.
또한, 본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.Further, embodiments of the present invention include a computer readable medium having program instructions for performing various computer implemented operations. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
지금까지 본 발명에 따른 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.While specific embodiments of the present invention have been described so far, various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims and the claims.
도 1은 본 발명의 일실시예에 따른 GOP 구조를 가진 비디오 스트림의 일례를 도시한 도면이다.1 is a diagram illustrating an example of a video stream having a GOP structure according to an embodiment of the present invention.
도 2는 본 발명의 일실시예에 따른 GOP를 구성하는 프레임의 종속관계에 대한 일례를 도시한 도면이다.2 is a diagram illustrating an example of a dependency relationship between frames constituting a GOP according to an embodiment of the present invention.
도 3은 본 발명의 일실시예에 따른 H.264/AVC로 압축된 비디오 스트림의 비트열에 대한 일례를 도시한 도면이다.3 is a diagram illustrating an example of a bit string of a H.264 / AVC compressed video stream according to an embodiment of the present invention.
도 4는 본 발명의 일실시예에 따른 네트워크 적응형 가변 스트림 계층화 장치의 구성을 도시한 블록도이다.4 is a block diagram illustrating a configuration of a network adaptive variable stream layering device according to an embodiment of the present invention.
도 5는 본 발명의 일실시예에 따른 맵 테이블 생성부에서 프레임을 정렬하는 일례를 도시한 도면이다.5 is a diagram illustrating an example of arranging frames in a map table generator according to an exemplary embodiment of the present invention.
도 6은 본 발명의 일실시예에 따른 네트워크 적응형 가변 스트림 계층화 방법의 순서를 도시한 흐름도이다.6 is a flowchart illustrating a procedure of a network adaptive variable stream layering method according to an embodiment of the present invention.
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
400: 네트워크 적응형 가변 스트림 계층화 장치400: network adaptive variable stream layering device
410: 제1 스위칭부 410: the first switching unit
420: 맵 테이블 생성부420: map table generation unit
430: 레이트 제어부430: rate control unit
440: 스트림 분석부440: stream analysis unit
450: GOP 버퍼450: GOP buffer
460: 제2 스위칭부460: second switching unit
470: 출력 버퍼470: output buffer
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090108466A KR101249613B1 (en) | 2009-11-11 | 2009-11-11 | Network-adaptive variable stream layered method and apparatus for video streaming |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090108466A KR101249613B1 (en) | 2009-11-11 | 2009-11-11 | Network-adaptive variable stream layered method and apparatus for video streaming |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110051733A true KR20110051733A (en) | 2011-05-18 |
KR101249613B1 KR101249613B1 (en) | 2013-04-01 |
Family
ID=44361948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090108466A KR101249613B1 (en) | 2009-11-11 | 2009-11-11 | Network-adaptive variable stream layered method and apparatus for video streaming |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101249613B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102210437B1 (en) * | 2015-06-15 | 2021-01-29 | 에스케이텔레콤 주식회사 | Method and appratus for controlling media contents delivery |
KR102209783B1 (en) * | 2015-06-15 | 2021-01-28 | 에스케이텔레콤 주식회사 | Method for providing streaming data packet through streaming server and node linking with base station, and node using the same |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003009581A1 (en) * | 2001-07-19 | 2003-01-30 | British Telecommunications Public Limited Company | Video stream switching |
KR100813269B1 (en) * | 2005-10-12 | 2008-03-13 | 삼성전자주식회사 | Method and apparatus for processing/transmitting bit stream, and method and apparatus for receiving/processing bit stream |
KR20070108433A (en) * | 2006-01-09 | 2007-11-12 | 한국전자통신연구원 | Share of video data by using chunk descriptors in svc file format |
US8355452B2 (en) * | 2006-02-27 | 2013-01-15 | Sharp Laboratories Of America, Inc. | Selective frame dropping for initial buffer delay reduction |
-
2009
- 2009-11-11 KR KR1020090108466A patent/KR101249613B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR101249613B1 (en) | 2013-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102127702B1 (en) | Interface apparatus and method for transmitting and receiving media data | |
KR101699656B1 (en) | Devices, systems, and methods for managing and adjusting adaptive streaming traffic | |
US9344721B2 (en) | Best quality given a maximum bit rate | |
US10326811B2 (en) | Communication apparatus, communication data generation method, and communication data processing method | |
EP2424241B1 (en) | Method, device and system for forwarding video data | |
JP2018186524A (en) | Content transmitting device and content reproduction device | |
KR20160110472A (en) | Streaming multiple encodings encoded using different encoding parameters | |
US11284135B2 (en) | Communication apparatus, communication data generation method, and communication data processing method | |
CN101960726A (en) | Method and apparatus for decoding an enhanced video stream | |
EP2615790A1 (en) | Method, system and devices for improved adaptive streaming of media content | |
RU2420909C2 (en) | Splitting data stream | |
US20080144505A1 (en) | Method and Apparatus for Bitrate Reduction | |
CN105191324B (en) | Communication device, communication data generation method, and communication data processing method | |
KR20230030589A (en) | Streaming of Media Data Containing an Addressable Resource Index Track with Switching Sets | |
KR102118678B1 (en) | Apparatus and Method for Transmitting Encoded Video Stream | |
KR102176404B1 (en) | Communication apparatus, communication data generation method, and communication data processing method | |
EP2308215B1 (en) | Thinning of packet-switched video data | |
KR101249613B1 (en) | Network-adaptive variable stream layered method and apparatus for video streaming | |
JP2010272943A (en) | Network decoder apparatus | |
KR101663769B1 (en) | System and method for executing source buffering for multiple independent group transmission of real-time encoded scalabe video contents | |
Zhu et al. | Research on adaptive transmission of H. 264 video stream and QoS guarantee based on SIP | |
Banerjee | Study of H. 264 Video Streaming Over Wireless Channel Using GStreamer | |
Tsakos et al. | Multiport streaming of matroska (MKV) video over IP |
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: 20160226 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170224 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180226 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190304 Year of fee payment: 7 |