KR19980081098A - 화상 편집 장치 및 화상 편집 방법 - Google Patents

화상 편집 장치 및 화상 편집 방법 Download PDF

Info

Publication number
KR19980081098A
KR19980081098A KR1019980011980A KR19980011980A KR19980081098A KR 19980081098 A KR19980081098 A KR 19980081098A KR 1019980011980 A KR1019980011980 A KR 1019980011980A KR 19980011980 A KR19980011980 A KR 19980011980A KR 19980081098 A KR19980081098 A KR 19980081098A
Authority
KR
South Korea
Prior art keywords
data
bit stream
accumulation amount
bit
image
Prior art date
Application number
KR1019980011980A
Other languages
English (en)
Other versions
KR100563183B1 (ko
Inventor
안도유지
Original Assignee
이데이노부유끼
소니가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이데이노부유끼, 소니가부시끼가이샤 filed Critical 이데이노부유끼
Publication of KR19980081098A publication Critical patent/KR19980081098A/ko
Application granted granted Critical
Publication of KR100563183B1 publication Critical patent/KR100563183B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23611Insertion of stuffing data into a multiplex stream, e.g. to obtain a constant bitrate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • 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/21Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
    • G11B2220/215Recordable discs
    • G11B2220/218Write-once discs
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • H04N5/77Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television camera
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • H04N5/775Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television receiver

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

비트 스트림(C)는 고속 처리시의 편집 작업으로 구성되며, MPEG 부호화로 얻어진 비트 스트림(A)의 적어도 일부는 MPEG 부호화로 또한 얻어진 비트 스트림(B)의 적어도 일부와 접속된다.
VBV 버퍼의 비트 스트림(A)의 장면(A')의 종료점(Aout)에서의 데이타 축적량(DA)과 비트 스트림(B)의 장면(B')의 개시점(Bin)에서의 데이타 축적량(DB)이 산출된다. DA와 DB사이의 차이는 비트 스트림 A와 B 사이의 접속점에 대응하는 비트 스트림(C)의 부분의 데이타 량을 조정하는데 사용된다. DADB인 경우, 스터핑 코드(stuffing code)가 종료점(Aout)에서의 화상에 추가된다. DADB인 경우, 종료점(Aout)에서의 화상 이후의 위치에 스킵된 P 화상이 삽입된다.

Description

화상 편집 장치 및 화상 편집 방법
본 발명은 화상 편집 장치 및 화상 편집 방법에 대해서 특히, 예를 들면 화상을 MPEG(Moving Picture Experts Group) 부호화해서 얻어진 비트 스트림을 소위컷트 편집하는 경우 등에 이용하여 적합한 화상 편집 장치 및 화상 편집 방법에 관한 것이다.
도 11은 종래의 화상 편집 장치의 일례의 구성을 나타내고 있다.
데이타 기억 장치(21)는 예를 들면, 하드디스크 등으로 구성되며 예를 들면 ISO-11172-2(소위 MPEG1)의 규격에 준거하여 압축 부호화된 이미지 데이타의 비트 스트림 A 및 B가 편집 대상의 소재로서 기록되어 있다. 또한, 데이타 기억 장치(21)에는 컨트롤러(124)의 지시 아래 비트 스트림 A 및 B를 편집함으로써 얻어진 이들의 비트 스트림 A 및 B 비트 스트림 중 적어도 일부씩을 접속한 비트 스트림 C 등도 기록되도록 이루어진다.
비트 카운터(22)는 데이타 기억 장치(21)로부터 판독되는 비트 스트림의 데이타량(비트량)을 카운트하고 컨트롤러(124)로부터 지시된 타이밍으로 컨트롤러(124)에 공급하도록 이루어진다. 또한, 비트 카운터(22)는 데이타 기억 장치(21)로부터의 비트 스트림을 그대로 디코더(23)에 출력하도록 이루어진다. 디코더(23)는 컨트롤러(124)의 제어 아래, 비트 카운터(22)를 통해 공급되는 비트 스트림에 포함되는 각 종 파라메터를 디코드하고 컨트롤러(124)에 출력하도록 이루어진다. 즉, 디코더(23)는 비트 스트림에 포함되는 예를 들면, 시퀀스 헤더(Sequence Header), GOP (Group Of Picture) 헤더(GOP Header) 및 화상 헤더(Picture Header)를 디코드하고, 각 헤더에 배치되어 있는 정보(파라메터)를 컨트롤러(124)에 출력하도록 이루어진다.
컨트롤러(124)는 비트 카운터(22) 및 디코더(23)의 출력에 기초해서 필요에 따라서 메모리(25)를 이용하여 데이타 기억 장치(21)에 기록되어 있는 비트 스트림 A 및 B로부터 비트 스트림 C를 구성하고 데이타 기억(기록) 장치(21)에 기록하도록 이루어진다.
다음에, 그 동작에 대해 설명한다.
또, 여기서는 예를 들면 도 12에 도시한 바와 같이 비트 스트림 A로부터 일부의 장면 A'를 추출함과 동시에, 비트 스트림 B로부터 일부의 장면 B'를 추출하고 장면 A' 후에 장면 B'를 접속함으로서 비트 스트림 C가 구성되게 한다.
또한, 장면 A'의 개시점 또는 종료점을 각각 Ain또는 Aout과 장면 B'의 개시점 또는 종료점을 각각 Bin또는 Bout으로 기술한다.
또한, MPEG1에서는 화상의 비트 스트림의 편집은 GOP을 1단위로서 행해야 하는 취지가 규정되어 있기 때문에, 개시점 Ain및 Bin은 GOP의 선두의 화상을 종료점 Aout및 Bout은 GOP 최후의 화상을 가리키도록 미리 설정되어 있는 것으로 한다.
따라서, 개시점 Ain및 Bin및 종료점 Aout및 Bout의 검출에는 GOP를 검출하는 것이 필요해지지만, GOP의 검출은 예를 들면 그 선두에 배치되어 있는 GSC (Group Start Code)에 의해서 행해지는 것으로 한다. 단지, 종료점 Aout또는 Bout이 비트 스트림 A 또는 B의 최후에 설정되어 있는 경우는 다음 GOP가 존재하지 않았지만 여기서는 존재한다고 가정하여 처리를 행하게 한다.
컨트롤러(124)에서는 도 13의 플로우차트에 도시한 바와 같이 우선, 최초로 단계 S101에서 비트 스트림 A 및 B의 시퀀스 헤더가 판독된다. 즉, 컨트롤러(124)는 데이타 기억 장치(21)를 제어함으로써 비트 스트림 A를 비트 카운터(22)를 통해 디코더(23)로 공급시키며 그 중의 시퀀스 헤더를 디코드시킨다. 컨트롤러(124)는 마찬가지로 해서 비트 스트림 B에 대해서도 그 시퀀스 헤더를 디코드시킨다.
디코드된 비트 스트림 A 및 B의 시퀀스 헤더는 컨트롤러(124)를 통해 메모리(25)에 공급되어 기억된다.
그 후, 컨트롤러(124)는 단계 S102에서 메모리(25)에 기억된 비트 스트림 A 및 B에 대해서의 시퀀스 헤더를 비교함으로써 그 2개의 비트 스트림 A 및 B를 컷트 편집하여 비트 스트림 C로 하는 것이 가능한지의 여부를 판정한다. 즉, 비트 스트림 A 및 B에 대해서의 시퀀스 헤더에 배치되어 있는 파라메터 중 LIQM(Load Intra Quantize Matrix) 전까지의 것이 일치하지 않은 경우에는 편집할 수 없기 때문에, 단계 S102에서는 이들의 파라메터가 일치하고 있는지의 여부가 판정된다.
단계 S102에서 비트 스트림 A 및 B의 편집을 할 수 없다고 판정된 경우 즉, 비트 스트림 A 및 B에 대해서의 시퀀스 헤더에 배치되어 있는 파라메터 중 LIQM 전까지의 것이 일치하지 않은 경우, 컨트롤러(124)는 편집을 할 수 없는 취지를 도시하지 않은 모니터에 표시하여 처리를 종료한다.
또한, 단계 S102에서 비트 스트림 A 및 B의 편집을 할 수 있다고 판정된 경우, 즉 비트 스트림 A 및 B에 대한 시퀀스 헤더에 배치되어 있는 파라메터 중 LIQM 전까지의 것이 일치하고 있는 경우, 단계 S103으로 진행하고 컨트롤러(124)는 데이타 기억 장치(21)로부터 비트 스트림 A를 예를 들면, 화상 단위 등으로 판독하여 비트 카운터(22), 그위에 디코더(23)에 공급시킨다.
비트 카운터(22)에서는 비트 스트림 A의 비트량이 카운트되며 디코더(23)에서는 공급된 비트 스트림 A에 시퀀스 헤더가 포함되는 경우에는 그것이 디코드되며 모두 컨트롤러(124)에 공급된다.
컨트롤러(124)는 디코더(23)의 출력을 감시하고 있으며 단계 S104에서 디코더(23)로부터 시퀀스 헤더가 출력된지의 여부를 판정한다. 단계 S104에서 시퀀스 헤더가 출력되었다고 판정된 경우, 단계 S105로 진행하고 메모리(25)에 기억되어 있는 비트 스트림 A에 대한 시퀀스 헤더를 디코더(23)가 출력한 최신의 시퀀스 헤더에 갱신하여 단계 S106으로 진행한다.
또한, 단계 S104에서 시퀀스 헤더가 출력되어 있지 않다고 판정된 경우 단계 S105를 스킵하여 단계 S106으로 진행하여 컨트롤러(124)에서 데이타 기억 장치(21)로부터 개시점 Ain의 화상이 판독된지의 여부가 판정된다. 단계 S106에서 개시점Ain의 화상이 아직 판독되지 않았다고 판정된 경우, 단계 S103으로 되돌아가고 컨트롤러(124)는 비트 스트림 A의 판독을 계속한다.
또한, 단계 S106에서 개시점 Ain의 화상이 판독되었다고 판정된 경우, 단계 S107로 진행하고 컨트롤러(124)는 메모리(25)에 기억되어 있는 비트 스트림 A에 대한 최신의 시퀀스 헤더를 비트 스트림 C에 대한 선두의 시퀀스 헤더로서 데이타 기억 장치(21)에 기록하고 단계 S108로 진행한다. 단계 S108에서는 컨트롤러(124)는 개시점 Ain의 화상이 속하는 GOP의 GOP 헤더를 데이타 기억 장치(21)로부터 판독하고 디코더(23)에 디코드시켜서 그 디코드 결과를 수신한다.
그리고, 컨트롤러(124)는 단계 S109로 진행하고 디코더(23)로부터 수신한 GOP 헤더에 배치되어 있는 CG(Closed GOP)가 0인지의 여부를 판정한다. 단계 S109에서 CG가 0이라고 판정된 경우 즉, GOP이 소위 오픈 GOP인 경우 단계 S110으로 진행하고 GOP 헤더에 배치되어 있는 BL(Broken Link)이 1로 셋트되며 단계 S112로 진행한다.
즉, 개시점 Ain의 화상을 포함하는 GOP가 오픈 GOP인 경우, 편집에 의해, 그전의 GOP와의 링크가 절단되기 때문에, 그 GOP에서의 표시순으로 최초의 B 화상은 재생 시에 정확하게 디코드할 수 없다. 그래서, 그 취지를 나타내는 BL이 1로 셋트된다.
한편, 단계 S109에서 CG가 0이 아니라고 판정된 경우 즉 GOP가 소위 클로즈드 GOP인 경우, 단계 S111로 진행하여 GOP 헤더에 배치되어 있는 BL이 0으로 셋트되며 단계 S112로 진행한다.
즉, GOP가 클로즈드 GOP인 경우 그 GOP에서의 표시순으로 최초의 화상은 I 화상이나 또는 전방 예측이 되지 않은 B 화상이기 때문에 그 디코드에 선행하는 GOP는 이용되지 않는다. 따라서, BL은 0이 된다.
단계 S112에서는 컨트롤러(124)에서 단계 S110 또는 S111에서 BL이 셋트된 GOP 헤더가 비트 스트림 C에 대한 GOP 헤더로서 단계 S107에서 기록된 시퀀스 헤더에 계속하여 기록되며 단계 S113으로 진행한다.
단계 S113에서는 컨트롤러(124)에 의한 비트 스트림 A의 판독이 계속되며 단계 S114로 진행하여 데이타 기억 장치(21)로부터 종료점 Aout의 화상이 판독되었는지의 여부가 판정된다. 단계 S114에서 종료점 Aout의 화상이 아직 판독되지 않았다고 판정된 경우, 단계 S115로 진행하고 컨트롤러(124)에서 단계 S113에서 판독된 데이타가 비트 스트림 C에 대한 데이타로서 데이타 기억 장치(21)에 기록된다.
그리고, 단계 S116으로 진행하고 컨트롤러(124)에서 단계 S113에서 판독된 데이타가 시퀀스 헤더인지의 여부가 디코더(23)의 출력을 참조함으로써 판정된다. 단계 S116에서 단계 S113으로 판독된 데이타가 시퀀스 헤더라고 판정된 경우 단계 S117로 진행하고 메모리(25)에 기억된 비트 스트림 A에 대한 시퀀스 헤더가 디코더(23)가 출력하는 최신의 시퀀스 헤더(단계 S113에서 판독된 시퀀스 헤더)에 갱신된다. 그리고, 단계 S113으로 되돌아가고 비트 스트림 A의 판독이 계속된다.
또한, 단계 S116에서 단계 S113에서 판독된 데이타가 시퀀스 헤더가 아니라고 판정된 경우, 단계 S117을 스킵하여 단계 S113으로 되돌아가고 비트 스트림 A의 판독이 계속된다.
한편, 단계 S114에서 종료점 Aout의 화상이 판독되었다고 판정된 경우 도 14의 단계 S121로 진행하고 단계 S113에서 판독된 데이타가 비트 스트림 C에 대한 데이타로서 데이타 기억 장치(21)에 기록되며 단계 S122로 진행한다. 단계 S122에서는 비트 스트림 A의 판독이 계속되며 단계 S123에 진행하고 컨트롤러(124)는 단계 S122에서 판독된 데이타가 시퀀스 헤더, GOP 헤더 또는 SEC(Sequence End Of Code) 중 어느 하나를 디코더(23)의 출력을 참조함으로써 판정한다.
단계 S123에 있어서 단계 S122에서 판독된 데이타가 시퀀스 헤더, GOP헤더 또는 SEC 중 어느 하나도 아니라고 판정된 경우, 단계 S121로 되돌아가고 전술한 처리가 반복된다.
또한, 단계 S123에서 단계 S122에서 판독된 데이타가 시퀀스 헤더, GOP 헤더 또는 SEC 중 모두 아니라고 판정된 경우, 컨트롤러(124)는 그 데이타의 기록을 행하지 않고서 단계 S124로 진행하고 데이타 기억 장치(21)로부터의 비트 스트림 B의 예를 들면, 화상 단위에서의 판독을 개시한다.
그리고, 컨트롤러(124)는 단계 S125에서 디코더(23)의 출력을 참조함으로써 단계 S124에서 판독된 데이타가 시퀀스 헤더인지의 여부를 판정하고 시퀀스 헤더라고 판정한 경우, 단계 S126으로 진행하고 메모리(25)에 기억되어 있는 비트 스트림 B에 대한 시퀀스 헤더를 디코더(23)가 출력한 최신의 시퀀스 헤더에 갱신하고 단계 S127로 진행한다.
또한, 단계 S125에서 단계 S124에서 판독된 데이타가 시퀀스 헤더가 아니라고 판정된 경우, 단계 S126을 스킵하여 단계 S127로 진행하여 컨트롤러(124)에서 데이타 기억 장치(21)로부터 개시점 Bin의 화상이 판독된지의 여부가 판정된다. 단계 S127에서 개시점 Bin화상이 아직 판독되지 않았다고 판정된 경우, 단계 S124로 되돌아가고 컨트롤러(124)는 비트 스트림 B의 판독을 계속한다.
또한, 단계 S127에서 개시점 Bin의 화상이 판독되었다고 판정된 경우 단계 S128로 진행하고 컨트롤러(124)는 메모리(25)에 기억되어 있는 비트 스트림 A 및 B에 대한 최신의 시퀀스 헤더끼리를 비교하고 이들의 LIQM이 일치하지 않았는지의 여부 및 LNIQM(Load Non Intra Quantizer Matrix)이 일치하지 않았는지의 여부를 판정한다.
단계 S128에서 비트 스트림 A 및 B에 대한 최신의 시퀀스 헤더에 배치된 LIQM끼리가 일치하지 않거나 또는 LNIQM끼리가 일치하지 않는다고 판정된 경우, 단계 S129로 진행하고 컨트롤러(124)는 메모리(25)에 기억된 비트 스트림 B에 대한 최신의 시퀀스 헤더를 비트 스트림 C의 시퀀스 헤더로서 데이타 기록 장치(21)에 기록하고 단계 S130으로 진행한다.
또한, 단계 S128에서 비트 스트림 A 및 B에 대한 최신의 시퀀스 헤더에 배치된 LIQM끼리도 또한 LNIQM끼리도 모두 일치한다고 판정된 경우, 단계 S129를 스킵하여 단계 S130으로 진행하고 컨트롤러(124)는 단계 S124에서 판독한 개시점 Bin의 화상에 대해 MPEG에서 수신측(디코더측)에 상정하는 것이 규정되어 있는 VBV(Video Buffering Verifier) 버퍼의 데이타 축적량에 대응하는 VD(VBV Delay)를 산출한다.
여기서, VD에 대해서는 후술한다.
그리고, 단계 S131로 진행하여 컨트롤러(124)는 단계 S130에서 산출한 VD의 값이 부적당한지의 여부를 판정한다. 단계 S131에서 VD의 값이 부적당하다고 판정된 경우, 비트 스트림 A와 B는 MPEG 복호화하지 않으면 편집할 수 없기 때문에 처리를 종료한다.
또한, 단계 S131에서 VD의 값이 부적당하지 않다고 판정된 경우 단계 S132로 진행하고 단계 S124에서 판독된 개시점 Bin의 화상의 화상 헤더에 단계 S130에서 산출된 VD가 덧씌워지며 단계 S133으로 진행한다. 단계 S133에서는 화상 헤더의 VD가 재기록된 화상(여기서는 단계 S124에서 판독된 개시점 Bin의 화상)가 비트 스트림 C에 대한 데이타로서 데이타 기억 장치(21)에 기록된다.
그 후, 컨트롤러(124)에서는 단계 S134에서 데이타 기억 장치(21)로부터의 비트 스트림 B의 판독이 계속되며 단계 S135로 진행하고 데이타 기억 장치(21)로부터 종료점 Bout의 화상이 판독된지의 여부가 판정된다. 단계 S135에서 종료점 Bout의 화상이 아직 판독되지 않았다고 판정된 경우 단계 S130으로 되돌아가고 상술한 경우와 같은 처리가 행해진다.
즉, 단계 S130에서 단계 S134에서 판독한 화상에 대해 VBV 버퍼의 데이타 축적량에 대응하는 VD(VBV Delay)가 산출되며 단계 S131로 진행하고 그 VD의 값이 부적당한지의 여부가 판정된다. 단계 S131에서 VD의 값이 부적당하다고 판정된 경우는 처리를 종료하고, VD의 값이 부적당하지 않다고 판정된 경우는 단계 S132로 진행하고 단계 S134에서 판독된 화상의 화상 헤더에 단계 S130에서 산출된 VD가 덧씌워지며 단계 S133으로 진행한다. 그리고, 단계 S133에서 화상 헤더의 VD가 재기록된 화상(여기서는 단계 S134에서 판독된 화상)가 비트 스트림 C에 대한 데이타로서 데이타 기억 장치(21)에 기록된다.
한편, 단계 S135에서 종료점 Bout의 화상이 판독되었다고 판정된 경우 단계 S136으로 진행하고 그 화상(여기서는 종료점 Bout의 화상)가 비트 스트림 C에 대한 데이타로서 데이타 기억 장치(21)에 기록된다. 또, 이 단계 S136의 처리에서도 단계 S130 내지 S132에서의 경우와 마찬가지의 처리(VD를 산출하고 그것이 부적당한지의 여부를 판정하고 부적당하지 않으면 화상 헤더의 VD를 갱신하는 처리)가 행해진다.
그 후, 단계 S137로 진행하고 비트 스트림 C에 대한 최후의 데이타로서 SEC가 기록되며 처리를 종료한다.
그런데, MPEG에서는 VBV 버퍼가 오버 플로우 및 언더플로우 중 모두 하지 않도록 비트 스트림을 구성해야만 하는 것이 규정되어 있다.
여기서, 도 15는 VBV 버퍼의 데이타 축적량의 추이의 일례를 나타내고 있다. 또, 동일 도면에서 횡축 또는 종축은 시간 또는 데이타 축적량을 각각 나타내고 있다.
VBV 버퍼에는 소정의 일정한 비트 레이트로 MPEG 부호화의 결과 얻어진 비트 스트림이 축적되어 간다. 이 일정한 비트 레이트의 400bps(Bit Per Seconds) 이하의 값을 반올림하고 400으로 뺄샘한 값이 BR(Bit Rate)로서 비트 스트림의 시퀀스 헤더에 배치되어 있다.
VBV 버퍼로부터의 비트 스트림의 판독(즉, 디코더로의 입력)은 시퀀스 헤더에 배치되어 있는 PR(Picture Rate)에 따라서 행해진다. 즉, PR에 따라서 일정 주기로 찾아온 복호 시각으로 하면 그 복호 시각에 복호해야 할 화상에 대한 데이타가 VBV 버퍼로부터 순간적으로 판독되며 디코더에 공급된다.
따라서, 어느 화상이 판독되고나서 다음 화상이 판독될 때까지의 사이에서는 VBV 버퍼에는 비트 레이트/ 화상 레이트만큼의 데이타량이 축적된다. 즉, 예를 들면 도 15에서의 D1에서 도시한 데이타량은 비트 레이트/ 화상 레이트로 나타낸다.
또한, 어느 복호 시각에서는 시퀀스 헤더의 시작을 나타내는 SHC(Sequence Header Code ; MPEG1에서는 16진수로 000001B3), GOP 헤더의 시작을 나타내는GSC(Group Start Code ; MPEG1에서는 16진수로 000001B8), 또는 화상 헤더의 시작을 나타내는 PSC(Picture Start Code ; MPEG1에서는 16진수로 00000100) 중 어느 하나의 최초 비트로부터 다음 SHC, GSC 또는 PSC 중 직전의 비트까지의 데이타가 VBV 버퍼로부터 순간적으로 판독된다. 또, 도 15에서 D2에서 도시한 부분은 SHC의 최초의 비트로부터 데이타가 판독되는 모습을 나타내고 있다.
VBV 버퍼의 데이타의 축적량은 상술한 화상 헤더에 배치되는 VD로부터 인식할 수 있도록 이루어진다. 즉, VD는 PSC의 최후의 비트까지가 VBV 버퍼로부터 판독되었다고 가정한 경우에서 BR에 대응하는 비트 레이트로 데이타를 축적하고 그 데이타 축적량을 원래의 상태로 하는데 요하는 시간을 90㎑의 클럭으로 카운트할 때의 그 카운트치를 나타내고 있다.
상술한 바와 같은 편집을 행하는 경우에서 비트 스트림 A의 종료점 Aout에서의 VBV 버퍼의 데이타 축적량과 비트 스트림 B의 개시점 Bin에서의 VBV 버퍼의 데이타 축적량과의 사이에는 통상 예를 들면 도 16에 도시한 바와 같은 갭이 존재한다. 따라서, 그 갭을 보정하기 위해서 개시점 Bin의 화상에 대한 VD를 종료점 Aout과 개시점 Bin에서의 데이타 축적량이 정합하도록 변경할 필요가 있다.
구체적으로는 개시점 Bin의 화상에 대한 VD는 다음식에서 나타내는 VD'(Bin)으로 할 필요가 있다.
VD'(Bin) = VD(Aout) + (HL(Bin) - HL(Aout)) × 90000/ br
단지, 수학식 1에서 VD (Aout)은 종료점 Aout에서의 VD를 나타내고 HL(Bin) 또는 HL(Aout)은 개시점 Bin또는 종료점 Aout의 화상에 대한 시퀀스 헤더 혹은GOP 헤더의 최초의 비트로부터 PSC의 최후 비트까지의 비트량을 각각 나타낸다. 또한, br은 BR로부터 구해진 비트 레이트를 나타낸다.
여기서, 도 14의 단계 S130에서는 수학식 1에 따라서 개시점 Bin의 화상에 대한 VD (VD' (Bin))이 산출된다.
개시점 Bin의 화상에 대한 VD를 수학식 1에 의해 구해진 VD'(Bin)로 변경한 경우, 그 후의 비트 스트림 B에 포함되는 VD도 변경할 필요가 있다. 이것은 원래의 VD에 VD' (Bin) - VD (Bin)을 가산하여 이 가산치로 변경된다.
여기서, 도 14의 단계 S130에서는 개시점 Bin의 화상 이외에 대한 VD는 이와 같이 해서 구해진다.
또, VBV 버퍼의 용량을 SVBV로 나타낼 때, 변경 후의 VD가 0이하의 값이 되거나 90000 × SVBV/ br 또는 16진수로 FFFE를 넘는 것과 같은 값이 되는 것은 VBV 버퍼가 언더 플로우 또는 오버 플로우하게 되기 때문에 허용되지 않는다. 여기서, 도 14의 단계 S131에서는 단계 S130에서 산출된 VD가 그와 같은 값이 되지 않았는지의 여부가 판정된다.
그런데, 전술한 바와 같은 편집을 행하는 경우에서는 기본적으로 개시점 Bin이후의 VD를 모두 재기록할 필요가 있으며 처리의 고속화의 지장이 되고 있었다.
또한, VD가 전술한 같은 값이 된 경우에는 비트 스트림을 복호화하지 않으면 편집할 수 없으며 번거로웠다.
또한, VD의 산출에 있어서는 비트레이트 br이 필요해지지만, 이 비트 레이트 br은 시퀀스 헤더에 배치되어 있는 BR에서 구해진다. 그러나, BR은 상술한 바와 같이 참 비트 레이트를 400bps 단위로 소위, 반올림한 것으로 되기 때문에, VD를 정밀도 좋게 구할 수 없는 경우가 있었다.
본 발명은 이러한 상황에 감안하여 이루어진 것으로 압축 부호화된 비트 스트림의 편집을 그 상태에서 고속으로 행할 수 있도록 한 것이다.
제1항에 있어서, 화상 편집 장치는 제1 비트 스트림의 제2 비트 스트림과 접속하는 제1 접속점 및 제2 비트 스트림의 제1 비트 스트림과 접속하는 제2 접속점에서의 가상 버퍼의 데이타 축적량을 축적량 정보에 기초해서 산출하는 데이타 축적량 산출 수단과, 데이타 축적량 산출 수단에 의해 산출된 제1 및 제2 접속점에서의 데이타 축적량끼리의 차에 기초해서 제3 비트 스트림에서의 제1과 제2 비트 스트림의 접속점에 상당하는 부분의 데이타량을 조정하는 데이타량 조정 수단을 구비하는 것을 특징으로 한다.
제9항에 있어서, 화상 편집 방법은 제1 비트 스트림의 제2 비트 스트림과 접속하는 제1 접속점 및 제2 비트 스트림의 제1 비트 스트림과 접속하는 제2 접속점에서의 가상 버퍼의 데이타 축적량을 축적량 정보에 기초해서 산출하고 그 제1 및 제2 접속점에서의 데이타 축적량끼리의 차에 기초해서 제3 비트 스트림에서의 제1과 제2 비트 스트림의 접속점에 상당하는 부분의 데이타량을 조정하는 것을 특징으로 한다.
제1항에 있어서, 화상 편집 장치에서는 데이타 축적량 산출 수단은 제1 비트 스트림의 제2 비트 스트림과 접속하는 제1 접속점 및 제2 비트 스트림의 제1 비트 스트림과 접속하는 제2 접속점에서의 가상 버퍼의 데이타 축적량을 축적량 정보에 기초해서 산출하고 데이타량 조정 수단은 데이타 축적량 산출 수단에 의해 산출된 제1 및 제2 접속점에서의 데이타 축적량끼리의 차에 기초해서 제3 비트 스트림에서의 제1과 제2 비트 스트림의 접속점에 상당하는 부분의 데이타량을 조정하도록 이루어진다.
제9항에 있어서, 화상 편집 방법에서는 제1 비트 스트림의 제2 비트 스트림과 접속하는 제1 접속점 및 제2 비트 스트림의 제1 비트 스트림과 접속하는 제2 접속점에서의 가상 버퍼의 데이타 축적량을 축적량 정보에 기초해서 산출하고 그 제1 및 제2 접속점에서의 데이타 축적량끼리의 차에 기초해서 제3 비트 스트림에서의 제1과 제2 비트 스트림의 접속점에 상당하는 부분의 데이타량을 조정하도록 이루어지고 있다.
도 1은 본 발명을 적용한 편집 장치의 일 실시의 형태의 구성예를 도시한 블럭도.
도 2는 도 1의 편집 장치의 기능적 구성예를 도시한 블럭도.
도 3은 비트 스트림 A 및 B를 편집하여 비트 스트림 C가 구성되는 모습을 도시한 도면.
도 4는 도 2의 편집 장치의 동작을 설명하기 위한 플로우차트.
도 5는 도 4의 플로우차트에 계속되는 플로우차트.
도 6은 도 5의 플로우차트에 계속되는 플로우차트.
도 7은 스킵된 P 화상을 삽입한 경우의 임시 기준의 결정 방법을 설명하기 위한 도면.
도 8은 스킵된 P 화상의 VBV 디스플레이를 구하는 방법을 설명하기 위한 도면.
도 9는 도 2의 비트레이트 추정 장치(26)의 동작을 설명하기 위한 플로우차트.
도 10은 비트레이트의 추정치의 구하는 방법을 설명하기 위한 도면.
도 11은 종래의 편집 장치의 일례의 구성을 도시한 블럭도.
도 12는 비트 스트림 A 및 B를 편집하여 비트 스트림 C가 구성되는 모습을 나타낸 도면.
도 13은 도 11의 편집 장치의 동작을 설명하기 위한 플로우차트.
도 14는 도 13의 플로우차트에 계속되는 플로우차트.
도 15는 VBV 버퍼의 데이타 축적량의 추이를 나타낸 도면.
도 16은 비트 스트림 A와 B를 접속한 경우에 VBV 버퍼의 데이타 축적량에 부정합이 생기는 모습을 도시한 도면.
도면의주요부분에대한부호의설명
1 : 마이크로 프로세서
2 : 메인 메모리
3 : 프레임 버퍼
4 : 버스 브릿지
5 : 튜너
6 : 모뎀
7 : I/O 인터페이스
8 : 키보드
9 : 마우스
10 : 보조 기억 인터페이스
11 : CD-R
12 : 하드디스크
13 : 압축부
14 : 비디오 카메라
15 : 신장부
16 : VTR
17 : 컴퓨터 디스플레이
21 : 데이타 기억 장치
22 : 비트 카운터
23 : 디코더
24 : 컨트롤러(데이타 축적량 산출 수단)
25 : 메모리
26 : 비트레이트 추정 장치(비트레이트 추정 수단)
27 : 버퍼 축적량 조정 장치(데이타량 조정 수단)
도 1은 본 발명을 적용한 비선형 편집 장치의 일 실시의 형태의 구성예를 도시하고 있다.
이 비선형 편집 장치는 예를 들면, 컴퓨터를 베이스로서 구성되어 있다. 즉, 마이크로 프로세서(1)는 하드디스크(12)에 기록된 오퍼레이팅 시스템의 제어 아래, 동일한 하드디스크(12)에 기록된 어플리케이션 프로그램을 실행함으로서 화상이나 음성의 편집 처리나 편집 후의 화상이나 음성의 재생 처리 등의 소정의 처리를 행한다. 메인 메모리(2)는 마이크로 프로세서(1)가 실행하는 프로그램이나 마이크로 프로세서(1)의 동작 상 필요한 데이타를 기억한다. 프레임 버퍼(3)는 예를 들면, DRAM(Dynamic Random Access Memory) 등으로 구성되며 마이크로 프로세서(1)가 생성된 화상 등을 기억한다. 버스 브릿지(4)는 내부 버스와 예를 들면, PCI (Peripheral Component Interconnect) 로컬 버스 등의 확장 버스와의 사이에서의 데이타의 교환을 제어한다.
이상의 마이크로 프로세서(1), 메인 메모리(2), 프레임 버퍼(3) 및 버스 브릿지(4)는 서로 내부 버스를 통해 접속되어 있으며 나머지의 블럭은 확장 버스를 통해 서로 접속되어 있다. 또, 버스 브릿지(4)는 내부 버스와 확장 버스와의 양 쪽에 접속되어 있다.
튜너(5)는 예를 들면, 지상파나 위성 회선, CATV망을 이용하여 방송되고 있는 텔레비젼 방송 신호를 수신한다. 여기서, 튜너(5)에서 수신한 화상이나 음성 등도 편집의 대상으로 할 수 있다. 모뎀(6)은 전화 회선을 통한 통신을 제어한다. 여기서, 모뎀(6)에서 예를 들면, 인터넷 등으로부터 수신한 화상이나 음성 등도 편집의 대상으로 할 수 있으며 또한 편집한 화상이나 음성 등을 외부에 송신할 수도 있다.
I/O (Input/ Output) 인터페이스(7)는 키보드(8)나 마우스(9)의 조작에 대응한 조작 신호를 출력한다. 키보드(8)는 소정의 데이타나 커맨드를 입력할 때 마우스(9)는 디스플레이(컴퓨터 디스플레이 ; 17)에 표시되는 커서를 이동시키거나 또한 위치를 지시하거나 할 때 등에 각각 조작된다.
보조 기억 인터페이스(10)는 CD - R(Compact Disc Recodable ; 11)이나 하드디스크[HD (Hard Disk); 12] 등에 대한 데이타의 기록 및 판독을 제어한다. CD - R11에는 예를 들면, 편집 후의 화상이나 음성 등이 기록된다. 하드디스크(12)에는 오퍼레이팅 시스템이나 비선형 편집 그 밖의 처리를 마이크로 프로세서(1)에 실행시키기 위한 어플리케이션 프로그램 등이 기억되어 있다. 또한, 하드디스크(12)에는 편집 대상의 화상이나 음성, 편집 후의 화상이나 음성 등도 기록된다.
압축부(13)는 거기에 입력되는 화상이나 음성을 예를 들면, MPEG의 규격에 준거하여 압축 부호화한다. 또, 압축부(13)에서는 확장 버스를 통해 공급되는 데이타나 신장부(15)를 통해 공급되는 데이타 그위에 외부 장치인 예를 들면, 비디오 카메라(14)로부터 공급되는 데이타 등도 압축할 수 있도록 이루어진다.
비디오 카메라(14)에서는 예를 들면, 편집 대상으로 하는 화상이나 음성이 기록된다. 압축부(13)는 비디오 카메라(14)와의 인터페이스를 갖고 있으며 이에 따라, 비디오 카메라(14)로 기록된 화상이나 음성을 압축부(13)에 입력할 수 있도록 이루어진다.
신장부(15)는 압축부(13)로 부호화(압축)된 데이타를 복호화(신장)하여 출력한다. 또, 신장부(15)는 필요에 따라 프레임 버퍼(3)에 기억된 화상에 복호화한 화상을 오버 레이하여 출력한다. 여기서, 프레임 버퍼(3)로부터 신장부(15)로의 이미지 데이타의 공급은 도 1의 실시 형태에서는 이들의 사이에서 직접 행해지도록 이루어지고 있지만, 그 외 내부 버스, 버스 브릿지(4) 및 확장 버스를 통해 행하는 것도 가능하다. 단지, 프레임 버퍼(3)로부터 신장부(15)로의 이미지 데이타의 공급을 내부 버스, 버스 브릿지(4) 및 확장 버스를 통해 행하는 경우에는 내부 버스나 확장 버스의 능력이 낮으면 데이타가 지체할 우려가 있다.
VTR(16)은 신장부(15)가 출력하는 화상이나 음성을 필요에 따라서 기록한다. 디스플레이(17)는 신장부(15)가 출력하는 화상을 필요에 따라 표시한다. 또, 신장부(15)가 출력하는 화상의 표시는 컴퓨터용 디스플레이인 디스플레이(17) 외 TV 모니터 등에 의해서도 행할 수 있도록 이루어진다.
다음에, 도 2는 도 1의 편집 장치의 기능적 구성예를 나타내는 블럭도이다. 또, 도면 중 도 11에서의 경우와 대응하는 부분에 대해서는 동일한 부호를 붙이고 있으며 이하에서는 그 설명은 적당히 생략한다. 즉, 이 편집 장치는 컨트롤러(124) 대신에 컨트롤러(24 ; 데이타 축적량 산출 수단)이 설치됨과 동시에, 비트 레이트 추정 장치(26 ; 비트 레이트 추정 수단) 및 버퍼 축적량 조정 장치(27 ; 데이타량 조정 수단)가 새롭게 설치되고 있는 것 외에 도 11에서의 경우와 기본적으로 마찬가지로 구성되고 있다.
컨트롤러(24)는 기본적으로 도 11의 컨트롤러(124)와 마찬가지로 데이타 기억 장치(21), 비트 카운터(22) 및 디코더(23)를 제어하는 것 외, 비트 레이트 추정 장치(26) 및 버퍼 축적량 조정 장치(27)도 제어하도록 이루어진다. 비트 레이트 추정 장치(26)는 비트 카운터(22)가 출력하는 비트량 및 컨트롤러(24)가 출력하는 정보에 기초해서 데이타 기억 장치(21)에 기록되어 있다. 편집 대상의 소재로서의 비트 스트림 A 및 B의 비트 레이트를 정밀도 좋게 추정하고 컨트롤러(24)에 출력하도록 이루어진다. 버퍼 축적량 조정 장치(27)는 비트 스트림 A 및 B의 편집 결과로서의 비트 스트림 C의 데이타량을 조정하도록 이루어지고 있다.
또, 도 2에서 데이타 기억 장치(21)는 도 1의 보조 기억 인터페이스(10)) 및 하드디스크(12)에 비트 카운터(22)는 도 1의 마이크로 프로세서(1)에 디코더(23)는 도 1의 신장부(15)에 컨트롤러(24)는 도 1의 마이크로 프로세서(1)에 메모리(25)는 도 1의 메인 메모리(2)에 비트 레이트 추정 장치(26) 및 버퍼 축적량 조정 장치(27)는 도 1의 마이크로 프로세서(1)에 각각 상당한다.
다음에, 그 동작에 대해 설명한다.
또, 여기서도 예를 들면 도 12와 마찬가지의 도 3에 도시한 바와 같이 비트 스트림 A로부터 일부의 장면 A'를 추출함과 동시에 비트 스트림 B로부터 일부의 장면 B'를 추출하고 장면 A' 후에 장면 B'를 접속함으로서 비트 스트림 C가 구성되게 한다. 또한, 데이타 기억 장치(21)에는 압축부(13)에서 MPEG1의 규격에 준거하여 압축 부호화된 비트 스트림 A 및 B가 이미 기록되어 있는 것으로 한다.
컨트롤러(24)는 데이타 기억 장치(21)로부터 비트 스트림 A 및 B를 판독하고 비트 카운터(22), 그 위에 디코더(23)에 공급한다. 비트 카운터(22)에서는 데이타 기억 장치(21)로부터의 비트 스트림의 비트량이 산출되며 비트 레이트 추정 장치(26)에 공급된다. 또한, 컨트롤러(24)는 비트레이트 추정 장치(26)에 필요한 정보를 공급한다. 비트 레이트 추정 장치(26)에서는 비트 카운터(22)로부터의 비트량과 컨트롤러(24)로부터의 정보에 기초해서 비트레이트 A 및 B의 비트 레이트를 정밀도 좋게 추정하고 컨트롤러(24)에 출력한다.
여기서, 비트 레이트 추정 장치(26)에서의 처리의 상세에 대해서는 후술한다.
컨트롤러(24)는 비트 레이트 추정 장치(26)로부터 비트 레이트의 추정 결과를 수신하면 이하의 처리에서 비트 레이트가 필요한 경우는 비트 레이트 추정 장치(26)로부터의 비트레이트의 추정 결과를 이용하여 처리를 행한다.
그 후, 컨트롤러(24)에서는 도 4의 플로우차트에 도시한 바와 같이 단계 S1 내지 S17에서 도 13의 단계 S101 내지 S117에서의 경우와 각각 마찬가지인 처리가 행해진다.
여기서, 단계 S6에서의 개시점 Ain인지의 여부의 판단은 예를 들면 다음과 같이 행해진다. 즉, 여기서는 상술한 바와 같이 개시점 Ain으로 할 수 있는 것은 GOP의 선두이며 GOP는 그룹 시작 코드 GSC에서 시작된다. 또한, GOP 헤더 전에는 시퀀스 헤더 코드 SHC에서 시작되는 시퀀스 헤더가 부가되어 있는 경우가 있다. 따라서, 우선 최초로 SHC 및 GSC의 검출이 행해진다.
개시점 Ain의 지정이 예를 들면 타임 코드로 행해지고 있는 경우 타임 코드는 GOP 헤더의 TC(Time Code)에 배치되어 있기 때문에, 컨트롤러(24)는 디코더(23)로부터 TC를 수신하고 그에 기초해서 개시점 Ain인지의 여부를 판단한다. 또한, 개시점 Ain의 지정이 예를 들면 비트 스트림 A를 구성하는 선두의 화상로부터의 화상수로 행해지고 있는 경우 컨트롤러(24)는 디코더(23)로부터 화상 헤더에 배치되어 있는 화상 시작 코드 PSC를 수신하고 더욱 그 후에 배치되어 있는 임시 기준 TR(Temporal Reference)을 수신한다. TR은 GOP 단위로 리셋트되며 GOP를 구성하는 화상 중 소위 일렬 번호를 나타내기 때문에 GOP 내의 TR의 최대치를 구하면 그 GOP를 구성하는 화상수를 인식할 수 있다. 또, TR은 0에서 개시되기 때문에 TR의 최대치에 1을 가산한 값이 GOP를 구성하는 화상수가 된다. 컨트롤러(24)는 이상과 같이 해서 화상수를 카운트하고 그에 기초해서 개시점 Ain인지의 여부를 판단한다.
또, 개시점 Bin및 종료점 Aout및 Bout의 검출도 마찬가지로 행해진다. 단지, 종료점 Aout또는 Bout은 이들의 지정이 타임 코드로 되어 있는 경우에서 비트 스트림 A 또는 B 중 최후에 설정되어 있을 때에는 각각에 대응하는 타임 코드를 검출할 수 없다. 그래서, 시퀀스 종료 코드 SEC가 검출될 때까지 종료점 Aout또는 Bout에 대응하는 타임 코드와 일치하는 타임 코드를 검출할 수 없던 경우에는 최후의 GOP에서 얻어진 타임 코드 TC에 그 GOP 내의 임시 기준 TR의 최대치 +1에 대응하는 시간을 가산한 가산치가 종료점 Aout또는 Bout에 대응하는 타임 코드와 일치할 때에는 시퀀스 종료 코드 SEC의 직전의 화상을 종료점 Aout또는 Bout으로 하도록 한다.
컨트롤러(24)에서 도 4의 단계 S1 내지 S17의 처리가 행해지며 그 중의 단계 S14에서 종료점 Aout의 화상이 판독되었다고 판정된 경우, 도 5의 단계 S21로 진행되며 단계 S13에서 판독된 데이타가 비트 스트림 C에 대한 데이타로서 데이타 기억 장치(21)에 기록되며 단계 S22로 진행한다.
단계 S22에서는 컨트롤러(24)에서 종료점 Aout에서의 VBV 버퍼의 데이타 축적량 Buf(Aout)가 다음식에 따라서 산출된다.
Buf(Aout) = VD(Aout) × R/ 90000 + HL(Aout)
단지, 수학식 2에서 VD(Aout)은 종료점 Aout의 화상의 VD를 나타내고 HL(Aout)은 종료점 Aout의 화상에 대한 시퀀스 헤더 혹은 GOP 헤더의 최초의 비트(시퀀스 헤더 코드 SHC 혹은 그룹 시작 코드 GSC의 선두 비트)로부터 화상 시작 코드 PSC의 최후의 비트까지의 비트량을 나타낸다. 또한, R은 비트 레이트 추정 장치(26)로부터의 비트 레이트의 추정치를 나타낸다.
또, 종료점 Aout이 비트 스트림 A의 최후에 설정되어 있는 경우에는 VD (Aout)은 얻어지지 않기 때문에, 종료점 Aout에서의 VBV 버퍼의 데이타 축적량Buf(Aout)은 수학식 2가 아닌 다음식에 따라서 산출된다.
Buf(Aout) = Buf(Aout') - DL(Aout')
단지, 수학식 3에서 Aout'는 종료점 Aout의 화상의 1개 전의 화상을 의미하고 따라서 Buf(Aout')는 종료점 Aout의 화상 중 1개 전의 화상에서의 VBV 버퍼의 데이타 축적량에서 수학식 2에 따라서 산출된다. 또한, DL(Aout')은 화상 Aout'에 대한 시퀀스 헤더 코드 SHC, 그룹 시작 코드 GSC 또는 화상 시작 코드 PSC 중 어느 하나의 최초의 비트로부터 다음 화상 즉 여기에서는 종료점 Aout의 화상에 대한 시퀀스 헤더 코드 SHC, 그룹 시작 코드 GSC 또는 화상 시작 코드 PSC 중 어느 하나의 직전의 비트까지의 비트량을 나타내고 비트 카운터(22)의 출력에 기초해서 구한다.
종료점 Aout에서의 VBV 버퍼의 데이타 축적량 Buf(Aout)의 산출 후는 단계 S23 내지 S26에서 도 14의 단계 S124 내지 S127에서의 경우와 각각 마찬가지의 처리가 행해진다.
그리고, 단계 S26에서 개시점 Bin의 화상이 판독되었다고 판정된 경우 단계 S27로 진행하고 컨트롤러(24)는 메모리(25)에 기억되어 있는 비트 스트림 A 및 B에 대한 최신의 시퀀스 헤더끼리를 비교하고 이들이 일치하고 있는지의 여부를 판정한다. 단계 S27에서 비트 스트림 A 및 B에 대한 최신의 시퀀스 헤더끼리가 일치하지 않았다고 판정된 경우, 단계 S28로 진행하고 컨트롤러(24)는 메모리(25)에 기억된 비트 스트림 B에 대한 최신의 시퀀스 헤더를 비트 스트림 C의 시퀀스 헤더로서 데이타 기록 장치(21)에 기록하고 단계 S29로 진행한다. 또한, 단계 S27에서 비트 스트림 A 및 B에 대한 최신의 시퀀스 헤더끼리가 일치하고 있다고 판정된 경우 단계 S28을 스킵하여 단계 S29로 진행한다.
또, 단계 S27에서 비트 스트림 A 및 B에 대한 최신의 시퀀스 헤더끼리가 일치하고 있다고 판정된 경우에서도 메모리(25)에 기억된 비트 스트림 B에 대한 최신의 시퀀스 헤더를 비트 스트림 C의 시퀀스 헤더로서 데이타 기록 장치(21)에 기록하도록 해도 좋다.
단계 S29에서는 컨트롤러(24)에서 단계 S22에서의 경우와 마찬가지로 해서 개시점Bin에서의 VBV 버퍼의 데이타 축적량 Buf(Bin)이 산출되며 단계 S30으로 진행하고 종료점 Aout에서의 VBV 버퍼의 데이타 축적량 Buf(Aout)과 개시점 Bin에서의 VBV 버퍼의 데이타 축적량 Buf(Bin)이 일치하고 있는지의 여부가 판정된다.
단계 S30에서 Buf(Aout)와 Buf(Bin)이 일치하고 있다고 판정된 경우 즉 종료점 Aout에서의 VD와 개시점 Bin에서의 VD가 일치하고 있는 경우 후술하는 단계 S31 내지 S36의 비트 스트림 A와 B와의 접속점에서의 VD의 정합성을 취하기 위한 처리를 행할 필요는 없으므로 이들의 처리를 스킵하여 도 6의 단계 S41로 진행한다.
또한, 단계 S30에서 Buf(Aout)과 Buf(Bin)이 일치되어 있지 않다고 판정된 경우(상술한 바와 같이 통상은 일치하지 않는다), 단계 S31로 진행하고 이하, VD의 정합성을 취하기 위한 데이타량을 조정하는 처리가 행해진다.
즉, 단계 S31에서는 컨트롤러(24)에서 Buf(Aout)이 Buf(Bin)보다 큰지의 여부가 판정된다. 단계 S31에서 Buf(Aout)이 Buf(Bin)보다 크다고 판정된 경우, VBV 버퍼로부터 Buf(Aout) - Buf(Bin)만큼 많은 데이타량이 판독되도록 하기 위한 처리가 행해진다.
구체적으로는 이 경우 단계 S32로 진행하고 컨트롤러(24)의 제어 아래, 버퍼 축적량 조정 장치(27)에 의해서 스터핑 코드가 비트 스트림 C를 구성하는 데이타로서 데이타 기억 장치(21)에 기록되며 도 6의 단계 S41로 진행한다.
여기서, 스터핑 코드란 각각의 값이 0인 하나 또는 복수의 바이트를 포함하는 데이타를 의미한다. 스터핑 코드는 시작 코드 앞에 배치하는 것이 가능하다. MPEG에서는 스터핑 코드는 디코드 시에는 스킵되기 때문에, 복호 화상에 영향은 없지만 VBV 버퍼의 관리 상은 비트 스트림을 구성하는 데이타로서 카운트된다. 따라서, 스터핑 코드를 종료점 Aout에서의 화상의 데이타로서 기록함으로서 종료점 Aout에서의 화상의 디코드 시에 VBV 버퍼로부터 판독되는 데이타량을 증가시킬 수 있으며 이에 따라 Buf(Aout)와 Buf(Bin)을 일치시킬 수 있다.
즉, 단계 S32에서는 다음식에서 나타낸 바이트수 C만큼 스터핑 코드가 기록된다.
C = INT((Buf(Aout) - Buf(Bin)) / 8)
단지, 수학식 4에서 INT()는 괄호() 내의 값 이하의 최대의 정수를 의미한다.
한편, 단계 S31에서 Buf(Aout)가 Buf(Bin)보다 크지 않다고 판정된 경우 즉 Buf(Aout)가 Buf(Bin)보다 작은 경우 Buf(in) - Buf(Aout)만큼 데이타 축적량을 증가시키기 위한 처리가 행해진다.
즉, 이 경우 단계 S33으로 진행하고 컨트롤러(24)의 제어 아래 버퍼 축적량 조정 장치(27)에 의해서 스킵된 P 화상에 대해서의 데이타가 비트 스트림 C를 구성하는 데이타로서 종료점 Aout의 화상의 데이타 후에 기록된다.
여기서, 스킵된 P 화상(Skipped P picture)란, 이동 벡터가 0((0, 0))으로 선행하여 디코드되는 I 화상 또는 P 화상을 참조 화상으로서 디코드되는 소위, 예측 오차가 0의 화상이며 그 데이타량은 매우 작은 것이 된다. 예를 들면, 화상이 가로 352 화소 × 세로 240 화소로 구성되는 경우, 스킵된 P 화상을 MPEG 부호화하여 얻어진 데이타량은 232 비트(29 바이트)가 된다.
한편, 전술한 도 15에서 설명한 바와 같이 VBV 버퍼로부터 어느 화상의 데이타가 판독된 후 다음 화상이 판독될 때까지의 사이에는 비트 레이트/ 화상 레이트 분의 데이타가 축적된다. 따라서, 스킵된 P 화상과 같은 데이타량이 작은 화상을 삽입함으로서, 일정한 비트 레이트로 데이타가 축적되는 VBV 버퍼의 데이타 축적량을 크게 증가시킬 수 있으며 이에 따라, 그 스킵된 P 화상을 추가할 때의 VBV 버퍼의 데이타 축적량 Buf(P)를 Buf(Bin) 이상으로 하는 것이 가능해진다.
스킵된 P 화상의 삽입(기록) 후는 단계 S34로 진행하고 컨트롤러(24)에서 그 스킵된 P 화상의 삽입 후의 VBV 버퍼의 데이타 축적량 Buf(P)가 산출되며 단계 S35로 진행한다. 또, 스킵된 P 화상의 삽입 전의 데이타 축적량을 Buf(P-1)으로 할 때, 그 삽입 후의 데이타 축적량 Buf(P)는 다음식에 따라서 산출된다.
Buf(P) = Buf(P-1) + R/ pr - Dp
단지, 수학식 5에서 R은 비트 레이트 추정 장치(26)로부터 얻어진 비트 레이트의 추정치를 pr은 시퀀스 헤더에 배치되어 있는 화상 레이트 PR로부터 구해진 화상 레이트를 Dp는 스킵된 P 화상의 데이타량을 각각 의미한다.
단계 S35에서는 스킵된 P 화상의 삽입 후의 VBV 버퍼의 데이타 축적량Buf(P)가 Buf(Bin) 이상이 된지의 여부가 컨트롤러(24)에 의해서 판정된다. 단계 S35에서 Buf(P)가 Buf(Bin) 이상으로 되어 있지 않다고 판정된 경우, 단계 S33으로 되돌아가고 더욱 스킵된 P 화상이 삽입되며 VBV 버퍼의 데이타 축적량이 더욱 증가된다.
또한, 단계 S35에서 Buf(P)가 Buf(Bin) 이상이 되었다고 판정된 경우 단계 S36으로 진행하고 컨트롤러(24)의 제어 아래, 버퍼 축적량 조정 장치(27)에 의해서 단계 S32에서의 경우와 마찬가지로 최후에 삽입되어 스킵된 P 화상에 대해 그 데이타 축적량이 Buf(Bin)과 일치하도록 스터핑 코드가 기록되며 도 6의 단계 S41로 진행한다.
또, 단계 S36에서 스터핑 코드가 기록되는 것은 Buf(P)가 Buf(Bin)보다 커진 경우에 이들이 일치하도록 되어 있는 경우는 단계 S36의 처리는 스킵된다.
도 6의 단계 S41, 그 위에 그 후에 계속되는 단계 S42 내지 S45에서는 도 14의 단계 S133 내지 S137에서의 경우와 각각 마찬가지의 처리가 행해지며 편집 처리를 종료한다.
이상과 같이 MPEG 부호화의 결과 얻어진 비트 스트림 A 및 B (제1 및 제2 비트 스트림) 중 적어도 일부씩을 접속한 비트 스트림(제3 비트 스트림)을 편집에 의해 구성하는 경우에서 비트 스트림 A의 종료점 Aout(제1 접속점) 및 비트 스트림 B의 개시점 Bin(제2 접속점)에서의 VBV 버퍼의 데이타 축적량을 VD에 기초해서 산출하고 그 데이타 축적량끼리의 차에 기초해서 비트 스트림 C에서의 비트 스트림 A 및 B (A' 및 B')의 접속점에 상당하는 부분의 데이타량을 조정하도록 했으므로 그 접속점에서의 VD의 정합을 비트 스트림 B의 VD를 재기록하는 일 없이 취할 수 있다. 그 결과, 비트 스트림 A 및 B의 편집을 고속으로 행할 수 있다. 또한, 비트 스트림 A 및 B를 일단 MPEG 복호화할 필요도 없어진다.
또, 전술한 경우에서는 Buf(Aout)이 Buf(Bin)보다 작을 때에 단계 S33 내지 S36에서 스킵된 P 화상을 삽입함과 동시에 스터핑 코드를 기록하여 VBV 버퍼의 데이타 축적량을 Buf(Bin) - Buf(Aout)만큼 증가시키도록 했지만 이것은 예를 들면 다음과 같이 해서 행하는 것도 가능하다.
즉, VBV 버퍼의 데이타 축적량을 Buf(Bin) - Buf(Aout)만큼 증가시키기 위해서는 종료점 Aout의 화상의 디코드 시에 VBV 버퍼로부터 판독되는 데이타량을 Buf(Bin) - Buf(Aout)만큼 적게 하면 좋다. 따라서, 이것은 종료점 Aout의 화상의 데이타로서 스터핑 코드가 존재하는 경우에는 그 스터핑을 삭제함으로 행할 수 있다. 단지, 이 방법에 의해 데이타 축적량의 조정을 행하도록 종료점 Aout의 화상의 데이타로서 존재하는 스터핑 코드의 데이타량이 Buf(Bin) - Buf(Aout) 이상으로 되어 있을 필요가 있다.
또한, 종료점 Aout후에 스킵된 P 화상을 삽입하면 디코드 시에서 그 종료점 Aout의 화상과 동일한 화상이 연속하게 된다. 이러한 동일한 화상이 어느 한 장면의 도면 중에 존재하면 화상의 움직임이 어색하게 되며 시청자에게 위화감을 느끼게 하는 경우도 있지만, 여기서는 그와 같은 동일한 화상이 연속하는 점이 비트 스트림 A 및 B의 접속점인 소위 편집점이기 때문에 화상의 움직임이 어색함은 눈에 띄지 않고 시청자에게 그 만큼 위화감을 느끼게 하는 일은 없다.
다음에, 도 5의 단계 S33에서 삽입되는 스킵된 P 화상의 신택스를 이하에 도시한다. 또, 여기서는 화상이 가로 352 화소 × 세로 240 화소로 구성되게 한다.
picture () {
picture_start_code 0x0000010
temporal_reference 10 bit unsigned int
picture_coding_type 010
vbv_delay (계산에 의해 구한다)
full_pel_forward_vector 0
forward_f_code 001
extra_bit_picture 0
byte_alignment 000000
slice () {
slice_start_code 0x00000101
quantizer_scale 11111
extra_bit_slice 0
macroblock () {
macroblock_address_increment 1
macroblock_type 001
motion_horizontal_forward_code 1
motion_vertical_forward_code 1
macroblock_escape 0000 0001 000
macroblock_escape 0000 0001 000
macroblock_escape 0000 0001 000
macroblock_escape 0000 0001 000
macroblock_escape 0000 0001 000
macroblock_escape 0000 0001 000
macroblock_escape 0000 0001 000
macroblock_escape 0000 0001 000
macroblock_escape 0000 0001 000
macroblock_address_increment 0000 0011 001
macroblock_type 001
motion_horizontal_forward_code 1
motion_vertical_forward_code 1
}
}
byte alinment 0
}
또, 임시 기준 temporal_reference는 종료점 Aout의 화상이 I 화상 또는 P 화상인 경우는 그 I 화상 또는 P 화상의 임시 기준 temporal_reference에 1을 더한 값에 또한 종료점 Aout의 화상이 B 화상인 경우는 그 B 화상의 임시 기준 temporal_reference에 2를 더한 값에 각각 한다. 즉, 예를 들면 도 7a에 도시한 바와 같이, 종료점 Aout의 화상이 P 화상로 그 temporal_reference가 19인 경우, 스킵된 p 화상의 temporal_reference는 19에 1을 더한 20으로 한다. 또한, 예를 들면 도 7b에 도시한 바와 같이, 종료점 Aout의 화상이 B 화상로 그 temporal_reference가 17인 경우 스킵된 p 화상의 temporal_reference는 17에 2를 더한 19로 한다.
또한, VBV 딜레이(VBV delay)는 다음식에 의해 구한다.
VD [N] = INT(VD [N-1] + 90000 × (1/ pr - BC [N-1, N]/R)
단지, 수학식 6에서 VD [N]은 제N 화상의 VBV 딜레이를 의미하고 BC [N-1, N]은 도 8에 도시한 바와 같이, 제N-1 화상의 데이타량을 의미한다. 또, BC [N-1, N]은 예를 들면 제N-1 화상의 화상 시작 코드 PSC 다음 비트로부터 제N 화상의 시작 코드 PSC의 최후의 비트까지의 비트량을 비트 카운터(22)에서 카운트함으로써 얻는 것으로 한다. 또한, 각 헤더에 배치되어 있는 시작 코드(start-code) 앞에 스터핑 코드가 존재하는 경우가 있지만, 이것도 헤더의 길이에 포함시키는 것으로 한다. 더욱, pr은 후술한 바와 같이 해서 구해진 화상 레이트를 나타낸다.
또한, 전술한 경우에서는 macroblock_escape가 9회 반복되고 있지만 이것은 화상이 가로 352 화소 × 세로 240 화소로 구성되어 있는 경우에서 일반적으로는 macroblock_escape는 다음식에서 나타낸 횟수 MEC만큼 반복된다.
MEC = INT((화상의 거시적 블럭수-1)/ 33)
또한, 전술의 경우로는 macroblock_address_increment가 0000 0011 001로 되어 있지만 이것도 화상이 가로 352 화소 × 세로 240 화소로 구성되어 있는 경우에서 일반적으로는 macroblock_address_increment는 화상의 거시적 블럭수를 33으로 뺄샘할 때의 나머지를 ISO-11172-2로 규정되어 있는 Table B. 1에 따라서 변환된 값이 된다.
다음에, 도 2의 비트 레이트 추정 장치(26)에서 행해진 시퀀스 헤더에 배치되어 있는 비트 레이트 BR로부터 정밀도가 좋은 비트 레이트를 추정하는 처리에 대해 도 9의 플로우차트를 참조하여 설명한다.
여기서, 이 2점 P1및 P2의 설정 후에 비트 카운터(22) 및 컨트롤러(24)로부터 비트 레이트 추정 장치(26)에 대해 소정의 정보가 공급된다.
즉, 비트 카운터(22)로부터는 예를 들면 도 10에 도시한 바와 같이 점 P1에서의 화상 시작 코드 PSC의 다음 비트로부터 점 P2에서의 화상 시작 코드 PSC의 최후의 비트까지의 데이타량 BC [P1, P2]가 공급된다. 또, 도 10에서는 시퀀스 헤더 SH나 GOP 헤더 GH가 있는 위치에 점 P1및 P2가 설정되어 있지만 점 P1및 P2는 시퀀스 헤더 SH 또는 시퀀스 헤더 SH 및 GOP 헤더 GH가 없는 위치라도 설정 가능하다.
또한, 컨트롤러(24)로부터는 디코더(23)에서 디코드된 정보 중 시퀀스 헤더에 배치되어 있는 화상 레이트 PR 및 비트 레이트 BR 화상 헤더에 배치되어 있는 점 P1및 P2에서의 VBV 딜레이 VD [P1] 및 VD [P2]가 공급된다.
또, 비트레이트 추정 장치(26)에서는 화상 레이트 PR 및 비트 레이트 BR은 다음과 같이 변환된다. 즉, 화상레이트 PR은 MPEG1의 규격에 따라서 그 값이 1 내지 8일 때 23. 976㎐, 24. 000㎐, 25. 000㎐, 29, 970㎐, 30. 000㎐, 50. 000㎐, 59. 940㎐, 60. 000㎐로 각각 변환되며 화상 레이트 pr로 된다. 또한, 비트 레이트 BR은 그것을 400배한 비트 레이트 br로 변환된다. 여기서, BR은 상술한 바와 같이 실제의 비트 레이트의 400bps 이하의 값을 반올림하고 400으로 뺄샘한 값이기 때문에 그 사실의 비트 레이트는 br-399 내지 br의 범위의 값으로 된다.
비트 레이트 추정 장치(26)는 단계 S51의 처리 후 필요한 정보를 비트 카운터(22) 및 컨트롤러(24)로부터 수신하면 단계 S52로 진행하고 점 P1과 P2와의 사이에 존재하는 화상수 n의 후보가 산출된다.
여기서, 점 P1과 P2와의 사이에 존재하는 화상수 n은 다음식에 따라서 구할 수 있다.
n = ((VD [P2] - VD [P1] + E2 - E1) / 90000 + BC [P1, P2]/ br) × pr
단지, 수학식 8에서 E2 또는 E1은 VD [P2] 또는 VD [P1]의 반올림 오차를 각각 나타내고 모두 0 이상 1 미만의 값이다. 또한, pr은 화상 레이트 PR로부터 상술한 바와 같이 해서 구해진 화상 레이트를 나타낸다. 또, 정수가 아닌 pr은 다음과 같이 나타낸다. 즉, PR이 1, 4 또는 7일 때 화상 레이트 pr은 24000/ 1001, 30000/ 1001 또는 60000/ 1001이 된다.
VD [P2] 또는 VD [P1]이 각각 반올림 오차 E2 또는 E1을 갖으며 또한 비트 레이트 br도 400bps 미만의 반올림 오차를 갖기 때문에, 화상수 n은 어느 범위 내의 값으로서 얻어진다. 단지, n은 정수로 해야 하므로, 어느 정도 수의 후보에 한정된다. 단계 S52에서는 그와 같은 화상수 n의 후보를 구할 수 있다.
그 후, 비트 레이트 추정 장치(26)에서는 단계 S53에 있어서 단계 S52에서 구해진 화상수 n의 후보를 이용하여 비트 레이트 R(비트레이트의 추정치의 후보)이 산출된다.
여기서, 비트 레이트 R의 후보는 수학식 8에서의 br을 R로 대체하여 변형한 다음식에 따라서 구할 수 있다.
R = BC [P1, P2]/ (n/ pr - (dVD [P2, P1] + E2-1)/ 90000)
단지, 수학식 9에서 dVD [P2, P1]은 VD [P2] - VD [P1]을 E2-1은 E2 - E1을 각각 나타낸다.
상술한 바와 같이, 화상수 n에는 복수의 후보가 존재하기 때문에, 비트 레이트 R에도 몇개의 후보가 생긴다. 또한, dVD [P2, P1]은 반올림 오차를 갖기 때문에, 비트 레이트 R의 후보수는 더욱 확대된다. 단지, 비트 레이트 R은 BR을 400배한 값 br-399로부터 br까지의 범위의 값이기 때문에, 어느 정도 수의 후보에 한정된다. 단계 S52에서는 그와 같은 비트 레이트 R의 후보를 구할 수 있다. 또, 이 한정에 의해 화상수 n의 후보는 더욱 한정된다.
이상과 같이 해서 화상수 n의 후보 및 비트레이트 R의 후보가 구해진 후 단계 S54로 진행하고 이들의 후보 가운데에서 확실할 것같은 화상수 n과 비트 레이트 R과의 조합이 구해진다.
즉, 단계 S54에서는 우선 최초로 점 P1및 P2이외의 제3 점 P3가 비트 스트림 상에 설정된다. 이 경우, 점 P3에서의 VBV 딜레이 VD [P3]는 다음식에 따라서 구할 수 있다.
VD [P3] = INT(VD [P1] + E1 + 90000 × (n/ pr - BC [P1, P3] / R))
단지, 수학식 10에서 BC [P1, P3]는 도 10에서 설명한 경우와 마찬가지로 해서 구해진 점 P1과 P3와의 사이의 데이타량을 나타낸다.
단계 S54에서는 수학식 10에 단계 S52 또는 S53에서 각각 구해진 화상수 n의 후보 또는 비트 레이트 R의 후보를 대입함과 동시에 실제의 비트 스트림에 배치되어 있는 점 P3에서의 VBV 딜레이 VD [P3]를 대입하고 그 우측변과 좌측변과의 차를 보다 0에 가깝게 하는 화상수 n 및 비트 레이트 R의 조합이 구해진다.
그리고, 단계 S55로 진행하고 단계 S54에서 구해진 비트 레이트 R로부터 그 비트 레이트 R과 참 비트 레이트와의 오차를 소정의 범위 내로 받아들여진 화상수 N을 구한다.
즉, 지금 수학식 8에 대해 비트 레이트 br을 참 비트 레이트 r로 대체하여 변형하면 다음식을 얻을 수 있다.
n = (dVD [P2, P1] /90000 + E2-1/ 90000 + BC[P1, P2]/ r) × pr
dVD [P2, P1] = 0으로 가정하면 수학식 11은 다음과 같아진다.
n = (E2-1/ 90000 + BC [P1, P2]/ r) × pr
한편, 데이타량 BC [P1, P2]를 비트 레이트의 추정치 R로 나타내면 다음과 같아진다.
BC[P1, P2] = n/ pr × R
수학식 13을 수학식 12에 대입하면 다음식을 얻을 수 있다.
n = (E2-1/ 90000 + n/ pr × R/r)×pr
= r × E2-1/ (r - R) × 90000 × pr
|E2-1|는 1미만의 값이기 때문에 n은 최대의 경우에 다음식에서 도시된 바와 같아진다.
n = r/ (r - R) × 90000 × pr
예를 들면, NTSC 방식의 화상인 경우 수학식 15는 다음과 같아진다.
n = r/ ((r - R) × 3003.0)
이 경우, 비트레이트의 추정치 R의 오차 즉, r-R이 예를 들면 1bps 이하가 되기 위한 화상수 n은 r/ 3003으로 된다.
이상은 dVD [P2, P1] = 0으로 가정한 경우이며 예를 들면, VD [P2] VD [P1]의 경우 등과 같이 VD [P2]와 VD [P1]이 같지 않은 경우는 점 P2및 P1은 dVD [P2, P1]/ 90000 × pr 이상의 화상수에 상당하는 간격을 취해 설정할 필요가 있다.
지금, 오차를 갖는 비트 레이트를 r'로 나타내고 그 비트 레이트 r'의 오차가 종료점 Aout이나 개시점 Bin에서의 VBV 딜레이 VD[Aout]이나 VD[Bin]의 산출에 줄 영향을 생각해 보면, 수학식 10에서 다음식이 얻어진다.
EVBV= 90000 × BC[P1, P2] × (r' - r)/ r × r'
단지, 수학식 17에서 EVBV는 VBV 딜레이의 오차를 나타낸다.
간단화를 위해 BC[P1, P2] = r × t로 나타내면(단지, t는 점 P1과 P2와의 사이의 간격에 상당하는 시간을 나타낸다), 수학식 17은 다음과 같이 변형할 수 있다.
t = 1/ (r' - r) × EVBV/90000 × r'
EVBV는 정수로 반올림되기 때문에 그 최소치는 1이고 이것을 수학식 18에 대입하면, 다음과 같아진다.
t = 1/ (r' - r) × r' / 90000
따라서, 비트 레이트의 오차 즉, r'-r이 예를 들면 1bps라고 하면 VBV 딜레이의 산출에 영향이 생기는 것은 시간 t가 다음식에서 나타내는 시간보다도 짧은 경우가 되게 된다.
t = r' / 90000
따라서, 예를 들면 비디오 CD(Compact Disc)의 경우, 그 비트 레이트는 1. 15Mbps 정도지만 이 경우에 비트 레이트의 오차를 1bps로 하기 위해서는 점 P1과 P2와의 간격을 약 12.8초 이상으로 할 필요가 있다. 또한, 이 경우에 예를 들면 비트레이트의 오차를 2bps로 하기 위해서는 점 P1과 P2와의 간격을 전술의 반인 약 6. 4초 이상으로 할 필요가 있다.
따라서, 그와 같은 간격 이상 취해서 점 P1과 P2를 설정하면 단계 S54에서 구할 수 있는 비트 레이트의 추정치 R의 오차는 그 영향을 무시할 수 있을 정도로 작아진다.
또, 점 P1과 P1와의 간격 및 비트 레이트의 오차만을 고려하면 전술한 그대로지만, 단계 S54에서 이용하는 수학식 10에서는 점 P1에서의 VBV 딜레이 VD[P1]의 반올림 오차가 있고 이 오차의 영향 쪽이 크다.
단계 S55에서는 이상과 같이 해서 단계 S54에서 구해진 비트 레이트 R의 오차를 무시할 수 있도록 시간에 상당하는 화상수 N을 구한다.
그리고, 단계 S56으로 진행하고 단계 S54에서 구해진 점 P1과 P2와의 사이의 화상수 n이 단계 S55에서 구해진 화상수 N 이상인지의 여부가 판정된다. 단계 S56에서 화상수 n이 N 이상이 아니라고 판정된 경우 단계 S57로 진행하고 점 P1과 P2와의 사이의 화상수가 N 이상이 되도록 그 점 P1및 P2가 재설정된다. 그리고, 단계 S52로 진행하고 전술한 처리가 반복된다.
한편, 단계 S56에서 화상수 n이 N 이상이라고 판정된 경우 단계 S55에서 얻어진 비트 레이트의 추정치 R이 컨트롤러(24)로 출력되며 처리를 종료한다.
컨트롤러(24)에서는 이와 같이 해서 얻어진 비트 레이트의 추정치 R을 이용하여 상술한 처리가 행해진다.
이상과 같이 비트 레이트를 정밀도 좋게 추정하도록 했으므로 컨트롤러(24)에서의 처리 정밀도를 향상시킬 수 있다.
또, 비트 레이트 추정 장치(26)에서는 상술된 바와 같이 해서 비트 스트림 A 및 B의 양 쪽에 대해 각각의 비트 레이트가 확실할 것같은 후보(추정치)를 구하고 컨트롤러(24)에 공급된다. 그리고, 컨트롤러(24)에서는 비트 스트림 A 및 B의 양 쪽의 비트 레이트의 후보의 예를 들면 중복 부분의 평균치 등이 상술한 처리를 행하는데 이용된다.
단지, 비트 스트림 A 및 B의 양 쪽의 비트 레이트의 후보에 중복 부분이 없으며 현저하게 차이가 나는 경우에는 이들의 부호화 시에서의 비트 레이트가 다르다고 생각된다. 이 경우, MPEG1의 규격 상 편집을 행하는 것은 할 수 없기 때문에 편집 처리는 중지된다.
이상, 본 발명을 MPEG1의 규격에 준거하여 부호화를 행함으로써 얻어진 비트 스트림을 편집하는 편집 장치에 적용한 경우에 대해 설명했지만 본 발명은 MPEG1 부호화 외, MPEG2 부호화나 그 외의 수신측에 가상 버퍼를 상정하여 부호화를 행함으로써 얻어진 비트 스트림을 편집하는 경우에 적용 가능하다.
또한, 본 발명은 화상 외에 예를 들면 음성 등을 포함한 비트 스트림의 편집을 행하는 경우에도 적용 가능하다.
제1항 기재의 화상 편집 장치 및 제9항 기재의 화상 편집 방법에 따르면 제1 비트 스트림의 제2 비트 스트림과 접속하는 제1 접속점 및 제2 비트 스트림의 제1 비트 스트림과 접속하는 제2 접속점에서의 가상 버퍼의 데이타 축적량이 축적량 정보에 기초해서 산출되며 그 제1 및 제2 접속점에서의 데이타 축적량끼리의 차에 기초해서 제3 비트 스트림에서의 제1과 제2 비트 스트림의 접속점에 상당하는 부분의 데이타량이 조정된다. 따라서, 압축 부호화된 비트 스트림의 편집을 그 상태에서 고속으로 행하는 것이 가능해진다.

Claims (9)

  1. 제1 및 제2 비트 스트림의 편집 작업을 통해 화상의 압축 부호화에 의해 얻어진 제1 비트 스트림의 적어도 일부와 화상의 압축 부호화에 의해 얻어진 제2 비트 스트림의 적어도 일부를 접속함에 의해 제3 비트 스트림을 구성하는 화상 편집 장치에 있어서,
    상기 압축 부호화가 수신측에 상정된 가상 버퍼의 데이타 축적량을 고려하여 행해지며 상기 가상 버퍼내에 축적될 상기 데이타량에 관한 축적량 정보가 상기 제1 및 제2 비트 스트림에 포함되는 경우에 있어서,
    상기 축적량 정보를 기초해서 상기 제1 비트 스트림의 상기 제2 비트 스트림과 접속하는 제1 접속점에서의 상기 가상 버퍼의 데이타 축적량과 상기 제2 비트 스트림의 상기 제1 비트 스트림과 접속하는 제2 접속점에서의 상기 가상 버퍼의 데이타 축적량을 산출하는 데이타 축적량 산출 수단과,
    상기 데이타 축적량 산출 수단에 의해 산출된 상기 제1 및 제2 접속점에서의 상기 가상 버퍼내의 상기 데이타 축적량 사이의 차에 기초해서 상기 제3 비트 스트림에서의 상기 제1과 제2 비트 스트림의 접속점에 상당하는 부분의 데이타량을 조정하는 데이타량 조정 수단
    을 구비하는 것을 특징으로 하는 화상 편집 장치.
  2. 제1항에 있어서, 상기 제1 및 제2 비트 스트림은 적어도 화상을 MPEG (Moving Picture Experts Group)의 규격에 준거하여 압축 부호화한 것으로,
    상기 축적량 정보는 VBV(Video Buffering Verifier) 버퍼의 데이타 축적량에 상당하며, 화상 헤더에 포함되는 VD(VBV Delay)인 것
    을 특징으로 하는 화상 편집 장치.
  3. 제2항에 있어서, 상기 데이타량 조정 수단은 상기 제1 접속점에서의 VBV 버퍼의 데이타 축적량이 제2 접속점에서의 VBV 버퍼의 데이타 축적량보다 많은 경우, 상기 제1 접속점에서의 화상의 데이타에 스터핑(Stuffing) 코드를 삽입하는 것
    을 특징으로 하는 화상 편집 장치.
  4. 제3항에 있어서, 상기 데이타량 조정 수단은 상기 제1과 제2 접속점에서의 VBV 버퍼의 데이타 축적량이 같아지도록 상기 스터핑 코드를 삽입하는 것
    을 특징으로 하는 화상 편집 장치.
  5. 제2항에 있어서, 상기 데이타량 조정 수단은 상기 제1 접속점에서의 VBV 버퍼의 데이타 축적량이 제2 접속점에서의 VBV 버퍼의 데이타 축적량보다 적은 경우, 상기 제1 접속점에서의 화상의 데이타의 다음 위치에 스킵된 P 화상(Skipped P - picture)에 대한 데이타를 삽입하는 것
    을 특징으로 하는 화상 편집 장치.
  6. 제5항에 있어서, 상기 데이타량 조정 수단은 상기 스킵된 P 화상을 삽입한 후에 상기 제1 접속점에서의 VBV 버퍼의 상기 데이타 축적량이 VBV 버퍼의 제2 접속점에서의 데이타 축적량 이상이 되도록 상기 스킵된 P 화상을 삽입하는 것
    을 특징으로 하는 화상 편집 장치.
  7. 제6항에 있어서, 상기 스킵된 P 화상을 삽입한 후에 상기 제1 접속점에서의 VBV 버퍼의 상기 데이타 축적량이 제2 접속점에서의 VBV 버퍼의 데이타 축적량보다 많아진 경우, 제1 및 제2 접속점에서의 VBV 버퍼의 데이타 축적량이 서로 같아지도록 스터핑 코드를 삽입하는 것
    을 특징으로 하는 화상 편집 장치.
  8. 제2항에 있어서, 상기 제1 및 제2 비트 스트림의 비트 레이트를 추정하는 비트 레이트 추정 수단(bit rate inferring means)을 더욱 구비하고,
    상기 데이타 축적량 산출 수단은 상기 비트 레이트 추정 수단에 의해 추정된 상기 비트 레이트 및 상기 축적량 정보(상기 VD)에 기초해서 상기 VBV 버퍼의 데이타 축적량을 산출하는 것
    을 특징으로 하는 화상 편집 장치.
  9. 제1 및 제2 비트 스트림의 편집 작업을 통해 화상의 압축 부호화에 의해 얻어진 제1 비트 스트림의 적어도 일부와 화상의 압축 부호화에 의해 얻어진 제2 비트 스트림의 적어도 일부를 접속함에 의해 제3 비트 스트림을 구성하는 화상 편집 방법에 있어서,
    상기 압축 부호화가 수신측에 상정된 가상 버퍼의 데이타 축적량을 고려하여 행해지며 상기 가상 버퍼내에 축적될 상기 데이타량에 관한 축적량 정보가 상기 제1 및 제2 비트 스트림에 포함되는 경우에 있어서,
    상기 축적량 정보를 기초해서 상기 제1 비트 스트림의 상기 제2 비트 스트림과 접속하는 제1 접속점에서의 상기 가상 버퍼의 데이타 축적량과 상기 제2 비트 스트림의 상기 제1 비트 스트림과 접속하는 제2 접속점에서의 상기 가상 버퍼의 데이타 축적량을 산출하는 단계와,
    상기 제1 및 제2 접속점에서의 상기 가상 버퍼내의 상기 데이타 축적량 사이의 차에 기초해서 상기 제3 비트 스트림에서의 상기 제1과 제2 비트 스트림의 접속점에 상당하는 부분의 데이타량을 조정하는 단계
    을 포함하는 것을 특징으로 하는 화상 편집 방법.
KR1019980011980A 1997-04-04 1998-04-04 화상 편집 장치 및 화상 편집 방법 KR100563183B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP9086251A JPH10285529A (ja) 1997-04-04 1997-04-04 画像編集装置および画像編集方法
JP97-086251 1997-04-04

Publications (2)

Publication Number Publication Date
KR19980081098A true KR19980081098A (ko) 1998-11-25
KR100563183B1 KR100563183B1 (ko) 2006-07-25

Family

ID=13881610

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980011980A KR100563183B1 (ko) 1997-04-04 1998-04-04 화상 편집 장치 및 화상 편집 방법

Country Status (4)

Country Link
US (1) US6137946A (ko)
JP (1) JPH10285529A (ko)
KR (1) KR100563183B1 (ko)
CN (1) CN1192609C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100378795B1 (ko) * 2001-04-02 2003-04-03 엘지전자 주식회사 동영상에서 b픽쳐의 신축적인 다이렉트 모드 코딩 방법

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6400886B1 (en) * 1996-11-15 2002-06-04 Futuretel, Inc. Method and apparatus for stitching edited video segments
JPH11261958A (ja) * 1998-03-09 1999-09-24 Sony Corp 映像編集装置及び映像編集方法
JP3918332B2 (ja) * 1998-12-04 2007-05-23 ソニー株式会社 多重化装置、多重化方法及び記録媒体
GB9908809D0 (en) * 1999-04-16 1999-06-09 Sony Uk Ltd Signal processor
EP1098526A3 (en) 1999-11-02 2004-09-15 Matsushita Electric Industrial Co., Ltd. Video editing apparatus and method
EP2204991A1 (en) * 2001-06-15 2010-07-07 Sharp Kabushiki Kaisha Data recording method, data editing method and data decoding method and apparatus and recording medium thereon
EP2403263A3 (en) 2002-04-26 2012-01-25 Sony Corporation Encoding device and method, decoding device and method, editing device and method, recoding medium, and program
US20030206596A1 (en) * 2002-05-03 2003-11-06 David Carver Multimedia content assembly
JP4676331B2 (ja) * 2003-02-04 2011-04-27 パナソニック株式会社 コード変換方法及びその装置
CN1713727B (zh) * 2004-06-14 2010-11-10 松下电器产业株式会社 编辑资料流的方法及装置
US8437392B2 (en) * 2005-04-15 2013-05-07 Apple Inc. Selective reencoding for GOP conformity
US20060233237A1 (en) * 2005-04-15 2006-10-19 Apple Computer, Inc. Single pass constrained constant bit-rate encoding
KR100663380B1 (ko) * 2005-12-26 2007-01-02 엠텍비젼 주식회사 촬상 장치 및 영상 신호 생성 방법
US20080118229A1 (en) * 2006-11-20 2008-05-22 Broadcom Corporation ITERATIVE CODE SYSTEM FOR STREAMING HDDs
US20090262125A1 (en) * 2008-04-18 2009-10-22 Vasanth Swaminathan Rendering A Multiple Viewpoint Image Into A Single Frame Buffer Using Off-Screen Rendering Surfaces
JP5428614B2 (ja) * 2009-07-23 2014-02-26 ソニー株式会社 編集装置、編集方法、およびプログラム
CN107248141B (zh) * 2017-04-28 2021-01-05 努比亚技术有限公司 一种图像编辑方法和装置以及计算机可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100279582B1 (ko) * 1993-08-06 2001-02-01 구자홍 디지탈 영상압축신호의 편집장치
US5706386A (en) * 1994-05-24 1998-01-06 Sony Corporation Image information recording method and apparatus, image information reproducing method and apparatus and editing method and system
US5534944A (en) * 1994-07-15 1996-07-09 Matsushita Electric Corporation Of America Method of splicing MPEG encoded video
KR100192515B1 (ko) * 1995-08-25 1999-06-15 구자홍 영상압축 데이타 편집장치
JPH0993136A (ja) * 1995-09-26 1997-04-04 Matsushita Electric Ind Co Ltd 圧縮データ編集方法及びその装置
US5917830A (en) * 1996-10-18 1999-06-29 General Instrument Corporation Splicing compressed packetized digital video streams

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100378795B1 (ko) * 2001-04-02 2003-04-03 엘지전자 주식회사 동영상에서 b픽쳐의 신축적인 다이렉트 모드 코딩 방법

Also Published As

Publication number Publication date
CN1195949A (zh) 1998-10-14
KR100563183B1 (ko) 2006-07-25
CN1192609C (zh) 2005-03-09
US6137946A (en) 2000-10-24
JPH10285529A (ja) 1998-10-23

Similar Documents

Publication Publication Date Title
KR100563183B1 (ko) 화상 편집 장치 및 화상 편집 방법
EP0923243B1 (en) Editing device, editing method, splicing device, splicing method, encoding device, and encoding method
US6724977B1 (en) Compressed video editor with transition buffer matcher
KR100538135B1 (ko) 정보 스트림 프레임 동기 방법 및 장치
EP0755157B1 (en) Method of splicing MPEG encoded video
US8817889B2 (en) Method, apparatus and system for use in multimedia signal encoding
EP0692911B1 (en) Method of splicing MPEG encoded video
EP1624703B1 (en) Image processing device, image processing method, information processing device, information processing method, information recording device, information recording method, information reproduction device, information reproduction method and program
US7835436B2 (en) Video-encoding device and video-encoding control method
US8295347B2 (en) Information processing apparatus and information processing method, recording medium, and program
US7729425B2 (en) Image processing apparatus and method, program, and recording medium
JP2894958B2 (ja) 画像復号化方式および装置
JPH10304311A (ja) 映像符号化装置及び映像復号化装置
JPH08251582A (ja) 符号化データ編集装置
JP3218994B2 (ja) 画像符号化方法および装置
JP2000197010A (ja) 画像デ―タ編集装置
KR100813763B1 (ko) 화상 신호 부호화 방법 및 화상 신호 부호화 장치
US6157770A (en) Moving picture data reproduction controlling system and method for reproducing moving picture data having block elements and minimum elements each with headers
EP0871337A2 (en) Method and apparatus for modifying a digital data stream
JP2007235974A (ja) 画像編集装置および画像編集方法
EP1517562A2 (en) Video coding including auxiliary information for performing and tracking successive processing steps like editing, splicing, fingerprinting
JP3307367B2 (ja) 可変転送レート符号化装置
JP2002218458A (ja) 映像再生装置
WO2005122585A1 (en) Method and apparatus for editing data streams
JP2004312087A (ja) 動画像符号化装置

Legal Events

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

Payment date: 20090310

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee