KR20000010629A - System and method for creating trick play video streams from a compressed normal play video bitstream - Google Patents

System and method for creating trick play video streams from a compressed normal play video bitstream Download PDF

Info

Publication number
KR20000010629A
KR20000010629A KR1019980708533A KR19980708533A KR20000010629A KR 20000010629 A KR20000010629 A KR 20000010629A KR 1019980708533 A KR1019980708533 A KR 1019980708533A KR 19980708533 A KR19980708533 A KR 19980708533A KR 20000010629 A KR20000010629 A KR 20000010629A
Authority
KR
South Korea
Prior art keywords
bitstream
frames
compressed
intracoded
frame
Prior art date
Application number
KR1019980708533A
Other languages
Korean (ko)
Other versions
KR100449200B1 (en
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 오픈티브이, 인크.
Priority to KR10-1998-0708533A priority Critical patent/KR100449200B1/en
Publication of KR20000010629A publication Critical patent/KR20000010629A/en
Application granted granted Critical
Publication of KR100449200B1 publication Critical patent/KR100449200B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • H04N5/783Adaptations for reproducing at a rate different from the recording rate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2562DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

PURPOSE: A video-on-demand system generates a compressed fast forward and a fast reverse video streams from a normal play compressed video bit stream. CONSTITUTION: The method for generating trick play video streams from a normal play compressed video bit stream comprises of; step receiving a compressed normal play bit stream including a plurality of intracoded frames and intercoded frames; step filtering the bit stream as extracting intracoded frames and saving the extracting frames to memory; step storing this information in a new file (102) and extracting I-frames and sequence headers including all weighting matrices from the MPEG bit stream; step generating a single assembled bit stream(104) by assembling or collating the filtered data; step decoding assembled bit stream to generate a plurality of a non-compressed frame; step encoring a plurality of a non-compressed frame to generate compressed trick play video streams including only portions of the frame of the normal play bit stream after decoding step.

Description

압축된 정규 재생 비디오 비트스트림으로부터 트릭 재생 비디오 스트림을 생성하기 위한 시스템 및 방법System and method for generating trick-play video streams from compressed normal-play video bitstreams

주문형 비디오 시스템은 다수의 사용자 또는 시청자가 선택적으로 영화를 볼 수 있도록 한다든지 또는 하나 이상의 비디오 서버 또는 미디어 서버에 저장되어 있는 다른 오디오/비디오 시퀀스를 볼 수 있도록 한다. 비디오 서버는 방송 네트워크와 같은 데이터 전송 채널을 통해 다수의 사용자에게 연결된다. 예를들면, 비디오 서버는 방송 케이블 시스템 또는 위성 방송 시스템을 통해 다수의 사용자 또는 가입자에게 연결될 것이다. 비디오 서버는 다수의 영화 또는 다른 오디오/비디오 시퀀스를 저장하고, 각 사용자는 비디오 서버로부터 관람하고자 하는 하나 이상의 영화를 선택할 수 있다. 각 사용자는 텔레비젼이나 다른 시청 장치(viewing device) 뿐만 아니라 희망하는 영화를 선택하거나 관람하기 위한 관련된 디코딩 로직을 포함한다. 사용자가 영화를 선택하면, 선택된 영화는 데이터 전송 채널을 통해 각 사용자의 텔레비젼으로 전송된다.Video-on-demand systems allow multiple users or viewers to selectively watch movies or to view other audio / video sequences stored on one or more video servers or media servers. The video server is connected to multiple users through a data transmission channel such as a broadcast network. For example, a video server may be connected to multiple users or subscribers via a broadcast cable system or satellite broadcast system. The video server stores multiple movies or other audio / video sequences, and each user can select one or more movies to watch from the video server. Each user includes associated decoding logic for selecting or watching a desired movie as well as a television or other viewing device. When the user selects a movie, the selected movie is sent to each user's television through the data transmission channel.

풀-모션 디지털 비디오(full-motion digital video)는 많은 양의 기억 장치와 데이터 전송 대역폭을 필요로 한다. 따라서, 주문형 비디오 시스템은 필요한 기억 장치의 양과 데이터 전송 대역폭을 감소시키기 위해 여러 형태의 비디오 압축 알고리즘을 사용한다. 일반적으로, 스틸 그래픽 이미지(still graphic image)와 풀-모션 비디오에 대해 상이한 압축 방법이 존재한다. 스틸 그래픽 이미지 또는 단일 비디오 프레임용 비디오 압축 방법은 인트라프레임 압축 방법으로 칭해지고, 모션 비디오용 압축 방법은 인터프레임 압축 방법으로 칭해진다.Full-motion digital video requires a large amount of storage and data transmission bandwidth. Accordingly, video-on-demand systems use several types of video compression algorithms to reduce the amount of storage needed and the data transfer bandwidth. In general, different compression methods exist for still graphic images and full-motion video. The video compression method for still graphic images or single video frames is called the intraframe compression method, and the compression method for motion video is called the interframe compression method.

스틸 그래픽 이미지용 비디오 데이터 압축의 예로서는 RLE(run-length-encoding; 런-렝스 인코딩)와 JPEG(Joint Photographic Expert Group) 압축이 있다. RLE 압축 방법은 비트 맵의 단일 라인 내에서 동일한 픽셀(duplicated pixel)을 테스트하고 픽셀 그 자체에 대한 데이터보다는 연속하는 동일 픽셀의 수를 저장함으로써 동작한다. JPEG 압축은 손실이 없는(이미지의 질적 저하가 없는) 압축 형태 또는 손실이 많은(인지할 수 없을 만큼의 심한 저하) 압축 형태를 제공하는 관련 표준안의 그룹이다. JPEG 압축이 원래 비디오보다는 스틸 이미지의 압축을 위해 디자인되었지만, JPEG 압축은 몇 몇 모션 비디오 응용에서 사용된다.Examples of video data compression for still graphic images include run-length-encoding (RLE) and Joint Photographic Expert Group (JPEG) compression. The RLE compression method works by testing the duplicated pixels within a single line of the bitmap and storing the number of consecutive identical pixels rather than the data for the pixels themselves. JPEG compression is a group of related standards that provide lossless (no degradation in image quality) or lossy (unrecognizably severe degradation) compression. Although JPEG compression was originally designed for the compression of still images rather than video, JPEG compression is used in some motion video applications.

스틸 이미지용 압축 알고리즘에 비해서, 대부분의 비디오 압축 알고리즘은 풀모션 비디오를 압축하기 위해 디자인되었다. 모션 비디오용 압축 알고리즘은 인터프레임 압축으로 칭해지는 개념을 사용하는데, 이것은 데이터 파일에서 연속하는 프레임 사이의 차이만을 저장한다. 인터프레임 압축은, 일반적으로, 적절하게 압축된 포맷의 키 프레임 또는 기준 프레임의 전체 이미지를 저장한다. 연속 프레임은 상기 키 프레임과 비교되고, 상기 키 프레임과 상기 연속 프레임의 차이만이 저장된다. 주기적으로, 새로운 장면이 디스플레이될 때마다. 새로운 키 프레임이 저장되고, 이 새로운 기준 지점에서부터 후속하는 비교가 시작한다. 인터프레임 압축율은 비디오 화질이 변하는 동안에도 일정하게 유지됨을 주지하라. 다르게는, 인터프레임 압축율은 내용에 따라 변할 수도 있는데, 즉, 만약 압축되고 있는 비디오 클립이 한 이미지에서 다른 이미지로의 갑작스런 장면 전환을 많이 포함하는 경우, 압축은 덜 효율적이 된다. 인터프레임 압축 기술을 사용하는 비디오 압축의 예로서는 MPEG, DVI 및 인디오(Indeo) 등이 있다.Compared to the compression algorithm for still images, most video compression algorithms are designed to compress full motion video. The compression algorithm for motion video uses a concept called interframe compression, which only stores the differences between successive frames in the data file. Interframe compression generally stores the entire image of a key frame or reference frame in an appropriately compressed format. The continuous frame is compared with the key frame, and only the difference between the key frame and the continuous frame is stored. Periodically, every time a new scene is displayed. A new key frame is saved and subsequent comparison starts from this new reference point. Note that the interframe compression rate remains constant while the video quality changes. Alternatively, the interframe compression rate may vary depending on the content, i.e., if the video clip being compressed contains many abrupt transitions from one image to another, compression is less efficient. Examples of video compression using interframe compression techniques include MPEG, DVI and Indeo.

MPEG 배경MPEG background

MPEG(Moving Pictures Experts Group) 압축으로 칭해지는 압축 표준은 상기 상술된 인터프레임 압축 기술을 사용하는 풀모션 비디오 이미지의 압축 및 압축 해제(decompression)용 방법의 집합이다. MPEG 압축은 모션 보상 및 이산 코사인 변환(discrete cosine transform; DCT) 처리 둘 다를 사용하고 200:1 이상의 압축율을 생성한다.A compression standard called Moving Pictures Experts Group (MPEG) compression is a set of methods for the compression and decompression of full motion video images using the interframe compression techniques described above. MPEG compression uses both motion compensation and discrete cosine transform (DCT) processing and produces a compression ratio of 200: 1 or greater.

MPEG 표준은 사운드가 비디오 데이터와 함께 동시에 기록될 것을 요구하고, 비디오 및 오디오 데이터는 재생동안 비디오 및 오디오가 동기화되는 것을 유지하기 위해 단일의 파일 내에 삽입된다. 오디오 데이터도 일반적으로 압축되는데, MPEG 표준은 MPEG 레이어Ⅱ와 같은 오디오 압축 방법을 기술하며, "MUSICAM"이라는 필립스 상품명으로도 공지되어 있다.The MPEG standard requires that sound be recorded simultaneously with the video data, and the video and audio data are inserted into a single file to keep the video and audio synchronized during playback. Audio data is also generally compressed. The MPEG standard describes audio compression methods such as the MPEG Layer II, also known under the Philips trade name "MUSICAM."

대부분의 비디오 시퀀스에서, 배경(background)은 상대적으로 정지되어 있고(stable) 동작은 전경(foreground)에서 발생한다. 배경이 움직일 수도 있지만, 비디오 시퀀스에서 대부분의 연속 프레임은 중복적이다. MPEG 스트림을 생성함에 있어서, MPEG 인코더는 I 또는 인트라프레임과 P 또는 예측 프레임(predicted frames) 및 B 프레임을 생성한다. I 프레임은 비디오의 전체 프레임에 대한 비디오 데이터를 포함하고 일반적으로 매 10 내지 15 프레임마다 위치된다. P 프레임은 이전의 I 또는 P 프레임에 대한 변화만을 포함한다. I 및 P 프레임 둘 다는 후속하는 프레임에 대해 기준으로 사용된다. 일반적으로, I 또는 P 프레임에 후속하는 프레임, 즉 기준 프레임을 뒤따르는 프레임에 대해서, 이들 프레임의 작은 부분만이 각각의 기준 프레임의 대응하는 부분과 상이하다. 따라서, 이들 프레임에 대해서, 그 차이만이 포착되고, 압축되어 저장된다.In most video sequences, the background is relatively stable and the motion occurs in the foreground. The background may move, but most consecutive frames in the video sequence are redundant. In generating an MPEG stream, the MPEG encoder generates I or intraframes and P or predicted frames and B frames. I frames contain video data for the entire frame of video and are generally located every 10 to 15 frames. P frames contain only changes to the previous I or P frame. Both I and P frames are used as reference for subsequent frames. In general, for a frame following an I or P frame, i.e., a frame following a reference frame, only a small portion of these frames is different from the corresponding portion of each reference frame. Therefore, for these frames, only the difference is captured, compressed and stored.

I 프레임이 생성된 후, MPEG 인코더는 각각의 I 프레임을 매크로 블록으로 칭해지는 16×16 픽셀의 그리드로 분할한다. 각각의 I 프레임은 모션 보상을 수행하기 위해서 매크로 블록으로 분할된다. I 프레임 다음에 후속하는 화상 각각은 또한 이들 동일한 매크로 블록으로 분할된다. 그 다음 인코더는 기준 화상 매크로 블록과 후속하는 화상에서의 매크로 블록 사이의 정확한, 또는 거의 정확한 정합(match)을 검색한다. 정합이 발견되는 경우, 인코더는 벡터 이동 코드 또는 모션 벡터를 전송한다. 벡터 이동 코드 또는 모션 벡터는 I 프레임과 각각의 후속하는 화상 사이의 차이에 대한 정보만을 포함한다. 기준 화상 또는 I 프레임에 대해 변화가 없는 후속하는 화상에서의 블록은 무시된다. 따라서 이들 프레임에 대해 실제 저장되는 데이터의 양은 상당히 감소된다.After the I frames are generated, the MPEG encoder divides each I frame into a grid of 16x16 pixels called macro blocks. Each I frame is divided into macro blocks to perform motion compensation. Each subsequent picture following the I frame is also divided into these same macro blocks. The encoder then searches for an exact or near exact match between the reference picture macroblock and the macroblock in the subsequent picture. If a match is found, the encoder sends a vector motion code or motion vector. The vector motion code or motion vector only contains information about the difference between the I frame and each subsequent picture. Blocks in subsequent pictures that do not change with respect to the reference picture or I frame are ignored. Thus, the amount of data actually stored for these frames is significantly reduced.

모션 벡터가 생성된 후, 인코더는 공간 중복(spatial redundancy)을 사용하여 변화를 추적한다. 따라서, 매크로 블록의 위치에서 변화를 발견한 후, MPEG 알고리즘은 대응하는 매크로 블록 사이의 차이를 나타냄으로써 데이터를 더 감소시킨다. 이것은 이산 코사인 변환 또는 DCT로 언급되는 수학적 처리에 의해 실현된다. 이 처리는 매크로 블록을 색상 및 밝기(brightness)에서의 변화를 탐색하는 4 개의 서브 블록으로 분할한다. 인간의 지각 작용은 색상에서의 변화보다 밝기에서의 변화에 더 민감하다. 따라서 MPEG 알고리즘은 발기보다는 색상 공간(color space)을 감소시키는데 더 많은 노력을 기울인다.After the motion vector is generated, the encoder tracks the change using spatial redundancy. Thus, after finding a change in the location of the macro block, the MPEG algorithm further reduces the data by indicating the difference between the corresponding macro blocks. This is realized by a mathematical process referred to as discrete cosine transform or DCT. This process divides the macro block into four sub-blocks that look for changes in color and brightness. Human perception is more sensitive to changes in brightness than to changes in color. The MPEG algorithm therefore puts more effort into reducing color space than erection.

MPEG 스트림은 인트라(I) 프레임, 예측(P) 프레임 및 양방향 보간(Bi-directional Interpolated; B) 프레임으로 언급되는 세 종류의 화상을 포함한다. 인트라 프레임은 임의 접근(random access)을 위해 파일로의 진입 지점(entry points)을 제공하고, 일반적이고 적절하게 압축된다. 예측 프레임은 지나간 프레임, 즉 이전 인트라 프레임 또는 예측 프레임에 대한 기준과 함께 인코드된다. 일반적으로, 예측 프레임은 아주 많은 양의 압축을 받게되고 미래(future) 예측 프레임에 대한 기준으로서 사용된다. 양방향 화상은 가장 큰 양의 압축을 포함하고 인코드되기 위해 지나간 기준 및 미래의 기준 둘 다를 필요로 한다. 양방향 프레임은 다른 프레임에 대한 기준으로 사용되지는 않는다.The MPEG stream contains three kinds of pictures, referred to as intra (I) frames, predictive (P) frames and bi-directional interpolated (B) frames. Intra frames provide entry points to the file for random access and are generally and properly compressed. The predictive frame is encoded with a reference to a past frame, i.e., a previous intra frame or a predictive frame. In general, prediction frames are subjected to very large amounts of compression and are used as a reference for future prediction frames. Bidirectional pictures contain the greatest amount of compression and require both past and future criteria to be encoded. Bidirectional frames are not used as references for other frames.

각각의 화상 또는 프레임은 또한 프레임을 식별하는 화상 헤더를 포함하고 상기 프레임에 대한 정보를 포함한다. MPEG 표준은 또한 비디오 시퀀스의 시작을 식별하는 시퀀스 헤더를 포함한다. 시퀀스 헤더는 비디오 시퀀스의 개시 이전에 단 한 번만 필요 되어진다. 그러나, MPEG-2 표준은 시퀀스 헤더가 임의의 I 프레임이나 P 프레임에 앞서 전송되는 것을 허용한다. 시퀀스 헤더는, 다른 정보 중에서 프레임 비율 및 화상 크기를 포함하는, 비디오 시퀀스와 관련된 정보를 포함한다.Each picture or frame also includes a picture header that identifies the frame and includes information about the frame. The MPEG standard also includes a sequence header that identifies the start of a video sequence. The sequence header is only needed once before the start of the video sequence. However, the MPEG-2 standard allows the sequence header to be sent before any I frame or P frame. The sequence header includes information related to the video sequence, including frame rate and picture size, among other information.

디지털 텔레비젼 응용에서 사용되는 MPEG 비트스트림은 일반적으로 매 I 프레임 및 P 프레임에 앞서 시퀀스 헤더를 포함한다. 이것은 상이한 비디오 채널간의 채널 검색(channel surfing)을 용이하게 하는데 필요한데, 이것은 중요한 사용자 요구 사항이다. 일반적으로, 사용자가 새로운 채널로 전환할 때, 새로운 채널용 비디오는 다음 번 시퀀스 헤더가 비트스트림에 나타날 때까지 디스플레이될 수 없다. 이것은 상기 비디오 시퀀스가 디스플레이될 수 있기 이전에 디코더에 의해 요구되는 비디오 시퀀스에 대한 중요한 정보를 시퀀스 헤더가 포함하기 때문이다. 만약 시퀀스 헤더가 각각의 I 프레임 및/또는 P 프레임에 앞서 포함되지 않았다면, 사용자가 새로운 채널로 전환할 때, 새로운 채널에 대한 비디오가 아마 즉시 디스플레이될 수 없을 것이다. 즉, 비디오는 다음 번 시퀀스 헤더까지 디스플레이될 수 없다.MPEG bitstreams used in digital television applications generally include a sequence header prior to every I frame and P frame. This is necessary to facilitate channel surfing between different video channels, which is an important user requirement. In general, when a user switches to a new channel, the video for the new channel cannot be displayed until the next sequence header appears in the bitstream. This is because the sequence header contains important information about the video sequence required by the decoder before the video sequence can be displayed. If the sequence header was not included before each I frame and / or P frame, when the user switches to the new channel, the video for the new channel will probably not be displayed immediately. That is, the video cannot be displayed until the next sequence header.

MPEG 인코드된 스트림은 또한 MPEG 비트스트림에서 I 프레임을 디코딩하기 위해 사용되는 가중 매트릭스(weighting matrixes)를 포함한다. 각각의 가중 매트릭스는 프레임을 인코딩하는데 사용되는 이산 코사인 변환(DCT)의 상이한 파리미터에 적용되는 계수의 매트릭스를 포함한다. 새로운 가중 매트릭스 값은 매 비디오 시퀀스의 시작에 포함되고, 이들 값은 후속하는 새로운 가중 매트릭스가 MPEG 스트림에 나타날 때까지 각각의 프레임을 위해 사용된다. 가중 매트릭스는 통상적으로 시퀀스 헤더 또는 화상 헤더에 포함된다. 그러나, 가중 매트릭스는 P 또는 B 프레임에 삽입될 수도 있다.The MPEG encoded stream also includes weighting matrices used to decode I frames in the MPEG bitstream. Each weighting matrix comprises a matrix of coefficients applied to different parameters of the discrete cosine transform (DCT) used to encode the frame. New weight matrix values are included at the beginning of every video sequence, and these values are used for each frame until a subsequent new weight matrix appears in the MPEG stream. The weighting matrix is typically included in a sequence header or picture header. However, the weighting matrix may be inserted in a P or B frame.

트릭 재생 스트림Trick play stream

상호 대화형 주문형 비디오 시스템에 있어서, 사용자가 관람되고 있는 영화를 선택적으로 빠르게 감거나 또는 빠르게 되감을 수 있게 하는 것이 아주 바람직하다. 따라서, 몇 몇 주문형 비디오 시스템은 각각의 영화에 대해 트릭 재생 스트림(trick play stream)으로 언급되는 고속 감기(fast forward) 및 고속 되감기(fast reverse) 스트림을 포함한다. 사용자가 영화를 빠르게 감거나 빠르게 되감을 것을 원하는 경우, 사용자는 고속 감기 또는 고속 되감기 옵션을 선택한다. 이 때 각각의 고속 감기 또는 고속 되감기 트릭 재생 스트림은 적절한 지점에서 관람하고 있는 사용자에게 전송되어, 관람되고 있는 영화의 고속 감기 또는 고속 되감기를 흉내내게 된다.In an interactive on-demand video system, it is highly desirable to allow the user to selectively fast forward or rewind the movie being watched. Thus, some on-demand video systems include fast forward and fast reverse streams, referred to as trick play streams for each movie. If the user wants to fast forward or rewind the movie, the user selects a fast forward or fast rewind option. At this time, each fast forward or fast rewind trick playback stream is transmitted to the user who is watching at an appropriate point to simulate the fast forward or fast reverse of the movie being watched.

트릭 재생 스트림을 포함하는 상호 대화형 주문형 비디오 시스템은 정규 재생 비트스트림으로부터 트릭 재생 스트림을 생성하기 위한 방법을 필요로 한다. 정규 재생 비트스트림으로부터 고속 감기 및 고속 되감기 비트스트림을 생성하기 위한 현재의 한 방법은 다중 스트림으로의 룩업 테이블(look-up table) 사용을 포함한다. 룩업 테이블은 각각의 I 프레임을 참조하는 다수의 지표(indices)를 포함하고, 비디오 서버는 지표 사이에서 분주하게 점프하여 각 점프에서 I-프레임만을 재생한다. 다르게 표현하면, 비디오 서버는 고속 감기 및 고속 되감기 트릭 재생 스트림을 위한 I-프레임만을 재생하기 위해 룩업 테이블에 지표를 단다. 이러한 방법에서의 한 문제점은 고속 감기 및 고속 되감기가 요구되는 동안 테이블 룩업을 수행하고 지표 사이를 분주하게 점프함에 있어서 비디오 서버에 상당한 부하가 주어지는 점이다. 또한, 이 방법은 관련된 비트율 확장(associated bit rate expansion) 문제점을 갖는다.An interactive on-demand video system that includes a trick play stream requires a method for generating a trick play stream from a regular play bitstream. One current method for generating fast forward and fast rewind bitstreams from a normal playback bitstream involves the use of a look-up table into multiple streams. The lookup table includes a number of indices that refer to each I frame, and the video server jumps between the indices to play only the I-frames in each jump. In other words, the video server indexes the lookup table to play only I-frames for the fast forward and fast rewind trick playback streams. One problem with this approach is that there is a significant load on the video server in performing table lookups and busy jumps between indicators while fast forward and fast rewind are required. In addition, this method has an associated bit rate expansion problem.

트릭 재생 고속 감기 및 고속 되감기 비트스트림을 생성하기 위한 공지된 다른 방법은 DCT의 AC 계수를 포함하지 않고, DC 계수만을 포함하는 비디오 스트림을 생성한다. 이것은 블록으로 된 트릭 재생 스트림을 생성하기 때문에 다른 트릭 재생 스트림 생성 방법보다는 덜 바람직하다.Trick-Playing Other known methods for generating fast forward and fast rewind bitstreams produce video streams that contain only the DC coefficients, not the AC coefficients of the DCT. This is less desirable than other trick play stream generation methods because it produces a trick play stream in blocks.

따라서, 압축된 정규 재생 비트스트림으로부터 트릭 재생 비디오 스트림, 즉 고속 감기 및 고속 되감기 비디오 스트림을 효율적으로 생성하기 위한 향상된 시스템 및 방법이 요구된다.Accordingly, what is needed is an improved system and method for efficiently generating trick-play video streams, ie fast-forward and fast-rewind video streams, from compressed normal playback bitstreams.

참조 문헌Reference

하기의 문헌이 본원에 참조 문헌으로 통합되었다.The following documents are incorporated herein by reference.

ISO/IEC 13818로 언급되는 ISO/IEC MPEG 명세 사항이 본원에서 참조 문헌으로 활용된다.The ISO / IEC MPEG specification, referred to as ISO / IEC 13818, is incorporated herein by reference.

기술 분야Technical field

본 발명은 일반적으로 주문형 비디오 시스템(video-on-demand system)과 비디오 압축에 관한 것으로, 특히 정규 재생 압축 비디오 비트스트림(normal play compressed video bitstream)으로부터 압축된 고속 감기(compressed fast forward) 및 고속 되감기(fast reverse) 비디오 비트스트림을 생성하기 위한 시스템 및 방법에 관한 것이다.FIELD OF THE INVENTION The present invention relates generally to video-on-demand systems and video compression, in particular compressed fast forward and fast rewind from normal play compressed video bitstreams. (fast reverse) system and method for generating a video bitstream.

도 1은 본 발명에 따른 비디오 트릭 재생 스트림을 생성하는 컴퓨터 시스템을 도시하는 도면.1 illustrates a computer system for generating a video trick playback stream in accordance with the present invention.

도 1A는 도 1의 컴퓨터 시스템을 도시하는 블록도.1A is a block diagram illustrating the computer system of FIG. 1.

도 2는 본 발명의 동작을 나타내는 순서도.2 is a flow chart illustrating the operation of the present invention.

도 3은 도 2의 필터의 동작을 나타내는 순서도.3 is a flow chart showing the operation of the filter of FIG.

도 4는 도 2의 검증기/고정기의 동작을 나타내는 순서도.4 is a flow chart showing operation of the verifier / stator of FIG.

도 5는 본 발명에 따른 다른 실시예의 동작을 도시하는 순서도.5 is a flowchart illustrating operation of another embodiment according to the present invention.

도 6A 내지 도 6C는 역 트릭 재생 스트림을 생성하기 위한 본 발명의 양호한 실시예의 순서도.6A-6C are flowcharts of a preferred embodiment of the present invention for generating a reverse trick play stream.

발명의 요약Summary of the Invention

본 발명은 압축된 정규 재생 비트스트림으로부터 트릭 재생 비디오 스트림, 즉 고속 감기 및 고속 되감기 비디오 스트림을 생성하기 위한 시스템 및 방법을 포함한다. 본 발명은 감소된 기억 장치와 감소된 데이터 전송 대역폭 조건을 필요로하는 압축된 트릭 재생 비디오 스트림을 효율적으로 생성한다. 본 발명은 또한 지표 룩업(index look-ups)과 같은 비디오 데이터의 실시간 처리를 필요로 하지 않는다.The present invention includes a system and method for generating trick-play video streams, ie fast-forward and fast-rewind video streams, from a compressed normal playback bitstream. The present invention efficiently creates compressed trick-play video streams that require reduced storage and reduced data transfer bandwidth requirements. The invention also does not require real time processing of video data, such as index look-ups.

상기 시스템은 국부 미디어(local media)에 저장되어 있거나 또는 원격 지점으로부터 수신되는 압축된 정규 재생 비트스트림을 먼저 수신한다. 그 다음 상기 시스템은 상기 비트스트림의 일부만을 추출하고 저장함으로써 비트스트림을 필터링한다. 상기 시스템은 되도록 MPEG 비트스트림으로부터 모든 가중 매트릭스를 포함하는 시퀀스 헤더와 I-프레임을 추출하고 이 정보를 하나 이상의 새로운 파일에 저장한다. 따라서 상기 필터링(filtering)은 예측(P) 프레임 및 양방향(B) 프레임을 포함하는 MPEG 데이터 스트림의 일부를 제거하거나 삭제한다.The system first receives a compressed normal playback bitstream stored in local media or received from a remote point. The system then filters the bitstream by extracting and storing only a portion of the bitstream. The system extracts sequence headers and I-frames containing all weighting matrices from the MPEG bitstream whenever possible and stores this information in one or more new files. The filtering thus removes or deletes part of the MPEG data stream including the prediction (P) frame and the bidirectional (B) frame.

상기 시스템은 그 다음 단일의 결집된 비트스트림을 생성하기 위해서 필터링된 데이터를 순방향(forward order) 또는 역방향(reverse order)으로 필터링된 데이터를 결집하거나 함께 합친다. 상기 시스템은 또한 가중 매트릭스가 각각의 I-프레임에 적절하게 대응하는 것을 보장한다. 고속 감기 트릭 재생 스트림에 대해서, 결집된 비트스트림은 원래의 MPEG 스트림에서 나타나는 적절한 시간이나 시퀀스 순서로 시퀀스 헤더, I 프레임 및 각각의 가중 매트릭스를 포함한다. 고속 되감기 트릭 재생 비트스트림 스트림에 대해서, 상기 시스템은 역 재생 스트림(reverse play stream)을 생성하기 위해서 헤더/I 프레임 그룹화 또는 헤더/I 프레임 집합(header/I frame tuple) 순서를 반대로 한다. 이것은 관련된 가중 매트릭스를 포함하는 다수의 I-프레임 및 시퀀스 헤더를 포함하는 결집된 비트스트림을 생성한다.The system then aggregates or combines the filtered data in a forward or reverse order to produce a single aggregated bitstream. The system also ensures that the weighting matrix corresponds to each I-frame appropriately. For fast forward trick-play streams, the aggregated bitstream includes a sequence header, an I frame, and each weighting matrix in the proper time or sequence order as they appear in the original MPEG stream. For fast rewind trick playback bitstream streams, the system reverses the header / I frame grouping or header / I frame tuple order to produce a reverse play stream. This creates an aggregated bitstream that includes a number of I-frames and sequence headers that contain associated weight matrices.

결집된 비트스트림은 그 다음 MPEG-2 디코드되어 새로운 비디오 스트림을 생성한다. 새로운 비디오 시퀀스는 원래의 압축되지 않은 정규 재생 비트스트림의 매 X 화상 또는 프레임의 하나만 포함하는데, 여기서 1/X는 원래의 압축되지 않은 정규 프레임 스트림에서 I 프레임의 주파수이다. 이렇게 출력된 화상 스트림은 그 다음 트릭 재생 스트림에 요구되어지는 MPEG 파라미터로 재 인코드되어 유효한 MPEG 인코드된 스트림인 트릭 재생 스트림을 생성한다. 이 새로운 MPEG 인코드된 트릭 재생 스트림이 디코드될 때, 그 결과는 원래의 압축되지 않은 정규 재생 비트스트림의 매 X 프레임의 하나만 포함하는 고속 감기 또는 고속 되감기 비디오 시퀀스이다.The aggregated bitstream is then MPEG-2 decoded to produce a new video stream. The new video sequence contains only one of every X pictures or frames of the original uncompressed normal playback bitstream, where 1 / X is the frequency of I frames in the original uncompressed normal frame stream. The picture stream thus output is then re-encoded with the MPEG parameters required for the trick playback stream to produce a trick playback stream which is a valid MPEG encoded stream. When this new MPEG encoded trick play stream is decoded, the result is a fast forward or fast rewind video sequence containing only one of every X frames of the original uncompressed normal play bitstream.

따라서, 본 발명은 압축된 정규 재생 비트스트림으로부터 트릭 재생 스트림을 보다 효율적으로 생성한다. 결과적으로 발생하는 트릭 재생 스트림은 유효한 MPEG 인코드된 스트림이고 따라서 감소된 기억 장치와 데이터 전송 데이터 대역폭 조건을 갖게 되며, 이 트릭 재생 스트림은 임의의 MPEG 디코더 상에서 공지의 방식으로 디코드될 수 있다.Thus, the present invention produces a trick play stream more efficiently from a compressed normal play bitstream. The resulting trick play stream is a valid MPEG encoded stream and therefore has reduced storage and data transfer data bandwidth requirements, which can be decoded in a known manner on any MPEG decoder.

첨부된 도면과 연계하여, 하기의 양호한 실시예의 상세한 설명으로부터 본 발명을 더 잘 이해할 수 있을 것이다.In conjunction with the accompanying drawings, the invention may be better understood from the following detailed description of the preferred embodiments.

도 1을 참조하면, 압축된 정규 재생 비트스트림으로부터 트릭 재생 비디오 스트림을 생성하기 위한 시스템이 도시된다. 상기 시스템은 되도록 주문형 비디오 시스템에서 사용하기 위한 트릭 재생 스트림을 생성한다. 그러나, 본 발명의 시스템은 필요 되어지는 임의의 여러 형태의 응용에서 사용하기 위한 트릭 재생 스트림을 생성하기 위해 사용될 수도 있다.Referring to FIG. 1, a system for generating a trick play video stream from a compressed normal play bitstream is shown. The system creates trick play streams for use in on-demand video systems. However, the system of the present invention may be used to generate trick play streams for use in any of the various types of applications required.

도시된 바와 같이, 일 실시예에서 트릭 재생 생성 시스템은 범용 컴퓨터 시스템(60)을 포함한다. 상기 컴퓨터 시스템(60)은 압축된 정규 재생 비트스트림을 수신하고 하나 이상의 트릭 재생 스트림을 생성한다. 본 발명에 있어서, "트릭 재생 스트림"이라는 용어는 고속 감기 및/또는 고속 되감기 비디오 스트림, 되도록 압축된 스트림을 나타내는 것으로, 이것은 정규 재생 비트스트림으로부터 생성되고, 되도록 압축된 정규 재생 비트스트림으로부터 생성된다.As shown, in one embodiment the trick playback generation system includes a general purpose computer system 60. The computer system 60 receives the compressed normal play bitstream and generates one or more trick play streams. In the present invention, the term " trick play stream " denotes a fast forward and / or fast rewind video stream, preferably a compressed stream, which is generated from a normal play bitstream, and is preferably generated from a compressed normal play bitstream. .

상기 컴퓨터 시스템(60)은 하나 이상의 프로세서, 하나 이상의 버스, 하드 드라이브 및 메모리를 포함하는 여러 표준 장치를 되도록 포함한다. 도 1A를 참조하면, 도 1의 상기 컴퓨터 시스템에 포함된 상기 장치를 나타내는 블록도가 도시된다. 도 1A는 설명을 위한 것이며, 필요할 때 다른 컴퓨터 아키텍쳐가 사용될 수도 있음을 주지하라. 도시된 바와 같이, 상기 컴퓨터 시스템은 칩셋 로직(82)을 통해 시스템 메모리(84)에 연결된 적어도 하나의 프로세서(80)를 포함한다. 상기 칩셋(82)은 되도록 PCI 버스(86)에 조화시키기 위한 PCI 브리지(Peripheral Component Interconnect bridge)를 포함한다. MPEG 디코더(74)와 MPEG 인코더(76)가 PCI 버스(86)에 연결되어 도시된다. 다른 실시예에 있어서, MPEG 디코딩 및 인코딩은 소프트웨어로 수행된다. 비디오(88)와 하드 드라이브(90)와 같은 여러 다른 장치가 상기 컴퓨터 시스템에 포함될 수 있다.The computer system 60 preferably includes several standard devices, including one or more processors, one or more buses, hard drives, and memory. 1A, a block diagram illustrating the apparatus included in the computer system of FIG. 1 is shown. 1A is for illustrative purposes, and note that other computer architectures may be used as needed. As shown, the computer system includes at least one processor 80 coupled to system memory 84 through chipset logic 82. The chipset 82 includes a Peripheral Component Interconnect bridge (PCI) to harmonize with the PCI bus 86 as much as possible. The MPEG decoder 74 and the MPEG encoder 76 are shown connected to the PCI bus 86. In another embodiment, MPEG decoding and encoding is performed in software. Various other devices may be included in the computer system, such as video 88 and hard drive 90.

다시 도 1을 참조하면, 양호한 실시예에서 상기 컴퓨터 시스템(60)은 하나 이상의 디지털 기억 장치 또는 미디어 기억 장치를 포함하거나 상기 기억 장치에 연결된다. 예를들면, 도 1의 실시예에서, 상기 컴퓨터 시스템(60)은 케이블(64)을 통해 미디어 기억 유닛(62)에 연결된다. 미디어 기억 유닛(62)은 디지털 비디오를 저장하기 위한 하나 이상의 CD-ROM 드라이브 및/또는 하나 이상의 디지털 비디오 디스크(DVD) 기억 유닛을 포함한다. 상기 컴퓨터 시스템은 하나 이상의 내장 CD-ROM 드라이브를 포함할 수도 있고 하나 이상의 분리된 디지털 비디오 디스크(DVD) 기억 유닛에 연결될 수도 있다. 상기 컴퓨터 시스템(60)은 또한 필요할 때 다른 형태의 디지털 또는 아날로그 기억 장치에 연결될 수도 있다.Referring again to FIG. 1, in a preferred embodiment the computer system 60 includes or is coupled to one or more digital storage devices or media storage devices. For example, in the embodiment of FIG. 1, the computer system 60 is connected to the media storage unit 62 via a cable 64. The media storage unit 62 includes one or more CD-ROM drives and / or one or more digital video disc (DVD) storage units for storing digital video. The computer system may include one or more internal CD-ROM drives or may be connected to one or more separate digital video disk (DVD) storage units. The computer system 60 may also be connected to other forms of digital or analog storage when needed.

압축된 정규 재생 비트스트림은 CD-ROM이나 디지털 비디오 디스크(DVD)와 같은 기억 미디어에 포함될 것이다. 이 실시예에 있어서, 압축된 정규 재생 비트스트림을 포함하는 상기 기억 미디어는 상기 컴퓨터 시스템(60)에 포함되어 있거나 연결되어 있는 각각의 기억 장치에 삽입되고, 상기 컴퓨터 시스템(60)은 상기 기억 미디어로부터 압축된 정규 재생 비트스트림을 판독한다. 예를들면, 압축된 정규 재생 비트스트림은 CD-ROM 상에 포함될 것이고, CD-ROM은 미디어 기억 유닛(62)이나 컴퓨터 시스템(60)의 CD-ROM 드라이브에 삽입되어 컴퓨터 시스템(60)이 압축된 정규 재생 비트스트림을 액세스하도록 한다. 또한, 압축된 정규 재생 비트스트림은 DVD에 포함될 수 있고, 비트스트림은 컴퓨터 시스템(60)에 의해 DVD로부터 판독된다.Compressed normal playback bitstreams will be included in storage media such as CD-ROMs or digital video discs (DVDs). In this embodiment, the storage medium containing the compressed normal playback bitstream is inserted into each storage device included or connected to the computer system 60, and the computer system 60 is stored in the storage medium. Read compressed normal playback bitstream from For example, a compressed normal playback bitstream may be included on a CD-ROM, which is inserted into a media storage unit 62 or a CD-ROM drive of a computer system 60 so that the computer system 60 compresses it. Access the normal play bitstream. In addition, the compressed normal playback bitstream may be included in the DVD, which is read from the DVD by the computer system 60.

다르게는, 압축된 정규 재생 비트스트림은 원격 기억 장치나 원격 컴퓨터 시스템과 같은 외부 소스로부터 수신될 것이다. 이 실시예에 있어서, 컴퓨터 시스템은, 압축된 정규 재생 비트스트림을 수신하기 위해, 되도록 ATM(Asynchronous Transfer Mode) 어댑터 카드나, ISDN(Integrated Services Digital Network) 터미널 어댑터, 또는 다른 디지털 데이터 수신기와 같은 입력 장치를 포함한다. 압축된 정규 재생 비트스트림은, 컴퓨터 시스템(60) 외부적으로나 또는 컴퓨터 시스템(60) 내부적으로, 아날로그 포맷으로 저장되거나 수신되어 디지털 데이터로 변환된다.Alternatively, the compressed normal playback bitstream may be received from an external source such as a remote storage device or a remote computer system. In this embodiment, the computer system is configured to receive input such as an Asynchronous Transfer Mode (ATM) adapter card, an Integrated Services Digital Network (ISDN) terminal adapter, or other digital data receiver, to receive the compressed regular playback bitstream. Device. The compressed normal playback bitstream is stored or received in analog format and converted into digital data, either external to computer system 60 or internal to computer system 60.

상기 언급한 바와 같이, 컴퓨터 시스템(60)은 압축된 정규 재생 비트스트림으로부터 트릭 재생 비디오 스트림을 생성한다. 하기에 논의되겠지만, 컴퓨터 시스템(60)은 필터링(filtering) 및 검증기/고정기(verifier/fixer) 기능뿐만 아니라, MPEG-2 디코딩 및 인코딩 기능도 수행한다. 양호한 실시예에 있어서, 필터링 및 검증기/고정기 기능은 컴퓨터 시스템(60)에서 소프트웨어적으로 수행되는데, 여기서 상기 소프트웨어는 플로피 디스크(72)로 나타내어진다. 다른 실시예에 있어서, 컴퓨터 시스템(60)은 필터링 및 검증기/고정기 기능의 하나 또는 둘 다를 수행하는 전용 하드웨어를 포함한다.As mentioned above, computer system 60 generates a trick play video stream from a compressed normal play bitstream. As will be discussed below, computer system 60 performs MPEG-2 decoding and encoding functions, as well as filtering and verifier / fixer functions. In a preferred embodiment, the filtering and verifier / stator functions are performed in software in computer system 60, where the software is represented by floppy disk 72. In another embodiment, computer system 60 includes dedicated hardware to perform one or both of the filtering and verifier / stator functions.

도 1의 실시예에 있어서, 컴퓨터 시스템(60)은 되도록 하드웨어 MPEG(MPEG-2) 디코더 카드(74)와 하드웨어 MPEG(MPEG-2) 인코더 카드(76)를 포함한다. MPEG 디코더(74) 및 MPEG 인코더(76)는 컴퓨터 시스템의 버스에 연결된 어댑터를 포함하지만, 설명의 편의상 도 1에서는 컴퓨터 시스템(60) 외부에 있는 것으로 도시되었다. 다르게는, MPEG 디코더와 MPEG 인코더의 하나 또는 둘 다가 컴퓨터 시스템(60) 외부에 있다. 다른 실시예에 있어서, 컴퓨터 시스템(60)은 MPEG 압축 해제와 MPEG 압축의 하나 또는 둘 다를 소프트웨어적으로 수행하는데, 여기서 상기 소프트웨어는 플로피 디스크(72)로 도시된다. 이 실시예에 있어서, 컴퓨터 시스템(60)은 하드웨어 MPEG 디코더 또는 MPEG 인코더를 포함하지 않는다.In the embodiment of FIG. 1, computer system 60 preferably includes a hardware MPEG (MPEG-2) decoder card 74 and a hardware MPEG (MPEG-2) encoder card 76. The MPEG decoder 74 and the MPEG encoder 76 include adapters connected to the bus of the computer system, but for the sake of explanation, it is shown in FIG. 1 as being outside the computer system 60. Alternatively, one or both of the MPEG decoder and MPEG encoder are external to computer system 60. In another embodiment, computer system 60 performs one or both of MPEG decompression and MPEG compression in software, where the software is shown as floppy disk 72. In this embodiment, computer system 60 does not include a hardware MPEG decoder or MPEG encoder.

트릭 재생 비디오 스트림을 생성하기 위한 시스템은, 필요할 때, 두 개 이상의 상호 접속된 컴퓨터를 포함할 수 있음을 주지하라. 트릭 재생 비디오 스트림을 생성하기 위한 시스템은, 독립적으로 또는 범용의 프로그램 가능한 컴퓨터와 함께 사용되는 전용 하드웨어를 포함할 수도 있다. 임의의 여러 형태의 시스템이 필요할 때 본 발명에 따른 트릭 재생 비디오 스트림을 생성하기 위해 사용될 수도 있음을 주지하라.Note that a system for generating trick playback video streams may include two or more interconnected computers as needed. The system for generating a trick-play video stream may include dedicated hardware used independently or in conjunction with a general purpose programmable computer. Note that any of several types of systems may be used to generate the trick play video stream according to the present invention.

순서도Flowchart

도 2를 참조하면, 본 발명의 동작을 도시하는 도면이 도시된다. 도시된 바와 같이, 본 발명은 필터 동작(102), 검증기/고정기 동작(104), MPEG-2 디코드 동작, 및 MPEG-인코드 동작을 포함한다. 상기 상술된 바와 같이, 이들 동작 각각은 필요할 때 하드웨어 또는 소프트웨어적으로 수행될 것이다.2, a diagram illustrating the operation of the present invention is shown. As shown, the present invention includes a filter operation 102, a verifier / stator operation 104, an MPEG-2 decode operation, and an MPEG-encode operation. As detailed above, each of these operations will be performed in hardware or software when needed.

도시된 바와 같이, 본 발명의 시스템은 정규 재생 비트스트림을 수신한다. 정규 재생 비트스트림은 텔레비전이나 컴퓨터 시스템과 같은 스크린 상에 텔레비젼 세그먼트나 영화와 같은 비디오 시퀀스를 나타내기 위해 사용되는 비디오 데이터의 비트스트림이다. 더 정확히 말하자면, 필터(102)는 I-프레임과 시퀀스 헤더뿐만 아니라 모든 가중 매트릭스를 MPEG 비트스트림으로부터 추출하여 이 새로운 정보를 새로운 파일에 저장한다. 따라서, 필터(102)는 I-프레임, 시퀀스 헤더 및 가중 매트릭스를 제외한 MPEG 비트스트림의 나머지를 모두 제거한다. 따라서 필터(102)는 예측(P) 프레임 및 양방향(B) 프레임을 포함하는 MPEG 데이터 스트림의 일부를 삭제한다.As shown, the system of the present invention receives a normal playback bitstream. A normal play bitstream is a bitstream of video data used to represent a video sequence, such as a television segment or a movie, on a screen such as a television or computer system. More precisely, filter 102 extracts all weighting matrices, as well as I-frame and sequence headers, from the MPEG bitstream and stores this new information in a new file. Thus, filter 102 removes all the rest of the MPEG bitstream except for I-frames, sequence headers, and weight matrices. Thus, filter 102 deletes the portion of the MPEG data stream that includes the prediction (P) frame and the bidirectional (B) frame.

상기 상술된 바와 같이, MPEG 인코드된 비트스트림은 인트라코딩된 화상(intracoded pictures)인 다수의 I-프레임을 포함한다. I 프레임 각각은 비디오의 전체 프레임에 대한 비디오 데이터를 포함하고 시퀀스 내에 주기적으로 위치된다. P 및 B 프레임은 이전의 또는 후속하는 프레임에 대한 변화 정보를 포함한다. 각각의 화상 또는 프레임은 또한 프레임을 식별하는 화상 헤더를 포함하고 상기 프레임에 대한 정보를 포함한다. MPEG 인코드된 비트스트림은, 다른 정보 중에서, 프레임 비율 및 화상 크기를 포함하는, 비디오 시퀀스에 관한 어떤 일정한 정보를 포함하는 하나 이상의 시퀀스 헤더를 더 포함한다.As described above, the MPEG encoded bitstream includes a plurality of I-frames that are intracoded pictures. Each I frame contains video data for the entire frame of video and is periodically located within the sequence. P and B frames contain change information for previous or subsequent frames. Each picture or frame also includes a picture header that identifies the frame and includes information about the frame. The MPEG encoded bitstream further includes one or more sequence headers which, among other information, contain some constant information about the video sequence, including frame rate and picture size.

MPEG 인코드된 스트림은 또한 MPEG 비트스트림의 DCT 계수로부터 픽셀 값을 재구성하기 위해 사용되는 가중 매트릭스를 포함한다. 각각의 가중 매트릭스는 프레임을 인코딩하는데 사용되는 이산 코사인 변환(DCT)의 상이한 파라미터에 적용되는 계수의 매트릭스를 포함한다. 디코더의 매트릭스는 매 비디오 시퀀스의 시작에서 재초기화되고, 이들 값은 후속하는 새로운 가중 매트릭스가 MPEG 스트림에서 나타날 때까지 각각의 프레임에 대해 사용된다. MPEG 인코드된 스트림은 인터프레임 및 인트라프레임 매트릭스 둘 다를 포함함을 주지하라. 트릭 재생 생성 시스템과 방법은 트릭 재생 스트림을 생성하는데 인트라프레임 매트릭스만 활용한다.The MPEG encoded stream also includes a weighting matrix used to reconstruct the pixel values from the DCT coefficients of the MPEG bitstream. Each weighting matrix comprises a matrix of coefficients applied to different parameters of the discrete cosine transform (DCT) used to encode the frame. The decoder's matrix is reinitialized at the beginning of every video sequence, and these values are used for each frame until a subsequent new weighting matrix appears in the MPEG stream. Note that MPEG encoded streams contain both interframe and intraframe matrices. Trick play generation systems and methods utilize only intraframe matrices to generate trick play streams.

가중 매트릭스는 통상적으로 각각의 I 프레임용 화상 헤더나, 각각의 I 프레임 앞의 시퀀스 헤더에 포함된다. 그러나, 몇 몇 경우에 있어서 각각의 I 프레임용 가중 매트릭스는 I 프레임 화상 헤더나 시퀀스 헤더에 포함되지 않고, 이전의 P 또는 B 프레임에 포함될 수도 있다. 다시 말하면, 몇 몇 경우에 있어서, 각각의 I 프레임용 가중 매트릭스의 새로운 값은 이전의 P 또는 B 프레임에 포함될 수도 있다. 이것은 P 또는 B 프레임이 I 프레임 구문(I frame syntax)으로 인코드된 하나 이상의 매크로블록을 포함하는 경우에 발생한다. 따라서 필터(102)는 가중 매트릭스용 P 및 B 프레임을 검사하고 검증기/고정기 블록(104)에 의한 사용을 위해 이들 매트릭스를 저장한다.The weighting matrix is typically included in the picture header for each I frame, or in the sequence header before each I frame. However, in some cases, the weighting matrix for each I frame is not included in the I frame picture header or sequence header, but may be included in a previous P or B frame. In other words, in some cases, a new value of the weighting matrix for each I frame may be included in a previous P or B frame. This occurs when a P or B frame contains one or more macroblocks encoded in I frame syntax. The filter 102 thus examines the P and B frames for the weighted matrix and stores these matrices for use by the verifier / stator block 104.

도시된 바와 같이, 필터(102)는 MPEG 스트림의 일부를 포함하는 저장된 출력을 검증기/고정기(104)로 제공한다. 검증기/고정기(104)는 필터(102)에 의해 생성된 데이터를 단일 비트스트림으로 결집하거나 함께 합친다. 검증기/고정기(104)는 저장된 데이터를 적절한 순서로 결집하거나 또는 연결시켜서 결집된 비트스트림을 생성한다. 검증기/고정기(104)는 필터(102)에 의해 제공된 정보를 사용하여 시퀀스 헤더가 적절한 I 프레임에 대응하는 것을 보장한다.As shown, filter 102 provides a stored output that includes a portion of an MPEG stream to verifier / stator 104. Verifier / corrector 104 aggregates or combines the data generated by filter 102 into a single bitstream. The verifier / corrector 104 aggregates or concatenates the stored data in the proper order to produce the aggregated bitstream. Verifier / corrector 104 uses the information provided by filter 102 to ensure that the sequence header corresponds to the appropriate I frame.

검증기/고정기(104)는 또한 P 또는 B 프레임에서와 같이 스트림에서 발견된 가중 매트릭스가 관련된 스트림에 포함되도록 하고 각각의 I 프레임에 적절하게 대응하도록 한다. 다시 말하면, 검증기/고정기(104)는 또한 가중 매트릭스 또는 양자화 매트릭스 변화가 새롭게 결집된 비트스트림에 적절하게 통합되는 것을 보장한다. 양호한 실시예에 있어서, 검증기/고정기(104)는 P와 B 프레임에서 발견된 가중 매트릭스에 대한 새로운 시퀀스 헤더를 생성하고 이들 새로운 헤더를 올바른 I 프레임과 연결시킨다.Verifier / corrector 104 also allows weighting matrices found in the stream, such as in P or B frames, to be included in the associated stream and correspond appropriately to each I frame. In other words, the verifier / corrector 104 also ensures that the weighted matrix or quantization matrix changes are properly integrated into the newly aggregated bitstream. In the preferred embodiment, the verifier / corrector 104 generates new sequence headers for the weighted matrices found in the P and B frames and associates these new headers with the correct I frames.

고속 감기 트릭 재생 스트림에 대해서, 결집된 비트스트림은 시퀀스 헤더, I 프레임 및 각각의 가중 매트릭스를 이들이 원래의 MPEG 스트림에서 나타내어질 때 적절한 시간 또는 시퀀스 순서로 포함한다. 고속 되감기 트릭 재생 비트스트림 시퀀스에 대해서, 검증기/고정기(104)는 시퀀스 헤더/I 프레임 그룹화 또는 헤더/I 프레임 집합 순서를 반대로 하여 역 재생 시퀀스를 생성한다. 따라서, 검증기/고정기(104)는 또한 시퀀스 헤더/I 프레임 집합을 반대 순서로 재정렬하여 매트릭스가 각각의 I 프레임에 대응하는 것을 보장한다.For fast forward trick play streams, the aggregated bitstream includes a sequence header, an I frame and each weighting matrix in the appropriate time or sequence order when they are represented in the original MPEG stream. For fast rewind trick playback bitstream sequences, verifier / corrector 104 generates a reverse playback sequence by reversing the sequence header / I frame grouping or header / I frame aggregation order. Thus, the verifier / corrector 104 also rearranges the sequence header / I frame set in the reverse order to ensure that the matrix corresponds to each I frame.

따라서, 검증기/고정기(104)의 출력은 다수의 시퀀스 헤더와 I-프레임을 포함하는 결집된 비트스트림이다. 이와 같이 검증기/고정기(104)는 유효한 MPEG 인코드된 프레임인 비트스트림을 생성한다.Thus, the output of the validator / corrector 104 is an aggregated bitstream that includes a number of sequence headers and I-frames. As such, the verifier / corrector 104 generates a bitstream that is a valid MPEG encoded frame.

이렇게 출력된 결집 비트스트림은, 되도록 MPEG-2 디코더 블록(106)인 디코더 블록(106)으로 제공된다. MPEG-2 디코더 블록(106)은 결집된 비트스트림, 즉 각각의 I 프레임을 디코드하여 새로운 비디오 시퀀스를 생성한다. 새로운 비디오 시퀀스는 압축되지 않은 시퀀스이고 원래의 압축되지 않은 정규 재생 스트림의 매 X 화상에서 하나만 포함한다. 따라서, 만약 I 프레임에 포함된 원래의 정규 재생 비트스트림이 매 X 프레임마다 하나의 주파수에서 포함되어 있다면, 새로운 비디오 시퀀스는 원래의 압축되지 안은 정규 재생 스트림의 매 X 화상 또는 프레임의 하나만을 포함한다. 예를들면, 만약 필터의 입력에서 수신되는 원래의 MPEG-2 압축된 비트스트림이 매 7 프레임마다 I 프레임을 포함한다면, MPEG-2 디코더 블록(106)은 압축되지 않은 비디오 데이터를 포함하며, 원래의 압축되지 않은 비트스트림의 매 7 프레임의 하나만 포함하는 비트스트림을 생성한다.The aggregated bitstream thus output is provided to a decoder block 106, which is an MPEG-2 decoder block 106, as much as possible. The MPEG-2 decoder block 106 decodes the aggregated bitstream, i.e. each I frame, to generate a new video sequence. The new video sequence is an uncompressed sequence and contains only one in every X picture of the original uncompressed normal playback stream. Thus, if the original normal play bitstream included in an I frame is included at one frequency every X frame, the new video sequence contains only one of every X picture or frame of the original uncompressed normal play stream. . For example, if the original MPEG-2 compressed bitstream received at the input of the filter contains I frames every 7 frames, MPEG-2 decoder block 106 contains uncompressed video data and Create a bitstream that contains only one of every seven frames of the uncompressed bitstream of.

이렇게 출력된 화상 스트림은 그 다음 인코더 블록(108)으로 제공되는데, 여기서 상기 스트림은 트릭 재생 스트림에 요구되는 각각의 MPEG 파리미터와 함께 재인코드된다. 이들 MPEG 파라미터는 비트 율, 화상 크기 및 다른 것들을 포함한다. 양호한 실시예에 있어서, 인코더 블록(108)은 감소된 데이터 기억 장치 및 전송 대역폭을 위해 상기 스트림을 정규 재생 스트림보다 더 작은 화상 크기와 더 낮은 데이터 율과 함께 인코드한다.This output picture stream is then provided to an encoder block 108, where the stream is re-encoded with each MPEG parameter required for the trick play stream. These MPEG parameters include bit rate, picture size and others. In the preferred embodiment, the encoder block 108 encodes the stream with smaller picture size and lower data rate than the normal playback stream for reduced data storage and transmission bandwidth.

MPEG-2 인코드(108)는 유효한 MPEG 인코드된 스트림인 트릭 재생 스트림을 생성하지만, 원래의 스트림의 매 X 프레임의 하나만 포함한다. 따라서 인코더(108)로부터 출력되는 트릭 재생 스트림은 I 프레임, P 프레임 및 B 프레임을 포함한다. 이러한 새로운 MPEG 인코드된 트릭 재생 시스템이 그 다음 사용자에게 전송되고 MPEG 디코더에 의해 디코드될 때,결과적으로 발생하는 비트스트림은 원래의 압축되지 않은 정규 재생 비트스트림의 매 X 프레임의 하나만 포함하는 스트림을 포함한다.MPEG-2 encode 108 generates a trick play stream that is a valid MPEG encoded stream, but includes only one of every X frames of the original stream. Therefore, the trick play stream output from the encoder 108 includes I frames, P frames, and B frames. When this new MPEG encoded trick playback system is then sent to the user and decoded by the MPEG decoder, the resulting bitstream contains a stream containing only one X frame of every original uncompressed regular playback bitstream. Include.

도 3 - 필터 순서도Figure 3-Filter Flowchart

도 3을 참조하면, 일 실시예에 따른 필터(102)의 동작을 도시하는 순서도가 도시된다. 단계(202)에서, 필터(102)는 MPEG 데이터의 블록을 검사한다. 여기서 MPEG 데이터의 블록이 시퀀스 헤더 또는 화상 헤더인 것으로 가정된다. 만약 검사되고 있는 MPEG 데이터가 시퀀스 헤더라면, 단계(212)에서, 필터(102)는 시퀀스 헤더를 저장한다. 필터(102)는 그 다음 단계(202)로 복귀하고 MPEG 데이터의 다음 블록에 대한 검사를 시작한다.Referring to FIG. 3, a flow chart showing the operation of filter 102 according to one embodiment is shown. In step 202, filter 102 examines a block of MPEG data. It is assumed here that the block of MPEG data is a sequence header or a picture header. If the MPEG data being examined is a sequence header, then at step 212, filter 102 stores the sequence header. The filter 102 then returns to step 202 and begins checking for the next block of MPEG data.

만약 단계(202)에서 검사되고 있는 프레임 또는 데이터가 화상 헤더 또는 화상이라면, 그 다음 단계(214)에서 필터(102)는 화상 헤더와 상기 화상 헤더에 대응하는 후속 프레임을 검사한다. 만약 검사되고 있는 프레임 또는 데이터가 I 프레임이라면, 단계(222)에서 필터(102)는 화상 헤더와 I 프레임을 저장한다. 또한, 필터(102)는 저장되어 있는 I 프레임에 대응하는 화상 헤더 또는 각각의 시퀀스 헤더를 나타내는 대응 데이터(correspondence data)를 단계(224)에서 저장한다.I 프레임과 대응 데이터를 저장한 후, 필터(102)는 단계(202)로 복귀하여 MPEG 데이터의 다음 블록을 검사한다.If the frame or data being examined in step 202 is a picture header or picture, then in step 214 the filter 102 examines the picture header and subsequent frames corresponding to the picture header. If the frame or data being examined is an I frame, then in step 222 the filter 102 stores the picture header and the I frame. In addition, the filter 102 stores, in step 224, corresponding data representing image headers or respective sequence headers corresponding to the stored I frames. After storing the I frames and the corresponding data, the filter 102 returns to step 202 to check the next block of MPEG data.

만약 검사되고 있는 프레임이 P 또는 B 프레임이라면, 단계(232)에서 필터(102)는 각각의 P 또는 B 프레임이 가중 매트릭스를 포함하고 있는 지를 검사한다. 만약 포함하고 있지 않다면, P 또는 B 프레임 데이터는 저장되지 않고, 필터(102)는 단계(202)로 복귀하여 MPEG 데이터의 다음 블록을 검사한다. 만약 검사되고 있는 P 또는 B 프레임이 가중 매트릭스를 포함한다면, 단계(234)에서 필터(102)는 가중 매트릭스를 저장한다. 단계(236)에서 필터(102)는 가중 매트릭스를 각각의 I 프레임, 즉 후속하는 I 프레임과 관련시킨다. 단계(236)에서 필터(102)는 되도록 또한 가중 매트릭스에 대응하는 각각의 I 프레임을 나타내는 대응 데이터를 저장한다. 필터(102)가 가중 매트릭스와 대응 데이터를 저장한 후, 필터(102)는 단계(202)로 복귀하여 MPEG 데이터의 다음 블록을 검사한다.If the frame being examined is a P or B frame, then at step 232 the filter 102 checks whether each P or B frame contains a weighting matrix. If not, no P or B frame data is stored, and the filter 102 returns to step 202 to examine the next block of MPEG data. If the P or B frame being examined includes a weight matrix, then at step 234 the filter 102 stores the weight matrix. In step 236, filter 102 associates the weighting matrix with each I frame, i. In step 236 the filter 102 preferably stores corresponding data representing each I frame corresponding to the weighted matrix. After filter 102 has stored the weighting matrix and corresponding data, filter 102 returns to step 202 to examine the next block of MPEG data.

따라서, 필터(102)는 MPEG 스트림의 모든 헤더와 프레임을 검사한다. 이것은 가중 매트릭스가 MPEG 스트림의 임의의 헤더 또는 프레임에서 발생할 수 있기 때문에 필요하다. 필터(102)는 시퀀스 헤더와 I 프레임 및, P 또는 B 프레임과 같이, MPEG 스트림의 임의의 위치에 위치될 수 있는 가중 매트릭스만을 포함한다. 필터(102)는 P 프레임 또는 B 프레임 데이터를 포함하지 않는다. 필터(102)는 또한 시퀀스 헤더와 가중 매트릭스를 각각의 대응하는 I 프레임과 관련시킨다.Thus, filter 102 examines all headers and frames of the MPEG stream. This is necessary because weighting matrices can occur in any header or frame of the MPEG stream. Filter 102 includes only a sequence header and a weighting matrix that can be located anywhere in the MPEG stream, such as I frames and P or B frames. The filter 102 does not include P frame or B frame data. Filter 102 also associates a sequence header and weighting matrix with each corresponding I frame.

따라서, 만약 매트릭스가 사이에 끼이는(intervening) P 또는 B 프레임의 하나에 포함되는 경우, 필터(102)는 트릭 재생마스터 시퀀스(trick playmaster sequence)가 재구성될 때 사용하기 위해 이 매트릭스를 파일에 저장한다. 하기에 더 자세히 논의되겠지만, 트릭 재생 스트림의 구성동안, 본 발명은 더미 시퀀스 헤더를 생성하거나 또는 그렇지 않으면 새로운 매트릭스를 결집된 비트스트림에 삽입한다.Thus, if the matrix is included in one of the intervening P or B frames, the filter 102 stores the matrix in a file for use when the trick playmaster sequence is reconstructed. do. As will be discussed in more detail below, during construction of the trick play stream, the present invention generates a dummy sequence header or otherwise inserts a new matrix into the aggregated bitstream.

시퀀스 헤더 또는 프레임이 검사된 후, 필터(102)는 MPEG 데이터의 다음 블록을 검사하고, 이 동작은 반복된다. 또한 필터(102)는 MPEG 시퀀스의 모든 헤더와 프레임을 검사하여, 시퀀스 헤더, I 프레임 및 가중 매트릭스를 저장하고 P 및 B 프레임은 저장하지 않는다. 따라서 필터(102)는 시퀀스 헤더, 화상 헤더, I 프레임 및 가중 매트릭스만을 포함하는 MPEG 데이터 스트림의 일부를 저장한다.After the sequence header or frame is checked, filter 102 checks the next block of MPEG data, and this operation is repeated. The filter 102 also examines all headers and frames of the MPEG sequence, storing the sequence headers, I frames, and weighting matrices, but not P and B frames. Thus, filter 102 stores a portion of an MPEG data stream that includes only a sequence header, picture header, I frames, and weighted matrices.

일 실시예에 있어서, 필터(102)의 결과는 연결되어 트릭 재생 비트스트림을 생성한다. 그러나, 만약 필터(102)의 결과가 단순히 연결되면, 상기 비트스트림은 유효한 MPEG 비트스트림이 될 수 없음을 주지해야 한다. 양호한 실시예에 있어서, 본 발명은 MPEG 압축된 비트스트림을 생성하는데, 그 이유는 결과적으로 발생하는 트릭 재생 비트스트림이 표준 MPEG 디코더를 통해 전달될 수 있어야 하기 때문이다.In one embodiment, the results of filter 102 are concatenated to produce a trick play bitstream. However, it should be noted that if the result of filter 102 is simply concatenated, the bitstream cannot be a valid MPEG bitstream. In a preferred embodiment, the present invention produces an MPEG compressed bitstream, since the resulting trick playback bitstream must be able to be delivered through a standard MPEG decoder.

도 4 - 검증기/고정기 순서도Figure 4-Verifier / Stator Flowchart

도 4를 참조하면, 트릭 재생 스트림을 결집하는 검증기/고정기(104)의 동작을 나타내는 순서도가 도시된다. 단계(302)에서 검증기/고정기(104)는 저장된 MPEG 데이터의 블록, 즉 필터(102)에 의해 저장된 MPEG 데이터의 블록을 검사한다. 여기서 MPEG 데이터의 블록은 시퀀스 헤더, 화상 헤더, I 프레임, 또는 가중 매트릭스 중 하나임을 주지해야 한다. 만약 단계(302)에서 검증기/고정기(104)에 의해 검사되고 있는 MPEG 데이터가 시퀀스 헤더, 화상 헤더, 또는 I 프레임이라면, 단계(304)에서 검증기/고정기(104)는 필터(102)에 의해 생성된 대응 데이터를 검사하여 화상 헤더 또는 시퀀스 헤더를 적절한 I 프레임과 관련시킨다. 단계(306)에서 검증기/고정기(104)는 I 프레임과 그들 각각의 화상 헤더 및/또는 시퀀스 헤더를 그룹화하거나 연결시키는데, 여기서 이들 그룹화는 헤더/I 프레임 집합으로 칭해진다. 단계(308)에서 검증기/고정기(104)는 새로운 헤더/I 프레임 집합을 새로운 비트스트림을 결집하기 위해 결집된 비트스트림으로 연결시킨다. 단계(308)가 수행된 후, 검증기/고정기(104)는 단계(302)로 복귀하여 MPEG 데이터의 저장된 다음 블록을 검사하고, 이 동작은 반복된다.Referring to FIG. 4, a flow diagram illustrating the operation of the verifier / stator 104 for aggregating trick play streams is shown. In step 302 the verifier / corrector 104 examines a block of stored MPEG data, i.e. a block of MPEG data stored by the filter 102. Note that the block of MPEG data is one of a sequence header, a picture header, an I frame, or a weighting matrix. If the MPEG data being examined by the verifier / corrector 104 in step 302 is a sequence header, picture header, or I frame, then in step 304 the verifier / corrector 104 is passed to the filter 102. Corresponding data generated by the program is examined to associate the picture header or sequence header with the appropriate I frame. In step 306 the verifier / stator 104 groups or links the I frames and their respective picture headers and / or sequence headers, where these groupings are referred to as header / I frame sets. In step 308 the verifier / corrector 104 concatenates the new header / I frame set into the aggregated bitstream to aggregate the new bitstream. After step 308 is performed, verifier / corrector 104 returns to step 302 to examine the next stored block of MPEG data, and the operation is repeated.

만약 시스템이 고속 감기 스트림을 생성하는 경우, 단계(308)에서 검증기/고정기(104)는, 헤더/I 프레임 집합으로 칭해지는, I 프레임과 그들 각각의 화상 헤더 및/또는 시퀀스 헤더의 그룹을 순 시간 순서(forward time order), 즉 원래의 스트림에서 나타나는 시간 순서로 연결시킨다. 만약 시스템이 고속 되감기 스트림을 생성하는 경우, 단계(308)에서 검증기/고정기(104)는 헤더/I 프레임 집합을 역 시간 순서로 연결시킨다. 따라서, 고속 되감기 시퀀스에 대해서, 각각의 I 프레임에 대응하는 화상 헤더와 시퀀스 헤더는 그들 각각의 I 프레임에 앞선 시간에 계속해서 연결된다. 그러나, 헤더/I 프레임 그룹화 또는 집합은 역 시간 순서로 연결된다.If the system generates a fast forward stream, the verifier / stator 104 in step 308 selects a group of I frames and their respective picture headers and / or sequence headers, referred to as a header / I frame set. Concatenate in forward time order, that is, in the time order that appears in the original stream. If the system generates a fast rewind stream, then at step 308 the verifier / stator 104 concatenates the header / I frame sets in reverse chronological order. Thus, for the fast rewind sequence, the picture header and the sequence header corresponding to each I frame continue to be concatenated in time preceding their respective I frames. However, header / I frame groupings or sets are concatenated in reverse chronological order.

만약 단계(302)에서 검증기/고정기(104)에 의해 검사되고 있는 MPEG 데이터가 가중 매트릭스라면, 단계(312)에서 검증기/고정기(104)는 되도록 가중 매트릭스를 포함하는 새로운 시퀀스 헤더를 생성한다. 검증기/고정기(104)기는 그 다음 단계(304)로 진행하는데 여기서 검증기/고정기(104)는 필터(102)에 의해 생성된 대응 데이터를 생성하고 단계(306)에서 새로운 시퀀스 헤더를 각각의 I 프레임과 함께 그룹화한다. 단계(306)에서 검증기/고정기(104)는 새롭게 생성된 시퀀스 헤더를 대응하는 I 프레임 이전에 위치시킨다. 단계(308)에서 검증기/고정기(104)는 새로운 시퀀스 헤더/I 프레임 집합을 새로운 비트스트림을 결집시키기 위해 결집되는 비트스트림으로 연결한다.If the MPEG data being examined by the verifier / stator 104 in step 302 is a weighted matrix, then in step 312 the verifier / stator 104 generates a new sequence header that includes the weighted matrix. . The verifier / stator 104 then proceeds to step 304 where the verifier / stator 104 generates the corresponding data generated by the filter 102 and in step 306 generates a new sequence header for each. Group with I frames. In step 306 the verifier / stator 104 positions the newly generated sequence header before the corresponding I frame. In step 308 the verifier / corrector 104 concatenates the new sequence header / I frame set into the aggregated bitstream to aggregate the new bitstream.

I 프레임이 가중 매트릭스를 포함하지 않는 경우, 검증기/고정기(104)는 이전의 I 프레임으로부터의 가중 매트릭스나 또는 디폴트 값(default value)을 사용한다. 양호한 실시예에 있어서, 사용되는 디폴트 매트릭스는 스트림이 매트릭스를 명확하게 포함하고 있지 않다는 사실에 의해 암시적(implicitly)으로 결정되며, 이 동작은 MPEG 표준의 일부이다.If the I frame does not include a weight matrix, the verifier / stator 104 uses a weight matrix or a default value from the previous I frame. In the preferred embodiment, the default matrix used is implicitly determined by the fact that the stream does not explicitly contain a matrix, and this operation is part of the MPEG standard.

다른 실시예Another embodiment

본 발명의 제 1의 다른 실시예에 있어서, 고속 감기 트릭 재생 스트림에 대해서, 트릭 재생 생성 시스템은 고속 감기 트릭 재생 스트림에 P 프레임과 I 프레임을 포함한다. 이 실시예는 되도록 2배속, 3배속, 또는 4 배속 고속 감기 트릭 재생 스트림에 대해 사용되며, 바람직하게는 3배속 고속 감기 스트림에 대해 사용된다. 이 실시예에 있어서, 상기 시스템은 B 프레임의 인터프레임 매트릭스에 대해 MPEG 스트림을 검사하고 이들 인터프레임 매트릭슬 후속하는 P 프레임으로 이동한다. 이 실시예는 원래의 MPEG 스트림의 P 프레임이 이전의 P 프레임에 대한 변화만을 포함하고 있기 때문에 빠른 트릭 재생 스트림에 대해서만 가능함을 주지해야 한다.In a first alternative embodiment of the invention, for a fast forward trick play stream, the trick play generation system includes P frames and I frames in the fast forward trick play stream. This embodiment is used for a 2x, 3x, or 4x fast forward trick replay stream, preferably for 3x fast forward streams. In this embodiment, the system examines the MPEG stream against the interframe matrix of B frames and moves to these interframe metrics following the P frame. Note that this embodiment is only possible for fast trick playback streams because the P frames of the original MPEG stream contain only changes to the previous P frames.

도 5를 참조하면, 또 다른 실시예에 따른 본 발명의 동작을 도시하는 블록도가 도시된다. 도시된 바와 같이, 본 발명의 이 실시예는 MPEG-2 디코드 동작(502), 추출 동작(extraction operation; 504), 및 MPEG-2 인코드 동작(506)을 포함한다. 이들 동작의 각각은 필요에 따라 하드웨어 또는 소프트웨어적으로 수행될 것이다.5, a block diagram illustrating the operation of the present invention in accordance with another embodiment is shown. As shown, this embodiment of the present invention includes an MPEG-2 decode operation 502, an extraction operation 504, and an MPEG-2 encode operation 506. Each of these operations will be performed in hardware or software as needed.

도시된 바와 같이, 본 발명의 시스템은 정규 비트스트림, 바람직하게는 MPEG 압축된 정규 재생 비트스트림을 수신한다. 이 압축된 정규 재생 비트스트림은 디코더 블록(502), 바람직하게는 MPEG-2 디코더 블록(502)으로 제공된다. MPEG-2 디코더 블록(502)은 각각의 프레임을 디코드하여 원래의 압축되지 않은 비디오 시퀀스를 생성한다. 그 다음 원래의 압축되지 않은 비디오 시퀀스는 비디오 시퀀스의 매 X 프레임의 하나를 추출하는 추출 블록(504)으로 제공된다. 상기 추출 블록(504)은 이들 추출된 프레임을 순 시간 순서 또는 역 시간 순서로 또한 연결한다. 이들 연결된 프레임은 원래의 압축되지 않은 정규 재생 스트림의 매 X 화상 중 하나만을 포함하는 비트스트림을 포함한다. 따라서, 만약 I 프레임이 원래의 정규 재생 비트스트림의 매 X 프레임마다 하나의 주파수에서 포함되어 있다면, 새로운 비디오 시퀀스는 원래의 압축되지 않은 정규 재생 비트스트림의 매 X 화상 또는 프레임의 하나만을 포함한다.As shown, the system of the present invention receives a normal bitstream, preferably an MPEG compressed normal playback bitstream. This compressed normal playback bitstream is provided to a decoder block 502, preferably an MPEG-2 decoder block 502. The MPEG-2 decoder block 502 decodes each frame to produce the original uncompressed video sequence. The original uncompressed video sequence is then provided to extraction block 504 which extracts one of every X frames of the video sequence. The extraction block 504 also concatenates these extracted frames in chronological or inverse chronological order. These concatenated frames comprise a bitstream that contains only one of every X pictures of the original uncompressed normal playback stream. Thus, if an I frame is included at one frequency for every X frames of the original normal playback bitstream, the new video sequence includes only one of every X picture or frame of the original uncompressed normal playback bitstream.

이렇게 출력된 화상 스트림은 그 다음 인코더 블록(506)으로 제공되는데, 여기서 상기 스트림을 트릭 재생 스트림에 필요한 각각의 MPEG 파라미터와 함께 재인코드된다. 이들 MPEG 파라미터는 비트 율, 화상 크기 및 다른 것을 포함한다. MPEG-2 인코더(506)는 유효한 MPEG 인코드된 스트림이지만 매 X 프레임의 하나만을 포함하는 트릭 재생 스트림을 생성한다. 이 새로운 MPEG 인코드된 트릭 재생 스트림이 사용자에게 전송되고 MPEG 디코더에 의해 디코드될 때, 결과적으로 발생하는 비트스트림은 원래의 압축되지 않은 정규 재생 비트스트림의 매 X프레임의 하나만을 포함하는 스트림을 포함한다.The picture stream thus output is then provided to an encoder block 506, where it is re-encoded with the respective MPEG parameters required for the trick play stream. These MPEG parameters include bit rate, picture size and others. The MPEG-2 encoder 506 generates a trick play stream that is a valid MPEG encoded stream but contains only one of every X frames. When this new MPEG encoded trick playback stream is sent to the user and decoded by the MPEG decoder, the resulting bitstream contains a stream that contains only one X frame of the original uncompressed normal playback bitstream. do.

역 트릭 재생 생성-다른 실시예Reverse trick play generation-another embodiment

도 6을 참조하면, 본 발명에 따른 역 트릭 재생 스트림을 생성하기 위한 다른 양호한 실시예가 도시된다. 도 6은 편의상 도 6A, 도 6B, 및 도 6C의 세 부분으로 도시된다. 도 6의 실시예에서, 역 트릭 재생 스트림은 끝에서 처음으로 비디오 스트림을 주사함으로써 생성된다. 이 실시예는 또한 MPEG 데이터의 그룹화 또는 집합을 일시적으로 저장하는 메모리 스택을 또한 사용하여 이들이 적절한 순서로 역 재생 트릭 스트림으로 저장되도록 한다.6, another preferred embodiment for generating a reverse trick play stream in accordance with the present invention is shown. FIG. 6 is shown in three parts of FIGS. 6A, 6B, and 6C for convenience. In the embodiment of Figure 6, the reverse trick play stream is created by scanning the video stream for the first time at the end. This embodiment also uses memory stacks that temporarily store groupings or sets of MPEG data so that they are stored in reverse playback trick streams in the proper order.

도 6에 도시된 바와 같이, 단계(602)에서 스택이 지워지는 초기화 상태가 수행된다. 단계(604)에서 비디오 시퀀스의 제 1의 화상 시작 코드에 대한 검색이 수행된다. 단계(604)에서 검색은 비디오 스트림의 끝에서 시작으로 수행된다. 끝에서부터 처음으로의 검색에서 제 1의 화상의 시작 코드가 발견되면, 단계(606)에서 상기 스택으로 표식(marker)을 푸시한다. 하기에 논의되겠지만, 이 표식은 비디오 스트림의 상이한 블록 또는 부분을 식별하기 위해 사용된다. 단계(606) 이후에, 검색 상태가 시작된다.As shown in FIG. 6, an initialization state is performed in step 602 where the stack is cleared. In step 604 a search is performed for the first picture start code of the video sequence. In step 604 the search is performed beginning at the end of the video stream. If the start code of the first picture is found in the search from the end to the beginning, then a marker is pushed onto the stack in step 606. As will be discussed below, this marker is used to identify different blocks or portions of the video stream. After step 606, the search state begins.

단계(612)에서 본 방법은 비디오 스트림에서 시작 코드를 검색한다. 단계(614)에서 본 방법은 단계(612)에서의 시작 코드에 대한 검색동안 파일 조건(file condition)의 끝이 발견되는지를 판정한다. 만약 발견된다면, 단계(616)에서 출력 스트림은 폐쇄되고, 프로그램은 빠져 나오며 동작은 종료한다. 만약 파일 조건의 끝이 단계(614)에서 발견되지 않으면, 단계(620)에서 본 방법은 비디오 스트림의 시작 코드를 추측적으로(presumably) 찾아낸다.In step 612, the method retrieves a start code from the video stream. In step 614, the method determines if the end of the file condition is found during the search for start code in step 612. If found, in step 616 the output stream is closed, the program exits and the operation ends. If the end of the file condition is not found in step 614, the method in step 620 presumably finds the start code of the video stream.

발견된 시작 코드는 사용자 데이터 블록의 시작, 확장 블록의 시작, B 또는 P 프레임 화상 헤더 블록의 시작, 또는 I 프레임 화상 헤더의 시작을 포함함을 알 수 있을 것이다. 도 6에 도시된 바와 같이, 단계(620)에서 어떤 형태의 시작 코드가 발견되는지에 따라 상이한 동작이 수행된다. 도 6의 원형 블록은 표제(heading)를 포함하며 기능적인 단계는 아님을 주지하라.It will be appreciated that the found start code includes the beginning of a user data block, the beginning of an extension block, the beginning of a B or P frame picture header block, or the beginning of an I frame picture header. As shown in FIG. 6, different operations are performed in step 620 depending on what type of start code is found. Note that the circular block in FIG. 6 includes headings and is not a functional step.

만약 단계(620)에서 발견된 시작 코드가 사용자 데이터 블록의 시작이라면, 단계(622)에서 본 방법은 사용자 데이터 블록의 내용을 필요하다면 조정한다. 사용자 데이터 블록의 내용은 상기 상술된 트랙 재생 스트림을 준비하는데 필요한 가능한 새로운 파라미터에 따르도록 조정된다. 상기 내용이 단계(622)에서 조정된 후, 단계(624)에서 본 방법은 사용자 데이터 블록의 좌표를 스택에 푸시한다. 그 다음, 동작은 새로운 시작 코드에 대한 검색이 상기 상술된 바와 같이 수행되는 단계(612)로 복귀한다.If the start code found in step 620 is the beginning of the user data block, the method in step 622 adjusts the contents of the user data block if necessary. The content of the user data block is adjusted to comply with the possible new parameters required for preparing the track playback stream described above. After the content has been adjusted in step 622, the method in step 624 pushes the coordinates of the user data block onto the stack. The operation then returns to step 612 where a search for a new start code is performed as described above.

만약 단계(620)에서 발견된 시작 코드가 B 또는 P 프레임 화상 헤더 블록의 시작이라면, 단계(642)에서 본 방법은 표식이 검출될 때까지 모든 좌표를 스택에서 팝(pop)한다. 다시 말하면, 만약 B 또는 P 프레임 화상 헤더 블록의 시작이 검출되면, 표식 위쪽의 스택의 모든 좌표는 단계(642)에서 스택으로부터 제거 또는 팝된다. 그 다음, 단계(644)에서 표식은 다시 푸시되거나 또는 스택으로 다시 되돌려진다. 그 다음, 동작은 상기 상술된 바와 같이 새로운 시작 코드에 대한 검색이 수행되는 단계(612)로 복귀한다.If the start code found in step 620 is the beginning of a B or P frame picture header block, the method in step 642 pops all coordinates on the stack until an indication is detected. In other words, if the start of a B or P frame picture header block is detected, all coordinates of the stack above the marker are removed or popped from the stack in step 642. The marker is then pushed back to the stack or back to step 644. The operation then returns to step 612 where a search for a new start code is performed as described above.

만약 단계(620)에서 발견된 시작 코드가 I 프레임 화상 헤더라면, 단계(652)에서 본 방법은 I 프레임 화상 헤더 정보를 필요하다면 조정한다. I 프레임 화상 헤더 정보는, 상기 상술된 바와 같이, 트랙 재생 스트림을 준비하는데 사용되는 가능한 새로운 파라미터를 따르도록 조정된다. I 프레임화상 헤더를 조정한 후, 단계(654)에서 본 방법은 I 프레임 화상 헤더 블록의 좌표를 스택으로 푸시한다. 단계(656)에서 본 방법은 표식이 검출될 때까지 스택에 푸시된 좌표를 팝 또는 제거한다. 단계(658)에서 본 방법은 각각의 좌표 세트가 팝될 때 대응하는 비디오 스트림의 데이터를 출력되는 역 트릭 재생 스트림에 기록한다. 여기서 단계(656)에서 좌표가 스택으로부터 팝될 때, 상기 단계(656 및 658)는 순차적으로 또는 동시에 수행되며, 스택으로부터 좌표가 팝될 때 대응하는 비디오 스트림으로부터의 데이터는 출력되는 역 재생 스트림으로 기록됨을 주지하라.If the start code found in step 620 is an I frame picture header, the method in step 652 adjusts the I frame picture header information if necessary. The I frame picture header information is adjusted to follow the possible new parameters used to prepare the track playback stream, as described above. After adjusting the I frame picture header, the method in step 654 pushes the coordinates of the I frame picture header block onto the stack. In step 656, the method pops or removes the coordinates pushed onto the stack until the marker is detected. In step 658, the method writes the data of the corresponding video stream to the output reverse trick playback stream as each set of coordinates is popped. Here, when the coordinates are popped from the stack in step 656, the steps 656 and 658 are performed sequentially or simultaneously, and when the coordinates are popped from the stack, data from the corresponding video stream is written to the outputted reverse playback stream. Please note.

단계(656)에서, 스택으로부터 모든 좌표가 팝되고, 단계(658)에서, 출력되는 역 트릭 재생 스트림으로 기록된 후, 단계(660)에서 본 방법은 표식을 다시 스택으로 푸시한다. 단계(662)에서 본 방법은 제 1의 시퀀스 헤더 시작 코드를 검색한다. 이 제 1의 시퀀스 헤더 시작 코드가 발견되면, 본 방법은 단계(612)로 복귀하여 다음 번 시작 코드를 검색하고, 이 동작은 상기 상술된 바와 같이 반복된다.In step 656, all the coordinates are popped from the stack, and in step 658, recorded as an output trick trick stream, the method in step 660 pushes the marker back onto the stack. In step 662, the method retrieves a first sequence header start code. If this first sequence header start code is found, the method returns to step 612 to retrieve the next start code, which operation is repeated as described above.

따라서, 본 발명은 압축된 정규 재생 비디오 스트림으로부터 트릭 재생 비디오 스트림을 생성하기 위한 시스템과 방법을 포함한다. 본 발명은 MPEG 시퀀스의 각 헤더 또는 프레임을 검사하고 상기 시퀀스 헤더, I 프레임 및 관련된 가중 매트릭스를 저장한다. 그 다음, 상기 시스템은 이들 저장된 내용을 포함하는 새로운 고속 감기 또는 고속 되감기 비트스트림을 지능적으로 결집한다. 새롭게 결집된 비트스트림은 그 다음 디코드되어 다수의 압축되지 않은 프레임을 생성한다. 이들 압축되지 않은 프레임은 그 다음 MPEG 표준에 따라 재인코드되어 트릭 재생 고속 감기 또는 고속 되감기 스트림인 새로운 MPEG 스트림을 생성한다.Accordingly, the present invention includes a system and method for generating a trick play video stream from a compressed normal play video stream. The present invention examines each header or frame of an MPEG sequence and stores the sequence header, I frame and associated weight matrix. The system then intelligently aggregates new fast forward or fast rewind bitstreams containing these stored contents. The newly aggregated bitstream is then decoded to produce a number of uncompressed frames. These uncompressed frames are then re-encoded according to the MPEG standard to create a new MPEG stream, which is a trick playback fast forward or fast rewind stream.

본 발명의 시스템과 방법이 상술된 실시예와 연계해서 설명되었지만, 이것은 본원에서 상술된 특정 형태에 제한하려는 것이 아니고, 첨부된 청구의 범위에 의해 정의되는 본 발명의 취지와 영역 내에 이성적으로 포함될 수 있는 수정예, 변형예 등을 포괄하려는 것이다.Although the systems and methods of the present invention have been described in connection with the above-described embodiments, they are not intended to be limited to the specific forms set forth herein, but may be rationally included within the spirit and scope of the invention as defined by the appended claims. Intended to encompass modifications, variations, and the like.

Claims (28)

압축된 정규 재생 비트스트림으로부터 트릭 재생 스트림을 생성하기 위한 컴퓨터 구현 방법에 있어서,A computer implemented method for generating a trick play stream from a compressed normal play bitstream, 다수의 인트라코딩된 프레임(intracoded frames)과 다수의 인터코딩된 프레임(intercoded frames)을 포함하는 압축된 정규 재생 비트스트림을 수신하는 단계와;Receiving a compressed normal playback bitstream comprising a plurality of intracoded frames and a plurality of intercoded frames; 상기 압축된 정규 재생 비트스트림으로부터 상기 인트라코딩된 프레임을 추출하는 단계로서, 상기 인트라코딩된 프레임을 기억 메모리에 저장하는 단계를 포함하는 상기 추출 단계와;Extracting the intracoded frame from the compressed normal playback bitstream, the extracting step comprising storing the intracoded frame in a memory; 상기 추출 단계 이후에 결집된 비트스트림을 형성하도록 상기 인트라코딩된 프레임을 결집하는 단계와;Aggregating the intracoded frames to form an aggregated bitstream after the extraction step; 다수의 압축되지 않은 프레임을 생성하기 위해 상기 결집된 비트스트림을 디코딩하는 단계; 및Decoding the aggregated bitstream to produce a plurality of uncompressed frames; And 상기 디코딩 단계 이후에 상기 정규 재생 비트스트림의 프레임의 일부만을 포함하는 압축된 트릭 재생 비트스트림을 생성하도록 상기 다수의 압축되지 않은 프레임을 인코딩하는 단계를 포함하는 컴퓨터 구현 방법.Encoding the plurality of uncompressed frames to produce a compressed trick playback bitstream that includes only a portion of the frames of the normal playback bitstream after the decoding step. 제 1항에 있어서,The method of claim 1, 상기 압축된 정규 재생 비트스트림은 특정 주파수에서 다수의 인트라코딩된 프레임을 포함하고,The compressed normal playback bitstream includes a plurality of intracoded frames at a specific frequency, 상기 추출 단계는 상기 특정 주파수에서 상기 인트라코딩된 프레임에 대응하는 데이터 비트를 추출하는 단계를 포함하는 컴퓨터 구현 방법.And said extracting step comprises extracting data bits corresponding to said intracoded frame at said particular frequency. 제 1항에 있어서,The method of claim 1, 상기 압축된 정규 재생 비트스트림은 적어도 상기 다수의 인트라코딩된 프레임에 대한 정보를 포함하는 다수의 시퀀스 헤더를 포함하고,The compressed normal playback bitstream includes a plurality of sequence headers including information about at least the plurality of intracoded frames, 상기 추출 단계는 상기 압축된 정규 재생 비트스트림으로부터 상기 시퀀스 헤더를 추출하는 단계와, 상기 시퀀스 헤더를 기억 메모리에 저장시키는 단계를 포함하며,The extracting step includes extracting the sequence header from the compressed normal playback bitstream, and storing the sequence header in a storage memory, 상기 결집 단계는 상기 결집된 비트스트림을 형성하도록 상기 시퀀스 헤더와 상기 인트라코딩된 프레임을 결집하는 단계를 포함하는 컴퓨터 구현 방법.And said aggregating includes aggregating said sequence header and said intracoded frames to form said aggregated bitstream. 제 1항에 있어서,The method of claim 1, 상기 방법은 트릭 재생 고속 감기 비트스트림을 생성하고,The method generates trick-play fast forward bitstreams, 상기 결집 단계는 상기 인트라코딩된 프레임을 순 시간 순서(forward time order)로 결집하는 단계를 포함하는 컴퓨터 구현 방법.And said aggregating includes aggregating said intracoded frames in a forward time order. 제 1항에 있어서,The method of claim 1, 상기 방법은 트릭 재생 고속 되감기 비트스트림을 생성하고,The method generates trick play fast rewind bitstream, 상기 결집 단계는 상기 인트라코딩된 프레임을 역 시간 순서로 결집시키는 단계를 포함하는 컴퓨터 구현 방법.And said aggregating includes aggregating said intracoded frames in reverse chronological order. 제 1항에 있어서,The method of claim 1, 상기 압축된 정규 재생 비트스트림은 상기 인트라코딩된 프레임에 대응하는 다수의 매트릭스를 포함하고,The compressed normal playback bitstream includes a plurality of matrices corresponding to the intracoded frames, 상기 방법은, 상기 압축된 정규 재생 비트스트림에 상기 매트릭스를 위치시키는 단계를 더 포함하고,The method further comprising positioning the matrix in the compressed normal playback bitstream, 상기 결집된 비트스트림을 형성하도록 상기 인트라코딩된 프레임을 결집하는 단계는 상기 결집된 비트스트림에 상기 매트릭스를 포함시키는 단계를 포함하는 컴퓨터 구현 방법.Aggregating the intracoded frames to form the aggregated bitstream comprises including the matrix in the aggregated bitstream. 제 1항에 있어서,The method of claim 1, 상기 다수의 매트릭스 각각은 상기 인트라코딩된 프레임의 하나에 대응하고,Each of the plurality of matrices corresponds to one of the intracoded frames, 상기 결집 단계는 상기 매트릭스 각각을 상기 대응하는 인트라코딩된 프레임과 결집시키는 단계를 포함하는 컴퓨터 구현 방법.And said aggregating includes aggregating each of said matrices with said corresponding intracoded frame. 제 1항에 있어서,The method of claim 1, 상기 압축된 정규 재생 비트스트림은 MPEG 압축된 비트스트림이고,The compressed normal playback bitstream is an MPEG compressed bitstream, 상기 결집된 비트스트림을 디코딩하는 단계는 상기 다수의 압축되지 않은 프레임을 생성하도록 상기 결집된 비트스트림을 MPEG 디코딩하는 단계를 포함하며;Decoding the aggregated bitstream comprises MPEG decoding the aggregated bitstream to produce the plurality of uncompressed frames; 상기 다수의 압축되지 않은 프레임을 인코딩하는 단계는 MPEG 압축된 트릭 재생 비트스트림을 생성하도록 상기 다수의 압축되지 않은 프레임을 인코딩하는 단계를 포함하는 컴퓨터 구현 방법.And encoding the plurality of uncompressed frames comprises encoding the plurality of uncompressed frames to produce an MPEG compressed trick playback bitstream. 압축된 정규 재생 비트스트림으로부터 트릭 재생 스트림을 생성하기 위한 시스템에 있어서,A system for generating a trick play stream from a compressed normal play bitstream, 다수의 인트라코딩된 프레임과 다수의 인터코딩된 프레임을 포함하는 압축된 정규 재생 비트스트림을 저장하는 기억 매체와;A storage medium storing a compressed normal playback bitstream comprising a plurality of intracoded frames and a plurality of intercoded frames; 상기 압축된 정규 재생 비트스트림으로부터 상기 인트라코딩된 프레임을 추출하기 위한 필터와;A filter for extracting the intracoded frame from the compressed normal playback bitstream; 상기 추출된 인트라코딩된 프레임을 저장하기 위한 기억 메모리와;A storage memory for storing the extracted intracoded frames; 상기 저장된 인트라코딩된 프레임을 결집하여 결집된 비트스트림을 형성하기 위한 검증기/고정기와;A verifier / stator for aggregating the stored intracoded frames to form an aggregated bitstream; 상기 결집된 비트스트림을 디코드하여 다수의 압축되지 않은 프레임을 형성하는 디코더; 및A decoder to decode the aggregated bitstream to form a plurality of uncompressed frames; And 상기 다수의 압축되지 않은 프레임을 인코드하여 상기 정규 재생 비트스트림의 일부만을 포함하는 압축된 트릭 재생 비트스트림을 생성하는 인코더를 포함하는 트릭 재생 스트림 생성 시스템.And an encoder for encoding the plurality of uncompressed frames to produce a compressed trick playback bitstream that includes only a portion of the normal playback bitstream. 제 9항에 있어서,The method of claim 9, 상기 압축된 정규 재생 비트스트림은 특정 주파수에서 다수의 인트라코딩된 프레임을 포함하고,The compressed normal playback bitstream includes a plurality of intracoded frames at a specific frequency, 상기 필터는 상기 특정 주파수에서 상기 인트라코딩된 프레임에 대응하는 데이터 비트를 추출하는 트릭 재생 스트림 생성 시스템.And the filter extracts data bits corresponding to the intracoded frame at the specific frequency. 제 9항에 있어서,The method of claim 9, 상기 압축된 정규 재생 비트스트림은 적어도 상기 다수의 인트라코딩된 프레임에 대한 정보를 포함하는 다수의 시퀀스 헤더를 포함하고,The compressed normal playback bitstream includes a plurality of sequence headers including information about at least the plurality of intracoded frames, 상기 필터는 상기 압축된 정규 재생 비트스트림으로부터 상기 시퀀스 헤더를 추출하여, 상기 시퀀스 헤더를 상기 기억 메모리에 저장하며,The filter extracts the sequence header from the compressed normal playback bitstream, stores the sequence header in the storage memory, 상기 검증기/고정기는 상기 시퀀스 헤더와 상기 인트라코딩된 프레임을 결집하여 상기 결집된 비트스트림을 형성하는 트릭 재생 스트림 생성 시스템.And the verifier / stator aggregates the sequence header and the intracoded frame to form the aggregated bitstream. 제 9항에 있어서,The method of claim 9, 상기 시스템은 트릭 재생 고속 감기 비트스트림을 생성하고,The system generates trick-play fast forward bitstreams, 상기 검증기/고정기는 순 시간 순서로 상기 인트라코딩된 프레임을 결집하는 트릭 재생 스트림 생성 시스템.And the verifier / stator aggregates the intracoded frames in chronological order. 제 9항에 있어서,The method of claim 9, 상기 시스템은 트릭 재생 고속 되감기 비트스트림을 생성하고,The system generates a trick play fast rewind bitstream, 상기 검증기/고정기는 역 시간 순서로 상기 인트라코딩된 프레임을 결집하는 트릭 재생 스트림 생성 시스템.And the verifier / stator aggregates the intracoded frames in reverse chronological order. 제 9항에 있어서,The method of claim 9, 상기 압축된 정규 재생 비트스트림은 상기 인트라코딩된 프레임에 대응하는 다수의 매트릭스를 포함하고,The compressed normal playback bitstream includes a plurality of matrices corresponding to the intracoded frames, 상기 필터는 상기 매트릭스를 상기 압축된 정규 재생 비트스트림에 위치시키고 상기 매트릭스를 상기 기억 메모리에 저장하고,The filter locates the matrix in the compressed normal playback bitstream and stores the matrix in the storage memory, 상기 검증기/고정기는 상기 인트라코딩된 프레임과 상기 매트릭스를 결집하여 상기 결집된 비트스트림을 형성하는 트릭 재생 스트림 생성 시스템.And the verifier / stator aggregates the intracoded frame and the matrix to form the aggregated bitstream. 제 9항에 있어서,The method of claim 9, 상기 다수의 매트릭스 각각은 상기 인트라코딩된 프레임의 하나에 대응하며,Each of the plurality of matrices corresponds to one of the intracoded frames, 상기 검증기/고정기는 상기 매트릭스 각각을 대응하는 상기 인트라코딩된 프레임과 결집하는 트릭 재생 스트림 생성 시스템.And the verifier / stator aggregates each of the matrices with a corresponding intracoded frame. 제 1항에 있어서,The method of claim 1, 상기 압축된 정규 재생 비트스트림은 MPEG 압축된 비트스트림이고,The compressed normal playback bitstream is an MPEG compressed bitstream, 상기 디코더는 MPEG 디코더이며,The decoder is an MPEG decoder, 상기 인코더는 MPEG 인코더인 트릭 재생 스트림 생성 시스템.And the encoder is an MPEG encoder. MPEG 압축된 정규 재생 비트스트림으로부터 트릭 플레이 스트림을 생성하기 위한 방법에 있어서,A method for generating a trick play stream from an MPEG compressed normal playback bitstream, 다수의 인트라 프레임과, 다수의 예측 프레임, 및 다수의 양방향 예측 프레임을 포함하는 압축된 정규 재생 비트스트림을 수신하는 단계와;Receiving a compressed normal playback bitstream comprising a plurality of intra frames, a plurality of prediction frames, and a plurality of bidirectional prediction frames; 상기 압축된 정규 재생 비트스트림으로부터 상기 인트라 프레임을 추출하는 단계로서, 상기 인트라 프레임을 기억 메모리에 저장하는 단계를 포함하는 상기 추출 단계와;Extracting the intra frame from the compressed normal playback bitstream, the extracting step comprising storing the intra frame in a memory; 결집된 비트스트림을 형성하도록 상기 추출 단계 이후에 상기 인트라 프레임을 결집하는 단계와;Aggregating the intra frame after the extracting step to form an aggregated bitstream; 다수의 압축되지 않은 프레임을 생성하도록 상기 결집된 비트스트림을 디코딩하는 단계; 및Decoding the aggregated bitstream to produce a plurality of uncompressed frames; And 상기 디코딩 단계 이후에 상기 정규 재생 비트스트림의 프레임의 일부만을 포함하는 압축된 트릭 재생 비트스트림을 생성하도록 상기 다수의 압축되지 않은 프레임을 인코딩하는 단계를 포함하는 트릭 재생 비트스트림 생성 방법.Encoding the plurality of uncompressed frames to produce a compressed trick playback bitstream that includes only a portion of the frames of the normal playback bitstream after the decoding step. 압축된 정규 재생 비트스트림으로부터 트릭 재생 스트림을 생성하기 위한 컴퓨터 구현 방법에 있어서,A computer implemented method for generating a trick play stream from a compressed normal play bitstream, 다수의 인트라코딩된 프레임과 다수의 인터코딩된 프레임을 포함하는 압축된 정규 재생 비트스트림을 수신하는 단계와;Receiving a compressed normal playback bitstream comprising a plurality of intracoded frames and a plurality of intercoded frames; 상기 압축된 정규 재생 비트스트림으로부터 상기 인트라코딩된 프레임을 추출하는 단계로서, 상기 인트라코딩된 프레임을 기억 메모리에 저장하는 단계를 포함하는 상기 추출 단계와,Extracting the intracoded frame from the compressed normal playback bitstream, the extracting step comprising storing the intracoded frame in a memory; 상기 추출 단계 이후에 결집된 비트스트림을 형성하도록 상기 인트라코딩된 프레임을 결집하는 단계와;Aggregating the intracoded frames to form an aggregated bitstream after the extraction step; 상기 결집된 비트스트림을 저장하는 단계를 포함하는 트릭 재생 스트림 생성 컴퓨터 구현 방법.And storing the aggregated bitstream. 제 18항에 있어서,The method of claim 18, 상기 압축된 정규 재생 비트스트림은 적어도 상기 다수의 인트라코딩된 프레임에 대한 정보를 포함하는 다수의 시퀀스 헤더를 포함하고,The compressed normal playback bitstream includes a plurality of sequence headers including information about at least the plurality of intracoded frames, 상기 추출 단계는 상기 압축된 정규 재생 비트스트림으로부터 상기 시퀀스 헤더를 추출하는 단계와, 상기 시퀀스 헤더를 기억 메모리에 저장하는 단계를 포함하며,The extracting step includes extracting the sequence header from the compressed normal playback bitstream, and storing the sequence header in a storage memory, 상기 결집 단계는 상기 결집된 비트스트림을 형성하도록 상기 시퀀스 헤더와 상기 인트라코딩된 프레임을 결집하는 단계를 포함하는 트릭 재생 스트림 생성 컴퓨터 구현 방법.And said aggregating step includes aggregating said sequence header and said intracoded frames to form said aggregated bitstream. 제 18항에 있어서,The method of claim 18, 상기 방법은 트릭 재생 고속 감시 비트스트림을 생성하고,The method generates a trick play fast watch bitstream, 상기 결집 단계는 순 시간 순서로 상기 인트라코딩된 프레임을 결집하는 단계를 포함하는 트릭 재생 스트림 생성 컴퓨터 구현 방법.And said aggregating step includes aggregating said intracoded frames in chronological order. 제 18항에 있어서,The method of claim 18, 상기 방법은 트릭 재생 고속 되감기 비트스트림을 생성하고,The method generates trick play fast rewind bitstream, 상기 결집 단계는 역 시간 순서로 상기 인트라코딩된 프레임을 결집하는 단계를 포함하는 트릭 재생 스트림 생성 컴퓨터 구현 방법.And said aggregating step includes aggregating said intracoded frames in reverse chronological order. 제 18항에 있어서,The method of claim 18, 상기 압축된 정규 재생 비트스트림은 상기 인트라코딩된 프레임에 대응하는 다수의 매트릭스를 포함하고,The compressed normal playback bitstream includes a plurality of matrices corresponding to the intracoded frames, 상기 방법은 상기 매트릭스를 상기 압축된 정규 재생 비트스트림에 위치시키는 단계를 더 포함하고,The method further comprising positioning the matrix in the compressed normal playback bitstream, 상기 결집된 비트스트림을 형성하도록 상기 인트라코딩된 프레임을 결집하는 단계는 상기 매트릭스를 상기 결집된 비트스트림에 포함시키는 단계를 포함하는 트릭 재생 스트림 생성 컴퓨터 구현 방법.And aggregating the intracoded frames to form the aggregated bitstream comprises including the matrix in the aggregated bitstream. 제 18항에 있어서,The method of claim 18, 상기 다수의 매트릭스 각각은 상기 인트라코딩된 프레임의 하나에 대응하며,Each of the plurality of matrices corresponds to one of the intracoded frames, 상기 결집 단계는 상기 매트릭스 각각을 상기 대응하는 인트라코딩된 프레임의 하나와 결집시키는 단계를 포함하는 트릭 재생 스트림 생성 컴퓨터 구현 방법.And said aggregation step comprises assembling each of said matrices with one of said corresponding intracoded frames. 제 18항에 있어서,The method of claim 18, 상기 결집된 비트스트림을 저장하는 단계 이후에 다수의 압축되지 않은 프레임을 생성하도록 상기 결집된 비트스트림을 디코딩하는 단계와;Decoding the aggregated bitstream to produce a plurality of uncompressed frames after storing the aggregated bitstream; 상기 디코딩 이후에 상기 정규 재생 비트스트림의 일부만을 포함하는 압축된 트릭 재생 비트스트림을 생성하도록 상기 다수의 압축되지 않은 프레임을 인코딩하는 단계; 및Encoding the plurality of uncompressed frames to produce a compressed trick playback bitstream that includes only a portion of the normal playback bitstream after the decoding; And 상기 압축된 트릭 재생 비트스트림을 저장하는 단계를 더 포함하는 트릭 재생 스트림 생성 컴퓨터 구현 방법.And storing the compressed trick playback bitstream. 제 24항에 있어서,The method of claim 24, 상기 압축된 정규 재생 비트스트림은 MPEG 압축된 비트스트림이고,The compressed normal playback bitstream is an MPEG compressed bitstream, 상기 결집된 비트스트림을 디코딩하는 단계는 상기 다수의 압축되지 않은 프레임을 생성하도록 상기 결집된 비트스트림을 MPEG 디코딩하는 단계를 포함하며;Decoding the aggregated bitstream comprises MPEG decoding the aggregated bitstream to produce the plurality of uncompressed frames; 상기 다수의 압축되지 않은 프레임을 인코딩하는 단계는 MPEG 압축된 트릭 재생 비트스트림을 생성하도록 상기 다수의 압축되지 않은 프레임을 MPEG 인코딩하는 단계를 포함하는 트릭 재생 스트림 생성 컴퓨터 구현 방법.And encoding the plurality of uncompressed frames comprises MPEG encoding the plurality of uncompressed frames to produce an MPEG compressed trick play bitstream. 중앙 처리 유닛과 메모리를 포함하는 컴퓨터 시스템에서 동작시키기 위한 컴퓨터 판독 가능(computer-readable) 기억 매체로서, 데이터를 나타내는 물리적 구성을 구비하는 기판을 포함하는 컴퓨터 판독 가능 기억 매체에 있어서,A computer-readable storage medium for operating in a computer system comprising a central processing unit and a memory, comprising: a substrate having a physical configuration representing data, the computer-readable storage medium comprising: 압축된 정규 재생 비트스트림으로부터 인트라코딩된 프레임을 추출하기 위해 기억 매체 상에 포함된 추출 프로그램으로서, 상기 인트라코딩된 프레임을 기억 메모리에 저장하는 추출 프로그램과;An extraction program included on a storage medium for extracting an intracoded frame from a compressed normal playback bitstream, comprising: an extraction program for storing the intracoded frame in a storage memory; 상기 인트라코딩된 프레임을 결집하여 결집된 비트스트림을 형성하기 위한 결집 프로그램과;An aggregation program for aggregating the intra-coded frames to form an aggregated bitstream; 상기 결집된 비트스트림을 디코딩하여 다수의 압축되지 않은 프레임을 생성하기 위한 디코딩 프로그램; 및A decoding program for decoding the aggregated bitstream to produce a plurality of uncompressed frames; And 상기 디코딩 프로그램의 동작 이후에 상기 다수의 압축되지 않은 프레임을 인코딩하여 상기 정규 재생 비트스트림의 프레임의 일부만을 포함하는 압축된 트릭 재생 비트스트림을 생성하기 위한 인코딩 프로그램을 포함하는 컴퓨터 판독 가능 기억 매체.And an encoding program for encoding the plurality of uncompressed frames after operation of the decoding program to generate a compressed trick playback bitstream that includes only a portion of the frames of the normal playback bitstream. 제 26항에 있어서,The method of claim 26, 상기 압축된 정규 재생 비트스트림은 적어도 상기 다수의 인트라코딩된 프레임에 대한 정보를 포함하는 다수의 시퀀스 헤더를 포함하고,The compressed normal playback bitstream includes a plurality of sequence headers including information about at least the plurality of intracoded frames, 상기 추출 프로그램은 상기 압축된 정규 재생 비트스트림으로부터 상기 시퀀스 헤더를 추출하여, 상기 시퀀스 헤더를 기억 메모리에 저장하며,The extraction program extracts the sequence header from the compressed normal reproduction bitstream, and stores the sequence header in a storage memory, 상기 프로그램을 결집하는 단계는 상기 시퀀스 헤더와 상기 인트라코딩된 프레임을 결집하여 상기 결집된 비트스트림을 형성하는 컴퓨터 판독 가능 기억 매체.Aggregating the program to aggregate the sequence header and the intracoded frame to form the aggregated bitstream. 압축된 정규 재생 비디오 스트림으로부터 역 트릭 재생 스트림을 생성하기 위한 컴퓨터 구현 방법에 있어서,A computer-implemented method for generating an inverse trick play stream from a compressed normal play video stream. 비디오 데이터를 포함하는 압축된 정규 재생 비디오 스트림을 수신하는 단계와;Receiving a compressed normal playback video stream comprising video data; 메모리 스택 상에 표식(marker)을 저장하는 단계와;Storing a marker on the memory stack; 상기 압축된 정규 재생 비디오 스트림의 끝에서 처음으로의 검색을 포함하는, 비디오 스트림에서 시작 코드를 검색하는 단계와;Retrieving a start code in the video stream, the search comprising a search from the end of the compressed normal play video stream; 상기 검색에 응답하여 상기 비디오 스트림에서 시작 코드를 찾는 단계와;Finding a start code in the video stream in response to the search; 상기 찾기 단계에서 사용자 데이터 블록의 시작 코드를 찾은 경우, 사용자 데이터 블록의 좌표를 메모리 스택 상에 저장하는 단계와;If the start code of the user data block is found in the find step, storing the coordinates of the user data block on a memory stack; 상기 찾기 단계에서 확장 블록에 대한 시작 코드를 찾은 경우, 확장 블록의 좌표를 메모리 스택 상에 저장하는 단계와;Storing coordinates of the extension block on the memory stack when the start code for the extension block is found in the find step; 상기 찾기 단계에서 B 또는 P 프레임 화상 헤더 블록의 시작 코드를 찾은 경우, 상기 스택 상에 남아 있는 표식이 검출될 때까지 상기 메모리 스택으로부터 좌표를 팝하는(poping) 단계와;Popping coordinates from the memory stack until the marker remaining on the stack is detected when the start code of the B or P frame picture header block is found in the find step; 상기 찾기 단계에서 I 프레임 화상 헤더에 대한 시작 코드를 찾은 경우, I 프레임 화상 헤더 블록의 좌표를 상기 메모리 스택 상에 저장하는 단계와;Storing coordinates of an I frame picture header block on the memory stack when the start code for the I frame picture header is found in the searching step; 상기 찾기 단계에서 I 프레임 화상 헤더에 대한 시작 코드를 찾은 경우, 상기 I 프레임 화상 헤더 블록의 좌표를 메모리 스택 상에 저장하는 상기 단계 이후에 상기 표식이 검출될 때까지 현재의 메모리 스택 상의 좌표를 팝하는 단계와;If the start code for the I frame picture header is found in the finding step, after the step of storing the coordinates of the I frame picture header block on the memory stack, pop the coordinates on the current memory stack until the marker is detected. Making a step; 상기 찾기 단계에서 I 프레임 화상 헤더에 대한 시작 코드를 찾은 경우, 상기 팝에서 상기 좌표가 메모리 스택으로부터 팝될 때 메모리 스택으로부터 제거된 상기 좌표에 의해 나타내어지는 압축된 정규 재생 비디오 스트림으로부터의 데이터를 출력되는 역 트릭 재생 스트림으로 기록하는 단계와;If the start code for the I frame picture header is found in the finding step, data from the compressed normal playback video stream represented by the coordinates removed from the memory stack is output when the coordinates are popped from the memory stack in the pop. Recording into a reverse trick play stream; 상기 찾기 단계에서 I 프레임 화상 헤더에 대한 시작 코드를 찾은 경우, 제 1의 시퀀스 헤더 시작 코드를 검색하는 단계; 및Searching for a first sequence header start code when the start code for the I frame picture header is found in the searching step; And 상기 역 트릭 재생 스트림을 생성하기 위해 비디오 스트림에서 시작 코드에 대한 검색 단계와 그 후속 단계를 다수 반복하는 단계를 포함하는 역 트릭 재생 스트림을 생성하기 위한 컴퓨터 구현 방법.And repeating a plurality of retrieval steps and subsequent steps for a start code in a video stream to produce the reverse trick play stream.
KR10-1998-0708533A 1996-04-25 1997-04-25 Computer implementation method, trick play stream generation system KR100449200B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-1998-0708533A KR100449200B1 (en) 1996-04-25 1997-04-25 Computer implementation method, trick play stream generation system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/639,284 1996-04-25
KR10-1998-0708533A KR100449200B1 (en) 1996-04-25 1997-04-25 Computer implementation method, trick play stream generation system

Publications (2)

Publication Number Publication Date
KR20000010629A true KR20000010629A (en) 2000-02-25
KR100449200B1 KR100449200B1 (en) 2005-05-20

Family

ID=43664495

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0708533A KR100449200B1 (en) 1996-04-25 1997-04-25 Computer implementation method, trick play stream generation system

Country Status (1)

Country Link
KR (1) KR100449200B1 (en)

Also Published As

Publication number Publication date
KR100449200B1 (en) 2005-05-20

Similar Documents

Publication Publication Date Title
US6445738B1 (en) System and method for creating trick play video streams from a compressed normal play video bitstream
US6862402B2 (en) Digital recording and playback apparatus having MPEG CODEC and method therefor
US6404817B1 (en) MPEG video decoder having robust error detection and concealment
US6507672B1 (en) Video encoder for digital video displays
US6959116B2 (en) Largest magnitude indices selection for (run, level) encoding of a block coded picture
US6065050A (en) System and method for indexing between trick play and normal play video streams in a video delivery system
US7023924B1 (en) Method of pausing an MPEG coded video stream
US6449311B1 (en) Methods and apparatus for error concealment utilizing temporal domain motion vector estimation
US6871006B1 (en) Processing of MPEG encoded video for trick mode operation
US6219381B1 (en) Image processing apparatus and method for realizing trick play
US6301304B1 (en) Architecture and method for inverse quantization of discrete cosine transform coefficients in MPEG decoders
US6256348B1 (en) Reduced memory MPEG video decoder circuits and methods
JPH04358486A (en) High efficiency code signal processing unit
GB2321154A (en) Reverse playback of MPEG video
JP4541896B2 (en) Apparatus and method for multiple description encoding
JP3147792B2 (en) Video data decoding method and apparatus for high-speed playback
JP3285220B2 (en) Television system for transmitting image signals in digital form
JP3850015B2 (en) Digital video signal recording / reproducing apparatus and transmission apparatus
Strachan et al. Video compression
JP4032446B2 (en) Video data compression apparatus and method
KR100449200B1 (en) Computer implementation method, trick play stream generation system
JP4906197B2 (en) Decoding device and method, and recording medium
WO2003071805A2 (en) Method for processing video images
KR100247249B1 (en) Moving image copy protection device
US20060267996A1 (en) Apparatus and method for digital video decoding

Legal Events

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

Payment date: 20120904

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130904

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140902

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150811

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20160809

Year of fee payment: 13

EXPY Expiration of term