KR100847168B1 - Apparatus and method for rearranging packet sequence for processing jitter in network based on udp/rtp - Google Patents
Apparatus and method for rearranging packet sequence for processing jitter in network based on udp/rtp Download PDFInfo
- Publication number
- KR100847168B1 KR100847168B1 KR1020060120334A KR20060120334A KR100847168B1 KR 100847168 B1 KR100847168 B1 KR 100847168B1 KR 1020060120334 A KR1020060120334 A KR 1020060120334A KR 20060120334 A KR20060120334 A KR 20060120334A KR 100847168 B1 KR100847168 B1 KR 100847168B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- buffer
- processing block
- network
- descriptor
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5681—Buffer or queue management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
UDP/RTP를 사용하는 망에서의 지터 처리 및 패킷 순서 재배열 장치가 개시된다. 일 실시예에서, 상기 장치는 네트워크로부터 유입되는 데이터 중 제1 기준을 만족하는 데이터를 저장하고, 저장된 데이터 중 제2 기준을 만족하는 데이터를 플레이아웃하는 버퍼, 네트워크로부터 유입되는 데이터가 상기 제1 기준 및 상기 제2 기준을 만족하는지를 판단하여 버퍼에 전달하는 유입 데이터 처리 블록, 및 유입 데이터 처리 블록의 판단의 기준이 되는 파라미터들을 포함하여 유입 데이터 처리 블록에 제공하는 디스크립터 블록을 포함한다. 상기 실시예에 따르면, VoIP와 같은 서비스에 적당하도록 데이터의 전송 품질을 높일 수 있다.A jitter processing and packet order rearrangement apparatus in a network using UDP / RTP is disclosed. In one embodiment, the device stores a data that satisfies the first criterion of the data flowing from the network, a buffer for playing out the data that satisfies the second criterion of the stored data, the data flowing from the network is the first An inflow data processing block that determines whether the criterion and the second criterion is satisfied and delivers the buffer to the buffer, and a descriptor block including the parameters that are the criteria of the determination of the inflow data processing block to provide to the inflow data processing block. According to the above embodiment, the transmission quality of data can be enhanced to be suitable for a service such as VoIP.
UDP(User Datagram Protocol), RTP(Real-time Transport Protocol), VoIP(Voice over Internet Protocol), 패킷, 버퍼 User Datagram Protocol (UDP), Real-time Transport Protocol (RTP), Voice over Internet Protocol (VoIP), Packets, Buffers
Description
도 1은 UDP 패킷 포맷을 나타낸 도면.1 illustrates a UDP packet format.
도 2는 VoIP 망에서의 음성 흐름도.2 is a voice flowchart of a VoIP network.
도 3은 RTP 헤더 포맷을 나타낸 도면.3 illustrates an RTP header format.
도 4는 종래의 버퍼의 구조를 개략적으로 도시한 도면.4 is a view schematically showing the structure of a conventional buffer.
도 5는 버퍼의 구조의 일 실시예를 개략적으로 도시한 도면.5 schematically illustrates one embodiment of the structure of a buffer;
도 6은 디스크립터(descriptor)의 포맷의 일 실시예를 나타낸 도면.6 illustrates one embodiment of a format of a descriptor.
도 7은 일 실시예에 따른 데이터 처리 흐름도.7 is a data processing flow diagram according to one embodiment.
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
40, 50: 버퍼 44: 버퍼 제어 메모리40, 50: buffer 44: buffer control memory
54: 유입 데이터 처리 블록 58: 디스크립터 블록54: incoming data processing block 58: descriptor block
본 발명은 UDP/RTP(User Datagram Protocol/Real-time Transport Protocol) 를 사용하여 음성, 영상 및 데이터를 전달하는 망에서 발생되는 지터(jitter)의 처리 및 패킷 순서 재배열에 관한 것이다.The present invention relates to jitter processing and packet order rearrangement in a network for transmitting voice, video and data using User Datagram Protocol / Real-time Transport Protocol (UDP / RTP).
UDP(User Datagram Protocol)는 인터넷 상에서 서로 정보를 주고받을 때 정보를 보낸다는 신호나 받는다는 신호의 송수신 절차를 거치지 않고 보내는 쪽에서 일방적으로 데이터를 전달하는 통신 프로토콜이다. TCP/IP(Transmission Control Protocol/Internet Protocol)에서는 제3 계층에 해당하는 망 계층 프로토콜인 IP와 제4 계층에 해당하는 전송 계층 프로토콜인 TCP 또는 UDP의 어느 하나를 조합하여 데이터를 주고받는데, TCP에서는 세션을 설정한 후에 통신을 개시하지만 UDP에서는 세션을 설정하지 않고 데이터를 상대의 주소로 송출하고 데이터의 에러 복구 등의 절차를 수행하지 않기 때문에, UDP는 TCP보다 신뢰성은 떨어지지만 프로토콜 처리 속도는 훨씬 빠르다. UDP는 IP 서비스에 호스트 대 호스트 통신 대신에 프로세스 대 프로세스 통신을 추가로 제공하고 있으며, 도 1에 도시된 바와 같이 데이터 패킷의 데이터 필드에 최소한의 오버헤드만 추가하여 사용하는 매우 간단한 프로토콜이다. 일반적으로, 만약 프로세스가 작은 메시지를 보내고자 하고 신뢰성에 대해 걱정하지 않는다면, 작은 메시지를 보내기 위해서는 TCP보다 UDP를 사용한다.UDP (User Datagram Protocol) is a communication protocol that unilaterally transmits data on the sender's side without going through a procedure of transmitting or receiving a signal to send or receive information. In Transmission Control Protocol / Internet Protocol (TCP / IP), data is exchanged by combining any one of IP, a network layer protocol corresponding to the third layer, and TCP or UDP, a transport layer protocol corresponding to the fourth layer. Communication is started after establishing a session. However, UDP does not establish a session and sends data to the other address and does not perform data recovery. Therefore, UDP is less reliable than TCP, but protocol processing speed is much faster. fast. UDP provides an IP service with process-to-process communication in addition to host-to-host communication. As shown in FIG. 1, UDP is a very simple protocol that adds minimal overhead to a data field of a data packet. In general, if a process wants to send a small message and not worry about its reliability, it uses UDP rather than TCP to send a small message.
한편, 음성 데이터를 인터넷 프로토콜(IP) 데이터 패킷으로 변화하여 일반 전화망에서의 통화를 가능하게 해주는 통신 서비스 기술인 VoIP(Voice over Internet Protocol)와 같은 실시간 데이터 서비스에는 UDP에 기초한 RTP/RTCP(Real-time Transport Protocol/RTP Control Protocol)가 널리 이용되고 있다. 도 2는 기본적인 VoIP 망에서의 음성 데이터의 흐름도를 도시하고 있으며, 이는 UDP/RTP를 이용하는 영상 및 데이터를 처리하는 실시간 데이터 서비스에도 적용될 수 있다. 도 2를 참조하면, 음성이 음성 입력 장치에서 아날로그 신호로 변환된 후, 코덱(CODEC)에서 디지털화된다. 디지털화된 음성은 선택된 적절한 압축 방식에 의해 압축되고, 압축시 묵음 제거 기능을 선택할 경우 음성 내 묵음을 제거하여 발생 트래픽을 줄일 수 있다. 압축된 음성 패킷은 RTP 패킷화되어 인터넷을 통해 전달되게 되는데, RTP 패킷은 도 3에 도시된 바와 같이 각 패킷의 발생 시간을 의미하는 Timestamp 필드가 있어 수신단에서 음성의 플레이아웃(play out) 시간의 동기화가 가능하다. RTP 패킷은 인터넷을 거치면서 전달 지연, 지연 변이, 패킷 손실 등이 발생될 수 있다. 전달 지연은 절대적인 인터넷 통과 지연을 의미하며, 지연 변이, 즉 지터(jitter)는 최대 전달 지연과 최소 전달 지연의 차이로 정의된다. 매 패킷마다 전달 지연이 다르므로 지연 변이가 발생하게 되는 것이다. 이러한 지연 변이는 음성 품질에 악영향을 미치므로, 수신단에 버퍼(buffer)를 사용하여 RTP 패킷들 사이의 지연 변이를 흡수한다. 즉, 인터넷을 통해 전달된 RTP 패킷들을 버퍼에 저장한 후 RTP 패킷 내의 타임스탬프(timestamp) 값에 맞추어 시간에 맞게 플레이아웃하면, 지터가 없는 데이터가 출력되게 된다.On the other hand, real-time data services such as Voice over Internet Protocol (VoIP), a communication service technology that converts voice data into Internet Protocol (IP) data packets to enable calls over general telephone networks, is based on UDP-based RTP / RTCP (Real-time). Transport Protocol / RTP Control Protocol) is widely used. 2 is a flowchart of voice data in a basic VoIP network, which may be applied to a real-time data service for processing video and data using UDP / RTP. Referring to FIG. 2, a voice is converted into an analog signal by a voice input device and then digitized by a codec. The digitized voice is compressed by a suitable compression scheme selected, and when the mute removal function is selected during compression, the generated traffic can be reduced by eliminating silence in the voice. The compressed voice packet is RTP packetized to be delivered through the Internet. As shown in FIG. 3, the RTP packet has a Timestamp field indicating the time of occurrence of each packet. Synchronization is possible. As the RTP packet passes through the Internet, propagation delays, delay variations, and packet loss may occur. The propagation delay means the absolute Internet pass delay, and the delay variation, or jitter, is defined as the difference between the maximum propagation delay and the minimum propagation delay. Since each packet has a different propagation delay, a delay variation occurs. Since this delay variation adversely affects voice quality, a buffer is used at the receiving end to absorb the delay variation between RTP packets. That is, after storing the RTP packets transmitted through the Internet in a buffer and playing them out in time according to the timestamp value in the RTP packets, data without jitter is output.
도 4는 도 2의 흐름도의 수신단에 위치하는 버퍼의 구조를 도시하고 있다. 도 4에 도시된 바와 같이, 인터넷으로부터 유입된 패킷은 먼저 버퍼(40)에 저장되고, 이 저장된 버퍼의 어드레스(address) 또는 위치 정보(location)와 유입된 패킷의 RTP 순서 번호(Sequence Number: SN)가 해당 연결에 할당된 버퍼 제어 메모리(44)에 저장된다. RTP 패킷의 타임스탬프 값에 따라 버퍼에 저장된 패킷을 판독 할 시간이 되면, 버퍼 제어 메모리에 저장된 모든 위치 정보 중에서 가장 작은 순서 번호를 가진 어드레스 값이 선택되어, 해당하는 버퍼에 저장된 패킷이 플레이아웃된다. 상기 버퍼 판독(read) 과정이 완료되면, 그 위치 정보는 클리어(clear)되고, 해당 버퍼는 다음에 유입되는 패킷을 위한 준비 상태로 전환된다.FIG. 4 illustrates the structure of a buffer located at the receiving end of the flowchart of FIG. 2. As shown in FIG. 4, a packet introduced from the Internet is first stored in a
그러나, 버퍼에 저장된 데이터를 플레이아웃하는 시점을 RTP의 타임스탬프 값에만 의존하게 되면, 버퍼 판독 클럭(clock)의 정밀도(accuracy)가 떨어지는 경우에 타임스탬프 값에 따른 정확한 버퍼 플레이아웃을 수행할 수 없다. 즉, 만약 계속해서 조금씩 지연이 발생할 경우, 언젠가 하나의 패킷이 지연되는 경우가 발생할 수 있다. 또한, 이미 버퍼에서 플레이아웃된 순서 번호보다 낮은 순서 번호의 패킷이 유입될 경우, 불필요한 처리를 한 번 더 하게 되어 시스템 성능에 영향을 미칠 수 있으며, 버퍼와 버퍼 제어 메모리의 판독과 기록이 동시에(synchronous) 일어나기 때문에 패킷 처리 성능에 문제가 발생할 수 있다.However, if the timing of playing out the data stored in the buffer depends only on the timestamp value of the RTP, accurate buffer playout according to the timestamp value can be performed when the accuracy of the buffer read clock is low. none. That is, if a little bit delay occurs continuously, one packet may be delayed someday. In addition, if a packet with a sequence number lower than the sequence number already played out from the buffer is introduced, unnecessary processing may be performed once more, which may affect system performance, and reading and writing the buffer and the buffer control memory simultaneously ( synchronous) can cause problems with packet processing performance.
본 발명은 상기 종래 기술의 문제점을 해결하기 위한 것으로, UDP/RTP를 사용하는 망에서 지연 변이를 줄이도록 동적으로 수신단의 버퍼를 동작시키고, 네트워크를 통해 전송된 RTP 패킷의 순서를 재배열함으로써, VoIP와 같은 실시간 데이터 전송 서비스에 적당하도록 데이터의 전송 품질을 높이는 것을 목적으로 한다.The present invention is to solve the problems of the prior art, by dynamically operating the buffer of the receiver to reduce the delay variation in a network using UDP / RTP, by rearranging the order of the RTP packet transmitted through the network, The purpose of the present invention is to improve the transmission quality of data to be suitable for real-time data transmission services such as VoIP.
일 실시예에 따르면, UDP/RTP(User Datagram Protocol/Real-time Transport Protocol)를 사용하는 네트워크에서의 지터 처리 및 패킷 순서 재배열 장치가 제공된다. 상기 장치는 상기 네트워크로부터 유입되는 데이터 중 제1 기준을 만족하는 데이터를 저장하고, 상기 저장된 데이터 중 제2 기준을 만족하는 데이터를 플레이아웃하는 버퍼, 상기 유입되는 데이터가 상기 제1 기준 및 상기 제2 기준을 만족하는지를 판단하여 상기 버퍼에 전달하는 유입 데이터 처리 블록, 및 상기 유입 데이터 처리 블록의 상기 판단의 기준이 되는 파라미터들을 포함하여 상기 유입 데이터 처리 블록에 제공하는 디스크립터(descriptor) 블록을 포함한다.According to one embodiment, a jitter processing and packet order rearrangement apparatus in a network using UDP / RTP (User Datagram Protocol / Real-time Transport Protocol) is provided. The apparatus stores a data satisfying a first criterion among data flowing from the network, and a buffer for playing out data satisfying a second criterion among the stored data, wherein the incoming data includes the first criterion and the first data. An inflow data processing block that determines whether two criteria are satisfied and delivers the buffer to the buffer, and a descriptor block that provides the inflow data processing block to the inflow data processing block, including parameters that are criteria for the determination of the inflow data processing block. .
다른 실시예에 따르면, UDP/RTP를 사용하는 네트워크에서의 지터 처리 및 패킷 순서 재배열 방법이 제공된다. 상기 방법에 따르면, 유입 데이터 처리 블록이 디스크립터를 판독하여 상기 네트워크로부터 유입된 데이터의 연결이 유효한지 확인하고, 상기 유입된 데이터의 연결이 유효하면, 버퍼에 저장된 데이터의 개수가 허용 범위 내인지를 확인하며, 상기 버퍼에 저장된 데이터가 허용 범위 내이면, 상기 유입된 데이터의 수를 상기 버퍼의 플레이아웃 문턱값과 비교한다. 상기 유입 데이터 처리 블록은 상기 비교 결과에 따라 상기 디스크립터를 업데이트하고, 상기 유입된 데이터의 수가 상기 버퍼의 상기 플레이아웃 문턱값과 같으면, 상기 유입된 데이터의 타임스탬프 값에 따라 상기 버퍼로부터 데이터를 플레이아웃하고, 그에 따라 상기 디스크립터를 업데이트한다.According to another embodiment, a jitter processing and packet order rearrangement method in a network using UDP / RTP is provided. According to the method, the incoming data processing block reads the descriptor to check whether the connection of the incoming data from the network is valid, and if the connection of the incoming data is valid, whether the number of data stored in the buffer is within the allowable range. If the data stored in the buffer is within the allowable range, the number of the introduced data is compared with the playout threshold of the buffer. The inflow data processing block updates the descriptor according to the comparison result, and if the number of the inflow data is equal to the playout threshold of the buffer, play the data from the buffer according to the timestamp value of the inflow data. Out and update the descriptor accordingly.
본 발명은 UDP/RTP를 사용하는 망에서의 지터 처리 및 패킷 순서 재배열 장치 및 방법을 제공한다. 이하, 첨부 도면을 참조하여, 본 발명의 실시예에 대해 상세히 설명한다.The present invention provides an apparatus and method for jitter processing and packet order rearrangement in a network using UDP / RTP. EMBODIMENT OF THE INVENTION Hereinafter, with reference to an accompanying drawing, embodiment of this invention is described in detail.
도 5는 수신단의 버퍼의 구조의 일 실시예를 도시하고 있다. 도 5에 도시된 바와 같이, 인터넷과 같은 네트워크로부터 유입되는 데이터는 유입 데이터 처리 블록(54)을 통해 사용자 기준에 적합한 데이터만, IP 헤더가 제거된 데이터 형태로 데이터 저장용 버퍼(50)에 저장된다. 유입 데이터 처리 블록(54)을 통하여 유입되는 데이터를 받을 것인지 버릴 것인지 등의 결정은 디스크립터 블록(descriptor)(58)의 내용을 판독함으로써 이루어진다. 도 6에 도시된 바와 같이, 디스크립터는 V, F, PacketNo, BaseBITMAP_D, BaseBITMAP, BITMAP, BaseSN, FirstRxSN, RoundCount 필드를 포함한다. V는 유효 비트(Valid bit)로서 네트워크로부터 유입된 데이터에 정상적인 연결이 설정되어 있는지를 알려주는 비트이며, V 필드가 '0'으로 설정되어 있으면 유입되는 데이터는 폐기된다. F 필드는 플래그(Flag) 비트로서 버퍼에 저장된 데이터의 개수가 사용자에 의해 결정된 버퍼 플레이아웃 문턱값(threshold)과 일치하면 '1'로 설정되며, 이는 버퍼를 읽을 준비가 되었음을 의미한다. PacketNo 필드는 연결당 저장된 패킷의 수를 나타낸다. BITMAP 필드는 버퍼에 저장된 데이터의 위치를 나타내는 파라미터로서, 데이터가 버퍼에 저장되면 해당 위치의 비트가 '1'로 설정되고, BITMAP 필드가 '0'이면 저장된 패킷이 없음을 의미한다. BaseBITMAP 필드는 BITMAP 필드에서 가장 빨리 읽어야 할 위치를 알려주는 파라미터로서, 이 파라미터에 있는 '1'의 위치와 같거나 왼쪽으로 가장 가까이 있는 '1'의 위치가 다음에 읽혀질 버퍼로 결정된다. BaseBITMAP_D 필드는 BaseBITMAP 필드에 있는 '1'의 위치를 이진수로 나타낸 값으로서, 0번 비트가 1이면 '0', 1번 비트가 1이면 '1', 2번 비트가 1이면 '10'이 된다. BaseSN 필드는 유입되는 데이터를 받을 것인지 버릴 것인지를 결정하는 기준 이 되는 순서 번호(sequence number)를 나타내는 파라미터로서, BaseSN 필드 보다 작은 값이 유입되면 폐기된다. FirstRxSN 필드는 첫번째로 플레이아웃된 데이터의 순서 번호를 나타내는 파라미터이다. RoundCount 필드는 소정의 시간 단위, 예컨대 5ms 단위로 디스크립터를 몇 번 읽었는지를 나타내는 파라미터로서, 상기 소정의 시간 단위는 사용자에 의해 결정될 수 있다. 버퍼에 저장된 데이터를 플레이아웃하는 시점은 RoundCount 필드값과 F 비트에 따라 결정된다. 예컨대 AMR 코덱(Adaptive Multi Rate CODEC)의 경우는 타임스탬프가 20ms이므로, 5ms 단위로 디스크립터를 읽을 경우, F 비트가 '1', RoundCount 필드값이 '3'이 되면 버퍼에 저장된 데이터가 플레이아웃된다.Figure 5 shows an embodiment of the structure of the buffer of the receiving end. As shown in FIG. 5, data flowing from a network such as the Internet is stored in the
다시 도 5를 참조하면, 유입 데이터 처리 블록(54)이 정상 동작을 하기 전에 버퍼의 사이즈와 버퍼 플레이아웃 문턱값을 결정하여야 한다. 이 두 값들은 최적의 성능을 얻기 위해 사용자에 의해 결정될 수 있다. 유입 데이터 처리 블록(54)은 디스크립터 블록(58)과 정확한 동기를 가지며 동작을 한다. 인터넷과 같은 네트워크로부터 데이터가 유입되면, 유입 데이터 처리 블록(54)은 해당 연결의 디스크립터의 V 비트 값을 확인하여, 그 값이 '0'이면 데이터를 폐기하고, '1'이면 데이터를 버퍼(50)에 저장하고 디스크립터 블록(58)의 내용을 업데이트한다. 또한, 저장된 패킷의 개수가 데이터를 플레이아웃하기 위한 문턱값과 같아지면, 디스크립터의 F 비트를 '1'로 설정하고 버퍼(50)를 판독할 시간이 되었음을 알린다. 버퍼(50)를 판독하게 되면, 유입 데이터 처리 블록(54)은 그에 따라 디스크립터의 내용을 업데이트한다.Referring back to FIG. 5, the buffer size and buffer playout threshold must be determined before the incoming
도 7은 네트워크로부터 유입되는 데이터의 처리 과정의 일 실시예를 도시하고 있다. 이하에서는, 디스크립터의 동작의 이해를 돕기 위해, 네트워크로부터 유입되는 데이터는 타임스탬프가 20ms인 음성 데이터이고, 버퍼는 최대 120ms(±60ms)의 지연 변이를 수용할 수 있으며, 버퍼에 저장된 데이터를 플레이아웃하기 위한 버퍼 플레이아웃 문턱값은 3이라고 가정한다. 이러한 가정 하에서는 24비트의 BITMAP 필드와 BaseBITMAP 필드는 하위 6비트(5:0)만 사용되고, BaseBITMAP_D 필드는 0에서 5까지만 카운터된다.7 illustrates an embodiment of a process of processing data flowing from a network. Hereinafter, to help understand the operation of the descriptor, the data coming from the network is voice data having a time stamp of 20 ms, and the buffer can accommodate a delay variation of up to 120 ms (± 60 ms), and play the data stored in the buffer. Assume that the buffer playout threshold for out is three. Under this assumption, only the lower 6 bits (5: 0) are used for the 24-bit BITMAP field and the BaseBITMAP field, and the BaseBITMAP_D field is only counted from 0 to 5.
도 7을 참조하면, 네트워크로부터 데이터가 유입되면, 유입 데이터 처리 블록은 먼저 디스크립터를 읽어 유입된 데이터의 연결이 유효한지 확인하여(s71), 유효하지 않으면 폐기하고, 유효하면 버퍼에 저장된 데이터의 개수가 허용 범위 내인지를 확인한다(s72). 버퍼에 저장된 데이터의 개수가 허용 범위를 벗어나면, 유입된 데이터를 폐기하며, 허용 범위 내이면 다음 단계로 전달한다.Referring to FIG. 7, when data flows from the network, the incoming data processing block first reads a descriptor to check whether the connection of the incoming data is valid (s71), discards it if it is not valid, and if it is valid, the number of data stored in the buffer. Check whether is within the allowable range (s72). If the number of data stored in the buffer is outside the allowable range, the incoming data is discarded, and if it is within the allowable range, the data is transferred to the next step.
이후, 유입 데이터 처리 블록은 사용자에 의해 설정된 플레이아웃 문턱값과 디스크립터의 PacketNo 필드값을 비교한다(s73). 먼저, PacketNo 필드값이 문턱값보다 작고 PacketNo 필드값이 '0'인 경우, 즉 유입된 데이터가 첫번째 데이터인 경우, PacketNo 필드값이 문턱값보다 작으므로 Flag는 '0'이 되며, 유입된 데이터는 버퍼의 제일 가운데에 저장이 되고, 그 위치를 알려주는 BITMAP 필드와 BaseBITMAP 필드는 "000100"이 되며, '1'이 2번 비트에 위치하므로 BaseBITMAP_D 필드는 "00010"으로 업데이트된다. 또한, 다음에 유입될 데이터의 순서 번호(SN)와 비교될 BaseSN/FirstRxSN 필드는 유입된 데이터의 순서 번호로 업데이트되며, 버퍼의 판독과 기록 사이클이 완전이 분리되어 있으므로 RoundCount 필드는 디스크립터에서 읽은 값 그대로 사용된다. 업데이트 결과는 다음과 같다 (예 1 참조).Thereafter, the incoming data processing block compares the playout threshold set by the user with the PacketNo field value of the descriptor (s73). First, when the PacketNo field value is smaller than the threshold value and the PacketNo field value is '0', that is, when the incoming data is the first data, the FlagNo becomes '0' because the PacketNo field value is smaller than the threshold value. Is stored at the center of the buffer, and the BITMAP field and the BaseBITMAP field indicating the position are "000100", and since the "1" is located in
<예 1><Example 1>
Flag <= '0';Flag <= '0';
PacketNo <= '1';PacketNo <= '1';
BaseBITMAP_D <= "00010"; BaseBITMAP_D <= "00010";
BaseBITMAP <= "000100"; BaseBITMAP <= "000100";
BITMAP <= "000100"; BITMAP <= "000100";
BaseSN <= RTP Sequence Number of IncomingData;BaseSN <= RTP Sequence Number of Incoming Data;
FirstRxSN <= RTP Sequence Number of IncomingData;FirstRxSN <= RTP Sequence Number of Incoming Data;
RoundCount <= RoundCount of Descriptor;RoundCount <= RoundCount of Descriptor;
PacketNo 필드값이 문턱값보다 작고 PacketNo 필드값이 '1'이며 순서 번호(SN)가 BaseSN 필드보다 1이 큰 데이터가 유입되는 경우에는, PacketNo 필드값이 문턱값보다 작으므로 Flag는 '0'이 되고, PacketNo 필드값은 1 증가되어 '2'가 된다. 새롭게 유입된 데이터의 SN이 BaseSN 필드보다 크므로 BaseBITMAP 필드와 BaseBITMAP_D 필드는 기존의 값을 유지하고, 유입된 데이터의 SN이 BaseSN 필드보다 1이 크므로 새로운 BITMAP 필드는 기존의 BITMAP 필드와 BaseBITMAP 필드를 왼쪽으로 1만큼 시프트(shift)시킨 값과의 OR 연산된 값으로 업데이트된다. 업데이트 결과는 다음과 같다 (예 2 참조).If the PacketNo field value is smaller than the threshold value, the PacketNo field value is '1', and the sequence number (SN) is greater than 1 than the BaseSN field, data is introduced. The PacketNo field value is increased by 1 to become '2'. Since the SN of the newly imported data is larger than the BaseSN field, the BaseBITMAP and BaseBITMAP_D fields retain their existing values, and since the SN of the imported data is one greater than the BaseSN field, the new BITMAP field replaces the existing BITMAP and BaseBITMAP fields. It is updated with the ORed value with the value shifted by 1 to the left. The update result is as follows (see Example 2).
<예 2><Example 2>
Flag <= '0';Flag <= '0';
PacketNo <= '2';PacketNo <= '2';
BaseBITMAP_D <= "00010"; BaseBITMAP_D <= "00010";
BaseBITMAP <= "000100"; BaseBITMAP <= "000100";
BITMAP <= "001100"; BITMAP <= "001100";
BaseSN <= FirstRxSN of Descriptor;BaseSN <= FirstRxSN of Descriptor;
FirstRxSN <= FirstRxSN of Descriptor;FirstRxSN <= FirstRxSN of Descriptor;
RoundCount <= RoundCount of Descriptor;RoundCount <= RoundCount of Descriptor;
PacketNo 필드값이 문턱값보다 작고 PacketNo 필드값이 '1'이며 순서 번호(SN)가 BaseSN 필드보다 1이 작은 데이터가 유입되는 경우에는, Flag는 '0'이 되고, PacketNo 필드값은 '2'가 된다. 새롭게 유입된 데이터의 SN이 BaseSN 필드보다 작으므로, BaseBITMAP 필드는 새롭게 유입된 데이터의 위치 "000010"으로 변경이 되고, '1'의 위치가 1번 비트이므로 BaseBITMAP_D 필드는 "00001"로 업데이트된다. 유입된 데이터의 SN이 BaseSN 필드보다 1이 작으므로 새로운 BITMAP 필드는 기존의 BITMAP 필드와 BaseBITMAP 필드를 오른쪽으로 1만큼 시프트시킨 값과의 OR 연산된 값으로 업데이트된다. 업데이트 결과는 다음과 같다 (예 3 참조).When the PacketNo field value is smaller than the threshold value, the PacketNo field value is '1', and the sequence number (SN) is 1 smaller than the BaseSN field, Flag is '0', and the PacketNo field value is '2'. Becomes Since the SN of the newly introduced data is smaller than the BaseSN field, the BaseBITMAP field is changed to the position "000010" of the newly introduced data, and since the position of '1' is 1 bit, the BaseBITMAP_D field is updated to "00001". Since the SN of the imported data is one less than the BaseSN field, the new BITMAP field is updated with the ORed value between the existing BITMAP field and the BaseBITMAP field shifted to the right by one. The update results are as follows (see Example 3).
<예 3><Example 3>
Flag <= '0';Flag <= '0';
PacketNo <= '2';PacketNo <= '2';
BaseBITMAP_D <= "00001"; BaseBITMAP_D <= "00001";
BaseBITMAP <= "000010"; BaseBITMAP <= "000010";
BITMAP <= "000110"; BITMAP <= "000110";
BaseSN <= RTP Sequence Number of IncomingData;BaseSN <= RTP Sequence Number of Incoming Data;
FirstRxSN <= RTP Sequence Number of IncomingData;FirstRxSN <= RTP Sequence Number of Incoming Data;
RoundCount <= RoundCount of Descriptor;RoundCount <= RoundCount of Descriptor;
PacketNo 필드값이 '2'인 상태에서 새로운 데이터가 유입되면, 앞서 유입된 2개의 데이터 SN과 비교하여 제일 작은 SN을 가지는 데이터가 BaseSN/FirstRxSN 필드가 되고, 버퍼 판독이 가능함을 알려주는 Flag 비트는 '1'로 설정된다. 만약 순차적인 SN을 가지는 데이터가 유입되면, 업데이트 결과는 다음과 같다 (예 4 참조).When new data is introduced while the PacketNo field value is '2', the data with the smallest SN becomes the BaseSN / FirstRxSN field compared to the two data SNs introduced earlier, and the Flag bit indicating that the buffer can be read is Is set to '1'. If data with sequential SNs is introduced, the update result is as follows (see Example 4).
<예 4><Example 4>
Flag <= '1';Flag <= '1';
PacketNo <= '3';PacketNo <= '3';
BaseBITMAP_D <= "00010"; BaseBITMAP_D <= "00010";
BaseBITMAP <= "000100"; BaseBITMAP <= "000100";
BITMAP <= "011100"; BITMAP <= "011100";
BaseSN <= FirstRxSN of Descriptor;BaseSN <= FirstRxSN of Descriptor;
FirstRxSN <= FirstRxSN of Descriptor;FirstRxSN <= FirstRxSN of Descriptor;
RoundCount <= RoundCount of Descriptor;RoundCount <= RoundCount of Descriptor;
일단 Flag 비트가 설정이 되면, BaseSN 필드보다 작은 SN을 가지고 유입되는 데이터는 폐기된다. 데이터가 저장된 위치를 알려주는 BITMAP 필드는 2번 비트를 기준으로 하여 왼쪽으로 비트가 설정되고, 마지막 5번 비트가 설정되면 다음에 유입되는 데이터는 0번 비트의 위치로 가는 방식으로 동작된다.Once the Flag bit is set, incoming data with an SN less than the BaseSN field is discarded. In the BITMAP field indicating the location where data is stored, the bit is set to the left based on
버퍼의 판독 플레이아웃 시점도 알려주는 디스크립터는 연결별로 5ms마다 액세스되고, 한 번 액세스되면 RoundCount 필드가 1씩 증가된다. RoundCount 필드값이 3이 되고, Flag 비트가 '1'이 되면(s74), BaseBITMAP 필드의 위치와 같거나 왼쪽으로 가장 가까이 있는 데이터의 위치부터 판독되고, 그 차이만큼 BaseSN, BaseBITMAP, BaseBITMAP_D 필드값이 업데이트되며, RoundCount 필드는 다시 초기화된다. 만약 RoundCount 필드값이 3이고 디스크립터에서 읽은 파라미터가 위의 <예 4>의 업데이트 내용과 같을 경우, BaseBITMAP 필드의 2번 비트와 BITMAP 필드의 2번 비트가 같은 자리에 위치하므로, 2번 비트가 지시하는 버퍼의 데이터를 플레이아웃하고, 업데이트 결과는 다음과 같다 (예 5 참조).Descriptors that also indicate when the read playout of a buffer is read are accessed every 5ms per connection, and once accessed, the RoundCount field is incremented by one. If the RoundCount field value is 3 and the Flag bit is '1' (s74), the baseSN, BaseBITMAP, and BaseBITMAP_D field values are read from the position of the data that is the same as or closest to the left of the BaseBITMAP field. The RoundCount field is reinitialized. If the RoundCount field value is 3 and the parameter read from the descriptor is the same as the update contents of <Example 4>,
<예 5><Example 5>
Flag <= '1';Flag <= '1';
PacketNo <= '2';PacketNo <= '2';
BaseBITMAP_D <= "00011"; BaseBITMAP_D <= "00011";
BaseBITMAP <= "001000"; BaseBITMAP <= "001000";
BITMAP <= "011000"; BITMAP <= "011000";
BaseSN <= FirstRxSN of Descriptor + 1;BaseSN <= FirstRxSN of Descriptor + 1;
FirstRxSN <= FirstRxSN of Descriptor;FirstRxSN <= FirstRxSN of Descriptor;
RoundCount <= 0;RoundCount <= 0;
RoundCount 필드값이 3이고, 디스크립터에서 읽은 파라미터가 아래의 <예 6>과 같은 경우, If the RoundCount field value is 3 and the parameter read from the descriptor is as in <Example 6> below,
<예 6><Example 6>
Flag <= '1';Flag <= '1';
PacketNo <= '3';PacketNo <= '3';
BaseBITMAP_D <= "00010"; BaseBITMAP_D <= "00010";
BaseBITMAP <= "000100"; BaseBITMAP <= "000100";
BITMAP <= "111000"; BITMAP <= "111000";
BaseSN <= FirstRxSN of Descriptor;BaseSN <= FirstRxSN of Descriptor;
FirstRxSN <= FirstRxSN of Descriptor;FirstRxSN <= FirstRxSN of Descriptor;
RoundCount <= 3;RoundCount <= 3;
BaseBITMAP 필드의 2번 비트와 왼쪽으로 가장 가까이 있는 비트는 BITMAP 필드의 3번 비트이므로, 업데이트 결과는 다음과 같다 (예 7 참조).
<예 7><Example 7>
Flag <= '1';Flag <= '1';
PacketNo <= '2';PacketNo <= '2';
BaseBITMAP_D <= "00100"; BaseBITMAP_D <= "00100";
BaseBITMAP <= "010000"; BaseBITMAP <= "010000";
BITMAP <= "110000"; BITMAP <= "110000";
BaseSN <= FirstRxSN of Descriptor + 2;BaseSN <= FirstRxSN of Descriptor + 2;
FirstRxSN <= FirstRxSN of Descriptor;FirstRxSN <= FirstRxSN of Descriptor;
RoundCount <= 0;RoundCount <= 0;
버퍼를 동적으로 제어하기 위하여, 버퍼가 가득 찬 경우(s75)에는 버퍼에 저장된 데이터를 1개가 아닌 2개를 읽어 다음에 유입될 데이터를 위한 공간을 마련할 수 있다. 버퍼에 저장된 데이터의 개수가 2 이상인 경우(s76)에는 단계(s74)와 동일한 과정으로 처리되고, 버퍼에 저장된 데이터의 개수가 1인 경우(s77)에는 해당되는 데이터는 판독하고 해당 디스크립터에 저장된 파라미터 중 V 비트를 제외한 모든 파라미터를 초기화하여 새로 데이터가 유입될 경우에는 단계(s73)부터 다시 시작한다.In order to dynamically control the buffer, when the buffer is full (s75), the data stored in the buffer may be read instead of one, thereby providing a space for data to be introduced next. If the number of data stored in the buffer is 2 or more (s76), the process is performed in the same process as in step s74. If the number of data stored in the buffer is 1 (s77), the corresponding data is read and stored in the descriptor. If all the parameters except the V bit are initialized and data is newly introduced, the process starts again from step s73.
본 발명 및 그 다양한 기능적 구성요소들은 특정 실시예들로 설명되었으나, 본 발명은 하드웨어, 소프트웨어, 펌웨어, 미들웨어 또는 이들의 조합으로 구현될 수 있으며, 시스템, 서브시스템, 구성요소들 또는 이들의 서브 구성요소들로 활용 될 수 있음을 이해해야 한다. 소프트웨어로 구현되는 경우, 본 발명의 요소들은 필요한 작업들을 수행하기 위한 명령어들/코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체와 같은 머신 판독 가능 매체, 컴퓨터 프로그램 제품 내에 저장될 수 있으며, 또는 캐리어 웨이브로 구체화되는 컴퓨터 데이터 신호 또는 캐리어에 의해 변조된 신호에 의해 전송 매체 또는 통신 링크를 통해 전송될 수 있다. 머신 판독 가능 매체 또는 프로세서 판독 가능 매체는 머신(예컨대, 프로세서, 컴퓨터 등)에 의해 판독되고 실행 가능한 형태로 정보를 저장 또는 전송할 수 있는 임의의 매체를 포함할 수 있다.While the invention and its various functional components have been described in particular embodiments, the invention may be implemented in hardware, software, firmware, middleware, or a combination thereof, and the system, subsystem, components or sub-configurations thereof. It should be understood that they can be used as elements. If implemented in software, the elements of the invention are instructions / code segments for performing the necessary tasks. The program or code segments may be stored in a machine readable medium, such as a processor readable medium, a computer program product, or via a transmission medium or communication link by a computer data signal embodied in a carrier wave or a signal modulated by a carrier. Can be sent. Machine readable media or processor readable media may include any medium that can store or transmit information in a form readable and executable by a machine (eg, processor, computer, etc.).
이상 실시예들은 이해를 돕기 위하여 도면에 도시된 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 기술적 보호 범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.Although the above embodiments have been described with reference to the embodiments shown in the drawings for clarity, these are merely exemplary, and various modifications and equivalent other embodiments are possible to those skilled in the art. Will understand. Therefore, the technical protection scope of the present invention will be defined by the appended claims.
이상의 실시예들에 따르면, UDP/RTP를 사용하는 망에서 발생되는 지터를 처리하는데 있어서 동적으로 수신단의 버퍼를 동작시키고, 인터넷과 같은 네트워크를 통해 전송된 RTP 패킷의 순서를 재배열함으로써, VoIP와 같은 서비스에 적당하도록 데이터의 전송 품질을 높일 수 있다. 또한, 버퍼의 사이즈와 버퍼의 플레이아웃 문턱값을 사용자 요구에 따라 설정할 수 있도록 하여, 다양한 망 특성에 적응할 수 있다.According to the above embodiments, the processing of the jitter generated in the network using UDP / RTP dynamically operates the buffer of the receiving end, and rearranges the order of the RTP packets transmitted through the network such as the Internet, The transmission quality of data can be improved to be suitable for the same service. In addition, it is possible to set the size of the buffer and the playout threshold of the buffer according to the user's requirements, thereby adapting to various network characteristics.
Claims (17)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060120334A KR100847168B1 (en) | 2006-12-01 | 2006-12-01 | Apparatus and method for rearranging packet sequence for processing jitter in network based on udp/rtp |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060120334A KR100847168B1 (en) | 2006-12-01 | 2006-12-01 | Apparatus and method for rearranging packet sequence for processing jitter in network based on udp/rtp |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080049876A KR20080049876A (en) | 2008-06-05 |
KR100847168B1 true KR100847168B1 (en) | 2008-07-17 |
Family
ID=39805410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060120334A KR100847168B1 (en) | 2006-12-01 | 2006-12-01 | Apparatus and method for rearranging packet sequence for processing jitter in network based on udp/rtp |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100847168B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10075566B2 (en) | 2014-08-06 | 2018-09-11 | Samsung Electronics Co., Ltd. | Packet transmitter, interface device and computing system including the same |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114189487B (en) * | 2021-11-09 | 2024-05-14 | 广东宜通联云智能信息有限公司 | RTP-based data reordering method, system, equipment and medium |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11215182A (en) | 1998-01-26 | 1999-08-06 | Nec Corp | Method and device for transmitting and receiving voice packet |
KR20020020955A (en) * | 1999-08-03 | 2002-03-16 | 마찌다 가쯔히꼬 | Apparatus for processing packet, and medium storing packet processing program |
JP2002305545A (en) | 2001-04-03 | 2002-10-18 | Nippon Telegr & Teleph Corp <Ntt> | Network quality management method, its device, its program and memory for recording the program |
JP2003087317A (en) | 2001-09-12 | 2003-03-20 | Nec Corp | Apparatus and method for absorbing voice packet delay fluctuation |
KR20070053087A (en) * | 2005-11-18 | 2007-05-23 | 한국전자통신연구원 | Method for congestion control of voip network systems using extended red algorithm and apparatus for thereof |
-
2006
- 2006-12-01 KR KR1020060120334A patent/KR100847168B1/en not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11215182A (en) | 1998-01-26 | 1999-08-06 | Nec Corp | Method and device for transmitting and receiving voice packet |
KR20020020955A (en) * | 1999-08-03 | 2002-03-16 | 마찌다 가쯔히꼬 | Apparatus for processing packet, and medium storing packet processing program |
JP2002305545A (en) | 2001-04-03 | 2002-10-18 | Nippon Telegr & Teleph Corp <Ntt> | Network quality management method, its device, its program and memory for recording the program |
JP2003087317A (en) | 2001-09-12 | 2003-03-20 | Nec Corp | Apparatus and method for absorbing voice packet delay fluctuation |
KR20070053087A (en) * | 2005-11-18 | 2007-05-23 | 한국전자통신연구원 | Method for congestion control of voip network systems using extended red algorithm and apparatus for thereof |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10075566B2 (en) | 2014-08-06 | 2018-09-11 | Samsung Electronics Co., Ltd. | Packet transmitter, interface device and computing system including the same |
Also Published As
Publication number | Publication date |
---|---|
KR20080049876A (en) | 2008-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7336678B2 (en) | State-based jitter buffer and method of operation | |
US20020031125A1 (en) | Packet transfer communication apparatus, packet transfer communication method, and storage medium | |
US8799741B2 (en) | Method of transmitting ethernet frame in network bridge and the bridge | |
US7477661B2 (en) | Method, system, and computer program product for managing jitter | |
US7126957B1 (en) | Media flow method for transferring real-time data between asynchronous and synchronous networks | |
RU2423009C1 (en) | Method and device to measure synchronisation of talk spurts reproduction within sentence without impact at audibility | |
US6693921B1 (en) | System for use of packet statistics in de-jitter delay adaption in a packet network | |
US8306015B2 (en) | Technique for identifying RTP based traffic in core routing switches | |
US6977948B1 (en) | Jitter buffer state management system for data transmitted between synchronous and asynchronous data networks | |
US20130064248A1 (en) | Handling out-of-sequence packets in a circuit emulation service | |
US7321557B1 (en) | Dynamic latency assignment methodology for bandwidth optimization of packet flows | |
US7450593B2 (en) | Clock difference compensation for a network | |
US7035250B2 (en) | System for organizing voice channel data for network transmission and/or reception | |
JP2002271389A (en) | Packet processor and packet processing method | |
KR100847168B1 (en) | Apparatus and method for rearranging packet sequence for processing jitter in network based on udp/rtp | |
US6721825B1 (en) | Method to control data reception buffers for packetized voice channels | |
JP2002077245A (en) | Ip gateway device | |
JP2001203749A (en) | Device and system for high efficiency data transmission | |
US8238341B2 (en) | Apparatus and method for processing voice over internet protocol packets | |
CA2427633C (en) | Latency management for a network | |
US20070009071A1 (en) | Methods and apparatus to synchronize a clock in a voice over packet network | |
JP2007259374A (en) | Network transmitter/receiver | |
CN108200481B (en) | RTP-PS stream processing method, device, equipment and storage medium | |
KR20160123562A (en) | Receiver for processing data packet and data packet processing method of receiver | |
KR100279619B1 (en) | Real time data processing method of internet phone |
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 | ||
LAPS | Lapse due to unpaid annual fee |