KR100449200B1 - Computer implementation method, trick play stream generation system - Google Patents

Computer implementation method, trick play stream generation system Download PDF

Info

Publication number
KR100449200B1
KR100449200B1 KR10-1998-0708533A KR19980708533A KR100449200B1 KR 100449200 B1 KR100449200 B1 KR 100449200B1 KR 19980708533 A KR19980708533 A KR 19980708533A KR 100449200 B1 KR100449200 B1 KR 100449200B1
Authority
KR
South Korea
Prior art keywords
bitstream
frames
mpeg
compressed
intracoded
Prior art date
Application number
KR10-1998-0708533A
Other languages
Korean (ko)
Other versions
KR20000010629A (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)
  • Television Signal Processing For Recording (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

패스트 포워드 및 패스트 리버스 비디오 스트림과 같은 트릭재생 비디오 스트림을 MPEG 압축된 정규 재생 비트스트림으로부터 생성하기 위한 시스템 및 방법. 상기 시스템은 압축된 정규 재생 비트스트림을 수신하고 상기 비트스트림의 일부만을 추출하고 저장함으로써 상기 비트스트림을 필터링(filtering)한다. 상기 시스템은 되도독 MPEG 비트스트림으로부터, 모든 가중 매트릭스를 포함하여, I 프레임과 시퀀스 헤더를 추출하고 이 정보를 새로운 파일에 저장한다. 그 다음 상기 시스템은 필터링된 상기 데이터를 적절한 순서로 어셈블리하거나 함께 합쳐서 단일의 어셈블리된 비트스트림을 생성한다. 상기 시스템은 또한 가중 매트릭스가 각각의 I 프레임에 적절하게 대응하는 것을 보장한다. 이것은 복수의 시퀀스 헤더와 I 프레임으로 구성된 비트스트림을 생성한다. 이렇게 어셈블리된 비트스트림은 MPEG-2 디코드되어 원래의 압축되지 않은 정규 재생 비트스트림의 매 X 픽쳐중에서 하나만 포함하는 새로운 비디오 시퀀스를 생성한다. 이렇게 출력된 픽쳐 스트림은 그 다음 트릭재생 스트림에 필요한 각각의 MPEG 파라미터로 재인코딩되어, 유효한 MPEG 인코딩된 스트림이지만 매 X 프레임의 하나만 포함하는 트릭재생 스트림을 생성한다. 따라서 본 발명은 감소된 저장 장치와 감소된 데이터 전송 대역 폭을 요구하는 압축된 트릭재생 비디오 스트림을 생성한다.A system and method for generating trick playback video streams such as fast forward and fast reverse video streams from MPEG compressed normal playback bitstreams. The system filters the bitstream by receiving a compressed normal playback bitstream and extracting and storing only a portion of the bitstream. The system extracts I frames and sequence headers, including all weighting matrices, from the read back MPEG bitstream and stores this information in a new file. The system then assembles or combines the filtered data in the proper order to produce a single assembled bitstream. The system also ensures that the weighting matrix corresponds to each I frame properly. This creates a bitstream consisting of a plurality of sequence headers and I frames. The assembled bitstream is then MPEG-2 decoded to produce a new video sequence that includes only one of every X pictures of the original uncompressed normal playback bitstream. The picture stream thus output is then re-encoded with the respective MPEG parameters required for the trick playback stream to generate a trick playback stream that is a valid MPEG encoded stream but contains only one of every X frames. Thus, the present invention creates a compressed trick-play video stream requiring reduced storage and reduced data transmission bandwidth.

Description

컴퓨터 구현 방법, 트릭재생 스트림 생성 시스템Computer implementation method, trick play stream generation system

참조 문헌Reference

다음의 참조들이 본원에 참조로 통합된다.The following references are incorporated herein by reference.

ISO/IEC l38l8로 언급되는 ISO/IEC MPEG 명세가 본원에서 참조로 통합된다.The ISO / IEC MPEG specification, referred to as ISO / IEC l38l8, is incorporated herein by reference.

발명 분야Field of invention

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

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

풀-운동 디지털 비디오(full-motion digital video)는 대량의 저장 장치와 데이터 전송 대역폭을 필요로 한다. 따라서, 비디오-온-디멘드 시스템들은 필요한 저장 장치의 양과 데이터 전송 대역폭을 감소시키기 위해 여러가지 형태들의 비디오 압축 알고리즘들을 사용한다. 일반적으로, 다른 비디오 압축 방법들이 스틸 그래픽 이미지(still graphic image)들 및 풀-운동 비디오에 대해 존재한다. 스틸 그래픽 이미지들 또는 단일 비디오 프레임들에 대한 비디오 압축 방법들은 인트라 프레임 압축 방법들로 언급되고, 운동 비디오에 대한 압축 방법들은 인터프레임 압축 방법들로 언급된다.Full-motion digital video requires large amounts of storage and data transmission bandwidth. Accordingly, video-on-demand systems use various forms of video compression algorithms to reduce the amount of storage required and the data transfer bandwidth. In general, other video compression methods exist for still graphic images and full-motion video. Video compression methods for still graphic images or single video frames are referred to as intra frame compression methods, and compression methods for athletic video are referred to as interframe compression methods.

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

스틸 이미지들에 대한 압축 알고리즘들과 대조를 이루어, 대부분의 비디오 압축 알고리즘들은 풀 운동 비디오를 압축하기 위해 설계되었다. 운동 비디오에 대한 압축 알고리즘들은 인터프레임 압축으로 언급되는 개념을 사용하고, 이것은 데이터 파일에서 연속하는 프레임들 간의 차이들만을 저장함을 포함한다. 인터프레임 압축은 일반적으로 적절하게 압축된 포맷의 키 프레임 또는 기준 프레임의 전체 이미지를 저장한다. 연속 프레임들은 키 프레임들과 비교되고, 단지 그 키 프레임과 연속 프레임들의 차이들만이 저장된다. 주기적으로, 새로운 장면들이 디스플레이 될 때와 같이, 새로운 키 프레임들이 저장되고, 연속하는 비교들이 이러한 새로운 기준점들로부터 시작한다. 인터프레임 압축율이 비디오 화질이 변경하는 동안 일정하게 유지됨을 주목해야한다. 대안으로, 인터프레임 압축율들은 내용-의존(content-dependent)될 수 있는데, 즉, 만약 압축되고 있는 비디오 클립이 한 이미지에서 또 다른 이미지로의 많은 갑작스런 장면 전환을 포함하는 경우, 압축은 덜 효율적이 된다. 인터프레임 압축 기술을 사용하는 비디오 압축의 예들은 다른 것들 중에서도 MPEG, DVI 및 인디오(Indeo)가 있다.In contrast to compression algorithms for still images, most video compression algorithms are designed to compress full motion video. Compression algorithms for athletic video use the concept referred to as interframe compression, which includes storing only 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. Consecutive frames are compared with key frames, and only the differences between the key frame and the consecutive frames are stored. Periodically, new key frames are stored, such as when new scenes are displayed, and successive comparisons start from these new reference points. Note that the interframe compression rate remains constant while the video quality changes. Alternatively, interframe compression rates can be content-dependent, i.e. compression is less efficient if the video clip being compressed includes many abrupt transitions from one image to another. do. Examples of video compression using interframe compression techniques are MPEG, DVI and Indeo, among others.

MPEG 배경MPEG background

MPEG(Moving Pictures Experts Group) 압축으로 언급되는 압축 표준은 앞서 기재된 인터프레임 압축 기술을 사용하는 풀 운동 비디오 이미지들의 압축 및 압축 해제(decompression)를 위한 방법들의 집합이다. MPEG 압축은 운동 보상 및 이산 코사인 변환(DCT) 처리들 둘 모두를 사용하고, 200:1 이상의 압축율을 생성할 수 있다.The compression standard, referred to as 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 technology described above. MPEG compression uses both motion compensation and discrete cosine transform (DCT) processes and can produce compression ratios of 200: 1 or more.

MPEG 표준은 사운드가 비디오 데이터와 함께 동시에 기록될 것을 요구하고, 비디오 및 오디오 데이터는 플레이백(playback)동안 비디오 및 오디오가 동기화되는 것을 유지하도록 시도하기 위해 단일의 파일 내에 인터리브(interleave)된다. 오디오 데이터 역시 통상적으로 압축되고, MPEG 표준은 'MUSICAM'이라는 필립스 트레이드 명으로도 알려져 있는 MPEG 레이어 Ⅱ와 같은 오디오 압축 방법을 기재하고 있다.The MPEG standard requires that sound be recorded simultaneously with the video data, and the video and audio data are interleaved in a single file to attempt to keep the video and audio synchronized during playback. Audio data is also commonly compressed, and the MPEG standard describes audio compression methods such as MPEG Layer II, also known as Philips trade name 'MUSICAM'.

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

I 프레임들이 생성된 후, MPEG 인코더는 각각의 I 프레임을 매크로 블록들로 불리는 l6×l6 픽셀 스퀘어들의 그리드(grid)로 분할한다. 각각의 1 프레임은 운동 보상을 수행하기 위해서 매크로 블록들로 분할된다. I 프레임 후에 후속하는 각각의 픽쳐들은 또한 이들과 동일한 매크로 블록들로 분할된다. 이어서 인코더는 기준 픽쳐 매크로 블록과 다음의 픽쳐들에서의 매크로 블록 간의 정확한 또는 거의 정확한 정합(match)을 검색한다. 정합이 발견되는 경우, 인코더는 벡터 이동 코드 또는 운동 벡터를 전송한다. 벡터 이동 코드 또는 운동 벡터는 단지 I 프레임과 각각의 다음 픽쳐 간의 차이에 대한 정보만을 포함한다. 기준 픽쳐 또는 I 프레임에서의 블록에 관해 어떠한 변화도 없는 다음의 픽쳐들에서의 블록들은 무시된다. 그러므로, 이러한 프레임들에 대한 실제 저장되는 데이터의 양은 상당히 감소된다.After the I frames are generated, the MPEG encoder divides each I frame into a grid of l6 × l6 pixel squares called macro blocks. Each one frame is divided into macro blocks to perform motion compensation. Subsequent pictures after the I frame are also divided into the same macro blocks. The encoder then searches for an exact or near exact match between the reference picture macro block and the macro block in subsequent pictures. 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 next picture. Blocks in the following pictures that do not change anything with respect to the reference picture or the block in the I frame are ignored. Therefore, the amount of data actually stored for these frames is significantly reduced.

운동 벡터들이 생성된 후, 이어서 인코더는 공간 여분(spatial redundancy)을 사용하여 변화들을 추적한다. 그러므로, 매크로 블록들의 위치에서의 변화들을 발견한 후, MPEG 알고리즘은 대응하는 매크로 블록들 간의 차이를 기재함으로써 데이터를 더 감소시킨다. 이것은 이산 코사인 변환 또는 DCT로 언급되는 수학적 처리를 통해 수행된다. 이 처리는 매크로 블록을 색상 및 밝기의 변화를 찾아내는 4개의 서브 블록들로 분할한다. 인간의 지각(perception)은 색상 변화들보다 밝기 변화들에 더 민감하다. 그러므로, MPEG 알고리즘은 밝기보다는 색상 공간(color space)을 감소시키는데 더 많은 노력을 기울인다.After the motion vectors are generated, the encoder then tracks the changes using spatial redundancy. Therefore, after finding changes in the location of the macro blocks, the MPEG algorithm further reduces the data by describing the difference between the corresponding macro blocks. This is done through a mathematical process referred to as discrete cosine transformation 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 brightness changes than color changes. Therefore, the MPEG algorithm puts more effort into reducing color space than brightness.

MPEG 스트림은 인트라(I) 프레임, 예측(P) 프레임 및 양방향 보간(Bi-directional Interpolated)(B) 프레임으로 언급되는 세 가지 픽쳐 형태를 포함한다. 인트라 프레임들은 엔트리 포인트(entry points)들을 랜덤 억세스(random access)를 위해 파일에 제공하고, 일반적으로 단지 적절하게 압축된다. 예측 프레임들은 이전 프레임, 즉 이전 인트라 프레임 또는 예측 프레임에 관해 인코딩된다. 일반적으로, 예측 프레임들은 꽤 많은 양의 압축을 수신하고, 미래(future)의 예측 프레임들에 대한 기준들로서 사용된다. 양방향 픽쳐들은 가장 많은 양의 압축을 포함하고, 인코딩되기 위해 과거 및 미래 기준 둘 모두를 요구한다. 양방향 프레임들은 다른 프레임들에 대한 기준들에 대해서는 결코 사용되지 않는다.The MPEG stream includes three picture types referred to as intra (I) frames, predictive (P) frames and bi-directional interpolated (B) frames. Intra frames provide entry points to a file for random access and are generally only compressed appropriately. The predictive frames are encoded relative to the previous frame, ie the previous intra frame or the predictive frame. In general, prediction frames receive a fairly large amount of compression and are used as criteria for future prediction frames. Bidirectional pictures contain the largest amount of compression and require both past and future criteria to be encoded. Bidirectional frames are never used for references to other frames.

각각의 픽쳐 또는 프레임은 또한 프레임을 식별하는 픽쳐 헤더를 포함하고, 그 프레임에 대한 정보를 포함한다. MPEG 표준은 또한 비디오 시퀀스의 시작을 식별하는 시퀀스 헤더들을 포함한다. 시퀀스 헤더들은 비디오 시퀀스의 시작 이전에 단지 한번만 요구된다. 그러나, MPEG-2 표준은 시퀀스 헤더가 임의의 I 프레임 또는 P 프레임 이전에 전달되도록 허용한다. 시퀀스 헤더는 다른 정보 사이에 프레임 속도 및 픽쳐 크기를 포함하는 비디오 시퀀스에 관한 정보를 포함한다.Each picture or frame also includes a picture header that identifies the frame and includes information about that frame. The MPEG standard also includes sequence headers that identify the beginning of a video sequence. Sequence headers are only required once before the start of the video sequence. However, the MPEG-2 standard allows a sequence header to be delivered before any I frame or P frame. The sequence header contains information about 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 before 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 that new channel can only 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 sequence can be displayed. If the sequence header was not included before each I frame and / or P frame, when the user switches to a new channel, the video for that new channel will probably not be immediately displayed, i.e. the video will be It may not be displayed until the header.

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

트릭재생 스트림들Trick play streams

대화식 비디오-온-디멘드 시스템에 있어서, 사용자가 시청되고 있는 영화를 통해 선택적으로 패스트 포워드 및/또는 패스트 리버스할 수 있도록 하는 것이 아주 바람직하다. 그러므로, 몇몇 비디오-온-디멘드 시스템들은 각각의 영화에 대해 트릭재생 스트림(trick play stream)들로 언급되는 패스트 포워드(fast forward) 및 패스트 리버스(fast reverse) 스트림들을 포함한다. 사용자가 영화를 통해 패스트 포워드 또는 패스트 리버스하기를 원하는 경우, 사용자는 패스트 포워드 또는 패스트 리버스 옵션을 선택한다. 이어서, 각각의 패스트 포워드 또는 패스트 리버스 트릭재생 스트림은 사용자가 시청하고 있는 적절한 포인트에서 그 사용자에게 전달되므로, 시청되고 있는 영화의 패스트 포워드 또는 패스트 리버스를 시뮬레이팅(simulating)한다.In an interactive video-on-demand system, it is highly desirable to allow the user to selectively fast forward and / or fast reverse through the movie being watched. Therefore, some video-on-demand 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 reverse through the movie, the user selects the fast forward or fast reverse option. Each fast forward or fast reverse trickplay stream is then delivered to the user at the appropriate point being watched by the user, thus simulating the fast forward or fast reverse of the movie being watched.

트릭재생 스트림들을 포함하는 대화식 비디오-온-디멘드 시스템들은 정규 재생 비트스트림으로부터 트릭재생 스트림들을 생성하기 위한 방법들을 요구한다. 정규 재생 비트스트림으로부터 패스트 포워드 및 패스트 리버스 비트스트림들을 생성하기 위한 현재의 한 방법은 다수의 스트림들로 룩업 테이블(look-up table) 사용하는 단계를 포함한다. 그 룩업 테이블은 각각의 I 프레임들을 참조하는 복수의 지표들(indices)을 포함하고, 비디오 서버는 진행 중에(on the fly) 지표에서 지표로 점프하려고 시도하고, 각 점프에서 I-프레임만을 재생한다. 다시 말해서, 비디오 서버는 패스트 포워드 및 패스트 리버스 트릭재생 스트림들을 위해 단지 I-프레임들만을 재생하기 위해 룩업 테이블에 지표를 단다. 이러한 방법에서의 한 가지 문제점은 패스트 포워드 또는 패스트 리버스가 요구되는 동안, 상당한 부담(considerable burden)이 테이블 룩업을 수행하고 진행 중에 지표에서 지표로 점프할 때, 비디오 서버에 주어진다는 것이다. 또한, 이러한 방법은 연관된 비트 속도 확장(associated bit rate expansion) 문제점을 갖는다.Interactive video-on-demand systems that include trick play streams require methods for generating trick play streams from a regular play bitstream. One current method for generating fast forward and fast reverse bitstreams from a normal playback bitstream includes using a look-up table with multiple streams. The lookup table contains a plurality of indices that refer to respective I frames, and the video server attempts to jump from the indices to the indices and plays only I-frames in each jump. . In other words, the video server indexes the lookup table to play only I-frames for fast forward and fast reverse trick play streams. One problem with this approach is that while fast forward or fast reverse is required, a significant considerable burden is imposed on the video server when performing table lookups and jumping from indicator to indicator in progress. This method also has the problem of associated bit rate expansion.

트릭재생 패스트 포워드 및 패스트 리버스 비트스트림들을 생성하기 위해 알려진 또 다른 방법은 DCT의 AC 계수들을 포함하지 않고, 단지 DC 계수들만을 포함하는 비디오 스트림을 생성한다. 이것은 블록으로 된(blocky) 트릭재생 스트림을 생성하므로, 다른 트릭재생 스트림 생성 방법들보다는 덜 바람직하다.Another known method for generating trick-play fast forward and fast reverse bitstreams does not include the AC coefficients of the DCT, but generates a video stream that includes only the DC coefficients. This creates a blocky trick-play stream, so it is less desirable than other trick-play stream generation methods.

그러므로, 개선된 시스템 및 방법이 압축된 정규 재생 비트스트림으로부터 트릭재생 비디오 스트림, 즉 패스트 포워드 및 패스트 리버스 비디오 스트림들을 효율적으로 생성하기 위해 요구된다.Therefore, an improved system and method are needed to efficiently generate trick-play video streams, i.e., fast forward and fast reverse video streams, from a compressed normal playback bitstream.

도 1은 본 발명에 따른 비디오 트릭재생 스트림들을 생성하는 컴퓨터 시스템을 도시하는 도면.1 illustrates a computer system for generating video trick playback streams 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 the embodiment according to the present invention.

도 6A 내지 도 6C는 본 발명에 따른 리버스 트릭재생 스트림을 생성하기 위한 바람직한 실시예의 순서도.6A-6C are flowcharts of a preferred embodiment for generating a reverse trick play stream in accordance with the present invention.

발명의 요약Summary of the Invention

본 발명은 압축된 정규 재생 비트스트림으로부터 트릭재생 비디오 스트림들, 즉 패스트 포워드 및 패스트 리버스 비디오 스트림들을 생성하기 위한 시스템 및 방법을 포함한다. 본 발명은 감소된 저장 장치와 감소된 데이터 전송 대역폭 요구 조건들을 요구하는 압축된 트릭재생 비디오 스트림을 효율적으로 생성한다. 본 발명은 또한 지표 룩업(index look-up)들과 같은 비디오 데이터의 실시간 처리를 요구하지 않는다.The present invention includes a system and method for generating trick-play video streams, ie fast forward and fast reverse video streams, from a compressed normal playback bitstream. The present invention efficiently creates a compressed trick-play video stream that requires reduced storage and reduced data transmission 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 location. The system then filters the bitstream only by extracting and saving portions of the bitstream. The system preferably extracts I-frames and sequence headers containing all weighting matrices from the MPEG bitstream and stores this information in one or more new files. Therefore, the filtering removes or deletes portions of the MPEG data stream including prediction (P) frames and bi-directional (B) frames.

이어서, 그 시스템은 단일의 어셈블리된 비트스트림을 생성하기 위해 필터 링된 데이터를 포워드 또는 리버스 순으로 필터링된 데이터를 결집, 즉 어셈블리(assemble)하거나 함께 합친다(collate). 그 시스템은 또한 가중 매트릭스들이 각각의 I-프레임들에 적절하게 대응하는 것을 보증한다. 패스트 포워드 트릭재생 스트림에 대해, 어셈블리된 비트스트림은 원래의 MPEG 스트림에서 나타나는 것처럼 적절한 시간 또는 시퀀스 순으로 시퀀스 헤더들, I 프레임들 및 각각의 가중 매트 릭스들을 포함한다. 패스트 리버스 트릭재생 비트스트림 스트림에 대해, 그 시스템은 역 재생 스트림(reverse play stream)을 생성하기 위해서 헤더/I 프레임 그룹들 또는 집합들(header/I frame groupings or tuples) 순으로 리버스한다. 이것은 연관된 가중 매트릭스들을 포함하는 복수의 I-프레임 및 시퀀스 헤더를 포함하는 어셈블리된 비트스트림을 생성한다.The system then aggregates, ie assembles, or combines the filtered data in forward or reverse order to produce a single assembled bitstream. The system also ensures that the weighting matrices correspond appropriately to the respective I-frames. For fast forward trick-play streams, the assembled bitstream contains sequence headers, I frames and respective weighting matrices in the proper time or sequence as shown in the original MPEG stream. For fast reverse trick play bitstream streams, the system reverses in order of header / I frame groupings or tuples to produce a reverse play stream. This creates an assembled bitstream comprising a plurality of I-frames and sequence headers with associated weight matrices.

이어서 어셈블리된 비트스트림은 새로운 비디오 스트림을 생성하기 위해 디코딩된 MPEG-2이다. 새로운 비디오 시퀀스는 원래의 압축되지 않은 정규 재생 비트스트림의 모든 X 픽쳐들 또는 프레임들 중 단지 하나만을 포함하고, 1/X는 원래의 압축된 정규 프레임 스트림에서의 I 프레임들의 주파수이다. 이어서, 이러한 출력 픽쳐 스트림은 트릭재생 스트림에 대해 소망되는 MPEG 파라미터들로 재인코딩되므로, 유효한 MPEG 인코딩된 스트림인 트릭재생 스트림을 생성한다. 이러한 새로운 MPEG 인코딩된 트릭재생 스트림이 디코딩될 때, 그 결과는 원래의 압축되지 않은 정규 재생 비트스트림의 모든 X 프레임들 중 단지 하나를 포함하는 패스트 포워드 또는 패스트 리버스 비디오 시퀀스이다.The assembled bitstream is then MPEG-2 decoded to produce a new video stream. The new video sequence contains only one of all X pictures or frames of the original uncompressed normal playback bitstream, where 1 / X is the frequency of the I frames in the original compressed normal frame stream. This output picture stream is then re-encoded with the desired MPEG parameters for the trick play stream, thus producing a trick play stream that is a valid MPEG encoded stream. When this new MPEG encoded trickplay stream is decoded, the result is a fast forward or fast reverse video sequence containing only one of all X frames of the original uncompressed regular play bitstream.

그러므로, 본 발명은 압축된 정규 재생 비트스트림으로부터 트릭재생 스트림들을 보다 효율적으로 생성한다. 결과적인 트릭재생 스트림은 유효한 MPEG 인코딩된 스트림이므로, 감소된 저장 장치 및 데이터 전송 데이터 대역폭 요구 조건들을 가지며, 이러한 트릭재생 스트림은 임의의 MPEG 디코더 상의 공지된 동작으로 디코딩될 수 있다.Therefore, the present invention produces trick play streams more efficiently from the 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, and this trick play stream can be decoded with known operation on any MPEG decoder.

다음의 바람직한 실시예의 상세한 설명이 다음 도면들에 관련하여 고려될 경우, 본 발명의 보다 나은 이해가 획득될 수 있다.When the following detailed description of the preferred embodiment is considered in connection with the following drawings, a better understanding of the present invention can be obtained.

실시예들의 상세한 설명Detailed description of embodiments

도 1을 참조하면, 압축된 정규 재생 비트스트림으로부터 트릭재생 비디오 스트림들을 생성하기 위한 시스템이 도시된다. 그 시스템은 바람직하게 비디오-온-디멘드 시스템들에서 사용하기 위한 트릭재생 스트림들을 생성한다. 그러나, 본 발명이 시스템은 소망되어지는 것처럼, 임의의 여러 형태의 응용들에서 사용하기 위한 트릭재생 스트림들을 생성하기 위해 사용될 수도 있다.Referring to FIG. 1, a system for generating trick playback video streams from a compressed normal playback bitstream is shown. The system preferably generates trick playback streams for use in video-on-demand systems. However, the present system may be used to generate trick play streams for use in any of several types of applications, as desired.

도시된 바와 같이, 일 실시예에서 트릭재생 생성 시스템은 범용 컴퓨터 시스템(60)을 포함한다. 컴퓨터 시스템(60)은 압축된 정규 재생 비트스트림을 수신하고 하나 이상의 트릭재생 스트림들을 생성한다. 본 발명에 있어서, 용어 "트릭 재생 스트림들"이라는 용어는 패스트 포워드 및/또는 패스트 리버스 비디오 스트림들, 바람직하게 압축된 스트림들을 나타내는 것으로, 이것은 정규 재생 비트스트림으로부터 생성되고, 압축된 정규 재생 비트스트림으로부터 생성된다.As shown, in one embodiment the trick play generation system includes a general purpose computer system 60. 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 streams" refers to fast forward and / or fast reverse video streams, preferably compressed streams, which are generated from a normal play bitstream and are compressed normal play bitstreams. Is generated from

그 컴퓨터 시스템(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 components, including one or more processors, one or more buses, a hard drive, 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 connected to the system memory 84 through chipset logic 82. The chipset 82 preferably includes a Peripheral Component Interconnect bridge (PCI) bridge to the PCI bus 86. 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 components 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 connected to one or more digital storage devices or media storage devices. For example, in the embodiment of FIG. 1, computer system 60 is coupled to media storage unit 62 via 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 and may be connected to one or more separate digital video disc (DVD) storage units. The computer system 60 may also be connected to other forms of digital or analog storage devices when needed.

압축된 정규 재생 비트스트림은 CD-ROM 또는 디지털 비디오 디스크(DVD)와 같은 저장 미디어에 포함될 것이다. 이러한 실시예에서, 압축된 정규 재생 비트스트림을 포함하는 저장 미디어는 컴퓨터 시스템(60)에 포함되어 있거나 결합되어 있는 각각의 저장 장치에 삽입되고, 그 컴퓨터 시스템(60)은 저장 미디어로부터 압축된 정규 재생 비트스트림을 판독한다. 예를 들어, 압축된 정규 재생 비트스트림은 CD-ROM 상에 포함될 수 있고, 그 CD-ROM은 미디어 저장 유닛(62)이나 컴퓨터 시스템(60)의 CD-ROM 드라이브에 삽입되어, 컴퓨터 시스템(60)이 압축된 정규 재생 비트스트림을 액세스하도록 한다. 또한, 압축된 정규 재생 비트스트림은 DVD에 포함될 수 있고, 비트스트림은 컴퓨터 시스템(60)에 의해 DVD로부터 판독된다.The compressed normal playback bitstream will be included in storage media such as a CD-ROM or a digital video disc (DVD). In such an embodiment, storage media comprising a compressed normal playback bitstream is inserted into each storage device included or coupled to computer system 60, and the computer system 60 is compressed from the storage media. Read the playback bitstream. For example, a compressed normal playback bitstream can be included on a CD-ROM, which is inserted into the media storage unit 62 or the CD-ROM drive of the computer system 60, so that the computer system 60 ) Accesses the compressed normal playback 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 preferably an input device such as an Asynchronous Transfer Mode (ATM) adapter card or an Integrated Services Digital Network (ISDN) terminal adapter, or other digital data receiver, for receiving compressed normal playback bitstreams. It includes. 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 the compressed normal playback 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 are shown as being outside the computer system 60 in FIG. 1 for convenience of description. 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-play video streams may include two or more interconnected computers when 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-encoding 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-frames 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 weighting matrices used to reconstruct 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 matrices are 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. The trick play generation system and method utilizes only intraframe matrices to generate a trick play stream.

가중 매트릭스들은 통상적으로 각각의 I 프레임용 픽쳐 헤더나, 각각의 I 프레임 앞의 시퀀스 헤더에 포함된다. 그러나, 몇 몇 경우에 있어서 각각의 I 프레임용 가중 매트릭스는 I 프레임 픽쳐 헤더나 시퀀스 헤더에 포함되지 않고, 이전의 P 또는 B 프레임에 포함될 수도 있다. 다시 말하면, 몇 몇 경우에 있어서, 각각의 I 프레임용 가중 매트릭스의 새로운 값들은 이전의 P 또는 B 프레임에 포함될 수도 있다. 이것은 P 또는 B 프레임이 I 프레임 구문(I frame syntax)으로 인코딩된 하나 이상의 매크로블록을 포함하는 경우에 발생한다. 따라서 필터(102)는 가중 매트릭스용 P 및 B 프레임을 검사하고 검증기/고정기 블록(104)에 의한 사용을 위해 이들 매트릭스를 저장한다.Weighting matrices are typically included in a picture header for each I frame, or in a sequence header before each I frame. In some cases, however, the weighting matrix for each I frame may not be 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, new values 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 with 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 assembles or combines the data generated by filter 102 into a single bitstream. Verifier / corrector 104 assembles or connects the stored data in the proper order to produce the assembled 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 assembled 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 assembled bitstream includes sequence headers, I frames and respective weighting matrices in the appropriate time or sequence order when they are represented in the original MPEG stream. For the fast reverse trick play bitstream sequence, the verifier / corrector 104 generates an inverse play 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 verifier / corrector 104 is an assembled bitstream that includes a plurality 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 output assembly bitstream is provided to a decoder block 106, which is preferably an MPEG-2 decoder block 106. The MPEG-2 decoder block 106 decodes the assembled bitstream, i.e. each I frame, to produce 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 frames, 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)은 감소된 데이터 저장 장치 및 전송 대역폭을 위해 상기 스트림을 정규 재생 스트림보다 더 작은 픽쳐 크기와 더 낮은 데이터 율과 함께 인코딩한다.The picture stream thus output is then provided to 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 a 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 encoding 108 produces a trick-play stream that is a valid MPEG encoded stream, but contains only one X frame 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 includes a stream that contains only one X frame of the original uncompressed normal playback bitstream. do.

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

도 3을 참조하면, 일 실시예에 따른 필터(102)의 동작을 도시하는 순서도가 도시된다. 단계(202)에서, 필터(102)는 MPEG 데이터의 블록을 검사한다. 여기서 MPEG 데이터의 블록이 시퀀스 헤더 또는 픽쳐 헤더인 것으로 가정된다. 만약 검사되고 있는 MPEG 데이터가 시퀀스 헤더라면, 단계(212)로 복귀하고 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, return to step 212 and start 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. The filter 102 also stores, at step 224, corresponding data (correspondence data) representing the picture header or each sequence header corresponding to the stored I frame. After storing the I frame and corresponding data, the filter 102 returns to step 202 to examine 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 the P or B frame, respectively, 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 the filter 102 associates the weighting matrix with each I frame, i. In step 236 the filter 102 preferably also 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 this matrix in a file for use when the trick playmaster sequence is reconstructed. As will be discussed in more detail below, during construction of the trick play stream, the present invention creates a dummy sequence header or otherwise inserts a new matrix into the assembled 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. In addition, filter 102 examines all headers and frames for MPEG sequences, storing 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 combined to generate the trick play bitstream. As such, it should be noted that if the results of filter 102 are simply combined, the bitstream cannot be a valid MPEG bitstream. In a preferred embodiment, the present invention is because an MPEG compressed 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 assembling the trick play stream is shown. In step 302 the verifier / stator 104 examines a block of stored MPEG data, i.e., a block of MPEG data stored by the filter 102. It should be noted that a block of MPEG data is one of a sequence header, a picture header, an I frame, or a weighted matrix. If the MPEG data being examined by the validator / corrector 104 in step 302 is a sequence header, picture header, or I frame, then in step 304 the validator / corrector 104 is passed to the filter 102. Corresponding data generated by the module is examined to associate the picture header or sequence header with the appropriate I frame. In step 306 the verifier / stator 104 groups or connects 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 connects the new header / I frame set to the assembled bitstream to assemble 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, then at step 308 the verifier / stator 104 identifies a group of I frames and their respective picture headers and / or sequence headers, referred to as a header / I frame set. Connect in forward time order, that is, in the order in which they appear in the original stream. If the system generates a fast reverse stream, then at step 308 the verifier / stator 104 connects the header / I frame set in reverse chronological order. Thus, for a fast reverse sequence, the picture header and the sequence header corresponding to each I frame are continuously connected at a time prior to their respective I frames. However, header / I frame grouping or aggregation is connected 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 the verifier / stator 104 in step 312 preferably generates a new sequence header comprising the weighted matrix. do. Validator / corrector 104 then proceeds to step 304 where validator / corrector 104 generates corresponding data generated by filter 102 and generates a new sequence header in step 306 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 connects the new sequence header / I frame set to the bit stream that is assembled to assemble 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.

다른 실시예들Other embodiments

본 발명의 제 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 preferably used for a 2x, 3x or 4x fast forward trick-play 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 the P frames following these interframe matrices. Note that this embodiment is only possible for fast trick-play 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 encoding 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 connects these extracted frames in forward time order or in reverse time order. These connected frames include 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 play bit stream, the new video sequence contains only one of every X picture or frame of the original uncompressed normal play bit stream.

이렇게 출력된 픽쳐 스트림은 그 다음 인코더 블록(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 trickplay stream is sent to the user and decoded by the MPEG decoder, the resulting bit stream contains a stream that contains only one of every X frames of the original uncompressed normal play bitstream. .

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

도 6을 참조하면, 본 발명에 따른 역 트릭재생 스트림을 생성하기 위한 다른 양호한 실시예가 도시된다. 도 6은 편의상 도 6A, 도 6B, 및 도 6C의 세 부분으로 도시된다. 도 6의 실시예에서, 역 트릭재생 스트림은 끝에서 처음으로 비디오 스트림을 주사함으로써 생성된다. 이 실시예는 또한 MPEG 데이터의 그룹화 또는 집합을 일시적으로 저장하는 메모리 스택을 또한 사용하여 이들이 적절한 순서로 역재생 트릭 스트림으로 저장되도록 한다.Referring to Fig. 6, another preferred embodiment for generating a reverse trick play stream according to 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 end, then at step 606 a marker is pushed onto the stack. 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)에서 발견된 시작 코드가 확장 블록의 시작이라면, 단계(632)에서 본 발명은 확장 블록을 스택에 푸시한다. 그 후, 방법은 다음 시작 코드를 검색하기 위해 단계(612)로 복귀한다.If the start code found in step 620 is the beginning of an extension block, then in step 632 the present invention pushes the extension block onto the stack. The method then returns to step 612 to retrieve the next start code.

만약 단계(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 the 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, the mode 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 play 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 the MPEG sequence and stores the sequence header, I frame and associated weight matrix. The system then intelligently assembles a new fast forward or fast reverse bitstream containing these stored contents. The newly assembled bit stream is then decoded to produce a plurality of uncompressed frames. These uncompressed frames are then re-encoded according to the MPEG standard to produce a new MPEG stream which is a trick-play fast forward or fast reverse 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 (16)

압축된 정규 재생 비트스트림(a compressed normal play bitstream)으로부터 트릭재생 스트림들을 생성하기 위한 컴퓨터 구현 방법에 있어서,A computer implemented method for generating trick playback streams from a compressed normal play bitstream, 압축된 정규 재생 비트스트림을 수신하는 단계로서, 상기 압축된 정규 재생 비트스트림은 복수의 인트라코딩된 프레임(intracoded frame)들 및 복수의 인터코딩된 프레임(intercoded frame)들을 포함하는, 상기 수신 단계와,Receiving a compressed normal play bitstream, wherein the compressed normal play bitstream comprises a plurality of intracoded frames and a plurality of intercoded frames; , 상기 압축된 정규 재생 비트스트림으로부터 상기 인트라코딩된 프레임들을 추출하는 단계로서, 상기 추출 단계는 상기 인트라코딩된 프레임들을 저장 메모리에 저장하는 단계를 포함하는, 상기 추출 단계와,Extracting the intracoded frames from the compressed normal playback bitstream, wherein the extracting comprises storing the intracoded frames in a storage memory; 상기 추출 단계 이후에 어셈블리된 비트스트림을 형성하도록 상기 인트라코딩된 프레임들을 어셈블리(assembling)하는 단계와,Assembling the intracoded frames to form an assembled bitstream after the extracting step; 복수의 압축되지 않은 프레임들을 생성하기 위해 상기 어셈블리된 비트스트림을 디코딩하는 단계, 및Decoding the assembled bitstream to produce a plurality of uncompressed frames, and 압축된 트릭재생 비트스트림을 생성하도록 상기 디코딩 단계 이후에 상기 복수의 압축되지 않은 프레임을 인코딩하는 단계를 포함하고, 상기 압축된 트릭재생 비트스트림은 상기 정규 재생 비트스트림의 프레임들의 서브셋만을 포함하는, 컴퓨터 구현 방법.Encoding the plurality of uncompressed frames after the decoding step to produce a compressed trick play bitstream, wherein the compressed trick play bitstream includes only a subset of the frames of the regular play bitstream; Computer implementation method. 제 1 항에 있어서,The method of claim 1, 상기 압축된 정규 재생 비트스트림은 특정 주파수에서 상기 복수의 인트라코딩된 프레임들을 포함하고,The compressed normal playback bitstream includes the plurality of intracoded frames at a specific frequency, 상기 추출 단계는 상기 특정 주파수에서 상기 인트라코딩된 프레임에 대응하는 데이터 비트들을 추출하는 단계를 포함하는, 컴퓨터 구현 방법.And said extracting 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 a plurality of the intracoded frames, 상기 추출 단계는 상기 압축된 정규 재생 비트스트림으로부터 상기 시퀀스 헤더들을 추출하는 단계로서, 상기 추출 단계는 상기 시퀀스 헤더들을 상기 저장메모리에 저장시키는 단계를 포함하며,The extracting step extracts the sequence headers from the compressed normal playback bitstream, wherein the extracting step includes storing the sequence headers in the storage memory, 상기 어셈블리 단계는 상기 어셈블리된 비트스트림을 형성하기 위해 상기 시퀀스 헤더들 및 상기 인트라코딩된 프레임들을 어셈블리하는 단계를 포함하는, 컴퓨터 구현 방법.And said assembling includes assembling said sequence headers and said intracoded frames to form said assembled bitstream. 제 1 항에 있어서,The method of claim 1, 상기 방법은 트릭재생 패스트 포워드 비트스트림(trick play fast forward bitstream)을 생성하고,The method generates a trick play fast forward bitstream, 상기 어셈블리 단계는 상기 인트라코딩된 프레임들을 포워드 시간 순서(forward time order)로 어셈블리하는 단계를 포함하는, 컴퓨터 구현 방법.And said assembling comprises assembling said intracoded frames in a forward time order. 제 1 항에 있어서,The method of claim 1, 상기 방법은 트릭재생 패스트 리버스 비트스트림(trick play fast reverse bitstream)을 생성하고,The method generates a trick play fast reverse bitstream, 상기 어셈블리 단계는 상기 인트라코딩된 프레임들을 리버스 시간 순서(reverse time order)로 어셈블리시키는 단계를 포함하는, 컴퓨터 구현 방법.And said assembling comprises assembling said intracoded frames in reverse time order. 제 1 항에 있어서,The method of claim 1, 상기 압축된 정규 재생 비트스트림은 상기 인트라코딩된 프레임들에 대응하는 복수의 매트릭스들을 포함하고,The compressed normal playback bitstream includes a plurality of matrices corresponding to the intracoded frames, 상기 방법은,The method, 상기 압축된 정규 재생 비트스트림에 상기 매트릭스들을 위치시키는 단계를 더 포함하고,Positioning the matrices in the compressed normal play bitstream; 상기 어셈블리된 비트스트림을 형성하기 위해 상기 인트라코딩된 프레임들을 어셈블리하는 단계는 상기 어셈블리된 비트스트림에 상기 매트릭스들을 포함시키는 단계를 포함하는, 컴퓨터 구현 방법.Assembling the intracoded frames to form the assembled bitstream comprises including the matrices in the assembled bitstream. 제 1 항에 있어서,The method of claim 1, 상기 복수의 매트릭스들 각각은 상기 인트라코딩된 프레임들 중 하나에 대응하고,Each of the plurality of matrices corresponds to one of the intracoded frames, 상기 어셈블리 단계는 상기 매트릭스들 각각을 상기 인트라코딩된 프레임들 중 대응하는 프레임들과 어셈블리시키는 단계를 포함하는, 컴퓨터 구현 방법.And said assembling comprises assembling each of said matrices with corresponding ones of said intracoded frames. 제 1 항에 있어서,The method of claim 1, 상기 압축된 정규 재생 비트스트림은 MPEG 압축된 비트스트림이고,The compressed normal playback bitstream is an MPEG compressed bitstream, 상기 어셈블리된 비트스트림을 디코딩하는 단계는 상기 복수의 압축되지 않은 프레임들을 생성하도록 상기 어셈블리된 비트스트림을 MPEG 디코딩하는 단계를 포함하며,Decoding the assembled bitstream comprises MPEG decoding the assembled 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 trickplay bitstream. 압축된 정규 재생 비트스트림으로부터 트릭재생 스트림들을 생성하기 위한 시스템에 있어서,A system for generating trick playback streams from a compressed normal playback bitstream, 압축된 정규 재생 비트스트림을 저장하는 저장 매체로서, 상기 압축된 정규 재생 비트스트림은 복수의 인트라코딩된 프레임들 및 복수의 인터코딩된 프레임들을 포함하는, 상기 저장 매체와,A storage medium for storing a compressed normal playback bitstream, the compressed normal playback bitstream including a plurality of intracoded frames and a plurality of intercoded frames; 상기 압축된 정규 재생 비트스트림으로부터 상기 인트라코딩된 프레임들을 추출하기 위한 필터와,A filter for extracting the intracoded frames from the compressed normal playback bitstream; 상기 추출된 인트라코딩된 프레임들을 저장하기 위한 저장 메모리와,A storage memory for storing the extracted intracoded frames; 어셈블리된 비트스트림을 형성하기 위해 상기 저장된 인트라코딩된 프레임들을 어셈블리하기 위한 검증기/고정기(verifier/fixer)와,A verifier / fixer for assembling the stored intracoded frames to form an assembled bitstream, 복수의 압축되지 않은 프레임들을 생성하기 위해 상기 어셈블리된 비트스트림을 디코딩하는 디코더, 및A decoder for decoding the assembled bitstream to produce a plurality of uncompressed frames, and 압축된 트릭재생 비트스트림을 생성하기 위해 상기 복수의 압축되지 않은 프레임들을 인코딩하는 인코더로서, 상기 압축된 트릭재생 비트스트림은 상기 정규 재생 비트스트림의 프레임들의 단지 서브셋만을 포함하는, 상기 인코더를 포함하는, 트릭재생 스트림 생성 시스템.An encoder that encodes the plurality of uncompressed frames to produce a compressed trickplay bitstream, the compressed trickplay bitstream comprising only a subset of the frames of the normal playback bitstream. , Trick play stream generation system. 제 9 항에 있어서,The method of claim 9, 상기 압축된 정규 재생 비트스트림은 특정 주파수에서 상기 복수의 인트라코딩된 프레임들을 포함하고,The compressed normal playback bitstream includes the plurality of intracoded frames at a specific frequency, 상기 필터는 상기 특정 주파수에서 상기 인트라코딩된 프레임들에 대응하는 데이터 비트들을 추출하는, 트릭재생 스트림 생성 시스템.And the filter extracts data bits corresponding to the intracoded frames 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 a plurality of the intracoded frames, 상기 필터는 상기 압축된 정규 재생 비트스트림으로부터 상기 시퀀스 헤더들을 추출하고, 상기 시퀀스 헤더를 상기 저장 메모리에 저장하며,The filter extracts the sequence headers from the compressed normal playback bitstream, stores the sequence headers in the storage memory, 상기 검증기/고정기는 상기 어셈블리된 비트스트림을 형성하기 위해 상기 시퀀스 헤더들과 상기 인트라코딩된 프레임들을 어셈블리하는, 트릭재생 스트림 생성 시스템.The verifier / stator assembles the sequence headers and the intracoded frames to form the assembled bitstream. 제 9 항에 있어서,The method of claim 9, 상기 시스템은 트릭재생 패스트 포워드 비트스트림을 생성하고,The system generates a trick play fast forward bitstream, 상기 검증기/고정기는 포워드 시간 순서로 상기 인트라코딩된 프레임들을 어셈블리하는, 트릭재생 스트림 생성 시스템.And the verifier / stator assembles the intracoded frames in forward time order. 제 9 항에 있어서,The method of claim 9, 상기 시스템은 트릭재생 패스트 리버스 비트스트림을 생성하고,The system generates a trick-play fast reverse bitstream, 상기 검증기/고정기는 리버스된 시간 순서로 상기 인트라코딩된 프레임들을 어셈블리하는, 트릭재생 스트림 생성 시스템.And the verifier / stator assembles the intracoded frames in reverse time order. 제 9 항에 있어서,The method of claim 9, 상기 압축된 정규 재생 비트스트림은 상기 인트라코딩된 프레임들에 대응하는 복수의 매트릭스들을 포함하고,The compressed normal playback bitstream includes a plurality of matrices corresponding to the intracoded frames, 상기 필터는 상기 매트릭스들을 상기 압축된 정규 재생 비트스트림에 위치시키고 상기 매트릭스들을 상기 저장 메모리에 저장하고,The filter places the matrices in the compressed normal playback bitstream and stores the matrices in the storage memory, 상기 검증기/고정기는 상기 어셈블리된 비트스트림을 형성하기 위해 상기 인트라코딩된 프레임들 및 상기 매트릭스들을 어셈블리하는, 트릭재생 스트림 생성 시스템.And the verifier / stator assembles the intracoded frames and the matrices to form the assembled bitstream. 제 9 항에 있어서,The method of claim 9, 상기 복수의 매트릭스들 각각은 상기 인트라코딩된 프레임들 중 하나에 대응하고,Each of the plurality of matrices corresponds to one of the intracoded frames, 상기 검증기/고정기는 상기 매트릭스 각각들을 상기 인트라코딩된 프레임들 중 대응하는 프레임들과 어셈블리하는, 트릭재생 스트림 생성 시스템.The verifier / stator assembles each of the matrices with corresponding ones of the intracoded frames. 제 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.
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 KR20000010629A (en) 2000-02-25
KR100449200B1 true 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
KR20000010629A (en) 2000-02-25

Similar Documents

Publication Publication Date Title
US6445738B1 (en) System and method for creating trick play video streams from a compressed normal play video bitstream
US6404817B1 (en) MPEG video decoder having robust error detection and concealment
US6862402B2 (en) Digital recording and playback apparatus having MPEG CODEC and method therefor
US6065050A (en) System and method for indexing between trick play and normal play video streams in a video delivery system
US6449311B1 (en) Methods and apparatus for error concealment utilizing temporal domain motion vector estimation
US7023924B1 (en) Method of pausing an MPEG coded video stream
US6810131B2 (en) Information processing method and apparatus
US6959116B2 (en) Largest magnitude indices selection for (run, level) encoding of a block coded picture
US6219381B1 (en) Image processing apparatus and method for realizing trick play
US6256348B1 (en) Reduced memory MPEG video decoder circuits and methods
JPH08289294A (en) Animation image compression system by adaptive quantization
JPH09200695A (en) Method and device for decoding video data for high-speed reproduction
EP0827347A2 (en) Recording and reproducing apparatus for digital image information
Furht A survey of multimedia compression techniques and standards. Part II: Video compression
Strachan et al. Video compression
KR100449200B1 (en) Computer implementation method, trick play stream generation system
TWI439137B (en) A method and apparatus for restructuring a group of pictures to provide for random access into the group of pictures
KR100264639B1 (en) Color control for on-screen display in digital video
JP4906197B2 (en) Decoding device and method, and recording medium
WO2003071805A2 (en) Method for processing video images
KR100247249B1 (en) Moving image copy protection device
KR100487684B1 (en) Computer-implemented method for indexing locations in a video stream, interactive video delivery system, video display device
US9219930B1 (en) Method and system for timing media stream modifications
KR100256648B1 (en) Format for compression information in image coding system
JPH0646369A (en) Video signal processor

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