KR100417783B1 - 속도-양자화모델을사용하여인코딩하는비디오인코딩시스템및방법 - Google Patents

속도-양자화모델을사용하여인코딩하는비디오인코딩시스템및방법 Download PDF

Info

Publication number
KR100417783B1
KR100417783B1 KR1019960014976A KR19960014976A KR100417783B1 KR 100417783 B1 KR100417783 B1 KR 100417783B1 KR 1019960014976 A KR1019960014976 A KR 1019960014976A KR 19960014976 A KR19960014976 A KR 19960014976A KR 100417783 B1 KR100417783 B1 KR 100417783B1
Authority
KR
South Korea
Prior art keywords
video
encoding
bits
frame
encoded
Prior art date
Application number
KR1019960014976A
Other languages
English (en)
Other versions
KR960043549A (ko
Inventor
아자데간 파라마즈
히로아끼 운노
히데끼 미무라
데쯔야 기따무라
Original Assignee
가부시끼가이샤 도시바
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시끼가이샤 도시바 filed Critical 가부시끼가이샤 도시바
Publication of KR960043549A publication Critical patent/KR960043549A/ko
Application granted granted Critical
Publication of KR100417783B1 publication Critical patent/KR100417783B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • 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/806Transformation 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 with processing of the sound signal
    • H04N9/8063Transformation 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 with processing of the sound signal using time division multiplex of the PCM audio and PCM video signals
    • 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
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • H04N7/52Systems for transmission of a pulse code modulated video signal with one or more other pulse code modulated signals, e.g. an audio signal or a synchronizing signal
    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers
    • G11B2220/91Helical scan format, wherein tracks are slightly tilted with respect to tape direction, e.g. VHS, DAT, DVC, AIT or exabyte
    • G11B2220/913Digital audio tape [DAT] format
    • 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/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/30Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording
    • G11B27/3027Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording used signal is digitally coded
    • 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/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • 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/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability

Landscapes

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

Abstract

MPEG 및 MPEG-2와 같은 비디오 기술을 위한 프리-인코딩 상태 중에 비디오 프레임 내의 미처리 비디오 신호의 양자화 레벨 대 비트 속도 특성을 결정하는 시스템 및 방법. 프리-인코딩 페이즈 중에, 여러가지 양자화 레벨이 프레임의 여러가지 부분에 할당되고, 다음에 프레임은 프리-인코딩 상태에 사용된 각각의 양자화 레벨에 대한 비트 속도를 결정하도록 프리-인코드된다. 실시예에 따르면, 양자화 레벨은 체커보드 스타일, 블럭 스타일 또는 통계적 아나말리를 피하는 임의의 다른 분배와 같은 여러가지 방식으로 할당된다. 이 방법 및 시스템은 다수의 프레임에 대한 프리-인코딩을 반복하고, 프레임마다 이루어지는 모든 양자화 레벨 대 비트 속도 통계를 기록한다. 이들 기록은 다음에 각각의 세그먼트에 대한 타겟 품질 및 타겟 저장 크기에 기초하여, 다른 세그먼트에 비교하여 디지탈 비디오의 한 세그먼트에 할당된 비트의 수를 제어하기 위해 디지탈 비디오의 인코딩 및 재인코딩 중에 사용된다. 결과적인 인코드된 디지탈 비디오는 컴팩트 디스크와 같은 디지탈 저장 매체 상에 저장된다.

Description

속도-양자화 모델을 사용하여 인코딩하는 비디오 인코딩 시스템 및 방법
본 발명은 1995년 5월 8일에 출원된 제목 "인코딩된 비디오 비트스트림의 섹션 치환 방법 및 시스템(Method and System to Replace Sections of an Encoded Video Bitstream)"의 미국 특허 출원 제08/438,014호의 일부 계속 출원 발명이며, 그 명세서는 본원 명세서의 일부를 구성하는 것으로 한다. 또한, 본 발명은 4개의 다른 특허 출원, 즉 1995년 6월 6일에 각각 출원된 제목 "오디오 인코더의 수가 감소된 시청각 인코딩 시스템(Audiovisual Encoding System with a Reduced Number of Audio Encoders)"의 미국 특허 출원 제08/473,783호, 제목 "사용자가 미리 인코딩된 비디오 프레임의 품질을 수동으로 변경하는 방법 및 시스템(Method andSystem for a User to Manually Alter the Quality of Previously Encoded Video Frames)"의 미국 특허 출원 제08/522,495호, 제목 "사용자가 미리 인코딩된 비디오 시퀀스의 품질을 수동으로 변경하는 방법 및 시스템(Method and System for a User to Manually Alter the Quality of a Previously Encoded Video Sequence)"의 미국 특허 출원 제08/XXX,XXX호, 및 제목 "속도 제어 방식의 디지털 비디오 편집 방법 및 변화하는 양자화 레벨에 의해 비디오 인코더의 비트 할당을 제어하는 시스템(A Rate-Controlled Digital Video Editing Method and System Which Controls Bit Allocation of a Video Encoder by Varying quantization Levels)"의 미국 특허 출원 제08/XXX,XXX호와 동시에 출원되고 그에 관련된 것이며, 이 명세서들도 본원 병세서의 일부를 구성하는 것으로 한다.
본 발명은 MPEG 및 MPEG-2 비디오 인코더 등의 비디오 인코딩 시스템에 관한 것으로, 특히, 프리 인코딩 프로세스(pre-encoding process)에서 사용된 각각의 양자화 레벨에 대한 평균 비트 전송 속도를 결정하기 위해, 프레임 단위로 프리 인코딩된 디지탈 비디오의 비트 전송 속도를 분석하는 비디오 프리인코더에 관한 것이다. 본 발명은, 프리 인코딩 프로세스에서 결정된 차후 프레임(future frame)의 비트 전송 속도에 기초하여, 고정된 용량의 기억 매체에 적합하도록 디지탈 비디오를 인코딩하는데 사용된다.
디지탈 비디오 인코딩 시스템은, 프레임의 부분의 강도를 나타내는 미처리 디지탈 비디오 신호를 2개의 상이한 재생 모드 -즉, CBR(일정 비트 전송 속도 : constant bit-rate) 모드 및 VBR(가변 비트 전송 속도 : variable bit-rate) 모드-중 한 모드에서 사용되기 위한 압축 인코딩된 디지탈 비디오로 인코드한다. 일정 비트 전송 속도 모드는, 고정된 대역폭을 사용하여 신호를 송신기로부터 원격 수신기로 전달하는 케이블 TV 및 직접 위성 방송(direct satellite broadcast)과 같은 송신 기술에 사용되기에 적합하다. 가변 비트 전송 속도 모드는, 콤팩트 디스크와 같은 디지탈 기억 매체로부터 디지탈 비디오를 재생하는 데에 적합하다.
CBR 모드에서, 송신기는 비디오 버퍼의 언더플로우 및 오버플로우를 방지하면서 통상 초당 30 프레임을 수신기에 송신해야만 한다. 언더플로우는 일정 비트 전송 속도 모드에서 1/30초의 종단에서 비디오 디코딩 버퍼에 있는 데이터가 화상을 구성하는 데에 불충분한 경우 발생한다. 오버플로우는, CBR 모드에서 버퍼 내에 비디오 데이타가 지나치게 많아서, 디코더가 1/30초 간격내에서 디코딩할 수 없는 경우 발생한다.
CBR 모드에서 비트 전송 속도를 제어하기 위해, 비디오 인코더는 적응 양자화(adaptive quantization)라고 하는 기술을 사용하여, 타겟 비트 전송 속도를 만족시키도록 순간 비트 전송 속도를 변화시킨다. 적응 양자화는 매크로블럭들의 양자화 레벨에 기초하여 일련의 매크로블럭에 의해 생성될 비트수를 추정하고, 일련의 매크로블럭을 인코딩하고, 인코딩된 매크로블럭의 비트수를 결정하고, 추정된 비트수와 인코딩에 의해 생성된 비트수를 비교하고, 이전의 추정값의 정확성에 기초하여 매크로블럭의 다음 세트의 양자화 레벨을 변경시키는 것이다.
일련의 매크로블럭에 의해 생성될 비트수를 정확하게 추정하기 위해, 양자화 레벨 대 비트 전송 속도 모델은 특정 양자화 레벨에 의해 생성될 비트 평균 수가얼마인지를 나타낸다. Reininger 외 다수에 의해 Princeton Conference 1994에 발표된 논문 "속도-왜곡선을 이용한 멀티플렉싱 MPEG 비디오용 공동 멀티-채널 비트 전송 속도 제어(Joint Multi-Channel Bit-Rate Control for Multiplexed MPEG Video Using Rate-Distortion Curves)"에는, 인코딩 프로세스를 2단계(phase)로 분할하는 일정 비트 전송 속도 인코더가 기술되어 있다. 제1 단계에서는, 제1 프레임이 상이한 양자화 레벨들을 사용하여 프리 인코딩된 프레임의 부분들로 프리 인코딩된다. 이에 따라, 제1 프레임이 제1 단계에 어떻게 대응하는지를 나타내는 양자화 레벨 대 비트 전송 속도 곡선이 구해진다. 그 다음, 제1 프레임은 제2 단계로 들어간다. 제2 단계에서는, 제1 단계에서 생성된 양자화 레벨 대 비트 전송 속도 곡선을 사용하여 제1 프레임을 최종 인코딩된 디지탈 비디오 스트림의 부분으로 인코딩하는 것을 조절한다. 제1 단계에서 생성된 곡선을 사용함으로써, 제2 단계는 프레임이 언더플로우 및 오버플로우를 회피하여 인코딩되도록, 각 매크로블럭에 할당되는 양자화 레벨들을 보다 정확하게 결정할 수 있다. Reininger 방법은, 제1 프레임의 제2 단계의 인코딩과 병행해서, 제2 프레임에 대해 제1 단계를 시작해서 통계를 수집한다. 이 프로세스는 영화의 모든 프레임들에 대해 반복된다. 그러나, 이 기술은 속도를 제어하는 능력이 제한되는 단일 프레임 룩 어헤드(look ahead)만을 제공한다.
VBR 모드에서, 오버플로우는, 버퍼가 새로운 데이타를 수용할 수 있는 경우 디지탈 기억 매체로부터 데이타를 판독하는 것에 의해서만 방지될 수 있다. VBR 모드에서는, 언더플로우도 여전히 발생 가능한데, 이는 비디오 프레임들을 나타내는데에 사용되는 데이타가 지나치게 적은 것이 아니라 지나치게 많기 때문이다. 지나치게 많은 데이타가 프레임을 나타내는 경우, 비디오 디코더는 1/30초 내에 필요한 모든 디코딩 동작들을 실행할 수 없다. 프레임은 완전히 디코딩되기 전에 표시되어야 할 필요가 있기 때문에 에러가 발생한다.
하나의 콤팩트 디스크 상에 전체 영화를 나타내는 인코딩 디지탈 비디오를 제공하기 위해, 미처리 비디오의 다양한 부분들이 상이한 양자화 레벨들을 사용하여 인코딩되어 다양한 화질을 생성할 수 있다. 인코딩될 때 미처리 비디오의 특정 섹션이 소비하는 스페이스의 양을 결정하기 위해, 미처리 비디오는 특정 양자화 레벨로 프리 인코딩될 수 있고, 그 결과 생성된 각 프레임의 길이는 다음 인코딩 프로세스에 도움을 주도록 기록될 수 있다. 다양한 양자화 레벨의 결과로서 생성된 비트 전송 속도들을 결정하기 위해, 이 프로세스는 미처리 비디오 전체에 대해 여러번 반복될 수 있고, 결과들은 각각의 프레임을 인코딩한 후에 기록될 수 있다. 그러나, 이 기술은, 양자화 모델이 생성될 수 있는 가장 높은 정확성을 제공하더라도, 많은 시간이 소모된다. 통상의 영화는 1시간 반에서 2시간 정도 지속되기 때문에, 매회 상이한 양자화 레벨을 사용하여 영화를 2회 프리 인코딩하는 데에는 적어도 3시간이 걸린다.
따라서, 본 발명의 목적은 상술된 비디오 프리 인코딩의 문제점을 극복하는데 있다.
본 발명의 다른 목적은, 양자화 레벨 대한 비트 전송 속도의 모델을 미처리 비디오의 복수의 프레임에 대해 생성할 수 있도록, 적어도 2개의 양자화 레벨을 이용하여 미처리 비디오를 프리 인코딩하는 것이다.
본 발명의 다른 목적은, 1 라인에서 양자화 레벨 대 비트 전송 속도의 2개의 포인트를 생성하도록, 2개의 양자화 레벨이 프리 인코딩 프로세스 중에 복수의 프레임에 균일하게 할당되도록 하는 것이다.
본 발명의 다른 목적은, 2개의 양자화 레벨들이 체커보드(checkerboard) 스타일 방식으로 복수의 프레임의 상이한 영역들에 할당되게 하는데 있다.
본 발명의 다른 목적은, 4개의 양자화 레벨들이 프리 인코딩 프로세스 중에 복수의 프레임의 상이한 영역들에 할당되게 하는데 있다.
본 발명의 다른 목적은, 양자화 레벨 대 비트 전송 속도 곡선의 4개의 지점들이 생성될 수 있도록, 4개의 양자화 레벨들이 복수의 프레임에 균일하게 할당되게 하는 데에 있다.
상기 및 여타 목적들은 복수의 프레임 전체에 걸쳐 균일하게 분배된 선택 양자화 레벨들의 집합에 기초하여 다수의 미처리 비디오 프레임들을 프리 인코딩하는 방법 및 시스템에 의해 달성된다. 이 방법과 시스템은, 이들 양자화 레벨 대 비트 전송 속도의 통계가 미처리 비디오의 후속 인코딩에서 사용될 수 있도록, 프리 인코딩 프로세스 중에 복수의 프레임마다 각각의 양자화 레벨에 대한 비트 전송 속도를 생성하고 기록한다. 프리 인코딩 프로세스에서 사용되지 않은 양자화 레벨 대 비트 전송 속도는 프리 인코딩 단계로부터 미리 알려진 양자화 레벨들을 사용하여 외삽법으로 추정될 수 있다. 또한, 통계는 인코딩 프로세스에 선행하여 미리 수집되었기 때문에, 인코더는 다음 프레임에 대한 양자화 레벨 대 비트 전송 속도 곡선에 의해 나타난 것과 같은 차후 조건에 기초하여, 미처리 비디오의 특정 섹션에서 보다 많은 비트 또는 보다 적은 비트를 사용하게 될 수 있다.
본 발명 및 그에 따른 장점의 더 완전한 이해들은 첨부 도면들과 관련하여 이들을 고려할 때 다음의 상세한 설명에 따라 더 쉽게 이해할 수 있을 것이다.
본 발명은 다수의 구성 요소 및 기능적인 특징을 갖는 디지탈 비디오 인코딩 시스템이다. 시스템의 다양한 구성 요소들을 쉽게 식별하기 위해, 본 명세서는 다음 섹션들로 구성된다.
I. 서론
Ⅱ. 시스템 구성 요소
Ⅲ. 일반적인 시스템 동작
IV. 시스템 대안
V. 최적 인코딩 효율을 유지함과 동시에 오디오 인코더들의 수를 감소시킴
VI. 인코딩된 비디오의 정보를 기억하기 위한 로그 파일, 및 로그 파일과 인코딩된 비디오를 액세스하기 위한 로그 인터프리터(interpreter) 유틸리티
Ⅶ. 인코딩된 비디오의 품질 변경
A. 주기적인 품질 변경
B. 프레임 영역 내의 품질 변경
Ⅷ. 품질 변경 후의 비디오의 재인코딩
A. 단일 프레임 내에서 품질이 변경된 경우의 비트 할당 제어
B. 편집 지점에서의 디코딩에서 발생한 불필요한 아티팩트를 방지하면서 재인코딩 함
1. 원래의 인코딩에 사용된 상태로의 인코더의 복원
2. 폐쇄 화상 그룹 모드에서의 재인코딩
IX. 인코딩에 사용된 속도 양자화 모델링
X. 데이타 구조를 사용한 오디오, 비디오 및 서브화상 디지탈 신호들의 결합
I. 결론
본 시스템은 디지탈 압축 시스템으로도 칭해지는 디지털 시청각 인코딩 시스템에 관한 것이다. 본 명세서에 개시된 이론들은, 어떤 유형의 인코딩 구조에도 유용하고, 특히 MPEG-2(Moving Picture Experts Group) 시스템 정보를 기술하는 ISO/IEC 13818-2, ISO/IEC 13818-1로 공지된 MPEG-2와, MPEG-2 프리디세서(predecessor), MPEG-1(ISO/IEC 11172-비디오)에도 응용될 수 있다. MPEG-1 및 MPEG-2는 본 명세서에서는 집합적으로 "MPEG"으로 칭한다. MPEG 규격은 압축 또는 인코딩된 비디오 스트림의 구문만을 기술하고 있고, 압축이 어떻게 실행되는지는 기술하고 있지 않다. MPEG 인코딩 데이타 스트림은 압축된 데이타 스트림이기 때문에, 인코딩 프로세스는 압축 프로세스라고 할 수 있고, 그 역으로 압축 처리를 인코딩 처리라고 할 수 있다. 또한, 이 시스템은 돌비 AC-3, 또는 ISO/IEC 13818-3에서 정의된 MPEG-2 규격을 사용하여 실행될 수 있는 오디오 인코딩에 관한 것이다. 상기 규격 각각은 본 명세서에 참조로서 포함되어 있다.
MPEG 비디오 압축은 시간 인과 관계 예측 압축(temporal causal predictive compression)이다 MPEG 인코더는, 새로운 비디오 화상을 수신하면, 사전에 인코딩된 화상에 기초하여 인코더가 생성한 예측 화상과 새로운 비디오 화상을 비교한다. "인과" 예측 코딩이라는 용어는 사전에 전달된 정보에 기초하여 예측이 이루어지기 때문에 사용된 것이고, "시간" 인과 예측 코딩이라는 용어는 시간 화상 단위로 예측이 실행되기 때문에 사용된 것이다. 예측 과정은, 비디오 화상 내의 영역들의 이동(motion)을 예측하는 단계를 포함한다. 따라서, 시간 예측은 종종 이동-보상 예정이라고 한다.
이전 화상(old picture)과 새로운 화상과의 비교 결과가 다음 비디오 화상에 포함되는 새로운 정보를 나타낸다. 그 후 "잔차 정보(residual information)"라고 하는 새로운 정보는 일련의 정보 압축 프로세스들을 거치게 된다. 먼저, DCT(discrete cosine transformation)로 공지된 선형 수학 변환(linear mathematical transformation)이 실행된다. DCT 연산은 픽셀 잔차 정보를 일련의 계수로 변환한다. MPEG 압축에서, DCT는 8 ×8 픽셀들의 블럭들에 대해 실행된다. 동일하게, DCT 계수는 8 ×8 어레이로 되어있다. 그 후, 이들 계수들은 양자화 스텝 크기 또는 q-레벨에 기초하여, 정밀도의 설정 정도에 따라 개별적으로 양자화(또는 라운딩)된다. 일반적으로, 양자화 프로세스는 0이라는 값을 갖는 다수의 계수들을 생성할 수 있다. 이 양자화 프로세스가 양자화 잡음(quantization noise)으로도 칭해지는 코딩 아티팩트를 초래하는 주요 원인이 된다.
그 후 양자화된 계수들은, 값이 0인 계수에 대한 런-렝쓰 코딩(run-length coding)과; 각각 런-렝쓰값과 0이 아닌 계수값을 나타내는 2개의 수들의 최종 쌍들에 대한 가변 길이 코딩(variable-length coding)의 결합을 이용하여 코드화된다.이들 런-렝쓰의 값이 0이 아닌 쌍들의 코드가 다른 오버헤드 정보와 함께 비디오 화상에 대응하는 압축된 디지탈 데이타 스트림을 형성한다. 출력 데이타 속도 또는 기억 용량과 같은 물리적인 제한으로 인해, 적합한 양의 압축이 달성되도록 양자화의 정도를 변화시킬 필요가 있다. 이것을 버퍼 피드백이라고 한다.
MPEG-컴플라이언트(compliant) 디코더는 인코딩된 디지탈 데이타 스트림을 판독하고 인코딩 프로세스에 반대되는 동작들을 실행한다.
통상, 디지탈 데이타 스트림의 비트들의 총 수는 비디오 화상들을 나타내는데 필요한 비트들의 총 수보다 상당히 적기 때문에, 압축이 달성된다. 그러나, MPEG 비디오 코딩에 의해 예시된 바와 같은 압축은 왜곡 또는 아티팩트에 결코 자유로울 수 없다는 것을 인식하는 것이 중요하다. 상술된 바와 같이, 압축 아티팩트의 주요한 원인은 양자화 프로세스이다.
상술된 시스템은 압축 또는 인코딩 프로세스 중에 양자화의 정도를 동적으로 조정하는 데에 목적을 둔다. 특히, 조정은 조작자에 의해 제공된 명령들에 따라 이루어진다. 조정은 대규모의 비디오 시퀀스의 일부 또는 비디오 시퀀스 전체에 적용될 수 있다
Ⅱ. 시스템 구성 요소
지금부터, 도면들을 참조하여 설명하기로 한다. 도면들에서 동일한 참조 번호들은 동일한 부분 또는 대응하는 부분을 나타내며, 특히 제1A도에는 인코더 시스템 구조의 블럭도가 도시되어 있다. 비디오 인코딩 프로세스는 인터럽트나 에러발생이 없는 인코딩 및 편집을 달성하기 위해 동기하여 동작하는 다수의 상이한 디바이스를 필요로 하는 복잡한 프로세스임에 주목해야 한다. 그러나, 적합한 타임 코드들이 사용되는 한, 오디오 및 비디오 인코딩은 개별적으로 실행될 수 있다. 제1A도에서는 4개의 워크스테이션이 도시되어 있지만, 인코딩 시스템의 사용자 또는 조작자는 통상 하나의 키보드 및 워크스테이션으로만 대화할 것이다. 워크스테이션들은 프로세서, RAM, ROM, 네트워크 인터페이스, 하드디스크, 키보드, 모니터 및 다른 종래의 구성 요소들과 같은 범용 컴퓨터 구성 요소들을 포함한다.
워크스테이션(30)은 양호한 실시예에서 Sun SPARC20 Unix 워크스테이션인 시스템 제어 스테이션으로서 기능한다. 워크스테이션(30)은 마우스 또는 기타 포인팅 장치인 포인팅 장치(33) 및 키보드(32)와 같은 종래의 워크스테이션 입력 장치뿐만 아니라, 그래픽 콘솔 표시 모니터(31)도 포함한다. 사용자는 주로 콘솔 표시기(31) 상에 표시되는 그래픽 사용자 인터페이스(GUI)를 통해 워크스테이션(30)과 시각적으로 대화한다.
워크스테이션(30)은 이하에 기술된 다른 워크스테이션들(40, 10 및 20)에 접속되어 그들을 제어한다. 또한, 워크스테이션(30)은 이하에 설명되는 오디오 인터페이스 유닛(72), 및 디지탈 비디오 캡쳐 및 기억 장치(60)와도 통신한다. 워크스테이션(30)은 EIA(Electronic Industries Association) 규격의 RS-232에 의해 정의된 시리얼 인터페이스를 통해 워크스테이션(40)에 접속된다. 마찬가지로, 워크스테이션(30)과 오디오 인터페이스 유닛(72)도 시리얼 RS-232 규격에 의해 접속된다. 워크스테이션(30)과 디지탈 비디오 캡쳐 및 기억 장치(60)는 업계 규격인 S-버스 인터페이스를 통해 접속된다.
프레임 죠거(41 : frame jogger)는 워크스테이션(40)에 접속되어, 조작자가 VTR(51 또는 52) 중 어느 것의 비디오에서 편집을 실행할 지를 지정할 수 있게 한다. 이 시스템은 조작자에 의해 입력된 타임 코드를 사용하여 비디오의 위치를 제어할 수 있다. 그러나, 죠그 제어기(jog controller)는 비디오의 위치를 지정하기 위해 죠그 노브(jog knob)를 사용하게 함으로써 시스템의 사용자-친숙성을 강화한다. 워크스테이션(30)은 비디오 표시 모니터(61) 상에 표시된 비디오가 디지탈 비디오 캡쳐 및 기억 장치(60)로부터 및/또는 녹화 VTR(52)로부터 유래되는지의 여부를 제어한다.
비디오 인코딩 장치(50)은 MPEG-1, MPEG-2 또는 다른 비디오 압축 규격에 따라 압축을 실행하는 디지탈 비디오 인코더이다. 시판되고 있는 MPEG-1 인코더는 Sony RTE-3000이다. MPEG-2 인코더는 본 명세서에 참조용으로 인용되고 1994년 12월 27일에 출원된 일본국 특허 출원 제6-326435호에 기재된 기술에 따라 구성될 수 있다. 워크스테이션(10)은 업계 규격 S-버스 인터페이스를 통해 비디오 인코딩 장치(50)을 직접 제어하고, 워크스테이션(10)은 이더넷 네트워크와 같은 표준 네트워크 장비를 통해 워크스테이션(30)으로부터의 커맨드들을 수신한다. 인코딩 프로세스 중에, 워크스테이션(10)은 비디오 인코딩 장치(50)의 비디오 인코딩 제어 프로그램의 실시간 실행을 지원한다. 양호한 실시예에서, 워크스테이션(10)은 Sun SPARC20 Unix 워크스테이션이다.
워크스테이션(10)은 중앙 워크스테이션(30)으로부터의 커맨드에 응답하여, 압축 프로세스를 시작한다. 압축 프로세스 중에, 워크스테이션(10)은 비디오 신호의 특정 영역들에 적용되는 양자화 정도를 동적으로 제어한다. 양자화가 변화되는 특정 영역들은 공간 및/또는 시간 도메인에 걸쳐 연장되고 양자화를 제어하는 정확한 방식은 이후에 기술된다.
비디오 인코딩 장치(50)로 입력된 비디오는 재생 VTR(51) 내의 테이프로부터 도래된다. 재생 VTR(51)은 전문적인 디지탈 비디오 규격, ITU-R 601[이전에는 CCIR(601) 비디오 규격으로 공지됨] 비디오 테이프 플레이어이다. 이 규격은 NTSC뿐만 아니라 PAL 시스템에도 적용된다. 재생 VTR(51) 내의 테이프는 비디오 또는 필름 카메라에 의해 캡쳐되거나 컴퓨터에 의해 생성된 다수의 이미지들 및 장면들을 나타내는 전자기 정보를 포함하는 것을 주목해야 한다. 재생 VTR(51)은 워크스테이션(40)의 제어 하에 동작한다. 비디오 인코딩 장치(50)으로부터 인코딩된 출력은 하나 또는 그 이상의 하드 디스크(21)에 기억되기 위해 워크스테이션(20)에 전달된다.
비디오 인코딩 장치(50)에 의해 인코딩되고 출력된 비디오 데이타를 보기 위해, MPEG-2 디코더와 같은 디지탈 비디오 디코더가 필요하다. 그러나, 본 명세서의 작성 시점에서는, 구현되어 있는 시스템은 시스템의 초기 개발 단계에서 용이하게 입수할 수 없는 디코더와 같은 별개의 MPEG-2 디코더를 포함하지 않는다. 따라서, 비디오 인코딩 장치(50)는 MPEG-2 비디오 스트림을 워크스테이션(20)에 출력할 뿐만 아니라, MPEG-2 인코딩된 데이타와 등가인 디코딩된 비디오 이미지가 비디오 인코딩 장치(50)로부터 녹화 VTR(52)로 출력된다. 녹화 VTR(52)은 D1 인터페이스로 공지된 업계 규격 디지탈 비디오 신호 커넥터에 의해 비디오 인코딩 장치(50)에 접속되고 워크스테이션(40)에 의해 제어된다. 재생 VTR(51)과 녹화 VTR(52)는 Ampex DCT 전문적인 비디오 테이프 fp코더를 사용하여 적합하게 구현된다.
예를 들면, 오디오는 ISO/IEC 13818-3 규격에 기술된 바와 같은 Dolby AC-3 포맷, 또는 대안적으로 MPEG-2 컴플라이언트 포맷으로 인코딩 및 압축된다. 인코딩 시스템을 위한 오디오 소스들은 4개의 디지탈 오디오 테이프(DAT) 플레이어들(71a, 71b, 71c 및 71d)이다. 스튜디오 품질의 DAT 플레이어들은 Sony로부터 입수할 수 있다. DAT 플레이어(71a-71d)는 워크스테이션(40)에 의해 업계 규격 프로토콜 RS-422를 통해 접속되고 제어된다. DAT 플레이어(71a-71d)에 의해 출력된 오디오 신호들은 각각 오디오 인코더들(70a, 70b, 70c 및 70d)에 입력된다. 이 오디오 인코더들은 시판되어 있는 DOLBY AC-3 모델 DP 525 인코더를 사용하여 구현되고, 오디오 인터페이스 유닛(72)에 의해 제어된다. 통상, 오디오 인코딩은 지정된 타임 코드에서 시작하고 종료된다. 오디오 인터페이스 유닛(72)은 RS-232 접속을 통해 워크스테이션(30)으로부터 인코딩 개시 및 종료 타임 코드들과 같은 명령들을 수신한다. 또한, 오디오 인터페이스 유닛(72)은 다수의 디지탈 압축 오디오 데이타를 워크스테이션(20)에 송신되는 단일 디지탈 스트림으로 멀티플렉싱한다. 워크스테이션(20)은 입력 디지탈 오디오 스트림을 오디오 인코딩 장치(70)에 의해 출력되는 압축 디지탈 데이타에 대응하는 다수의 파일들로 디멀티플렉싱한다. 비디오 인코딩 장치(50)는 오디오 인터페이스 유닛(72)에 비디오 동기 신호에 기초하는 동기 신호를 제공한다. 이 동기 신호는 오디오 비트스트림이 비디오 인코딩 장치(50)에 의해 출력되는 비디오 비트스트림에 동기화되게 한다.
워크스테이션(30)은 다양한 오디오 인코딩 장치(70a-70d) 중 임의의 한 장치로부터의 오디오 데이타의 사본(duplicate)을 오디오 디코더(73)에 제공하도록 오디오 인터페이스 유닛(72)에 명령하는 기능을 갖는다. 오디오 디코더(73)는, 사용자가 스피커(75)를 통해 오디오를 들을 수 있도록, 압축된 오디오를 디코딩한다. 모니터를 하기 위한 오디오 인코딩 장치의 선택은, 키보드(32) 또는 포인팅 장치(33)를 통해 콘솔 모니터(31) 상의 그래픽 사용자 인터페이스의 대화를 통해, 조작자에 의해 이루어진다. 오디오 인터페이스 유닛(72)의 구성은 상술된 기능들을 실행할 수 있는 하드웨어이다. 이 하드웨어는 하나 이상의 프로그램된 마이크로프로세서들 및/또는 상술된 기능들을 달성하기 위해 장치된 종래의 회로 소자들이다.
워크스테이션(40)은 스튜디오 장비 제어 스테이션으로서, 녹화 비디오 테이프 레코더(52)와 함께, 재생 비디오 테이프 레코더(51) 및 디지탈 오디오 테이프 플레이어들(71a-71d)을 모두 제어하기 위해 적합한 커맨드를 생성한다. 또한, 워크스테이션(40)은 적합한 시간에 비디오 캡쳐를 개시하도록 디지탈 비디오 캡쳐 및 기억 장치(60)에 명령한다. 워크스테이션(40)과 다양한 비디오 및 오디오 테이프 데크(deck)은 업계 규격 RS-422 프로토콜에 의해 접속된다. 이 프로토콜은, 각각의 테이프 데크가 표준 타임 코드 포맷으로 현재의 테이프 위치를 워크스테이션(40)에게 알려주게 한다. 워크스테이션(40)은, 이러한 정보를 사용하여 비디오 및 오디오 정보가 플레이아웃되고 정확하게 기록되도록 다수의 테이프 데크를 적합하게 동기화시킨다. 본 실시예에서, 워크스테이션(40)은 California, Moorpark의 Editing Technologies Corp.로부터 입수할 수 있는 소프트웨어 프로그램인 Ensemble Pro 및DOS를 실행하는 표준 IBM 호환성 퍼스널 컴퓨터이다. 워크스테이션(30)이 RS-232 통신 포트를 통해 워크스테이션(40)에서 실행중인 Ensemble Pro와 통신할 수 있도록 Ensemble Pro 프로그램이 약간 수정되었음에 유의한다. 또한, 이 수정된 프로그램은 Editing Techonologies Corp.을 통해 입수할 수 있거나, 과도한 실험을 행하지 않고서도 본 기술 분야의 숙련된 자들에 의해 수정될 수 있다.
디지탈 비디오 캡쳐 및 기억 장치(60)는 인코딩 시스템 내의 2가지 기능들을 서브한다. 첫째로, 이 장치는 캡쳐 및 기억 기능을 사용하여 비디오 신호에 적용되는 수동 편집의 편리한 "전후(before-and-after)" 비교를 제공하고, 둘째로, 비디오 표시기에 그래픽 오버레이 기능을 제공한다. 이 그래픽 오버레이 기능은, 예를 들면 공간 수동 편집 단계 동안, 조작자가 양자화 및 그에 따라 할당된 비트들의 수가 변하는 해당 영역을 정의하게 하는데 사용된다,
본 발명에서, 디지탈 비디오 캡쳐 및 기억 장치는 California, Mountain View의 Viewgraphics로부터 입수할 수 있는 DRAM-기반 비디오 제품인 모델 VS6000으로서 구현된다. 이 장치에 입력되는 디지탈 비디오는 ITU-R-601[전에는 CCIR(601)] 이미지 해상도를 갖는 업계 규격 D1에 의해 이루어진다. 디지탈 비디오 캡쳐 및 기억 장치(60)의 출력은 비디오 신호의 적, 녹, 청 성분들을 나타내는 3개의 분리된 아날로그 신호들을 통해 비디오 표시 모니터(61)에 접속된다. 그래픽 오버레이 정보는 디지탈 비디오 캡쳐 및 기억 장치(60)에 의해 출력되는 최종적인 아날로그 신호가 생성되기 전에 디지탈 비디오 캡쳐 및 기억 장치(60)에 의해 처리되기 때문에, 비디오 표시 모니터(61) 상의 다른 비디오 데이타와 함께 조작자에게표시될 수 있을 것이다.
유닉스 환경 하에서 실행되는 워크스테이션(30)은 그래픽 윈도우들을 디지탈 비디오 캡쳐 및 기억 장치(60)을 사용하여 비디오 표시 모니터(61)에 맵핑한다. 이에 의해, 조작자는 모니터(61)에 나타난 표시의 그래픽 오버레이 평면에서 그래픽 동작들(예를 들면, 사각형 그리기)을 실행할 수 있다. 장치(60)는 오버레이 기능을 제공한다. 오버레이는, 메모리의 정보가 모니터를 구동하는 아날로그 비디오 신호로 변환되기 전에 비디오 메모리에서 실행된다. 이 시스템에 의해 사용된 VS6000에서는, 비디오 메모리의 상부에 8-비트 메모리 평면이 있다. 8-비트 평면에서, 컴퓨터는 임의의 칼라 그래픽 및 텍스트(text)를 나타낼 수 있다. 8 비트 평면 상의 "칼라들" 중 한 칼라는 투명 칼라이다. 투명 칼라를 갖는 오버레이 평면 상의 임의의 픽셀은 그 아래에 있는 비디오 메모리의 값을 취할 것이다. 일반적으로, 오버레이 평면의 대부분은 투명 칼라로 채워지고, 그래픽(예를 들면, 라인, 텍스트 등)에는 불투명 칼라가 이용된다. 따라서, 비디오 메모리 및 오버레이 그래픽 메모리로 구성된 표시 메모리가 형성된다. 모니터(61) 상에서의 표시를 위해 최종적으로 아날로그 신호로 변환되는 것이 표시 메모리이다. 조작자는 통상 키보드(32)에 관련된 포인팅 장치(33)를 사용하여, 그래픽 동작 및 그에 의해 생성된 그래픽 오브젝트(object)들의 조작을 실행한다.
워크스테이션(20)은 오디오 인터페이스 유닛(72)뿐만 아니라 비디오 인코딩 장치(50)로부터 디지탈 데이타 스트림을 수신한다. 워크스테이션(20)은 이더넷 접속을 통해 워크스테이션(30)에 접속되고, 워크스테이션(20)은 업계 규격 S-버스 인터페이스를 통해 비디오 인코딩 장치(50) 및 오디오 인터페이스 유닛(72)에 접속된다. 수신된 디지탈 데이타 스트림들은 별도의 데이타 파일들로서 하나 이상의 하드 디스크들(21)에 기억된다. 캡쳐된 디지탈 스트림 데이타를 하드 디스크(21)에 전달하는 데에 별도의 DMA(Direct-Memory-Access) 카드들이 사용된다. 디지탈 데이터가 대량으로 되는 긴 비디오 시퀀스의 경우, 하드 디스크(21)는 Sun Microsystems로부터 입수할 수 있는 SPARCstorage Array X655A/G5와 같은 하드 디스크들을 사용하여 구현될 수 있다. 이 실시예에서, 워크스테이션(20)은 Sun Microsystems로부터 입수할 수 있는 SPARCserver 1000이다.
또한, 워크스테이션(20)은 비디오 및 오디오 압축 데이타에 대응하는 데이타 파일들을 디코딩 장치에 전달 또는 이송하는 데에 적합한 단일 포맷 파일로 포맷한다. 최종 매체는 디스크-기반인 것이 바람직하며, 이 경우 관련된 디스크 포맷에 따라 포맷된다. 통상, 포맷된 파일은, 디지털 테이프 등의 일부 중간 디지털 기억수단에 의해 하나 또는 복수의 최종 전송 매체로의 전달이 행해지는 설비(facility)에 이송된다. 이 도면에 도시된 디지탈 기억 장치(22)는 이러한 목적을 담당한다. 본 실시예에서, 디지탈 기억 장치(22)는 시판되고 있는 8mm Exabyte 테이프 드라이브를 포함한다. 디지탈 기억 장치(22)의 인터페이스는 업계 규격 SCSI(Small Computer System Interface)이다.
다수의 SCSI 장치들은 동일한 SCSI 버스에 부착될 수 있는 것으로 공지되어 있다. 따라서, 디지탈 기억 장치(22)는 상업적으로 사용가능한 디지탈 선형 테이프(DLT : digital linear tape) 드라이브, 광자기(MO) 디스크 드라이브 또는플로피 디스크 드라이브와 같은 다른 SCSI 소자들을 포함할 수 있다. 이 구성들은 쉽게 수용되고, 포맷 단계 전 또는 포맷 단계 중에 필요해질 수 있는 임의의 보조 데이타를 위한 가요성 입력 메카니즘(flexible input mechanism)을 제공하는 것을 담당할 수 있다. 예를 들면, 영화 제작에서, 자막(subtitle) 정보는 대부분의 경우 상술된 SCSI 장치 중 하나를 필요로 하는 매체에서 이용가능하다. 이 경우에, 보조 데이타는, 포맷된 파일에 포함되도록 워크스테이션(20)에서 실행 중인 소프트웨어 프로그램에 의해 판독되고 조작된다. 보조 데이타는 U.S. Close-Caption 포맷으로 된 자막 데이타를 포함할 수 있다. 보조 데이타는 프로그램 코드 또는 후기 데이타(postscript data)와 같은 임의의 요구된 데이타를 포함할 수 있다.
제1B도는 제1A도의 시스템과 동일한 방식으로 동작하고 그에 대응하는 시청각 인코딩 시스템(98)을 도시한 것이다. 제1B도에서, 인코딩 시스템으로의 비디오 입력은 카메라(80)으로부터 행해지고, 오디오는 마이크로폰(82)로부터 제공된다. 시각적인 정보 및 오디오 정보(가능한 경우)를 포함하는 영화 필름은 필름을 조명하기 위한 광과, 필름으로부터의 이미지를 캡쳐하기 위한 광 검출기를 포함하는 전송 장치(88)을 통해 인코딩 시스템(98)에 전달된다. 입력 소자들(80, 82 및 88)로부터의 정보는 오디오 또는 비디오 테이프 fp코더와 같은 인코딩 시스템(98)에 의해 인코딩되기 전에 전자기 포맷으로 기억된다. 오디오 및 비디오 테이프들은 제1A도의 시스템에 의해 인코딩된다.
인코딩 시스템에 의해 생성된 최종 디지탈 비트스트림은 광 디스크들을 프레스(press)하는 광 디스크 마스터링 장치(90), 광 디스크들을 기록하는 광 디스크라이터(84)에 송신되거나, TV 송신기(86)을 통해 TV 수신기 또는 세트-탑 박스 디코더(set-top box decoder)에 송신될 수 있다. 광 디스크들의 프레스 가공 및 생성은, 예를 들면 마스터 디스크를 사용하여 공지된 상업적으로 사용가능한 방식으로 실행된다. 인코딩된 정보는 비디오-온-디맨드 시스템(video on demand system)에서 사용가능하다. 인코딩된 비트스트림은 인코딩 프로세스에 대응하는 디코딩 프로세스에 의해 최종적으로 디코딩되고, 시청각 정보는 TV 또는 모니터 상에서 사용자에게 표시된다. 디코딩 장치는 TV 또는 모니터 상에 표시하기 위해 인코딩 디스크들을 디코딩하는 디지탈 비디오 디스크 플레이어들을 포함한다.
제1B도로부터, 인코딩 시스템은 오디오 및 이미지들을 나타내는 전기 신호를 입력하고, 전기 신호들을 새로운 포맷으로 변형시켜서, 최종적으로 이 신호가 디코딩되어, 인코딩되었던 원래의 정보를 재생하는 것은 명백하다.
Ⅲ. 시스템 동작
제2도는 제1A도에 도시된 시스템의 전반적인 동작을 도시한 플로우 챠트이다. 제2도에 도시된 바와 같이, 시스템은 동작 주기 동안 몇몇 "상태"를 거친다. 굵은 실선은 정상 동작 경로를 나타내고, 실선은 인터럽트 종료 경로를 나타내고, 점선은 바이패스 경로(by-pass path)를 나타낸다.
시스템에 의한 제1 동작은 셋업 상태(100)에서 발생한다. 이 단계에서 압축 상태(102)가 시작되기 전에 입력 파라미터들이 지정된다. 압축 상태(102)에서, 재생 VTR(51)의 테이프에 기억된 비디오 이미지가 비디오 인코딩 장치(50)에 의해 디지탈 압축 포맷으로 인코딩된다.
압축 상태(102) 후에, 사용자는 편집 상태(104)에서 사전 압축된 데이타의 화질에 기초하여 압축 프로세스를 수동으로 편집할 수 있다. 이에 의해, 사용자는 비디오의 프레임의 영역들 내에서 또는 시간 주기동안 화질을 증가시키거나 감소시킬 수 있다. "편집"이란 용어는 장면들이 화상 스트림에 추가되거나 제거되는 것을 의미하지 않음에 유의하기 바란다. 본 발명에서, "편집"이란 용어는 비디오의 양자화 및 이에 따라 비디오 품질을 변경시키는 것을 의미한다. 이미지가 편집 상태(104)에서 편집된 후에는, 새로운 사용자 지정 파라미터들에 따라 데이타를 인코딩하기 위해 압축 상태(102)에서 다시 압축 동작을 실행할 필요가 있다,
사용자가 편집된 포맷의 비디오에 만족한 후에, 오디오, 비디오 및 자막과 같은 그 외의 정보를 포함하는 모든 정보가 포맷 상태(106)에서 요구된 포맷으로 결합된다. 완료 상태(108)에서 임의의 임시 파일들이 소거되고, 프로세스는 종료 상태(110)에서 종료한다. 제2도에 도시된 개별 상태들에 대한 보다 상세한 정보는 제3도 내지 제6도를 참조하여 설명될 것이다.
제3도는 셋업 상태(100)에서 실행된 단계들을 도시한 것이다. 단계(120)는 셋업 상태로 시작하며, 단계(122)는 시스템을 초기화한다. 이 단계에서는, 워크스테이션(30)에 포함된 시스템 제어 소프트웨어의 실행이 시작되고, 콘솔 표시기(31)에 표시되고 키보드(32) 및 포인팅 장치(33)을 통해 입력된 파라미터들을 갖는 사용자 인터페이스를 담당하는 그래픽 사용자 인터페이스(GUI) 프로그램파 같은 다른 프로그램이 개시된다. 또한, 단계(122) 동안에, 워크스테이션(30)의 시스템 제어기 소프트웨어는, 다른 장치를 조회하여, 시스템의 사용가능한 장치들을 포함하는 시스템 상태를 판정한다.
단계(124)는 GUI를 통해 사용자에게 정보를 표시한다. 웰컴 메시지(welcome message), 시스템에 관련된 정보, 인코딩 프로세스에서 사용된 파라미터들, 및 임의의 사전에 인코딩된 파일들의 존재가 표시된다. 표시된 시스템 정보는 오디오 인코더들, VTR, 오디오 테이프 데크, 및 그 구성을 포함하는, 시스템에 접속된 소자들을 포함한다. 시스템이 사전 인코딩된 파일들을 포함하는 경우에, 파일들을 생성하는데 사용된 오디오 및 비디오 인코딩 파라미터들을 기술하는 정보가 사용자에게 표시된다.
단계(126)에서 표준 또는 사용자 지정 시스템 파라미터들을 사용하여 인코딩을 시작하는 커맨드, 시스템 파라미터들의 임의 변경, 또는 선택된 파라미터들이 허용될 수 있다는 확인(confirmation)과 같은 정보가 사용자로부터 입력된다. 또한, 사용자는 인코딩 동작의 개시 및 종료 타임 코드를 입력한다.
그 다음, 단계(128)에서 인코딩 및 압축 동작을 준비하기 위해 그래픽 사용자 인터페이스로부터 입력된 데이타를 시스템 제어기 소프트웨어에 전달함으로써 입력 데이타를 처리한다. 셋업 상태는 단계(130)에서 종료된다.
제4도는 압축 상태(102)에서 실행되는 프로세스를 도시한 것이다. 정상 동작 흐름에 따르면, 사용자는 셋업 상태에서 압축될 비디오 및 임의의 수반 오디오 시퀀스를 미리 지정하고 있다. 그 후, 사용자는 자동 또는 자동 압축 수순을 실행하도록 시스템에 명령해야만 한다. 자동 압축 수순 중의 비디오 압축은 사용자가 시간 주기동안이나 또는 비디오의 프레임 내에서 동적 양자화 프로세스를 제어할 수없게 한다. 코딩 판정은 비디오 인코딩 장치(50)에 의해 계산된 객관적인 측정값에 기초하여 행해지는 초기 압축 실행으로서 의도되고 있다. 자동 압축이 이미 실행되었으면, 사용자는 공간적으로(비디오의 프레임에 대해) 또는 시간적으로(비디오 시퀀스 동안) 편집-압축 모드에서의 양자화를 수동으로 조정할 수 있다.
압축 상태에서, 단계(140)에서 시작된 후에, 단계(142)에서 압축 동작을 준비한다. 이 동작에서, 압축 파라미터와 함께 압축될 비디오 및 임의의 수반 오디오의 타임 코드와 같은 압축 프로세스의 파라미터들은 워크스테이션(10)을 통해 워크스테이션(30)으로부터 비디오 인코딩 장치(50)로 다운로딩(downloading)된다.
그 후 단계(144)에서 요구된 압축 종류를 결정한다. 제1 정보가 압축된 때, 압축 프로세스는 사용자의 개입없이 자동적으로 실행된다. 단계(146)에서 자동 압축 프로세스를 준비한다. 이 준비 중에, 워크스테이션(30)은 디지탈 오디오 테이프 플레이어들(71a-71d) 및 관련 오디오 인코딩 장치들(70a-70d) 중 어느 것이 사용될 지를 결정한다. 또한, 워크스테이션(30)은 오디오 인터페이스 유닛(72)을 통해 비디오 인코딩 장치(50) 및 오디오 인코더들(70a-70d)의 출력으로부터 비트스트림 캡쳐를 준비하도록 워크스테이션(20)에 명령한다. 또한, 재생 VTR(51), 녹화 VTR(52) 및 DAT 플레이어들(71a-71d)은 테이프의 적합한 개시 위치로 회전된다. 그 후, 워크스테이션(40)은 재생 비디오 테이프 레코더(51), 녹화 테이프 레코더(52) 및 DAT 플레이어들(71a-71d)에 단계(148)에서 회전을 시작하도록 알린다. 그후 단계(150)에서 비디오 인코딩 장치(50)을 사용하여 MPEG-1 또는 MPEG-2 포맷과 같은 요구된 포맷에 따라 비디오 데이타를 인코딩한다. 또한, 오디오 데이타는 Dolby AC-3 포맷과 같은 요구된 포맷에 따라 인코딩된다. 다음으로, 후속 수동 편집 프로세스를 돕기 위해 로그 파일들을 생성할 필요가 있다. 로그 파일들은, 나중에 비디오 데이타의 편집을 실행하기 위해 필요한 인코딩된 비디오 데이타의 파라미터들을 나타내는 것이다. 인코딩 프로세스는 적합한 타임 코드가 도달될 때 단계(160)에서 종료된다. 이 타임 코드는 인코딩될 정보의 마지막인 경우도 있고, 비디오 시퀀스의 마지막이 아닌 사용자가 지정한 지점인 경우도 있다.
단계(144)에서 자동-압축 프로세스가 이미 실행되었고 사용자가 제5도에 도시된 바와 같이 편집 상태 중에 지정된 파라미터들을 사용하여 하나 이상의 비디오 프레임들의 화질을 수동으로 변경시킬 것을 요구하는 것으로 판단하면, 단계(144)에서 편집-압축 동작을 실행해야 하는 것을 판정할 것이다. 단계(152)에서 수동 편집 개시점인 요구된 개시점에 대한 재생 VTR(51)의 큐(cue)를 포함하는 편집 압축 동작을 준비한다. 또한, 오디오 장비는 일단 오디오 정보가 자동 압축 동작에서 인코딩되면 이 정보를 변경시킬 필요가 없기 때문에 디스에이블링(disabling)된다. 그 후, 단계(154)에서 재생 VTR(51) 및 녹화 VTR(52)을 회전시킨다.
계속하여, 단계(156)에서 제5도에 도시된 편집 상태에서 사용자에 의해 지정된 파라미터에 따라 비디오 데이타를 인코딩하기 시작한다. 편집 압축은, 종료 타임 코드가 도달하면, 단계(160)에서 종료된다. 단계(162)에서 압축 및 인코딩이 완료되었다는 메시지를 사용자에게 표시하고, 프로세스가 단계(164)에서 종료한다.
제5도는 편집 상태(104)에서 실행된 프로세스를 도시한 것이다. 이전에 설명된 바와 같이, 본 명세서에 기재된 편집은 장면들이 비디오 시퀀스 내에서 제거되고, 단축되거나 이동되는 종래의 비디오 편집이 아니다. 본 명세서에서의 편집 상태는 비디오의 양자화를 수동으로 설정함으로써 비디오의 일부 또는 타임 시퀀스의 품질을 변경시키는 것을 말한다.
단계(170)에서 편집 상태를 개시한 후에, 단계(172)에서 사용자에게 인코딩된 비디오의 비트 할당을 변경시킴으로써 비디오를 수동으로 편집할 것인지를 질문한다. 사용자가 비트 할당의 변경을 원하지 않으면, 프로세스는 단계(188)에서 종료된다. 사용자가 비트 할당의 변경을 원하면, 사용자는 단계(174)에서 편집될 비디오 세그먼트를 한정한다. 이것은 화질을 변경해야 하는 비디오의 시간 주기를 선택함으로써 실행된다. 그 후, 단계(176)에서 사용자가 공간 편집(spatial editing)과 시간 편집(temporal editing) 중 어느 것을 원하는지를 결정한다. 공간 편집은 비트들의 양자화 또는 할당이 비디오 프레임 내에서 변경되는 경우이고, 시간 편집은 비트들의 양자화 또는 할당이 시간 주기에 걸쳐 변경되는 경우이다. 사용자가 공간 편집을 선택하면, 플로우 챠트의 흐름은 편집될 프레임 내에서 영역들을 입력하는 단계(178)로 진행한다. 또한, 적용해야 할 변경의 상대적인 정도(relative degree)가 입력된다. 본 발명의 경우, 0을 포함한 -5 내지 +5의 정수 스케일(integer scale)을 사용하여 변경의 상대량을 나타낸다. 사용자는 키보드(32) 및/또는 포인팅 장치(33)로 비디오의 영역을 마크하고, -5 내지 +5 사이(-5 및 +5 포함)의 정수들 중 한 정수를 할당할 것이다. 또한 사용자가 영역에 대해 미리 설정된 양자화 레벨을 변경할 필요가 없음을 나타낼 수도 있다. 예를 들면, 사용자가 특정 영역에 대한 비트 할당을 증가시키길 원하면, 다른 영역에 대한비트 할당이 감소되어야만 할 필요가 있다. 사용자가 "보호 영역(protected)"이라고 하는 변경될 수 없는 영역을 설정하면, 향상된 품질 영역을 위해 필요한 비트들이 보호 영역으로부터 취하지 못하게 된다.
단계(176)에서 사용자가 시간 편집을 원한다고 판정하면, 플로우 챠트의 흐름은 시간 주기의 편집 방법이 입력되는 단계(180)로 진행한다. 공간 편집과 마찬가지로 시간 편집의 경우에도, 사용자는 비디오의 특정 시퀀스에 적용될 변경의 상대 정도를 나타내는 -5 내지 +5 사이의 정수값들을 할당한다. 이 변경은 선택된 시간 주기 전체에 대해 유효이다.
공간 편집 또는 시간 편집이 단계(178 및 180)에서 실행된 후에, 단계(182)에서는 예를 들면 수동으로 입력된 파라미터들에 따라 비디오 장면을 MPEG-2 포맷으로 다시 인코딩하고 압축한다. 이전에 인코딩된 데이타는, 사용자가 품질이 어떻게 변경되었는지를 면밀히 비교하도록 비디오 표시 모니터(61) 상에 새롭게 편집된 데이타 다음으로 표시된다.
조작자가 편집될 세그먼트를 지시할 때, VTR(52)로부터의 비디오는 기억 장치(60)에 전달되어, 기억 장치(60)의 전체 사용가능한 메모리의 최대 1/2을 차지한다. 이 세그먼트는 "비포(before)" 세그먼트에 대응한다. 편집 압축 프로세스 중에, 비트스트림은 워크스테이션(20)에 의해 캡쳐되고, 마스터 비디오 비트스트림 파일로부터 독립된 디스크 파일로 기억된다. 마스터 비디오 비트스트림 파일은 전체 영화의 압축된 비트스트림이다. 편집 압축 비디오는 VTR(52)에 기록된다. 인코딩 프로세스 중에, 조작자는 녹화 VTR(52)에 기록됨과 동시에 화상을 볼 것이다.조작자가 인코딩 후에 화상을 보기 원한다면, VTR은 재생 기계로서 사용될 수 있다. 조작자가 "비포 & 애프터" 비교를 하기 원하면, VTR(52)로부터의 대응 세그먼트가 기억 장치(60)에 전달되고, 기억 장치(60)의 전체 메모리 중 나머지 1/2까지를 차지한다.
이러한 인코딩 후에, 조작자는 변경된 비디오를 보존해야 할 것인지의 여부를 결정한다. 조작자가 "애프터" 세그먼트를 무시하기로 결정하면, 마스터 비트스트림은 그대로 남겨지고, 편집 압축 비트스트림이 삭제된다. VTR(52)가 마스터 비트스트림을 반영시키기 위해, 편집 세그먼트에 대한 추가적인 자동 압축을 "비포" 세그먼트를 기록할 목적으로만 실행한다. 장치(60)를 사용하는 대신 VTR(52)에 "비포" 세그먼트를 다시 전달할 수도 있다. 조작자가 "애프터" 세그먼트를 유지하기로 결정하면, 마스터 비트스트림 파일은 편집 압축 비트스트림 파일을 포함하도록 수정되어야만 하는데, 이는 이후에 기술될 것이다.
사용자가 단계(184)에서 비디오가 만족할만 하다고 결정하면, 이전에 인코딩된 데이타는 새롭게 인코딩된 데이타로 대체된다. 이 단계는 이하의 별도 섹션에서 더 상세히 설명된다. 새롭게 인코딩된 데이타가 이전에 인코딩된 데이타를 대체한 후에, 단계(192)에서 사용자가 편집을 더 원하는지를 결정한다. 편집이 더 요구되면, 플로우 챠트의 흐름은 단계(174)로 다시 진행된다. 사용자가 비디오의 편집을 완료하면, 흐름은 편집 상태를 종료하는 단계(188)로 진행한다.
사용자가 단계(184)에서 비디오가 만족스럽지 못하다고 결정하면, 사용자는 단계(186)에서 편집 동작을 종료하여 편집 변경이 기록되지 않거나 사용자가 비디오를 재편집할 수 있게 할 수 있다. 편집할 때 사용자가 새로운 파라미터를 선택함으로써 비디오는 다시 편집된다. 또한, 사용자가 원하면, 편집될 새로운 비디오 세그먼트를 정의할 수도 있다.
사용자가 압축(자동-압축만 또는 편집-압축과 함께 자동 압축)으로 만족하는 경우, 압축된 비디오, 압축된 오디오를 포함하는 개별적인 데이타 파일들, 및 임의의 다른 파일들은 최종 포맷으로 포맷할 준비가 되고 포맷 단계(106)가 시작된다. 보조 데이타는 최종 포맷 데이타 파일에 포함될 자막과 같은 정보를 포함할 수 있다. 제6도에 도시된 플로우 챠트에서, 단계(200)에서 포맷 상태를 시작한 후에, 사용자가 보조 데이타를 포함하도록 결정하면, 워크스테이션(20)은 예를 들면 플로피 디스크 드라이브 내의 플로피 디스크를 포함하는 디지탈 기억 장치(22)로부터 보조 데이타를 판독한다. 그 후 단계(204)에서 최종 포맷 파일을 생성하기 위해 인코딩된 오디오 및 비디오와 보조 데이타를 결합시킨다. 시스템에 의해 생성된 최종 디지탈 비트스트림은 ISO/IEC 13818-1에 정의된 '프로그램 스트림(Program Stream)'으로서 구성될 수 있다. 대안으로, 최종 비트스트림은 직접 위성(direct satellite) DSS 포맷, 광 디스크에서 사용되기에 적합한 가변 비트 레이트(variable bit rate: VBR) 포맷과 같은 임의의 유형의 포맷, 또는 임의의 다른 유형의 포맷일 수 있다. 인코딩된 비디오 및 오디오가 따로 따로 기억될 수 있기 때문에, 시스템은 동일한 인코딩된 비디오 및 오디오가 상이한 최종 포맷으로 인코딩되게 한다. 이것은 상이한 포맷을 생성하는 기능을 하는 하나의 포맷터 또는 독립된 포맷터들(seperate formatters)을 사용하여 달성된다. 단계(206)에서 포맷된 파일을 디스크(21)에 저장한다.
완료 상태는 단계(210)에서 디지탈 기억 장치들(22) 내의 테이프에 포맷된 파일을 기록하는 단계(208)로 들어간다. 이어서, 종료 상태는 더 이상 필요하지 않은 임시 파일들을 삭제하는 다수의 "하우스 클리닝(house cleaning)" 기능들을 실행하는 단계(212)로 들어간다. 압축 프로세스가 완료되기 전의 경우와 같이 비정상 종료 요청의 경우에, 중단 절차가 워크스테이션(30) 내에서 실행되어 오디오 및 비디오 테이프 플레이어들을 정지시키고 잠정적으로 손상된(corrupted) 데이타 파일들을 제거한다. 프로세스는 단계(216)에서 종료된다.
IV. 시스템 대안
바람직한 시스템 구성 장치들 및 그들의 동작에 대해 상술되었는데, 대안적인 하드웨어가 제1A도 및 제1B도에 도시된 하드웨어를 대신할 수 있다. 비디오 인코딩 장치(50)는 입수가능한 경우 MPEG-2 비디오 인코더인 것이 바람직하다. 그러나, MPEG-1 비디오 인코더로 공지된 상업적으로 사용가능한 ISO/IEC 1172-비디오 표준 인코더가 사용될 수 있다. MPEG-1 버퍼 관리 모듈이 워크스테이션(10)과 같은 외부 소스로부터 제어되도록 MPEG-1 인코더를 변경시킬 필요가 있다. 부수적으로, ITU-R 601(전에는 CCIR 601) 해상도 비디오를 포함하도록 입력 비디오 지원을 부가시켜야 한다. 이러한 변경은 과도한 실험 없이 디지탈 비디오 인코딩 분야에 숙련된 자들에 의해 구현될 수 있다.
4개의 오디오 테이프 플레이어들 및 4개의 오디오 인코더들이 제1A도에 도시되었지만, 다른 구성을 오디오 시스템에 쉽게 채용할 수 있다 예를 들면, 상업적으로 입수가능한 8mm 디지탈 오디오 플레이어가 다수의 DAT 플레이어들 대신 사용될 수 있다. 단일 TASCAM 디지탈 오디오 플레이어를 사용하여, 단일 RS-422 제어 신호만이 워크스테이션(40)으로부터 필요한데 8개까지의 독립된 오디오 채널들이 동시에 지원될 수 있다. 물론 오디오 인코더들은 8개의 오디오 입력들을 동시에 수용할 수 있고 오디오 인터페이스 유닛(72)은 4개로부터 8개로 오디오 데이타 스트림들을 증가시키도록 변경되어야만 한다.
동시 오디오 및 비디오 인코딩에 대한 대안으로서, 오디오 및 비디오 인코딩은 상이한 시간 및/또는 위치에서 행해져서 나중에 최종 포맷으로 결합될 수 있다. 이것은 SMPTE(Society of Motion Picture and Television Engineers) 타임 코드 포맷과 같이 공지된 타임 코드들을 사용할 필요가 있다. 타임 코드들은 비디오 테이프 플레이어, 워크스테이션, 또는 별도의 독립형(stand-alone) 타임 코드 생성기에 의해 생성된다.
녹화 VTR(52)는 비디오 디코더가 사용가능하고 워크스테이션(20)에 접속되면 제거될 수 있다. 이 경우에, 재구성된 비디오는 압축 단계 중에 비디오 인코딩 장치(50)로부터 녹화되는 대신 디스크(21)의 디스크 파일들로부터 생성된다. 녹화 VTR(52)을 제거하면 장비 뿐만 아니라 테이프 비용면에서 시스템 비용이 상당히 절약된다.
또한, 표시 비디오의 그래픽 오버레이 평면에 그래픽 동작을 실행하는 능력은 상업적으로 입수가능한 X-터미널 옵션을 사용하여 콘솔 표시기에 지원될 수 있다. 예를 들면, 콘솔 표시기(31)는 오버레이 그래픽 윈도우로 비디오를 표시할 수있는 X-터미널로 대체될 수 있다. Human Designed Systems of King of Prussia, Pennsylvania로부터의 HDSV View Station과 같은 상업적으로 입수가능한 멀티미디어 표시 터미널은 필요한 기능들을 제공한다. 비디오 디코더로부터의 비디오는 표시기를 위한 또한 수동 편집 영역 정의 동작들을 위한 X-터미널에 접속될 수 있다. 그러나, 비디오 디코더로부터의 전문가적 품질 비디오는 조작자가 재구성된 비디오 신호의 품질을 평가하도록 제1A도에 도시된 모니터(61)와 같은 전문가용 모니터에서 표시되어야 한다.
V. 최적 인코딩 효율성을 유지함과 동시에 오디오 인코더들의 수를 감소시킴
상술된 바와 같이, 제1A도는 멀티패스 비디오 인코딩 장치(50) 및 4개의 1-패스(one-pass) 오디오 인코더들(70a, 70b, 70c 및 70d)을 갖는 인코딩 시스템을 도시한 것이다. 재생 VTR(51)은 비디오 인코딩 장치(50)에 인코딩될 비디오 신호를 제공하고 디지털 오디오 테이프(digital audio tape: DAT) 플레이어들(71a-71d)은 각각 1-패스 오디오 인코더들(70a-70d)에 인코딩될 오디오 신호들을 제공한다.
본 발명의 양호한 실시예는 최종 포맷 시청각 데이타 스트림에서 8개의 오디오 트랙들을 인코딩한다. 각각의 오디오 트랙은 하나 이상의 오디오 채널들을 포함한다. 예를 들어 오디오 트랙이 좌우 채널을 포함할 수 있지만, 다른 장치에서는 오디오를 포함할 수 있다. 최상의 효율적인 시청각 인코딩을 실행하기 위해 오디오 인코더들의 수를 결정하는 방식 및 이 시청각 인코딩을 실행하는 방식은 제7도에 설명된다. 제7도에서, 시작 후에, 단계(240)에서 비디오 인코딩에 필요한 패스들의 수, P를 결정한다. MPEG 포맷으로 비디오를 인코드하기 위해, 통상 2개 이상의 패스들이 비디오를 인코딩하는데 필요하다. 본 발명의 경우, 양호한 패스들의 수는 2개지만 3개 이상의 패스들도 또한 가능하다. 그 후 단계(242)에서 인코딩될 오디오 트랙들의 수, T를 결정한다. 본 발명에서, 오디오 트랙들의 수가 8개인 것이 바람직하지만, 오디오 트랙들의 수가 8개가 아닐 수도 있다. 다음으로, 단계(244)에서 최상의 효율적인 시청각 인코딩을 실행하는데 필요한 1-패스 오디오 인코더들의 수, AE를 계산한다. 필요한 오디오 인코더들의 수는 비디오 인코딩에 필요한 패스들의 수로 나누어진 인코딩될 오디오 트랙들의 수와 동일하다. 양호한 실시예에서, 인코더에서 2개의 패스들로 나누어진 8개의 오디오 트랙들은 필요한 4개의 오디오 인코더들과 동일하다. 오디오 인코더들의 계산된 수가 정수가 아니면, 오디오 인코더들의 계산된 수를 반올림하여 정수가 되게 할 필요가 있다. 예를 들면, 2-패스 비디오 인코더의 경우 7개의 오디오 트랙들만이 인코딩되어야 한다. 7/2 = 3.5 이고 3.5는 다음 최고 정수로 반올림되어 4가 된다. 이 시스템에 의해 실행된 인코딩 프로세스 중에, 하나의 비디오 패스는 3개의 오디오 인코더들 만을 사용하고 다른 비디오 인코딩 패스는 4개의 모든 오디오 인코더들을 사용한다. 단계(240-244)에서 시스템의 초기 설계에 따라 실행되면 되고, 시청각 작업이 인코딩될 때마다 필요한 1-패스 오디오 인코더들의 수를 계산할 필요가 없음을 주목해야 한다. 또한, 단계들(240, 242 및 244)는 워크스테이션(30)과 같은 컴퓨터에 의해 구현되는 컴퓨터/머신(machine)이거나, 또는 시청각 인코딩 시스템의 사용자 또는 설계자에 의해 결정될 수 있다.
오디오 인코더들의 수가 결정되었고 시청각 인코딩 시스템이 설치된 후에,시청각 인코딩 프로세스를 시작할 수 있다. 단계(246)에서 카운터(COUNTER)를 1로 설정한다. COUNTER는 비디오 인코딩 시스템의 각 패스를 계산하는데 사용되는 변수이다. 그 후, 단계(248)에서 전체는 아니지만 몇몇 오디오 트랙들에 대해 1-패스 오디오 인코딩을 실행하면서 제1 비디오 인코딩 패스를 수행한다. 예를 들어, 8개의 오디오 트랙들과 2-패스 비디오 인코더가 있는 경우, 4개의 오디오 인코더들이 제1 패스 중에 사용될 수 있다. 그 후 단계(250)에서 COUNTER를 1만큼 증가시킨다. 단계(252)에서는 단계(248)에서 사용된 것과 동일한 오디오 인코더들을 사용하여 인코딩되지 않은 오디오 트랙들의 1-패스 오디오 인코딩을 실행하면서, 다음 비디오 인코딩 패스를 실행한다. 예를 들어, 제2 비디오 인코딩 패스 중에, 단계(248)에서 사용된 4개의 오디오 인코더들은 5 내지 8개의 오디오 트랙들을 인코딩할 수 있다. 그 후, 단계(254)에서 COUNTER가 필요한 비디오 인코딩 패스들의 수인 P와 동일한 지를 판정한다. 양호한 실시예에서, 2개의 비디오 인코딩 패스들만이 있고, 따라서 프로세스는 종료된다. 다른 경우, 흐름은 단계들(250, 252 및 254)의 루프를 실행하기 위해 다시 복귀된다.
물론, 8개의 오디오 트랙들을 갖는 시청각 작업에서 2-패스 비디오 인코더를 사용하는 것 외에 다른 실시예들이 가능하다. 예를 들면, 6개의 오디오 트랙들에서 3-패스 비디오 인코더를 사용할 수 있다. 이러한 상황에서, 오디오 인코더들의 가장 효율적인 수는 3(6/2 = 3)이다. 2-패스 비디오 인코더가 사용되고 총 6개의 오디오 트랙들을 인코딩해야 할 경우, 오디오 인코더들의 가장 효율적인 수는 3이다. 대안으로서, 인코딩하기 위해 5개의 오디오 트랙들이 있는 시스템에서는 3-패스 비디오 인코더가 사용될 수 있다. 이 대안적인 시스템은 두 개의 1-패스 오디오 인코더를 필요로 하며, 오디오 인코더들 중 하나의 인코더만이 사용되는 경우 비디오 인코딩 패스 중 임의의 하나가 동작하고, 2개의 오디오 인코더들 모두 사용되는 경우에는 나머지 2개의 비디오 인코딩 패스가 동작한다. 물론, 상술된 설명에 비추어 볼 매, 숙련된 자들에게 명백한 바와 같이, 비디오 인코더들 및 다수의 오디오 트랙들의 다른 결합들이 가능하다.
본 발명의 중요한 특성은 가능한한 효율적으로 비디오 인코딩의 패스가 발생할 때 오디오 인코딩을 항상 실행하고 오디오 인코딩이 발생중일 때 비디오 인코딩의 한 패스를 항상 실행하는 것이다. 이러한 구성에서, 적어도 몇몇 오디오 인코더들은 비디오 인코딩 동작의 각각의 패스 중에 항상 사용된다. 가능한한 효율적이 되도록, 오디오 트랙들의 수가 오디오 인코더들의 수로 균일하게 나누어지지 않을 때(즉, 인코딩될 오디오 트랙들의 수는 비디오 패스들의 수로 나눌때 나머지가 있을 때), 전체 인코딩 프로세스 중에, 비디오 패스들의 수에서 나머지를 뺀 수와 동일한 수의 유휴(idle) 오디오 인코더들이 있다. 예를 들면, 3개의 패스 비디오 인코더 및 4개의 오디오 트랙들의 경우, 2개의 오디오 인코더들이 필요하고 나머지는 1[예를 들어, 4/3 = 1(나머지가 1)]이다.
따라서, 가능한 효율적으로 3개의 패스 비디오 인코딩이 완료됨과 동시에 오디오 인코딩이 완료되기 위해서는, 오디오 인코더가 유휴기인 때가 2회 이상(예를 들어, 3개의 비디오 패스에서 나머지 1을 감하면 2가 된다)일 수 없다. 인코더가 유휴기인 2회는 동일 패스(동일 비디오 인코딩 패스에 2개의 상이한 오디오 인코더들이 유휴기이다)시 발생할 수 있고, 이는 상기 실시예의 나머지 2개의 비디오 인코딩 패스들 각각이 모든 오디오 인코더를 사용함을 의미하거나, 또는 하나의 유휴 오디오 인코더가 있는 2개의 비디오 인코딩 패스가 있음을 의미한다. 이러한 2개의 패스시, 동일 또는 다른 오디오 인코더들이 유휴 상태일 수 있다.
VI. 인코딩된 비디오 정보를 저장하기 위한 로그 파일, 및 로그 파일 및 인코디된 비디오를 액세스하기 위한 로그 인터프리터 유틸리티
개시된 인코딩 시스템은 초기에 비디오를 MPEG-2, MPEG-1, 또는 다른 디지탈 비디오 인코딩 포맷과 같은 압축 디지탈 포맷으로 압축시킨다. 이러한 인코딩은 시스템 구성 요소에 관한 섹션 Ⅱ 및 전반적 시스템 동작에 관한 섹션 Ⅲ에서 기술되어 있다. 그 다음으로 인코딩된 비디오 데이타는 예를 들어 하드 디스크에 디지탈 포맷으로 저장된다.
디지탈 비디오 인코딩 프로세스 동안, 비디오의 통계치 및 다른 정보들이 발생되어 로그 파일에 저장된다. MPEG 비디오 인코딩에 친숙한 본 기술 분야의 통상의 기술을 가진 자는 비디오를 기술하는 통계치 및 정보의 유형 및 이러한 통계치와 정보를 어떻게 발생하는가를 잘 알고 있을 것이다. 종래의 인코딩 시스템에서는 이러한 유형의 정보 및 데이타가 발생되나 비디오 인코딩 후에는 통상 폐기된다. 그러나, 본 발명에서는 화상을 코딩하는데 사용되는 총 비트, 평균 제곱 에러(mean squared error), 각 화상에 대한 평균 양자화기 스케일 등과 같은 생성 정보는 인코딩 프로세스 후에 시스템 RAM으로부터 로그 파일에 덤핑(dumping)된다. 본 발명에서 사용된 로그 파일의 실시예들이 제8A도 내지 제10B도에 도시된다. 이러한 로그 파일들은 특히 VBR 시스템에서 유용하며, 비디오 인코더의 초기 패스(패스들) 동안 발생된다. 그 다음에 로그 파일들은 최종 인코딩 패스 동안 및 비디오의 차후 편집 및 재인코딩 동안 사용된다.
본 발명에 사용될 수 있는 로그 파일에는 3개의 다른 유형이 있는데, 순차 레이어 로그 파일, 화상 레이어 로그 파일 및 매크로블럭 레이어 로그 파일이다. 이러한 각각의 로그 파일들은 각자 자신의 레이어에 대한 통계치 및 정보를 기술한다. 매크로블럭 레이어 로그 파일 포맷에는 제10A도에 도시된 풀 포맷(full format) 및 제10B도에 도시된 쇼트 포맷(short format)의 2개의 다른 유형이 있다. 풀 포맷은 매크로블럭 레이어의 상세한 정보가 요구되는 때에 사용되며, 쇼트 포맷은 매크로블럭의 모든 상세한 사항을 계속 추적할 필요가 없는 때에 사용된다. 2시간 영화에서의 많은 매크로블럭수에 기인하여, 매크로블럭 로그 파일은 많은 양의 기억 공간을 소모할 것이다. 따라서, 많은 기억 공간이 유용하지 않다면, 풀 또는 쇼트 포맷 매크로블럭 파일을 기억하는 것이 불가능할 수 있다. 그러나, 만일 매크로블럭 정보를 얻는 것이 요구된다면, 인코딩 비디오를 디코딩하거나 또는 다른 수단에 의해 재구성될 수 있다.
제8A도 내지 제10B도에 도시된 로그 파일 포맷의 많은 상세한 사항들은 중요하지 않으며, 이러한 파일 포맷들은 인코딩 프로세스 동안 발생될 수 있는 데이타의 예시로서 간단히 제공되었다는 사실에 주목해야 한다. 그러나, 로그 파일의 일부 정보는 비디오의 품질을 변경하는 프로세스 동안 사용되기 때문에 중요하다. 아래에 설명되는 바와 같이, 인코딩된 비디오의 편집 지점(editing point)을 결정하기 위해서, 선행 화상에 의해 소모된 비트수를 합산하는 것이 요구된다. 합산된 정보는 제9B도 및 제9C도에 도시되며, 각 화상에 대한 비트수(generated_bit_picture), 시퀀스 헤더에 대한 비트수(bit_sequence_header), 화상 그룹(group of picture:GOP) 헤더에 대한 비트수(bit_GOP_header), 및 스터핑에 사용된 비트, 즉 공간을 채우는데 사용된 비트수(stuffing_size) 등에 관련된다.
제11도는 로그 파일을 사용하여 수행되는 다른 기능의 흐름도를 도시한다. 비디오 세그먼트에 대한 초기 인코딩 후, 단계(270)에서 제8A도 내지 제9C도에 도시된 비디오 인코더의 자동 실행으로부터 발생된 시퀀스 레이어 로그 파일 및 화상을 판독, 입력한다. 그 다음으로, 단계(272)에서는 인코딩된 비디오에 기록된 모든 화상에 대한 로그 파일 레코드의 바이트 옵셋을 나타내는 인덱스 테이블(index table)을 생성한다. 2개의 테이블이 생성되는데, 하나는 프레임 번호(frame number)에 의해 다른 하나는 타임 코드(time code)에 의해 인덱싱(indexing)된다. 타임 코드 인덱스 테이블은 각 화상의 로그 파일 내에 바이트 옵셋을 포함하며, 타임 코드가 증가하는 순서로 분류(소팅)다. 마찬가지로, 화상 프레임 인덱스 테이블은 (인코더에 의해 알 수 있는 바와 같이) 입력 화상 번호가 증가하는 순서로 분류되는 바이트 옵셋을 로그 파일 내에 갖는다.
생성된 인덱스 테이블은 임의의 소망 화상 또는 매크로블럭의 로그 정보를 재빨리 뽑아낼 수 있도록 만든다. 비록, 고정된 크기의 레코드들이 로그 파일 내에 시퀀스, 화상 또는 매크로블럭 데이타를 저장하는데 사용된다고 하더라도, 인코더는 이들을 코딩하기 전에 입력 화상의 순서를 다시 정렬한다. 또한, 초당 30 프레임에 대해 3 : 2 풀 다운(pull down)된 영화(초당 24 프레임) 소스를 처리하는 때에는 소정 타임 코드들이 스킵된다. 인덱스 테이블은 화상의 재순서화 및 타임 코드 스킵에도 불구하고 적절한 데이타를 재빨리 위치시키는 수단을 제공한다.
본 인코딩 시스템은 비디오의 다양한 프레임 및 시간 주기들이 그들의 품질을 수동적으로 변경됨에 따라 인코딩된 비디오가 빈번히 변하므로 각 화상의 코딩시에 사용되는 인코딩된 비트수의 인덱스 또는 디렉토리를 유지하지 않는다는 사실을 주목해야 한다. 그러나, 인코딩된 비디오의 정보를 기술하는 로그 파일들은 고정된 크기의 레코드이며, 따라서 화상 품질 또는 시간 주기가 변경된 때에도 로그 파일 내에 정보 인덱스 또는 디렉토리를 쉽게 유지할 수 있다.
인덱스 테이블 생성 후, 단계(274)에서는 사용자가 블럭(276, 278 및 280)에 도시된 다양한 로그 파일 유틸리티를 사용하여 로그 파일로부터 다양한 정보를 신속히 얻을 수 있다. 로그 파일 내의 레코드들이 요구되는 때, 생성된 인덱스는 로그 파일 내의 소망 레코드를 결정하는데 사용되며, 완성된 레코드는 로그 파일로부터 빼내진다. 그 다음으로 이러한 레코드는 개별적인 소망 파라미터를 검색하도록 파싱(parse)된다. 인덱스 테이블을 사용하여 개별적인 레코드를 파싱하는 프로세스는 모든 다른 로그 인터프리터 유틸리티의 기본이 된다. 파싱 프로세스는 공지되어 있으며 본 기술 분야의 통상의 기술자는 구성된 파일로부터 소망 정보를 검색하는 방법을 알고 있다.
단계(276)는 로그 파일 자르기(cut) 및 붙이기(paste) 유틸리티이다. 프레임내 또는 시간 주기 동안 양자화(및 화상 품질)를 수동적으로 변경시킨 후, 로그 파일의 최초 집합은 편집 동안 발생된 변경에 대응되도록 갱신될 필요가 있다. 로그 파일 자르기(cut) 및 붙이기(paste) 유틸리티는 편집된 세그먼트 타임 코드에 대응하는 로그 파일 내의 옵셋을 위치 파악하여, 로그 파일 내의 정보를 재인코딩된 비디오에 대응하는 새로운 정보로 대체시킨다. 재인코딩 프로세스는 아래의 섹션 Ⅷ에서 설명된다.
단계(278)는 디지탈 인코딩된 비트스트림의 편집을 가능하게 하는 파라메타를 얻기 위한 유틸리티를 도시한다. 비디오가 초기 인코딩되고 사용자가 비디오의 프레임 품질 또는 시간 주기의 변경을 원한 후, 제거되어 소망 품질을 갖는 새로운 인코딩된 비디오로 대체될 인코딩된 비디오 내의 적절한 부분을 결정하는 것이 요구된다.
인코딩된 비디오의 비트스트림의 편집 지점에 대한 바이트 옵셋들은 편집 지점에 대응하는 화상까지 각각의 화상을 인코딩하는데 사용된 바이트의 누적 계산을 계산함으로써 결정된다. 특정 화상이 위치된 곳의 파일의 시작부터의 바이트 또는 비트들의 전체 수를 결정하기 위하여, 각각의 이전 화상을 인코딩하는데 사용된 비트수들이 합산된다. 합산된 화상 로그 파일로부터 얻어진 정보는 i번째 화상을 인코딩하는데 사용된 비트의 수 Bi, 시퀀스 헤더를 포함하는 비트의 수 Si, 화상 그룹(GOP) 헤더를 인코딩하는데 사용되는 비트의 수 Gi및 스터핑으로서 사용되는비트의 수 Ti이다. N번째 화상에 대한 비트 옵셋은 다음과 같이 계산된다.
바이트 옵셋은 비트 옵셋을 8로 나눔으로써 간단히 계산된다. 인코딩된 비디오 비트스트림의 어드레스 옵셋을 결정하기 위하여 로그 파일을 사용하는 대안적인 방법으로서, 비트스트림 디코더가 화상 옵셋의 디렉토리를 생성하는데 사용될 수 있다. 그러나, 이러한 방법은 디렉토리를 갱신하기 위하여 각 편집 후에 디코더가 전체 비트스트림에 걸쳐서 실행되어야만 하기 때문에 번거로운 방법이다.
마지막으로, 단계(280)는 가장 근접된 화상 그룹(GOP)의 시작 또는 종단으로 타임 코드를 라운딩(rounding)시키기 위한 유틸리티를 도시한다. 인코딩된 비트스트림의 모든 자르기 또는 편집들은 화상 그룹(GOP)의 경계(boundary)에서 수행된다. 그러나, 비디오 상에 편집을 수행하는 조작자는 GOP 경계들을 알 수 없다. 일단 조작자가 편집 세그먼트 시작 및 종단 지점을 규정하면, 시스템은 GOP 경계를 계산한다. GOP 경계는 각 화상 레코드 내에 기억된 GOP 번호로 불리는 화상 레이어 파라미터를 조사함으로써 확립된다. 화상 레이어 로그 파일의 연속적인 레코드를 추적함으로써, 제9B도의 GOP 번호(GOP_number)가 변경된 때에 GOP 경계인 것으로 결정된다.
로그 파일 및 로그 파일 유틸리티가 비디오 인코더에 밀접하게 관련되기 때문에, 로그 파일들은 제1A도에 도시된 워크스테이션(10)의 하드 디스크에 기억되며, 로그 파일 유틸리티들은 워크스테이션(10)에 의해 실행된다. 경우에 따라서,워크스테이션(30) 또는 다른 프로세싱 시스템들이 로그 파일을 가질 수 있으며 로그 파일 유틸리티를 수행할 수 있다.
Ⅶ. 인코딩된 비디오의 품질 변경
A. 경시적인 품질 변경
인코딩 시스템에 의해 발생된 인코딩된 비디오는 광 디스크와 같은 최종 디지탈 기억 매체에 기입되도록 의도된다. 디스크 상의 인코딩된 비디오는 고정 비트 레이트(Constant Bit Rate : CBR) 동작에 비해, 비디오의 다른 섹션 사이에서 비트 전송 속도의 큰 변경이 가능한 가변 비트 레이트(Variable Bit Rate : VBR)로 인코딩된다. VBR 코딩이 크게 다른 많은 비트들을 다른 화상에 할당될 수 있게 하기 때문에, 화상 품질은 시간이 경과하면서 변화될 수 있다. 또한, VBR은 CBR 동작으로는 가능하지 않은 스케일로 비디오의 몇몇 사용자 정의 섹션에 데이타 전송 속도를 다시 지정하는 것을 가능하게 한다. CBR을 사용하여 동일한 것을 이루기 위하여는 매우 큰 버퍼가 디코더에서 요구될 수 있다.
인코딩 시스템은 수동 편집으로 불리는 것을 허용하는데, 수동 편집은 영화의 장면의 단축(shortening) 또는 연장(lengthening) 또는 다른 장면의 대체가 아니고 화상 품질의 변경이다. 화상 품질은 시간이 경과하면서 변경될 수 있으며, 본 섹션에서 검토될 시간 편집 또는 시간 수동 편집으로서 지칭된다. 다른 섹션에서는 프레임의 한 섹션으로부터 프레임의 다른 섹션으로 비트를 쉬프팅시킴으로써 데이타 프레임 내에서의 화상 품질의 변경에 대해 논의할 것이며, 공간 편집 또는 공간 수동 편집으로서 지칭될 것이다.
편집 세그먼트의 다양한 섹션들 사이에서의 비트의 시간 편집 또는 재할당에서는 3가지 주요 제약이 만족되어야 한다. 이들은 다음과 같다:
1. 편집되는 영화/비디오에 대한 전체 용량은 할당된 용량을 초과하지 않아야 한다.
2. 편집 세그먼트 내에서 버퍼 언더플로우가 발생하지 않아야 한다.
3. 시간 편집에 의해 야기되는 편집 세그먼트 밖에서의 버퍼 언더플로우가 발생하지 않아야 한다.
제약 1은 최종 편집 세그먼트가 최초 인코딩된 세그먼트와 동일한 수의 비트를 소모하도록 편집 세그먼트를 다시 인코딩시킴으로써 처리된다. 편집 세그먼트는 고려되는 전체 시간 주기임을 주목해야만 한다. 편집 세그먼트 내의 다른 주기들은 사용자에 의하여 할당되는 품질이며, 이러한 편집 세그먼트의 주기들은 간단히 섹션 또는 시간 주기로서 지칭된다.
언더플로우 상태가 존재하는지를 결정하기 위해서, 디코더 모델을 사용하여 타겟 비트를 체크하는 것이 요구된다. 인코더의 VBR 동작시, 비디오 버퍼 검증기(Video Buffer Verifier : VBV) 모델의 변형본(modified version)이 사용된다. 이러한 모델은 VBR용 간단한 변형 모델로서 지칭되며 디지탈 기억 매체(Digital Storage Medium : DSM)용으로 사용될 수 있다. VBR 모드용 VBV가 공지되어 있으며 MPEG-2 표준에 규정되어 있으며, 이는 ISO/IEC 13818-2, 부록 C, 섹션 C.3.2.에서 상세히 알 수 있다.
VBR용 VBV 모델에서는 디코더의 버퍼가 완전히 채워진 상태로 유지될 수 있으며 언더플로잉이 제한된다. 또한, 버퍼가 완전히 채워질 때까지 버퍼는 일정 속도 Rmax로 채워진 다음, 버퍼가 비워지기 시작할 때까지 어떠한 비트도 버퍼에 전송되지 않는다. 모든 프레임 간격(interval)에서, 한 프레임을 디코딩하는데 요구되는 비트들이 버퍼로부터 제거된다. 이점을 고려하면, VBR 모드시 버퍼 언더플로우는 일련의 화상에 너무 많은 비트들을 할당함으로써 야기된다는 사실을 알 수 있다. 화상 비트들이 버퍼로부터 제거됨에 따라, 만일 고화질 화상의 많은 비트들이 버퍼가 채워질 수 있는 속도보다 빠른 속도로 제거된다면, 버퍼는 비워져 언더플로우 상태가 된다. 언더플로우를 방지하기 위하여, 화상을 인코딩하는데 사용되는 비트수를 감소시킨다. 화상에 대한 비트수를 감소시키는 것은 채우는 속도를 동일하게 유지하면서 버퍼로부터 비트들이 제거되는 속도를 감소시키는 것이다. 만일 VBV 점유가 완전히 채워진 상태라면, VBV 버퍼로의 비트스트림 전송이 즉시 중단되기 때문에 VBR인 경우 버퍼 오버플로우가 발생할 수 없다. 이는 버퍼 오버플로우는 발생하지 않으나 단지 버퍼가 완전히 채워진 상태라는 것을 의미한다. ISO/IEC 13818-2, 부록 C, 섹션 C.3.2.에 설명된 바와 같이, VBR에 대해 간단히 변형된 VBV 모델은 다음과 같다:
1. sequence_header의 bit_rate필드는 max_bit_rate를 나타낸다.
2. VBV는 초기에 비어 있다. max_bit_rate속도로 VBV 버퍼가 완전히 채워진 후(즉, VBV 버퍼 크기), 디코딩 프로세스가 시작된다. 화상 데이타는 즉시 제거되어 MPEG-2 국제 표준에서 규정된 CBR의 VBV 모델과 동일하게 디코딩된다.
3. 비트 스트림은 VBV 버퍼가 완전히 채워질 때까지 max_bit_rate 속도로 VBV 버퍼 내에 배치된다. 만일 VBV 버퍼 점유가 완전히 채워진 상태라면, VBV로의 비트스트림 전송이 즉시 중단된다. 다음 화상에 대한 데이타가 제거된 후, 비트스트림 전송이 즉시 시작된다.
4. VBV 버퍼는 언더플로우 상태가 되지 않는다.
5. 모든 vbv_delay 필드는 FFFF로 설정된다.
시간 주기 동안 비디오 품질을 변경시키는 것은 비디오 프레임으로부터 비트를 추가 또는 제거하는 것을 요구한다. 비디오 섹션에 추가 또는 그로부터 제거될 수 있는 비트수에 대한 설명을 지금부터 기술한다. 비디오 섹션에 추가 또는 그로 부터 제거될 수 있는 비트수는 고려되는 비디오 섹션의 유효 화상(effective bit rate)에 좌우된다. 유효 화상 R은 다음과 같이 계산된다:
할당된 비트의 전체 수가 화상에 직접 비례하기 때문에, 할당된 비트수를 언급하는 것은 단위가 다른 것을 제외하고는 비트 전송 속도와 동일 의미를 뜻한다. 보장된 최소 속도, 즉 Rmin이 비디오의 임의의 섹션에 적용된다고 가정하면, 섹션 'i'로부터 제거될 수 있는 최대 비트수는 다음과 같다:
이 때, Ni는 섹션 'i'의 프레임수이고, Ri는 동일 섹션의 유효 속도이다. 보장된 최소값은 섹션에 대한 소정의 최소 품질 수준을 보장하기 위하여 요구된다.마찬가지로, 주어진 섹션 'j'에 추가될 수 있는 최대 비트수는 다음과 같이 계산된다:
이 때, Rmax는 최대 속도 즉 버퍼가 완전히 채워진 상태가 아닌 때에 채워지는 속도이며, Nj는 섹션 j의 프레임수이다.
이제 경시적인 화질의 변화(시간 편집)에 대해 제12도 및 참조된 도면을 참조하여 설명한다. 시작 후, 단계(281)에서는 위의 섹션 Ⅱ 및 Ⅲ에서 설명된 바와 같이 어떠한 사용자 관여(user intervention)없이 자동적으로 비디오 인코딩이 수행된다. 자동 인코딩인 경우, 발생된 데이타 스트림의 최대 및 최소 속도가 있다는 사실을 주목해야만 한다. 최대 비트 전송 속도는 비디오 디코더의 능력에 의해 결정되며, Rmax는, 예를 들어 8 Mbit/sec이다. 최소 비트 전송 속도는 원하는 최소 화질에 따라 사용자에 의해 지정될 수 있다. 전형적인 최소 비트 전송 속도 Rmin은 3 Mbit/sec이다. 비디오의 일부분이 보다 낮은 비트 전송 속도를 갖고 비디오의 일부분이 보다 높은 비트 전송 속도를 갖도록 허용하기 위하여 Rmin은 평균 인코딩 속도와는 다르게 약간 낮도록 설정하는 것이 바람직하다. 만일, Rmin이 비디오의 평균 인코딩 속도보다 약간 낮도록 설정된다면, 인코딩된 결과 비디오는 상당히 일정한 품질을 가질 것이다. 전형적으로, 만일 Rmax= 8 Mbits/sec이고 Rmin이 약 3 Mbit/sec라면, 비디오의 평균값은 3 1/2 내지 5 Mbit/sec 근처일 것이다.
자동 비디오 인코딩이 단계(281)에서 수행된 후, 속도 양자화기 기능을 결정해야만 한다. 본 발명의 프로세스는 소망 품질을 얻기 위하여 얼마나 많은 비트들이 요구되는지를 결정할 필요가 있지만, 다시 인코딩할 때에는 소망 비트 전송 속도를 얻기 위해서는 양자화값이 설정되어야만 한다. 속도-양자화기 기능은 1994년 9월호인 'IEEE Transactions on Image Processing' vol. 3, No. 5, pp. 533-545의 Ramchandran 등에 의한 논문 "Bit Allocation for Dependent Quantization with Application to Multiresolution and MPEG Video Disclosures"과 1993년도 'IEEE ICASSP', pp. V-381-V-384의 Ramchandran 등에 의한 논문 "Bit Allocation for Dependent Quantization with Applications to MPEG Video Coders" 및 1994년 'Princeton video conference'에 제출된 Reininger에 의한 논문 "Joint Multi-Channel Bit-Rate Control for Multiplexed MPEG Video using Rate-Distortion Curves"에 설명된 것과 같은 종래의 방법에 따라 계산될 수 있는데, 상기 논문들은 본 명세서에서 참조로 사용된다.
다음으로, 단계(284)에서 선택된 시간 주기에 대한 사용자 품질 설정이 입력된다. 사용자는 화상의 양자화를 제어하는데 궁극적으로 사용되는 다른 섹션에 대한 우선 순위를 입력한다. 양자화는 손실있는 MPEG 인코딩에 대한 화질(이는 해상도로도 지칭된다)을 제어한다. 제13도는 시간 주기 동안 비디오의 품질을 변경하도록 정보를 수집하기 위하여 사용되는 사용자 인터페이스를 도시한다. 초기에, 사용자는 품질이 변경될 전체 편집 세그먼트에 대한 시간 기간을 입력할 것이다. 이러한 정보의 입력은 제13도의 사용자 인터페이스에 도시되지 않으나, 제13도의 사용자 인터페이스가 표시되기 전에 입력된다. 제13도에 도시된 실시예인 경우, 변경될 편집 세그먼트에 대한 시간 주기는, 예를 들어 0분인 시간 내지 5분인 시간일 수 있다. 사용자가 편집 세그먼트의 전체 시간 주기를 기술한 다음, 편집 세그먼트 내의 더 작은 시간 주기가 우선 순위 P를 포함하여 -5 내지 +5 범위에 속하는 다른 우선 순위에 할당되는데, 이는 이러한 시간 주기의 품질이 보호되어 변경되지 않아야만 한다는 것을 나타낸다. 우선 순위 "none"은 P인 우선 순위와 동의어이다. 물론, 인코딩 시스템은 상기 입력 방식에 제한되지 않으며, 다른 범위 또는 부호(symbol)들이 사용자 소망 우선 순위를 입력하는데 사용될 수 있다.
우선 순위를 할당하는 것에 덧붙여서, 사용자는 최소 비트 전송 속도를 역시 입력할 것이다. 이러한 비트 전송 속도는 단계(281)의 자동 비디오 인코딩 동안 비디오를 인코딩하는데 사용된 최소 비트 전송 속도와는 다를 수 있다. 사용자 인터페이스의 다른 특징은 사용자에 의해 우선 순위가 할당되지 않은 선택된 시간 주기 내의 시간 주기가 배경 우선 순위(background priority)를 갖는 것을 의미하는 "배경 우선 순위"를 사용자가 설정하도록 허용한다는 것이다. 예를 들어, 제13도에서, 만일 배경 우선 순위가 "1"로 할당되었다면, 규정되지 않은 시간 주기 00 : 03 : 20 : 01 내지 00 : 03 : 59 : 99는 이러한 특정 섹션에 대해 사용자가 수동적으로 우선 순위를 할당하지 않고서도 자동적으로 "1"인 우선 순위가 할당될 것이다.
제13도에 도시된 인터페이스의 하단의 "삽입" 블럭이 편집 세그먼트 내의 새로운 시간 주기를 생성하는데 사용되며, "수정" 블럭("recall" block)은 앞서 생성된 시간 주기를 변경하는데 사용되고, "갱신"은 시간 주기에 대해 행해진 변경을저장하는데 사용되며, 또 "삭제"는 시간 주기를 삭제하는데 사용된다.
광 디스크와 같은 인코딩된 비디오에 대한 최종 디지탈 기억 매체는 만일 자동적으로 인코딩된 데이타가 상기 디스크에 기입된다면 제한된 용량까지 이상적으로 채워질 제한된 기억 용량을 갖는다는 것을 기억하는 것이 중요하다. 따라서, 화질이 증가되고 또 특정 시간 주기에 대한 비트 전송 속도가 증가되는 때마다, 자신의 품질이 증가되도록 하는 시간 주기에 대해 필요한 여분의 기억 용량을 공급하기 위하여 그 품질이 감소된 비디오의 섹션이 틀림없이 존재할 것이다. 따라서, 본 발명의 양호한 실시예에서는 화질을 증가시키는데 요구되는 비트들이 비디오의 다른 섹션으로부터 취해져야만 하기 때문에 다른 화질을 다른 시간 간격에 할당하지 않고 단지 하나의 기간에 고화질을 할당하는 것은 불가능하다. 따라서, 그와 같이 편집된 비디오 세그먼트는 배경 섹션과는 다르며 시간 수동 편집이 적절히 동작하도록 하기 위하여 "보호" 섹션으로서 표시되지 않은 우선 순위를 갖는 최소한 하나의 섹션을 가져야만 한다. 또한, 사용자 선택 우선 순위는 이들이 선택될 때마다 동일한 품질 및 비트 전송 속도의 결과를 가져오지 않으나, 특정 섹션의 품질은 다른 섹션에 대해 할당된 우선 순위 및 다른 섹션의 길이에도 의존하는데, 이는 편집 세그먼트 내의 화상에 대한 변형된 비트수를 결정하는 프로세스를 이해한다면 명백해질 것이다.
본 인코딩 시스템에 의해 사용되는 특징은 자동 인코딩 프로세스 동안 또는 나중에 시청자가 인코딩된 비디오를 재생할 수 있다는 점이다. 인코딩 비디오가 시청자에게 표시되기 때문에, 시청자는 비디오를 중단시킬 필요없이 비디오의 해당지점 또는 영역을 저장하거나 또는 해당 타임 코드를 기입하기 위하여 스크린 상에 표시된 "버튼" 상의 그래픽 사용자 인터페이스를 "클릭킹(clicking)"하거나 또는 리턴키를 누르는 것과 같은 기능을 수행할 수 있다. 해당하는 이러한 지점들은 나중에 사용자가 불러내어 전체 영화를 재검토할 필요없이 자세히 살펴볼 수 있다. 이는 사용자가 변경시키기를 원할 수 있는 인코딩된 비디오 내의 지점을 편리하고 효과적으로 결정할 수 있는 방법을 제공한다. 이러한 기능은 관심 지점 또는 영역이 발생된 때인 인코딩된 비디오 내의 위치에 대응된 타임 코드를 저장함으로써 이루어진다.
사용자가 단계(284)에서 소망 품질 설정을 입력한 후, 단계(286)에서는 사용자 입력에 기초하여 각 프레임에 대한 변형 비트를 계산한다. 이러한 프로세스는 제14도 내지 제16B도를 참조하여 상세히 설명된다. 비디오의 편집 세그먼트 내의 시간 기간의 비트 전송 속도를 변경하기 위한 일반적인 절차가 제14도의 플로우 챠트에 도시된다. 사용자 입력에 따라 비트 전송 속도를 계산하기 위하여, 단계(302)에서는 -5와 +5 사이의 범위에 속하는 사용자 입력을 10과 0 사이 범위로 맵핑(mapping)시킨다. -5인 초기 입력은 10인 맵핑된 설정값에 해당하는 것으로 최소 품질이고, 또 +5인 입력은 0인 맵핑된 설정값에 해당하는 것으로 최대 품질이다. 마찬가지로, 0인 입력 품질 선택은 5인 맵핑된 설정값에 해당하며, 이러한 관계는 다른 값들에 대해서도 성립한다. 단계(302)에서 수행된 맵핑의 목적은 맵핑된 설정값과 곱해진 값 - 1의 누승 e(2.71828...)에 할당된 비트수가 비례하도록 하기 위한 것이다. 이러한 경우, 작은 우선 순위 설정값에 대한 비트수가 큰 우선 순위에 대한 것보다 작도록 e-10은 e0보다 작다. 우선 순위 -4 내지 +4까지에 해당하는 타겟 비트들을 결정하는 프로세스가 제16A도 및 제16B도에서 상세히 설명된다.
단계(304)에서는 임의 "보호" 섹션이 있는지를 결정한다. 보호 섹션은 화질이 이전의 자동 인코딩으로부터 변경되지 않아야만 하는 섹션이다. 만일 보호 섹션이 있다면, 플로우 챠트의 흐름(flow)은 보호 섹션의 재인코딩을 위해 할당되는 비트수가 초기 자동 인코딩으로부터의 결과인 이전 비트수와 동일하도록 설정되는 단계(306)로 진행한다. 이러한 방식으로, 보호 섹션의 화질은 변경되지 않을 것이다.
단계(308)에서는 최대 또는 최소 품질로 설정된 섹션이 있는가를 결정한다. 최대 품질은 +5인 사용자 입력에 대응하며, 최소 품질은 -5인 사용자 입력에 대응한다. 최대 및 최소 화질에 대하여, 비디오 버퍼의 제한은 여전히 만족시키되 인코딩된 비디오를 갖는 매체의 기억 용량을 초과하지 않으면서도 최고 및 최저 품질의 비디오를 각각 갖는 인코딩된 비디오를 얻는 것이 요구된다. 만일 최대 또는 최소 품질로 설정된 섹션들이 있다면, 플로우 챠트의 흐름은 최대 또는 최소인 경우에 대한 변형된 비트수를 계산하는 단계(310)으로 진행한다. 이러한 프로세스는 제15도에 상세히 도시된다.
제15도에서, 최대 및 최소인 경우에 대해 할당된 비트수를 결정하는 프로세스가 10 및 0인 맵핑된 우선 순위에 각각 할당된 비디오 섹션에 최소 및 최대 속도를 할당시키는 단계(320)로부터 시작된다. 이러한 맵핑 및 시간 편집에 대한 설명가운데 남은 기능이 수행되는 제14도의 단계(302)는 다른 특별한 언급이 없다면 맵핑된 우선 순위로 참조될 것이다. 앞서 설명된 바와 같이 최대 데이타 전송 속도는 디코더의 능력에 의해 제한되며, 8 Mbits/sec일 수 있고, 또 최소 데이타 전송 속도는 제13도의 사용자 인터페이스에 의해 도시된 바와 같이 입력되는데, 이는 전형적으로 3 Mbits/sec일 수 있는 자동 인코딩 모드 동안 사용되는 최소 비트 전송 속도 미만 또는 초과일 수 있다.
그 다음으로, 단계(322)에서 1 내지 9인 맵핑된 우선 순위를 갖는 섹션이 있는가를 결정한다. 이는 할당된 최대 또는 최소 품질이 있는 것에 덧붙여서, 사용자에 의해 할당된 다른 중간 품질이 있다는 것을 의미한다. 만일 다른 맵핑된 우선 순위가 있다면, 플로우 챠트의 흐름은 1과 9 사이의 맵핑된 우선 순위를 갖는 모든 섹션에 대한 평균 비트 전송 속도를 계산하는 단계(324)로 진행한다. 만일 이러한 평균이 허용가능한 범위(최대 및 최소 비트 전송 속도 사이)에 속하지 않는다면, 플로우 챠트의 흐름은 단계(328)로 진행한다. 단계(328)에서는 평균이 최소 속도보다 작은 때에 최고 화질을 제공하는 속도인 최대 속도가 감소된다. 최대 속도를 감소시킴으로써, 최대가 아니고 최소도 아닌 상황(1-9인 맵핑된 우선 순위)에 대해 더 많은 비트들이 사용가능할 수 있으며, 이에 따라 소망 범위 내 또는 그에 근접하도록 평균을 위치시킬 수 있게 된다. 대안적으로, 단계(328)에서 만일 평균이 최대 속도보다 크다면, 최소 데이타 전송 속도가 증가되어 최대가 아니고 최소도 아닌 상황(예를 들어 1-9인 우선 순위)에 대한 비트수가 감소된다. 단계(328)후, 플로우 챠트의 흐름은 단계(324, 326 및 328)인 루프가 평균이 범위에 속할 때까지 반복되도록 단계(324)로 복귀한다, 또한, 최대 및 최소 비트 전송 속도들은 "보호"섹션이 품질 조정 전과 동일한 비트를 수신하는 것을 보장하도록 조정된다.
일단 평균이 단계(326)에서 범위에 속하는 것으로 결정되면, 플로우 챠트의 흐름은 10 및 0인 맵핑된 우선 순위를 각각 갖는 섹션에 계산된 최대 및 최소 속도를 할당하는 단계(330)로 진행한다. 그 다음으로, 남은 비트들은 단계(332)에서 최대 또는 최소 상황이 아닌 때에 보호되지 않은 섹션에 분배된다. 1-9인 맵핑된 범위를 갖는 비디오의 섹션 및 데이타 전송 속도를 변경시키는 방법들이 제16A도 및 제16B도를 참조하여 다음에 설명된다.
만일 단계(322)에서 단지 최대, 최소 또는 보호 섹션만이 존재함을 의미하는 1-9인 맵핑된 우선 순위를 갖는 섹션이 없다고 결정된다면, 단계(340)에서 최종 비트 할당이 자동 인코딩으로부터의 초기 비트 할당과 같아질 때까지 필요에 따라 최소 및 최대 속도를 조정한다. 단계(340)를 수행하는 대안적인 방법에는 2가지가 있다 제1 방법은 최대 비트 전송 속도 Rmax가 예를 들어 8 Mbits/sec로 고정되는 것이다. 전체 편집 세그먼트에 대한 전체 비트들은 알려진 상태이며, 따라서 최소 데이타 전송 속도인 Rmin은 자동 인코딩 동안 얻어졌던 전체 비트수와 동일한 전체 비트수를 이루기 위하여 간단히 조정된다. 만일 이전의 전체 비트수를 달성하도록 Rmin을 조정하는 것이 불가능하다면, 최대 데이타 전송 속도 Rmax는 자동 인코딩 동안 얻어졌던 전체 비트수와 동일한 비트수를 이루도록 조정된다.
대안적인 방법으로서, 단계(340)에서는 최대 품질 섹션에는 1인 우선 순위를 할당하고 최소 품질 섹션에는 9인 우선 순위를 할당하며, 편집 세그먼트의 시간 기간에 대하여 새로운 비트 전송 속도를 결정하기 위하여 제16A도 및 제16B도에 도시된 비트 할당 알고리즘(bit allocation algorithm)을 수행한다. 그 다음으로, 단계(342)에서는 최저 및 최고 할당 품질을 갖는 섹션에 아래에서 설명될 제16A도 및 제16B도에 따라 계산된 데이타 전송 속도를 할당하고 제15도의 프로세스가 종료한다.
만일 필요하다면 단계(308) 및 단계(310)가 수행된 후, 단계(312)에서는 임의의 섹션이 1-9인 맵핑된 우선 순위를 갖는가를 결정한다. 만일 이러한 경우라면, 플로우 챠트의 흐름은 제16A도 및 제16B도에 상세히 도시된 바와 같이 1-9인 맵핑된 우선 순위에 대한 변형된 비트수를 계산하는 단계(314)로 진행한다.
제16A도의 제1 단계는 사용된 공통 비트 풀(common bit pool)의 크기를 결정하기 위한 것이다 초,기에, 보호되지 않은 1-9인 맵핑된 우선 순위를 갖는 모든 섹션에서는 소정 비트수가 제거되어 있다. 재분산 깊이(redistribution depth)로 불리는 팩터 k1이 이러한 목적을 위해 사용되는데, 이는 예를 들어 앞서 할당된 비트(즉, 자동 인코딩 수행으로부터 할당된 비트)의 40 %가 보호되지 않고 또 최대 또는 최소 품질로 표시되지도 않은 모든 섹션으로부터 제거되야함을 의미하는 0.4로 설정된다.
다음으로, 단계(362)에서는 사용자 선택 품질이 얼마나 품질에 영향을 줄 것인가를 결정한다. 동적 범위 팩터(dynamic range factor)로 불리는 변수 k3가 설정되는데, 이는 우선 순위로부터 초래되는 품질 변경을 결정한다. k3가 어떻게 설정되는가에 따라서, 예를 들어 2인 우선 순위는 품질면에서 상대적으로 작은 증가 또는 품질면에서 상대적으로 큰 증가와 같은 서로 다른 품질 변경을 부가할 수 있다. 전형적으로, 동적 범위 팩터 k3는 1.0으로 설정된다.
비트의 재분산시 사용자 선택 우선 순위를 사용하기 위하여, 식 exp(우선 순위/k3)의 인덱스 관계가 사용된다. 인덱스의 동작 범위 팩터 k3는 인덱스 곡선의 모양을 결정한다. 곡선은 더 큰 값의 동적 범위 팩터에 대해서 더 급해지며, 결과적으로 우선 순위를 변화시킴에 따라 섹션들 중 재할당된 비트의 불일치(disparity)가 증가한다. 이러한 음의 인덱스는 맵핑된 우선 순위의 절대값이 증가함에 따라(하위 우선 순위 섹션), 그 섹션에 할당된 비트들이 감소한다는 것, 즉 1인 맵핑된 우선 순위는 최고 우선 순위를 가지며, 9까지 그 수가 증가함에 따라 하위 우선 순위를 갖는다는 것을 의미한다.
단계(364)에서는 사용자 선택 우선 순위를 정규화(normalizing)한다. 이는 사용자 선택 우선 순위들이 각 섹션의 상대 우선 순위를 결정하도록 사용됨을 의미한다. 먼저, Ei가 계산된다.
이 때, pi는 맵핑된 사용자 선택 우선 순위이며, i는 보호되거나 또는 최대 또는 최소 품질을 갖는 시간 기간을 제외한 편집 세그먼트 내의 선택 시간 기간수이다. 다음으로, 우선 순위 정규화 팩터 k2는 다음과 같이 계산된다.
이 때, N은 섹션수이다. 우선 순위 정규화 팩터는 우선 순위에 따라 재할당된 모든 비트들의 합이 언제나 비트의 사용가능한 공통 풀과 같아지는 것을 보장하는데 필요로 된다.
그 다음으로, 각 섹션의 상대적 우선 순위가 다음과 같이 계산된다.
Ri는 i번째 섹션에 대한 상대적 우선 순위 비율(fraction)이며, 모든 Ri의 합은 1일 것이다.
그 다음으로, 단계(366)에서는 섹션의 크기가 정규화된다. 이는 우선 순위가 할당된 시간 기간이 다른 크기를 갖고 또 비트들이 다른 섹션들의 크기에 비례하여 분산되어야만 하는 때에 필요하다. 먼저, 편집된 프레임(보호되지 않고 최대 또는 최소가 아닌 우선 순위를 갖는 프레임)의 전체 수에 대한 각 시간 기간 내의 프레임수의 비율 Ti는 다음 식에 따라 결정된다.
이 때, Ni는 i번째 시간 기간 내의 프레임수, 또 N은 편집 세그먼트 내의 변경되어 보호되지 않고 최대 또는 최소 우선 순위가 아닌 우선 순위가 할당된 모든 프레임들의 전체 프레임수이다. 그 다음으로, 크기 정규화 팩터 k4가 다음 식에 따라 계산된다.
이 때, N은 섹션수이다. 제16A도의 단계(366)으로부터, 플로우 챠트의 흐름은 제16B도의 단계(368)로 진행한다.
제16B도에서, 단계(368)은 다음 식에 따라 비트의 공통 풀을 결정한다.
이 때, Bi는 i번째 섹션의 자동 인코딩 절차 동안 사용된 전체 비트수와 제15도의 단계(332)에서 분산된 임의 비트의 합이다. 합산은 'N'개의 섹션에 걸쳐 수행된다.
그 다음으로, 단계(370)에서는 다음 식에 따라 각 섹션에 대해 할당된 타겟 비트수를 결정한다.
각 섹션 Fi에 대한 타겟 비트수는 비트의 공통 풀에 대한 주어진 비트만큼 감소된 비트의 원래의 수(Bi)와 비트의 공통 풀의 합의 백분율과 같다. 비트의 공통 풀로부터의 비트 백분율은 각 섹션의 전체 프레임수의 비울(Ti), 섹션의 상대 우선 순위(Ri) 및 각각의 섹션에 대해 합산된 그 해당 프레임 비율에 의해 곱해진 섹션의우선 순위에 따르는 크기 정규화 팩터(k4)에 좌우된다.
단계(370)에서 계산된 각 섹션에 대해 할당된 타겟 비트수는 최대 및 최소 데이타 전송 속도 사이가 아닐 수 있다. 만일 이러한 경우, 단계(372)는 재분산 깊이 k1을 0.01만큼 감소시키며, 플로우 챠트의 흐름은 단계(368)에서 비트의 공통 풀을 다시 계산하고 단계(370)에서 비트의 타겟수를 다시 계산하도록 복귀한다. 단계(368, 370, 372 및 374)의 루프는 단계(370)에서 계산된 비트의 타겟수가 최대 및 최소 데이타 전송 속도 사이일 때까지 수행된다.
그 다음으로, 단계(376)은 내부(intra) 및 비내부(non-intra) 프레임에 대한 스케일 팩터 SIi및 SNi, 및 비트 스케일 팩터 Si를 각각 계산한다. 내부 및 비내부 프레임들은 소망 품질을 얻기 위하여 다른 비트수를 필요로 한다. 먼저, 비트 스케일 팩터 Si는 다음의 공식에 따라 계산된다.
다음으로, 내부 및 비내부 화상에 대한 스케일 팩터가 계산된다. 내부 스케일 팩터 SIi는 다음의 공식에 따라 계산된다.
큰 내부 프레임들은 버퍼 언더플로우를 야기시킬 가능성이 있으며, 내부 팩터 If는 If= 0.8인 경우 내부 화상의 비트 할당의 편차를 20 %로 제한(즉, SIi는 0.8 < SIi< 1.2 범위로 제한된다)함으로써 안전 팩터(safety factor)를 제공한다SIi' = SIi-1.0임을 기억하자. 비내부 비트 스케일 팩터 SNi는 다음과 같이 계산된다.
이 때, BIi및 BNi들은 화상 유형마다 i번째 섹션에 걸쳐 합산된 전체 내부 및 비내부 비트들이다.
마지막으로, 각 프레임에 대해 사용될 비트수가 적절한 스케일 팩터(내부 또는 비내부 스케일 팩터)에 의해 곱해진 원래의 비트수를 사용하여 결정된다. 그 다음으로 제16B도(및 제14도)의 프로세스가 종료된다.
이 때, 각 프레임에 대한 변형된 비트수가 계산되며 제12도의 단계(286)이 종료된다. 그러나, 프레임에 대해 변경된 비트수는 버퍼 언더플로우를 야기시킬 수 있거나, 또는 편집 세그먼트의 트레일링 에지(trailing edge)에서의 비트수 점유는 편집 세그먼트 외부의 후속 프레임이 언더플로우되도록 변경되었을 수 있다. 이러한 상황은 제17도에서 상세히 설명되는 제12도의 단계(288)에서 검사되어 필요한 경우 보정된다.
제17도는 버퍼 언더플로우에 대한 검사 및 보정을 위한 프로세스 및 편집 세그먼트의 트레일링 에지에서의 비트 재할당에 기인하여 발생할 수 있는 문제의 검사 및 보정을 위한 프로세스를 도시한다. 제17도에서, 단계(390)에서 먼저 편집 세그먼트의 각 프레임에 대한 비트 할당을 스캐닝한다. 그 다음으로, 단계(392)에서는 상술된 VBV 모델을 사용하여 새로운 비트 분산에 대한 언더플로우를 검사한다.언더플로우 문제가 있는 지점 목록(u_flow list)이 생성되며 각각의 언더플로우를 제거하는데 필요한 비트수가 계산되어 u_val에 저장된다. 언더플로우는 너무 많은 비트에 의해 화상이 표현되기 때문에 발생한다는 사실을 명심하는 것이 중요하다. 많은 수의 비트에 의해 표현된 고화질 화상이 디코더에 의해 버퍼로부터 판독된 때, 많은 수의 비트들이 화상 디코딩시 버퍼로부터 제거되며 이러한 비트들은 충분히 빨리 다시 채워질 수 없다. 그러므로, 언더플로우를 제거하기 위해서 화상으로부터 비트를 제거한다. 또한, 단계(392)에서는 버퍼가 완전히 채워진 지점 목록이 생성되어 이러한 지점들이 o_flow list에 저장된다. 상술한 바와 같이, 버퍼가 완전히 채워지게 된 때에는 더 이상 데이타가 버퍼에 전송되지 않기 때문에 완전히 채워진 버퍼인 경우는 문제가 발생하지 않는다.
단계(394)에서는 편집 세그먼트의 트레일링 에지에서의 버퍼 점유가 조사된다. VBR 모드 동작시, 편집된 세그먼트가 정확히 동일한 비트수로 대체된 경우에도, 편집된 비디오 세그먼트의 트레일링 에지에서의 버퍼 점유는 변형된 실행의 버퍼 점유와 다를 수 있다. 이는VBR인 경우VBV 모델의 특질로부터 생긴다. 따라서, 버퍼 점유 제약을 조사하는 것이 중요하다. 만일 편집 세그먼트의 트레일링 에지에서의 버퍼 점유가 비트의 재분배의 전과 정확히 동일하거나 더 높은 경우, 문제가 존재하지 않는다는 사실을 보이는 것은 매우 간단하다. 만일 버퍼 점유가 이전과 정확히 동일한 경우, 이후의 프레임의 버퍼 점유 역시 VBV 위반이 이미 체크된 이전의 경우와 정확히 동일하게 유지된다. 만일 점유가 이전보다 높은 경우, 후속 프레임 동안 버퍼가 꽉 채워질 가능성이 있으며, 이는 버퍼가 꽉 찬 상태인 때 데이타가 더 이상 버퍼로 공급되지 않아 언더플로우가 생기지 않기 때문에 완전히 수용가능한 상태를 뜻한다. 그러나, 이전 실행과 비교하여 버퍼 점유가 트레일링 에지에서 낮은 때에는 제3 경우가 생긴다. 이는 이후의 프레임에 버퍼 언더플로우가 생성될 가능성이 있기 때문에 철저히 조사할 필요가 있다.
버퍼 세그먼트 외측의 프레임 중에서 버퍼 언더플로우가 발생하지 않도록 하기 위해서, 편집 세그먼트의 최종 프레임을 처리할 수 있는 2가지 방법이 있다. 제1 방법은 2가지 방법 가운데 쉬운 방법이다. 만일 편집 세그먼트의 최종 프레임의 비트수가 (로그 파일에 기억된) 최초 인코딩보다 크거나 또는 같은 버퍼 점유의 결과를 가져온다면, 어떠한 언더플로우 문제도 생기지 않으며, 따라서 어떠한 행동도 취해질 필요가 없다. 만일 편집 세그먼트의 최종 프레임의 버퍼 내의 비트수가 최초로 인코딩된 세그먼트의 버퍼 내의 비트수보다 작다면, 이렇게 감소된 비트수에 의해 편집 세그먼트 후의 프레임 내용에 따라서 편집 세그먼트의 외측의 프레임의 언더플로우가 생기는 경우도 있고 생기지 않는 경우도 있다. 언더플로우 발생을 방지하기 위해 요구되는 비트수를 결정하는 대신에, 편집 세그먼트의 최종 프레임의 버퍼의 점유는 최초 인코딩의 경우와 동일하게 되도록 간단히 조정된다. 안전 목적으로, 언더플로우 발생이 없도록 보장하기 위하여, 편집 세그먼트의 종단의 버퍼 점유 또는 꽉 찬 정도를 최초의 인코딩의 점유보다 10 % 크게할 수 있다. 만일 편집 세그먼트의 최종 프레임의 버퍼 점유가 최초 인코딩의 레벨로 상승시킬 필요가 있다면, 종단 프레임의 비트수는 단계(398)에서 실행되도록 감소할 필요가 있다. 최종 프레임은 언더플로우 지점으로서 취급되며, u_flow list에 기억되어, 또최초 인코딩의 레벨까지 버퍼 레벨을 상승시키기 위하여 최종 프레임으로부터 취해질 필요가 있는 비트수들은 u_val에 가산된다.
편집 세그먼트의 재인코딩에 의해 야기될 수 있는 언더플로우를 다루기 위한 제2 방법은, 편집 프레임 외측에서 버퍼 언더플로우 상태를 야기하지 않을 편집 세그먼트의 최종 프레임에 대해 버퍼의 최소가능 레벨을 추정(estimating)하는 반복 프로세스이다. 이는 최초의 인코딩의 버퍼 점유와 편집 세그먼트의 최종 프레임의 재인코딩의 버퍼 점유 사이의 가능한 가장 큰 차이를 추정하는 프로세스에 의해 이루어진다.
제18도의 플로우 챠트 도시도를 설명하면, 최초의 인코딩의 버퍼 점유에 B0가 할당되고, 최초의 인코딩의 로그 파일에 저장되었다. 편집 세그먼트의 경계를 넘어서는 프레임 'i'의 버퍼 점유는 Bi인데, 이 때 i = 1 … n이고, 'n'은 인코딩된 영화 중의 최종 프레임에 대응한다. 재인코딩의 버퍼 레벨을 적어도 최초 인코딩에서 행해졌던 지점으로 간단히 설정하는 제1 방법에과 달리, 재인코딩을 위한 버퍼 점유가 임의의 연속 프레임에 대해 언더플로우 상태를 생성하지 않고 최초 인코딩보다 얼마나 낮게 진행될 수 있는가를 결정하여야 한다. 이러한 조건을 만족시키는 경계에서의 새로운 낮은 버퍼 점유를 B0'이라 하자. 이는 편집 세그먼트 경계에서의 최소 허용가능 버퍼 점유이다. 버퍼 점유가 이전 실행의 버퍼 점유보다 낮을 가능성은 편집 세그먼트 후의 나중 프레임 간격 내에 차가 흡수되어 언더플로우가 발생되지 않을 것이라는 사실의 결과로서 생긴다.
제18도의 단계(420)으로부터 시작하면서, 편집 세그먼트의 최종 프레임의 재인코딩된 비디오의 버퍼 점유 B0'은 나중에 언더플로우를 발생시키지 않는 0이라고 가정한다. 이는 버퍼 언더플로우를 발생시키지 않도록 하기 위해서, 버퍼 점유는 더 높게 되겠지만, 버퍼 점유는 0보다는 낮을 수 없다는 추측이 가능하기 때문에, B0'에 대해 가장 관대한 추정(estimation)이 된다. 그러나, 제18도의 프로세스는 재인코딩된 편집 세그먼트의 최종 프레임에서의 0이라는 점유가 언더플로우를 발생시키는지의 여부를 알아보기 위해 체크할 것이며, 만일 그러하다면 언더플로우를 발생하지 않을 B0'값이 검출될 때까지 편집 세그먼트의 종단에 있는 버퍼 점유를 증가시킬 것이다.
제18도의 프로세스는 최초 인코딩과 재인코딩 사이의 추정된 버퍼 점유차, x'을 산출한다.
모든 언더플로우 경우가 배제될 때까지, 차 X'가 검토되어 필요에 따라서 조정된 것이 확인될 때까지 차가 최종적으로 결정될 수 없기 때문에 차 X'은 추정값으로 불린다. 제18도의 절차는 경계 프레임을 바로 뒤따르는 프레임, 즉 i = 1에 대응하는 프레임을 시작으로 한번에 한 프레임씩 진행시킨다. B0'이 0의 값인 제1 프레임의 경우, 추정된 차는 간단히 단계(422)에서 추정된 바와 같이 최초 인코딩의 제1 프레임의 버퍼 점유값이다.
다음으로, 단계(424)에서는 경계 프레임 우측의 프레임에 의해 흡수되는 비트수가 판정된다. 흡수된 비트수는 최초 인코딩의 편집 세그먼트 후에 프레임에 의해 버퍼 내에 배치되나 실제로는 버퍼가 꽉 차 있으므로 더 이상의 비트를 수용할 수 없기 때문에 최초 인코딩 동안 버퍼 내에 저장되지 않았던 비트를 참조하는 경우에 사용되는 단계이다. 크기 △ti는 버퍼가 꽉 차 있으나 감소된 B0'값으로 인하여 이제는 추가 비트를 수용할 수 있는 편집 세그먼트 후의 최초 인코딩의 i번째 프레임의 시간 기간을 나타낸다. 시간 기간 △ti는 버퍼가 전체 프레임에 대해 꽉 찰 수 없을 때의 프레임의 시간 기간보다는 작아야 하고, 또 0보다 크거나 또는 같다. 만일 버퍼가 최초 인코딩 동안 전혀 채워지지 않았다면, 시간 기간 △ti는 0이다. 따라서,
이 때, 'p'는 초당 프레임으로 측정된 화상 속도이며 전형적으로는 30 프레임/sec이다. 버퍼가 꽉 찬 상태임에 따른 결과로서 편집 세그먼트 우측에 흡수된 전체 비트수는 다음과 같이 계산된다.
이 때, Rmax는 버퍼의 채우는 속도(fill rate)이다.
단계(426)에서는 편집 세그먼트의 최종 프레임의 버퍼 점유 레벨을 결정하기 위한 절차가 종료될 수 있는가를 결정한다. 만일 i번째 프레임에 의해 흡수된 비트의 합계가 X'을 초과, 즉 ai> X'라면, 버퍼 언더플로우가 발생하지 않도록 후속 프레임에 의해 버퍼가 채워지는 것이 가능하고 단계(428)이 수행되기 때문에 절차는 중단된다. 또는, 만일 최종 프레임 n이 도달하면(i = n), 추정값 X'은 비디오의 종료까지 언더플로우 문제를 야기시키지 않을 것이다.
만일 단계(426)의 답이 "아니오"라면, 단계(430)에서 비트수 bi가 계산되어 흡수 대상이 된다.
그 다음으로, 단계(432)에서는 bi> Bi인지를 판정하는데, 이 때 Bi는 편집 세그먼트 후의 i번째 프레임의 버퍼 점유이다. 만일 bi> Bi라면, 현재 버퍼 점유 Bi가 허용하는 것보다 많은 비트들이 흡수 대상으로서 남겨지기 때문에, 추정값 X'은 너무 커, 언더플로우를 야기할 것이다. 따라서, 흡수 대상으로서 남겨진 비트들 가운데, 단지 Bi비트만이 언더플로우를 야기시키지 않고 흡수될 수 있다. 다음으로, 추정값 차 X'은 단계(434)에서 수정될 필요가 있다. 단계(434)에서, 추정값의 수정값 X'은 흡수 대상으로서 남겨진 비트와 흡수된 비트의 합으로써 계산된다.
만일, 단계(432)에서 bi≤ Bi로 판정된다면, i번째 프레임에서의 버퍼 점유는, 흡수 대상으로서 남겨진 비트보다 크기 때문에 어떠한 언더플로우 문제도 생기지 않으며, 추정값 X'을 변경시킬 필요도 없고, 플로우 챠트의 흐름은 단계(436)로 진행한다. 단계(436)에서는 다음 프레임이 검토되며(i는 1씩 증분된다), 단계(424, 426, 430, 432, 434 및 436)의 루프가 단계(426)의 결정이 긍정적인 답일 때까지 반복된다.
만일, 단계(426)에서 긍정적인 답을 얻었다면, 추정값 X'은 수용할 수 있으므로 단계(428)에서 편집 세그먼트의 경계에서의 최소 허용된 버퍼 점유 B0'가 다음과 같이 계산된다.
만일, 편집 세그먼트의 재인코딩된 마지막 프레임의 실제 버퍼 점유가 B0'보다 낮다면, 비트의 재할당에 기인하여 언더플로우 상황이 발생할 것이다. 이러한 경우, 최종 프레임은 u_flow list에 언더플로우 지점으로서 표시되며, 언더플로우 조건을 방지하기 위한 편집 세그먼트의 최종 프레임으로부터 삭제할 필요가 있는 비트수(변경된 비디오의 비트수와 최소 허용가능 버퍼 점유의 결과를 가져오는 B0'의 차)들이 단계(392)에 대해 설명된 방법과 유사한 방법으로 u_val에 위치된다.
본 발명의 인코딩 시스템에 대하여는, 비디오는 모든 지점에 대한 버퍼 점유를 아는 것이 바람직하며, 이러한 정보는 로그 파일에 저장된다는 것을 주목해야 한다. 그러나, 만일 편집 세그먼트의 최종 프레임에서의 버퍼 점유가 감소된다면, 편집 세그먼트 후의 프레임에 대한 버퍼 점유는 변경될 수 있어, 로그 파일내의 버퍼 점유 정보를 부정확하게 만듦으로써, 편집 세그먼트 후의 프레임의 버퍼 점유를 다시 추정하는 보정 동작이 취해질 필요가 있게 된다.
제17도의 프로세스를 다시 참조하면, 단계(396)에서는 u_flow list에 어떤 항목이 있는가를 판정한다. 만일 아무것도 없다면, 어떠한 언더플로우 문제도 없으며 제17도의 프로세스가 종료된다. 만일 u_flow list에 항목이 있다면, 플로우 챠트의 흐름은 보호되는 가장 근접한 o_flow 지점까지 u_flow list의 각 위치의 좌측 섹션을 표시하는 단계(398)로 진행하며, u_val의 대응 비트수와 같은 비트들이 이러한 섹션으로부터 제거된다. 버퍼 언더플로우는 하나 이상의 프레임 내의 너무 많은 비트에 의해 야기되기 때문에, 프레임 내의 비트수를 감소시키는 것은 언더플로우 문제를 해결할 것이다. 언더플로우를 방지하기 위해 비트를 제거시키는 것에 기인하는 화질의 뚜렷한 감소가 발생하지 않도록 하기 위하여, 비트들은 언더플로우 지점의 바로 그 프레임으로부터만 삭제되는 것은 아니고, 버퍼가 꽉 찬 최종 지점까지 모든 프레임으로부터 똑같이 삭제된다. 이는 언더플로우를 여전히 방지하면서도 최고 품질의 비디오를 얻도록 하는 방법을 제공한다.
그 다음으로, 단계(398)에서 제거된 이러한 비트들은 단계(400)에서 보호된 것으로 표시되지 않은 섹션들에 똑같이 분배되며, 제17도의 프로세스가 다시 시작된다. 단계(400)에서의 비트의 분배에 의해 언더플로우가 이제 더 이상 문제가 아니라는 것을 보장하는 것은 아니고, 이러한 이유로 반복적으로 제17도의 전체 프로세스를 사용하여 언더플로우 상태에 대해 다시 검토할 필요가 있게 된다.
제17도의 프로세스가 완료된 후, 제12도의 단계(288)이 완료되고 제12도의단계(290)가 실행된다. 단계(290)에서는 단계(282)에서 결정되는 속도-양자화 함수를 사용하여 각 프레임에 대한 평균 양자화값을 결정한다. 소망 비트수는 단계(286)에서 이미 계산되었고 또 단계(288)에서 언더플로우 문제가 있는지를 알아보기 위하여 검토되었으나, 인코딩된 데이타가 소망 비트수를 갖도록 데이타를 재인코딩시키기 위하여 양자화값이 결정되어야만 한다. 이는 속도-양자화 함수를 사용하여, 속도를 조사하여 양자화값을 결정함으로써 간단히 결정된다.
화상 단위로 양자화 레벨을 결정하기 위하여, 속도-양자화 함수(RQF)가 단계(282)에서 결정된다. 이러한 함수를 추정하기 위하여, 각 화상에 대한 2개의 데이타 지점들이 요구된다. RQF는
인데, 이 때, R은 하나의 화상을 코딩하는데 사용되는 비트수이며, Q는 양자화 스케일이고, x, g 및 H는 화상 단위의 코딩 특성 파라미터들이다. H는 양자화 스케일과 독립된 비트를 나타내기 때문에, H는 헤더, 이동 벡터, DC 계수 등에 의해 소모되는 비트이다. x 및 g는 지정된 양자화 스케일로 화상을 코딩하기 위해 사용되는 AC 계수 비트들에 대응하는 한쌍의 데이타 지점으로부터 추정된다.
인코더의 제1 실행은 비디오 시퀀스에서 코딩된 각각의 화상에 대한 2가지 데이터 지점을 생성할 목적으로 사용될 수 있다. 이는 화상의 각 매크로블럭마다 사용되는 한쌍의 교체할 수 있는 양자화 스케일값에 의해 행해질 수 있다. 이러한 값들은 속도-양자화 모델 파라미터 'x' 및 'g'를 계산하기 위하여 프로세싱된다. 이러한 2개의 파라미터들은 H값과 함께, 코딩된 비디오의 프레임마다 하나씩 파일에 저장될 수 있다.
비디오의 특정 코딩된 프레임에 할당되는 타겟 비트를 발생시키는 양자화 스케일을 결정하기 위하여, 'R'가 타겟 비트를 나타내는 상기 등식을 사용하며, 또(x, g, H)값은 상술된 로그 파일일 수 있는 저장된 데이타 파일로부터 판독된다. 이러한 등식에 가장 잘 맞는 'Q'값들은 소망의 양자화 스케일이다.
그 다음으로, 단계(292)에서는 단계(290)에서 결정된 양자화값을 사용하여 비디오의 변경된 섹션을 다시 인코딩한다. 앞서 인코딩된 비디오의 재인코딩 세그먼트는 재인코딩 동안 특별한 절차가 뒤따르지 않는다면 인코딩 아티팩트 문제(encoding artifact problem)을 발생시킬 수 있다는 것을 주목해야만 한다. 인코딩 및 디코딩 아티팩트를 피하기 위한 재인코딩 프로세스에 대한 상세한 사항은 아래의 개별 섹션에서 설명된다. 비디오가 다시 인코딩된 후, 앞서 인코딩된 비디오대신 비트스트림 내에 대체되고, 프로세스가 종료된다.
제5도를 참조로 설명된 바와 같이, 사용자는 비디오를 수용할 수 있는가에 대해 결정하기 위하여 다시 인코딩된 후에 비디오를 시청할 수 있다. 만일 수용가능하지 않다면, 사용자는 새로이 인코딩된 비디오를 수용해야만 하는 것은 아니며, 이전에 인코딩된 비디오를 사용하여 계속 시청할 수 있다. 만일 사용자가 새로이 인코딩된 비디오가 바람직한 것으로 인식하면, 새로이 인코딩된 비디오가 이전에 인코딩된 비디오를 대체할 것이다. 그 다음으로, 사용자는 제5도에 도시된 바와 같이 공간적 또는 시간적으로 비디오의 새로운 세그먼트를 편집할 수 있다.
제19A도 및 제19B도는 최초의 비디오 인코딩으로부터, 사용자가 수동 품질특성을 입력한 후의 비트 전송 속도의 2가지 다른 실시예를 도시한다. 제19A도 및 제19B도에서, (메가비트를 나타내는 106스케일로) 비트 전송 속도는 화상 그룹 번호에 대하여 도시된다. 도시된 실시예에서, 하나의 GOP는 15개의 화상을 가지며, 각각의 GOP는 1/2초 마다 표시된다. 또한, 실선은 초기 인코딩을 도시하며, 파선은 사용자가 화질을 수동 조정한 후의 인코딩을 도시한다.
제19A도는 2, -3, 3, 0 및 보호 우선 순위를 갖는 5개의 다른 우선 순위 영역을 갖는 인코딩을 도시한다. 우선 순위 3을 갖는 시간 기간은 초기 인코딩에 비해 재인코딩 후에 더 많은 비트들을 사용한다. 우선 순위는 단지 서로에 대해서만 상관되기 때문에, 우선 순위 2로 표시된 섹션은 크게 증가된 비트 전송 속도를 갖지 않는 반면, -3 및 0인 섹션들은 감소된 비트 전송 속도를 갖는다. 보호 섹션은 재인코딩 전에 존재한 재인코딩 후와 유사한 비트 전송 속도를 가져야만 한다.
제19B도는 사용자 선택 우선 순위가 0, 2, 0, 4 및 0인 영역을 각각 갖는 제 2 실시예이다. 역시, 우선 순위들이 서로 상대적이기 때문에, 0인 우선 순위는 비트 전송 속도가 변경되지 않음을 의미하는 것은 아니고, 단지 2 및 4인 우선 순위를 갖는 다른 섹션들에 대해 상대적인 우선 순위일 뿐이다. 4인 우선 순위를 갖는 섹션에 높은 비트 전송 속도를 제공하기 위하여, 0인 사용자 선택 우선 순위를 갖는 다른 3개의 섹션들은 줄어들며, 2인 우선 순위를 갖는 섹션은 인코딩 전 및 후에 거의 동일한 비트 전송 속도를 갖는다.
시간적 수동 편집을 위한 처리는 본 발명의 양호한 실시예에서는 제1A도의워크스테이션(30)에서 발생한다. 그러나, 시간적 수동 편집이 비디오 인코딩 프로세스 동안에는 생기지 않기 때문에, 워크스테이션(10)은 비디오 인코딩 프로세스의 속도를 떨어뜨리지 않고 시간적 수동 편집 계산을 수행할 수 있다.
본 발명이 편집 세그먼트 내의 여러 시간 세그먼트의 화질이 변화하는 경우에 대해 상세히 설명된다는 사실을 주목해야만 한다. 물론, 동일 시간 세그먼트에 있지 않은 화상 섹션의 품질 변화를 얻을 수 있도록 이러한 개념을 확장하는 것은 분명히 가능하다. 예를 들어, 처음 5분을 희생하여 영화의 마지막 5분의 품질을 향상시키도록 본 발명의 교시를 응용하는 것이 가능하다. 만일 아래에 설명된 단독 편집 세그먼트 밖의 시간 기간의 품질의 변경이 요구되는 경우, 사용자는 순차적으로 해당하는 세그먼트를 살펴 검토하고, 비트를 재할당하며, 또 각 섹션의 트레일링 에지에서의 버퍼 점유 뿐만 아니라 영화의 전체 비트에 관련된 억제 사항이 규정된 제한 내에 있는 것을 확인하는 것이 필요하다. 그러나, 이는 본 기술 분야에 통상의 숙련된 자에 의해 본 명세서에 포함된 교시에 따라 과도의 실험없이도 이루어질 수 있다.
시간 수동 편집은 편집 세그먼트의 최초 인코딩의 비트수를 편집 세그먼트의 재인코딩의 비트수와 동일하게 유지하는 것으로서 설명된다. 그러나, 만일 희망에 따라, 재인코딩 편집 세그먼트에서 더 적은 비트를 소모할 수 있거나, 또는 만일 기억 용량이 충분하다면, 재인코딩된 편집 세그먼트의 비트수는 최초 인코딩의 비트수를 초과할 수 있다. 또한, 비디오의 최초의 인코딩을 최종 디지탈 기억 매체상의 모든 사용가능한 기억 공간을 소모하지 않도록 실행하는 것도 가능하다. 따라서, 재인코딩 후의 전체 비트수는 최초의 부호화일 때의 양보다 더 많은 또는 더 적은 어떠한 양, 예를 들어 5 % 및 1 % 초과 또는 미만 비트를 포함하는 0 %와 20 % 사이 초과 또는 미만인 양을 소모할 수 있다.
시간적 수동 편집에 대한 설명은 인코딩된 후의 비디오의 변화에 대하여 행해졌다. 그러나, 본 명세서에 포함된 교시는 초기 인코딩 프로세스가 아닌 시스템에 응용될 수 있다. 또한, 공통 비트 풀의 사용과 관련된 시간 수동 편집의 교시는 아래에 설명되는 비디오 프레임용 공간 수동 편집의 개념에 응용될 수 있다. 또한, 아래에 설명되는 바와 같이 공간 수동 편집이 개별적인 프레임에 대해 행해지는 방식은 품질의 시간 편집을 달성하기 위하여 일련의 프레임에 응용될 수 있다.
B. 프레임 영역 내의 품질 변경
제20도는 하나 이상의 프레임 내의 영역의 품질을 변경하기 위한 일반적 절차를 도시한다. 개시된 후, 단계(450)에서는 시스템 구성 요소 및 일반적 시스템 동작에 관한 섹션에서 상술된 바와 같이 입력된 비디오를 MPEG 포맷 또는 다른 포맷과 같은 압축된 디지탈 포맷으로 인코딩하는 자동 비디오 인코딩이 수행된다. 단계(452)에서는 인코딩된 비디오를 사용자에게 표시하며, 단계(454)에서는 사용자가 하나 이상의 프레임 내의 영역의 품질 변경을 나타내는 명령을 입력하도록 하게 한다.
제21도는 제1도에 도시된 비디오 표시 모니터(61)와 같은 모니터 상에 표시된 비디오의 프레임을 도시한다. 제21도의 비디오 프레임은 나무(465), 사람(467), 새(468) 및 2개의 구름(471)을 갖는 것으로 도시된다.
제21도에서, 프레임 내의 영역들은 나무(465)를 둘러싸는 영역(466), 사람을 둘러싸는 영역(469), 및 영역(469)에 겹치며 또 새(468)와 사람(467)의 머리를 포함하는 영역(470)을 포함하는 것으로 도시된다. 이러한 영역들은 제1A도에 표시된 그래픽 포인팅 장치(33)을 사용하여 그려졌다. 제21도에서 사용자에 의해 설정된 품질 우선 순위는 나무를 포함하는 영역(466)에 대해서는 -5, 사람을 포함하는 영역(469)에 대해서는 +2, 또 새와 사람의 머리를 포함하는 영역(470)에 대해서는 +4인 우선 순위를 가질 수 있다. 제21도의 비디오 프레임의 다른 영역들은 어떠한 사용자 정의 우선 순위도 갖지 않으므로, "돈트 캐어(Don't Care)" 우선 순위가 할당된다. 다음에 설명되는 바와 같이, "돈트 캐어" 영역들은 사용자 정의 우선 순위를 갖는 프레임의 인코딩의 전체 비트수를 프레임의 최초 인코딩으로부터의 결과로 생긴 비트수와 같게 되도록 조정하기 위하여 사용자 정의 영역에 대한 양자화 레벨을 변경시킨 후 최초로 수정된 영역들이다. 만일 사용자가 프레임 영역의 품질 변경을 원하지 않는다면, 이러한 영역들은 사용자에 의해 0인 우선 순위를 갖는 것으로 표시될 것이다.
본 발명의 양호한 실시예에서는, 비디오의 프레임 내의 우선 순위 영역을 정하는 때에 사용자는 그래픽 포인팅 장치를 사용하여 비디오의 표시된 프레임 상에 직사각형 영역을 처음에 생성한다. 나중에 정의된 영역들은 이미 정의된 영역 상에 배치되어 겹쳐질 수 있다. 본 발명이 직사각형 영역을 정의하는 것에 관하여 검토되었지만, 당연히 본 발명의 교시는 원 또는 타원과 같은 곡선, 8각형 또는 6각형과 같은 다각형 또는 곡선 및/또는 직선을 포함하는 임의의 다른 사용자 정의 모양을 갖는 영역을 포함하는 어떠한 모양의 영역에도 응용될 수 있다. 경우에 따라서, 사용자는 모든 영역의 모양을 정의할 수 있으므로, 이러한 영역들에 대한 우선 순위를 지정할 수 있다.
사용자가 초기에 영역 내의 우선 순위를 정할 때, 영역들은 픽셀 위치에 대응한다. 그러나, 아래에 설명된 우선 순위 할당 프로세스는 매크로블럭 단위로 동작하는데, 매크로블럭은 디지탈 비디오 인코딩에 사용되는 단위이다. 따라서, 만일 매크로블럭이 사용자 정의 영역내 또는 외주변에 있다면, 매크로블럭에는 영역 우선 순위가 할당된다. 본 기술 분야의 통상의 숙련된 자는 간단한 수학을 사용하여 사용자 정의 영역에 대응하는 매크로블럭을 간단히 결정할 수 있다. 사용자 정의 영역의 외주변의 경우, 만일 영역의 외주변이 매크로블럭과 교차한다면 사용자 정의 영역에서 매크로블럭을 단순히 포함하는 것에 대한 대안으로서, 매크로블럭이 영역 내에 포함되어야만 하는가를 결정하기 위한 보다 정밀한 프로세스가 실행될 수 있는데, 만일 50 %보다 많은 매크로블럭이 사용자 정의 영역 내에 있다면 사용자 정의 영역에 매크로블럭을 포함시키고 또 50 % 미만인 매크로블럭이 사용자 정의 영역 내에 있다면 매크로블럭을 사용자 정의 영역에서 배제시킴으로써 수행될 수 있다.
영역 및 그들의 우선 순위가 정의된 후, 사용자는 원한다면 영역의 중첩을 변경시킬 수 있다. 예를 들어, 사용자는 소정의 기능키를 누른채로 제21도의 영역(469) 상을 '클릭'할 수 있고, 또 영역(469)을 전체 사람이 영역(469)의 우선 순위를 갖도록 하고 단지 새(468)만이 영역(470)에 할당된 우선 순위를 갖게 하도록 영역(470)의 위에 있도록 변경시킬 수 있다. 중첩 영역들은 사용자에 의하여 입력된 때에 스태킹 우선 순위(stocking priority)가 주어진다. 이러한 스태킹 우선 순위는 사용자 정의 영역들이 부가(adding), 삭제 또는 변형되는 때 필요에 따라서 조정된다.
영역들이 정의된 후, 사용자는 역시 원하는 대로 영역의 모양을 다시 만들거나 또는 그래픽 포인팅 장치(33)을 사용하여 영역을 움직일 수 있다. 또한, 사용자에 의해 정의된 영역들은 그래픽 포인팅 장치(33)을 사용하여 삭제될 수 있다. 영역들이 삭제된다 해도, 단지 사용자 정의 우선 순위들은 삭제되는 것이며, 삭제된 영역 내의 원래의 비디오 데이타는 물론 삭제되지 않는다는 사실을 주목해야만 한다.
시간 기간 동안 품질을 변경하는 것에 대하여 상기 섹션에서 설명된 바와 같이, 자동 인코딩 동안 또는 그 후에 사용자는 인코딩된 비디오를 다시 살펴볼 수 있고, 해당하는 프레임 또는 시간 기간이 발생할 때마다, 사용자는 키보드 상의 키를 간단히 누를 수 있거나 또는 해당하는 특정 프레임 또는 시간 기간을 나타내는 입력을 다른 장치로부터 입력할 수 있다. 그 후, 사용자는 GEKD 프레임 또는 시간 기간으로 되돌아 갈 수 있으며, 희망에 따라, 해당 시간 기간을 연구하여 그 시간 기간 내에서 특징을 변경시키는데 더 많은 시간 기간을 소비할 수 있다.
비디오의 프레임 내에 사용자가 영역을 정하는 프로세스는 사용자에 의하여 단지 하나의 프레임 데이타가 변형되는 간단한 경우에 대해서 상술되었다. 그러나, 한번에 한 프레임씩 순차적으로 비디오 내의 데이타 프레임에 대해 작업하는 것은무척 성가신 일일 것이기 때문에, 본 발명은 사용자가 처음 시간 기간의 영역 및 나중 시간 기간의 대응 영역을 정하도록 하게 한다. 후속적으로, 제1 프레임 및 최종 프레임 사이의 중간의 모든 비디오 프레임이 제1 및 최종 프레임에 대해 사용자에 의해 정의된 영역에 대응하는 영역을 자동적으로 생성시키고, 제1 영역 및/또는 최종 영역과 동일한 우선 순위 또는 제1 및 최종 프레임의 우선 순위에 기초된 우선 순위가 할당되도록 보간 프로세스(interpolation process)가 수행된다. 추가로, 중첩 영역의 스태킹 우선 순위들은 보간 프로세스 동안 유지된다. 중간 프레임들이 그들의 영역을 자동적으로 생성시킨 후에는, 사용자는 희망에 따라 영역의 우선 순위 및 형상을 변경함으로써 자동적으로 생성된 영역을 변경하고, 새로운 영역을 추가하고, 또는 영역을 삭제할 수 있다.
아래는 보간 프로세스가 어떻게 작동하는가에 대한 일례다. 사용자가 시각 t_1 및 t_n에서의 2개의 프레임에 대한 우선 순위 영역을 선택한다고 하자. 사용자가 프레임 t_1에 영역 및 t_n에 대응 영역을 할당한 후, 이러한 2개 영역의 좌표들을 t_1과 t_n 사이의 모든 프레임에 대한 영역 규정(specification)을 얻기 위하여 중간 프레임에 대해 보간시킨다. 보간이 정의된 실제 영역에 대해 수행될 수 있을 뿐만 아니라, 보간은 품질 우선 순위에 대해서도 역시 수행될 수 있다. 보간 프로세스의 경우, 간단한 1차 함수가 사용된다. 사용자가 지점 a_1을 갖는 프레임 t_1의 영역 A를 정의하고, 프레임 t_n의 대응 영역 A에 대응 지점 a_n이 있다고 가정하면, 중간 프레임 a_2, a_3, … , a_(n-1)의 대응 지점들은
정의되는 수평 좌표를 가지며,
로 정의되는 수직 좌표를 갖는데, 여기서, h 및 v는 당해 지점의 수평 및 수직 좌표에 대응한다. 이러한 프로세스에서, 영역을 정하는 다각형의 정점들만이 사용되며, 정점들이 보간된다. 이후, 영역은 정점들에 의해 정해진다. 선형 보간 이외의 다른 보간 기법들이 수행될 수 있다.
편집해야 할 세그먼트의 모든 프레임에 대한 모든 영역들이 적절히 정의될 때까지 요구된 횟수만큼 상기 보간 프로세스가 수행될 수 있다. 또한, 이러한 프로세스는 사용자가 중간 프레임에 대한 보간을 통해 결정된 영역을 이동 또는 그 크기를 변경가능하고 또 보간 프로세스가 변경된 중간 프레임과 제1 프레임 및 그 다음에는 중간 프레임 및 최종 프레임에 대해 다시 실행될 수 있도록 하는 미동조(fine-tunning) 프로세스에 의해 반복될 수 있다. 보간 프로세스는 주로 프레임을 가로질러 이동하는 영역을 정의하는데 사용된다. 그러나, 본 발명은 역시 정지 상태이며 일련의 프레임에 사용되는 영역을 정하는 것을 포함한다.
영역들이 정의되고 사용자 정의 우선 순위가 입력된 후, 각 매크로블럭에 대한 새로운 양자화값들이 사용자에 의해 입력된 우선 순위 및 매크로블럭의 이전 양자화값에 따라 제20도의 단계(456)에서 추정되어 결정된다. 이는 각각의 사용자 선택 우선 순위에 사용된 원래의 양자화값의 비율을 도시하는 제22도에 도시된 관계에 따라 결정된다. 예를 들어, 만일 사용자가 0인 우선 순위를 입력한다면, 사용된 원래 양자화값의 결과 비율은 1인데, 이는 원래의 양자화값에 대해 어떠한 변경도없다는 것을 의미한다. 만일 사용자가 -3인 우선 순위를 선택하면, 원래의 양자화값의 비율은 1.58인데, 이는 3인 우선 순위를 갖는 매크로블럭에 대한 원래의 양자화값을 1.58로 승산하여 최종 양자화값을 결정하는 것을 의미한다. 우선 순위 -3은 감소된 품질을 의미하기 때문에, 더 적은 비트들이 매크로블럭에 대해 사용될 것임을 의미하는 감소된 품질을 이루도록 양자화 레벨이 증가되어야만 함을 의미한다. 반대로, 만일 3과 같은 양의 우선 순위가 사용자에 의해 입력된다면, 초기 자동 인코딩으로부터의 매크로블럭의 양자화값은 양자화 레벨을 감소시키는 0.42로 승산된다. 감소된 양자화 레벨은 매크로블럭 내의 이미지를 표현하기 위하여 더 많은 비트들이 요구됨을 의미하며, 따라서 화질이 증가된다.
제22도에서 도시된 라인 상의 점들은 (-5, 100), (-4, 1.75), (-3, 1.58), (-2, 1.42), (-1, 1.25), (0, 1), (1, 0.72), (2, 0.58), (3, 0.42), (4, 0.25) 및 (5, 0.01)이다. 제22도에서 도시된 맵핑은 q-레벨과 우선 순위(priority) 간의 구분적 선형(piece-wise linear) 관계에 준거한 것이다. 제22도에서 정해진 점들은 실험을 통해 정해진 것이며 희망에 따라서는 사용자 선택 우선 순위에 다른 배율을 사용할 수 있다.
-5와 5의 우선 순위는 각각 최저 및 최고가능 품질을 얻도록 의도된 것이다. MPEG-2 인코딩의 경우, 최저 품질은 비선형 양자화 스케일을 사용할 때는 112의 최대 허용가능 양자화 레벨과 선형 양자화 스케일을 사용할 때는 62의 최대 허용가능 양자화 레벨로부터 얻어진다. 또한, 최고 품질을 얻는데 사용되는 최저 양자화 레벨은 1이다. 따라서, 제22도에서 도시된 관계에 따라 실제 허용된 q 스케일을 벗어난 값이 발생될 수 있으나 이들 계산된 q 값들은 그들의 포화 레벨에 간단히 위치될 수 있다. 일례로서, 초기에는, 매크로블럭은 20의 양자화 스케일을 가지며 사용자는 매크로블럭에 대한 우선 순위를 -5가 되도록 선택하는 것으로 가정한다. 양자화값 20에 100이 곱해짐으로써 양자화 스케일에서 벗어난 2,000의 새로운 양자화 레벨이 산출되므로, 최대 또는 포화 양자화값이 사용된다.
상술된 바와 같이 포화 레벨을 사용하는 것 이외에도, 본 발명은 MPEG 인코딩의 I, P 및 B 프레임에 대해서도 예방책을 강구하고 있다. 본 발명은 비선형 양자화의 경우 I형 프레임의 최고 양자화 레벨은 96으로 제한시키고 선형 양자화 스케일을 사용한 경우에는 58로 제한시킨다. 동일하게, 비선형 양자화 스케일의 경우 B형 및 P형 프레임의 최고 양자화 레벨은 112이며, 선형 양자화 스케일의 경우에는 62이다. 선형 및 비선형 양자화 스케일은 MPEG 표준으로 정해진다. I, P 및 B형 프레임 각각에 사용된 최저 양자화 레벨은 1이다. 물론, 제22도에서 도시된 초기 양자화값의 비율과 사용자 정의 입력은 사용자의 필요 요건을 만족시키도록 변경될 수 있다.
단계(456)에서 각 매크로블럭에 대한 새로운 양자화값을 계산한 후, 단계(458)에서는 단계(456)에서 정해진 양자화값으로부터 얻어진 각 프레임의 비트수를 결정한다. 이 단계는 본 발명의 바람직한 실시예의 경우 일부 영역의 품질은 증가시키는 한편, 다른 영역의 품질은 감소시킨 후에는 각 프레임에서 동일한 비트수를 얻어야 하므로 중요하다. 새로운 양자화값으로부터 생성된 비트수를 결정하기 위해서는 각 매크로블럭의 양자화 레벨 대 생성 비트수를 적절하게 추정하는 함수를 갖는 것이 필요하다. 생성 비트수 대 양자화 레벨 간의 관계를 정하기 위해, MPEG-2 인코더와 같은 비디오 인코더의 실험 결과를 연구하였으며 정해진 관계는 실제적인 실험 결과에 근거한다. 각 종의 양자화 레벨과 프레임 유형에 대한 시뮬레이션 결과를 다수의 비디오 시퀀스를 사용하여 행해졌다. 이들 결과에 근거하여, 어느 한 매크로블럭의 양자화 레벨(q)과 그 매크로블럭의 인코딩시에 사용되는 비트수(b) 간의 다음 관계식은 프레임 유형에 따라
로 정해졌으며, 여기서 m은 I 유형 프레임의 경우에는 -0.75이며, B 및 P 유형 프레임의 경우에는 -1.0이다. 또한, n은 I, P 및 B 유형 프레임의 경우 각각 15, 14.5 및 13.8이다. 이들 값은 상술한 바와 같이 다수의 비디오 시퀀스에 대해 평균을 취한 것이다. 상기 식은 인코더의 작용을 예측하기 위한 양호한 근사 척도로서 사용되며, 비트수와 양자화 레벨 간의 관계는 로그 변역(log domain)에서 선형이다. 물론, 정확하다면 양자화 레벨과 생성 비트수 간의 다른 관계를 이용하여 본원에서 기술된 다른 속도-양자화 함수를 포함하여 주어진 양자화 레벨로부터 생성된 비트수를 결정할 수 있다.
상기 프로세스는 주어진 양자화 레벨로부터 생성된 비트수를 결정하는 방법에 대해 기술하였다. 그러나, 하나 이상의 인코딩을 사용할 경우, 새로운 인코딩으로부터 나온 정보를 이용하여 데이타 전송 속도 대 양자화 함수를 보다 정밀화시킬 수 있다. 초기의 자동 인코딩 프로세스 동안, 인코드될 비디오의 통계를 얻는데 사용되는 제1 비디오 인코딩 패스가 있다. 다음에, 실제 인코딩인 제2 인코딩 패스동안, 데이타 전송 속도 대 양자화 함수의 다른 실제 지점이 주어진 q-레벨로부터 생성된 비트수 b를 기술하는 상기 식에 대응하는 b 대 q 플로트에서와 같이 얻어질 것이다. 데이타가 사용자 지정 선택에 따라 재인코드된 후, 후술하는 바와 같이, 최종 재인코드된 비디오는 이것이 소망의 품질 향상을 만족하는지에 따라 사용자에 의해 수용 또는 거절된다. 각각의 재-인코딩에 의해, 추정된 q-레벨 대 비트 관계에 대한 실제 데이타가 생성된다. 새로운 q-레벨 q'가 지정되면, 정해진 데이타 전송 속도는 재인코딩에 의해 얻어진 부가 데이타에 따라 이 지점에서 보다 정확해질 것이다. 새로운 양자화 레벨 q'가 이전에 얻어진 임의 두 점 간에 있으면, 로그 영역에서 선형 보간이 가능하여 새로운 q 레벨을 갖는 인코더에 의해 출력될 비트수의 계산값을 얻을 수 있다. 새로운 양자화 레벨 q'가 정해진 2개의 q-레벨 사이에 존재하지 않으면, 가장 근접한 q 레벨에서 새로운 양자화 레벨 q로 외삽하는 모델을 사용할 수 있어서 인코딩시에 발생될 비트수를 추정할 수 있다. 데이타를 보다 많이 재인코드할수록 인코더로부터의 출력 비트에 대해 보다 양호한 계산값을 얻을 가능성은 높아진다는 것에 주목하자.
추정된 양자화 값으로부터 생성된 각 프레임의 비트수가 제20도의 단계(458)에서 정해진 후, 단계(460)에서는 추정된 비트수가 프레임의 원래의 비트수와 충분히 근사한지를 판정하여 필요에 따라 비트수를 정정한다. 이것은 제23도 내지 제25C도에서 도시된 프로세스에 따라 행해진다.
단계(460)가 수행되면, 제23도의 단계(472)에서는 우선 추정된 비트수와 초기 인코딩의 비트수 간의 차를 판정한다. 이것은 다음 식
에 따라 계산되며, 여기서 B'는 수정된 프레임의 추정된 비트수이며, B는 초기 인코딩으로부터 생성된 프레임의 비트수이며, D는 차분이다. 물론, 초기 인코딩으로부터 생성된 비트수 이외의 B에 대한 값을 사용할 수 있다. 예를 들어, 사용자가 프레임의 전체 비트수를 증가시키기를 원할 경우, 그는 B를 초기 인코딩으로부터 생성된 비트수보다 많은 소정수로 설정할 수 있다. 동일하게, 사용자는 B를 그 프레임의 초기 비트수보다 적게 설정할 수 있다. 따라서, 재인코드된 프레임은 기억 구속, 최소 품질 구속 및 비디오 버퍼 언더플로우 확률에 따라 초기 인코딩보다 많거나 적은 비트를 소비할 수 있다. 또한, 프레임 내의 영역들에서 그들의 양자화값이 변경되지 않았으면, 양자화값이 변경된 영역으로부터 생성된 비트수만을 분석하고 변경되지 않은 영역은 무시할 수 있다. 단계(474)에서는 이러한 차분을 분석하여 너무 많은 비트가 있는 것으로 판정되면, 제어 흐름은 제24A도 내지 제24C도에서 도시된 프로세스의 B로 진행하여 매크로블럭의 양자화 레벨을 증가시켜 비트수를 감소시킨다. 단계(474)에서 변형된 프레임에 너무 적은 비트가 있는 것으로 판정되면, 제25A도 내지 제25C도에서 도시된 프로세스 F에 따라 보다 많은 비트를 생성시키기 위해서는 새로운 프레임의 매크로블럭의 양자화 레벨을 감소시켜야 한다. 그렇지 않고, 차분이 허용 한계치 내에 있으면, 매크로블럭의 양자화 레벨을 변경시킬 필요가 없으며 프로세스는 제20도의 단계(462)로 복귀한다. 재인코드된 비디오에 대해 프레임의 비트수가 동일하게 유지되면, 어느 한 영역에서 다른 영역으로 비트가 시프트되는 것으로 고려할 수 있다.
단계(474)에서, 차분 D는 차분을 임계치 T와 비교함으로써 분석된다. 임계치는 영역의 품질 변화로부터 생성되는 비트수가 전체 비트수의 0.001 내에 있으면 차분이 허용가능하여 프로세스가 정지될 수 있는 것을 의미하는 0.001 ×B로 설정된다. 물론, 차분이 허용가능한 것을 나타내는 정지 임계치는 다른 방식으로 정해질 수 있거나, 희망에 따라 증가 또는 감소되거나, 프레임의 초기 비트수와 사용자 선택 우선 순위로부터 생성된 최종 비트수에 따를 수 있다.
제24A도 내지 제24C도 및 제25A 내지 제25C도에서 도시된 프로세스는 제24A도 내지 제24B도가 사용자 선택 품질로부터 얻어진 비트수를 감소시키는데 사용되고 제25A도 내지 제25C도는 사용자 선택 품질로부터 얻어진 비트수를 증가시키는데 사용되는 것을 제외하고는 아주 동일하다. 지금부터 이들 프로세스에 대해 상세히 설명하기 전에 제24A도 내지 제25C도에서 수행되는 프로세스를 개략적으로 기술하고자 한다. 처음에, 비디오 프레임의 매크로블럭은 4가지 유형, "돈트 캐어(Don't Care)', "음 우선 순위(Negative Priority)", "양 우선 순위(Positive Priority)" 및 "돈트 체인지(Don't Change)" 중 하나로 표식되어 있다. 사용자에 의해 영역에 우선 순위가 할당되어 있지 않거나, 또는 시스템이 사용자가 "돈트 캐어" 상태를 할당하는 것을 허용하면, 그 영역은 "돈트 캐어" 유형인 것으로 간주된다. 사용자가 -5과 -1 사이의 우선 순위를 지정하면, 이들 영역 내의 매크로블럭은 "음 우선 순위"를 갖는 것으로 간주된다. 영역에 1과 5 사이의 우선 순위가 할당되면 이들 영역은 "양 우선 순위"인 것으로 간주된다. 최종으로, 모든 영역에 0의 우선 순위가 할당되거나, 시스템이 사용자가 임의 다른 방식으로 영역이 변경된 품질을 가질 수 없는 것을 표시하도록 하게 하면, 이들 영역 내의 매크로블럭은 "돈트 체인지" 유형으로 간주된다.
4개 매크로블럭 유형 각각 내의 매크로블럭이 각각 인덱스 i로 표식되어, 4개 유형 각각은 자신의 인덱스 셋트를 갖고 있다. 0의 덱스 i는 제1 매크로블럭에 할당되고 N-1의 인덱스는 최종 매크로블럭에 할당되며, 여기서 N은 영역 유형 내의 매크로블럭의 전체 수이다. 예를 들어, 모든 "돈트 캐어" 영역의 경우, 이들 영역 내의 각 매크로블럭은 0 내지 N-1로 인덱스되어 있다. 2개 이상의 상이한 "돈트 캐어" 영역이 존재하면, "돈트 체인지" 영역에 대한 2개의 상이한 인덱스 i = 0는 존재치 않는다. 모든 "돈트 캐어" 영역의 경우, 인덱스 0으로 표시된 매크로블럭 하나, 인덱스 1로 표시된 매크로블럭 하나 등등이 있다.
사용자가 영역의 우선 순위를 결정한 후 프레임에 너무 많은 비트가 존재하면, 프레임의 양자화 레벨은 프레임의 비트수를 감소시키기 위해서는 증가되어야 한다. 매크로블럭의 초기 양자화값은 제10A도 또는 제10B도에서 도시된 포맷을 갖는 매크로블럭 레이어 로그 파일로부터 추출된다. 이와는 다르게, 인코더는 양자화값들이 인코더의 초기 실행 후에 기억되어 있지 않으면 양자화값을 결정하도록 재실행될 수 있다. 또한 다른 방법은 초기 인코딩의 양자화값을 결정하기 위해 인코드된 비트스트림을 디코드하는 것이다. 수순이 비트수를 감소시키도록 작용하는 방식은 "돈트 캐어" 유형의 각 매크로블럭마다 양자화 레벨을 1씩 증가시키되, 한번에 한 매크로블럭씩 행한다. 만일 이것으로 문제가 해결되지 않면, "돈트 캐어"의각 매크로블럭은 한번에 하나의 매크로블럭이 하나씩 증가된 q 레벨을 갖는다. 소정의 최대 양자화 레벨이 설정되며 매크로블럭이 없는 양자화 레벨은 이 최대치 레벨을 초과하여 증가될 수 있다. 만일 "돈트 캐어" 유형의 모든 매크로블럭이 이 최대치 레벨에 도달하면, "음 우선 순위" 및 "양 우선 순위" 영역은 동일한 방식으로 1만큼 증가된다. 우선, 모든 음 우선 순위 매크로블럭이 1 양자화 레벨만큼 증가되며 이것이 비트차 문제를 해결하지 못하면 "양 우선 순위"의 매크로블럭은 양자화 레벨을 1만큼 증가시킨다. 만일 이것이 그 문제를 해결하지 못하면, "음 우선 순위" 매크로블럭의 양자화 레벨은 다시 1만큼 증가되며 이것이 그 문제를 해결하지 못하면, "양 우선 순위" 유형의 매크로블럭은 양자화 레벨을 1만큼 증가시킨다. 이러한 프로세스는 "음 우선 순위" 및 "양 우선 순위" 유형의 모든 매크로블럭이 그들의 양자화 레벨을 상기 최대치 레벨로 증가시킬 때까지 계속된다. 만일 이것이 비트차 문제를 해결하지 못하면, "돈트 체인지" 유형의 매크로블럭은 비트차 문제가 해결될 때까지 그 양자화 레벨을 동시에 1 양자화 레벨만큼 증가시킨다. 대부분 비트차 문제는 "돈트 체인지" 유형의 양자화 레벨이 변경되기 시작하기 전에 정정될 것이다. 사용자 선택 우선 순위를 갖는 프레임이 너무 적은 비트를 가지며 매크로블럭의 양자화 레벨이 제25A도 내지 제25C도의 프로세스에 따라 비트수를 증가시키기 위해 감소될 필요가 있을 경우 동일한 프로세스가 발생한다.
너무 많은 비트가 생성되는 경우의 제23도에서 실행되는 제24A도의 플로우 챠트를 참조해 보면, 프로세스는 블럭 유형을 "돈트 캐어" 유형으로 설정하는 제24A도의 단계(480)에 의해 시작된다. 다음에 단계(482)에서는 매크로블럭 인덱스를 인덱스 i가 0로 설정되는 것을 의미하는 시작점으로 설정한다. 단계(486)에서는 설정된 매크로블럭 유형(플로우 챠트를 통한 제1 시간, "돈트 캐어" 유형의 제1 매크로블럭)을 갖는 해당 매크로블럭의 양자화 레벨이 사전 규정된 최대 양자화 레벨을 갖는지를 판정한다. 이러한 정정 프로세스의 최대 양자화 레벨은 정정된 매크로블럭의 품질 감소가 클 정도로 너무 높게 설정되지 않아야 한다. 가능하다면 매크로블럭의 품질차가 크지 않게 비트수를 균일하게 감소시키기 위해서는 품질을 감소시키는 것이 바람직하다. 따라서, 예를 들어 이러한 최대치는 MPEG-2 인코딩의 경우 선형 양자화 스케일이 사용된 때 62의 양자화 레벨로 비선형 양자화 스케일이 사용된 때는 112의 양자화 레벨로 설정된다. 그러나, 최대 양자화값으로 다른 값을 사용할 수 있다. 단계(486)에서 해당 매크로블럭의 양자화 레벨이 최대가 아닌 것으로 판정되면, 단계(488)에서 당해 매크로블럭의 양자화 레벨을 1 양자화 레벨만큼 증가시킨다. 그리고, 단계(490)에서 상기 비트 전송 속도-양자화 함수를 이용하여 프레임의 비트 계산값을 다시 계산한다. 다음에, 단계(490)에서는 매크로블럭의 인덱스를 증가시킨다. 매크로블럭의 인덱스가 매크로블럭 유형의 최종 매크로블럭이 처리되지 않은 것을 나타내면, 프로세스는 단계(484)로 복귀된다. 그렇지 않으면, 단계(492)에서 단계(498)로 진행하여 블럭 인덱스를 제1 매크로블럭을 표시하는 0로 재설정한다.
흐름이 단계(484)로 복귀하면, 단계(490)에서 재계산된 비트 계산값을 사용하여 상술된 바와 같이 임계치와 비교되는 상기 차분 D를 재계산한다. 비트 계산값이 더 이상 너무 높지 않을 경우, 사용자 선택 우선 순위를 포함한 프레임의 비트수가 정정되고 흐름은 호출 프로세스로 복귀한다. 그렇지 않으면, 흐름은 단계(486)로 진행하여 당해(인덱스 i를 가짐) 매크로블럭의 양자화값이 최대인지를 다시 판정한다.
단계(486)에서 당해 매크로블럭의 양자화값이 최대인 것으로 판정하면, 그 블럭의 양자화 레벨은 증가될 수 없어, 단계(494)에서 블럭 인덱스 j를 1만큼 증가시킨다. 단계(496)에서 매크로블럭 유형의 인덱스가 최종 블럭을 패스하지 않은 것으로 판정하면, 흐름은 단계(486)로 복귀하여 인덱스가 증가된 블럭이 최대 양자화값을 갖는지를 판정한다. 그렇지 않으면, 단계(496)에서 매크로블럭이 당해 매크로블럭 유형의 최종 매크로블럭인 것으로 판정하면, 단계(498)에서 블럭 인덱스를 제1 매크로블럭(i = 0)으로 리셋트시킨다. 다음에 흐름은 제24B도에서 도시된 프로세스 C로 진행한다.
제24B도에서, 단계(500)는 블럭 유형이 "돈트 캐어" 유형인지를 검사한다. 만일 "돈트 캐어" 유형이면, 단계(502)에서 모든 "돈트 캐어" 매크로블럭이 최대 q 레벨을 갖는가를 판정한다. 모든 "돈트 캐어" 매크로블럭이 최대 q 레벨을 가지면, "돈트 캐어" 유형 매크로블럭에 대해 더 이상의 조정을 행하지 않으므로 매크로블럭 유형은 단계(504)에서 "음 우선 순위"로 변경되고 흐름은 제24A도에서 도시된 프로세스 D로 복귀되어 단계(484)가 실행된다. 만일 그렇지 않다면, 단계(502)에서 "돈트 캐어" 유형의 모든 매크로블럭이 최대 q 레벨을 갖지 않는 것으로 판정하면, 흐름은 매크로블럭의 유형을 변경시키지 않고 프로세스 D로 복귀한다. 이러한 수순은 프레임의 최종 비트수가 임계치 내에 있을 때까지 또는 "돈트 캐어" 유형의 모든 매크로블럭이 최대 양자화 레벨로 셋트될 때까지 수행되어, 블럭 유형이 "음 우선 순위"로 변경된다.
단계(500)에서 블럭 유형이 "돈트 캐어"가 아닌 것으로 판정하면, 단계(506)에서는 블럭 유형이 "음 우선 순위"인가를 판정한다. 블럭 유형이 "음 우선 순위"이면, 단계(508)에서는 "양 우선 순위"의 모든 블럭이 최대 q 레벨을 갖는지를 판정한다. 단계(508)에서의 판정 결과가 "아니오"이면, 단계(510)에서는 블럭 유형을 "양 우선 순위"로 셋트시키고 흐름은 제24A도에서 도시된 프로세스 D로 진행한다.
단계(508)에서 "양 우선 순위"의 모든 매크로블럭이 최대 q 레벨을 갖는 것으로 판정하면, 단계(512)에서는 "음 우선 순위" 유형의 모든 블럭이 최대 q 레벨을 갖는가를 검사한다. 그렇지 않으면, 블럭 유형은 변경되지 않고 흐름은 제24A도의 프로세스 D로 복귀한다. "음 우선 순위" 유형의 모든 매크로블럭이 단계(512)에서 최대 q 레벨을 갖는 것으로 판정되면, 모든 "돈트 캐어", "음 우선 순위" 및 "양 우선 순위" 매크로블럭은 최대 양자화 레벨을 가지며, 블럭 유형은 단계(514)에서 "돈트 체인지"로 셋트된다. 다음에 흐름은 제24A도의 프로세스 D로 진행한다.
제24C도의 프로세스 E 및 단계(520)는 제24B도의 단계(506)가 아니오로 판정된 후 행해진다. 단계(520)에서는 블럭 유형이 "양 우선 순위"인지를 판정한다. 만일 그렇다면, 단계(522)에서는 모든 "음 우선 순위" 유형이 최대 레벨을 갖는지를 판정한다. 그렇지 않을 경우, 블럭 유형은 "음 우선 순위"로 설정되고 흐름은 제24A도에서 도시된 프로세스 D로 복귀된다. 단계(522)에서 "음 우선 순위" 유형의 모든 블럭이 최대 q 레벨을 갖는 것으로 판정하면, 단계(526)에서는 "양 우선 순위" 유형의 모든 블럭이 최대 q 레벨을 갖는지를 검사한다. 만일 그렇지 않을 경우, 흐름은 제24A도의 프로세스 D로 복귀된다. 아니면, 모든 "돈트 캐어" 블럭과 함께 모든 "음 우선 순위" 및 "양 우선 순위"는 최대 양자화 레벨을 가지며 단계(528)에서 블럭 유형을 "돈트 체인지"로 설정하고 흐름은 제24A도의 프로세스 D로 복귀된다.
단계(520)에서 블럭 유형이 "양 우선 순위"가 아닌 것으로 판정하면, 블럭 유형은 "돈트 체인지"임에 틀림이 없으며 단계(530)에서 "돈트 체인지" 유형의 모든 블럭이 최대 q 레벨을 갖는지를 판정하여, 그럴 경우, 모든 블럭 유형이 사용자 선택 우선 순위를 갖는 프레임에 존재하는 너무 많은 비트의 문제점을 해결하지 않고도 최대 양자화 레벨로 설정될 때 에러가 존재한다. 모든 블럭을 규정된 최대 q 레벨로 설정함으로써 비트수는 프레임의 초기 인코딩을 초과하지 않게된다. 단계(530)에서의 판정이 아니오이면, 흐름은 제24A도의 프로세스 D로 복귀한다.
제23도의 프로세스가 사용자 선택 우선 순위 영역을 갖는 프레임에 너무 적은 비트가 존재하는 것으로 판정하면, 제25A도 내지 제25C도의 프로세스가 실행된다. 제25A도 내지 제25C도는 양자화 레벨이 프레임의 비트수를 증가시키기 위해 증가되는 것 대신에 감소되고 매크로블럭의 양자화 레벨이 감소될 때 양자화 레벨 1과 같이 소정의 최소 레벨을 초과할 수 없는 것을 제외하고는 제24A도 내지 제24C도에서 도시된 프로세스에 따른다. 제25A도 내지 제25C도의 프로세스가 상기한 차이점을 제외하고 제24A도 내지 제24C도의 프로세스와 동일하므로 간략히 하기 위해 제25A도 내지 제25C도에 대해 더 이상의 설명을 하지 않기로 한다.
제23도 내지 제25C도에서 기술된 정정 프로세스는 본 발명이 작용할 수 있는 하나의 방식이다. 그러나, 다른 유형의 매크로블럭의 양자화 레벨을 조정하는 다른 수순도 가능하다. 예를 들어, 상술된 바와 동시에 "음 우선 순위"와 "양 우선 순위" 매크로블럭의 양자화 레벨을 변경시키는 대신에, "음 우선 순위", "양 우선 순위" 및 "돈트 체인지" 유형의 매크로블럭을 균일하게 증가시킬 수 있다. 또는, 너무 많은 비트가 존재하면, "음 우선 순위" 유형의 양자화 레벨은 최대 양자화 레벨에 도달할 때까지 증가될 수 있어서 "양 우선 순위" 유형의 매크로블럭의 양자화 레벨이 증가된다. 반대로, 사용자 선택 우선 순위를 갖는 프레임의 비트수가 너무 적으면, "양 우선 순위" 유형의 매크로블럭은 "음 우선 순위" 유형 매크로블럭의 양자화 레벨이 감소되기 전에 비트수를 증사시키기 위해 양자화 레벨을 감소시킬 수 있다. 후자의 두 경우에 있어서, "돈트 캐어" 유형 매크로블럭의 변경은 "음 우선 순위" 또는 "양 우선 순위" 유형의 매크로블럭이 변경되는 동안 또는 변경 후에 나타날 수 있다.
제23A도 내지 제25C도의 프로세스가 실행된 후, 흐름은 제20도의 단계(462)로 복귀하여 새로운 양자화값을 이용하여 비디오를 재인코드한다. 이러한 재인코딩은 재인코드된 프레임의 생성 비트수가 가능한 프레임의 초기 인코딩의 비트수와 근사되도록 속도-제어 함수를 이용하여 양자화값을 미조정하면서 실행된다. 속도-제어 프로세스는 이하에서 상세히 기술하고자 한다. 또한, 재인코딩 프로세스 동안, 인코딩 아티팩트가 나타날 수 있으므로, 후술될 바와 같이 이들 인코딩 아티팩트를 감소시키는 특정 처리를 행할 수 있다.
공간 수동 편집 프로세스는 본 발명의 바람직한 실시예의 제1A도의 워크스테이션(30)에서 나타난다. 그러나, 공간 수동 편집이 비디오 인코딩 프로세스와 동시에 발생하지 않으므로, 워크스테이션(10)은 비디오 인코딩 프로세스의 속도를 저하시키지 않으면서 시간 수동 편집 계산을 실행할 수 있다. 본 발명은 프레임 내의 여러 영역의 화질을 변경시키는 것에 대해 상세히 기술되는 것에 주목해야 할 필요가 있다. 물론 본 발명의 개념을 한 프레임 영역 내의 비트를 다른 프레임의 영역으로 시프팅시키는 것까지 확장시킬 수 있다. 또한, 공간 수동 편집은 상기 시간 수동 편집과 함께 적용될 수 있다.
공간 수동 편집은 사용자 공급 영역 우선 순위를 갖는 프레임의 비트수를 프레임의 초기 인코딩과 동일하게 유지시키는 것에 대해 기술하였지만, 원한다면, 재인코드된 편집 세그먼트가 충분한 기억 용량이 존재하면 프레임의 초기 비트수보다 많거나 적은 소정 비트수를 소모할 수 있다. 이들 경우, 변경된 프레임을 변경시킬 수 있는 비트수를 아는 것이 바람직하므로, 제24A도 내지 제25C도에서 도시된 프로세스는 설정 차가 달성될 때까지 동작할 것이다. 따라서, 임의 프레임의 재인코딩의 전체 비트수는 초기 인코딩보다 많거나 적은, 예를 들어 5 %와 1 % 이상 또는 이하의 비트를 포함하는 0 %와 20 % 이상 또는 이하 사이의 양을 소모할 수 있다.
공간 수동 편집은 인코드되어진 후의 비디오의 변경에 대해 설명하였지만, 여기에 포함되는 교시는 초기 인코딩 프로세스가 존재치 않는 시스템에 적응될 수 있다.
공간 수동 편집의 작업 방식은 사용자 선택 우선 순위에 따른 양자화값을 지정하여 필요에 따라 프레임의 매크로블럭의 양자화 레벨을 조정하여 이전에 얻어진 프레임의 비트수와 동일한 비트수를 얻는다. 반대로, 상술된 시간 수동 편집은 비디오 섹션에서 공통 비트 풀을 제거시켜 사용자 선택 우선 순위에 따라 공통 풀의 비트를 재분배한다. 공간 수동 편집이 한 프레임에 대해 실행되어지는 프로세스에 관한 모든 교시를 시간 수동 편집 섹션에서 상술된 바와 같이 시간에 따라 비디오의 프레임 품질을 변경시키는 개념에 적용시킬 수 있으며, 그 반대도 성립된다. 예를 들어, 공간 편집은 품질 변경을 달성하기 위해 양자화 레벨을 변경시키는 것에 대해 기술되었으며 비트수는 시간 편집 섹션에서 조정된다. 프레임 또는 매크로블럭의 비트수가 양자화 레벨에 따라 직접 정해지므로, 비트수와 양자화 레벨의 변경은 동일한 결과를 달성하므로 시간 및 공간 편집은 비트수 및 양자화 레벨을 변경시킬 수 있다.
Ⅷ. 품질 변경 후의 비디오의 재인코딩
A. 단일 프레임 내에서 품질이 변경되어 있는 경우의 비트 배분 제어
제1A도에 도시된 비디오 인코딩 장치(50)에서의 비트 전송 속도를 제어하기 위해, 워크스테이션(10) 또는 동일한 제어 기능을 행할 수 있는 임의의 전용 하드웨어와 같은 제어기는 양자화 레벨 즉 q 레벨 및 슬라이스마다의 추정되거나 예상된 비트수를 속도-제어된 인코더에 로드시킨다. 다음에 이 인코더는 인코딩을 개시하여 미리 정해진 추정 비트수와 비교하여 생성 비트수의 정밀도를 측정한 후 양자화 레벨을 조정한다. 추정 비트수는 공간 및 시간적 수동 편집에 관한 섹션에서 상술된 바와 같이 속도-양자화 함수를 사용하여 결정된다. 이러한 프로세스는 동시에n 셋트의 매크로블럭에 대해 순차로 행해지며, 여기서 각 셋트는 MB(i)로 지정되며,
최종 셋트의 매크로블럭을 재인코딩할 경우, 속도-제어기는 재인코딩 프로세스에서 생성된 총 비트수가 생성될 비트수에서의 임의의 미소한 과대 계산이 비트-스터핑을 이용하여 흡수될 수 있으므로 초기에 인코드된 길이보다 작게 되도록 보증한다.
제26도는 미리 할당된 양자화 레벨을 갖는 디지탈 비디오 프레임 셋트를 재인코딩하는 방법을 도시하는 플로우 챠트이다. 실제 생성된 비트수에 대하여 양자화 모델이 어느정도 정확하게 재인코딩에 의해 생성될 수 있는 비트수를 계산하였는가에 기초하여 미리 할당된 양자화 레벨이 조정된다. 제26도에서, 속도-제어된 코딩 프로세스는 단계(700)에서 개시되어 단계(702)에서 i = 1로 설정함으로써 제1 셋트의 n 개의 매크로블럭을 현재의 셋트의 매크로블럭으로 지정한다. 단계(704)에서 각 셋트의 매크로블럭 MB(i)를 재인코딩하는데 사용되는 완전한 셋트의 추정 비트수 EB(i)가 로드된다. 다음에 MB(i)는 단계(706)에서 재인코드되고, 실제 생성된 비트수는 GB(i)로서 기억된다. 생성된 비트 GB(i)와 추정 비트 EB(i) 간의 비율상의 차는 단계(708)에서 추정 비율 PB(i) = GB(i)/EB(i)로서 계산된다. 또한, 이 시스템에서는 재인코드된 모든 셋트의 마이크로블럭에 대해 누적된 추정 비트수 EB'(i)와 누적된 생성 비트수 GB'(i)를 계산할 수 있으며, 여기서 i ≥ 2인 경우 EB'(i) = EB(1), GB'(1) = GB(1), EB'(i) = EB'(i - 1) + EB(i)및 GB'(i) = GB'(i- 1) + GB(i)이다. 따라서, 예시된 단계(708)의 대안으로서, PB(i)는 누적된 추정 비트수 EB'(i)를 사용하여 계산될 수 있으며, 누적된 생성 비트수 GB'(i)는 PB(i) = GB'(i)/EB'(i)를 이용하여 계산될 수 있다. 이것은 특정 매크로블럭 셋트가 얼마나 정확하게 인코드되었는지를 표시하는 것 대신에, 전체적으로 재인코딩 프로세스가 타겟 비트수에 얼마나 대응하는지에 대한 보다 정확한 표시를 제공한다. 단계(710)에서, 추정 비율을 사용하여 다음 매크로블럭 셋트 MS(i + 1)에서의 q-레벨의 정정 팩터를 결정한다.
이러한 정정 팩터는 2가지 방법 중 하나를 이용하여 결정된다. 제1 정정 팩터 결정 방법은 비율 룩업 테이블이라 칭하는 비율값의 테이블에서의 단일 분류 비율 리스트를 거쳐 추정 비율이 속하는 어느 두 비 사이에서 정해진다. 테이블내의 2 수 중 큰 수의 인덱스 j는 정정 팩터 인덱스로서 사용된다. 정정 팩터 인덱스는 정정 팩터로서 테이블의 j번째 요소를 선택함으로써 정정 팩터 테이블에서 정정 팩터 △(i)를 검색하는데 사용되며, 다음의 매크로블럭 셋트 MB(i + 1)는 △(i)만큼 조정된다. 비율 룩업 테이블 RT는, 예를 들어, 분류된 값을 포함한다. 즉
RT = {0.85, 0.90, 0.95, 1.0, 1.05, 1.10, 1.15, 1.2, 1.5}, 그리고 정정 팩터 테이블 CT는 다음 값을 포함한다. 즉
제30도는 추정 비율을 사용하여 비율 룩업 테이블로부터 정정 팩터 인덱스를 결정하는 프로세스를 도시한 플로우 챠트이다. 단지 예시 목적으로, PB(i) = 0.87이라고 가정한다. 인덱스 j는 초기에 단계(722)에서 1로 설정하였다. PB(i)와RT(i)를 비교하는 프로세스가 개시되며, 단계(724)에서 상기 룩업 테이블에서 정의된 바와 같이 PB(i)= 0.87이 RT(1) = 0.85와 비교된다. 0.87이 0.85보다 크므로, 프로세스는 단계(726)로 진행된다. 단계(726)에서 나머지 인덱스가 존재하는 것으로 판단되므로, 제어는 단계(728)로 진행되어 j가 1만큼 증가된다. 단계(724)로 복귀하여 PB(i) = 0.87이 현재 RT(2) = 0.90보다 작으므로, 제어는 단계(730)로 진행되어 정정 팩터 인덱스 탐색이 종료된다.
제31도는 룩업 테이블에 인덱스가 제공된 경우 룩업 테이블내의 값을 검색하는 방법을 도시하는 플로우 챠트이다. 제31도에서, 제1 방법에 따라 정정 팩터를 결정하기 위해, 2인 인덱스 j를 사용하여 CT 내의 대응 엔트리를 검색한다. CT 내의 제2 위치로부터 판독하여, 단계(736)에서 정정 팩터는 -2인 것으로 판정된다. 따라서, MB(i + 1)의 q-레벨은 -2만큼 변경된다. 마찬가지로, PB(i) = 1.12이면, 인덱스 7은 PB(i)보다 큰 RT 내의 제1 엔트리에 대응하여, 제7 위치에서 CT 내의 정정 팩터는 3이 된다. 따라서, MB(i + 1)의 q-레벨은 예를 들어 MB(i + 1)의 q-레벨에 3을 가산함으로써 3만큼 변경된다.
제2 정정 팩터 결정 방법은 재인코드된 매크로블럭 셋트의 비율을 정정 팩터의 결정시에 제2 파라미터로서 사용하는 것을 제외하고 제1 방법과 동일한 프로세스를 사용한다. 또한, 테이블로부터 정정 팩터를 판독하는 대신, 매트릭스로부터 정정 팩터를 판독한다. 재인코드된 매크로블럭 셋트의 비율 또는 재인코드되지 않은 매크로블럭 셋트의 비율을 사용함으로써, 필요한 경우 일련의 프레임 개시에서는 보다 순차적인 정정이 행해질 수 있으며, 종단에서는 보다 상당한 변경이 행해질 수 있다. 이것에 의해 시스템은 양자화 모델과 실제의 생성 비트수 간의 변동에 대해 보다 정확하게 정정할 수 있다. 재인코드되도록 남아있는 매크로블럭의 셋트수와 정정 유의성 간의 역관계를 이용하고, 한 셋트의 매크로블럭의 과다 추정이 다른 셋트의 매크로블럭에서의 과소 추정에 의해 상쇄되는 것으로 가정하면, 불필요한 정정을 피하게 된다.
제2 정정 팩터 방법의 정정 팩터 매트릭스 CTM의 일례로서, CTM은 아래와 같이 정의된다.
일련의 프레임의 개시부에서, 추정 비율이 필요한 비트수의 과대 추정을 나타내면, 모든 미사용 비트를 다음 슬라이스에 즉시 재할당할 필요가 없다. 미사용 비트가 MB(i + 1)에 의해 즉시 소비되면, 추정 비트보다 많이 소비된 MB(k)(여기서 k ≥ i + 1)가 MB(k + 1))를 불필요하게 보다 높은 양자화 레벨로 만들 것이다. 미사용 비트는 MB(k)가 필요로 하여 사용할 때까지 재인코딩 프로세스에서 MB(i)로부터 진행할 수 있다.
제32도는 추정 비율과 재인코드되지 않은 나머지 매크로블럭 셋트수를 사용하여 정정 팩터를 계산하는 방법을 도시한 플로우 챠트이다. 필요한 비트수가 과대 추정된 경우, 즉 정정 팩터 j가 PB(i) = 0.87인 경우 2와 동일한 것으로 사전에 판단되면, 제32도의 단계(744)에서는 재인코딩 프로세스의 제1 퍼센트료 과대 추정이발생하는 것으로 판단한다. CTM의 (2, 1)에서의 요소는 -1이며 정정 팩터로서 선택된다. 이것은 재인코딩 프로세스에서 초기의 정정 효과를 감소시키며, 여기서 제1 방법에서는 -2이다. 그러나, 재인코딩 프로세스의 99 %가 수행되며 추정 비율이 PB(i) = 1.12이면, 3인 요소(99,7)가 선택되어, 재인코딩 프로세스의 종단에서 완전히 정정된다.
제27A도 내지 제27C도를 참조해 보면, 한 셋트 내의 매크로블럭의 수가 단일 슬라이스 내의 매크로블럭의 수와 동일한 다른 실시예로서 미리 q-레벨이 할당된 프레임이 도시되어 있다. 추정 비트수 EB(i)는 상술된 바와 같이 계산되어 제27A도의 매크로블럭 i인 MB(i)의 속도 제어 프로세스에서 사용된 메모리에 로드되어 MB(i)가 실제로 재인코드된다. 생성된 비트수 GB(i)가 결정되고, 추정 비율이 계산되고, 정정 팩터 △(i)가 검색된다. 제27B도에서 도시된 바와 같이, MB(i +1)의 매크로블럭은 △(i)에 의해 정정되며 MB(i + 1)에 대해 프로세스가 반복된다. 제27C도에서는 MB(i + 1)의 길이가 추정되어 계산되고 그 추정 비율이 판정된 후의 MB(i + 2)의 변경을 도시한 것이다. 이러한 프로세스는 모든 매크로블럭 및 부분 매크로블럭이 재인코드되어 정정될 때까지 수행된다.
제27A도 및 제27D도를 참조하여 다른 실시예를 기술하고자 한다. 이 실시예에서, 셋트당 매크로블럭의 수는 2개의 슬라이스 내의 매크로블럭의 수이다. 제27D도에서 도시된 바와 같이 EB(i), GB(i) 및 PB(i)를 계산한 후, 2개의 슬라이스를 구성하는 MB(i + 1)의 매크로블럭이 △(i)에 의해 정정된다. 이러한 재인코딩 및 정정 프로세스는 이전의 실시예에서와 같이 모든 매크로블럭이 재인코드될 때까지계속된다.
재인코딩 프로세스에 의한 변경은 제28A도 및 제28B도에서 도시된다. 프레임 N의 2개의 동일 크기의 영역 영역 A와 영역 B는 초기에는 거의 동일 비트수를 사용하여 인코드된다. 사용자는 영역 A의 품질은 감소되며 영역 B의 품질은 증가되도록 지정한다. 그러나, 최초의 인코딩에 사용된 비트수가 가능한 재인코딩의 비트수와 근사한 것이 바람직하다. 프레임 N을 재인코딩한 후, 프레임 N은 최초의 인코딩으로부터 생성된 것과 동일한 바이트수를 포함하지만, 영역 A는 보다 적은 비트로 코드화되며, 영역 B는 추가 비트를 사용한다. 이것은 사용자에 의해 요청된 바와 같이 영역 A의 품질은 감소시키며 영역 B의 품질은 증가시킨다. 본 발명의 속도 제어 프로세스는 속도 양자화 함수를 사용하여 정해진 추정 비트수에서의 사소한 에러를 정정함으로써 재인코드된 프레임의 비트수를 초기 비트수와 가능한 동일하게 한다.
제29도는 복수의 프레임으로부터의 비트를 재할당하여 이들을 제2 복수의 프레임에 제공함으로써 디지탈 비디오 스트림으로 변경되는 것을 도시한다. 개별적으로 프레임 크기를 변경시켰지만 1 셋트의 프레임 전체 크기는 동일하게 유지된다. 속도 제어기에 의해 비록 추정 비트수를 판정하는데 사용되는 레이트-양자화(rate-quantizer) 함수에 약간의 에러가 있더라도 복수의 프레임의 재인코딩의 비트수는 최초의 인코딩으로부터의 비트수와 동일하게 되도록 미세 조정가능하다.
B. 편집점에서의 디코딩 아티팩트를 방지시키면서 재인코딩
1. 최초의 인코딩에 사용된 상태로의 인코더 복원
상기 시간 및 공간 품질 편집 조작에 의해 새로운 양자화값으로 비디오를 재인코딩함으로써 비디오 품질이 변경된다. 그러나, 재인코드된 비디오를 원래의 비디오로 간단히 교체시킴으로써 비디오의 편집점에서 가시 글리치(glitth)로서 나타나는 허용되지 않은 디코딩 아티팩트가 발생할 수 있다. 이들 가시적 글리치는 교체되는 새로운 세그먼트가 MPEG-2 신택스와 같은 적당한 신택스를 가지며 편집 경계에서의 버퍼의 제약이 만족되더라도 발생될 수 있다. 이러한 문제는 편집 세그먼트에 선행하는 최종 기준 프레임(최종 p 프레임)과 편집 세그먼트의 종단에서의 다른 기준 프레임(최종 p 프레임)의 비유용성으로부터 기인된다. 이것은 편집 세그먼트의 개시에서 편집 세그먼트에 바로 후속하는 제1 B-프레임 셋트에서 제1 셋트의 B-프레임의 인코딩과 디코딩간의 불일치를 유발시킨다.
디지탈적으로 인코드되고 압축된 비디오의 편집을 적절히 수행하기 위해서는, 희망의 편집점에 대응하는 인코드된 비트스트림에서 적절한 위치를 결정할 필요가 있다. 이러한 프로세스는 인코드된 비디오를 액세스하는 유틸리티를 기술하는 섹션 VI에서 설명되어 있다. 설명된 바와 같이, 이것은 당해 화상에서의 비트 옵셋을 판정하기 위해 미리 인코드된 각 프레임에서 사용된 비트수를 합산함으로써 행해진다. 이와는 다르게, 디렉토리를 사용하여 인코드된 비트스트림에서의 특정 프레임의 정확한 위치 또는 기간을 나타내는 정보를 유지시킬 수 있다.
제33A도 내지 제33E도를 참조해 보면, 본 발명의 조작을 설명하기 위한 실시예로서 사용되는 비디오의 기간이 도시되어 있다. 제33A도에서, 인코드된 비디오 초기 섹션 0가 도시되어 있다. 5 m 0 s 내지 10 m 0 s(5분 0초 내지 10분 0초)의 인코드된 기간을 비디오의 다른 섹션으로 교체시키는 것이 바람직하다. 제33B도는제33A도의 인코드된 비디오로 교체될 인코드되지 않은 새로운 비디오의 섹션 N이 도시되어 있다. 제33B도 및 제33C도의 점선은 인코드되지 않은 비디오를 나타낼 때 사용되며 제33A도, 제33D도 및 제33E도의 실선은 인코드된 비디오를 나타낸 때 사용된다.
제33B도에서 도시된 새로운 비디오의 섹션만이 GOP가 이전의 GOP를 참조하여 제33A도에서 도시된 비디오로 교체되는 통상의 MPEG-2 모드를 사용하여 인코드되면, MPEG-2의 비디오 압축시에 사용되는 양 방향성 디코딩에 필요한 정확한 기준 프레임의 부족으로 인해 디코딩 아티팩트가 편집점 5 m 0 s 내지 10 m 0 s에서 존재하게 될 것이다. 이러한 문제는 GOP의 개시에는 이전의 GOP를 다시 참조하지만 GOP의 종단에는 다음 GOP를 참조하지 않는다는 사실로 인해 본 발명에 의해 상이하게 처리되는 5분과 10분점에서 존재하게 된다.
GOP의 개시에서의 디코딩 아티팩트를 방지하는 방법은 GOP의 2개의 제1 B 프레임에서 기준 프레임으로서 사용되는 이전 GOP의 최종 P-프레임을 재생성하는 것이다. 이것은 예를 들어 원래의 비디오의 하나의 GOP를 삽입될 비디오의 개시부에 배치함으로써 달성되며 이와 같이 추가된 비디오는 제1도에서 4 m 58.5 s 내지 4 m 59 s로 도시된다. 실시예에서, 하나의 GOP는 1/2초와 동일하지만, GOP에 대한 다른 기간도 가능하다. 인코더는 4 m 59 s 직전의 GOP의 최종 p-프레임을 생성하기 위해 최초의 인코딩에 사용된 것과 동일한 양자화값으로 이 섹션에서 재실행된다. 최종 p-프레임을 제외하고 이러한 짧은 비디오 섹션의 재인코딩으로부터 생성되는 모든 정보를 무시할 수 있다.
편집 세그먼트의 종단에서 디코딩 아티팩트를 방지하기 위해, 원래의 비디오의 1초 주기(예를 들어, 제33C도의 10 m 0 s 내지 10 m 1 s)가 교체될 새로운 비디오의 종단에 부가되며 이러한 1초의 세그먼트가 최초의 인코딩 동안 사용된 것과 동일한 양자화값을 사용하여 인코드된다. 이러한 1초 주기가 비디오의 종단에 부가되지 않으면, 10 m 0 s가 2개의 GOP 간의 분할점이라고 가정하여 10 m 0 s 마크를 바로 지난 2개의 B-화상은 편집 전과 편집 후가 달라지는 기준 화상을 다시 참조할 수 있다. 실시예가 비디오의 1/2초 또한 1초 주기를 새로운 섹션에 가산하는 것에 대해 기술되었지만, GOP의 가산에 대한 개념은 보편화될 수 있다.
디코딩 아티팩트가 10분 마크에서 더 이상 나타나지 않더라도, 종단에서의 편집점이 현재 10 m 1 s점이므로, 디코딩 아티팩트가 10 m 1 s에서 나타나는지를 고려해야할 필요가 있다. 10 m 1 s 마크 직후의 2개의 B 프레임이 이전에 참조한 것과 동일한 기준 프레임을 본질적으로 다시 참조할 것이므로 가시적인 디코딩 아티팩트는 나타나지 않을 것이다. 비록 10 m 0 s 직후의 2개의 B-프레임이 이들이 이전에 참조한 것과 동일한 기준 프레임을 다시 참조하지 않더라도, 2개의 B 프레임은 재인코드되어 새로운 기준 프레임을 다시 참조한다. 따라서, 10 m 0 S 또는 10 m 1 s의 시점에서는 가시적인 디코딩 아티팩트가 존재하지 않을 것이다.
제33도의 종단에 부가된 2개의 GOP(1초)는 최종 p 프레임이 최초의 인코딩과 거의 동일하게 되도록 충분한 시간을 가져야 한다. 10분 시점 후 원래의 비디오를 재인코딩할 때 정확하게 동일한 양자화값을 사용하는 것이 보증되면, 정확하게 인코드된 기준 화상을 적절하게 생성하는데 1 GOP(1/2초)로 충분하다. 그러나, 적절한 화질을 보증하기 위해서는 2개의 GOP가 바람직하다. 비록 원래에 사용된 것과 동일한 양자화값을 사용하는 것이 바람직하더라도, 실제로는 원래의 양자화값과는 미소한 차가 있으므로 2개의 GOP가 바람직하다.
비디오의 초기 주기가 4 m 58.5 s 내지 4 m 59 s와 10 m 0 s 내지 10 m 1s에서 사용되는 것 이외에, 제33C도는 4 m 59 s 내지 5 m 0 s에서의 추가의 원래의 비디오를 도시하고 있다. 이 비디오는 디코딩 아티팩트를 방지하는데 필수적인 것은 아니며, 최종 p-프레임을 판정하는데 5 m 0 s 마크(예를 들어, 4 m 59.5 s 내지 5 m 0 s) 직전에 1/2초를 사용할 수 있다. 그러나, 4 m 59 s 내지 5 m 0 s 기간을 새로운 비디오에 부가시킴으로써 화질의 수동 변경이 편집 경계 이상으로 영향을 미치는 것을 오퍼레이터에 의해 감지하는 기회가 제거될 수 있다. 이러한 오감지는 MPEG GOP의 개시에서 프레임의 코딩 순서가 IBB이지만 프레임은 BBI로써 표시된다라는 사실에 근거한다. 1초 기간은 그 기간의 최초의 인코딩 동안 사용된 것과 동일한 양자화값을 사용하여 인코드된다. 이전에 사용된 양자화값을 획득하는 방법을 후술하기로 한다. 만일 1초 기간이 4 m 49 s 에서 5 m 0 s에 부가되지 않으면, 제33D도에서 도시된 인코드된 교체 비디오는 5 m 0 s에서 개시될 것이다.
제33C도의 비디오의 인코딩으로부터 생성된 유용한 데이타가 4 m 59 s 내지 10 m 1 s까지 계속되는 교체 데이타 S로서 제33D도에서 도시된다. 다음에 이 교체 데이타 S는 제33A도에서 도시된 최초의 인코드된 데이타로 교체되어 제33E도에서 도시된 최종 비트스트림이 생성된다.
제33A도에서 도시된 인코드되지 않은 정보와 인코드된 정보는 바람직한 실시예에서는 비디오이지만, 인코드된 정보를 디코드하기 위해 이전 및/또는 후속 정보를 사용하는 오디오 또는 다른 형태의 정보일 수 있다.
제33B도의 새로운 비디오의 섹션은 임의 비디오 소스로부터 얻어지며 상술된 시간 또는 공간 편집 프로세스에 의해 생성된 비디오일 수 있다. 제33C도의 4 m 59 s 내지 5 m 0 s와 10 m 0 s 내지 10 m 1 s에서 원래의 비디오는 최초의 인코딩시에 사용된 동일한 양자화값을 갖는 원래의 비디오이다. 제33C도의 새로운 비디오 N의 종단에서의 이러한 비디오는 시간적 편집 프로세스를 사용하고 전술된 시간적 수동 편집 섹션에서 기술된 보호되도록, 즉 양자화값이 동일하게 유지되도록 종단 섹션의 품질을 설정함으로써 간단히 얻어진다. 다르게는, 제33B도의 비디오는 제33A도의 비디오에 관계없이 완성될 수 있으며 상이한 길이를 가질 수 있다. 또한, 본 발명을 이용하여 소정 비디오의 섹션을 제거하고 새로운 비디오를 부가하지 않을 수도 있다. 이러한 경우에, 제33B도에는 비디오가 존재하지 않을 수 있으며 제33C도 내지 제33E도에서 'N' 세그먼트와 그 대응하는 인코딩이 존재하지 않을 수 있다. 편집 세그먼트 전에 최종 p-프레임이 적절하게 구성되고 원래의 비디오의 1/2초 내지 1초(1개 또는 2개 GOP)가 인코드될 새로운 비디오의 종단에 부가되어 최초의 인코딩시에 사용된 동일한 양자화 스케일로 인코드되는 한, 어떠한 상황에서도 가시적 디코딩 아티팩트는 발생되지 않는다.
제34도는 제33A도 내지 제33E도에 대해 기술된 프로세스를 도시하는 플로우 챠트이다. 개시 후에, 단계(780)에서 비디오를 압축된 포맷으로 인코드하여 제33A도에서 도시된 인코드된 비디오를 생성시킨다. 단계(782)에서는 인코드된 비디오로교체될 인코드되지 않은 포맷인 새로운 비디오의 섹션이 판정된다. 이 새로운 비디오 섹션은 제33B도 및 제33C도에서 N으로 도시되었으며 초기 프레임에 관련되거나, 관련되지 않은 장면을 나타낼 수 있거나, 초기 프레임과 다른 기간을 가질 수 있다. 교체될 비디오의 개시점 및 종단점은 5 m 0 s와 10 m 0 s이다. 그러나, 교체될 최종 인코딩의 실제 개시점과 종단점은 제33D도에서 도시된 바와 같이 다를 수 있다.
단계(784)에서는 상술된 이유 때문에 인코드된 새로운 비디오의 섹션의 종단에 인코드되지 않은 비디오 주기를 가산시켜 편집점 5 m 0 s와 10 m 0 s에서 디코딩 아티팩트를 방지시킨다. 가산된 기간은 4 m 59 s 내지 5 m 0 s와 10 m 0 s 내지 10 m 1 s이지만, 4 m 59 s 내지 5 m 0 s의 주기가 필수적인 것은 아니다.
단계(786)에서는 편집점 직전에 p-프레임을 판정한다. 제33E도에서 교체된 비디오가 4 m 50 s 내지 10 m 1 s에 존재하므로, 4 m 50 s 직전의 최종 p-프레임을 판정할 필요가 있다. 이 p-프레임은 인코더가 P-프레임을 초기에 인코드하는데 사용된 양자화값에 의해 4 m 58.5 s 내지 4 m 50 s의 기간 동안 실행함으로써 판정된다. 양자화값은 제10A도나 제10B도에서 도시된 포맷을 갖는 매크로블럭 로그 파일로부터 초기 양자화값을 검색함으로써 판정된다. 그러나, 전체 영화의 각 매크로블럭의 양자화값은 대량의 기억 공간을 소모하므로 양자화값을 기억하는 것이 바람직하지 않을 수 있다. 대안으로서, 양자화값은 I, P 및 B 프레임의 비디오 버퍼에 속한 속도 제어 상태, 제9B도의 영상층 로그 파일에서 할당된 비트로 도시된 화상의 타겟 비트, 제9C도에서 평균 액티비티로 기억되는 화상의 액티비티 레벨 및 인코딩동안 인코더에 의해 계산된 매크로블럭의 액티비티 레벨을 이용하여 간단히 생성될 수 있다. 속도 제어 상태는 제9C도의 하단부에 도시된 바와 같이 I, P 및 B 비디오 버퍼 각각에 대한 속도 제어 상태 정보를 기억하는 S1_i, S2_i, S1_p, S2_p, S1_b, S2_b로서 화상층 로그 파일에 기억된다. 본원에 포함된 교시를 따르면 비디오 인코딩 기술에 숙련된 사람들은 과도한 실험을 하지 않고도 원하는 p-프레임의 양자화값을 결정할 수 있다.
기준 프레임 및/또는 인코드된 기준 프레임 자체의 양자화값을 결정하는 다른 방법으로서, 인코드된 기준 스트림에서의 인코드된 기준 프레임의 버젼은 공지된 방식으로 디코드될 수 있다. 또한, 필요한 기준 프레임을 얻는 임의 다른 방법을 행할 수 있다.
기준 p-프레임이 얻어진 후, 단계(788)에서 종단 섹션의 최초의 인코딩과 동일한 양자화 레벨을 유지하면서 비디오가 인코드된다. 양자화 레벨은 상술된 바와 같이 얻어진다. 결과적으로 나타는 인코드된 비디오는 제33D도에 도시된다.
단계(790)에서는 새로이 인코드된 비디오를 초기에 인코드된 비디오로 교체시켜 제33E도에서 도시된 바와 같은 최종 제품이 얻어진다. 교체된 인코드된 비디오를 포함한 인코드된 비디오는 편집점에서 최소 디코딩 아티팩트를 갖는다.
2. 화상 모드의 폐 그룹의 재인코딩
제33A도 내지 제34도에서 기술된 것과 다른 방법으로서, 디코딩 아티팩트를 여전히 감소시키면서 새로운 비디오의 개시를 인코딩하는 다른 절차를 행할 수 있다. 이러한 절차에서, 비디오의 후단을 처리하는 방법은 제33A도 내지 제34도에 대해 상술된 바와 동일하다.
이러한 다른 실시예의 일례로서, 최초의 인코드된 비디오로서 제33A도를 사용하고 제33A도로 교체될 인코드되지 않은 비디오로서 제33B도를 사용한다. 제33B도의 개시단에 최초의 인코드되지 않은 비디오가 부가되지 않으며, 제33C도에서 기술된 바와 같이, 대응하는 초기 인코드되지 않은 비디오의 2개 GOP(1초)가 제33B도의 종단에 부가되며 인코드될 비디오는 제35A도에서 도시된 것과 같다.
인코더가 제2 기준 화상없이 B-프레임의 비트를 증가시키면서 비디오의 제1 GOP의 폐 GOP 모드로 제35A도의 비디오를 인코드하면, 개시 편집점에서의 가시적인 디코딩 아티팩트는 제거될 것이다. 10 m 0 s 내지 10 m 1 s에서의 최초의 인코딩시에 사용된 것과 동일한 양자화 레벨을 사용하는 종단부의 인코딩은 제33A도 내지 제34도에 대해 상술된 바와 동일하며, 결과적으로 생성된 인코드된 비디오는 제35B도에서 도시된다. 폐 GOP모드는 섹션 6.3.8에서 MPEG-2 규격으로 기술되어 있다. 영상 모드 플래그의 폐 GOP 모드는 단지 후방 예측만을 이용하여 인코드된 B-프레임이 인코드되었으며 이전 GOP의 기준 프레임이 사용되지 않은 것을 표시하는 1로 설정된다. 그러나, 양 방향성 프레임에 통상으로 사용되는 기준 프레임 중 하나가 이용가능하지 않으므로, 품질 저하를 없애기 위한 처리를 행하지 않는 한 B-프레임의 품질은 감소될 것이다.
폐 GOP 모드로 인코드된 B-프레임의 품질 저하 문제를 해결하기 위해서, 프레임의 품질이 거의 감소되지 않도록 단지 한 방향의 예측만을 갖는 B-프레임의 비트수를 증가시킨다. B-프레임이 단지 한 방향의 예측만을 가지므로, 비트수는 통상p-프레임에 사용되는 비트수까지 증가되는 것이 바람직하다. 그러나, 비트수는 원하는 화질에 따라 변화할 수 있다.
제35B도의 인코드된 비디오는 제35C도에서 도시된 바와 같이 미리 인코드된 비디오로 직접 교체될 수 있다.
폐 GOP 모드를 사용하는 프로세스를 기술하는 플로우 챠트가 제36도에서 도시되어 있다. 제36도에서, 비디오는 단계(800)에서 압축된 포맷으로 인코드되며 단계(802)에서 인코드된 비디오로 교체될 새로운 비디오의 섹션은 단계(780 및 782)에 대해 기술된 것과 동일하게 결정된다. 다음에, 단계(804)에서 인코드되지 않은 원래의 비디오의 필요한 GOP(하나 또는 2개의 GOP)를 새로운 비디오의 섹션의 후단에 부가시킨다.
단계(786)에서는 비디오를 인코드한다. 새로운 비디오의 제1 GOP는 폐 그룹 화상 모드에서 인코드되며 기준 프레임이 없는 양 방향성으로 예측된 프레임의 비트수는 대략 단일 방향 예측된 프레임인 p-프레임에 사용된 비트수까지 증가된다. 인코드된 비디오의 전체 비트수가 동일하게 유지하려면, 양 방향성 프레임에 필요한 여분의 비트를 다른 프레임으로부터 제거시킬 필요가 있다. 이것은 공간 및/또는 시간적 수동 편집에 대한 섹션에서 기술된 바와 같이 달성될 수 있다. 다음에 새로운 비디오의 섹션의 나머지는 통상적으로 인코드된다. 새로운 비디오의 후단에서 최종 가산된 기간은 편집 세그먼트의 종단점에서의 디코딩 아티팩트를 방지하기 위해 부가된 주기의 최초의 인코딩 중에 사용된 것과 동일한 양자화값을 사용하여 인코드된다. 최종적으로, 단계(808)에서 새로이 인코드된 비디오가 초기에 인코드된 비디오로 교체된다.
제34도 및 제36도에서 기술 및 도시된 프로세스에 의해, 교체 인코드된 섹션을 포함한 인코드된 비디오의 최종 버젼은 디코딩 아티팩트의 수가 감소되므로, 가시적인 비디오 글리치가 감소되어 디코딩 아티팩트를 방지하기 위한 정정 단계를 채택하지 않은 것과 비교하여 비디오의 품질이 증가된다. 상술된 실시예는 GOP의 경계에서의 편집점에 관련된다. 그러나, 상기 교시는 GOP 경계에 있지 않는 편집에 적용할 수 있다.
디코딩 아티팩트를 감소시키는 프로세스는 재생 VTR(51) 및 비디오 인코더(50)와 함께 워크스테이션(10, 30 및 40)을 사용하여 실행된다. 그러나, 다른 하드웨어 교체도 가능하며 본 발명의 상기 특징은 프로세스를 행하는 임의 범용 컴퓨터 또는 특정 하드웨어를 사용하여 실행될 수 있다. 편집점을 판정하고 인코드될 새로운 비디오의 섹션의 종단에 부가될 비디오를 판정하는데 사용되는 계산은 워크스테이션(10) 또는 워크스테이션(30)으로 수행된다.
IX. 인코딩에 사용되는속도 양자화 모델링
인코딩 프로세스로부터 생기는 일련의 매크로블럭을 나타내는데 필요한 비트수를 정확하게 추정하기 위해서, 프레임의 통상의 양자화 레벨을 나타내는 여러 양자화 레벨을 사용하여 프레임을 미리 인코드할 수 있다. 다음에 이 프레임은 대표적인 양자화 레벨 및 다른 양자화 레벨을 사용하여 실제로 인코드될 수 있다. 제1A도에서 도시된 바람직한 실시예에 있어서, 워크스테이션(10)은 소정의 양자화 레벨을 비디오 인코딩 장치(50)에 로드시킨다. 다음에 비디오 인코딩 장치(50)는 사전인코딩을 행한다. 양자화 모델을 생성시키는 가장 정확한 방법에는 각각의 가능한 양자화 레벨에서 각각의 프레임을 인코딩하고 사용된 생성 비트수에 대한 통계를 기록하는 것이 포함된다. 그러나, 이러한 프로세스에서는 미처리 비디오에 대해 n개 패스를 필요로 하는데, 여기서 n은 미처리 비디오를 인코드하는데 사용되는 양자화 레벨의 전체 수이다. 이러한 방법이 터무니없이 길기 때문에, 본 발명은 종래 방법에서 필요한 시간의 몇분의 1로 최적의 방법과 동일한 결과를 발생시키는 개선된 방법을 제공한다. 이 방법은 사전 인코딩 단계 동안 복수의 프레임 각각에 대해 대표적인 비트 전송 속도 대 양자화 레벨 평균을 계산할 수 있도록 복수의 프레임의 여러 부분에 별개의 양자화 레벨을 할당하는 것을 포함한다. 이것에 의해 정확한 양자화 레벨 대 비트 전송 속도 통계가 생성되면서도 각 프레임마다 n-1 사전 인코딩이 절약된다. 다음에 속도가 사전 인코딩 프로세스에서 결정되지 않는 매크로블럭에 의해 사용되는 비트수를 계산하도록 보간될 수 있다. 두 개의 다른 실시예에 있어서, 이 방법은 미처리 비디오로부터의 대부분의 프레임 또는 미처리 비디오의 모든 프레임을 사전 인코드한다.
제37A도는 2개 점의 양자화 레벨 대 비트 전송 속도 라인이 복수의 프레임에서 생성되고 복수의 프레임에 대한 결과가 기억되도록 사전 인코딩 프로세스에서 매크로블럭 단위로 할당된 2개의 상이한 양자화 레벨을 갖는 미처리 비디오의 프레임을 도시한다. 다른 실시예에 있어서는, 양자화 레벨이 매크로블럭의 그룹 또는 스트립에 할당될 수 있다. 제37B도는 위치에 따른 통계 편차를 피하기 위해 프레임의 서로 다른 위치에 양자화 레벨이 할당된 프레임 전역에 4개의 양자화 레벨의 균일한 분포를 도시한 것이다. 각 행마다 도시된 프레임 j에서, 그 행의 제1 양자화 레벨은 qj-1(mod 4)+ 1이다. 이것에 의해 4점의 비트 전송 속도 곡선에 대한 양자화 레벨이 형성된다. 제37C도는 제37B도와 동일한 프로세스를 도시하지만, 양자화 레벨은 블럭 형태로 할당된다. 이 프로세스의 단일 패스가 비트 전송 속도 곡선에 대한 정확한 양자화 레벨을 형성하지만, 다른 실시예의 경우, 각 양자화 레벨에서 각 프레임을 분석함으로써 얻어질 수 있는 통계에 접근할 수 있는 보다 정확한 통계가 되도록 이러한 프로세스는 복수의 프레임에 걸쳐 다수회 반복된다.
제38도는 복수의 프레임의 비트 전송 속도 특성에 대한 양자화 레벨을 결정하는 일반적인 판정 프로세스를 도시한다. 프로세스는 단계(850)에서 개시되어 단계(852)에서 미리 인코드될 미처리 비디오를 나타내는 비디오 신호를 얻음으로써 계속된다. 단계(854)에서, 프로세스는 제1 프레임 i = 1(i는 프레임 인덱스), 이 사전 인코드되는 것을 나타낸다. 단계(856)로 진행하여, 프레임 i = 1의 양자화 레벨은 통계 편차를 방지하기 위해 프레임 전역에 균일하게 할당된다. 단계(858)에서, 프레임 i = 1은 단계(856)에서 할당된 양자화 레벨을 사용하여 사전 인코드된다. 단계(858)의 결과는 단계(856)에서 할당된 각 양자화 레벨의 비트 전송 속도가 프레임 i = 1용으로 레코드되도록 단계(860)에서 판정된다. 단계(862)에서, 방법은 복수의 프레임 모두가 사전 인코드되었는지 아닌지를 판정한다. 단지 하나의 프레임이 사전 인코드되었으므로, 프로세스는 단계(866)로 진행하여 프레임 또는 인덱스 i에 1을 부가함으로써 제2 프레임을 인코드될 프레임으로서 지정한다. 다음에제어 흐름은 양자화 레벨을 프레임 i = 2에 할당하는 단계(856)로 복귀한다. 단계(856, 858, 860 및 862)에서 비트 전송 속도를 지정하고, 사전 인코딩하고 결정하는 프로세스는 나머지 모든 프레임에서 속행된다. 단계(862)가 복수의 모든 프레임이 사전 인코드되어진 것으로 판단하면, 프로세스는 단계(864)로 진행하여 종료한다. 단계(864)에 도달하면, 비트 전송 속도 곡선에 대한 양자화 레벨은 단계(856)에서 할당된 양자화 레벨과 대응 비트 전송 속도를 사용하여 근사화된다.
미처리 비디오의 복수의 프레임에 대한 비트 전송 속도 곡선에 대한 양자화 레벨이 생성되면, 사전 인코딩 프로세스는 인코딩 프로세스로 진행하여 미처리 비디오의 부분이 인코드되어 디지탈 기억 매체, 즉, 콤팩트 디스크에 적합하게 된다. 미처리 비디오 세그먼트 중 1개, 복수개, 대다수개, 또는 전부가 제2 단계에서 인코드될 수 있다. 미처리 비디오 세그먼트가 자동적으로 인코드되는 경우, 인코더는 비트 전송 속도 곡선에 대한 대응하는 양자화 레벨과 결합된 각 매크로블럭의 액티비티 측정을 이용하여 세그먼트의 각 프레임의 매크로블럭에 할당되는 양자화 레벨을 결정한다. 세그먼트의 각 프레임이 인코드되어 생성된 비트수가 지정된 양자화 레벨에 근거하여 추정 비트수와 비교된다. 생성된 비트수가 예상된 비트수와 상당히 다를 경우에, 자동 인코더는 인코드될 다음 셋트의 매크로블럭의 양자화 레벨을 변화시킴으로써 변화 보상을 시도한다. 이러한 일련의 프로세스에 의해 자동 인코더는 타겟 비트수와 일치하도록 미처리 비디오 전체의 세그먼트를 인코드할 수 있다.
또한, 비디오 시퀀스에서 나중 프레임의 비트 전송 속도 곡선에 대한 양자화레벨을 이용하여 생성된 인코드 디지탈 비디오 전체의 화질을 조절할 수 있다. 제39도에서 도시된 바와 같이, 프레임 N은 동일한 양자화 레벨의 경우 프레임 M보다 더 적은 비트를 생성하는 것으로 공지되어 있다. 따라서, 프레임 M은 프레임 N에서와 동일한 화질을 얻기 위해서는 보다 많은 비트를 필요로 한다. 프레임 N이, 할당된 모든 비트를 사용하지 않고 희망하는 화질로 인코드되면, 인코더는 동일한 품질의 경우에 단위 시간 당 보다 많은 비트를 필요로 하는 프레임 M을 인코딩할시에 사용되도록 여분의 비트를 진행시킨다. 이러한 능력은 M > N + 1일 때 단일 프레임 룩 어헤드 버퍼만을 갖는 시스템에서는 유용하지 않다.
X. 데이타 구조를 사용한 오디오, 비디오 및 서브화상 디지탈 신호들의 결합
본 명세서의 상기 부분은 인코드 및 압축된 디지탈 시청각 신호를 생성하기 위해 시청각 정보를 인코딩하는 동안 사용되는 기술에 주로 관련된다. 그러나, 텔레비젼 등에서 시청각 정보를 재생 또는 재구성하도록 오디오 및 비디오 정보를 결합, 기억 및 디코드하기 위해서는 기억되어 차후에 디코드될 수 있도록 인코드되어진 오디오, 비디오 및 다른 정보를 결합하여 인터리브할 필요가 있다. 오디오, 비디오 및 다른 정보의 결합은 제1A도에서 도시된 워크스테이션(20)에서 발생하는 포맷팅 프로세스로서 간략히 상술되었다. 지금부터 포맷팅 프로세스 및 생성된 데이타 구조 및 신호에 대해 보다 상세히 기술하고자 한다.
제1A도를 참조해 보면, MPEG 비디오 및 인코드된 오디오가 디스크(21)에 기억된다. 또한, 비디오의 상부에 표시 및 오버레이되는 자막 및/또는 그래픽 표시를 포함한 서브화상 정보는 예를 들어 별도의 워크스테이션에 의해 이전에 인코드되며, 인코드된 서브화상 정보는 플로피 디스크, 테이프 또는 다른 형태의 디스크등과 같은 디지탈 기억 매체에 기억된다. 이와 같이 기억된 서브화상 정보는 디지탈 기억 장치(22) 중 하나에 의해 판독되고, 디스크(21) 내의 인코드된 오디오 및 비디오와 포맷팅 프로세스로 결합되며, 워크스테이션(20)에 의해 단일 데이타 스트림으로 포맷된다. 포맷팅 프로세스의 출력은 디스크(21)에 기억되어 디지탈 기억 장치(22)의 디지탈 테이프에 기입된다. 다음에 이 테이프를 사용하여 공지된 광 디스크 제조 방법에 따라 광 디스크를 생성한다. 따라서, 본 발명은 오디오 및 비디오 데이타의 인코딩 뿐만 아니라, 인코드된 오디오, 비디오 및 서브화상 데이타를 포맷된 오디오, 비디오 및 서브화상 정보를 기억하는 데이타 구조, 데이타 스트림, 디지탈 기억 매체에 결합시키는 프로세스 및 시스템과, 사용자 또는 소비자에게 표시하기 위해 오디오, 비디오 및 서브화상 정보를 분리하여 재구성하는 디코딩 프로세스와 디코더에도 관한 것이다. 포맷된 데이타 내 또는 광 디스크 상의 데이타 구조는 메모리에 기억된 정보에 물리적인 구성을 제공하는 특정 전자 구조 요소에 관한 것인 것에 주목할 필요가 있다. 이들 특정 전자 구조 요소는 광 디스크에 기억되며 비디오 온 디멘드 시스템용으로 사용되거나 또는 디지탈 비디오 디스크 플레이어를 사용하여 사용자 또는 소비자용으로 디코드될 수 있다.
인코드된 시청각 정보 디스크 또는 다른 기억 매체의 포맷 구조의 특정적인 특성을 기술하기 전에, 본 발명을 개선시키는 공지된 표준 방식에 대해 기술하기로 한다. ISO/IEC 13818-1은 MPEG 비디오 및 오디오의 시스템 측면을 기술하며 이들은 인용된 문헌과 함께 본원 발명에 참고가 된다. MPEG 시스템 기술로서 후술될ISO/IEC 13818-1은 비디오 및 오디오 스트림에 대한 기본적인 멀티플렉싱 방법에 대해 기술하고 있다. 이들 스트림은 패킷화된 기본 스트림(PES)이라 불리는 패킷으로 분할된다. 오디오와 비디오 스트림을 포함한 상이한 스트림으로부터의 이들 패킷은 공통 시간축을 가지며 단일 스트림으로 결합된다. 또한 MPEG 시스템 설명서에는 하나 이상의 독립 시간축을 갖는 하나 이상의 프로그램을 단일 스트림과 결합시키는 트랜스포트 스트림의 사용에 대해 기술되어 있다. MPEG 시스템 설명서에는 복수의 기본 스트림을 동기화하는데 사용되는 프리젠테이션 타임-스탬프(PTS)의 사용에 대해 기술되어 있다. 타임-스탬프는 일반적으로 90 KMz의 단위이며, 시스템 클럭 참조(SCR), 프로그램 클럭 참조(PCR) 및 옵션 요소 스트림 클럭 참조(ESCR)에 관련하여 사용된다. 데이타가 MPEG 시스템 설명서에 따라 포맷되어지는 방식에 대한 보다 상세한 설명은 ISO/IEC 13818-1에 기재되어 있다.
ISO/IEC 13818-1에 따라 포맷팅 프로세스를 사용하는 이외에, 데이타는 ISO 9660, 1988, 정보 프로세싱-본원에 참고가 되는 정보 교환을 위한 CD-ROM의 볼륨 및 파일 구조에 따라 포맷 및 기억된다. 이러한 표준 방식에서는 디스크 볼륨(음량이 아니고 디스크 내용) 및 파일 구조의 구성 방법에 대해 기재되어 있다.
현 시점에서, 오디오, 비디오 및 서브화상 데이타를 기억하는데 사용되는 광 디스크에 대한 바람직한 실시예는 각 사이드가 5 기가바이트의 용량으로서 전체 기억 용량이 10 기가바이트인 단일층 양면 디스크이다. 장래의 포맷은 다층 디스크에도 허용되어 기억 용량을 증가시키며, 판독 전용 디스크의 사용 이외에도, 1회 기록 및 재기록 기술을 사용할 수도 있다. 본 발명에서 사용될 수 있는 디스크의 다른 양상에 대해서는 본원에 참고가 되는 발명의 명칭이 "광 디스크 및 광 디스크 장치"인 1994년 9월 13일자 출원된 미국 특허원 08/304,849호에서 기술되어 있다. 디스크의 외주 직경은 120 mm인 것이 바람직하다.
제40도는 최종에는 광 디스크에 포함되는 워크스테이션(20)의 포맷된 출력의 구조를 도시하고 있다. 이러한 구조(900)는 리드-인(lead-in) 영역(902)을 포함한다. 이 리드인 영역은 디스크로부터 판독된 데이타의 후속 처리를 제어하는 개별 필드를 포함한다. 리드-인 영역(900)에 포함된 리드-인 정보에 대한 예가 본원에 참조가 되는 Cookson 등에게 허여된 미국 특허 제5,400,077호의 제3도에서 예시되어 있다.
시스템 영역(904) 및 볼륨 관리 정보(906)은 ISO 9660에 따른다. 볼륨 관리 정보(906)은 주 볼륨 디스크립터, 볼륨 디스크립터 셋트 터미네이터, 디렉토리 레코드, 및 경로 테이블 레코드를 포함한다. 주 볼륨 디스크립터는 디스크가 비디오 디스크인지 오디오 디스크인지를 표시하는 디스크립터 타입, 디스크가 따라야 하는 규격을 표시하는 규격 식별자, 시스템 식별자, 볼륨 식별자, 볼륨 크기, 논리 블럭 크기, 경로 테이블 크기, 경로 테이블 크기 등의 디스크 볼륨의 기본 정보를 포함한다. 시스템 영역의 이들 및 다른 필드와 볼륨 관리 정보는 ISO 9660에 상세히 설명되어 있고 그에 대한 설명은 간단히 하기 위해 생략된다. 부가적으로, 원하는 경우에, ISO 9660에 따르는 보충 볼륨 디스크립터가 있다.
볼륨 디스크립터 셋트 터미네이터는 볼륨 디스크립터 타입, 규격 식별자, 및 볼륨 디스크립터 버젼을 포함한다. 디렉토리 레코드는 ISO 9660에 따라 디스크의다양한 디렉토리 정보를 포함한다. 경로 테이블 레코드에는 ISO 9660에 설명된 것과 같은 L 타입 경로 테이블 및 M 타입 경로 테이블을 포함한다.
디스크 정보 파일(908)은 광 디스크를 재생할 때 사용자가 선택할 수 있는 디스크 및 메뉴 정보의 내용에 관한 정보를 더 포함한다. 디스크 정보 파일(908)의 상세는 제41도와 관련하여 설명되어 있다.
각각의 디스크는 최소 한개의 데이타 파일(90)에서 최대 99개까지의 데이타 파일을 포함한다. 예를 들어, 디스크 상에 2개의 별개의 시청각 프로그램이 있다면, 디스크 정보 파일(908)은 사용자가 원하는 데이타 파일을 선택할 수 있도록 메뉴를 생성하는데 필요한 정보를 포함할 것이다. 데이타 파일은 제42도 내지 제56도에 관련하여 상세하게 설명된다. 그러나 리드 아웃(lead-out) 영역(916)은 디스크를 기술하는 다른 정보, 처리가 어떻게 수행되는지, 또는 관련된 디스크에 관한 정보를 포함할 수 있다.
제41도는 제40도의 디스크 정보 파일(908)을 도시한 것이다. 디스크 정보 파일(908)은 파일 관리 정보(920) 및 사용자와 대화하는 메뉴를 구성하는 정보인 메뉴 데이타(922)를 포함한다. 메뉴 데이타는 비디오 데이타, 오디오 데이타, 및 서브화상 데이타를 포함한다. 파일 관리 정보(920)은 파일 관리 테이블(924), 디스크 구조 정보(926), 메뉴 구조 정보(928), 및 복수의 메뉴 셀 정보 필드(932 및 934)를 포함하는 메뉴 셀 정보 테이블(930)을 포함한다.
파일 관리 테이블(924)는 디스크 정보 파일의 모든 국면에 관련된 정보를 포함한다. 파일 관리 테이블(924) 내에는 파일명을 식별하기 위한 볼륨 관리정보(906)의 대응하는 디렉토리 레코드 내의 대응하는 파일 식별자와 동일한 내용을 기술하는 파일명이 포함되어 있다. 파일 식별자는 이 경우에 디스크 구조 정보 파일인 파일의 타입을 식별한다. 논리 블럭의 수를 사용하여 파일의 크기를 기술하는 필드가 있다. 본 설명에 있어서, "논리 블럭"이라는 용어는 ISO 9660에 정의된 것으로서 사용된다. 논리 블럭의 수를 사용하여 화일 관리 테이블의 크기, 파일의 헤드로부터의 상대적 논리 블럭 번호를 사용하여 디스크 구조 정보(926)의 개시 어드레스, 파일의 헤드로부터의 상대적 논리 블럭 번호를 사용하여 기술된 메뉴 구조 정보(928)의 개시 어드레스, 파일의 헤드로부터의 상대적 논리 블럭 번호를 사용하여 메뉴 셀 정보 테이블(930)의 개시 어드레스를 기술하는 입력(entry)이 있다. 메뉴 데이타가 없으면, 이 필드에 대한 값은 0일 것이다. 파일의 헤드로부터의 상대적 논리 블럭 번호를 사용하여 메뉴 데이타(922)의 개시 어드레스를 기술하는 필드가 있다. 메뉴 데이타가 존재하지 않을 때, 이 입력은 0이다.
파일 관리 테이블(924)는 또한 메뉴 데이터용의 비디오의 비디오 속성을 기술하는 필드도 포함한다. 이 정보는 비디오 압축 모드가 MPEG-1 또는 MPEG-2인지, 비디오의 프레임 속도(초 당 29.97 프레임 또는 초 당 25 프레임), 표시 종횡비가 3/4 또는 9/16인지를 나타내는 필드, 및 팬-스캔(pan-scan) 및 레터 박스 모드(letter box mode)가 둘다 허용되고, 팬-스캔 모드는 허용되나 레터 박스 모드는 금지되고, 또는 팬-스캔 모드는 금지되고 레터 박스 모드는 허용되는 것을 표시하는 표시 모드 필드를 포함한다.
비디오 속성을 기술하는 필드와 유사하게, 파일 관리 테이블(924) 내의 오디오 스트림을 기술하는 필드가 또한 있다. 이 필드 내에는 오디오가 돌비 AC-3에 따라 인코드되었는지, 오디오가 MPEG 오디오인지, 또는 오디오가 선형 PCM 오디오(48 KHz에서 16 비트)인지를 포함하는 오디오 코딩 모드의 표시자가 포함되어 있다. 오디오가 모노럴, 스테레오, 또는 디지탈 서라운드인지를 나타내는 표시자가 또한 있다.
파일 관리 테이블(924)은 메뉴 데이타(922)용 서브화상 스트림 속성을 기술하는 필드를 더 포함한다. 이 필드는 주행 길이 서브화상이 아래에 설명되는 바와 같이, 서브화상용으로 사용되는 것을 표시한다. 파일 관리 테이블(924)는 또한 메뉴용의 모든 서브화상에 사용되는 16개의 셋트의 컬러 팰럿을 기술하는 필드를 포함한다. 1에서 6까지의 팰럿 번호는 휘도 신호 Y, 색차 신호 Cr = R - Y, 및 색차 신호 Cb = B - Y를 포함한다.
디스크 구조 정보(926)은 디스크 상에 기억된 비디오 및 오디오 파일의 구성 정보를 포함한다. 디스크 구조 정보(926)은 파일명을 식별하기 위해 사용되는 디렉토리 레코드 내의 대응하는 파일 식별자와 동일한 내용을 기재하는 파일명을 포함한다. 파일을 디스크 구조 정보 파일로서 식별하는 파일 식별자 필드가 있다. 제40도에 도시된 데이타 파일(910 및 914)과 같은 디스크 상의 데이타 파일의 수를 표시하기 위한 필드가 있다. 또한, 파일이 비디오와 오디오 정보를 둘다 포함하거나 또는 오디오 정보만을 그리고 파일이 가라오케 파일인지 여부를 포함하는 데이타 파일의 각각의 타입을 표시하는 필드가 있다.
디스크 구조 정보(926)은 또한 데이타 파일 내에 서브화상 및 오디오 정보를기술하는 필드를 또한 포함한다. 이 필드 내에는 서브화상 채널의 수가 표시된다. 각각의 서브화상 채널은 다른 서브화상 언어와 같은 다른 서브화상 정보를 표시하는데 사용될 수 있다. 또한, 오디오 스트림의 수의 표시, 채널 번호순의 각각의 서브화상 채널의 언어 코드의 표시, 오디오 스트림 번호순의 오디오 스트림의 언어 코드의 순서 기술, 및 파일의 부모 관리 및 각도 정보의 설명이 또한 기술되어 있다. 부모 관리 정보는 표시될 정보의 특정한 시퀀스의 부모 레벨을 기술하는데 사용된다. 이것은 시퀀스 내에 포함된 특정 셀의 최대 부모 레벨이다. 레벨은 1에서 5까지 변화하고 레벨이 높을수록 시청상의 제한이 많아진다. 시퀀스 및 셀 및 부모 관리 방식의 상세한 설명이 아래에 설명된다. 또한 비디오 시퀀스의 각도 수를 기술하는 필드가 있다. 예를 들어, 음악 비디오가 전체 음악 비디오에 걸쳐 3개의 다른 카메라 시야를 가졌다면, 사용자는 보여지기를 원하는 어떤 특정한 카메라 각도를 선택할 수 있다. 또한 시퀀스 내의 프로그램 수를 표시하는 필드가 존재한다.
메뉴 구조 정보(928)은 각 메뉴 타입의 개시 셀 번호를 포함한다. 표시 시퀀스는 복수의 셀을 포함한다. 하나의 시퀀스는 예를 들어 256개까지의 셀을 포함할 수 있다. 셀은 후술될 재생 정보(PBI) 팩과 다음 PBI 팩 바로 전의 팩 사이의 GOP(화상의 그룹) 정수이다. 비디오용 데이타는 데이타가 연속적으로 재생되어야 하는 레코드 유닛으로서 셀로 분리된다. 셀은 표시용 정보를 포함하고 그 목적에 따라 분할된다. 셀 내의 제1 오디오 팩 및 제1 서브화상 팩은 셀의 헤드에 있는 PBI 팩 뒤에 기록되는 비디오 헤드 팩 내의 PTS에 가까운 프리젠테이션용 타임-스탬프(PTS)를 포함한다. 다른 셀은 프로그램의 소정 각도 및 부모 제한에 따라 표시된다. 한 예로서,어린 시청자에 부적절한 영화의 섹션이 있다고 가정하자. 시청가능한 부모 관리 레벨에 따라 셀을 공유하는 2개의 시퀀스가 있을 수 있다. 예를 들어, 제한되지 않는 시청의 경우, 셀(1, 2, 3 및 5)는 특정 시퀀스로 시청가능하다. 시청 제한 레벨의 경우는, 시퀀스로 시청되는 셀은 1, 2, 4 및 5일 수 있다.
다른 각도에 관해서는, 동시에 진행하고 재생에 요구되는 시간이 실질적으로 동일한 복수의 카메라 각도로 각 비디오를 기록하는 것이 가능하다. 각각의 각도는 각도 셀이라고 하는 하나의 셀로 구성된다. 동시에 진행하는 복수의 각도 셀의 셋트는 각도 블럭이라고 한다. 각도 블럭이 시퀀스 내의 복수의 위치에서 정의되는 경우에, 각도 셀의 수와 각각의 각도수의 카메라 각도는 각도 블록 전체를 통해 동일하여야 한다.
메뉴 셀은 사용자에게 볼륨 내의 각각의 비디오 또는 오디오 파일의 내용을 알리는 메뉴 스크린을 구성하는 셀이다. 1 셋트의 메뉴 셀은 메뉴용 데이타로서 디스크 정보 파일 내에 함께 기록된다. 메뉴 형태라고도 하는 메뉴 셀 타입은 타이틀 메뉴, 프로그램 메뉴, 오디오 메뉴, 서브화상 메뉴, 및 각도 메뉴로 분류된다. 메뉴스크린은 메뉴용 비디오를 포함한다. 선택용 항목은 재생 장비의 스크린 상에 표시되고 메뉴 셀의 서브화상 데이타로서 기록된다.
메뉴 셀 정보 테이블(930)은 제41도의 (932 및 934)와 같은 복수의 메뉴 셀 정보가 기억되는 테이블이다. 하나의 메뉴 스크린은 하나의 메뉴 셀을 포함한다. 메뉴 셀 정보는 복수의 필드를 포함한다. 제1 필드는 디스크 정보의 복사가 허용되는지 여부, 부모 관리의 레벨, 메뉴가 타이틀 메뉴, 프로그램 메뉴, 오디오 메뉴, 서브화상 메뉴, 또는 각도 메뉴인지와 같은 메뉴 셀 타입, 및 메뉴의 언어 코드를 나타낸다. 각 언어에는 코드가 할당되고 언어 코드 서브-필드에서 나타나는 특별한 코드는 메뉴에서 사용되는 언어를 나타낸다.
메뉴 스크린 상의 서브화상 및 선택 항목의 수에 의해 표시된 선택 항목의 개시수를 기술하는 필드도 존재한다. 선택 항목 개시수는 메뉴 스크린 상의 선택 항목의 최소수를 기술하고, 메뉴의 다음 페이지가 존재하는지 여부, 및 선택될 수 있는 1과 16 사이의 항목 번호를 기술하는 수를 표시하는 필드가 있다. 메뉴 셀 정보는 또한 메뉴 셀의 개시 팩 내의 시스템 클럭 기준(SCR)의 하위 32 비트, 파일의 헤드로부터의 상대적 논리 블럭 번호를 또는 메뉴 셀의 개시 어드레스를 기술하는 필드, 및 메뉴 셀을 구성하는 논리 블럭의 수를 기술하는 필드를 포함한다.
메뉴 데이타(922)는 메뉴용으로 표시되는 실제 정보를 포함한다. 이 정보는 제40도의 데이타 파일(910 및 914) 내의 정보가 구성되는 것과 동일한 방식으로 구성되고 따라서, 메뉴 데이타(922)의 각 측면의 자세한 설명은 중복 설명을 피하기 위해 생략된다. 메뉴 스크린 상에 선택되는 항목은 서브화상 정보로 형성된다. 디스크 플레이어에 의한 메뉴 선택의 처리는 컴퓨터 코드를 실행하는 마이크로프로세서를 이용하여 수행된다. 타이틀용 메뉴 선택이 이루어지면, 선택 결과를 파일의 개시 또는 선택된 타이틀 번호에 대응하는 시퀀스 번호로부터 재생된다. 프로그램 메뉴 선택의 경우, 선택된 프로그램은 선택 프로그램의 개시로부터 재생된다. 메뉴로부터 오디오를 선택하는 경우, 오디오 스트림은 선택된 오디오 스트림에 대응하도록 설정된다. 유사하게, 서브화상 메뉴 선택의 경우 서브화상 채널 번호는 선택된 서브화상 채널과 동일하게 설정된다. 마지막으로, 메뉴로부터의 각도 선택에 의해 선택된 번호와 동일하도록 각도 셀 번호가 변경된다. 바람직하다면, 메뉴에 다른 정보가 포함되어 메뉴를 통해 선택될 수 있다.
제40도의 데이타 파일(910)과 같은 데이타 파일은 제42도에 도시한 바와 같은 2개의 섹션을 포함하는데, 이들은 표시 오디오, 비디오, 및 서브화상 정보의 표시에 사용되는 실제 데이터(942)와 데이타 파일 관리 정보(940)이다. 데이타 관리 파일 정보(940)는 데이타 파일 관리 테이블(944), 시퀀스 정보 테이블(946), 셀 정보 테이블(948), 및 데이타 서치 맵(950)인 4개의 주요 요소를 포함한다.
데이타 파일 관리 테이블(944)은 데이타 파일(910)의 모든 국면에 관련된 정보를 포함한다. 이 정보는 파일명을 식별하기 위한 디렉토리 레코드 내의 대응하는 파일 식별자와 동일한 내용인 파일명용 필드, 파일이 오디오 및 비디오 정보를 둘다 포함한다는 것을 표시하는 파일 식별자, 논리 블럭의 수에 의해 정의되는 파일의 크기, 파일 관리 테이블의 크기, 파일에 대한 시퀀스의 수, 파일용 셀의 수, 디스크 구조 정보(DSI) 팩의 수, 시퀀스 정보 테이블(946)의 시작 어드레스, 셀 정보 테이블(948)의 시작 어드레스, 데이타 서치 맵의 시작 어드레스, 데이타(942)의 시작 어드레스, MPEG-1 또는 MPEG-2와 같은 비디오 압축 모드를 포함하는 데이타(942)의 비디오 속성을 기술하는 필드, 프레임 속도가 초 당 29.97 프레임 또는 초당 25 프레임인지를 포함하는 프레임 속도, 표시 종횡비가 3/4 또는 9/16인지를 표시하거나 또는 표시 모드가 팬-스캔(pan-scan) 및 레터 박스(letterbox) 포맷 중하나 또는 둘다를 허용하는지를 표시하는 표시 종횡비를 포함한다.
데이타 파일 관리 정보는 파일 내의 오디오 스트림의 수; 오디오 코딩 모드와 같은 오디오 스트림 속성; 모노럴, 스테레오, 또는 디지탈 서라운드 등의 오디오 모드, 특정 언어가 포함되어 있는지 여부를 표시하는 오디오 타입을 기술하는 필드와, 이 특정 언어의 코드 번호를 표시하는 특정 코드를 위한 필드를 더 포함한다.
데이타 파일 관리 테이블(944)은 서브화상 채널의 수를 기술하는 필드, 서브 화상의 주행 길이 코딩이 사용되고, 특별히 지정된 언어가 있는지와 지정된 언어가 무엇인지를 표시하는 필드와 같은 서브화상 채널 속성을 기술하는 필드를 더 포함한다. 부가적으로, 파일의 모든 서브화상 채널에 사용되는 16개 컬러 팰럿용 Y, Cr 및 Cb 컬러를 표시하는 필드가 있다. 또한, 시퀀스 정보 테이블의 크기를 기술하는 필드, 최소 셀 수와 뒤따르는 연속 셀의 수, 및 파일의 한 시퀀스 내에 사용되는 셀수의 범위를 기술하는 필드가 있다. 한 시퀀스 내에 사용되는 셀수는 32개의 연속 수를 한 셋트로 만들고 최소 셀 수를 그 셋트의 제1 번호로 놓음으로써 산출되는 한 셋트 수에 포함되어야 한다. 이 필드는 시퀀스 내에서 사용되는 셀의 수, 및 시퀀스 내에 사용되는 최소 셀 수를 포함하는 서브필드를 포함한다.
시퀀스 정보 테이블(946)은 다수의 시퀀스 정보 엔트리(952 및 954)를 포함한다. 시퀀스는 이 시퀀스에 의해 지정된 범위 내의 셀이 선택적으로 재생되는 순서이다. 완료(completion) 및 접속(connection)의 2가지 형의 시퀀스가 있다. 완성형 시퀀스는 재생 자체 후에 종료된다. 접속형 시퀀스는 시퀀스적으로 재생된다.참조 번호(952)로 표시되는 시퀀스 정보(1)와 같은 시퀀스 정보 번호 및 참조 번호(954)로 표시되는 시퀀스 정보(i)는 시퀀스 번호와 동일하고 1로 시작하는 시퀀스 정보 테이블에서 기술된 순서대로 번호가 매겨진다. 시퀀스 정보 테이블의 시퀀스 정보 엔트리는 완성형 시퀀스 또는 접속형 시퀀스의 순으로 기술된다. 각각의 시퀀스 정보는 시퀀스 형태, 포함된 프로그램의 번호, 포함된 셀의 번호, 시퀀스 재생 시간, 접속형 시퀀스의 번호, 접속가능한 시퀀스 번호, 및 시퀀스 제어 정보를 나타내는 필드를 포함한다.
시퀀스 정보의 시퀀스 타입 필드는 시퀀스의 카피 및 부모 관리를 설명한다. 카피가 허용되거나 금지되는지를 표시하는 서브필드, 1에서 5까지의 부모 관리의 레벨을 지정하는 서브필드, 완성형 시퀀스, 접속형 헤드 시퀀스, 접속형 중간 시퀀스 또는 접속형 종단 시퀀스 중 하나일 수 있는 시퀀스 타입을 표시하는 서브필드가 있다. 또한, 사용하기 위한 시퀀스가 가라오께 어플리케이션인지를 표시하는 어플리케이션 타입의 서브필드가 있다.
필드에 포함된 프로그램 수는 시퀀스로 100개까지의 프로그램의 번호를 기술한다. 필드에 포함된 셀 번호는 전체 256개 셀까지 특정 시퀀스 내의 전체 셀의 번호를 기술한다. 시퀀스 또는 재생 시간은 시간, 분, 초, 및 비디오 프레임에 의한 단위로 이 시퀀스의 전체 재생 시간을 기술한다.
접속형 시퀀스 필드의 수는 그들 이후에 바로 접속될 수 있는 시퀀스의 수, 최대 8을 포함한다. 접속가능한 시퀀스 수 필드는 접속가능한 시퀀스의 시퀀스 수 및 지정된 수에 대한 시퀀스의 부모 관리를 위한 레벨을 기술한다. 접속가능한 시퀀스의 선택 번호를 기술된 순서대로 1부터 할당한다. 이 필드는 부모 관리 번호용 서브필드, 및 시퀀스 번호를 위한 서브필드를 포함한다. 시퀀스 정보의 최종 필드는 재생 순서대로 시퀀스 내에 포함된 셀을 기술하는 시퀀스 제어 정보이다. 이 필드는 또한 한 셋트의 다수의 셀인 각도 블럭을 기술하는데 사용된다. 이들 셀의 재생 시간은 실질적으로 동일하다. 각각의 재생 섹션은 하나의 셀로 구성된다. 각도 블럭은 제1 셀이 1로 번호가 매겨진 많아야 9개의 셀을 포함한다. 시퀀스 제어 정보의 서브필드는 시퀀스적으로 재생되는 다수의 셀을 조합하는 재생 유닛으로서 프로그램을 정의하는 프로그램 번호를 포함한다. 시퀀스적으로 다음 셀로 진행하는지, 중지하는지, 또는 시퀀스의 종단에 도달되었는지를 표시하는 셀 재생 제어용 서브필드가 있고, 블럭이 컨피규레이션 셀이 아닌지, 블럭 컨피규레이션의 제1 셀이 존재하는지, 이것이 블록 컨피규레이션 내의 셀인지, 또는 블럭 컨피규레이션 내의 최종 셀인지를 표시하는 블럭 모드 서브필드가 있다. 블럭이 없는지 또는 각도 블럭이 있는지를 표시하는 블럭 타입 서브필드가 있다. 마지막으로, 재생될 셀의 셀 번호를 표시하는 서브필드가 있다.
데이타 파일 관리 정보(940)는 다수의 셀 정보 엔트리(956 및 958)을 포함하는 셀 정보 테이블(948)을 더 포함한다. 각각의 셀 정보 엔트리는 카피가 허용되거나 또는 금지되는지와 부모 관리의 레벨을 표시하는 셀 타입 정보를 포함한다. 또한, 시간, 분, 초 및 비디오 프레임 단위로 셀의 전체 셀 재생 시간을 기술하는 셀 재생 시간을 표시하는 필드가 있다. 셀의 제1 팩에서 기술된 시스템 클럭 기준의 하위 32 비트를 기술하는 필드, 파일의 개시부터 상대적 논리 블럭 번호로 셀의 시작점에서의 어드레스를 기술하는 필드, 및 셀 내에 포함된 논리 블럭의 수를 기술하는 필드가 있다.
데이타 파일 관리 정보(940)의 최종 섹션은 데이타 서치 맵(950)이다. 데이타 서치 맵은 데이타 서치 정보 팩(960 및 962)의 다수의 포인터를 포함할 수 있다. 재생 정보(PBI) 팩 포인터라고 하는 이들 포인터는 데이타(942) 내에 존재하는 재생 정보 팩의 어드레스를 제공한다. 고속 재생 또는 고속 되감기 모드를 수행하고 정보의 뷰잉(viewing)을 허용하기 위해서는, MPEG-2 비디오 시퀀스 내의 내부 화상에 의존하는 것이 최상이다. 이들 내부 화상은 그 어드레스가 데이타 서치 맵 내에 포함된 데이타(942) 내의 재생 정보 팩을 사용하여 배치된다. PBI 팩에 대해서는 아래에 설명된다.
제43도에 도시된 데이타 파일(910)의 데이타(942)는 인터리브된 팩의 재생 정보(PBI) 비디오, 서브화상, 및 오디오 정보를 포함한다. 예를 들어, 제43도에서, 데이타는 재생 정보(940), 비디오 정보(942 및 944), 서브화상 정보(946), 오디오 정보(948) 등을 포함한다. 데이타(942) 내의 정보의 구조, 및 프리젠테이션 타이밍은 MPEG 시스템 설명(ISO/IEC 13818-1)에서 정의된 프로그램에 따른다. 그러나, 재생 정보 및 서브화상 정보 및 이 정보가 저장되고, 인코드되고 디코드되는 방식은 본 발명의 일부를 이룬다.
제43도 내의 데이타(942)를 구성하는 다양한 정보는 정보 팩을 포함한다. 예시적인 팩(970A 및 970B)는 제44A도 및 제44B도에 도시되어 있다. 각각의 팩은 팩 헤더(972A 또는 972B) 및 비디오, 오디오, 서브화상, 또는 재생 정보 데이타를 포함하는 패킷(982A 또는 982B)를 포함한다.
팩(970A)의 구조는 패킷(982A)이 2034와 2027 바이트 사이를 차지할 때 사용된다. 스터핑 필드(980A)에 의해 스터핑의 1 내지 8 바이트가 팩의 전체 크기를 2048 바이트로 된다. 비디오, 오디오, 서브화상, 또는 재생 정보용 패킷이 2027 바이트 미만일 때, 제44B도에 도시된 바와 같이, 1 바이트의 스터핑(980B), 및 패킷(982B 및 984B)를 위한 바이트의 총 수를 2034 바이트로 만드는 패딩용 패킷(984)을 갖는 패킷 구조(970B)가 사용된다. 패킷 헤더(972A 및 972B)는 각각 패킷 시작 필드(974), 시스템 클럭 기준(976), 멀티플렉서(MUX) 속도 필드(978) 및 스터핑 필드(980)을 포함한다. 제44A도 및 제44B도의 패킷은 프로그램 스트림 팩 내의 필드의 의미(semantic) 정의에 관련한 § 2. 5. 3. 4에 기술되고 ISO/IEC 13818에 따라 구성된다.
제45도는 재생 정보(PBI) 팩을 도시한 것이다. 팩 헤더(972)는 제44A도 및 제44B도에 관련하여 기술된 것 같이 구성된다. 제45도의 시스템 헤더(986)는 ISO/IEC 13818-1에 기술된 프로그램 스트림 헤더의 요건에 따라 구성된다. 시스템 헤더 내의 필드의 의미 정의는 ISO/IEC 13818-1의 § 2. 5. 3. 6에 기술되어 있다.
패킷 헤더(988)는 ISO/IEC 13818-1의 § 2. 4. 3에 기술된 PES 패킷 내의 필드의 의미 정의에 기술된 필드에 따라 구성된다. 그러나, 패킷 헤더(988)에서는 프리젠테이션 타임 스탬프까지의 필드만이 요구된다.
재생 정보 팩은 서브스트림 ID 필드(990)을 더 포함한다. 이것은 서브스트림의 식별을 표시하는 8 비트 필드이다. 사용될 수 있는 다른 식별은 서브화상 스트림, 비디오 블랭킹 정보(VBI) 스트림, AC-3 스트림 또는 선형 PCM 스트림이다. MPEG 오디오 서브스트림과 같은 다른 스트림 타입을 포함하는 것도 또한 가능하다. 서브스트림 ID(990)가 비디오 블랭킹 정보(992)의 데이타에 선행하기 때문에, 서브스트림 ID는 후속하는 정보가 비디오 블랭킹 정보 스트림이라는 것을 표시하도록 설정된다. 비디오 블랭킹 정보(992)의 데이타는 ISO/IEC 13818-1에 따라 구성될 수 있고, ISO/IEC 13818-1에서 요구되는 의미에 따른다.
제45도에 도시된 재생 정보 팩 내에는 또한 데이타 서치 정보(996)의 데이타를 포함하는 데이타 서치 정보 패킷용 패킷 헤더(994)가 포함된다. 패킷 헤더(994)는 000001h의 24 비트값을 갖는 패킷 시작 코드 프리픽스(prefix), 데이타 서치 정보(996)가 이전에 정의된 표준에 따르지 않는다는 것을 표시하는 스트림 식별, 및 패킷 길이를 표시하는 필드를 포함한다. 데이타 서치 정보(996)가 MPEG 표준에서 개시되지 않기 때문에, 스트림 ID는 후속하는 정보가 개인용 타입의 데이타 스트림인 것을 표시한다.
제45도에 도시된 데이타 서치 정보(996)의 데이타의 특정 내용이 제46도에 도시되어 있다. 데이타 서치 정보(996)는 전반적인 정보(1000), 각도 어드레스 정보(1020), 하이라이트 정보(1022), 동기 재생 정보(1024), 및 PBI 팩 어드레스 정보(1036)을 포함한다.
전반적인 정보(1000)는 제47도에 더 상세히 도시되어 있다. 앞서 설명된 바와 같이, 데이타 서치 정보용 목적은 디지탈 인코드된 비디오의 빠른 서치를 가능하게 하고, 상세하게는 비디오 디코딩 중에 실행된 트릭 모드용 내부 화상의 신속한 위치 설정을 가능하게 해준다. 그러므로, 제46도에 도시된 재생 정보 팩은 화상의 각각의 그룹(GOP)의 헤드 팩이고 I-화상으로 시작하는 비디오 헤드 팩 바로 전에 할당된다. 전반적인 정보(1000)는 I-화상의 재생 시작 시간인 GOP(1002)의 타임-스탬프를 포함한다. 다음에, PBI의 시스템 클럭 기준(SCR)이 있다. 이것은 PBI 팩 헤더에서 기술된 SCR의 하위 32 비트를 기술한 것이다. 1006은 I-화상의 종단 어드레스를 표시하고 파일의 개시부터의 상대적 논리 블럭 번호에 의해 I-화상의 최종 데이타가 기록되는 팩의 어드레스를 기술한다. 셀 번호는 필드(1008)내에 저장되고 GOP가 속하는 셀 번호가 기술된다. 필드(1010)는 제한 레벨과 카피가 허용되는지 여부를 포함하는 부모 관리 정보를 기술한다. 마지막으로, 필드(1012)는 파일의 헤드부터 상대적 논리 블럭 번호를 사용하여 PBI 팩의 어드레스인 PBI 팩 어드레스를 기술한다.
제46도에 도시된 데이타 서치 정보(996)의 필드(1020)는 각도 어드레스 정보이다. 각도 어드레스 정보는 다른 각도의 어드레스 정보를 포함한다. 각도 어드레스 정보는 각각이 다른 각도 셀 번호에 관련한 9개의 필드를 포함한다. 각도 어드레스 정보(1020)의 각각의 필드에 있어서, 특별한 PBI 팩이 속하는 셀이 각도 블럭을 구성하는 경우에, 각도 어드레스 정보 내의 필드는 대응하는 데이타 서치 정보의 비디오 시작 프리젠테이션 타임-스탬프를 초과하지 않는 가장 가까운 비디오 시작 프리젠테이션 타임-스탬프를 갖는 각도 셀 번호에 대한 PBI 팩의 어드레스를 기술한다. 각도 셀이 존재하지 않는 경우 또는 각도 블럭이 구성되지 않는 경우, 특정 셀에 대한 각도 어드레스 정보는 0으로 설정된다.
데이타 서치 정보(996)의 제3 섹션은 하이라이트 정보(1022)이다. 하이라이트 정보는 메뉴 스크린 상의 선택 항목의 위치 및 선택될 때 변경될 그들의 컬러 및 콘트라스트를 기술한다. 이 정보는 셀이 메뉴의 일부일 때만 사용된다. 하이라이트 정보는 선택 항목 시작 번호 및 메뉴 스크린 상의 서브화상에 의해 표시되는 항목의 수를 기술하는 필드를 포함한다. 선택 항목 시작 번호의 특정 서브필드 및 항목의 수는 메뉴 스크린 상의 가장 적은 수의 선택 항목을 기술하는 서브필드, 메뉴의 다음 페이지가 존재하는지 여부를 기술하는 서브필드, 및 메뉴 스크린 상의 선택 항목의 수를 기술하는 서브필드를 포함한다. 하이라이트 정보의 제2 필드는 선택 항목의 위치, 컬러, 및 콘트라스트를 포함한다. 이 필드는 메뉴 스크린 상의 각각의 선택 항목에 대한 장방형 표시 영역 및 선택될 때, 변화될 대응하는 컬러 및 콘트라스트를 기술한다. 장방형 표시 영역은 X-Y 좌표 평면으로 정의된다. 선택 항목의 위치, 컬러, 및 콘트라스트를 기술하는 이 필드 내의 정보는 메뉴의 장방형 영역을 정의하는 것과, 픽셀의 다양한 형태가 선택될 때 어떻게 변화되는지를 기술하는 정보를 포함한다. 후에 좀 더 자세히 설명될 바와 같이, 서브화상은 4개의 다른 타입의 픽셀을 허용한다. 텍스트 또는 다른 정보를 표시하는데 사용될 수 있는 제1 및 제2 강조 픽셀, 라인 그리기 또는 다른 그래픽 패턴과 같은 패턴을 표시하는데 사용되는 패턴 픽셀, 및 배경 픽셀이 있다. 이들 4개의 다른 타입의 정보가 강조되거나 선택되면, 항목이 강조될 때 선택될 컬러와 또한 강조될 때 픽셀의 콘트라스트를 알 필요가 있다. 그러므로, 이들이 선택될 때 4개의 다른 타입의 픽셀의 컬러 및 콘트라스트를 기술하는 하이라이트 정보 내에 8개의 서브필드가 있다.
데이타 서치 정보(996) 내의 5번째 항목은 동기 재생 정보(1024)이다. 동기 재생 정보(1024)는 제48도에 상세히 도시되어 있다. 동기 재생 정보의 목적은 오디오의 시작 시간 및 어드레스 정보 및 비디오 데이타와 동기되는 서브화상을 찾는 것이다. 제48도에 도시된 동기 재생 정보(1024)는 오디오의 프리젠테이션 타임-스탬프의 타겟인 오디오 팩 어드레스를 포함한다. 이 필드의 최상위 비트는 오디오 팩이 이 PBI 전 또는 후에 배치되는지를 표시한다. 오디오(1028)의 프리젠테이션 타임-스탬프(PTS)는 재생 시작 시간이 비디오 시작 PTS로부터의 상대적 프리젠테이션 타임-스탬프를 갖는 I-화상의 재생 시간 직후인 오디오 패킷의 PTS를 기술한다. 오디오의 프리젠테이션 타임-스탬프는 8개까지의 오디오 스트립이 프리젠테이션 타임-스탬프를 저장하는 것을 허용한다. 부가적으로, 오디오 패킷이 GOP 중에 재생되는 오디오 프레임을 포함하는지 여부를 표시하는 서브필드가 있을 수 있다. 화상용 오디오가 없다면, 오디오의 프리젠테이션 타임-스탬프를 저장하거나 또는 디코드할 필요가 없다. 8개까지의 오디오 채널이 있기 때문에, 각각의 오디오 채널은 대응하는 어드레스 및 타임 스탬프 필드를 갖는다.
데이타 구조(1024)는 또한 PBI 팩에 관련하여 대상으로 하는 서브화상 팩의 어드레스를 기술하는 서브화상 팩 어드레스(1030)을 포함한다. 서브화상의 프리젠테이션 타임-스탬프는 대응하는 서브화상 정보의 동기화를 기술한다. GOP 재생 중에 재생될 서브화상 유닛이 존재하는지 여부를 표시하고, 서브화상의 재생 시작 시간이 비디오 프리젠테이션 타임-스탬프 전인지 여부를 표시하고, GOP 재생 중에 재생된 서브화상 유닛의 재생 시작 시간 및 GOP 재생 중에 재생되는 서브화상 유닛의재생 종료 시간을 표시하는 서브필드가 있다. 32개까지의 서브화상이 단일 데이타 스트림 내에 포함될 수 있으므로, 존재하는 각각의 서브화상은 대응하는 어드레스 및 타임-스탬프 필드를 갖는다.
데이타 서치 정보(996)의 제46도에 도시된 최종 섹션은 PBI 팩 어드레스 정보이다. PBI 팩 어드레스 정보는 파일 내에 다른 PBI 팩의 어드레스를 포함하고 다른 PBI 팩을 신속히 위치시켜 준다. PBI 팩 어드레스 정보는 상대적 논리 블럭 번호를 사용하여 주위의 PBI 팩의 어드레스를 기술한다. PBI 팩 어드레스 정보는 각각 다음과 이전의 PBI 팩 어드레스를 기술하는 2개의 필드를 포함한다. 현재의 PBI 팩 어드레스로부터의 상대적 논리 블럭 번호를 사용하여 누적된 재생 시간이 n ×0.5초와 (n + 1) ×0.5초 사이이고, 하나 이상의 PBI 팩이 이 범위 내에 속할 때, n ×0.5초(1 ≤n ≤15)에 가장 가까운 PBI 팩을 선택하는, GOP 바로 앞의 GOP에 속하는 PBI 팩의 어드레스를 정의하는 15개의 필드가 있다.
현재의 PBI 팩 어드레스로부터의 상대적 논리 블럭 번호를 사용하여, 누적된 재생 시간이 n ×0.5초와 (n + 1) ×0.5초 사이이고, 하나 이상의 PBI 팩이 이 범위 내에 속할 때, n ×0.5초(-15 ≤n ≤-1)에 가장 가까운 PBI 팩을 선택하는, GOP에 속하는 PBI 팩의 어드레스를 정의하는 15개의 필드가 있다.
현재의 PBI 팩 어드레스로부터의 상대적 논리 블럭 번호를 사용하여, 누적된 재생 시간이 n ×0.5초와 [n ×0.5 + 1]초 사이이고, 하나 이상의 PBI 팩이 이 범위 내에 속할 때, n ×0.5초(n = 20 또는 n = 60)에 가장 가까운 PBI를 선택하는, GOP 바로 앞의 GOP에 속하는 PBI 팩의 어드레스를 정의하는 2개의 필드가 있다.
현재의 PBI 팩 어드레스로부터의 상대적 논리 블럭 번호를 사용하여, 누적된 재생 시간이 n ×0.5초와 [n ×0.5 + 1]초 사이이고, 하나 이상의 PBI 팩이 이 범위 내에 속할 때, n ×0.5초(n = -20 또는 n = -60)에 가장 가까운 PBI 팩을 선택하는, GOP에 속하는 PBI 팩의 어드레스를 정의하는 2개의 필드가 있다.
비디오 팩(1040)의 구조는 제49도에 도시되어 있다. 비디오 팩을 제44A도 및 제44B도에 도시된 헤더(972A 또는 972B)에 따라 구성된 팩 헤더(972)를 포함한다. 비디오용 패킷 헤더(1046)은 비디오 데이타(1048)과 같이 ISO/IEC 13818-1에 따라 구성된다. 그러나 MPEG 비디오 신호로서 나타나는 비디오 데이타(1048)은 양호하게는 상술한 기술에 따라 인코딩된다.
화상의 MPEG 인코드된 그룹은 제50도에서 1050으로 도시된다. 비디오 스트림(1060)을 발생시키기 위해 이 GOP(1050)을 다수의 비디오 팩(1040)으로 나누는 방식은 제50도의 하부에 도시되어 있다. 화상의 그룹(1050)은 비디오 팩에 결합되도록 적절한 유닛으로 나누어진다. 최종 비디오 팩(1040G), 비디오 팩 j는 팩들의 각각에 사용되는 전체 2048 바이트를 차지하지 않으므로, 스터핑은 최종 비디오 팩 j를 2048 바이트와 동일하게 하는데 사용된다.
제51A도는 MPEG 오디오용 비디오 팩을 도시한다. 이 비디오 팩(1080)은 팩 헤더(972), MPEG 요건에 따라 구성된 패킷 헤더(1084) 및 인코드된 MPEG 오디오 데이타(1086)을 포함한다.
제51B도는 선형 PCM 오디오 또는 돌비 AC-3 오디오에 따라 구성된 오디오 팩(1090)을 도시한 것이다. 제51B도에 도시된 패킷에 있어서, 패킷 헤더(972)는 상술한 바와 같이 구성되고, 패킷 헤더(1094)는 스트림_id 필드가 선형 PCM 또는 AC-3에 대응하는 개인용 오디오 데이타 스트림을 표시하도록 설정되는 MPEG 요건에 따라 구성된다. 서브스트림 id(1096)는 오디오 데이타가 선형 PCM을 위한 것인지 또는 AC-3(또는 MPEG)를 위한 것인지를 표시한다. 오디오 프레임 포인터(1098)는 오디오 패킷 내의 오디오 프레임 헤더의 번호를 표시하는 다수의 프레임을 포함하고, 또한 포인터의 최종 바이트로부터의 상대적 바이트 번호를 사용하여 오디오 프레임의 제1 액세스 유닛의 헤드를 표시하는 제1 액세스 유닛 포인터를 포함한다. 선형 PCM 오디오를 오디오 프레임으로 나누는 것은 일반적이고, 각각의 프레임은 프레임 헤더 및 프레임 데이타를 포함한다. 오디오 프레임 포인터(1098)은 동일하게 돌비 AC-3에 사용될 수 있다. 오디오 데이타(1100)은 대응하는 오디오 인코딩 방법에 따라 구성된다.
제52도는 인코드된 오디오 스트림(1100)을 도시한 것이다. 이 오디오 스트림은 개별적인 팩(1122)을 포함하는 오디오 팩(1120)의 스트림으로 변환된다. 각각의 팩은 길이가 2048 바이트이고, 최종 오디오 팩 1122G, 오디오 팩 j는 그 길이를 2048 바이트로 하기 위해 스터핑 비트를 부가함으로써 조정된다.
본 발명의 신규한 특징은 서브화상의 사용과, 서브화상 팩과 오디오 및 비디오 정보를 인터리빙한다는 것이다. 서브화상 정보는 임의의 그래픽 정보의 표시를 가능하게 하고 MPEG 비디오 위에 서브화상 정보를 중첩하는 것을 가능하게 한다. 본 발명에 의해 사용된 서브화상 정보와 종래의 클로우즈드 캡션 서브타이틀 사이의 주요 차이는, 서브화상 정보가 비트 맵 그래픽인 반면, 클로우즈드 캡셔닝은 디코더 내에 저장된 문자 셋트 내의 문자를 표시하기 위해 문자 코드를 전송한다는 것이다. 따라서, 종래의 클로우즈드 캡셔닝은 디코더 내의 문자 셋트에 의해 제한된다. 그러나, 서브화상 정보가 비트 맵됨에 따라, 외국어 문자를 포함하는 문자의 임의의 형태는 각각의 언어마다 디코더 내에 문자 셋트를 저장할 필요없이 표시될 수 있다.
서브화상 정보의 각각의 표시 스크린을 서브화상 유닛이라고 한다. 제53도에 도시된 서브화상 유닛(1140)이 있다. 서브화상 유닛은 비트 맵된 픽셀 데이타의 하나의 스크린을 포함하고, 픽셀 데이타의 스크린은 다수의 비디오 프레임 전역에서 표시된다. 서브화상 유닛(1140)은 서브화상 유닛 헤더(1142)를 포함한다. 서브화상 유닛 헤더(1142)는 서브화상 유닛의 크기, 및 서브화상 유닛의 헤드로부터의 바이트의 수에 관련하여 표시 제어 시퀀스 테이블(1146)의 시작 어드레스를 기술하는 필드를 포함한다.
픽셀 데이타(1144)는 주행 길이 압축된 비트 맵 정보이다. 픽셀은 표시된 정보의 배경을 형성하는 배경 픽셀, 그래픽 라인 그리기를 포함하는 서브화상 내에 표시 패턴을 가능하게 하는 패턴 픽셀, 및 2개의 다른 속성을 갖는 그래픽 또는 문자를 표시 가능하게 하는 2개 타입의 강조 픽셀일 수 있다. 비트 맵된 정보는 종래의 그래픽 생성 기술을 사용하여 생성될 수 있다. 주행 길이 압축은 다음의 룰에 따라 수행된다. 1 내지 3개의 동일한 종류 픽셀이 연속되면, 첫번째 2개의 비트 내에 픽셀의 수와 다음 2개의 비트 내에 픽셀 데이타를 입력한다. 4개의 비트는 1 유닛으로 한다. 동일한 종류의 4개 내지 15개의 픽셀이 연속되면, 첫번째 2개의 비트내에 0을 지정하고 다음 4개의 비트 내에 픽셀의 번호와 다음 2개의 비트내에 픽셀 데이타를 입력한다. 8비트를 한 유닛으로 한다. 동일한 종류의 16개 내지 63개의 픽셀이 연속되면, 첫번째 4개의 비트 내에 0을 지정하고 다음 6개의 비트 내에 픽셀의 번호와 다음 2개의 비트 내에 픽셀 데이타를 입력한다. 12개의 비트를 한 유닛으로 한다. 동일한 종류의 64개 내지 255개의 픽셀이 연속되면, 첫번째 6개의 비트 내에 0을 지정하고 다음 8개의 비트 내에 픽셀의 번호와 다음 2개의 비트 내에 픽셀 데이타를 입력한다. 16개의 비트를 한 유닛으로 고려한다. 동일한 픽셀이 한 라인의 종단에 이르면, 첫번째 14개의 비트 내에 0을 지정하고 다음 2개의 비트 내에 픽셀 데이타를 기술한다. 16개의 비트를 한 유닛으로 고려한다. 한 라인 상의 픽셀에 대한 기술이 완료될 때 바이트 정렬이 이루어지지 않으면, 조정을 위한 4개의 비트의 더미 데이타를 삽입한다. 소정의 경우에 이미지 데이타를 표시하기 위해 다른 압축 메카니즘을 사용하는 것도 또한 가능하다. 예를 들어, JPEG 또는 GIFF 포맷을 사용하여 서브화상 이미지를 표현할 수 있다.
표시 제어 시퀀스 테이블(1146)은 다수의 표시 제어 시퀀스(1146A, 1146B, 1146C, 등)을 포함하는데, 이 시퀀스들은 제어 시퀀스가 발생하는 연대기 순서를 기술한다. 표시 제어 시퀀스 테이블은 서브화상 유닛 내의 정보가 어떻게 표시되는지에 관한 정보를 포함한다. 예를 들어, 단일 서브화상을 형성하는 워드는 하나씩 또는 시간에 따라 그룹으로 나타날 수 있고, 또는 그들의 컬러는 변화할 수 있으며, 이는 가라오께 정보를 표시하기 위해 서브화상을 사용할 때 유용하다.
각각의 표시 제어 시퀀스(DCSQ)는 픽셀 데이타를 변화시키는 명령이 서브화상 유닛이 표시되는 시간 주기에 걸쳐 실행가능해지도록 하게 준다. 표시 제어 시퀀스의 제1 필드는 표시 시작 시간이다. 이 필드는 서브화상 유닛 헤더를 갖는 서브화상 패킷 내에 기술되는 PTS로부터의 상대적 PTS를 갖는 DCQS 내에 포함된 표시 제어 명령의 실행 시작 시간을 기술한다. 기술된 실행 시작 시간 이후의 제1 비디오 프레임으로부터, 표시 제어는 DCSQ 표시 제어 시작 시간에 따라 시작된다. 각각의 DCSQ의 제2 필드는 후속하는 표시 제어 시퀀스의 어드레스이다. 이 필드는 제1 서브화상 유닛으로부터의 상대적 바이트 수를 갖는 후속하는 DCSQ의 시작 어드레스를 기술한다. 후속하는 DCSQ가 존재하지 않으면, 이 필드는 제1 서브화상 유닛으로부터의 상대적 바이트 수를 갖는 DCSQ의 시작 어드레스를 기술한다. 그 다음에, DCSQ는 하나 이상의 표시 제어 명령을 포함한다. 이들 명령에 의해 픽셀 데이타의 속성 및 표시가 제어 및 변화될 수 있다. 이 명령들은 서브화상의 온/오프 상태에 관계없이, 서브화상 유닛의 표시를 강제적으로 시작시키는 명령을 포함한다. 예를 들어, 사용자가 서브화상을 턴 오프하기 위한 메뉴를 사용한다면, 이 명령을 설정함으로써 사용자의 설정을 오버라이드(override)하는 것이 가능하다. 다른 명령은 갱신된 서브화상 유닛의 표시를 시작시킨다. 이 명령은 각각의 DCSQ에서 한번씩 나타나야 한다. 2개 타입의 강조 픽셀, 패턴 픽셀, 및 배경 픽셀을 포함하는 상술한 4개 타입의 픽셀의 컬러 및 콘트라스트를 설정하기 위한 명령이 있다. 장방형 영역 표시 및 서브화상을 구성하는 픽셀 데이타의 위치를 설정하는 명령이 존재한다. 이 명령은 상부 및 하부 X 및 Y 좌표의 설정을 가능하게 한다. 또한, 표시하는데 사용되는 픽셀 데이타의 헤드 어드레스를 설정하는데 사용되는 명령이 있다. 이 명령에의해 상부 및 하부 필드 모두의 헤드 어드레스가 입력될 수 있다. 확장된 필드에서, 유닛의 헤드로부터의 상대적 바이트 수를 갖는 상부 필드 및 하부 필드용의 픽셀 데이타의 각각의 헤드 어드레스가 사용된다. 제1 픽셀 데이타는 라인 상의 제1 픽셀을 표시한다. 이 명령은 적어도 제1 DCSQ, DCSQ0에서 사용되어야 한다.
픽셀 데이타의 컬러 및 콘트라스를 변화시키기 위한 명령이 DCSQ에서 나타날 수 있다. 이 명령은 데이타 서치 정보의 하이라이트 정보가 사용될 때는 사용될 수 없다 픽셀 데이타의 컬러 및 콘트라스트를 변화시키기 위한 명령은 표시 중에 픽셀 데이타의 컬러 및 콘트라스트를 제어하기 위한 픽셀 제어 데이타를 포함한다. 픽셀 제어 데이타 내에 기술된 제어의 내용은 특정된 시작 시간 후에 매 비디오 프레임마다 실행되고 새로운 픽셀 제어 데이타를 만나거나 또는 새로운 서브화상 유닛을 만나게 될때까지 계속된다. 픽셀 제어 데이타는 동일한 변화가 이루어지는 라인을 지정하기 위해 사용되는 라인 제어 정보를 포함한다. 또한, 픽셀 제어 정보는 변화가 이루어지는 라인 상의 위치를 지정하기 위해 사용될 수 있다. 라인 제어 명령에 의해 시작 라인 번호, 변화점의 수, 및 변화 종료 라인 번호의 변경이 가능해 진다. 픽셀 제어 정보는 변화 시작 픽셀 번호, 및 강조 픽셀(1 및 2), 패턴 픽셀, 및 배경 픽셀의 새로운 컬러 및 콘트라스트를 포함한다. 또한, 표시 제어 시퀀스의 종단을 표시하는 명령이 있다. 각각의 DCSQ는 이 명령으로 종료하여야 한다.
영화와 같은 비디오 프레임의 시간 주기에 걸쳐서, 사용될 수 있는 많은 다른 서브화상 유닛이 있다. 서브화상 유닛은 제54도에 도시한 바와 같이 서브화상 팩(1150)으로 나누어진다. 서브화상 팩은 상술한 바와 같은 팩 헤더(972), MPEG 시스템 요건에 따르는 패킷 헤더, 후속 데이타가 서브화상 데이타라는 것을 표시하는 서브스트림 ID 및 서브화상 데이타(1158) 자체를 포함한다.
서브화상 유닛(1140)과 같은 서브화상 유닛은 제55도에 도시한 바와 같이, 서브화상 팩(150)으로 나누어진다. 최종 서브화상 팩(1050G)은 이것을 2048 바이트 길이로 만들기 위한 패딩을 포함한다.
제56도는 연속하는 서브화상 유닛을 표시하는 방식을 도시한 것이다. 시간이 새로운 서브화상 팩에서 기술된 PTS의 시간과 동일하면, 현재 표시되는 서브화상(1160)은 클리어되고(1162), 다음 서브화상 유닛의 표시 제어 시퀀스에 의해 지정된 시간이 발생할 때, 그 서브화상이 표시된다(1164). (1160)과 (1162) 사이에 서브화상 유닛(n)과 서브화상 유닛(n + 1) 사이에 분할선이 있다. 이 분할선은 서브화상 유닛(n + 1)의 패킷 헤더에서 기술된 PTS에서 생긴다. 서브유닛(n + 1)에 대한 실제 표시 시간은 서브화상(n + 1)의 DCSQ에서 기술된다.
서브화상 정보를 위해 사용되는 픽셀 데이타의 생성은 표시되길 원하는 정보의 비트 맵을 생성하기 위해 컴퓨터를 사용하여 수행될 수 있다. 비트 맵된 정보를 생성하는 과정은 본 기술 분야에 공지되어 있다.
제40도 내지 제56도는 오디오, 비디오, 및 서브화상 정보를 인코드하는데 사용되는 데이타 구조를 강조한 것이다. 그러나, 제40도 내지 제56도의 데이타 구조의 개시에 의해, MPEG 인코딩 기술에, 특히 MPEG 시스템 기술 ISO/IEC 13818-1의 지원에 통상의 지식을 가진 자는 인코드된 오디오, 비디오, 및 서브화상을 데이타 구조 내로 포맷시킬 수 있다. 동일하게, 데이타가 저장되는 구조를 알면, 비디오,오디오, 및 서브화상 정보를 생성하기 위한 데이타 구조의 디코딩은 본 기술에 통상의 기술을 가진 자에 의해 수행될 수 있다.
본 발명의 일부를 구성하는 예시적인 비디오 디코더는 광 디스크 상에 저장된 데이타를 판독하는 광 디스크 판독기를 포함한다. 판독된 정보는 정보를 디코드하기 위해 종래의 파싱(parsing) 기술을 사용하여 해석(parse)된다. 비디오, 오디오, 서브화상, 및 PBI 팩은 모두 디코드되어야 한다. 비디오는 종래의 디코더를 사용하여 디코드되는 오디오 팩과 같이 상용가능한 MPEG 디코더를 사용하여 디코드될 수 있다. 서브화상 정보는 정보가 인코드되는 것과 반대 방식으로 서브화상 팩으로 서브화상 유닛을 구성함으로써 디코드된다. 특별히 구성된 하드웨어 또는 소프트웨어 코딩을 사용하여 프로그램된 범용 마이크로프로세서를 이용하여 서브화상 정보를 디코드할 수 있다. 제45도에 도시한 것과 같은 재생 정보 팩은 데이타 서치 정보(996)를 포함한다. 데이타 서치 정보는 프로그램된 마이크로프로세서를 사용하여 프로세스되고 오디오, 비디오, 및 서브화상 디코더와 다르다. 메뉴 기능이 또한 프로그램된 마이크로프로세서에 의해 수행되기 때문에, 데이타 서치 정보 내에 포함된 하이라이트 정보(1022) 및 모든 다른 메뉴 기능을 서브화상 디코더에 의해서가 아니라 프로그램된 마이크로프로세서에 의해 수행된다. 본 발명의 동작, 데이타 구조, 인코딩 및 디코딩 과정에 관한 부가 정보는 모두 본 명세서에 참고로 인용된 일본국 특허 출원 7-81298 및 7-85693에 기술되어 있다.
본 발명의 인코딩 시스템은 화상 내의 품질 제어를 가능하게 한다. 이 제어는 최종 비디오 제품을 생산하는 사람이 인코딩 시스템의 최종 제품을 세심하게 제어할 수 있기 때문에 중요하다. 그러므로, 디지탈 비디오 인코딩에 의해 아날로그 비디오에는 존재하지 않는 디코딩 아티팩트를 발생시키더라도, 최종 디지탈 제품은 꽤 만족스럽다. 상기 섹션들의 어느 하나의 기술은 다른 섹션들에 적용할 수 있다.
본 발명의 결정, 계산, 및 단계는 컴퓨터 기술에 통상의 지식을 가진 자에게 분명한 바와 같이, 본 발명의 교시에 따라 프로그램된 종래의 범용 디지탈 컴퓨터를 사용하여 용이하게 구현될 수 있다. 적절한 소프트웨어 코딩은 소프트웨어 기술에 통상의 지식을 가진 자에게 분명한 바와 같이, 본 발명의 교시에 기초하여 숙련된 프로그래머에 의해 용이하게 준비될 수 있다.
본 발명은 본 기술에 통상의 지식을 가진 자에게 분명한 바와 같이, 주문형 집적 회로의 제작 또는 종래의 구성 회로의 적절한 회로망을 상호 접속시킴으로써 구현될 수 있다.
본 발명은 본 발명의 공정을 수행하도록 컴퓨터를 프로그램하는데 사용될 수 있는 명령들을 포함하는 기억 매체인 컴퓨터 프로그램 제품을 포함한다. 기억 매체는 플로피 디스크, 광 디스크, CD-ROM, 및 광 자기 디스크를 포함하는 디스크의 임의의 형태, ROM, RAM, EPROM, EEPROM, 자기 또는 광 카드, 또는 전자 명령을 저장하는데 적합한 매체의 임의의 형태를 포함하나 이들에 제한되지 않는다. 본 발명은 전자 명령 또는 데이타를 저장하는데 적합한 상술한 매체 중의 어느 하나 상에 저장된 본 발명에 의해 출력된 인코드된 데이타를 포함하는 기억 매체인 컴퓨터 프로그램 제품을 더 포함한다.
분명히, 본 발명의 다양한 수정 또는 변화가 상기 교시에 비추어서 가능하다. 그러므로 첨부된 특허 청구의 범위 내에서, 본 발명이 본 명세서에 특정하게 설명된 이외의 것으로 실시될 수 있다는 것을 이해할 것이다.
제1A도는 인코더 시스템 구조의 블럭도.
제1B도는 인코딩될 오디오 및 비디오를 획득하기 위한 소자, 및 인코딩 시스템에 의해 생성된 인코딩된 시청각 데이타를 기록 및 송신하기 위한 소자를 도시한 도면.
제2도는 제1도의 시스템의 일반적인 동작을 도시한 플로우 챠트.
제3도는 셋업 단계에서 실행되는 프로세스를 도시한 플로우 챠트.
제4도는 압축 단계에서 실행되는 프로세스를 도시한 플로우 챠트.
제5도는 편집 단계에서 실행되는 프로세스를 도시한 플로우 챠트.
제6도는 시작, 완료 및 종료 단계에서 실행되는 프로세스를 도시한 플로우 챠트.
제7도는 멀티패스 비디오 인코더를 사용하여 소정 수의 오디오 트랙들을 인코딩하는데 필요한 오디오 인코더들의 수를 결정하는 방법, 및 오디오 및 멀티패스 비디오 인코딩을 동시에 실행하는 프로세스를 도시한 플로우 챠트.
제8A도 내지 제8D도는 시퀀스 레이어(Sequence Layer) 로그 파일 포맷(log file format)을 도시한 도면.
제9A도 내지 제9C도는 화상 레이어(Picture Layer) 로그 파일 포맷을 도시한 도면.
제10A도 및 제10B도는 매크로블럭 레이어(Macroblock Layer) 로그 파일 포맷의 전체 폼 및 짧은 폼(full and short forms)을 도시한 도면.
제11도는 로그 파일 내의 정보를 이용하는 프로세스를 도시한 플로우 챠트.
제12도는 상이한 시간 주기 동안 화질의 수동 조정 중에 실행된 일반적인 프로세스를 도시한 플로우 챠트.
제13도는 다수의 시간 주기에 걸쳐 화질을 변경시키는 파라미터들을 입력하는데 사용된 사용자 인터페이스를 도시한 도면.
제14도는 요구된 화질과 관련된 비트들의 수를 계산하기 위한 일반적인 절차를 도시한 플로우 챠트.
제15도는 최대 또는 최소 사용자 선택 우선 순위들을 갖는 섹션들을 프로세싱하는데 사용된 프로세스를 도시한 플로우 챠트.
제16A도 및 제16B도는 최대 또는 최소 우선 순위들이 아닌 요구된 화질에 대응하는 비트들의 수를 계산하기 위한 플로우 챠트.
제17도는 언더플로우(underflow)가 화질의 변경으로부터 야기되는지를 검사하는데 사용된 프로세스를 도시한 플로우 챠트.
제18도는 편집 세그먼트 내에서 이루어진 변경으로 인해 편집 세그먼트 후에 버퍼 언더플로우가 프레임들에서 발생할지를 판정하기 위한 플로우 챠트.
제19A도 및 제19B도는 인코딩된 비디오의 비트 전송 속도가 사용자 선택 화질에 의해 어떻게 변경되는지를 보여주는 2개의 상이한 예들을 도시한 도면.
제20도는 프레임 내의 상이한 영역에 대한 화질의 수동 조정 중에 실행된 일반적인 프로세스를 도시한 플로우 챠트.
제21도는 비디오 프레임 내에 사용자 선택 우선 순위들을 갖는 상이한 영역의 일례를 도시한 도면.
제22도는 선택된 우선 순위를 위해 사용된 소수의 원래의 양자화값들에 대한 사용자 선택 우선 순위들의 그래프.
제23도는 사용자 선택 우선 순위들로부터 야기된 비트들의 수와 프레임의 원래의 인코딩으로부터 야기된 비트들의 수의 차이가 만족스러운지 또는 보정 절차가 실행되어야만 하는지를 판정하는 프로세스를 도시한 플로우 챠트.
제24A도 내지 제24C도는 비트수가 지나치게 많아서 매크로블럭들의 양자화 레벨이 비트수를 감소시키기 위해 증가되어야 한다고 판정되는 경우 프레임을 보정하기 위한 프로세스를 도시한 플로우 챠트.
제25A도 내지 제25C도는 비트들의 수를 증가시키기 위해 프레임 내의 매크로블럭들의 양자화 레벨들을 감소시킴으로써 프레임 내의 적은 비트들을 보정하기 위한 프로세스를 도시한 플로우 챠트.
제26도는 n개의 매크로블럭들의 세트 각각에서 사용될 예상된 수의 비트들을 메모리로부터 로딩한 후에, n개의 매크로블럭들의 각각의 세트에 대해 재인코딩하고, 비트들의 최종 수를 계산하고, 비트들의 예상된 수와 생성된 수를 기초로 추정값(estimation)의 정확성을 계산하고, 다음 n개의 매크로블럭들의 미리 할당된 양자화 레벨들을 조정하여 일련의 프레임의 타겟 크기에 가깝게 유지하는 일반적인 프로세스를 도시한 플로우 챠트.
제27A도는 미리 할당된 양자화 레벨을 도시한 프레임도.
제27B도는 매크로블럭들의 각각의 집합이 1개의 슬라이스를 포함하는 경우 제1 집합의 매크로블럭들이 다시 인코딩된 후에, 제1 보정 팩터가 계산되고 제1 보정 팩터가 제2 집합의 매크로블럭들에 추가된 제27A도의 프레임도.
제27C도는 제2 집합의 매크로블럭들이 다시 인코딩된 후에, 제2 보정 팩터가 계산되고 제2 보정 팩터가 제3 집합의 매크로블럭들에 추가된 제27B도의 프레임도.
제27D도는 매크로블럭들의 각각의 집합이 2개의 슬라이스들을 포함하는 경우 제1 집합의 매크로블럭들이 다시 인코딩된 후에, 제1 보정 팩터가 계산되고 제1 보정 팩터가 제2 집합의 매크로블럭들에 추가된 제27A도의 프레임도.
제28A도는 양자화 레벨이 변경된 2개의 상이한 영역들을 포함하는 프레임.
제28B도는 양자화 레벨이 변경된 2개의 상이한 영역들을 나타내는 데에 사용된 비디오 스트림에서 비트들의 수의 변경을 도시한 제28A도의 프레임의 2개의 가능한 인코딩들의 도면.
제29도는 재인코딩된 시리즈의 전체 길이가 시리즈의 원래의 길이와 동일한 이미지 시리즈를 나타내는데 사용된 비트들의 수의 변경을 도시한 비디오 스트림.
제30도는 추정비를 사용하여 비율 룩업 테이블(ratio lookup table)로부터 보정 팩터 인덱스가 결정되는 방법을 도시한 플로우 챠트.
제31도는 보정 팩터 인덱스를 사용하여 보정 팩터가 보정 팩터 테이블로부터선택되는 방법을 도시한 플로우 챠트.
제32도는 추정비 및 재인코딩되지 않은 나머지 집합의 매크로블럭들의 수를 사용하여 보정 팩터가 계산되는 방법을 도시한 플로우 챠트.
제33A도는 인코딩된 포맷의 원래의 비디오 섹션을 도시한 도면.
제33B도는 최초로 인코딩된 비디오로 대체해야 할 인코딩되지 않은 포맷의 새로운 비디오의 섹션을 도시한 도면.
제33C도는 종단에서 원래의 비디오의 인코딩되지 않은 섹션과 함께 비디오의 인코딩되지 않은 새로운 섹션을 도시한 도면.
제33D도는 원래의 인코딩된 비디오로 대체해야 할 인코딩된 포맷의 제33C도의 비디오를 도시한 도면.
제33E도는 대체된 인코딩된 비디오를 갖는 원래의 인코딩된 비디오를 도시한 도면.
제34도는 디코딩 아티팩트(artifact)가 감소된 비디오를 생성하는 인코딩된 비디오 데이타 스트림으로 비디오의 섹션을 대체하는 프로세스를 도시한 플로우 챠트.
제35A도는 트레일링 종단에 있는 원래의 비디오의 인코딩되지 않은 섹션과 함께 비디오의 인코딩되지 않은 새로운 섹션을 도시한 도면.
제35B도는 제33A도에 도시된 원래의 인코딩된 비디오로 대체될 인코딩된 비디오의 섹션을 도시한 도면.
제35C도는 제35B도의 대체된 인코딩된 비디오를 포함하는 제33A도의 원래의인코딩된 비디오를 도시한 도면.
제36도는 폐 그룹의 화상 모드를 사용하여 대체 비디오를 인코딩함으로써 인코딩된 비디오 비트스트림을 편집할 때 디코딩 아티팩트들을 감소시키는 프로세스를 도시한 플로우 챠트.
제37A도는 프리 인코딩 단계(phase)에서 비트 전송 속도에 대한 양자화 레벨 모델을 생성하기 위해 할당된 2개의 양자화 레벨들을 갖는 미처리 비디오 프레임.
제37B도는 회전 패턴으로 할당된 4개의 양자화 레벨들을 갖는 프레임.
제37C도는 블럭 형성시 분배된 4개의 양자화 레벨들을 갖는 프레임.
제38도는 프리 인코딩 단계에서 규정된 각각의 양자화 레벨에 대한 비트 전송 속도를 결정하기 위해 비디오 신호들을 획득하여 프리 인코딩하는 프로세스를 도시한 플로우 챠트.
제39도는 2개의 기록된 프레임과, 그들에 관련된 양자화 레벨 대 비트 전송 속도를 도시한 도면.
제40도는 광 디스크 상에 최후로 포함된 인코딩된 데이타의 최종 포맷의 윤곽(outline)을 도시한 도면.
제41도는 제40도의 디스크 정보 파일(908)을 도시한 도면.
제42도는 제40도에 도시된 데이타 파일들의 데이타 파일 관리 정보 내용들을 도시한 도면.
제43도는 제40도의 데이타 파일에 기억된 데이타의 세부 사항을 도시한 도면.
제44A도는 데이타가 스터핑 패킷(stuffing packet)을 필요로 하지 않는 데이타 팩(pack)을 도시한 도면.
제44B도는 패딩(padding)을 위해 패킷을 필요로 하는 데이타 팩을 도시한 도면.
제45도는 재생 정보 팩을 도시한 도면.
제46도는 제45도의 데이타 탐색 정보(996) 내에 포함된 정보를 도시한 도면.
제47도는 제46도의 일반적인 정보를 도시한 도면.
제48도는 제46도에 도시된 동기 재생 정보를 도시한 도면.
제49도는 비디오 팩을 도시한 도면.
제50도는 GOP(Group of Pictures)와 일련의 비디오 팩 간의 관계를 도시한 도면.
제51A도는 MPEG 오디오 인코딩 규격(specification)에 따라 인코딩된 오디오 팩을 도시한 도면.
제51B도는 AC-3 또는 선형 PCM 오디오 인코딩에 따라 구성된 오디오 팩을 도시한 도면.
제52도는 인코딩된 오디오 스트림 및 오디오 팩들 간의 관계를 도시한 도면.
제53도는 서브화상 유닛의 구조를 도시한 도면.
제54도는 서브화상 팩의 구조를 도시한 도면.
제55도는 서브화상 팩과 관련된 서브화상 유닛의 구조를 도시한 도면.
제56도는 서브화상 유닛 n과 서브화상 유닛 n+1의 표시 사이의천이(transition)를 도시한 도면.
도면의 주요 부분에 대한 부호의 설명
10, 20, 30 및 40 : 워크스테이션 22 : 디지탈 기억 장치
31 : 콘솔 표시 모니터 32 : 키보드
50 : 비디오 인코딩 장치 51 : 재생 VTR
52 : 녹화 VTR
60 : 디지탈 비디오 캡쳐 및 기억 장치 61 : 비디오 표시 모니터
70a, 70b, 70c 및 70d : 오디오 인코더 72 : 오디오 인터페이스 유닛
73 : 오디오 디코더

Claims (25)

  1. 비디오 프레임의 특성을 판정하기 위해 비디오 프레임 내에 포함된 비디오 신호를 처리하는 방법에 있어서,
    a) 복수의 비디오 프레임 내에 포함된 비디오 신호를 획득하는 단계,
    b) 복수의 양자화 레벨을 상기 복수의 비디오 프레임 중 하나에 할당하는 단계,
    c) 상기 복수의 양자화 레벨을 사용하여 상기 복수의 비디오 프레임 중 상기 하나를 프리-인코딩하여 상기 복수의 양자화 레벨의 각각에 대응하는 다수의 비트 전송 속도를 구하는 단계,
    d) 상기 프리-인코딩 단계에서 생성된 상기 복수의 양자화 레벨의 각각에 대한 비트 전송 속도를 결정하는 단계,
    e) 복수의 연속하는 비디오 프레임에 대해 순차적으로 상기 단계 b) 내지 상기 단계 d)를 반복하는 단계, 및
    f) 상기 다수의 비디오 프레임의 각각에 대한 비트 전송 속도를 결정한 후에 다수의 상기 복수의 비디오 프레임을 인코딩하는 단계
    를 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.
  2. 제1항에 있어서, 상기 획득하는 단계는 비디오 카메라로부터 상기 비디오 신호를 얻는 단계를 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.
  3. 제1항에 있어서, 상기 복수의 결정된 비트 전송 속도를 저장하는 단계를 더 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.
  4. 제1항에 있어서, 상기 할당 단계는 상기 복수의 비디오 프레임 각각에 걸쳐 균일하게 상기 복수의 양자화 레벨을 할당하는 단계를 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.
  5. 제1항에 있어서, 상기 할당 단계는 체커보드 패턴으로 상기 복수의 비디오 프레임 각각에 걸쳐 균일하게 2개의 양자화 레벨을 할당하는 단계를 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.
  6. 제1항에 있어서, 상기 할당 단계는 각각의 행 j의 제1 양자화 레벨이 qj-1(mod 4)+ 1이도록 상기 복수의 비디오 프레임 각각에 걸쳐 균일하게 4개의 양자화 레벨 q1, q2, q3, q4를 할당하는 단계를 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.
  7. 제1항에 있어서,
    g) 상기 다수의 상기 복수 비디오 프레임에 대한 목표 비트수를 결정하는 단계, 및
    h) 상기 목표 비트수 및 복수의 결정된 비트 전송 속도를 사용하여 상기 다수의 상기 복수 비디오 프레임에 각 프레임마다의 제1 셋트의 양자화 레벨을 할당하는 단계
    를 더 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.
  8. 제7항에 있어서, 상기 인코딩 단계는
    i) 상기 다수의 상기 복수 비디오 프레임 중 하나의 비디오 프레임을 결과적으로 생성된 비트수를 갖는 인코드된 프레임으로 인코딩하는 단계,
    j) 연속하는 비디오 프레임에 대한 인코드된 비트수를 추정(estimating)하는 단계,
    k) 상기 목표 비트수, 상기 연속하는 비디오 프레임에 대한 비트 전송 속도, 상기 추정된 인코드된 비트수 및 상기 결과적으로 생성된 비트수에 기초하여 상기 연속하는 비디오 프레임에 대한 상기 제1 셋트의 양자화 레벨을 조정하는 단계, 및
    1) 복수의 연속하는 비디오 프레임에 대해 상기 단계 i) 내지 상기 단계 k)를 순차로 반복하는 단계
    를 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.
  9. 제7항에 있어서, 상기 목표 비트수를 결정하는 단계는 목표 비트수를 자동적으로 결정하는 단계를 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.
  10. 제7항에 있어서,상기 목표 비트수를 결정하는 단계는 사용자 개입을 통해 목표 비트수를 결정하는 단계를 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.
  11. 제7항에 있어서, 상기 할당 단계는 대응하는 비디오 프레임의 복수의 매크로블럭의 액티비티 측정에 기초하여 상기 제1 셋트의 양자화 레벨을 할당하는 단계를 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.
  12. 제1항에 있어서, 상기 단계 e)는 상기 복수의 비디오 프레임 내의 모든 비디오 프레임에 대해 반복하는 것을 특징으로 하는 비디오 신호 처리 방법.
  13. 비디오 프레임의 특성을 판정하기 위해 비디오 프레임 내에 포함된 비디오 신호를 처리하는 시스템에 있어서,
    복수의 비디오 프레임 내에 포함된 비디오 신호를 획득하는 수단,
    복수의 양자화 레벨을 제1 다수의 상기 복수의 비디오 신호 프레임에 할당하는 수단,
    상기 복수의 양자화 레벨의 각각에 대응하는 다수의 비트 전송 속도를 얻기 위해 상기 양자화 레벨을 사용하여 상기 제1 다수의 상기 복수의 비디오 프레임 중의 각각의 비디오 프레임을 프리-인코딩하는 수단,
    상기 프리-인코딩 수단에 의해 발생된 상기 제1 다수의 상기 복수 비디오 프레임 내의 각각의 비디오 프레임마다 상기 복수의 양자화 레벨의 각각에 대한 상기 복수의 비트 전송 속도를 결정하는 수단,
    상기 제1 다수의 상기 복수 프레임의 각 비디오 프레임에 대한 상기 복수의 비트 전송 속도를 결정한 후 제2 다수의 상기 복수 비디오 프레임을 인코딩하는 수단
    을 포함하는 것을 특징으로 하는 비디오 신호 처리 시스템.
  14. 제13항에 있어서, 상기 획득 수단은 비디오 카메라로부터 상기 비디오 신호를 얻는 수단을 포함하는 것을 특징으로 하는 비디오 신호 처리 시스템.
  15. 제13항에 있어서, 상기 결정된 비트 전송 속도를 저장하는 수단을 더 포함하는 것을 특징으로 하는 비디오 신호 처리 시스템.
  16. 제13항에 있어서, 상기 할당 수단은 상기 복수의 비디오 프레임 각각에 걸쳐 균일하게 상기 복수의 양자화 레벨을 할당하는 수단을 포함하는 것을 특징으로 하는 비디오 신호 처리 시스템.
  17. 제13항에 있어서, 상기 할당 수단은 체커보드 패턴으로 상기 복수의 비디오 프레임 각각에 걸쳐 균일하게 2개의 양자화 레벨을 할당하는 수단을 포함하는 것을특징으로 하는 비디오 신호 처리 시스템.
  18. 제13항에 있어서, 상기 할당 수단은 각각의 행 j의 제1 양자화 레벨이 qj-1(mod 4)+ 1이도록 상기 복수의 비디오 프레임 각각에 걸쳐 균일하게 4개의 양자화 레벨 q1, q2, q3, q4를 할당하는 수단을 포함하는 것을 특징으로 하는 비디오 신호 처리 시스템.
  19. 제13항에 있어서,
    상기 제2 다수의 상기 복수 비디오 프레임에 대한 목표 비트수를 결정하는 수단, 및
    상기 목표 비트수 및 상기 복수의 결정된 비트 전송 속도를 이용하여 상기 제2 다수의 상기 복수 비디오 프레임에 각 프레임미다의 제1 셋트의 양자화 레벨을 할당하는 수단을 더 포함하는 것을 특징으로 하는 비디오 신호 처리 시스템.
  20. 제19항에 있어서,
    상기 제2 다수의 상기 복수 비디오 프레임의 하나의 비디오 프레임을 결과적으로 생기는 비트수를 갖는 인코드된 비디오 프레임으로 인코딩하는 수단,
    후속하는 비디오 프레임에 대한 인코드된 비트수를 추정(estimating)하는 수단,
    상기 목표 비트수, 후속하는 비디오 프레임에 대한 상기 비트 전송 속도 및 추정된 인코드된 비트수, 및 상기 제2 다수의 프레임 중 상기 하나의 결과 비트수에 기초하여 상기 후속하는 비디오 프레임에 대한 상기 제1 셋트의 양자화 레벨을 조정하는 수단
    을 더 포함하는 것을 특징으로 하는 비디오 신호 처리 시스템.
  21. 제19항에 있어서, 상기 목표 비트수를 결정하는 수단은 목표 비트수를 자동적으로 결정하는 수단을 포함하는 것을 특징으로 하는 비디오 신호 처리 시스템.
  22. 제19항에 있어서, 상기 목표 비트수를 결정하는 수단은 사용자 개입을 통해 목표 비트수를 결정하는 수단을 포함하는 것을 특징으로 하는 비디오 신호 처리 시스템.
  23. 제19항에 있어서, 상기 할당 수단은 대응하는 비디오 프레임의 복수의 매크로블럭의 액티비티 측정에 기초하여 상기 제1 셋트의 양자화 레벨을 할당하는 수단을 더 포함하는 것을 특징으로 하는 비디오 신호 처리 시스템.
  24. 제13항에 있어서, 상기 할당 수단은 상기 복수의 비디오 프레임 중 대다수의 비디오 프레임에 복수의 양자화 레벨을 할당하는 수단을 포함하는 것을 특징으로 하는 비디오 신호 처리 시스템.
  25. 제13항에 있어서, 상기 할당 수단은 상기 복수의 비디오 프레임 내의 모든 비디오 프레임에 복수의 양자화 레벨을 할당하는 수단을 포함하는 것을 특징으로 하는 비디오 신호 처리 시스템.
KR1019960014976A 1995-05-08 1996-05-08 속도-양자화모델을사용하여인코딩하는비디오인코딩시스템및방법 KR100417783B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US43801495A 1995-05-08 1995-05-08
US8/438,014 1995-05-08
US08/438,014 1995-05-08
US47378395A 1995-06-06 1995-06-06
US8/473,783 1995-06-06
US08/473,783 1995-06-06
US8/522,495 1995-08-31
US08/522,495 1995-08-31
US08/522,495 US5612900A (en) 1995-05-08 1995-08-31 Video encoding method and system which encodes using a rate-quantizer model

Publications (2)

Publication Number Publication Date
KR960043549A KR960043549A (ko) 1996-12-23
KR100417783B1 true KR100417783B1 (ko) 2004-05-14

Family

ID=27411968

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960014976A KR100417783B1 (ko) 1995-05-08 1996-05-08 속도-양자화모델을사용하여인코딩하는비디오인코딩시스템및방법

Country Status (4)

Country Link
US (1) US5612900A (ko)
EP (1) EP0742674B1 (ko)
JP (1) JP3361009B2 (ko)
KR (1) KR100417783B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018097466A1 (ko) * 2016-11-24 2018-05-31 삼성전자 주식회사 영상 복잡도 정보를 이용한 화면 영역별 차등 대역폭 할당 방법 및 장치

Families Citing this family (130)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7448063B2 (en) * 1991-11-25 2008-11-04 Actv, Inc. Digital interactive system for providing full interactivity with live programming events
US20010013123A1 (en) * 1991-11-25 2001-08-09 Freeman Michael J. Customized program creation by splicing server based video, audio, or graphical segments
US20040261127A1 (en) * 1991-11-25 2004-12-23 Actv, Inc. Digital interactive system for providing full interactivity with programming events
US20020129374A1 (en) * 1991-11-25 2002-09-12 Michael J. Freeman Compressed digital-data seamless video switching system
US6026232A (en) * 1995-07-13 2000-02-15 Kabushiki Kaisha Toshiba Method and system to replace sections of an encoded video bitstream
US5838874A (en) * 1995-05-08 1998-11-17 Kabushiki Kaisha Toshiba Audiovisual encoding system with a reduced number of audio encoders
US5623424A (en) * 1995-05-08 1997-04-22 Kabushiki Kaisha Toshiba Rate-controlled digital video editing method and system which controls bit allocation of a video encoder by varying quantization levels
US5819004A (en) * 1995-05-08 1998-10-06 Kabushiki Kaisha Toshiba Method and system for a user to manually alter the quality of previously encoded video frames
US5684714A (en) * 1995-05-08 1997-11-04 Kabushiki Kaisha Toshiba Method and system for a user to manually alter the quality of a previously encoded video sequence
FI98175C (fi) * 1995-06-12 1997-04-25 Nokia Oy Ab Multimediaobjektien välitys digitaalisessa tiedonsiirtojärjestelmässä
US5778192A (en) * 1995-10-26 1998-07-07 Motorola, Inc. Method and device for optimal bit allocation between different sources of information in digital video compression
US6075768A (en) * 1995-11-09 2000-06-13 At&T Corporation Fair bandwidth sharing for video traffic sources using distributed feedback control
US6041345A (en) * 1996-03-08 2000-03-21 Microsoft Corporation Active stream format for holding multiple media streams
US5845249A (en) * 1996-05-03 1998-12-01 Lsi Logic Corporation Microarchitecture of audio core for an MPEG-2 and AC-3 decoder
US5838678A (en) * 1996-07-24 1998-11-17 Davis; Joseph W. Method and device for preprocessing streams of encoded data to facilitate decoding streams back-to back
US6023713A (en) * 1996-09-06 2000-02-08 Intel Corporation Optimized CD/DVD authoring employing block reallocation
US6094455A (en) * 1996-09-25 2000-07-25 Matsushita Electric Industrial Co., Ltd. Image compression/encoding apparatus and system with quantization width control based on bit generation error
US7269219B1 (en) 1997-02-14 2007-09-11 At&T Corp. Non-linear quantizer for video coding
JP3588970B2 (ja) 1997-04-30 2004-11-17 ソニー株式会社 信号符号化方法、信号符号化装置、信号記録媒体及び信号伝送方法
JP3356004B2 (ja) 1997-05-30 2002-12-09 日本ビクター株式会社 可変レート符号化装置及び方法
JP3201311B2 (ja) * 1997-06-17 2001-08-20 日本ビクター株式会社 Dvdオーディオディスク及び再生装置
US6064771A (en) 1997-06-23 2000-05-16 Real-Time Geometry Corp. System and method for asynchronous, adaptive moving picture compression, and decompression
JPH1127227A (ja) * 1997-06-27 1999-01-29 Toshiba Corp 多チャンネルデジタルデータ送出装置および方法
CN1161989C (zh) 1997-07-25 2004-08-11 索尼公司 编辑装置、编辑方法、接续装置、接续方法、编码装置和编码方法
EP0899961A1 (en) * 1997-08-25 1999-03-03 Tektronix, Inc. Pipelined processing for moving picture compression bit rate control
IL122361A0 (en) * 1997-11-29 1998-04-05 Algotec Systems Ltd Image compression method
EP1051853B1 (en) * 1998-01-26 2003-06-18 STMicroelectronics Asia Pacific Pte Ltd. One-pass variable bit rate moving pictures encoding
GB2335815B (en) 1998-03-25 2002-02-27 Sony Uk Ltd Data compression
JPH11289515A (ja) * 1998-04-01 1999-10-19 Sony Corp 画像信号処理装置及び方法、画像信号記録装置及び方法並びに記録媒体
US7031348B1 (en) * 1998-04-04 2006-04-18 Optibase, Ltd. Apparatus and method of splicing digital video streams
US6292512B1 (en) * 1998-07-06 2001-09-18 U.S. Philips Corporation Scalable video coding system
JP4051776B2 (ja) * 1998-08-04 2008-02-27 株式会社日立製作所 映像情報記録装置、及び映像情報再生装置
WO2000046995A1 (en) * 1999-02-05 2000-08-10 Sony Corporation Encoding system, encoding method, decoding system, decoding method, multiplexing device, multiplexing method, display system and display method
KR100416457B1 (ko) * 1999-02-25 2004-01-31 메크로비젼 코오포레이션 워터마크들 및 연관 데이터로 향상된 오디오/비디오서비스들을 위한 방법 및 장치
JP2000261459A (ja) * 1999-03-10 2000-09-22 Nec Corp 統計多重伝送方式
US6493023B1 (en) 1999-03-12 2002-12-10 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Method and apparatus for evaluating the visual quality of processed digital video sequences
TW477152B (en) 1999-03-26 2002-02-21 Koninkl Philips Electronics Nv Method of and device for encoding an information stream
US6437830B1 (en) * 1999-05-28 2002-08-20 Thomson Licensing S.A. System and data format for communicating data between a video decoder and a peripheral device
US6535251B1 (en) 1999-10-26 2003-03-18 Sharplabs Of America, Inc. Video encoder and method for adjusting quantization step in real time
GB2356508B (en) * 1999-11-16 2004-03-17 Sony Uk Ltd Data processor and data processing method
ES2225281T3 (es) * 1999-12-03 2005-03-16 Thomson Licensing S.A. Sistema adaptable para procesamiento de informacion para imagenes de video.
EP1198132A4 (en) 2000-04-21 2010-07-28 Sony Corp CODING DEVICE AND METHOD, RECORDING MEDIUM AND PROGRAM
JP4465570B2 (ja) * 2000-09-26 2010-05-19 ソニー株式会社 画像処理装置および方法、並びに記録媒体
US7224837B2 (en) * 2000-10-11 2007-05-29 Screenpeaks Ltd. Digital video broadcasting
US6693648B1 (en) 2000-11-22 2004-02-17 Campus Crusade For Christ, Inc. Pointer interactive apparatus
US20020122482A1 (en) * 2001-01-03 2002-09-05 Kim Hyun Mun Method of performing video encoding rate control using bit budget
US20020194589A1 (en) * 2001-05-08 2002-12-19 Cristofalo Michael Technique for optimizing the delivery of advertisements and other programming segments by making bandwidth tradeoffs
US20030058707A1 (en) * 2001-09-12 2003-03-27 Dilger Bruce C. System and process for implementing commercial breaks in programming
US6707984B2 (en) * 2001-10-31 2004-03-16 Thomson Licensing S.A. Changing a playback speed for video presentation recorded in a modified film format
AU2003213149A1 (en) * 2002-02-21 2003-09-09 The Regents Of The University Of California Scalable compression of audio and other signals
US20040190607A1 (en) * 2002-04-03 2004-09-30 Koji Wakimoto Video relay device, video distribution system, video relay method
US7075899B2 (en) * 2002-05-21 2006-07-11 Actv, Inc. System and method for providing private in-band data to digital set-top boxes in a broadcast environment
KR101044213B1 (ko) * 2002-11-18 2011-06-29 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 비디오 전송 방법
US6951541B2 (en) * 2002-12-20 2005-10-04 Koninklijke Philips Electronics, N.V. Medical imaging device with digital audio capture capability
US7352809B2 (en) * 2003-02-21 2008-04-01 Polycom, Inc. System and method for optimal transmission of a multitude of video pictures to one or more destinations
US11106425B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US11294618B2 (en) 2003-07-28 2022-04-05 Sonos, Inc. Media player system
US9207905B2 (en) 2003-07-28 2015-12-08 Sonos, Inc. Method and apparatus for providing synchrony group status information
US8234395B2 (en) 2003-07-28 2012-07-31 Sonos, Inc. System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
US11650784B2 (en) 2003-07-28 2023-05-16 Sonos, Inc. Adjusting volume levels
US8086752B2 (en) 2006-11-22 2011-12-27 Sonos, Inc. Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices that independently source digital data
US11106424B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US8290603B1 (en) 2004-06-05 2012-10-16 Sonos, Inc. User interfaces for controlling and manipulating groupings in a multi-zone media system
US7408984B2 (en) * 2003-09-17 2008-08-05 International Business Machines Corporation Method and system for multiple pass video coding
US7480382B2 (en) 2003-09-30 2009-01-20 Microsoft Corporation Image file container
US7535959B2 (en) * 2003-10-16 2009-05-19 Nvidia Corporation Apparatus, system, and method for video encoder rate control
US7746927B1 (en) * 2004-03-26 2010-06-29 Apple Inc. Robust single-pass variable bit rate encoding
US9977561B2 (en) 2004-04-01 2018-05-22 Sonos, Inc. Systems, methods, apparatus, and articles of manufacture to provide guest access
JP2005322977A (ja) * 2004-05-06 2005-11-17 Canon Inc カメラ一体型記録再生装置
US8024055B1 (en) 2004-05-15 2011-09-20 Sonos, Inc. Method and system for controlling amplifiers
US8326951B1 (en) 2004-06-05 2012-12-04 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
US8868698B2 (en) 2004-06-05 2014-10-21 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
GB0428155D0 (en) 2004-12-22 2005-01-26 British Telecomm Buffer underflow prevention
US7656952B2 (en) * 2005-04-14 2010-02-02 Samsung Electronics Co., Ltd. Extended method of noise-adaptive motion detection
US9467659B2 (en) 2005-09-27 2016-10-11 Qualcomm Incorporated Method and apparatus for progressive channel switching
FR2893470B1 (fr) * 2005-11-16 2008-02-15 Canon Res Ct France Soc Par Ac Procede et dispositif de creation d'une sequence video representative d'une sequence video numerique et procedes et dispositifs de transmission et reception de donnees video associes
CN101346997B (zh) 2005-12-28 2015-01-14 英特尔公司 用户敏感信息适应性视频代码转换的方法、系统和设备
WO2007085950A2 (en) 2006-01-27 2007-08-02 Imax Corporation Methods and systems for digitally re-mastering of 2d and 3d motion pictures for exhibition with enhanced visual quality
US8782436B2 (en) * 2006-05-31 2014-07-15 International Business Machines Corporation Method and system for transformation of logical data objects for storage
EP2160037A3 (en) 2006-06-23 2010-11-17 Imax Corporation Methods and systems for converting 2D motion pictures for stereoscopic 3D exhibition
KR100772194B1 (ko) * 2006-07-26 2007-11-01 한국전자통신연구원 피사체의 움직임 여부에 기초하여 영상의 선택적 출력이가능한 네트워크 기반 지능형 이동 로봇 및 그 방법
US8788080B1 (en) 2006-09-12 2014-07-22 Sonos, Inc. Multi-channel pairing in a media system
US8483853B1 (en) 2006-09-12 2013-07-09 Sonos, Inc. Controlling and manipulating groupings in a multi-zone media system
US9202509B2 (en) 2006-09-12 2015-12-01 Sonos, Inc. Controlling and grouping in a multi-zone media system
KR20090110323A (ko) * 2007-01-04 2009-10-21 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 비디오 신호를 인코딩하는 방법 및 시스템
JP4957960B2 (ja) * 2007-01-29 2012-06-20 ソニー株式会社 画像処理装置、画像処理方法、及びプログラム
JP4569840B2 (ja) * 2007-09-12 2010-10-27 ソニー株式会社 画像符号化装置、画像符号化方法
EP2101503A1 (en) * 2008-03-11 2009-09-16 British Telecommunications Public Limited Company Video coding
JP4539755B2 (ja) * 2008-04-11 2010-09-08 ソニー株式会社 情報処理システム及び情報処理方法、並びにプログラム
JP5064305B2 (ja) * 2008-06-05 2012-10-31 株式会社日立製作所 ビットレート変換装置及び変換方法
RU2471306C2 (ru) * 2008-06-27 2012-12-27 Сони Корпорейшн Устройство обработки изображений и способ обработки изображений
CN101779467B (zh) * 2008-06-27 2012-06-27 索尼公司 图像处理装置和图像处理方法
BRPI0904325A2 (pt) * 2008-06-27 2015-06-30 Sony Corp Dispositivo e método de processamento de imagem.
US8270744B2 (en) * 2008-06-27 2012-09-18 Sony Corporation Image processing apparatus and image processing method
EP2200319A1 (en) 2008-12-10 2010-06-23 BRITISH TELECOMMUNICATIONS public limited company Multiplexed video streaming
EP2219342A1 (en) 2009-02-12 2010-08-18 BRITISH TELECOMMUNICATIONS public limited company Bandwidth allocation control in multiple video streaming
US8483286B2 (en) 2010-10-27 2013-07-09 Cyberlink Corp. Batch processing of media content
EP2472868A1 (en) * 2010-12-29 2012-07-04 British Telecommunications Public Limited Company Video coding
US11265652B2 (en) 2011-01-25 2022-03-01 Sonos, Inc. Playback device pairing
US11429343B2 (en) 2011-01-25 2022-08-30 Sonos, Inc. Stereo playback configuration and control
US8938312B2 (en) 2011-04-18 2015-01-20 Sonos, Inc. Smart line-in processing
US8549167B2 (en) * 2011-06-21 2013-10-01 Net Power And Light, Inc. Just-in-time transcoding of application content
US9042556B2 (en) 2011-07-19 2015-05-26 Sonos, Inc Shaping sound responsive to speaker orientation
US9635374B2 (en) * 2011-08-01 2017-04-25 Apple Inc. Systems and methods for coding video data using switchable encoders and decoders
US9892188B2 (en) 2011-11-08 2018-02-13 Microsoft Technology Licensing, Llc Category-prefixed data batching of coded media data in multiple categories
KR101854469B1 (ko) * 2011-11-30 2018-05-04 삼성전자주식회사 오디오 컨텐츠의 비트레이트 판단장치 및 방법
US20140355668A1 (en) * 2012-01-23 2014-12-04 I.C.V.T. Ltd. Method and System for Controlling Video Frame Encoding
JP5979406B2 (ja) * 2012-02-22 2016-08-24 ソニー株式会社 画像処理装置、画像処理方法、および画像処理システム
US9729115B2 (en) 2012-04-27 2017-08-08 Sonos, Inc. Intelligently increasing the sound level of player
US9008330B2 (en) 2012-09-28 2015-04-14 Sonos, Inc. Crossover frequency adjustments for audio speakers
US9854260B2 (en) * 2013-03-06 2017-12-26 Disney Enterprises, Inc. Key frame aligned transcoding using key frame list file
US9253484B2 (en) * 2013-03-06 2016-02-02 Disney Enterprises, Inc. Key frame aligned transcoding using statistics file
US9244516B2 (en) 2013-09-30 2016-01-26 Sonos, Inc. Media playback system using standby mode in a mesh network
US9226087B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US9226073B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US9286653B2 (en) * 2014-08-06 2016-03-15 Google Inc. System and method for increasing the bit depth of images
ES2916254T3 (es) * 2014-10-10 2022-06-29 Dolby Laboratories Licensing Corp Sonoridad de programa basada en la presentación, independiente de la transmisión
KR101844732B1 (ko) * 2015-03-20 2018-04-02 돌비 레버러토리즈 라이쎈싱 코오포레이션 신호 재정형 근사화
US10404986B2 (en) * 2015-03-30 2019-09-03 Netflix, Inc. Techniques for optimizing bitrates and resolutions during encoding
PL3284255T3 (pl) * 2015-04-13 2023-10-30 V-Nova International Limited Kodowanie wielu sygnałów z docelową szybkością transmisji danych sygnału w zależności od informacji o złożoności
US10248376B2 (en) 2015-06-11 2019-04-02 Sonos, Inc. Multiple groupings in a playback system
EP3185564A1 (en) * 2015-12-22 2017-06-28 Harmonic Inc. Video stream splicing of groups of pictures (gop)
US10303422B1 (en) 2016-01-05 2019-05-28 Sonos, Inc. Multiple-device setup
GB2547947A (en) * 2016-03-04 2017-09-06 British Broadcasting Corp Video encoding
GB2554680B (en) * 2016-10-03 2020-04-01 Advanced Risc Mach Ltd Selecting encoding options
US10712997B2 (en) 2016-10-17 2020-07-14 Sonos, Inc. Room association based on name
GB2567835B (en) 2017-10-25 2020-11-18 Advanced Risc Mach Ltd Selecting encoding options
US11315606B1 (en) 2019-09-25 2022-04-26 Amazon Technologies, Inc. Timecode generation and assignment
WO2021164004A1 (en) * 2020-02-21 2021-08-26 Qualcomm Incorporated Reduced display processing unit transfer time to compensate for delayed graphics processing unit render time
CN112887714B (zh) * 2021-01-14 2022-08-02 红河学院 一种视频编码比特资源重分配方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0186063B1 (ko) * 1993-09-16 1999-04-15 사또오 후미오 디스크 상에 기록되거나 디스크로 부터 재생 가능한 압축 비디오 신호 처리 장치

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1197005A (en) * 1981-09-29 1985-11-19 Norio Suzuki System comprising a preliminary processing device controlled in accordance with an amount of information stored in a buffer
DE3710119A1 (de) * 1987-03-27 1988-10-13 Philips Patentverwaltung Quellcodierer fuer videobilder
JPH0720228B2 (ja) * 1987-04-30 1995-03-06 日本電気株式会社 画像の圧縮記録システム
US5016113A (en) * 1988-04-04 1991-05-14 Pioneer Electronic Corporation Apparatus for reproducing and processing picture information including graphic codes from a recording medium
JPH0797753B2 (ja) * 1989-01-24 1995-10-18 日本ビクター株式会社 符号化出力データ量の制御方式
JPH0316489A (ja) * 1989-06-14 1991-01-24 Hitachi Ltd 画像符号化方式
US5146324A (en) * 1990-07-31 1992-09-08 Ampex Corporation Data compression using a feedforward quantization estimator
EP0475251B1 (en) * 1990-09-10 1997-03-26 Mitsubishi Denki Kabushiki Kaisha Coding apparatus for digital image data
JP2549013B2 (ja) * 1990-10-08 1996-10-30 日本ビクター株式会社 データ圧縮装置
EP0763925B1 (en) * 1990-12-28 2000-03-15 Canon Kabushiki Kaisha Image encoding optimising the amount of generated code
JP3012698B2 (ja) * 1991-01-29 2000-02-28 オリンパス光学工業株式会社 画像データの符号化装置および符号化方法
DE69222332T2 (de) * 1991-02-21 1998-01-29 Nippon Electric Co Kodierungsgerät zur Kompression von bewegten Bilddaten
JP3189861B2 (ja) * 1992-11-13 2001-07-16 ソニー株式会社 動画像符号化装置および方法
US5231484A (en) * 1991-11-08 1993-07-27 International Business Machines Corporation Motion video compression system with adaptive bit allocation and quantization
JP2797159B2 (ja) * 1992-03-02 1998-09-17 カシオ計算機株式会社 画像データ圧縮装置及び画像データ圧縮方法
US5283646A (en) * 1992-04-09 1994-02-01 Picturetel Corporation Quantizer control method and apparatus
US5291281A (en) * 1992-06-18 1994-03-01 General Instrument Corporation Adaptive coding level control for video compression systems
JP3465272B2 (ja) * 1992-08-28 2003-11-10 ソニー株式会社 デジタルデータ記録装置および記録方法
US5467134A (en) * 1992-12-22 1995-11-14 Microsoft Corporation Method and system for compressing video data
BR9404929A (pt) * 1993-04-09 1999-07-27 Sony Corp Processo e aparelho para codificação de imagens e suporte de gravação de imagens
JPH06326435A (ja) * 1993-05-11 1994-11-25 Noritake Co Ltd 半導体装置搭載基板
GB2278973B (en) * 1993-06-11 1997-10-29 Quantel Ltd Video image processing systems
JPH0781298A (ja) * 1993-07-19 1995-03-28 Dainippon Printing Co Ltd 塩化ビニル系樹脂基材用転写箔
JPH0785693A (ja) * 1993-09-20 1995-03-31 Fujitsu Ltd 半導体記憶装置
EP0677842B2 (en) * 1993-10-29 2001-01-10 Kabushiki Kaisha Toshiba Multi-scene recording medium, reproduction method and reproduction apparatus
US5400077A (en) * 1993-10-29 1995-03-21 Time Warner Entertainment Co., L.P. System for generating multiple aspect ratio video signals from motion picture disk recorded in a single aspect ratio
US5463565A (en) * 1993-10-29 1995-10-31 Time Warner Entertainment Co., L.P. Data block format for software carrier and player therefor
US5511003A (en) * 1993-11-24 1996-04-23 Intel Corporation Encoding and decoding video signals using spatial filtering
US5493513A (en) * 1993-11-24 1996-02-20 Intel Corporation Process, apparatus and system for encoding video signals using motion estimation
JP3265818B2 (ja) * 1994-04-14 2002-03-18 松下電器産業株式会社 動画符号化方法
DE4433819A1 (de) * 1994-09-22 1996-03-28 Philips Patentverwaltung Coder zur segmentweisen Codierung eines Eingangssignales
US5819004A (en) * 1995-05-08 1998-10-06 Kabushiki Kaisha Toshiba Method and system for a user to manually alter the quality of previously encoded video frames
US5838874A (en) * 1995-05-08 1998-11-17 Kabushiki Kaisha Toshiba Audiovisual encoding system with a reduced number of audio encoders
US5684714A (en) * 1995-05-08 1997-11-04 Kabushiki Kaisha Toshiba Method and system for a user to manually alter the quality of a previously encoded video sequence
US5623424A (en) * 1995-05-08 1997-04-22 Kabushiki Kaisha Toshiba Rate-controlled digital video editing method and system which controls bit allocation of a video encoder by varying quantization levels
US6026232A (en) * 1995-07-13 2000-02-15 Kabushiki Kaisha Toshiba Method and system to replace sections of an encoded video bitstream

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0186063B1 (ko) * 1993-09-16 1999-04-15 사또오 후미오 디스크 상에 기록되거나 디스크로 부터 재생 가능한 압축 비디오 신호 처리 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018097466A1 (ko) * 2016-11-24 2018-05-31 삼성전자 주식회사 영상 복잡도 정보를 이용한 화면 영역별 차등 대역폭 할당 방법 및 장치
US11017517B2 (en) 2016-11-24 2021-05-25 Samsung Electronics Co., Ltd. Method and apparatus for allocating differential bandwidth for each screen region by using image complexity information

Also Published As

Publication number Publication date
EP0742674B1 (en) 2014-04-09
KR960043549A (ko) 1996-12-23
EP0742674A2 (en) 1996-11-13
US5612900A (en) 1997-03-18
JP3361009B2 (ja) 2003-01-07
EP0742674A3 (en) 1998-09-16
JPH09121348A (ja) 1997-05-06

Similar Documents

Publication Publication Date Title
KR100417783B1 (ko) 속도-양자화모델을사용하여인코딩하는비디오인코딩시스템및방법
US5684714A (en) Method and system for a user to manually alter the quality of a previously encoded video sequence
US5819004A (en) Method and system for a user to manually alter the quality of previously encoded video frames
US6026232A (en) Method and system to replace sections of an encoded video bitstream
US5623424A (en) Rate-controlled digital video editing method and system which controls bit allocation of a video encoder by varying quantization levels
EP0804854B1 (en) Audiovisual encoding system with a reduced number of audio encoders
AU735683B2 (en) Method and system to replace sections of an encoded video bitstream
JP3445278B6 (ja) エンコードされたビデオビットストリームのセクションを交換するための方法及びシステム
AU2812499A (en) A system for manually altering the quality of a previously encoded video sequence

Legal Events

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

Payment date: 20140103

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20141230

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20151223

Year of fee payment: 13

EXPY Expiration of term