KR20050023429A - Adaptive dropping of prioritized transmission packets - Google Patents
Adaptive dropping of prioritized transmission packets Download PDFInfo
- Publication number
- KR20050023429A KR20050023429A KR10-2005-7000809A KR20057000809A KR20050023429A KR 20050023429 A KR20050023429 A KR 20050023429A KR 20057000809 A KR20057000809 A KR 20057000809A KR 20050023429 A KR20050023429 A KR 20050023429A
- Authority
- KR
- South Korea
- Prior art keywords
- information
- frame
- packet
- time
- packets
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
일련의 정보 부분은 송신기에 제공되고, 정보 부분은 수신기에 이용가능할 필요가 있는 임계 시간을 갖는다. 송신기는, 정보 부분이 임계 시간 이전에 수신기에 이용가능하게 될 시간에 송신기에 의해 송신될 수 있는지를 추정한다. 그 다음에, 송신기는, 정보 부분이 임계 시간 이전에 수신기에 이용가능하게 될 시간에 송신될 것임을 추정한 경우 단지 상기 정보를 수신기로 송신한다.The series of information portions is provided to the transmitter, and the information portions have a threshold time that needs to be available to the receiver. The transmitter estimates whether the information portion can be transmitted by the transmitter at a time that will be available to the receiver before the threshold time. The transmitter then only transmits the information to the receiver if it is assumed that the portion of information will be transmitted at a time that will be available to the receiver before the threshold time.
Description
본 발명은, 실시간 표현(presentation)을 위해 인터넷과 같은 가변 지연 네트워크, 또는 무선 LAN(근거리 네트워크)과 같은 패킷 손실 네트워크를 통한 미디어 패킷의 송신 분야에 관한 것이다.FIELD OF THE INVENTION The present invention relates to the field of transmission of media packets over a variable delay network, such as the Internet, or a packet loss network, such as a wireless LAN (near field network), for real time presentation.
MPEG 인코딩 방송 또는 라이브 공연과 같은 실시간 멀티미디어 표현에 대해, 각 비디오 및 오디오 프레임 부분(프레임 또는 필드)은, 상기 프레임 부분의 표현이 연속적인 오디오 및 비디오를 제공하기 위해 시작될 필요가 있는 표현 시간을 갖는다. 시간에 맞게(on time) 프레임 부분을 제공하기 위해, 각 프레임 부분은, 프레임 부분의 모든 패킷이 프레임 부분의 디코딩을 위한 디코더로의 전송에 이용가능해야 하는 디코딩 시간을 갖는다.For real-time multimedia representations, such as MPEG encoded broadcasts or live performances, each video and audio frame portion (frame or field) has a representation time for which the representation of the frame portion needs to begin to provide continuous audio and video. . In order to provide a frame part on time, each frame part has a decoding time in which all packets of the frame part must be available for transmission to the decoder for decoding of the frame part.
인터넷 또는 무선 LAN과 같은 네트워크는 가변 대역폭을 갖는 경향이 있어서 가변 지연을 초래한다. 대역폭이 너무 억제되면, 패킷은 제시간에 도달하지 못하게 되고, 프레임은 시간에 맞게 디코딩되고 제공될 수 없다. 일반적으로, 비디오에 대해, 마지막 프레임은 간단히 드롭(dropped)되고, 이전 프레임은 반복되어, 인간이 인식한 표현 품질에서 손실을 초래한다.Networks such as the Internet or wireless LANs tend to have variable bandwidth resulting in variable delays. If the bandwidth is too suppressed, the packet will not reach in time, and the frame cannot be decoded and provided in time. In general, for video, the last frame is simply dropped and the previous frame is repeated, resulting in a loss in the human perceived representational quality.
무선 LAN에 대해, 지연 및 송신 실패는 공통적이고 대역폭은 변경된다. 첫째로, 수신된 신호 전력, 이에 따라 채널 처리량은 송신자와 수신자 사이의 거리가 증가함에 따라 감소한다. 두 번째로, 동일한 무선 LAN 네트워크에서의 2개의 송신기 사이의 충돌이 발생하고, 재송신 이전에 랜덤 지연에 의해 다루어진다. 세 번째로, 패킷 에러는 랜덤 간섭 뿐 아니라 동일한 주파수 대역에서 신호를 방출하는 다른 디바이스로부터의 간섭으로 인해 발생한다. 패킷 에러의 발생은 특히 802.11b 네트워크에서 관찰되는데, 상기 네트워크는, 마이크로파 오븐, 2.4GHz의 무선 전화기 및 다른 802.11b 네트워크와 같은 많은 다른 디바이스가 동작하는 2.4GHz ISM 대역을 이용한다. 무선 LAN에 대해, 가변 대역폭으로 인한 패킷 지연이 있을 뿐 아니라, 종종 재송신 한계로 인해 패킷은 송신되지 못하게 된다.For wireless LANs, delays and transmission failures are common and bandwidths change. First, the received signal power, and thus channel throughput, decreases as the distance between the sender and receiver increases. Secondly, a collision between two transmitters in the same wireless LAN network occurs and is handled by a random delay before retransmission. Third, packet errors arise not only from random interference but also from interference from other devices emitting signals in the same frequency band. The occurrence of packet errors is especially observed in 802.11b networks, which use the 2.4 GHz ISM band, where many other devices operate, such as microwave ovens, 2.4 GHz cordless phones, and other 802.11 b networks. For wireless LANs, not only are there packet delays due to variable bandwidth, but often retransmission limits prevent packets from being transmitted.
802.11b 수신기의 MAC(media access: 매체 액세스) 층은 어떠한 에러 정정도 하지 못하게 된다. 패킷이 수신기 MAC 층을 에러 체크하지 못하면, 수신기는 긍정 응답(acknowledgement)을 송신하지 않고, 802.11b 송신기의 MAC 층은 패킷을 재송신한다. 송신기는, 긍정 응답이 수신될 때까지 또는 미리 결정된 재송신 한계에 도달될 때까지 패킷을 계속해서 재송신한다.The media access (MAC) layer of the 802.11b receiver does not make any error correction. If the packet fails to error check the receiver MAC layer, the receiver does not transmit an acknowledgment and the MAC layer of the 802.11b transmitter retransmits the packet. The transmitter continues to retransmit the packet until an acknowledgment is received or until a predetermined retransmission limit is reached.
재송신에 대한 필요성을 줄이기 위해 무선 LAN을 통한 매체 송신을 위한 에러 정정을 추가하는 것이 제안되었다. 한가지 제안된 에러 정정 기술은 오디오/비디오 정보를 2개의 층으로 분리시키는 것과, 이러한 층을 상이한 스트림으로서 송신하는 것을 수반한다. 하나의 스트림은 더 중요한 정보를 포함할 것이고, 다른 스트림은 덜 중요한 정보를 포함할 것이다. 더 중요한 스트림에 대해서는 많은 에러 보호가 제공되고, 적은 에러 보호는 덜 중요한 스트림에 제공된다{이것은 부등(unequal) 에러 보호라 불림}. 오버헤드(overhead)가 증가하지만, 오디오/비디오 품질은 더욱 더 증가하여, 주어진 오디오/비디오 품질에 대해, 오버헤드는 실제로 감소한다.In order to reduce the need for retransmission, it has been proposed to add error correction for media transmission over wireless LAN. One proposed error correction technique involves separating audio / video information into two layers and transmitting these layers as different streams. One stream will contain more important information and the other will contain less important information. More error protection is provided for more important streams, and less error protection is provided for less important streams (this is called unequal error protection). Overhead increases, but audio / video quality increases even more, so for a given audio / video quality, the overhead actually decreases.
다른 제안은, 처리량이 부적절할 때 모든 더 높은 우선 순위의 패킷을 송신하고 모든 더 낮은 우선 순위의 패킷을 드롭하는 것이다.Another suggestion is to send all higher priority packets and drop all lower priority packets when throughput is inappropriate.
당업자들은 전부 본 명세서에 병합되어 있는 WO 01/65848 및 WO 01/71981에 주의를 기울이게 된다. 이러한 문헌은, 비디오 스트림을 높은 및 낮은 우선 순위의 스트림으로 분리하고, 낮은 우선 순위의 스트림에 비해 높은 우선 순위의 스트림에서의 에러를 감소시키기 위한 구성을 기재한다.Those skilled in the art will pay attention to WO 01/65848 and WO 01/71981, which are all incorporated herein. This document describes a configuration for separating video streams into high and low priority streams and reducing errors in the high priority streams as compared to the low priority streams.
도 1은 본 발명의 방법을 도시한 도면.1 shows a method of the present invention.
도 2는 본 발명의 예시적인 송신기의 관련 부분을 도시한 도면.2 shows a relevant part of an exemplary transmitter of the invention.
도 3은 본 발명의 예시적인 수신기의 관련 부분을 도시한 도면.3 illustrates a relevant portion of an exemplary receiver of the present invention.
도 4는 본 발명의 예시적인 시스템의 몇몇 구성요소를 도시한 도면.4 illustrates some components of an exemplary system of the present invention.
도 5는 본 발명의 예시적인 송신자의 네트워크 스택을 도시한 도면.5 illustrates a network stack of an exemplary sender of the present invention.
도 6은 본 발명의 예시적인 수신기의 구조를 도시한 도면.6 illustrates the structure of an exemplary receiver of the present invention.
도 7은 우선 순위화 패킷을 적응성으로 드롭하기 위한 본 발명의 예시적인 알고리즘을 도시한 도면.7 illustrates an exemplary algorithm of the present invention for adaptively dropping prioritized packets.
도 8은 도 7의 알고리즘의 결정 모듈의 변형을 도시한 도면.8 shows a variant of the determination module of the algorithm of FIG.
본 발명에서, 일련의 정보 부분은 송신기에 제공되고, 상기 정보 부분은 수신기에 이용가능할 필요가 있는 임계 시간(critical times)을 갖는다. 송신기는, 정보 부분이 임계 시간 이전에 수신기에 이용가능하게 될 시간에 송신기에 의해 송신될 수 있는지를 추정한다. 그 다음에, 송신기는, 임계 시간 이전에 수신기에 이용가능하게 될 시간에 정보 부분이 송신될 것인지를 추정한 경우 단지 정보를 수신기로 송신한다.In the present invention, a series of information portions are provided to the transmitter, the information portions having critical times that need to be available to the receiver. The transmitter estimates whether the information portion can be transmitted by the transmitter at a time that will be available to the receiver before the threshold time. The transmitter then only transmits the information to the receiver when it is estimated that the portion of information will be transmitted at a time that will be available to the receiver before the threshold time.
송신기가, 대역폭 및 지연 필요조건이 모든 정보가 수신기에 이용가능하지는 못하게 하는 것으로 결정할 때, 송신기는 유용하지 않을 패킷을 드롭한다.When the transmitter determines that bandwidth and delay requirements do not allow all information to be available to the receiver, the transmitter drops packets that would not be useful.
예를 들어, 비디오-계층화 해법에서, 송신기가, 덜 중요한 비디오 정보가 (지연 조건 및 다른 필요조건으로 인해) 유용하지 않음을 결정하면, 송신기는 결코 송신하지 않는다. 모든 높은 우선 순위의 패킷이 제시간에 송신될 수 없는 경우 심지어 높은 우선 순위의 패킷조차 드롭될 것이다.For example, in a video-layering solution, if a transmitter determines that less important video information is not useful (due to delay conditions and other requirements), the transmitter never transmits. Even if all high priority packets cannot be sent in time, even high priority packets will be dropped.
본 발명에서, 송신기는, 패킷 송신이 지연 필요조건을 충족하는지를 예측하기 위해 비디오 스트림의 지연 필요조건을 인식해야 한다. 지연 필요조건은 표준화될 수 있거나, 수신기는 지연 필요조건의 표시(indication)를 송신기로 송신할 필요가 있다.In the present invention, the transmitter must recognize the delay requirement of the video stream to predict whether the packet transmission meets the delay requirement. The delay requirement can be standardized or the receiver needs to send an indication of the delay requirement to the transmitter.
2가지 경합하는 목적이 있다. 첫째로, 모든 기본 층 패킷의 성공적인 수신은 최대화될 필요가 있다. 두 번째로, 개선 층 패킷의 폐기는 최소화될 필요가 있다. 이들 목적 사이의 적절한 균형은 송신시 오버헤드를 실질적으로 증가시키지 않고도 처리량을 증가시킨다. 본 발명은 이들 2가지 목적의 균형을 잡아서, 인식된 표현 품질은 모든 패킷을 송신하려고 시도할 때 품질에 관해 증가된다.There are two competing purposes. First, successful reception of all base layer packets needs to be maximized. Secondly, discarding enhancement layer packets needs to be minimized. Proper balance between these purposes increases throughput without substantially increasing overhead in transmission. The present invention balances these two purposes so that the perceived representation quality is increased with respect to quality when attempting to transmit all packets.
본 발명의 추가 양상 및 장점은, 다음 도면을 참조하여 아래의 상세한 설명으로부터 당업자에게 쉽게 명백해질 것이다.Further aspects and advantages of the invention will be readily apparent to those skilled in the art from the following detailed description with reference to the following figures.
도 1은 본 발명의 예시적인 방법을 도시한다. 단계(101)에서, 일련의 다수의 정보 부분은 송신기에 제공된다. 정보 부분은 수신기에 이용가능할 필요가 있을 때 임계 시간을 갖는다. 각 프레임 부분은, 표현 시간과, 디코딩 프레임 부분이 표현 시간에 이용가능할 것임을 디코딩이 보장하기 시작할 필요가 있는 디코딩 시간을 가질 수 있으며, 상기 디코딩 시간 및 표현 시간은 표현의 플레이 시간에 비례한다.1 illustrates an exemplary method of the present invention. In step 101, a series of pieces of information is provided to a transmitter. The information portion has a threshold time when it needs to be available to the receiver. Each frame portion may have a presentation time and a decoding time for which decoding needs to begin to ensure that the decoding frame portion will be available at the presentation time, wherein the decoding time and the presentation time are proportional to the play time of the representation.
정보 부분은 멀티미디어 표현에 대한 미디어 프레임 부분(프레임 또는 프레임의 필드)의 패킷일 수 있다. 그러한 표현은 다수의 프레임 부분을 포함하고, 각 프레임 부분은 미디어 데이터의 다수의 패킷을 포함한다.The information part may be a packet of a media frame part (frame or field of a frame) for the multimedia representation. Such representation includes a plurality of frame portions, each frame portion comprising a plurality of packets of media data.
정보 부분을 제공하는 것은, 미디어 정보를 높은 우선 순위 및 낮은 우선 순위 부분으로 분리하는 것을 포함할 수 있다. 높은 우선 순위의 부분은 정보 부분을 디코딩하는데 필요한 소위 기본 층일 수 있고, 낮은 우선 순위의 부분은 디코딩된 정보 부분을 개선시키는데 사용된 소위 개선(enhancement) 층일 수 있다.Providing the information portion may include separating the media information into high priority and low priority portions. The high priority portion may be the so-called base layer needed to decode the information portion, and the low priority portion may be the so-called enhancement layer used to improve the decoded information portion.
예를 들어, 미디어 프레임에 대한 정보 부분은 기본 층의 다수의 높은 우선 순위의 패킷, 및 개선 층의 다수의 낮은 우선 순위의 패킷을 포함할 수 있다. 프레임 부분의 모든 높은 우선 순위의 패킷은 프레임 부분을 디코딩하기 시작하기 위해 수신기에 이용가능해야 한다. 만약 모든 높은 우선 순위의 패킷이 이용가능하면, 또한 이용가능한 낮은 우선 순위의 패킷 전부는, 프레임 부분을 개선시키기 위해 디코더에 의해 사용될 수 있다. 상이한 우선 순위를 갖는 패킷은 프레임에 대해 연속적으로 인터리빙되어 제공될 수 있다. 대안적으로, 모든 더 높은 우선 순위의 패킷은 프레임의 임의의 더 낮은 우선 순위의 패킷을 제공하기 전에 제공될 수 있다. 이것은, 대역폭이 프레임의 모든 패킷을 송신하기에 부적절한 경우 어떤 패킷을 송신할 지에 대한 결정을 단순화시킨다.For example, the information portion for the media frame may include multiple high priority packets of the base layer, and multiple low priority packets of the enhancement layer. All high priority packets of the frame portion must be available to the receiver to begin decoding the frame portion. If all high priority packets are available, then all of the low priority packets available can also be used by the decoder to improve the frame portion. Packets with different priorities may be provided consecutively interleaved for a frame. Alternatively, all higher priority packets may be provided before providing any lower priority packets of the frame. This simplifies the decision as to which packet to send if the bandwidth is inadequate for transmitting all packets in the frame.
단계(102)에서, 송신기는, 그 정보가 임계 시간 이전에 수신기에 이용가능하게 될 시간에 송신될 수 있는지를 추정한다.In step 102, the transmitter estimates whether the information can be transmitted at a time that will be available to the receiver before the threshold time.
상기 추정은, 목표 시간을 결정하는 것과, 전송 시간을 추정하는 것과, 현재 시간과 추정된 전송 시간의 합과 목표 시간을 비교하는 것을 포함할 수 있다. 목표 시간은, 정보 부분이 정보 부분을 디코딩하기 위해 수신기에 이용가능할 필요가 있을 때(디코딩 시간)에 관련된다. 추정된 전송 시간은, 정보 부분을 수신기로 송신하고 정보 부분을 디코딩하기 위해 정보 부분을 수신기에 이용가능하게 하는데 필요한 시간이다.The estimation may include determining a target time, estimating a transmission time, and comparing the target time with a sum of the current time and the estimated transmission time. The target time is related to when the information portion needs to be available to the receiver to decode the information portion (decoding time). The estimated transmission time is the time required to transmit the information portion to the receiver and make the information portion available to the receiver for decoding the information portion.
목표 시간은 수신기에 의해 제공된 시동(start-up) 버퍼링에 따라 좌우된다. 수신기 버퍼링은 일반적으로 저장 비용이 아닌 시동 제한에 의해 제한된다. 표현의 시청자는 수초를 초과하는 시동 시간에 종종 반감을 갖는다. 수신기 버퍼링을 증가시키는 것은 무선 채널의 처리량에 대한 단기간의 제약에 대한 효과를 감소시킨다. 수신기 버퍼링은 표준화되어, 송신기는 버퍼 한계를 인식한다. 대안적으로, 수신기는 버퍼링 한계의 표시(예를 들어, 시동 시간, 프로그램 플레이 시간, 버퍼 크기)를 송신기로 송신할 수 있다. 예를 들어, 시청자는, 표현 품질 저하에 대한 시청자의 혐오와 비교하여 시동을 느리게 하기 위해 자신의 혐오에 따라 시동 시간 선호도를 입력할 수 있고, 수신기는 시동 선호도를 송신기로 송신한다.The target time depends on the start-up buffering provided by the receiver. Receiver buffering is generally limited by startup limitations, not storage costs. Viewers of the expression are often antagonized by startup times exceeding a few seconds. Increasing receiver buffering reduces the effect of short-term constraints on the throughput of the wireless channel. Receiver buffering is standardized so that the transmitter is aware of the buffer limit. Alternatively, the receiver may transmit an indication of the buffering limit (eg, start time, program play time, buffer size) to the transmitter. For example, the viewer may enter a startup time preference according to his dislike to slow the startup compared to the viewer's dislike for poor expression, and the receiver transmits the startup preference to the transmitter.
목표 시간은 정보 부분이 제공될 때의 시간에 기초할 수 있다. 미디어 프레임에 대해, 프레임의 패킷이 디코딩에 필요한 것으로 제공되어, 목표 시간을 패킷이 제공된 시간에 기초로 하는 것이 적당하다고 가정할 수 있다. 대안적으로, 디코딩 시간은 미디어 프레임의 패킷으로부터 판독될 수 있고, 목표 시간으로서 사용될 수 있다. 모든 높은 우선 순위의 패킷이 프레임을 디코딩하기 시작하기 위해 디코더에 있어야 하기 때문에, 목표 시간은 프레임의 모든 높은 우선 순위의 패킷에 대해 동일할 수 있다. 또한, 일반적으로, 모든 낮은 우선 순위의 패킷은 프레임을 개선시키기 위해 디코딩 시간에 이용가능해야 한다. 따라서, 목표 시간은, 프레임의 제 1 부분이 제공되는 시간으로부터 도출될 수 있고, 동일한 목표 시간은 프레임의 모든 패킷에 사용될 수 있다.The target time may be based on the time when the information portion is provided. For a media frame, it may be assumed that the packets of the frame are provided as needed for decoding, so that the target time is based on the time at which the packet was provided. Alternatively, the decoding time can be read from the packet of the media frame and used as the target time. Since all high priority packets must be at the decoder to begin decoding the frame, the target time can be the same for all high priority packets of the frame. Also, in general, all lower priority packets should be available at decoding time to improve the frame. Thus, the target time can be derived from the time at which the first portion of the frame is provided, and the same target time can be used for all packets of the frame.
추정은 정보 부분의 우선 순위에 따를 수 있어서, 더 높은 우선 순위의 정보 부분은 더 낮은 우선 순위의 정보 부분보다 송신될 가능성이 더 있다. 예를 들어, 정보 부분에 대한 목표 시간 또는 추정된 전송 시간은 정보 부분의 우선 순위에 따라 (인자를 더하거나 인자를 곱함으로써) 조정될 수 있다. 예를 들어, 목표 시간은, 미디어 프레임의 제 1 패킷이 수신기의 버퍼링 시간에 도달하는 시간을 더함으로써 미디어 프레임에 대해 계산될 수 있다. 상이한 목표 시간은, 높은 우선 순위의 패킷에 대해 더 높고 낮은 우선 순위의 패킷에 대해 더 낮은 지연 허용오차와 버퍼링 시간을 곱함으로써 높은 우선 순위의 프레임 및 낮은 우선 순위의 프레임에 대해 계산될 수 있다.The estimation may be based on the priority of the information portion, so that the higher priority information portion is more likely to be transmitted than the lower priority information portion. For example, the target time or estimated transmission time for the information portion may be adjusted (by adding a factor or multiplying a factor) according to the priority of the information portion. For example, the target time may be calculated for the media frame by adding the time that the first packet of the media frame reaches the buffering time of the receiver. Different target times may be calculated for high priority frames and low priority frames by multiplying the lower delay tolerance and buffering time for higher priority packets for higher priority packets.
정보 부분은 MPEG과 같은 GOP(Group Of Picture: 화상 그룹)에 기초하여 인코딩된 비디오 표현의 패킷일 수 있다. 그러한 인코딩에서, 임의의 다른 프레임의 디코딩과 관계없이 디코딩된 I-프레임, 및 이전 I-프레임의 디코딩에 기초하여 디코딩된 P-프레임, 및 이전 및 후속 I 또는 P-프레임에 기초하여 디코딩된 B-프레임을 포함하는 상이한 유형의 비디오 프레임(프레임 또는 프레임 필드)이 있다. 일반적으로, 각 P-프레임에는 2개의 B-프레임이 있다. 따라서, I-프레임은, GOP에서의 모든 다른 프레임의 디코딩이 GOP의 I-프레임을 디코딩하는 것에 따르기 때문에 가장 중요한 프레임이다. P-프레임은, 최대 4개의 B-프레임의 디코딩이 각 P-프레임의 디코딩에 따르기 때문에 또한 중요하다.The information portion may be a packet of a video representation encoded based on a Group Of Picture (GOP) such as MPEG. In such encoding, the decoded I-frame, and the P-frame decoded based on the decoding of the previous I-frame, and the B decoded based on the previous and subsequent I or P-frames, regardless of the decoding of any other frame. There are different types of video frames (frames or frame fields) that include frames. In general, there are two B-frames in each P-frame. Thus, an I-frame is the most important frame because the decoding of all other frames in the GOP depends on decoding the I-frames of the GOP. P-frames are also important because the decoding of up to four B-frames depends on the decoding of each P-frame.
GOP 인코딩된 비디오 프레임에 대해, 상이한 우선 순위를 갖는 패킷(기본 층 대 개선 층 패킷)에 대해 전술한 방식과 유사한 방식으로, 추정은 비디오 프레임의 유형에 따를 수 있다.For GOP encoded video frames, the estimation may depend on the type of video frame, in a manner similar to that described above for packets with different priorities (base layer to enhancement layer packets).
추정된 전송 시간은 고정될 수 있고, 최대 패킷 크기 및 재송신 한계에 기초할 수 있다. 대안적으로, 추정된 송신 시간은, 예를 들어 이전 패킷이 송신될 때의 재송신 카운트에 기초하여 동적으로 추정될 수 있다. 예를 들어, 이전의 미리 결정된 수의 패킷의 평균 송신 시간이 사용될 수 있거나, 그 평균은, 더 많은 가중치가 더 최근에 송신된 패킷에 할당되는 시간 가중치 평균일 수 있다.The estimated transmission time may be fixed and may be based on the maximum packet size and the retransmission limit. Alternatively, the estimated transmission time may be estimated dynamically based on, for example, the retransmission count when the previous packet was transmitted. For example, the average transmission time of a previous predetermined number of packets may be used, or the average may be a time weighted average in which more weight is assigned to more recently transmitted packets.
가변 크기의 패킷에 대해, 패킷의 추정된 전송 시간은 패킷 크기에 따라 좌우될 수 있다. 더 큰 패킷은 송신하기에 더 오래 걸리고, 많은 재송신을 필요로 하는 많은 에러를 갖는 경향이 있다. 패킷 크기에 대한 조정은 미리 결정될 수 있거나, 동일한 크기의 범위에서 미리 결정된 수의 이전 패킷의 평균 또는 시간 가중치 평균에 기초할 수 있다.For packets of variable size, the estimated transmission time of the packet may depend on the packet size. Larger packets take longer to transmit and tend to have many errors that require a lot of retransmission. The adjustment to the packet size may be predetermined or may be based on the average or time weighted average of a predetermined number of previous packets in the same size range.
단계(103)에서, 패킷은 추정에 따라 송신된다. 즉, 임계 시간에 이용가능하게 될 시간에 송신되어 수신기에 의해 처리될 수 있는 패킷은 송신되고, 임계 시간까지 송신되어 수신기에 의해 처리될 수 없는 패킷은 드롭된다.In step 103, the packet is transmitted according to the estimate. That is, packets that are transmitted at the time that will be available at the threshold time and can be processed by the receiver are transmitted, and packets that are transmitted until the threshold time and cannot be processed by the receiver are dropped.
상이한 우선 순위를 갖는 패킷을 구비한 미디어 프레임에 대해, 프레임의 모든 더 높은 우선 순위의 패킷은 임의의 더 낮은 우선 순위의 패킷을 송신하기 이전에 송신될 수 있다. 대안적으로, 상이한 우선 순위를 갖는 패킷은 수신될 때 인터리빙되어 송신될 수 있다. 더 높은 우선 순위의 패킷을 더 일찍 송신하는 장점은, 대역폭이 감소될 때, 더 높은 우선 순위의 패킷이 더 낮은 우선 순위의 패킷보다 수신기에 자동으로 도달할 것 같다는 점이다.For media frames with packets with different priorities, all higher priority packets of the frame may be transmitted before transmitting any lower priority packets. Alternatively, packets with different priorities may be interleaved and transmitted when received. The advantage of sending higher priority packets earlier is that, when the bandwidth is reduced, higher priority packets are likely to reach the receiver automatically than lower priority packets.
일반적으로 비디오 인코딩에서, 프레임 부분의 모든 패킷은 프레임 부분을 디코딩하기 위해 이용가능해야 한다. 이 경우에, 예를 들어, 재송신 한계가 소비되기 때문에 프레임 부분의 하나의 패킷이 드롭되면, 프레임 부분의 모든 나머지 패킷은 수신기에 의해 사용될 수 없기 때문에 드롭될 수 있다.In general, in video encoding, all packets of a frame portion must be available for decoding the frame portion. In this case, for example, if one packet of the frame portion is dropped because the retransmission limit is consumed, all remaining packets of the frame portion may be dropped because they cannot be used by the receiver.
다른 한 편으로, 비디오 정보가 기본 층 및 개선 층으로 분리될 때, 프레임 부분을 디코딩하는데 모든 기본 층 패킷만이 필요하다. 개선 층 패킷이 드롭되면, 임의의 나머지 기본 층 패킷은 여전히 송신되어야 한다.On the other hand, when video information is separated into a base layer and an enhancement layer, only all base layer packets are needed to decode the frame part. If the enhancement layer packet is dropped, any remaining base layer packet should still be transmitted.
추정은, 미디어 프레임 부분의 모든 패킷이 임계 시간 이전에 수신기에 의해 이용가능하게 될 시간에 송신기에 의해 송신될 수 있는지 간에 미디어 프레임 부분의 패킷의 송신 동안 다수의 추정을 포함할 수 있고; 상기 송신은 프레임 부분의 모든 패킷에 대한 다수의 추정에 따라 좌우된다. 따라서, 프레임 부분에 대한 몇몇 패킷이 제시간에 송신되지 않을 것 같다고 추정될 때, 프레임 부분에 대한 나머지 패킷은 송신되지 않는다.The estimate may comprise a plurality of estimates during transmission of the packet of the media frame portion whether or not all packets of the media frame portion may be transmitted by the transmitter at a time that will be available by the receiver before the threshold time; The transmission depends on a number of estimates for all packets in the frame portion. Thus, when it is assumed that some packets for the frame portion are not likely to be transmitted in time, the remaining packets for the frame portion are not transmitted.
프레임에 대한 정보 부분이 상이한 우선 순위를 갖는 정보 부분을 포함할 때, 추정은, 우선 순위를 갖는 미디어 프레임 부분의 모든 패킷이 임계 시간 이전에 수신기에 이용가능하게 될 시간에 송신기에 의해 송신될 수 있는지 간에 미디어 프레임 부분의 패킷의 송신 동안 다수의 추정을 포함할 수 있고, 동일하거나 더 낮은 우선 순위를 갖는 패킷의 송신은 상기 우선 순위를 갖는 프레임 부분의 모든 패킷에 대한 다수의 추정에 따라 좌우된다. 따라서, 상기 우선 순위를 갖는 프레임 부분에 대한 몇몇 패킷이 프레임을 디코딩하기 위해 제시간에 송신되지 않을 것이라고 추정될 때, 동일하거나 더 낮은 우선 순위에 대한 프레임 부분의 나머지 패킷은 송신되지 않는다.When the information portion for the frame includes an information portion with a different priority, the estimate may be sent by the transmitter at a time when all packets of the media frame portion with priority will be available to the receiver before the threshold time. Whether it is possible to include multiple estimates during the transmission of packets of the media frame portion, and the transmission of packets with the same or lower priority depends on the multiple estimates for all packets of the frame portion having the priority. . Thus, when it is assumed that some packets for the frame portion having the priority will not be transmitted in time to decode the frame, the remaining packets of the frame portion for the same or lower priority are not transmitted.
도 2는 본 발명의 송신기의 일례의 관련 부분을 도시한다. 소스(110)는 임계 시간에 수신기에 이용가능할 필요가 있는 일련의 정보 부분을 제공한다. 소스는 위성 또는 지상파 방송 신호를 수신하기 위한 안테나 또는 케이블 연결부로부터 입력(111)을 포함할 수 있다. 입력(111) 이외에 또는 입력(111)의 대안에서, 소스(110)는 소스 유닛(112)을 포함할 수 있는데, 상기 소스 유닛(112)은 예를 들어 하드 드라이브, DVD 플레이어와 같은 미디어 플레이어, 또는 전자 저장 유닛을 포함할 수 있고; 또는 상기 소스 유닛은 라이브 성능을 캡처하기 위한 카메라를 포함할 수 있다.2 shows a relevant part of an example of the transmitter of the invention. Source 110 provides a series of pieces of information that need to be available to the receiver at a threshold time. The source may include an input 111 from an antenna or cable connection for receiving satellite or terrestrial broadcast signals. In addition to or in the alternative to input 111, source 110 may include source unit 112, which may include, for example, a hard drive, a media player such as a DVD player, Or an electronic storage unit; Alternatively, the source unit may comprise a camera for capturing live performance.
제어기(113)는 정보 부분을 수신기로 송신하는 것을 포함하는 송신기 동작을 제어한다. 제어기는, 정보 부분이 임계 시간 이전에 수신기에 이용가능하게 될 시간에 송신기에 의해 송신될 수 있는지를 추정한다.The controller 113 controls the transmitter operation, including transmitting the information portion to the receiver. The controller estimates whether the information portion can be transmitted by the transmitter at a time that will be available to the receiver before the threshold time.
송신 유닛(114)은 상기 추정에 따라 정보 부분을 수신기(아래의 도 3에 도시됨)로 송신한다. 제어기는 정보 부분을 송신하기 위해 제어 신호를 송신 유닛으로 송신한다. 즉, 정보 부분은, 정보 부분이 임계 시간 이전에 수신기에 이용가능하게 될 것 같으면 단지 송신기 유닛에 의해 송신된다.The transmitting unit 114 transmits the information portion to the receiver (shown in FIG. 3 below) according to the estimation. The controller sends a control signal to the transmitting unit to transmit the information portion. That is, the information portion is only transmitted by the transmitter unit if the information portion is likely to be available to the receiver before the threshold time.
정보 부분은 높은 우선 순위를 포함할 수 있고, 낮은 우선 순위의 정보 부분 또는 소스(110)는, 제공된 정보를 높은 우선 순위의 정보 부분 및 낮은 우선 순위의 정보 부분으로 분리하기 위한 분리기(115)를 포함할 수 있다.The information portion may comprise a high priority, and the low priority information portion or source 110 may include a separator 115 for separating the provided information into a high priority information portion and a low priority information portion. It may include.
버퍼(116)는 정보 부분을 저장하도록 제공되고, 제어기에 의한 정보 부분의 처리를 허용한다. 예를 들어, 분리기(115)는, 버퍼에 저장되는 일렬로 인터리빙된 높은 우선 순위의 패킷 및 낮은 우선 순위의 패킷 내로 정보를 패킷화할 수 있고, 그 다음에, 제어기는 임의의 낮은 우선 순위의 패킷을 송신기로 송신하기 전에 모든 높은 우선 순위의 패킷을 송신기로 송신하기 위해 버퍼를 제어한다. Buffer 116 is provided to store the information portion and allows processing of the information portion by the controller. For example, separator 115 may packetize the information into a low priority packet and a line of interleaved high-priority packets that are stored in a buffer, and then the controller may then place any low priority packets. The buffer is controlled to send all high priority packets to the transmitter before sending it to the transmitter.
수신기 유닛(117)은 수신기(도 3의 아래 부분에 도시됨)로부터 제어 정보를 수신한다. 그러한 정보는 정보 부분, 및 도 3의 수신기의 시동 시간(버퍼 한계)을 나타내는 정보를 수신하기 위한 요청을 포함할 수 있다.Receiver unit 117 receives control information from a receiver (shown in the lower part of FIG. 3). Such information may include a request to receive the information portion and information indicating the startup time (buffer limit) of the receiver of FIG. 3.
도 3은 본 발명의 예시적인 수신기의 관련 부분을 도시한다. 수신기 유닛(131)은 정보 부분을 수신한다. 제어기(132)는, 정보 부분을 버퍼링하고 임계 시간에 정보 부분을 디코더(134)로 송신하기 위해 버퍼(133)를 제어한다. 버퍼(133)는 시동 지연 시간까지 시간 길이 동안 정보 부분을 저장하고, 그 다음에 정보 부분을 디코더(134)로 통과시킨다. 예를 들어, 정보 부분이 인코딩된 비디오 정보를 포함할 때, 디코딩 시간에 디코더는 프레임 부분에 대한 정보 부분을 수신하고, 표현 시간에 디코더는 디코딩된 프레임 부분을 비디오 디스플레이(135)에 제공한다. 표현 동안, 비디오 프레임은 일정한 미리 결정된 프레임 속도로 정상적으로 디스플레이되지만, 디코딩 시간은 프레임 유형, 프레임 크기 및 프레임 복잡도에 따라 변할 수 있다.3 shows a relevant part of an exemplary receiver of the present invention. The receiver unit 131 receives the information portion. The controller 132 controls the buffer 133 to buffer the information portion and transmit the information portion to the decoder 134 at a threshold time. The buffer 133 stores the information portion for a length of time until the start-up delay time, and then passes the information portion to the decoder 134. For example, when the information portion includes encoded video information, at decoder time the decoder receives the information portion for the frame portion, and at presentation time the decoder provides the decoded frame portion to the video display 135. During the representation, the video frame is normally displayed at a constant predetermined frame rate, but the decoding time may vary depending on the frame type, frame size and frame complexity.
사용자 입력(136)은 정보 부분의 수신을 개시하는데 사용될 수 있고, 시동 지연을 선택하는데 사용될 수 있다. 제어기(132)는, 정보 부분 및 수신기의 시동 지연을 수신하기 위한 요청을 도 2의 송신기로 송신하기 위해 송신 유닛(137)을 제어한다.User input 136 may be used to initiate the receipt of the information portion and may be used to select a startup delay. The controller 132 controls the transmitting unit 137 to send a request to the transmitter of FIG. 2 to receive the information portion and the startup delay of the receiver.
다음 설명은 본 발명의 예시적인 시스템을 설명한다. 계층화된 멀티미디어 스트리밍 시스템은 클라이언트-서버 모델을 이용하여 구현된다. 인코딩된 비트 스트림은, 비디오 스트림을 디코딩하는데 필요한 기본 층, 및 디코딩을 개선시키는데 사용되는 개선 층을 포함하는 수 개의 층을 갖는다. 클라이언트 상에서 동작하는 애플리케이션은 송신을 시작하기 위한 요청을 서버로 송신함으로써 스트리밍 세션을 개시한다. 관리 정보를 교환하는데 사용된 프로토콜은 RTSP(Real Time Streaming Protocol: 실시간 스트리밍 프로토콜)일 수 있다. 서버는 데이터 스트림을 클라이언트로 송신함으로써 응답한다. 데이터 스트림에 사용된 프로토콜은 RTP(실시간 프로토콜)이다. RTSP 스트림은, RTP 스트림이 UDP(사용자 데이터 프로토콜)를 이용하는 동안 전송 프로토콜로서 TCP(송신 제어 프로토콜)에 좌우된다. IP(인터넷 프로토콜)는 네트워크 층에 사용된 프로토콜이고, 링크 층은 IEEE 802.11 무선 기술을 이용한다.The following description describes an exemplary system of the present invention. Layered multimedia streaming systems are implemented using a client-server model. The encoded bit stream has several layers, including a base layer necessary to decode the video stream, and an enhancement layer used to improve decoding. An application running on the client initiates a streaming session by sending a request to the server to begin transmission. The protocol used to exchange management information may be a Real Time Streaming Protocol (RTSP). The server responds by sending a data stream to the client. The protocol used for the data stream is RTP (Real Time Protocol). The RTSP stream depends on TCP (Transmission Control Protocol) as the transport protocol while the RTP stream uses UDP (User Data Protocol). IP (Internet Protocol) is a protocol used at the network layer, and the link layer uses IEEE 802.11 wireless technology.
도 4에서, 방송 정보 스트림은 150에서 수신되고, 분리기(151)에 의해 기본 층 스트림(152) 및 개선 층 스트림(153)으로 분리된다. 스트리밍 서버(154)는, 기본 및 개선 층 스트림을 무선 송신기(156)를 통해 전달하는 MAC(미디어 액세스) 층(155)으로 통과시킨다. 기본 및 개선 스트림은 무선 매체(157)를 통해 무선 수신기(158)로 전달된다. 그 다음에, 기본 및 개선 스트림은 클라이언트 애플리케이션(159)으로 전달되고, 상기 클라이언트 애플리케이션(159)은 상기 스트림을 디코더(160)에 제공하고, 상기 디코더(160)는 스트림을 병합하여, 161에서의 디코딩된 멀티미디어 표현을 제공하기 위해 상기 스트림을 디코딩한다.In FIG. 4, the broadcast information stream is received at 150 and separated by a separator 151 into a base layer stream 152 and an enhancement layer stream 153. The streaming server 154 passes the primary and enhancement layer streams to the MAC (media access) layer 155, which passes through the wireless transmitter 156. The primary and enhancement streams are delivered to the wireless receiver 158 via the wireless medium 157. The primary and enhancement streams are then delivered to a client application 159, the client application 159 providing the stream to the decoder 160, and the decoder 160 merging the streams, Decode the stream to provide a decoded multimedia representation.
도 5는 송신자 네트워크 스택의 부분을 도시한다. 애플리케이션 층(170)에서, 비디오 스트리밍 서버(171)는 계층화된 멀티미디어 스트림을 제공한다. 스트리밍 서버의 주 작업은 RTP 패킷을 구축하고, 스트리밍 세션(패킷 스케줄링을 포함)을 관리하기 위한 것이다. 서버는 그 동작을 비디오 파일에서 이용가능한 암시(hinting) 정보에 기초한다. 서버는 암시 정보를 판독하고, RTP 패킷의 2개의 스트림을 생성한다. 하나의 스트림은 기본 층 패킷을 포함하고, 다른 스트림은 개선 층 패킷을 포함한다. 각 패킷은 RTP 페이로드 필드를 포함하고, 기본 층 패킷의 RTP 페이로드 필드 값은 개선 층 패킷의 RTP 페이로드 필드 값과 다르다. 따라서, 기본 층 패킷은 RTP 페이로드 필드에 대한 상이한 값에 기초하여 개선 층 패킷으로부터 구별될 수 있다.5 illustrates a portion of a sender network stack. At application layer 170, video streaming server 171 provides a layered multimedia stream. The main task of the streaming server is to build RTP packets and to manage streaming sessions (including packet scheduling). The server bases its operation on the hint information available in the video file. The server reads the implicit information and generates two streams of RTP packets. One stream contains base layer packets and the other stream contains enhancement layer packets. Each packet includes an RTP payload field, and the RTP payload field value of the base layer packet is different from the RTP payload field value of the enhancement layer packet. Thus, the base layer packet can be distinguished from the enhancement layer packet based on different values for the RTP payload field.
서버는 RTP 시간스탬프를 각 패킷에 또한 추가한다. RTP 시간스탬프의 값은 프레임의 모든 패킷에 대해 동일하고, 패킷이 생성되는 시간을 나타낸다.The server also adds an RTP timestamp to each packet. The value of the RTP timestamp is the same for all packets in the frame and represents the time at which the packet is generated.
스트리밍 서버는 UDP 소켓을 이용하여 스트림을 운영 체계 커널(173)로 전달한다. 특정 순간에, 서버는 동일한 비디오 프레임에 대응하는 모든 패킷을 운영 체계 커널로 송출한다. 먼저, 서버는 프레임에 대한 모든 기본 층(높은 우선 순위) 패킷을 송신하고, 그 다음에 서버는 프레임에 대한 모든 개선 층(낮은 우선 순위) 패킷을 송신한다. 따라서, 스트림은 기본 및 개선 층 패킷의 교대 사이클에서 송출된다. 운영 체계 커널은 스트림을 802.11 디바이스 드라이버(174)로 통과시킨다. 운영 체계 커널(173) 및 802.11 디바이스 드라이버(174)는 운영 체계 층의 부분이다. 802.11 디바이스 드라이버는, 무선 주파수(RF) 무선 송신을 위해 802.11 MAC 층(176) 및 802.11 물리적 층(177)을 포함하는 무선 송신 디바이스(175)에 스트림을 통과시킨다.The streaming server delivers the stream to the operating system kernel 173 using a UDP socket. At a particular moment, the server sends all packets corresponding to the same video frame to the operating system kernel. First, the server sends all base layer (high priority) packets for the frame, and then the server sends all enhancement layer (low priority) packets for the frame. Thus, the stream is sent out in alternating cycles of base and enhancement layer packets. The operating system kernel passes the stream to the 802.11 device driver 174. Operating system kernel 173 and 802.11 device driver 174 are part of the operating system layer. The 802.11 device driver passes the stream to a wireless transmission device 175 that includes an 802.11 MAC layer 176 and an 802.11 physical layer 177 for radio frequency (RF) wireless transmission.
시스템 서버(전술한 바와 같이)가 기본 및 개선 층 패킷의 교대 사이클을 송신하고, 기본 및 개선 층 패킷이 RTP 페이로드 필드에서 상이한 값을 갖기 때문에, 프레임의 시작은 쉽게 검출된다. 프레임 경계를 검출하는 대안적인 방식은 RTP 시간스탬프를 이용하는 것인데, 이는 프레임의 모든 패킷에 대해 동일한 값을 갖고 인접한 프레임의 패킷과 상이한 값을 갖기 때문이다.Since the system server (as described above) sends alternating cycles of base and enhancement layer packets, and the base and enhancement layer packets have different values in the RTP payload field, the start of the frame is easily detected. An alternative way of detecting frame boundaries is to use an RTP timestamp because it has the same value for all packets in the frame and has a different value than packets in adjacent frames.
기본 층 패킷을 먼저 송신하는 것은, 개선 층 패킷의 손실에 대한 송신의 우선 순위를 정하는 양호한 방식이다. 기본 층 패킷이 모두 성공적으로 송신된 후에, 지연 한계 및 시스템 조건에 따라 개선 층 패킷을 드롭할 지를 결정할 수 있다.Transmitting the base layer packets first is a good way to prioritize transmissions for loss of enhancement layer packets. After all of the base layer packets have been successfully transmitted, it is possible to determine whether to drop the enhancement layer packet according to the delay limit and system conditions.
도 6은 본 발명의 예시적인 수신기의 구조를 도시한다. 패킷은 191에서 무선 링크를 통해 802.11 네트워크 디바이스(190)에 의해 수신된다. 패킷은, 802.11 네트워크 디바이스(190)로부터 802.11 디바이스 드라이버(192) 및 운영 체계 커널(193)을 통해 통과된다. 802.11 디바이스 드라이버(192) 및 운영 체계 커널(193)은 수신기의 운영 체계 층(197)의 부분이다. 그 다음에, 패킷은 운영 체계 커널(193)로부터 클라이언트 애플리케이션 층(195)의 클라이언트 버퍼(194)로 통과된다. RTP 시간스탬프는 특정 프레임에 어떤 패킷이 속하는 지를 식별하+는데 사용된다. 프레임에 대한 디코딩 시간에, 프레임에 대한 모든 패킷은 디코더(196)에 통과된다.6 shows the structure of an exemplary receiver of the present invention. The packet is received by the 802.11 network device 190 over the wireless link at 191. Packets are passed from the 802.11 network device 190 through the 802.11 device driver 192 and the operating system kernel 193. The 802.11 device driver 192 and operating system kernel 193 are part of the operating system layer 197 of the receiver. The packet then passes from the operating system kernel 193 to the client buffer 194 of the client application layer 195. RTP timestamps are used to identify which packets belong to a particular frame. At the decoding time for the frame, all packets for the frame are passed to the decoder 196.
도 7은 우선 순위화 패킷을 적응성으로 드롭하기 위한 본 발명의 예시적인 알고리즘을 도시한다. 가로 점선은 서버의 상이한 부분에서 수행되는 단계들을 분리시킨다. 단계(210)에서, 스트리밍 비디오 서버는 기본 층 및 개선 층 패킷을 생성하고, 단계(211)에서, 서버는 시간스탬프 시간을 갖는 프레임에 대한 모든 패킷을 시간스탬핑하고, 프레임에 대한 모든 패킷을 운영 체계 커널로 송신한다. 서버는 프레임에 대한 임의의 개선 층 패킷을 송신하기 전에 프레임에 대한 모든 기본 층 패킷을 송신한다. 단계(212)에서, 프레임에 대한 패킷은 운영 체계 커널의 소켓 버퍼링에 저장된다. 단계(213)에서, 802.11 디바이스 드라이버는 패킷 유형을 판독한다.7 illustrates an exemplary algorithm of the present invention for adaptively dropping prioritized packets. The horizontal dashed line separates the steps performed in different parts of the server. In step 210, the streaming video server generates base layer and enhancement layer packets, and in step 211, the server timestamps all packets for the frame with timestamp time, and operates all packets for the frame. Send to the system kernel. The server sends all base layer packets for the frame before sending any enhancement layer packets for the frame. In step 212, the packet for the frame is stored in the socket buffering of the operating system kernel. In step 213, the 802.11 device driver reads the packet type.
검출 모듈(214)은 패킷 유형과, 패킷이 새로운 비디오 프레임의 시작인지를 검출한다. 검출 모듈에서, 단계(215)에서, 드라이버는 패킷이 기본 층 패킷인지를 결정한다. 패킷이 기본 층 패킷이면, 단계(216)에서, 드라이버는 드라이버가 이미 기본 층 사이클 상태에 있는지를 결정한다. 드라이버가 기본 층 사이클 상태에 있지 않으면, 이것은 프레임의 제 1 패킷이고, 단계(217)에서, 드라이버는 기본 층 사이클 상태를 입력한다. 또한, 검출 모듈(214)에서, 단계(215)에서, 패킷이 기본 층 패킷이 아닌지가 결정되면, 패킷은 개선 층 패킷이고, 단계(218)에서, 드라이버는 개선 층 상태에 있다.The detection module 214 detects the packet type and whether the packet is the start of a new video frame. In the detection module, at step 215, the driver determines if the packet is a base layer packet. If the packet is a base layer packet, then at step 216, the driver determines if the driver is already in a base layer cycle state. If the driver is not in the base layer cycle state, this is the first packet of the frame, and in step 217, the driver enters the base layer cycle state. Further, in detection module 214, if it is determined in step 215 that the packet is not a base layer packet, then the packet is an enhancement layer packet, and in step 218, the driver is in an enhancement layer state.
목표 시간을 추정하기 위한 목표 시간 모듈(220)에서, 새로운 프레임의 송신의 시작에, 드라이버는, 프레임의 임의의 패킷이 수신기에 도달해야 하는 최종 시간인 목표 시간을 추정한다. 목표 시간 모듈에서, 단계(221)에서, 기본 층 패킷에 대한 목표 시간, 및 개선 층 패킷에 대한 상이한 목표 시간이 계산된다. 기본 층 패킷에 대한 목표 시간은 프레임의 제 1 패킷의 RTP 시간스탬프 시간과, 기본 층 패킷에 대한 지연 허용오차와 곱해진 수신기의 버퍼링 시간의 합이다. 개선 층 패킷에 대한 목표 시간은, 프레임의 제 1 패킷의 RTP 시간스탬프 시간과, 개선 층 패킷에 대한 지연 허용오차와 곱해진 수신기의 버퍼링 시간의 합이다. In the target time module 220 for estimating the target time, at the start of the transmission of a new frame, the driver estimates the target time, which is the last time any packet in the frame should reach the receiver. In the target time module, in step 221, a target time for the base layer packet and a different target time for the enhancement layer packet are calculated. The target time for the base layer packet is the sum of the RTP timestamp time of the first packet of the frame and the buffering time of the receiver multiplied by the delay tolerance for the base layer packet. The target time for the enhancement layer packet is the sum of the RTP timestamp time of the first packet of the frame and the buffering time of the receiver multiplied by the delay tolerance for the enhancement layer packet.
기본 층 패킷에 대한 지연 허용오차는 개선 층 패킷에 대한 지연 허용오차보다 훨씬 더 커야 한다. 이러한 지연 허용오차의 값은 일정할 수 있거나, 특정 애플리케이션, 특정 네트워크, 및 네트워크 조건에 따라 튜닝될 수 있다.The delay tolerance for base layer packets should be much larger than the delay tolerance for enhancement layer packets. The value of this delay tolerance may be constant or may be tuned according to a particular application, a particular network, and network conditions.
수신기의 버퍼링 시간은 본질적으로 수신기에서의 스트림에 대한 시동 지연이다. 이것은 미리 결정된 고정 양일 수 있다. 대안적으로, 버퍼링 시간은 수신기로부터 수신되어야 하는 가변 양일 수 있다. 버퍼링 시간의 송신은 RTSP(실시간 스트리밍 프로토콜)를 이용하여 이루어질 수 있는데, 상기 RTSP는 또한 스트리밍 세션을 개시하기 위해 수신기에 의해 사용된 프로토콜이다.The buffering time of the receiver is essentially a startup delay for the stream at the receiver. This may be a predetermined fixed amount. Alternatively, the buffering time may be a variable amount that must be received from the receiver. The transmission of the buffering time can be made using RTSP (Real Time Streaming Protocol), which is also the protocol used by the receiver to initiate a streaming session.
이 실시예에서, 동일한 기본 층 목표 시간은 모든 기본 층 패킷에 사용되고, 동일한 개선 층 목표 시간은 모든 개선 층 패킷에 의해 사용된다.In this embodiment, the same base layer target time is used for all base layer packets, and the same enhancement layer target time is used by all enhancement layer packets.
이러한 지연 허용오차의 조정은 인식된 품질을 최대화하기 위해 미디어 패킷의 송신에서 2개의 경합 목적의 균형을 이루는데 사용될 수 있다. 제 1 목적은 모든 기본 층 패킷의 성공적인 수신을 최대화하는 것이다. 제 2 목적은 개선 층 패킷의 폐기를 최소화하는 것이다.This delay tolerance adjustment can be used to balance two contention purposes in the transmission of media packets to maximize perceived quality. The first purpose is to maximize the successful reception of all base layer packets. The second purpose is to minimize discarding of enhancement layer packets.
기본 및 개선 층 패킷에 대한 목표 시간의 상기 계산은 프레임의 제 1 패킷의 RTP 시간스탬프 시간에 기초한다. 다른 대안은 디코딩 시간을 추정하기 위해 프레임 속도를 이용하는 것이다. 그러나, RTP 시간스탬프 시간 및 프레임 속도는 디코딩 시간(진정한 목표 시간)의 정확하지 않은 표시자이다. 그러나, 디코딩 시간은 RTP 시간으로부터 도출될 수 있고, 그 다음에 디코딩 시간은 프레임에 대한 목표 시간의 계산에 사용될 수 있다. The calculation of the target time for the base and enhancement layer packets is based on the RTP timestamp time of the first packet of the frame. Another alternative is to use the frame rate to estimate the decoding time. However, the RTP timestamp time and frame rate are inaccurate indicators of decoding time (true target time). However, the decoding time can be derived from the RTP time, which can then be used for the calculation of the target time for the frame.
패킷을 송신할지를 결정하는 결정 모듈(230)에서, 드라이버는 각 패킷의 송신 지속기간을 추정하고, 단계(221)에서 목표 시간 모듈에서 결정된 패킷의 유형에 대한 목표 시간에 따라 패킷을 송신할지의 여부를 결정한다. 결정 모듈에서, 패킷이 기본 층 패킷이면, 단계(231)에서, 기본 층 패킷의 전송 시간이 추정된다.In the determining module 230, which determines whether to transmit the packet, the driver estimates the transmission duration of each packet and whether to transmit the packet according to the target time for the type of packet determined in the target time module in step 221. Determine. In the determining module, if the packet is a base layer packet, then at step 231, the transmission time of the base layer packet is estimated.
패킷의 평균 전송 시간은 네트워크 조건 및 패킷의 크기에 기초하여 도출될 수 있다. 시간 가중치 평균은 네트워크 조건에 이용될 수 있다. 대안적으로, 실제 네트워크 조건은 무시될 수 있고, 최악의 경우의 조건이 사용될 수 있다. 이 경우에, 전송 시간은 고정되고, 계산될 필요가 없다. 최악의 경우의 전송 시간은 패킷의 유형에 대한 최대 재송신 한계 및 최대 패킷 크기에 기초할 수 있다. 재송신 한계는 개선 층 패킷에 대해서보다 기본 층 패킷에 대해 더 높을 수 있다. 802.11 무선 송신에서 비디오 패킷에 대한 일반적인 최대 패킷 크기는 1500바이트이다.The average transmission time of a packet can be derived based on network conditions and the size of the packet. The time weighted average may be used for network conditions. Alternatively, actual network conditions can be ignored and worst case conditions can be used. In this case, the transmission time is fixed and does not need to be calculated. The worst case transmission time may be based on the maximum retransmission limit and the maximum packet size for the type of packet. The retransmission limit may be higher for base layer packets than for enhancement layer packets. In 802.11 wireless transmissions, the typical maximum packet size for video packets is 1500 bytes.
단계(232)에서, 드라이버는, 현재 시간과 전송 시간의 합이 기본 층 패킷에 대한 목표 시간을 초과하는지를 결정한다. 단계(232)에서의 목표 시간이 초과되면, 단계(233)에서, 기본 층 패킷은 드롭된다. 목표 시간이 동일한 프레임의 모든 기본 층 패킷에 대해 동일하기 때문에, 이것은, 모든 후속하는 기본 층 패킷이 또한 드롭된다는 것을 의미한다. 또한, 프레임의 다음의 모든 개선 층 패킷에 대한 목표 시간은 동일하고 낮아져서, 동일한 프레임의 다음의 모든 개선 층 패킷이 또한 드롭될 것이다.At step 232, the driver determines if the sum of the current time and the transmission time exceeds the target time for the base layer packet. If the target time in step 232 is exceeded, then in step 233, the base layer packet is dropped. Since the target time is the same for all base layer packets of the same frame, this means that all subsequent base layer packets are also dropped. Also, the target time for all subsequent enhancement layer packets of the frame will be the same and lower, so that all subsequent enhancement layer packets of the same frame will also be dropped.
단계(232)에서 그렇지 않다면, 목표 시간이 초과되지 않으면, 단계(234)에서 기본 층 패킷은 802.11 디바이스로 송신된다. If not at step 232, if the target time is not exceeded, then at step 234 the base layer packet is transmitted to the 802.11 device.
결정 모듈에서, 패킷이 개선 층 패킷이면, 단계(235)에서, 개선 층 패킷의 전송 시간이 추정된다. 기본 층 패킷에 대한 전송 시간의 추정에 대한 상기 논의는 또한 일반적으로 개선 층 패킷의 전송 시간의 추정에 적용가능하다.In the determining module, if the packet is an enhancement layer packet, then at step 235, the transmission time of the enhancement layer packet is estimated. The above discussion of the estimation of the transmission time for the base layer packet is also generally applicable to the estimation of the transmission time of the enhancement layer packet.
단계(236)에서, 드라이버는, 현재 시간과 전송 시간의 합이 개선 층 패킷에 대한 목표 시간을 초과하는지를 결정한다. 단계(236)에서의 목표 시간이 초과되면, 단계(233)에서 개선 층 패킷은 드롭된다. 목표 시간이 동일한 프레임의 모든 개선 층 패킷에 대해 동일하기 때문에, 이것은, 다음의 모든 개선 층 패킷이 또한 드롭된다는 것을 의미한다.At step 236, the driver determines if the sum of the current time and the transmission time exceeds the target time for the enhancement layer packet. If the target time in step 236 is exceeded, the enhancement layer packet is dropped in step 233. Since the target time is the same for all enhancement layer packets of the same frame, this means that all subsequent enhancement layer packets are also dropped.
단계(236)에서 그렇지 않으면, 목표 시간이 초과되지 않은 경우, 단계(234)에서, 개선 층 패킷은 802.11 디바이스로 송신된다.Otherwise in step 236, if the target time has not been exceeded, then in step 234, an enhancement layer packet is sent to the 802.11 device.
단계(240)에서, 802.11 디바이스는 MAC 버퍼에서 전달될 패킷을 저장하고, 그 다음에 이 패킷을 송신한다. 어떠한 ACK도 수신되지 않으면, 패킷은, ACK가 수신되거나 재송신 한계가 소비될 때까지 재송신된다.In step 240, the 802.11 device stores the packet to be delivered in the MAC buffer and then transmits this packet. If no ACK is received, the packet is retransmitted until an ACK is received or the retransmission limit is consumed.
도 8은 도 7의 알고리즘의 결정 모듈(230)의 변형을 도시한다. 도 8의 알고리즘에서, 프레임을 송신하거나 드롭할지에 대한 결정은 프레임 유형에 따라 좌우된다. 변형된 결정 모듈(250)에서, 패킷이 기본 층 패킷이면, 단계(251)에서, 프레임 유형이 결정된다. 프레임 유형이 I-프레임이면, 단계(252)에서 허용오차는 I-프레임에 대한 기본 층 패킷에 대한 I-프레임 허용오차 값으로 설정된다. 그렇지 않은 경우, 프레임 유형이 P-프레임이면, 단계(253)에서 허용오차는 P-프레임에 대한 기본 층 패킷에 대한 P-프레임 허용오차 값으로 설정된다. 그렇지 않은 경우, 프레임 유형이 B-프레임이면, 단계(254)에서 허용오차는 B-프레임에 대한 기본 층 패킷에 대한 B-프레임 허용오차 값으로 설정된다. I 프레임에 대한 허용오차 값은 P-프레임 또는 B-프레임에 대한 허용오차 값보다 더 커야 한다. B-프레임에 대한 허용오차 값은 예를 들어 0이어야 한다.8 illustrates a variation of the determination module 230 of the algorithm of FIG. 7. In the algorithm of FIG. 8, the determination of whether to send or drop a frame depends on the frame type. In the modified decision module 250, if the packet is a base layer packet, then in step 251, the frame type is determined. If the frame type is an I-frame, the tolerance at step 252 is set to the I-frame tolerance value for the base layer packet for the I-frame. Otherwise, if the frame type is a P-frame, then in step 253 the tolerance is set to the P-frame tolerance value for the base layer packet for the P-frame. Otherwise, if the frame type is a B-frame, the tolerance in step 254 is set to the B-frame tolerance value for the base layer packet for the B-frame. The tolerance value for an I frame must be greater than the tolerance value for a P-frame or a B-frame. Tolerance values for B-frames should be zero, for example.
단계(255)에서, 드라이버는, 현재 시간과 전송 시간의 합이 기본 층 패킷에 대한 허용오차와 목표 시간의 합을 초과하는지를 결정한다. 단계(255)에서 목표 시간과 허용오차의 합이 초과되면, 단계(233)에서 기본 층 패킷은 드롭된다. 단계(255)에서 그렇지 않은 경우, 목표 시간과 허용오차의 합이 초과되지 않으면, 단계(234)에서, 기본 층 패킷은 802.11 디바이스로 송신된다.In step 255, the driver determines whether the sum of the current time and the transmission time exceeds the sum of the tolerance and the target time for the base layer packet. If the sum of the target time and the tolerance in step 255 is exceeded, then in step 233 the base layer packet is dropped. Otherwise in step 255, if the sum of the target time and the tolerance is not exceeded, then in step 234, the base layer packet is transmitted to the 802.11 device.
변형된 결정 모듈(250)에서, 패킷이 개선 층 패킷이면, 단계(261)에서 프레임 유형이 결정된다. 프레임 유형이 I-프레임이면, 단계(262)에서, 허용오차는 I-프레임에 대한 개선 층 패킷에 대한 I-프레임 허용오차로 설정된다. 그렇지 않은 경우, 프레임 유형이 P-프레임이면, 단계(263)에서 허용오차는 P-프레임에 대한 개선 층 패킷에 대한 P-프레임 허용오차 값으로 설정된다. 그렇지 않은 경우, 프레임 유형이 B-프레임이면, 단계(264)에서 허용오차는 B-프레임에 대한 개선 층 패킷에 대한 B-프레임 허용오차 값으로 설정된다. 다시, I 프레임에 대한 허용오차 값은 P-프레임 또는 B-프레임에 대한 허용오차 값보다 더 커야 한다. B-프레임에 대한 허용오차 값은 예를 들어 0이어야 한다.In modified decision module 250, if the packet is an enhancement layer packet, then frame type is determined in step 261. If the frame type is an I-frame, then at step 262, the tolerance is set to the I-frame tolerance for the enhancement layer packet for the I-frame. Otherwise, if the frame type is a P-frame, the tolerance at step 263 is set to the P-frame tolerance value for the enhancement layer packet for the P-frame. Otherwise, if the frame type is a B-frame, the tolerance at step 264 is set to the B-frame tolerance value for the enhancement layer packet for the B-frame. Again, the tolerance value for an I frame must be greater than the tolerance value for a P-frame or a B-frame. Tolerance values for B-frames should be zero, for example.
단계(265)에서, 드라이버는, 현재 시간과 전송 시간의 합이 개선 층 패킷에 대한 허용오차와 목표 시간의 합을 초과할지를 결정한다. 단계(255)에서 목표 시간과 허용오차의 합이 초과되면, 단계(233)에서 개선 층 패킷은 드롭된다. 단계(255)에서 그렇지 않은 경우, 목표 시간과 허용오차의 합이 초과되지 않으면, 단계(234)에서, 개선 층 패킷은 802.11 디바이스로 송신된다.In step 265, the driver determines whether the sum of the current time and the transmission time exceeds the sum of the tolerance and the target time for the enhancement layer packet. If the sum of the target time and the tolerance in step 255 is exceeded, then in step 233 the enhancement layer packet is dropped. Otherwise in step 255, if the sum of the target time and the tolerance is not exceeded, then in step 234, the enhancement layer packet is transmitted to the 802.11 device.
본 발명은 특정한 예시적인 실시예와 관련하여 위에서 설명되었다. 당업자는 본 명세서에서 본 발명의 범주 내에서 이러한 예시적인 실시예를 변형하는 방법을 알 것이다. 본 발명은 다음 청구항에 의해서만 한정된다.The present invention has been described above in connection with specific exemplary embodiments. Those skilled in the art will know herein how to modify such exemplary embodiments within the scope of the invention. The invention is limited only by the following claims.
상술한 바와 같이, 본 발명은, 실시간 표현을 위해 인터넷과 같은 가변 지연 네트워크, 또는 무선 LAN(근거리 네트워크)과 같은 패킷 손실 네트워크를 통한 미디어 패킷의 송신 분야 등에 이용된다.As described above, the present invention is used in the field of transmission of media packets through a variable delay network such as the Internet or a packet loss network such as a wireless LAN (near field network) for real time representation.
Claims (35)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2005-7000809A KR20050023429A (en) | 2002-07-18 | 2003-07-18 | Adaptive dropping of prioritized transmission packets |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60/396,814 | 2002-07-18 | ||
KR10-2005-7000809A KR20050023429A (en) | 2002-07-18 | 2003-07-18 | Adaptive dropping of prioritized transmission packets |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20050023429A true KR20050023429A (en) | 2005-03-09 |
Family
ID=41784591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2005-7000809A Abandoned KR20050023429A (en) | 2002-07-18 | 2003-07-18 | Adaptive dropping of prioritized transmission packets |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20050023429A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101418762B1 (en) * | 2008-11-07 | 2014-07-11 | 아바야 인코포레이티드 | Automatic detection and re-configuration of priority states in telecommunication networks |
-
2003
- 2003-07-18 KR KR10-2005-7000809A patent/KR20050023429A/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101418762B1 (en) * | 2008-11-07 | 2014-07-11 | 아바야 인코포레이티드 | Automatic detection and re-configuration of priority states in telecommunication networks |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060164987A1 (en) | Adaptive dropping of prioritized transmission packets | |
EP1130839B1 (en) | Method and apparatus for retransmitting video data frames with priority levels | |
EP2532170B1 (en) | Data flow control method and apparatus | |
US9571404B2 (en) | Method and system for prioritizing network packets | |
US9515941B2 (en) | Dynamic determination of transmission parameters based on packet priority and network conditions | |
US9503492B2 (en) | Method and apparatus for improving quality of multimedia streaming service | |
US20050213502A1 (en) | Method and system for controlling operation of a network, such as a WLAN, related network and computer program product therefor | |
US9544602B2 (en) | Wireless video transmission system | |
US8345740B2 (en) | System, transmitter, receiver, method and software for transmitting and receiving ordered sets of video frames | |
CN109155707B (en) | Requesting data retransmission in a multicast network | |
CN108833930B (en) | Live broadcast data transmission control method and device, live broadcast equipment and storage medium | |
Balk et al. | Adaptive MPEG-4 video streaming with bandwidth estimation | |
US20110310957A1 (en) | Encoding of a video frame for transmission to a plurality of clients | |
Sutinen et al. | Towards ubiquitous video services through scalable video coding and cross-layer optimization | |
KR20050023429A (en) | Adaptive dropping of prioritized transmission packets | |
Tirouvengadam et al. | Hybrid Mode Radio Link Control for Efficient Video Transmission over 4GLTE Network | |
Kliazovich et al. | Context-aware receiver-driven retransmission control in wireless local area networks | |
Nelwamondo | Adaptive Video Streaming Over IEEE 802.11 Wireless Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0105 | International application |
Patent event date: 20050117 Patent event code: PA01051R01D Comment text: International Patent Application |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20080715 Comment text: Request for Examination of Application |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20100319 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20100818 |
|
NORF | Unpaid initial registration fee | ||
PC1904 | Unpaid initial registration fee |