KR100287656B1 - 부호화된비디오비트스트림의섹션들을대체하기위한방법및시스템_ - Google Patents

부호화된비디오비트스트림의섹션들을대체하기위한방법및시스템_ Download PDF

Info

Publication number
KR100287656B1
KR100287656B1 KR1019970703404A KR19970703404A KR100287656B1 KR 100287656 B1 KR100287656 B1 KR 100287656B1 KR 1019970703404 A KR1019970703404 A KR 1019970703404A KR 19970703404 A KR19970703404 A KR 19970703404A KR 100287656 B1 KR100287656 B1 KR 100287656B1
Authority
KR
South Korea
Prior art keywords
video
data
information
encoded
encoding
Prior art date
Application number
KR1019970703404A
Other languages
English (en)
Inventor
제이 요게시와
쇼-바오 엔지
데이이찌 이찌가와
히로아끼 우노
히데끼 미무라
데쯔야 기따무라
크리스토퍼 제이. 쿡선
그레그 비. 타가드
앤드류 드루신 로젠
Original Assignee
니시무로 타이죠
가부시끼가이샤 도시바
닐스 빅터 몬탄
타임 워너 엔터테인먼트 컴파니,엘.피.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 니시무로 타이죠, 가부시끼가이샤 도시바, 닐스 빅터 몬탄, 타임 워너 엔터테인먼트 컴파니,엘.피. filed Critical 니시무로 타이죠
Application granted granted Critical
Publication of KR100287656B1 publication Critical patent/KR100287656B1/ko

Links

Images

Classifications

    • 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
    • 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 
    • 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/2545CDs
    • 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
    • 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/036Insert-editing

Landscapes

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

Abstract

사전 부호화된 디지털 비트스트림의 섹션(도33A)이 부호화된 비디오의 다른 섹션(도33D)에 의해 대체되는 방법 및 시스템(도34 및 1A)이 제공된다. 부호화된 비디오 섹션을 제거하기 위해, 디지털로 부호화된 비트스트림(도33A) 내에서 상기 부호화된 비디오의 시점과 끝점을 결정하는 것이 필요하다. 부호화된 데이타의 시점과 끝점의 어드레스는 각각의 화상에 의해 소비되는 비트들, 각각의 화상의 시퀀스 헤더의 비트 수, 각각의 화상 군(GOP) 헤더의 비트 수, 모든 스터프(stuff) 비트들을 합산함으로써 계산된다. 제거되는 비디오 대신에 삽입되는 비디오를 부호화하기 위해, 복호화 아티팩트(artifact)가 나타나는 것을 방지하는 프로세스가 수행된다(도34). 이것은 편집 포인트 전의 마지막 P-픽쳐를 결정하고 이것을 편집 포인트 후의 프레임들에 대한 참조 프레임으로 사용함으로써 이루어진다(786). 또한, 원시 양자화 값들을 사용하여 부호화된 짧은 주기의 원시 비디오가 대체될 비디오의 끝에 포함된다.(784)

Description

[발명의 명칭]
부호화된 비디오 비트스트림의 섹션들을 대체하기 위한 방법 및 시스템
[관련 출원의 상호 참조]
본 출원은 1995년 5월 8일 출원된 ";부호화된 비디오 비트스트림의 섹션들을 대체하기 위한 방법 및 시스템(METHOD AND SYSTEM TO REPLACE SECTIONS OF AN ENCODED VIDEO BITSTREAM )";이란 제목의 미국 특허 S/N 제08/438,014호, 그리고 각각 1995년 6월 6일 출원된 ";감소된 개수의 오디오 부호기들을 갖는 시청각 부호화 시스템(AUDIOVISUAL ENCODING SYSTEM WITH A REDUCED NEMBER OF AUDIO ENCODERS)";이란 제목의 미국 특허 출원 S/N 제08/467/991호, ";사전 부호화된 비디오 프레임들의 품질을 사용자가 수동으로 변경하기 위한 방법과 시스템(METHOD AND SYSTEM FOR A USER TO MANUALLY ALTER THE QUALITY OF PREVIOUSELY ENCODED VIDIO FRAMES)";이란 제목의 미국 특허 출원 S/N 제08/466,391호, ";사전 부호화된 비디오 시퀀스의 품질을 사용자가 수동으로 변경하기 위한 방법과 시스템(METHOD AND SYSTEM FOR A USER TO NANUALLY ALTER THE QUALITY OF PREVIOUSELY ENCODED VIDIO SEQUENCE)";이란 제목의 미국 특허 출원 S/N 제08/469,370호, 그리고 ";양자화 레벨을 변동시킴으로써 비디오 부호기의 비트 할당을 제어하는 레이트-제어식 디지털 비디오 편집 방법과 시스템(A RETE-CONTROLLED DIGITAL VIDEO EDITING METHOD AND SYSTEM WHICH CONTROLS BIT ALLOCATION OF A VIDEO ENCODER BY VARYING QUANTIZATION LEVELS)";이란 제목의 미국 특허 제 08/466,766호, 및 ";레이트-양자화 모델을 사용하는 비디오 부호화 방법 및 시스템(VIDEO ENCODING METHOD AND SYSTEM WHICH ENCODES USING A RATE-QUANTIZER MODEL)";이란 제목의 미국 특허 출원 S/N 제08/473,783호와 관련되어 있으며, 본 명세서에서 참고로 인용되었다.
[발명의 분야]
본 발명은 부호화된 비트스트림 섹션이 새로운 섹션으로 대체되는 부호화 시스템에 관한 것으로, 더 구체적으로는, 부호화된 비디오 섹션이 복호화 아티팩트(artifact)를 줄이는 방식으로 대체되는 비디오 부호화 시스템에 관한 것이다.
[배경의 토론]
압축 기술을 이용할 수 있기 전에는, 오디오, 비디오, 및 필름은 원하는 오디오, 비디오, 및 필름의 섹션을 절취하여 새로운 또는 변경된 섹션으로 대체시킴으로써 단순히 편집될 수 있었다. 그러나, 데이타를 부호화하기 위한 압축 기술을 사용하면, 비디오 프레임을 구성하는데 사용되는 정보가, 예를 들어, 하나 이상의 위치에 있기 때문에 단순한 ";자르고 붙이기(cut-and-paste)";식의 편집 프로시져가 더 이상 가능할 수 없다. 따라서, 부호화된 비디오의 섹션을 단순히 절취하는 것은 변경되지 않은 비디오 섹션의 품질을 저하시킬 수 있으며, 새로운 비디오가 단순시 사전 부호화된 비트스트림 내에 삽입된다면 복호화 아티팩트를 포함할 수도 있다.
MPEG 비디오 부호화에서의 이러한 문제를 해결하기 위한 공지된 해결책은 구 비디오(old video) 내에 대체되어 들어가는 새로운 비디오 섹션을 폐쇄된 화상군(GOP, Group Of Picture)으로서 레이블을 붙이는 것이다. MPEG 부호화에 있어서, 폐쇄된 화상 군은 제1 코딩된 Ⅰ프레임의 바로 직후에 뒤따르는 B-타입 프레임들에 사용되는 예측(prediction)이 후방 예측만 사용할 것임을 나타낸다. 대안적으로, MPEG은 ";broken_link라 불리는 플래그를 사용하는 것을 허용하는데, 이것은 세팅되면, 예측에 사용되는 참조 프레임을 이용할 수 없어서 제1 코딩된 Ⅰ-프레임을 바로 직후에 뒤따르는 제1 B-프레임들이 정확히 복호화되지 않았을 수 있음을 나타낸다. 복호기는 정확히 복호화될 수 없는 프레임들을 표시(display)하는 것을 막기 위해 이 플래그를 사용한다.
상기 해결책들은 부호화된 비디오의 품질을 저하시킬 것이며, 부적당한 비디오 품질을 제공할 수 있다.";
[발명의 요약]
따라서, 본 발명의 목적은 미소의 복호화 아티팩트 또는 비 가시적인 복호화 아티팩트를 도입하면서 사전 부호화된 데이타 섹션이 부호화된 데이타의 다른 섹션으로 대체되는 신규한 방법 및 시스템을 제공하는 것이다. 본 발명의 다른 목적은 부호화된 비디오에서 어떠한 에러나 비디오 복호화 아티팩트가 가시적이지 않도록, 부호화된 비디오 섹션이 다른 부호화된 비디오 섹션에 의해 대체되게 해주는 비디오 부호화 시스템을 제공하는 것이다. 본 발명의 또 다른 목적은 신규하고 유용한 방식으로 정보를 저장하기 위한 데이타 구조체들을 포함하는 메모리를 제공하는 것이다.
이들 및 다른 목적들은 부호화된 비트스트림의 섹션을 대체하는 신규한 방법 및 시스템에 의해 달성된다. 부호화된 비디오 섹션을 제거하기 위해, 디지털식으로 부호화된 비트스트림에서 부호화된 비디오의 시점과 끝점을 결정하는 것이 필요하다. 이것은 문제의 화상에 대한 비트 옵셋을 결정하기 위해 사전 부호화된 각각의 프레임에 사용된 비트수를 합산함으로써 수행된다. 대안적으로, 부호화된 비트스트림 내의 특정 프레임의 정확한 위치나 시간 주기를 나타내는 정보를 보유하기 위해 디렉토리가 사용될 수 있다.
원시 비디오의 제1 섹션, 예를 들어 1/2초인 하나의 GOP는 부호화될 새로운 비디오의 시작부에 위치되고, 후속 GOP의 처음 2개의 B-프레임들을 적절하게 부호화 및 복호화하는데 필요한 절취점(컷 포인트, cut point) 이전의 GOP의 마지막 P-프레임을 생성하는데 사용된다. 이 짧은 초기 섹션으로부터의 부호화된 데이타는 사전 부호화된 데이타에 대체되어 들어가지 않고, 시점 이후의 처음 2개의 B-프레임들에 의해 참조되는 참조 프레임(마지막 P-프레임)을 생성하는데만 사용된다.
또한, 원시 비디오의 짧은 섹션이 비디오의 끝에 위치되고, 원시 부호화될 때 사용된 양자화 값들을 사용하여 부호화된다. GOP 내의 부호화된 비디오의 프레임들이 사전 부호화된 프레임들을 되참조하기 때문에, 만일 원시 부호화의 프레임이 끝점 직전의 새로운 프레임의 비디오를 되참조한다면, 복호화 에러(decoding glitch)가 있을 것이다. 따라서, 원시 비디오가 원시 프레임과 동등한 프레임을 되참조하는 것이 바람직하다. 원시 비디오의 1초가 또한 편집 세그먼트의 시작부에서 재부호화되나, 이것이 필수적인 것은 아님에 주목해야 한다.
대안으로서, 대체 비디오(substitute video)가 공지되어 있는 폐쇄된 화상 군 모드(closed group fo pictures mode, 폐쇄 GOP 모드)를 사용하여 부호화되어 대체 비디오 내의 프레임들이 대체 비디오 외부의 프레임들에 의존하지 않도록 한다. 이 방법의 신규한 특징은 폐쇄 화상 군 모드 때문에 단방향 예측만을 가질 양방향 프레임들에 대해 여분의 비트들이 할당되어, B-프레임의 비트 수가 P-프레임에 사용된 비트 수에 근사하다는 것이다. 이러한 방식으로, 폐쇄 GOP 모드는 B-프레임에 대해 큰 복호화 아티팩트를 야기하지 않으나 B-프레임들은 P-프레임과 거의 동일한 품질을 갖는다.
디지털 저장 매체 상에 저장된 부호화된 비디오도 역시 본 발명의 일부를 구성한다. 본 발명은 또한 신규하고 유용한 데이타 구조체들을 저장하기 위한 메모리를 포함한다. 메모리는 바람직하게 광학 디스크이다.
[도면의 간단한 설명]
도 1A는 부호기 시스템 구조에 대한 블럭도.
도 1B는 부호화될 오디오 및 비디오를 얻기 위한 장치와, 부호화 시스템에 의해 발생된 부호화된 가청 가시 데이터를 기록 및 송신하기 위한 장치에 대한 도면.
도 2는 도 1의 시스템의 전반적 작동을 도해한 플로우챠트.
도 3은 셋 업(set-up) 상태에서 실행되는 프로세스를 도해한 플로우챠트.
도 4는 압축 상태에서 실행되는 프로세스를 도해한 도면.
도 5는 편집 상태에서 실행되는 프로세스를 도해한 도면.
도 6은 시작, 완료, 출구 상태에서 실행되는 프로세스를 도해한 도면.
도 7은 멀티패스(multipass) 비디오 부호기를 이용하면서 선정된 수의 오디오 트랙들을 부호화하는데 필요한 오디오 부호기의 수를 결정하는 방법과, 오디오 및 멀티패스 비디오 부호화를 동시에 실행하는 프로세스를 도시한 플로우챠트.
도 8A-8D는 시퀀스 층 로그 파일 포맷(Sequence Layer log file format)을 도해한 도면.
도 9A-9C는 화상 층 로그 파일 포맷을 도해한 도면.
도 10A 및 10B는 매크로블럭(Macroblock) 층 로그 파일 포맷의 완전한 형태와 짧은 형태를 도해한 도면.
도 11은 로그 파일들 내의 정보를 이용하기 위한 프로세스를 도해한 도면.
도 12는 상이한 시간 주기들에 대한 화상 품질을 수동 조정하는 동안 실행된 대략적 프로세스를 도해한 도면.
도 13은 여러 시간 주기들에 걸쳐 화상 품질을 변경하기 위해 파라메터들을 입력하는데 사용된 사용자 인터페이스를 도해한 도면.
도 14는 원하는 화상 품질과 관련된 비트 수를 계산하기 위한 대략적 프로시져를 도해한 도면.
도 15는 최대 또는 최소 사용자 선택 우선 순위를 갖는 섹션들을 처리하는데 사용된 프로세스를 도해한 도면.
도 16A 및 16B는 최대 또는 최소 우선 순위가 아닌 원하는 화상 품질에 대응하는 비트 수를 계산하기 위한 플로우챠트.
도 17은 화상 품질의 변경으로 인해 언더플로우(underflow)가 초래될 지를 검사하기 위해 사용된 프로세스에 대한 플로우챠트.
도 18은 편집 세그먼트 내에서 이루어진 변경으로 인해 편집 세그먼트 이후의 프레임들에서 버퍼 언더플로우가 발생할 지를 판별하기 위한 플로우챠트.
도 19A 및 19B는 부호화된 비디오의 비트 레이트(bit rate)가 사용자 선택 품질에 의해 변경되는 방법에 대한 두 가지 다른 예들을 도해한 도면들.
도 20은 프레임 내의 다른 영역들에 대한 화상 품질을 수동 조정하는 동안 실행되는 대략적 프로세스를 도해한 도면.
도 21은 비디오 프레임 내의 사용자 선택 우선 순위들을 갖는 다른 영역들의 예를 도해한 도면.
도 22는 사용자 선택 우선 순위 대 상기 선택된 우선 순위에 사용된 원시 양자화 값의 분율에 대한 그래프.
도 23은 사용자 선택 우선 순위로 인한 비트 수와 프레임의 원시 부호화(original encoding)로 인한 비트 수 사이의 차가 수용 가능한지 또는 교정 작업이 실행되어야 하는지의 여부를 판별하기 위한 프로세스를 도해한 도면.
도 24A-24C는 너무 많은 비트를 가지고 있는 것으로 판별되어 비트 수를 감소시키기 위하여 매크로블럭의 양자화 레벨이 증가될 때 프레임을 교정하기 위한 프로세스를 도해한 도면.
도 25A-25C는 비트 수를 증가시키기 위하여 프레임 내의 매크로블럭의 양자화 레벨을 감소시킴으로써 프레임의 너무 적은 비트 수를 교정하기 위한 프로세스를 도해한 도면.
도 26은 n개 매크로블럭의 세트들 각각에서 사용될 예상되는 비트 수를 메모리로부터 로딩(loading)하고, 그런 다음 n개 매크로블럭들로 된 각 세트에 대해 재부호화하고, 결과적인 비트 수를 카운팅하며, 예상된 비트 수와 발생된 비트 수를 근거로 추정의 정확성을 계산하고, 다음의 n개 매크로블럭들의 사전 할당 양자화 레벨을 조정하여 일련의 프레임들의 목표 크기에 가깝게 유지시키는 프로세스를 대략적으로 도해한 플로우챠트.
도 27A는 사전 할당된 양자화 레벨을 나타낸 프레임을 도해한 도면.
도 27B는 각각의 세트의 매크로블럭들이 한개의 슬라이스(slice)를 포함할 때 제1 세트의 매크로블럭들이 재부호화된 후, 제1 교정 계수가 계산되고 상기 제1 교정 계수가 제2 세트의 매크로블럭들에 부가된 후 도 27A의 프레임을 도해한 도면.
도 27C는 제2 세트의 매크로블럭들이 재부호화되고 제2 교정 계수가 계산되고 제2 교정 계수가 제3 세트의 매크로블럭들에 부가된 후 도 27B의 프레임을 도해한 도면.
도 27D는 각각의 세트의 매크로블럭들이 두개의 슬라이스들을 포함할 때 제1 세트의 매크로블럭들이 재부호화되고 제1 교정 계수가 계산되고 제1 교정 계수가 제2 세트의 매크로블럭들에 부가된 후 도 27A의 프레임을 도해한 도면.
도 28A는 양자화 레벨이 변경된 두개의 다른 영역들을 포함한 프레임을 도해한 도면.
도 28B는 양자화 레벨이 변경된 두개의 다른 영역들을 나타내는데 사용된 비디오 스트림에서 비트 수에 있어서의 변경을 도해한 도 28A의 프레임의 두 가능한 부호화를 나타낸 도면.
도 29는 재부호화된 일련의 영상의 총 길이가 원시의 일련의 길이와 동일한, 일련의 영상을 나타내는데 사용되는 비트 수의 변경을 나타낸 비디오 스트림을 도해한 도면.
도 30은 추정 비를 이용하여 비율 룩업 테이블로부터 교정 계수 인덱스가 결정되는 방법을 도해한 플로우챠트.
도 31은 교정 계수 인덱스를 이용하여 교정 계수 테이블로부터 교정 계수가 선택되는 방법을 도해한 플로우챠트.
도 32는 추정 비율과 잔여의 재부호화되지 않은 매크로블럭들의 세트들의 수 둘 다를 이용하여 교정 계수가 계산되는 방법을 도해한 플로우챠트.
도 33A는 원시 비디오의 한 섹션을 부호화 포맷으로 나타낸 도면.
도 33B는 원시 부호화 비디오에 교체될 새로운 비디오의 한 섹션을 부호화되지 않은 포맷으로 나타낸 도면.
도 33C는 원시 비디오의 부호화되지 않은 섹션을 끝부분에 갖는 부호화되지 않은 새로운 비디오 섹션을 나타낸 도면.
도 33D는 원시 부호화 비디오에 교체될 부호화 포맷으로 도 33C의 비디오를 도해한 도면.
도 33E는 원시 부호화 비디오 내에 교체된 부호화 비디오를 구비한 원시 부호화 비디오를 도해한 도면.
도 34는 부호화 비디오 데이터 스트림에 비디오 섹션을 교체하여 결과적으로 비디오의 복호화 아티팩트를 감소시키는 프로세스를 도해한 도면.
도 35A는 원시 비디오의 부호화되지 않은 섹션을 트레일링 끝(trailing end)에서 갖는 비디오의 부호화되지 않은 새로운 섹션을 도해한 도면.
도 35B는 도 33A에 도해된 원시 부호화 비디오에 교체될 부호화 비디오의 한 섹션을 도해한 도면.
도 35C는 도 35B의 교체 부호화 비디오를 포함하는 도 33A의 원시 부호화 비디오를 도해한 도면.
도 36은 폐쇄된 화상 군 모드를 이용하여 교체 비디오를 부호화함으로써 부호화된 비디오 비트스트림을 편집할 때 복호화 아티팩트를 감소시키기 위한 프로세스를 도해한 도면.
도 37A는 사전 부호화 단계에서 양자화 레벨 대 비트 레이트 모델을 발생하기 위하여 원래 그대로의 가공되지 않은 비디오의 프레임에 할당된 두 양자화 레벨들을 갖는 상기 원래 그대로의 가공되지 않은 비디오의 프레임.
도 37B는 회전 패턴으로 할당되는 네개의 양자화 레벨들을 갖는 프레임에 대한 도면.
도 37C는 블럭 대형으로 분배된 네개의 양자화 레벨들을 갖는 프레임에 대한 도면.
도 38은 사전 부호화 단계에서 명기된 각각의 양자화 레벨에 대한 비트 레이트를 결정하기 위하여 비디오 신호를 얻고 이들을 사전 부호화하는 프로세스를 도해한 플로우챠트.
도 39는 두 개의 레코딩된 프레임들과 그들의 관련 양자화 레벨 대 비트 레이트를 도해한 도면.
도 40은 광 디스크상에 최종적으로 포함되는 부호화 데이터의 최종 포맷의 윤곽을 도시한 도면.
도 41은 도 40의 디스크 정보 파일(908)을 도해한 도면.
도 42는 도 40에 도해된 데이터 파일의 데이터 파일 관리 정보 내용을 도해한 도면.
도 43은 도 40의 데이터 파일에 저장된 데이터의 세부 사항을 도해한 도면.
도 44A는 데이터 패킷의 데이터가 스터핑(stuffing) 패킷을 필요로 하지 않는 데이터 패킷을 도해한 도면.
도 44B는 패딩(padding)용 패킷을 필요로 하는 데이터 패킷을 도해한 도면.
도 45는 재생 정보 팩(pack)을 도해한 도면.
도 46은 도 45의 데이터 검색 정보(996) 내에 포함된 정보를 도해한 도면.
도 47은 도 46의 대략적 정보를 도해한 도면.
도 48은 도 46에 도시된 동기 재생 정보를 도해한 도면.
도 49는 비디오 팩을 도해한 도면.
도 50은 화상 군(GOP)과 일련의 비디오 팩들 사이의 관계를 도해한 도면.
도 51A는 MPEG 오디오 부호화 명세에 따라 부호화된 오디오 팩에 대한 도면.
도 51B는 AC-3 또는 선형 PCM 오디오 부호화에 따라 구성된 오디오 팩에 대한 도면.
도 52는 부호화 오디오 스트림과 오디오 팩들 사이의 관계를 도해한 도면.
도 53은 부화상 유닛의 구조를 도해한 도면.
도 54는 부화상 팩의 구조를 도해한 도면.
도 55는 부화상 팩과 관련하여 부화상 유닛의 구조를 도해한 도면.
도 56은 부화상 유닛 n과 부화상 유닛 n+1의 표시 사이의 전이를 도해한 도면.
[양호한 실시예의 설명]
본 발명에 대한 좀더 완전한 이해와 본 발명의 많은 장점들은 첨부한 도면들과 관련하여 고려할 때 다음의 상세한 설명을 참조하여 더 잘 이해될 수 있다.
본 발명은 다수의 구성 요소들과 기능적 특징들을 포함하는 디지탈 비디오 부화 시스템이다. 시스템의 여러 구성 요소들을 좀더 쉽게 식별하기 위하여 본 명세서는 다음의 섹션들로 구성된다.
Ⅰ. 머릿말
Ⅱ. 시스템 구성 요소
Ⅲ. 일반적인 시스템 작동
Ⅴ. 시스템 대안
Ⅳ. 최적의 부호화 효율을 유지하면서 오디오 부호기 수를 축소하기
Ⅵ. 부호화 비디오의 정보를 저장하기 위한 로그 파일들과, 로그 파일들 및 부호화된 비디오를 액세스하기 위한 로그 해석기 유틸리티
Ⅶ. 부호화된 비디오의 품질 변경
A. 시간 주기에 걸친 품질 변경
B. 프레임들의 영역들 내의 품질 변경
Ⅷ. 품질 변경 후 비디오를 재부호화하기
A. 품질이 단일 프레임들 내에서 변경되었을 때의 비트 할당 제어
B. 편집 포인트에서 복호화 아티팩트(artifact)를 회피하면서 재부호화하기
1.부호기를 원시 부호화 때 상용된 상태로 복원하기
2. 폐쇄된 화상 군(Group Of Pictures) 모드에서 재부호화하기
Ⅸ. 부호화에 사용된 레이트 양자화의 모델링
Ⅹ. 데이터 구조체들을 사용하여 오디오, 비디오, 부화상 디지탈 신호를 결합하기
Ⅰ. 머릿말
개시된 시스템은 디지탈 가청 가시 부호화 시스템에 관한 것이며, 디지탈 압축 시스템으로도 알려져 있다. 본 명세서에 개시된 아이디어는 어떠한 유형의 부호와 방안과도 함께 이용될 수 있으며, 특히 ISO/IEC 13818-2로서 공식적으로 알려진 MPEG-2(동화상 전문가 집단), MPEG-2 시스템 정보를 규정하는 ISO/IEC 13818-1, MPEG-2 프리디세서(predecessor), MPEG-1 (ISO/IEC 11172-비디오)에 응용될 수 있다. MPEG-1과 MPEG-2는 본 명세서에서 집합적으로 “MPEG”으로 지칭될 것이다. MPEG 표준은 압축된 또는 부호화 비디오 스트림의 구문(syntax)만을 명기할뿐, 압축을 실행하는 방법에 대해서는 명시하지 않는다. MPEG 부호와 데이터 스트림이 압축된 데이터 스트림이기 때문에, 부호와 프로세스는 압축 프로세스로 지칭 될 수 있고 그 역도 마찬가지임을 주목한다. 상기 시스템은 또한 돌비(Dolby) AC-3, 또는 ISO/ICE 13818-3에 규정된 바와 같은 MPEG-2 표준을 사용하여 실행될 수 있는 오디오의 부호화에 관한 것이기도 하다. 상기 표준들 각각은 본 명세서에서 참조된다.
MPEG 비디오 압축은 시간적 인과 예측 압축 (temporal causal predictive compression)이다. MPEG 부호기가 새로운 비디오 화상을 수신하면, 상기 부호기는 새로운 비디오 화상을 이전 부호화된 화상에 기초하여 부호기가 발생한 예측 화상과 비교한다. “인과” 예측 코딩이란 용어는 상기 예측이 이전에 전송된 정보를 기초로 이루어지기 때문에, 그리고 “시간적” 인과 예측 압축이란 용어는 상기 예측이 시간적 화상 유닛의 견지에서 실행되기 때문에 사용된다. 예측 작업은 비디오 화상내의 영역의 모션을 평가하는 것을 수반한다. 따라서, 시간적 예측은 때때로 모션 보상 예측으로 지칭된다.
구화상과 신화상 사이의 비교의 결과는 후자의 비디오 화상에 포함된 새로운 정보를 나타낸다. 또한 “오차 정보”로 지칭되기도 하는 이 새로운 정보는 일련의 정보 압축 프로세스를 받는다. 첫째, 이산 코사인 변환(DCT)을 알려진 선형 수학적 변환이 수행된다. DCT 연산은 픽셀 오차 정보를 일련의 계수들로 변환한다. MPEG 압축에서, DCT는 8×8 픽셀들의 블럭들에 걸쳐서 수행된다. 마찬가지로 DCT 계수들도 8×8 어레이로 된다. 그런 다음, 이러한 계수들은 양자화 스텝 크기 또는 q 레벨을 기초로 지정된 수준의 정확도로 개별적으로 양자화(또는 라운드 (round))된다. 양자화 프로세스는 전형적으로 0의 값을 갖는 많은 계수들을 발생한다. 달리 양자화 잡음으로도 지칭되는 코딩 아티팩트를 도입하는데 가장 책임이 있는 것이 이 양자화 프로세스이다.
이 양자화 계수들은 0 값의 계수들에 대한 런-렝스 코딩, 및 런-렝스 값과 0이 아닌 계수 값을 각각 나타내는 결과적인 두 숫자들의 쌍들의 가변-길이 코딩을 조합하여 코딩된다. 다른 오버헤드 정보와 함께 이들 런-렝스의 0이 아닌 값의 쌍들에 대한 코드들은 비디오 화상에 대응하는 압축된 디지탈 데이터 스트림을 형성한다. 출력 데이터 레이트 또는 기억 용량과 같은 물리적 한계로 인하여 양자화 정도를 변경시켜 적절한 양의 압축이 달성되게 하는 것이 필요하다. 이것은 버퍼 피드백으로 지정된다.
MPEG-컴플라이언트(compliant) 복호기는 부호화 디지털 데이터 스트림을 판독하고 프로세스에 반대되는 작동을 수행한다.
전형적으로, 디지탈 데이터 스트림 내의 총 비트 수는 비디오 화상을 나타내는데 필요한 총 비트 수보다 실질적으로 작으며 따라서 압축이 달성된다. 그러나 MPEG 비디오 코딩에 의해 예시된 바와 같은 압축이 왜곡 또는 아티팩트로부터 결 코 자유롭지 않다는 것을 인식하는 것이 중요하다. 언급된 바와 같이, 압축 아티팩트의 중요한 소스는 양자화 프로세스이다.
상기 개시된 시스템은 압축 또는 부호화 프로세스 동안 양자화의 정도를 동적으로 조정하는 것을 목표로 한다. 특히, 사람 조작자에 의해 제공되는 명령에 따라 조정이 이루어진다. 더 큰 비디오 시퀸스의 일부분들에 대해 또는 전체 비디오 시퀸스에 대해 조정이 이루어질 수도 있다.
Ⅱ. 시스템 구성 요소
이제 도면들을 참조하면, 유사한 도면 부호가 여러 도면들에 걸쳐서 동일한 또는 대응하는 부품들을 나타내는데, 특히 도 1을 참조하면, 부호화 시스템 구조의 블럭도가 도시되어 있다. 비디오 부호와 프로세스는 인터럽트 또는 에러 없이 부호화 및 편집을 달성하기 위해 동기로 작동하는 다수의 상이한 장치를 필요로하는 복잡한 처리임을 주목한다. 그러나, 오디오와 비디오의 부호화는 적절한 시간 코드들이 사용되는 한 분리적으로 수행될 수 있다. 네개의 워크스테이션들의 도 1A에서 도시되어 있지만, 일반적으로, 부호화 시스템의 사용자 또는 조작자는 단지 하나의 키보드 및 워크스테이션과 상호 작용할 것이다. 워크스테이션들은 프로세서, RAN, ROM, 네트워크 인터페이스, 하드 디스크, 키보드, 모니터, 및 통상의 다른 구성 요소들과 같은 통상의 일반적 용도의 컴퓨터 구성 요소들을 포함한다.
워크스테이션(30)은 양호한 실시예에서 썬 SPARC20 유닉스(Sun SPARC20 Unix) 워크스테이션으로서 시스템 제어 스테이션으로 기능한다. 워크스테이션(30)에는 키보드(32)와, 마우스 또는 다른 포인팅 장치인 포인팅 장치(33)와 같은 통상의 워크스테이션 입력 장치 뿐만 아니라 그래픽 콘솔 모니터(31)도 설치되어 있다. 사용자는 콘솔 표시기(31)에 표시된 그래픽 사용자 인터페이스(GUI)를 통하여 일차적으로 워크스테이션(30)과 가시적으로 상호 작용한다.
워크스테이션(30)은 이하에 설명되는 다른 워크스테이션(40,10, 및 20)에 접속되어 이들을 제어한다. 워크스테이션(30)은 또한 이하에 논의될 오디오 인터페이스 유닛(72), 디지탈 비디오 캡쳐 및 저장 장치(60)와도 통신한다. 워크스테이션(30)은 전자 공업회(Electronic Industries Association, EIA) 표준 RS-232에 의해 규정된 바와 같은 직렬 인터페이스를 통하여 워크스테이션(40)에 접속된다. 마찬가지로 워크스테이션(30)과, 오디오 인터페이스 유닛(72) 사이의 접레이트 또한 직렬의 RS-232 표준에 의한 것이다. 워크스테이션(30)과 디지탈 비디오 캡쳐와 저장 장치(60) 사이의 접속은 공업 표준 S- 버스 인터페이스를 통해 이루어진다.
프레임 조거(jogger)(41)는 워크스테이션(40)에 접속되어 조작자가 편집이 실행될 VTR(51 또는 52)의 비디오 위치를 정하도록 해준다. 상기 시스템은 조작자에 의해 입력된 시간 코드를 이용하여 비디오의 위치를 제어한다. 그러나, 조그(jog) 제어기는 조그 놉(knob)을 사용하여 비디오의 위치를 정하도록 해줌으로써 시스템의 사용자 친숙도를 향상시킨다. 워크스테이션(30)은 비디오 표시 모니터(61)에 표시된 비디오가 디지탈 비디오 캡쳐와 저장 장치(60)로부터 비롯될 지, 그리고/또는 레코드 VTR(52)로부터 비롯될 지를 제어한다.
비디오 부호화 장치(50)는 MPEG-1, MPEG-2 또는 다른 비디오 압축 표준에 따라 압축을 실행하는 디지탈 비디오 부호기이다. 상용의 MPEG-1의 부호기는 소니 RTE-3000이다. MPEG-2 부호기는 1994년 12월 27일자로 출원되고 본 명세서에서 인용된 일본 특허 출원 제6-326435호에서 제시된 기술에 따라 구성될 수 있다. 워크스테이션(10)은 공업 표준 S 버스 인터페이스를 통하여 비디오 부호화 장치(50)를 직접 제어하고, 워크스테이션(10)은 이더넷(Ethernet) 네트워크와 같은 표준 네트워킹 장비를 통하여 워크스테이션(30)으로부터 명령을 수신한다. 부호화 프로세스 동안 워크스테이션(10)은 비디오 부호화 장치(50)의 비디오 부호화 제어 프로그램의 실시간 실행을 지원한다. 양호화 실시예에서, 워크스테이션(10)은 썬 SPARC20 유닉스 워크스테이션이다.
워크스테이션(10)은 중앙 워크스테이션(30)으로부터의 명령에 응답하여 압축 프로세스를 시작한다. 압축 프로세스 동안, 워크스테이션(10)은 비디오 신호의 특징 영역들에 응용된 양자화 수준을 동적으로 제어한다. 양자화가 변화되는 특정 영역들은 공간적 및/또는 시간적 도메인들에 걸쳐서 연장되고 양자화가 제어되는 정확한 방식은 이하에 설명된다.
비디오 부호화 장치(50)의 입력 비디오는 재생 VTR(51) 내의 테이프로부터 나온다. 재생 VTR(51)은 프로페션 디지탈 비디오 표준, ITU-R 601 (종래에 CCIR 601 비디오 표준으로 알려짐) 비디오 테이프 플레이어이다. 이 표준은 PAL 시스템 뿐만 아니라 NTSC 시스템에도 응용된다. 재생 VTR(51)내의 테이프는 비디오 또는 필름 카메라를 통해 캡쳐되었거나 또는 컴퓨터에 의해 발생된 여러가지 영상 및 장면들을 나타내는 전자기 정보를 포함한다. 재생 VTR(51)은 워크스테이션(40)의 제어하에서 작동한다. 비디오 부호화 장치(50)로부터의 부호화의 출력은 하나 또는 그 이상의 하드 디스크(21)들에 저장하기 위하여 워크스테이션(20)에 전송된다.
비디오 부호화 장치(50)에 의해 부호화되어 출력된 비디오 데이터를 검사하기 위하여 MPEG-2 부호기와 같은 디지탈 비디오 부호기가 필요하다. 그러나 이러한 기록을 할 때 구현된 시스템은 분리된 MPEG-2 부호기를 일체화하지 않는데, 이것은 이러한 복호기가 시스템의 초기 개발 단계 동안 쉽게 사용할 수 없었기 때문이다. 따라서, 비디오 부호화 장치(50)는 MPEG-2 비디오 스트림을 워크스테이션(50)에 출력할 뿐만 아니라, MPEG-2 부호화 데이터의 복호화 비디오 영상 등가 출력이 비디오 부호화 장치(50)로부터 레코드 VTR(52)에 출력된다. 레코드 VTR(52)은 D1 인터페이스로 알려진 공업 표준 디지탈 비디오 신호 접속기에 의해 비디오 부호화 장치(50)에 접속되고 워크스테이션(40)에 의해 제어된다. 재생 VTR(51)과 레코드 VTR(52)은 모두 암펙스(Ampex) DCT 프로페셔널 비디오 데이프 레코더들을 사용하여 적절히 구현된다.
오디오는 예를 들면 돌비 AC-3 포맷, 또는 ISO/IEC 13818-3 표준에 설명된 바와 같은 MPEG-2 컴플라이언트 포맷으로 부호화되어 압축된다. 부호화 시스템용 오디오 소스는 네개의 디지탈 오디오 테이프(DAT) 플레이어들(71a, 71b, 71c, 및 71d)이다. 스튜디오 품급의 DAT 플레이어는 소니(Sony)로부터 상용으로 입수할 수 있다. DAT 플레이어들(71a-71d)은 공업 표준 프로토콜 RS-422를 통하여 워크스테이션(40)에 접속되어 제어된다. DAT 플레이어들(71a-71d)에 의해 출력된 오디오 신호는 오디오 부호기들(70a, 70b, 70c, 및 70d)에 각각 입력된다. 이들 오디오 부호기는 상용의 돌비 AC-3 모델 DP 525 부호기를 사용하여 구현되고 오디오 인터 페이스 유닛(72)에 의해 제어된다. 전형적으로, 오디오 부호화는 지정된 시간 코드들에서 시작하고 종료한다. 오디오 인터 페이스 유닛(72)은 RS-232 접속을 통하여 워크스테이션(30)으로부터 부호화 시작 및 종료 시간 코드들과 같은 명령을 수신한다. 추가로, 오디오 인터 페이스 유닛(72)은 여러 디지탈 압축 오디오 데이터를 워크스테이션(20)에 송신되는 단일 디지탈 스트림으로 멀티플렉스한다. 워크스테이션(20)은 입력 디지탈 오디오 스트림을 오디오 부호화 장치(70)에 의해 출력된 압축 디지탈 데이터에 대응하는 다중 파일들로 디멀티플렉스한다. 비디오 부호화 장치(50)는 이 비디오 동기화 신호를 기초로 동기화 신호를 오디오 인터 페이스 유닛(72)에 제공한다. 동기화 신호는 오디오 비트스트림이 비디오 부호화 장치(50)에 의해 출력된 비디오 비트스트림에 동기화되도록 해준다.
워크스테이션(30)은 여러 오디오 부호화 장치들(70a-70d) 중 한 장치로부터 오디오 복호기(73)로의 오디오 데이터 복사(duplicate)를 제공하도록 오디오 인터 페이스 유닛(72)에 명령하는 능력을 갖는다. 오디오 복호기(73)는 사용자가 스피커(75)를 통하여 오디오를 들을 수 있도록 압축된 오디오를 복호화한다. 어느 오디오 부호화 장치가 모니터할 지에 대한 선택은 키보드(32) 또는 포인팅 장치(33)를 통하여 콘솔 표시기(31)의 그래픽 사용자 인터페이스와의 상호 작용을 통해 사람 조작자에 의해 이루어진다. 오디오 인터페이스 유닛(72)의 구조는 위의 설명된 기능들을 수행할 수 있는 하드웨어이다. 이 하드웨어는 개시된 기능들을 달성하도록 배열된 하나 또는 그 이상의 마이크로프로세서들 및/또는 종래의 회로 소자들이다.
워크스테이션(40)은 스튜디오 장비 제어 스테이션이며 레코딩 비디오 테이프 레코더(52)와 함께 재생 비디오 테이프 레코더(51)와 디지탈 오디오 테이프 플레이어들(71a-71d)을 모두 제어하도록 적절한 명령을 내보낸다. 워크스테이션(40)은 또한 적절한 시간에 비디오 캡쳐를 시작하도록 디지탈 캡쳐 및 저장 장치(60)에 명령한다. 워크스테이션(40)과 여러 비디오 및 오디오 테이프 덱들(decks) 사이의 접속은 공업 표준 RS-422 프로토콜에 의해 이루어진다. 이 프로토콜은 각각의 테이프 덱이 표준 시간 코드 포맷으로 그의 현재 테이프 위치를 워크스테이션(40)에 통지하도록 해준다. 워크스테이션(40)은 비디오 및 오디오 정보가 정확히 재생되고 레코딩되도록 여러 테이프 덱들을 적절히 동기화시키기 위해 이러한 정보를 사용한다. 본 실시예에서 워크스테이션(40)은 도스(DOS), 및 캘리포니아 무어파크 소재의 에디팅 테크놀러지즈 코포레이션(Editing Technologies Corp, Moorpark, California)으로부터 상용으로 입수 가능한 소프트웨어 프로그램인 앙상블 프로(Ensemble Pro)를 실행하는 표준 아이비엠(IBM) 호환 개인용 컴퓨터이다. 앙상블 프로 프로그램이 약간 수정되어, 워크스테이션(30)이 RS-232 통신 포트를 통해 워크스테이션(40)에서 실행 중인 앙상블 프로와 통신할 수 있다는 것을 주목한다. 이러한 수정은 에디팅 테크놀러지즈 코포레이션을 통해 상용으로 입수할 수 있거나 또는 오류없이 당해 기술 분야의 기술자에 의해 실행될 수도 있다.
디지탈 비디오 캡쳐 및 저장 장치(60)는 부호화 시스템 내에서 두가지 기능을 하는데, 첫째는, 캡쳐 및 저장 능력을 이용하여 비디오 신호에 가해진 수동 편집의 편리한 “전후” 비교를 제공하는 것이고, 둘째는, 비디오 표시기에 그래픽 오버레이(overlay) 기능을 제공하는 것이다. 그래픽 오버레이 기능은, 예를 들면 공간적인 수동 편집 페이즈 동안 사람 조작자가 양자화 및 그에 따른 할당 비트 수가 변경될 관심 영역들을 정하는데 사용된다.
본 발명에서 디지탈 비디오 캡쳐 및 저장 장치는 캘리포니아 마운틴뷰 소재의 뷰그래픽스(Viewgraphics, Mountain View, California)로부터 상용으로 입수 가능한 DRAM-베이스드 비디오 제품, 모델 VS6000으로 구현된다. 이 장치의 디지탈 비디오 입력은 ITU-R-601(종래의 CCIR601) 영상 해상도를 갖는 공업 표준 D1에 의한 것이다. 디지탈 비디오 캡쳐 및 저장 장치(60)의 출력은 비디오 신호의 적색, 녹색, 청색 성분을 나타내는 세개의 분리된 아날로그 신호를 통해 비디오 표시 모니터(61)에 접속된다. 그래픽 오버레이 정보는 디지탈 비디오 캡쳐 및 저장 장치(60)에 의해 출력되는 최종 아날로그 신호의 생성 전에 디지탈 비디오 캡쳐 및 저장 장치(60)에 의해 처리되어 비디오 표시 모니터(61) 상에서 다른 비디오 데이터와 함께 사람 조작자에게 보일 수 있을 것이다.
유닉스 환경하에서 실행하는 워크스테이션(30)은 디지탈 비디오 캡쳐 및 저장 장치(60)를 이용하여 상기 워크스테이션의 그래픽 윈도우를 비디오 표시 모니터(61)상에 맵핑(mapping)한다. 이것은 사람 조작자가 모니터(61)에 도시된 표시기의 그래픽 오버레이면 상에서 그래픽 오퍼레이션(예를 들면, 직사각형을 그리기)을 실행하도록 해준다. 장치(60)은 오버레이 기능을 제공한다. 오버레이는 메모리 내의 정보를 모니터 구동용 아날로그 비디오 신호로 변환하기 전에 비디오 메모리 내에서 수행된다. 상기 시스템에 의해 사용된 VS6000에는, 비디오 메모리의 최상단부의 8 비트 메모리 플레인이 있다. 이 8비트 플레인에서, 컴퓨터는 어떠한 색의 그래픽과 텍스트도 그릴 수 있다. 8비트 플레인의 “컬러” 중 하나는 투명한 색이다. 투명한 색을 갖는 이 오버레이면의 임의의 픽셀은 그 아래에 있는 비디오 메모리의 값을 취할 것이다. 일반적으로, 대부분의 오버레이면은 불투명한 색을 사용한 그래픽(예를 들면 선, 텍스트 등)을 가진 채 투명한 색으로 채워질 것이다. 따라서 비디오 메모리와 오버레이 그래픽 메모리로 구성된 표시 메모리가 형성된다. 최종적으로 모니터(61)에 표시하기 위해 아날로그 신호로 변환되는 것은 이 표시 메모리이다. 전형적으로, 사람 조작자는 이렇게 생성된 그래픽 물체의 그래픽 오퍼레이션과 조작을 수행하기 위하여 키보드(32)와 연관된 포인팅 장치(33)를 사용한다.
워크스테이션(20)은 오디오 인터페이스 유닛(72) 뿐만 아니라 비디오 부호화 장치(50)로부터도 디지탈 데이터 스트림을 수신한다. 워크스테이션(20)은 이더넷 접속을 통하여 워크스테이션(30)에 접속되고, 워크스테이션(20)은 또한 공업 표준 S- 버스 인터페이스를 통하여 비디오 부호화 장치(50)와 오디오 인터페이스 유닛(72)에 또한 접속된다. 수신된 디지탈 데이터 스트림은 분리된 데이터 파일들로서 하나 또는 그 이상의 하드 디스크(21)들에 저장된다. 분리된 직접 메모리 액세스(DMA) 카드들은 캡쳐된 디지탈 스트림 데이터를 하드 디스크(21)에 전송하는데 사용된다. 대량의 디지탈 데이터를 초래하는 긴 비디오 시퀀스의 경우, 하드 디스크(21)들은 썬 마이크로시스템즈(Sun Microsystems) 제품의 SPARC 저장 장치 어레이 X655A/G5와 같은 상업적으로 입수 가능한 하드 디스크를 사용하여 구현될 수 있다. 본 실시예에서, 워크스테이션(20)은 썬 마이크로시스템즈로부터 상용으로 입수 가능한 SPARC 서버(sever) 1000이다.
워크스테이션(20)은 또한 비디오 및 오디오 압축 데이터에 대응하는 데이터 파일들을 복호화 장치에 이송 또는 송신하기에 적합한 단일 포맷화된 파일로 포맷팅한다. 최종 매체는 되도록디면 디스크-베이스드인 것이 좋으며, 이 경우 포맷팅은 관련 디스크 포맷에 따른 것일 것이다. 전형적으로 포맷화된 파일은 디지탈 테이프와 같은 몇몇 중간 디지탈 저장 장치들에 의해 최종 송신 매체 또는 매체들로의 전송이 일어나는 설비로 이송될 것이다. 도면들에 도시된 디지탈 저장 장치(22)는 이러한 목적을 실행한다. 본 실시예에서 디지탈 저장 장치(22)는 상업적으로 입수 가능한 8mm 엑사바이트(Exabyte) 테이프 드라이브를 포함한다. 디지탈 저장 장치(22)의 인터페이스는 공업 표준의 소형 컴퓨터 시스템 인터페이스(SCSI)이다.
다중 SCSI 장치들은 동일한 SCSI 버스에 접속될 수 있는 것으로 알려져 있다. 따라서, 디지탈 저장 장치(22)는 상용의 디지탈 선형 테이프(DLT) 드라이브, 자기-광(MO) 디스크 드라이브 또는 플로피 디스크 드라이브와 같은 다른 SCSI 장치들을 포함할 수 있다. 이러한 구성들은 쉽게 수용될 수 있고, 포맷팅 단계 전에 또는 포맷팅 단계 동안 필요할 수도 있는 어떤 보조 데이터를 위한 플렉서블(flexivle)한 입력 메카니즘을 제공할 것이다. 예를 들면, 영화 제작시에 부제(subtitle) 정보는 위에서 언급된 SCSI 장치들 중 하나를 필요로 하는 매체에서 종종 입수 가능하다. 이러한 경우에 보조 데이터는 워크스테이션(20)에서 실행하는 소프트웨어 프로그램에 의해 판독되고 조작되어 포맷화된 파일에 포함되게 된다. 보조 데이터는 미국 클로즈-캡션 포맷의 부제 데이터를 포함할 수도 있다. 보조 데이터는 프로그램 코드 또는 포스트스크립트 데이터와 같은 임의의 원하는 데이터를 포함할 수 있다.
도 1B는 도 1A의 시스템에 대응하고 상기 시스템과 동일한 방식으로 기능하는 오디오/비쥬얼(audio/visual) 부호화 시스템(98)을 나타낸다. 도 1B에서 부호화 시스템에서의 비디오 입력은 카메라(80)로부터 공급되고 오디오는 마이크로폰(82)으로 부터 공급된다. 가시 및 오디오 정보를 포함하는 영화 필름은 필름을 조명하는 라이트와 필름으로부터 영상을 포착하는 광 검출기를 포함한 전송 장치(88)를 통하여 부호화 시스템(98)에 전송된다. 입력 장치(80, 82, 88)로부터의 정보는 오디오 또는 비디오 테이프 레코더에 의하여 처럼, 부호화 시스템(98)에 의해 부호화되기 전에 전-자기적 포맷으로 저장된다. 오디오 및 비디오 테이프는 도 1A의 시스템에 의해 부호화된다.
부호화 시스템에 의해 발생된 최종 디지탈 비트스트림은 광 디스크를 프레싱(pressing)하는 광 디스트 마스터링(mastering) 장비(90), 광 디스크에 기록하는 광 디스크 기록기(84)에 전송되거나, 또는 텔레비젼 송신기(86)를 경유하여 텔레비젼 수상기 또는 셋 탑 박스(set-top box) 복호기에 송신될 수도 있다. 광 디스크의 프레싱 및 생성은, 예를 들면 마스터 디스크를 사용하여 상업적으로 이용 가능한 공지된 방식으로 수행된다. 부호화된 정보는 또한 주문형 비디오 시스템과 함께 사용할 수 있다. 부호화된 비트스트림은 부호화 프로세스에 대응하는 복호화 프로세스에 의해 결국 복호화 되고 가청 가시 정보가 텔레비젼 또는 모니터 상에서 사용자에게 표시된다. 복호화 장치들은 텔레비젼 또는 모니터에 표시를 위해 부호화된 디스크를 복호화하는 디지탈 비디오 디스크 플레이어들을 포함한다.
부호화 시스템이 오디오 및 영상을 나타내는 전기 신호를 입력하고, 이 전기 신호를 새로운 포맷으로 변환하고, 그리고 최종적으로, 부호화되었던 원시 정보를 재생성하도록 신호가 복호화되는 것이 도 1B에 명백히 나타나 있다.
Ⅲ. 시스템 작동
도 2는 도 1A에서 설명된 시스템의 대략적인 작동을 설명하는 플로우챠트이다. 도 2에서 알 수 있듯이, 시스템은 그 작동 사이클 동안 여러 “상태”들을 통하여 진행한다. 굵은 실선은 정상 경로이고 실선은 인터럽트 출구 경로를 나타내며 점선은 바이 패스(by-pass) 경로를 나타낸다.
시스템에 의한 제1 작동은 셋 업(set-up) 상태(100)에서 발생한다. 이 단계는 압축 상태(102)로 진입되기 전에 입력 변수가 지정되도록 해준다. 이 압축 상태(102)에서, 재생 VTR(51) 내의 테이프에 저장된 비디오 영상은 비디오 부호화 장치(50)에 의해 디지탈식 압축 포맷으로 부호화된다.
압축 상태(102) 후에, 사용자는 편집 상태에서 사전에 압축된 데이터의 화상 품질에 근거하여 압축 프로세스를 수동으로 편집하도록 허용된다. 이것은 사용자가 비디오 프레임의 영역들 내에서 또는 어떤 시간 주기에 걸쳐서 화상 품질을 향상시키거나 또는 저하시키도록 해준다. 용어 “편집”은 장면들 자체가 화상 스트림에 부가되거나 또는 화상 스트림으로부터 제거되는 것을 의미하지는 않는 다는 것에 주목한다. 본 출원에서 용어 “편집”은 비디오의 양자화 및 그에 따른 비디오 품질의 변경을 의미한다. 영상어 편집 상태(104)에서 편집된 후, 새로운 사용자 지정 변수들에 따라 데이터를 부호화하기 위해 압축 상태(102)에서 또다시 압축 오퍼레이션을 실행할 필요가 있다.
사용자가 비디오의 편집된 형태에 만족한 후, 오디오, 비디오, 및 부제와 같은 다른 정보를 포함하는 모든 정보가 포멧 상태(106)에서 원하는 포맷으로 함께 결합된다. 완료 상태(108)는 어떠한 일시적 파일들도 소거하며 프로세스는 출구 상태(110)에서 종료된다. 도 2에 도시된 개별 상태들에 대한 좀더 상세한 정보는 도 3-6과 관련하여 이제 설명될 것이다.
도 3은 셋-업 상태(100)에서 수행되는 단계들을 도시한다. 단계(120) 셋업 상태를 시작하고 단계(122)는 시스템을 초기화한다. 이 단계는 워크스테이션(30)내에 포함된 시스템 제어 소프트웨어의 실행을 시작할 것이고, 콘솔 표시기(31)상에 표시된 사용자 인터페이스에 책임이 있고 키보드(32)와 포인팅 장치(33)를 통하여 입력된 변수들을 갖는 그래픽 사용자 인터페이스(GUI) 프로그램과 같은 다른 프로그램들의 실행을 시작할 것이다. 또한 단계(122) 동안 워크스테이션(30) 내의 시스템 제어기 소프트웨어는 다른 장치들에 절의하여 시스템의 이용 가능한 장치들을 포함한 시스템 상태를 판단한다.
단계(124)는 GUI를 통하여 사용자에게 정보를 표시한다. 환영 메시지, 시스템에 관한 정보, 부호화 프로세스를 위해 사용된 변수들, 및 임의의 사전 부호화된 파일들의 존재가 표시된다. 표시된 시스템 정보는 시스템에 접속된 장치들을 포함하는데, 오디오 부호기, VTR, 오디오 테이프 덱, 및 그들의 구성이 포함된다. 시스템이 사전부호화된 파일들을 포함하는 경우, 이 파일들을 발생하는데 사용된 오디오 및 비디오 부호화 변수들을 사용자에게 설명하는 정보가 표시된다.
그런 다음, 단계(126)는 표준 또는 사용자 지정 시스템 변수들을 사용하여 부호화를 시작하기 위한 명령, 시스템 변수에 대한 어떠한 변경 또는 선택된 변수가 수용 가능하다는 확인과 같은 사용자로부터의 정보를 입력한다. 사용자는 또는 부호화 작동을 위해 시작 및 종료 시간 코드들을 입력한다.
단계(128)는 부호화 및 압축 오퍼레이션을 준비하기 위하여 그래픽 사용자 인터페이스로부터의 입력 데이터를 시스텝 제어기 소프트웨어에 전송함으로써 입력데이터를 처리한다. 셋-업 상태는 단계(130)에서 종료한다.
도 4는 압축 상태(102)에서 실행되는 프로세스를 나타낸다. 정규 작동 플로우에 따르면, 사용자는 셋-업 상태에서 이미 압축될 비디오 및 임의의 수반되는 오디오 시퀀스를 지정하였다. 그런 다음, 사용자는 시스템이 자동적인 또는 자동-압축 프로시져를 실행하도록 명령해야 한다. 자동 압축 프로시져 동안의 비디오 압축은 사용자가 어떤 시간 주기에 거쳐서 또는 한 프레임이나 비디오 내에서 동적인 양자화 프로세스를 제어하도록 허용하지 않는다. 이것은 코딩 결정이 비디오 부호화 장치(50)에 의해 계산된 목적물 측정치를 기초로 해서 이루어지는 최초 압축 실행을 위한 것이다. 자동 압축이 이미 실행되었을 경우, 사용자는 공간적으로(한 프레임 또는 비디오에 걸쳐서) 또는 시간적으로(한 비디오 시퀀스에 걸쳐서) 편집 압축 모드에서 양자화를 수동으로 조정할 수도 있다.
압축 상태에서, 단계(140)에서 시작한 후, 단계(142)는 압축 오퍼레이션에 대비한다. 이 오퍼레이션에서 비디오의 타임 코드들과 같은 압축 프로세스에 대한 변수들과, 이 변수들과 함께 압축될 임의의 수반된 오디오가 워크스테이션(30)으로부터 워크스테이션(10)을 통하여 비디오 부호화 장치(50)에 다운로딩 된다(downloaded).
그런 다음 단계(144)는 원하는 압축의 타입을 결정한다. 제1 시간 정보가 압축된고, 압축 프로세스는 자동으로 그리고 사용자 간섭없이 실행된다. 단계(146)는 자동 압축 프로세스에 대비한다. 이러한 준비 기간 동안, 워크스테이션(30)은 디지탈 오디오 테이프 플레이어들(71a-71d)과 관련 오디오 부호화 장치(70a-70d) 중 어느 것이 사용될지를 결정한다. 또한, 워크스테이션(30)은 오디오 인터페이스 유닛(72)을 통하여 비디오 부호화 장치(50)와 오디오 부호기들(70a-70d)의 출력으로부터 비트스트림 캡쳐에 대비하도록 워크스테이션(20)에 명령한다. 더 나아가 재생 VTR(51), 레코드 VTR(52), DAT 플레이어들(71a-71d)은 테이프의 적절한 시작 위치로 회전된다. 그런 다음, 워크스테이션(40)은 단계(148)에서 재생 비디오 레코더(51), 레코드 테이프 레코더 (52), DAT 플레이어들(71a-71d)에 회전을 시작하도록 신호한다. 단계(150)는 비디오 부호화 장치(50)를 이용하여 MPEG-1 또는 MPEG-2와 같은 희망 포맷에 따라 비디오 데이터를 부호화한다. 또한, 오디오 데이터는 AC-3 포맷과 같은 원하는 포맷에 따라 부호화된다. 나중에 수동 편집 프로세스에서 보조할 로그 파일을 생성하는 것이 필요하다. 로그 파일은 차후의 비디오 데이터 편집을 실행하기 위해 필요한 부호화된 비디오 데이터의 피라메터들을 나타낸다. 부호화 프로세스는 적절한 시간 코드가 도달될 때 단계(160)에서 중지된다. 이 시간 코드는 부호화될 정보의 끝이거나 또는 비디오 시퀀스의 끝에 있지 않는 사용자 지정 포인트에 있을 수 있다.
단계(144)가, 자동 압축 프로세스는 이미 실행되었고 사용자가 도 5에 대하여 아래에 설명된 바와 같은 편집 상태 동안 지정된 파라메터들을 사용하여 비디오의 하나 또는 그 이상의 프레임들의 화상 품질을 수동으로 변경하기를 원한다고, 판별할 경우, 단계(144)는 편집 압축 오퍼레이션이 실행될 것임을 결정할 것이다. 단계(152)는 수동 편집이 시작하는 포인트인 원하는 시작 포인트에 재생 VTR(51)을 큐잉(cueing)하는 것을 포함하는 편집 압축 오퍼레이션에 대비한다. 또한, 오디오 장비는 일단 오디오 정보가 자동 압축 오퍼레이션에서 부호화되면 오디오 정보를 변경할 필요가 없기 때문에 디스에이블된다. 그런 다음 단계(154)는 재생 VTR(51)및 레코드 VTR(52)를 회전시킨다.
후속적으로 단계(156)는 도 5에서 설명된 편집 상태에서 사용자에 의해 지정된 파라메터들에 따라 비디오 데이터를 부호화하기 시작한다. 편집 압축은 종료 시간 코드가 도달될 때 단계(160)에서 종료된다. 단계(162)는 압축 및 부호화가 완료 되었다는 메시지를 사용자에게 표시하고, 단계(164)에서 이 프로세스는 종료된다.
도 5는 편집 상태(104)에서 수행되는 프로세스를 도시한다. 사전에 설명된 바와 같이, 언급된 상기 편집은 장면이 제거되거나, 감축되거나, 또는 비디오 시퀀스내에서 이동되는 종래의 비디오 편집이 아니고, 본 명세서에서의 편집 상태는 비디오의 양자화의 수동 세팅에 의해 비디오의 일부분 또는 시간적 시퀀스의 품질을 변경시키는 것을 지칭한다.
단계(170)에서 편집 상태를 시작한 후, 단계(172)는 사용자가 부호화 비디오의 비트 할당을 변경하여 비디오를 수동으로 편집하기를 원하는가를 사용자에게 질의한다. 사용자가 비트 할당을 변경하기를 원하지 않을 경우, 이 프로세스의 단계(188)에서 종료한다. 사용자가 비트 할당을 변경하기를 원할 경우, 사용자는 단계(174)에서 편집될 비디오 세그먼트를 정한다. 이것은 화상 품질이 변경될 비디오의 시간 주기를 선택함으로써 수행된다. 그런 다음 단계(176)는 만일 사용자가 공간적 또는 시간적 편집을 원하는가를 판별한다. 공간적 편집은 양자화 또는 비트의 할당이 비디오의 프레임 내의 어디에서 변경될 것인지에 관한 것인 반면에, 시간적 편집은 양자화 또는 비트의 할당이 어느 시간 주기에 걸쳐서 변경되는 것이지에 관한 것이다. 사용자가 공간적 편집을 선택할 경우, 플로우는 편집될 프레임 내의 영역을 입력하는 단계(178)로 진행한다. 또한, 인가될 변경의 상대적 정도가 입력된다. 본 발명의 경우, 0을 포함하여 -5 내지 +5의 정수 스케일이 변경의 상태적 크기를 나타내는데 사용된다. 사용자는 키보드(32) 및/또는 포인팅 장치(33)로 비디오의 영역을 표시할 것이고, -5와 +5를 포함하는 -5와 +5 사이의 정수 중 하나를 할당할 것이다. 사용자가 어떤 영역에 대해서 사전에 세팅된 양자화 레벨이 변경되지 않는 것임을 나타내는 것도 또한 가능하다. 예를 들어, 사용자가 특정 영역에 대해 비트 할당의 증가를 원할 경우, 다른 영역들에 대한 비트 할당이 감소되어야 할 필요가 있다. 만일 사용자가 “보호된” 것으로 지칭되기도 하는 불변 영역을 세팅할 경우, 개선되는 품질 영역에 대해 필요한 비트들이 보호된 영역으로부터 취득되지 않을 것이다.
만일 단계(176)가, 사용자가 시간적 편집을 원한다고 판정한다면, 플로우는 시간 주기가 편집될 방법을 입력하는 단계(180)로 진행한다. 공간적 편집과 유사하게, 시간적 편집을 위하여 사용자는 비디오의 특정 시퀀스에 적용될 변경의 상대적 정도를 나타내는 -5와 +5 사이의 정수값을 할당한다. 변경은 선택된 시간 주기 전체 동안 유효할 것이다.
공간적 편집 또는 시간적 편집이 단계(178, 180)에서 수행된 후, 단계(182)는, 예를 들면 수동으로 입력된 파라메터들에 따라 비디오 장면을 MPEG-2 포맷으로 재부호화 및 재압축한다. 사전 부호화된 데이터는 사용자가 품질이 어떻게 변경 되었는지를 정밀하게 비교하도록 비디오 표시 모니터(61)상에 새로이 편집된 데이터 다음에 표시된다.
조작자가 편집될 세그먼트를 표시하면, VTR(52)로부터 비디오는 저장 장치(60)로 전송되고 저장 장치(60)의 전체 가용 메모리의 많아야 반을 차지한다. 이 세그먼트는 “이전(before)” 세그먼트에 대응한다. 편집 압축 프로세스 동안, 비트스트림은 워크스테이션(20)에 의해 캡쳐되고 마스터 비디오 비트스트림 파일로 부터 분리된 디스크 파일로서 저장된다. 마스터 비디오 비트스트림 파일은 전체 영화 동안의 압축된 비트스트림이다. 편집-압축된 비디오는 VTR(52)에서 레코딩된다. 부호화 프로세스 동안 상기 VTR(52) 상에 레코딩되는 동시에 조작자가 화상을 시청할 것이다. 부호화 후에 조작자가 화상을 보기를 원할 경우, VTR은 재생 장치로서 이용될 수 있다. 조작자가 전후(before-and-after) 압축을 비교하기를 원할 경우, VTR(52)로부터의 대응 세그먼트는 저장 장치(60)에 전송되여, 이 장치(60)의 총 메모리의 나머지 반까지롤 소비한다.
이러한 부호화 후, 조작자는 변경된 비디오가 유지될 것인지에 대한 결정을 한다. 조작자가“후”의 세그먼트를 무시할 것으로 결정할 경우, 마스터 비트 스트림은 본래대로 남겨지고 편집 압축된 비트스트림은 삭제된다. VTR(52)이 마스터 비트스트림을 재현하도록 허용하기 위해, 편집된 세그먼트에 대한 추가의 자동-압축은 단지 “전” 세그먼트를 레코딩하기 위해서만 실행된다. “전” 세그먼트를 다시 VTR(52)로 전송하기 위해 장치(60)를 사용하는 대안도 또한 가능하다. 조작자가 “후” 세그먼트를 유지할 것으로 결정하는 경우, 마스터 비트스트림 파일은, 아래에 논의된 바와 같이, 편집-압축된 비트스트림 파일을 포함하도록 갱신되어야 한다.
사용자가 단계(184)에서 비디오가 수용 가능하다고 결정하는 경우, 사전 부호화된 데이터는 새로운 부호화된 데이터로 교체된다. 이 단계는 아래의 별도의 섹션에서 더 상세히 설명된다. 새로운 부호화 데이터가 사전 부호화 데이터를 대체한 후, 단계(192)는 사용자가 더 이상의 편집을 원하는지를 판별한다. 더 이상의 편집을 원할 경우, 플로우는 다시 단계(174)로 진행한다. 만일 사용자가 비디오 편집을 종료할 경우, 플로우는 편집 상태를 종료하는 단계(188)로 진행한다.
만일 사용자가 단계(184)에서 비디오가 수용할 수 없다고 결정하는 경우, 사용자는 단계(186)에서 편집 오퍼레이션을 빠져나와, 편집 변경이 레코딩되지 않도록 할 수 있고 또는 사용자가 비디오를 재편집할 수 있다. 비디오는 사용자가 편집시에 새로운 파라메터들을 선택함으로써 재편집된다. 사용자가 원할 경우, 편집될 새로운 비디오 세그먼트를 규정하는 것도 가능하다.
사용자가 압축(자동-압축 단독이거나 또는 편집-압축과 결부된 자동-압축)에 만족할 경우, 압축된 비디오, 압축된 오디오, 및 임의의 다른 파일들을 포함하는 개별 데이터 파일들은 최종 포맷으로 포맷팅될 준비가 되고 포멧 상태(106)에 진입한다. 보조 데이터는 최종 포맷화된 데이터 파일에 포함될 부제들과 같은 정보를 포함할 수도 있다. 도6에서 도시된 플로우챠트에 있어서, 단계(200)에서 포맷 상태를 시작한 후, 사용자가, 예를 들면, 플로피 디스크 드라이브 내의 플로피 디스크를 포함하는 디지탈 저장 장치로부터의 보조 데이터를 포함할 것을 결정하는 경우, 워크스테이션(20)은 이 보조 데이터를 판독한다. 그런 다음 단계(204)는 보조 데이터를 부호화된 오디오 및 비디오와 결합하여 최종 포맷화된 파일을 발생하게 된다. 시스템에 의해 발생된 최종 디지탈 비트스트림은 ISO/IEC 13818-1에 규정된 바와 같은 ‘프로그램 스트림’으로서 구성될 수 있다. 대안적으로, 최종 비트스트림은 직접 위성 DSS 포맷, 광 디스크에서 사용하기 적합한 VBR(Variable bot rate. 가변 비트 레이트), 포맷 또는 다른 유형의 포맷과 같은 임의의 유형의 포맷일 수 있다. 부호화된 비디오 및 오디오가 분리적으로 저장될 수도 있기 때문에, 상기 시스템은 동일한 부호화된 비디오 및 오디오가 서로 상이한 최종 포맷으로 부호화되는 것을 허용한다. 이것은 다른 포맷들을 발생시키는 기능을 갖는 하나의 포맷터(formatter)를 사용하거나, 또는 분리된 포맷터들에 의해 달성된다. 단계(206)는 포맷화된 파일을 디스크(21)에 저장한다.
단계(208)에서 완료 상태로 진입되고, 포맷화된 파일을 디지탈 저장 장치(22)내의 테이프에 기록하는 단계(208)로 진입된다. 이어서, 출구 상태로 진입되어, 더이상 필요치 않은 일시적 파일들을 삭제하는 여러 “하우스 크리닝(house cleaning)”기능을 실행한다. 압축 프로세스가 종료되기 전에 비정상 출구 요구가 있는 경우, 중지 작업(abort procedure)이 워크스테이션(30) 내에서 실행되어, 오디오 및 비디오 테이프 플레이어를 정지시키고 개악된 가능성이 있는 데이터 파일들을 지워버리기도 한다.
Ⅳ. 시스템 대안
양호한 시스템 구성 요소들과 그들의 오퍼레이션은 위에서 설명되었고, 대안적인 하드웨어가 도 1A 및 도1B에 개시된 하드웨어를 대신할 수도 있다. 비디오 부호화 장치(50)는, 가능하다면, MPEG-2 비디오 부호기인 것이 바람직하다. 그러나, MPEG-1 비디오 부호기로도 공지된 사용의 ISO/IEC 1172-비디오 표준 부호기가 사용될 수도 있다. MPEG-1 부호기에 대한 필요한 변경은 MPEG-1 버퍼 관리 모듈이 워크스테이션(10)과 같은 외부 소스로부터 제어되는 것을 허용하도록 만들어질 필요가 있을 것이다. 또한, 입력 비디오에 대한 지원은 ITU-R 601(공식적으로 CCIR 601) 해상도 비디오를 포함하도록 확대되어야만 한다. 이러한 변경들은 디지탈 비디오 부호화의 기술 분야의 기술자에 의해 오류없이 구현될 수 있다.
네개의 오디오 테이프 플레이어들 및 네개의 오디오 부호기들이 도1A에 도시되어 있지만, 다른 구조들이 오디오 시스템을 위해 쉽게 채택될 수 있다. 예를 들면 상용의 8mm 디지탈 오디오 플레이어는 다수의 DAT 플레이어들 대신 사용될 수도 있다. 단일 TASCAM 디지탈 오디오 플레이어를 사용하면, 단지 단일 RS-422 제어 신호만이 워크스테이션(40)에서 필요로 하며 최고 8개의 오디오 채널들이 동시에 지원될 수 있다. 오디오 부호기들은 물론 8개의 오디오 입력을 동시에 수용할 수 있어야 하며, 오디오 인터페이스 유닛(72)은 또한 4개에서 8개로 오디오 데이터 스트림을 증가하여 수용하도록 수정되어야만 한다.
동시적 오디오 및 비디오 부호화에 대한 대안으로서, 오디오 및 비디오 부호화는 분리된 시간 및/또는 위치들에서 실행될 수 있으며,차후의 시간에 최종의 포맷으로 결합될 수 있다. 이것은 SMPTE(동화상 및 텔레비젼 엔지니어 협회) 시간 코드 포맷과 같은, 공지된 시간 코드들의 사용을 필요로 한다. 시간 코드들은 비디오 테이프 플레이어, 워크스테이션, 또는 별도의 독립형 시간 코드 발생기에 의해 발생된다.
비디오 복호기가 이용 가능하고 워크스테이션(20)에 접속된 경우에는 레코드 VTR(52)이 제거될 수도 있다. 이 경우, 재구성된 비디오는 압축 단계 동안 비디오 부호화 장치(50)로부터 레코딩되는 대신에 디스크(21) 내의 디스크 파일들로부터 발생될 것이다. 레코드 VTR(52)을 제거하는 것은 테이프 비용 뿐만 아니라 장비 면에서 모두 시스템의 비용을 상당히 절약하게 만들 것이다.
더 나아가, 표시 비디오의 그래픽 오버레이 면 상에 그래픽 오퍼레이션을 실행하는 기능이 상용의 X-터미널 옵션을 이용하여 콘솔 표시기 상에 지원될 수 있다. 예를 들면, 콘솔 표시기(31)는 오버레이 그래픽 윈도우를 이용하여 비디오를 표시할 수 있는 X-터미널로 교체될 수 있다. 펜실베니아 킹 오브 프러셔의 휴면디자인드 시스템즈(Human Designed Systems of King of Prussia, Pennsylvania)로부터의 HDSV 뷰 스테이션과 같은 상용의 멀티미디어 표시 터미널은 필요한 기능들을 제공한다. 비디오 복호기로부터의 비디오는 표시 및 수동 편집의 영역 규정 오퍼레이션을 위하여 X-터미널에 접속될 수 있다. 그러나 비디오 복호기로부터의 프로페셔널한 품질의 비디오는 도 1A에 도시된 모니터(61)와 같은 프로페셔널한 모니터상에 표시되어 사람 조작자가 재구성된 비디오 신호의 품질을 평가할 수 있게 해야 한다.
Ⅴ. 최적의 부호화 효율을 유지하면서 오디오 부호기 수를 축소하기
위에서 설명된 바와 같이, 도 1A는 하나의 멀티패스 비디오 부호화 장치(50)와 네개의 1-패스(one-pass) 오디오 부호기들(70a, 70b, 70c, 70d)을 구비한 부호화 시스템에 도시한다. 재생 VTR(51)은 부호화될 비디오 신호를 비디오 부호화 장치(50)에 공급하고 디지탈 오디오 테이프(DAT) 플레이어들(71a-71d)은 부호화될 오디오 신호를 각각 1-패스 오디오 부호기들(70a-70d)에 공급한다.
본 발명의 양호한 실시예는 8개의 오디오 트랙들을 최종 포맷화된 가청 가시 데이터 스트림으로 부호화한다. 각각의 오디오 트랙은 하나 또는 그 이상의 오디오 채널들을 포함한다. 예를 들면, 오디오 트랙은, 오디오 트랙이 비록 다른 배열에서 오디오를 포함할 수 있다고 하더라도, 좌측 및 우측 채널들을 포함할 수 있다. 가장 효율적인 가청 가시 부호화를 실행하기 위해 오디오 부호기의 수를 결정하는 방법과, 이러한 가청 가시 부호화를 실행하는 방법이 도 7에서 도시된다. 도 7에서, 시작한후, 단계(240)는 비디오 부호화에 필요한 패스의 수, P를 결정한다. 비디오를 MPEG 포맷으로 부호화하기 위하여, 비디오를 부호화하는데 전형적으로 둘 또는 그 이상의 패스들이 필요하다. 본 발명의 경우 양호한 패스의 수는 둘이지만, 셋 또는 그 이상의 패스들도 가능하다. 단계(242)는 부호화될 오디오 트랙의 수, T를 결정한다. 본 발명에서 오디오 트랙의 수는, 다른 갯수의 오디오 트랙들도 가능하지만, 되도록이면 8개가 좋다. 그런 다음, 단계(244)는, 가장 효율적인 가청 가시 부호화를 실행하는데 필요한 1-패스 오디오 부호기의 수인, AE를 계산한다. 필요한 오디오 부호기의 수는 비디오 부호화에 필요한 패스의 수로 나뉘어진 부호화될 오디오도 트랙의 수와 동일하다. 양호한 실시예에서, 8개 오디오 트랙들이 부호기들을 위한 두개의 패스들로 나뉘면 4개의 오디오 부호기들이 필요하다. 계산된 오디오 부호기들의 수가 정수가 아닐 경우, 계산된 오디오 부호기들의 갯수가 정수가 되도록 반올림할 필요가 있다. 예를 들면, 2-패스 비디오 부호기용으로 단지 7개 오디오 트랙들이 부호화되는 경우, 7/2 = 3.5 이고, 다음 상위 정수인 4로 반올림된다. 이 시스템에 의해 수행되는 부호화 프로세스 동안, 1개의 비디오 패스는 단지 세개의 오디오 부호기들만 이용하는 반면, 다른 비디오 부호화 패스는 4개의 오디오 부호기 모두를 사용한다. 단계들(240-244)은 단지 시스템의 초기 설계시에 실행될 필요가 있을 수 있고, 가청 가시 작업이 부호화될 때 마다 필요한 1개의 패스의 오디오 부호기의 수를 계산할 필요는 없다. 더 나아가 단계들(240, 242, 244)은 워크스테이션(30)과 같은 컴퓨터에 의해 구현된 컴퓨터/머신즈이거나, 또는 가청 가시 부호화 시스템의 사용자 또는 설계자에 의해 결정될 수도 있다.
오디오 부호기의 수가 결정되고 가청 가시 부호화 시스템이 셋업된 후 가청 가시 부호화 프로세스가 시작될 수 있다. 단계(246)는 카운터(COUNTER)를 1로 세팅한다. 카운터는 비디오 부호화 시스템의 각각의 패스를 카운트하는데 사용되는 변수이다. 그런 다음 단계(248)는 오디오 트랙들 중 전부가 아닌, 몇몇에 대해 1-패스 오디오 부호화를 실행하면서 제1 비디오 부호화 패스를 수행한다. 예를 들면, 8개 오디오 트랙들과 2-패스 비디오 부호기가 있을 경우, 4개 오디오 부호기들이 제1 패스 동안 사용될 수 있다. 그런 다음 단계(250)는 카운터를 1 만큼 증가시킨다. 단계(252)는 단계(248)에서 사용되었던 동일한 오디오 부호기들을 사용하여 부호화되지 않은 오디오 트랙들의 1-패스 오디오 부호화를 수행하면서, 다음 비디오 부호화 패스를 수행한다. 예를 들면 제2 비디오 부호화 패스 동안, 단계(248)에서 사용된 4개 오디오 부호기들은 5개 내지 8개의 오디오 트랙들을 부호화할 수 있다. 단계(254)는 카운터가 비디오 부호화에 필요한 패스의 수, P와 동일한지를 판별한다. 양호한 실시예에서는, 단지 2개의 비디오 부호화 패스들이 있으며, 따라서 프로세스가 종료될 것이다. 그렇지 않으면, 플로우는 단계(250, 252, 254)의 루프를 다시 실행하기 위해 복귀된다.
물론, 다른 실시예들은 8개 오디오 트랙들을 갖는 가청 가시 작업을 위해 2-패스 비디오 부호기 이외의 것을 사용하는 것이 가능하다. 예를 들면, 3-패스 비디오 부호기가 6개 오디오 트랙들과 함께 사용될 수도 있다. 이 상태에서 오디오 부호기의 가장 효율적인 갯수는 2(6/3 = 2)이다. 2-패스 비디오 부호기가 사용되고 총 6개 오디오 트랙들이 부호화될 예정이라면, 오디오 부호기의 가장 효율적인 갯수는 3이다. 대안으로서, 부호화를 위해 5개 오디오 트랙들이 있는 시스템에서, 3-패스 비디오 부호기가 사용될 수도 있다. 이 대안의 시스템은 두개 1-패스 오디오 부호기를 필요로 하는데 비디오 부호기 패스들 중 한 패스는 오디오 부호기들 중 단지 한개의 부호기가 사용되는 동안 작동하고, 다른 두 비디오 부호화 패스들은 오디오 부호기들 중 두개의 부호기들 모두가 사용될 동안 작동한다. 물론 본 명세서에 포함된 기술의 견지에서 통상의 기술자에게 명백한 바와 같이 비디오 부호기들과 오디오 트랙들의 수의 다른 조합도 가능하다.
가능한 한 효율적인 상태에 있는 본 발명의 중요한 특징은 비디오 부호화의 패스가 발생할 때 오디오 부호화를 항상 실행하고 오디오 부호화가 발생할 때 비디오 부호화의 패스를 항상 실행하는 것이다. 이러한 배열에서, 오디오 부호기들의 적어도 몇몇은 비디오 부호화 오퍼레이션의 각각의 패스 동안 항상 사용될 것이다. 가능한 한 효율적으로 되게 하기 위하여, 오디오 트랙들의 수가 오디오 부호기들의 수에 의해 균등하게 분할될 수 없을 때(즉, 부호화될 오디오 트랙들의 수가 비디오 패스들의 수로 나뉘어 질 때 나머지가 있을 때) 전체 부호화 프로세스 동안 비디오 패스들의 수 빼기 나머지와 동일한 다수의 아이들(idle) 상태의 오디오 부호기들이 있게 될 것이다. 예를 들면, 3 패스 비디오 부호기와 4개의 오디오 트랙들의 경우, 2개 오디오 부호기들이 필요하고 나머지 1이 있을 것이다(예를 들면, 4/3 = 1 과 나머지 1). 따라서 가능한 한 효율적으로 되도록 하기 위하여, 그리고 3 패스 비디오 부호화가 완료됨과 동시에 오디오 부호화를 완료하기 위하여, 오디오 부호기들이 아니들(idle)인 것이 2회(예를 들면 3 비디오 패스 빼기 나머지 1은 2와 동일함)를 넘을 수 없다. 부호기들이 아이들인 2회는 , 부호기가 위의 예에서 다른 두 비디오 부호화 패스들 각각이 모든 오디오 부호기들을 사용함을 의미하는 동일한 패스(동일한 비디오 부호화 패스에서 아이들인 두개의 다른 오디오 부호기들이 있음.)에서 발생할 수 있거나, 또는 하나의 아이들 상태의 오디오 부호기가 있는 두 비디오 부호화 패스가 있을 수도 있다. 이들 두 패스들에서, 같거나 또는 다른 오디오 부호기들이 아이들 상태일 수 있다.
Ⅵ. 부호화 비디오의 정보를 저장하기 위한 로그 파일들과, 로그 파일들 및 부호화된 비디오를 액세스하기 위한 로그 해석기 유틸리티
개시된 부호화 시스템은 초기에 비디오 MPEG-2, MPEG-1 또는 다른 디지탈 비디오 부호화 포맷과 같은 압축된 디지탈 포맷으로 부호화한다. 이 부호화는 시스템 구성 요소에 관한 섹션 Ⅱ와 일반적 시스템 오퍼레이션에 관한 섹션Ⅲ에서 상술되었다. 그런 다음, 예를 들어, 부호화된 비디오 데이터는 하드 디스크에 디지탈 포맷으로 저장된다.
디지탈 비디오 부호화 프로세스 동안, 비디오에 대한 통계치 및 다른 정보가 발생되어 로그 파일들에 저장된다. MPEG 비디오 부호화와 친숙한 당해 기술 분야의 통상의 기술자는 비디오를 설명하는 통계치 및 정보의 유형과 이들 통계치 및 정보를 발생시키는 방법에 대해 친숙하다. 종래의 부호화 시스템에서, 이러한 유형의 정보 및 데이터가 발생되지만, 보통 비디오 부호화 후에는 폐기된다. 그러나, 본 발명의 경우, 화상을 코딩하는데 사용된 총 비트, 화상 부호화의 평균 제곱 에러 (mean square error), 각각의 화상에 대한 평균 양자화 스케일 등과 같은, 발생된 정보는 부호화 프로세스 후 시스템 RAM으로부터 로그 파일들로 덤프된다. 본 발명에 의해 사용된 로그 파일들의 예는 도 8A-10B에 도시되어 있다. 로그 파일들은 특히 VBR 시스템에서 유용하며, 비디오 부호기의 초기 패스(패스들) 동안 발생된다. 그런 다음, 로그 파일들은 최종 부호화 패스 동안과 비디오의 차후 편집 및 재부호화 동안 사용된다.
본 발명에 의해 사용될 수도 있는 세가지 다른 유형들의 로그 파일들에는 시퀀스 층 로그 파일, 화상 층 로그 파일, 및 매크로블럭 층 로그 파일이 있다. 이들 로그 파일들 각각은 그 각각의 층의 통계치 및 정보를 나타낸다. 두가지 다른 유형들의 매크로블럭 층 로그 파일 포맷들이 있는데, 도 10A에 도시된 전체 포맷과 도 10B에 도시된 짧은 포맷이 그들이다. 전체 포맷은 매크로블럭 층의 상세한 정보가 필요할 때 사용되고, 짧은 포맷은 매크로블럭들의 세부 사항 모두에 대한 트랙을 유지할 필요가 없을 때 사용된다. 2시간 영화에서, 다수의 매크로블럭들로 인하여 매크로블럭 로그 파일들은 다량의 저장 공간을 소비할 것이다. 따라서 다량의 저장 공간이 이용 가능하지 않으면, 전체 또는 짧은 포맷 매크로블럭 파일들을 저장할 수 없을 수도 있다. 그러나, 매크로블럭 정보를 얻을 필요가 없는 경우, 부호화 비디오를 복호화함으로써 또는 다른 수단에 의해 재구성될 수 있다.
도 8A 내지 도 10B에 도시된 로그 파일 포맷들의 많은 상세한 설명은 중요하지 않으며, 이들 파일 포맷들은 단순히 부호화 프로세스 동안 발생될 수 있는 데이터의 예들을 제공되었다. 그러나, 로그 파일들에서의 일부 정보는 비디오의 품질을 변경하는 프로세스 동안 사용되기 때문에 중요하다. 이하에서 설명되는 바와 같이, 부호화 비디오의 편집 포인트를 결정하기 위하여, 앞선 화상에 의해 소모된 비트 수를 합산할 필요가 있다. 합산된 정보는 도 9B 및 도 9C에 도시되며, 각각의 화상 (발생된 비트 화상(generated_bit_picture))에 대한 비트 수, 시퀀스 헤더(header)(비트 시퀀스 헤더 (bits_sequence_header))에 대한 비트 수, 화상 군 (GOP) 헤더(비트GOP 헤더 (bits_GOP_heaedr)에 대한 비트 수, 스터핑 (stuffing)으로서 사용된 비트 또는 공간을 채우기 위해 사용된 비트 수(스터핑 크기 (stuffing_size))에 관한 것이다.
도 11에는 로그 파일들을 사용하여 수행되는 상이한 기능들의 플로우챠트가 도시되어 있다. 비디오 세그먼트의 초기 부호화 후에, 단계(270)는 도 A 내지 도 9C에서 도시된 비디오 부호기의 자동 실행에 의해 발생된 화상 및 시퀀스 층 로그 파일들을 판독 기록한다. 그런 다음 단계(272)는 부호화 비디오에 레코딩된 모든 화상에 대한 로그 파일 레코드들의 바이트 오프셋들을 나타내는 인덱스 테이블을 생성한다. 두개의 테이블들이 생성되는데, 그 하나는 프레임 넘버에 의해 인덱스되고 다른 하나는 시간 코드에 의해 인덱스된다. 시간 코드 액세스 테이블은 시간 코드의 오름 차순으로 저장되어 있는 각각의 화상의 로그 파일들에 대한 바이트 오프셋을 포함한다. 유사하게, 화상 프레임 인덱스 테이블은 (부호기에 의해 알 수 있는 바와 같이) 입력 화상 넘버의 오름 차순으로 저장된 로그 파일의 바이트 오프셋을 포함한다.
발생된 인덱스 테이블들은 어떤 원하는 화상이나 또는 매크로블럭의 로그 정보를 급히 식별하는데 도움이 된다. 비록 고정된 크기의 레코드들이 로그 파일 내에 시퀀스, 화상 또는 매크로블럭 데이터를 저장하는데 사용된다고 하더라도, 부호기는 입력되는 호상을 코딩하기 전에 이들을 재배열한다. 또한 매 초당 30 프레임으로 3 :2 로 떨어진 영화(매 초당 24 프레임) 소스를 처리할 때 어떤 시간 코드들은 스킵(skip)된다. 인덱스 테이블들은 화상의 재배열과 시간 코드의 스키핑에도 불구하고 적절한 데이터를 재빨리 지정하는 수단을 제공한다.
본 발명의 부호화 시스템은, 부호화 비디오가 여러 프레임들로 빈번히 변할 것이고 비디오의 시간 주기들이 수동으로 변경된 품질을 가지기 때문에, 각각의 화상을 코딩하는데 사용된 부호화 비트 수에 대한 디렉토리 또는 인덱스를 보유하지 않는다. 그러나, 부호화된 비디오의 정보를 설명하는 로그 파일들은 고정된 크기의 레코드이고, 따라서, 화상의 품질 또는 시간 주기가 변경될 때 조차도 로그 파일 내에 정보의 디렉토리 또는 인덱스를 유지하는 것이 쉽다.
인덱스 테이블의 생성 후에 단계(247)는 사용자가 블럭들(276, 278, 280)에 도시된 여러 로그 파일 유틸리티들을 사용하여 로그 파일들로부터 여러 정보를 신속히 얻게 해준다. 로그 파일의 레코드가 필요할 때, 생성된 인덱스는 로그 파일 내의 소정의 레코드를 결정하는데 사용되며 완전한 레코드가 로그 파일로부터 꺼내진다. 그런 다음, 이 레코드는 원하는 개별 피라메터들을 검색하기 위해 해석된다. 인덱스 테이블의 도움으로 개별 레코드를 해석하는 프로세스는 다른 로그 해석기 유틸리티들 모두에 대한 기초이다. 해석 프로세스들은 공지되어 있고, 당해 기술 분야의 통상의 기술자는 구성된 파일로부터 원하는 정보를 어떻게 검색하는지를 안다.
단계(276)는 로그 파일의 컷 및 페이스트(cut and paste) 유틸리티이다. 한 프레임내에서 또는 어떤 시간 주기에 걸쳐서 양자화(및 화상 품질)를 수동으로 변경 한 후, 로그 파일들의 원래 세트는 편집 기간 동안 발생한 변경에 대응하도록 갱신 될 필요가 있다. 로그 파일 컷 및 페이스 유틸리티는 편집된 세그먼트 시간 코드들에 대응하여 로그 파일들에 오프셋들을 배치하고 로그 파일들의 정보를 재부호화된 비디오에 대응하는 새로운 정보로 대체한다. 재부호화 프로세스는 다음 섹션 Ⅷ에서 설명된다.
단계(278)는 디지탈식 부호화 비트스트림의 편집을 가능하게 하기 위한 파라메터들을 얻기 위한 유틸리티를 나타낸다. 비디오가 최초로 부호화되고, 사용자가 프레임의 품질 또는 비디오의 시간 주기를 변경하기를 원할 경우, 부호화된 비디오에서 제거될 부분들과 원하는 품질을 갖는 새로이 부호화된 비디오로 교체될 부분들을 적절히 결정할 필요가 있다.
부호화 비디오의 비트스트림에서 편집 포인트에 대한 바이트 오프셋들은 편집 포인트에 대응하는 화상들까지 각각의 화상을 부호화하는데 사용된 바이트들을 가산시켜 계산함으로써 결정된다. 특정 화상이 배치되는 파일의 시작으로부터 총 바이트 또는 총 비트 수를 결정하기 위하여, 이전의 여러 화상 각각을 부호화하는데 사용된 비트 수가 합산된다. 합산되는 화상 로그 파일로부터 얻어진 정보는 ith화상을 부호화하는데 사용된 비트 수 Bi, 시퀀스 헤더를 포함하는 비트 수 Si, 화상군(GOP) 헤더를 부호화하는데 사용된 비트 수 Gi, 스터핑으로서 사용된 비트 수 Ti이다. N번째 화상에 대한 비트 오프셋은 다음과 같이 계산된다.
[수학식 1]
Figure kpo00001
바이트 오프셋은 비트 오프셋을 8로 나눔으로써 간단히 계산된다. 부호화 비디오 비트스트림의 어드레스 오프셋을 결정하기 위해 로그 파일을 사용하는 것에 대한 대안으로서, 비트스트림 복호기가 화상 오프셋의 디렉토리를 생성하는데 사용될 수 있었다. 그러나, 이 방법은 각각의 편집 후에 복호기가 디렉토리를 갱신하기 위하여 전체 비트스트림을 통하여 실행해야 하기 때문에 성가시다.
최종적으로, 단계(280)는 가장 가까운 화상 군(GOP)의 시작 또는 종료에 대해 시간 코드를 반올림하기 위한 유틸리리티를 나타낸다. 부호화 비트스트림 또는 편집의 모든 커팅(cutting)은 화상 군(GOP)의 경계에서 수행된다. 그러나 GOP 경계들은 비디오에 관한 편집을 수행하는 조작자에게 알려져 있지 않다. 일단 조작자가 편집 세그먼트들의 시작과 종교 포인트들을 지정하면, 시스템은 GOP 경계들을 계산한다. GOP 경계는 각각의 화상 레코드 내에 저장된 GOP 번호로 지칭되는 화상 층 파라메터를 대조함으로써 정해진다. 화상 층 로그 파일의 연속적인 레코드들을 통하여 추적함으로써, 도 9B의 GOP 번호(GOP_number)가 변화할 때 GOP 경계가 결정된다.
로그 파일과 로그 파일 유틸리티들이 비디오 부호기과 빌접하게 관련되기 때문에 로그 파일들은 도 1A에 도시된 워크스테이션(10)의 하드 디스크에 저장되며 로그 파일 유틸리티들은 워크스테이션(10)에 의해 실행된다. 대안적으로, 워크스테이션(30) 또는 다른 어떤 처리 시스템이 로그 파일들을 포함할 수 있으며 로그 파일 유틸리티를 실행할 수도 있다.
Ⅶ. 부호화된 비디오의 품질 변경
A. 시간 주기에 걸친 품질 변경
부호화 시스템에 의해 발생된 부호화된 비디오는 광 디스크와 같은 최종 디지탈 저장 매체에 기록되도록 의도된다. 디스크 상의 부호화된 비디오는, 일정한 비트 레이트(CBR) 오퍼레이션과 대조되는, 비디오의 색다른 섹션들 가운데 비트레이트의 큰 변화 가능성을 허용하는 가변 비트 레이트(VBR)로 부호화된다. VBR 코딩은 상당히 다른 비트 수가 다른 화상들에 할당되도록 허용하기 때문에, 화상 품질이 시간에 걸쳐 변경될 수 있다. 더 나아가, VBR은 CBR 오퍼레이션으로는 가능하지 않은 스케일로 비디오의 사용자 규정 섹션들에 데이터 레이트들을 재할당할 수 있는 가능성을 제공한다. CBR을 사용하여 상기와 동일한 것을 달성하기 위하여 극단적으로 큰 버퍼들이 복호기에 요구될 것이다.
부호화 시스템은 수동 편집으로 지칭되는 것을 허용하지만, 수동 편집은 화면의 축소 또는 확대 또는 영화에 있어서 다른 화면의 교체가 아니라, 화상 품질의 변경이다. 화상 품질은 시간에 걸쳐서 변경될 수도 있으며, 본 섹션에서 설명되는 바와 같이 시간적 편집 또는 시간적 수동 편집으로 지칭된다. 다른 절은 어떤 프레임의 한 섹션으로부터 어떤 프레임의 다른 섹션으로 비트를 이동시킴으로써 데이터의 프레임내에서 화상 품질을 변경하는 것을 논의할 것이며, 공간적 편집 또는 공간적 수동 편집으로 지칭될 것이다.
편집 세그먼트의 여러 섹션들 가운데 비트들의 시간적 편집 또는 재할당에서 다음의 세가지 주요한 제약들이 만족될 필요가 있다.
1. 편집되는 영화/비디오에 대한 전체 용량은 할당된 용량을 초과하지 않을 것.
2. 편집 세그먼트 내에는 버퍼 언더플로우(underflow)가 없을 것.
3. 시간적 편집으로 인한 편집 세그먼트 외부의 버퍼 언더플로우가 없을 것.
제약 1은 결과적으로 편집된 세그먼트가 원래 부호화된 세그먼트와 동일한 비트 수를 소비하도록 편집 세그먼트를 재부호화함으로써 처리된다. 편집 세그먼트는 고려중인 전체 시간 주기이다. 편집 세그먼트 내의 다른 주기들은 사용자에 의해 품질을 할당받으며, 편집 세그먼트의 이들 시간 주기들은 단순히 섹션들 또는 시간 주기들로 지칭된다.
언더플로우 상태가 존재할 지의 여부를 판별하기 위하여, 복호기의 모델을 사용하여 목표 비트들을 검사할 필요가 있다. 부호기의 VBR 오퍼레이션에서, 비디오 버퍼 검증기(VBV) 모델의 수정된 버젼이 이용된다. 이 모델은 VBR에 대한 단순한 수정된 모델로서 지칭되며 디지탈 저장 매체(DSM)용으로 이용될 수도 있다. VBR 모드용 VBV는 공지되어 있고, MPEG-2 표준에 규정되어 있으며, ISO/IEC 13818-2, 부록 C의 C.3.2 절에서 특히 구체적으로 찾아볼 수 있다.
VBR용 VBV 모델에서 복호기의 버퍼는 모두 남아 있을 수도 있으나 언더플로잉(underflowing)으로부터 제한된다. 또한, 버퍼는 버퍼가 채워질 때까지 일정한 레이트 Rmax에서 채워지며, 버퍼가 비기 시작할 때까지 비트들은 버퍼에 전송되지 않는다. 매 프레임 간격에서, 한 프레임을 복호화하는데 필요한 비트들이 버퍼로부터 제거된다. 이것을 교려하면, VBR모드에서 버퍼 언더플로우는 일련의 화상들에 너무 많은 비트들을 할당함으로써 유발됨을 알 수 있다. 화상들의 비트들이 버퍼로부터 제거되기 때문에, 버퍼는 비게 되고 고품질 화상의 다수의 비트들이 버퍼가 채워질 수 있는 레이트보다 더 빠른 레이트로 재거될 경우에 언더플로우하게 된다. 언더플로우를 방지하기 위하여, 화상을 부호화하는데 사용된 비트 수가 감소된다.화상에 대한 비트 수를 감소시키는 것은 채우는 레이트를 동일하게 유지하면서 버퍼로부터 비트가 제거되는 레이트를 감소시킨다. VBV 점유가 모두 채워지면, VBV 버퍼로의 비트스트림 송신이 즉시 정지되기 때문에 VBR에 대해서는 버퍼 오버플로우가 발생할 수 없다. 이것은 버퍼 오버플로우가 없고 단순히 버퍼 풀(full) 상태가 있음을 의미한다. 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_지연(vbv_delay) 필드는 FFFF로 세팅된다.
시간 주기들에 걸쳐서 비디오 품질의 변경은 비디오의 프레임들에 비트들을 부가하거나 또는 비디오의 프레임들로부터 비트들을 제거하는 것이 필요하다. 비디오의 섹션에 부가되거나 또는 그로부터 제거될 비트 수에 대한 설명이 이하에 제공된다. 비디오의 섹션에 부가되거나 또는 그러부터 제거될 비트 수는 고려중인 비디오의 센셕의 유효 비트 레이트에 의존한다. 효율적인 비트 레이트 R은 다음과 같이 계산된다.
[수학식 2]
R = (총 할당된 비트/프레임의 수) * 프레임 레이트
할당된 비트 수가 다른 단위임을 제외하면 비트 레이트와 동일한 의미를 나타내기 때문에, 할당된 총 비트 수가 비트 레이트에 직접적으로 비례한다. 보증된 최소 레이트는 소위 Rmin이라고 하고 어떠한 비디오 섹션에도 응용되는 것으로 가정하면, 섹션 'i'로 부터 제거될 수도 있는 최대 비트 수는 다음과 같다.
[수학식 3]
Ti=(Ri- Rmin) * Ni/ 프레임_레이트
여기서 Ni는 섹션‘i’에서의 프레임의 수이고 Ri는 동일 섹션에서의 유효 레이트이다. 보증된 최소치는 그 섹션에 대한 어느 정도의 최소한의 품질 레벨을 보장하도록 요구된다. 마찬가지로 주어진 섹션 ‘j’에 부가될 수도 있는 최대 비트 수는 다음과 같이 계산된다.
[수학식 4]
Tj=(Rmax- Rj) * Nj/ 프레임_레이트
여기서 Rmax는 최대 레이트이거나, 또는 풀로 가득차지 않은 경우의 버퍼가 채워지는 레이트이며 Nj는 섹션 j의 프레임의 수이다.
시간 주기들(시간적 편집)에 걸친 화상 품질의 변경에 관한 설명은 도 12 및 그와 관련된 도면들과 연관하여 설명될 것이다. 시작 후에, 단계(281)는 Ⅱ 와 Ⅲ절에서 상술한 바와 같이, 어떤 사용자의 간섭도 없이 자동 비디오 부호화를 실행한다. 자동 부호화를 위하여, 발생된 데이터 스트림의 최대 및 최소 레이트가 있음을 조목한다. 최대 비트 레이트는 비디오 복호기의 기능에 의해 결정되어, Rmax는, 예를 들면, 8Mbits/sec이다. 최소 비트 레이트는 원하는 최소 화상 품질에 따라 사용자에 의해 지정될 수 있다. 전형적이 최소 비트 레이트 Rmin은 3Mbits/sec이다. 비디오의 일부분이 더 낮은 비트 레이트를 갖도록 하고, 비디오의 다른 부분이 더 높은 비트 레이트를 갖도록 하기 위하여, Rmin을 평균 부호화 레이트와는 다르게 평균 부호화 레이트 이하로 세팅하는 것이 바람직하다. Rmin이 비디오의 평균 부호화 레이트보다 약간 낮게 세팅될 경우, 결과적인 부호화 비디오는 상당히 일정한 품질을 가질 것이다. 전형적으로, Rmax= 8Mbits/s이고 Rmin이 대략 3Mbits/s인 경우, 비디오의 평균 부호화 레이트 값은 약 3½내지 5Mbits/s이어야 한다.
단계(281)에서 자동 비디오 부호화가 실행된 후, 레이트 양자화 함수를 결정하는 것이 필요하다. 본 발명의 프로세스는 원하는 품질을 얻기 위해, 얼마나 많은 비트들이 필요한지를 결정하지만, 재부호화될 때는 양자화 값이 원하는 비트 레이트를 초래하기 위하여 세팅되어야 한다. 레이트 양자화 함수는 논문-1994년 9월자 영상 프로세스에 관한 IEEE 회보 제3권 제5호 p. 533-545의 램챈드란(Ramchandran)등에 의한 “다중 해상도 및 MPEG 비디오 명세의 응용에 따른 의존적 양자화용 비트 할당(Bit Allocation for Dependent Quantization with Applications to Multiresolution and MPEG Video Disclosures)”, 1993년 IEEE ICASSP V-381-V-384 페이지의 램챈드란 등에 의한 “MPEG 비디오 코더의 응용에 따른 의존적 양자화용 비트 할당(Bit Allocation for Dependet Quantization with Applications to MPEG Video Coders)”, 1994년 프린스턴 비디오 회의에서 제안된 레이닝거(Reininger)에 의한 “레이트 왜곡 곡선을 사용하여 다중화된 MPEG 비디오에 대한 조인트 다중-채널 비트 레이트 제어(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 범위의 다른 우선 순위들을 할당 받는다. 우선 순위 “없음”은 P의 우선 순위와 비슷한 말이다. 물론 부호화 시스템은 위의 입력 방식에 한정되지 않으며, 다른 범위들 또는 심볼들이 사용자가 원하는 우선 순위를 입력하는데 사용될 수도 있다.
사용자는 우선 순위를 할당할 뿐만 아니라, 또한 최소 비트 레이트를 입력시킬 수도 있다. 이 비트 레이트는 단계(281)의 자동 비디오 부호화 동안 비디오를 부호화하는데 사용된 최소 비트 레이트와는 다를 수도 있다. 사용자 인터페이스의 또다른 특징은 사용자가 “백그라운드 우선 순위”를 지정하도록 허용하는데, “백그라운드 우선 순위”는 선택된 시간 주기 내에서 사용자에 의해 우선 순위를 할당받지 않은 시간 주기들이 이 백그라운드 우선 순위를 갖음을 의미한다. 예를 들면, 도 13에서 백그라운드 우선 순위가 “1”을 할당받은 경우, 지정되지 않은 시간 주기 00 : 30 : 20 : 01 내지 00 : 03 : 59 : 99는 사용자가 이 특정 섹션에 대해 우선 순위를 수동으로 할당하지 않아도 우선 순위 “1”을 자동으로 할당받을 것이다.
도 13에서 도시된 인터페이스의 최하면에 있는 “삽입” 블럭은 편집 세그먼트 내에 새로운 시간 주기를 생성하는데 사용되고 “리콜(recall)” 블럭은 이전에 생성된 시간 주기를 변경하는데 사용되며, “갱신”은 시간 주기에 이루어진 변경을 저장하는데 사용되며 “삭제”는 시간 주기를 삭제하는데 사용된다.
광 디스크와 같은 부호화된 비디오용의 궁극적인 디지탈 저장 매체는 자동적으로 부호화된 데이터가 디스크에 기록되었을 경우 이상적으로 채워질 용량의 제한된 저장 용량을 가짐을 상기하는 것이 중요하다. 따라서 화상 품질이 증가되고, 특정 시간 주기 동안의 비트 레이트가 증가될 때마다, 향상된 품질을 갖는 시간 주기에 필요한 여분의 저장 용량을 공급하기 위하여 저하된 품질을 갖는 비디오의 섹션들이 있어야만 한다. 따라서 본 발명의 양호한 실시예에 있어서, 품질을 향상시키는데 필요한 비트들이 비디오의 다른 섹션으로부터 채택되어야 하기 때문에, 다른 시간 주기들에 다른 화상 품질을 할당함이 없이, 단지 하나의 시간 주기에 높은 화상 품질을 할당하는 것은 불가능하다. 따라서 편집된 비디오의 세그먼트는 시간적 수동 편집이 적절히 작동하도록 하기 위하여, 백그라운드 섹션과는 다르고 “보호된”섹션으로 표시되지 않은 적어도 하나의 섹션을 가져야만 한다. 또한, 사용자 선택 우선 순위들은 그들이 선택될 때마다 동일한 품질 및 비트 레이트를 초래하지는 않지만, 편집 세그먼트 내의 화상에 대한 변경된 비트 수를 결정하는 프로세스를 이해할 때 명백해지는 바와 같이, 특정 섹션의 품질은 다른 섹션에 대한 할당된 우선 순위 및 다른 섹션의 길이에 의존한다.
본원의 부호화 시스템에 의해 사용된 특성은 자동 부호화 프로세스 동안 또는 차후에 시청자가 부호화 비디오를 시청할 수 있다는 점이다. 부호화된 비디오가 시청자에게 표시되기 때문에, 시청자는 비디오를 정지할 필요없이 또는 관심있는 시간 코드를 적어놓지 않고도 비디오의 관심있는 포인트 또는 영역을 저장하기 위해 화면상에 표시된 “버튼”의 그래픽 사용자 인터페이스를 “클리킹(clicking)”하거나 또는 복귀 키를 누르는 것과 같은 기능을 실행할 수도 있다. 관심있는 이러한 포인트들은 사용자에 의해 차후에 불려지고 전체 영화를 재검토할 필요없이 정밀하게 검토될 수 있다. 이것은 사용자가 변경하기를 원할 수도 있는 부호화 비디오 내의 포인트들을 결정하는데 편리하고 효율적인 방법을 제공한다. 이 기능은 관심있는 포인트 또는 영역이 발생한 때의 부호화된 비디오 내의 부분에 대응하는 시간 코드를 저장함으로써 달성된다.
사용자가 단계(284)에서 원하는 품질 세팅을 입력한 후, 단계(286)는 사용자의 입력에 근거하여, 각각의 프레임에 대한 수정된 비트들을 계산한다. 이 프로세스는 도 14-16B와 관련하여 상세히 설명된다. 비디오의 편집 세그먼트 내의 시간 주기들의 비트 레이트들을 변경하기 위한 일반적인 프로세져는 도 14의 플로우챠트에 도시된다. 사용자의 입력에 근거하여 비트 레이트를 계산하기 위하여, 단계(302)는 -5와 +5 사이에 있었던 사용자의 입력을 10과 0 사이의 범위로 매핑(map)한다. -5의 초기 입력은 10의 매핑된 세팅에 대응하고 +5의 입력은 0의 매핑된 세팅에 대응하며 최대 품질이다. 마찬가지로, 0의 입력 품질 선택은 5의 매핑된 세팅에 대응한다. 단계(302)에서 실행되는 매핑의 목적은 할당된 비트 수가 매핑된 세팅과 -1의 곱을 지수로하여 상승되는 e(2.71828...)에 비례하게 하기 위함이다. 이 경우, e-10은 e0보다 작아서 더 작은 우선 순위 세팅에 대한 비트 수가 더 큰 우선 순위에 대한 것보다 작게 된다. -4 내지 +4의 우선 순위에 대응하는 목표 비트들을 결정하는 프로세스는 도 16A 및 도 16B에서 상세히 설명된다.
단계(304)는 “보호된” 섹션이 있는지를 판별한다. 보호된 섹션은 화상의 품질이 여러 자동 부호화로부터 변경되지 말아야 하는 섹션이다. 보호된 섹션이 있을 경우 플로우는 단계(306)로 진행하여 보호된 섹션의 재부호화용으로 할당된 비트 수가 최초의 자동 부호화로 인한 이전의 비트의 수와 동일하게 세팅된다. 이 방식에서, 보호된 섹션의 화상 품질은 변하지 않을 것이다.
단계(308)는 최대 또는 최소 품질로 세팅된 섹션이 있는지를 판별한다. 최대 품질은 +5의 사용자 입력에 대응하고 최소 품질은 -5의 사용자 입력에 대응한다. 최대 및 최소 화상 품질의 경우, 비디오 버퍼 제약을 만족시키고 부호화 비디오를 포함하는 매체의 저장 용량을 초과하지 않으면서, 각각 최상위 및 최하위 품질의 비디오를 갖는 부호화 비디오를 얻는 것이 바람직하다. 최대 및 최소 품질로 세팅되는 섹션들이 있을 경우, 플로우는 단계(310)로 진행하여, 최대 및 최소 경우들에 대해 변경된 비트 수를 계산한다. 이 프로세스는 도 15에 상세히 도시된다.
도 15에서 최대 및 최소 경우에 대해 할당된 비트 수를 결정하는 프로세스는 단계(320)에서 각각 10과 0으로 매핑된 우선 순위들에 할당된 비디오 섹션들에 최대 및 최소 레이트를 할당함으로써 시작한다. 이러한 매핑이 수행되는 도 14의 단계(302)와 시간적 편집의 나머지 설명에 있어서, 달리 특별히 언급되지 않을 경우에는, 매핑된 우선 순위를 참조할 것이다. 상술한 바와 같은 최대 데이터 레이트는 복호기의 능력에 의해 제한되며 8Mbits/sec일 수 있고 최소 데이터 레이트는 도 13에서 사용자 인터페이스에 의해 도시된 바와 같이 입력되고, 전형적으로 자동 부호화 모드 동안 사용된 최소 비트 레이트 3Mbits/sec 보다 낮거나 또는 높게 될 수 있다.
그런 다음 단계(322)는 1 내지 9의 매핑된 우선 순위들을 갖는 섹션들이 있는지를 판별한다. 이것은 할당된 최대 또는 최소 품질 뿐만 아니라 사용자에 의해 할당된 다른 중간 품질이 있음을 의미한다. 다른 매핑된 우선 순위들이 있을 경우, 플로우는 단계(324)로 진행하여 1과 9 사이에 매핑된 우선 순위를 갖는 모든 섹션들에 대해 평균 비트 레이트를 계산한다. 이 평균이 허용할 수 있는 범위(최대 비트 레이트와 최소 비트 레이트 사이) 내에 있지 않으면, 플로우는 단계(328)로 진행한다. 단계(328)에서, 최상위 화상 품질을 제공하는 레이트인, 최대 레이트는 상기 평균이 최소 레이트 이하일 때 감소된다. 최대 레이트를 감소시킴으로써, 최대가 아닌 그리고 최소가 아닌 상태(1-9의 매핑된 우선 순위)에 대해 더 많은 비트들이 사용될 수 있을 것이며 따라서 원하는 범위 내에 또는 원하는 범위에 가깝게 평균을 배치하게 된다. 대안으로서, 단계(328)에서 평균이 최대 레이트보다 클 경우, 최소 데이터 레이트가 증가되어 최대 및 최소 상태가 아닌 상태 (예를 들면 1-9의 우선 순위)에 대한 비트 수를 감소시키게 된다. 단계(328) 후에, 플로우는 단계(324)로 복귀되어 평균이 범위 내에 있게 될 때 까지 단계들(324, 326, 328)의 루프가 반복된다. 또한, 최대 및 최소 비트 레이트들이 조정되어, “보호된”섹션들이 품질의 조정 전과 동일한 비트들을 수신하는 것을 보장한다.
단계(326)에서 일단 평균이 범위 내에 있는 것으로 판정되면, 플로우는 각각 10과 0의 매핑된 우선 순위를 갖는 섹션들에 계산된 최소와 최대 레이트를 할당하는 단계(330)로 진행한다. 그런 다음 단계(332)에서, 보호되지 않으면서 최대 또는 최소 상태도 아닌 섹션에 잔여 비트들이 분배된다. 1-9의 매핑된 범위를 갖는 비디오 섹션들과 데이터 레이트들을 변경하는 방법이 도 16A 및 도 16B와 관련하여 차후에 설명된다.
단계(322)가 1-9의 매핑된 우선 순위를 갖는 어떠한 섹션도 없다고 판별하면, 최대, 최소 또는 보호된 섹션들만이 있다는 것을 의미하며, 단계(340)는 최종 비트 할당이 자동 부호화로부터의 초기 비트 할당과 동일할 때까지, 필요에 따라, 최소 및 최대 레이트를 조정한다. 단계(340)를 실행하는 두가지 대안적인 방법들이 있다. 첫째, 최대 비트 레이트 Rmax은, 예를 들면, 8Mbits/sec로 고정된다. 전반적인 편집 세그먼트에 대한 총 비트는 알려져 있으므로, 자동 부호화 동안 얻어졌던 것과 동일한 총 비트 수를 달성하기 위하여 최소 데이터 레이트 Rmin이 간단히 조정된다. 이전의 총 비트 수를 달성하기 위하여 Rmin을 조정할 수 없을 경우, 최대 데이터 레이트 Rmax가 자동 부호화 동안 얻어진 것과 같은 총 비트 수를 달성하기 위하여 조정된다.
대안으로서, 단계(340)는 우선 순위 1을 갖는 최대 품질 섹션과 우선 순위 9를 갖는 최소 품질 섹션을 할당하고, 도 16A 및 도 16B에 도시된 비트 할당 알고리즘을 실행하여 편집 세그먼트의 시간 주기 동안 새로운 비트 레이트를 결정한다. 그런 다음, 단계(342)는 아래에 설명되는, 도 16A 및 도 16B에 따라 계산된 데이터 레이트를 최하위 및 최상위로 할당된 품질을 갖는 섹션들에 할당하고 도 15의 프로세스는 종료된다.
단계(308) 및 단계(310)가 실행된 후, 필요하다면, 단계(312)는 어떤 섹션들이 1-9로 매핑된 우선 순위를 갖고 있는지를 판별한다. 만일 있다고 판별되면, 플로우는 단계(314)로 진행하여 도 16A 및 도 16B에 상세히 설명된 바와 같이 1-9로 매핑 된 우선 순위에 대한 수정된 비트 수를 계산한다.
도 16A의 제1 단계는 사용될 공통의 비트 푸울(pool)의 크리를 결정하는 것이다. 초기에는, 보호되지 않는 1-9로 매핑된 우선 순위를 갖는 모든 섹션은 제거되는 특정 비트 수를 갖는다. 재분배 심도라 불리우는 계수 k1은 이러한 목적으로 사용되는데, 예를 들면 (자동 부호화 실행으로부터) 보호되지 않고 최대 또는 최소 품질로 표시되지도 않은 모든 섹션들로부터 사전에 할당된 비트의 40%가 제거됨을 의미하는 0.4로 세팅된다.
그런 다음, 단계(362)는 사용자 선택 품질이 품질에 얼마나 영향을 미치는지를 결정한다. 동적 범위 계수로 불리우는 변수 k3이 세팅되고, 우선 순위로 인해 초래된 품질의 변경을 결정한다. k3이 어떻게 세팅되는지에 따라, 예를 들면 우선 순위 2는 비교적 작은 품질의 향상이나 또는 비교적 큰 품질의 향상과 같은 상이한 품질의 변경을 부과할 수도 있다. 전형적으로 동적 범위 계수 k3은 1.0으로 세팅된다.
비트의 재분배에 대해 사용자가 선택한 우선 순위를 사용하기 위하여 식 exp(-우선 순위/k3) 형태의 지수 관계가 사용된다. 지수에서 동적 범위 계수 K3은 지수 곡선의 모양을 결정한다. 곡선은 동적 범위 계수가 더 큰 값을 가질 경우 더 급경사지게 되어, 변화하는 우선 순위를 갖는 섹션들 가운데 재할당되는 비트들에 차이를 효과적으로 증가시키게 된다. 이러한 음의 지수는 매핑된 우선 순위의 절대치가 증가함에 따라(더 낮은 우선 순위 섹션), 그 섹션에 할당된 비트들이 감소하는데, 즉, 1로 매핑된 우선 순위가 최상위 우선 순위를 가지며 9까지 증가하는 수는 더 낮은 우선 순위를 가진다.
단계(364)는 사용자 선택 우선 순위들을 정규화한다.(normalize). 이것은 사용자 선택 우선 순위들이 각각의 섹션의 상대적 우선 순위를 결정하는데 사용됨을 의미한다. 첫째 Ei는 다음 식에 의해 계산된다.
[수학식 5]
Ei= exp ( -pi/ k3)
여기서, pi는 매핑된 사용자 선택형 우선 순위이고, i는 보호되거나 또는 최대 또는 최소 품질을 갖는 시간 주기들을 제외한 편집 세그먼트 내의 섹션 시간 주기 번호이다. 그 다음, 우선 순위 정규화 계수 k2는 다음 식으로 계산된다.
[수학식 6]
Figure kpo00002
여기서, N은 섹션의 번호이다. 우선 순위 정규화 계수는 우선 순위에 따라 재할당된 모든 비트의 총 합이 항상 사용 가능한 비트들의 공통 푸울과 동일하도록 보장할 필요가 있다.
각각의 섹션의 상대적 우선 순위는 다음과 같이 계산된다.
[수학식 7]
Ri= Ei/ k2
여기서 Ri는 i번째 섹션에 대한 상대적 우선 순위 비율이고 모든 Ri의 합은 1일 것이다.
단계(366)는 섹션들의 크기들을 정규화한다. 이것은 할당된 우선 순위를 갖는 시간 주기들의 다른 크기들을 가지고, 다른 섹션들의 크기들에 비례해서 비트들이 분포되어야 하기 때문에 필요하다. 첫째, 편집된 프레임들의 총 수(보호되지 않
은 최대 또는 최소가 아닌 우선 순위를 갖는 프레임)에 대한 각각의 시간 주기내의 프레임의 수의 비율 Ti는 다음 식에 따라 결정된다.
[수학식 8]
Ti=Ni/ N
여기서, Ni는 i번째 시간 주기 내의 프레임들의 수이고, N은 편집 세그먼트 내의 프레임들의 총 수 -보호되지 않고 최대 또는 최소 우선 순위가 아닌 우선 순위를 변경하여 할당받는 모든 프레임들- 이다. 모든 프레임들은 변경되어, 보호되지 않고 최대 또는 최소 우선 순위가 아닌 우선 순위가 할당된다. 그런 다음, 크기 정규화 계수 k4는 다음식에 따라 계산된다.
[수학식 9]
Figure kpo00003
여기서, N은 섹션들의 수이다. 도 16A의 단계(366)로부터 플로우는 도 16B의 단계(368)로 진행한다.
도 16B에서 단계(368)는 다음 식에 따라 비트들의 공통 푸울을 결정한다.
[수학식 10]
Figure kpo00004
여기서, Bi는 i번째 섹션의 자동 부호화 프로시져 동안 사용된 총 비트 수와
도 15의 단계(332)에서 분배된 임의의 비트들의 합이다. 합산은 'N'개 섹션들에 걸쳐서 이루어진다.
그런 다음 단계(370)는 다음 식에 따라 각각의 섹션에 대해 할당되는 목표 비트 수를 결정한다.
[수학식 11]
Fi= C * Ti* Ri/ k4+ (1-k1) * Bi
각각의 섹션에 대한 목표 비트 수 Fi는 비트들의 공통 푸울의 퍼센트와 비트들의 공통 푸울에 주어진 비트들 만큼 감소된 원래 비트 수(Bi)의 합과 같다. 비트들의 공통 푸울부터의 비트들의 퍼센트는 각각의 섹션의 총 수의 비율(Ti), 섹션의 상대적 우선 순위(Ri), 및 각각의 섹션들에 대해 합산된 프레임들의 대응 비율에 의해 곱해진 섹션의 우선 순위에 따른 크기 정규화 계수(k4)에 근거한 것이다.
단계(370)에서 계산된 각각의 섹션에 대해 할당된 목표 비트 수는 최대 데이터 레이트와 최소 데이터 레이트 사이에 있지 않을 수 있다. 만약 그렇다면, 단계(372)는 재분배 심도 k1을 0.01만큼 감소시키고 플로우는 단계(368)로 복귀되어 비트들의 공통 푸울을 다시 계산하고, 단계(370)에서 목표 비트 수를 다시 계산한다. 단계들(368, 370, 372, 374)의 루프는 단계(370)에서 계산된 목표 비트 수가 최대 데이터 레이트와 최소 데이터 레이트 사이에 있을 때까지 실행된다.
그런 다음, 단계(376)는 비트 스케일 계수 Si와, 각각의 내부 프레임 및 내부 이외의 프레임에 대한 각각의 스케일 계수 SIi, SNi를 계산한다. 내부 프레임 및 내부 이외의 프레임은 상이한 비트 수를 요구하여 희망하는 품질을 얻게 된다. 첫째, 비트 스케일 계수 Si는 다음 식에 따라 계산된다.
[수학식 12]
Si= Fi/ Bi
그 다음, 내부 화상 및 내부 이외의 화상들에 대한 스케일 계수들이 계산된다. 내부 스케일 계수 SIi는 다음 식에 따라 계산된다.
[수학식 13]
SIi= Si- (If* Si′)
큰 내부 프레임은 잠재적으로 버퍼 언더플로우를 유발할 수 있으며, 내부 계수 If는, If= 0.8 (즉, SIi가 범위 0.8 <; SIi<; 1.2 로 제한됨)일 때 내부 화상의 비트 할당의 변화를 20%로 제한함으로써, 안전 계수를 제공한다. Si′= Si- 1.0임을 주목한다. 내부 이외의 비트 스케일 계수 SNi는 다음과 같이 계산 된다.
[수학식 14]
SNi= Si- (-If* Si′ * BIi/ BNi)
여기서, BIi및 BNi는 화상 유형에 의해 i번째 섹션에 걸쳐서 합산된 내부 및 내부 이외의 총 비트이다.
최종적으로, 각각의 프레임용에 사용될 비트 수가 적절한 스케일 계수(내부 스케일 계수 또는 내부 외의 스케일 계수)에 의해 곱해진 원시의 비트 수를 사용하여 결정된다. 도 16B(및 도 14)의 프로세스는 종료된다.
이 때, 각각의 프레임에 대한 수정된 비트 수가 계산되고, 도 12의 단계(286)가 완료된다. 그러나, 프레임들에 대한 변경된 비트 수가 버퍼 언더플로우를 야기하거나 또는 편집 세그먼트의 트레일링 에지(trailing edge)에서 비트 수의 점유가 변경되어 편집 세그먼트 밖의 후속 프레임들이 언더플로우하게 될 가능성이 있다. 이러한 상황은 필요할 경우 도 17에서 상세히 도시된 도 12의 단계(288)에서 검사되고 정정된다.
도 17은 버퍼 언더플로우를 검사 및 정정하고, 편진 세그먼트의 트레일링 에지에서 비트 재할당으로 인한 가능한 문제점들을 검사 및 정정하는 프로세스를 도시한다. 도 17에서, 단계(390)는, 첫째, 편집 세그먼트의 프레임들 각각에 대한 비트 할당을 스캔(scan)한다. 단계(392)는 위에서 설명된 VBV 모델을 사용하여 새로운 비트 분배를 위해 언더플로우를 검사한다. 언더플로우 문제점이 존재하는(언더플로우 리스트(u_flow list)) 포인트들의 리스트가 생성되며 각각의 언더플로우를 제거하는데 필요한 비트 수가 결정되어 언더플로우 값(u_val)에 저장된다. 너무 많은 비트들에 의해 표시되는 화상으로 인해 언더플로우가 발생함을 명심하는 것이 중요하다. 다수의 비트들로 표시되는 고품질 화상이 복호기에 의해 버퍼로부터 판독될 때, 다수의 비트들이 화상이 복호화될 때 버퍼로부터 제거되고, 이들 비트들이 충분히 빠르게 보충될 수 없다. 따라서 언더플로우를 제거하기 위하여 비트들이 화상으로부터 제거된다. 또한, 단계(392)는 버퍼가 풀(full)인 포인트의 리스트를 생성하고 이들 포인트들을 오버플로우 리스트(o_flow list)에 저장한다. 위에서 설명된 바와 같이, 버퍼가 풀이 될 때 데이터가 더이상 버퍼에 송신되지 않기 때문에 풀로 인한 문제점은 없다.
단계(394)는 편집 세그먼트의 트레일링 에지에서 버퍼 점유를 검사한다. VBR 모드의 오퍼레이션에서, 편집된 세그먼트가 정확히 동일한 수의 비트들로 대체될 경우 조차도, 편집된 세그먼트의 트레일링 에지에서의 버퍼 점유가 수정되었던 실행에서의 것과는 다를 수 있다. 이것은 VBR에 대한 VBV의 특이성으로 인해 발생한다. 따라서 버퍼 점유 제한을 검사하는 것이 중요하다. 편집 세그먼트의 트레일링 에지에서 버퍼 점유가 비트의 재분배 전에 있었던 것과 정확히 동일하거나 또는 그보다 더 높을 경우에는 문제점이 없는 것이 상당히 당연하다. 버퍼 점유가 이전과 정확히 동일하다면, 후속 프레임들의 버퍼 점유도, VBV 위배에 대해 이미 검사된 사전 실행과 정확히 동일하게 유지된다. 점유가 이전보다 더 높을 경우, 후속 프레임들 동안 버퍼가 풀로될 가능성이 있는데, 이것은 버퍼가 풀일 때처럼 완전히 허용할 수 있는 조건이며 데이터는 더 이상 버퍼에 공급되지 않을 것이며 언더플로우가 발생하지 않는다. 그러나, 제3의 경우는 버퍼 점유가 사전 실행과 비교하여 트레일링 에지에서 더 낮을 때 발생한다. 이것은 후속 프레임들에서 버퍼 언더플로우를 생성할 잠재력을 가지며 정확히 검사될 필요가 있다
편집 세그먼트의 최종 프레임이 버퍼 세그먼트의 외부의 프레임들에서 버퍼 언더플로우를 방지하기 위해 처리될 수 있는 두가지 방법이 있다. 제1 방법은 두가지 중 더 쉬운 것이다. 편집 세그먼트의 최종 프레임의 비트 수가 원시 부호화(로그 파일에 저장된)에서 보다 더 크거나 또는 동일한 버퍼 점유를 초래하는 경우, 언더플로우 문제점은 존재하지 않으며 따라서 조치가 취해질 필요가 없다. 편집 세그먼트의 최종 프레임에 대한 버퍼 내의 비트 수가 원시 부호화 세그먼트에 대한 버퍼 내의 비트 수보다 작을 때, 이 감소된 비트 수는 편집 세그먼트 후의 프레임의 내용에 따라, 편집 세그먼트의 외부의 프레임에 대한 언더플로우를 야기시킬 수도 있고 야기시키지 않을 수도 있다. 언더플로우가 발생하는 것을 방지하는데 필요한 비트 수를 결정하는 대신 편집 세그먼트의 최종 프레임에 대한 버퍼의 점유는 단순히 원시 부호화에 대한 것과 동일하도록 조정된다. 안전을 위하여 편집 세그먼트의 끝에 대한 버퍼 점유 또는 충전도는 언더플로우가 발생하지 않도록 보장하기 위하여, 원시 부호화에서의 점유보다 10% 이상 상승할 수도 있다. 편집 세그먼트의 최종 프레임의 버퍼 점유가 원시 부호화의 레벨로 되도록 상승될 필요가 있을 경우, 종료 프레임의 비트 수는 단계(398)에서와 같이 감소될 필요가 있다. 최종 프레임은 언더플로우 포인트로서 처리되고, 언더플로우 리스트(u_flow list)에 배치되며, 버퍼 레벨을 원시 부호화의 레벨까지로 상승시키기 위해 최종 프레임으로부터 취해질 필요가 있는 비트 수가 언더플로우 값(u_val)에 더해진다.
편집 세그먼트의 재부호화로 인한 가능한 언더플로우를 처리하기 위한 제2의 방법은 편집 프레임의 외부에서 버퍼 언더플로우 조건을 야기하지 않을 편집 세그먼트의 최종 프레임에 대한 상기 버퍼의 최소 가능 레벨을 추정하는 반복적인 프로세스이다. 이것은 편집 세그먼트의 최종 프레임에 대해 원시 부호화의 버퍼 점유와 재부호화의 버퍼 점유 사이의 최대의 가능한 차를 추정하는 프로세스에 의해 행해진다.
도 18의 플로우챠트 설명으로 돌아가서, 원시 부호화의 버퍼 점유는 B0을 할당받고 원시 부호화의 로그 파일에 저장되었다. 편집 세그먼트의 경계를 넘어서 프레임 'i'에서의 버퍼 점유는 Bi이고, 여기서, i =1 ... n이고, 여기서, ´n´은 부호화될 영화에서의 최종 프레임에 대응한다. 재부호화의 버퍼 레벨을 적어도 원시 부호화를 위한 것이었던 포인트로 단순히 세팅하는 제1 방법과 반대로, 재부호화를 위한 버퍼 점유도가, 임의의 연속적인 프레임들에 대해 언더 플로우 상태를 생성하지 않고, 원시 부호화 보다 얼마나 더 낮게 갈 수 있는지가 결정되어야 한다. 이 조건을 만족시키는 경계에서의 새로이 낮은 버퍼 점유를 B0′로 하자. 이것은 편집 세그먼트 경계에서 최소의 허용 가능한 버퍼 점유이다. 이전의 실행의 경우보다 더 낮은 버퍼 점유를 가질 가능성이, 세그먼트 편집 후 나중 프레임들의 간격들에서 차이가 흡수될 수도 있다는 사실의 결과로서, 발생하고 따라서 언더플로우가 발생하지 않을 것이다.
도 18의 단계(420)에서 시작하여, 편집 세그먼트의 최종 프레임의 재부호화 비디오의 버퍼 점유 B0′가 앞으로 언더플로우를 생성함이 없이 0인 것으로 가정한다. 이것은 버퍼 점유가 버퍼 언더플로우를 방지하기 위해 더 높아야 하지만 버퍼 점유가 0 이하일 수는 없는 것이 가능하기 때문에 B0′대한 가장 관대한 추정이다. 그러나 도 18의 프로세스는 재부호화 편집 세그먼트의 최종 프레임에 대한 0의 점유가 언더플로우를 생성하는지를 알기 위해 검사할 것이며, 만약 언더플로우를 생성하는 경우, 언더플로우를 생성하지 않을 B0′의 값을 발견될 때까지 편집 세그먼트의 끝에서 버퍼 점유를 증가시킬 것이다.
도 18의 프로세스는 원시 부호화와 재부호화 사이에서 추정된 버퍼 점유 차 X′를 평가할 것이다.
[수학식 15]
X′ = B0-B0
차 X′는 X′가 검사되어 모든 언더플로우의 가능성이 제거될 때까지 필요데 따라 조정된 것이 확실하기까지는 최종적으로 결정될 수 없기 때문에, 추정치라 불린다. 도 18의 프로시져는 경계 프레임을 바로 뒤따르는 프레임에서, 즉 i = 1에서 시작하여, 한번에 한 프레임씩 통해 진행된다. 제1 프레임의 경우, B0′가 0과 동일한 상태에서, 추정된 차는 단계(422)에서 계산된 바와 같이 원시 부호화의 제1 프레임에 대한 버퍼 점유의 값일 뿐이다.
[수학식 16]
X′ = B0
그 다음, 단계(424)는 경계 프레임의 우측으로 프레임들에 의해 흡수된 비트수를 결정한다. 흡수된 비트 수란 원시 부호화의 편집 세그먼트 이후의 프레임들에 의해 버퍼에 배치될 수 있었으나 사실은 버퍼가 풀이었고 따라서 더 이상 어떤 비트도 받아들일 수 없었기 때문에 원시 부호화 동안 버퍼에 배치되지 않았던 비트들을 지칭하는데 사용된 문구이다. △ti의 양은 버퍼가 풀이었고 B0′의 감소된 값으로 인하여 이제 추가의 비트들을 받아들일 수 있는, 편집 세그먼트 이후의 원시 부호화의 ith프레임의 시간 주기를 나타낸다. 버퍼가 하나의 전체 프레임에 대해 풀일 리가 때문에 시간 주기 △ti는 프레임의 시간 주기 이하이어야 하고, 0보다 크거나 또는 0과 같아야 한다. 시간 주기 △ti는 버퍼가 원시 부호화 동안 한번도 풀이 아니었다면 0이다. 따라서,
[수학식 17]
1/P
Figure kpo00005
△ti
Figure kpo00006
0
여기서 ´P´는 매 초당 프레임들의 단위로 측정된 화상 레이트이고 전형적으로 30 frame/sec이다. 버퍼가 풀인 결과로 편집 세그먼트의 우측으로 흡수된 총 비트 수는 다음과 같이 계산된다.
[수학식 18]
Figure kpo00007
여기서 Rmax는 버퍼의 채워지는 레이트이다.
단계(426)는 편집 세그먼트의 최종 프레임의 버퍼 점유 레벨을 결정하기 위한 프로시져가 종료될 수 있는지를 결정한다. i번째 프레임에 의해 흡수된 비트들의 합이 X′를 초과할 경우, 즉, ai; X′일 경우, 버퍼가 나중의 프레임들에 의해 채워질 수 있기 때문에, 이 프로시져는 정지되고 따라서 버퍼 언더플로우가 발생하지 않을 것이며, 단계(428)가 수행된다. 대신에, 만일 최종 프레임 n에 도달하면 (i=n), X′의 추정값은 비디오의 종료까지 언더플로우 문제점을 야기하지 않을 것이다.
단계(426)에 대한 대답이 ";아니오";이면, 단계(430)은 흡수되지 않고 남아 있는 비트 수 bi를 계산한다.
[수학식 19]
bi= X′- ai
그런 다음 단계(432)는 bi; Bi인지를 결정하는데, 여기서, Bi는 편집 세그먼트 이후 i 번째 프레임에 대한 버퍼 점유이다. bi; Bi이면 추정된 차의 값 X′는 너무 크고 현재의 버퍼 점유 'Bi'가 허용하는 것보다 많은 비트가 흡수되지 않고 남아 있기 때문에 언더플로우를 유발할 것이다. 따라서, 흡수되지 않고 남아 있는 비트들 가운데 단지 'Bi' 비트들만이 언더플로우를 유발하지 않고 흡수될 수도 있다. 그 다음, 차의 추정치 X′는 단계(434)에서 교정될 필요가 없다. 단계(434)에서, 교정된 추정치 X′는 흡수될 남아 있는 비트와 흡수된 비트의 합으로서 계산된다.
[수학식 20]
X′ = Bi+ ai
단계(432)가 bi
Figure kpo00008
Bi로 판정하면, i번째 프레임에서의 버퍼 점유가 흡수되지 않고 남아 있는 비트보다 더 크기 때문에, 언더플로우 문제점이 없고, X′의 추정치를 변경할 필요가 없으며, 플로우는 단계(436)로 진행한다. 단계(436)에서, 다음 프레임이 검사되고(i는 1씩 증가됨) 단계들(424, 426, 430, 432, 434, 436)의 루프는 단계(426)에서의 판정이 긍정적 대답을 가질 때까지 반복된다.
단계(426)가 긍정적 대답을 가질 때, 추정치 X′는 받아들일 수 있으며, 따라서 단계(428)에서, 편집 세그먼트의 경계에서의 최소 허용된 버퍼 점유 B0′는 다음식과 같다.
[수학식 21]
B0′= B0- X′
편집 세그먼트의 재부호화된 최종 프레임의 실제 버퍼 점유가 B0′보다 낮을 경우, 비트의 재할당으로 인하여 언더플로우 상황이 발생할 것이다. 이 경우, 최종 프레임은 언더플로우 리스트(u_flow list)에 언더플로우 포인트로서 표시되며, 언더플로우 상태를 방지하기 위해 편집 세그먼트의 최종 프레임으로부터 취해질 필요가 있는 비트 수(변경된 비디오에 대한 비트 수와 최소 허용 가능 버퍼 점유를 초래하는 비트의 수 B0′사이의 차)는 단계(392)동안 설명된 것과 유사한 방식으로 언더플로우 값(u_val)에 배치된다.
본 발명의 부호화 시스템의 경우, 비디오의 모든 포인트들에 대한 버퍼 점유를 아는 것이 바람직하며, 이 정보는 로그 파일들에 저장된다. 그러나, 편집 세그먼트의 최종 프레임에서의 버퍼 점유가 감소된 경우, 편집 세그먼트 이후의 프레임들에 대한 버퍼 점유는 변경될 수 있어서, 로그 파일들에 있는 버퍼 점유 정보를 부정확하게 만들고, 따라서 편집 세그먼트 이후의 프레임들에 대한 버퍼 점유를 다시 계산하는 정정 조치가 취해질 필요가 있을 것이다.
도 17에서의 프로세스로 돌아가면, 단계(396)은 언더플로우 리스트(u_flow list)에 어떤 입력이 있는지를 판별한다. 아무것도 없다면, 언더플로우 문제는 없으며, 도 17의 프로세스는 종료된다. 언더플로우 리스트(u_flow list)에 입력된 것이 있을 경우에는, 플로우는 단계(398)로 진행하여, 언더플로우 리스트(u_flow list)의 각각의 위치의 좌측으로 최근거리의 오버플로우 포인트(o-folw point)까지를 보호될 섹션들로 표시하고, 언더플로우 값(u_val)에 대응하는 비트 수가 이들 섹션으로부터 제거된다. 버퍼 언더플로우는 하나 또는 그 이상의 프레임들에서의 너무 많은 비트들로 기인한 것이기 때문에, 프레임 내의 비트 수를 감소시키면 언더플로우 문제점을 해결될 것이다. 언더플로우를 방지하기 위하여 제거되는 비트로 인해 화상 품질을 뚜렷히 저하되지 않도록 하기 위하여, 비트들은 언더플로우 포인트의 프레임으로부터는 취해지지 않으나 버퍼가 풀이었던 최종 포인트까지 돌아가며 모든 프레임으로부터 동일하게 취해진다. 이것은 언더플로우를 방지하면서 최고 품질의 비디오를 얻기 위한 방법을 제공한다.
단계(398)에서 제거된 비트들은, 단계(400)에서, 보호되지 않는 것으로 표시된 섹션들에 동일하게 분배되고, 도 17의 프로세스는 또다시 시작된다. 단계(400)에서의 비트의 분배는 언더플로우가 더 이상 문제가 안된다는 것을 보장하지 않으며, 이러한 이유 때문에, 반복적인 방식에서 도 17의 전체 프로세스를 사용하여 언더플로우 조건들을 또 다시 검사할 필요가 있다.
도 17의 프로세스가 완료된 후, 도 12의 단계(288)가 완료되고, 도 12의 단계(290)가 실행된다. 단계(290)는 단계(282)에서 결정된 레이트 양자화 함수를 사용하여 각각의 프레임에 대한 평균 양자화 값을 결정한다. 원하는 비트 수는 단계(286)에서 이미 계산되었고, 단계(288)에서 언더플로우 문제점이 있는지를 알아보기 위해 검사되었지만, 부호화 데이터가 원하는 비트 수를 갖도록 데이터를 재부호화하기 위하여 양자화 값이 결정되어야 한다. 이것은 레이트 양자화 함수를 사용하여 그리고 레이트를 조사함으로써 양자화 값을 결정하여 간단히 결정된다.
화상 바이 화상 베이스드(picture-by-picture based)에서, 양자화 레벨을 결정하기 위하여, 레이트 양자화 함수(RQF)가 단계(282)에서 결정되었다. 이 함수를 추정하기 위해 각각의 화상에 대한 두 데이터 포인트가 필요하다. RQF는 다음과 같다.
[수학식 22]
R = X * Q(-g)+ H
여기서, R은 한 화상을 코드화하는데 사용된 비트 수이고, Q는 양자화 스케일이며, X, g, H는 화상 바이 화상 베이스드 코딩의 특성 파라메터들이다. H는 양자화 스케일과는 무관한 비트들을 나타내고, 따라서 H는 헤더, 이동 벡터, DC 계수 등에 의해 소비된 비트들이다. X와 g는 주어진 양자화 스케일에 대해 화상을 코드화하는데 사용된 AC 계수 비트들에 대응하는 한쌍의 데이터 포인트들로부터 추정된다.
부호기의 제1 실행 작업은 비디오 시퀀스에서 각각의 코드화 화상에 대해 2개의 데이터 포인트들을 발생하는데 사용될 수 있다. 이것은 화상 내의 각각의 매크로블럭에 대해 사용된 한쌍의 교번이 양자화 스케일 값들에 의해 행해질 수도 있다. 이들은 레이트 양자화 모델 파라메터 ´X´와 ´g´를 계산하기 위해 처리된다. 이들 두 파라메터들은, H 값과 함께, 부호화 비디오의 매 프레임당 하나씩 한 파일에 저장된다.
비디오의 특정 코드화 프레임에 할당된 목표 비트를 발생할 양자화 스케일을 결정하기 위하여, 상기 식은 목표 비트를 나타내는 ´R´과 함께 사용되며, (X, g, H)의 값들은 위에서 설명된 로그 파일일 수도 있는 저장된 데이터 파일로부터 판독된다. 이 식에 가장 적합한 ´Q´의 값이 원하는 양자화 스케일이다.
그 다음, 단계(292)는 단계(290)에서 결정된 양자화 값들을 사용하여 비디오의 변경된 섹션들을 재부호화한다. 재부호화 동안 특별한 프로시져가 뒤따르지 않는다면 사전 부호화된 비디오의 재부호화된 세그먼트들은 부호화 아티팩트 문제점을 발생할 수도 있다. 부호화 및 복호화 아티팩트를 피하기 위한 재부호화 프로세스에 대한 상세한 설명은 아래의 별도의 절에서 설명된다. 비디오가 재부호화된 후, 비디오는 사전 부호화 비디오에 대한 비트스트림으로 교체되고 프로세스는 종료된다.
도 5와 관련하여 설명된 바와 같이, 사용자는 비디오가 수용 가능한지를 판정하기 위하여, 비디오가 재부호화 된 후 비디오를 시청할 수 있다. 비디오가 수용 가능하지 않을 경우, 사용자는 새로이 부호화된 비디오를 수용할 필요가 없으며, 사전 부호화된 비디오를 계속 사용할 수도 있다. 사용자가 새로이 부호화된 비디오가 바람직하다고 발견할 경우, 새로이 부호화된 비디오는 사전 부호화된 비디오를 대신할 것이다. 사용자는, 도 5에서 도시된 바와 같이, 비디오의 새로운 세그먼트를 공간적 또는 시간적으로 편집할 수도 있다.
도 19A 및 19B는 원시 비디오 부호화의 비트 레이트와 사용자가 수동 품질 우선 순위를 입력한 후의 비트 레이트에 대한 두가지 예를 도시한다. 도 19A 및 19B에서, 비트 레이트(메가비트를 나타내는 106의 스케일에서)는 화상 군의 수에 대하여 플롯된다. 도시된 예들에서, 한 GOP는 15개 화상을 포함하고, 각각의 GOP는 매 1/2초당 표시된다. 또한, 실선들은 원시 부호화를 나타내고 점선은 사용자가 화상의 품질을 수동으로 조정한 후의 부호화를 나타낸다.
도 19A는 보호, 및 2, -3, 3, 0의 우선 순위들을 갖는 다섯가지 상이한 우선 순위 영역들을 갖는 부호화를 나타낸다. 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), 새(486), 두개의 구름(471)을 구비하는 것으로 도시된다.
도 21에서, 프레임 내의 영역들은 나무(465)를 둘러싸는 영역(466), 사람을 둘러싸는 영역(469), 영역(469)과 중복되고 새(486)와 사람(467)의 머리를 포함하는 영역(470)을 포함하는 것으로 규정되었다. 이 영역들은 도 1A에서 도시된 그래픽 포인팅 장치(33)를 사용하여 그려졌다. 도 21에서 사용자에 의해 세팅된 품질 우선 순위는 나무를 포함하는 영역(466)에 대해 -5, 사람을 포함하는 영역(469)에 대해 +2, 새와 사람의 머리를 포함하는 영역(470)에 대해 +4를 포함할 수도 있다. 도 21의 비디오의 프레임의 나머지 영역들은 사용자에 의해 규정된 어떠한 우선 순위도 포함하지 않으며 따라서 “돈트 케어(Don't Care)”가 우선 순위를 할당받는다. 차후에 설명되는 바와 같이 “돈트 케어” 영역은 사용자 규정 우선 순위를 포함하는 프레임의 부호화를 위한 전체 비트 수가 프레임의 원시 부호화로 인한 비트 수와 동일하도록 조정하기 위하여, 사용자 규정 영역에 대한 양자화 레벨을 변경한 후 맨 처음으로 수정되는 영역이다. 사용자가 프레임의 영역에 대한 품질을 변경하기를 원하지 않을 경우 이들 영역은 사용자에 의해 0의 우선 순위를 갖는 것으로 표시될 것이다.
본 발명의 양호한 실시예에서 비디오의 프레임 내의 우선 순위 영역들을 정할 때, 사용자는 그래픽 포인팅 장치를 사용하여 비디오의 표시된 프레임 상에 직사각형 영역을 초기에 생성한다. 차후에 정해진 영역들은 먼저 정해진 영역들의 최상에 배치되고 먼저 규정된 영역과 겹쳐질 수 있다. 본 발명이 직사각형의 영역을 정하는 것을 논한다고 하더라도, 본 발명의 기술은 원 또는 타원과 같은 곡선, 8각형 또는 6각형과 같은 다각형 영역, 또는 곡선 및/또는 직선을 포함하는 어떤 다른 사용자 규정 형태를 포함하는 어떠한 모양의 영역에도 적용될 수 있다. 사용자는 각각의 영역을 규정한 후 그 영역에 대한 우선 순위를 정한다. 대안으로서, 사용자는 모든 영역들에 대한 모양을 규정하고, 그 다음에, 이들 영역에 대해 우선 순위를 할당할 수 있다.
사용자가 어떤 영역 내의 우선 순위를 초기에 규정할 때, 그 영역들은 픽셀 위치들에 대응한다. 그러나, 아래에 설명된 우선 순위를 할당하는 프로세스는 매크로블럭 베이스드로 작동하며, 매크로블럭은 디지탈 비디오 부호화에 사용된 단위이다. 따라서, 매크로블럭이 사용자 규정 영역의 내부 또는 외부 주변에 있을 때, 그 매크로블럭은 그 영역의 우선 순위를 할당받는다. 당해 분야의 통상의 기술자는 간단한 수학을 사용하여 사용자 규정 영역에 대응하는 매크로블럭들을 간단히 결정할 수 있다. 사용자 규정 영역의 외부 주변의 경우, 그 영역의 외부 주변부가 상기 매크로블럭과 교차할 경우, 이 매크로블럭을 사용자 규정 영역에 단순히 포함하는 것에 대한 대안으로서, 매크로블럭이 그 영역 내에 포함되어야 하는지의 여부를 판정하는 좀더 복잡한 프로세스가, 매크로블럭의 50% 이상이 사용자 규정 영역 내에 있다면 사용자 규정 영역 내에 매크로블럭을 포함하고 매크로블럭의 50% 이하가 사용자 규정 영역 내에 있다면 사용자 규정 영역으로부터 매크로블럭을 배제함으로써, 실행될 수 있다.
상기 영역들 및 그들의 우선 순위들이 정해진 후, 사용자는 원할 경우, 그 영역들의 오버랩핑을 변경할 수 있다. 예를 들면, 사용자는 선정된 기능 키를 잡고 도 21의 영역(469) 상에서 “클릭(click)”하여, 영역(469)을 영역(470)의 상부에 있게 할 수 있는데, 이는 사람이 전부 영역(469)의 우선 순위를 갖게 할 것이고, 새(468)만이 영역(470)에 할당된 우선 순위를 갖게 할 것이다. 오버랩핑 영역들은 사용자에 의해 입력될때 스태킹(stacking) 우선 순위를 부여받는다. 이 스태킹 우선 순위는 사용자 규정 영역이 부가, 삭제 또는 수정될 때 필요에 따라 조정된다.
영역이 규정된 후 사용자는 원하는 대로 영역의 모양을 다시 만들 수 있거나 또는 그래픽 포인팅 장치(33)를 사용하여 영역을 이동시킬 수도 있다. 또한 사용자에 의해 규정된 영역은 그래픽 포인팅 장치(33)를 사용하여 삭제될 수도 있다. 영역이 삭제된다고 하더라도, 단지 사용자 규정 우선 순위만이 삭제되고 삭제된 영역내의 원시 비디오 데이터는 물론 삭제되지 않는다.
시간 주기에 걸친 품질 변경에 관하여 위의 절에서 설명된 바와 같이, 자동 부호화 동아 또는 자동 부호화 후에, 사용자는 부호화 비디오를 다시 조사할 수도 있으며, 관심있는 프레임 또는 시간 주기가 발생할 때마다 사용자는 단순히 키보드 상의 키를 누르거나 또는 특정 프레임 또는 시간 주기가 관심이 있음을 다른 장치를 통해 입력할 수 있다. 그 다음, 사용자는 다시 그 프레임 또는 그 시간 주기로 가서 원하는 바에 따라 그 시간 주기를 검토하고 그 시간 주기 내의 특징을 변경하기 위해 더 많은 시간을 소비할 수 있다.
비디오의 프레임 내의 사용자 규정 영역들에 대한 프로세스는, 사용자에 의해 수정된 데이터의 한 프레임만이 있는 간단한 경우에 대해, 위에서 설명되었다. 그러나, 비디오 시퀀스에 따라, 데이터의 프레임들에 대해 한번에 한 프레임을 작업하는 것은 매우 지루하며, 따라서 본 발명은 사용자가 제1 시간 주기에 한 영역을 정하도록 해주고, 다음 시간 주기에 대응 영역을 정하도록 해준다. 이어서, 보간(interpolation) 프로세스가, 제1 프레임과 최종 프레임의 중간의 모든 비디오 프레임들이, 최초와 최종 프레임에 대해 사용자에 의해 규정된 영역들에 대응하는 영역들을 자동적으로 갖고, 제1 영역 및/또는 최종 영역과 동일한 우선 순위 또는 제1 프레임 또는 최종 프레임의 우선 순위에 근거한 우선 순위를 할당받도록 실행된다. 또한 오버랩핑 영역의 스태킹 우선 순위는 보간 프로세스 동안 유지된다. 중간 프레임들이 그들의 영역들을 자동으로 생성되게 한 다음, 사용자는, 원하는 바에 따라, 우선 순위, 영역의 모양을 변경함으로써, 자동으로 생성된 영역을 변경하거나, 새로운 영역을 부가하거나, 영역들을 제거할 수도 있다.
다음은 보간 프로세스가 어떻게 작동하는지에 대한 한 예이다. 사용자가 시각 t_1 및 t_n에서 두 프레임들에 대한 우선 순위 영역들을 선택한다고 한다. 사용자가 프레임 t_1에 한 영역을, t_n에 대응 영역을 할당한 후, 이들 두 영역들의 좌표는 중간 프레임들에 걸쳐서 보간되어 t_1과 t_n 사이의 모든 프레임들에 대해 영역 명세를 얻게 된다. 정해진 실제 영역들에 대해 보간이 실행될 수 있을 뿐만 아니라, 품질 우선 순위에 대해서도 보간이 실행될 수 있다. 보간 프로세스를 위하여 간단한 선형 함수가 사용된다. 사용자가 포인트 a_1을 갖는 프레임 t_1의 영역 A를 정하고 프레임 t_n 내의 대응 영역 A에서 대응 포인트 a_n이 있다고 정한 것으로 가정하면, 중간 프레임들 a_2, a_3, . . . , a_(n-1)내의 대응 포인트들은
[수학식 23]
a_i(h) = a_1(h) + (a_n(h)-a_1(h)) x (i-1)/(n-1)
의 수평 좌표와
[수학식 24]
a_i(v) = a_1(v) + (a_n(v)-a_1(v)) x (i-1)/(n-1)
의 수직 좌표를 가지며, 여기 h와 v는 문제의 포인트의 수평 좌표 및 수직 좌표에 대응한다. 이 프로세스에서, 단지 그 영역을 정하는 다각형의 정점들만이 사용되고 정점들이 보간된다. 그런 다음 영역들은 정점들에 의해 정해진다. 선형 보간외의 다른 보간 기술이 실행될 수도 있다.
상기 보간 프로세스는 편집될 세그먼트 내의 모든 프레임들에 대한 모든 영역들이 적절히 규정될 때까지 필요한 만큼 여러번 실행될 수 있다. 더 나아가, 이 프로세스는 사용자가 중간 프레임에 대한 보간을 통해 결정된 영역을 이동시키거나 크기를 변경하고, 제1 프레임과 변경된 중간 프레임에 대해, 그 다음 중간 프레임과 최종 프레임에 대해 또다시 보간 프로세스가 실행되도록 발생하는 미세한 조정 프로세스로써 반복될 수 있다. 보간 프로세스는 프레임을 가로질러 이동하는 영역을 정의하기 위해 일차적으로 사용된다. 그러나 본 발명은 또한 정지 상태에 있고 일련의 프레임들에 사용된 정해진 영역을 한번 포함하기도 한다.
영역들이 규정되고 사용자 규정 우선 순위들이 입력된 후, 각각의 매크로블럭에 대한 새로운 양자화 값들이 매크로블럭의 구 양자화 값과 사용자에 의해 입력된 우선 순위에 기초하여 도 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 레벨들과 우선 순위 사이의 구획별 선형 관계에 근거한 것이다. 도 22에서 결정된 포인트들은 경험을 통하여 결정되었고 다른 분율들이 원하는 바에 따라, 사용자 선택 우선 순위에 의해 사용될 수도 있다.
-5와 5의 우선 순위들은 각각 최하위와 최상위의 가능한 품질을 얻도록 의도된 것이다. 최하위 품질은 비선형 양자화 스케일이 사용될 때 112의 최대 가능한 양자화 스케일로 인해 초래되고, 선형 양자화 스케일이 MPEG-2 부호화용으로 사용될 때는 62의 최대 허용 가능 양자화 스케일로 인해 초래된다. 또한 최상위 품질을 달성하기 위해 사용된 최하위 양자화 레벨은 1이다. 따라서, 도 22에서 도시된 관계는 실제 허용된 q 스케일을 벗어난 값들을 초래할 수도 있으나, 이들 계산된 q 값들은 단순히 그들의 포화 레벨로 배치된다. 예를 들면, 초기에 매크로블럭이 20의 양자화 스케일을 갖고 사용자가 매크로블럭에 대한 우선 순위를 -5로 선택하는 것으로 가정한다. 100이 곱해진 양자화 값 20은 양자화 스케일에서 벗어난 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) 사이의 다음의 관계가 다음과 같이 되도록 결정되었다.
[수학식 25]
log(b) = m log(q) + n
여기서, I형 프레임에 대해 m = -0.75 이고, B형 및 P형 프레임들에 대해 m = -1.0이다. 또한 I, P, B형 프레임들 각각에 대해 n = 15, 14.5, 13.8이다. 이 값들은, 위에서 주목한 바와 같이, 다수의 비디오 시퀀스들에 걸친 평균이다. 상기 식은 부호기의 동작을 예측하기 위한 양호한 근사치로서의 역할을 하며, 비트 수와 양자화 레벨 사이의 관계는 로그 도메인에서 선형이다. 물론 양자화 레벨과 결과적인 비트 수 사이의 다른 관계가 만일 정확하다면, 본 명세서에 설명된 다른 레이트 양자화 함수를 포함하여, 주어진 양자화 레벨로부터 초래된 비트 수를 결정하는데 사용될 수도 있다.
상기 프로세스는 주어진 양자화 레벨로부터 초래된 비트 수를 결정하는 방법을 설명한다. 그러나, 하나 이상의 부호화가 사용된다면, 새로운 부호화로부터의 정보를 사용하여 데이터 레이트 대 양자화 함수를 더 개선할 수 있다. 최초 자동 부호화 프로세스 동안 부호화될 비디오의 통계치를 수집하는데 사용되는 제1 비디오 부호화 패스가 있다. 실제 부호화인 제2 패스 동안에는, 데이터 대 양자화 함수의 실제 다른 포인트가 주어진 q 레벨로부터 발생된 비트 수 b를 나타내는 상기 식에 대응하는 b 대 q 플롯에서처럼 얻어질 것이다. 데이터가 아래에 설명된 바와 같이, 사용자 지정 선택에 따라 재부호화된 후, 결과적인 재부호화 비디오는 원하는 품질 향상이 만족되었는지에 따라 사용자에 의해 수용되거나 또는 거절된다. 각각의 재부호화는 추청된 q 레벨 대 비트 관계에 대한 실제 데이터를 발생한다. 새로운 q레벨의 할당인, q´이 주어지면, 결정된 데이터 레이트는 재부호화에 의해 얻어진 추가의 데이터를 기초로 하여, 이 포인트에 대해 더 정확할 것이다. 새로운 양자화 레벨 q´가 사전에 얻어진 임의의 두 포인트들 사이에 있을 경우, 새로운 q레벨을 갖는 부호기에 의해 출력될 비트 수에 대한 추정치를 얻기 위해, 로그 도메인에서 선형 보간을 행할 수 있다. 새로운 양자화 레벨 q´가 두 결정된 q레벨들 사이에 있지 않을 경우, 이 모델은 부호화 시에 발생될 비트 수를 추정하기 위해 가장 근거리에 있는 q레벨로부터 새로운 양자화 레벨 q´까지 외삽(extrapolate)하는데 사용될 수 있다. 데이터가 여러번 더 재부호화될수록 부호기로부터의 출력 비트들에 대해 더 양호한 추정치를 얻을 가능성이 더 높아질 것이다.
추정된 양자화 값들로부터 기인한 각각의 프레임에 대한 비트 수가 도 20의단계(458)에서 결정된 후, 단계(460)는 추정된 비트 수가 프레임에 대한 원시 비트수에 충분히 근접한지를 판정하고 필요한 경우 비트 수를 정정한다. 이것은 도 23-25C에서 도시된 프로세스에 따라 실행된다.
단계(460)가 실행될 때 도 23의 단계(472)가 추정된 비트 수와 원시 부호화의 비트 수 사이의 차를 결정한다. 이것은 다음식에 따라 계산된다.
[수학식 26]
D = B′- B
여기서, B´는 수정된 프레임의 추정된 비트 수이고, B는 원시 부호화로부터 기인한 비트 수이며, D는 차이다. 원시 부호화로부터 기인한 비트 수와 다른 B 값을 사용할 수 있다. 예를 들면, 만일 사용자가 한 프레임에 대한 비트의 총 수를 증가시키기를 원할 경우, 사용자는 B를 원시 부호화로부터 기인한 비트 수보다 크게 선정된 크기의 수로 세팅할 수 있다. 마찬가지로, 사용자는 B를 프레임의 원시 비트 수보다 낮게 세팅할 수도 있다. 따라서, 재부호화 프레임은 저장 제한, 최소 품질 제한, 비디오 버퍼 언더플로우의 가능성에 따라 원시 부호화보다 많거나 또는 더 적은 비트를 소비할 수 있다. 또한, 프레임 내의 영역들이 양자화 값들을 변경되도록 하지 않을 경우, 변경된 양자화 값들을 갖는 영역들로부터 초래된 비트 수만을 분석하여 변경되지 않은 영역을 무시할 수 있다. 그런 다음 단계(474)가 이 차를 분석하고 너무 많은 비트들이 있는 것으로 결정하면, 플로우는 비트 수를 감소시키도록 매크로블럭의 양자화 레벨을 증가시키기 위해 도 24A-24C에서 도시된 프로세스를 수행하도록 B로 진행한다. 단계(474)가 수정된 프레임에 너무 적은 비트들이 있다고 판정하면, 새로운 프레임의 매크로블럭의 양자화 레벨은 도 25A-25C에서 도시된 프로세스 F에 따라 더 많은 비트들을 발생하도록 감소될 것이다. 그렇지 않고, 차가 받아들일 수 있는 임계치 내에 있는 경우, 매크로블럭들의 양자화 레벨들을 수정할 필요가 없으며, 프로세스는 도 20의 단계(462)를 실행하기 위해 복귀된다. 프레임 내의 비트 수를 재부호화된 비디오의 경우와 동일하게 유지할 때, 비트들은 한 영역에서 다른 영역으로 이동되는 것으로 간주될 수 있다.
단계(474)에서, 차 D는 임계치 T와 비교됨으로써 분석된다. 임계치는 0.001×B로 세팅되는데, 이것은 영역의 품질의 변동으로 인한 비트 수가 전체 비트 수의 0.001 이내에 있을 경우에 그 차가 허용 가능하며 프로세스는 정지될 수도 있음을 의미한다. 물론 차가 허용 가능함을 나타내는 정지 임계치는 대안의 방식에 따라 결정될 수 있고, 또는 원하는 바에 따라 증가 또는 감소될 수 있고, 또는 프레임에 대한 원시 비트 수와 사용자 선택 우선 순위로 인한 결과적인 비트 수 모두에 근거할 수도 있다.
도 24A-24C와 도 25A-25C에 설명된 프로세스들은, 도 24A-24C가 사용자 선택 품질로부터 기인한 비트 수를 감소시키는데 사용되고 도 25A-25C가 사용자 선택 품질로부터 기인한 비트 수를 증가시키는데 사용된다는 점을 제외하면 매우 유사하다. 도 24A-25C에서 실행된 프로세스의 전반적인 개관이 이들 프로세스의 세부 사항을 설명하기 전에 설명된다. 초기에, 비디오의 프레임 내의 매크로블럭들은 네가지 유형들 -“돈트 케어”, “음의 우선 순위”, “양의 우선 순위”, “불변(Don't Change)”- 중 하나의 유형으로 레이블된다. 영역이 사용자에 의해 우선 순위를 할당받지 않을 때 또는 사용자가 “돈트 케어”상태를 할당하도록 시스템이 허용할 경우, 그 영역은 “돈트 케어”유형으로 이루어진 것으로 간주된다. 사용자가 -5와 -1을 포함한 -5와 -1 시이에 우선 순위를 할당할 경우, 이 영역 내의 매크로블럭들은 “음의 우선 순위”인 것으로 간주된다. 만일 영역이 1과 5를 포함한 1과 5 사이에 우선 순위를 할당받을 경우, 이 영역은 “양의 우선 순위”를 갖는 것으로 간주된다. 끝으로 모든 영역이 0의 우선 순위로 할당되거나, 또는 시스템이 몇몇 다른 방식으로 사용자가 영역들의 품질이 변경되지 않을 것임을 나타내도록 허용할 경우, 그 영역에서의 매크로블럭들은 “돈트 케어”유형인 것으로 간주된다.
네가지 매크로블럭 유형들은 각각은 그 자체 인덱스 세트를 갖도록 인덱스 i로 레이블된다. 0인 인덱스 i는 제1 매크로블럭에 할당되고, N-1의 인덱스는 최종 매크로블럭에 할당되며, 여기서 N은 그 영역 유형 내의 매크로블럭의 전체 갯수이다. 예를 들면, 모든 “돈트 케어” 영역들에 대해 이들 영역 내의 각각의 매크로블럭은 0에서 N-1까지 색인된다. 둘 이상의 “돈트 케어” 영역들이 있을 경우,“돈트 케어”영역에 대해 두개의 다른 인덱스 i=0은 없다. 모든 “돈트 케어”영역에 대해, 인덱스 0을 갖는 단 하나의 매크로블럭, 인덱스 1을 갖는 단 하나의 매크로블럭 등이 있을 뿐이다.
사용자가 영역들의 우선 순위를 결정한 후, 프레임에서 너무 많은 비트들이 있을 경우, 프레임에 대한 양자화 레벨은 프레임에 대한 비트 수를 감소시키기 위하여 증가되어야 한다. 매크로블럭에 대한 원시 양자화 값은 도 10A 또는 도 10B에 도시된 바와 같은 포맷을 갖는 매크로블럭 층 로그 파일로부터 취해진다. 대안으로서, 부호기는, 부호기의 원래 실행 후의 양자와 값이 저장되지 않았을 경우에, 양자화 값을 결정하기 위해 재실행될 수도 있다. 또 다른 대안은, 원시 부호화의 양자화 값들을 결정하기 위하여 부호화 비트스트림을 복호화하는 것이다. 비트 수를 감소시키기 위한 작업의 방식은 한 양자화 레벨에 의해 “돈트 케어”유형의 각각의 매크로블럭에 대한 양자화 레벨을 한번에 한 매크로블럭씩 증가시키는 것이다. 이것이 문제점을 해결하지 않을 경우, 각각의 “돈트 케어”에 매크로블럭은 한번에 한 매크로블럭씩 1 만큼 증가된 q레벨을 갖는다. 선정된 최대 양자화 레벨이 설정되고 매크로블럭의 양자화 레벨은 이 최대 레벨을 벗어나 증가될 수 없다. “돈트 케어”유형의 모든 매크로블럭들이 이 최대 레벨에 이를 경우, “음의 우선 순위”와 “양의 우선 순위” 영역들은 유사한 방식으로 1만큼 증가된다. 첫째 모든 음의 매크로블럭은 1 양자화 레벨만큼 증가되고, 이것이 비트 차 문제점을 해결하지 않을 경우 “양의 우선 순위” 매크로블럭의 매크로블럭들이 1만큼 증가된 그 양자화 레벨을 갖는다. 이것이 문제점을 해결하지 않을 경우, “음의 우선 순위” 매크로블럭들의 양자화 레벨들이 또다시 1만큼 증가되고, 이것이 문제점을 해결하지 않을 경우 “양의 우선 순위”유형의 매크로블럭이 1만큼 증가된 양자화 레벨을 갖는다. 이 프로세스는 “음의 우선 순위”와 “양의 우선 순위”유형에서 모든 매크로블럭들이 상술한 최대 레벨로 증가된 양자화 레벨을 가질 때까지 계속된다. 이것이 비트 차 문제점을 해결하지 않을 경우 “돈트 케어”유형의 매크로블럭들이 비트 차 문제점이 해결될 때까지 한번에 1 양자화 레벨만큼씩 증가된 양자화 레벨을 갖는다. 아마 비트 차 문제는 “돈트 케어”유형의 양자화 레벨이 변경되기 시작하기 전에 정정되어야 할 것이다. 유사한 프로세스가 사용자 선택 우선 순위를 갖는 프레임들이 너무 적은 비트들을 갖고 매크로블럭의 양자화 레벨이 도 25A-25C의 프로세스에 따라 비트 수를 증가시키기 위해 감소될 필요가 있을 때 발생한다.
너무 많은 비트들이 초래될 때는 도 23에 의해 실행된 도 24A에 도시된 플로우챠트로 복귀하여, 프로세스가 블럭 유형을 “돈트 케어”유형으로 세팅하는 단계(480)를 시작한다. 그런 다음 단계(482)는 매크로블럭들의 인덱스를 시작 포인트로 세팅하는데, 이것은 인덱스 i가 0으로 세팅됨을 의미한다. 세팅된 매크로블럭 유형(첫째 플로우챠트를 통하여 “돈 케어”유형의 제1 매크로블럭)을 갖는 문제의 매크로블럭(인덱스=i 내에서의 매크로블럭)의 양자화 레벨이 최대 선규정된 양자화 레벨을 갖는지의 여부를 판정하는 단계(486)가 수행된다. 이 정정 프로세스를 위한 최대 양자화 레벨은 정정되는 매크로블럭에 대한 품질이 크게 저하되도록 너무 높게 세팅되지는 말아야 한다. 가능하면 매크로블럭의 품질에 상당한 차가 있지 않도록 일정한 방법으로 비트 수를 감소시키기 위하여 품질을 저하시키도록 시도하는 것이 바람직하다. 따라서 이 최대치는, 예를 들면 MPEG-2 부호화에 대한 선형 양자화 스케일이 사용될 때 62 양자화 레벨로 세팅되고 비선형 양자화 스케일이 사용될 때 112의 양자화 레벨로 세팅된다. 그러나 다른 값들이 최대 양자화 값들로 사용될 수도 있다. 단계(486)에서 문제의 매크로블럭의 양자화 레벨이 최대로 되지 않는 것으로 판정되면, 단계(488)는 문제의 매크로블럭의 양자화 레벨을 1 양자화 레벨만큼 증가시킨다. 그런 다음 단계(490)는 위에서 설명된 비트 레이트 양자화 함수를 사용하여 프레임에 대한 비트 추정치를 다시 계산한다. 그런 다음 단계(490)는 매크로블럭의 인덱스를 증가시킨다. 매크로블럭의 인덱스가 이 매크로블럭 유형의 최종 매크로블럭이 처리되지 않았음을 나타낼 경우, 플로우는 다시 단계(484)로 돌아된다. 그렇지 않을 경우, 플로우는 단계(492)로부터 블럭 인덱스를 제1 매크로블럭을 나타내는 0으로 리셋하는 단계(498)로 진행한다.
플로우가 단계(484)로 복귀할 때, 단계(490)에서 다시 계산된 비트 추정치는 위에서 설명된 바와 같이 임계치와 비교된 차 D를 다시 계산하는데 사용된다. 비트 추정치가 더 이상 너무 높지 않다면, 사용자 선택 우선 순위를 포함하는 프레임에 대한 비트 수는 정정되었고 플로우는 호출 프로세스로 복귀된다. 그렇지 않을 경우, 플로우는 문제의 (인덱스 i를 갖는) 매크로블럭의 양자화 값이 최대인지를 판정하는 단계(486)로 진행한다.
단계(486)가 문제의 매크로블럭의 양자화 값이 최대값이라고 판정할 경우, 그 블럭의 양자화 레벨은 증가되지 않을 것이고, 단계(494)는 블럭 인덱스 i를 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)는 “음의 우선 순위” 유형의 모든 블럭들이 최대 Q 레벨을 갖는지를 판정한다. 만약 그렇지 않다면, 블럭 유형은 “음의 우선 순위”로 세팅되고 플로우는 도 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에 설명된 정정 프로세스는 본 발명이 작동할 수도 있는 한가지 방식이다. 그러나 상이한 유형들의 매크로블럭들의 양자화 레벨들을 조정하는 대안적인 프로시져도 가능한다. 예를 들면, 위에서 설명된 바와 같이 “음의 우선 순위”와 “양의 우선 순위” 매크로블럭들의 양자화 레벨들을 변경하는 대신, “음의 우선 순위”, “양의 우선 순위”, “돈트 케어”유형들의 매크로블럭들이 균일하게 증가될 수 있다. 대안으로서, 너무 많은 비트들이 있을 경우, “음의 우선 순위”유형의 양자화 레벨들은 최대 양자화 레벨에 도달될 때까지 증가될 수도 있으며, 그런 다음 “양의 우선 순위”유형의 매크로블럭들에 대한 양자화 레벨들이 증가된다. 반대로, 사용자 선택 우선 순위를 갖는 프레임의 비트 수가 너무 낮을 경우, “양의 우선 순위”유형의 매크로블럭들은 “음의 우선 순위”유형의 매크로블럭들의 양자화 레벨들이 감소되기 전에 비트 수를 증가시키기 위해 감소된 양자화 레벨들을 가질 수 있다. 후자의 두 경우에, “음의 우선 순위” 또는 “양의 우선 순위”유형의 1매크로블럭들이 변경되기 전, 또는 변경되는 동안, 또는 변경된 후에 “돈트 케어”유형의 매크로블럭들의 변경이 발생할 수도 있다.
도 23A-25C의 프로세스가 실행된 후, 플로우는 도 20의 단계(462)로 복귀하여, 새로운 양자화 값들을 사용하여 비디오를 재부호화한다. 재부호화는 재부호화 된 프레임의 결과적인 비트 수가 이 프레임의 원시 부호화에 대한 비트 수에 가능한 한 가까도록 하기 위하여, 레이트 제어 기능을 사용하여 양자화 값을 미세 조정하면서 실행된다. 레이트 제어기 프로세스는 아래의 별도의 절에서 상세히 설명된다. 또한, 재부호화 프로세스 동안 부호화 아티팩트(artifact)가 초래될 수 있고, 따라서, 아래의 별도의 절에서 설명되는 바와 같이, 이들 부호화 아티팩트를 감소시키기 위해 특별한 프로시져가 수행될 수 있다.
공간적 수동 편집을 위한 프로세스는 본 발명의 양호한 실시예에서 도 1A의 워크스테이션(30)에서 발생한다. 그러나 공간적 수동 편집이 비디오 부호화 프로세스와 동일한 시간에 발생하지 않기 때문에, 워크스테이션(10)은 비디오 부호화 프로세스의 레이트를 저하시키지 않고서 시간적 수동 편집 계산을 수행할 수 있다. 본 발명은 프레임 내의 여러 영역들의 화상 품질을 변경하는 것으로 상세히 설명된다. 물론 본 출원의 사상을, 한 프레임의 영역 내의 비트들을 상이한 프레임 내의 영역으로 이동시키는 것으로 확대할 수 있다. 또한 공간적 수동 편집은 위에서 설명된 시간적 수동 편집과 연간시켜 적용될 수도 있다.
공간적 수동 편집은 사용자가 공급 영역 우선 순위를 갖는 프레임의 비트 수를 프레임의 원시 편집과 동일하게 유지시키는 것으로 설명되었다. 그러나, 원할 경우, 재부호화된 편집 세그먼트는 충분한 저장 용량이 있을 경우 프레임에 대한 원시 비트 수 이상의 또는 이하의 선정된 비트 수를 소비할 수 있다. 이러한 경우, 변경되는 프레임이 변화될 수 있는 비트 수를 아는 것이 바람직하고, 따라서 도 24A-25C에서 도시된 프로세스는 지정된 차에 달성될 때까지 작동할 것이다. 따라서 어떤 프레임의 재부호화를 위한 총 비트 수는, 예를 들면, 대략 5%와 1% 이상 또는 이하의 비트들을 모두 포함하는 대략 0%와 20% 사이에서 원시 부호화보다 이상 또는 이하인 임의의 크기일 수도 있다.
공간적 수동 편집에 대한 설명은 부호화 후에 비디오를 변경하는 것에 대해 설명하였다. 그러나 본 명세서에 포함된 기술은 초기 부호화 프로세스가 없었던 시스템에도 응용될 수 있다.
공간적 수동 편집의 작업 방식은 프레임에 대해 사전에 얻어진 것과 동일한 비트 수를 달성하기 위하여, 사용자 선택 우선 순위를 근거로 양자화 값을 할당받고, 필요에 따라, 프레임의 매크로블럭들의 양자화 레벨들을 조정하는 것이다. 이와 대비하여, 위의 절에서 설명된 시간적 수동 편집은 비디오의 섹션으로부터 비트들의 공통 푸울(pool)을 제거하고 사용자 선택 우선 순위에 따라 공통 푸울로부터 이 비트들을 재분배한다. 공간적 수동 편집이 하나의 프레임에 대해 실행하는 프로세스의 모든 기술은 시간적 수동 편집에 관한 절에서 상술한 바와 같이, 시간에 걸쳐서 비디오의 프레임의 품질을 변경하는 개념에 응용될 수도 있고, 그 역도 또한 성립한다. 예를 들어, 공간적 편집은 품질 변경을 달성하도록 양자화 레벨을 수정하는 것으로 설명되는 반면에, 비트 수는 시간적 편집 섹션에서 조정된다. 프레임이나 매크로블럭에 대한 비트 수가 양자화 레벨에 의존하기 때문에, 비트 수와 양자화 레벨의 수정은 동일한 결과를 달성하고, 따라서 시간적 공간적 편집은 비트 수 및/또는 양자화 레벨을 수정할 수 있다.
Ⅷ. 품질의 변경 후 비디오를 재부호화하기
A. 품질이 단일 프레임 내에서 변경되었을 때 비트 할당 제어
도 1A에 도시된 비디오 부호화 장치(50)에서 비트 레이트를 제어하기 위하여, 동일한 제어 기능을 실행할 수 있는 워크스테이션(10) 또는 어떤 전용화된 하드웨어와 같은 제어기는 양자화 레벨 또는 q 레벨, 그리고 단위 슬라이스당 추정된 또는 예상된 비트 수를 레이트 제어형 부호기에 로딩한다. 그런 다음 부호기는 부호화를 시작하고 양자화 레벨은 발생된 비트 수의 정확도를 사전 결정된 추정 비트수와 비교하여 측정된 후 조정된다. 추정된 비트 수는 공간적 시간적 편집에 관한 절에서 상술한 바와 같이 레이트 양자화 기능을 사용하여 결정된다. 이 프로세스는 한번에 n개 매크로블럭들의 세트에 순차적으로 실행되고, 여기서 각각의 세트는 MB(i)로 지정되며, 여기서
[수학식 27]
1
Figure kpo00009
i
Figure kpo00010
(매크로블럭들의 총 갯수 / n)
이다. 매크로블럭들의 최종 세트를 재부호화 할 때 레이트 제어기는 재부호화 프로세스에서 발생된 총 비트 수가 원시 부호화 길이보다 낮도록 보장하는데, 이것은 발생 비트 수에 대한 임의의 사소한 과대 추정이 비트 스터핑을 사용하여 흡수될 수 있기 때문이다.
도 26은 사전 할당된 양자화 레벨을 사용하여 한 세트의 디지탈 비디오 프레임을 재부호화 하는 방법을 설명하는 플로우챠트이다. 양자화 모델이 실제 발생된 비트 수에 대해 재부호화 에 의해 발생될 비트 수를 얼마나 정확히 추정하는지를 근거로 사전 할당된 양자화 레벨들에 조정이 행해진다. 도 26에서, 레이트 제어형 코딩 프로세스는 단계(700)에서 시작하고, 단계(702)에서 i=1을 세팅함으로써, n개 매크로블럭의 제1 세트를 매크로블럭들의 현재 세트로서 지정한다. 단계(704)는 각각의 세트의 매크로블럭 MB(i)을 재부호화할 때 사용될 추정된 비트 수 EB(i)의 전세트를 로딩한다. 그런 다음 MB(i)는 단계(706)에서 재부호화되고 실재로 발생된 비트 수는 GB(i)에 저장된다. 발생된 비트 GB(i)와 추정된 비트 EB(i) 사이의 차는 추정비 PB(i) = GB(i)/EB(i) 로서 단계(708)에 계산된다. 또한, 시스템은 재부호화 된 세트의 매크로블럭들 모두에 대해, 누적 추정된 비트 수 EB′(i)와 누적 발생된 비트수 GB′(i)를 계산할 수 있으며, 여기서 EB′(1) = EB(1), GB′(1) = GB(1)이고, i
Figure kpo00011
2인 경우 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)에서 추정 비는 다음 세트의 매크로블럭 MB(i+1)에서 q 레벨에 대한 교정 계수를 결정하는데 사용된다.
이 교정 계수는 두 가지 방법 중 하나를 사용하여 결정된다. 제1 정정 계수 방법은 비율 룩업 테이블이라 칭하는 비율 값들의 테이블에서 소트된 비율들의 리스트를 통해 진행되어 어떤 두개의 비율들 사이에 추정 비가 속하는지를 결정한다. 테이블에서 이 두개의 번호들 중 더 큰 번호의 인덱스 j가 교정 계수 인덱스로서 사용된다. 교정 계수 인덱스는 교정 계수로서 테이블에서 j번째 성분을 선택함으로써 교정 계수 테이블에서 교정 계수
Figure kpo00012
(i)를 검색하는데 사용되고 매크로블럭들의 다음 세트 MB(i+1)이
Figure kpo00013
(i)만큼 조정된다. 비율 룩업 테이블 RT는, 예를 들면, 다음의 소트된 값들을 포함하고
RT = {0.85, 0.90, 0.95, 1.0, 1.05, 1.10, 1.15, 1.2, 1.5}
정정 테이블 CT는 다음의 값들을 포함한다.
CT = {-3, -2, -1, 0, 1, 2, 3, 4, 9}
도 30은 추정 비를 사용하여 비율 룩업 테이블로부터 교정 계수 인덱스를 결정하기 위한 프로세스를 설명하는 플로우챠트이다. 설명상, PB(i) = 0.87인 것으로 가정한다. 인덱스 j는 단계(722)에서 초기에 1로 세팅된다. PB(i)를 RT(j)와 비교하는 프로세스가 시작되고, 단계(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인 인덱스가 CT에서 대응 엔트리를 검색하는데 사용된다. CT 내의 제2 위치를 판독하여, 교정 계수는 단계(736)에서 -2로 결정된다. 따라서 MB(i+1)의 q 레벨은 -2만큼 변동된다. 마찬가지로 PB(i) = 1.12일 경우, 인덱스 7은 PB(i)보다 큰 RT 내의 제1 엔트리에 대응하고, 이에 따라 CT 내의 제7 위치에 있는 교정 계수는 3이다. 따라서, MB(i+1)의 q 레벨은, 예를 들면 MB(i+1)의 q 레벨에 3을 더함으로써, 3 만큼 변동된다.
제2 교정 계수 결정 방법은 재부호화된 매크로블럭들의 세트의 퍼센트가 교정 계수를 결정함에 있어서 제2 변수로서 사용되는 점을 제외하면, 제1 방법과 유사한 프로세스를 사용한다. 또한, 테이블로부터 교정 계수를 판독하는 대신, 교정 계수가 매트릭스로부터 판독된다. 부호화된 매크로블럭들의 세트들의 퍼센트 또는 재부호화되지 않은 매크로블럭들의 세트들의 퍼센트를 사용함으로써, 필요할 점진적인 교정이 일련의 프레임들의 초기에 행해질 수 있고, 필요한 경우, 더 큰 변경이 끝 부분에서 행해질 수 있다. 이것은 양자화 모델과 실제 발생된 비트 수 사이의 변동을 시스템이 더 정확하게 교정하도록 해준다. 재부호화 될 상태에 있는 매크로블럭들의 세트들의 수와 교정의 중요성 간의 역관계를 사용하여, 한 세트의 매크로블럭들에서의 과대 추정이 다른 세트의 매크로블럭에서의 과소 추정에 의해 상쇄될 것으로 가정하면, 불필요한 교정은 회피된다.
제2 교정 계수 방법의 교정 계수 매트릭스 CTM의 한 예로서, CTM이 다음과 같이 정의된다고 가정한다.
Figure kpo00014
일련의 프레임들의 시작에서 추정 비가 필요한 비트 수를 과대 추정한 것으로 나타나면, 사용되지 않은 모든 비트들은 다음 슬라이스에 즉각 재할당할 필요가 없다. 사용되지 않은 비트들이 MB(i+1)에 의해 즉각 소비되었을 경우, 추정된 것보다 더 많은 비트들을 소비하는 MB(k)-여기서 k
Figure kpo00015
i+1-는 MB(k+1)을 불필요하게 더 높은 양자화 레벨로 만들 것이다. 사용되지 않은 비트들은 MB(k)에 의해 필요로 되고 사용될 때까지 MB(i)로부터 재부호화 프로세스의 순방향으로 이송될 것이다.
도 32는 추정 비와 재부호화되지 않은 잔여 세트들의 매크로블럭들의 수 모두를 사용하여 교정 계수가 계산되는 방법을 나타낸 플로우챠트이다. 필요한 비트수를 과대 추정한 경우, 즉, PB(i) = 0.87일 때 교정 계수 j가 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)가 결정되고 추정 비가 계산되며 교정 계수
Figure kpo00016
(i)가 조사된다. 도 27B에 도시된 바와 같이 매크로블럭 MB(i+1)은
Figure kpo00017
(i)에 의해 정정되고 프로세스는 MB(i+1) 동안 반복된다. 도 27C는 MB(i+1)의 길이가 추정되고 계산되며 그 추정 비가 결정된 후 MB(i+2)에 있어서의 변경을 도시한다.이 프로세스는 모든 매크로블럭과 부분 매크로블럭이 재부호화되고 정정될 때까지 계속된다.
또다른 예는 도 27A와 27D를 참조하여 주어진다. 이 예에서 단위 세트당 매크로블럭들의 수는 2개 슬라이스에서의 매크로블럭들의 수이다. EB(i), GB(i), PB(i)를 계산한 후, 2개 슬라이스를 포함하는 MB(i)의 매크로블럭은 도 27D에서 설명된 바와 같이
Figure kpo00018
(i)에 의해 교정된다. 이 재부호와 및 교정 프로세스는 모든 매크로블럭이 재부호화될 때까지의 앞의 예에서처럼 계속된다.
재부호화 프로세스로 인한 변경은 도 28A와 28B에 도시된다. 프레임 N의 두개의 동일 크기 영역들, 영역 A와 영역 B는 겨의 동일한 비트 수를 사용하여 초기에 부호화된다. 사용자는 영역 A의 품질이 저하되고 영역 B의 품질이 향상되도록 지정한다. 그러나 원시 부호화를 위해 사용된 비트 수가 가능한 한 재부호화의 비트수와 가깝도록 하는 것이 바람직하다. 프레임 N을 재부호화한 후 프레임 N이 원시 부호화로부터 발생된 것과 동일한 비트 수를 포함하지만 영역 A는 더 적은 비트로 코딩되고 영역 B는 추가된 비트를 사용한다. 이것은 사용자에 의해 요구된 바와 같이 영역 A의 품질을 저하시키고 영역 B의 품질을 향상시킨다. 본 발명의 레이트 제어 프로세스는 레이트 양자화 기능을 사용하여 결정된 추정 비트 수에 대한 사소한 에러를 교정함으로써 프레임이 재부호화 비트 수가 가능한 한 원시 비트 수와 가깝게 만든다.
도 29는 다수 프레임들로부터의 비트들을 재할당하고 이들을 제2의 다수의 프레임들에 줌으로써 디지탈 비디오 스트림을 변경하는 것을 나타낸다. 개별 프레임 크기가 변동한다고 하더라도, 프레임들의 세트의 총 크기는 동일하게 유지되어야 한다. 레이트 제어기는 추정된 비트 수를 결정하는데 사용된 레이트 양자화 기능이 약간 에러 상태에 있다고 하더라도, 다수의 프레임들의 재부호화를 위하여 비트 수가 원시 부호화로부터의 비트 수에 동일하게 되도록 미세 조정되도록 해준다.
B. 편집 포인트에서 복호화 아티팩트를 회피하면서 재부호화하기
1. 부호기를 원시 부호화 때 사용된 상태로 복원하기
상술한 시간적, 공간적 품질 편집 오퍼레이션은 새로운 양자화 값으로써 비디오를 재부호화함으로써 비디오의 품질이 변경되도록 해준다. 그러나 재부호화된 비디오를 원시 비디오에 단순히 교체하는 것은 비디오의 편집 포인트에서 가시적인 돌연한 고장으로 보이는 수용할 수 없는 복호화 아티팩트를 초래할 수 있다. 이들 가시적인 돌연한 고장은 교체되는 새로운 세그먼트가 MPEG-2와 같은 적절한 구문을 갖고 편집 바운더리를 가로질러 버퍼 제약이 만족될 때 조차도 발생할 것이다. 문제점은 편집 세그먼트에 선행하는 최종 기준 프레임(최종 P 프레임)과 편집 세그먼트의 끝에 있는 다른 기준 프레임(최종 P 프레임)의 비유용성에 의해 초래된다. 이것은 편집 세그먼트의 시작부에 있는 제1 세트의 B 프레임들과, 편집 세그먼트를 바로 뒤따르는 제1 세트의 B 프레임들의 부호화와 복호화 사이의 불균형을 야기시킨다.
디지탈식 부호화 및 압축된 비디오의 편집을 적절히 수행하기 위하여, 원하는 편집 포인트들에 대응하는 부호와 비트스트림 내의 적절한 위치를 결정하는 것이 우선 필요하다. 이 프로세스는 부호화된 비디오를 액세스하기 위한 유틸리티를 설명하는 절 Ⅵ에서 상술되었다. 위에서 설명된 바와 같이, 이것은 문제의 화상에 대한 비트 오프셋을 결정하기 위해, 사전 부호화된 프레임들 각각에 사용된 비트 수를 합산함으로써 수행된다. 대안으로서, 디렉토리가 부호화된 비트스트림의 특정 프레임 또는 시간 주기의 정확한 위치를 나타내는 정보를 유지하는데 사용될 수 있다.
이제 도 33A-33E를 보면, 본 발명의 작동을 설명하기 위한 한 예로서 사용된 비디오의 시간 주기가 도시되어 있다. 도 33A에서 부호화된 비디오의 원시 섹션 O가 도시된다. 5m Os 내지 10m Os(5분, 0초 내지 10분, 0초)의 부호화 시간 주기를 다른 비디오 섹션으로 교체하는 것이 바람직하다. 도 33B는 도 33A의 부호화된 비디오에 교체될 부호화되지 않은 비디오의 새로운 섹션 N을 나타낸다. 도 33B와 33C에서의 점선은 부호화되지 않은 비디오를 표시하는데 사용되고, 도 33A, 33D, 33E에서 실선은 부호화된 비디오를 표시하는데 사용된다.
도 33B에 도시된 새로운 비디오의 섹션만이, GOP가 이전의 GOP를 참조하는 정규 PMEG-2 모드를 사용하여 부호화되고, 도 33A에 도시된 비디오에 교체된다면, MPEG-2 비디오 압축에 사용된 양방향성 복호화를 위해 필요한 정확한 기준 프레임의 부족으로 인해 복호화 아티팩트가 편집 포인트 5m Os와 10m Os에서 존재할 것이다. 이러한 문제점은 GOP의 시작부에서 앞선 GOP를 참조하지만 GOP의 끝부분에서 다음 GOP를 참조하지 않는다는 사실로 인해, 본 발명에 의해 다르게 처리되는 5분 및 10분 포인트들에서 모두 존재한다.
복호화 아티팩트가 GOP의 시작부에서 방지되도록 하는 방식은 GOP의 처음 두개의 B 프레임들에 대한 기준 프레임으로서 사용되는 선행 GOP의 최종 P 프레임을 재생성하는 것이다. 이것은, 예를 들면 삽입될 비디오의 시작부에 원시 비디오의 한 GOP를 배치함으로써 달성되고, 이 부가되는 비디오는 도 1에 4m 58.5s에서 4m 59s까지로 도시된다. GOP에 대한 다른 시간 주기가 가능하다고 하더라도, 본 예에서 하나의 GOP는 1초의 1/2과 같다. 부호기는 4m 59s 바로 전에 GOP의 최종 P 프레임을 생성하기 위해 원시 부호화에 사용된 동일한 양자화 값을 사용하여 이 섹션 동안 다시 실행된다. 비디오의 이 짧은 섹션의 재부호화로 인한 정보는 최종 P 프레임에 대한 것을 제외하고 모두 폐기될 수 있다.
편집 세그먼트의 끝에서 복호화 아티팩트를 방지하기 위하여, 원시 비디오의 한 주기(예를 들면 도 33C에서의 10m 0s에서 10m 1s까지)는 교체될 새로운 비디오의 끝에 부가되고 이 1초의 세그먼트는 원시 부호화 동안 사용된 것과 동일한 양자화 값을 사용하여 부호화된다. 이 1초 주기가 비디오의 끝에 부가되지 않았을 경우, 10m 0s 표시 바로 직후의 두 B 화상들은, 10m 0s가 두 GOP들 사이의 분할 포인트라고 가정하면, 편집 전보다 오히려 편집 후에 다른 기준 화상을 다시 참조할 것이다. 상기 예들은 비디오의 1/2초 주기 또는 1초 주기를 새로운 섹션에 가산하는 것으로 설명되었으나 상기 개념은 GOP를 가산하는 것으로 일반화될 수 있다.
복호화 아티팩트가 10분 표시에서 더 이상 나타나지 않는다 할지라도, 끝에서의 편집 포인트가 이제 10m 1s 포인트이기 때문에, 복호화 아티팩트가 10m 1s 포인트에서 발생할 경우를 고려해야 한다. 가시적 복호화 아티팩트는, 10m 1s 표시 바로 다음의 두 B 프레임들이 사전에 참조했던 본질적으로 동일한 기준 프레임을 다시 참조할 것이기 때문에 발생하기 않을 것이다. 10m 0s 바로 다음의 두 B 프레임들이 사전에 참조한 동일 기준 프레임을 다시 참조하지 않을 것이라고 하더라도, 두 B 프레임들은 재부호화되었기 때문에 새로운 기준 프레임을 적절히 다시 참조한 다. 따라서 10m 0s또는 10m 1s 포인트에서 가시적 복호화 아티팩트가 나타나지 않을 것이다.
도 33에서 끝에 부가된 두 GOP들(1초)은 최종 P 프레임이 원시 부호화와 거의 동등하게 되기에 충분한 시간이어야 한다. 10분 포인트 후의 원시 비디오를 재부호화할 때, 정확히 동일한 양자화 값이 사용되는 것을 보증할 수 있다면, 한 GOP(1/2초)는 정확하게 부호화된 기준 화상을 적절히 발생하기에 충분할 것이다. 그러나 적절한 품질을 보증하기 위해 두 GOP들이 선호된다. 원래 사용된 것과 동일한 양자화 값을 사용하는 것이 바람직하다 하더라도, 실제로 원시 양자화 값으로 부터 작은 편차가 있을 수도 있기 때문에 두 GOP들이 선호된다.
4m 58.5s에서 4m 59s까지와 10m 0s에서 10m 1s까지 사용된 비디오의 원시 주기들 뿐만 아니라, 도 33C는 4m 59s에서 5m 0s까지의 추가의 원시 비디오를 나타낸다. 이 비디오는 복호화 아티팩트를 방지하는데 필수적은 아니며, 따라서 최종 P 프레임을 결정하는데 1/2초가 5m 0s 표시 바로 전에(예를 들면 4m 59s에서 5m 0s까지) 사용될 수 있었다. 그러나, 4m 59s에서 5m 0s까지의 주기는, 품질의 수동 변경이 편집 범위를 넘어서 영향을 미쳤다는 것을 조작자가 인지할 기회를 제거하도록 새로운 비디오에 추가된다. 이러한 불감지는 MPEG GOP의 시작부에서의 프레임의 코딩 순서가 IBB이지만 이 프레임이 BBI로 표시된다는 것에 기인한다. 1초 주기는 그 시간 주기의 원시 부호화 동안 사용된 것과 동일한 양자화 값을 사용하여 부호화된다. 앞서 사용된 양자화 값을 얻는 방법은 아래에서 설명된다. 1초 주기가 4m 59s에서 5m 0s까지 부가되지 않았을 경우, 도 33D에서 도시된 교체 부호화 비디오는 5m 0s에서 시작할 것이다.
도 33C에서 비디오의 부호화로 초래된 유용한 데이터는 도 33D에서 4m 59s 내지 10m 1s까지 실행하는 교체 데이터 S로서 설명된다. 이 교체 데이터 S는 도 33E에서 도시된 바와 같은 최종 비트스트림을 초래하는 도 33A에서 설명된 원시 부호화 데이터로 교체된다.
도 33A에 도시된 부호화되지 않은 정보와 부호화된 정보는 양호한 실시예에서 비디오이지만 오디오나 또는 부호화된 정보를 복호화하기 위한 앞선 그리고/또는 후속되는 정보를 사용하는 다른 유형의 정보일 수 있다.
도 33B의 비디오의 새로운 섹션은 임의의 비디오 소스로부터 얻어지고 위에서 설명된 시간적 또는 공간적 편집 프로세스에 의해 발생된 어떠한 비디오일 수도 있다. 4m 59s에서 5m 0s까지와 10m 0s 내지 10m 1s까지의 도 33C의 원시 비디오는 원시 부호화를 위해 사용된 것과 동일한 양자화 값을 갖는 원시 비디오이다. 도 33C의 새로운 비디오의 끝에 있는 이 비디오는 시간적 편집 프로세스를 사용하여, 그리고 이 끝 섹션의 품질을 시간적 수동 편집 절에서 설명된 바와 같이 보호된 것으로 세팅하여 간단히 얻어지는데, 이것은 양자화 값이 동일하게 유지됨을 의미한다. 대안으로서 도 33B의 비디오는 도 33A의 비디오와 관계없이 완료될 수도 있으며 상이한 길이를 가질 수도 있다. 또한, 비디오의 섹션을 제거하고 새로운 비디오를 추가하지 않기 위해 본 발명을 사용할 수 있다. 이 경우에, 도 33B에 어떤 비디 오도 존재하지 않을 것이고, ´N´ 세그먼트와 그에 대응하는 부호화가 도 33C-33E에는 없을 것이다. 편집 세그먼트 전의 최종 P 프레임이 적절히 구성되고 원시 비디오의 1/2 내지 1초(1 또는 2 GOP)가 부호화될 새로운 비디오의 끝에 추가되고 원시 부호화에 사용된 것과 동일한 양자화 스케일로 부호화되는 한, 가시적 복호화 아티팩트가 어던 상황에서도 발생하지 않을 것이다.
도 34는 도 33A-33E에 대해 설명된 프로세스를 나타낸 플로우챠트이다. 시작 후, 단계(780)는 비디오를 압축된 포맷으로 부호화하여 도 33A에 나타낸 부호화된 비디오를 발생한다. 단계(782)는 부호화된 비디오에 교체될 부호화되지 않은 포맷 상태인 비디오의 새로운 섹션을 결정한다. 이 비디오의 새로운 섹션은 도 33B와 도 33C에서 N으로서 도시되고, 관련되거나 또는 관련되지 않은 장면을 나타낼 수도 있고, 또는 원시 프레임과 다른 시간 주기를 가질 수도 있다. 교체될 비디오의 시작 및 종료 포인트는 각각 5m 0s와 10m 0s이다. 그러나 교체될 실제 시작 및 종료 포인트는 도 33D에서 설명된 바와 같이 상이할 수도 있다.
단계(784)는 편집 포인트 5m 0s와 10m 0s에서 복호화 아티팩트를 방지하기 위하여 부호화되지 않은 비디오의 주기를, 위에서 설명된 이유로, 부호화된 비디오의 새로운 섹션의 끝에 추가된다. 이들 추가된 주기는 4m 59s 내지 5m 0s와 10m 0s 내지 10m 1s인데, 4m 59s에서 5m 0s까지의 주기는 필수적인 것은 아니다.
단계(786)는 편집 포인트 바로 전에 P 프레임을 결정한다. 도 33E에서 교체되는 비디오가 4m 59s에서 10m 1s까지이기 때문에, 4m 59s 바로 전에 최종 P 프레임이 결정될 필요가 있다. 이 P 프레임은 양자화 값이 P 프레임을 원시 부호화하는데 사용된 양자화 값으로 4m 58.5s에서 4m 50s까지의 시간 주기에 대해 부호기를 실행시킴으로써 결정된다. 양자화 값은 도 10A 또는 도 10B에 도시된 포맷을 갖는 매크로블럭 로그 파일들로부터 원시 양자화 값을 검색함으로서 결정된다. 그러나 전체 영화의 매크로블럭들 각각에 대한 양자화 값은 커다란 양의 저장 공간을 소비하여 양자화 값들을 저장하는 것이 바람직하지 않을 수도 있다. 대안으로서, 양자화 값은 I, P, B 프레임들에 대한 비디오 버퍼들용의 레이트 제어 상태, 할당된 비트(allocated_bit)로서 도 9B의 화상 층 로그 파일에 나타낸 화상에 대한 목표 비트, 도 9C의 평균 활동도(mean-activity)로서 저장된 화상의 활동도 레벨, 부호화 동안 부호기에 의해 계산된 매크로블럭들의 활동도 레벨을 사용하여 간단히 생성될 수 있다. 레이트 제어 상태는 각각 I, P, B 비디오 버퍼에 대해 레이트 제어 상태 정보를 저장하는 S1_i, S2_i, S1_p, S2_p, S1_b, S2_b 처럼 도 9C의 밑면에 도시된 바와 같은 화상 층 로그 파일에 저장된다. 본 명세서에 포함된 기술에 근거한 비디오 부호화 기술의 통상의 기술자는 오류없이 원하는 P 프레임에 대한 양자화 값을 결정할 수 있을 것이다.
기준 프레임의 양자화 값들 및/또는 부호화 기준 프레임 그 자체를 결정하는 대안의 방법으로서, 부호화 기준 스트림 내의 기준 프레임의 부호화된 버젼은 공지된 방법으로 복호화될 수 있다. 더 나아가, 필요한 기준 프레임을 얻는 임의의 다른 방법도 수행될 수 있다.
기준 P 프레임이 얻어진 후, 비디오는 끝 섹션의 원시 부호화와 동일한 양자화 레벨을 유지하면서 단계(788)에서 부호화된다. 양자화 레벨은 위에서 설명된 바와 같이 얻어진다. 결과적인 부호화 비디오는 도 33D에 도시된다.
그런 다음 단계(790)는 새로이 부호화된 비디오를 원시 부호화된 비디오에 교체하고, 도 33E에 나타낸 바와 같은 최종 산출물이 얻어진다. 교체된 부호화된 비디오를 포함하는 상기 부호화된 비디오는 편집 포인트에서 최소의 복호화 아티팩트를 갖는다.
2. 폐쇄된 화상 군 모드에서 재부호화
도 33A-34에서 설명된 프로시져에 대한 대안으로서 복호화 아티팩트를 감소시키면서 새로운 비디오의 시작부의 부호화를 위한 다른 프로시져를 수행할 수 있다. 이 프로시져에서 비디오의 끝부분을 처리하는 방법은 도 33A-34와 관련하여 상술된 것과 동일하다.
이 대안의 실시예의 한 예로서 원시 부호화된 비디오로서 도 33A를, 도 33A에 교체될 부호화되지 않은 비디오로서 도 33B를 사용한다. 원시 부호화되지 않은 비디오는 도 33B의 시작 에지에 추가되지 않고, 도 33C에 대해 설명된 바와 같이 대응하는 원시 부호화되지 않은 비디오의 두 GOP(1초)들은 도 33B의 끝에 추가되며 부호화될 비디오는 도 35A에 도시된 바와 같다.
부호기가 1초의 기준 화상 없이 B 프레임에 대한 비트들을 증가시시면서 비디오의 제1 GOP에 대한 폐쇄된 GOP 모드에서 도 35A의 비디오를 부호화할 경우, 시작 편집 포인트에서의 가시적 복호화 아티팩트는 제거될 것이다. 10m 0s에서 10m 1s까지 원시 부호화를 위하여 사용된 것과 동일한 양자화 레벨을 사용하여 끝부분을 부호화하는 것은 도 33A-34에 대하여 위에서 설명된 것과 동일하며 결과적인 부호화 비디오는 도 35B에서 설명된다. 폐쇄된 GOP는 6, 3, 8 절에서 MPEG-2 표준에서 설명된다. 폐쇄된 화상 군 모드 플래그는 1로 세팅되어, 부호화 B 프레임이 단지 후방 예측만을 사용하여 부호화되었고 이전 GOP의 기준 프레임은 사용되지 않았음을 나타낸다. 그러나 양방향 프레임용으로 보통 사용되는 기준 프레임들 중 하나가 이용 가능하지 않기 때문에, 저하된 품질을 배제하기 위한 프로시져가 실행되지 않을 경우 B 프레임은 저하된 품질을 가질 것이다.
폐쇄된 GOP 모드에서 부호화된 B 프레임들의 저하된 품질에 대한 문제점을 해결하기 위하여, 단지 한 방향의 예측만을 갖는 B 프레임에 대한 비트 수가 증가되어 프레임의 품질이 실제로 저하되지 않도록 한다. B 프레임이 단지 한 방향의 예측만을 갖기 때문에, 비트 수는 대략 보통의 P 프레임용으로 사용되는 비트 수로증가되는 것이 바람직하다. 그러나 비트 수는 원하는 화상 품질에 따라 변할 수도 있다.
도 35B의 부호화된 비디오는 도 35C에서 설명된 바와 같이 사전 부호화된 비디오로 직접 교체될 수 있다.
폐쇄된 GOP 모드를 사용하는 프로세스를 설명하는 플로우챠트는 도 36에 도시된다. 도 36을 참조하면, 비디오는 단계(800)에서 압축된 포맷으로 부호화되고 부호화된 비디오에 교체될 비디오의 새로운 섹션은 단계(780, 782)에 대해 설명된 것과 유사한 방식으로 단계(802)에서 결정된다. 그런 다음, 단계(804)는 부호화되지 않은 원시 비디오의 필요한 (1개 또는 2개 GOP) 만큼의 GOP들을 비디오의 새로운 섹션의 끝부분에 추가한다.
그런 다음 단계(786)는 이 비디오를 부호화한다. 새로운 비디오의 제1 GOP는 폐쇄된 화성 군 모드에서 부호화되고 기준 프레임을 누락한 양방향으로 예측된 프레임들에 대한 비트 수는 대략 단일 방향 예측 프레임인 P 프레임용으로 사용되는 비트 수로 증가된다. 부호화된 비디오에 대한 총 비트 수가 동일하게 유지될 경우, 양방향 프레임을 위해 필요한 여분의 비트는 다른 프레임으로부터 제거되어야 한다. 이것은 공간적 그리고/또는 시간적 수동 편집에 대한 절에서 설명된 바와 같이 달성될 수 있다. 그런 다음에 비디오의 새로운 섹션의 잔여분은 일반적으로 부호화된다. 최종으로 끝 부분에 추가된 주기는 편집 세그먼트의 끝 포인트에서의 복호화 아티팩트를 방지하기 위하여, 추가된 주기의 원시 부호화 동안 사용된 것과 동일한 양자화 값을 사용하여 부호화된다. 끝으로 새로이 부호화된 비디오는 단계(808)에서 원시 부호화된 비디오에 교체된다.
위에서 설명되고 도 34 및 35에서 도시된 프로세스 중 어느 하나에 의한 교체 부호화 섹션을 포함하는 부호화 비디오의 최종 버젼은 감소된 수의 복호화 아티팩트를 가지며 따라서 가시적 비디오의 돌연한 고장이 감소되어 교정 단계가 복호화 아티팩트를 방지하도록 채택되지 않은 경우와 비교하여, 비디오의 품질을 증가시킨다. 위에서 설명된 예는 GOP들의 범위에서의 편집 포인트에 관한 것이다. 상술한 예들은 GOP들의 경계에서의 편집 포인트들에 관한 것이다. 그러나 상기 기술은 GOP 경계가 아닌 편집에도 응용될 수 있다.
복호화 아티팩트를 감소시키는 프로세스는 재생 VTR(51)과 비디오 부호기(50)와 함께 워크스테이션들(10, 30, 40)을 사용하여 실행된다. 그러나 다른 하드웨어의 대안이 가능하며 본 발명의 상기 특징은 어떤 다목적 컴퓨터 또는 특별한 하드웨어를 사용하여 구현되어 이 프로세스를 실행할 수도 있다. 편집 포인트를 결정하고 부호화될 비디오의 새로운 섹션의 끝에 부가될 비디오를 결정하기 위하여 사용된 계산은 워크스테이션(10) 또는 워크스테이션(30)에서 실행된다
Ⅸ. 부호화에 사용된 레이트 양자화의 모델링
부호화 프로세스로 인한 일련의 매크로블럭들을 나타내는데 필요할 비트 수를 정확히 평가하기 위하여, 프레임은 프레임에 대한 전형적인 양자화 레벨을 나타내는 여러 양자화 레벨들을 사용하여 사전 부호화될 수 있다. 그런 다음 프레임은 다른 양자화 레벨 뿐만 아니라 대표적 양자화 레벨을 사용하여 실제로 부호화될 수 있다. 도 1A에 도시된 양호한 실시예에서, 워크스테이션(10)은 선정된 양자화 레벨들을 비디오 부호화 장치(50)에 로딩한다. 그런 다음 비디오 부호화 장치(50)는 사전 부호화를 실행한다. 양자화 모델을 발생하는 가장 정확한 방법은 각각의 가능한 양자화 레벨에서 각각의 프레임을 부호화하고, 결과적으로 사용된 비트 수에 대한 통계치를 레코딩하는 것을 포함할 것이다. 그러나 이 프로세스는 가공되지 않은 비디오에 걸쳐 n개 패스들이 요구되는데, 여기서 n은 가공되지 않은 비디오를 부호화하는데 사용된 양자화 레벨의 총 수이다. 이 방법은 터무니없이 길기 때문에, 본 발명은 종래의 방법에서 요구된 시간의 일부로 최적 방법과 유사한 결과를 발생하는 개선된 방법을 제공한다. 상기 방법은 다수의 프레임들의 여러 부분들에 상이한 양자화 레벨을 할당하여, 대표적 비트 레이트 대 양자화 레벨 평균이 사전 부호화 페이즈 동안 다수의 프레임을 각각에 대해 계산될 수 있도록 하는 것을 포함한다. 이것은 정확한 양자화 레벨 대 비트 레이트의 통계치들을 발생하면서 각각의 프레임에 대해 n-1 사전 부호화를 세이브(save)한다. 이러한 통계치들은 사전 부호화 프로세스에서 양자화 레벨 대 비트 레이트가 결정되지 않은 매크로블럭들에 의해 사용될 비트 수를 추정하기 위해 보간될 수 있다. 두가지 대안적 실시예들에서, 상기 방법은 가공되지 않은 비디오로부터의 프레임들의 대다수 또는 가공되지 않은 비디오의 모든 프레임들을 사전 부호화한다.
도 37A는 사전 부호화 프로세스에서 매크로블럭 별로 매크로블럭에 할당된 두 상이한 양자화 레벨들을 갖는 가공되지 않은 비디오의 프레임을 나타내는데, 두 포인트 양자화 레벨 대 비트 레이트 라인이 다수의 프레임들에 대해 발생되고 그 결과가 다수의 프레임들을 위해 저장된다. 대안적 실시예에서, 양자화 레벨들은 매크로블럭들의 군 또는 스트립에 할당될 수 있다. 도 37B는 위치에 근거한 통계치의 아노말리(anomalies)를 피하기 위하여 양자화 레벨들이 프레임의 상이한 위치들에 할당되어 있는 프레임을 가로지르는 4개의 양자화 레벨들의 유니폼한 분포들을 나타낸다. 도시된 프레임에서, 각각의 행 j에 대해, 행 내의 제1 양자화 레벨은 qjmod4이다. 이것은 4 포인트 양자화 레벨 대 비트 레이트 곡선을 초래한다. 도 37C는 도 37B와 동일한 프로세스를 도시하지만 양자화 레벨은 블럭별로 할당된다. 이 프로세스의 단일 패스가 대안적 실시예에서 정확한 양자화 레벨 대 비트 레이트 곡선을 발생한다 할지라도, 이 프로세스는 다수의 프레임들에 걸쳐서 다수 회 반복되어 각각의 양자화 레벨에서 각각의 프레임을 분석함으로써 수집될 통계치에 접근하는 좀더 정확한 통계를 발생하게 된다.
도 38은 다수의 프레임의 양자화 레벨 대 비트 특성을 결정하는 대략적인 프로세스를 도시한 것이다. 이 프로세스는 단계(850)에서 시작하고 사전 부호화될 가공되지 않은 비디오를 나타내는 비디오 신호를 얻음으로써 단계(852)에서 계속된다. 단계(854)에서 이 프로세스는 i=1인 -여기서 i는 프레임 인덱스임- 제1 프레임이 사전 부호화됨을 나타낸다. 계속해서 단계(856)에서, 프레임i=1에 대한 양자화 레벨들이 이 프레임에 걸쳐서 균일하게 할당되어 통계적 아노말리를 방지하게 된다. 단계(858)에서 프레임i=1은 단계(856)에서 할당된 양자화 레벨을 사용하여 사전 부호화된다. 단계(858)의 결과는 단계(860)에서 결정되어, 단계(856)에서 할당된 각각의 양자화 레벨에 대한 비트 레이트가 프레임i=1동안 레코딩된다. 단계(862)에서, 상기 방법은 다수의 프레임 모두가 사전 부호화되었는지 아닌지의 여부를 판별한다. 단지 하나의 프레임 만이 사전 부호화되었기 때문에, 프로세스는 프레임 인덱스 i에 1을 더함으로써 제2 프레임을 부호화될 프레임으로서 지정하는 단계(866)로 계속된다. 양자화 레벨을 프레임i=2에 할당하는 단계(856)로 제어가 복귀된다. 단계들(856, 858, 860, 862)에서의 비트 레이트를 할당하는 프로세스, 사전 부호화 프로세스, 비트 레이트 결정 프로세스는 모든 잔여 프레임들에 대해 계속된다. 단계(826)가 모든 다수의 프레임들이 사전 부호화되었다고 판정하면, 프로세스는 단계(864)로 이동함으로써 종료된다. 단계(864)가 도달되었을 때, 양자화 레벨 대 비트 레이트 곡선은 단계(856)에서 할당된 양자화 레벨과 이들의 대응 비트 레이트들을 사용함으로써 어림 계산된다.
가공되지 않은 비디오의 다수의 프레임들에 대한 양자화 레벨 대 비트 레이트 곡선을 발생함으로써, 사전 부호화 프로세스는 가공되지 않은 비디오의 일부가 디지탈 저장 매체, 즉 콤팩트 디스크에 맞게 부호화되는 부호화 프로세스로 이동한다. 하나의, 다수의, 대부분의, 또는 모든 가공되지 않은 비디오 세그먼트들은 이 제2 페이즈에서 부호화될 수 있다. 가공되지 않은 비디오 세그먼트가 자동으로 부호화될 것이라면, 부호기는 대응하는 양자화 레벨 대 비트 레이트 곡선과 결합된 각각의 매크로블럭의 활동도 측정치를 사용하여, 세그먼트들 내의 각각의 프레임의 매크로블럭들에 할당될 양자화 레벨들을 결정하게 된다. 그런 다음 세그먼트들 내의 각각의 프레임은 할당된 양자화 레벨에 기초된 추정 비트 수와 비교된다. 결과적인 비트 수가 예상된 비트 수로부터 많이 변화한 경우, 자동 부호기는 부호화될 매크로블럭들의 다음 세트의 양자화 레벨을 변경함으로써 이 변화를 보상한다. 이러한 후속 프로세스는 자동 부호기가 전체 가공되지 않은 비디오의 세그먼트들을 목표 비트 수에 맞게 부호화하도록 해준다.
또한,비디오 시퀀스의 차후의 프레임들의 양자화 레벨 대 비트 레이트 곡선들은 결과적으로 부호화된 디지탈 비디오를 통하여 품질을 조절하는데 사용될 수 있다. 도 39에 도시된 바와 같이, 프레임 N은 동일한 양자화 레벨에서 프레임 M보다 더 적은 비트들을 발생하는 것으로 알려져 있다. 따라서, 프레임 M은 프레임 N에서와 동일한 품질의 영상을 발생하기 위해 더 많은 비트들을 필요로 한다. 프레임 N이 모든 그의 할당된 비트들을 사용하지 않고서 원하는 품질로 부호화되면, 부호기는 이 여분의 비트들을 동일한 품질을 위해 단위 시간 당 더 많은 비트를 필요로 하는 부호화 프레임 M에 사용되도록 순방향으로 이송할 수 있다. 이 기능은 M〉N+1일 때 단일 프레임 룩 어헤드 버퍼(a single frame look ahead buffer)만을 갖춘 시스템에서 사용할 수 없다.
Ⅹ. 데이터 구조체들을 사용하여 오디오, 비디오, 부화상 디지탈 신호를 결합하기
본 특허 명세서의 상기 부분은 일차적으로 부호화 및 압축된 디지탈 가청 가시 신호를 발생하기 위하여 가청 가시 정보의 부호화 동안 사용된 기술에 관한 것이다. 그러나 텔레비전과 같은 가청 가시 정보를 재생 또는 재구성하기 위하여, 오디오 및 비디오 정보가 결합되고 저장되며 후속적으로 복호화되도록 하기 위하여 오디오, 비디오, 및 부호화된 다른 정보를 결합하고 인터리브(interleave)하여, 이것이 저장되고 후속적으로 복호화될 수 있게 하는 것이 필요하다. 오디오, 비주얼, 및 다른 정보의 결합은 도 1A에 도시된 워크스테이션(20)에서 일어나는 포맷팅 프로세스로서 위에서 간략히 설명되었다. 포맷팅 처리에 대한 좀더 상세한 설명과 결과적인 데이터 구조체들 및 신호가 이제 설명될 것이다.
도 1A로 돌아가면, MPEG 비디오와 부호화된 오디오는 디스크(21)에 저장된다. 또한, 비디오의 상부에 표시되고 그리고/또는 오버레이되는 부제 및/또는 그래픽 표시를 포함하는 부화상 정보는, 예를 들면, 분리된 워크스테이션에 의해 먼저 부호화되고, 부호화된 부화상 정보 플로피 디스크, 테이프 또는 다른 유형의 디스크와 같은 디지탈 저장 매체 상에서 저장된다. 이 저장된 부화상 정보는 디지탈 저장 장치(22) 중 하나에 의해 판독되고 포맷팅 프로세스에서 디스크(21)의 부호화된 오디오 및 비디오와 결합되며 워크스테이션(20)에 의해 단일 데이터 스트림으로 포맷화된다. 포맷팅 프로세스의 출력은 디스크(21)에 의해 저장되고 디지탈 저장 장치(22)의 디지탈 테이프에 기록된다. 그런 다음 이 테이프는 공지된 광 디스크 제조 방법에 의해 광 디스크를 생성하는데 사용된다. 따라서 본 발명은 오디오 및 비디오 데이터의 부호화와 관련될 뿐만 아니라 포맷화 된 오디오, 비디오, 및 부화상 데이터를 저장하는 데이터 스트림, 디지탈 저장 매체, 및 데이터 구조체에 결합하기 위한 프로세스 및 시스템에 관한 것이기도 하며, 또한 사용자 또는 소비자에게 표시하기 위하여 오디오, 비디오 및 부화상 정보를 분리 및 재구성하는 복호화 프로세스 및 복호기에 관한 것이기도 하다. 광 디스크 상의 또는 포맷화된 데이터 내의 데이터 구조체들은 메모리에 저장된 정보에 물리적 조직을 부여하는 특별한 전자 구조 소자에 관한 것임을 주목한다. 이들 특별 전자 구조 소자는 주문형 비디오 시스템용으로 사용될 수 있거나 또는 디지탈 비디오 디스크 플레이어를 사용하여 사용자 또는 소비자를 위해 복호화되는 광 디스크에 저장된다.
부호화된 가청 가시 정보용의 디스크 또는 다른 저장 매체의 포맷 구조체의 특별한 특성을 설명하기 전에, 본원 발명이 개선점을 주는 표준들이 설명될 것이다. ISO/IEC 13818-1은 본 명세서에서 인용된 참조문과 함께 본 명세서에 참고로 인용된 MPEG 비디오 및 오디오의 시스템의 특징에 대해 설명한다. MPEG 시스템의 설명으로서 본 명세서에서 이하에 인용되는 ISO/IEC 13818-1은 비디오 및 오디오 시스템용 기본 멀티플렉싱 방법에 대해 설명한다. 이 스트림은 패킷화된 기본 스트림(PES) 패킷이라 칭해지는 패킷들로 분해된다. 오디오와 비디오 스트림들을 포함하는 상이한 스트림들로부터의 이 패킷들은 공통의 시간 베이스를 가지며 단일 스트림으로 결합된다. 또한 MPEG 시스템 명세에는 하나 또는 그 이상의 독립 시간 베이스들을 갖는 하나 또는 그 이상의 프로그램들을 단일 스트림에 결합하는 전송 스트림의 사용이 기재되어 있다. MPEG 시스템 명세는 다중 기본 스트림들을 동기화하기 위해 사용된 프리젠테이션 시간 스탬프(PTS)의 사용을 설명한다. 시간 스탬프들은 일반적으로 90kHz 단위이며 시스템 클럭 레퍼런스(SCR), 프로그램 클럭 레퍼런스(PCR), 작동 기준 스트림 클럭 레퍼런스(ESCR)와 함께 사용된다. MPEG 시스템 명세에 따라 데이터가 포맷화되는 방법에 대한 세부 사항의 상세한 설명은 ISO/IEC 13818-1에서 찾아볼 수 있다.
ISO/IEC 13818-1에 근거된 포맷화 프로세스를 사용해서 뿐만 아니라, 데이터는 또한 본 명세서에서 참고로 인용된 정보 교환을 위한 CD-ROM의 정보 프로세싱-볼륨 및 파일 구조체의 1988년 ISO 9660에 따라 포맷화되고 저장된다. 이 표준은 디스크 볼륨(소리의 크기가 아니라 디스크 내용)과 파일 구조체가 구성되는 방법에 대해 설명한다.
오디오, 비디오, 부화상 데이터를 저장하는데 사용되는 광 디스크의 양호한 실시예는 현재 매 측면당 5 기가 바이트의 용량을 갖는 단일 층 양면 디스크이며 총 저장 용량은 10 기가 바이트이다. 또다른 포맷들은 저장 용량을 증가시키기 위하여 다층 디스크를 허용하며 판독 전용 디스크, 라이트 원스(write-once) 및 라이트 오버(write-over) 기술도 또한 사용된다. 본 발명과 함께 사용될 수 있는 디스크의 다른 특징들은 본 명세서에 참고로 인용된 “광 디스크 및 광 디스크 장치”라는 명칭의 1994년 9월 13일자로 출원된 미국 특허 출원 제08/304,849호에서 설명된다. 디스크의 외경은 120mm인 것이 좋다.
도 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과 관련하여 설명된다.
각각의 디스크는 최소한 하나의 데이터 파일(910)부터 최대 99개 데이터 파일까지를 포함한다. 예를 들면, 디스크 상에 두가지 상이한 가청 가시 프로그램들이 있는 경우, 디스크 정보 파일(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)의 시작 어드레스가 있다. 메뉴 데이터가 없을 경우, 이 필드의 값은 0일 것이다. 여기에는 파일의 헤드로부터 상대적 논리 블럭 수를 사용하여 메뉴 데이터(922)의 시작 어드레스를 설명하는 필드가 있다. 메뉴 데이터가 존재하지 않을 경우 이 엔트리는 0이다.
파일 관리 테이블(924)은 또한 메뉴 데이터용 비디오의 비디오 속성을 설명하는 필드를 포함한다. 이 정보는 비디오 압축 모드가 MPEG-1였는지 MPEG-2였는지의 여부, 비디오의 프레임 레이트(초당 29.97 프레임 또는 초당 25 프레임), 표시 종횡비가 3/4인지 9/16인지를 나타내는 필드, 팬-스캔(pan-scan)과 우편함 모드들이 모두 허용됨을 나타내거나 팬 스캔 모드는 허용되지만 우편함 모드가 금지됨을 나타내거나 팬 스캔 모드는 금지되고 우편함 모드가 허용됨을 나타내는 표시 모드 필드를 포함한다.
비디오 속성을 설명하는 필드와 유사하게 파일 관리 테이블(924) 내의 오디오 스트림을 설명하는 필드도 있다. 이 필드 내에는 오디오가 돌비(Dolby) AC-3에 따라 부호화 되었는지, 오디오가 PCM 오디오(48 kHz에서 16비트)인지, 또는 오디오가 선형 PCM 오디오(48kHz에서 16비트)인지의 여부를 포함하는 오디오 코딩 모드의 표시가 포함된다. 오디오가 모노, 스테레오, 또는 서라운드인지에 대한 표시기도 있다.
파일 관리 테이블(924)은 메뉴 데이터(922)에 대한 부화상 스트림 속성들을 설명하는 필드를 더 포함한다. 이 필드는, 아래에 설명된 바와 같이, 런-렝스 부화상 코딩 모드가 부화상용으로 사용될 것임을 나타낸다. 파일 관리 테이블(924)은 또한 메뉴용의 모든 부화상들에 사용된 색 팔레트(color pallet)의 16 세트들을 설명하는 필드도 포함한다. 1에서 16까지의 팔레트 넘버들은 휘도 신호 Y, 색 차 신호 Cr=R-Y, 색 차 신호 Cb=B-Y를 포함한다.
디스크 구조 정보(926)는 디스크 상에 저장된 비디오 및 오디오 파일들의 구성 정보를 포함한다. 디스크 구조 정보(926)는 파일명을 식별하기 위해 사용된 디렉토리 레코드 내의 대응하는 파일 식별자와 같은 내용을 나타내는 파일명을 포함한다. 여기에는 파일을 디스크 구조 정보 파일로서 식별하는 파일 식별자 필드가 있다. 여기에는 도 40에 도시된 데이터 파일들(910, 914)과 같은 디스크상의 데이터 파일들의 수를 나타내기 위한 필드가 있다. 여기에는 또한 파일이 비디오 및 오디오 정보를 모두 포함하는지 또는 단지 오디오 정보만 포함하는지의 여부와, 파일이 가라오케 파일인지 아닌지의 여부를 나타내는, 각각의 데이터 파일의 유형을 나타내는 파일도 있다.
디스크 구조 정보(926)는 또한 데이터 파일 내의 부화상 및 오디오 정보를 설명하는 필드도 포함한다. 이 필드 내에는 부화상 채널들의 수가 표시된다. 각각의 부화상 채널은 상이한 부화상 언어들과 같은 상이한 부화상 정보를 표시하는데 사용될 수 있다. 여기에는 또한 오디오 스트림들의 수의 표시, 채널 번호 순서로의 각각의 부화상 채널의 언어 코드 표시, 파일들의 모(parental) 관리 및 각도 정보의 설명도 있다. 모 관리 정보는 표시될 정보의 특정 시퀀스의 모(parental) 레벨을 설명하는데 사용된다. 이것은 시퀀스 내에 포함된 특정 셀들의 최대 모 레벨이다. 레벨은 1에서 5까지 변하며, 레벨이 더 높을수록 들리거나 보이는 것에 대한 제한이 더 커진다. 시퀀스와 셀과 모 관리 플랜에 대한 세부 사항은 아래에 설명된다. 비디오 시퀀스의 앵글(angle)의 수를 설명하는 필드도 있다. 예를 들면, 뮤직 비디오가 전체 뮤직 비디오를 통하여 세개의 다른 카메라 뷰들을 가질 경우, 사용자는 어떤 특정한 카메라 앵글이 시작하기에 바람직한지를 선택할 수도 있다. 시퀀스 내의 프로그램들의 수를 나타내는 필드도 있다.
메뉴 구조 정보(928)는 각각의 메뉴 유형의 시작 셀 번호를 포함한다. 표시시퀀스는 다수의 셀들을 포함한다. 한 시퀀스는, 예를 들면 최고 256개의 셀들까지 포함한다. 셀은 차후에 설명될 재생 정보(PBI) 팩과 다음 PBI 팩 바로 전의 팩 사이의 GOP(화상의 집단)의 총 수이다. 비디오용 데이터는 데이터가 연속적으로 재생되어야 하는 레코드 유닛으로서 셀들로 분리된다. 셀은 표시될 정보를 포함하고 그 목적에 따라 분할된다. 셀 내의 제1 오디오 팩과 제1 부화상 팩이 셀의 헤드에서 PBI 팩 뒤에 레코딩된 비디오 헤드 팩 내의 프리젠테이션 시간 스탬프(PTS)에 가까운 PTS를 포함하는 것이 바람직하다. 상이한 셀들은 원하는 앵글과 프로그램의 모 제한에 따라 표시된다. 한 예로서, 어린 청중들에게 부적합했던 영화의 섹션이 있었다고 가정한다. 시청될 수도 있는 모 관리 레벨에 따라 셀들을 공유하는 두 시퀀스들이 있을 수 있다. 예를 들면, 제한되지 않은 시청의 경우, 셀 1, 2, 3, 5,가 특정한 시퀀스로 시청될 수도 있다. 제한된 시청 레벨의 경우, 시퀀스로 시청된 셀은 1, 2, 4, 5일 수도 있다.
상이한 앵글에 관하여, 동시에 진행되고 재생을 위해 필요한 시간이 실제로 동일한, 다수의 카메라 앵글들에서 레코딩된 각각의 비디오를 가질 수 있다. 각각의 앵글은 앵글 셀이라 칭해지는 한 셀에 의해 구성된다. 동시에 선행하는 다수의 앵글 셀들의 세트는 앵글 블럭이라 칭해진다. 앵글 블럭이 시퀀스 내의 다수의 위치들에서 규정될 경우, 앵글 셀들의 수와 각각의 앵글 번호의 카메라 앵글이 앵글 블럭들에 걸쳐서 동일해야 한다.
메뉴 셀은 사용자에게 볼륨 내의 비디오 또는 오디오 파일 각각의 내용을 통지하는 메뉴 화면을 구성하는 셀이다. 메뉴 셀들의 세트는 메뉴용 데이터로서 디스크 정보 파일에 함께 레코딩된다. 메뉴 유형으로 지칭되기도 하는 메뉴셀 유형은 타이틀 메뉴, 프로그램 메뉴, 오디오 메뉴, 부화상 메뉴, 앵글 메뉴로 분류된다. 메뉴 화면은 메뉴용 비디오를 포함한다. 선택용 항목들은 재생 장치의 화면 상에 표시되고, 메뉴 셀의 부화상 데이터로서 레코딩된다.
메뉴 셀 정보 테이블(930)은 도 41의 참조 번호 932 및 934와 같은 다수의 메뉴 셀 정보가 저장된 테이블이다. 한 메뉴 화면은 한 메뉴 셀을 포함한다. 메뉴 셀 정보는 다수의 필드들을 포함한다. 제1 필드는 디스크의 정보의 복사가 허용되는지 아닌지의 여부, 모 관리의 레벨, 메뉴가 타이틀 메뉴, 프로그램 메뉴, 오디오 메뉴, 부화상 메뉴 또는 앵글 메뉴인지의 여부와 같은 메뉴 셀 유형, 및 메뉴의 언어 코드를 나타낸다. 각각의 언어는 한 코드를 할당받으며 언어 코드 서브필드에 나타나는 특정 코드는 메뉴와 함께 사용된 언어를 나타낸다.
메뉴 화면상의 부화상에 의해 표시된 선택 항목의 시작 번호와 선택 항목들의 수를 나타내는 필드도 있다. 선택 항목 시작 번호는 메뉴 화면 상의 최소 갯수의 선택 항목들을 나타내고 메뉴의 다음 페이지가 존재하는지 아닌지의 여부와, 선택될 수 있는 1과 16 사이의 항목들의 수를 나타내는 번호를 표시한 필드가 있다.메뉴 셀 정보는 또한 메뉴 셀의 시작 팩 내에 시스템 클럭 레퍼런스(SCR)의 하위 32비트, 파일 헤드로부터 상대적 논리 블럭 번호로 메뉴 셀의 시작 어드레스를 나타내는 필드, 메뉴 셀을 구성하는 논리 블럭들의 수를 설명하는 필드도 또한 포함한다.
메뉴 데이터(922)는 메뉴용으로 표시되는 실제 정보를 포함한다. 이 정보는 도 40에서 데이터 파일들(910, 914)의 정보가 구성되는 것과 동일한 방식으로 구성되고, 따라서 각각의 메뉴 데이터(922)의 특징은 심도있는 설명은 반복 설명을 피하기 위해 생략된다. 메뉴 화면상에서 선택된 항목들은 부화상 정보에 의해 형성된다. 디스크 플레이어에 의한 메뉴 선택의 프로세싱이 컴퓨터 코드를 실행하는 마이크로프로세서를 사용하여 실행된다. 타이틀에 대한 메뉴 선택이 이루어지면, 선택의 결과가 선택된 타이틀 번호에 대응하는 파일 또는 시퀀스 번호의 시작에서부터 재생된다. 프로그램 메뉴 선택에 대해, 선택된 프로그램은 선택된 프로그램의 처음부터 재생된다. 메뉴로부터 오디오를 선택하는 경우, 오디오 스트림은 선택된 오디오 스트림에 대응하도록 세팅된다. 유사하게, 부화상 메뉴 선택의 경우, 부화상 채널 번호는 선택된 부화상 채널과 동일하게 세팅된다. 끝으로 메뉴로부터의 앵글 선택은, 앵글 셀 번호를 선택된 번호와 같도록 변경한다. 원하는 바와 같은 다른 정보가, 원하는 바에 따라, 메뉴에 포함될 수 있고 메뉴를 통해 선택될 수도 있다.
도 40의 데이터 파일(910)과 같은 데이터 파일들은, 도 42에 도시된 바와 같이, 두개의 섹션들 -오디오, 비디오, 부화상 정보를 표시하는데 사용된 데이터 파일 관리 정보(940)와 실제 데이터(942)- 을 포함한다. 데이터 파일 관리 정보(940)는 4개의 주요 구성 성분들 -데이터 파일 관리 테이블(944), 시퀀스 정보 테이블(946), 셀 정보 테이블(948), 및 데이터 검색 맵(950)- 을 포함한다.
데이터 파일 관리 테이블(944)은 데이터 파일(910)의 모든 특성들에 관련된 정보를 포함한다. 이 정보는 파일명을 식별하기 위해 디렉토리 레코드 내의 대응하는 파일 식별자와 동일한 내용인 파일명, 파일이 오디오 및 비디오 정보를 모두 포함함을 나타내는 파일 식별자, 논리 블럭들의 수에 의해 규정된 파일의 크기, 파일 관리 테이블의 크기, 파일에 대한 시퀀스들의 수, 파일에 대한 셀들의 수, 디스크 구조 정보(DSI) 팩들의 수, 시퀀스 정보 테이블(946)의 시작 어드레스, 셀 정보 테이블(948)의 시작 어드레스, 데이터 검색 맵의 시작 어드레스, 데이터(942)의 시작 어드레스, MPEG-1 또는 MPEG-2와 같은 비디오 압축 모드를 포함하는 데이터(942)의 비디오 속성을 설명하는 필드, 프레임 레이트가 29.97 frames/sec 인지 25 frames/sec 인지의 여부를 포함하는 프레임 레이트, 또는 표시 종회비가 3/4인지 9/16인지의 여부를 나타내는 표시 종횡비, 또는 표시 모드가 팬 스캔과 우편함 포맷 중 하나 또는 둘다를 허용하는지의 여부에 대한 필드를 포함한다.
데이터 파일 관리 정보는 파일에서의 오디오 스트림의 수와, 오디오 코딩 모드와 같은 오디오 스트림 속성과, 모노, 스테레오 또는 디지탈 서라운드와 같은 오디오 모드와, 특정 언어가 포함되는지 아닌지의 여부를 나타내는 오디오 유형과, 언어의 코드 번호를 나타내는 특정 코드에 대한 필드를 설명하는 필드를 더 포함한다.
데이터 파일 관리 테이블(944)은 부화상 채널을 설명하는 필드, 부화상의 런렝스 코딩이 사용됨을 나타내는 필드와 같은 부화상 채널 속성을 설명하는 필드, 지정된 언어와 지정되는 언어가 있는지 없는지의 여부를 나타내는 필드를 더 포함한다. 또한, 파일의 모든 부화상 채널들에 사용된 16 색 팔레트들에 대해 Y, Cr, CB 색을 나타내는 필드가 있다. 시퀀스 정보 테이블의 크기를 설명하는 필드, 최소 셀 수와 뒤따르는 연속된 셀들의 수를 설명하는 필드, 파일의 한 시퀀스 내에 사용된 셀 번호들의 범위를 설명하는 필드도 있다. 한 시퀀스 내에 사용된 셀 번호들은 32개의 연속 번호들을 한 세트로 만들고, 최소 셀 번호를 그 세트의 제1 번호로 배치함으로써, 구성된 번호들의 한 세트에 포함된다. 이 필드는 시퀀스에서 사용된 셀들의 수와 시퀀스에서 사용된 최소 셀 번호를 포함하는 서브필드를 포함한다.
시퀀스 정보 테이블(946)은 다수의 시퀀스 정보 엔트리들(952, 954)을 포함한 다. 시퀀스는 이 시퀀스에 의해 지정된 영역 내의 셀들이 선택적으로 재생되는 순서이다. 두가지 유형의 시퀀스들 -완료형 및 접속형- 이 있다. 완료형 시퀀스는 그 자체를 재생한 후 종료된다. 접속형 시퀀스들은 순차적으로 재생된다, 도면 부호 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)에 존재하는 재생 정보 팩의 어드레스를 준다. 고속 진행 또는 고속 되감기 모드를 실행하고 정보의 시청을 허용하기 위하여, 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에 도시된 바와 같은 팩 구조체(970B)가 사용되는데, 상기 구조체는 1 바이트의 스터핑(980B)과, 패킷들(982B, 984B)에 대한 총 바이트 수가 2034 바이트가 되도록 하는 패딩용 패킷(984)을 구비한다. 패킷 헤더들(972A, 972B)은 각각 패킷 시작 필드(974), 시스템 클럭 레퍼런스(976), 멀티플렉스(MUX) 레이트 필드(978), 스터핑 필드(980)를 포함한다. 도 44A, 44B의 패킷은 ISO/IEC 13818)에 따라 구성되고, 프로그램 스트림 팩 내의 필드들의 의미 정의 에 관한 §2.5.3.4 절에 설명된다.
도 45는 재생 정보(PBI) 팩을 도시한다. 팩 헤더(972)는 도 44A, 44B에 대하여 설명된 바와 같이 구성된다. 도 45의 시스템 헤더(986)는 ISO/IEC 13818-1에 설명된 프로그램 스트림 시스템 헤더의 요건에 맞게 구성된다. 시스템 헤더 내의 필드의 의미에 관한 정의는 IS0/IEC 13818-1의 §2.5.3.6 절에 설명된다.
패킷 헤더(988)는 IS0/IEC 13818-1의 §2.4.3절에 설명된 PES 패킷의 필드들의 의미 정의에서 제시된 필드들에 따라 구성된다. 그러나 프리젠테이션 시간 스템프까지의 필드들만이 패킷 헤더(988)에서 필요하다.
재생 정보 팩은 서브스트림 ID 필드(990)를 더 포함한다. 이것은 서브스트림의 식별을 나타내는 8비트 필드이다. 사용될 수 있는 다른 식별들은 부화상 스트림, 비디오 블랭킹 정보(VBI) 스트림, AC-3 스트림, 또는 선형 PCM 스트림이다. MPEG 오디오 서브스트림과 같은 다른 스트림 유형들을 포함할 수도 있다. 서브스트림 ID(990)가 비디오 블랭킹 정보(992)의 데이터를 선행하기 때문에, 서브스트림 ID는 뒤따르는 정보가 비디오 블랭킹 정보 스트림임을 나타내도록 세팅된다. 비디오 블랭킹 정보(992)의 데이터는 IS0/IEC 13818-1에 따라 구성될 수 있고, IS0/IEC 13818-1에 필요한 의미(semantics)를 따를 수도 있다.
도 45에 도시된 재생 정보 팩 내에는 데이터 검색 정보(996)의 데이터를 포함하는 데이터 검색 정보 패킷에 대한 패킷 헤더(994)가 포함된다. 패킷 헤더(994)는 000001h의 24 비트값을 갖는 패킷 시작 코드 프리픽스, 데이터 검색 정보(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 팩의 어드레스를 설명한다. 앵글 셀이 존재하지 않은 경우, 또는 앵글 블럭이 구성되지 않은 경우, 특정 셀에 대한 어드레스 정보는 O으로 세팅된다.
데이터 검색 정보(996)의 제3 섹션은 하이라이트 정보(1022)이다, 하이라이트 정보는 메뉴 화면 상의 선택 항목들의 위치와 선택될 때 변경될 색 및 콘트라스트를 설명한다. 이 정보는 셀이 메뉴의 일부일 때만 사용된다. 하이라이트 정보는 메뉴 화면의 부화상에 의해 표시되는 선택 항목 시작 번호와 항목의 수를 설명하는 필드를 포함한다. 선택 항목 시작 번호와 항목의 수의 특정 서브필드들은 메뉴 화면 상의 선택 항목들의 최소 수를 설명하는 서브필드, 메뉴의 다음 페이지가 존재하는지 아닌지의 여부를 설명하는 서브필드, 메뉴 화면 상의 선택 항목의 수를 설명하는 서브필드를 포함한다. 하이라이트 정보의 제2 필드는 선택 항목의 위치, 색, 콘트라스트를 포함한다. 이 필드는 메뉴 화면 상의 각각의 선택 항목에 대한 직사각형 표시 영역과, 선택될 때, 변경될 대응 색 및 콘트라스트를 설명한다. 직사각형 표시 영역은 X-Y 좌표면에 규정된다. 선택 항목의 위치, 색, 콘트라스트를 설명하는 이 필드의 정보는 메뉴의 직사각형 영역을 정하는 것과 선택될 때 여러 유형의 픽셀이 어떻게 변경되는지를 설명하는 정보를 포함한다. 차후에 좀더 상세히 설명되는 바와 같이, 부화상은 네 가지 상이한 유형들의 픽셀들을 허용한다. 텍스트 또는 다른 정보를 표시하는데 사용될 수 있는 제1 및 제2 강조 픽셀, 선 그림 또는 다른 그래픽 패턴과 같은 패턴을 표시하는데 사용되는 패턴 픽셀, 백그라운드 픽셀이 있다. 이들 네 가지 상이한 유형들의 정보가 하이라이트되거나 선택될 때, 항목이 하이라이트될 때 선택될 색과 하이라이트될 때 픽셀의 콘트라스트를 아는 것이 필요하다. 따라서, 선택될 때 네 가지 상이한 유형들의 픽셀의 색과 콘트라스트를 설명하는 하이라이트 정보 내에 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 팩 어드레스를 설명하는 두 필드를 포함한다. 현재의 PBI 팩 어드레스로부터 상대적 논리 블럭 번호를 사용하여 그 어큐뮬레이팅된 재생 시간이 n×0.5초와 (n+1)×0.5초 사이에 있는 GOP의 바로 앞의 GOP에 속하는 PBI 팩의 어드레스를 규정하고 하나 이상의 PBI 팩이 그 범위에 속할 때 n×0.5초, 여기서 n은 1
Figure kpo00019
n
Figure kpo00020
15에 가장 가까운 PBI 팩을 선택하는 15 필드가 있다.
현재의 PBI 팩 어드레스로부터 상대적 논리 블럭 번호를 사용하여 그 어큐뮬레이팅된 재생 시간이 n×0.5초와 (n+1)×0.5초 사이에 있는 GOP에 속하는 PBI 팩의 어드레스를 규정하고 하나 이상의 PBI 팩이 그 범위에 속할 때 n×0.5초, 여기서 n은 -15
Figure kpo00021
n
Figure kpo00022
-1에 가장 가까운 PBI 팩을 선택하는 15 필드가 있다.
현재의 PBI 팩 어드레스로부터 상대적 논리 블럭 번호를 사용하여 그 어큐뮬레이팅된 재생 시간이 n×0.5초와 [n×0.5 + 1]초 사이에 있는 GOP의 바로 앞의 GOP에 속하는 PBI의 어드레스를 규정하고 하나 이상의 PBI 팩이 이 범위에 속할 때 n×0.5초-n=20 또는 n=60-초에 가장 가까운 PBI를 선택하는 2 필드들이 있다.
PBI 팩으로부터 상대적 논리 블럭 번호를 사용하여 그 어큐뮬레이팅된 재생시간이 n×0.5초와 [n×0.5 + 1]초 사이에 있는 GOP에 속하는 PBI 팩의 어드레스를 규정하고 하나 이상의 PBI 팩이 이 범위에 있을 때 n×0.5초-n=-20 또는 n=-60-에 가장 가까운 PBI 팩을 선택하는 2 필드가 있다.
비디오 팩(1040)의 구조체는 도 49에 도시된다. 비디오 팩은 도 44A 및 44B에 도시된 헤더(927A 또는 972B)에 따라 구성된 팩 헤더(972)를 포함한다. 비디오에 대한 패킷 헤더(1046)는 비디오 데이터(1048)의 경우 처럼 IS0/IEC 13818-1에 따라 구성된다. 그런 MPEG 비디오 신호로서 표시된 비디오 데이터(1048)가 위에서 설명된 기술에 따라 양호하게 부호화된다.
MPEG 부호화된 화상 군은 도 50에서 1050으로 도시된다. 이 GOP(1050)를 다수의 비디오 팩(1040)으로 분해하여 비디오 스트림(1060)을 발생하는 방법은 도 50의 밑면 부분에 도시된다. 화상 군(1050)은 비디오 팩에 맞도록 적절한 유니트로 분해된다. 최종 비디오 팩(1040G), 비디오 팩 j는 각각의 팩용으로 사용된 총 2048 바이트를 차지하지 않으며 따라서 스터핑이 2048 바이트와 동일한 최종 비디오 팩 j를 만드는데 사용된다.
도 51A는 MPEG 오디오에 대한 비디오 팩을 도시한다. 이 비디오 팩(1080)은 팩헤더(972), MPEG 요구에 맞게 구성된 팩 헤더(1048), 부호화된 MPEG 오디오 데이터(1086)를 포함한다.
도 51B는 선형 PCM 오디오 또는 돌비 AC-3 오디오에 맞게 구성된 오디오 팩(1090)을 도시한다. 도 51B에 도시된 팩의 경우, 팩 헤더(972)는 아래에 설명된 바와 같이 배열되고 팩 헤더(1094)는 스트림 식별 필드 세트를 갖춘 MPEG 요구 사항에 맞게 구성되어 선형 MPEG 또는 AC-3에 대응하는 프라이빗 오디오 데이터 스트림을 나타내게 된다. 서브스트림 식별(sub-stream id: 1096)은 오디오 데이터가 선형 PCM 또는 AC-3(또는 MPEG)에 대한 것인가의 여부를 나타낸다. 오디오 프레임 포인터(1098)는 오디오 패킷 내의 오디오 프레임 헤더들의 수를 나타내는 다수의 프레임들의 헤더를 포함하고, 포인터의 최종 바이트로부터 상대적 바이트 수를 사용하여 오디오 프레임의 제1 액세스 유니트들의 헤드를 나타내는 제1 액세스 유니트 포인터도 포함한다. 선형 PCM 오디오가 오디오 프레임으로 분해되는 것이 표준이고 각각의 프레임은 프레임 헤더와 프레임 데이터를 포함한다. 오디오 데이터(1100)는 대응하는 오디오 부호화 방법에 따라 구성된다.
도 52는 부호화된 오디오 스트림(1100)을 도시한다. 이 오디오 스트림음 개별 팩들(1122)을 포함하는 오디오 팩들(1120)의 스트림으로 변환된다. 각각의 팩은 길이가 2048 바이트이고 최종 오디오 팩(1122G)인 오디오 팩 j는 그 길이를 2048 바이트로 하기 위하여 스터핑 비트들을 부가하여 조정된다.
본 발명의 신규한 특징은 부화상을 이용한 것 및 오디오 및 비디오 정보를 갖춘 부화상 팩들을 인터리빙하는 것이다. 부화상 정보는 임의의 그래픽 정보에 대한 표시도 허용하고 MPEG 비디오에 걸친 부화상 정보의 오버래핑을 허용한다. 본 발명에 의해 사용된 부화상 정보와 종래의 폐쇄된 캡션(caption) 부제 사이의 주요한 차이는 부화상 정보가 비트 맵 그래픽인 반면 폐쇄 캡셔닝(captioning)은 복호기에 저장된 문자 세트내의 문자를 표시하기 위하여 문자 코드를 송신한다는 점이다. 따라서 종래의 폐쇄된 캡셔닝은 복호기 내의 문자 세트에 의해 제한된다. 그러나, 부화상 정보가 비트 맵되었기 때문에, 외국어 문자를 포함한 임의의 유형의 문자도 각각의 언어에 대해 복호기 내에 문자 세트를 저장할 필요 없이 표시될 수 있다.
부화상 정보의 각각의 표시 화면은 부화상 유닛이라 칭한다. 도 53에 도시된 부화상 유닛(1140)이 있다. 부화상 유닛은 비트 맵 픽셀 데이터의 한 화면을 포함하고 픽셀 데이터의 이 화면은 다수의 비디오 프레임에 걸쳐서 표시된다. 부화상 유닛(1140)은 부화상 유닛 헤더(1142)를 포함한다. 부화상 유닛 헤더(1142)는 부화상 유닛의 크기와 표시 제어 시퀀스 테이블(1146)의 시작 어드레스를 부화상 유닛의 헤드로부터의 바이트 수에 관련하여 설명하는 필드를 포함한다.
픽셀 데이터(1144)는 런-랭스 압축형 비트 맵 정보이다. 픽셀은 표시된 정보의 백그라운드를 형성하는 백그라운드 픽셀, 그래픽 선 그림을 포함하는 부화상 내에 표시 패턴을 허용하는 패턴 픽셀, 두 상이한 속성을 갖는 표시될 그래픽 또는 문자를 허용하는 두가지 유형의 강조 픽셀들일 수 있다. 비트 맵 정보는 종래의 그래픽 발생 기술을 사용하여 생성될 수도 있다. 런-랭스 압축은 뒤따르는 규칙에 따라 실행된다. 동일한 종류의 1 내지 3 픽셀들이 뒤따를 경우 2 픽셀의 수를 제1의 2 비트에 및 픽셀 데이터를 뒤따르는 2 비트에 입력한다. 4 비트가 한 유닛인 것으로 간주된다. 동일한 종류의 4 내지 15 픽셀이 뒤따를 경우 제1의 2 비트에 0을 지정하고 뒤따르는 4 비트에 픽셀의 수를, 다음 2 비트에 픽셀 데이터를 입력한다. 8 비트는 한 유닛인 것으로 간주된다. 동일한 종류의 16 내지 63 픽셀이 뒤따를 경우 제1의 4 비트에 0을 지정하고 뒤따르는 6 비트에 픽셀의 수를, 다음 2 비트에 픽셀 데이터를 입력한다. 12 비트가 한 유닛인 것으로 간주된다. 동일한 종류의 64 내지 255 픽셀이 뒤따를 경우, 제1의 6 비트에 0을 지정하고 뒤따르는 8 비트에 픽셀의 수 및 다음 2 비트에 픽셀 데이터를 입력한다. 16 비트가 한 유닛인 것으로 간주된다. 동일한 픽셀이 한 라인의 끝까지 뒤따를 경우, 제1 의 14 비트에 0을 지정하고 뒤따르는 2 비트에 픽셀 데이터를 지정한다. 한 라인 상의 픽셀에 대한 설명이 완료될 때 바이트 정렬이 결과로서 발생하지 않을 경우 조정을 위해 4 비트의 더미(dummy) 데이터를 삽입한다. 원하는 바와 같이 영상 데이터를 나타내는 다른 압축 메카니즘들을 사용할 수도 있다. 예를 들면 JPEG 또는 GIFF 포맷이 부화상 영상을 나타내는데 사용될 수도 있다.
표시 제어 시퀀스 테이블(1146)은 제어 시퀀스가 발생하는 연대순의 순서를 설명하는 다수의 표시 제어 시퀀스(1146A, 1146B, 1146C, 등)를 포함한다. 표시 제어 시퀀스 테이블은 부화상 유닛에서의 정보가 표시되는 방법에 관한 정보를 포함한다. 예를 들면 단일 부화상 유닛을 형성하는 워드는 시간에 걸쳐서 하나씩 또는 집단으로 나타나거나 또는 그들의 색이 변경될 수도 있는데, 이는 가라오케 정보를 표시하기 위해 부화상을 사용할 때 유용하다.
각각의 표시 제어 시퀀스(DCSQ)는 부화상 유닛이 표시될 시간 주기에 걸쳐서 실행될 픽셀 데이터 변경 명령을 허용한다. 표시 제어 시퀀스의 제1 필드는 표시 시작 시간이다. 이 필드는 부화상 유닛 헤더를 갖춘 부화상 패킷에서 설명된 PTS로부터 상대적 PTS를 갖는 DCSQ내에 포함된 표시 제어 명령의 실행 시작 시간을 설명한다. 설명된 실행 시작 시간 다음의 제1 비디오 프레임으로부터 표시 제어는 DCSQ 표시 제어 시작 시간에 따라 시작된다. 각각의 DCSQ의 제2 필드는 뒤따르는 표시 제어 시퀀스의 어드레스이다. 이 필드는 제1 부화상 유닛으로부터의 상대적 바이트 수를 갖는 뒤따르는 DCSQ의 시작 어드레스를 설명한다. 뒤따르는 DCSQ가 존재하지 않을 경우 이 필드는 제1 부화상 유닛으로부터의 상대적 바이트 수로써 이 DCSQ의 시작 어드레스를 설명한다. 그후, DCSQ는 하나 또는 그 이상의 표시 제어 명령을 포함한다. 이들 명령은 픽셀 데이터의 속성과 표시가 제어되고 변경되도록 허용한다. 이 명령은 부화상의 온/오프 상태와 상관없이 부화상 유닛의 표시를 강제로 시작시키는 명령을 포함한다. 예를 들면 사용자가 부화상을 턴오프할 메뉴를 사용할 경우 이 명령을 세팅함으로써 사용자의 세팅을 무효화할 수 있다. 다른 명령은 갱신된 부화상 유닛의 표시를 시작한다. 이 명령은 각각의 DCSQ에서 한번 나타나야 한다. 두가지 유형의 강조 픽셀, 패턴 픽셀, 백그라운드 픽셀을 포함하는 위에서 설명된 네 가지 유형의 픽셀의 색과 콘트라스트를 세팅하는 명령이 있다. 부화상을 만드는 픽셀 데이터의 직사각형 구역 표시와 위치를 세팅하는 명령이 존재한다. 이 명령은 상위 및 하위 X 및 Y 좌표의 세팅을 허용한다. 표시하기 위해 사용된 픽셀 데이터의 헤드 어드레스를 세팅하는데 사용된 명령도 있다. 이 명령은 상단 및 하단 필드 모두의 헤드 어드레스가 입력되도록 허용한다. 연장된 필드에서 유닛의 헤드로부터 상대적인 바이트 수를 갖는 상단 필드와 하단 필드에 대한 픽셀 데이터의 각각의 헤드 어드레스가 사용된다. 제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은 오디오, 비디오, 부화상 정보를 부호화 하는데 사용된 데이터 구조체를 강조한다. 그러나 MPEG 부호화의 기술에 있어서의 보통의 기술자는 특히 도 40-56에 개시된 데이터 구조체에 의해, MPEG 시스템 명세 IS0/IEC 13818-1의 조력으로 부호화된 오디오, 비디오, 부화상을 데이터 구조체로 포맷화 할 수 있었다. 마찬가지로 데이터가 저장되는 구조체에 대한 지식으로 인해, 비디오, 오디오, 부화상 정보를 발생하는 데이터 구조체의 복호화는 본 기술 분야의 통상의 기술자에 의해 실행될 수 있다.
본 발명의 일부를 구성하는 예시적인 비디오 복호기는 광 디스크상에 저장된 데이터를 판독하는 광 디스크 판독기를 포함한다. 판독된 정보는 정보를 복호화하기 위하여 종래의 문장 해석 기술을 사용하여 문장 해석(parse)된다. 비디오, 오디오 부화상, PBI 팩들은 모두 복호화 되어야 한다. 오디오 팩이 종래의 복호기를 사용하여 복호화 되는 것처럼 비디오는 상용의 MPEG 복호기를 사용하여 복호화 될 수도 있다. 부화상 정보는 부호화 될 때와 역의 방식으로 부화상 팩으로부터 부화상 유닛을 구성하여 복호화 된다. 특별히 구성된 하드웨어 또는 소프트웨어 코딩을 사용하여 프로그램된 일반용 마이크로프로세서는 부화상 정보를 복호화 하는데 사용될 수도 있다. 도 45에서 도시된 바와 같은 재생 정보 팩은 데이터 검색 정보(966)를 포함한다. 데이터 검색 정보는 프로그램 작성된 마이크로프로세서를 사용하여 처리되고 오디오, 비디오, 부화상 복호기와는 다르다. 메뉴 기능이 프로그램된 마이크로프로세서에 의해 실행되기도 하기 때문에, 데이터 검색 정보내에 포함된 하이라이트 정보(1022)와 다른 모든 메뉴 기능은 부화상 복호기에 의해서가 아니라 프로그램된 마이크로프로세서에 의해 실행된다. 본 발명의 오퍼레이션에 관한 추가의 정보, 데이터 구조체, 부호화 및 복호화 프로세스는 일본 특허 출원 제7-81298호와 제7-85693호에 설명되며, 이들 특허 출원은 모두 본 명세서에 참고로 인용되어 있다.
본 발명의 부호화 시스템은 화상 내의 품질 제어를 허용한다. 이 제어는 최종 비디오 제품을 생산하는 사람이 부호화 시스템의 최종 제품을 근접 제어할 수 있기 때문에 중요하다. 따라서, 디지탈 비디오 부호화가 아날로그 비디오에 없는 복호화 아티팩트를 초래한다 할 지라도 최종 디지탈 제품은 수용할 만 하다. 위의 절들 중 어떤 절에서의 기술도 다른 절에서 응용할 수 있다.
본 발명의 결정, 계산 및 단계는 컴퓨터 기술에서의 기술자에게 명백한 바와 같이 본 발명의 기술에 따라 프로그램된 종래의 다목적 컴퓨터를 사용하여 종래의 방식으로 구현될 수도 있다. 적절한 소프트웨어 코딩은 소프트웨어 기술 분야의 기술자에게 명백한 바와 같이, 본 공개된 기술에 근거하여 통상의 프로그래머에 의해 쉽게 준비될 수 있다.
본 발명은 본 기술 분야의 기술자에게 명백한 바와 같이, 응용 특정 집적 회로를 준비함으로써, 또는 종래의 구성 요소 회로의 적절한 네트워크를 상호 접속함으로써 구현될 수도 있다.
본 발명은 본 발명의 프로세스를 실행하도록 컴퓨터를 프로그램하는데 사용될 수 있는 명령을 포함하는 저장 매체인 컴퓨터 프로그램 제품을 포함한다. 저장매체는 플로피 디스크, 광 디스크, CD-ROM, 자기 광 디스크, ROM, RAM, EPROM, EEPROM, 자기 또는 광 카드를 포함하는 어떠한 유형의 디스크, 또는 전자 명령을 저장하기에 적합한 어떠한 유형의 매체도 포함할 수 있으나 여기에 한정 되지는 않는다. 본 발명은 전자 명령 또는 데이터를 저장하는데 적합한 위에서 설명된 매체 중 어떤 매체에도 저장되는 본 발명에 의해 출력된 부호화 데이터를 포함하는 저장 매체인 컴퓨터 프로그램 제품을 더 포함한다.
명백히, 본 발명에 대한 다수의 수정과 변형은 위의 기술의 견지에서 가능하다. 따라서 본 명세서에서 특별히 설명된 것과는 달리 첨부된 청구 범위의 범위 내에서 본 발명이 실행될 수도 있음을 이해될 것이다.

Claims (52)

  1. 부호화된 데이타의 비트스트림을 편집하기 위한 방법에 있어서,
    수정될 상기 부호화된 데이타의 시점과 끝점을 결정하는 단계;
    상기 시점 전의 참조 데이터를 재구성하는 단계;
    상기 끝점 직후의 상기 부호화된 데이타를 나타내는 데이타를 포함하는 부호화되지 않은 데이타를 얻는 단계;
    상기 재구성된 참조 데이타를 사용하여 상기 부호화되지 않은 데이타를 부호화하는 단계; 및
    상기 끝점 직후의 상기 비트스트림 내의 상기 부호화된 데이타를 상기 부호화 단계에서 부호화된 데이타로 대체하는 단계
    를 포함하는 것을 특징으로 하는 부호화된 데이타의 비트스트림의 편집 방법.
  2. 제1항에 있어서, 상기 시점과 끝점 사이에 삽입될 부호화되지 않은 데이타를 얻는 단계를 더 포함하고,
    상기 부호화 단계는 삽입용의 상기 부호화되지 않은 데이타를 부호화하고, 상기 끝점 직후의 부호화된 데이타를 나타내는 상기 부호화되지 않은 데이타를 부호화하는 단계를 포함하고, 상기 참조 데이타는 삽입용의 상기 부호화되지 않은 데이타를 부호화하는 동안 참조되며,
    상기 대체 단계는 상기 부호화된 데이타를 상기 시점과 끝점 사이에 삽입용으로 첨가하는 단계를 포함하는 것을 특징으로 하는 부호화된 데이타의 비트스트림의 편집 방법.
  3. 제2항에 있어서, 상기 대체 단계는 상기 시점과 끝점 사이에 삽입용의 상기 부호화된 데이타를 첨가하기 전에 상기 시점과 끝점 사이의 상기 부호화된 데이타를 제거하는 단계를 포함하는 것을 특징으로 하는 부호화된 데이타의 비트스트림의 편집 방법.
  4. 제1항에 있어서, 상기 시점과 끝점 사이의 상기 부호화된 데이타를 제거하는 단계를 더 포함하는 것을 특징으로 하는 부호화된 데이타의 비트스트림의 편집 방법.
  5. 제1항에 있어서, 상기 부호화 단계는 상기 끝점 직후의 상기 부호화된 데이터를 나타내는 상기 부호화되지 않은 데이터를, 상기 부호화되지 않은 데이타의 원시 부호화 동안 사용된 양자화 값들과 같은 양자화 값들을 사용하여 부호화하는 단계를 포함하는 것을 특징으로 하는 부호화된 데이타의 비트스트림의 편집 방법.
  6. 제1항에 있어서, 참조 데이타를 재구성하는 상기 단계는 상기 시점 이후의 양방향으로 예측되는 2개의 비디오 프레임들에 의해 참조되는 상기 시점 직전의 예측된 비디오 프레임을 구성하는 단계를 포함하는 것을 특징으로 하는 부호화된 데이타의 비트스트림의 편집 방법.
  7. 제6항에 있어서, 참조 데이타를 재구성하는 상기 단계는 상기 예측된 비디오 프레임을 원시 부호화하는데 사용된 양자화 값들을 사용하여 상기 예측된 비디오 프레임을 재구성하는 단계를 더 포함하는 것을 특징으로 하는 부호화된 데이타의 비트스트림의 편집 방법.
  8. 제7항에 있어서, 상기 예측된 프레임의 버퍼 정보, 할당된 비트 수, 및 활동 레벨을 판정함으로써 상기 예측된 프레임을 원시 부호화하는데 사용된 상기 양자화 값들을 결정하는 단계를 더 포함하는 것을 특징으로 하는 부호화된 데이타의 비트스트림의 편집 방법.
  9. 제7항에 있어서, 로그 파일(log file)에서 상기 예측된 프레임을 설명하는 상기 정보를 검색함으로써 상기 예측된 프레임을 부호화하는데 사용되는 상기 양자화 값들을 결정하는 단계를 더 포함하는 것을 특징으로 하는 부호화된 데이타의 비트스트림의 편집 방법.
  10. 제7항에 있어서, 파일에서 상기 양자화 값들을 검색함으로써 상기 예측된 프레임을 부호화하는데 사용되는 상기 양자화 값들을 결정하는 단계를 더 포함하는 것을 특징으로 하는 부호화된 데이타의 비트스트림의 편집 방법.
  11. 제1항에 있어서, 상기 결정 단계는 상기 부호화된 비디오의 디렉토리 정보를 참조하지 않고 비디오 프레임들에 대응하는 비트 수들을 가산함으로써 상기 시점과 끝점을 결정하는 단계를 포함하는 것을 특징으로 하는 부호화된 데이타의 비트스트림의 편집 방법.
  12. 제1항에 있어서, 카메라를 사용하여 비디오를 얻는 단계, 및 상기 얻어진 비디오를 부호화하여 상기 부호화된 데이타의 비트스트림을 발생시키는 단계를 더 포함하는 것을 특징으로 하는 부호화된 데이타의 비트스트림의 편집 방법.
  13. 비디오 프레임들을 포함한 제1항의 편집 프로세스에 의해 발생된 데이터를 저장하기 위한 데이타 구조체들을 포함하는 메모리에 있어서,
    Figure kpo00023
    상기 메모리 내에 저장된 데이터 구조체 - 상기 데이터 구조체는:
    ⓐ 다수의 메뉴 셀들 - 셀은 정보의 단위임 - 을 저장하기 위한 필드,
    ⓑ 명칭 메뉴의 시작 셀을 위한 필드,
    ⓒ 오디오 선택 메뉴의 시작 셀을 위한 필드,
    ⓓ 부화상 정보 - 상기 부화상 정보는 비디오 프레임들과 상이한 비트 맵 정보를 나타내는데 사용됨 - 를 선택하는데 사용되는 메뉴의 시작 셀을 위한 필드,
    ⓔ 다수의 프로그램들이 메모리에 존재할 때, 다수의 프로그램들을 선택하는데 사용되는 메뉴에 대한 시작 셀을 위한 필드, 및
    ⓕ 다수의 앵글 뷰들(angle views)이 메모리에 존재할 때, 카메라 앵글을 선택하는데 사용되는 앵글 매뉴에 대한 시작 셀을 위한 필드
    플 포함함 -;
    Figure kpo00024
    표시될 각각의 메뉴에 대한 테이블 엔트리들을 포함하는 메뉴 셀 정보 테이블 - 상기 테이블 엔트리들 각각은:
    ⓐ′테이블 엔트리에 대응하는 메뉴가 명칭 메뉴인지, 프로그램 메뉴인지, 오디오 메뉴인지, 부화상 메뉴인지 또는 앵글 메뉴인지를 나타내는 필드,
    ⓑ′다수의 선택 황목들을 나타내는 필드,
    ⓒ′대응하는 메뉴 셀의 시작 부분에 대한 시스템 클럭 레퍼런스의 적어도 일부를 나타내는 필드,
    ⓓ′대응 메뉴 셀의 시작 어드레스를 나타내는 필드, 및
    ⓔ′대응 메뉴 셀의 다수의 블럭들을 나타내는 필드
    를 포함함 -;
    Figure kpo00025
    각각의 메뉴에 대해 표시될 정보를저장하기 위한 데이타 구조체;
    Figure kpo00026
    오디오를 저장하기 위한 데이타 구조체; 및
    Figure kpo00027
    비디오 프레임들을 포함하는 제1항에 따라 편집된 상기 데이터를 저장하기 위한 데이타 구조체
    를 포함하는 것을 특징으로 하는 메모리.
  14. 제13항에 있어서, 상기 메모리는 광학 디스크인 것을 특징으로 하는 메모리.
  15. 비디오 프레임들을 포함한 제1항의 편집 프로세스에 의해 발생된 데이터를 저장하기 위한 데이타 구조체들을 포함하는 메모리에 있어서,
    ① 파일 관리 정보를 저장하기 위한 데이터 구조체 - 상기 데이터 구조체는:
    ㉠ 메모리 내의 정보에 대한 어드레스 및 크기 정보를 저장하는 파일 관리 테이블,
    ㉡ 셀들이 재생되는 순서를 나타내는 정보를 저장하는 시퀀스 정보 테이블 - 상기 셀은 정보의 단위이고, 상기 시퀀스 정보 테이블은 각각의 시퀀스에 대한 테이블 엔트리를 포함하며, 각각의 테이블 엔트리는:
    ⓐ 대응하는 시퀀스가, 재생된 후에 종료되는 완료형 시퀀스인지, 순차적으로 재생되는 시퀀스의 일부인 접속형 시퀀스의 헤드인지, 접속형 시퀀스의 중간인지, 접속형 시퀀스의 끝인지를 저장하는 필드,
    ⓑ 대응하는 시퀀스 내의 셀들의 수를 저장하는 필드,
    ⓒ 대응하는 시퀀스의 재생 시간을 저장하는 필드, 및
    ⓓ 대응하는 시퀀스 이후에 재생되는 시퀀스를 저장하는 필드를 포함함 -,
    ㉢ 셀들을 설명하는 정보를 저장하는 셀 정보 테이블을 포함하고 - 상기 셀 정보 테이블은 각각의 셀에 대한 테이블 엔트리를 포함하며, 각각의 테이블 엔트리는:
    ⓐ 대응하는 셀의 재생시간을 나타내는 필드,
    ⓑ 대응하는 셀에 대한 시스템 클록 레퍼런스의 적어도 일부를 나타내는 필드,
    ⓒ 대응하는 셀의 어드레스를 나타내는 필드,
    ⓓ 대응하는 셀의 논리적 블록들의 수를 나타내는 필드를 포함함 -;
    ② 오디오를 저장하기 위한 데이타 구조체; 및
    ③ 상기 비디오 프레임들을 포함한 제1항에 따라 편집된 상기 데이터를 저장하기 위한 데이타 구조체
    를 포함하는 것을 특징으로 하는 메모리.
  16. 제15항에 있어서, 상기 메모리는 광학 디스크인 것을 특징으로 하는 메모리.
  17. 비디오 프레임들을 포함한 제1항의 편집 프로세스에 의해 발생된 데이타, 오디오, 및 타이밍 정보를 포함한 설명 정보를 저장하기 위한 구조체들을 포함하는 메모리에 있어서,
    Figure kpo00028
    설명 정보를 포함하는 데이타 구조체 - 상기 데이터 구조체는:
    ⓐ 설명 정보 데이타 구조체의 시스템 클럭 레퍼런스를 저장하기 위한 필드,
    ⓑ 다른 화상에 대한 참조없이 복호화되는 대응하는 비디오 화상의 시작 시간을 저장하기 위한 필드,
    ⓒ 상기 대응하는 비디오 화상의 재생 시작 시간 직전의 재생 시작 시간을 갖는 오디오 정보의 시간 스탬프를 저장하기 위한 필드,
    ⓓ 오디오 정보가 상기 설명 정보 데이타 구조체 이전에 배치되는지 또는 이후에 배치되는지를 나타내는 제1 비트를 갖는, 상기 오디오 정보의 어드레스를 저장하기 위한 필드, 및
    ⓔ 상기 설명 정보 데이타 구조체의 전후 모두에서 발생하는 다른 설명 정보 데이타 구조체들의 어드레스들을 나타내는 필드를 포함함 -;
    Figure kpo00029
    오디오를 저장하기 우한 데이타 구조체; 및
    Figure kpo00030
    상기 비디오 프레임들을 포함한 제1항에 따라 편집된 상기 데이터를 저장하기 위한 데이타 구조체
    를 포함하는 것을 특징으로 하는 메모리.
  18. 제17항에 있어서, 상기 메모리는 광학 디스크인 것을 특징으로 하는 메모리.
  19. 비디오 프레임들을 포함한 제1항의 편집 프로세스에 의해 발생된 데이타, 오디오, 및 부화상 정보를 저장하기 위한 데이타 구조체들을 포함하는 메모리에 있어서,
    ㉠ 부화상 유닛을 저장하기 위해 상기 메모리에 저장된 데이타 구조체 - 상기 데이터 구조체는:
    ⓐ 부화상 유닛 헤더를 저장하기 위한 필드,
    ⓑ 비트 맵 영상을 저장하기 위한 필드, 및
    ⓒ 복수개의 테이블 엔트리들을 포함한 디스플레이 제어 테이블을 저장하기 위한 필드를 포함하고, 상기 테이블 엔트리들의 각각은:
    ① 비트 맵 영상의 표시 시작 시간을 저장하는 서브-필드,
    ② 후속 테이블 엔트리의 어드레스를 저장하는 서브-필드, 및
    ③ 표시 영역, 픽셀 색, 픽셀 콘트라스트, 및 비디오 프레임들이 표시될 때 발생하는 픽셀의 색과 콘트라스트 변경을 지시하는 명령들을 포함하는 일군의 명령들로부터 선택된 적어도 하나의 표시 제어 명령을 저장하기 위한 서브-필드를 포함함 -;
    ㉡ 오디오 신호를 저장하기 위한 데이타 구조체; 및
    ㉢ 상기 비디오 프레임들을 포함한 제1항에 따라 편집된 상기 데이터를 저장하기 위한 데이타 구조체
    를 포함하는 것을 특징으로 하는 메모리.
  20. 제19항에 있어서,
    상기 부화상 유닛 데이타 구조체는 부화상 유닛 데이타 구조체 내에 정보를 포함하는 다수의 팩들(packs)을 포함하는 것을 특징으로 하는 메모리.
  21. 제20항에 있어서, 상기 메모리는 광학 디스크인 것을 특징으로 하는 메모리.
  22. 부호화된 비디오의 비트스트림에 비디오를 첨가하기 위한 방법에 있어서,
    수정될 상기 부호화된 비디오의 시점과 끝점을 결정하는 단계;
    상기 시점과 끝점 사이에 삽입될 비디오를 포함하는 부호화되지 않은 비디오, 및 상기 끝점 직후의 부호화된 비디오를 나타내는 비디오를 얻는 단계;
    상기 부호화되지 않은 비디오를 부호화하는 단계 - 이 단계는
    상기 시점과 끝점 밖의 참조 프레임들을 사용하지 않고 삽입용 상기 비디오의 제1 화상군(GOP)을 부호화하고, 제2 참조 프레임없이 양방향으로 예측된 프레임들에 추가의 비트들을 할당하는 단계;
    상기 제1 GOP 이후부터 상기 삽입될 비디오의 상기 끝점까지의 GOP들을 부호화하는 단계, 및
    상기 끝점 직후의 상기 부호화된 비디오를 나타내는 상기 비디오를 부호화하는 단계를 수행함 -; 및
    상기 부호화 단계들 각각에 의해 발생된 부호화된 비디오를 상기 부호화된 비트스트림 내에 배치하는 단계
    를 포함하는 것을 특징으로 하는 비디오 첨가 방법.
  23. 제22항에 있어서, 단방향 예측을 갖는 프레임에 사용된 비트 수를 사용하여 상기 추가의 비트 수를 결정하는 단계를 더 포함하는 것을 특징으로 하는 비디오 첨가 방법.
  24. 제22항에 있어서, 상기 끝점 직후의 부호화된 비디오를 나타내는 상기 비디오를 부호화하는 상기 단계는:
    상기 부호화되지 않은 비디오를 원시 부호화하는 동안 사용된 양자화 값들과 동일한 양자화 값들을 사용하여 상기 부호화된 비디오를 나타내는 상기 비디오를 부호화하는 단계를 포함하는 것을 특징으로 하는 비디오 첨가 방법.
  25. 제22항에 있어서, 상기 결정 단계는
    상기 부호화된 비디오의 디렉토리 정보를 참조하지 않고 비디오 프레임들에 대응하는 비트 수들을 가산함으로써 상기 시점과 끝점을 결정하는 단계를 포함하는 것을 특징으로 하는 비디오 첨가 방법.
  26. 제22항에 있어서,
    카메라를 사용하여 비디오를 얻는 단계, 및 상기 얻어진 비디오를 부호화하여 상기 부호화된 데이타의 비트스트림을 발생시키는 단계를 더 포함하는 것을 특징으로 하는 비디오 첨가 방법.
  27. 제22항의 프로세스에 의해 발생된 부호화된 비트스트림의 상기 비디오를 저장하기 위한 데이타 구조체들을 포함하는 메모리에 있어서,
    Figure kpo00031
    상기 메모리내에 저장된 데이터 구조체 - 상기 데이터 구조체는:
    ⓐ 다수의 메뉴 셀들 - 셀은 정보의 단위임 - 을 저장하기 위한 필드,
    ⓑ 명칭 메뉴의 시작 셀을 위한 필드,
    ⓒ 오디오 선택 메뉴의 시작 셀을 위한 필드,
    ⓓ 부화상 정보 - 상기 부화상 정보는 비디오와 상이한 비트 맵 정보를 나타내는데 사용됨 - 를 선택하는데 사용되는 메뉴의 시작 셀을 위한 필드,
    ⓔ 다수의 프로그램들이 메모리에 존재할 때, 다수의 프로그램들을 선택하는데 사용되는 메뉴에대한 시작 셀을 위한 필드, 및
    ⓕ 다수의 앵글 뷰들(angle views)이 메모리에 존재할 때, 카메라 앵글을 선택하는데 사용되는 앵글 매뉴에 대한 시작 셀을 위한 필드
    를 포함함 -;
    Figure kpo00032
    표시될 각각의 메뉴에 대한 테이블 엔트리들을 포함하는 메뉴 셀 정보 테이블 - 상기 테이블 엔트리들 각각은:
    ⓐ′테이블 엔트리에 대응하는 메뉴가 명칭 메뉴인지, 프로그램 메뉴인지, 오디오 메뉴인지, 부화상 메뉴인지 또는 앵글 메뉴인지를 나타내는 필드,
    ⓑ′다수의 선택 항목들을 나타내는 필드,
    ⓒ′대응하는 메뉴 셀의 시작 부분에 대한 시스템 클럭 레퍼런스의 적어도 일부를 나타내는 필드,
    ⓓ′대응 메뉴 셀의 시작 어드레스를 나타내는 필드, 및
    ⓔ′대응 메뉴 셀의 다수의 블럭들을 나타내는 필드
    롤 포함함 -;
    Figure kpo00033
    각각의 메뉴에 대해 표시될 정보를 저장하기 위한 데이타 구조체;
    Figure kpo00034
    오디오를 저장하기 위한 데이타 구조체; 및
    Figure kpo00035
    제22항의 프로세스에 의해 발생된 상기 부호화된 비트스트림의 상기 비디오를 저장하기 위한 데이타 구조체
    를 포함하는 것을 특징으로 하는 메모리.
  28. 제27항에 있어서, 상기 메모리는 광학 디스크인 것을 특징으로 하는 메모리.
  29. 제22항의 프로세스에 의해 발생된 부호화된 비트스트림의 상기 비디오를 저장하기 위한 데이타 구조체들을 포함하는 메모리에 있어서,
    ① 파일 관리 정보를 저장하기 위한 데이터 구조체 - 상기 데이터 구조체는:
    ㉠ 메모리 내의 정보에 대한 어드레스 및 크기 정보를 저장하는 파일 관리 테이블,
    ㉡ 셀들이 재생되는 순서를 나타내는 정보를 저장하는 시퀀스 정보 테이블 - 상기 셀은 정보의 단위이고, 상기 시퀀스 정보 테이블은 각각의 시퀀스에 대한 테이블 엔트리를 포함하며, 각각의 테이블 엔트리는:
    ⓐ 대응하는 시퀀스가, 재생된 후에 종료되는 완료형 시퀀스인지, 순차적으로 재생되는 시퀀스의 일부인 접속형 시퀀스의 헤드인지, 접속형 시퀀스의 중간인지, 접속형 시퀀스의 끝인지를 저장하는 필드,
    ⓑ 대응하는 시퀀스 내의 셀들의 수를 저장하는 필드.
    ⓒ 대응하는 시퀀스의 재생 시간을 저장하는 필드, 및
    ⓓ 대응하는 시퀀스 이후에 재생되는 시퀀스를 저장하는 필드를 포함함 -,
    ㉢ 셀들을 설명하는 정보를 저장하는 셀 정보 테이블을 포함하며 - 상기 셀 정보 테이블은 각각의 셀에 대한 테이블 엔트리를 포함하며, 각각의 테이블 엔트리는:
    ⓐ 대응하는 셀의 재생시간을 나타내는 필드,
    ⓑ 대응하는 셀에 대한 시스템 클록 레퍼런스의 적어도 일부를 나타내는 필드,
    ⓒ 대응하는 셀의 어드레스를 나타내는 필드,
    ⓓ 대응하는 셀의 논리적 블록들의 수를 나타내는 필드를 포함함 -;
    ② 오디오를 저장하기 위한 데이타 구조체; 및
    ③ 제22항의 프로세스에 의해 발생된 부호화된 비트스트림의 상기 비디오를 저장하기 위한 데이타 구조체
    를 포함하는 것을 특징으로 하는 메모리.
  30. 제29항에 있어서, 상기 메모리는 광학 디스크인 것을 특징으로 하는 메모리.
  31. 제22항의 프로세스에 의해 발생된 부호화된 비트스트림의 상기 비디오를 저장하기 위한 데이타 구조체들, 오디오를 저장하기 위한 데이타 구조체들,및 타이밍 정보를 포함한 설명 정보를 포함하는 메모리에 있어서,
    Figure kpo00036
    설명 정보를 포함하는 데이타 구조체 -상기 데이터 구조체는:
    ⓐ 설명 정보 데이타 구조체의 시스템 클럭 레퍼런스를 저장하기 위한 필드,
    ⓑ 다른 화상에 대한 참조없이 복호화되는 대응하는 비디오 화상의 시작 시간을 저장하기 위한 필드,
    ⓒ 상기 대응하는 비디오 화상의 재생 시작 시간 직전의 재생 시작 시간을 갖는 오디오 정보의 시간 스탬프를 저장하기 위한 필드,
    ⓓ 오디오 정보가 상기 설명 정보 데이타 구조체 이전에 배치되는지 또는 이후에 배치되는지를 나타내는 제1 비트를 갖는, 상기 오디오 정보의 어드레스를 저장하기 위한 필드, 및
    ⓔ 상기 설명 정보 데이타 구조체의 전후 모두에서 발생하는 다른 설명 정보 데이타 구조체들의 어드레스들을 나타내는 필드를 포함함 -;
    Figure kpo00037
    오디오를 저장하기 위한 데이타 구조체; 및
    Figure kpo00038
    상기 비디오 프레임들을 포함한 제22항에 따라 편집된 상기 데이터를 저장하기 위한 데이타 구조체
    를 포함하는 것을 특징으로 하는 메모리.
  32. 제31항에 있어서, 상기 메모리는 광학 디스크인 것을 특징으로 하는 메모리.
  33. 제22항의 프로세스에 의해 발생된 부호화된 비트스트림의 상기 비디오, 오디오, 및 부화상 정보를 저장하기 위한 데이타 구조체들을 포함하는 메모리에 있어서,
    ㉠ 부화상 유닛을 저장하기 위해 상기 메모리에 저장된 데이타 구조체 - 상기 데이터 구조체는:
    ⓐ 부화상 유닛 헤더를 저장하기 위한 필드,
    ⓑ 비트 맵 영상을 저장하기 위한 필드, 및
    ⓒ 복수개의 테이블 엔트리들을 포함한 디스플레이 제어 테이블을 저장하기 위한 필드를 포함하고 - 상기 테이블 엔트리들의 각각은:
    ① 비트 맵 영상의 표시 시작 시간을 저장하는 서브-필드,
    ② 후속 테이블 엔트리의 어드레스를 저장하는 서브-필드, 및
    ③ 표시 영역, 픽셀 색, 픽셀 콘트라스트, 및 비디오 프레임들이 표시될 때 발생하는 픽셀의 색과 콘트라스트 변경을 지시하는 명령들을 포함하는 일군의 명령들로부터 선택된 적어도 하나의 표시 제어 명령을 저장하기 위한 서브-필드를 포함함 -;
    ㉡ 오디오 신호를 저장하기 위한 데이타 구조체; 및
    ㉢ 제22항의 프로세스에 의해 발생된 부호화된 비트스트림의 상기 비디오를 저장하기 위한 데이타 구조체
    를 포함하는 것을 특징으로 하는 메모리.
  34. 제33항에 있어서, 상기 부화상 유닛 데이타 구조체는 부화상 유닛 데이타 구조체 내에 정보를 포함하는 다수의 팩들(packs)을 포함하는 것을 특징으로 하는 메모리.
  35. 제33항에 있어서, 상기 메모리는 광학 디스크인 것을 특징으로 하는 메모리.
  36. 부호화된 데이타의 비트스트림을 편집하기 위한 시스템에 있어서, 수정될 상기 부호화된 데이타의 시점과 끝점을 결정하는 수단;
    상기 시점 전의 참조 데이터를 재구성하는 수단;
    상기 끝점 직후의 상기 부호화된 데이타를 나타내는 데이타를 포함하는 부호화되지 않은 데이타를 얻는 수단;
    재구성된 참조 데이타를 사용하여 상기 부호화되지 않은 데이타를 부호화는 수단; 및
    상기 끝점 직후의 상기 비트스트림 내의 상기 부호화된 데이타를 상기 부호화 수단에 의해 부호화된 데이타로 대체하는 수단
    을 포함하는 것을 특징으로 하는 시스템.
  37. 제36항에 있어서,
    상기 시점과 끝점 사이에 삽입될 부호화되지 않은 데이타를 얻는 수단을 더 포함하고,
    상기 부호화 수단은 삽입용의 상기 부호화되지 않은 데이타를 부호화하는 수단과, 상기 끝점 직후의 부호화된 데이타를 나타내는 상기 부호화되지 않은 데이타를 부호화하는 수단을 포함하고, 상기 참조 데이타는 삽입용의 상기 부호화되지 않은 데이타를 부호화하는 동안 참조되며,
    상기 대체 수단은 상기 부호화된 데이타를 상기 시점과 끝점 사이에 삽입용으로 첨가하는 수단을 포함하는 것을 특징으로 하는 부호화된 데이타의 비트스트림의 편집 방법.
  38. 제36항에 있어서, 상기 대체수단은 상기 시점과 끝점 사이에 삽입용의 상기 부호화된 데이타를 첨가하기 전에 상기 시점과 끝점 사이의 상기 부호화된 데이타를 제거하는 수단을 포함하는 것을 특징으로 하는 시스템.
  39. 제36항에 있어서, 상기 시점과 끝점 사이의 상기 부호화된 데이타를 제거하는 수단을 더 포함하는 것을 특징으로 하는 시스템.
  40. 제36항에 있어서, 상기 부호화 수단은 상기 끝점 직후의 상기 부호화된 데이터를 나타내는 상기 부호화되지 않은 데이터를 상기 부호화되지 않은 데이타의 원시 부호화 동안 사용된 양자화 값들과 같은 양자화 값들을 사용하여 부호화하는 수단을 포함하는 것을 특징으로 하는 시스템.
  41. 제36항에 있어서, 참조 데이타를 재구성하는 상기 수단은 상기 시점 이후의 양방향으로 예측되는 2개의 비디오 프레임들에 의해 참조되는 상기 시점 직전의 예측된 비디오 프레임을 구성하는 수단을 포함하는 것을 특징으로 하는 시스템.
  42. 제41항에 있어서, 참조 데이타를 재구성하는 상기 수단은 상기 예측된 비디오 프레임을 원시 부호화하는데 사용된 양자화 값들을 사용하여 상기 예측된 비디오 프레임을 재구성하는 수단을 더 포함하는 것을 특징으로 하는 시스템.
  43. 제41항에 있어서, 상기 예측된 프레임의 버퍼 정보, 할당된 비트 수, 및 활동 레벨을 판정함으로써 상기 예측된 프레임을 원시 부호화하는데 사용된 양자화 값들을 결정하는 수단을 더 포함하는 것을 특징으로 하는 시스템.
  44. 제42항에 있어서, 로그 파일(log file)에서 상기 예측된 프레임을 설명하는 상기 정보를 검색함으로써 상기 예측된 프레임을 부호화하는데 사용되는 상기 양자화 값들을 결정하는 수단을 더 포함하는 것을 특징으로 하는 시스템.
  45. 제42항에 있어서, 파일에서 상기 양자화 값들을 검색함으로써 상기 예측된 프레임을 부호화하는데 사용되는 상기 양자화 값들을 결정하는 수단을 더 포함하는 것을 특징으로 하는 시스템.
  46. 제36항에 있어서, 상기 결정 수단은 상기 부호화된 비디오의 디렉토리 정보를 참조하지 않고 비디오 프레임들에 대응하는 비트 수들을 가산함으로써 상기 시점과 끝점을 결정하는 수단을 포함하는 것을 특징으로 하는 시스템.
  47. 제36항에 있어서, 비디오를 얻기 위한 카메라, 및 상기 얻어진 비디오를 부호화하여 상기 부호화된 데이타의 비트스트림을 발생시키는 수단을 더 포함하는 것을 특징으로 하는 시스템.
  48. 부호화된 비디오의 비트스트림에 비디오를 첨가하기 위한 시스템에 있어서,
    수정될 상기 부호화된 비디오의 시점과 끝점을 결정하는 수단;
    상기 시점과 끝점 사이에 삽입될 비디오를 포함하는 부호화되지 않은 비디오, 및 상기 끝점 직후의 부호화된 비디오를 나타내는 비디오를 얻는 수단;
    상기 부호화되지 않은 비디오를 부호화하는 수단 - 이 수단은:
    상기 시점과 끝점 밖의 참조 프레임들을 사용하지 않고 삽입용의 상기 비디오의 제1 화상군(GOP)을 부호화하고, 제2 참조 프레임없이 양방향으로 예측된 프레임들에 추가의 비트들을 할당하는 수단,
    상기 제1 GOP 이후부터 상기 삽입될 비디오의 상기 끝점까지의 GOP들을 부호화하는 수단, 및
    상기 끝점 직후의 상기 부호화된 비디오를 나타내는 상기 비디오를 부호화하는 수단을 포함을 포함함 -; 및
    상기 부호화 단계를 각각에 의해 발생된 부호화된 비디오를 상기 부호화된 비트스트림 내에 배치하는 수단
    을 포함하는 것을 특징으로 하는 비디오 첨가 시스템.
  49. 제48항에 있어서, 단방향 예측을 갖는 프레임에 사용된 비트 수를 사용하여 상기 추가의 비트 수를 결정하는 수단을 더 포함하는 것을 특징으로 하는 비디오 첨가 시스템.
  50. 제48항에 있어서, 상기 끝점 직후의 부호화된 비디오를 나타내는 상기 비디오를 부호화하는 상기 수단은:
    상기 부호화되지 않은 비디오를 원시 부호화하는 동안 사용된 양자화 값들과 동일한 양자화 값들을 사용하여 상기 부호화된 비디오를 나타내는 상기 비디오를 부호화하는 수단을 포함하는 것을 특징으로 하는 비디오 첨가 시스템.
  51. 제48항에 있어서, 상기 결정 수단은 상기 부호화된 비디오의 디렉토리 정보를 참조하지 않고 비디오 프레임들에 대응하는 비트수들을 가산함으로써 상기 시점과 끝점을 결정하는 수단을 포함하는 것을 특징으로 하는 비디오 첨가 시스템.
  52. 제48항에 있어서, 비디오를 얻기 위한 카메라, 및 상기 얻어진 비디오를 부호화하여 상기 부호화된 데이타의 비트스트림을 발생시키는 수단을 더 포함하는것을 특징으로 하는 비디오 첨가 시스템.
KR1019970703404A 1995-07-13 1996-04-19 부호화된비디오비트스트림의섹션들을대체하기위한방법및시스템_ KR100287656B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/502,012 US6026232A (en) 1995-07-13 1995-07-13 Method and system to replace sections of an encoded video bitstream
US8/502012 1995-07-13
PCT/US1996/005314 WO1997003443A1 (en) 1995-07-13 1996-04-19 Method and system to replace sections of an encoded video bitstream

Publications (1)

Publication Number Publication Date
KR100287656B1 true KR100287656B1 (ko) 2001-04-16

Family

ID=23995956

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970703404A KR100287656B1 (ko) 1995-07-13 1996-04-19 부호화된비디오비트스트림의섹션들을대체하기위한방법및시스템_

Country Status (7)

Country Link
US (2) US6026232A (ko)
EP (1) EP0839374A1 (ko)
JP (2) JP3842537B2 (ko)
KR (1) KR100287656B1 (ko)
AU (1) AU707082B2 (ko)
CA (1) CA2202171C (ko)
WO (1) WO1997003443A1 (ko)

Families Citing this family (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
US5612900A (en) * 1995-05-08 1997-03-18 Kabushiki Kaisha Toshiba Video encoding method and system which encodes using a rate-quantizer model
US6026232A (en) * 1995-07-13 2000-02-15 Kabushiki Kaisha Toshiba Method and system to replace sections of an encoded video bitstream
US7917922B1 (en) 1995-06-08 2011-03-29 Schwab Barry H Video input switching and signal processing apparatus
US20050158015A1 (en) * 1996-10-03 2005-07-21 Nikon Corporation Information processing apparatus, information processing method and recording medium for electronic equipment including an electronic camera
US7269219B1 (en) * 1997-02-14 2007-09-11 At&T Corp. Non-linear quantizer for video coding
US6347116B1 (en) * 1997-02-14 2002-02-12 At&T Corp. Non-linear quantizer for video coding
JPH10285548A (ja) 1997-04-03 1998-10-23 Sony Corp 符号化装置及び方法、復号装置及び方法、編集方法
TW374155B (en) 1997-05-27 1999-11-11 Sony Corp Image compression device and image compression method
US7085478B2 (en) 1997-09-17 2006-08-01 Matsushita Electric Industrial Co., Ltd. Optical disc, recording apparatus, and computer-readable recording medium
TW399181B (en) * 1997-09-17 2000-07-21 Matsushita Electric Ind Co Ltd Video data editing apparatus and computer-readable recording medium storing an editing program
WO1999014757A2 (en) * 1997-09-17 1999-03-25 Matsushita Electric Industrial Co., Ltd. Video data editing apparatus, optical disc for use as a recording medium of a video data editing apparatus, and computer-readable recording medium storing an editing program
ID21884A (id) * 1997-09-17 1999-08-05 Matsushita Electric Ind Co Ltd Disk optik, alat perekaman, dan medium perekaman komputer-dapat baca
US6181870B1 (en) 1997-09-17 2001-01-30 Matushita Electric Industrial Co., Ltd. Optical disc having an area storing original and user chain information specifying at least part of a video object stored on the disc, and a computer program and recording apparatus for recording and editing the chain information
EP2387038A3 (en) * 1997-10-17 2012-01-11 Sony Corporation Processing apparatus and method for recording, processing apparatus and method for reproducing, program for controlling a recording apparatus, program for controlling a reproducing apparatus, recording medium
KR20010013152A (ko) * 1998-03-31 2001-02-26 요트.게.아. 롤페즈 코드화된 데이터를 수정하는 방법 및 데이터 수정 어셈블리
US6219067B1 (en) * 1998-04-03 2001-04-17 Sarnoff Corporation Measures for characterizing compressed bitstreams
EP0961276A1 (en) * 1998-05-26 1999-12-01 Koninklijke Philips Electronics N.V. Method of recording information on a record carrier, recording apparatus and record carrier
JP4053668B2 (ja) * 1998-09-16 2008-02-27 パイオニア株式会社 情報記録装置及び情報記録方法
JP4069524B2 (ja) * 1998-11-10 2008-04-02 ソニー株式会社 伝送方法及び装置
KR100282147B1 (ko) * 1998-11-13 2001-02-15 구자홍 압축 영상 복원 방법
US6704930B1 (en) 1999-04-20 2004-03-09 Expanse Networks, Inc. Advertisement insertion techniques for digital video streams
US7068724B1 (en) * 1999-10-20 2006-06-27 Prime Research Alliance E., Inc. Method and apparatus for inserting digital media advertisements into statistical multiplexed streams
US20020087973A1 (en) * 2000-12-28 2002-07-04 Hamilton Jeffrey S. Inserting local signals during MPEG channel changes
US6272251B1 (en) * 1998-12-15 2001-08-07 Xerox Corporation Fully automatic pasting of images into compressed pre-collated documents
WO2000049617A1 (en) 1999-02-17 2000-08-24 Matsushita Electric Industrial Co., Ltd. Information recording medium, apparatus and method for performing after-recording on the recording medium
TW477152B (en) * 1999-03-26 2002-02-21 Koninkl Philips Electronics Nv Method of and device for encoding an information stream
DE60039861D1 (de) * 1999-04-20 2008-09-25 Samsung Electronics Co Ltd Werbeverwaltungssystem für digitale videoströme
JP4487374B2 (ja) * 1999-06-01 2010-06-23 ソニー株式会社 符号化装置及び符号化方法並びに多重化装置及び多重化方法
US7283965B1 (en) * 1999-06-30 2007-10-16 The Directv Group, Inc. Delivery and transmission of dolby digital AC-3 over television broadcast
US6665859B2 (en) * 1999-08-30 2003-12-16 Lsi Logic Corporation Bitstream generation tools for bitstream management system
US6498816B1 (en) * 1999-09-03 2002-12-24 Equator Technologies, Inc. Circuit and method for formatting each of a series of encoded video images into respective regions
US7194032B1 (en) * 1999-09-03 2007-03-20 Equator Technologies, Inc. Circuit and method for modifying a region of an encoded image
JP4081934B2 (ja) * 1999-09-17 2008-04-30 ソニー株式会社 データ配信方法及び装置、並びに、データ受信方法及び装置
IL132859A (en) * 1999-11-10 2008-07-08 Nds Ltd Data stream processing system
US6707778B1 (en) * 1999-11-10 2004-03-16 Thomson Licensing S.A. Edit to picture without decoding and re-encoding of MPEG bit stream for recordable DVD
US6522693B1 (en) * 2000-02-23 2003-02-18 International Business Machines Corporation System and method for reencoding segments of buffer constrained video streams
US7092774B1 (en) * 2000-02-29 2006-08-15 Prime Image, Inc. Multi-channel audio processing system with real-time program duration alteration
FR2807268A1 (fr) * 2000-04-04 2001-10-05 Koninkl Philips Electronics Nv Reseau, terminal d'emission et methode de constitution d'un point d'acces dans un flux de donnees
US20040148625A1 (en) * 2000-04-20 2004-07-29 Eldering Charles A Advertisement management system for digital video streams
US6470049B1 (en) * 2000-05-31 2002-10-22 Next Level Communications, Inc. Method for dealing with missing or untimely synchronization signals in digital communications systems
EP1168840A3 (en) * 2000-06-30 2003-12-17 Kabushiki Kaisha Toshiba Method and apparatus for special video reproduction modes
US6760042B2 (en) * 2000-09-15 2004-07-06 International Business Machines Corporation System and method of processing MPEG streams for storyboard and rights metadata insertion
US6693648B1 (en) 2000-11-22 2004-02-17 Campus Crusade For Christ, Inc. Pointer interactive apparatus
US6888893B2 (en) * 2001-01-05 2005-05-03 Microsoft Corporation System and process for broadcast and communication with very low bit-rate bi-level or sketch video
EP1235437A1 (en) 2001-02-26 2002-08-28 Deutsche Thomson-Brandt Gmbh Method for recording or reproduction of sub-picture data accompanying video signals, corresponding apparatus, signal and data carrier
US7603190B2 (en) * 2001-04-19 2009-10-13 Sony Corporation Digital recording/reproducing apparatus
US7916794B2 (en) * 2001-04-28 2011-03-29 Microsoft Corporation System and process for broadcast and communication with very low bit-rate bi-level or sketch video
GB0117926D0 (en) * 2001-07-23 2001-09-12 Nds Ltd Method for random access to encrypted content
ITTO20010813A1 (it) * 2001-08-13 2003-02-13 Telecom Italia Lab Spa Procedimento per il trasferimento di messaggi tramite udp, relativo sistema e prodotto informatico.
US6959044B1 (en) * 2001-08-21 2005-10-25 Cisco Systems Canada Co. Dynamic GOP system and method for digital video encoding
US7372964B2 (en) * 2001-10-10 2008-05-13 Kabushiki Kaisha Toshiba Method and apparatus for recording information including secret information and method and apparatus for reproduction thereof
US20030093515A1 (en) * 2001-11-14 2003-05-15 Kauffman Marc W. Quality of service control of streamed content delivery
US7376159B1 (en) * 2002-01-03 2008-05-20 The Directv Group, Inc. Exploitation of null packets in packetized digital television systems
US20030131352A1 (en) * 2002-01-08 2003-07-10 International Business Machines Corporation Controlling television viewing content
US7787741B2 (en) * 2002-04-23 2010-08-31 Gateway, Inc. Prioritized content recording and storage management
KR100988257B1 (ko) 2002-09-06 2010-10-18 소니 주식회사 정보 처리 장치 및 프로그램이 기록된 컴퓨터로 판독 가능한 기록매체
US7136066B2 (en) * 2002-11-22 2006-11-14 Microsoft Corp. System and method for scalable portrait video
KR100939711B1 (ko) * 2002-12-12 2010-02-01 엘지전자 주식회사 텍스트 기반의 서브타이틀 재생장치 및 방법
JP4125140B2 (ja) * 2003-01-21 2008-07-30 キヤノン株式会社 情報処理装置、情報処理方法ならびにプログラム
US20040151469A1 (en) * 2003-01-31 2004-08-05 Engholm Kathryn A. Video editing timeline with measurement results
EP1599043A4 (en) * 2003-02-04 2011-08-10 Panasonic Corp CODING METHOD AND DEVICE THEREFOR
US7424160B1 (en) * 2003-04-28 2008-09-09 The Directv Group, Inc. Methods and apparatus for monitoring compressed bitstreams
EP1652184A4 (en) * 2003-07-24 2007-05-23 Lg Electronics Inc RECORD MEDIA WITH A DATA STRUCTURE FOR MANAGING THE PLAYING OF TEXT SUBTITLE DATA RECORDED THEREFOR AND RECORDING AND PLAYBACK METHOD AND DEVICES
KR20050012328A (ko) * 2003-07-25 2005-02-02 엘지전자 주식회사 고밀도 광디스크의 프레젠테이션 그래픽 데이터 관리 및재생방법과 그에 따른 고밀도 광디스크
US7912226B1 (en) 2003-09-12 2011-03-22 The Directv Group, Inc. Automatic measurement of audio presence and level by direct processing of an MPEG data stream
EP1682971A2 (en) * 2003-09-30 2006-07-26 Droplet Technology, Inc. System and method for temporal out-of-order compression and multi-source compression rate control
KR20050035678A (ko) * 2003-10-14 2005-04-19 엘지전자 주식회사 광디스크 장치의 부가 데이터 재생방법 및 장치와, 이를위한 광디스크
KR20050036277A (ko) * 2003-10-15 2005-04-20 엘지전자 주식회사 고밀도 광디스크의 네비게이션 정보 관리방법
DE10355345A1 (de) * 2003-11-25 2005-06-23 Deutsche Thomson-Brandt Gmbh Verfahren und Vorrichtung zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom
EP1538844A3 (en) * 2003-11-26 2006-05-31 Samsung Electronics Co., Ltd. Color image residue transformation and encoding method
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
EP1721319A2 (en) * 2004-01-06 2006-11-15 LG Electronics Inc. Recording medium and method and apparatus for reproducing and recording text subtitle streams
KR20050072255A (ko) * 2004-01-06 2005-07-11 엘지전자 주식회사 고밀도 광디스크의 서브타이틀 구성방법 및 재생방법과기록재생장치
US8190003B2 (en) * 2004-01-14 2012-05-29 Samsung Electronics Co., Ltd. Storage medium storing interactive graphics stream activated in response to user's command, and reproducing apparatus for reproducing from the same
CN1655620B (zh) 2004-02-09 2010-09-22 三洋电机株式会社 图像显示装置
KR20070028325A (ko) * 2004-02-10 2007-03-12 엘지전자 주식회사 텍스트 서브타이틀 디코더 및 텍스트 서브타이틀 스트림디코딩 방법
RU2377669C2 (ru) * 2004-02-10 2009-12-27 ЭлДжи ЭЛЕКТРОНИКС ИНК. Носитель записи, имеющий структуру данных для управления различными данными, и способ и устройство записи и воспроизведения
WO2005074400A2 (en) * 2004-02-10 2005-08-18 Lg Electronics Inc. Recording medium and method and apparatus for decoding text subtitle streams
WO2005074394A2 (en) * 2004-02-10 2005-08-18 Lg Electronics Inc. Recording medium having a data structure for managing various data and recording and reproducing methods and apparatuses
WO2005076278A1 (en) * 2004-02-10 2005-08-18 Lg Electronic Inc. Recording medium having a data structure for managing data streams associated with different languages and recording and reproducing methods and apparatuses
US20050196146A1 (en) * 2004-02-10 2005-09-08 Yoo Jea Y. Method for reproducing text subtitle and text subtitle decoding system
WO2005074399A2 (en) * 2004-02-10 2005-08-18 Lg Electronics Inc. Recording medium and method and apparatus for decoding text subtitle streams
EP1721453A2 (en) * 2004-02-26 2006-11-15 LG Electronics, Inc. Recording medium and method and apparatus for reproducing and recording text subtitle streams
KR20070007824A (ko) * 2004-03-17 2007-01-16 엘지전자 주식회사 기록매체 및 텍스트 서브타이틀 스트림 재생 방법과 장치
KR101102398B1 (ko) 2004-03-18 2012-01-05 엘지전자 주식회사 기록매체 및 기록매체상에 기록된 텍스트 서브타이틀스트림 재생 방법과 장치
JP4031455B2 (ja) * 2004-03-29 2008-01-09 株式会社東芝 画像符号化装置
KR20060047266A (ko) * 2004-04-26 2006-05-18 엘지전자 주식회사 기록매체, 기록매체의 재생방법과 재생장치
JP4282541B2 (ja) * 2004-04-30 2009-06-24 株式会社東芝 情報再生装置および情報再生方法
JP4724710B2 (ja) * 2004-05-03 2011-07-13 エルジー エレクトロニクス インコーポレイティド テキストサブタイトルデータを再生管理するためのデータ構造を有する記録媒体及びこれと関連する方法及び装置
US7720295B2 (en) 2004-06-29 2010-05-18 Sanyo Electric Co., Ltd. Method and apparatus for coding images with different image qualities for each region thereof, and method and apparatus capable of decoding the images by adjusting the image quality
JP2006066039A (ja) * 2004-08-30 2006-03-09 Sony Corp つなぎ記録方法及び記録再生装置
JP4656912B2 (ja) 2004-10-29 2011-03-23 三洋電機株式会社 画像符号化装置
KR100647294B1 (ko) * 2004-11-09 2006-11-23 삼성전자주식회사 화상 데이터 부호화 및 복호화 방법 및 장치
US11232768B2 (en) 2005-04-12 2022-01-25 Douglas G. Richardson Embedding animation in electronic mail, text messages and websites
JP4953589B2 (ja) * 2005-05-25 2012-06-13 株式会社ミツトヨ エンコーダの原点信号生成方法及び装置
US7903306B2 (en) * 2005-07-22 2011-03-08 Samsung Electronics Co., Ltd. Sensor image encoding and/or decoding system, medium, and method
US20070250875A1 (en) * 2005-08-26 2007-10-25 Weaver Timothy H Methods, apparatuses, and computer program products for delivering one or more television programs for viewing during a specified viewing interval
US20070240185A1 (en) * 2005-08-26 2007-10-11 Weaver Timothy H Methods, apparatuses, and computer program products for delivering audio content on demand
JP2007157191A (ja) * 2005-11-30 2007-06-21 Toshiba Corp 音声ミクシング処理装置及び音声ミクシング処理方法
EP1830361A1 (en) * 2006-03-02 2007-09-05 Sony Corporation Image displaying method and video playback apparatus
JP2008010110A (ja) * 2006-06-30 2008-01-17 Sony Corp ファイル分割装置、ファイル分割方法及びファイル分割プログラム
NZ549548A (en) * 2006-08-31 2009-04-30 Arc Innovations Ltd Managing supply of a utility to a customer premises
US7920717B2 (en) 2007-02-20 2011-04-05 Microsoft Corporation Pixel extraction and replacement
US7843462B2 (en) * 2007-09-07 2010-11-30 Seiko Epson Corporation System and method for displaying a digital video sequence modified to compensate for perceived blur
WO2009065137A1 (en) 2007-11-16 2009-05-22 Divx, Inc. Hierarchical and reduced index structures for multimedia files
US8817190B2 (en) * 2007-11-28 2014-08-26 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and computer program
JP5227875B2 (ja) * 2009-04-06 2013-07-03 株式会社日立製作所 動画像符号化装置
WO2011021906A2 (en) * 2009-08-21 2011-02-24 Samsung Electronics Co., Ltd. Method and apparatus for requesting data, and method and apparatus for obtaining data
EP3962088B1 (en) 2010-11-04 2023-06-21 GE Video Compression, LLC Picture coding supporting block merging and skip mode
JP4749508B2 (ja) * 2010-11-18 2011-08-17 三洋電機株式会社 画像復号方法
US8724968B2 (en) 2011-04-07 2014-05-13 Prime Image Delaware, Inc. Embedded ancillary data processing method and system with program duration alteration
US9729120B1 (en) 2011-07-13 2017-08-08 The Directv Group, Inc. System and method to monitor audio loudness and provide audio automatic gain control
US8559420B1 (en) * 2011-09-07 2013-10-15 Unmanned Systems, Inc. Method and apparatus for reducing control communication delay in a remotely controlled apparatus
KR101508409B1 (ko) 2011-12-27 2015-04-08 삼성전기주식회사 Mrlc를 이용한 오버레이 구현 장치 및 방법
US9113133B2 (en) 2012-01-31 2015-08-18 Prime Image Delaware, Inc. Method and system for detecting a vertical cut in a video signal for the purpose of time alteration
US9451277B2 (en) 2012-02-08 2016-09-20 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
US9426463B2 (en) 2012-02-08 2016-08-23 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
US9307021B2 (en) * 2013-02-27 2016-04-05 Comcast Cable Communications, Llc Adaptive media transmission processing
US9286653B2 (en) * 2014-08-06 2016-03-15 Google Inc. System and method for increasing the bit depth of images
US9693063B2 (en) * 2015-09-21 2017-06-27 Sling Media Pvt Ltd. Video analyzer
US9749686B2 (en) 2015-09-21 2017-08-29 Sling Media Pvt Ltd. Video analyzer
US10446188B2 (en) 2015-12-10 2019-10-15 Cine Design Group Llc Method and apparatus for low latency non-linear media editing using file-based inserts into finalized digital multimedia files
KR102293797B1 (ko) 2016-11-24 2021-08-25 삼성전자주식회사 영상 복잡도 정보를 이용한 화면 영역별 차등 대역폭 할당 방법 및 장치
US11184648B2 (en) * 2019-08-30 2021-11-23 Rovi Guides, Inc. Systems and methods for providing content during reduced streaming quality

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4831517A (en) * 1986-10-10 1989-05-16 International Business Machines Corporation Branch and return on address instruction and methods and apparatus for implementing same in a digital data processing system
JPH0720228B2 (ja) * 1987-04-30 1995-03-06 日本電気株式会社 画像の圧縮記録システム
US5155847A (en) * 1988-08-03 1992-10-13 Minicom Data Corporation Method and apparatus for updating software at remote locations
US5128776A (en) * 1989-06-16 1992-07-07 Harris Corporation Prioritized image transmission system and method
US5144426A (en) * 1989-10-13 1992-09-01 Matsushita Electric Industrial Co., Ltd. Motion compensated prediction interframe coding system
WO1991011766A2 (en) * 1990-01-30 1991-08-08 Johnson Service Company Networked facilities management system
JP2969782B2 (ja) * 1990-05-09 1999-11-02 ソニー株式会社 符号化データ編集方法及び符号化データ編集装置
US5146324A (en) * 1990-07-31 1992-09-08 Ampex Corporation Data compression using a feedforward quantization estimator
US5513306A (en) * 1990-08-09 1996-04-30 Apple Computer, Inc. Temporal event viewing and editing system
US5321844A (en) * 1990-12-20 1994-06-14 Siemens Aktiengesellschaft Method for error correction of software errors in a communication system
JP3189861B2 (ja) * 1992-11-13 2001-07-16 ソニー株式会社 動画像符号化装置および方法
JP3298915B2 (ja) * 1991-12-28 2002-07-08 ソニー株式会社 符号化装置
JPH05199492A (ja) * 1992-01-20 1993-08-06 Asahi Optical Co Ltd スチルビデオ編集装置
US5212729A (en) * 1992-01-22 1993-05-18 Schafer Randy J Computer data security device and method
US5488482A (en) * 1992-01-29 1996-01-30 Mitsubishi Denki Kabushiki Kaisha High-efficiency encoder and video information recording/reproducing apparatus
US5289276A (en) * 1992-06-19 1994-02-22 General Electric Company Method and apparatus for conveying compressed video data over a noisy communication channel
JP3465272B2 (ja) * 1992-08-28 2003-11-10 ソニー株式会社 デジタルデータ記録装置および記録方法
US5339352A (en) * 1992-10-01 1994-08-16 Bell Atlantic Network Services, Inc. Directory assistance call completion via mobile systems
JPH06217274A (ja) * 1993-01-18 1994-08-05 Matsushita Electric Ind Co Ltd 画像信号圧縮装置
JP3275423B2 (ja) * 1993-03-04 2002-04-15 キヤノン株式会社 記録装置
US5450140A (en) * 1993-04-21 1995-09-12 Washino; Kinya Personal-computer-based video production system
JPH06326435A (ja) * 1993-05-11 1994-11-25 Noritake Co Ltd 半導体装置搭載基板
JPH0781298A (ja) * 1993-07-19 1995-03-28 Dainippon Printing Co Ltd 塩化ビニル系樹脂基材用転写箔
JPH0785693A (ja) * 1993-09-20 1995-03-31 Fujitsu Ltd 半導体記憶装置
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
EP0656729B1 (en) * 1993-12-01 2000-02-09 Matsushita Electric Industrial Co., Ltd. Method and apparatus for editing or mixing compressed pictures
US5577191A (en) * 1994-02-17 1996-11-19 Minerva Systems, Inc. System and method for digital video editing and publishing, using intraframe-only video data in intermediate steps
JP3019912B2 (ja) * 1994-07-22 2000-03-15 日本ビクター株式会社 画像データ編集装置
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
US6026232A (en) * 1995-07-13 2000-02-15 Kabushiki Kaisha Toshiba Method and system to replace sections of an encoded video bitstream
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
US5612900A (en) * 1995-05-08 1997-03-18 Kabushiki Kaisha Toshiba Video encoding method and system which encodes using a rate-quantizer model
US5838874A (en) * 1995-05-08 1998-11-17 Kabushiki Kaisha Toshiba Audiovisual encoding system with a reduced number of audio encoders

Also Published As

Publication number Publication date
CA2202171C (en) 2001-10-30
WO1997003443A1 (en) 1997-01-30
JP4430580B2 (ja) 2010-03-10
CA2202171A1 (en) 1997-01-30
JPH11500592A (ja) 1999-01-12
EP0839374A1 (en) 1998-05-06
JP2005318645A (ja) 2005-11-10
US6219043B1 (en) 2001-04-17
EP0839374A4 (ko) 1998-05-06
JP2001128126A (ja) 2001-05-11
JP3842537B2 (ja) 2006-11-08
AU5552096A (en) 1997-02-10
US6026232A (en) 2000-02-15
JP3445278B2 (ja) 2003-09-08
AU707082B2 (en) 1999-07-01

Similar Documents

Publication Publication Date Title
KR100287656B1 (ko) 부호화된비디오비트스트림의섹션들을대체하기위한방법및시스템_
KR100288130B1 (ko) 양자화 레벨을 가변시킴에 의해 비디오 부호기의 비트 할당을 제어하는 전송 속도 제어 디지탈 비디오 편집 방법 및 시스템
KR100283384B1 (ko) 부호화된 비디오 프레임의 품질을 수동으로 변경하기 위한 방법 및 시스템
KR100288094B1 (ko) 부호화된 비디오 시퀀스의 품질을 수동으로 변경하기 위한 방법 및 시스템
US5612900A (en) Video encoding method and system which encodes using a rate-quantizer model
KR100304212B1 (ko) 감소된개수의오디오부호기들을갖는시청각물부호화시스템
AU735683B2 (en) Method and system to replace sections of an encoded video bitstream

Legal Events

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

Payment date: 20120106

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20130107

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee