KR100834322B1 - 이미지 인코딩 장치, 화상 인코딩 방법 및 이미지 편집장치 - Google Patents

이미지 인코딩 장치, 화상 인코딩 방법 및 이미지 편집장치 Download PDF

Info

Publication number
KR100834322B1
KR100834322B1 KR20060097323A KR20060097323A KR100834322B1 KR 100834322 B1 KR100834322 B1 KR 100834322B1 KR 20060097323 A KR20060097323 A KR 20060097323A KR 20060097323 A KR20060097323 A KR 20060097323A KR 100834322 B1 KR100834322 B1 KR 100834322B1
Authority
KR
South Korea
Prior art keywords
picture
image
encoding
stream
gop
Prior art date
Application number
KR20060097323A
Other languages
English (en)
Other versions
KR20070037695A (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 KR20070037695A publication Critical patent/KR20070037695A/ko
Application granted granted Critical
Publication of KR100834322B1 publication Critical patent/KR100834322B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • 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
    • 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/322Indexing; 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 used signal is digitally coded
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234354Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering signal-to-noise ratio parameters, e.g. requantization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/781Television signal recording using magnetic recording on disks or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal

Landscapes

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

Abstract

이미지 인코딩 장치는, 압축되지 않은 비디오 데이터로부터 인코딩된 코딩된 스트림을 2 개의 편집 지점 (A 및 B) 이 연속하여 배열되도록 편집하기 위한 편집기, 편집된 스트림을 디코딩 하기 위한 디코딩 프로세서, 및 편집된 디코딩 스트림을 인코딩하기 위한 인코딩 프로세서를 포함한다. 인코딩 프로세서는 편집된 디코딩된 데이터를 수신하고, 지점 A 와 B 사이에서 지점 A 바로 전에 디코딩된 이미지 (J) 로부터 인코딩된 삽입 화상을 삽입하며, 그에 의해 원본 코딩된 스트림과 편집된 코딩 스트림 간에 동일한 프레임에서 화상 유형이 동일하도록 화상의 위상을 정렬함으로써 편집된 코딩 스트림을 생성한다.
Figure R1020060097323
인코딩, 디코딩, 편집, 삽입, 복잡도, 코드 길이

Description

이미지 인코딩 장치, 화상 인코딩 방법 및 이미지 편집 장치{IMAGE ENCODING APPARATUS, PICTURE ENCODING METHOD AND IMAGE EDITING APPARATUS}
도 1 은 본 발명의 일 실시형태에 다른 이미지 인코딩 장치를 도시하는 블록도.
도 2 는 본 발명의 일 실시형태에 따른 이미지 인코딩 장치의 인코딩 프로세서의 세부사항을 도시한 블록도.
도 3 은 본 발명의 일 실시형태에 따른 이미지 인코딩 장치의 디코딩 프로세서의 세부사항을 도시한 블록도.
도 4a 는 원본 스트림을 도시한 도면.
도 4b 는 원본 스트림으로부터 추출된 편집 지점을 포함하는 GOP 를 도시하는 도면.
도 4c 는 편집 후 재생 목록의 일부를 도시한 도면.
도 5 는 재 인코딩된 화상 그룹에 포함된 화상의 총 수 (n+(N-m+1)) < N 인 경우, 본 발명의 일 실시형태에 따른 이미지 인코딩 장치에서 편집된 스트림을 생성하는 방법을 설명하는 도면.
도 6 은 (n+(N-m+1)) > N 인 경우, 편집된 스트림을 생성하는 방법을 설명하는 유사한 도면.
도 7 은 (n+(N-m+1)) = 2N 인 경우, 편집된 스트림을 생성하는 방법을 설명하는 유사한 도면.
도 8 은 (n+(N-m+1)) = N 인 경우, 편집된 스트림을 생성하는 방법을 설명하는 유사한 도면.
도 9 는 편집 지점 B 가 헤드 GOP 내에 존재하는 경우, 편집된 스트림을 생성하는 방법을 설명하는 유사한 도면.
도 10 은 편집 지점 A 가 최종 GOP 내에 존재하는 경우, 편집된 스트림을 생성하는 방법을 설명하는 유사한 도면.
도 11a 는 본 발명의 일 실시형태에 따른 이미지 인코딩 장치에서의 제 2 패스의 인코딩 프로세스를 도시하는 흐름도.
도 11b 도 본 발명의 일 실시형태에 따른 이미지 인코딩 장치에서의 제 2 패스의 인코딩 프로세스를 도시하는 흐름도.
도 12a 는 편집된 스트림의 복잡도를 이용한 목적 코드에 대한 계산 프로세스를 도시하는 흐름도.
도 12b 도 편집된 스트림의 복잡도를 이용한 목적 코드에 대한 계산 프로세스를 도시하는 흐름도.
도 13 은 화상의 위상 정렬을 위해 편집된 스트림에 삽입되는 프레임의 복잡도에 대한 계산 프로세스를 도시하는 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
1: 이미지 인코딩 장치 2: 인코딩 프로세서
3 : 편집기 4 : 디코딩 프로세서
5 : 디스플레이 6, 7 : 저장 I/F
30, 40 : 저장 장치
본 발명은, 비 압축 (non-compressed) 비디오 데이터로부터 인코딩된 코딩된 스트림을 편집 (editing), 디코딩, 및 재 인코딩 (re-encoding) 할 수 있는 이미지 인코딩 장치, 이미지 인코딩 방법, 및 이미지 편집 장치에 관한 것이다.
최근의 디지털 기술의 발전으로, HDD (Hard Disc Drive), DVD (Digital Versatile Disc) 및 DVD 플레이어와 같은 디지털 사운드/이미지 레코딩 및 재생 장치가 실용화되어 왔다. 이러한 디지털 시스템은 MPEG (Moving Picture Expers Group) 표준에 의해 이미지 데이터를 스트림으로 압축한다.
MPEG-2 (ISO/IEC13818-2) 표준에서, 코딩된 스트림은 다음 3 개 유형의 화상의 조합으로 구성된다 : 인트라-코딩된 (intra-coded) 화상 (I-화상), 기준 프레임으로부터 일 방향 예측을 이용하여 코딩된 화상인 예측-코딩된 (predictive-coded) 화상 (P-화상), 및 기준 프레임으로부터 양방향 (bi-directional) 예측을 이용하여 코딩된 화상인 양방향 예측-코딩된 화상 (B-화상).
MPEG-2 표준의 비디오 스트림은 GOP (group of pictures) 의 단위로 코딩된다. 하나의 GOP 는, 통상 I-화상으로 시작하여 P- 및 B-화상의 시퀀스가 후속 하는 보통 15 개의 일련의 화상으로 이루어진다.
I-화상은 이전의 화상으로부터의 예측을 이용하지 않고 화상 내 (intra-picture) 인코딩에 의해 코딩된다. I-화상은 다른 화상을 참조하지 않고 화상 내 인코딩의 결과로 생성되며, 디코딩을 위해 필요한 모든 정보를 포함한다. P-화상은 과거의 I- 또는 P-화상을 참조하여 화상 간 (inter-picture) 예상에 의해 인코딩된다. 그러므로, 그들은 스트림 시퀀스에서 관련된 P-화상에 앞서는 이전의 디코딩된 I- 또는 P-화상의 정보를 필요로 한다. B-화상은 과거 및 미래의 I- 또는 P-화상 모두를 참조하여 양방향 화상 간 예측에 의해 인코딩된다. 따라서 B-화상의 디코딩은 스트림 내 관련 B-화상에 앞서는 I- 또는 P-화상 중 2 개의 미리 디코딩된 화상을 필요로 한다.
B-화상이 존재한다면, 인코딩 화상 시퀀스와 표시 화상 시퀀스는 대응되지 않는다. B-화상이 재생 시퀀스의 해당 화상 이후에 표시되는 화상을 참조하여 디코딩되므로, 코딩 시퀀스에서 참조된 I- 또는 P-화상은 B-화상의 앞에 배치된다. MPEG-2 코딩에 의해 생성되는 비디오 스트림을 편집하는 때에, P-화상 및 B-화상으로 인코딩된 화상의 참조 화상은 편집에 의해 변경되므로, 필요 화상의 데이터를 추출하여 그들을 단순히 연결 (concatenate) 하는 것은 불가능하다.
MPEG 표준에 의해 코딩된 동화상은 단순히 GOP 단위로 편집될 수 있다. 그러나, 그러나 GOP 의 어느 부분에서 신 (scene) 변경이 있는 경우, 그 지점에서 편집하는 것은 불가능하다. GOP 의 어느 부분의 편집 지점과 GOP 의 다른 부분의 편집 지점을 "결합 (bonding)" 하기 위해 비디오 스트림을 편집하는 방법이 일 본 특허 공개 2002-300528 (이치카와 등) 에 개시된다.
이치카와 등에 의해 교시된 편집 방법에서, 각각이 프레임 간 예측에 의해 코딩된, 제 1 비디오 스트림의 일부 또는 전부와 제 2 비디오 스트림의 일부 또는 전부는 "결합" 되어 연속적으로 재생될 수 있는 비디오 스트림을 생성한다. 이 과정동안, 프레임 간 예측 또는 일방향 프레임 간 예측에 의해 코딩된 화상 직전까지의 화상으로 구성된 제 1 부분 비디오 스트림이 제 1 비디오 스트림으로부터 추출된다. 또한, 프레임 간 예측 또는 일방향 프레임 간 예측에 의해 코딩된 화상 이후의 화상으로 구성된 제 2 부분 비디오 스트림이 제 2 비디오 스트림으로부터 추출된다. 그 후, 제 2 비디오 스트림으로부터 추출된 제 2 부분 스트림 직전에 표시되는 화상이 I-화상인지 여부가 결정된다. 해당 화상이 I-화상인 경우, 이는 제 1 I-화상으로 결정된다. 해당 화상이 I-화상이 아닌 경우, 일방향 프레임간 예측에 의해 코딩된 화상은 해당 화상 직전의 I-화상으로부터 시작하여 해당 화상까지 연속적으로 디코딩되고, 그에 의해 해당 화상의 디코딩된 이미지를 얻는다. 그 후, 디코딩된 해당 화상은 프레임간 코딩 프로세스에 의해 재 인코딩되어, 재 인코딩된 I-화상은 제 1 비디오 스트림으로부터 추출된 제 1 부분 스트림과 제 2 비디오 스트림으로부터 추출된 제 2 부분 스트림 사이에 삽입되고, 그에 의해 GOP 의 어떤 부분에 존재하는 편집 지점에도 불구하고 편집을 가능하게 한다.
그러나, 코딩된 화상을 포함하는 그러한 스트림을 편집하는데 있어서, 스트림의 일부를 제거하여 전체 코드 길이를 감소시키는 것은 가능하지만, 인코딩을 위한 비트 레이트를 변경하는 것은 불가능하고, 이는 편집 후 코드 길이를 조정하는 것을 어렵게 한다.
예를 들어, 비 압축 디지털 비디오 데이터가 MPEG 표준 등에 의해 각각 I-화상, B-화상 및 P-화상으로 구성된 GOP 단위로 압축-인코딩되고, 자기-광 디스크 (MO 디스크) 와 같은 레코딩 매체에 레코딩 된 경우, 압축해제-디코딩된 비디오의 고 품질을 유지하면서도, 압축-인코딩 후의 압축된 비디오 데이터의 데이터 양 (비트 양) 이 레코딩 매체의 레코딩 용량 또는 통신 라인의 송신 용량 이하로 떨어질 수 있게 하여야 한다.
이를 달성하기 위해, 선 분석 (pre-analysis) 을 이용한 동화상에 대한 코딩 방법이 채용될 수 있다. 선 분석을 이용하는 이 코딩 방법은 제 1 패스에서 먼저, 비 압축 비디오 데이터에 대해 예비 압축-인코딩을 수행하여 압축-인코딩 후의 데이터 양을 추정한다. 제 2 패스에서, 이 방법은 추정된 데이터 양에 기초하여 데이터 압축률을 조정하고 압축-인코딩 후의 데이터 양이 레코딩 매체의 레코딩 용량 이하로 떨어지도록 압축-인코딩을 수행한다. 이런 압축-인코딩 방법은 여기서 2-패스 인코딩이라고 한다.
2-패스 인코딩에서, 코드 길이의 할당에 의한 버퍼 점유율 (occupation rate) 을 변경하는 것을 고려할 필요가 있다; 그렇지 않으면, 실제 인코딩 프로세스 동안 오버플로우, 언더플로우 등으로 버퍼가 파괴 (break down) 될 수 있다. 실제 인코딩 프로세스 동안 버퍼 파괴를 방지하기 위한 처리가 수행되더라도, 이미지를 인코딩할 때 생성되는 코드 길이는 목적 코드 길이의 범위 밖으로 벗어날 수 있고, 이는 실제 코드 길이의 정확한 제어를 저해한다. 이런 경우, 실제로는 할당된 가정된 코드 길이와 상이한 코드 길이가 이미지에 할당되고, 그에 의해 인코딩에 있어 이미지 품질의 열화를 유발한다.
이 단점을 극복하기 위해, 코딩된 이미지의 품질을 개선하기 위한 선 분석을 이용한 동영상 인코딩 장치가 일본 특허 공개 공보 2002-232882 (요코야마) 에 개시된다. 요코야마에 의해 교시된 동영상 인코딩 장치는 입력 이미지를 인코딩 하기 전에 이미지에 대한 분석을 수행하여 각 이미지에 대한 복잡도 (complexity) 를 계산한다. 그 후, 계산된 복잡도에 따라 소정의 간격 (interval) 내의 이미지에 한번에 하나의 코드 길이를 할당하고, 버퍼에서 코드 길이의 점유 레이트의 변화를 추정한다. 이는 버퍼가 파괴되는 것을 방지하여, 주어진 비트 레이트 및 버퍼 크기에 기초한 적절한 코드 할당이 가능하게 하고, 그에 의해 코딩된 이미지의 품질을 개선한다.
그러나 요코야마에서 설명된 2-패스 인코딩에 있어서, 제 1 패스에서 인코딩된 스트림이 화상 단위로 편집되는 경우, 편집 지점에 후속하는 화상의 위상은 편집된 스트림을 디코딩하고 그를 재 인코딩한 후의 제 1 패스의 코딩된 스트림의 화상의 위상과 대응될 수 없다. 이 경우, 원래 B-화상으로 코딩된 화상은 I-화상으로 재 인코딩될 수 있고, 이는 편집 후 이미지의 열화를 유발한다. 또한, 편집된 스트림의 화상의 위상은 선 분석된 제 1 패스 내 코딩된 스트림의 화상의 위상과 대응되지 않으므로, 편집 지점 후의 화상에 대한 복잡도를 참조하는 것은 불가능하고, 따라서 편집된 스트림에 대해 2-패스 인코딩을 수행하는 것은 불가능하게 된다.
따라서, 본 발명은 상기한 문제점을 해결하기 위한 것으로서, 이미지의 열화 없이 화상을 편집하고 2-패스 인코딩이 가능하도록 하는 인코딩 장치, 인코딩 방법 및 편집 장치를 제공하는 것을 그 목적으로 한다.
본 발명의 일 태양에 따르면, 비 압축 비디오 데이터로부터 인코딩된 코딩된 스트림을 하나 이상의 편집 지점에서 편집하도록 하는 편집 명령을 생성하는 편집기, 편집된 스트림을 생성하도록, 상기 편집 명령에 따라 상기 코딩된 스트림을 디코딩하는 디코딩 프로세서, 및 편집된 코딩 스트림을 생성하도록, 상기 편집된 스트림을 재 인코딩 (re-encoding) 하는 인코딩 프로세서를 포함하는 인코딩 장치가 제공된다. 인코딩 프로세서는, 상기 코딩된 스트림과 상기 편집된 코딩 스트림 사이에 동일한 프레임에서 화상 유형이 동일하도록 화상의 위상을 정렬함으로써 상기 편집된 코딩 스트림을 생성한다.
본 발명은, 원 코딩된 스트림에서와 동일한 프레임은 동일한 화상으로 인코딩되는 방식으로, 비 압축 비디오 데이터로부터 인코딩된 코딩된 스트림을 편집하고 그것을 재 인코딩할 때 화상의 위상의 정렬이 가능하게 하며, 그에 의해 예를 들어, 원래의 B-화상을 I-화상으로 인코딩함이 없이 이미지 품질의 열화를 방지한다.
본 발명의 다른 태양에 따르면, 비 압축 비디오 데이터로부터 인코딩된 코딩된 스트림을 편집하는 이미지 인코딩 프로세서, 및 코딩된 스트림을 저장하는 2 이상의 저장 장치를 포함하는 이미지 편집 장치가 제공된다. 상기 이미지 인코딩 프로세서는, 일 저장 장치에 저장된 상기 코딩된 스트림을 하나 이상의 편집 지점에서 편집하도록 하는 편집 명령을 생성하는 편집기, 편집된 스트림을 생성하도록, 상기 편집 명령에 따라 상기 코딩된 스트림을 디코딩하는 디코딩 프로세서, 및 편집된 코딩 스트림을 생성하도록, 상기 편집된 스트림을 재 인코딩 (re-encoding) 하는 인코딩 프로세서를 포함한다. 상기 인코딩 프로세서는, 상기 코딩된 스트림과 상기 편집된 코딩 스트림 사이에 동일한 프레임에서 화상 유형이 동일하도록 화상의 위상을 정렬함으로써 상기 편집된 코딩 스트림을 생성하고, 타 저장 장치는 상기 편집된 코딩 스트림을 저장한다.
본 발명은 화상의 위상을 정렬함으로써 일 저장 장치에 저장된 원 코딩된 스트림으로부터 편집된 데이터를 재 인코딩하여, 화상이 원 코딩된 스트림의 대응 프레임에서와 동일하게 하고, 그에 의해 이미지 품질의 열화 없이 다른 저장 장치로의 데이터 더빙을 가능하게 한다. 또한, 동일한 프레임은 코딩된 스트림에서와 동일한 유형으로 인코딩되도록 화상의 위상을 정렬함으로써 편집된 스트림이 인코딩되므로, 각 프레임의 복잡도가 원 코딩된 스트림의 생성 시에 분석된 경우, 편집된 스트림에 대해 2-패스 인코딩을 수행하는 것이 가능하다.
본 발명에 따르면, 코딩된 스트림에서 임의의 화상에서 편집이 이루어지더라도, 편집 후에 스트림을 인코딩하여 얻어지는 코딩된 스트림과 편집 전의 코딩된 스트림의 화상의 위상을 정렬할 수 있고, 그에 의해 재 코딩된 이미지 품질의 열화를 억제할 수 있다. 또한, 본 발명에 따르면 코딩된 스트림의 편집 후에도 편집 전 코딩된 스트림에서와 동일한 화상의 위상을 갖는 스트림을 생성할 수 있다; 따라서, 코딩된 스트림에 대해 선 분석이 이루어진 경우, 편집 후에도 2-패스 인코딩이 수행될 수 있다.
본 발명의 상기한, 그리고 기타의 목적, 장점 및 특성은 첨부한 도면과 함께 이하의 설명에서 더욱 명확해 질 것이다.
바람직한 실시형태의 설명
여기서 본 발명은 예시적인 실시형태를 참조하여 설명될 것이다. 당업자는 본 발명의 교시를 이용하여 다양한 대안적 실시형태를 수행하고, 본 발명은 설명의 목적으로 개시되는 실시형태들에 제한되지 않음을 인식할 것이다.
이하 본 발명의 예시적인 실시형태가 도면을 참조하여 설명된다. 하기의 실시형태에서, 본 발명은 2-패스 인코딩을 이용하는 편집 기능을 갖는 동영상 인코딩 장치에 적용된다.
본 발명에 따른 이미지 인코딩 장치는 2-패스 인코딩을 제공한다. 2-패스 인코딩 프로세스는 먼저, 제 1 패스에서 비 압축 오디오/비디오 데이터를 예비적으로 압축-인코딩하여 압축-인코딩 후의 데이터 양을 추정한다. 제 2 패스에서, 프로세스는 추정된 데이터 양에 기초하여 데이터 압출률을 조정하고 압축-인코딩 후의 데이터 양이 레코딩 매체의 레코딩 용량 미만이 되도록 압축-인코딩을 구현한다. 그러므로, 제 1 패스에서, 예를 들어 타이틀 (title) 의 MPEG-인코딩 후에 비 압축 비디오 데이터 등의 타이틀을 기록할 때, 각각의 프레임은 복잡도를 얻기위해 분석 (선 분석) 되고, 복잡도는 MPEG-코딩된 타이틀과 함께 기록된다. 제 2 패스에서, 인코딩은 비트 레이트가 소정 값이 되도록 복잡도에 따라 할당되는 코드 레이트로 구현된다. 복잡도를 이용한 코드 길이 할당은 제한된 비트 레이트로 이미지 품질을 개선할 수 있게 하고, 버퍼에서 언더플로우 또는 오버플로우가 일어나는 것을 방지한다.
본 실시형태의 이미지 인코딩 장치는, 재생 목록, 또는 레코딩 된 MPEG-코딩 타이틀 (프로그램) 을 화상 단위로 편집함으로써 생성되는 편집된 타이틀을 생성하는데 있어서, 상술한 2-패스 인코딩을 수행할 수 있다.
통상적으로 선 분석된 코딩된 스트림에 있어서, 복잡도는 각 프레임에 대해 계산된다. 각 프레임은 각 화상 유형에 따른 복잡도를 갖는 소정 화상 유형으로 인코딩된다. 그러므로, 코딩된 스트림이 GOP 의 어떤 지점에서 편집 및 디코딩되면, 편집된 타이틀을 재 인코딩하는 때에, 편집 전의 코딩된 스트림에 대응하는 프레임은 동일한 화상 유형으로 인코딩되지 않는다. 예를 들어, 원래 B-화상으로 코딩되는 프레임은 희망치 않게 I-화상으로 코딩될 수 있고, 이는 편집된 코딩 스트림에서 화상 품질의 열화를 유발할 수 있다.
또한, 편집 후의 코딩된 스트림에서, 선 분석된 편집 전의 코딩된 스트림에 대응되는 프레임이나 그와 동일한 이미지는 상이한 유형의 화상으로 인코딩되고, 선 분석의 결과를 이용한 최적 목표 코드 길이를 설정함으로써 데이터를 인코딩하는 2-패스 인코딩은 구현될 수 없다. 반면, 본 실시형태의 이미지 인코딩 장치에서, 대응 프레임이 선 분석된 편집 전의 코딩된 스트림에서와 동일한 유형의 화상으로 인코딩 되도록 화상의 위상을 정렬하기 위해 소정의 화상 (이하 삽입 이미지라 한다) 이 편집된 코딩 스트림으로 삽입된다. 특히, 화상의 위상을 정렬하는 것은, 코딩된 스트림을 형성하는 성분 화상 (component picture) 을 디코딩하고 그것을 재 인코딩하는 프로세스에 있어서, 재 인코딩이 성분 화상의 유형과 동일한 화상 유형을 제공함을 의미한다. 화상의 위상이 정렬되면, GOP 의 어떤 부분에서 편집 지점을 제공함으로서 선 분석된 코딩된 스트림을 편집한 후에 그것을 재 인코딩하는 프로세스에서 편집 전의 코딩된 스트림의 선 분석 결과를 참조하는 것이 가능하며, 그에 따라 2-패스 인코딩을 가능케 한다.
이하에서, 본 실시형태에 따른 이미지 인코딩 장치의 구조에 대해 먼저 설명하고, 그 후 편집 후의 MPEG 스트림 (여기서 편집된 코딩 스트림 (ST1) 이라 한다) 를 편집 전의 MPEG 스트림 (여기서 원 스트림 (ST0) 이라 한다) 의 화상의 위상과 정렬하는 방법에 대해 설명한 후, 마지막으로 원 스트림에 대한 선 분석 결과를 이용하여 편집된 스트림에 대해 2-패스 인코딩을 구현하는 방법을 설명한다.
도 1 은 본 실시형태에 따른 이미지 인코딩 장치를 도시하는 블록도이다. 이미지 인코딩 장치 (1) 는 인코딩 프로세서 (2), 편집기 (3), 디코딩 프로세서 (4), 디스플레이 (5), 및 저장 인터페이스 (I/F; 6 및 7) 을 포함한다. 디스플레이 (5) 는 이미지 인코딩 장치 (1) 과 별개의 유닛일 수 있다. 2 개의 저장 I/F 가 도 1 에 도시되었으나, 저장 I/F 의 수는 2 이상일 수 있다. 예를 들어, 저장 I/F (6) 는 HDD 와 같은 저장 장치 (30) 에 연결될 수 있으며, 저장 I/F (7) 은 DVD 레코더와 같은 저장 장치 (40) 에 연결될 수 있다. 저장 장치 (30 및 40) 는 이미지 인코딩 장치 (1) 에 포함될 수 있다.
본 실시형태의 이미지 인코딩 장치 (1) 에서, 인코딩 프로세서 (2) 는 입력된 비 압축 비디오 데이터를 MPEG 표준에 의해 인코딩하고 MPEG-코딩된 데이터를 저장 장치 (30, 40) 에 저장하며, 편집기 (3) 는 저장 장치 (30, 40) 에 저장된 코딩된 스트림을 편집한다. 그 후, 디코딩 프로세서 (4) 는 코딩된 스트림을 디코딩하고, 디스플레이 (5) 는 결과를 표시 (재생) 한다. 상술한 바와 같이, 이미지 인코딩 장치 (1) 는 인코딩 프로세서 (2) 에서 비디오 데이터를 인코딩함으로서 생성된 코딩된 스트림 (여기서 원 스트림이라고 한다) 을 편집할 수 있고, 그에 의해 원 스트림 (ST0) 의 화상의 위상과 편집된 코딩 스트림 (ST1) 의 화상의 위상이 정렬되도록 편집된 코딩 스트림 (ST1) 을 생성할 수 있다. 예를 들어, 원 스트림 (ST0) 에서 I-화상으로 인코딩된 프레임은 편집된 스트림에서 다시 I-화상으로 재 인코딩될 수 있다.
따라서, 원 스트림 (ST0) 를 생성할 때 복잡도가 분석되고 원 스트림 (ST0) 과 함께 저장되면, 편집된 스트림 (ST1) 을 생성할 때 복잡도를 참조하는 것이 가능하다. 이는 복잡도에 따라 최적 코드 길이를 할당할 수 있게 하며, 궁극적으로 편집된 코딩 스트림 (ST1) 을 생성하는 때에 제어된 코드 길이로 인코딩하는 2-패스 인코딩을 구현할 수 있게 한다. 이는, 비트 레이트가 원 스트림을 인코딩하는 때 사용된 비트 레이트보다 작은 경우에도 이미지 품질의 열화를 억제하고, 그에 의해 DVD 와 같이 제한된 저장 용량을 갖는 매체에 레코딩할 수 있게 한다.
이하 각 블록이 상세히 설명된다. 도 2 는 인코딩 프로세서 (2) 의 세부 사항을 도시한 블록도이다. 도 2 에 도시된 바와 같이, 인코딩 프로세서 (2) 는 인코더 (21), 인코딩 버퍼 (22), 애널라이저 (23), 코드 길이 할당기 (24), 코드 길이 제어기 (25), 및 정지/재개 제어기 (26) 를 포함한다. 인코더 (21) 는 외부로부터 공급되는 비 압축 비디오 데이터 또는 디코딩 프로세서 (4) 로부터의 디코딩된 데이터를 수신하고, 데이터를 MPEG-인코딩한다. 인코딩 버퍼 (22) 는 일시적으로 인코딩된 데이터를 저장한다. 애널라이저 (23) 는 인코딩을 위해 정보를 분석하고 복잡도를 계산한다. 코드 길이 할당기 (24) 는 복잡도에 기초하여 각각의 화상에 대해 목표 코드 길이를 할당하고, 2-패스 인코딩을 가능하게 한다. 코드 길이 제어기 (25) 는 인코더 (21) 가 제어기 (미도시) 에 의해 표시된 코드 길이 또는 코드 길이 할당기 (24) 에 의해 할당된 코드 길이로 인코딩을 수행하도록 제어한다. 정지/재개 제어기 (26) 는 편집 전후의 화상의 위상이 서로 일치하도록 2-패스 인코딩 프로세스 동안 인코딩 과정을 정지 또는 재개하는 타이밍을 제어한다.
타이틀을 레코딩 할 때, 인코딩 프로세서 (2) 는 통상 입력 비 압축 비디오 데이터를 상대적으로 높은 비트 레이트로 예를 들어 MPEG-인코딩하고, 코딩된 스트림 (원 스트림) 을 저장 I/F (6) 을 통해 HDD 와 같은 대 저장 용량을 갖는 저장 장치 (30) 에 저장한다. 이 프로세스에서, 애널라이저 (23) 는 각각의 비디오 데이터 프레임을 소정의 화상 및 양자화 (quantization) 스케일로 인코딩할 때 발생되는 코드 길이에 기초하여 복잡도 X 를 분석한다. 복잡도 X 는 각각의 프레임을 소정 화상 유형의 화상으로 인코딩할 때의 복잡도를 나타내며, 이는 각각의 화상과 관련된다. 복잡도 X 는 원 스트림과 함께 저장 장치 (30) 에 저장된다. 복잡도 X 는 저장 장치 (30) 보다는 장치에 배치된 메모리 (미도시) 에 저장될 수 있다.
애널라이저 (23) 는 특성량 관찰자 (feature amount observer; 51) 및 복잡도 계산기 (52) 를 포함한다. 특성량 관찰자 (51) 는 발생된 코드 길이 및 이미지의 평균 양자화 스케일을 관찰하는데, 이들이 특성량이다. 예를 들어, 특성량 관찰자 (51) 는, 인코더 (21) 가 코드 길이 제어기 (25) 의 제어 하에 주어진 비트 레이트 R 에 기초하여 비 압축 비디오 데이터로 구성된 타이틀을 인코딩하는 때에 발생하는 각 프레임 f 의 발생된 코드 길이 S[f] 및 평균 양자화 스케일 Q[f] 를 관찰한다.
복잡도 계산기 (52) 는 특성량 관찰자 (51) 에 의해 관찰된 발생된 코드 길이 및 평균 양자화 스케일에 기초하여 복잡도를 계산한다. 예를 들어, 발생된 코드 길이가 S[f] 이고, 평균 양자화 스케일이 Q[f] 이며, 복잡도가 X[f] 인 경우, 복잡도 X[f] 는 다음과 같이 계산될 수 있다:
X[f] = S[f]*Q[f]
2-패스 인코딩을 위한 목표 코드 길이를 얻기 위한 복잡도 X 에 대한 구체적인 계산 방법은 예를 들어, 요코야마에 설명된다. 보통, 코드 길이 할당기 (24) 는 상술한 바와 같이 계산된 복잡도로부터 목표 코드 길이를 계산하고, 이는 목접 값으로서 2-패스 인코딩 동안 사용된다.
후술하는 바와 같이, 편집된 스트림의 화상의 위상과 원 스트림의 화상의 위상을 정렬하기 위해, 필요에 따라 편집 지점의 전 및/또는 후의 위치에서 편집된 스트림으로 삽입 이미지가 삽입된다. 편집된 스트림을 인코딩하여 편집된 코딩 스트림 (ST1) 을 생성하는 때에, 본 실시형태의 복잡도 계산기 (52) 는 원 스트림 (ST0) 을 생성하는 때에 분석된 복잡도를 참조하고 원 스트림에 대응하는 프레임의 복잡도를 코드 길이 할당기 (24) 에 공급한다. 또한, 복잡도 계산기 (52) 는 원 스트림의 복잡도로부터 화상 (여기서 삽입 화상이라 한다) 을 생성하기 위해 삽입 이미지를 인코딩하기 위한 복잡도를 계산하고, 계산된 복잡도를 코드 길이 할당기 (24) 에 공급한다.
코드 길이 할당기 (24) 는, 복잡도 계산기 (52) 로부터 공급되는 복잡도에 기초하여 화상을 생성하도록, 프레임을 인코딩할 때 목표 코드 길이를 할당한다. 목표 코드 길이는, 소정 GOP 길이에 대응하는 코드 길이의 할당 간격에서 사용될 수 있는 총 코드 길이가 각 이미지에 대한 복잡도에 따라 할당되도록 하는 것일 수 있다. 코드 길이의 할당 간격이 L 프레임이고 f 번째 프레임에서 (f+L-1) 번째 프레임까지 할당될 수 있는 총 코드 길이가 Ra[f] 인 경우, 복잡도 X[f] 에 비례하여 Ra[f] 를 할당한 결과인 각 프레임의 목표 코드 길이 T[f] 는 다음과 같이 계산될 수 있다:
T[f] = (X[f]/Xsum) * Ra[f]
여기서, 할당 간격에서 복잡도 X[f] 의 합이 Xsum 이다.
제 1 패스 인코딩에서, 코드 길이 제어기 (25) 는 인코딩 프로세서 (2) 가 소정의 또는 외부로부터 표시되는 비트 레이트로 인코딩을 수행하도록 제어한다. 제 2 패스 인코딩에서, 코드 길이 제어기 (25) 는 코드 길이 할당기로부터 (24) 코드 길이 제어기 정보에 기초하여 양자화 스케일을 계산하고, 계산된 양자화 스케일로 인코딩을 수행하도록 제어한다. 동시에, 실제 코드 길이가 측정되고, 실제 코드 길이와 할당된 코드 길이 사이에 차이가 있으면, 소정 비트 레이트를 근사시키고 그에 의해 목표 코드 길이로 인코딩을 수행하도록 코드 길이를 제어하기 위해 피드백 제어가 수행된다. 간단한 프로세스에서, 실제 코드 길이가 목표 코드 길이를 초과하는 경우, 코드의 발생을 억제하도록 양자화 스케일이 확대된다; 실제 코드 길이가 목표 코드 길이 미만인 경우, 코드의 발생을 증가시키도록 양자화 스케일이 감소된다.
또한, 코드 길이 제어기 (25) 는 인코딩 버퍼 (22) 의 점유율 (occupation ratio) 을 모니터링하고, 인코딩의 결과로 생성되는 실제 코드 길이가 인코딩 버퍼 (22) 에서 오버플로우 또는 언더플로우를 유발하지 않기 위해 필요한 양자화 스케일의 조정 및 스터핑 (stuffing) 과 같은 제어를 구현한다. 예를 들어, 인코딩 버퍼 (22) 가 오버플로우 하지 않도록 하기 위해, 코드 길이 제어기 (25) 는 코드의 발생을 억제하도록 양자화 스케일을 확대하거나, 실제 코드 길이의 증가를 억제하기 위해 인코딩될 정보를 인코딩하지 않는다. 반면, 인코딩 버퍼 (22) 가 언더플로우 하지 않도록 하기 위해, 코드 길이 제어기 (25) 는 코드의 발생을 증가시키도록 양자화 스케일을 감소하거나, 실제 코드 길이를 증가시키기 위해 스터핑을 수행한다.
인코더 (21) 는 외부로부터 공급되는 비압축 비디오 데이터 또는 디코딩 프로세서 (4) 로부터 전송되는 디코딩된 데이터를 주어진 파라미터에 따라 인코딩하 고, 그에 의해 압축된 데이터를 발생한다. 또한 인코더 (21) 는 발생된 코드 길이를 측정하고 그것을 코드 길이 제어기 (25) 에 통지한다. 또한, 제 1 패스의 인코딩에서, 인코더 (21) 는 발생된 코드 길이 및 평균 양자화 스케일을 특성량 관찰자 (51) 에 통지한다.
인코더 버퍼 (22) 는 인코더 (21) 에 의해 인코딩된 데이터를 축적하고 데이터를 고정된 비트 레이트로 출력할 수 있다. 인코딩 버퍼 (22) 는 이미지 당 발생된 코드 길이의 변화를 흡수할 수 있다.
도 1 을 참조하면, 디코딩 프로세서 (4) 는 저장 장치 (30, 40) 에 저장된 MPEG 스트림을 그것이 디스플레이 (5) 에 표시되도록 디코딩하고, 디코딩된 스트림을 그것이 재 인코딩되도록 인코딩 프로세서 (2) 에 공급한다. 도 3 은 디코딩 프로세서 (4) 의 세부사항을 도시하는 블록도이다.
디코딩 프로세서 (4) 는 디코더 (61), 디코딩 버퍼 (62) 및 정지/재개 제어기 (63) 를 포함한다. 디코더 (61) 는 인코딩 프로세서 (2) 에 의해 인코딩된 코딩된 스트림, 또는 저장 장치 (30, 40) 에 저장된 코딩된 스트림을 디코딩한다. 디코딩 버퍼 (62) 는 디코딩된 오디오/비디오 데이터를 일시적으로 저장한다. 정지/재개 제어기 (63) 는 디코더 (61) 에 의해 디코딩이 수행되는 타이밍을 제어한다.
상술한 2-패스 인코딩을 실행하는 때, 디코딩 프로세서 (4) 는 제 1 패스에서 인코딩된 원 스트림 (ST0) 를 디코딩한다. 인코딩 프로세서 (2) 가 편집된 코딩 스트림 (ST1) 을 생성하는 경우, 편집기 (3) 는 편집 명령 (instruction) (재 생 목록) 에 따라 연속적으로, 편집기 (3) 에 의해 생성된 가상 타이틀인 GOP 를 디코딩 프로세서 (4) 에 공급하고, 디코딩 프로세서 (4) 는 GOP를 디코딩한다. 이 때, 편집 지점이 GOP 의 어떤 부분에 존재한다면, 정지/재개 제어기 (63) 는, 직전의 디코딩된 이미지를 반복적으로 출력하도록 하거나, 편집된 코딩 스트림에 대해 필수적인 디코딩된 이미지만을 출력하도록 하는 등 후술하는 바와 같이 제어한다. 이러한 방식으로 디코딩 프로세서 (4) 에 의해 디코딩되고 출력된 디코딩된 데이터 (편집된 스트림) 는 그 후 인코딩 프로세서 (2) 에 의해 편집된 코딩 스트림 (ST1) 으로 인코딩된다.
다시 도 1 을 참조하면, 편집기 (3) 는 희망 지점에서 저장 장치 (30) 에 저장된 원 스트림을 편집하기 위해 가상 타이틀로 기능하는 재생 목록을 생성한다. 본 실시형태의 편집기 (3) 는 재생 목록에 따라 편집되는 비디오를 2-패스 인코딩하기 위해 인코딩 프로세서 (2) 및 디코딩 프로세서 (4) 를 제어할 수 있다. 디코딩 프로세서 (4) 및 인코딩 프로세서 (2) 를 제어하기 위한 제어기는 별개로 배치될 수 있다. 제어 프로세스의 상세는 후술한다.
편집된 코딩 스트림 (ST1) 을 생성하는 때에, 편집기 (3) 는 사용자로부터 소정 편집 지점 사이의 부분의 삭제에 관한 명령, 편집된 코딩 스트림 (ST1) 을 생성하기 위한 비트 레이트에 관한 명령 등을 수신할 수 있다. 편집기 (3) 는 편집 지점에 관한 명령에 따라 재생 목록을 생성하고, 그에 따라 원 스트림 (ST0) 을 편집한다. 편집기 (3) 는 또한 생성된 재생 목록에 따라 원 스트림 (ST0) 의 GOP 를 디코딩 프로세서 (4) 에 공급하여, 디스플레이 (5) 가 편집된 스트림을 재 생할 수 있다. 편집된 스트림에 대해 2-패스 인코딩을 수행할 때, 편집기 (3) 는 디코딩 프로세서 (4) 가 편집된 스트림을 출력하고 인코딩 프로세서가 그에 대해 2-패스 인코딩을 수행하도록 제어할 수 있다. 구체적으로, 인코딩 후의 편집된 코딩 스트림 (ST1) 이 희망 데이터 크기를 갖도록 적당한 비트 레이트가 표시되고, 복잡도 X 에 따라 목표 코드 길이가 할당되며, 편집된 스트림이 목표 코드 길이로 인코딩되어 그에 의해 편집된 코딩 스트림 (ST1) 을 생성한다.
이하 2-패스 인코딩 방식에 의해 편집된 코딩 스트림 (ST1) 을 생성하는 방법이 상세히 설명된다. 이하의 설명은 이미지 인코딩 장치 (1) 가 예를 들어 선택적인 2 개의 화상을 지정하여 이미 저장된 타이틀 (원 스트림) 을 편집하고, 편집된 타이틀의 더빙을 수행하는 실시형태에 관한 것이다.
도 4a 내지 4c 는 원 스트림 (ST0) 을 편집하는 방법을 설명하는 도면이다. 도 4a 는 원 스트림을 도시하고, 도 4b 는 원 스트림에서 추출된 편집 지점을 포함하는 GOP 를 도시하며, 도 4c 는 편집된 재생 목록의 일부를 도시한다.
도 4a 에 도시된 바와 같이, 원 스트림은 복수의 GOP #1, #2, ... #j, ... #k...로 구성된다. 설명의 단순화를 위해, 본 실시형태에서 각각의 GOP 는 N 개의 화상을 포함하고, 여기서 N 은 정수이며, 화상은 예를 들어 I, P, B, B, P..., 와 같은 동일한 시퀀스 (동일한 코딩 규칙에 의한) 로 배열된다. 본 발명은 원 스트림 (ST0) 과 편집된 코딩 스트림 (ST1) 사이에 동일한 프레임이 동일한 화상으로 인코딩되는 경우에 적용할 수 있다. 구체적으로, 원 스트림 (ST0) 과 편집된 코딩 스트림 (ST1) 사이에 화상의 위상이 정렬되는 이상, 모든 GOP 에 대해 GOP 길이, 코딩 규칙 등은 동일할 필요가 없다.
원 스트림 (ST0) 을 구성하는 화상의 복잡도는, 스트림 (ST0) 이 비디오 데이터로부터 생성되고 저장 장치 (30) 에 복잡도 X 로 저장되는 때에, 애널라이저 (23) 에 의해 분석된다.
이하의 설명은 도 4a 에 도시된 편집 지점 (A 및 B) 을 이용하여 편집된 코딩 스트림 (ST1) 을 생성하는 경우에 관한 것이다. 예시적인 경우에, 원 스트림 (ST0) 은 s (1≤s≤S) 개의 GOP 를 갖고, 각각의 GOP #s 는 t (1≤t≤N) 개의 화상을 갖는다. 편집 지점 (A) 은 GOP #j (1≤j≤S) 의 화상 #n (1≤n≤N) 및 #n+1 사이의 지점을 나타낸다. 화상 #n=#N 인 경우, 편집 지점 (A) 는 GOP 경계를 나타낸다. 편집 지점 (A) 에 후속하는 화상은 잘려나간다. 편집 지점 (B) 은 GOP #k (1≤k≤S) 의 화상 #m-1 과 #m (1≤m≤N) 사이의 지점을 나타낸다. 화상 #m=#1 인 경우, 편집 지점 (B) 은 GOP 경계를 나타낸다. 편집 지점 (B) 이전의 화상은 잘려나간다.
예를 들어, GOP 단위로, GOP #j 의 헤드 화상 #1 로부터 편집 지점 (A) 직전의 화상 #n 까지의 스트림, 및 GOP #k 의 편집 지점 (B) 직후의 화상 #m 으로부터 최종 화상 #N 까지의 스트림이 추출되고, 2 개의 스트림은 도 4c 에 도시된 바와 같이 2 개의 편집 지점 (A 및 B) 가 연속적으로 배열되도록 편집된다.
편집기 (3) 는 원 스트림에서 선택적인 2 개의 편집 지점 (A 및 B) 를 지정함으로써 원 스트림 (타이틀) 을 편집할 수 있다. 구체적으로, 편집 지점 (A) 에서 종료하는 편집 스트림, 편집 지점 (B) 에서 시작하는 편집 스트림, 편집 지점 (A 및 B) 에서 연속적으로 재생되는 편집 스트림 등을 생성할 수 있다. 편집 과정에서, 가상 타이틀으로 기능하는 재생 목록은 원 스트림에 변형이 가해졌는지 여부에 상관없이 생성될 수 있다. 원 스트림은 재생 목록을 생성할 때 편집될 수 있다. 편집기 (3) 는 생성된 재생 목록을 참조함으로써 MPEG AV 디코더인 디코딩 프로세서 (4) 로 스트림을 GOP 단위로 공급하며, 그에 의해, 예를 들어 편집 지점 (A 및 B) 의 연속적인 재생을 가능하게 한다.
디코딩 프로세서 (4) 로부터의 오디오 및 비디오 신호 출력은 디스플레이 (5) 로 입력되고, 그에 의해 편집된 스트림이 재생된다. 동시에, 디코딩 프로세서 (4) 에 의해 디코딩된 편집된 스트림은 인코딩 프로세서 (2) 에 입력되어, 원 스트림의 복잡도가 인코딩 과정에서 참조될 수 있으며, 그에 의해 2-패스 인코딩을 구현한다. 그 결과는 저장 장치 (40) 로 공급되고, 그에 의해 2-패스 인코딩을 이용하여 원 스트림으로부터 편집된, 편집된 원 스트림의 레코딩 (더빙) 을 가능케 한다.
제 2 패스 인코딩에서 존재하는 각 프레임의 화상 유형 (화상 위상) 이 제 1 패스 인코딩에서의 것과 동일한 경우에, 2-패스 인코딩이 구현될 수 있다. 코드 길이는 제 1 패스에서의 분석에 의해 얻어진 복잡도에 따라 할당되므로, 화상 위상이 상이하면 적절한 코드 길이를 할당할 수 없다.
그러므로, 여기서 화상 구성 (picture composition) 이라 하는, 인코딩 프로세서 (2) 에 의해 생성된 코딩된 스트림 (ST1) 의 각각의 GOP 내의 화상 구성 및 GOP 길이 (GOP 당 총 화상 수) 의 규칙은 제 1 패스 인코딩에서와 동일해야 한다. 다시 말하면, 편집된 코딩 스트림 (ST1) 의 화상의 위상을 원 스트림 (ST0) 의 화상의 위상과 정렬할 필요가 있다.
도 5 내지 10 은 편집된 스트림을 생성하는 방법을 설명한다. 편집기 (3) 는 디코딩 프로세서 (4) 및 인코딩 프로세서 (2) 의 동작을 도 5 내지 10 에 도시된 바와 같은 6 개의 패턴 각각으로 제어한다. 도 5 내지 8 은 2 개의 편집 지점 (A 및 B) 이 서로 접합되는 경우를 도시한다. 도 5 및 6 에 도시된 바와 같이, GOP #j 의 화상 #1 내지 #n 및 GOP #k 의 화상 #m 내지 #N 을 포함하는 화상 그룹 (여기서 편집된 화상 그룹이라 한다) 을 이루는 화상의 총 수 (n+(N-m+1)) 가 N 의 정수배와 다른 경우, 하나 이상의 소정 이미지 (삽입 이미지) 가 편집 지점 (A 및 B) 사이에 삽입되어, 편집된 화상 그룹을 삽입 이미지(들) 과 함께 인코딩하여 얻어지는 화상 그룹 (재 코딩된 화상 그룹) 을 이루는 화상의 총 수가 N 의 정수배에 도달한다.
도 7 및 8 은 편집된 화상 그룹을 이루는 화상의 총 수가 N 또는 2N 인 경우를 도시한다. 이 경우, 편집 지점 (B) 은 편집된 코딩 스트림 (ST1) 내의 GOP 경계에 대응하고, 따라서 여하한 삽입 이미지를 삽입할 필요가 없다. 도 9 및 10 은 단일한 편집 지점이 존재하는 경우로서, 각각 편집된 스트림의 헤드에 편집 지점 (B) 이 오는 때, 및 편집된 스트림이 편집 지점 (A) 으로 종료하는 때를 도시한다. 이들 6 개의 편집 방법 패턴은 편집된 스트림을 생성하기 위해 단독으로 또는 조합으로 이용될 수 있다.
먼저, 편집된 화상 그룹을 이루는 화상의 총 수가 N 의 정수배에 이르지 않 는 경우를 설명한다.
(1) n+(N-m+1)<N (도 5 참조)
도 5 를 참조하면, 편집된 화상 그룹을 이루는 화상의 총 수가 n+(N-m+1)<N 이라는 것은, GOP #j 에서 헤드 화상 #1 로부터 편집 지점 (A) 직전의 화상 #n 까지의 화상으로 구성된 GOP #j 부분 (102) 을 이루는 화상의 수 n 과, GOP #k 에서 편집 지점 (B) 직후의 화상 #m 으로부터 마지막 화상 #N 까지의 화상으로 구성된 GOP #k 부분 (103) 을 이루는 화상의 수 (N-m+1) 의 합 n+(N-m+1) 이 N 보다 작음을 의미한다.
이 경우, 편집기 (3) 는 인코딩 프로세서 (2) 를 제어하여 GOP #j 의 편집 지점 (A 와 B) 사이의 GOP #j 내 화상 #n 으로부터 디코딩된, (m-n-1) 개의 제 1 디코딩된 이미지 J 를 삽입하고, 재 코딩된 화상 그룹 (101) 을 생성한다. 편집된 화상 그룹의 편집 지점 (A 와 B) 사이에 (m-n-1) 개의 디코딩된 이미지 J 를삽입한 결과, 재 코딩된 화상 그룹의 화상 수는 N 에 도달한다. 이는 재 코딩된 화상 그룹 (101) 이 다른 GOP 와 동일한 수의 화상을 가질 수 있도록 한다.
(m-n-1) 개의 디코딩된 이미지 J 를 삽입하는 것은 GOP #j 부분 (102) 및 GOP #k 부분 (103) 이 각각 GOP #j 및 GOP #k 와 동일한 화상의 위상을 가질 수 있도록 한다. 그러므로, GOP #j 부분 (102) 및 GOP #k 부분 (103) 에 대해 각각 동일한 화상의 위상을 갖는 GOP #j 및 GOP #k 의 복잡도 X 를 참조할 수 있다.
디코딩된 이미지 J 의 인코딩 결과로 얻어진 삽입 화상 (제 1 삽입 화상) 은 원 스트림 (ST0) 에는 존재하지 않으며, 따라서 제 1 삽입 화상의 복잡도는 아직 분석되지 않았다. 그러나, 디코딩된 이미지 J 는 GOP #j 의 화상 #n 을 디코딩하여 얻어지고, 이미지 J 로부터 GOP #j 의 화상 #n 을 생성하는 때의 복잡도는 선 분석에 의해 이미 획득되었다. 그러므로, 본 실시형태에서, 디코딩 이미지 J 로부터 생성된 삽입 화상의 복잡도는 GOP #j 의 화상 #n 을 생성하는 때에 선 분석되는 복잡도에 기초하여 계산된다. 그에 의해, 편집된 스트림의 화상 각각을 생성함에 있어서의 복잡도는 참조 또는 계산에 의해 얻어지고, 이는 편집된 스트림을 생성하는 때에 최적 코드 길이를 할당하고 적절한 2-패스 인코딩을 가능케 한다. 디코딩된 이미지 J 로부터 생성된 삽입 화상의 복잡도 계산 방법 및 복잡도를 이용하는 인코딩 프로세스는 후술한다.
(2) n+(N-m+1)>N (도 6 참조)
도 6 을 참조하면, 편집된 화상 그룹을 이루는 화상의 총 수가 n+(N-m+1)>N 이라는 것은, GOP #j 에서 헤드 화상 #1 로부터 편집 지점 (A) 직전의 화상 #n 까지의 화상으로 구성된 GOP #j 부분 (102) 을 이루는 화상의 수 n 과, GOP #k 에서 편집 지점 (B) 직후의 화상 #m 으로부터 마지막 화상 #N 까지의 화상으로 구성된 GOP #k 부분 (103) 을 이루는 화상의 수 (N-m+1) 의 합 n+(N-m+1) 이 N 보다 큼을 의미한다.
이 경우, 편집기 (3) 는 인코딩 프로세서 (2) 를 제어하여 GOP #j 의 편집 지점 (A 와 B) 사이에 GOP #j 내의 화상 #n 으로부터 디코딩된 ((N-m)+(m-1)) 개의 디코딩된 이미지 J 를 삽입하고, 화상 그룹 (111) 을 재 코딩한다. 편집된 화상 그룹의 편집 지점 (A 와 B) 사이에 GOP #j 의 화상 #n 으로부터 디코딩된 ((N- m)+(m-1)) 개의 디코딩된 이미지 J 를 삽입한 결과, 재 코딩된 화상 그룹의 화상 수는 2N 에 도달한다.
((N-m)+(m-1)) 개의 디코딩된 이미지 J 의 삽입은, GOP #j 부분 (102) 및 GOP #k 부분 (103) 이 각각 GOP #j 와 GOP #k 와 동일한 화상의 위상을 가질 수 있도록 한다. 그러므로, GOP #j 부분 (102) 및 GOP #k 부분 (103) 에 대해 각각 동일한 화상의 위상을 갖는 GOP #j 및 GOP #k 의 복잡도 X 를 참조할 수 있다. 삽입 화상의 복잡도는 상술한 바와 같이 GOP #j 의 화상 #n 의 복잡도로부터 계산될 수 있다.
GOP #j 의 화상 #n 으로부터 디코딩된, 디코딩된 이미지 J 를 삽입하는 경우를 상술하였으나, 디코딩된 이미지 J 뿐만 아니라, GOP #k 의 화상 #m 으로부터 디코딩된, 디코딩된 이미지 K 도 사용할 수 있다. 구체적으로, 삽입 이미지 J 는, 프레임의 수가 N 이 되도록 제 1 삽입 이미지로서 GOP #j 부분 (102) 에 삽입된다. 그 후, 삽입 이미지 K 와 GOP #k 부분 (103) 을 포함하는 프레임의 수가 N 이 되도록 삽입 이미지 K 가 제 2 삽입 이미지로서 삽입된다. 그에 의해 재 코딩된 화상 그룹의 화상의 총 수는 2N 에 도달한다. 이러한 경우, 편집 지점 (A 와 B) 사이의 화상을 디코딩하여 얻어지는 비디오는 디코딩된 이미지 J 및 K 의 정지 화상이고, 이는 디코딩된 이미지 J 만을 사용하는 경우에 비해 더 자연스러운 편집 결과를 가져온다.
(3) n+(N-m+1)=2N (도 7 참조)
도 7 을 참조하면, 편집된 화상 그룹을 이루는 화상의 총 수가 n+(N-m+1)=2N 이라는 것은, GOP #j 에서 헤드 화상 #1 로부터 편집 지점 (A) 직전의 화상 #n 까지의 화상으로 구성된 GOP #j 부분 (102) 을 이루는 화상의 수 n 과, GOP #k 에서 편집 지점 (B) 직후의 화상 #m 으로부터 마지막 화상 #N 까지의 화상으로 구성된 GOP #k 부분 (103) 을 이루는 화상의 수 (N-m+1) 의 합 n+(N-m+1) 이 2N 임을 의미한다.
이것은 GOP # j 에서 화상 #n = 화상 #N, GOP #k 에서 화상 #m = 화상 #1, GOP #j 부분 (102) 가 GOP #j 의 전체에 대응하고, GOP #k 부분 (103) 이 GOP #k 의 전체에 대응하며, 편집 지점 (A 및 B) 를 붙이도록 편집한 후 재 인코딩된 화상 그룹 (=편집된 화상 그룹) 이 제 1 패스에서 GOP 와 동일한 위상을 갖는 경우이다. 이러한 경우에, 제 2 패스 인코딩은 위의 (1) 및 (2) 의 경우와 달리 여하한 이미지를 삽입하지 않고 GOP 의 복잡도를 이용하여 수행될 수 있다. GOP # k 부분 (103)=GOP #k 는 닫힌 GOP가 될 수 있다.
(4) n+(N-m+1)=N (도 8 참조)
도 8 을 참조하면, 편집된 화상 그룹을 이루는 화상의 총 수가 n+(N-m+1)=N 이라는 것은, GOP #j 에서 헤드 화상 #1 로부터 편집 지점 (A) 직전의 화상 #n 까지의 화상으로 구성된 GOP #j 부분 (102) 을 이루는 화상의 수 n 과, GOP #k 에서 편집 지점 (B) 직후의 화상 #m 으로부터 마지막 화상 #N 까지의 화상으로 구성된 GOP #k 부분 (103) 을 이루는 화상의 수 (N-m+1) 의 합 n+(N-m+1) 이 N 임을 의미한다.
이 경우에도, 편집 지점 (A 및 B) 을 붙이도록 편집한 후 재 코딩된 화상 그룹 (=편집된 화상 그룹) (131) 은 GOP 와 동일한 위상을 갖는다. 그러므로, 제 2 패스 인코딩은 상기 (3) 의 경우와 같이 여하한 삽입 이미지를 삽입하지 않고 수행될 수 있다.
(5) 헤드에 존재하는 GOP #k (도 9 참조)
도 9 를 참조하면, 이는 도 4a 에 도시된 바와 같이 편집된 스트림이 편집 지점 (B) 으로부터 원 스트림의 마지막 화상까지의 범위인 경우, 예를 들어 GOP #k=GOP #1 인 경우이다.
이 경우, 편집된 화상 그룹은, GOP #k 에서 편집 지점 (B) 직후의 화상 #m 으로부터 마지막 화상 #N 까지의 화상을 포함하는 GOP #k 부분 (103) 을 포함한다. 그러나, 편집된 화상 그룹이 그 자체로 헤드 GOP 로 이용되는 경우, GOP #k 의 화상 #m 이 I-화상으로 인코딩되고, 이는 제 2 패스 인코딩에서 화상 위상의 부정렬 (unalignment) 을 유발하여, 원 스트림의 복잡도를 참조로 이용할 수 없게 한다. 이를 피하기 위해, 재 인코딩된 화상 그룹 (141) 을 생성하도록 (m-1) 개의 삽입 이미지가 GOP #k 부분 (103) 전의 위치에 삽입되어, 화상의 수가 N 에 도달한다. 위상 정렬을 위해 삽입된 삽입 이미지 (제 3 삽입 이미지) 는 M1 내지 M(m-1) 의 소정 단색 (monochromatic) 이미지 일 수 있다. 예를 들어, GOP #k 의 화상 #m 으로부터 디코딩된 디코딩된 이미지 K 를 삽입 이미지로 사용하는 것도 가능하다. 위상 정렬을 위해 단색 이미지를 삽입하는 것은 코드 길이의 증가를 억제할 수 있게 하고, 단색 이미지에 대해 소정의 복잡도가 사용될 수 있다.
삽입 이미지를 인코딩하여 얻어지는 삽입 화상도 원 스트림에는 존재하지 않으며, 그 복잡도는 분석되지 않는다. 그러나, 단색 이미지가 삽입 화상으로 인코딩되는 때에, 필요한 코드 길이는 매우 작으며 복잡도의 값은 적당하게 설정될 수 있다. 디코딩된 이미지 K 가 삽입 이미지로 사용되는 경우, 복잡도는 상술한 바와 같이 GOP #k 의 화상 #m 을 생성할 때의 복잡도로부터 계산될 수 있다.
(6) 마지막에 존재하는 GOP #j (도 10 참조)
도 10 을 참조하면, 이는 도 4a 에 도시된 바와 같이 편집된 스트림이 원 스트림의 헤드 화상으로부터 편집 지점 (A) 까지의 범위인 경우, 예를 들어 GOP #j=GOP #S 인 경우이다.
이 경우, 편집된 화상 그룹은, GOP #j 에서 헤드 화상 #1 로부터 편집 지점 (A) 직전의 화상 #n 까지의 화상을 포함하는 GOP #j 부분 (102) 을 포함한다. 화상의 수는 n 이다. GOP #j 의 화상 #n 으로부터 디코딩된 (N-n) 개의 이미지 J 가, 재 인코딩된 화상 그룹 (151) 을 생성하도록 GOP #j 부분 (102) 에 후속하는 위치에 제 4 삽입 이미지로 삽입되어, 화상의 총 수는 N 에 도달하고 GOP 길이가 정렬된다.
그러나, GOP #j 가 마지막 GOP 인 경우, (N-n) 개의 삽입 이미지를 삽입하지 않고 화상 위상을 정렬하여 제 2 패스 인코딩에서 제 1 패스에서의 복잡도를 참조하는 것이 가능하다. 구체적으로, 화상 #n 이 화상 #1 이고 I-화상인 경우, 여하한 삽입 이미지 없이 편집 지점 (A) 까지의 복잡도에 대해 원 스트림 (ST0) 의 복잡도를 참조하는 것이 가능하고, 그에 의해 2-패스 인코딩을 가능케 한다. 화상 #n 이 P-화상 또는 B-화상인 경우, 화상 #n 을 디코딩하기 위해 요구되는 최소 수의 삽입 이미지가 2-패스 인코딩을 가능케 하기 위해 삽입된다. 이 경우, 편집 지점 (A) 까지의 복잡도에 대해 원 스트림 (ST0) 의 복잡도를 참조하고 GOP #j 의 화상 #n 의 복잡도로부터 삽입 화상의 복잡도를 계산하는 것이 가능하다.
상술한 바와 같이, 원 스트림을 구성하는 GOP 의 일부을 편집하고, 편집 후 디코딩하고, 코딩된 스트림을 재 인코딩한 후에도, 원 스트림과 동일한 프레임은 정렬된 화상의 위상으로 동일한 화상 유형을 가질 수 있다. 그러므로, 편집된 스트림은 원 스트림과 동일한 화상 유형으로 인코딩되고, 이미지 품질의 열화가 일어나지 않는다. 또한, 원 스트림을 생성하는 때에 복잡도가 분석되는 경우, 분석된 복잡도는 편집된 코딩 스트림을 생성할 때 참조될 수 있으며, 이는 복잡도에 따라 할당되는 최적 코드 길이로 2-패스 인코딩이 가능하게 한다.
이상의 설명에서, (1), (4), (5) 및 (6) 의 경우 재 인코딩된 화상 그룹 (101, 131, 141 또는 151) 을 구성하는 화상의 총 수는 N 이고, (2) 및 (3) 의 경우 재 코딩된 화상 그룹 (111 또는 121) 을 구성하는 화상의 총 수는 2N 이다. 그러나 재 인코딩된 화상 그룹을 구성하는 화상의 총 수는 그에 제한되지 않는다. 재 코딩된 화상 그룹을 구성하는 화상의 총 수가 N 의 정수배라면, 편집된 코딩 스트림 (ST1) 의 편집 지점의 전 또는 후의 위치의 프레임을 원 스트림 (ST0) 에서와 동일한 화상 유형을 갖도록 설정함으로써 편집된 코딩 스트림 (ST1) 내의 편집 지점 (A) 에 대해 화상의 위상이 정렬될 수 있다.
이하 본 실시형태에 따른 2-패스 인코딩 방법을 상세히 설명한다. 도 11a 및 11b 는 제 2 패스 에 대한 인코딩 프로세스를 도시하는 흐름도이다. 이미지 인코딩 장치 (1) 에 연결된 저장 장치 (30) 는 이미 복잡도가 분석된 원 스트림을 저장한다. 사용자는 타이틀을 편집함으로써 재생 목록을 생성하고, 이는 그 후 2-패스 인코딩을 이용하여 저장 장치 (40) 에 저장된다.
이하의 설명은 편집된 타이틀을 디스플레이 (5) 에 재생하는 것 및 편집된 타이틀을 재 인코딩하고 그를 저장 장치 (40) 에 저장하는 것 모두의 경우에 관한 것이나, 편집된 타이틀을 디스플레이 (5) 에 재생하지 않고 저장하는 것도 가능하다. 본 설명은, 저장 장치 (30) 에 저장된 원 스트림 (ST0) 이 제 1 패스에 대한 원 코딩된 스트림이고, 저장 장치 (40) 에 저장될 편집된 코딩 스트림 (ST1) 이 2-패스 인코딩에 의해 인코딩된 편집된 MPEG-코딩된 스트림인 경우에 관한 것이다.
도 11a 에 도시된 바와 같이, 이미지 인코딩 장치 (1) 는 먼저, 편집된 재생 목록으로부터 화상의 총 수, 편집 지점을 포함하는 GOP 의 재생 시간 및 각 편집 지점의 재생 시간에 대한 정보를 획득한다 (단계 S1). 그들 정보를 획득한 후에, 디스플레이 (5) 는 편집된 원 스트림 (타이틀) 을 표시한다 (단계 S2). 그 후 편집기 (3) 는 편집 지점이 (1) 내지 (6) 의 경우 중 어느 것에 적용되는지를 결정하고, 결정 결과에 따라 디코딩 프로세서 (4) 및 인코딩 프로세서 (2) 의 동작을 제어하여 2-패스 인코딩을 구현한다. 먼저, 편집 지점이 재생 목록의 헤드 GOP 내에 존재하는지 여부가 결정된다 (단계 S3). 헤드 GOP 내에 편집 지점이 존재하지 않으면, 프로세스는 후술하는 바와 같이 도 11b 에 도시된 처리로 진행한다.
반면, 헤드 GOP 에 편집 지점이 존재하는 경우, 편집기 (3) 는 이하의 프로세스를 수행한다. 이 예에서는, 편집 지점 (B) 이 헤드 GOP 에 존재하는 도 9 에 도시된 (5) 의 경우에 대해 설명한다. 이 경우, 디코딩 프로세서 (4) 는 편집기 (3) 의 제어 하에서 헤드 GOP 로부터 디코딩 과정을 시작하지만, 편집 지점 (B) 의 재생 시간까지는 GOP 을 출력하지 않는다. 이 기간 동안, 디스플레이 (5) 는 이미지 재생 대신에 소정의 단색 이미지와 같은 삽입 이미지를 표시하고 (삽입 이미지 출력 (비디오 뮤트 제어)), 오디오 재생 대신 뮤팅 (muting) 을 수행한다 (오디오 뮤트 제어) (단계 S4). 인코딩 프로세서 (2) 는 복잡도에 따라 코드 길이를 제어함으로써 디코딩 프로세서 (4) 로부터 출력된 단색 이미지와 같은 삽입 이미지에 대해 2-패스 인코딩을 구현한다.
처리되고 있는 편집 지점 (B) 에 도달할 때까지, 디코딩 프로세서 (4) 로부터 출력된 삽입 이미지는 소정 유형의 화상으로 인코딩된다. 가장 바람직하게는, 화상 구성이 원 스트림의 GOP 와 동일하도록 인코딩이 수행될 수 있다. 그러나, 편집 지점 (B) 후의 화상의 위상이 (N-m) 개의 삽입 이미지의 삽입에 의해 정렬될 수 있으므로, 삽입 이미지로부터 인코딩된 화상 유형은 원 스트림의 GOP 의 화상 구성과 상이할 수 있다. 삽입 이미지는 원 스트림 (ST0) 에 존재하지 않으므로, 삽입 이미지의 복잡도는 아직 얻어지지 않는다.
본 실시형태에서, 복잡도 계산기 (52) 는 필요에 따라 삽입 이미지의 복잡도를 계산한다. 예를 들어, 삽입 이미지의 복잡도는 원 스트림 내의 헤드 GOP 의 해당 복잡도에 기초하여 계산될 수 있다. 삽입 이미지가 단색 이미지인 경우, 필요한 코드 길이는 아주 작고 미리 정해진 복잡도 등이 사용될 수 있다. 헤드에 배열된 삽입 이미지는 I-화상으로 디코딩되므로, 삽입 이미지의 복잡도는 원 스트림의 헤드 GOP 의 헤드 화상의 복잡도와 동일하거나 그 부분 (fraction) 일 수 있다. 코드 길이 할당기 (24) 는 복잡도를 불러오고 (retrieve) 복잡도에 따라 목표 코드 길이를 결정한다. 그에 의해 인코딩 프로세서 (2) 는 삽입 이미지를 GOP 와 동일한 화상의 위상을 갖도록 연속적으로 인코딩한다 (단계 S5).
편집 지점 (B) 의 재생 시간에 도달한 때 (단계 S6 에서 "예"), 디코딩 프로세서 (4) 는 GOP #k 내 화상 #m 및 후속 화상의 디코딩 결과를 출력한다 (디코딩된 이미지 출력 (비디오 언뮤트 (unmute))/오디오 언뮤트 제어) (단계 S7). 그에 의해 인코딩 프로세서 (2) 는 편집 지점 (B) 에 도달한 후 원 스트림의 디코딩된 데이터를 수신하고 그들을 인코딩한다. 편집 지점 (B) 후의 화상은 원 스트림의 대응 화상과 동일한 화상의 위상을 가지므로, 복잡도 계산기 (52) 는 저장 장치 (30) 에 저장된 원 스트림의 복잡도를 읽어 오고 코드 길이 할당기 (24) 는 복잡도에 따라 목표 코드 길이를 결정하여, 인코더 (21) 는 디코딩된 데이터를 목표 코드 길이로 MPEG-인코딩한다. 그 후 프로세서는 후술하는 단계 10 으로 진행한다.
단계 S3 에서 GOP 내에 편집 지점이 없는 것으로 결정되면, 프로세스는 도 11b 의 단계 S8 로 진행한다. 재생 목록 내 헤드 GOP 에 편집 지점이 없으면, 디코딩 프로세서 (4) 는 헤드 GOP 로부터 디코딩을 시작한다. 그리고, 인코딩 프로세서 (2) 에서, 복잡도 계산기 (52) 는 원 스트림 내 해당 GOP 의 각 화상의 복잡도를 읽어 오고, 코드 길이 할당기 (24) 는 목표 코드 길이를 계산 및 할당하 며, 인코더 (21) 는 디코딩 프로세서 (4) 로부터 출력된 디코딩된 데이터를 목표 코드 길이로 MPEG-인코딩한다 (단계 S9).
이러한 방식으로, 인코딩 프로세서 (2) 는 편집 지점 (A) 의 재생 시간에 도달할 때까지 디코딩 프로세서 (4) 에 의해 디코딩된 이미지를 복잡도에 따라 제어되는 적절한 코드 길이로 인코딩하는 2-패스 인코딩을 구현한다. 편집 지점 (A) 의 재생 시간에 도달한 때 (단계 S10 의 "예"), 디코딩 프로세서 (4) 는 직전에 디코딩된 GOP #j 의 화상 #n 의 디코딩된 이미지 J 를 반복적으로 디코딩하는 등의 방식으로 출력을 정지한다 (디코딩 정지 제어). 이 기간 동안, 오디오는 뮤트된다 (오디오 뮤트 제어) (단계 S11).
그 후, 편집 지점 (A), 및 편집 지점 (A) 에 붙여진 편집 지점 (B) 를 포함하는 편집된 화상 그룹을 구성하는 화상의 총 수 (n+(N-m+1)) 가 N 보다 작은 경우 (단계 S12 에서 "예"), 즉 도 4 에 도시된 (1) 의 경우, (m-n-1) 개의 디코딩된 이미지 J 가 인코딩된다. 인코딩 프로세서 (2) 에서, 복잡도 계산기 (52) 는 후술하는 바와 같이 복잡도 Xpr 및 Xbr 을 계산하고, 코드 길이 할당기 (24) 는 복잡도 Xpr 및 Xbr 로부터 목표 코드 길이를 계산하며, 인코더 (21) 는 목표 코드 길이가 달성되도록 인코딩을 구현한다 (단계 S13).
인코더 (21) 가 (m-n-1) 개의 디코딩된 이미지 J 를 인코딩한 후, 즉 이미지 J 로부터 인코딩된 (m-n-1) 개의 삽입 화상을 삽입한 후에, 편집기 (3) 는 인코더 (21) 가 인코딩 과정을 정지하도록 제어한다 (인코딩 정지 제어) (단계 S15). 편집기 (3) 가 편집 지점 (A 와 B) 사이에, GOP #j 의 화상 #n 으로부터 디코딩된 이미지 J 로부터 인코딩된 (m-n-1) 개의 삽입 화상을 삽입하여, 재 코딩된 화상 그룹을 구성하는 화상의 총 수가 N 에 도달한다. 재 코딩된 화상 그룹 내 편집 지점 (A) 전의 화상 및 편집 지점 A 후의 화상은 그에 의해 원 스트림 내 화상의 위상과 정렬될 수 있다.
그 후, 편집 지점 (A) 후의 GOP #j 의 나머지 부분이 디코딩되도록, 디코딩 프로세서 (4) 에서 편집기 (3) 가 디코딩 정지 제어 및 오디오 뮤트 제어에서 해제된다. 인코딩 프로세서 (4) 가 GOP #j 의 디코딩을 완료한 후, 편집기 (3) 는 편집 지점 (A) 와 연속하여 배열된 편집 지점 (B) 를 포함하는 GOP #k 를 디코딩 프로세서 (4) 에 공급한다. 디코딩 프로세서 (4) 는 그 후 편집 지점 (B) 를 포함하는 GOP #k 를 디코딩한다 (단계 S17). 편집 지점 (B) 의 재생 시간에 도달한 때에 (단계 S18 의 "예"), 편집기 (3) 는 인코딩 정지 제어에서 해제되도록 인코딩 프로세서 (2) 를 제어한다 (인코딩 재개 제어). 인코더 (21) 는 그에 의해 편집 지점 (B) 의 후속 부분의 디코딩된 이미지 데이터를 인코딩하기 시작한다 (단계 S19).
편집된 화상 그룹을 구성하는 화상의 총 수 (n+(N-m+1)) 가 N 보다 큰 경우 (단계 S12 의 "아니오" 및 단계 S20 의 "예"), 즉 도 6 에 도시된 (2) 의 경우, 인코딩 프로세서 (2) 내의 복잡도 계산기 (52) 는 후술하는 바와 같이 복잡도 Xir, Xpr 및 Xbr 을 계산하고, 코드 길이 할당기 (24) 는 복잡도 Xir, Xpr 및 Xbr 로부터 목표 코드 길이를 계산하며, 인코딩 프로세서 (2) 는 목표 코드 길이가 달성되도록 인코딩을 구현한다 (단계 S21).
인코딩 프로세서 (2) 가 (N-n+m-1) 개의 디코딩된 이미지 J 를 인코딩한 후, 즉 이미지 J 로부터 인코딩된 (N-n+m-1) 개의 삽입 화상을 삽입한 후 (단계 S22 의 "예"), 상술한 단계 S15 로부터의 프로세스가 수행된다. 구체적으로, 편집기 (3) 는 인코딩 프로세서 (2) 의 인코딩 정지 제어를 수행하고, 디코딩 프로세서 (4) 가 GOP #j 의 나머지 부분을 디코딩하고 GOP #k 의 헤드 화상으로부터 디코딩을 시작하도록 하며, 편집 지점 (B) 의 재생 시간에서 인코딩 프로세서 (2) 의 인코딩 재개 제어를 수행한다 (단계 S15 내지 S19). 전술한 바와 같이, 디코딩된 이미지 J 로부터 인코딩된 (N-n) 개의 화상을 삽입하는 것 및 디코딩된 이미지 K 로부터 인코딩된 (m-1) 개의 화상을 삽입하는 것도 가능하다.
편집된 화상 그룹을 구성하는 화상의 총 수 (n+(N-m+1)) 가 2N 인 경우 (단계 S20 의 "아니오" 및 단계 S23 의 "예"), 즉 도 7 에 도시된 (3) 의 경우, 또는 편집된 화상 그룹을 구성하는 화상의 총 수 (n+(N-m+1)) 가 N 인 경우, 즉 도 8 에 도시된 (4) 의 경우, 프로세스는 단계 S25 로 진행한다. 화상의 총 수 (n+(N-m+1)) 가 2N 인 경우 (단계 S23 의 "예"), 편집기 (3) 는 편집 지점 (B) 를 포함하는 GOP #k 가 닫힌 GOP (closed) 가 되도록 인코딩 프로세서 (2) 에 명령한다.
전술한 바와 같이, 편집기 (3) 는 디코딩 프로세서 (4) 및 인코딩 프로세서 (2) 의 동작을 2-패스 인코딩될 편집된 화상 그룹을 구성하는 화상의 총 수 (n+(N-m+1)) 에 따라 적절하게 제어한다. 편집 지점이 존재하지 않는 경우, 디코딩 프로세서 (4) 는 편집기 (3) 에 의해 공급된 재생 목록에 의해 표시된 GOP 를 디코딩하고, 인코딩 프로세서 (2) 는 디코딩된 이미지를 연속적으로 MPEG-인코딩한다. 디코딩 프로세서 (4) 가 재생 목록의 마지막 GOP 를 디코딩하고 인코딩 프로세서 (2) 가 그것을 인코딩 한 후 (단계 S25 의 "예"), 편집기 (3) 는 인코딩 프로세서 (2) 에서의 인코딩을 종료한다 (단계 S26).
본 실시형태는 단색 이미지로 또는 편집 지점 직전 또는 직후의 화상으로부터 디코딩된 디코딩 이미지로부터 인코딩된 화상을 삽입하며, 그에 의해 편집 지점 (A) 전 및/또는 편집 지점 (B) 후의 화상의 위상이 원 스트림의 화상의 위상과 정렬될 수 있도록 한다. 이는 원 스트림을 인코딩할 때 분석된 복잡도를 참조하고 적절한 목표 코드 길이를 설정함으로써 2-패스 인코딩을 가능하게 한다.
2-패스 인코딩을 가능케 하기 위해, 프로세스는 디코딩 프로세서 (4) 를 정지-제어하고, 예를 들어 도 5 에 도시된 하나 이상의 디코딩된 이미지 J 를 삽입하여 화상의 위상을 정렬한다. 삽입 이미지 (디코딩된 이미지 J, K, 단색 이미지등 ) 로부터 인코딩된 화상은 원 스트림에 존재하지 않으므로, 복잡도는 그로부터 참조될 수 없다. 그러므로, 본 실시형태는 원 코딩된 스트림의 복잡도로부터 삽입 이미지의 복잡도를 추정한다.
인코딩 프로세서 (2) 의 코드 길이 할당기 (24) 에서의 목표 코드 길이 계산 방법 및 원 스트림에 존재하지 않는 삽입 이미지를 인코딩할 때 복잡도를 계산하는 방법을 이하에서 설명한다. 도 12a 및 12b 는 복잡도를 이용하여 목표 코드 길이를 계산하는 프로세스를 도시하는 흐름도이며, 도 13 은 삽입 화상의 복잡도를 계산하는 프로세스를 도시하는 흐름도이다.
프레임 f 의 인코딩에 의해 입력 디코딩 이미지가 분석될 수 있는 프레임의 수는 La 이다. 도 12a 에 도시된 바와 같이, 복잡도 계산기 (52) 는 먼저 재생 목록으로부터 편집 지점의 총 수, 편집 지점을 포함하는 GOP 위치, 및 편집 지점의 화상 위치를 획득한다 (단계 S31). 코드 길이 할당기 (24) 는 입력된 디코딩된 이미지의 프레임 수 f 를 -La+1 로 초기화한다 (단계 S32).
그 후, 복잡도 계산기 (52) 는 재생 목록을 따라 연속적으로 GOP 의 복잡도 X[s,t] 를 읽는다 (단계 S33). 원 스트림 (ST0) 의 복잡도는 미리 분석되고 예를 들어, 원 스트림 (ST0) 과 함께 저장된다. 복잡도 X[s,t] 는 원 스트림 (ST0) 내 GOP #s (1≤s≤S) 의 화상 #t (1≤t≤N) 의 복잡도를 나타낸다.
편집 지점 (A) 직전의 화상의 복잡도 X[s,t]=X[#j, #n] 의 판독이 완료된 후 (단계 S34 의 "예"), 본 실시형태는 필요에 따라 위상을 정렬하기 위한 삽입 이미지를 후속 위치로 삽입한다. 그러므로, 편집 지점 사이에 삽입될 삽입 이미지의 복잡도가 계산된다 (단계 S35). 이 단계의 상세는 도 13 을 참조하여 이후에 상세히 설명한다.
그 후 복잡도 계산기 (52) 는 입력 프레임 f 가 프레임의 수 La 를 만족하는지 여부를 결정한다 (단계 S36). 입력 이미지의 프레임 수가 프레임 수 La 보다 작으면, 즉 -La+1 로 초기화된 이미지의 프레임 수 f 가 f<0 이면, 복잡도 계산기 (52) 는 f 의 값을 증가시키고 (단계 S38) 다음 이미지의 복잡도를 읽는다.
반면, 입력 이미지의 프레임 수가 프레임 수 La 와 같으면 (j=0), 복잡도 계산기 (52) 는 프레임 f 가 인코딩을 위한 단위 간격 C 의 배수인지 여부를 결정한다 (단계 S37).
프레임 수 f 가 인코딩을 위한 단위 간격 C 의 배수가 아닌 경우, 복잡도 계산기 (52) 는 f 의 값을 증가시키고 (단계 S38) 다음 이미지의 복잡도를 읽는다.
반면, 프레임 수 f 가 인코딩을 위한 단위 간격 C 의 정수배인 경우, 코드 길이 할당기 (24) 는 코드 길이 할당 간격 C 에 코드 길이를 할당한다.
먼저, 할당 인터벌 내의 총 코드 길이 Ra 가 제 2 패스 인코딩의 비트 레이트에 기초하여 계산된다. 총 코드 길이는 버퍼 점유율 BOC[f] 를 고려하여 조정될 수 있다 (단계 S39).
그 후, 코드 길이 할당기 (24) 는 각각의 프레임의 목표 코드 길이를 계산한다. 각 프레임의 목표 코드 길이 T[f] 는, 복잡도 X[s,t] 에 비례하여 코드 길이 할당 간격에 할당될 수 있는 Ra[f] 를 할당함으로써 계산될 수 있으며, 이는 다음과 같이 표현된다:
T[f] = (X[s,t]/Xsum)*Ra[f]
여기서, Xsum 은 할당 간격 내의 총 복잡도 X[s,t] 이다. 목표 코드 길이 T[f] 는 프레임 f 내지 프레임 f+L-1 까지의 프레임 각각에 대해 계산된다 (단계 S41).
그 후, 코드 길이 할당기 (24) 는 인코딩 버퍼 (22) 내 할당된 목표 코드 길이의 버퍼 점유율을 계산한다 (단계 S41). 예를 들어, 버퍼 점유율 BOC[f] 는 다음과 같이 계산될 수 있다:
BOC[f] = BOC[f-1]+T[f]-Rframe
여기서, Rframe 은 본 실시형태의 인코딩에서 사용되는 비트 레이트 R 로부 터 계산되는 프레임당 코드 길이이다. 버퍼 점유율의 초기 값은 BOC[0]=0 이다.
그리고, 코드 길이 할당기 (24) 는 계산된 버퍼 점유율 BOC[f] 에 기초하여 인코딩 버퍼 (22) 에서 오버플로우 또는 언더플로우가 발생하는지 여부를 결정한다. 예를 들어, 인코딩 버퍼 (22) 의 상한이 B 인 경우, 버퍼 점유율 BOC[j] 가 B-Rframe 보다 작은지 여부가 결정된다.
인코딩 버퍼 (22) 에서 언더플로우가 발생하는 경우 (단계 S42 의 "예"), 코드 길이 할당기 (24) 는 인코딩 버퍼 (22) 에서 언더플로우가 발생하는 것을 막기 위해 코드 길이를 조정한다. 예를 들어, 인코딩 버퍼 (22) 내 코드 길이의 점유율을 가장 낮게 하는 프레임 fu 를 검출하고, 프레임 fu 에 의해 인코딩 버퍼 (22) 내에서 언더플로우가 발생하지 않는 방식으로 프레임 f 내지 fu 에 할당된 코드 길이를 증가시킨다. 그 후, 프레임 fu+1 내지 f+L-1 에 할당된 코드 길이는 코드 길이의 증분에 해당하는 양만큼 감소된다.
반면, 인코딩 버퍼 (22) 에서 오버플로우가 발생하는 경우 (단계 S44 의 "예"), 코드 길이 할당기 (24) 는 인코딩 버퍼 (22) 에서 오버플로우가 발생하는 것을 막기 위해 코드 길이를 조정한다. 예를 들어, 인코딩 버퍼 (22) 내 코드 길이의 점유율을 가장 높게 하는 프레임 fo 를 검출하고, 프레임 fo 에 의해 인코딩 버퍼 (22) 내에서 오버플로우가 발생하지 않는 방식으로 프레임 f 내지 fo 에 할당된 코드 길이를 감소시킨다. 그 후, 감소분에 해당하는 코드 길이가 프레임 fo+1 내지 f+L-1 에 할당된다 (단계 S45).
인코딩 버퍼 (22) 에서 오버플로우 또는 언더플로우가 발생하지 않는 적절한 할당이 제공된 경우 (단계 S42 의 "아니오", 단계 S44 의 "아니오"), 인코더 (21) 는 할당 간격 C 에 대해 인코딩을 수행한다 (단계 S46). 그 후, 프로세스는 단계 S38 로 진행하여 프레임 f 의 값을 증가시키며 (단계 S38), 복잡도 계산기 (52) 는 다음 이미지의 복잡도를 읽고 상기 프로세스를 반복한다.
삽입 이미지 J 의 복잡도를 계산하는 프로세스가 이하 설명된다. 도 13 을 참조하면, 재 코딩된 화상 그룹을 구성하는 화상의 총 수 n+(N-m+1) 가 N 보다 작은지 여부가 먼저 결정된다 (단계 S51). 총 수가 N 보다 작으면, s=j 이고 t=n+1 이도록 설정되고 (단계 S52), t=m-1 에 도달할 때까지 (단계 S53) 복잡도 X[s,t] 가 연속적으로 계산된다 (단계 S54).
t 가 t=n 에서 m-1 까지인 동안, 동일한 디코딩된 이미지 J 의 인코딩 프로세스가 수행된다. 이 경우, 디코딩된 이미지 J 는 상술한 바와 같이 편집 지점 (A) 에서의 정지에서 표시되고, 제 1 패스 인코딩에서의 원 스트림에 존재하지 않은 새로운 이미지가 디코딩된 이미지 J 를 인코딩하기 위해 삽입된다. 이 삽입 이미지의 복잡도는 제 1 패스 인코딩 과정에서 획득되지 않는다. 그러므로 화상 당 목표 코드 길이는 그 자체로 계산될 수 없다.
삽입 이미지는 t=n 인 디코딩된 이미지 J 이다. 본 실시형태에서, 디코딩된 이미지 J 가 인코딩되는 화상 유형에 따라, 디코딩된 이미지 J 의 복잡도 X[#j, #n] 를 이용하여 계산이 수행된다. 디코딩된 이미지 J 가 P-화상으로 인코딩되는 경우, 계산을 위해 이용되는 복잡도는 다음과 같다:
복잡도 Xpr = X[#j, #n]/Dp
디코딩된 이미지 J 가 B-화상으로 인코딩되는 경우, 계산을 위해 이용되는 복잡도는 다음과 같다:
복잡도 Xbr = X[#j, #n]/Db
Dp 및 Db 의 값은 0<Dp≤Db 이고, 이들은 다음과 같이 설정될 수 있다 : 예를 들어, Xpr = X[#j, #n]/3 이고, Xbr = X[#j, #n]/10. 제 1 패스 인코딩에서 동일한 화상의 반복이 존재한다면, Dp 및 Db 는 그 복잡도를 참조하여 결정될 수 있다. 편집 지점 (B) 후의 화상의 위상을 정렬하기 위해 (m-n-1) 개의 삽입 화상이 삽입되고, 이 (m-n-1) 개의 화상은 원 스트림의 화상 t=n+1 내지 m-1 과 동일한 화상 유형을 가질 필요는 없다. 편집 지점 (A) 전 또는 편집 지점 (B) 후의 부분에 할당되는 코드 길이를 증가시킬 필요가 있다면, 원 스트림에 비해 B-화상의 수를 증가시켜, 그에 의해 삽입 화상의 복잡도를 감소시킬 수 있다.
삽입 이미지가 t=n 인 디코딩된 이미지 J 로 설명되었으나, 삽입 이미지는 s=k 및 t=m 인 디코딩된 이미지 K 일 수 있다. 그러므로 GOP #k 의 화상 #m 으로부터 디코딩된 디코딩된 이미지 K 의 복잡도 X[#k, #m] 에 기초하여, 상술한 것과 동일한 방법으로 삽입 이미지의 복잡도를 계산할 수 있다.
또한, 원 스트림의 디코딩된 이미지 J 또는 K 의 화상 유형에 따라 Dp 및 Db 의 값을 조정하는 것도 가능하다. 예를 들어, 디코딩된 이미지 J 또는 K 가 원 스트림 (ST0) 에서 I-화상인 경우 Dp 및 Db 는 더 크게 설정될 수 있고, 디코딩된 이미지 J 또는 K 가 원 스트림 (ST0) 에서 B-화상인 경우, Dp 및 Db 는 상대적으로 작게 설정될 수 있다. 구체적으로, 상기 예에서 Dp=3 이고 Db=10 이지만, 복잡도가 디코딩된 이미지 J 또는 K 를 인코딩하는 때의 복잡도와 같거나 더 크도록, 디코딩된 이미지 J 또는 K 의 화상 유형 등에 따라 Dp=1/3 이고 Db=1 로 설정할 수 있다.
그 후 t 의 값은 연속적으로 증가되고 (단계 S55), t=m 에 도달할 때, 프레임 f=f+(m-n-1) 이도록, 프레임 수 f 는 삽입 화상의 총 수 (m-n-1), 즉 삽입 화상의 프레임의 수만큼 증가된다 (단계 S56). 그 후 프로세스는 도 12a 의 단계 S36 으로 진행한다.
재 인코딩된 화상 그룹을 구성하는 화상의 총 수 n+(N-m+1) 가 N 보다 크고 2N 보다 작은 경우 (단계 S57), 그 값은 s=j 및 t=n+1 이도록 정해지고 (단계 S58), t=N 에 도달할 때까지 (단계 S59) 상술한 단계 S54 와 동일한 방식으로 t 의 값을 증가시키면서 복잡도 Xpr 및 Xbr 이 계산된다 (단계 S60 및 S61).
t=N 을 초과하는 때에, 값은 s=k 및 t=1 이도록 정해지고 (단계 S62), t=m 에 도달할 때까지 (단계 S63), t 의 값을 증가시키면서 복잡도 X[s,t] 가 계산된다 (단계 S64 및 S65). s=k 및 t=1 에 배열된 화상이 GOP 의 헤드 화상이므로, 이는 I-화상이다. I-화상이 디코딩된 이미지 J 의 정지 이미지이기는 하지만, I-화상이기 때문에 P- 또는 B-화상에 비해 큰 코드 길이가 할당될 필요가 있다. I-화상인 s=k, t=1 인 이미지의 복잡도 X[#k, #1] 는 그 자체로 원 스트림 (ST0) 의 복잡도 X[#k, #1] 라 할 수 있다. t=1 후의 P-화상 및 B-화상은 동일한 방식으로 복잡도 Xpr = X[#j, #n]/Dp 및 Xbr = X[#j, #n]/Dp 로 계산될 수 있다. t=m 에 도달하는 때에, 프레임 f=f+(N-n)+m-1 이도록, 프레임 f 는 삽입 화상의 총 수 (N-n)+m-1 만큼, 즉 삽입 화상의 프레임 수만큼 증가된다 (단계 S66). 그 후프로세스는 도 12a 의 단계 S36 으로 진행한다.
도 12a, 12b 및 13 의 프로세스에 대한 타이밍은, 도 11a 및 11b 에 도시된 바와 같이 인코딩 프로세서 (2) 에서 수행되는 2-패스 인코딩의 프로세스에서 각각의 프레임 (디코딩된 이미지) 을 인코딩하기 전에 목표 코드 길이가 계산될 수 있도록 결정된다.
본 실시형태는 편집 지점 전후의 화상의 위상이 원 스트림으로부터 프레임 (화상) 단위로 편집되는 편집된 타이틀 (재생 목록) 내에서 원 스트림 (ST0) 의 위상과 정렬될 수 있도록 한다. 그러므로, 더 낮은 비트 레이트로 재 인코딩한 후에도 이미지 품질의 열화를 최소화할 수 있다. 또한, 복잡도가 원 스트림을 인코딩하는 때에 분석되고 계산되는 경우, 복잡도를 참조하고 복잡도에 기초하여 목표 코드 길이를 계산하며 그에 의해 2-패스 인코딩에 의해 편집된 코딩 스트림 (ST1) 을 생성하는 것이 가능하다. 이는, 2-패스 인코딩을 구현함으로써 최소의 이미지 품질 열화로, 예를 들어 화상 단위로 편집된, 큰 저장 용량을 갖는 HDD 등에 레코딩된 높은 비트 레이트의 원 스트림으로부터 작은 저장 용량을 갖는 DVD 등으로 레코딩 (더빙) 하기 위해 편집된 코딩 스트림 (ST1) 을 생성하는 것을 가능케 한다.
결과적으로, 편집 지점 직전의 디코딩된 이미지를 인코딩하고 편집 지점들 사이에 소정 프레임 (삽입 이미지) 를 삽입함으로써, 편집 지점의 GOP 경계에 걸쳐 화상의 위상을 유지하는 것이 가능하다. 또한, 삽입 프레임은 화상이 정지에서 표시되는 편집 지점 직전의 디코딩된 이미지이므로, 디코딩된 이미지를 인코딩하기 위한 복잡도 X 는 원 스트림으로부터 얻은 복잡도의 부분 (fraction) Dp 또는 Db 로 결정될 수 있다. 상기 프로세스는 편집된 코딩 스트림 (ST1) 을 생성하기 위해 각각의 화상의 복잡도를 획득할 수 있게 하고, 그에 의해 2-패스 인코딩을 가능하게 한다.
본 발명은 상술한 실시형태에 제한되지 않으며, 본 발명의 범위를 벗어나지 않고 다양한 변화가 이루어질 수 있다. 예를 들어, 도 1 내지 3 에 도시된 각각의 블록에서 CPU (중앙 처리 유닛) 상의 컴퓨터 프로그램을 수행함으로써 선택적인 (optional) 처리가 구현될 수 있다. 이 경우, 컴퓨터 프로그램은 레코딩 매체에 저장되거나 인터넷 등의 통신 매체를 통하여 전송될 수 있다.
본 발명은 상기 실시형태에 제한되지 않으며, 상기 실시형태는 본 발명의 사상 및 범위를 벗어남이 없이 변형 및 변경될 수 있음은 명백할 것이다.
이상에서와 같이 본 발명에 따르면, 원 스트림을 구성하는 GOP 의 일부을 편집하고, 편집 후 디코딩하고, 코딩된 스트림을 재 인코딩한 후에도, 원 스트림과 동일한 프레임은 정렬된 화상의 위상으로 동일한 화상 유형을 가질 수 있다. 따라서, 편집된 스트림은 원 스트림과 동일한 화상 유형으로 인코딩되고, 이미지 품질의 열화가 일어나지 않는다. 또한, 원 스트림을 생성하는 때에 복잡도가 분석되는 경우, 분석된 복잡도는 편집된 코딩 스트림을 생성할 때 참조될 수 있으며, 이는 복잡도에 따라 할당되는 최적 코드 길이로 2-패스 인코딩이 가능하게 한다.

Claims (20)

  1. 비 압축 비디오 데이터로부터 인코딩된 코딩 스트림을 하나 이상의 편집 지점에서 편집하도록 하는 편집 명령을 생성하는 편집기;
    편집된 스트림을 생성하도록, 상기 편집 명령에 따라 상기 코딩 스트림을 디코딩하는 디코딩 프로세서; 및
    편집된 코딩 스트림을 생성하도록, 상기 편집된 스트림을 재 인코딩 (re-encoding) 하는 인코딩 프로세서를 포함하고,
    상기 인코딩 프로세서는, 상기 코딩 스트림과 상기 편집된 코딩 스트림 사이의 동일한 프레임에서 코딩 방식에 따른 화상 유형이 동일하도록 화상의 위상을 정렬함으로써 상기 편집된 코딩 스트림을 생성하는, 이미지 인코딩 장치.
  2. 제 1 항에 있어서,
    상기 코딩 스트림과 상기 편집된 코딩 스트림 사이에 상기 편집 지점 전, 편집 지점 후, 또는 편집 지점 전 및 후 모두의 화상의 위상이 동일해지는 방식으로, 상기 편집된 코딩 스트림을 생성하기 위해, 상기 인코딩 프로세서는 상기 편집된 스트림 내 상기 편집 지점 전, 편집 지점 후, 또는 편집 지점 전 및 후 모두의 위치에 소정 이미지로 구성된 삽입 이미지를 삽입하는, 이미지 인코딩 장치.
  3. 제 1 항에 있어서,
    상기 코딩 스트림 내 각각의 화상을 인코딩하고 생성하기 위한 이미지 복잡도 (image complexity) 가 선 분석 (pre-analysis) 에 의해 계산되고,
    상기 인코딩 프로세서는 상기 이미지 복잡도에 따라 목표 코드 길이에 도달하도록 상기 디코딩된 편집된 스트림을 인코딩하는, 이미지 인코딩 장치.
  4. 제 2 항에 있어서,
    상기 삽입 이미지는 상기 코딩 스트림에 포함된 화상으로부터 디코딩된 이미지이며,
    상기 인코딩 프로세서는 상기 화상을 인코딩하기 위한 이미지 복잡도에 기초하여 상기 삽입 이미지를 인코딩하기 위한 목표 코드 길이를 결정하는, 이미지 인코딩 장치.
  5. 제 2 항에 있어서,
    상기 인코딩 프로세서는,
    상기 코딩 스트림을 구성하는 각각의 화상을 인코딩하기 위한 이미지 복잡도를 분석하는 애널라이저; 및
    상기 분석된 이미지 복잡도에 기초하여 각각의 프레임에 목표 코드 길이를 할당하는 코드 길이 할당기를 포함하고,
    상기 애널라이저는, 상기 코딩 스트림에 포함된 화상으로부터 디코딩된 디코딩 이미지의 이미지 복잡도 및 상기 삽입 이미지로서 인코딩되는 때의 상기 디코딩된 이미지의 화상 유형에 기초하여 상기 삽입 이미지의 이미지 복잡도를 결정하는, 이미지 인코딩 장치.
  6. 제 2 항에 있어서,
    상기 코딩 스트림은 정수 N 개의 화상을 포함하는 복수의 GOP (Group of pictrues) 로 구성되고,
    상기 편집기는, 상기 코딩 스트림 내 제 1 GOP 에 포함되는 제 1 편집 지점과 제 2 GOP 에 포함되는 제 2 편집 지점이 연속적으로 재생되도록 상기 편집 명령을 생성하며,
    상기 디코딩 프로세서는 상기 제 1 GOP 를 디코딩하고 상기 제 2 GOP 를 디코딩하며,
    상기 인코딩 프로세서는, 상기 제 1 편집 지점과 상기 제 2 편집 지점 사이에 하나 이상의 삽입 이미지를 삽입하고, 제 1 GOP 의 헤드 화상으로부터 상기 제 1 편집 지점까지의 화상, 상기 하나 이상의 삽입 이미지로부터 인코딩된 삽입 화상, 및 상기 제 2 편집 지점으로부터 상기 제 2 GOP 의 마지막 화상까지의 화상을 포함하는 재 코딩된 (re-coded) 화상 그룹을 구성하는 화상의 총 수를 N 의 정수배로 설정하는, 이미지 인코딩 장치.
  7. 제 6 항에 있어서,
    상기 재 코딩된 화상 그룹을 구성하는 화상의 총 수가 N 보다 작은 경우, 상 기 재 코딩된 화상 그룹을 구성하는 화상의 총 수가 N 에 도달하도록 상기 하나 이상의 삽입 이미지가 삽입되는, 이미지 인코딩 장치.
  8. 제 6 항에 있어서,
    상기 재 코딩된 화상 그룹을 구성하는 화상의 총 수가 N 보다 큰 경우, 상기 재 코딩된 화상 그룹을 구성하는 화상의 총 수가 2N 에 도달하도록 상기 하나 이상의 삽입 이미지가 삽입되는, 이미지 인코딩 장치.
  9. 제 6 항에 있어서,
    상기 삽입 이미지는 상기 제 1 편집 지점 직전의 화상인 제 1 화상으로부터 디코딩된 제 1 디코딩된 이미지인, 이미지 인코딩 장치.
  10. 제 6 항에 있어서,
    상기 삽입 이미지는 상기 제 1 편집 지점 직전의 화상인 제 1 화상으로부터 디코딩된 제 1 디코딩된 이미지이고,
    상기 인코딩 프로세서는, 상기 제 1 화상의 이미지 복잡도가 X 이고 1<Dp≤Db 인 경우, 제 1 삽입 이미지를 P-화상으로 인코딩하는 때에는 X/Dp 이고 상기 제 1 삽입 이미지를 B-화상으로 인코딩하는 때에는 X/Db 인 이미지 복잡도에 기초하여 상기 제 1 삽입 이미지의 목표 코드 길이를 결정함으로써 상기 삽입 화상을 생성하는, 이미지 인코딩 장치.
  11. 제 10 항에 있어서,
    상기 인코딩 프로세서는, 상기 제 1 삽입 이미지를 I-화상으로 인코딩하는 때에, 상기 제 2 GOP 에 포함된 I-화상의 이미지 복잡도인 복잡도에 기초하여 상기 삽입 이미지의 목표 코드 길이를 결정함으로써 상기 삽입 화상을 생성하는, 이미지 인코딩 장치.
  12. 제 8 항에 있어서,
    상기 제 1 편집 지점 직전의 화상인 제 1 화상으로부터 디코딩된 이미지가 제 1 디코딩된 이미지이고, 상기 제 2 편집 지점 직후의 화상인 제 2 화상으로부터 디코딩된 이미지가 제 2 디코딩된 이미지이며,
    상기 인코딩 프로세서는, 상기 제 1 편집 지점 직후에 하나 이상의 제 1 디코딩된 이미지을 삽입하고, 상기 제 1 GOP 의 헤드 화상으로부터 상기 제 1 편집 지점까지의 화상 및 상기 하나 이상의 제 1 디코딩된 이미지로부터 인코딩된 제 1 삽입 화상을 포함하는 총 N 개의 화상으로 GOP 를 생성하며, 상기 제 2 편집 지점 직전에 하나 이상의 제 2 디코딩된 이미지를 삽입하고, 상기 하나 이상의 제 2 디코딩된 이미지로부터 인코딩된 제 2 삽입 화상 및 상기 제 2 편집 지점으로부터 상기 제 2 GOP 의 마지막 화상까지의 화상을 포함하는 총 N 개의 화상으로 GOP 를 생성하는, 이미지 인코딩 장치.
  13. 제 2 항에 있어서,
    상기 코딩 스트림은, 제 2 GOP 의 헤드 화상으로부터 제 2 편집 지점까지의 화상이 삭제되는 상기 제 2 편집 지점을 갖는 상기 제 2 GOP 를 포함하고,
    상기 편집기는, 상기 제 2 GOP 가 상기 편집된 스트림의 헤드에 오도록 상기 코딩 스트림을 편집하며,
    상기 디코딩 프로세서는, 상기 제 2 편집 지점 직전에 소정 이미지인 하나 이상의 제 3 삽입 이미지를 삽입하고, 하나 이상의 제 3 삽입 이미지로부터 인코딩된 제 3 삽입 화상 및 상기 제 2 편집 지점으로부터 상기 제 2 GOP 의 마지막 화상까지의 화상을 포함하는 총 N 개의 화상으로 GOP 를 생성하는, 이미지 인코딩 장치.
  14. 제 13 항에 있어서,
    상기 제 3 삽입 이미지는 단색 이미지인, 이미지 인코딩 장치.
  15. 제 13 항에 있어서,
    상기 제 3 삽입 화상은, 상기 제 3 삽입 이미지를 I-화상으로 인코딩시에, 상기 제 2 GOP 에 포함된 I-화상의 이미지 복잡도인 복잡도에 기초하여 상기 제 3 삽입 이미지의 목표 코드 길이를 결정함으로써 생성되는, 이미지 인코딩 장치.
  16. 제 13 항에 있어서,
    상기 제 3 삽입 화상은, 상기 제 3 삽입 이미지를 P-화상 또는 B-화상으로 인코딩시에, 소정의 이미지 복잡도인 복잡도에 기초하여 상기 제 3 삽입 이미지의 목표 코드 길이를 결정함으로써 생성되는, 이미지 인코딩 장치.
  17. 제 2 항에 있어서,
    상기 코딩 스트림은, 제 1 편집 지점으로부터 제 1 GOP 의 마지막 화상까지의 화상이 삭제되는 상기 제 1 편집 지점을 갖는 상기 제 1 GOP 를 포함하고,
    상기 편집기는, 상기 제 1 GOP 의 상기 제 1 편집 지점 직전의 화상이 상기 편집된 스트림의 끝에 오도록 상기 코딩 스트림을 편집하며,
    상기 인코딩 프로세서는, 상기 제 1 편집 지점 직후에 소정 이미지인 하나 이상의 제 4 삽입 이미지를 삽입하고, 상기 제 1 GOP 의 헤드 화상으로부터 상기 제 1 편집 지점까지의 화상 및 하나 이상의 제 4 삽입 이미지로부터 인코딩된 제 4 삽입 화상을 포함하는 총 N 개의 화상으로 GOP 를 생성하는, 이미지 인코딩 장치.
  18. 제 17 항에 있어서,
    상기 제 4 삽입 이미지는 상기 제 1 편집 지점 직전의 제 1 화상으로부터 디코딩된 제 1 디코딩된 이미지인, 이미지 인코딩 장치.
  19. 비 압축 비디오 데이터로부터 인코딩된 코딩 스트림을 편집하는 이미지 인코딩 방법으로서,
    편집된 스트림을 생성하도록 하나 이상의 편집 지점에서 상기 코딩 스트림을 편집하기 위해, 비 압축 비디오 데이터로부터 인코딩된 상기 코딩 스트림을 디코딩하는 단계; 및
    상기 코딩 스트림과 상기 편집된 스트림 사이에 동일한 프레임에서 코딩 방식에 따른 화상 유형이 동일하도록 화상의 위상을 정렬함으로써 상기 편집된 스트림을 인코딩하는 단계를 포함하는, 이미지 인코딩 방법.
  20. 비 압축 비디오 데이터로부터 인코딩된 코딩 스트림을 편집하는 이미지 인코딩 프로세서; 및
    코딩 스트림을 저장하는 2 이상의 저장 장치를 포함하고,
    상기 이미지 인코딩 프로세서는,
    일 저장 장치에 저장된 상기 코딩 스트림을 하나 이상의 편집 지점에서 편집하도록 하는 편집 명령을 생성하는 편집기;
    편집된 스트림을 생성하도록, 상기 편집 명령에 따라 상기 코딩 스트림을 디코딩하는 디코딩 프로세서; 및
    편집된 코딩 스트림을 생성하도록, 상기 편집된 스트림을 재 인코딩 (re-encoding) 하는 인코딩 프로세서를 포함하며,
    상기 인코딩 프로세서는, 상기 코딩 스트림과 상기 편집된 코딩 스트림 사이에 동일한 프레임에서 코딩 방식에 따른 화상 유형이 동일하도록 화상의 위상을 정렬함으로써 상기 편집된 코딩 스트림을 생성하고,
    타 저장 장치는 상기 편집된 코딩 스트림을 저장하는, 이미지 편집 장치.
KR20060097323A 2005-10-03 2006-10-02 이미지 인코딩 장치, 화상 인코딩 방법 및 이미지 편집장치 KR100834322B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005289912A JP4791129B2 (ja) 2005-10-03 2005-10-03 画像符号化装置、画像符号化方法及び画像編集装置
JPJP-P-2005-00289912 2005-10-03

Publications (2)

Publication Number Publication Date
KR20070037695A KR20070037695A (ko) 2007-04-06
KR100834322B1 true KR100834322B1 (ko) 2008-06-02

Family

ID=37944904

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20060097323A KR100834322B1 (ko) 2005-10-03 2006-10-02 이미지 인코딩 장치, 화상 인코딩 방법 및 이미지 편집장치

Country Status (5)

Country Link
US (1) US20070077023A1 (ko)
JP (1) JP4791129B2 (ko)
KR (1) KR100834322B1 (ko)
CN (1) CN100553343C (ko)
TW (1) TWI334309B (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4438994B2 (ja) * 2004-09-30 2010-03-24 ソニー株式会社 動画像データの編集装置および動画像データの編集方法
JP5381297B2 (ja) * 2009-04-30 2014-01-08 ソニー株式会社 情報処理装置及び編集方法
KR101677003B1 (ko) * 2011-06-17 2016-11-16 가부시키가이샤 제이브이씨 켄우드 화상 부호화 장치, 화상 부호화 방법 및 화상 부호화 프로그램, 및 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램
WO2012176405A1 (ja) * 2011-06-20 2012-12-27 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに画像復号装置、画像復号方法及び画像復号プログラム
KR101654673B1 (ko) 2011-06-28 2016-09-22 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
TWI478540B (zh) * 2012-10-05 2015-03-21 Univ Nat Pingtung Sci & Tech 影像壓縮方法
JP6410483B2 (ja) 2013-08-09 2018-10-24 キヤノン株式会社 画像処理装置
CN105516734B (zh) * 2015-12-10 2019-11-15 腾讯科技(深圳)有限公司 一种视频可播放性的检测方法和装置
CN106231319A (zh) * 2016-07-14 2016-12-14 观止云(北京)信息技术有限公司 一种基于软硬件结合的逐帧对齐的方法
US11394977B2 (en) 2018-11-26 2022-07-19 Google Llc Safe and cross device consistent video compression
JP7273504B2 (ja) * 2018-12-27 2023-05-15 日本放送協会 映像符号化ストリーム編集装置及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990087745A (ko) * 1996-03-13 1999-12-27 이노우에 노리유키 디지털 압축 저장 데이터 부분 편집 방법 및 그 장치
KR20050025330A (ko) * 2002-07-08 2005-03-14 소니 가부시끼 가이샤 화상 데이터 처리 장치 및 방법
KR20060050664A (ko) * 2004-08-25 2006-05-19 소니 가부시끼 가이샤 정보 처리 장치 및 정보 처리 방법, 기록 매체, 및프로그램

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3182329B2 (ja) * 1995-11-15 2001-07-03 株式会社東芝 符号化データ編集装置とデータ復号装置
JPH1098713A (ja) * 1996-09-20 1998-04-14 Sony Corp 映像信号切換装置
KR100555164B1 (ko) * 1997-07-25 2006-03-03 소니 가부시끼 가이샤 편집 장치, 편집 방법, 재부호화 장치, 재부호화 방법, 스플라이싱 장치 및 스플라이싱 방법
JPH11341435A (ja) * 1998-05-22 1999-12-10 Sony Corp 編集方法および編集装置
US6310915B1 (en) * 1998-11-20 2001-10-30 Harmonic Inc. Video transcoder with bitstream look ahead for rate control and statistical multiplexing
JP3736504B2 (ja) * 2002-07-08 2006-01-18 ソニー株式会社 画像データ処理装置及び方法
JP2004165894A (ja) * 2002-11-12 2004-06-10 Kddi Corp 符号化器のビットレート制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990087745A (ko) * 1996-03-13 1999-12-27 이노우에 노리유키 디지털 압축 저장 데이터 부분 편집 방법 및 그 장치
KR20050025330A (ko) * 2002-07-08 2005-03-14 소니 가부시끼 가이샤 화상 데이터 처리 장치 및 방법
KR20060050664A (ko) * 2004-08-25 2006-05-19 소니 가부시끼 가이샤 정보 처리 장치 및 정보 처리 방법, 기록 매체, 및프로그램

Also Published As

Publication number Publication date
US20070077023A1 (en) 2007-04-05
CN100553343C (zh) 2009-10-21
JP4791129B2 (ja) 2011-10-12
KR20070037695A (ko) 2007-04-06
TW200715870A (en) 2007-04-16
JP2007104182A (ja) 2007-04-19
TWI334309B (en) 2010-12-01
CN1946183A (zh) 2007-04-11

Similar Documents

Publication Publication Date Title
KR100834322B1 (ko) 이미지 인코딩 장치, 화상 인코딩 방법 및 이미지 편집장치
US6724977B1 (en) Compressed video editor with transition buffer matcher
JP3361009B2 (ja) ビデオ符号化方法および速度量子化モデルを利用して符号化を行うシステム
KR100604631B1 (ko) 편집 장치, 편집 방법, 재부호화 장치, 재부호화 방법,스플라이싱 장치 및 스플라이싱 방법
US7394851B2 (en) Encoding apparatus and method, and multiplexing apparatus and method
US6256451B1 (en) Apparatus and method of editing video data
KR101119685B1 (ko) 정보 처리 장치, 정보 처리 방법, 및 기록 매체
US20060239563A1 (en) Method and device for compressed domain video editing
JP3529599B2 (ja) 符号化装置における編集可能点挿入方法および符号化装置
JP2008167061A (ja) 符号化装置及び符号化方法
KR100975170B1 (ko) 화상 데이터 재생 장치 및 방법
JP4301237B2 (ja) 符号化装置及びその方法、記録装置及びその方法、および、記録媒体
JP2008258858A (ja) 動画像符号化装置
JP4416845B2 (ja) 符号化装置及びその方法、および、記録装置及びその方法
JPH0918830A (ja) 映像編集装置
JP2010252394A (ja) 画像符号化装置、画像符号化方法及び画像編集装置
JP2008283663A (ja) 情報処理装置および情報処理方法、記録媒体、並びにプログラム
JP2002300585A (ja) 圧縮符号化装置
JP4333522B2 (ja) 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
JP3445278B2 (ja) エンコードされたビデオビットストリームのセクションを交換するための方法及びシステム
JP2008066845A (ja) 情報処理装置および方法、記録媒体、並びにプログラム
JP2000316158A (ja) 符号化装置及び符号化方法
JP2008066852A (ja) 情報処理装置および方法、記録媒体、並びにプログラム
JP2011029844A (ja) 情報処理装置、情報処理方法、並びにプログラム
JP2006121415A (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: 20120507

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130503

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee