[go: up one dir, main page]

KR20070038881A - Method and system for storing data packets - Google Patents

Method and system for storing data packets Download PDF

Info

Publication number
KR20070038881A
KR20070038881A KR1020060095590A KR20060095590A KR20070038881A KR 20070038881 A KR20070038881 A KR 20070038881A KR 1020060095590 A KR1020060095590 A KR 1020060095590A KR 20060095590 A KR20060095590 A KR 20060095590A KR 20070038881 A KR20070038881 A KR 20070038881A
Authority
KR
South Korea
Prior art keywords
data
data packet
buffer
storage space
write
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.)
Withdrawn
Application number
KR1020060095590A
Other languages
Korean (ko)
Inventor
티에리 루
Original Assignee
딥콩
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 딥콩 filed Critical 딥콩
Publication of KR20070038881A publication Critical patent/KR20070038881A/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L13/00Details of the apparatus or circuits covered by groups H04L15/00 or H04L17/00
    • H04L13/02Details not particular to receiver or transmitter
    • H04L13/08Intermediate storage means
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명은, 각각이 적어도 두 개의 데이터 블럭들로 구성되는 데이터 패킷들을 버퍼의 저장공간에 저장하는 것을 관리하기 위한 방법으로서, 상기 방법은 현재 데이터 패킷의 데이터 블럭들을 수신하는 단계(40)와, 수신된 현재 데이터 패킷의 데이터 블럭들을 상기 버퍼의 자유 저장공간에 쓰는(writing) 단계(42), 를 포함한다. 상기 버퍼에 현재 데이터 패킷의 수신된 데이터 블럭을 쓰기 위한 충분한 자유공간이 없다면, 상기 방법은 현재 데이터 패킷의 수신된 데이터 블럭들을 쓰는 동작을 멈추는 단계(48), 및 현재 데이터 패킷의 적어도 하나의 쓰기가 완료된 데이터 블럭을 자유 저장공간의 일부로 정의함으로써, 다음 데이터 패킷의 수신된 데이터 블럭들이 현재 데이터 패킷의 쓰기 완료된 데이터 블럭들에 겹쳐져서 쓰여질 수 있도록 하는, 정의단계(48)로 진행한다. The present invention provides a method for managing the storage of data packets, each of which consists of at least two data blocks, in a storage space of a buffer, the method comprising: receiving (40) data blocks of a current data packet; Writing the data blocks of the received current data packet to the free storage space of the buffer (42). If there is not enough free space in the buffer to write the received data block of the current data packet, the method stops writing the received data blocks of the current data packet (48), and at least one write of the current data packet. Defines the completed data block as part of the free storage space, so that the received data blocks of the next data packet can be overwritten by the overwritten data blocks of the current data packet.

디지털 텔레비젼 수신에 적용.Applied to digital TV reception.

데이터 패킷, 버퍼, 자유 저장공간, 읽기, 쓰기, 겹쳐쓰기 Data packet, buffer, free storage, read, write, overwrite

Description

데이터 패킷들을 저장하기 위한 방법 및 시스템{Method and system for storing data packets}Method and system for storing data packets

도 1은 데이터 패킷을 나타내는 도.1 illustrates a data packet.

도 2는 도 1의 데이터 패킷과 같은 데이터 패킷들을 저장하기 위한 시스템을 나타내는 도.2 illustrates a system for storing data packets, such as the data packet of FIG.

도 3은 오버플로우 상황에서 도 2의 시스템을 나타내는 도.3 illustrates the system of FIG. 2 in an overflow situation;

도 4a 및 4b는 데이터 패킷들의 저장을 관리하는 방법을 나타내는 블럭도.4A and 4B are block diagrams illustrating a method of managing storage of data packets.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

10. 시스템 12. 버퍼10. System 12. Buffer

14. 관리수단 16. 읽기 포인터 관리부14. Control means 16. Read pointer management unit

18. 쓰기 포인터 관리부 R. 읽기 포인터18. Write Pointer Manager R. Read Pointer

W. 쓰기 포인터 W. Write Pointer

발명의 기술분야Technical Field of the Invention

본 발명은 버퍼의 저장공간에 데이터 패킷들을 저장하는 것을 관리하기 위한 방법에 관한 것이다.The present invention relates to a method for managing the storage of data packets in a storage of a buffer.

발명의 배경Background of the Invention

풀 모션 디지털 텔레비젼은 많은 양의 저장과 데이터 전송 대역폭을 필요로 한다. 따라서, 디지털 텔레비젼 시스템들은 필요한 저장량과 데이터 전송 대역폭을 줄이기 위해 비디오 압축 알고리즘들을 사용한다. 현 디지털 텔레비젼 시스템들은 요구되는 데이터 전송 대역폭을 줄이기 위해 MPEG 또는 MPEG-2 인코딩(encoding)을 이용한다. MPEG-2는 ITU-T H.222.0(ISO/IEC 13818-1)에서 "동영상 및 관련 오디오 정보의 일반 코딩(Generic Coding of Moving Pictures And Associated Audio Information)"으로 정의된다. 따라서, 영화나 다른 콘텐츠와 같은 시각적 청각적 시퀀스들은 MPEG-2 압축 형식으로 미디어 서버에 저장되고, 시각적 청각적 시퀀스는 디코딩되어 일반적으로 사용자에게 디스플레이 및/또는 전달되기 위해 아날로그 형식으로 전환된다.Full motion digital television requires large amounts of storage and data transmission bandwidth. Thus, digital television systems use video compression algorithms to reduce the amount of storage and data transfer bandwidth required. Current digital television systems use MPEG or MPEG-2 encoding to reduce the data transmission bandwidth required. MPEG-2 is defined in ITU-T H.222.0 (ISO / IEC 13818-1) as "Generic Coding of Moving Pictures And Associated Audio Information." Thus, visual auditory sequences, such as movies or other content, are stored on the media server in MPEG-2 compression format, and the visual auditory sequences are decoded and generally converted to analog format for display and / or delivery to the user.

MPEG-2에 따른 전송용 스트림(transport stream(TS))은 압축된 디지털 비디오, 압축된 디지털 오디오 등을 포함하는 스트림이라는 사실은 널리 알려져 있다. 전송용 스트림은 디지털 방송에서 사용되며, 다중방식의 복수 프로그램들을 포함한다. It is well known that a transport stream (TS) according to MPEG-2 is a stream including compressed digital video, compressed digital audio, and the like. The transport stream is used in digital broadcasting and includes a plurality of programs in multiple modes.

두 종류의 MPEG-2 수신기들이 사용되고 있다. 먼저, 셋톱 박스들에서, 입력 MPEG-2 TS 페킷들은 전용 하드웨어 기능, 즉, 입력 비트 스트림을 취급할 수 있는 MPEG-2 TS 디멀티플렉서들(demultiplexers)에 의해 처리된다. 이 경우, 데이터 오버플로우는 없다. 또한, 신호의 일시적 손실과 같은 예외적인 경우가 발생한다면, MPEG-2 TS 리더(reader)는 전용 하드웨어 기능들을 이용함으로써 쉽게 재동기화될 수 있을 것이다.Two kinds of MPEG-2 receivers are used. First, in set top boxes, input MPEG-2 TS packets are handled by dedicated hardware functionality, namely MPEG-2 TS demultiplexers, which can handle input bit streams. In this case, there is no data overflow. In addition, if exceptional cases such as temporary loss of signal occur, the MPEG-2 TS reader may be easily resynchronized by using dedicated hardware functions.

MPEG-2 수신기의 두번째 유형은 PCI 또는 USB 인터페이스들를 사용하는 PC를 이용한다. 일반적으로, PCI MPEG2-TS 수신기들은 PCI 마스터들이고, MPEG2-TS 패킷들은 전용 하드웨어에 의해 PC 시스템 메모리에 쓰여지기(기록되기) 때문에 FIFO 오버플로우는 일어나지 않는다. 또한, USB MPEG2-TS 수신기들은 MPEG2-TS 패킷들을 전송하기 위해 등시 USB 엔드포인트들(isochronous USB endpoints)을 사용하며, 실제 비트율만큼 USB 대역폭을 보유하는 이러한 유형의 전송에서의 주된 단점과 함께 데이터 읽기 비트율을 보증한다. The second type of MPEG-2 receiver uses a PC using PCI or USB interfaces. Generally, PCI MPEG2-TS receivers are PCI masters and FIFO overflow does not occur because MPEG2-TS packets are written (written) to PC system memory by dedicated hardware. In addition, USB MPEG2-TS receivers use isochronous USB endpoints to transmit MPEG2-TS packets, and with the major drawback of this type of transmission, which retains USB bandwidth by the actual bit rate. Guaranteed read bit rate.

그러므로, 이러한 모든 MPEG-2 수신기들은 높은 복잡성을 대가로 오버플로우를 경험하지 않는다. Therefore, all these MPEG-2 receivers do not experience overflow at the expense of high complexity.

한편, USB 등시 엔드포인트들을 사용하지 않는 더 간단한 USB MPEG-2 TS 수신기들이 있다.On the other hand, there are simpler USB MPEG-2 TS receivers that do not use USB isochronous endpoints.

그러나, 위성, 케이블, 지상파 어떤 전송 모드인 간에, 이러한 수신기들에서 데이터 오버플로우 그리고 오버플로우 관리의 문제는 일어날 수 있다. 종래에는, 오버플로우 관리가 수신된 데이터 비트율보다 더 높은 데이터 읽기 비트율을 보증하지 못했으며(예를 들면, 일시적으로 과부하될 수 있는 PC), MPEG-2 TS 패킷에 요구되는 동기(synchronization)를 유지할 수 없다. 특히, MPEG-2 TS 리더가 풀 MPEG-2 TS 패킷들을 수신할 수 있고, 데이터 읽기 비트율이 수신된 비트율보다 일시적으로 낮으면 동기화된 채로 남아 있는 것을 보증하기에 취약하다.However, regardless of satellite, cable or terrestrial transmission modes, problems of data overflow and overflow management can occur in these receivers. Conventionally, overflow management has not guaranteed a higher data read bit rate than the received data bit rate (e.g., a PC that may be temporarily overloaded) and maintains the synchronization required for MPEG-2 TS packets. Can not. In particular, the MPEG-2 TS reader is capable of receiving full MPEG-2 TS packets and is vulnerable to ensuring that it remains synchronized if the data read bit rate is temporarily lower than the received bit rate.

그러므로, 간단하고 그럼으로써 경제적인 방법으로 데이터 패킷을 저장하고 오버플로우 상황을 관리하기 위한 향상된 방법 및 시스템에 대한 요구가 있다. Therefore, there is a need for an improved method and system for storing data packets and managing overflow situations in a simple and economical way.

발명의 요약Summary of the Invention

따라서, 본 발명은 청구항 1항에 따른 데이터 패킷들을 저장하기 위한 향상된 방법을 제공한다. 이러한 방법의 다른 특징들은 종속항인 청구항 2항 내지 청구항 5항에 기술된다.The present invention therefore provides an improved method for storing data packets according to claim 1. Other features of this method are described in claims 2 to 5 which are dependent claims.

본 발명은 청구항 6항 또는 7항에 따른 데이터 패킷들을 저장하기 위한 시스템을 더 제공한다.The invention further provides a system for storing data packets according to claims 6 or 7.

본 발명은 청구항 8항에 따른 MPEG-2 TS 수신기 및 청구항 9항에 따른 컴퓨터 프로그램 제품을 더 제공한다.The invention further provides an MPEG-2 TS receiver according to claim 8 and a computer program product according to claim 9.

상세한 설명details

도 1은 네 개의 데이터 블럭들(db1, db2, db3,db4)로 구성된 데이터 패킷(DP)를 나타낸다. 본 실시예에서, 데이터 패킷(DP)은 MPEG-2 전송용 스트림 패킷이다. 각 데이터 블럭(db1, db2, db3, db4)은 각각 데이터(A, B, C, 및 D)를 포함한다.1 shows a data packet DP composed of four data blocks db1, db2, db3, and db4. In this embodiment, the data packet DP is a stream packet for MPEG-2 transmission. Each data block db1, db2, db3, db4 contains data A, B, C, and D, respectively.

도 2는 도 1의 데이터 패킷(DP)과 같은 데이터 패킷들을 저장하기 위한 시스템(10)을 나타낸다. 상기 시스템(10)은 저장공간을 갖는 FIFO(first-in-first-out) 버퍼(12), 및 상기 버퍼(12)의 저장공간에 데이터 패킷들을 저장하는 것을 관리하 기 위한 관리수단(14)을 포함한다. 아래의 설명에서, 버퍼와 버퍼의 저장공간은 둘 다 부재번호 12로 기재된다.FIG. 2 shows a system 10 for storing data packets, such as the data packet DP of FIG. 1. The system 10 is a first-in-first-out buffer 12 having storage space and management means 14 for managing the storage of data packets in the storage space of the buffer 12. It includes. In the description below, both the buffer and the storage space of the buffer are described by reference numeral 12.

상기 버퍼(12)는 데이터를 저장하기로 한 여덟 개의 데이터 셀들(dc1 내지 dc8)을 포함한다. 각각은 고유의 주소와 관계한다. 상기 버퍼(12)는 컴퓨터의 RAM(random access memory)에서 실행될 수 있다.The buffer 12 includes eight data cells dc1 to dc8 which are to store data. Each is associated with a unique address. The buffer 12 may be executed in a random access memory (RAM) of a computer.

본 설명에서, 데이터 셀들 및 데이터 블럭들은 동일한 크기, 예를 들면 1 바이트를 갖는다. 물론, 그들은 상이한 크기를 가질 수 있다.In the present description, the data cells and data blocks have the same size, for example 1 byte. Of course, they can have different sizes.

상기 관리수단(14)은 읽기 포인터 관리부(read pointer management unit;16) 및 쓰기 포인터 관리부(write pointer management unit;18)를 포함한다.The management means 14 includes a read pointer management unit 16 and a write pointer management unit 18.

상기 읽기 포인터 관리부(16)는 데이터가 읽혀질 데이터 셀의 버퍼 저장공간(12)에서 위치를 지시하는 읽기 포인터(R)를 관리한다. 도 2에서, 읽기 포인터(R)는 데이터 셀(dc4)의 주소를 포함한다.The read pointer manager 16 manages a read pointer R indicating a position in the buffer storage space 12 of the data cell to which data is to be read. In FIG. 2, the read pointer R includes the address of the data cell dc4.

쓰기 포인터 관리부(18)는 데이터가 쓰여질 데이터 셀의 버퍼 저장공간(12)에서 위치를 지시하는 쓰기 포인터(W)를 관리한다. 도 2에서, 쓰기 포인터(W)는 데이터 셀(dc6)의 주소를 포함한다.The write pointer manager 18 manages a write pointer W indicating a position in the buffer storage space 12 of the data cell to which data is to be written. In FIG. 2, the write pointer W includes the address of the data cell dc6.

둘 포인터들(R, W)은 데이터 셀(dc1)에서 데이터 셀(dc8)로 가고 다시 데이터 셀(dc1)로 돌아가는 동일 진행 환형 경로(proceeding loop path)를 따라 버퍼 저장공간상에서 진행한다.Both pointers R and W travel on the buffer storage space along the same proceeding loop path from data cell dc1 to data cell dc8 and back to data cell dc1.

상기 관리수단(14)은 또한 데이터 패킷의 제 1 데이터 블록이 기록되는 데이터 셀의 주소를 저장할 수 있다. 이것은 아래에서 설명될 것이다.The management means 14 may also store the address of the data cell in which the first data block of the data packet is recorded. This will be explained below.

바람직하게는, 읽기/쓰기 포인터들(R, W)은 포인터 레지스터(register)(미도시)에 저장된다.Preferably, read / write pointers R and W are stored in a pointer register (not shown).

도 3은 오버플로우 상황, 즉, 수신된 데이터 블럭을 쓰기 위한 충분한 자유 저장공간이 없는 상황을 나타낸다. 자유 저장공간은 데이터가 없는 데이터 셀들 또는 이미 데이터가 읽혀진 데이터 셀들 중 어느 하나이다. 따라서, 버퍼(12)의 자유 저장공간은 진행경로 상에 쓰기 포인터(W)에서 읽기 포인터(R)까지의 "거리(distance)"에 의해, 즉, 쓰기 포인터(W) 및 읽기 포인터(R) 간의 데이터 셀들에 의해 구성된다.3 illustrates an overflow situation, ie there is not enough free storage space to write a received data block. Free storage is either data cells without data or data cells from which data has already been read. Thus, the free storage space of the buffer 12 is defined by the " distance " from the write pointer W to the read pointer R on the progress path, that is, the write pointer W and the read pointer R. It is composed by the data cells of the liver.

도 3의 오버플로우 상황에서, 상기 쓰기 포인터(W)는 진행경로 상에서 읽기 포인터(R)를 뒤 따라간다. 따라서, 버퍼의 모든 저장공간은 읽혀지지 않은 데이터로 가득 차게 된다.In the overflow situation of FIG. 3, the write pointer W follows the read pointer R on the progress path. Thus, all storage space in the buffer is filled with unread data.

설명한 예에서, 앞의 세 개의 데이터 블럭들(db1, db2, 및 db3)이 수신되고 그들의 대응하는 데이터(A, B, C)가 쓰여진다. 그러나, 수신된 데이터 블럭(db4)의 데이터(D)를 기록하는 것은 불가능하다.In the example described, the preceding three data blocks db1, db2, and db3 are received and their corresponding data A, B, C are written. However, it is impossible to record the data D of the received data block db4.

도 4a 및 도 4b는 관리수단(14)에 의해 달성되는, 버퍼(12)의 저장공간에 데이터 패킷들을 저장하는 것을 관리하기 위한 방법의 블럭도이다.4A and 4B are block diagrams of a method for managing the storage of data packets in the storage space of the buffer 12, which is achieved by the management means 14.

데이터 패킷들을 저장하는 것의 관리는, 도 4a에 도시된 데이터 패킷 읽기 방법과, 도 4b에 도시된 데이터 패킷 쓰기 방법을 포함한다. 이러한 두 방법들은 동시에 병행하여 실행된다.Management of storing data packets includes a data packet reading method shown in FIG. 4A and a data packet writing method shown in FIG. 4B. These two methods are executed in parallel.

도 4a를 참조하며, 상기 읽기 방법은 읽기 포인터(R)로 지시된 데이터 셀에 쓰여진 데이터를 읽는 제 1 단계(30)를 포함한다. Referring to FIG. 4A, the read method includes a first step 30 of reading data written to a data cell indicated by a read pointer R. Referring to FIG.

상기 읽기 방법은 읽기 가능한 데이터가 그 다음 데이터 셀에 쓰여져 있는지 테스트하는 단계(32)로 진행한다. 만약 그 경우가 아니라면, 즉, 쓰기 포인터가 그 다음 데이터 셀을 지시하고 있다면, 새 데이터의 쓰기는 대기하며, 이것은 테스트 단계(32)로 다시 돌아가는 화살표(34)로 표시된다.The read method then proceeds to step 32, where the readable data is written to the next data cell. If that is not the case, i.e. if the write pointer is pointing to the next data cell, the writing of new data is awaited, which is indicated by an arrow 34 back to test step 32.

만약 읽기 가능한 데이터가 있다면, 즉, 쓰기 포인터가 다음 데이터 셀을 지시하지 않으면, 상기 읽기 방법은, 읽기 포인터(R)를 증가시켜 읽기 포인터(R)가 다음 데이터 셀을 지시하도록 하는 단계(36)로 진행하고, 다시 읽기 단계(30)로 돌아간다.If there is readable data, ie if the write pointer does not point to the next data cell, then the read method increments the read pointer R so that the read pointer R points to the next data cell (36). Proceeds back to the reading step 30 again.

도 4b를 참조하며, 상기 쓰기 방법은 수신되는 현재 데이터 패킷의 데이터 블럭을 수신하는 제 1 단계(40)를 포함한다.     Referring to FIG. 4B, the write method includes a first step 40 of receiving a data block of a current data packet being received.

다음, 상기 쓰기 방법은 추후에 수신된 새 데이터 블럭을 쓰기 위한 충분한 자유 저장공간이 있는지 테스트하는 단계(42)를 포함한다. 이 테스트하는 단계는 쓰기 포인터에서 읽기 포인터까지의 진행 환형 경로상에 저장공간을 결정함으로써 이루어진다. The write method then includes testing 42 if there is sufficient free storage space for writing a new block of data received later. This testing step is accomplished by determining storage space on the progressive annular path from the write pointer to the read pointer.

만약 충분한 자유 저장공간이 있다면, 즉, 쓰기 포인터(W)가 읽기 포인터(R)와 동일하지 않으면, 상기 쓰기 방법은, 수신된 데이터 블럭을 쓰기 포인터(W)가 지시하는 데이터 셀에 쓰고, 쓰기 포인터(W)가 진행 환형 경로의 그 다음 데이터 셀을 지시하도록 쓰기 포인터(W)를 증가시키는 단계(44)로 진행한다.If there is sufficient free storage space, i.e., if the write pointer W is not equal to the read pointer R, the write method writes the received data block to the data cell indicated by the write pointer W, and writes. Proceeding to step 44, the write pointer W is incremented such that the pointer W points to the next data cell of the progressive annular path.

만약 쓰기 완료된 데이터 블럭이 데이터 패킷의 제 1 블럭이라면, 예를 들 면, 도 1의 데이터 패킷(DP)의 데이터 블럭(db1)이라면, 그 데이터 블럭의 위치 주소는 관리수단(14)에 의해 저장된다. 이 단계는 도 4b의 블럭(46)으로 표시된다. 다음, 상기 쓰기 방법은 현재 데이터 패킷의 추후에 수신된 데이터 블럭들의 저장을 관리하기 위한 수신단계(40)로 다시 돌아간다.If the written data block is the first block of the data packet, for example, if it is the data block db1 of the data packet DP of Fig. 1, the position address of the data block is stored by the management means 14; do. This step is represented by block 46 of FIG. 4B. The write method then returns to the receiving step 40 for managing the storage of the received data blocks later in the current data packet.

만약 충분한 자유 저장공간이 없다면, 즉, 쓰기 포인터(W)가 읽기 포인터(R)와 동일하다면, 상기 쓰기 방법은 현재 데이터 패킷의 수신된 데이터 블럭들을 쓰는 동작을 멈추고, 쓰기 포인터(W)를 위치 주소가 단계(46)에서 저장된 현재 수신되고 있는 데이터 패킷의 제 1 쓰기 완료된 데이터 블럭의 위치 주소로 옮기는 단계(48)로 진행한다.If there is not enough free storage space, i.e., if the write pointer W is equal to the read pointer R, the write method stops writing the received data blocks of the current data packet and positions the write pointer W. The process proceeds to step 48 where the address is moved to the location address of the first written data block of the currently received data packet stored in step 46.

다음, 대기 단계(50)에서, 현재 데이터 패킷의 새롭게 수신된 데이터 블럭들은 버려지고, 즉, 버퍼(12)에 쓰여지지 않는다. 새로운 데이터 패킷의 제 1 블럭을 수신하면, 상기 방법은 수신단계(40)로 돌아간다.Next, in the waiting step 50, newly received data blocks of the current data packet are discarded, that is, not written to the buffer 12. Upon receiving the first block of new data packets, the method returns to receiving step 40.

쓰기 포인터(W)를 옮기는 단계로 인해, 다음 데이터 패킷의 수신된 데이터 블럭들은 이전 데이터 패킷의 이미 쓰기 완료된 데이터 블럭들에 유리하게 겹쳐 쓰기가 가능하다. By moving the write pointer W, the received data blocks of the next data packet are advantageously able to overwrite the already written data blocks of the previous data packet.

실제로, MPEG-2 데이터 수신과 같은 많은 적용들에서, 불완전한 데이터 패킷은 사용될 수 없으며 그리고 버퍼(12)를 이용하는 적용에 의해 버려진다.Indeed, in many applications, such as MPEG-2 data reception, incomplete data packets cannot be used and are discarded by the application using buffer 12.

이러한 데이터 패킷을 겹쳐 쓰는 것은 추후 데이터 패킷을 위한 자유 저장공간을 더 제공할 수 있으며, 따라서, 오버플로우가 다시 일어나는 횟수를 줄일 수 있다. Overwriting this data packet may further provide free storage for future data packets, thus reducing the number of times the overflow occurs again.

간단하고 그럼으로써 경제적인 방법으로 데이터 패킷을 저장하고 오버플로우 상황을 관리하기 위한 향상된 방법 및 시스템을 제공한다.It provides an improved method and system for storing data packets and managing overflow situations in a simple and economical way.

Claims (9)

각각이 적어도 두 개의 데이터 블럭들(db1, db2, db3, db4)로 구성되는 데이터 패킷들을 버퍼(12)의 저장공간에 저장하는 것을 관리하기 위한 방법으로서, As a method for managing the storage of data packets each consisting of at least two data blocks (db1, db2, db3, db4) in the storage space of the buffer 12, 현재 데이터 패킷의 데이터 블럭들을 수신하는 단계(40);Receiving (40) data blocks of a current data packet; 수신된 현재 데이터 패킷의 데이터 블럭들을 상기 버퍼(12)의 자유 저장공간에 쓰는(writing) 단계(42);를 포함하는 패킷 저장 관리 방법에 있어서, A data storage management method comprising: writing data blocks of a received current data packet to a free storage space of the buffer 12; 상기 버퍼(12)에 현재 데이터 패킷의 수신된 데이터 블럭을 쓰기 위한 충분한 자유공간이 없다면, 현재 데이터 패킷의 수신된 데이터 블럭들을 쓰는 동작을 멈추는 단계(48); 및If there is not enough free space in the buffer 12 to write the received data block of the current data packet, stopping (48) writing the received data blocks of the current data packet; And 현재 데이터 패킷의 적어도 하나의 쓰기가 완료된 데이터 블럭을 자유 저장공간의 일부로 정의함으로써, 다음 데이터 패킷의 수신된 데이터 블럭들이 현재 데이터 패킷의 쓰기 완료된 데이터 블럭들에 겹쳐져서 쓰여질 수 있도록 하는, 정의단계(48)를, 포함하는 것을 특징으로 하는 데이터 패킷 저장 관리방법. Defining the at least one write block of the current data packet as part of the free storage space so that received data blocks of the next data packet can be overwritten with the write data blocks of the current data packet ( A data packet storage management method, characterized in that it comprises a. 제 1 항에 있어서,The method of claim 1, 상기 정의단계(48) 동안, 현재 데이터 패킷의 쓰기가 완료된 모든 데이터 블럭들은 자유 저장공간의 부분으로서 정의되는 것을 특징으로 하는 데이터 패킷 저장 관리방법. During the definition step (48), all data blocks for which writing of the current data packet is completed are defined as part of free storage space. 제 1 항 또는 제 2 항 중 어느 한 항에 있어서, The method according to claim 1 or 2, 상기 버퍼(12)는 FIFO(first-in-first-out) 버퍼인 것을 특징으로 하는 데이터 패킷 저장 관리방법.And the buffer (12) is a first-in-first-out (FIFO) buffer. 제 3 항에 있어서,The method of claim 3, wherein 쓰기 포인터(W)는 데이터 블럭이 쓰여질 버퍼 저장공간(12)에서의 위치를 지시하며, 읽기 포인터(P)는 수신된 쓰기 완료된 데이터 블럭이 읽혀질 버퍼 저장공간(12)에서의 위치를 나타내며, 두 포인터들은 동일한 진행 환형 경로를 따라 버퍼 저장공간상에서 진행하며, 상기 방법은, 현재 데이터 패킷의 제 1 쓰기 완료된 데이터 블럭의 위치를 저장하는 단계(43)를 포함하며, The write pointer W indicates the position in the buffer storage space 12 in which the data block is to be written, and the read pointer P indicates the position in the buffer storage space 12 in which the received write data block is to be read. The pointers travel on buffer storage along the same progressive annular path, the method comprising storing 43 the location of the first written data block of the current data packet, 남은 자유 저장공간(12)이 있는지를 결정하는 단계(44)는 상기 쓰기 포인터(W)에서 상기 읽기 포인터(P)까지의 환형 경로 상에 저장공간(12)을 결정하는 것을 포함하며, Determining 44 whether there is remaining free storage space 12 includes determining storage space 12 on the annular path from the write pointer W to the read pointer P, 현재 데이터 패킷의 적어도 하나의 쓰기 완료된 데이터 블럭을 자유 저장공간의 부분으로서 정의하는 단계(48)는 상기 쓰기 포인터(W)를 현재 데이터 패킷의 제 1 쓰기 완료된 데이터 블럭의 저장된 위치로 옮기는 것을 포함하는 것을 특징으로 하는 데이터 패킷 저장 관리방법.Defining at least one written block of data in the current data packet as part of free storage comprises moving the write pointer W to a stored location of the first write block of data in the current data packet. Data packet storage management method, characterized in that. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서, The method according to any one of claims 1 to 4, 현재 데이터 패킷은 MPEG-2 전송용 스트림 패킷인 것을 특징으로 하는 데이 터 패킷 저장 관리방법.Data packet storage management method, characterized in that the current data packet is a stream packet for MPEG-2 transmission. 저장공간을 가지는 버퍼를 포함하며, 각각이 적어도 두 개의 데이터 블럭들(db1, db2, db3, db4)로 구성되는 데이터 패킷(DP)들을 저장하기 위한 시스템으로서, 상기 시스템은, 버퍼(12)의 저장공간에 데이터 패킷들을 저장하는 것을 관리하기 위한 관리수단(14)을 포함하며, 상기 관리수단(14)은 제 1 항 또는 제 2 항에 따른 방법을 실행하기 위해 배치되는 것을 특징으로 하는 시스템. A system for storing data packets (DP) comprising a buffer having a storage space, each consisting of at least two data blocks (db1, db2, db3, db4), the system comprising: Management means (14) for managing the storage of data packets in a storage space, said management means (14) being arranged to carry out the method according to any one of the preceding claims. 제 6 항에 있어서,The method of claim 6, 상기 버퍼는 FIFO 버퍼이며, 상기 관리수단(14)은 제 3 항 또는 제 4 항에 따른 방법을 실행하기 위해 배치되는 것을 특징으로 하는 시스템.The buffer is a FIFO buffer, wherein said management means (14) is arranged to carry out the method according to claim 3 or 4. MPEG-2 수신기로서,As an MPEG-2 receiver, MPEG-2 전송용 스트림 데이터 패킷들을 저장하기 위한 제 6 항 또는 제 7 항에 따른 시스템을 포함하는 것을 특징으로 하는 MPEG-2 수신기.An MPEG-2 receiver comprising a system according to claim 6 or 7 for storing stream data packets for MPEG-2 transmission. 디지털 컴퓨터의 내부 메모리에 직접 장착가능한 컴퓨터 프로그램 제품으로서, 상기 제품은 상기 제품이 컴퓨터상에 구동될 때 제 1 항 내지 제 5 항 중 어느 한 항의 단계들을 실행하기 위한 소프트웨어 코드부들을 포함하는, 컴퓨터 프로그램 제품.A computer program product mountable directly into an internal memory of a digital computer, the product comprising software code portions for performing the steps of any of claims 1 to 5 when the product is run on a computer. Program product.
KR1020060095590A 2005-10-06 2006-09-29 Method and system for storing data packets Withdrawn KR20070038881A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05292080A EP1773043A1 (en) 2005-10-06 2005-10-06 Method and system for storing data packets
EP05292080.8 2005-10-06

Publications (1)

Publication Number Publication Date
KR20070038881A true KR20070038881A (en) 2007-04-11

Family

ID=35976786

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060095590A Withdrawn KR20070038881A (en) 2005-10-06 2006-09-29 Method and system for storing data packets

Country Status (6)

Country Link
US (1) US20070081528A1 (en)
EP (1) EP1773043A1 (en)
JP (1) JP2007124639A (en)
KR (1) KR20070038881A (en)
CN (1) CN1984339A (en)
TW (1) TW200729955A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101160057B1 (en) * 2008-09-09 2012-06-26 소프트온넷(주) Method and system for extracting repacking data of application program on host computer in dirty personal computer environment

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5240513B2 (en) * 2008-09-11 2013-07-17 ソニー株式会社 Information processing apparatus and method
CN104794065B (en) * 2015-05-04 2018-01-09 常州工学院 A kind of more packet fixed-length data cyclic access methods
CN111381837B (en) * 2018-12-28 2023-07-18 广州众诺微电子有限公司 Burning method, system and readable storage medium

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862136A (en) * 1995-07-07 1999-01-19 Northern Telecom Limited Telecommunications apparatus and method
US5880997A (en) * 1995-12-22 1999-03-09 Cypress Semiconductor Corp. Bubbleback for FIFOS
GB9606928D0 (en) * 1996-04-02 1996-06-05 Memory Corp Plc Memory devices
US6101329A (en) * 1997-02-18 2000-08-08 Lsi Logic Corporation System for comparing counter blocks and flag registers to determine whether FIFO buffer can send or receive data
US5852630A (en) * 1997-07-17 1998-12-22 Globespan Semiconductor, Inc. Method and apparatus for a RADSL transceiver warm start activation procedure with precoding
US5949441A (en) * 1997-08-01 1999-09-07 International Business Machines Corporation Multimedia terminal with an encoder for converting analog video data to compressed digitized video data
US6021449A (en) * 1997-08-01 2000-02-01 International Business Machines Corporation Video FIFO overflow control method that blocks video encoder data when overflow is imminent and resumes flow when frames sizes have returned to nominal size
EP1035682A1 (en) * 1999-03-06 2000-09-13 Deutsche Thomson-Brandt Gmbh Method and bus interface employing a memory in an integrated circuit for linking a bus with an application device
US6907481B2 (en) * 2001-03-06 2005-06-14 Ati Technologies, Inc. System for bit-rate controlled digital stream playback and method thereof
TWI242131B (en) * 2003-04-25 2005-10-21 Via Networking Technologies In Method and related circuit for increasing network transmission efficiency by speeding data updating rate of memory
US7293132B2 (en) * 2003-10-08 2007-11-06 Samsung Electronics Co., Ltd. Apparatus and method for efficient data storage using a FIFO memory
US7248587B1 (en) * 2005-04-11 2007-07-24 Azul Systems, Inc. Error recovery of variable-length packets without sequence numbers or special symbols used for synchronizing transmit retry-buffer pointer
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7571275B2 (en) * 2005-08-31 2009-08-04 Hamilton Sundstrand Corporation Flash real-time operating system for small embedded applications

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101160057B1 (en) * 2008-09-09 2012-06-26 소프트온넷(주) Method and system for extracting repacking data of application program on host computer in dirty personal computer environment

Also Published As

Publication number Publication date
US20070081528A1 (en) 2007-04-12
CN1984339A (en) 2007-06-20
TW200729955A (en) 2007-08-01
EP1773043A1 (en) 2007-04-11
JP2007124639A (en) 2007-05-17

Similar Documents

Publication Publication Date Title
US6823131B2 (en) Method and device for decoding a digital video stream in a digital video system using dummy header insertion
EP1169862B1 (en) Data format for a streaming information receiver
US20050283547A1 (en) Streaming information appliance with buffer read and write synchronization
US20070058730A1 (en) Media stream error correction
EP1239674A2 (en) Method and apparatus for recording broadcast data
CN102547435A (en) System and method for playing and processing multimedia file
US6831931B2 (en) System and method for remultiplexing of a filtered transport stream
US20180376180A1 (en) Method and apparatus for metadata insertion pipeline for streaming media
KR20070038881A (en) Method and system for storing data packets
CN113055680B (en) Distributed transcoding method
US6892022B1 (en) Storing and retrieving encoded data stream with specified time of delivery on a hard disk
CN1491387B (en) Device and method for managing access to storage medium
EP1677540A1 (en) Content reproduce system, reproduce device, reproduce method, and distribution server
US20070183756A1 (en) Methods and systems for picture rate reduction of stored video while under continuous record load
CN101147395B (en) Recording device and recording method
JP2009296365A (en) Video recording and playback equipment, video recording method, and video playback method
CN109068156A (en) A kind of performance recording, playback method and device
EP3678368B1 (en) Video streaming batch
US6961801B1 (en) Method and apparatus for accessing video data in memory across flow-controlled interconnects
CN100461747C (en) Method for adjusting code rate of code stream in multimedia
US8442126B1 (en) Synchronizing audio and video content through buffer wrappers
EP1148729A1 (en) Method and device for decoding a digital video stream in a digital video system using dummy header insertion
US20050097558A1 (en) System and method for a symmetric architecture for multimedia players
US20230103367A1 (en) Method and apparatus for mpeg dash to support preroll and midroll content during media playback
US9813689B2 (en) Method for accelerated restitution of audio content and associated device

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20060929

PG1501 Laying open of application
PC1203 Withdrawal of no request for examination
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid