[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20050109629A - 코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법 - Google Patents

코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법 Download PDF

Info

Publication number
KR20050109629A
KR20050109629A KR1020057020018A KR20057020018A KR20050109629A KR 20050109629 A KR20050109629 A KR 20050109629A KR 1020057020018 A KR1020057020018 A KR 1020057020018A KR 20057020018 A KR20057020018 A KR 20057020018A KR 20050109629 A KR20050109629 A KR 20050109629A
Authority
KR
South Korea
Prior art keywords
encoding
history
stream
data
encoded stream
Prior art date
Application number
KR1020057020018A
Other languages
English (en)
Other versions
KR100571307B1 (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 KR20050109629A publication Critical patent/KR20050109629A/ko
Application granted granted Critical
Publication of KR100571307B1 publication Critical patent/KR100571307B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

본 발명은, MPEG 규격에 기초하여 생성된 부호화 스트림에 대하여 재부호화 처리를 실시함으로써, 다른 GOP(Group of Picture) 구조나 다른 비트 레이트를 가진 재부호화 스트림을 생성하기 위한 트랜스코더에 관한 발명이다.
구체적으로는 트랜스코더의 복호화 장치는 소스 부호화 스트림을 디코드하여 복호화 비디오 데이터를 생성함과 동시에, 부호화 스트림중에 중첩되어 있는 과거의 부호화 파라미터를 추출한다. 부호화 장치는 복호화 비디오 데이터와 과거의 부호화 파라미터를 수취하고, 과거의 부호화 파라미터를 사용하여 부호화 처리를 행한다. 또한, 부호화 장치는 과거의 부호화 파라미터 중에서 후단의 애플리케이션에 최적의 부호화 파라미터를 선택하여 부호화 스트림 내에 기술한다.

Description

코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치 및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법{Coding system and its method, coding device and its method, decoding device and its method, recording device and its method, and reproducing device and its method}
본 발명은 코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치 및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법에 관한 것으로, 특히, MPEG 규격에 기초하여 과거에 부호화 처리가 실시된 적이 있는 부호화 스트림에 대하여 재부호화 처리를 실시하는 것에 의해서, 다른 GOP(Group of Pictures) 구조나 다른 비트 레이트를 가지는 재부호화 스트림을 생성하기 위한 트랜스코더에 사용하기에 적합한 코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치 및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법에 관한 것이다.
최근, 텔레비전 프로그램을 제작 및 방송하는 방송국에서는, 비디오 데이터를 압축/부호화 처리하기 위해 MPEG(Moving Picture Experts Group) 기술이 일반적으로 사용되고 있다. 특히, 비디오 데이터를 테이프 등의 랜덤 액세스 가능한 기록 매체 소재에 기록하는 경우, 및 비디오 데이터를 케이블이나 위성을 통하여 전송하는 경우에는, 상기 MPEG 기술이 사실상 표준으로 되어 있다.
방송국에서 제작된 비디오 프로그램이 각 가정에 전송되기까지의 방송국에서의 처리의 일 예를 간단하게 설명한다. 우선, 비디오 카메라와 VTR(Video Tape Recorder)이 일체로 된 캠코더에 설치된 인코더에 의해서, 소스 비디오 데이터를 인코드 처리하여 자기 테이프상에 기록한다. 이 때, 캠코더의 인코더는, VTR의 테이프의 기록 포맷에 적합하도록, 소스 비디오 데이터를 부호화한다. 예를 들면, 상기 자기 테이프상에 기록되는 MPEG 비트 스트림의 GOP 구조는, 2 프레임으로부터 1GOP가 구성되는 구조(예를 들면, I, B, I, B, I, B, ······)로 된다. 또한 자기 테이프상에 기록되어 있는 MPEG 비트 스트림의 비트 레이트는, 18 Mbps이다.
다음에, 메인 방송국에 있어서, 상기 자기 테이프상에 기록된 비디오 비트 스트림을 편집하는 편집처리를 행한다. 그 때문에, 자기 테이프상에 기록된 비디오 비트 스트림의 GOP 구조를, 편집처리에 적합한 GOP 구조로 변환한다. 편집처리에 적합한 GOP 구조란, 1 GOP가 1 프레임으로 구성되고, 모든 픽처가 I 픽처인 GOP 구조이다. 왜냐하면, 프레임 단위로 편집을 행하기 위해서는, 다른 픽처와 상관이 없는 I 픽처가 가장 적합하기 때문이다. 실제의 오퍼레이션으로서는, 자기 테이프상에 기록된 비디오 스트림을 일단 디코드하여 베이스 밴드의 비디오 데이터로 되돌린다. 그리고, 그 베이스 밴드의 비디오 신호를, 모든 픽처가 I 픽처로 되도록 재인코드한다. 상기와 같이 디코드 처리 및 재인코드 처리를 행하는 것에 의해서, 편집처리에 적합한 GOP 구조를 가지는 비트 스트림을 생성할 수 있다.
다음에, 상술한 편집처리에 의해서 생성된 편집 비디오 프로그램을, 메인국으로부터 지방국으로 전송하기 위해서, 편집 비디오 프로그램의 비트 스트림을, 전송처리에 적합한 GOP 구조 및 비트 레이트로 변환한다. 방송국간의 전송에 적합한 GOP 구조란, 예를 들면, 1 GOP가 15 프레임으로 구성되어 있는 GOP 구조(예를 들면, I, B, B, P, B, B, P…)이다. 또한, 방송국간의 전송에 적합한 비트 레이트는, 일반적으로 방송국간에 있어서는, 광파이버 등의 고전송 용량을 가진 전용선이 설치되어 있으므로, 50Mbps 이상의 하이비트 레이트인 것이 바람직하다. 구체적으로는, 편집 처리된 비디오 프로그램의 비트 스트림을 일단 디코드하여 베이스 밴드의 비디오 데이터로 되돌린다. 그리고, 그 베이스 밴드의 비디오 데이터를 상술한 방송국간의 전송에 적합한 GOP 구조 및 비트 레이트를 가지도록 재인코드 한다.
지방국에 있어서는, 메인국으로부터 전송되어 온 비디오 프로그램 중에, 지방 특유의 광고 방송을 삽입하기 위해서 편집처리가 행해진다. 결국, 상술한 편집처리와 같이, 메인국으로부터 전송되어 온 비디오 스트림을 일단 디코드하여 베이스 밴드의 비디오 데이터로 되돌린다. 그리고, 그 베이스 밴드의 비디오 신호를, 모든 픽처가 I 픽처가 되도록 재인코드함으로써, 편집처리에 적합한 GOP 구조를 가지는 비트 스트림을 생성할 수 있다.
계속해서, 상기 지방국에 있어서 편집처리가 행해진 비디오 프로그램을 각 가정에, 케이블이나 위성을 통하여 전송하기 위해서, 상기 전송처리에 적합한 GOP 구조 및 비트 레이트로 변환한다. 예를 들면, 각 가정에 전송하기 위한 전송처리에 적합한 GOP 구조란, 1 GOP가 15 프레임으로 구성되는 GOP 구조(예를 들면, I, B, B, P, B, B, P…)로서, 각 가정에 전송하기 위한 전송처리에 적합한 비트 레이트는, 5 Mbps 정도의 저 비트 레이트이다. 구체적으로는, 편집처리된 비디오 프로그램의 비트 스트림을 일단 디코드하여 베이스 밴드의 비디오 데이터로 되돌린다. 그리고, 그 베이스 밴드의 비디오 데이터를 상술한 전송처리에 적합한 GOP 구조 및 비트 레이트를 가지도록 재인코드한다.
이상의 설명으로부터도 이해할 수 있는 바와 같이, 방송국으로부터 각 가정에 비디오 프로그램이 전송되는 동안에, 복수회의 복호 처리 및 부호화 처리가 반복되고 있다. 실제로는, 방송국에 있어서의 처리는 상술한 신호처리 이외에도 여러 가지 신호처리가 필요하고, 그 때마다 복호 처리 및 부호화 처리를 반복하지 않으면 안된다.
그러나, MPEG 규격에 기초하는 부호화 처리 및 복호 처리는, 100% 가역의 처리가 아닌 것은 잘 알려져 있다. 즉, 인코드 되기전의 베이스 밴드의 비디오 데이터와, 디코드된 후의 비디오 데이터는 100% 같지는 않으며, 상기 부호화 처리 및 복호 처리에 의해서 화질이 열화하고 있다. 결국, 상술한 바와 같이, 디코드 처리 및 인코드 처리를 반복하면, 그 처리마다, 화질이 열화하여 버리는 문제가 있었다. 다른 말로 표현하면, 디코드/인코드 처리를 반복할 때마다, 화질의 열화가 축적되어 버린다.
본 발명은 이러한 상황을 감안하여 이루어진 것으로, MPEG 규격에 기초하여 부호화된 부호화 비트 스트림의 GOP(Group of Pictures)의 구조를 변경하기 위해서 복호 및 부호화 처리를 반복하였다고 하여도 화질 열화의 발생하지 않는 트랜스 코딩 시스템을 실현할 수 있도록 하는 것이다.
본 발명은 MPEG 규격에 기초하여 생성된 부호화 스트림에 대하여 재부호화 처리를 실시하는 것에 의해서, 다른 GOP(Group of Pictures) 구조나 다른 비트 레이트를 가지는 재부호화 스트림을 생성하기 위한 트랜스코더에 관한 발명이다.
구체적으로는, 트랜스코더(106)의 복호화 장치는, 소스 부호화 스트림을 디코드하여 복호화 비디오 데이터를 생성함과 동시에, 부호화 스트림중에 history_stream()으로서 중첩되어 있는 과거의 부호화 파라미터를 추출한다. 이 때, 복호화 장치는 부호화 스트림중에 re_coding_stream_info()로서 중첩되어 있는 정보에 기초하여, 과거의 부호화 파라미터를 추출한다.
부호화 장치는 복호화 비디오 데이터와 과거의 부호화 파라미터를 수취하고, 과거의 부호화 파라미터를 사용하여, 재부호화 처리에 의해서 화질이 열화하지않도록, 부호화 처리를 행하며, 재부호화 스트림을 생성한다. 또한, 부호화 장치는, 과거의 부호화 파라미터 중에서, 상기 부호화 장치의 후단에 접속되는 애플리케이션에 적합한 부호화 파라미터를 선택하고, 선택한 과거의 부호화 파라미터만을 history_stream()으로서 부호화 스트림내에 기술한다. 부호화 장치는, 후단의 애플리케이션에 있어서 재부호화 스트림으로부터 history_stream()에 관한 부호화 파라미터를 정확하게 추출할 수 있도록, 선택한 과거의 부호화 파라미터를 나타내는 정보를, re_coding_stream_info()로서 중첩한다.
본 발명의 트랜스코더에 의하면, 후단의 애플리케이션에 적응한 최소한의 부호화 파라미터이며, 비디오 데이터의 재부호화 처리를 반복하였다고 해도, 화질 열화를 최소한으로 멈추게 할 수 있는 코딩 시스템을 실현할 수 있다.
본 발명의 트랜스코더는, 소스 부호화 스트림을 복호하여 비디오 데이터를 생성함과 동시에, 소스 부호화 스트림으로부터 과거의 부호화 처리에 의해 생성된 과거의 부호화 파라미터를 추출하는 복호 수단과, 비디오 데이터를 재부호화하여, 재부호화 비디오 스트림을 생성하는 부호화 수단과, 과거의 부호화 파라미터를 수취하고, 과거의 부호화 파라미터에 기초하여, 부호화 수단의 재부호화 처리를 제어함과 동시에, 과거의 부호화 파라미터를 재부호화 스트림중에 선택적으로 기술하는 제어수단을 구비하고 있다.
본 발명의 트랜스코더에 있어서의 부호화 장치는, 과거의 부호화 파라미터로부터, 부호화 수단의 후단에 접속되는 애플리케이션에 있어서 필요하게 되는 부호화 파라미터를 선택하고, 해당 선택된 과거의 부호화 파라미터를, 재부호화 스트림내에 기술한다.
본 발명의 트랜스코더에 있어서의 부호화 장치는, 과거의 부호화 파라미터를 선택적으로 재부호화 스트림내에 기술함과 동시에, 재부호화 스트림내에 기술되는 과거의 부호화 파라미터의 데이터 세트를 나타내는 플래그 또는/및 인디케이터를, 재부호화 스트림내에 기술한다.
본 발명의 트랜스코더에 있어서의 부호화 장치는, 과거의 부호화 파라미터에 관한 정보를, 부호화 스트림중에 history_stream()으로서 기술함과 동시에, 재부호화 스트림에 관한 정보를, re_coding_stream_info()로서 재부호화 스트림내에 기술한다.
본 발명의 트랜스코더에 있어서의 부호화 장치는, 과거의 부호화 파라미터를 선택적으로 재부호화 스트림중에 history_stream()으로서 기술함과 동시에, 재부호화 스트림내에 기술되는 과거의 부호화 파라미터의 데이터 세트에 관한 정보를, re_coding_stream_info()으로서 재부호화 스트림내에 기술한다.
본 발명의 부호화 장치는 비디오 데이터에 대하여 실시된 과거의 부호화 처리에 관한 과거의 부호화 파라미터를 수취하고, 과거의 부호화 파라미터를 선택적으로 재부호화 스트림내에 기술함과 동시에, 재부호화 스트림내에 기술되는 과거의 부호화 파라미터의 데이터 세트를 나타내는 정보를, 재부호화 스트림내에 기술한다.
본 발명의 복호화 장치는 부호화 스트림으로부터, 부호화 스트림중에 중첩되어 있는 과거의 부호화 파라미터의 데이터 세트에 관한 정보를 추출하고, 상기 데이터 세트에 관한 정보에 기초하여, 부호화 스트림으로부터, 과거의 부호화 파라미터를 추출한다.
본 발명의 복호화 장치는 부호화 스트림으로부터, 부호화 스트림중에 re_coding_stream_info()로서 기술되어 있는 플래그 또는/및 인디케이터를 추출하고, 상기 플래그 또는/및 인디케이터에 기초하여, 부호화 스트림으로부터, 과거의 부호화 파라미터를 추출한다.
[실시예]
이하에, 본 발명을 적용한 트랜스코더에 대하여 설명하지만, 그 전에, 동화상 신호의 압축 부호화에 대하여 설명한다. 또, 본 명세서에 있어서 시스템의 용어는, 복수의 장치, 수단 등에 의해 구성되는 전체적인 장치를 의미하는 것이다.
예를 들면, 텔레비전 회의 시트템, 텔레비전 전화 시스템 등과 같이, 동화상 신호를 원격지에 전송하는 시스템에 있어서는, 전송로를 효율 좋게 이용하기 위해서, 영상 신호의 라인 상관이나 프레임간 상관을 이용하여, 화상 신호를 압축 부호화 하도록 이루어져 있다.
라인 상관을 이용하면, 화상 신호를, 예를 들면 DCT(이산 코사인 변환) 처리하는 등으로 압축할 수 있다.
또한, 프레임간 상관을 이용하면, 화상 신호를 더 압축하여 부호화하는 것이 가능해진다. 예를 들면 도 1에 도시하는 바와 같이, 시각(t1 내지 t3)에 있어서, 프레임 화상(PC1 내지 PC3)이 각각 발생하고 있는 경우, 프레임 화상(PC1 및 PC2)의 화상 신호의 차를 연산하고, PC(12)를 생성하며, 또한, 프레임 화상(PC2 및 PC3)의 차를 연산하여, PC(23)를 생성한다. 통상, 시간적으로 인접하는 프레임의 화상은, 그 만큼 큰 변화를 가지고 있지 않기 때문에, 양자의 차를 연산하면, 그 차분 신호는 작은 값으로 된다. 그래서, 상기 차분 신호를 부호화하면, 부호량을 압축할 수 있다.
그러나, 차분 신호만을 전송하였다면, 원래의 화상을 복원할 수 없다. 그래서, 각 프레임의 화상을, I 픽처, P 픽처 또는 B 픽처의 3종류의 픽처 타입의 어느 하나로 하여, 화상 신호를 압축 부호화하도록 하고 있다.
즉, 예를 들면 도 2에 도시하는 바와 같이, 프레임(F1 내지 F17)까지의 17 프레임의 화상 신호를 그룹 오브 픽처(GOP)로 하여, 처리의 1단위로 한다. 그리고, 그 선두의 프레임(F1)의 화상 신호는 I 픽처로서 부호화하고, 제 2 번째의 프레임(F2)은 B 픽처로서, 또한 제 3 번째의 프레임(F3)은 P 픽처로서, 각각 처리한다. 이하, 제 4 번째 이후의 프레임(F4 내지 F17)은, B 픽처 또는 P 픽처로서 교대로 처리한다.
I 픽처의 화상 신호로서는, 그 1 프레임분의 화상 신호를 그대로 전송한다. 이것에 대하여, P 픽처의 화상 신호로서는, 기본적으로는, 도 2에 도시하는 바와 같이, 그것보다 시간적으로 선행하는 I 픽처 또는 P 픽처의 화상 신호로부터의 차분을 전송한다. 더욱이 B 픽처의 화상 신호로서는, 기본적으로는, 도 3에 도시하는 바와 같이, 시간적으로 선행하는 프레임 또는 후행하는 프레임의 양쪽의 평균치로부터의 차분을 구하여, 그 차분을 부호화한다.
도 4는 상기와 같이 하여, 동화상 신호를 부호화하는 방법의 원리를 도시하고 있다. 상기 도면에 도시하는 바와 같이, 최초의 프레임(F1)은, I 픽처로서 처리되기 때문에, 그대로 전송 데이터(F1X)로서 전송로에 전송된다(화상내 부호화). 이것에 대하여, 제 2 프레임(F2)은, B 픽처로서 처리되기 때문에, 시간적으로 선행하는 프레임(F1)과, 시간적으로 후행하는 프레임(F3)의 평균치와의 차분이 연산되어, 그 차분이 전송 데이터(F2X)로서 전송된다.
단, 상기 B 픽처로서의 처리는, 더욱 상세하게 설명하면, 4종류 존재한다. 그 제 1 처리는, 원래의 프레임(F2)의 데이터를 그대로 전송 데이터(F2X)로서 전송하는 것이며(SP1; 인트라 부호화), I 픽처에 있어서의 경우와 같은 처리로 된다. 제 2 처리는, 시간적으로 뒤의 프레임(F3)으로부터의 차분을 연산하고, 그 차분(SP2)을 전송하는 것이다(후방 예측 부호화). 제 3 처리는 시간적으로 선행하는 프레임(F1)과의 차분(SP3)을 전송하는 것이다(전방 예측 부호화). 또한 제 4 처리는, 시간적으로 선행하는 프레임(F1)과 후행하는 프레임(F3)의 평균치와의 차분(SP4)을 생성하고, 이것을 전송 데이터(F2X)로서 전송하는 것이다(양방향 예측 부호화).
실제로는, 상술한 4개의 방법중의 전송 데이터가 가장 적어지는 방법이 채용된다.
또, 차분 데이터를 전송할 때, 차분을 연산하는 대상으로 되는 프레임의 화상(참조 화상)과의 사이의 움직임(=이동) 벡터 x1(프레임(F1과 F2)의 사이의 움직임 벡터; 전방 예측의 경우), 또는 x2(프레임(F3과 F2) 사이의 움직임 벡터; 후방 예측의 경우), 또는 x1과 x2의 양쪽(양방향 예측의 경우)이, 차분 데이터와 동시에 전송된다.
또한, P 픽처의 프레임(F3)은 시간적으로 선행하는 프레임(F1)을 참조 화상으로서, 상기 프레임과의 차분신호(SP3)와, 움직임 벡터(x3)가 연산되며, 이것이 전송 데이터(F3X)로서 전송된다(전방 예측 부호화). 또는, 원래의 프레임(F3)의 데이터가, 그대로 데이터(F3X)로서 전송된다(SP1; 인트라 부호화). 이들의 방법중, B 픽처에 있어서의 경우와 같이, 전송 데이터가 보다 적어지는 방법이 선택된다.
도 5는 상술한 원리에 기초하여, 동화상 신호를 부호화하여 전송하고, 이것을 복호하는 장치의 구성예를 도시하고 있다. 부호화 장치(1)는, 입력된 영상 신호를 부호화하여, 전송로로서의 기록 매체(3)에 전송하도록 이루어져 있다. 그리고, 복호장치(2)는 기록 매체(3)에 기록된 신호를 재생하고, 이것을 복호하여 출력하도록 이루어져 있다.
부호화 장치(1)에 있어서는, 입력된 영상 신호가 전처리 회로(11)에 입력되고, 휘도 신호와 색 신호(본 실시예의 경우, 색차 신호)가 분리되며, 각각의 A/D 변환기(12, 13)에서 아날로그 신호로부터 디지털 신호로 변환된다. A/D 변환기(12, 13)에 의해 디지털 신호로 변환된 영상 신호는, 프레임 메모리(14)에 공급되어, 기억된다. 프레임 메모리(14)는 휘도 신호를 휘도 신호 프레임 메모리(15)에, 또한, 색차 신호를 색차 신호 프레임 메모리(16)에, 각각 기억시킨다.
포맷 변환 회로(17)는 프레임 메모리(14)에 기억된 프레임 포맷의 신호를, 블록 포맷의 신호로 변환한다. 즉, 도 6에 도시하는 바와 같이, 프레임 메모리(14)에 기억된 영상 신호는, 1 라인당 H 도트의 라인이 V 라인 모여진, 도 6a에 도시하는 바와 같은 프레임 포맷의 데이터로 되어 있다. 포맷 변환 회로(17)는, 상기 1 프레임의 신호를, 도 6b에 도시하는 바와 같이 16 라인을 단위로서 M 개의 슬라이스로 구분한다. 그리고, 각 슬라이스는 M 개의 매크로 블록으로 분할된다. 매크로 블록은, 도 6c에 도시하는 바와 같이, 16×16개의 화소(도트)에 대응하는 휘도 신호에 의해 구성되고, 상기 휘도 신호는 또한 8×8 도트를 단위로 하는 블록(Y[1] 내지 Y[4])으로 구분된다. 그리고, 상기 16×16 도트의 휘도 신호에는, 8×8 도트의 Cb 신호와, 8×8 도트의 Cr 신호가 대응된다.
상기와 같이, 블록 포맷으로 변환된 데이터는, 포맷 변환 회로(17)로부터 인코더(18)에 공급되고, 여기서 인코드(부호화)가 행해진다. 그 상세에 대해서는, 도 7을 참조하여 후술한다.
인코더(18)에 의해 인코드된 신호는, 비트 스트림으로서 전송로에 출력된다. 예를 들면 기록회로(19)에 공급되어, 디지털 신호로서 기록 매체(3)에 기록된다.
복호장치(2)의 재생회로(30)에 의해 기록 매체(3)로부터 재생된 데이터는, 디코더(31)에 공급되어, 디코드된다. 디코더(31)의 상세에 관해서는, 도 12를 참조하여 후술한다.
디코더(31)에 의해 디코드된 데이터는, 포맷 변환 회로(32)에 입력되어, 블록 포맷으로부터 프레임 포맷으로 변환된다. 그리고, 프레임 포맷의 휘도 신호는, 프레임 메모리(33)의 휘도 신호 프레임 메모리(34)에 공급되어 기억되고, 색차 신호는 색차 신호 프레임 메모리(35)에 공급되어 기억된다. 휘도 신호 프레임 메모리(34)와 색차 신호 프레임 메모리(35)로부터 판독된 휘도 신호와 색차 신호는, 각각 D/A 변환기(36, 37)에 의해 아날로그 신호에 변환되어, 후처리 회로(38)에 공급된다. 후처리 회로(38)는, 휘도 신호와 색차 신호를 합성하여 출력한다.
다음에 도 7을 참조하여, 인코더(18)의 구성에 대하여 설명한다. 부호화되는 화상 데이터는, 매크로 블록 단위로 움직임 벡터 검출 회로(50)에 입력된다. 움직임 벡터 검출 회로(50)는 미리 설정되어 있는 소정의 시퀀스에 따라서, 각 프레임의 화상 데이터를, I 픽처, P 픽처, 또는 B 픽처로서 처리한다. 연속적으로 입력되는 각 프레임의 화상을, I, P, 또는 B의 어느 쪽의 픽처로서 처리할지는, 미리 정해져 있다(예를 들면, 도 2와 도 3에 도시한 바와 같이, 프레임(F1 내지 F17)에 의해 구성되는 그룹 오브 픽처가 I, B, P, B, P, ···B, P로서 처리된다).
I 픽처로서 처리되는 프레임(예를 들면, 프레임(F1))의 화상 데이터는, 움직임 벡터 검출 회로(50)로부터 프레임 메모리(51)의 전방 원화상부(51a)에 전송, 기억되고, B 픽처로서 처리되는 프레임(예를 들면, 프레임(F2))의 화상 데이터는, 원화상부(51b)에 전송, 기억되며, P 픽처로서 처리되는 프레임(예를 들면, 프레임(F3))의 화상 데이터는, 후방 원화상부(51c)에 전송, 기억된다.
또한, 다음의 타이밍에 있어서, 더욱이 B 픽처(프레임(F4)) 또는 P 픽처(프레임(F5))로서 처리해야 할 프레임의 화상이 입력되었을 때, 그때까지 후방 원화상부(51c)에 기억되어 있던 최초의 P 픽처(프레임(F3))의 화상 데이터가, 전방 원화상부(51a)에 전송되고, 다음의 B 픽처(프레임(F4)의 화상 데이터가, 참조 원화상부(51b)에 기억(오버라이트)되며, 다음의 P 픽처(프레임(F5)의 화상 데이터가, 후방 원화상부(51c)에 기억(오버라이트)된다. 이러한 동작이 순차 반복된다.
프레임 메모리(51)에 기억된 각 픽처의 신호는, 거기에서 판독되고, 예측 모드 전환 회로(52)에 있어서, 프레임 예측 모드 처리, 또는 필드 예측 모드 처리가 행해진다.
그리고 또한, 예측 판정 회로(54)의 제어하에, 연산기(53)에 있어서, 화상내 예측, 전방 예측, 후방 예측, 또는 양방향 예측의 연산이 행해진다. 이들의 처리중, 어느 쪽의 처리를 할지는, 예측 오차 신호(처리의 대상으로 되어 있는 참조화상과, 이것에 대한 예측 화상과의 차분)에 대응하여 결정된다. 이 때문에, 움직임 벡터 검출 회로(50)는 상기 판정에 사용되는 예측 오차 신호의 절대치합(제곱합이라도 좋다)을 생성한다.
여기서, 예측 모드 전환 회로(52)에 있어서의 프레임 예측 모드와 필드 예측 모드에 대하여 설명한다.
프레임 예측 모드가 설정된 경우에 있어서는, 예측 모드 전환 회로(52)는, 움직임 벡터 검출 회로(50)로부터 공급되는 4개의 휘도 블록(Y[1] 내지 Y[4])을, 그대로 후단의 연산기(53)에 출력한다. 즉, 상기 경우에 있어서는, 도 8에 도시하는 바와 같이, 각 휘도 블록에 홀수 필드의 라인의 데이터와, 짝수 필드의 라인의 데이터가 혼재된 상태로 되어 있다. 상기 프레임 예측 모드에 있어서는, 4개의 휘도 블록(매크로 블록)을 단위로서 예측이 행해지고, 4개의 휘도 블록에 대하여 1개의 움직임 벡터가 대응된다.
이것에 대하여, 예측 모드 전환 회로(52)는, 필드 예측 모드에 있어서는, 도 8에 도시하는 구성으로 움직임 벡터 검출 회로(50)로부터 입력되는 신호를, 도 9에 도시하는 바와 같이, 4개의 휘도 블록중, 휘도 블록(Y[1]과 Y[2])을, 예를 들면 홀수 필드의 라인의 도트만으로 구성시키고, 다른 2개의 휘도 블록(Y[3]과 Y[4])을, 짝수 필드의 라인의 도트만으로 구성시켜, 연산기(53)에 출력한다. 상기의 경우에 있어서는, 2개의 휘도 블록(Y[1]과 Y[2])에 대하여, 1개의 움직임 벡터가 대응되며, 다른 2개의 휘도 블록(Y[3]과 Y[4])에 대하여, 다른 1개의 움직임 벡터가 대응된다.
움직임 벡터 검출 회로(50)는 프레임 예측 모드에 있어서의 예측 오차의 절대치합, 및 필드 예측 모드에 있어서의 예측 오차의 절대치합을 예측 모드 전환 회로(52)에 출력한다. 예측 모드 전환 회로(52)는 프레임 예측 모드와 필드 예측 모드에 있어서의 예측 오차의 절대치합을 비교하여, 그 값이 작은 예측 모드에 대응하는 처리를 실시하고, 데이터를 연산기(53)에 출력한다.
단, 이러한 처리는 실제로는 움직임 벡터 검출 회로(50)에서 행해진다. 즉, 움직임 벡터 검출 회로(50)는 결정된 모드에 대응하는 구성의 신호를 예측 모드 전환 회로(52)에 출력하고, 예측 모드 전환 회로(52)는, 그 신호를, 그대로 후단의 연산기(53)에 출력한다.
또, 색차 신호는 프레임 예측 모드의 경우, 도 8에 도시하는 바와 같이, 홀수 필드의 라인의 데이터와 짝수 필드의 라인의 데이터가 혼재하는 상태로, 연산기(53)에 공급된다. 또한, 필드 예측 모드의 경우, 도 9에 도시하는 바와 같이, 각 색차 블록(Cb, Cr)의 상반분(4 라인)이, 휘도 블록(Y[1], Y[2])에 대응하는 홀수 필드의 색차 신호로 되며, 하반분(4 라인)이, 휘도 블록(Y[3], Y[4])에 대응하는 짝수 필드의 색차 신호로 된다.
또한, 움직임 벡터 검출 회로(50)는 이하에 도시하는 바와 같이 하여, 예측 판정 회로(54)에 있어서, 화상내 예측, 전방 예측, 후방 예측, 또는 양방향 예측의 어느 쪽의 예측을 하는지를 결정하기 위한 예측 오차의 절대치합을 생성한다.
즉, 화상내 예측의 예측 오차의 절대치합으로서, 참조 화상의 매크로 블록의 신호(Aij)의 총합(ΣAij)의 절대치(|ΣAij|)와, 매크로 블록의 신호(Aij)의 절대치(|Aij|)의 총합(Σ|Aij|)의 차를 구한다. 또한, 전방 예측의 예측 오차의 절대치합으로서, 참조 화상의 매크로 블록의 신호(Aij)와, 예측 화상의 매크로 블록의 신호(Bij)의 차(Aij-Bij)의 절대치(|Aij-Bij|)의 총합(Σ|Aij-Bij|)을 구한다. 또한, 후방 예측과 양방향 예측의 예측 오차의 절대치합도, 전방 예측에 있어서의 경우와 같이(그 예측 화상을 전방 예측에 있어서의 경우와 다른 예측 화상으로 변경하여) 구한다.
이들의 절대치합은, 예측 판정 회로(54)에 공급된다. 예측 판정 회로(54)는, 전방 예측, 후방 예측 및 양방향 예측의 예측 오차의 절대치합중의 가장 작은 것을, 인터 예측의 예측 오차의 절대치합으로서 선택한다. 또한, 상기 인터 예측의 예측 오차의 절대치합과, 화상내 예측의 예측 오차의 절대치합을 비교하여, 그 작은 쪽을 선택하여, 선택한 절대치합에 대응하는 모드를 예측 모드로서 선택한다. 즉, 화상내 예측의 예측 오차의 절대치합쪽이 작으면, 화상내 예측 모드가 설정된다. 인터 예측의 예측 오차의 절대치합쪽이 작으면, 전방 예측, 후방 예측 또는 양방향 예측 모드중의 대응하는 절대치합이 가장 작은 모드가 설정된다.
상기와 같이, 움직임 벡터 검출 회로(50)는, 참조 화상의 매크로 블록의 신호를, 프레임 또는 필드 예측 모드중, 예측 모드 전환 회로(52)에 의해 선택된 모드에 대응하는 구성으로, 예측 모드 전환 회로(52)를 통하여 연산기(53)에 공급함과 동시에, 4개의 예측 모드중의 예측 판정 회로(54)에 의해 선택된 예측 모드에 대응하는 예측 화상과 참조 화상 사이의 움직임 벡터를 검출하여, 가변 길이 부호화 회로(58)와 이동 보상 회로(64)에 출력한다. 상술한 바와 같이, 상기 움직임 벡터에서는, 대응하는 예측 오차의 절대치합이 최소로 되는 것이 선택된다.
예측 판정 회로(54)는 움직임 벡터 검출 회로(50)가 전방 원화상부(51a)로부터 I 픽처의 화상 데이터를 판독하고 있을 때, 예측 모드로서, 프레임 또는 필드(화상)내 예측 모드(이동 보상을 행하지 않는 모드)를 설정하여, 연산기(53)의 스위치(53d)를 접점(a)측으로 바꾼다. 이로써, I 픽처의 화상 데이터가 DCT 모드 전환 회로(55)에 입력된다.
DCT 모드 전환 회로(55)는 도 10 또는 도 11에 도시하는 바와 같이, 4개의 휘도 블록의 데이터를, 홀수 필드의 라인과 짝수 필드의 라인이 혼재하는 상태(프레임 DCT 모드), 또는, 분리된 상태(필드 DCT 모드)의 어느 한 상태로 하고, DCT 회로(56)에 출력한다.
즉, DCT 모드 전환 회로(55)는, 홀수 필드와 짝수 필드의 데이터를 혼재하여 DCT 처리한 경우에 있어서의 부호화 효율과, 분리한 상태에 있어서 DCT 처리한 경우의 부호화 효율을 비교하여, 부호화 효율이 양호한 모드를 선택한다.
예를 들면, 입력된 신호를, 도 10에 도시하는 바와 같이, 홀수 필드와 짝수 필드의 라인이 혼재하는 구성으로 하여, 상하에 인접하는 홀수 필드의 라인의 신호와 짝수 필드의 라인의 신호의 차를 연산하고, 또한 그 절대치의 합(또는 제곱합)을 구한다.
또한, 입력된 신호를, 도 11에 도시하는 바와 같이, 홀수 필드와 짝수 필드의 라인이 분리된 구성으로 하여, 상하에 인접하는 홀수 필드의 라인끼리의 신호의 차와, 짝수 필드의 라인끼리의 신호의 차를 연산하여, 각각의 절대치의 합(또는 제곱합)을 구한다.
또한, 양자(절대치합)를 비교하여, 작은 값에 대응하는 DCT 모드를 설정한다. 즉, 전자쪽이 작으면, 프레임 DCT 모드를 설정하고, 후자쪽이 작으면, 필드 DCT 모드를 설정한다.
그리고, 선택한 DCT 모드에 대응하는 구성의 데이터를 DCT 회로(56)에 출력함과 동시에, 선택한 DCT 모드를 나타내는 DCT 플래그를, 가변 길이 부호화 회로(58), 및 이동 보상 회로(64)에 출력한다.
예측 모드 전환 회로(52)에 있어서의 예측 모드(도 8과 도 9)와, 상기 DCT 모드 전환 회로(55)에 있어서의 DCT 모드(도 10과 도 11)를 비교하여 분명한 바와 같이, 휘도 블록에 관해서는, 상자의 각 모드에 있어서의 데이터 구조는 실질적으로 동일하다.
예측 모드 전환 회로(52)에 있어서, 프레임 예측 모드(홀수 라인과 짝수 라인이 혼재하는 모드)가 선택된 경우, DCT 모드 전환 회로(55)에 있어서도, 프레임 DCT 모드(홀수 라인과 짝수 라인이 혼재하는 모드)가 선택될 가능성이 높고, 또한 예측 모드 전환 회로(52)에 있어서, 필드 예측 모드(홀수 필드와 짝수 필드의 데이터가 분리된 모드)가 선택된 경우, DCT 모드 전환 회로(55)에 있어서, 필드 DCT 모드(홀수 필드와 짝수 필드의 데이터가 분리된 모드)가 선택될 가능성이 높다.
그러나, 반드시 항상 상기와 같이 모드가 선택되는 것은 아니고, 예측 모드 전환 회로(52)에 있어서는, 예측 오차의 절대치합이 작아지도록 모드가 결정되며, DCT 모드 전환 회로(55)에 있어서는, 부호화 효율이 양호하게 되도록 모드가 결정된다.
DCT 모드 전환 회로(55)로부터 출력된 I 픽처의 화상 데이터는, DCT 회로(56)에 입력되어 DCT 처리되어, DCT 계수로 변환된다. 상기 DCT 계수는 양자화 회로(57)에 입력되고, 송신 버퍼(59)의 데이터 축적량(버퍼 축적량)에 대응한 양자화 스케일로 양자화 된 후, 가변 길이 부호화 회로(58)에 입력된다.
가변 길이 부호화 회로(58)는 양자화 회로(57)로부터 공급되는 양자화 스케일(스케일)에 대응하여, 양자화 회로(57)로부터 공급되는 화상 데이터(현재의 경우, I 픽처의 데이터)를, 예를 들면 하프만 부호 등의 가변 길이 부호로 변환하고, 송신 버퍼(59)에 출력한다.
가변 길이 부호화 회로(58)에는 또, 양자화 회로(57)로부터 양자화 스케일(스케일), 예측 판정 회로(54)로부터 예측 모드(화상내 예측, 전방 예측, 후방 예측, 또는 양방향 예측의 어떠한 것이 설정되었는지를 나타내는 모드), 움직임 벡터 검출 회로(50)로부터 움직임 벡터, 예측 모드 전환 회로(52)로부터 예측 플래그(프레임 예측 모드 또는 필드 예측 모드의 어떠한 것이 설정되었는지를 나타내는 플래그), 및 DCT 모드 전환 회로(55)가 출력하는 DCT 플래그(프레임 DCT 모드 또는 필드 DCT 모드의 어떠한 것이 설정되었는지를 나타내는 플래그)가 입력되어 있고, 이들도 가변 길이 부호화된다.
송신 버퍼(59)는 입력된 데이터를 일시 축적하여, 축적량에 대응하는 데이터를 양자화 회로(57)에 출력한다. 송신 버퍼(59)는 그 데이터 잔여량이 허용 상한치까지 증량하면, 양자화 제어 신호에 의해서 양자화 회로(57)의 양자화 스케일을 크게 하는 것에 의해, 양자화 데이터의 데이터량을 저하시킨다. 또한, 이것과는 반대로, 데이터 잔여량이 허용 하한치까지 감소하면, 송신 버퍼(59)는, 양자화 제어 신호에 의해서 양자화 회로(57)의 양자화 스케일을 작게 하는 것에 의해, 양자화 데이터의 데이터량을 증대시킨다. 이렇게 하여, 송신 버퍼(59)의 오버플로 또는 언더플로가 방지된다.
그리고, 송신 버퍼(59)에 축적된 데이터는, 소정의 타이밍으로 판독되고, 전송로에 출력되며, 예를 들면 기록회로(19)를 통하여 기록 매체(3)에 기록된다.
한편, 양자화 회로(57)로부터 출력된 I 픽처의 데이터는, 역양자화 회로(60)에 입력되고, 양자화 회로(57)로부터 공급되는 양자화 스케일에 대응하여 역양자화된다. 역양자화 회로(60)의 출력은, IDCT(역이산 코사인 변환) 회로(61)에 입력되며, 역이산 코사인 변환 처리된 후, 연산기(62)를 통하여 프레임 메모리(63)의 전방 예측 화상부(63a) 공급되어 기억된다.
움직임 벡터 검출 회로(50)는 연속적으로 입력되는 각 프레임의 화상 데이터를, 예를 들면, I, B, P, B, P, B···의 픽처로서 각각 처리하는 경우, 최초에 입력된 프레임의 화상 데이터를 I 픽처로서 처리한 후, 다음에 입력된 프레임의 화상을 B 픽처로서 처리하기 전에, 또한 그 다음에 입력된 프레임의 화상 데이터를 P 픽처로서 처리한다. B 픽처는 후방 예측을 따르기 때문에, 후방 예측 화상으로서의 P 픽처가 먼저 준비되어 있지 않으면, 복호할 수 없기 때문이다.
그래서 움직임 벡터 검출 회로(50)는 I 픽처의 처리의 다음에, 후방 원화상부(51c)에 기억되어 있는 P 픽처의 화상 데이터의 처리를 개시한다. 그리고, 상술한 경우와 같이, 매크로 블록 단위에서의 프레임간 차분(예측 오차)의 절대치합이 움직임 벡터 검출 회로(50)로부터 예측 모드 전환 회로(52)와 예측 판정 회로(54)에 공급된다. 예측 모드 전환 회로(52)와 예측 판정 회로(54)는, 상기 P 픽처의 매크로 블록의 예측 오차의 절대치합에 대응하여, 프레임/필드 예측 모드, 또는 화상내 예측, 전방 예측, 후방 예측, 또는 양방향 예측의 예측 모드를 설정한다.
연산기(53)는 화상내 예측 모드가 설정되었을 때, 스위치(53d)를 상술한 바와 같이 접점(a)측으로 바꾼다. 따라서, 상기 데이터는, I 픽처의 데이터와 같이 DCT 모드 전환 회로(55), DCT 회로(56), 양자화 회로(57), 가변 길이 부호화 회로(58), 및 송신 버퍼(59)를 통하여 전송로에 전송된다. 또한, 상기 데이터는 역양자화 회로(60), IDCT 회로(61), 및 연산기(62)를 통하여 프레임 메모리(63)의 후방 예측 화상부(63b)에 공급되어 기억된다.
또한, 전방 예측 모드가 설정된 경우, 스위치(53d)가 접점(b)로 전환됨과 동시에, 프레임 메모리(63)의 전방 예측 화상부(63a)에 기억되어 있는 화상(현재의 경우, I 픽처의 화상) 데이터가 판독되고, 이동 보상 회로(64)에 의해, 움직임 벡터 검출 회로(50)가 출력하는 움직임 벡터에 대응하여 이동 보상된다. 즉, 이동 보상 회로(64)는, 예측 판정 회로(54)로부터 전방 예측 모드의 설정이 지령되었을 때, 전방 예측 화상부(63a)의 판독 어드레스를, 움직임 벡터 검출 회로(50)가, 현재, 출력하고 있는 매크로 블록의 위치에 대응하는 위치로부터 움직임 벡터에 대응하는 분만 물려 놓고 데이터를 판독하여, 예측 화상 데이터를 생성한다.
이동 보상 회로(64)로부터 출력된 예측 화상 데이터는, 연산기(53a)에 공급된다. 연산기(53a)는, 예측 모드 전환 회로(52)로부터 공급된 참조 화상의 매크로 블록의 데이터로부터, 이동 보상 회로(64)로부터 공급된, 상기 매크로 블록에 대응하는 예측 화상 데이터를 감산하여, 그 차분(예측 오차)을 출력한다. 상기 차분 데이터는, DCT 모드 전환 회로(55), DCT 회로(56), 양자화 회로(57), 가변 길이 부호화 회로(58), 및 송신 버퍼(59)를 통하여 전송로에 전송된다. 또, 상기 차분 데이터는, 역양자화 회로(60), 및 IDCT 회로(61)에 의해 국소적으로 복호되어, 연산기(62)에 입력된다.
상기 연산기(62)에는 또한, 연산기(53a)에 공급되어 있는 예측 화상 데이터와 동일한 데이터가 공급되어 있다. 연산기(62)는 IDCT 회로(61)가 출력하는 차분 데이터에, 이동 보상 회로(64)가 출력하는 예측 화상 데이터를 가산한다. 이로써, 원래의(복호한) P 픽처의 화상 데이터가 얻어진다. 상기 P 픽처의 화상 데이터는, 프레임 메모리(63)의 후방 예측 화상부(63b)에 공급되어 기억된다.
움직임 벡터 검출 회로(50)는 상기와 같이, I 픽처와 P 픽처의 데이터가 전방 예측 화상부(63a)와 후방 예측 화상부(63b)에 각각 기억된 후, 다음에 B 픽처의 처리를 실행한다. 예측 모드 전환 회로(52)와 예측 판정 회로(54)는, 매크로 블록 단위에서의 프레임간 차분의 절대치합의 크기에 대응하여, 프레임/필드 모드를 설정하고, 또한, 예측 모드를 화상내 예측 모드, 전방 예측 모드, 후방 예측 모드, 또는 양방향 예측 모드의 어느 하나에 설정한다.
상술한 바와 같이, 화상내 예측 모드 또는 전방 예측 모드일 때, 스위치(53d)는 접점(a 또는 b)으로 바뀌어진다. 이 때, P 픽처에 있어서의 경우와 같은 처리가 행해지고, 데이터가 전송된다.
이것에 대하여, 후방 예측 모드 또는 양방향 예측 모드가 설정되었을 때, 스위치(53d)는, 접점(c 또는 d)으로 각각 바뀌어진다.
스위치(53d)가 접점(c)으로 바뀌어지고 있는 후방 예측 모드일 때, 후방 예측 화상부(63b)에 기억되어 있는 화상(현재의 경우, P 픽처의 화상) 데이터가 판독되고, 이동 보상 회로(64)에 의해, 움직임 벡터 검출 회로(50)가 출력하는 움직임 벡터에 대응하여 이동 보상된다. 즉, 이동 보상 회로(64)는, 예측 판정 회로(54)로부터 후방 예측 모드의 설정이 지령되었을 때, 후방 예측 화상부(63b)의 판독 어드레스를, 움직임 벡터 검출 회로(50)가, 현재, 출력되고 있는 매크로 블록의 위치에 대응하는 위치로부터 움직임 벡터에 대응하는 분만 물려놓고 데이터를 판독하여, 예측 화상 데이터를 생성한다.
이동 보상 회로(64)로부터 출력된 예측 화상 데이터는, 연산기(53b)에 공급된다. 연산기(53b)는 예측 모드 전환 회로(52)로부터 공급된 참조 화상의 매크로 블록의 데이터로부터, 이동 보상 회로(64)로부터 공급된 예측 화상 데이터를 감산하여, 그 차분을 출력한다. 상기 차분 데이터는 DCT 모드 전환 회로(55), DCT 회로(56), 양자화 회로(57), 가변 길이 부호화 회로(58), 및 송신 버퍼(59)를 통하여 전송로에 전송된다.
스위치(53d)가 접점(d)으로 바뀌어지고 있는 양방향 예측 모드일 때, 전방 예측 화상부(63a)에 기억되어 있는 화상(현재의 경우, I 픽처의 화상) 데이터와, 후방 예측 화상부(63b)에 기억되어 있는 화상(현재의 경우, P 픽처의 화상) 데이터가 판독되고, 이동 보상 회로(64)에 의해, 움직임 벡터 검출 회로(50)가 출력하는 움직임 벡터에 대응하여 이동 보상된다.
즉, 이동 보상 회로(64)는 예측 판정 회로(54)로부터 양방향 예측 모드의 설정이 지령되었을 때, 전방 예측 화상부(63a)와 후방 예측 화상부(63b)의 판독 어드레스를, 움직임 벡터 검출 회로(50)가 지금 출력하고 있는 매크로 블록의 위치에 대응하는 위치로부터 움직임 벡터(상기의 경우의 움직임 벡터는, 전방 예측 화상용과 후방 예측 화상용의 2개로 된다)에 대응하는 분만 물려놓고 데이터를 판독하여, 예측 화상 데이터를 생성한다.
이동 보상 회로(64)로부터 출력된 예측 화상 데이터는, 연산기(53c)에 공급된다. 연산기(53c)는 움직임 벡터 검출 회로(50)로부터 공급된 참조 화상의 매크로 블록의 데이터로부터, 이동 보상 회로(64)로부터 공급된 예측 화상 데이터의 평균치를 생산하여, 염색하여 차분을 출력한다. 상기 차분 데이터는 DCT 모드 전환 회로(55), DCT 회로(56), 양자화 회로(57), 가변 길이 부호화 회로(58), 및 송신 버퍼(59)를 통하여 전송로에 전송된다.
B 픽처의 화상은, 다른 화상의 예측 화상으로 되는 일이 없기 때문에, 프레임 메모리(63)에는 기억되지 않는다.
또, 프레임 메모리(63)에 있어서, 전방 예측 화상부(63a)와 후방 예측 화상부(63b)는, 필요에 따라서 뱅크 전환이 행해지고, 소정의 참조 화상에 대하여, 한쪽 또는 다른 쪽에 기억되어 있는 것을, 전방 예측 화상 또는 후방 예측 화상으로서 바꿔 출력할 수 있다.
상술한 설명에 있어서는, 휘도 블록을 중심으로 하여 설명을 하였지만, 색차 블록에 대해서도 마찬가지로, 도 8 내지 도 11에 도시하는 매크로 블록을 단위로서 처리되어 전송된다. 또, 색차 블록을 처리하는 경우의 움직임 벡터는, 대응하는 휘도 블록의 움직임 벡터를 수직방향과 수평방향에, 각각 1/2로 한 것이 사용된다.
도 12는 도 5의 디코더(31)의 구성을 도시하는 블록도이다. 전송로(기록 매체(3))를 통하여 전송된 부호화된 화상 데이터는, 도시하지 않는 수신회로에서 수신되거나, 재생장치에서 재생되며, 수신 버퍼(81)에 일시 기억된 후, 복호회로(90)의 가변 길이 복호 회로(82)에 공급된다. 가변 길이 복호 회로(82)는 수신 버퍼(81)로부터 공급된 데이터를 가변 길이 복호하고, 움직임 벡터, 예측 모드, 예측 플래그, 및 DCT 플래그를 이동 보상 회로(87)에 출력하여, 양자화 스케일을 역양자화 회로(83)에 출력함과 동시에, 복호된 화상 데이터를 역양자화 회로(83)에 출력한다.
역양자화 회로(83)는 가변 길이 복호 회로(82)로부터 공급된 화상 데이터를, 동일하게 가변 길이 복호 회로(82)로부터 공급된 양자화 스케일에 따라서 역양자화하여, IDCT 회로(84)에 출력한다. 역양자화 회로(83)로부터 출력된 데이터(DCT 계수)는, IDCT 회로(84)에 의해, 역이산 코사인 변환 처리가 실시되고, 연산기(85)에 공급된다.
IDCT 회로(84)로부터 연산기(85)에 공급된 화상 데이터가, I 픽처의 데이터인 경우, 그 데이터는 연산기(85)로부터 출력되어, 연산기(85)에 뒤에 입력되는 화상 데이터(P 또는 B 픽처의 데이터)의 예측 화상 데이터 생성을 위해, 프레임 메모리(86)의 전방 예측 화상부(86a)에 공급되어 기억된다. 또한, 상기 데이터는 포맷 변환 회로(32; 도 5)에 출력된다.
IDCT 회로(84)로부터 공급된 화상 데이터가, 그 1 프레임앞의 화상 데이터를 예측 화상 데이터로 하는 P 픽처의 데이터이고, 전방 예측 모드의 데이터인 경우, 프레임 메모리(86)의 전방 예측 화상부(86a)에 기억되어 있는, 1 프레임앞의 화상 데이터(I 픽처의 데이터)가 판독되며, 이동 보상 회로(87)에서 가변 길이 복호 회로(82)로부터 출력된 움직임 벡터에 대응하는 이동 보상이 실시된다. 그리고, 연산기(85)에 있어서, IDCT 회로(84)로부터 공급된 화상 데이터(차분의 데이터)와 가산되어, 출력된다. 상기 가산된 데이터, 즉, 복호된 P 픽처의 데이터는, 연산기(85)에 나중에 입력되는 화상 데이터(B 픽처 또는 P 픽처의 데이터)의 예측 화상 데이터 생성을 위해, 프레임 메모리(86)의 후방 예측 화상부(86b)에 공급되어 기억된다.
P 픽처의 데이터이더라도, 화상내 예측 모드의 데이터는, I 픽처의 데이터와 마찬가지로, 연산기(85)에 있어서 처리는 행해지지 않고, 그대로 후방 예측 화상부(86b)에 기억된다.
상기 P 픽처는 다음의 B 픽처의 다음에 표시되어야 할 화상이기 때문에, 이 시점에서는, 아직 포맷 변환 회로(32)로 출력되지 않는다(상술한 바와 같이, B 픽처의 뒤에 입력된 P 픽처가, B 픽처보다 먼저 처리되어, 전송되고 있다).
IDCT 회로(84)로부터 공급된 화상 데이터가, B 픽처의 데이터인 경우, 가변 길이 복호 회로(82)로부터 공급된 예측 모드에 대응하여, 프레임 메모리(86)의 전방 예측 화상부(86a)에 기억되어 있는 I 픽처의 화상 데이터(전방 예측 모드의 경우), 후방 예측 화상부(86b)에 기억되어 있는 P 픽처의 화상 데이터(후방 예측 모드의 경우), 또는, 그 양쪽의 화상 데이터(양방향 예측 모드의 경우)가 판독되고, 이동 보상 회로(87)에 있어서, 가변 길이 복호 회로(82)로부터 출력된 움직임 벡터에 대응하는 이동 보상이 실시되며, 예측 화상이 생성된다. 단, 이동 보상을 필요로 하지 않는 경우(화상내 예측 모드의 경우), 예측 화상은 생성되지 않는다.
상기와 같이 하여, 이동 보상 회로(87)에서 이동 보상이 실시된 데이터는, 연산기(85)에 있어서, IDCT 회로(84)의 출력과 가산된다. 상기 가산 출력은 포맷 변환 회로(32)에 출력된다.
단, 상기 가산출력은 B 픽처의 데이터이고, 다른 화상의 예측 화상 생성을 위해서 이용되는 일이 없기 때문에, 프레임 메모리(86)에는 기억되지 않는다.
B 픽처의 화상이 출력된 후, 후방 예측 화상부(86b)에 기억되어 있는 P 픽처의 화상 데이터가 판독되고, 이동 보상 회로(87)를 통하여 연산기(85)에 공급된다. 단, 이 때, 이동 보상은 행해지지 않는다.
또, 상기 디코더(31)에는, 도 5의 인코더(18)에 있어서의 예측 모드 전환 회로(52)와 DCT 모드 전환 회로(55)에 대응하는 회로가 도시되어 있지 않지만, 이들의 회로에 대응하는 처리, 즉, 홀수 필드와 짝수 필드의 라인의 신호가 분리된 구성을 원래의 구성에 필요에 따라서 되돌리는 처리는, 이동 보상 회로(87)에 의해 실행된다.
또한, 상술한 설명에 있어서는, 휘도 신호의 처리에 대하여 설명하였지만, 색차 신호의 처리도 마찬가지로 행해진다. 단, 상기 경우의 움직임 벡터는, 휘도 신호용의 움직임 벡터를, 수직방향 및 수평방향에 1/2로 한 것이 사용된다.
도 13은 부호화된 화상의 품질을 도시하고 있다. 화상의 품질(SNR: Signal to Noise Ratio)은, 픽처 타입에 대응하여 제어되고, I 픽처, 및 P 픽처는 고품질로 되며, B 픽처는, I, P 픽처와 비교하여 뒤떨어지는 품질로 되어 전송된다. 이것은, 인간의 시각 특성을 이용한 수법이고, 모든 화상 품질을 평균화하는 것보다도, 품질을 진동시키는 편이 시각상의 화질이 좋아지기 때문이다. 상기 픽처 타입에 대응한 화질의 제어는, 도 7의 양자화 회로(57)에 의해 실행된다.
도 14 및 도 15는 본 발명을 적용한 트랜스코더(101)의 구성을 도시하고, 도 15는, 도 14의 더욱 상세한 구성을 도시하고 있다. 상기 트랜스코더(101)는 복호 장치(102)에 입력된 부호화 비디오 비트 스트림(encoded video bit stream)의 GOP 구조 및 비트 레이트를, 오퍼레이터가 원하는 GOP 구조 및 비트 레이트로 변환한다. 상기 트랜스코더(101)의 기능을 설명하기 위해서, 도 15에는 도시되어 있지 않지만, 상기 트랜스코더(101)의 전단에, 상기 트랜스코더(101)와 거의 같은 기능을 가지는 3개의 트랜스코더가 접속되어 있는 것으로 한다. 결국, 비트 스트림의 GOP 구조 및 비트 레이트를 여러 가지로 변경하기 위해서, 제 1 트랜스코더, 제 2 트랜스코더, 및 제 3 트랜스코더가 순차로 직렬로 접속되고, 그 제 3 트랜스코더의 뒤에, 상기 도 15에 도시한 제 4 트랜스코더가 접속되어 있는 것으로 한다.
본 발명의 이하의 설명에 있어서, 상기 제 1 트랜스코더에 있어서 행해진 부호화 처리를 제 1 세대의 부호화 처리라고 정의하고, 제 1 트랜스코더의 뒤에 접속된 제 2 트랜스코더에 있어서 행해진 부호화 처리를 제 2 세대의 부호화 처리라고 정의하며, 제 2 트랜스코더의 뒤에 접속된 제 3 트랜스코더에 있어서 행해진 부호화 처리를 제 3 세대의 부호화 처리라고 정의하고, 제 3 트랜스코더의 뒤에 접속된 제 4 트랜스코더(도 15에 도시된 트랜스코더(101)에 있어서 행해지는 부호화 처리를 제 4 세대의 부호화 처리 또는 현재의 부호화 처리라고 정의하기로 한다.
또한, 제 1 세대의 부호화 처리에 있어서 생성된 부호화 파라미터를 제 1 세대의 부호화 파라미터라고 부르고, 제 2 세대의 부호화 처리에 있어서 생성된 부호화 파라미터를 제 2 세대의 부호화 파라미터라고 부르며, 제 3 세대의 부호화 처리에 있어서 생성된 부호화 파라미터를 제 3 세대의 부호화 파라미터라고 부르고, 제 4 세대의 부호화 처리에 있어서 생성된 부호화 파라미터를 제 4 세대의 부호화 파라미터 또는 현재의 부호화 파라미터라고 부르기로 한다.
우선, 상기 도 15에 도시된 트랜스코더(101)에 공급되는 부호화 비디오 스트림(ST; 3rd)에 대하여 설명한다. ST(3rd)는 상기 트랜스코더(101)의 전단에 설치되어 있는 제 3 트랜스코더에 있어서의 제 3 세대의 부호화 처리에 있어서 생성된 제 3 세대의 부호화 스트림인 것을 나타내고 있다. 상기 제 3 세대의 부호화 처리에 있어서 생성된 부호화 비디오 스트림(ST; 3rd)에는, 제 3 부호화 처리에 있어서 생성된 제 3 세대의 부호화 파라미터가, 상기 부호화 비디오 스트림(ST; 3rd)의 시퀀스층, GOP층, 픽처층, 슬라이스층, 및 매크로 블록층에, sequence_header() 함수, sequence_extension() 함수, group_of_pictures_header() 함수, picture_header() 함수, picture_coding_extension() 함수, picture_data() 함수, slice() 함수, 및 macroblock() 함수로서 기술되어 있다. 상기와 같이 제 3 부호화 처리에 의해서 생성된 제 3 부호화 스트림에, 제 3 부호화 처리에서 사용한 제 3 부호화 파라미터를 기술하는 것은 MPEG2 규격에 있어서 정의되어 있는 것으로서, 조금도 신규성은 없다.
본 발명의 트랜스코더(101)에 있어서의 독특한 점은, 상기 제 3 부호화 스트림(ST; 3rd)중에, 제 3 부호화 파라미터를 기술할 뿐만 아니라, 제 1 세대 및 제 2 세대의 부호화 처리에 있어서 생성된 제 1 세대 및 제 2 세대의 부호화 파라미터도 기술되어 있다는 점이다.
구체적으로는, 상기 제 1 세대 및 제 2 세대의 부호화 파라미터는, 제 3 세대의 부호화 비디오 스트림(ST: 3rd)의 픽처층의 유저 데이터 영역에, 히스토리 스트림 history_stream()로서 기술되어 있다. 본 발명에 있어서는, 제 3 세대의 부호화 비디오 스트림(ST: 3rd)의 픽처층의 유저 데이터 영역에 기술되어 있는 비트 스트림을, 「히스토리 정보」, 또는「이력 정보」라고 부르고, 상기 비트 스트림으로서 기술되어 있는 부호화 파라미터를「히스토리 파라미터」, 또는 「이력 파라미터」라고 부르고 있다.
또한 달리 부르는 방법으로서, 제 3 세대의 부호화 스트림(ST: 3rd)에 기술되어 있는 제 3 세대의 부호화 파라미터를 「현재의 부호화 파라미터」라고 부른 경우에는, 제 3 세대의 부호화 처리로부터 보아 제 1 세대 및 제 2 세대의 부호화 처리는, 과거에 행해진 부호화 처리이기 때문에, 제 3 세대의 부호화 스트림(ST; 3rd)의 픽처층의 유저 데이터 영역에 기술되어 있는 비트 스트림으로서 기술되어 있는 부호화 파라미터를 「과거의 부호화 파라미터」라고도 부르고 있다.
상기와 같이, 상기 제 3 부호화 스트림(ST; 3rd)중에, 제 3 부호화 파라미터를 기술할 뿐만 아니라, 제 1 세대 및 제 2 세대의 부호화 처리에 있어서 생성된 제 1 세대 및 제 2 세대의 부호화 파라미터를 기술하는 이유는, 트랜스 코딩 처리에 의해서 부호화 스트림의 GOP 구조나 비트 레이트의 변경을 반복하였다고 해도, 화질 열화를 방지할 수 있기 때문이다.
예를 들면, 어떤 픽처를 제 1 세대의 부호화 처리에 있어서 P 픽처로서 부호화하고, 제 1 세대의 부호화 스트림의 GOP 구조를 변경하기 위해서, 제 2 세대의 부호화 처리에 있어서 그 픽처를 B 픽처로서 부호화하여, 제 2 세대의 부호화 스트림의 GOP 구조를 더 변경하기 위해서, 제 3 세대의 부호화 처리에 있어서, 재차 그 픽처를 P 픽처로서 부호화하는 것이 생각된다. MPEG 규격에 기초하는 부호화 처리 및 복호 처리는 100% 가역의 처리가 아니기 때문에, 부호화 및 복호 처리를 반복할 때마다 화질이 열화되어 가는 것은 알려져 있다.
이러한 경우에, 제 3 세대의 부호화 처리에 있어서, 양자화 스케일, 움직임 벡터, 예측 모드 등의 부호화 파라미터를 다시 한번 계산하는 것은 아니고, 제 1 세대의 부호화 처리에 있어서 생성된 양자화 스케일, 움직임 벡터, 예측 모드 등의 부호화 파라미터를 재이용한다. 제 3 세대의 부호화 처리에 의해서 새롭게 생성된 양자화 스케일, 움직임 벡터, 예측 모드 등의 부호화 파라미터보다도, 제 1 세대의 부호화 처리에 의해서 새롭게 생성된 양자화 스케일, 움직임 벡터, 예측 모드 등의 부호화 파라미터쪽이, 분명히 정밀도가 좋기 때문에, 상기 제 1 세대의 파라미터를 재이용함으로써, 부호화 및 복호 처리를 반복하였다고 해도 화질 열화를 적게 할 수 있다.
상술한 본 발명에 따른 처리를 설명하기 위해서, 도 15에 도시된 제 4 세대의 트랜스코더(101)의 처리를 예에 들어 더욱 상세하게 설명한다.
복호 장치(102)는, 제 3 세대의 부호화 비트 스트림(ST; 3rd)에 포함되어 있는 부호화 비디오를 제 3 세대의 부호화 파라미터를 사용하여 복호하고, 복호된 베이스 밴드의 디지털 비디오 데이터를 생성하기 위한 장치이다. 더욱이, 복호 장치(102)는 제 3 세대의 부호화 비트 스트림(ST: 3rd)의 픽처층의 유저 데이터 영역에 비트 스트림으로서 기술되어 있는 제 1 세대 및 제 2 세대의 부호화 파라미터를 디코드하기 위한 장치이기도 하다.
구체적으로는, 도 16에 도시되어 있는 바와 같이, 복호 장치(102)는, 도 5의 복호장치(2)의 디코더(31; 도 12)와 기본적으로 같은 구성으로 되고, 공급된 비트 스트림을 버퍼링하기 위한 수신 버퍼(81), 부호화 비트 스트림을 가변 길이 복호하기 위한 가변 길이 복호 회로(112), 가변 길이 복호된 데이터를 가변 길이 복호 회로(112)로부터 공급된 양자화 스케일에 따라서 역양자화하는 역양자화 회로(83), 역양자화된 DCT 계수를 역이산 코사인 변환하는 IDCT 회로(84), 및 이동 보상 처리를 행하기 위한 연산기(85), 프레임 메모리(86) 및 이동 보상 회로(87)를 구비하고 있다.
가변 길이 복호 회로(112)는 제 3 세대의 부호화 비트 스트림(ST: 3rd)을 복호 처리하기 위해서, 상기 제 3 세대의 부호화 비트 스트림(ST: 3rd)의 픽처층, 슬라이스층 및 매크로 블록층에 기술되어 있는 제 3 세대의 부호화 파라미터를 추출한다. 예를 들면, 상기 가변 길이 복호 회로(112)에 있어서 추출되는 제 3 세대의 부호화 파라미터는, 픽처 타입을 나타내는 picture_coding_type, 양자화 스케일 스텝 사이즈를 나타내는 quantiser_scale_code, 예측 모드를 나타내는 macroblock_type, 움직임 벡터를 나타내는 motion_vector, Frame 예측 모드가 Field 예측 모드인지를 나타내는 frame/field_motion_type, 및 Frame DCT 모드인지 Field DCT 모드인지를 나타내는 dct_type 등이다. 상기 가변 길이 복호 회로(112)에 있어서 추출된 quatntiser_scale_code는, 역양자화 회로(83)에 공급되고, picture_coding_type, quatntiser_scale_code, macroblock_type, motion_vector, frame/field_motion_type, dct_type 등의 파라미터는, 이동 보상 회로(87)에 공급된다.
가변 길이 복호 회로(112)는 제 3 세대의 부호화 비트 스트림(ST: 3rd)을 복호 처리하기 위해서 필요한 이들의 부호화 파라미터뿐만 아니라, 후단의 제 5 세대의 트랜스코더에 제 3 세대의 히스토리 정보로서 전송되어야 할 부호화 파라미터를, 제 3 세대의 부호화 비트 스트림(ST: 3rd)의 시퀀스층, GOP층, 픽처층, 슬라이스층, 및 매크로 블록층으로부터 추출한다. 물론, 제 3 세대의 복호 처리에 사용된 picture_coding_type, quatntiser_scale_code, macroblock_type, motion_vector, frame/field_motion_type, dct_type 등의 제 3 세대의 부호화 파라미터는, 상기 제 3 세대의 히스토리 정보에 포함되어 있다. 히스토리 정보로서 어떠한 부호화 파라미터를 추출할지에 대해서는, 전송 용량 등에 따라서 오퍼레이터나 호스트 컴퓨터측에서 미리 설정되어 있다.
더욱이, 가변 길이복호 회로(112)는 제 3 세대의 부호화 비트 스트림(ST: 3rd)의 픽처층의 유저 데이터 영역에 기술되어 있는 유저 데이터를 추출하고, 그 유저 데이터를 히스토리 디코딩 장치(104)에 공급한다.
상기 히스토리 디코딩 장치(104)는, 제 3 세대의 부호화 비트 스트림(ST; 3rd)의 픽처층에 기술되어 있던 유저 데이터로부터, 히스토리 정보로서 기술되어 있는 제 1 세대의 부호화 파라미터 및 제 2 세대의 부호화 파라미터(직전의 세대보다 더 앞의 세대의 부호화 파라미터)를 추출하기 위한 회로이다. 구체적으로는, 히스토리 디코딩 장치(104)는, 받아들인 유저 데이터의 신택스를 해석함으로써, 유저 데이터 내에 기술되어 있는 고유의 History_Data_Id를 검출하고, 이로써, converted_history_stream()을 추출할 수 있다. 더욱이, 히스토리 디코딩 장치(104)는, converted_history_stream()중에 있는 소정 간격으로 삽입되어 있는 1 비트의 마커 비트(marker_bit)를 제거하는 것에 의해서, history_stream()을 얻고, 그리고, 그 history_stream()의 신택스를 해석함으로써, history_stream()내에 기술되어 있는 제 1 세대 및 제 2 세대의 부호화 파라미터를 얻을 수 있다. 상기 히스토리 디코딩 장치(104)의 자세한 동작에 대해서는, 후술한다.
히스토리 정보 다중화 장치(103)는 제 1 세대, 제 2 세대 및 제 3 세대의 부호화 파라미터를, 제 4 세대의 부호화 처리를 행하는 부호화 장치(106)에 공급하기 위해서 복호 장치(102)에 있어서 디코드되어 베이스 밴드의 비디오 데이터에, 이들의 제 1 세대, 제 2 세대 및 제 3 세대의 부호화 파라미터를 다중화하기 위한 회로이다. 구체적으로는, 히스토리 정보 다중화 장치(103)는, 복호 장치(102)의 연산기(85)로부터 출력되어 베이스 밴드의 비디오 데이터, 복호 장치(102)의 가변 길이 복호 장치(112)로부터 출력된 제 3 세대의 부호화 파라미터, 및, 히스토리 디코딩 장치(104)로부터 출력된 제 1 세대의 부호화 파라미터와 제 2 세대의 부호화 파라미터를 수취하고, 상기 베이스 밴드의 비디오 데이터에, 이들의 제 1 세대, 제 2 세대 및 제 3 세대의 부호화 파라미터를 다중화한다. 제 1 세대, 제 2 세대 및 제 3 세대의 부호화 파라미터가 다중화되어 베이스 밴드의 비디오 데이터는, 전송 케이블을 통하여 히스토리 정보 분리 장치(105)에 공급된다.
다음에, 이들의 제 1 세대, 제 2 세대 및 제 3 세대의 부호화 파라미터의 베이스 밴드 비디오 데이터의 다중화 방법에 관해서, 도 17 및 도 18을 참조하여 설명한다. 도 17은 MPEG 규격에 있어서 정의되어 있는, 16 픽셀×16 픽셀로 이루어지는 1개의 매크로 블록을 도시하고 있다. 상기 16 픽셀×16 픽셀의 매크로 블록은, 휘도 신호에 관해서는 4개의 8 픽셀×8 픽셀로 이루어지는 서브 블록(Y[0], [1], [2] 및 Y[3])과, 색차 신호에 관해서는 4개의 8 픽셀×8 픽셀로 이루어지는 서브 블록(Cr[0], r[1], b[0] 및 Cb[1])으로 구성되어 있다.
도 18은 비디오 데이터가 있는 포맷을 도시하고 있다. 상기 포맷은 ITU 권고-RDT 601에 있어서 정의되어 있는 포맷으로서, 방송업계에서 사용되고 있는 소위 「D1 포맷」을 나타내고 있다. 상기 D1 포맷은, 10 비트의 비디오 데이터를 전송하기 위한 포맷으로서 규격화되었기 때문에, 비디오 데이터의 1 픽셀을 10 비트로 표현할 수 있도록으로 되어 있다.
MPEG 규격에 의해서 디코드되어 베이스 밴드의 비디오 데이터는 8 비트이기 때문에, 본 발명의 트랜스코더에 있어서는, 도 18에 도시한 바와 같이, D1 포맷의 10 비트중 상위 8 비트(D9 내지 D2)를 사용하여, MPEG 규격에 기초하여 디코드되어 베이스 밴드의 비디오 데이터를 전송하도록 하고 있다. 상기와 같이, 복호된 8 비트의 비디오 데이터를 D1 포맷에 기록하면 , 하위 2 비트(D1과 D0)는, 공 비트(unallocated bits)로 된다. 본 발명의 트랜스코더에서는 상기 공 영역(unallocated area)를 이용하여, 히스토리 정보를 전송하도록 하고 있다.
상기 도 18에 기재된 데이터 블록은, 각 서브 블록(Y[0], Y[1], Y[2], Y[3], Cr[0], Cr[1], Cb[0], Cb[1])에 있어서의 1 픽셀을 전송하기 위한 데이터 블록이기 때문에, 1 매크로 블록의 데이터를 전송하기 위해서는, 상기 도 18에 도시되어 있는 데이터 블록이 64개 전송된다. 하위 2 비트(D1과 DO)를 사용하면, 1 매크로 블록의 비디오 데이터에 대하여, 합계로 1024(=16×64) 비트의 히스토리 정보를 전송할 수 있다. 따라서, 1세대분의 히스토리 정보는, 256 비트가 되도록 생성되어 있기 때문에, 과거의 4(=1024/256) 세대분의 히스토리 정보를 1 매크로 블록의 비디오 데이터에 대하여 중첩할 수 있다. 도 18에 도시된 예에서는, 제 1 세대의 히스토리 정보, 제 2 세대의 히스토리 정보, 및, 제 3 세대의 히스토리 정보가 중첩되어 있다.
히스토리 정보 분리 장치(105)는, D1 포맷으로서 전송된 데이터의 상위 8 비트로부터, 베이스 밴드 비디오 데이터를 추출하고, 하위 2 비트로부터 히스토리 정보를 추출하기 위한 회로이다. 도 15에 도시된 예로서는, 히스토리 정보 분리 장치(105)는, 전송 데이터로부터 베이스 밴드의 비디오 데이터를 추출하여, 그 비디오 데이터를 부호화 장치(106)에 공급함과 동시에, 전송 데이터로부터 제 1 세대, 제 2 세대 및 제 3 세대의 히스토리 정보를 추출하여, 부호화 장치(106)와 히스토리 인코딩 장치(107)에 각각 공급한다.
부호화 장치(106)는 히스토리 정보 분리 장치(105)로부터 공급되어 베이스 밴드의 비디오 데이터를, 오퍼레이터 또는 호스트 컴퓨터로부터 지정된 GOP 구조 및 비트 레이트를 가지는 비트 스트림이 되도록 부호화하기 위한 장치이다. 또, GOP 구조를 변경한다는 것은, 예를 들면, GOP에 포함되는 픽처의 수, I 픽처와 I 픽처 사이에 존재하는 P 픽처의 수, 및 I 픽처와 P 픽처(또는 I 픽처) 사이에 존재하는 B 픽처의 수를 변경하는 것을 의미한다.
도 15에 도시된 예에서는, 공급된 베이스 밴드의 비디오 데이터에는, 제 1 세대, 제 2 세대 및 제 3 세대의 히스토리 정보가 중첩되어 있기 때문에, 상기 부호화 장치(106)는, 재부호화 처리에 의한 화질 열화가 적어지도록, 이들의 히스토리 정보를 선택적으로 재이용하여 제 4 세대의 부호화 처리를 행한다.
도 19는 상기 부호화 장치(106)에 설치되어 있는 부호화 장치(106)의 구체적인 구성을 도시하고 있는 도면이다. 상기 부호화 장치(106)는 기본적으로는, 도 7에 도시된 인코더(18)와 동일하게 구성되고, 움직임 벡터 검출 회로(50), 프레임/필드 예측 모드 전환 회로(52), 연산기(53), DCT 모드 전환 회로(55), DCT 회로(56),양자화 회로(57), 가변 길이 부호화 회로(58), 전송 버퍼(59), 역양자화 회로(60),역DCT 회로(61), 연산기(62), 프레임 메모리(63), 및 이동 보상 회로(64)를 구비하고 있다. 이들의, 각 회로의 기능은, 도 7에 있어서 설명한 인코더(18)에 있어서의 경우의 기능과 거의 같기 때문에, 그 설명은 생략한다. 이하에, 상기 부호화 장치(106)와, 도 7에 있어서 설명한 인코더(18)와의 다른 점을 중심으로 설명한다.
상기 부호화 장치(106)는 상술한 각 회로의 동작 및 기능을 제어하기 위한 컨트롤러(70)를 가지고 있다. 상기 컨트롤러(70)는 오퍼레이터 또는 호스트 컴퓨터로부터 GOP 구조에 관한 인스트럭션을 받아들이며, 그 GOP 구조에 대응하도록 각 픽처의 픽처 타입를 결정한다. 또한, 상기 컨트롤러(70)는 오퍼레이터 또는 호스트 컴퓨터로부터 타깃 비트 레이트의 정보를 수취하고, 상기 부호화 장치(106)로부터 출력되는 비트 레이트가 지정된 타깃 비트 레이트가 되도록, 양자화 회로(57)를 제어한다.
더욱이, 상기 컨트롤러(70)는 히스토리 정보 분리 장치(105)로부터 출력된 복수 세대의 히스토리 정보를 수취하고, 이들의 히스토리 정보를 재이용하여 참조 픽처의 부호화 처리를 행한다. 이하에 상세하게 설명한다.
우선, 상기 컨트롤러(70)는 오퍼레이터에 의해서 지정된 GOP 구조로부터 결정된 참조 픽처의 픽처 타입과, 히스토리 정보에 포함되는 픽처 타입이 일치하는지의 여부를 판단한다. 결국, 지정된 픽처 타입과 같은 픽처 타입으로 상기 참조 픽처가 과거에 있어서 부호화된 적이 있는지의 여부를 판단한다.
도 15에 도시된 예를 들어 보다 알기 쉽게 설명한다면, 상기 컨트롤러(70)는 제 4 세대의 부호화 처리로서 상기 참조 픽처에 어사인 된 픽처 타입이, 제 1 세대의 부호화 처리에 있어서의 상기 참조 픽처의 픽처 타입, 제 2 세대의 부호화 처리에 있어서의 상기 참조 픽처의 픽처 타입, 또는 제 3 세대의 부호화 처리에 있어서의 상기 참조 픽처의 픽처 타입의 어느 하나와 일치하는지의 여부를 판단한다.
만약, 제 4 세대의 부호화 처리로서 상기 참조 픽처에 지정된 픽처 타입이, 과거의 부호화 처리에 있어서의 어떤 픽처 타입와도 일치하지 않는다면, 상기 컨트롤러(70)는 「통상 부호화 처리」를 행한다. 결국, 상기의 경우에는, 제 1 세대, 제 2 세대 또는 제 3 세대의 어떠한 세대의 부호화 처리에 있어서도, 제 4 세대의 부호화 처리로서 어사인 된 픽처 타입이며, 상기 참조 픽처가 부호화 처리된 경우가 없게 된다. 한편, 만약, 제 4 세대의 부호화 처리로서 상기 참조 픽처에 지정된 픽처 타입이, 과거의 부호화 처리에 있어서의 어느 하나의 픽처 타입와 일치한다면, 상기 컨트롤러(70)는 「파라미터 재이용 부호화 처리」를 행한다. 결국, 상기의 경우에는, 제 1 세대, 제 2 세대 또는 제 3 세대의 어느 하나의 세대의 부호화 처리에 있어서, 제 4 세대의 부호화 처리로서 어사인된 픽처 타입이며, 상기 참조 픽처가 부호화 처리된 경우가 있게 된다.
우선, 최초에 컨트롤러(70)의 통상부호화 처리에 대하여 설명한다.
움직임 벡터 검출 회로(50)는 프레임 예측 모드 또는 필드 예측 모드의 어느 쪽이 선택되어야 하는지를 판단하기 위해서, 프레임 예측 모드에 있어서의 예측 오차와 필드 예측 모드에 있어서의 예측 오차를 각각 검출하고, 그 예측 오차의 값을 컨트롤러(70)에 공급한다. 컨트롤러(70)는 그 예측 오차의 값을 비교하여, 그 예측 오차의 값이 작은 쪽의 예측 모드를 선택한다. 예측 모드 전환 회로(52)는 컨트롤러(70)에 의해서 선택된 예측 모드에 대응하도록 신호 처리를 행하고 그것을 연산기(53)에 공급한다.
구체적으로는, 예측 모드 전환 회로(52)는, 프레임 예측 모드가 선택된 경우에는, 도 8을 참조하여 설명한 바와 같이, 휘도 신호에 대해서는, 입력된 상태대로 연산기(53)에 출력하도록 신호처리를 행하고, 색차 신호에 대해서는, 홀수 필드 라인과 짝수 필드 라인이 혼재하도록 신호처리하는 한편, 필드 예측 모드가 선택된 경우에는, 도 9를 참조하여 설명한 바와 같이, 휘도 신호에 관해서는, 휘도 블록(Y[1]과 Y[2])을 홀수 필드 라인으로 구성하고, 휘도 블록(Y[3]과 Y[4])을 짝수 필드 라인으로 구성하도록 신호처리하며, 색차 신호에 관해서는, 상부 4 라인을 홀수 필드 라인으로 구성하여, 하부 4 라인을 짝수 필드 라인으로 구성하도록 신호처리한다.
더욱이, 움직임 벡터 검출 회로(50)는 화상내 예측 모드, 전방 예측 모드, 후방 예측 모드, 또는 양방향 예측 모드중 어느 쪽의 예측 모드를 선택하는지를 결정하기 위해서, 각 예측 모드에 있어서의 예측 오차를 생성하고, 각 예측 모드에 있어서의 예측 오차를 컨트롤러(70)에 각각 공급한다. 컨트롤러(70)는 전방 예측, 후방 예측 및 양방향 예측의 예측 오차중의 가장 작은 것을, 인터 예측의 예측 오차로서 선택한다. 더욱이, 상기 인터 예측의 예측 오차와, 화상내 예측의 예측 오차를 비교하여, 작은 쪽을 선택하며, 상기 선택한 예측 오차에 대응하는 모드를 예측 모드로서 선택한다. 즉, 화상내 예측의 예측 오차쪽이 작으면, 화상내 예측 모드가 설정된다. 인터 예측의 예측 오차쪽이 작으면 전방 예측, 후방 예측 또는 양방향 예측 모드중의 대응하는 예측 오차가 가장 작은 모드가 설정된다. 컨트롤러(70)는 선택한 예측 모드에 대응하도록, 연산기(53) 및 이동 보상 회로(64)를 제어한다.
DCT 모드 전환 회로(55)는 프레임 DCT 모드 또는 필드 DCT 모드의 어느 하나를 선택하기 위해서, 4개의 휘도 블록의 데이터를, 홀수 필드 라인과 짝수 필드 라인이 혼재하는 신호 형태(프레임 DCT 모드)로 변환함과 동시에, 홀수 필드 라인과 짝수 필드 라인이 분리된 신호 형태(필드 DCT 모드)로 변환하여, 각각의 신호를 DCT 회로(56)에 공급한다. DCT 회로(56)는 홀수 필드와 짝수 필드를 혼재하여 DCT 처리한 경우에 있어서의 부호화 효율과, 홀수 필드와 짝수 필드를 분리한 상태에 있어서 DCT 처리한 경우의 부호화 효율을 계산하고, 그 결과를 컨트롤러(70)에 공급한다. 컨트롤러(70)는 DCT 회로(56)로부터 공급된 각각의 부호화 효율을 비교하여, 부호화 효율이 좋은 쪽의 DCT 모드를 선택하며, 그 선택한 DCT 모드로 되도록 DCT 모드 전환 회로(55)를 제어한다.
컨트롤러(70)는 오퍼레이터 또는 호스트 컴퓨터로부터 공급된 목표 비트 레이트를 나타내는 타깃 비트 레이트와, 송신 버퍼(59)에 버퍼링되어 있는 비트량을 나타내는 신호, 결국, 버퍼 잔여량을 나타내는 신호를 수취하고, 상기 타깃 비트 레이트와 버퍼 잔여량에 기초하여, 양자화 회로(57)의 양자화 스텝 사이즈를 컨트롤하기 위한 feedback_q_scale_code를 생성한다. 상기 feedback_q_scale_code는, 상기 송신 버퍼(59)가 오버플로 또는 언더플로하지 않도록, 상기 송신 버퍼(59)의 버퍼 잔여량에 따라서 생성되는 제어신호이며, 또한, 송신 버퍼(59)로부터 출력되는 비트 스트림의 비트 레이트가, 타깃 비트 레이트가 되도록 제어하는 신호이기도 하다.
구체적으로는, 예를 들면, 송신 버퍼(59)에 버퍼링 되어 있는 비트량이 적어져 버린 경우에는, 다음에 부호화하는 픽처의 발생 비트량이 증가하도록, 양자화 스텝 사이즈를 작게 하고, 한편, 송신 버퍼(59)에 버퍼링되어 있는 비트량이 많아져 버린 경우에는, 다음에 부호화하는 픽처의 발생 비트량이 적어지도록, 양자화 스텝 사이즈를 크게 한다. 또, feedback_q_scale_code와 양자화 스텝 사이즈는 비례하여, feedback_q_scale_code를 크게 하면, 양자화 스텝 사이즈는 커지고, feedback_q_scale_code를 작게 하면, 양자화 스텝 사이즈는 작아진다.
다음에, 상기 트랜스코더(101)의 특징의 하나이기도 한, 파라미터 재이용부호화 처리에 대하여 설명한다. 상기 처리를 보다 알기 쉽게 설명하기 위해서, 참조 픽처는, 제 1 세대의 부호화 처리에 있어서 P 픽처로서 부호화되고, 제 2 세대의 부호화 처리에 있어서 I 픽처로서 부호화 처리되며, 제 3 세대의 부호화 처리에 있어서 B 픽처로서 부호화되어 있는 것으로 하여, 이번의 제 4 세대의 부호화 처리에 있어서, 상기 참조 픽처를 P 픽처로서 부호화하지 않으면 안되게 된다.
상기의 경우에는, 제 4 세대의 픽처 타입로서 어사인 된 픽처 타입와 동일한 픽처 타입(I 픽처)이며, 상기 참조 픽처는 제 1 세대의 부호화 처리에 있어서 부호화되어 있으므로, 컨트롤러(70)는 공급된 비디오 데이터로부터 부호화 파라미터를 새롭게 작성하는 것은 아니고, 제 1 세대의 부호화 파라미터를 사용하여 부호화 처리를 행한다. 상기 제 4 부호화 처리에서 재이용하는 부호화 파라미터는, 대표적인 파라미터로서는, 양자화 스케일 스텝 사이즈를 나타내는 quantiser_scale_code, 예측 방향 모드를 나타내는 macroblock_type, 움직임 벡터를 나타내는 motion_vector, Frame 예측 모드가 Field 예측 타입을 나타내는 frame/field_motion_type, 및 Frame DCT 모드가 Field DCT 타입을 나타내는 dct_type 등이다.
컨트롤러(70)는 히스토리 정보로서 전송된 모든 부호화 파라미터를 재이용하는 것은 아니며, 재이용한 쪽이 바람직하다고 상정되는 상술한 바와 같은 부호화 파라미터에 대해서는 재이용하고, 재이용하지 않는 쪽이 바람직하다고 생각되는 부호화 파라미터에 대해서는, 새롭게 생성한다.
다음에, 상기 부호화 파라미터 재이용 부호화 처리에 대하여, 상술한 통상 부호화 처리와 다른 점을 중심으로 설명한다.
움직임 벡터 검출 회로(50)는 상술한 통상 부호화 처리에 있어서는, 참조 픽처의 움직임 벡터의 검출을 행하였지만, 상기 파라미터 재이용 부호화 처리에 있어서는, 움직임 벡터 motion_vector의 검출처리는 행하지 않고서, 제 1 세대의 히스토리 정보로서 공급된 움직임 벡터 motion_vector를 재이용한다. 그 이유에 대하여 설명한다.
제 3 세대의 부호화 스트림을 복호하여 베이스 밴드의 비디오 데이터는, 적어도 3회의 복호 및 부호화 처리가 행해지고 있기 때문에, 오리지널 비디오 데이터에 비교하면, 분명히 화질이 열화하고 있다. 화질이 열화하고 있는 비디오 데이터로부터 움직임 벡터를 검출하였다고 해도, 정확한 움직임 벡터는 검출할 수 없다. 결국, 제 4 세대의 부호화 처리에 있어서 검출된 움직임 벡터보다도, 제 1 세대의 히스토리 정보로서 공급되어 있는 움직임 벡터쪽이, 분명히, 정밀도가 높은 움직임 벡터이다. 결국, 제 1 세대의 부호화 파라미터로서 전송된 움직임 벡터를 재이용함으로써, 제 4 세대의 부호화 처리를 행하였다고 해도 화질이 열화하지 않는다. 컨트롤러(70)는 상기 제 1 세대의 히스토리 정보로서 공급된 움직임 벡터 motion_vector를, 제 4 세대의 부호화 처리에 있어서 부호화되는 상기 참조 픽처의 움직임 벡터 정보로서, 이동 보상 회로(64) 및 가변 길이 부호화 회로(58)에 공급한다.
또한, 움직임 벡터 검출 회로(50)는 프레임 예측 모드와 필드 예측 모드의 어느 쪽이 선택되는지를 판단하기 위해서, 프레임 예측 모드에 있어서의 예측 오차와 필드 예측 모드에 있어서의 예측 오차를 각각 검출하였지만, 상기 파라미터 재이용부호화 처리에 있어서는, 상기 프레임 예측 모드에 있어서의 예측 오차와 필드 예측 모드에 있어서의 예측 오차를 검출하는 처리는 행하지 않고서, 제 1 세대의 히스토리 정보로서 공급되어 있는 Frame 예측 타입 Field 예측 모드인지를 나타내는 frame/field_motion_type를 재이용한다. 왜냐하면, 제 4 세대의 부호화 처리에 있어서 검출된 각 예측 모드에 있어서의 예측 오차보다도, 제 1 세대에서 검출된 각 예측 모드에 있어서의 예측 오차쪽이 정밀도가 높기 때문에, 정밀도가 높은 예측 오차에 의해서 결정된 예측 모드를 선택한 쪽이 보다 적합한 부호화 처리를 행할 수 있기 때문이다.
구체적으로는, 컨트롤러(70)는 상기 제 1 세대의 히스토리 정보로서 공급되고 있는 frame/field_motion_type에 대응하는 제어신호를 예측 모드 전환 회로(52)에 공급하고, 예측 모드 전환 회로(52)는, 상기 재이용된 frame/field_motion_type에 대응한 신호처리를 행한다.
더욱이, 움직임 벡터 검출 회로(50)는 통상 부호화 처리에 있어서는, 화상내 예측 모드, 전방 예측 모드, 후방 예측 모드, 또는 양방향 예측 모드중 어느 쪽의 예측 모드(이하, 상기 예측 모드를, 예측 방향 모드라고도 칭한다)를 선택하는지를 결정하기 위해서, 각 예측방향 모드에 있어서의 예측 오차를 계산하고 있었지만, 상기 파라미터 재이용 부호화 처리에 있어서는, 각 예측 방향 모드에 있어서의 예측 오차의 계산은 행하지 않고, 제 1 세대의 히스토리 정보로서 공급된 macroblock_type에 기초하여 예측 방향 모드를 결정한다. 왜냐하면, 제 4 세대의 부호화 처리에 있어서의 각 예측 방향 모드에 있어서의 예측 오차보다도, 제 1 세대의 부호화 처리에 있어서의 각 예측 방향 모드에 있어서의 예측 오차쪽이 보다 정밀도가 높기 때문에, 보다 정밀도가 높은 예측 오차에 의해서 결정된 예측 방향 모드를 선택한 쪽이, 보다 효율이 좋은 부호화 처리가 행할 수 있기 때문이다. 구체적으로는, 컨트롤러(70)는 제 1 세대의 히스토리 정보에 포함되어 있는 macroblock_type에 의해서 나타나는 예측 방향 모드를 선택하여, 그 선택한 예측 방향 모드에 대응하도록, 연산기(53) 및 이동 보상 회로(64)를 컨트롤한다.
DCT 모드 전환 회로(55)는 통상 부호화 처리에 있어서는, 프레임 DCT 모드의 부호화 효율과, 필드 DCT 모드의 부호화 효율을 비교하기 위해서 프레임 DCT 모드의 신호형태로 변환한 신호와, 필드 DCT 모드의 신호형태로 변환한 신호의 양쪽을 DCT 회로(56)에 공급하고 있었지만, 상기 파라미터 재이용부호화 처리로서는, 프레임 DCT 모드의 신호형태로 변환한 신호와, 필드 DCT 모드의 신호형태로 변환한 신호의 양쪽을 생성하는 처리는 행하지 않고, 제 1 세대의 히스토리 정보에 포함되어 있는 dct_type에 의해서 나타난 DCT 모드에 대응하는 처리만을 행하고 있다. 구체적으로는, 컨트롤러(70)는 제 1 세대의 히스토리 정보에 포함되어 있는 dct_type를 재이용하여, DCT 모드 전환 회로(55)가 상기 dct_type에 의해서 나타나는 DCT 모드에 대응한 신호처리를 행하도록, DCT 모드 전환 회로(55)를 컨트롤한다.
컨트롤러(70)는 통상 부호화 처리에서는, 오퍼레이터에 의해서 지정된 타깃 비트 레이트와 송신 버퍼 잔여량에 기초하여, 양자화 회로(57)의 양자화 스텝 사이즈를 컨트롤하고 있었지만, 상기 파라미터 재이용 부호화 처리에서는, 타깃 비트 레이트, 송신 버퍼 잔여량 및 히스토리 정보에 포함되어 있는 과거의 양자화 스케일에 기초하여, 양자화 회로(57)의 양자화 스텝 사이즈를 컨트롤한다. 또, 이하의 설명에 있어서, 히스토리 정보에 포함되어 있는 과거의 양자화 스케일을 history_q_scale_code라고 기술하기로 한다. 또한, 후술하는 비트 스트림에 있어서는, 상기 양자화 스케일을, quantiser_scale_code라고 기술하고 있다.
우선, 컨트롤러(70)는 통상 부호화 처리와 같이, 현재의 양자화 스케일 feedback_q_scale_code를 생성한다. 상기 feedback_q_scale_code는, 상기 송신 버퍼(59)가 오버플로 및 언더플로하지 않도록, 상기 송신 버퍼(59)의 버퍼 잔여량에 따라서 결정되는 값이다. 계속해서, 제 1 세대의 비트 스트림에 포함되어 있는 과거의 양자화 스케일 history_q_scale_code의 값과, 상기 현재의 양자화 스케일 feedback_q_scale_code의 값을 비교하여, 어느 쪽의 양자화 스케일쪽이 큰지를 판단한다. 양자화 스케일이 크다는 것은, 양자화 스텝이 큰 것을 의미한다. 만약, 현재의 양자화 스케일 feedback_q_scale_code가, 과거의 양자화 스케일 history_q_scale_code보다도 큰 것이면, 컨트롤러(70)는 상기 현재의 양자화 스케일 feedback_q_scale_code를 양자화 회로(57)에 공급한다. 한편, 과거의 양자화 스케일 history_q_scale_code가, 현재의 양자화 스케일 feedback_q_scale_code보다도 크다면, 컨트롤러(70)는 상기 과거의 양자화 스케일 history_q_scale_code를 양자화 회로(57)에 공급한다.
결국, 컨트롤러(70)는 히스토리 정보에 포함되어 있는 복수의 과거의 양자화 스케일과, 송신 버퍼의 잔여량으로부터 계산된 현재의 양자화 스케일 중에서, 가장 큰 양자화 스케일 코드를 선택한다. 또한, 다른 말로 설명한다면, 컨트롤러(70)는 과거(제 1, 제 2 및 제 3 세대)의 부호화 처리에 있어서의 양자화 스텝 또는 현재(제 4 세대)의 부호화 처리에서 사용된 양자화 스텝 중에서, 가장 큰 양자화 스텝을 사용하여 양자화를 행하도록 양자화 회로(57)를 제어한다. 그 이유를 이하에 설명한다.
예를 들면, 제 3 세대의 부호화 처리에 있어서 생성된 스트림의 비트 레이트가 4[Mbps]이고, 상기 제 4 세대의 부호화 처리를 행하는 부호화 장치(106)에 대하여 설정된 타깃 비트 레이트가 15[Mbps]이었다고 한다. 이 때에, 타깃 비트 레이트가 올라가고 있기 때문에, 단순히 양자화 스텝을 작게 하면 좋다고 한다면, 실제로는 그렇지 않다. 과거의 부호화 처리에 있어서 큰 양자화 스텝에서 부호화 처리된 픽처를, 현재의 부호화 처리에 있어서, 양자화 스텝을 작게 하여 부호화 처리를 행하였다고 해도, 상기 픽처의 화질은 향상되지 않는다. 결국, 과거의 부호화 처리에 있어서의 양자화 스텝보다도 작은 양자화 스텝으로 부호화하는 것은, 단지 비트량이 증가할 뿐이며, 화질을 향상시키는 것으로는 되지 않는다. 따라서, 과거(제 1, 제 2 및 제 3 세대)의 부호화 처리에 있어서의 양자화 스텝 또는 현재(제 4 세대)의 부호화 처리에서 사용된 양자화 스텝 중에서, 가장 큰 양자화 스텝을 사용하여 양자화를 행하여, 가장 효율이 좋은 부호화 처리를 행할 수 있다.
다음에, 도 15에 있어서의 히스토리 디코딩 장치(104)와 히스토리 인코딩 장치(107)에 대하여 더 설명한다. 한편, 도 15에 있어서는, 상기 히스토리 디코딩 장치(104)가, 복호화 장치(102)는 다른 회로 또는 장치와 같이 표현되어 있지만, 이것은 히스토리 디코딩 장치(104)의 기능 및 구성을 보다 알기 쉽게 설명하기 위해서, 복호화 장치(102)와는 다른 블록과 같이 표현하였을 뿐이며, 실제로는, 히스토리 디코딩 장치(104)의 처리는, 복호화 장치(102)의 가변 길이 복호화 회로 및 복호화 제어 회로(복호화 컨트롤러) 내에서 행해지고 있는 처리이다. 마찬가지로, 도 15에 있어서는, 상기 히스토리 인코딩 장치(107)가, 부호화 장치(106)와는, 다른 회로 또는 장치와 같이 표현되어 있지만, 이것은 히스토리 인코딩 장치(107)의 기능 및 구성을 보다 알기 쉽게 설명하기 위해서, 부호화 장치(106)와는 별도의 블록과 같이 표현하였을 뿐이며, 실제로는, 히스토리 인코딩 장치(107)의 처리는, 부호화 장치(102)의 가변 길이 부호화 회로 및 부호화 제어회로(부호화 컨트롤러) 중에서 행해지고 있는 처리이다.
도 15에 도시하는 바와 같이, 히스토리 디코딩 장치(104)는, 복호 장치(102)로부터 공급되는 유저 데이터를 디코드하는 유저 데이터 디코더(201), 유저 데이터 디코더(201)의 출력을 변환하는 컨버터(202), 및 컨버터(202)의 출력으로부터 이력 정보를 재생하는 히스토리 VLD(203)에 의해 구성되어 있다.
또, 히스토리 인코딩 장치(107)는 히스토리 정보 분리 장치(105)로부터 공급되는 3세대분의 부호화 파라미터를 포맷화하는 히스토리 VLC(211), 히스토리 VLC(211)의 출력을 변환하는 컨버터(212), 컨버터(212)의 출력을 유저 데이터의 포맷으로 포맷하는 유저 데이터 타입(213)에 의해 구성되어 있다.
유저 데이터 디코더(201)는 복호 장치(102)로부터 공급되는 유저 데이터를 디코드하여, 컨버터(202)에 출력한다. 상세한 것은 도 51을 참조하여 후술하지만, 유저 데이터(user_data())는, user_data_start_code와 user_data로 이루어져, MPEG 규격에 있어서는 user_data 중에, 연속하는 23 비트의 "0"(start_code와 동일한 코드)을 발생시키는 것을 금지하고 있다. 이것은, 그 데이터가, start_code로서 에러 검출되는 것을 방지하기 위해서이다. 이력 정보(history_stream())는 유저 데이터 영역에(MPEG 규격의 user_data의 일종으로서) 기술되고, 그 중에는, 이러한 연속하는 23 비트 이상의 "0"이 존재하는 것이 있을 수 있기 때문에, 이것을, 연속하는 23 비트 이상의 "0"이 발생하지 않도록, 소정의 타이밍으로 "1"을 삽입 처리하며, converted_history_stream()(후술하는 도 38)으로 변환할 필요가 있다. 이 변환을 행하는 것은, 히스토리 인코딩 장치(107)의 컨버터(212)이다. 히스토리 디코딩 장치(104)의 컨버터(202)는, 상기 컨버터(212)와 반대의 변환처리를 행하는 (연속하는 23 비트 이상의"O"를 발생시키지 않기 때문에 삽입된 "1"을 제거한다) 것이다.
히스토리 VLD(203)는 컨버터(202)의 출력으로부터 이력 정보(현재의 경우, 제 1 세대의 부호화 파라미터와 제 2 세대의 부호화 파라미터)를 생성하여, 히스토리 정보 다중화 장치(103)에 출력한다.
한편, 히스토리 인코딩 장치(107)에 있어서는, 히스토리 VLC(211)가 히스토리 정보 분리 장치(105)로부터 공급되는 3세대분의(제 1 세대, 제 2 세대, 및 제 3 세대의) 부호화 파라미터를 이력 정보의 포맷으로 변환한다. 상기 포맷에는, 고정 길이인 것(후술하는 도 40 내지 도 46)과, 가변길이인 것(후술하는 도 47 이후)이 있다. 이들의 상세에 대해서는 후술한다.
히스토리 VLC(211)에 의해, 포맷화된 이력 정보는, 컨버터(212)에 있어서, converted_history_stream()으로 변환된다. 이것은, 상술한 바와 같이, user_data()의 start_code가 에러 검출되지 않도록 하기 위한 처리이다. 즉, 이력 정보내에는 연속하는 23 비트 이상의 "0"이 존재하지만, user_data 중에는 연속하는 23 비트 이상의 "0"을 배치할 수 없기 때문에, 상기 금지 항목에 언급하지 않도록 컨버터(212)에 의해 데이터를 변환하는("1"을 소정의 타이밍으로 삽입한다) 것이다.
유저 데이터 포매터(213)는 컨버터(212)로부터 공급되는 converted_history_stream()에, 후술하는 도 38에 기초하여, History_Data_ID를 부가하고, 더욱이, user_data_stream_code를 부가하여, video stream 중에 삽입할 수 있는 MPEG 규격의 user_data를 생성하여, 부호화 장치(106)에 출력한다.
도 20은 히스토리 VLC(211)의 구성예를 도시하고 있다. 그 부호어 변환기(301)와 부호길이 변환기(305)에는, 부호화 파라미터(이번, 이력 정보로서 전송하는 부호화 파라미터)(항목 데이터)와, 상기 부호화 파라미터를 배치하는 스트림을 특정하는 정보(예를 들면, 신택스의 명칭(예를 들면, 후술하는 sequence_header의 명칭))(항목 No.)가, 히스토리 정보 분리 장치(105)로부터 공급되어 있다. 부호어 변환기(301)는, 입력된 부호화 파라미터를, 지시된 신택스에 대응하는 부호어로 변환하여, 배럴 시프터(302)에 출력한다. 배럴 시프터(302)는, 부호어 변환기(301)로부터 입력된 부호어를, 어드레스 발생 회로(306)로부터 공급되는 시프트량에 대응하는 분만 시프트하여, 바이트 단위의 부호어로서, 스위치(303)에 출력한다. 어드레스 발생 회로(306)가 출력하는 비트 실렉트 신호에 의해 바뀌어지는 스위치(303)는, 비트분 설치되어 있고, 배럴 시프터(302)로부터 공급되는 부호어를, RAM(304)에 공급하여 기억시킨다. 이 때의 기록 어드레스는, 어드레스 발생 회로(306)로부터 지정된다. 또한, 어드레스 발생 회로(306)로부터 판독하여 어드레스가 지정되었을 때, RAM(304)에 기억되어 있는 데이터(부호어)가 판독되고, 후단의 컨버터(212)에 공급됨과 동시에, 필요에 따라서, 스위치(303)를 통하여 RAM(304)에 다시 공급되어, 기억된다.
부호 길이 변환기(305)는, 입력되는 신택스와 부호화 파라미터로부터, 그 부호화 파라미터의 부호 길이를 결정하여, 어드레스 발생 회로(306)에 출력한다. 어드레스 발생 회로(306)는, 입력된 부호길이에 대응하여, 상술한 시프트량, 비트 실렉트 신호, 기록 어드레스, 또는 판독 어드레스를 생성하여, 그것들을, 각각 배럴 시프터(302), 스위치(303), 또는 RAM(304)에 공급한다.
이상과 같이, 히스토리 VLC(211)는, 소위 가변 길이 부호화기로서 구성되고, 입력된 부호화 파라미터를 가변 길이 부호화하여 출력한다.
도 21은, 이상과 같이 하여 히스토리 포맷화된 데이터를 디코드하는 히스토리 VLD(203)의 구성예를 도시하고 있다. 상기 히스토리 VLD(203)에는, 컨버터(202)로부터 공급된 부호화 파라미터의 데이터가 RAM(311)에 공급되며, 기억된다. 이 때의 기록 어드레스는, 어드레스 발생 회로(315)로부터 공급된다. 어드레스 발생 회로(315)는 또한, 소정의 타이밍으로 판독하여 어드레스를 발생하고, RAM(311)에 공급한다. 이 때, RAM(311)은, 판독 어드레스에 기억되어 있는 데이터를 판독하여, 배럴 시프터(312)에 출력한다. 배럴 시프터(312)는 어드레스 발생 회로(315)가 출력하는 시프트량에 대응하는 분만, 입력되는 데이터를 시프트하여, 역부호 길이 변환기(313)와 역부호어 변환기(314)에 출력한다.
역부호 길이 변환기(313)에는 또, 컨버터(202)로부터, 부호화 파라미터가 배치되어 있는 스트림의 신택스의 명칭(항목 NO.)이 공급되어 있는 역 부호 길이 변환기(313)는 그 신텍스에 기초하여, 입력된 데이터(부호어)로부터 부호 길이를 구하여, 구한 부호 길이를 어드레스 발생 회로(315)에 출력한다.
또, 역 부호어 변환기(314)는 배럴 시프터(312)로부터 공급된 데이터를 신텍스에 기초하여 복호하여(역 부호어화하여) 히스토리 정보 다중화 장치(103)에 출력한다.
또, 역 부호어 변환기(314)는 어떠한 부호어가 포함되어 있는지를 특정하는 데 필요한 정보(부호어의 단락을 결정하는 데 필요한 정보)를 추출하여, 어드레스 발생 회로(315)에 출력한다. 어드레스 발생 회로(315)는 이 정보와 역 부호 길이 변환기(313)로부터 입력된 부호 길이에 기초하여, 기록 어드레스 및 판독 어드레스를 발생하여 RAM(311)에 출력함과 동시에, 시프트량을 발생하여, 배럴 시프터(312)로 출력한다.
도 22는 컨버터(212)의 구성예를 도시하고 있다. 이 예에 있어서는, 히스토리 VLC(211)와 컨버터(212) 사이에 배치되어 있는 버퍼 메모리(320)의 컨트롤러(326)가 출력하는 판독 어드레스로부터 8비트 데이터가 판독되고, D형 플립 플롭(D-FF)(321)에 공급되어 보존되도록 이루어져 있다. 그리고, D형 플립 플롭(321)으로부터 판독된 데이터는 스터프 회로(323)에 공급됨과 동시에, 8비트의 D형 플립 플롭(322)에도 공급되어 보존된다. D형 플립 플롭(322)으로부터 판독된 8비트 데이터는 D형 플립 플롭(321)으로부터 판독된 8비트 데이터와 합성되며, 16비트의 패럴렐 데이터로서 스터프 회로(323)에 공급된다.
스터프 회로(323)는 컨트롤러(326)로부터 공급되는 스터프 위치를 나타내는 신호(stuff position)의 위치에 부호 "1"을 삽입하여(스터핑하여), 합계 17비트 데이터로서 배럴 시프터(324)로 출력한다.
배럴 시프터(324)는 컨트롤러(326)로부터 공급되는 시프트량을 나타내는 신호(shift)에 기초하여 입력된 데이터를 시프트하고, 8비트 데이터를 추출하여, 8비트의 D형 플립 플롭(325)으로 출력한다. D형 플립 플롭(325)에 보존된 데이터는 그곳으로부터 판독되고, 버퍼 메모리(327)를 개재시켜, 후단의 유저 데이터 포매터(213)에 공급된다. 이 때, 컨트롤러(326)는 출력하는 데이터와 함께, 기록 어드레스를 발생하여, 컨버터(212)와 유저 데이터 포매터(213) 사이에 개재하는 버퍼 메모리(327)에 공급한다.
도 23은 스터프 회로(323)의 구성예를 도시하고 있다. D형 플립 플롭(322, 321)으로부터 입력된 16비트 데이터는 각각 스위치(331-16 내지 331-1)의 접점(a)에 입력되어 있다. 스위치(331-i)(i=0 내지 15)의 접점(c)에는 MSB 측(도면 중 위쪽)에 인접하는 스위치의 데이터가 공급되어 있다. 예를 들면, 스위치(331-12)의 접점(c)에는, MSB 측에 인접하는 스위치(331-13)의 접점(a)에 공급되어 있는 LSB로부터 13번째의 데이터가 공급되어 있으며, 스위치(331-13)의 접점(c)에는, MSB 측에 인접하는 스위치(331-14)의 접점(a)에 공급되어 있는 LSB 측으로부터 14번째의 데이터가 공급되어 있다.
단, LSB에 대응하는 스위치(331-1)보다 더욱 아래쪽의 스위치(331-0)의 접점(a)은 개방되어 있다. 또, MSB에 대응하는 스위치(331-16)의 접점(c)은 그것보다 상위의 스위치가 존재하지 않기 때문에, 개방되어 있다.
각 스위치(331-0 내지 331-16)의 접점(b)에는 데이터 "1"이 공급되어 있다.
디코더(332)는 컨트롤러(326)로부터 공급되는 데이터 "1"을 삽입하는 위치를 나타내는 신호 stuff position에 대응하여, 스위치(331-0 내지 331-16) 중, 1개의 스위치를 접점(b) 측으로 전환하여, 그것보다 LSB 측 스위치는 접점(c) 측에 각각 전환시키고, 그것보다 MSB 측 스위치는 접점(a) 측으로 전환시킨다.
도 23은 LSB 측으로부터 13번째로 데이터 "1"을 삽입하는 경우의 예를 도시하고 있다. 따라서, 이 경우, 스위치(331-0 내지 331-12)는 어느 것도 접점(c) 측으로 전환되고, 스위치(331-13)는 접점(b) 측으로 전환되며, 스위치(331-14 내지 331-16)는 접점(a) 측으로 전환되고 있다.
도 22의 컨버터(212)는 이상과 같은 구성에 의해, 22비트의 부호를 23비트로 변환하여 출력하게 된다.
도 24는 도 22의 컨버터(212)의 각 부의 출력 데이터의 타이밍을 도시하고 있다. 컨버터(212)의 컨트롤러(326)가 바이트 단위의 클록에 동기하여, 판독 어드레스(도 24a)를 발생하면, 버퍼 메모리(320)로부터 그에 대응하는 데이터가 바이트 단위로 판독되어, D형 플립 플롭(321)에 일단 보존된다. 그리고, D형 플립 플롭(321)으로부터 판독된 데이터(도 24b)는 스터프 회로(323)에 공급됨과 동시에, D형 플립 플롭(322)에 공급되어 보존된다. D형 플립 플롭(322)에 보존된 데이터는 그곳으로부터 더욱 판독되어(도 24c), 스터프 회로(323)에 공급된다.
따라서, 스태프 회로(323)의 입력(도 24d)은 판독 어드레스(A1)의 타이밍에 있어서, 처음의 1바이트 데이터(D0)가 되고, 다음 판독 어드레스(A2)의 타이밍에 있어서, 1바이트 데이터(D0)와 1바이트 데이터(D1)로 구성되는 2바이트 데이터가 되며, 더욱이 판독 어드레스(A3)의 타이밍에 있어서는, 데이터(D1)와 데이터(D2)로 구성되는 2바이트 데이터가 된다.
스터프 회로(323)에는 데이터 "1"을 삽입하는 위치를 나타내는 신호 stuff position(도 24e)이 컨트롤러(326)로부터 공급된다. 스터프 회로(323)의 디코더(332)는 스위치(331-16 내지 331-0) 중, 이 신호 stuff position에 대응하는 스위치를 접점(b)으로 전환, 그것보다 LSB 측 스위치를 접점(c) 측으로 전환, 더욱이 그것보다 MSB 측 스위치를 접점(a) 측으로 전환한다. 이로써, 데이터 "1"이 삽입되기 때문에, 스터프 회로(323)로부터는, 신호 stuff position에서 나타내는 위치에 데이터 "1"이 삽입된 데이터(도 24f)가 출력된다.
배럴 시프터(324)는 입력된 데이터를 컨트롤러(326)로부터 공급되는 신호 shift(도 24g)로 나타나는 배럴 시프트하여, 출력한다(도 24h). 이 출력이 더욱이 D형 플립 플롭(325)에서 일단 보존된 후, 후단에 출력된다(도 24i).
D형 플립 플롭(325)으로부터 출력되는 데이터에는, 22비트 데이터 다음에, 데이터 "1"이 삽입되어 있다. 따라서, 데이터 "1"과, 다음 데이터 "1" 사이에는 그 사이의 비트가 모두 0이었다 해도, O인 데이터가 연속하는 수는 22가 된다.
도 25는 컨버터(202)의 구성예를 도시하고 있다. 이 컨버터(202)의 D형 플립 플롭(341) 내지 컨트롤러(346)로 이루어지는 구성은 도 22에 도시한 컨버터(212)의 D형 플립 플롭(321) 내지 컨트롤러(326)와 기본적으로 동일한 구성이지만, 컨버터(212)에 있어서의 스터프 회로(323) 대신, 딜리트 회로(343)가 삽입되어 있는 점이 컨버터(212)에 있어서의 경우와 다르다. 그 밖의 구성은 도 22의 컨버터(212)에 있어서의 경우와 동일하다.
즉, 이 컨버터(202)에 있어서는, 컨트롤러(346)가 출력하는 삭제하는 비트의 위치를 나타내는 신호 delete position에 따라서, 딜리트 회로(343)가 그 비트(도 22의 스터프 회로(323)에서 삽입된 데이터 "1")가 삭제된다.
그 밖의 동작은 도 22의 컨버터(212)에 있어서의 경우와 동일하다.
도 26은 딜리트 회로(343)의 구성예를 도시하고 있다. 이 구성예에 있어서는, D형 플립 플롭(342, 341)으로부터 입력된 16비트 데이터 중, LSB 측 15비트가 각각 대응하는 스위치(351-0 내지 351-14)의 접점(a)에 공급되어 있다. 각 스위치의 접점(b)에는, 1비트만 MSB 측 데이터가 공급되어 있다. 디코더(352)는 컨트롤러(346)로부터 공급되는 신호 delete position에 의해 지정되는 비트를 삭제하여, 15비트의 데이터로서 출력하도록 이루어져 있다.
도 26은 LSB로부터 제 13번째의 비트가 딜리트되는 상태를 도시하고 있다. 따라서, 이 경우, 스위치(351-0 내지 351-11)가 접점(a) 측으로 전환되고, LSB로부터 제 12번째까지의 12비트가 그대로 선택, 출력되어 있다. 또, 스위치(351-12 내지 351-14)는 각각 접점(b) 측으로 전환되어 있기 때문에, 제 14번째 내지 제 16번째의 데이터가 제 13번째 내지 제 15번째 비트의 데이터로서 선택, 출력된다.
도 23의 스터프 회로(323) 및 도 26의 딜리트 회로(343)의 입력이 16비트로 되어 있는 것은 각각 도 22의 컨버터(212)의 스터프 회로(323)의 입력이 D형 플립 플롭(322, 321)으로부터 공급되는 16비트로 되어 있으며, 또, 도 25의 컨버터(202)에 있어서도, 딜리트 회로(343)의 입력이 D형 플립 플롭(342, 341)에 의해 16비트로 되어 있기 때문이다. 도 22에 있어서, 스터프 회로(323)가 출력하는 17비트를 배럴 시프터(324)에서 배럴 시프트함으로써, 예를 들면 8비트를 최종적으로 선택, 출력하고 있는 것과 마찬가지로, 도 25의 컨버터(202)에 있어서도, 딜리트 회로(343)가 출력하는 15비트 데이터를 배럴 시프터(344)에서 소정량만큼 배럴 시트함으로써, 8비트 데이터로 하고 있다.
도 27은 컨버터(212)의 다른 구성예를 도시하고 있다. 이 구성예에 있어서는, 카운터(361)가 입력 데이터 중, 연속하는 0의 비트 수를 카운트하여, 그 카운트 결과를 컨트롤러(326)에 출력하도록 이루어져 있다. 컨트롤러(326)는 예를 들면 카운터(361)가 연속하는 0의 비트를 22개 카운트했을 때, 신호 stuff position을 스터프 회로(323)에 출력한다. 또, 이 때, 컨트롤러(326)는 카운터(361)를 리셋하여, 다시 연속하는 0의 비트 수를 카운터(361)에 카운트시킨다.
그 밖의 구성과 동작은 도 22에 있어서의 경우와 동일하다.
도 28은 컨버터(202)의 다른 구성예를 도시하고 있다. 이 구성예에 있어서는 입력 데이터 중, 연속하는 O의 수를 카운터(371)가 카운트하여, 그 카운트 결과를 컨트롤러(346)에 출력하도록 이루어져 있다. 카운터(371)의 카운트치가 22에 이르렀을 때, 컨트롤러(346)는 신호 delete position을 딜리트 회로(343)에 출력함과 동시에, 카운터(371)를 리셋하여, 다시 새로운 연속하는 0의 비트 수를 카운터(371)에 카운트시킨다. 그 밖의 구성은 도 25에 있어서의 경우와 동일하다.
이렇게, 이 구성예에 있어서는, 소정 패턴(데이터 "0"이 연속하는 수)에 기초하여, 마커 비트로서의 데이터 "1"이 삽입되고, 또, 삭제되게 된다.
도 27과 도 28에 도시하는 구성은 도 22와 도 25에 도시하는 구성보다도 효율적인 처리가 가능해진다. 단, 변환 후의 길이가 원래의 이력 정보에 의존하게 된다.
도 29는 유저 데이터 포매터(213)의 구성예를 도시하고 있다. 이 예에 있어서는, 컨트롤러(383)가 컨버터(212)와 유저 데이터 포매터(213) 사이에 배치되어 있는 버퍼 메모리(도시되지 않음)에 판독 어드레스를 출력하면, 그곳으로부터 판독된 데이터가 유저 데이터 포매터(213)의 스위치(382)의 접점(a) 측에 공급된다. R0M(381)에는 유저 데이터 스타트 코드, 데이터 ID 등의 user_data()를 생성하는 데 필요한 데이터가 기억되어 있다. 컨트롤러(313)는 소정 타이밍에 있어서, 스위치(382)를 접점(a) 측 또는 접점(b) 측으로 전환, R0M(381)에 기억되어 있는 데이터 또는 컨버터(212)로부터 공급되는 데이터를 적당히 선택하여, 출력한다. 이로써, user_data()의 포맷의 데이터가 부호화 장치(106)로 출력된다.
또한, 도시는 생략하지만, 유저 데이터 디코더(201)는 도 29의 R0M(381)으로부터 판독되고, 삽입된 데이터를 삭제하는 스위치를 개재시켜, 입력 데이터를 출력하도록 함으로써 실현할 수 있다.
도 30은 예를 들면 영상 편집 스튜디오에 있어서, 복수의 트랜스코더(101-1 내지 101-N)가 직렬로 접속되어 사용되는 상태를 도시하고 있다. 각 트랜스코더(101-i)(i=1 내지 N)의 히스토리 정보 다중화 장치(103-i)는 상술한 부호화 파라미터용 영역의 가장 오래된 부호화 파라미터가 기록되어 있는 구획에, 자기가 사용한 최신 부호화 파라미터를 오버라이트한다. 이로써, 베이스 밴드의 화상 데이터에는, 동일 매크로 블록에 대응하는 바로 근처의 4세대분의 부호화 파라미터(세대 이력 정보)가 기록되게 된다(도 18).
각 부호화 장치(106-i)의 부호화 장치(106-i)(도 19)는 그 가변 길이 부호화 회로(58)에 있어서, 히스토리 정보 분리 장치(105-i)로부터 공급되는 이번 사용하는 부호화 파라미터에 기초하여, 양자화 회로(57)로부터 공급되는 비디오 데이터를 부호화한다. 이렇게 하여 생성되는 비트 스트림(예를 들면, picture_header()) 중에, 그 현 부호화 파라미터는 다중화된다.
가변 길이 부호화 회로(58)는 또한, 히스토리 인코딩 장치(107-i)로부터 공급되는 유저 데이터(세대 이력 정보를 포함한다)를 출력하는 비트 스트림 중에 다중화한다(도 18에 도시하는 바와 같은 매입 처리가 아니라, 비트 스트림 중에 다중화한다). 그리고, 부호화 장치(106-i)가 출력하는 비트 스트림은 SDTI(Serial Data Transfer Interface)(108-i)를 개재시켜, 후단의 트랜스코더(101-(i+1))에 입력된다.
트랜스코더(101-i)와 트랜스코더(101-(i+1))는 각각 도 15에 도시하는 바와 같이 구성되어 있다. 따라서, 그 처리는 도 15를 참조하여 설명한 경우와 동일해진다.
실제의 부호화 파라미터 이력을 이용한 부호화로서, 현재 1픽처로서 부호화되어 있던 것을 P 혹은 B 픽처로 변경하고 싶은 경우, 과거의 부호화 파라미터 이력을 보아, 과거에 P 혹은 B 픽처인 경우를 찾아, 이들 이력이 존재한 경우는, 그 동작 벡터 등의 파라미터를 이용하여, 픽처 타입을 변경한다. 반대로 과거에 이력이 없을 경우는, 동작 검출을 행하지 않는 픽처 타입 변경을 단념한다. 물론 이력이 없는 경우라도, 동작 검출을 행하면 픽처 타입을 변경할 수 있다.
도 18에 도시하는 포맷의 경우, 4세대분의 부호화 파라미터를 매입하도록 했지만, I, P, B의 각 픽처 타입의 파라미터를 매입하도록 할 수도 있다. 도 31은 이 경우의 포맷 예를 도시하고 있다. 상기 예에서는, 동일 매크로 블록이 과거에 픽처 타입 변경을 따라 부호화되었을 때에 있어서의, 픽처 타입마다 1세대분의 부호화 파라미터(픽처 이력 정보)가 기록된다. 따라서, 도 16에 도시한 복호화 장치(102) 및 도 19에 도시한 부호화 장치(106)는 현재(최신), 제 3 세대, 제 2 세대 및 제 1 세대의 부호화 파라미터 대신에, I 픽처, P 픽처 및 B 픽처에 대응하는 1세대분의 부호화 파라미터를 입출력하게 된다.
또, 이 예의 경우, Cb[1][x]와 Cr[1][x]의 빈 영역은 이용하지 않기 때문에, Cb[1][x]와 Cr[1][x] 영역을 갖지 않는 4:2:0 포맷의 화상 데이터에도 본 발명을 적용할 수 있다.
상기 예의 경우, 복호 장치(102)는 부호화 파라미터를 복호와 동시에 추출, 픽처 타입을 판정하여, 화상 신호의 픽처 타입에 대응한 장소에 부호화 파라미터를 기록하여(다중화하여) 히스토리 정보 분리 장치(105)로 출력한다. 히스토리 정보 분리 장치(105)는 부호화 파라미터를 분리하여, 이제부터 부호화하고 싶은 픽처 타입와, 입력된 과거의 부호화 파라미터를 고려하여, 픽처 타입을 변경하면서 재부호화을 행할 수 있다.
다음으로, 각 트랜스코더(101)에 있어서, 변경이 가능한 픽처 타입을 판정하는 처리에 대해서, 도 32의 플로 챠트를 참조하여 설명한다. 또한, 트랜스코더(101)에 있어서의 픽처 타입 변경은 과거의 동작 벡터를 이용하기 때문에, 이 처리는 동작 검출을 행하지 않고 실행되는 것을 전제로 하고 있다. 또, 이하에 설명하는 처리는 히스토리 정보 분리 장치(105)에 의해 실행된다.
스텝(S1)에 있어서, 픽처 타입마다 1세대분의 부호화 파라미터(픽처 이력 정보)가 히스토리 정보 분리 장치(105)에 입력된다.
스텝(S2)에 있어서, 히스토리 정보 분리 장치(105)는 픽처 이력 정보 중에, B 픽처로 변경했을 때의 부호화 파라미터가 존재하는지의 여부를 판정한다. 픽처 이력 정보에 B 픽처로 변경했을 때의 부호화 파라미터가 존재한다고 판정된 경우, 스텝(S3)으로 진행한다.
스텝(S3)에 있어서, 히스토리 정보 분리 장치(105)는 픽처 이력 정보 중에, P 픽처로 변경했을 때의 부호화 파라미터가 존재하는지의 여부를 판정한다. 픽처 이력 정보에 P 픽처로 변경했을 때의 부호화 파라미터가 존재한다고 판정된 경우, 스텝(S4)으로 진행한다.
스텝(S4)에 있어서, 히스토리 정보 분리 장치(105)는 변경 가능한 픽처 타입이 I 픽처, P 픽처 및 B 픽처라 판단한다.
스텝(S3)에 있어서, 픽처 이력 정보에 P 픽처로 변경했을 때의 부호화 파라미터가 존재하지 않는다고 판정된 경우, 스텝(S5)으로 진행한다.
스텝(S5)에 있어서, 히스토리 정보 분리 장치(105)는 변경 가능한 픽처 타입이 I 픽처 및 B 픽처라 판단한다. 더욱이, 히스토리 정보 분리 장치(105)는 특수 처리(B 픽처의 이력 정보에 포함되는 후방 예측 벡터를 사용하지 않고, 전방 예측 벡터만을 사용한다)를 실시함으로써, 유사적으로 P 픽처로 변경 가능하다고 판단한다.
스텝(S2)에 있어서, 픽처 이력 정보에 B 픽처로 변경했을 때의 부호화 파라미터가 존재하지 않는다고 판정된 경우, 스텝(S6)으로 진행한다.
스텝(S6)에 있어서, 히스토리 정보 분리 장치(1O5)는 픽처 이력 정보에 P 픽처로 변경했을 때의 부호화 파라미터가 존재하는지의 여부를 판정한다. 픽처 이력 정보에 P 픽처로 변경했을 때의 부호화 파라미터가 존재한다고 판정된 경우, 스텝(S7)으로 진행한다.
스텝(S7)에 있어서, 히스토리 정보 분리 장치(105)는 변경 가능한 픽처 타입이 I 픽처 및 P 픽처라 판단한다. 더욱이, 히스토리 정보 분리 장치(105)는 특수 처리(P 픽처에 이력 정보에 포함되는 전방 예측 벡터만을 사용한다)를 실시함으로써, B 픽처로 변경 가능하다고 판단한다.
스텝(S6)에 있어서, 픽처 이력 정보에 P 픽처로 변경했을 때의 부호화 파라미터가 존재하지 않는다고 판정된 경우, 스텝(S8)으로 진행한다. 스텝(S8)에 있어서, 히스토리 정보 분리 장치(105)는 동작 벡터가 존재하지 않기 때문에, 변경 가능한 픽처 타입이 I 픽처뿐이다(I 픽처이기 때문에 I 픽처 이외로는 변경할 수 없다)라고 판단한다.
스텝(S4, S5, S7, S8) 처리 다음으로 스텝(S9)에 있어서, 히스토리 정보 분리 장치(105)는 변경 가능한 픽처 타입을 표시 장치(도시되지 않음)에 표시하여 사용자에게 통지한다.
도 33은 픽처 타입 변경 예를 도시하고 있다. 픽처 타입을 변경할 경우, G0P를 구성하는 프레임 수가 변경된다. 즉, 이 예의 경우, N=15(G0P의 프레임 수 N=15), M=3(G0P 내의 I 또는 P 픽처의 출현 주기 M=3)의 프레임으로 구성되는 4Mbps의 Long G0P(제 1 세대)로부터, N=1, M=1의 프레임으로 구성되는 50Mbps의 Short G0P(제 2 세대)로 변환되며, 다시 N=15, M=3의 프레임으로 구성되는 4Mbps의 Long G0P(제 3 세대)로 변환되어 있다. 또한, 도면 중에 있어 파선은 G0P의 경계를 나타내고 있다.
제 1 세대로부터 제 2 세대로 픽처 타입이 변경될 경우에 있어서, 상술한 변경 가능 픽처 타입 판정 처리 설명으로부터 분명한 바와 같이, 모든 프레임은 픽처 타입을 I 픽처로 변경하는 것이 가능하다. 이 픽처 타입 변경 시, 동화상(제 0 세대)이 제 1 세대로 변환되었을 때에 연산된 모든 동작 벡터는 픽처 이력 정보에 보존된(남은) 상태가 된다. 다음으로, 다시 Long G0P로 변환될(제 2 세대로부터 제 3 세대로 픽처 타입이 변경될) 경우, 제 0 세대로부터 제 1 세대로 변환되었을 때의 픽처 타입마다의 동작 벡터가 보존되어 있기 때문에, 이것을 재이용함으로써, 화질 열화를 억제하고, 다시 Long G0P로 변환하는 것이 가능해진다.
도 34는 픽처 타입 변경의 다른 예를 도시하고 있다. 이 예의 경우, N=14, M=2인 4Mbps의 Long G0P(제 1 세대)로부터, N=2, M=2인 18Mbps의 Short G0P(제 2 세대)로 변환되며, 더욱이, N=1, M=1인 프레임 수가 1인 50Mbps의 Short G0P(제 3 세대)로 변환되며, 1Mbps의 프레임 수(N)가 랜덤한 G0P(제 4 세대)로 변환된다.
이 예에 있어서도, 제 0 세대로부터 제 1 세대로 변환되었을 때의 픽처 타입마다의 동작 벡터가 제 3 세대로부터 제 4 세대로의 변환 시까지 보존된다. 그래서, 도 34에 도시하는 바와 같이, 복잡하게 픽처 타입을 변경해도, 보존되어 있는 부호화 파라미터가 재이용됨으로써, 화질 열화를 작게 억제할 수 있다. 더욱이, 보존되어 있는 부호화 파라미터의 양자화 스케일을 유효하게 이용하면 화질 열화가 적은 부호화를 실현할 수 있다.
이 양자화 스케일의 재이용에 대해서, 도 35를 참조하여 설명한다. 도 35는 소정 프레임이 제 1 세대로부터 제 4 세대까지 항상 I 픽처로 변환되어 있으며, 비트 레이트만이 4Mbps, 18Mbps 또는 50Mbps로 변경되어 있는 것을 나타내고 있다.
예를 들면, 제 1 세대(4Mbps)로부터 제 2 세대(18Mbps)로의 변환 시에, 비트 레이트의 고속화에 따라, 세밀한 양자화 스케일로 재부호화해도 화질은 향상하지 않는다. 왜냐 하면, 과거에 있어서 조잡한 양자화 스텝에서 양자화된 데이터는 복원하지 않기 때문이다. 따라서, 도 35에 도시하는 바와 같이, 도중에서 비트 레이트가 고속화해도, 그에 따라 상세한 양자화 스텝에서 양자화하는 것은 정보량이 증가하는 것만으로 화질 향상으로는 연결되지 않는다. 따라서, 과거의 가장 대략적인(큰) 양자화 스케일을 유지하도록 제어하면, 가장 낭비 없이 효율적인 부호화가 가능해진다.
또한, 제 3 세대로부터 제 4 세대로의 변경 시에는, 비트 레이트는 50Mbps로부터 4Mbps로 저하되어 있지만, 이 경우에도, 과거의 가장 대략적인(큰) 양자화 스케일이 유지된다.
상술한 바와 같이 비트 레이트가 변경될 때는, 과거의 양자화 스케일의 이력을 이용하여 부호화하는 것은 대단히 유효하다.
이 양자화 제어 처리에 대해서, 도 36의 플로 챠트를 참조하여 설명한다. 스텝(S11)에 있어서, 히스토리 정보 분리 장치(105)는 입력된 픽처 이력 정보에, 지금부터 변환하는 픽처 타입의 부호화 파라미터가 존재하는지의 여부를 판정한다. 변환하는 픽처 타입의 부호화 파라미터가 존재한다고 판정된 경우, 스텝(S12)으로 진행한다.
스텝(S12)에 있어서, 히스토리 정보 분리 장치(105)는 픽처 이력 정보 대상이 되는 부호화 파라미터로부터, history_q_scale_code를 추출한다.
스텝(S13)에 있어서, 히스토리 정보 분리 장치(105)는 송신 버퍼(59)로부터 양자화 회로(57)에 피드백되는 버퍼 잔량에 기초하여, feedback_q_scale_code를 연산한다.
스텝(S14)에 있어서, 히스토리 정보 분리 장치(105)는 history_q_scale_code가 feedback_q_scale_code보다도 큰(대략적인)지를 판정한다. history_q_scale_code가 feedback_q_scale_code보다도 크다고 판정된 경우, 스텝(S15)으로 진행한다.
스텝(S15)에 있어서, 히스토리 정보 분리 장치(105)는 양자화 스케일로서 history_q_scale_code를 양자화 회로(57)에 출력한다. 양자화 회로(57)는 history_q_scale_code를 사용하여 양자화를 실행한다.
스텝(S16)에 있어서, 프레임에 포함되는 모든 매크로 블록이 양자화되었는지의 여부가 판정된다. 모든 매크로 블록이 아직 양자화되어 있지 않다고 판정된 경우, 스텝(S12)으로 돌아가, 스텝(S12 내지 S16) 처리가 모든 매크로 블록이 양자화되기까지 반복된다.
스텝(S14)에 있어서, history_q_scale_code가 feedback_q_scale_code보다도 크지 않다(세밀하다)고 판정된 경우, 스텝(S17)으로 진행한다.
스텝(S17)에 있어서, 히스토리 정보 분리 장치(105)는 양자화 스케일로서 feedback_q_scale_code를 양자화 회로(57)에 출력한다. 양자화 회로(57)는 feedback_q_scale_code를 사용하여 양자화를 실행한다.
스텝(S11)에 있어서, 변환하는 픽처 타입의 부호화 파라미터가 히스토리 정보 중에 존재하지 않는다고 판정된 경우, 스텝(S18)으로 진행한다.
스텝(S18)에 있어서, 히스토리 정보 분리 장치(105)는 송신 버퍼(59)로부터 양자화 회로(57)에 피드백되는 버퍼 잔량에 기초하여, feedback_q_scale_code를 연산한다.
스텝(S19)에 있어서, 양자화 회로(57)는 Feedback_q_scale_code를 사용하여 양자화를 실행한다.
스텝(S20)에 있어서, 프레임에 포함되는 모든 매크로 블록이 양자화되었는지의 여부가 판정된다. 모든 매크로 블록이 아직 양자화되어 있지 않다고 판정된 경우, 스텝(S18)으로 돌아가, 스텝(S18 내지 S20) 처리가 모든 매크로 블록이 양자화되기까지 반복된다.
또한, 본 실시예에 있어서의 트랜스코더(101)의 내부에 있어서는, 상술한 바와 같이, 복호 측과 부호 측이 듬성하게 결합되어 있으며, 부호화 파라미터를 화상 데이터로 다중화시켜 전송시켰지만, 도 37에 도시하는 바와 같이, 복호 장치(102)와 부호화 장치(106)를 직접 접속(밀접 결합)하도록 해도 된다.
도 15에 있어서 설명한 트랜스코더(101)는 제 1 세대로부터 제 3 세대의 과거의 부호화 파라미터를 부호화 장치(106)에 공급하기 때문에, 베이스 밴드 비디오 데이터에 과거의 부호화 파라미터를 다중화하여 전송하도록 했었다. 그렇지만, 본 발명에 있어서는, 베이스 밴드 비디오 데이터에 과거의 부호화 파라미터를 다중화하는 기술은 필수가 아니라, 도 37에 도시된 바와 같이, 베이스 밴드 비디오 데이터와는 다른 전송로(예를 들면 데이터 전송 버스)를 사용하여, 과거의 부호화 파라미터를 전송하도록 해도 된다.
즉, 도 37에 도시한 복호 장치(102), 히스토리 디코딩 장치(104), 부호화 장치(106) 및 히스토리 인코딩 장치(107)는 도 15에 있어서 설명한 복호 장치(102), 히스토리 디코딩 장치(104), 부호화 장치(106) 및 히스토리 인코딩 장치(107)와 완전히 동일한 기능 및 구성을 갖고 있다.
복호 장치(102)의 가변 길이 복호 회로(112)는 제 3 세대의 부호화 스트림(ST)(3rd)의 시퀀스층, G0P층, 픽처층, 슬라이스층 및 매크로 블록층으로부터, 제 3 세대의 부호화 파라미터를 추출하여, 그것을 히스토리 인코딩 장치(1O7) 및 부호화 장치(106)의 컨트롤러(70)에 각각 공급한다. 히스토리 인코딩 장치(107)는 받아들인 제 3 세대의 부호화 파라미터를 픽처층의 유저 데이터 에이리어에 기술할 수 있도록 converted_history_stream()으로 변환하여, converted_history_stream()을 유저 데이터로서 부호화 장치(106)의 가변 길이 부호화 회로(58)에 공급한다.
더욱이 가변 길이 복호 회로(112)는 제 3 세대의 부호화 스트림의 픽처층의 유저 데이터 에이리어로부터, 제 1 세대의 부호화 파라미터 및 제 2 부호화 파라미터를 포함하고 있는 유저 데이터(user_data)를 추출하여, 히스토리 디코딩 장치(104) 및 부호화 장치(106)의 가변 길이 부호화 회로(58)에 공급한다. 히스토리 디코더 장치(104)는 유저 데이터 에이리어에 converted_history_stream()으로서 기술된 히스토리 스트림으로부터, 제 1 세대의 부호화 파라미터 및 제 2 세대의 부호화 파라미터를 추출하여, 그것을 부호화 장치(106)의 컨트롤러에 공급한다.
부호화 장치(106)의 컨트롤러(70)는 히스토리 디코딩 장치(104)로부터 받아들인 제 1 세대 및 제 2 세대의 부호화 파라미터와, 부호화 장치(102)로부터 받아들인 제 3 세대의 부호화 파라미터에 기초하여, 부호화 장치(106)의 부호화 처리를 컨트롤한다.
부호화 장치(106)의 가변 길이 부호화 회로(58)는 복호 장치(102)로부터 제 1 세대의 부호화 파라미터 및 제 2 부호화 파라미터를 포함하고 있는 유저 데이터(user_data)를 받아들임과 동시에, 히스토리 인코딩 장치(107)로부터 제 3 세대의 부호화 파라미터를 포함하고 있는 유저 데이터(user_data)를 받아들여, 그들 유저 데이터를 히스토리 정보로서, 제 4 세대의 부호화 스트림의 픽처층의 유저 데이터 에이리어에 기술한다.
도 38은 MPEG 비디오 스트림을 디코드하기 위한 신택스를 도시한 도면이다. 디코더는 이 신텍스에 따라서 MPEG 비트 스트림을 디코드함으로써, 비트 스트림으로부터 의미 있는 복수의 데이터 항목(데이터 엘리먼트)을 추출한다. 이하에 설명하는 신텍스는 도면에 있어서, 그 함수나 조건문은 가는 활자로 나타나며, 그 데이터 엘리먼트는 굵은 활자로 나타나 있다. 데이터 항목은 그 명칭, 비트 길이 및 그 타입와 전송 순서를 나타내는 니모닉(Mnemonic)으로 기술되어 있다.
우선, 이 도 38에 도시되어 있는 신텍스에서 사용되고 있는 함수에 대해서 설명한다.
next_start_code() 함수는 비트 스트림 내에 기술되어 있는 스타트 코드를 찾기 위한 함수이다. 이 도 38에 도시된 신텍스에 있어서, 이 next_start_code() 함수 다음에, sequence_header() 함수와 sequence_extension() 함수가 순서대로 배치되어 있기 때문에, 이 비트 스트림에는 이 sequence_header() 함수와 sequence_extension() 함수에 의해 정의된 데이터 엘리먼트가 기술되어 있다. 따라서, 비트 스트림의 디코드 시에는, next_start_code() 함수에 의해, sequence_header() 함수와 sequence_extension() 함수의 선두에 기술되어 있는 스타트 코드(데이터 엘리먼트의 일종)를 비트 스트림 중에서 발견, 그것을 기준으로 하고, sequence_header() 함수와 sequence_extension() 함수를 부가로 발견, 그것들에 의해 정의된 각 데이터 엘리먼트를 디코드한다.
더구나, sequence_header() 함수는 MPEG 비트 스트림의 시퀀스층의 헤더 데이터를 정의하기 위한 함수로, sequence_extension() 함수는 MPEG 비트 스트림의 시퀀스층의 확장 데이터를 정의하기 위한 함수이다.
sequence_extension() 함수 다음에 배치되어 있는 do{} while 구문은 while문에 의해 정의되어 있는 조건이 참인 동안, do문의 {} 내의 함수에 기초하여 기술된 데이터 엘리먼트를 데이터 스트림 중에서 추출하기 위한 구문이다. 즉,
do{} while 구문에 의해, while문에 의해 정의되어 있는 조건이 참인 동안, 비트 스트림 중에서, do문 내의 함수에 기초하여 기술된 데이터 엘리먼트를 추출하는 디코드 처리가 행해진다.
이 while문에 사용되고 있는 nextbits() 함수는 비트 스트림 중에 나타나는 비트 또는 비트열과, 다음에 디코드되는 데이터 엘리먼트를 비교하기 위한 함수이다. 이 도 38의 신택스 예에서는, nextbits() 함수는 비트 스트림 중의 비트열과 비디오 시퀀스의 끝을 나타내는 sequence_end_code를 비교하여, 비트 스트림 중의 비트열과 sequence_end_code가 일치하지 않을 때에, 상기 while문의 조건이 참이 된다. 따라서, sequence_extension() 함수 다음에 배치되어 있는 do{} while 구문은 비트 스트림 중에, 비디오 시퀀스의 끝을 나타내는 sequence_end_code가 나타나지 않는 동안, do 구문 중의 함수에 의해 정의된 데이터 엘리먼트가 비트 스트림 내에 기술되어 있는 것을 나타내고 있다.
비트 스트림 중에는, sequence_extension() 함수에 의해 정의된 각 데이터 엘리먼트 다음에는, extension_and_user_data(0) 함수에 의해 정의된 데이터 엘리먼트가 기술되어 있다. 상기 extension_and_user_data(0) 함수는 MPEG 비트 스트림의 시퀀스층의 확장 데이터와 유저 데이터를 정의하기 위한 함수이다.
이 extension_and_user_data(0) 함수 다음에 배치되어 있는 do{} while 구문은 while문에 의해 정의되어 있는 조건이 참인 동안, do문의 {} 내의 함수에 기초하여 기술된 데이터 엘리먼트를 비트 스트림 중에서 추출하기 위한 함수이다. 이 while문에서 사용되고 있는 nextbits() 함수는 비트 스트림 중에 비트 또는 비트열과, picture_start_code 또는 group_start_code와의 일치를 판단하기 위한 함수로, 비트 스트림 중에 나타나는 비트 또는 비트열과, picture_start_code 또는 group_start_code가 일치할 경우에는, while문에 의해 정의된 조건이 참이 된다. 따라서, 이 do{} while 구문은 비트 스트림 중에 있어서, picture_start_code 또는 group_start_code가 나타난 경우에는, 그 스타트 코드 다음에, do 구문 중의 함수에 의해 정의된 데이터 엘리먼트 코드가 기술되어 있기 때문에, 이 picture_start_code 또는 group_start_code에 의해 나타나는 스타트 코드를 찾기 시작함으로써, 비트 스트림 중에서 do 구문 중에 정의된 데이터 엘리먼트를 추출할 수 있다.
상기 do문의 처음에 기술되어 있는 if문은 비트 스트림 중에 group_start_code가 나타난 경우라는 조건을 나타내고 있다. 상기 if문에 의한 조건이 참일 경우에는, 비트 스트림 중에는, 상기 group_start_code 다음에 group-of_picture_header(1) 함수 및 extension_and_user_data(1) 함수에 의해 정의되어 있는 데이터 엘리먼트가 순서대로 기술되어 있다.
상기 group_of_picture_header(1) 함수는 MPEG 비트 스트림의 G0P층의 헤더 데이터를 정의하기 위한 함수로,
extension_and_user_data(1) 함수는 MPEG 비트 스트림의 G0P층의 확장 데이터(extension_data) 및 유저 데이터(user_data)를 정의하기 위한 함수이다.
더욱이, 상기 비트 스트림 중에는, group_of_picture_header(1) 함수 및 extension_and_user_data(1) 함수에 의해 정의되어 있는 데이터 엘리먼트 다음에, picture_header() 함수와 picture_coding_extension() 함수에 의해 정의된 데이터 엘리먼트가 기술되어 있다. 물론, 앞서 설명한 if문의 조건이 참이 되지 않을 경우에는,
group_of_picture_header(1) 함수 및 extension_and_user_data(1) 함수에 의해 정의되어 있는 데이터 엘리먼트는 기술되어 있지 않기 때문에,
extension_and_user_data(0) 함수에 의해 정의되어 있는 데이터 엘리먼트 다음에,
picture_header() 함수와 picture_coding_extension() 함수에 의해 정의된 데이터 엘리먼트가 기술되어 있다.
이 picture_header() 함수는,
MPEG 비트 스트림의 픽처층의 헤더 데이터를 정의하기 위한 함수로,
picture_coding_extension() 함수는 MPEG 비트 스트림의 픽처층의 제 1 확장 데이터를 정의하기 위한 함수이다.
다음의 while문은 이 while문에 의해 정의되어 있는 조건이 참인 동안, 다음 if문의 조건 판단을 행하기 위한 함수이다. 이 while문에서 사용되고 있는 nextbits() 함수는 비트 스트림 중에 나타나는 비트열과, extension_start_code 또는 user_data_start_code와의 일치를 판단하기 위한 함수로, 비트 스트림 중에 나타나는 비트열과,
extension_start_code 또는 user_data_start_code가 일치할 경우에는, 이 while문에 의해 정의된 조건이 참이 된다.
제 1의 if문은 비트 스트림 중에 나타나는 비트열과 extension_start_code와의 일치를 판단하기 위한 함수이다. 비트 스트림 중에 나타나는 비트열과 32비트의 extension_start_code가 일치할 경우에는, 비트 스트림 중에 있어서, extension_start_code 다음에 extension_data(2) 함수에 의해 정의되는 데이터 엘리먼트가 기술되어 있다
제 2의 if문은 비트 스트림 중에 나타나는 비트열과 user_data_start_code와의 일치를 판단하기 위한 구문으로, 비트 스트림 중에 나타나는 비트열과 32비트의 user_data_start_code가 일치할 경우에는, 제 3의 if문의 조건 판단이 행해진다. 이 user_data_start_code는 MPEG 비트 스트림의 픽처층의 유저 데이터 에이리어 개시를 나타내기 위한 스타트 코드이다.
제 3의 if문은 비트 스트림 중에 나타나는 비트열과 History_Data_ID와의 일치를 판단하기 위한 구문이다. 비트 스트림 중에 나타나는 비트열과 이 32비트의 History_Data_ID가 일치할 경우에는, 이 MPEG 비트 스트림의 픽처층의 유저 데이터 에이리어에 있어서, 이 32비트의 History_Data_ID에 의해 나타나는 코드 다음에, converted_history_stream() 함수에 의해 정의되는 데이터 엘리먼트가 기술되어 있다.
converted_history_stream() 함수는 MPEG 부호화 시에 사용한 모든 부호화 파라미터를 전송하기 위한 이력 정보 및 이력 데이터를 기술하기 위한 함수이다. 이 converted_history_stream() 함수에 의해 정의되어 있는 데이터 엘리먼트의 상세함은 도 40 내지 도 47을 참조하여 history_stream()으로서 후술한다. 또, 이 History_Data_ID는 MPEG 비트 스트림의 픽처층의 유저 데이터 에이리어에 기술된 이 이력 정보 및 이력 데이터가 기술되어 있는 선두를 나타내기 위한 스타트 코드이다.
else문은 제 3의 if문에 있어서, 조건이 거짓인 것을 나타내기 위한 구문이다. 따라서, 이 MPEG 비트 스트림의 픽처층의 유저 데이터 에이리어에 있어서, converted_history_stream() 함수에 의해 정의된 데이터 엘리먼트가 기술되어 있지 않을 경우에는, user_data() 함수에 의해 정의된 데이터 엘리먼트가 기술되어 있다.
도 38에 있어서, 이력 정보는 converted_history_stream()에 기술되며, user_data()에 기술되는 것은 아니지만, 이 converted_history_stream()은 MPEG 규격의 user_data의 일종으로서 기술된다. 그래서, 본 명세서 중에 있어서는, 경우에 따라서, 이력 정보가 user_data에 기술된다고도 설명하지만, 그것은 MPEG 규격의 user_data의 일종으로서 기술된다는 것을 의미한다.
picture_data() 함수는 MPEG 비트 스트림의 픽처층의 유저 데이터 다음에, 슬라이스층 및 매크로 블록층에 관한 데이터 엘리먼트를 기술하기 위한 함수이다. 통상은 이 picture_data() 함수에 의해 나타나는 데이터 엘리먼트는 비트 스트림의 픽처층의 유저 데이터 에이리어에 기술된 converted_history_stream() 함수에 의해 정의되는 데이터 엘리먼트 또는 user_data() 함수에 의해 정의된 데이터 엘리먼트 다음에 기술되어 있지만, 픽처층의 데이터 엘리먼트를 나타내는 비트 스트림 중에, extension_start_code 또는 user_data_start_code가 존재하지 않을 경우에는, 이 picture_data() 함수에 의해 나타나는 데이터 엘리먼트는,
picture_coding_extension() 함수에 의해 정의되는 데이터 엘리먼트 다음에 기술되어 있다.
상기 picture_data() 함수에 의해 나타나는 데이터 엘리먼트 다음에는, sequence_header() 함수와 sequence_extension() 함수에 의해 정의된 데이터 엘리먼트가 순서대로 배치되어 있다. 이 sequence_header() 함수와 sequence_extension() 함수에 의해 기술된 데이터 엘리먼트는 비디오 스트림의 시퀀스 선두에 기술된 sequence_header() 함수와 sequence_extension() 함수에 의해 기술된 데이터 엘리먼트와 완전히 동일하다. 이렇게 동일한 데이터를 스트림 내에 기술하는 이유는 비트 스트림 수신 장치 측에서 데이터 스트림의 도중(예를 들면 픽처층에 대응하는 비트 스트림 부분)으로부터 수신이 개시된 경우에, 시퀀스층의 데이터를 수신할 수 없게 되어, 스트림을 디코드할 수 없게 되는 것을 방지하기 위함이다.
상기 마지막의 sequence_header() 함수와 sequence_extension() 함수에 의해 정의된 데이터 엘리먼트 다음, 즉, 데이터 스트림의 마지막에는, 시퀀스의 끝을 나타내는 32비트의 sequence_end_code가 기술되어 있다.
이상의 신텍스의 기본적인 구성의 개략을 나타내면, 도 39에 도시하게 된다
다음으로, converted_history_stream() 함수에 의해 정의된 히스토리 스트림에 대해서 설명한다.
상기 converted_history_stream()은 MPEG의 픽처층의 사용자 데이터 에이리어에 이력 정보를 나타내는 히스토리 스트림을 삽입하기 위한 함수이다. 더구나, 「converted」의 의미는 스타트 에뮬레이션을 방지하기 위해, 사용자 에이리어에 삽입해야 할 이력 데이터로 구성되는 이력 스트림 중 적어도 22비트마다 마커 비트(1비트)를 삽입하는 변환 처리를 행한 스트림인 것을 의미하고 있다.
상기 converted_history_stream()은 이하에 설명하는 고정 길이의 이력 스트림(도 40 내지 도 46) 또는 가변 길이의 이력 스트림(도 47) 중 어느 한 형식으로 기술된다. 인코더 측에 있어서 고정 길이의 이력 스트림을 선택한 경우에는, 디코더 측에 있어서 이력 스트림으로부터 각 데이터 엘리먼트를 디코드하기 위한 회로 및 소프트웨어가 간단해진다는 메리트가 있다. 한편, 인코더 측에 있어서 가변 길이의 이력 스트림을 선택한 경우에는, 인코더에 있어서 픽처층의 사용자 에이리어에 기술되는 이력 정보(데이터 엘리먼트)를 필요에 따라서 임의로 선택할 수 있기 때문에, 이력 스트림의 데이터량을 적게 할 수 있어, 그 결과, 부호화된 비트 스트림 전체의 데이터 레이트를 저감할 수 있다.
본 발명에 있어서 설명하는 「이력 스트림」, 「히스토리 스트림」, 「이력 정보」, 「히스토리 정보」, 「이력 데이터, 「히스토리 데이터」, 「이력 파라미터」, 「히스토리 파라미터」란 과거의 부호화 처리에서 사용한 부호화 파라미터(또는 데이터 엘리먼트)를 의미하며, 현재의(최종단의) 부호화 처리에서 사용한 부호화 파라미터를 의미하는 것은 아니다. 예를 들면, 제 1 세대의 부호화 처리에 있어서, 어느 픽처를 I 픽처로 부호화하여 전송하고, 다음이 되는 제 2 세대의 부호화 처리에 있어서, 상기 픽처를 이번은 P 픽처로서 부호화하여 전송하며, 더욱이, 제 3 세대의 부호화 처리에 있어서, 이 픽처를 B 픽처로 부호화하여 전송하는 예를 들어 설명한다.
제 3 세대의 부호화 처리에서 사용한 부호화 파라미터가 제 3 세대의 부호화 처리에 있어서 생성된 부호화 비트 스트림의 시퀀스층, G0P층, 픽처층, 슬라이스층 및 매크로 블록층의 소정 위치에 기술되어 있다. 한편, 과거의 부호화 처리인 제 1 세대 및 제 2 세대의 부호화 처리에서 사용한 부호화 파라미터는 제 3 세대의 부호화 처리에서 사용한 부호화 파라미터가 기술되는 시퀀스층이나 G0P층에 기술되는 것이 아니며, 이미 설명한 신텍스에 따라서, 부호화 파라미터의 이력 정보로서, 픽처층의 유저 데이터 에이리어에 기술된다.
우선, 고정 길이의 이력 스트림 신텍스에 대해서 도 40 내지 도 46을 참조하여 설명한다.
최종단(예를 들면 제 3 세대)의 부호화 처리에 있어서 생성된 비트 스트림의 픽처층의 유저 데이터 에이리어에는, 우선 처음에, 과거(예를 들면 제 1 세대 및 제 2 세대)의 부호화 처리에서 사용되었던 스퀀스층의 시퀀스 헤더에 포함되는 부호화 파라미터가 이력 스트림으로서 삽입된다. 더구나, 과거의 부호화 처리에 있어서 생성된 비트 스트림의 시퀀스층의 시퀀스 헤더 등의 이력 정보는 최종단의 부호화 처리에 있어서 생성된 비트 스트림의 시퀀스층의 시퀀스 헤더에 삽입되는 경우는 없다는 점에 주의해야 한다.
과거의 부호화 처리에서 사용한 시퀀스 헤더(sequence_header)에 포함되는 데이터 엘리먼트는 sequence_header_code,
sequence_header_present_flag, horizontal_size_value, marker_bit,
vertical_size_value, aspect_ratio_information, frame_rate_code,
bit_rate_value, VBV_buffer_size_value, constrained_parameter_flag,
load_intra_quantiser_matrix, load_non_intra_quantiser_matrix,
intra_quantiser_matrix 및 non_intra_quantiser_matrix 등으로 구성된다.
sequence_header_code는 시퀀스층의 스타트 동기 코드를 나타내는 데이터이다. sequence_header_present_flag는 sequence_header 내의 데이터가 유효한지 무효한지를 나타내는 데이터이다. horizontal_size_value는 화상의 수평 방향의 화소수의 하위 12비트로 이루어지는 데이터이다. marker_bit는 스타트 코드 에뮬리이션을 방지하기 위해 삽입되는 비트 데이터이다. vertical_size_value는 화상의 세로 라인 수의 하위 12비트로 이루어지는 데이터이다. aspect_ratio_information은 화소의 애스펙트비(종횡비) 또는 표시 화면 애스펙트비를 나타내는 데이터이다. frame_rate_code는 화상의 표시 주기를 나타내는 데이터이다.
bit_rate_value는 발생 비트량에 대한 제한을 위한 비트·레이트의 하위 18비트(400bsp 단위로 반올림한다) 데이터이다. VBV_buffer_size_value는 발생 부호량 제어용 가상 버퍼(비디오 버퍼 베리파이어)의 크기를 정하는 값의 하위 10비트 데이터이다. constrained_parameter_flag는 각 파라미터가 제한 이내인 것을 나타내는 데이터이다. load_intra_quantiser_matrix는 인트라 MB용 양자화 매트릭스·데이터의 존재를 나타내는 데이터이다. load_non_intra_quantiser_matrix는 비인트라 MB용 양자화 매트릭스·데이터의 존재를 나타내는 데이터이다. intra_quantiser_matrix는 인트라 MB용 양자화 매트릭스 값을 나타내는 데이터이다. non_intra_quantiser_matrix는 비인트라 MB용 양자화 매트릭스 값을 나타내는 데이터이다.
최종단의 부호화 처리에 있어서 생성된 비트 스트림의 픽처층의 유저 데이터 에이리어에는, 과거의 부호화 처리에서 사용된 시퀀스층의 시퀀스 익스텐션을 나타내는 데이터 엘리먼트가 이력 스트림으로서 기술된다.
이 과거의 부호화 처리에서 사용한 시퀀스 익스텐션(sequence_extension)을 나타내는 데이터 엘리먼트는,
extension_start_code, extension_start_code_identifier,
sequence_extension_present_flag, profile_and_level_indication,
progressive_sequence, chroma_format, horizontal_size_extension,
vertical_size_extension, bit_rate_extension, vbv_buffer_size_extension,
low_delay, frame_rate_extension_n 및 frame_rate_extension_d 등의 데이터 엘리먼트이다.
extension_start_code는 익스텐션 데이터의 스타트 동기 코드를 나타내는 데이터이다. extension_start_code_identifier는 어느 확장 데이터가 보내지는지를 나타내는 데이터이다. sequence_extension_present_flag는 시퀀스 익스텐션 내의 데이터가 유효한지 무효한지를 나타내는 데이터이다. profile_and_level_idication은 비디오 데이터의 프로필과 레벨을 지정하기 위한 데이터이다. progressive_sequence는 비디오 데이터가 순차 주사인 것을 나타내는 데이터이다. chroma_format은 비디오 데이터의 색차 포맷을 지정하기 위한 데이터이다.
horizontal_size_extension은 시퀀스 헤더의 horizntal_size_value에 더하는 상위 2비트 데이터이다. vertical_size_extension은 시퀀스 헤더의 vertical_size_value에 더하는 상위 2비트의 데이터이다. bit_rate_extension은 시퀀스 헤더의 bit_rate_value에 더하는 상위 12비트 데이터이다. vbv_buffer_size_extension은 시퀀스 헤더의 vbv_buffer_size_value에 더하는 상위 8비트 데이터이다. low_delay는 B 픽처를 포함하지 않는 것을 나타내는 데이터이다. frame_rate_extension_n은 시퀀스 헤더의 frame_rate_code와 조합시켜 프레임 레이트를 얻기 위한 데이터이다. frame_rate_extension_d는 시퀀스 헤더의 frame_rate_code와 조합시켜 프레임 레이트를 얻기 위한 데이터이다.
계속해서, 비트 스트림의 픽처층의 사용자 에이리어에는, 과거의 부호화 처리에서 사용된 시퀀스층의 시퀀스 디스플레이 익스텐션을 나타내는 데이터 엘리먼트가 이력 스트림으로서 기술된다.
이 시퀀스 디스플레이 익스텐션(sequence_display_extension)으로서 기술되어 있는 데이터 엘리먼트는
extension_start_code, extension_start_code_identifier,
sequence_display_extension_present_flag, video_format,
colour_description, colour_primaries, transfer_characteristics,
matrix_coeffients, display_horizontal_size 및 display_vertical_size로 구성된다.
extension_start_code는 익스텐션 데이터의 스타트 동기 코드를 나타내는 데이터이다. extension_start_code_identifier는 어느 확장 데이터가 보내지는지를 나타내는 코드이다. sequence_display_extension_present_flag는 시퀀스 디스플레이 익스텐션 내의 데이터 엘리먼트가 유효한지 무효한지를 나타내는 데이터이다. video_format은 원신호의 영상 포맷을 나타내는 데이터이다. color_description은 색 공간의 상세 데이터가 있는 것을 나타내는 데이터이다. color_primaries는 원신호의 색 특성의 상세함을 나타내는 데이터이다. transfer_characteristics는 광전 변환이 어떻게 행해진 것인지의 상세함을 나타내는 데이터이다. matrix_coeffients는 원신호가 광의 삼원색으로부터 어떻게 변환되었는지의 상세함을 나타내는 데이터이다. display_horizontal_size는 의도하는 디스플레이의 활성 영역(수평 사이즈)을 나타내는 데이터이다. display_vertical_size는 의도하는 디스플레이의 활성 영역(수직 사이즈)을 나타내는 데이터이다.
계속해서, 최종단의 부호화 처리에 있어서 생성된 비트 스트림의 픽처층의 사용자 에이리어에는, 과거의 부호화 처리에 있어서 생성된 매크로 블록의 위상 정보를 나타내는 매크로 블록 어사인먼트 데이터(macroblock_assignment_in_user_data)가 이력 스트림으로서 기술된다
상기 매크로 블록의 위상 정보를 나타내는 macroblock_assignment_in_user_data는 macroblock_assignment_present_flag, v_phase, h_phase 등의 데이터 엘리먼트로 구성된다.
상기 maceroblock_assignment_present_flag는,
macroblock_assignment_in_user_data 내의 데이터 엘리먼트가 유효한지 무효한지를 나타내는 데이터이다. v_phase는 화상 데이터로부터 매크로 블록을 꺼낼 때의 수직 방향의 위상 정보를 나타내는 데이터이다. h_phase는 화상 데이터로부터 매크로 블록을 꺼낼 때의 수평 방향의 위상 정보를 나타내는 데이터이다.
계속해서, 최종단의 부호화 처리에 의해 생성된 비트 스트림의 픽처층의 사용자 에이리어에는, 과거의 부호화 처리에서 사용된 G0P층의 G0P 헤더를 나타내는 데이터 엘리먼트가 이력 스트림으로서 기술되어 있다.
이 G0P 헤더(group_of_picture_header)를 나타내는 데이터 엘리먼트는 group_start_code, group_of_picture_header_present_flag, time_code, closed_gop 및 broken_link로 구성된다.
group_start_code는 G0P층의 개시 동기 코드를 나타내는 데이터이다. group_of_picture_header_present_flag는,
group_of_picture_header 내의 데이터 엘리먼트가 유효한지 무효한지를 나타내는 데이터이다. time_code는 G0P의 선두 픽처의 시퀀스 선두로부터의 시간을 나타내는 타임 코드이다. closed_gop는 G0P 내의 화상이 다른 G0P로부터 독립 재생 가능한 것을 나타내는 플래그 데이터이다. broken_link는 편집 등을 위한 G0P 내의 선두인 B 픽처가 정확하게 재생할 수 없는 것을 나타내는 플래그 데이터이다.
계속해서, 최종단의 부호화 처리에 의해 생성된 비트 스트림의 픽처층의 사용자 에이리어에는, 과거의 부호화 처리에서 사용된 픽처층의 픽처 헤더를 나타내는 데이터 엘리먼트가 이력 스트림으로서 기술되어 있다.
이 픽처 헤더(picture_header)에 관한 데이터 엘리먼트는,
picture_start_code, temporal_reference, picture_coding_type, vbv_delay, full_pel_forward_vector, forward_f_code, full_pel_backward_vector 및 backward_f_code로 구성된다.
구체적으로는, picture_start_code는 픽처층의 개시 동기 코드를 나타내는 데이터이다. temporal_reference는 픽처의 표시 순서를 나타내는 번호로 G0P의 선두에서 리셋되는 데이터이다. picture_coding_type는 픽처 타입을 나타내는 데이터이다. vbv_delay는 렌덤 액세스 시의 가상 버퍼의 초기 상태를 나타내는 데이터이다. full_pel_forward_vector는 순방향 동작 벡터의 정밀도가 정수 단위인지 반화소 단위인지를 나타내는 데이터이다. forward_f_code는 순방향 동작 벡터 탐색 범위를 나타내는 데이터이다. full_pel_backward_vector는 역방향 동작 벡터의 정밀도가 정수 단위인지 반화소 단위인지를 나타내는 데이터이다. backward_f_code는 역방향 동작 벡터 탐색 범위를 나타내는 데이터이다.
계속해서, 최종단의 부호화 처리에 의해 생성된 비트 스트림의 픽처층의 사용자 에이리어에는, 과거의 부호화 처리에서 사용된 픽처층의 픽처층의 픽처 코딩 익스텐션이 이력 스트림으로서 기술되어 있다.
이 픽처 디코딩 익스텐션(picture_coding_extension)에 관한 데이터 엘리먼트는 extension_start_code,
extension_start_code_identifier, f_code[0][0], f_code[0][1], f_code[1][0], f_code[1][1], intra_dc_precision, picture_structure, top_field_first, frame_predictive_frame_dct, concealment_motion_vectors, q_scale_type, intra_vlc_format, alternate_scan, repeat_firt_field, chroma_420_type, progressive_frame, composite_display_flag, v_axis, field_sequence, sub_carrier, burst_amplitude 및 sub_carrier_phase로 구성된다.
extension_start_code는 픽처층의 익스텐션 데이터의 스타트를 나타내는 개시 코드이다. extension_start_code_identifier는 어느 확장 데이터가 보내지는지를 나타내는 코드이다. f_code[0][0]은 포워드 방향의 수평 동작 벡터 탐색 범위를 나타내는 데이터이다. f_code[0][1]은 포워드 방향의 수직 방향 벡터 탐색 범위를 나타내는 데이터이다. f_code[1][0]은 백워드 방향의 수평 동작 벡터 탐색 범위를 나타내는 데이터이다. f_code[1][1]은 백워드 방향의 수직 동작 벡터 탐색 범위를 나타내는 데이터이다.
intra_dc_precision은 DC 계수의 정밀도를 나타내는 데이터이다.
picture_structure는 프레임 스트럭처인지 필드 스트럭처인지를 나타내는 데이터이다. 필드 스트럭처의 경우는 상위 필드인지 하위 필드인지도 합쳐 나타내는 데이터이다. top_field_first는 프레임 스트럭처의 경우, 처음의 필드가 상위인지 하위인지를 나타내는 데이터이다. frame_predictive_frame_dct는 프레임·스트럭처의 경우, 프레임·모드 DCT의 예측이 프레임·모드뿐인 것을 나타내는 데이터이다.
concealment_motion_vectors는 인트라 매크로 블록에 전송 에러를 은폐하기 위한 동작 벡터가 붙어 있는 것을 나타내는 데이터이다.
q_scale_type는 선형 양자화 스케일을 이용할지, 비선형 양자화 스케일을 이용할지를 나타내는 데이터이다. intra_vlc_format은 인트라 매크로 블록에 별도의 2차원 VLC를 사용할지의 여부를 나타내는 데이터이다. alternate_scan은 지그재그 스캔을 사용할지, 얼터네이트·스캔을 사용할지의 선택을 나타내는 데이터이다. repeat_firt_field는 2:3 풀 다운 시에 사용되는 데이터이다. chroma_420_type는 신호 포맷이 4:2:0인 경우, 다음 progressive_frame과 동일한 값, 그렇지 않은 경우는 0을 나타내는 데이터이다. progressive_frame은 이 픽처가 순차 주사되어 있는지의 여부를 나타내는 데이터이다. composite_display_flag는 소스 신호가 컴포짓트 신호인지의 여부를 나타내는 데이터이다.
v_axis는 소스 신호가 PAL인 경우에 사용되는 데이터이다. field_sequence는 소스 신호가 PAL인 경우에 사용되는 데이터이다. sub_carrier는 소스 신호가 PAL인 경우에 사용되는 데이터이다. burst_amplitude는 소스 신호가 PAL인 경우에 사용되는 데이터이다. sub_carrier_phase는 소스 신호가 PAL인 경우에 사용되는 데이터이다.
계속해서, 최종단의 부호화 처리에 의해 생성된 비트 스트림의 픽처층의 사용자 에이리어에는, 과거의 부호화 처리에서 사용된 양자화 매트릭스 익스텐션이 이력 스트림으로서 기술되어 있다.
상기 양자화 매트릭스 익스텐션(quant_matrix_extension)에 관한 데이터 엘리먼트는 extension_start_code,
extension_start_code_identifier, quant_matrix_extension_present_flag,
load_intra_quantiser_matrix, intra_quantiser_matrix[64],
load_non_intra_quantiser_matrix, non_intra_quantiser_matrix[64],
load_chroma_intra_quantiser_matrix, chroma_intra_quantiser_matrix[64],
load_chroma_non_intra_quantiser_matrix 및
chroma_non_intra_quantiser_matrix[64]로 구성된다.
extension_start_code는 이 양자화 매트릭스 익스텐션의 스타트를 나타내는 개시 코드이다. extension_start_code_identifier는 어느 확장 데이터가 보내지는지를 나타내는 코드이다. quant_matrix_extension_present_flag는 이 양자화 매트릭스 익스텐션 내의 데이터 엘리먼트가 유효한지 무효인지를 나타내기 위한 데이터이다. load_intra_quantiser_matrix는 인트라 매크로 블록용 양자화 매트릭스 데이터의 존재를 나타내는 데이터이다. intra_quantiser_matrix는 인트라 매크로 블록용 양자화 매트릭스 값을 나타내는 데이터이다.
load_non_intra_quantiser_matrix는 비인트라 매크로 블록용 양자화 매트릭스 데이터의 존재를 나타내는 데이터이다. non_intra_quantiser_matrix는 비인트라 매크로 블록용 양자화 매트릭스 값을 나타내는 데이터이다. load_chroma_intra_quantiser_matrix는 색차 인트라 매크로 블록용 양자화 매트릭스·데이터의 존재를 나타내는 데이터이다. chroma_intra_quantiser_matrix는 색차 인트라 매크로 블록용 양자화 매트릭스 값을 나타내는 데이터이다. load_chroma_non_intra_quantiser_matrix는 색차 비인트라 매크로 블록용 양자화 매트릭스·데이터의 존재를 나타내는 데이터이다. chroma_non_intra_quantiser_matrix는 색차 비인트라 매크로 블록용 양자화 매트릭스 값을 나타내는 데이터이다.
계속해서, 최종단의 부호화 처리에 의해 생성된 비트 스트림의 픽처층의 사용자 에이리어에는, 과거의 부호화 처리에서 사용된 카피라이트 익스텐션이 이력 스트림으로서 기술되어 있다.
상기 카피라이트 익스텐션(copyright_extension)에 관한 데이터 엘리먼트는 extension_start_code, extension_start_code_itentifier, copyright_extension_present_flag, copyright_flag, copyright_identifier, original_or_copy, copyright_number_1, copyright_number_2 및 copyright_number_3으로 구성된다.
extension_start_code는 카피라이트 익스텐션의 스타트를 나타내는 개시 코드이다. extension_start_code_itentifier의 어느 익스텐션 데이터가 보내지는지를 나타내는 코드이다. copyright_extension_present_flag는 이 카피라이트 익스텐션 내의 데이터 엘리먼트가 유효한지 무효한지를 나타내기 위한 데이터이다. copyright_flag는 다음의 카피라이트 익스텐션 또는 시퀀스 엔드까지 부호화된 비디오 데이터에 대해 카피권이 주어져 있는지의 여부를 나타낸다.
copyright_identifier는 IS0/IEC JTC/SC29에 의해 지정된 카피권의 등록 기관을 식별하기 위한 데이터이다. original_or_copy는 비트 스트림 중의 데이터가 오리지널 데이터인지 카피 데이터인지를 나타내는 데이터이다. copyright_number_1은 카피라이트 넘버의 비트 44에서 63을 나타내는 데이터이다. copyright_number_2는 카피라이트 넘버의 비트 22에서 43을 나타내는 데이터이다. copyright_number_3은 카피라이트 넘버의 비트 0에서 21을 나타내는 데이터이다.
계속해서, 최종단의 부호화 처리에 의해 생성된 비트 스트림의 픽처층의 사용자 에이리어에는, 과거의 부호화 처리에서 사용된 픽처 디스플레이 익스텐션(picture_display_extension)이 이력 스트림으로서 기술되어 있다.
상기 픽처 디스플레이 익스텐션을 나타내는 데이터 엘리먼트는
extension_start_code, extension_start_code_identifier,
picture_display_extension_present_flag, frame_center_horizontal_offset_1,
frame_center_vertical_offset_1, frame_center_horizontal_offset_2,
frame_center_vertical_offset_2, frame_center_horizontal_offset_3 및
frame_center_vertical_offset_3으로 구성된다.
extension_start_code는 픽처 디스플레이 익스텐션의 스타트를 나타내기 위한 개시 코드이다. extension_start_code_identifier는 어느 확장 데이터가 보내지는지를 나타내는 코드이다. picture_display_extension_present_flag는 픽처 디스플레이 익스텐션 내의 데이터 엘리먼트가 유효한지 무효한지를 나타내는 데이터이다. frame_center_horizontal_offset은 표시 에이리어의 수평 방향의 오프셋을 나타내는 데이터로, 3개의 오프셋 값까지 정의할 수 있다.
frame_center_vertical_offset은 표시 에이리어를 수직 방향의 오프셋을 나타내는 데이터로, 3개의 오프셋 값까지 정의할 수 있다.
본 발명의 특징적인 점으로서, 이 픽처 디스플레이 익스텐션을 나타내는 이력 정보 다음에, re_coding_stream_information에 관한 데이터 엘리먼트가 기술되어 있다. re_coding_stream_information은
re_coding_stream_information에 관한 데이터 엘리먼트는,
user_data_start_code, re_coding_stream_info_ID, red_bw_flag,
red_bw_indicator 등의 데이터 엘리먼트로 구성된다.
user_data_start_code는 user_data가 개시하는 것을 나타내는 스타트 코드이다. re_coding_stream_info_ID는 16비트의 정수로,
re_coding_stream_info() 함수의 식별을 위해 사용된다. 그 값은 구체적으로는, "1001 0001 1110 1100"(0x91ec)이 된다.
red_bw_flag는 1비트의 플래그로, 모든 이력 정보에 관한 코딩 파라미터를 전송할 경우에는 0이 되고, 이력 정보에 관한 코딩 파라미터가 선택적으로 전송할 경우에는 1이 된다. red_bw_indicator는 2비트의 정수이고, 코딩 파라미터의 데이터 셋을 정의하기 위한 인디케이터이다.
이 re_coding_stream_information, red_bw_flag, red_bw_indicato 및 데이터 셋에 대해서는, 상세하게는 후술한다.
최종단의 부호화 처리에 있어서 생성된 비트 스트림의 픽처층의 사용자 에이리어에는, 과거의 부호화 처리에서 사용된 유저 데이터(user_data)가 이력 스트림으로서 기술되어 있다.
이 유저 데이터 다음에는, 과거의 부호화 처리에서 사용된 매크로 블록층에 관한 정보가 이력 스트림으로서 기술되어 있다.
상기 매크로 블록층에 관한 정보는 macroblock_address_h, macroblock_address_v, slice_header_present_flag, skipped_macroblock_flag 등의 매크로 블록(macrpblock) 위치에 관한 데이터 엘리먼트와,
macroblock_quant, macroblock_motion_forwrard, macroblock_motion_backward, macroblock_pattern, macroblock_intra, spatial_temporal_weight_code_flag, frame_motion_type 및 dct_type 등의 매크로 블록 모드(macroblock_modes[])에 관한 데이터 엘리먼트와, quantiser_scale_code 등의 양자화 스텝 제어에 관한 데이터 엘리먼트와,
PMV[0][0][0], PMV[0][0][1], motion_vertical_field_select[0][0],
PMV[0][1][0], PMV[0][1][1], motion_vertical_field_select[0][1],
PMV[1][0][0], PMV[1][0][1], motion_vertical_field_select[1][0],
PMV[1][1][0], PMV[1][1][1], motion_vertical_field_select[1][1] 등의 동작 보상에 관한 데이터 엘리먼트와, coded_block_pattern 등의 매크로 블록 패턴에 관한 데이터 엘리먼트와, num_mv_bits, num_coef_bits, 및 num_other_bits 등의 발생 부호량에 관한 데이터 엘리먼트로 구성되어 있다
이하에 매크로 블록층에 관한 데이터 엘리먼트에 대해서 상세하게 설명한다.
macroblock_address_h는 현재의 매크로 블록의 수평 방향의 절대 위치를 정의하기 위한 데이터이다. macroblock_address_v는 현재의 매크로 블록의 수직 방향의 절대 위치를 정의하기 위한 데이터이다. slice_header_present_flag는 이 매크로 블록이 슬라이스층의 선두이고, 슬라이스 헤더를 동반하는지의 여부를 나타내는 데이터이다. skipped_macroblock_flag는 복호 처리에 있어서 이 매크로 블록을 스킵할지의 여부를 나타내는 데이터이다.
macroblock_quant는 후술하는 도 63과 도 64에 도시된 마이크로 블록 타입(macroblock_type)로부터 유도되는 데이터로, quantiser_scale_code가 비트 스트림 중에 나타나는지의 여부를 나타내는 데이터이다. mnacroblock_motiom_forward는 도 63과 도 64에 도시된 매크로 블록 타입로부터 유도되는 데이터로, 복호 처리에서 사용되는 데이터이다.
macroblock_motion_backward는 도 63과 도 64에 도시된 매크로 블록 타입로부터 유도되는 데이터로, 복호 처리에서 사용되는 데이터이다. macroblock_pattern은 도 63과 도 64에 도시된 매크로 블록 타입로부터 유도되는 데이터로, coded_block_pattern이 비트 스트림 중에 나타나는지의 여부를 나타내는 데이터이다.
macroblock_intra는 도 63과 도 64에 도시된 매크로 블록 타입로부터 유도되는 데이터로, 복호 처리에서 사용되는 데이터이다.
spatial_temporal_weight_code_flag는 도 63과 도 64에 도시된 매크로 블록 타입로부터 유도되는 데이터로, 시간 스케일러빌리티로 하위 레이어 화상의 업 샘플링 방법을 나타내는 spatial_temporal_weight_code는 비트 스트림 중에 존재하는지의 여부를 나타내는 데이터이다.
frame_motion_type는 프레임의 매크로 블록의 예측 타입을 나타내는 2비트 코드이다. 예측 벡터가 2개로 필드 베이스의 예측 타입이면 「00」이고, 예측 벡터가 1개로 필드 베이스의 예측 타입이면 「01」이며, 예측 벡터가 1개로 프레임 베이스의 예측 타입이면 「10」이며, 예측 벡터가 1개로 디얼 프라임의 예측 타입이면 「11」이다. field_motion_type는 필드의 매크로 블록의 동작 예측을 나타내는 2비트 코드이다. 예측 벡터가 1개로 필드 베이스의 예측 타입이면 「01」이고, 예측 벡터가 2개로 18×8 매크로 블록 베이스의 예측 타입이면 「10」이며, 예측 벡터가 1개로 디얼 프라임의 예측 타입이면 「11」이다. dct_type는 DCT이 프레임 DCT 모드인지, 필드 DCT 모드인지를 나타내는 데이터이다.
quantiser_scale_code는 매크로 블록의 양자화 스텝 사이즈를 나타내는 데이터이다.
다음으로 동작 벡터에 관한 데이터 엘리먼트에 대해서 설명한다. 동작 벡터는 복호 시에 필요한 동작 벡터를 감소시키기 위해, 앞서 부호화된 벡터에 관해 차분으로서 부호화된다. 동작 벡터의 복호를 행하기 때문에 복호기는 4개의 동작 벡터 예측치(각각 수평 및 수직 성분을 따른다)를 유지해야만 한다. 이 예측 동작 벡터를 PMV[r][s][v]로 나타내는 것으로 하고 있다. [r]은 매크로 블록에 있어서의 동작 벡터가 제 1 벡터인 것인지, 제 2 벡터인 것인지를 나타내는 플래그로, 매크로 블록에 있어서의 벡터가 제 1 벡터일 경우에는 「0」이 되고, 매크로 블록에 있어서의 벡터가 제 2 벡터일 경우에는 「1」이 된다. [s]는 매크로 블록에 있어서의 동작 벡터 방향이 전방향인 것인지 후방향인 것인지를 나타내는 플래그로, 전방향 동작 벡터의 경우에는 「0」이 되고, 후방향 동작 벡터의 경우에는 「1」이 된다. [v]는 매크로 블록에 있어서의 벡터 성분이 수평 방향인 것인지 수직 방향인 것인지를 나타내는 플래그로, 수평 방향 성분의 경우에는 「0」이 되고, 수직 방향 성분의 경우에는 「1」이 된다.
따라서, PMV[0][0][0]은 제 1 벡터의 전방향 동작 벡터의 수평 방향 성분의 데이터를 나타내고, PMV[0][0][1]은 제 1 벡터의 전방향 동작 벡터의 수직 방향 성분 데이터를 나타내며, PMV[0][1][0]은 제 1 벡터의 후방향 동작 벡터의 수평 방향 성분의 데이터를 나타내며, PMV[0][1][1]은 제 1 벡터의 후방향 동작 벡터의 수직 방향 성분의 데이터를 나타내며,
PMV[1][0][0]은 제 2 벡터의 전방향 동작 벡터의 수평 방향 성분 데이터를 나타내고, PMV[1][0][1]은 제 2 벡터의 전방향 동작 벡터의 수직 방향 성분 데이터를 나타내며,
PMV[1][1][0]은 제 2 벡터의 후방향 동작 벡터의 수평 방향 성분 데이터를 나타내고, PMV[1][1][1]은 제 2 벡터의 후방향 동작 벡터의 수직 방향 성분 데이터를 나타내고 있다.
motion_vertical_field_select[r][s]는 예측 형식에 어느 쪽의 참조 필드를 사용하는 것인지를 나타내는 데이터이다. 이 motion_vertical_field_select[r][s]가 「0」인 경우에는, 톱 참조 필드를 사용하고, 「1」인 경우에는, 바텀 참조 필드를 사용하는 것을 나타내고 있다.
따라서, motion_vertical_field_select[0][0]은 제 1 벡터의 전방향 동작 벡터를 생성할 때의 참조 필드를 나타내며, motion_vertical_field_select[0][1]은 제 1 벡터의 후방향 동작 벡터를 생성할 때의 참조 필드를 나타내며, motion_vertical_field_select[1][0]은 제 2 벡터의 전방향 동작 벡터를 생성할 때의 참조 필드를 나타내며, motion_vertical_field_select[1][1]은 제 2 벡터의 후방향 동작 벡터를 생성할 때의 참조 필드를 나타내고 있다.
coded_block_pattern은 DCT 계수를 격납하는 복수의 DCT 블록 중, 어느 DCT 블록에 유의 계수(비 0계수)가 있는지를 나타내는 가변 길이의 데이터이다. num_mv_bits는 매크로 블록 중의 동작 벡터의 부호량을 나타내는 데이터이다. num_coef_bits는 매크로 블록 중의 DCT 계수의 부호량을 나타내는 데이터이다. num_other_bits는 매크로 블록의 부호량으로, 동작 벡터 및 DCT 계수 이외의 부호량을 나타내는 데이터이다.
다음으로, 가변 길이의 이력 스트림으로부터 각 데이터 엘리먼트를 디코드하기 위한 신텍스에 대해서, 도 47 내지 도 67을 참조하여 설명한다.
상기 가변 길이의 이력 스트림은 next_start_code() 함수, sequence_header() 함수, sequence_extension() 함수, extension_and_user_data(0) 함수, group_of_picture_header() 함수, extension_and_user_data(1) 함수,
picture_header() 함수, picture_coding_extension() 함수,
re_coding_stream_info() 함수, extension_and_user_data(2) 함수 및
picture_data() 함수에 의해 정의된 데이터 엘리먼트에 의해 구성된다.
next_start_code() 함수는 비트 스트림 중에 존재하는 스타트 코드를 찾기 위한 함수이기 때문에, 이력 스트림의 가장 선두에는, 도 48에 도시하는 바와 같은 과거의 부호화 처리에서 사용된 데이터 엘리먼트로 sequence_header() 함수에 의해 정의된 데이터 엘리먼트가 기술되어 있다
sequence_header() 함수에 의해 정의된 데이터 엘리먼트는,
sequence_header_code, sequence_header_present_flag,
horizontal_size_value, vertical_size_value, aspect_ratio_information,
frame_rate_code, bit_rate_value, marker_bit, VBV_buffer_size_value,
constrained_parameter_flag, load_intra_quantiser_matrix,
intra_quantiser_matrix, load_non_intra_quantiser_matrix 및
non_intra_quantiser_matrix 등이다.
sequence_header_code는 시퀀스층의 스타트 동기 코드를 나타내는 데이터이다. sequence_header_present_flag는 sequence_header 내의 데이터가 유효한지 무효한지를 나타내는 데이터이다. horizontal_size_value는 화상의 수평 방향 화소수의 하위 12비트로 이루어지는 데이터이다. vertical_size_value는 화상의 세로 라인 수의 하위 12비트로 이루어지는 데이터이다.
aspect_ratio_information은 화소의 애스팩트비(종횡비) 또는 표시 화면 애스팩트비를 나타내는 데이터이다. frame_rate_code는 화상의 표시 주기를 나타내는 데이터이다. bit_rate_value는 발생 비트량에 대한 제한을 위한 비트·레이트의 하위 18비트(400bsp 단위로 끝맺는다) 데이터이다.
marker_bit는 스타트 코드 에뮬레이션을 방지하기 위해 삽입되는 비트 데이터이다. VBV_buffer_size_value는 발생 부호량 제어용 가상 버퍼(비디오 버퍼 베리파이어)의 크기를 정하는 값의 하위 10비트 데이터이다. constrained_parameter_flag는 각 파라미터가 제한 이내인 것을 나타내는 데이터이다. load_intra_quantiser_matrix는 인트라 MB용 양자화 매트릭스·데이터의 존재를 나타내는 데이터이다. intra_quantiser_matrix는 인트라 MB용 양자화 매트릭스 값을 나타내는 데이터이다. load_non_intra_quantiser_matrix는 비인트라 MB용 양자화 매트릭스·데이터의 존재를 나타내는 데이터이다. non_intra_quantiser_matrix는 비인트라 MB용 양자화 매트릭스 값을 나타내는 데이터이다.
sequence_header() 함수에 의해 정의된 데이터 엘리먼트 다음에는, 도 49에서 도시하는 바와 같은 sequence_extension() 함수에 의해 정의된 데이터 엘리먼트가 이력 스트림으로서 기술되어 있다.
sequence_extension() 함수에 의해 정의된 데이터 엘리먼트란
extension_start_code, extension_start_code_identifier,
sequence_extension_present_flag, profile_and_level_indication,
progressive_sequence, chroma_format, horizontal_size_extension,
vertical_size_extension, bit_rate_extension, vbv_buffer_size_extension,
low_delay, frame_rate_extension_n 및 frame_rate_extension_d 등의 데이터 엘리먼트이다.
extension_start_code는 익스텐션 데이터의 스타트 동기 코드를 나타내는 데이터이다. extension_start_code_identifier는 어느 확장 데이터가 보내지는지를 나타내는 데이터이다. sequence_extension_present_flag는 시퀀스 익스텐션 내의 데이터가 유효한지 무효한지를 나타내는 데이터이다. profile_and_level_indication은 비디오 데이터의 프로파일과 레벨을 지정하기 위한 데이터이다. progressive_sequence는 비디오 데이터가 순차 주사인 것을 나타내는 데이터이다. chroma_format은 비디오 데이터의 색차 포맷을 지정하기 위한 데이터이다. horizontal_size_extension은 시퀀스 헤더의 horizontal_size_value에 더하는 상위 2비트 데이터이다. vertical_size_extension은 시퀀스 헤더의 vertical_size_value 더하는 상위 2비트의 데이터이다. bit_rate_extension은 시퀀스 헤더의 bit_rate_value에 더하는 상위 12비트 데이터이다.
vbv_buffer_size_extension은 시퀀스 헤더의 vbv_buffer_size_value에 더하는 상위 8비트 데이터이다.
low_delay는 B 픽처를 포함하지 않는 것을 나타내는 데이터이다.
frame_rate_extension_n은 시퀀스 헤더의 frame_rate_code와 조합시켜 프레임 레이트를 얻기 위한 데이터이다. frame_rate_extension_d는 시퀀스 헤더의 frame_rate_code와 조합시켜 프레임 레이트를 얻기 위한 데이터이다.
sequence_extension() 함수에 의해 정의된 데이터 엘리먼트 다음에는, 도 50에 도시하는 바와 같은 extension_and_user_data(0) 함수에 의해 정의된 데이터 엘리먼트가 이력 스트림으로서 기술되어 있다. extension_and_user_data(i) 함수는 「i」가 1 이외일 때는, extension_data() 함수에 의해 정의되는 데이터 엘리먼트는 기술하지 않고서, user_data() 함수에 의해 정의되는 데이터 엘리먼트만을 이력 스트림으로서 기술한다. 따라서, extension_and_user_data(0) 함수는,
user_data() 함수에 의해 정의되는 데이터 엘리먼트만을 이력 스트림으로서 기술한다.
user_data() 함수는 도 51에 도시된 바와 같은 신텍스에 기초하여, 유저 데이터를 이력 스트림으로서 기술한다.
extension_and_user_data(0) 함수에 의해 정의된 데이터 엘리먼트 다음에는, 도 52에 도시하는 바와 같은 group_of_picture_header() 함수에 의해 정의된 데이터 엘리먼트 및 extension_and_user_data(1) 함수에 의해 정의되는 데이터 엘리먼트가 이력 스트림으로서 기술되어 있다. 단, 이력 스트림 중에, G0P층의 스타트 코드를 나타내는 group_start_code가 기술되어 있을 경우에만,
group_of_picture_header() 함수에 의해 정의된 데이터 엘리먼트 및 extension_and_user_data(1) 함수에 의해 정의되는 데이터 엘리먼트가 기술되어 있다.
group_of_picture_header() 함수에 의해 정의된 데이터 엘리먼트는 group_start_code, group_of_picture_header_present_flag, time_code, closed_gop 및 broken_link로 구성된다.
group_start_code는 G0P층의 개시 동기 코드를 나타내는 데이터이다. group_of_picture_header_present_flag는,
group_of_picture_header 내의 데이터 엘리먼트가 유효한지 무효한지를 나타내는 데이터이다. time_code는 G0P의 선두 픽처의 시퀀스 선두로부터의 시간을 나타내는 타임 코드이다. closed_gop는 G0P 내의 화상이 다른 G0P로부터 독립 재생 가능한 것을 나타내는 플래그 데이터이다. broken_link는 편집 등을 위해 G0P 내의 선두 B 픽처를 정확하게 재생할 수 없는 것을 나타내는 플래그 데이터이다.
extension_and_user_data(1) 함수는,
extension_and_user_data(0) 함수와 동일하게, user_data() 함수에 의해 정의되는 데이터 엘리먼트만을 이력 스트림으로서 기술한다.
혹시, 이력 스트림 중에, G0P층의 스타트 코드를 나타내는 group_start-code가 존재하지 않을 경우에는, 이들 group_of_picture_header() 함수 및 extension_and_user_data(1) 함수에 의해 정의되는 데이터 엘리먼트는 이력 스트림 중에는 기술되어 있지 않다. 그 경우에는,
extension_and_user_data(0) 함수에 의해 정의된 데이터 엘리먼트 다음에 picture_header() 함수에 의해 정의된 데이터 엘리먼트가 이력 스트림으로서 기술되어 있다.
picture_header() 함수에 의해 정의된 데이터 엘리먼트는 도 53에 도시하는 바와 같이, picture_start_code, temporal_reference, picture_coding_type, vbv_delay, full_pel_forward_vector, forward_f_code, full_pel_backward_vector, backward_f_code, extra_bit_picture 및 extra_information_picture이다.
구체적으로는, picture_start_code는 픽처층의 개시 동기 코드를 나타내는 데이터이다. temporal_reference는 픽처의 표시 순서를 나타내는 번호로 G0P의 선두에서 리셋되는 데이터이다. picture_coding_type는 픽처 타입을 나타내는 데이터이다. vbv_delay는 렌덤 액세스 시의 가상 버퍼의 초기 상태를 나타내는 데이터이다. full_pel_forward_vector는 순방향 동작 벡터의 정밀도가 정수 단위인지 반화소 단위인지를 나타내는 데이터이다. forward_f_code는 순방향 동작 벡터 탐색 범위를 나타내는 데이터이다. full_pel_backward_vector는 역방향 동작 벡터의 정밀도가 정수 단위인지 반화소 단위인지를 나타내는 데이터이다. backward_f_code는 역방향 동작 벡터 탐색 범위를 나타내는 데이터이다.
extra_bit_picture는 후속하는 추가 정보 존재를 나타내는 플래그이다. 이 extra_bit_picture가 「1」인 경우에는, 다음으로 extra_information_picture가 존재하고, extra_bit_picture가 「0」인 경우에는, 이에 계속되는 데이터가 없는 것을 나타내고 있다. extra_information_picture는 규격에 있어서 예약된 정보이다.
picture_header() 함수에 의해 정의된 데이터 엘리먼트 다음에는, 도 54에 도시하는 바와 같은 picture_coding_extension() 함수에 의해 정의된 데이터 엘리먼트가 이력 스트림으로서 기술되어 있다.
이 picture_coding_extension() 함수에 의해 정의된 데이터 엘리먼트란 extension_start_code, extension_start_code_identifier,
f_code[0][0], f_code[0][1], f_code[1][0], f_code[1][1], intra_dc_precision,
picture_structure, top_field_first, frame_predictive_frame_dct,
concealment_motion_vectors, q_scale_type, intra_vlc_format, alternate_scan,
repeat_firt_field, chroma_420_type, progressive_frame,
composite_display_flag, v_axis, field_sequence, sub_carrier, burst_amplitude 및 sub_carrier_phase로 구성된다.
extension_start_code는 픽처층의 익스텐션 데이터의 스타트를 나타내는 개시 코드이다. extension_start_code_identifier는 어느 확장 데이터가 보내지는지를 나타내는 코드이다. f_code[0][0]은 포워드 방향의 수평 동작 벡터 탐색 범위를 나타내는 데이터이다. f_code[0][1]은 포워드 방향의 수직 동작 벡터 탐색 범위를 나타내는 데이터이다. f_code[1][0]은 백워드 방향의 수평 동작 벡터 탐색 범위를 나타내는 데이터이다. f_code[1][1]은 백워드 방향의 수직 동작 벡터 탐색 범위를 나타내는 데이터이다. intra_dc_precision은 DC 계수의 정밀도를 나타내는 데이터이다.
picture_structure는 프레임 스트럭처인지 필드 스트럭처인지를 나타내는 데이터이다. 필드 스트럭처의 경우는, 상위 필드인지 하위 필드인지도 합쳐 나타내는 데이터이다. top_field_first는 프레임 스트럭처의 경우, 처음의 필드가 상위인지 하위인지를 나타내는 데이터이다. frame_predictive_frame_dct는 프레임·스트럭처의 경우, 프레임·모드 DCT의 예측이 프레임·모드뿐인 것을 나타내는 데이터이다. concealment_motion_vectors는 인트라 매크로 블록에 전송 에러를 은폐하기 위한 동작 벡터가 붙어 있는 것을 나타내는 데이터이다. q_scale_type는 선형 양자화 스케일을 이용할지, 비선형 양자화 스케일을 이용할지를 나타내는 데이터이다. intra_vlc_format은 인트라 매크로 블록에 다른 2차원 VLC를 사용할지의 여부를 나타내는 데이터이다.
alternate_scan은 지그재그 스캔을 사용할지, 얼터네이트·스캔을 사용할지의 선택을 나타내는 데이터이다. repeat_firt_field는 2:3 풀 다운 시에 사용되는 데이터이다. chroma_420_type는 신호 포맷이 4:2:O인 경우, 다음 progressive_frame과 동일한 값, 그렇지 않은 경우는 0을 나타내는 데이터이다. progressive_frame은 이 픽처가 순차 주사되어 있는지의 여부를 나타내는 데이터이다. composite_display_flag는 소스 신호가 콤포짓트 신호인지의 여부를 나타내는 데이터이다. v_axis는 소스 신호가 PAL인 경우에 사용되는 데이터이다. field_sequence는 소스 신호가 PAL인 경우에 사용되는 데이터이다. sub_carrier는 소스 신호가 PAL인 경우에 사용되는 데이터이다. burst_amplitude는 소스 신호가 PAL인 경우에 사용되는 데이터이다. sub_carrier_phase는 소스 신호가 PAL인 경우에 사용되는 데이터이다.
picture_coding_extension() 함수에 의해 정의된 데이터 엘리먼트 다음에는, re_coding_stream_info() 함수에 의해 정의된 데이터 엘리먼트가 이력 스트림으로서 기술되어 있다. 상기 re_coding_stream_info() 함수는 본 발명의 특징적인 함수로, 주로 이력 정보의 조합을 기술할 경우에 사용되는 것으로, 그 상세함에 대해서는, 도 68을 참조하여 후술한다.
re_coding_stream_info() 함수에 의해 정의된 데이터 엘리먼트 다음에는 extensions_and_user_data(2)에 의해 정의된 데이터 엘리먼트가 이력 스트림으로서 기술되어 있다. 이 extension_and_user_data(2) 함수는 도 50에 도시한 바와 같이, 비트 스트림 중에 익스텐션 스타트 코드(extension_start_code)가 존재할 경우에는, extension_data() 함수에 의해 정의되는 데이터 엘리먼트가 기술되어 있다. 이 데이터 엘리먼트 다음에는, 비트 스트림 중에 유저 데이터 스타트 코드(user_data_start_code)가 존재할 경우에는, user_data() 함수에 의해 정의되는 데이터 엘리먼트가 기술되어 있다. 단, 비트 스트림 중에 익스텐션 스타트 코드 및 유저 데이터 스타트 코드가 존재하지 않을 경우에는 extension_data() 함수 및 user_data() 함수에 의해 정의되는 데이터 엘리먼트는 비트 스트림 중에는 기술되어 있지 않다.
extension_data() 함수는 도 55에 도시하는 바와 같이, extension_start_code를 나타내는 데이터 엘레먼트와, quant_matrix_extension() 함수, copyright_extension() 함수 및 picture_display_extension() 함수에 의해 정의되는 데이터 엘레먼트를 비트 스트림 중에 이력 스트림으로서 기술하기 위한 함수이다.
quant_matrix_extension() 함수에 의해 정의되는 데이터 엘리먼트는 도 56에 도시하는 바와 같이, extension_start_code, extension_start_code_identifier,
quant_matrix_extension_present_flag, load_intra_quantiser_matrix,
intra_quantiser_matrix[64], load_non_intra_quantiser_matrix,
non_intra_quantiser_matrix[64], load_chroma_intra_quantiser_matrix,
chroma_intra_quantiser_matrix[64], load_chroma_non_intra_quantiser_matrix 및 chroma_non_intra_quantiser_matrix[64]이다.
extension_start_code는 이 양자화 매트릭스 익스텐션의 스타트를 나타내는 개시 코드이다. extension_start_code_identifier는 어느 확장 데이터가 보내지는지를 나타내는 코드이다. quant_matrix_extension_present_flag는 이 양자화 매트릭스 익스텐션 내의 데이터 엘리먼트가 유효한지 무효한지를 나타내기 위한 데이터이다. load_intra_quantiser_matrix는 인트라 매크로 블록용 양자화 매트릭스 데이터의 존재를 나타내는 데이터이다. intra_quantiser_matrix는 인트라 매크로 블록용 양자화 매트릭스 값을 나타내는 데이터이다.
load_non_intra_quantiser_matrix는 비인트라 매크로 블록용 양자화 매트릭스 데이터의 존재를 나타내는 데이터이다. non_intra_quantiser_matrix는 비인트라 매크로 블록용 양자화 매트릭스 값을 나타내는 데이터이다. load_chroma_intra_quantiser_matrix는 색차 인트라 매크로 블록용 양자화 매트릭스·데이터의 존재를 나타내는 데이터이다. chroma_intra_quantiser_matrix는 색차 인트라 매크로 블록용 양자화 매트릭스 값을 나타내는 데이터이다. load_chroma_non_intra_quantiser_matrix는 색차 비인트라 매크로 블록용 양자화 매트릭스·데이터의 존재를 나타내는 데이터이다. chroma_non_intra_quantiser_matrix는 색차 비인트라 매크로 블록용 양자화 매트릭스 값을 나타내는 데이터이다.
copyright_extension() 함수에 의해 정의되는 데이터 엘리먼트는 도 57에 도시하는 바와 같이,
extension_start_code, extension_start_code_itentifier,
copyright_extension_present_flag, copyright_flag, copyright_identifier,
original_or_copy, copyright_number_1, copyright_number_2 및
copyright_number_3으로 구성된다.
extension_start_code는 카피라이트 익스텐션의 스타트를 나타내는 개시 코드이다. extension_start_code_itentifier 어느 익스텐션 데이터가 보내지는지를 나타내는 코드이다. copyright_extension_present_flag는 이 카피라이트 익스텐션 내의 데이터 엘리먼트가 유효한지 무효한지를 나타내기 위한 데이터이다.
copyright_flag는 다음의 카피라이트 익스텐션 또는 시퀀스 엔드까지, 부호화된 비디오 데이터에 대해 카피권이 주어져 있는지의 여부를 나타낸다. copyright_identifier는 IS0/IEC JTC/SC29에 의해 지정된 카피권의 등록 기관을 식별하기 위한 데이터이다. original_or_copy는 비트 스트림 중의 데이터가 오리지널 데이터인지 카피 데이터인지를 나타내는 데이터이다. copyright_number_1은 카피라이트 넘버의 비트 44로부터 63을 나타내는 데이터이다. copyright_number_2는 카피라이트 넘버의 비트 22로부터 43을 나타내는 데이터이다. copyright_number_3은 카피라이트 넘버의 비트 0으로부터 21을 나타내는 데이터이다.
picture_display_extension() 함수에 의해 정의되는 데이터 엘리먼트는 도 58에 도시하는 바와 같이, extension_start_code_identifier,
frame_center_horizontal_offset, frame_center_vertical_offset 등이다.
extension_start_code_identifier는 어느 확장 데이터가 보내지는지를 나타내는 코드이다. frame_center_horizontal_offset은 표시 에이리어의 수평 방향 오프셋을 나타내는 데이터로, number_of_frame_center_offsets에 의해 정의되는 수의 오프셋 값을 정의할 수 있다. frame_center_vertical_offset은 표시 에이리어를 수직 방향의 오프셋을 나타내는 데이터로,
number_of_frame_center_offsets에 의해 정의되는 수의 오프셋 값을 정의할 수 있다.
다시 도 47로 돌아가, extension_and_user_data(2) 함수에 의해 정의되는 데이터 엘리먼트 다음에는, picture_data() 함수에 의해 정의되는 데이터 엘리먼트가 이력 스트림으로서 기술되어 있다. 단, 이 picture_data() 함수는 red_bw_flag가 1 이 아닐지 또는 red_bw_indicator가 2 이하인 경우에 존재한다. 이 red_bw_flag와 red_bw_indicator는 re_coding_stream_info() 함수에 기술되어 있으며, 이들에 대해서는, 도 68과 도 69를 참조하여 후술한다.
picture_data() 함수에 의해 정의되는 데이터 엘리먼트는 도 59에 도시하는 바와 같이, slice() 함수에 의해 정의되는 데이터 엘리먼트이다. 이 slice() 함수에 의해 정의되는 데이터 엘리먼트는 비트 스트림 중에 적어도 1개 기술되어 있다.
slice() 함수는 도 60에 도시되는 바와 같이, slice_start_code, slice_quantiser_scale_code, intra_slice_flag, intra_slice, reserved_bits, extra_bit_slice, extra_information_slice 및 extra_bit_slice 등의 데이터 엘리먼트와, macroblock() 함수에 의해 정의되는 데이터 엘리먼트를 이력 스트림으로서 기술하기 위한 함수이다.
slice_start_code는 slice() 함수에 의해 정의되는 데이터 엘리먼트의 스타트를 나타내는 스타트 코드이다. slice_quantiser_scale_code는 이 슬라이스층에 존재하는 매크로 블록에 대해 설정된 양자화 스텝 사이즈를 나타내는 데이터이다. 그러나, 각 매크로 블록마다 quantiser_scale_code가 설정되어 있을 경우에는, 각 매크로 블록에 대해 설정된 macroblock_quantiser_scale_code의 데이터가 우선하여 사용된다.
intra_slice_flag는 비트 스트림 중에 intra_slice 및 reserved_bits가 존재하는지의 여부를 나타내는 플래그이다. intra_slice는 슬라이스층 중에 논 인트라 매크로 블록이 존재하는지의 여부를 나타내는 데이터이다. 슬라이스층에 있어서의 매크로 블록 중 어느 하난가 논 인트라 매크로 블록인 경우에는, intra_slice는「0」이 되며, 슬라이스층에 있어서의 매크로 블록 모두가 논 인트라 매크로 블록인 경우에는, intra_slice는 「1」이 된다. reserved_bits는 7비트 데이터로 「0」에 설정된다. extra_bit_slice는 이력 스트림으로서 추가 정보가 존재하는 것을 나타내는 플래그로, 다음에 extra_information_slice가 존재할 경우에는 「1」에 설정된다. 추가 정보가 존재하지 않을 경우에는 「0」에 설정된다.
이들 데이터 엘리먼트 다음에는, macroblock() 함수에 의해 정의된 데이터 엘리먼트가 이력 스트림으로서 기술되어 있다.
macroblock() 함수는 도 61에 도시하는 바와 같이, macroblock_escape, macroblock_address_increment 및 macroblock_quantiser_scale_code 및 marker_bit 등의 데이터 엘리먼트와, macroblock_modes() 함수, motion_vectors(s) 함수 및 code_block_pattern() 함수에 의해 정의된 데이터 엘리먼트를 기술하기 위한 함수이다.
macroblock_escape는 참조 매크로 블록과 이전 매크로 블록과의 수평 방향 차가 34이상인지의 여부를 나타내는 고정 비트열이다. 참조 매크로 블록과 이전 매크로 블록과의 수평 방향 차가 34이상일 경우에는, macroblock_address_increment 값에 33을 플러스한다.
macroblock_address_increment는 참조 매크로 블록과 이전 매크로 블록과의 수평 방향 차를 나타내는 데이터이다. 혹시, 이 macroblock_address_increment 전에 macroblock_escape가 1개 존재하는 것이면, 이 macroblock_address_increment 값에 33을 플러스한 값이 실제의 참조 매크로 블록과 이전 매크로 블록과의 수평 방향의 차분을 나타내는 데이터가 된다.
macroblock_quantiser_scale_code는 각 매크로 블록마다 설정된 양자화 스텝 사이즈이고, macroblock_quant가 "1"인 때만 존재한다. 각 슬라이스층에는 슬라이스층의 양자화 스텝 사이즈를 나타내는 slice_quantiser_scale_code가 설정되어 있지만, 참조 매크로 블록에 대해 macroblock_quantiser_scale_code가 설정되어 있을 경우에는, 상기 양자화 스텝 사이즈를 선택한다.
macroblock_address_increment 다음에는, macroblock_modes() 함수에 의해 정의되는 데이터 엘리먼트가 기술되어 있다. macroblock_modes() 함수는 도 62에 도시하는 바와 같이, macroblock_type, frame_motion_type, field_motion_type, dct_type 등의 데이터 엘리먼트를 이력 스트림으로서 기술하기 위한 함수이다.
macroblock_type는 매크로 블록의 부호화 타입을 나타내는 데이터이다. 그 상세함은 도 65 내지 도 67을 참조하여 후술한다.
혹시, macroblock_motion_forward 또는 macroblock_motion_backward가 「1」이고, 픽처 구조가 프레임이며, 더욱이 frame_pred_frame_dct가 「0」인 경우에는, macroblock_type를 나타내는 데이터 엘리먼트 다음에 frame_motion_type를 나타내는 데이터 엘리먼트가 기술되어 있다. 더구나, 이 frame_pred_frame_dct는,
frame_motion_type가 비트 스트림 중에 존재하는지의 여부를 나타내는 플래그이다.
frame_motion_type는 프레임의 매크로 블록의 예측 형태를 나타내는 2 비트의 코드이다. 예측 벡터가 2개로 필드 베이스의 예측 형태이면 「00」이고, 예측 벡터가 1개로 필드 베이스의 예측 형태이면 「01」이고, 예측 벡터가 1개로 프레임 베이스의 예측 형태이면 「10」이고, 예측 벡터가 1개로 디얼프라임의 예측 형태이면 「11」이다.
frame_motion_type를 기술하는 조건이 만족되지 않을 경우에는
macroblock_type를 나타내는 데이터 엘리먼트 다음에 field_motion_type를 나타내는 데이터 엘리먼트가 기술되어 있다.
field_motion_type는 필드의 매크로 블록의 이동 예측을 나타내는 2 비트의 코드이다. 예측 벡터가 1개로 필드 베이스의 예측 형태이면 「01」이고, 예측 벡터가 2개로 18×8 매크로 블록 베이스의 예측 형태이면 「10」이고, 예측 벡터가 1개로 디얼프라임의 예측 형태이면 「11」이다.
만약, 픽처 구조가 프레임으로,
frame_pred_frame_dct가 frame_motion_type가 비트 스트림 중에 존재하는 것을 나타내며, 또한, frame_pred_frame_dct가 dct_type가 비트 스트림 중에 존재하는 것을 나타내고 있는 경우에는 macroblock_type를 나타내는 데이터 엘리먼트 다음에 dct_type를 나타내는 데이터 엘리먼트가 기술되어 있다. 한편, dct_type는 DCT가 프레임 DCT 모드인지, 필드 DCT 모드인지를 나타내는 데이터이다.
다시 도 61로 돌아가서, 만약, 참조 매크로 블록이 전방 예측 매크로 블록이거나, 또는 참조 매크로 블록이 인트라 매크로 블록이며 동시에 콘실 처리의 매크로 블록 중 어느 하나인 경우에는 motion_vectors(0)함수에 의해서 정의되는 데이터 엘리먼트가 기술된다. 또한, 참조 매크로 블록이 후방 예측 매크로 블록인 경우에는 motion_vectors(1)함수에 의해서 정의되는 데이터 엘리먼트가 기술된다. 한편,
motion_vectors(0)함수는 제 1 번째의 움직임 벡터에 관한 데이터 엘리먼트를 기술하기 위한 함수로서, motion_vectors(1) 함수는 제 2 번째의 움직임 벡터에 관한 데이터 엘리먼트를 기술하기 위한 함수이다.
motion_vectors(s)함수는 도 63에 도시한 바와 같이, 움직임 벡터에 관한 데이터 엘리먼트를 기술하기 위한 함수이다.
만약, 움직임 벡터가 1개로 디얼프라임 예측 모드를 사용하지 않을 경우에는 motion_vertical_fie1d_select[0][s]와 motion_vector(0, s)에 의해서 정의되는 데이터 엘리먼트가 기술된다.
상기 motion_vertical_fie1d_select[r][s]는 제 1 번째의 움직임 벡터(전방 또는 후방 중 어느 벡터이든 무방함)가, 보텀 필드를 참조하여 작성된 벡터인지 톱 필드를 참조하여 작성된 벡터인지를 나타내는 플래그이다. 상기 지표 "r"은 제 1 번째의 벡터 또는 제 2 번째 중 어느 벡터인지를 나타내는 지표이고, "s"는 예측 방향이 전방 또는 후방 예측 중 어느 것인지를 나타내는 지표이다.
motion_vector(r, s) 함수는 도 64에 도시한 바와 같이, motion_code[r][s][t]에 관한 데이터열과, motion_residual[r][s][t]에 관한 데이터열과, dmvector[t]를 나타내는 데이터를 기술하기 위한 함수이다.
motion_code[r][s][t]는, 움직임 벡터의 크기를 -16 내지 +16의 범위로 나타내는 가변 길이의 데이터이다. motion_residual[r][s][t]는, 움직임 벡터의 잔차를 나타내는 가변 길이의 데이터이다. 따라서, 상기 motion_code[r][s][t]와 motion_residual[r][s][t]의 값에 의해 상세한 움직임 벡터를 기술할 수 있다. dmvector[t]는 디얼프라임 예측 모드일때에, 한쪽의 필드(예를 들면 보텀 필드에 대하여 톱 필드를 한쪽의 필드로 한다)에 있어서의 움직임 벡터를 생성하기 위해서, 시간거리에 따라서 기존의 움직임 벡터가 스케일됨과 동시에, 톱 필드와 보텀 필드의라인간의 수직방향의 어긋남을 반영시키기 위해서 수직방향에 대하여 보정을 행하는 데이터이다. 상기 지표 "r"는 제 1 번째의 벡터 또는 제 2 번째의 벡터 중 어느 벡터인지를 나타내는 지표이고, "s"는 예측 방향이 전방 또는 후방 예측 중 어느 것인지를 나타내는 지표이다. "s"는 움직임 벡터가 수직방향의 성분인지 수평 방향의 성분인지를 나타내는 데이터이다.
도 64에 도시된 motion_vector(r, s)함수에 의해서, 우선, 수평방향의 motion_coder[r][s][0]를 나타내는 데이터열이, 이력 스트림으로서 기술된다. motion_residual[0][s][t] 및 motion_residual[1][s][t]의 쌍방의 비트수는 f_code[s][t]로 나타내기 때문에,
f_code[s][t]가 1이 아닐 경우에는,
motion_residual[r][s][t]가 비트 스트림 중에 존재하는 것을 나타내는 것으로 된다. 수평 방향 성분의 motion_residual[r][s][0]가 「1」이 아니고, 수평 방향 성분의 motion_code[r][s][0]가 「0」이 아니라는 것은, 비트 스트림 중에 motion_residual[r][s][0]을 나타내는 데이터 엘리먼트가 존재하며, 움직임 벡터의 수평 방향 성분이 존재한다는 것을 의미하기 때문에, 그 경우에는 수평 방향 성분의 motion_residual[r][s][0]을 나타내는 데이터 엘리먼트가 기술되어 있다.
계속해서, 수직방향의 motion_coder[r][s][1]를 나타내는 데이터열이, 이력 스트림으로서 기술된다. 마찬가지로 motion_residual[0][s][t] 및 motion _residual[l][s][t]의 쌍방의 비트수는 f_code[s][t]로 나타내기 때문에,
f_code[s][t]가 1이 아닐 경우에는,
motion_residual[r][s][t]가 비트 스트림 중에 존재하는 것을 나타내는 것으로 된다. motion_residual[r][s][1]가 「1」이 아니고, motion_code[r][s][1]이 「0」이 아니라는 것은, 비트 스트림 중에 motion_residual[r][s][1]을 나타내는 데이터 엘리먼트가 존재하고, 움직임 벡터의 수직 방향 성분이 존재하는 있는 것을 의미하기 때문에, 그 경우에는 수직 방향 성분의 motion_residual[r][s][1]을 나타내는 데이터 엘리먼트가 기술되어 있다.
다음에, 도 65 내지 도 67을 참조하여, macroblock_type에 관해서 설명한다. macroblock_type는 macroblock_quant, dct_type_flag, macroblock_motion_forward, 및 macroblock_motion_backward 등의 플래그로부터 생성된 가변 길이 데이터이다. macroblock_quant는 매크로 블록에 대하여 양자화 스텝 사이즈를 설정하기 위한 macroblock_quantiser_scale_code가 설정되어 있는지의 여부를 나타내는 플래그로서, 비트 스트림 중에 macroblock_quantiser_scale_code가 존재할 경우에는 macroblock_quant는 「1」의 값을 갖는다.
dct_type_flag는 참조 매크로 블록이 프레임 DCT 또는 필드 DCT로 부호화되어 있는지의 여부를 나타내는 dct_type가 존재하는지의 여부를 나타내기 위한 플래그(다시 말하면, DCT로 되어 있는지의 여부를 나타내는 플래그)로서, 비트 스트림 중에 dct_type가 존재할 경우에는 상기 dct_type_flag는 「1」의 값을 갖는다.
macroblock_motion_forwrard는 참조 매크로 블록이 전방 예측되어 있는지의 여부를 나타내는 플래그로서, 전방 예측되어 있는 경우에는 「1」의 값을 갖는다.
macroblock_motion_backward는 참조 매크로 블록이 후방 예측되어 있는지의 여부를 나타내는 플래그로서, 후방 예측되어 있는 경우에는 「1」의 값을 갖는다.
또한, 가변 길이 포맷에 있어서는 전송하는 비트율을 감소시키기 위해서, 이력 정보를 삭감할 수 있다.
즉, macroblock_type와 motion_vectors()은 전송하지만,
quantiser_scale_code를 전송하지 않을 경우에는 slice_quantiser_scale_code를 "00000"로 함으로써, 비트율을 감소시킬 수 있다.
또한, macroblock_type만 전송하고, motion_vectors(),
quantiser_scale_code, 및 dct_type를 전송하지 않을 경우에는
macroblock_type로서, "not coded"를 사용함으로써, 비트율을 감소할 수 있다.
또한, picture_coding _type만 전송하고, slice() 이하의 정보는 모두 전송하지 않은 경우에는 slice_start_code를 갖지 않은 picture_data()를 사용함으로써, 비트율을 감소시킬 수 있다.
이상에 있어서는 user_data 내의 23 비트의 연속하는 "0"이 나가지 않도록 하는 경우에, 22 비트마다 "1"을 삽입하도록 하였지만, 22 비트마다가 아니어도 된다. 또한, 연속하는 "0"의 개수를 세어 "1"을 삽입하는 것이 아니고, Byte_allign을 조사하여 삽입하도록 하는 것도 가능하다.
또한, MPEG에 있어서는 23 비트의 연속하는 "0"의 발생을 금지하고 있지만, 실제로는 바이트의 선두로부터 23 비트 연속하는 경우만이 문제가 되고, 바이트의 선두가 아니라, 도중에서 0이 23 비트 연속하는 경우는 문제가 되지 않는다. 따라서, 예를 들면 24 비트마다, LSB 이외의 위치에 "1"을 삽입하도록 하여도 된다.
또한, 이상에 있어서는 이력 정보를, 비디오 엘러멘트리 스트림(video elementary stream)에 가까운 형식으로 하였지만, 패킷화된 엘러멘트리 스트림(packetized elementary stream)이나 트랜스포트 스트림(transport stream)에 가까운 형식으로 하여도 된다. 또한, 엘러멘트리 스트림(Elementary stream)의 user_data의 장소를, picture_data의 앞으로 하였지만, 다른 장소로 할 수도 있다.
도 15에 있어서 설명한 트랜스코더(101)는 복수 세대의 부호화 파라미터를 이력 정보로서 후단의 프로세스에 제공하도록 하였지만, 실제로는 상술한 이력 정보의 모두가 필요하게 되는 것은 아니다. 예를 들면, 비교적 기억 용량에 제한이 없는 대용량의 기록 매체를 구비한 기록 재생 시스템이, 상기 트랜스코더의 후단에 접속되어 있는 경우에는 부호화 파라미터 내에 상술한 모든 이력 정보가 기술되어 있어도 문제는 없지만, 비교적 기억 용량이 작은 기록 매체를 구비한 기록 재생장치가, 상기 트랜스코더의 후단에 접속되어 있는 경우에는 부호화 스트림의 데이터 율을 조금이라도 저감하기 위해서, 부호화 파라미터 중에 상술한 모든 이력 정보를 기술하는 것이 아니라, 필요한 이력 정보를 기술하는 것이 바람직하다. 또한, 다른 예로서, 비교적 전송 용량에 제한이 없는 대용량의 전송 용량을 갖는 전송로가, 상기 트랜스코더의 후단에 접속되어 있는 경우에는 부호화 파라미터 중에 상술한 모든 이력 정보가 기술되어 있어도 문제는 없지만, 비교적 전송 용량이 적은 전송로가, 상기 트랜스코더의 후단에 접속되어 있는 경우에는 부호화 스트림의 데이터 율을 조금이라도 저감하기 위해서, 부호화 파라미터 중에 상술한 모든 이력 정보를 기술하는 것이 아니라, 필요한 이력 정보를 기술하는 것이 바람직하다.
본 발명의 특징적인 점은, 트랜스코딩 장치의 후단에 접속되는 여러 가지인 애플리케이션의 각각에 필요한 이력 정보를, 애플리케이션에 따라서 적응적으로 또한 선택적으로, 부호화 스트림 내에 기술하는 것이다. 이것을 실현하기 위해서, 본 실시예에서는 부호화 스트림 중에, re_coding _stream_info라는 정보를 기술하고 있다.
이하에, 도 68을 참조하여, re_coding _stream_info의 신택스 및 데이터 엘리먼트에 관해서 상세하게 설명한다.
도 68에 도시한 바와 같이, re_coding _stream_info의 함수는
user_data_start_code, re_coding _stream_info_ID, red_bw_flag,
red_bw_indicator, marker_bit, num_other_bits, num_mv_bits, num_coef_bits 등의 데이터 엘리먼트로 구성된다.
user_data_start_code는 user_data가 개시하는 것을 나타내는 스타트 코드이다. re_coding _stream_info_ID는 16 비트의 정수이고,
re_coding _stream_info() 함수의 식별을 위해 사용된다. 그 값은, 구체적으로는 "1001 0001 1110 1100"(0 x 91ec)으로 된다.
red_bw_flag는 1 비트의 플래그이며, 모든 이력 정보에 관한 코딩 파라미터를 전송하는 경우에는 0으로 되고, 이력 정보에 관한 코딩 파라미터가 선택적으로 전송하는 경우에는 1로 된다. 구체적으로는 도 69에 도시한 바와 같이, red_bw_flag가 1인 경우, 상기 플래그에 계속되는 red_bw_indicator를 조사함으로써, 5개의 데이터 세트 중 어떤 데이터 세트를 사용하여 이력 정보에 관한 코딩 파라미터가 보내지고 있는지를 결정할 수 있다. 상기 데이터 세트는 history_stream()으로서, 재부호화된 부호화 스트림과 함께 전송되는 코딩 파라미터의 조합을 결정하기 위한 정보이다. 따라서, 상기 데이터 세트에 따라서, 부호화 스트림 내에 기술되는 코딩 파라미터가 선택된다.
red_bw_indicator는 2 비트의 정수이고, 코딩 파라미터의 데이터 세트를 정의하기 위한 인디케이터이다. 구체적으로는 도 69에 도시한 바와 같이, red_bw_indicator는 데이터 세트 2 내지 데이터 세트 5 중, 어떤 데이터 세트를 나타내는지를 나타내는 데이터이다.
따라서, 부호화 스트림 내에 기술되어 있는 상기 red_bw_flag와
red_bw_indicator를 참조함으로써, 5개의 데이터 세트 중 어떤 데이터 세트를 사용하여 이력 정보에 관한 코딩 파라미터가 보내지고 있는지를 결정할 수 있다.
다음에, 도 70을 참조하여, 각 데이터 세트에 있어서, 이력 정보에 관해서 어떠한 코딩 파라미터가 전송될 것인지에 대하여서 설명한다.
이력 정보는 크게 구별하면, 픽처(picture) 단위의 정보와, 매크로블록(macroblock) 단위의 정보로 분류할 수 있다. 슬라이스(slice) 단위의 정보는 그것에 포함되는 매크로블록(macroblock)의 정보를 수집함으로써 얻을 수 있고, G0P 단위의 정보는 그것에 포함되는 픽처(picture) 단위의 정보를 수집함으로써 얻을 수 있다.
픽처(picture) 단위의 정보는 1 프레임마다 1회 전송될 뿐이기 때문에, 부호화 스트림 중에 삽입되는 이력 정보에 대하여 차지하는 비트율은 그다지 크지는 않다. 이에 반해, 매크로블록(macroblock) 단위의 정보는 각 매크로블록(macroblock) 마다 전송되기 때문에, 예를 들면 1 프레임의 주사선 수가 525개이고, 필드율이 60 필드/초의 비디오 시스템에 있어서, 1 프레임의 화소수를 720×480으로 하면, 매크로블록(macroblock) 단위의 정보는 1 프레임당 1350(=(720/16)×(480/16))회 전송하는 것이 필요하게 된다. 따라서, 이력 정보의 상당 부분이 매크로블록(macroblock)마다의 정보로 차지하게 된다.
그래서, 본 실시예에 있어서는 부호화 스트림 중에 삽입되는 이력 정보로서는 적어도 픽처(picture) 단위의 정보는 항상 전송하지만, 매크로블록(macroblock) 단위의 정보는 애플리케이션에 따라서 선택하여 전송하도록 함으로써, 전송하는 정보량을 억제할 수 있다.
도 70에 도시한 바와 같이, 이력 정보로서 전송되는 매크로블록(macroblock) 단위의 정보에는 예를 들면 num_coef_bits, num_mv_bits, num_other_bits, q_scale_code, q_scale_type, motion_type, mv_vert_fie1d_sel[][], mv[][][], mb_mfwd, mb_mbwd, mb_pattern, code_block_pattern, mb_intra, slice_start, dct_type, mb_quant, skipped_mb 등이 있다. 이들은, SMPTE-327M에 있어서 정의되어 있는 macroblock_rate_information의 요소를 사용하여 표현된 것이다.
num_coef_bits는 매크로블록(macroblock)의 부호량 중, DCT 계수에 요한 부호량을 나타낸다. num_mv_bits는 매크로블록(macroblock)의 부호량 중, 움직임 벡터에 요한 부호량을 나타낸다. num_other_bits는 매크로블록(macroblock)의 부호량 중, num_coef_bits 및 num_mv_bits 이외의 부호량을 나타낸다.
q_scale_code는 매크로블록(macroblock)에 적용된 q_scale_code를 나타낸다.
motion_type는 매크로블록(macroblock)에 적용된 움직임 벡터의 type를 나타낸다.
mv_vert_field_sel[][]은, 매크로블록(macroblock)에 적용된 움직임 벡터의 field select를 나타낸다.
mv[][][]는 매크로블록(macroblock)에 적용된 움직임 벡터를 나타낸다. mb_mfwd는
매크로블록(macroblock)의 예측 모드가 전방향 예측인 것을 나타내는 플래그이다. mb_mbwd는 매크로블록(macroblock)의 예측 모드가 후방향 예측인 것을 나타내는 플래그이다.
mb_pattern은, 매크로블록(macroblock)의 DCT 계수가 비 O인 것의 유무를 나타내는 플래그이다.
coded_block_pattern은, 매크로블록(macroblock)의 DCT 계수가 비0인 경우의 유무를 DCT 블록마다 나타내는 플래그이다. mb_intra는 매크로블록(macroblock)이 intra_macro인지 그렇지 않는지를 나타내는 플래그이다. slice_start는, 매크로블록(macroblock)이 슬라이스(slice)의 선두인지의 여부를 나타내는 플래그이다. dct_type는 매크로블록(macroblock)이 field_dct인지 flame_dct인지를 나타내는 플래그이다.
mb_quant는 매크로블록(macroblock)이 quantiser_scale_code를 전송할 것인지의 여부를 나타내는 플래그이다. skipped_mb는 매크로블록(macroblock)이 스킵된 매크로블록(skipped macroblock)인지의 여부를 나타내는 플래그이다.
이들의 코딩 파라미터는 항상 모두 필요한 것이 아니라, 트랜스코더의 후단에 접속된 애플리케이션에 따라서, 필요하게 되는 코딩 파라미터가 변화한다. 예를 들면, num_coef_bits나 slice_start와 같은 코딩 파라미터는 재인코딩했을 때의 비트 스트림을 가능한 한 원래의 형태로 되돌리고 싶다고 하는 트랜스패런트(transparent)와 같은 요구를 갖는 애플리케이션에 있어서 필요하게 된다. 여기서, 「트랜스패런트(transparent)라고 하는 요구」란 입력 비트 스트림에 대하여 화질이 열화하지 않는 출력 비트 스트림을 생성하는 것이 가능하게 되는 요구이다.
즉, 트랜스코딩 처리에 의해, 비트율의 변경만을 요구하게 되는 애플리케이션에 있어서는 이들의 num_coef_bits나 slice_start와 같은 코딩 파라미터는 필요하지 않다. 또한, 대단히 전송로의 제한이 엄격한 경우에는 각 픽처의 부호화 형태만을 필요로 하게 되는 애플리케이션도 존재한다.
이러한 상황을 감안하여, 본 실시예에 있어서는 이력 정보를 전송했을 때의, 코딩 파라미터의 데이터 세트의 예로서, 예를 들면 도 70에 도시한 바와 같은 데이터 세트를 준비하고 있다.
도 70에 있어서, 각 데이터 세트의 중의 코딩 파라미터에 대응하는 값 「2」은, 그 정보가 이력 정보로서 부호화 스트림 중에 존재하고, 이용 가능한 것을 의미하고, 「0」은 그 정보가 부호화 스트림 중에 존재하지 않는 것을 의미한다. 「1」은, 다른 정보의 존재를 보조하는 목적을 위해, 또는, 신택스상 존재하지만, 원래의 비트 스트림 정보와는 관계가 없는 등, 그 정보 자체에는 의미가 없음을 나타내고 있다. 예를 들면, slice_start는 이력 정보를 전송했을 때의 슬라이스(slice)의 선두의 매크로블록(macroblock)에 있어서, 「1」이 되지만, 원래의 비트 스트림에 대하여, 슬라이스(slice)가 반드시 동일 위치 관계에 있는 것이 아닌 경우에는 이력 정보로서는 무의미하게 된다.
본 실시예에 있어서는 선택된 데이터 세트에 따라서, (num_coef_bits, num_mv_bits, num_other_bits), (q_scale_code, q_scale_type),
(motion_type, mv_vert_field_sel[][], mv[][][]), (mb_mfwd, mb_mbwd), (mb_pattern), (coded_block_pattern), (mb_ intra), (slice_start), (dct_type), (mb_quant), (skipped_mb)의 각 코딩 파라미터가, 선택적으로 부호화 스트림 내에 기술된다.
데이터 세트(1)는 완전히 트랜스패런트(transparent)한 비트 스트림을 재구성하는 것을 목적으로 하는 데이터 세트이다. 상기 데이터 세트(1)에 의하면, 입력 비트 스트림에 대하여 화질 열화가 거의 없는 출력 비트 스트림을 출력할 수 있는 정밀도가 높은 트랜스코딩이 실현된다. 데이터 세트(2)도, 완전히 트랜스패런트(transparent)한 비트 스트림을 재구성하는 것을 목적으로 한 데이터 세트이다. 데이터 세트(3)는 완전히 트랜스패런트(transparent)한 비트 스트림을 재구성할 수 없지만, 시각적으로 거의 트랜스패런트(transparent)한 비트 스트림을 재구성할 수 있도록 하기 위한 데이터 세트이다. 데이터 세트(4)는 트랜스패런트(transparent)라는 관점에서는 데이터 세트(3)보다도 떨어지지만, 시각상 문제가 없는 비트 스트림의 재구성이 가능한 데이터 세트이다. 데이터 세트(5)는 트랜스패런트(transparent)라는 관점에서는 데이터 세트(4)보다도 떨어지지만, 적은 이력 정보로 비트 스트림이 완전하지 않는 재구성이 가능한 데이터 세트이다.
이들의 데이터 세트 중, 데이터 세트의 번호가 작은 것일 수록, 기능적으로는 상위이지만, 이력 정보를 전송하는 데 필요하게 되는 용량이 많아진다. 따라서 상정하는 애플리케이션과 이력 정보에 사용할 수 있는 용량을 고려함으로써, 전송하는 데이터 세트가 결정된다.
도 70에 도시한 5개의 데이터 세트 중, 데이터 세트(1)인 경우,
red_bw_f1ag는 0으로 되고, 데이터 세트(2 내지 5)일 때,
red_bw_flag는 1로 된다. 이것에 대하여, red_bw_indicator는 데이터 세트(2)인 경우 0으로 되고, 데이터 세트(3)인 경우 1로 되고, 데이터 세트(4)인 경우 2로 되며, 데이터 세트(5)인 경우 3으로 된다.
따라서, red_bw_indicator는 red_bw_flag가 1인 경우(데이터 세트(2 내지 5)인 경우에)에 규정된다.
또한, red_bw_flag가 0인 경우(데이터 세트(1)인 경우), 매크로 블록마다, marker_bit, num_other_bits, num_mv_bits, num_coef_bits가 기술된다. 이들 4개의 데이터 엘리먼트는 데이터 세트(2 내지 5)인 경우(red_bw_flag가 1인 경우), 부호화 스트림 중에는 기술되지 않는다.
데이터 세트(5)인 경우, picture_data() 함수(도 59 참조)를 포함해서, 그 이하의 신택스 요소는 전송되지 않는다. 즉, picture_data() 함수에 포함되는 복수의 slice() 함수(도 60 참조)에 관한 부호화 파라미터는 전혀 전송되지 않는다. 따라서, 데이터 세트(5)인 경우, 선택된 이력 정보는 picture_type 등의 픽처(picture) 단위의 코딩 파라미터만의 전송을 의도한 것으로 된다.
데이터 세트(1 내지 4)인 경우, picture_data()함수에 포함되는 복수의 slice()함수에 관한 부호화 파라미터가 존재한다. 그렇지만, 상기 slice()함수에 의해서 결정되는 슬라이스(slice)의 어드레스 정보와, 원래의 비트 스트림의 슬라이스(slice)의 어드레스 정보는 선택된 데이터 세트에 의존한다. 데이터 세트(1) 또는 데이터 세트(2)인 경우, 이력 정보의 기본이 된 비트 스트림의 슬라이스(slice)의 어드레스 정보와, slice()함수에 의해서 결정되는 슬라이스(slice)의 어드레스 정보와는, 동일할 필요가 있다.
macroblock() 함수의 신택스 요소(도 61 참조)는 선택된 데이터 세트에 의존한다. macroblock_escape, macroblock_address_increment,
macroblock_modes() 함수는 항상 부호화 스트림 중에 존재한다. 그렇지만, macroblock_escape와 macroblock_address_increment의 정보로서의 유효성은, 선택된 데이터 세트에 의해서 결정된다. 이력 정보에 관한 코딩 파라미터의 데이터 세트가, 데이터 세트(1) 또는 데이터 세트(2)인 경우, 원래의 비트 스트림의 skipped_mb 정보와 같은 것이 전송될 필요가 있다.
데이터 세트(4)인 경우, motion_vectors() 함수는 부호화 스트림 중에는 존재하지 않는다. 데이터 세트(1 내지 3)인 경우, macroblock_modes() 함수의 macroblock_type에 의해서, motion_vectors() 함수의 부호화 스트림 중에 있어서의 존재가 결정된다. 데이터 세트(3) 또는 데이터 세트(4)인 경우에는
coded_block_pattern() 함수는 부호화 스트림 중에는 존재하지 않는다. 데이터 세트(1)와 데이터 세트(2)인 경우, macroblock_modes() 함수의 macroblock_type에 의해서, coded_block_pattern() 함수의 부호화 스트림 중에 있어서의 존재가 결정된다.
macroblock_modes() 함수의 신택스 요소(도 62 참조)는 선택된 데이터 세트에 의존한다. macroblock_type는 항상 존재한다. 데이터 세트(4)인 경우, flame_motion_type, field_motion_type, dct_type는 부호화 스트림 중에는 존재하지 않는다.
macroblock_type로부터 얻어지는 파라미터의 정보로서의 유효성은, 선택된 데이터 세트에 의해서 결정된다.
데이터 세트(1) 또는 데이터 세트(2)인 경우, macroblock_quant는, 원래의 비트 스트림의 macroblock_quant와 같을 필요가 있다. 데이터 세트(3) 또는 데이터 세트(4)인 경우, macroblock_quant는 macroblock() 함수내의 quantiser_scale_code의 존재를 나타내고, 원래의 비트 스트림과 같을 필요는 없다.
데이터 세트(1 내지 3)인 경우, macroblock_motion_forward와 macroblock_motion_backward는 원래의 비트 스트림과 동일할 필요가 있다. 데이터 세트가 데이터 세트(4) 또는 데이터 세트(5)인 경우, 그럴 필요는 없다.
데이터 세트(1) 또는 데이터 세트(2)인 경우, macroblock_pattern은, 원래의 비트 스트림과 동일할 필요가 있다. 데이터 세트(3)인 경우,
macroblock_pattern은, dct_type의 존재를 나타내는 데에 사용된다. 데이터 세트(4)인 경우, 데이터 세트(1 내지 3)에 있어서의 경우와 같은 관계는 성립하지 않는다.
이력 정보의 코딩 파라미터의 데이터 세트가 데이터 세트(1 내지 3)인 경우, macroblock_intra는 원래의 비트 스트림과 동일할 필요가 있다. 데이터 세트(4)인 경우에는 한정되지 않는다.
다음에, 데이터 세트에 관한 정보를 포함하고 있는 부호화 스트림에 대한 트랜스코더(101)의 처리 및, 설치된 데이터 세트에 기초하여, 부호화 스트림을 생성하는 트랜스코더(101)의 처리에 관해서, 도 15에 도시한 트랜스코더(101)를 참조하여 설명한다.
상기 도 15에 도시한 트랜스코더의 예는 제 3 세대의 인코드 처리에 의해서 생성된 부호화 스트림(ST)(3rd)을 수취하고, 상기 부호화 스트림(ST)(3rd)의 GOP 구조 또는/및 비트율을 변환한 새로운 부호화 스트림(ST)(4th)을 생성하기 위한 예이다.
우선 처음에, 복호 장치(102)는 제 3 세대의 부호화 스트림(ST)(3rd)을 부호화했을 때에 사용한 제 3 세대의 코딩 파라미터(3th)를, 제 3 세대의 부호화 스트림(ST)(3rd)으로부터 추출하여, 상기 추출한 부호화 파라미터에 기초하여, 부호화 스트림(ST)(3rd)을 디코드하고, 베이스 밴드 비디오 신호를 생성한다. 또한, 복호 장치(102)는 추출한 제 3 세대의 코딩 파라미터(3th)를, 히스토리 정보 다중화 장치(103)에 출력한다. 또한, 복호 장치(102)는 제 3 세대의 부호화 스트림(ST)(3rd)의 픽처 레이어로부터 user_data()를 추출하여, 그 user_data()히스토리 디코딩 장치(104)에 공급한다.
히스토리 디코딩 장치(104)는 복호 장치(102)로부터 공급된
user_data()로부터 history_stream()을 추출한다. 상기 history_stream()은 가변 길이 부호화되어 있는 데이터 엘리먼트로 이루어지는 스트림이기 때문에, 히스토리 디코딩 장치(104)는 history_stream()에 대하여 가변 길이 복호화 처리를 실시한다. 그 결과, 각각이 소정의 데이터 길이를 갖는 데이터 엘리먼트로 이루어지는 스트림을 생성할 수 있다. 다음에, 히스토리 디코딩 장치(104)는 가변 길이 복호화 한 데이터 스트림의 신택스를 퍼싱(parsing). 또한, 퍼싱이란, 스트림의 구문을 해석하는 것이다.
상기 퍼싱 처리를 행할 때, 히스토리 디코딩 장치(104)는
history_stream() 함수내의 re_coding _stream_info() 함수 내에 기술되어 있는 red_bw_flag와 red_bw_indicator를 참조한다. 히스토리 디코딩 장치(104)는 스트림 중에서 추출한 red_bw_flag와 red_bw_indicator를 참조함으로써, 받아들인 history_stream()에 대하여, 5개의 데이터 세트 중, 어떤 데이터 세트가 설정되어 있는 가를 판단한다. 이로써, 히스토리 디코딩 장치(104)는 red_bw_flag와 red_bw_indicator에 의해서 데이터 세트의 종류를 결정함으로써, 어떤 코딩 파라미터가 history_stream()에 포함되어 있는가를 알 수 있다.
구체적으로는 red_bw_flag=0인 경우에는 데이터 세트(1)이기 때문에, history_stream()중에는 picture_data()함수로서, num_coef_bits,
num_mv_bits, num_other_bits, q_scale_code, q_scale_type, motion_type, mv_vert_field_sel[][], mv[][][], mb_mfwd, mb_mbwd, mb_pattern,
coded_block_pattern, mb_intra, slice_start, dct_type, mb_quant,
skipped_mb 등의 모든 코딩 파라미터가 기술되어 있다.
red_bw_flag=1 또는 red_bw_indicator=0인 경우에는 데이터 세트(2)이기 때문에, history_stream()중에는 picture_data()함수로서,
q_scale_code, q_scale_type, motion_type, mv_vert_field_sel[][], mv[][][], mb_mfwd, mb_mbwd, mb_pattern, coded_block_pattern, mb_intra,
slice_start, dct_type, mb_quant, skipped_mb 등의 코딩 파라미터가 기술되어 있다.
red_bw_flag=1 또는 red_bw_indicator=1인 경우에는 데이터 세트(3)이기 때문에, history_stream()중에는 picture_data()함수로서,
q_scale_code, q_scale_type, motion_type, mv_vert_field_sel[][], mv[][][], mb_mfwd, mb_mbwd, mb_pattern, mb_intra, slice_start, dct_type,
mb_quant, skipped_mb 등의 코딩 파라미터가 기술되어 있다.
red_bw_flag=1 또는 red_bw_indicator=2인 경우에는 데이터 세트(4)이기 때문에, history_stream()중에는 picture_data()함수로서,
q_scale_code, q_scale_type의 코딩 파라미터가 기술되어 있다.
red_bw_ flag=1 또한 red_bw_indicator=3인 경우에는 데이터 세트(5)이기 때문에, history_stream()중에는 picture_data()함수로서, 어떤 코딩 파라미터도 기술되어 있지 않다.
히스토리 디코딩 장치(104)는 red_bw_f1ag와 red_bw_indicator의 정보를 참조함으로써, history_stream()중에 포함되어 있는 코딩 파라미터를, history_stream()중에서 추출한다. 도 15에 도시한 트랜스코더의 실시예에 있어서는 상기 히스토리 디코딩 장치(104) 트랜스코더에 공급된 입력 부호화 스트림은, 제 3 세대의 부호화 처리에 의해서 생성된 부호화 스트림이기 때문에, 출력되는 이력 정보는 제 1 세대의 코딩 파라미터와 제 2 세대의 코딩 파라미터이다.
히스토리 정보 다중화 장치(103)는 복호 장치(102)로부터 공급되는 제 3 세대의 부호화 파라미터(3th)와, 히스토리 디코딩 장치(104)로부터 공급되는 과거의 코딩 파라미터(1st, 2nd)를, 복호 장치(102)로부터 공급되는 베이스 밴드의 비디오 데이터에, 도 68 내지 도 73에 도시한 바와 같은 포맷에 따라서 다중화한다.
히스토리 정보 분리 장치(105)는 히스토리 정보 다중화 장치(103)로부터 공급된 베이스 밴드 비디오 데이터를 수취하고, 상기 베이스 밴드 비디오 데이터로부터 제 1 , 제 2 및 제 3 세대의 코딩 파라미터(1st, 2nd, 3rd)를 추출하여, 부호화 장치(106)에 공급한다.
부호화 장치(106)는 히스토리 정보 분리 장치(105)로부터 베이스 밴드 비디오 데이터와 코딩 파라미터(1st, 2nd, 3rd)를 수취하고, 받아들인 코딩 파라미터에 기초하여 베이스 밴드 비디오 데이터를 재부호화한다. 이 때, 부호화 장치(106)는 과거의 부호화 처리에 있어서 생성된 코딩 파라미터(lst, 2nd, 3rd)와, 공급된 베이스 밴드 비디오 데이터로부터 새롭게 생성된 코딩 파라미터로부터, 부호화 처리에 적합한 코딩 파라미터를 선택한다. 부호화 장치(106)는 공급된 베이스 밴드 비디오 데이터로부터 새롭게 생성된 코딩 파라미터를 사용하여 부호화 처리를 행하는 경우에는 부호화 장치(106)는 상술한 「통상 부호화 처리」를 행하고, 부호화 장치(106)는 과거의 코딩 파라미터(1st, 2nd, 3rd) 중에서 어느 하나의 코딩 파라미터를 재이용하는 경우에는 상술한 파라미터 재이용 부호화 처리」를 행한다.
네트워크 상에 설치된 컴퓨터(100)는 복호화 장치(102)의 디코딩 처리 및 부호화 장치(106)의 인코딩 처리를 컨트롤하기 위한 장치이다. 예를 들면, 부호화 장치(106)로부터 출력되는 부호화 스트림을 전송하기 위한 전송로의 용량을 검출하여, 그 전송 용량에 따라서 적절한 데이터 세트를, 상술한 5개의 데이터 세트 중에서 선택한다. 또한, 부호화 장치(106)의 출력단에 접속되어 있는 장치의 기억 용량을 검출하여, 그 기억 용량에 따라서 적절한 데이터 세트를, 상술한 5개의 데이터 세트 중에서 선택한다.
부호화 장치(106)는 컴퓨터(100)로부터 데이터 세트를 나타내는 정보를 수취하고, 그것에 기초하여 red_bw_f1ag 및 red_bw_indicator를 생성한다. 컴퓨터(100)로부터 주어진 정보가 데이터 세트(1)인 경우에는 red_bw_flag=0이 되고, 데이터 세트(2)인 경우에는 red_bw_flag=1 또한,
red_bw_indicator=0이 되고, 데이터 세트(3)인 경우에는 red_bw_flag=1 또한 red_bw_indicator=1이 되고, 데이터 세트(4)인 경우에는 red_bw_flag=1 또한 red_bw_indicator=2가 되고, 데이터 세트(5)인 경우에는 red_bw_f1ag=1 또한 red_bw_indicator=3이 된다.
부호화 장치(106)는 결정된 red_bw_flag의 값 및 red_bw_indicator의 값에 따라서, history_stream()으로서, 부호화 스트림 내에 기술하는 코딩 파라미터를 선택하여, 선택한 코딩 파라미터를 history_stream()으로서 부호화 스트림 내에 기술함과 동시에, red_bw_flag 및 red_bw_indicator를 re_coding _stream_info()으로서 부호화 스트림 내에 기술한다. 한편, history_stream()으로서 전송되는 코딩 파라미터의 선택 처리는 제 1 세대, 제 2 세대 및 제 3 세대의 과거의 코딩 파라미터에 대하여, 각기 행하여지는 처리이다.
부호화 장치(106)는 red_bw_flag=0인 경우에는 history_stream() 중에는 picture_data()함수로서, num_coef_bits, num_my_bits, num_other_bits, q_scale_code, q_scale_type, motion_type, mv_vert_field_sel[][], mv[][][], mb_mfwd, mb_mbwd, mb_pattern, coded_block_pattern, mb_intra,
slice_start, dct_type, mb_quant, skipped_mb 등의 모든 코딩 파라미터를 부호화 스트림 내에 기술한다.
부호화 장치(106)는 red_bw_f1ag=1 또한 red_bw_indicator=0인 경우에는 history_stream() 중에는 picture_data()함수로서, q_scale_code,
q_scale_type, motion_type, mv_vert_field_sel[][], mv[][][]. mb_mfwd, mb_mbwd, mb_pattern, coded_block_pattern, mb_intra, slice_start,
dct_type, mb_quant, skipped_mb의 코딩 파라미터를 부호화 스트림 내에 기술한다.
부호화 장치(106)는 red_bw_f1ag=1 또한 red_bw_indicator=1인 경우에는 history_stream()중에는 picture_data()함수로서, q_scale_code,
q_scale_type, motion_type, mv_vert_field_sel[][], mv[][][], mb_mfwd, dct_mbwd, mb_pattern, mb_intra, slice_start, dct_type, mb_quant, skipped_mb의 코딩 파라미터를 부호화 스트림 내에 기술한다.
부호화 장치(106)는 red_bw_flag=1 또한 red_bw_indicator=2인 경우에는 history_stream() 중에는 picture_data()함수로서, q_scale_code, q_scale_type의 코딩 파라미터를 부호화 스트림 내에 기술한다.
부호화 장치(106)는 red_bw_flag=1 또한 red_bw_indicator=3인 경우에는 history_stream()중에는 picture_data()함수로서, 어떤 코딩 파라미터도 부호화 스트림 내에 기술하지 않는다.
즉, 부호화 장치(106)는 공급된 과거의 코딩 파라미터의 모두를 history_stream()으로서 전송하는 것이 아니고, 컴퓨터(100)로부터 지정된 데이터 세트를 나타내는 정보에 기초하여, history_stream()으로서 전송되는 코딩 파라미터를 선택한다. 따라서, 부호화 장치(105)는 받아들인 데이터 세트를 나타내는 정보에 기초하여, 여러 가지 데이터 용량의 history_stream()을 포함한 부호화 스트림을 생성할 수 있다. 또한, 부호화 장치(105)는 부호화 장치(105)의 후단에 접속되는 전송 미디어의 전송 용량, 기록 미디어의 기억 용량 또는 애플리케이션에 적당한 적절한 데이터로 이루어지는 history_stream()을 포함한 부호화 스트림을 생성할 수 있다. 또한, 본 실시예의 트랜스코더에 의하면, 이와 같이 history_stream()으로서 전송하는 부호화 파라미터를, 부호화 장치의 후단에 접속되는 애플리케이션에 따라서, 선택하도록 하고 있기 때문에, 애플리케이션에 따른 이력을 알맞은 데이터량으로 전송하도록 할 수 있다.
다음에, 도 71 내지 도 74를 참조하여, 이들의 이력 정보를, 히스토리 정보 다중화 장치(103)가 출력하는 베이스 밴드 비디오 신호에 다중하여 전송하는 포맷에 관해서 설명한다.
도 71은 베이스 밴드 비디오 신호에 다중하여 전송하는 포맷「Re_Coding information Bus macroblock format」을 도시한 도이다. 상기 매크로 블록은 16×16(=256) 비트로 구성된다. 그리고, 그 중의 도 71에 있어서 위에서 3행째와 4행째에 나타내는 32 비트가, picrate_element로 된다. 상기 picrate_element에는 도 72 내지 도 74에 도시한 Picture rate elements가 기술된다. 도 72의 위에서 2행째에 1 비트의 red_bw_f1ag가 규정되어 있고, 또한, 3행째에 3비트의 red_bw_indicator가 규정되어 있다. 즉, 이들의 플래그 red_bw_flag, red_bw_indicator는 도 71의 picrate_element로서 전송된다.
도 71의 그 밖의 데이터에 관해서 설명하면, SRIB_sync_code는 상기 포맷의 매크로 블록의 최초의 행이 왼쪽이 채워져 얼라인먼트되어 있는 것을 나타내는 코드이고, 구체적으로는 "11111"에 설치된다. fr_fl_SRIB는 picture_structure가 프레임 픽처 구조인 경우(그 값이 "11"인 경우), 1로 설정되고, Re_Coding Information Bus macroblock이 16라인을 초과하여 전송되는 것을 나타내며, picture_structure가 프레임 구조가 아닌 경우, 0으로 설정되고, Re_Coding Information Bus가 16라인을 초과하여 전송되는 것을 의미한다. 이 기구에 의해, Re_Coding Information Bus가, 공간적이며 또한 시간적으로 디코드된 비디오 프레임 또는 필드의 대응하는 화소에 기록된다.
SRIB_top_field_first는 원래의 비트 스트림에 유지되어 있는 top_field_first와 동일 값으로 설정되고, 관련하는 비디오의 Re_Coding Information Bus의 시간적 얼라인먼트를 repeat_first_field와 동시에 나타내고 있다. SRIB_repeat_first_fie1d는 원래의 비트 스트림에 유지되어 있는 repeat_first_field와 동일 값으로 설치된다. first fie1d의 Re_Coding Information Bus의 내용은, 상기 플래그에 도시한 바와 같이 반복될 필요가 있다.
422_420_chroma는 원래의 비트 스트림이 4:2:2 또는 4:2:0 중 어느 하나를 나타낸다. 그 값의 0은 비트 스트림이 4:2:0이고, 색차 신호의 업샘플링이, 4:2:2의 비디오가 출력되도록 행하여진 것을 나타낸다. 그 값의 0은 색차 신호의 필터링 처리가 실행되지 않은 것을 나타낸다.
rolling_SRIB_mb_ref는 16 비트의 모듈로 65521을 나타내고, 이 값은, 매 매크로 블록마다 인클리먼트된다. 이 값은, 프레임 픽처 구조의 프레임에 걸쳐 연속하고 있을 필요가 있다. 그렇치 않으면, 이 값은, 필드에 걸쳐 연속하고 있을 필요가 있다. 이 값은, 0 내지 65520 사이의 소정의 값으로 초기화된다. 이것에 의해, 레코더의 시스템에, 유니크 Re_Coding Information Bus의 식별자를 조립하는 것이 허용된다.
Re_Coding Information Bus macroblock의 그 밖의 데이터의 의미는 상술한 바와 같기 때문에, 여기서는 생략한다.
도 75에 도시한 바와 같이, 도 71의 256 비트의 Re_Coding Information Bus의 데이터는 1 비트씩, 색차 데이터의 LSB 인 Cb[0][0], Cr[0][0],
Cb[1][0], Cr[1][0]로 배치된다. 도 75에 도시한 포맷에 의해, 4 비트의 데이터를 이송할 수 있기 때문에, 도 71의 256 비트의 데이터는 도 75의 포맷을 64(=256/4)개 이송함으로써 전송할 수 있다.
본 발명의 트랜스코더에 의하면, 과거의 부호화 처리에 있어서 생성된 부호화 파라미터를, 현재의 부호화 처리에서 재이용하도록 하고 있기 때문에, 복호 처리 및 부호화 처리를 반복하였다고 해도 화질 열화가 발생하지 않는다. 즉, 복호 처리 및 부호화 처리의 반복에 의한 화질 열화의 축적을 저감할 수 있다.
도 76과 도 77은 본 발명의 트랜스코더를 비디오 테이프 레코더에 적용한 경우의 구성예를 도시하고 있다. 도 76은 비디오 테이프 레코더(601)의 기록 시스템의 구성예를 도시하고 있고, 도 77은 비디오 테이프 레코더(601)의 재생 시스템의 구성예를 도시하고 있다.
도 76의 비디오 테이프 레코더(601)는 트랜스코더(101R), 채널 인코딩 장치(602), 기록 헤드(603)로 구성되어 있다. 트랜스코더(101R)의 구성은, 도 37에 도시한 트랜스코더와 기본적으로 같은 것으로 되어 있다. 상기 구성예에 있어서는 트랜스코더(101R)에서는 Long G0P의 비트 스트림(ST)이, Short G0P의 비트 스트림(ST)으로 변환된다.
트랜스코더(101R)의 부호화 장치(106)로부터 출력된, 제 4 세대의 부호화 스트림(ST)이, 채널 인코딩 장치(602)에 공급된다. 상술한 바와 같이, 상기 제 4 세대의 부호화 스트림(ST)의 픽처 층의 유저 데이터 영역에는 제 1 세대 내지 제 3 세대의 부호화 파라미터를 포함하는 유저 데이터 user_data가 기록되어 있다.
채널 인코딩 장치(602)는 입력된 제 4 세대의 부호화 스트림에, 에러 정정을 위한 패리티 부호를 붙인 후, 예를 들면, NRZI 변조 방식으로 채널 코드하고, 기록 레드(603)에 공급한다. 기록 레드(603)는 입력된 부호화 스트림을 자기 테이프(604)에 기록한다.
도 77에 도시한 바와 같이, 재생 시스템에서는 자기 테이프(604)로부터, 재생 헤드(611)에 의해 신호가 생성되고, 채널 디코딩 장치(612)에 공급된다. 채널 디코딩 장치(612)는 재생 헤드(611)로부터 공급된 신호를 채널 디코드하여, 패리티 를 사용하여, 에러 정정한다.
채널 디코딩 장치(612)에 의해 출력된 제 4 세대의 부호화 스트림(ST)은, 트랜스코더(101P)에 입력된다. 트랜스코더(101P)의 기본적인 구성은, 도 37에 도시한 트랜스코더와 같은 구성으로 되어 있다.
트랜스코더(101P)의 복호 장치(102)는 제 4 세대의 부호화 스트림으로부터, 제 1 세대 내지 제 3 세대의 부호화 파라미터를 포함하는 유저 데이터 user_data를 추출하여, 히스토리 디코딩 장치(104)와, 부호화 장치(106)에 공급한다. 히스토리 디코딩 장치(104)는 입력된 유저 데이터 user_data를 복호하여, 얻어진 제 1 세대 내지 제 3 부호화 파라미터를 부호화 장치(106)에 공급한다.
복호 장치(102)는 또한, 제 4 세대의 부호화 스트림(ST)을 복호하여, 베이스 밴드 비디오 신호와, 제 4 세대의 부호화 파라미터를 출력한다. 베이스 밴드 비디오 신호는 부호화 장치(106)에 공급되고, 제 4 세대의 부호화 파라미터는 부호화 장치(106)와, 히스토리 인코딩 장치(107)에 공급된다.
히스토리 인코딩 장치(107)는 입력된 제 4 세대의 부호화 파라미터를, 유저 데이터 user_data로 변환하여, 부호화 장치(106)에 공급한다.
상술한 바와 같이, 부호화 장치(106)의 컨트롤러(70)는 오퍼레이터에 의해서 지정된 G0P 구조로부터 결정된 각 픽처의 픽처 타입과, 히스토리 정보(유저 데이터 user_data)에 포함되는 픽처 타입이 일치하는지의 여부를 판단한다. 그리고 그 판단 결과에 대응하여, 상술한 「통상 부호화 처리」, 또는 「파라미터 재이용 부호화 처리」를 실행한다. 상기 처리에 의해 부호화 장치(106)로부터, Short GOP에서 Long G0P로 변환된, 제 4 세대의 부호화 스트림(ST)이 출력된다. 상기 부호화 스트림(ST)의 유저 데이터 user_data에는 제 1 세대 내지 제 4 세대의 부호화 파라미터가 히스토리 정보로서 기록되어 있다.
도 76과 도 77에 도시한 비디오 테이프 레코더(601)에 있어서는 히스토리 정보를 픽처 레이어의 user_data에 기록하도록 하였지만, 히스토리 정보는 자기 테이프(604)의 비디오 데이터와는 다른 영역에 기록하는 것도 가능하다. 도 78과 도 79는 이 경우의 비디오 테이프 레코더(601)의 구성예를 도시하고 있다. 도 78은 비디오 테이프 레코더(601)의 기록 시스템의 구성예를 도시하고 있고, 도 79는 재생 시스템의 구성예를 도시하고 있다.
도 78에 도시한 바와 같이, 상기 비디오 테이프 레코더(601)에 있어서는 그 트랜스코더(101R)의 복호 장치(102)로부터 출력된 유저 데이터 user_data가, 히스토리 디코딩 장치(104)에 입력되고, 그래서 과거의 부호화 파라미터(이 예인 경우, 제 1 세대와 제 2 세대의 부호화 파라미터)가 복호되고, 부호화 장치(106)에 공급되어 있다. 또한, 상기 예에 있어서는 자기 테이프(604)에 유저 데이터 user_data로서, 히스토리 정보를 기록할 필요가 없기 때문에, 도 15에 도시한 히스토리 인코딩 장치(107) 중, 히스토리 VLC(211)만이 채용되어 있다. 그리고 상기 히스토리 VLC(211)에, 복호 장치(102)가 출력한 부호화 파라미터(이 예인 경우, 제 3 세대의 부호화 파라미터)와, 히스토리 디코딩 장치(104)가 유저 데이터 user_data로부터 복호, 출력한 부호화 파라미터(이 예인 경우, 제 1 세대와 제 2 세대의 부호화 파라미터)가 공급되어 있다. 히스토리 VLC(211)는 상기 제 1 세대 내지 제 3 세대의 부호화 파라미터를 가변 길이 부호화하여, 도 40 내지 도 46, 또는 도 47에 도시한 history_stream을 생성하여, 멀티플렉서(621)에 공급한다.
멀티플렉서(621)에는 또한, 부호화 장치(106)로부터 출력된 제 4 세대의 부호화 스트림(ST)이 입력되어 있다. 멀티플렉서(621)는 부호화 장치(106)로부터 공급된 부호화 스트림(비트 스트림)을 히스토리 VLC(211)로부터 공급된 히스토리 보다도 안전한 영역에 다중화한다.
예를 들면, 도 80에 도시한 바와 같이, 자기 테이프(604)에 있어서, 부호화 장치(106)로부터 출력된 비디오 스트림은, 싱크 코드에 가까운 위치에 기록되고, 히스토리 VLC(211)로부터 출력된 history_stream은 싱크 코드로부터 비디오 스트림으로부터 떨어진 위치에 기록된다. 특수 재생시 등에 있어서, 비디오 스트림을 검색했을 때, 최초에 싱크 코드가 검출되고, 그 싱크 코드를 기준으로하여, 또한 계속되는 비디오 스트림이 검색된다. 따라서, 싱크 코드에 가까운 위치에 비디오 스트림을 배치한 쪽이, 고속 재생시 등에 있어서도, 보다 확실하게 비디오 데이터를 재생하는 것이 가능하게 된다. history_stream은, 고속 재생시 등에 있어서, 필요하게 되는 정보가 아니다. 그래서, 상기 history_stream은, 싱크 코드로부터보다 떨어진 위치에 배치하여도, 그다지 지장은 생기지 않는다.
멀티플렉서(621)에 의해 다중화된 신호는 채널 인코딩 장치(602)에 입력되고, 채널 코드된 후, 기록 헤드(603)에 의해, 자기 테이프(604)에 기록된다.
상기와 같이, 상기 예에 있어서는 history_stream이, 비디오 데이터와는 다른 위치에 다중화되기 때문에, 가령 그곳에 스타트 코드가 나타났다고 해도, 비디오 데이터와는 충분히 구별하는 것이 가능하다. 그래서, 상기 예에 있어서는 마커 비트를 삽입하여, history_stream을 converted_history_stream으로 할 필요는 없다.
또한, 부호화 파라미터를 history_stream의 포맷으로 하지 않고, 그대로 멀티플렉서(621)에 공급하여, 다중화시키는 것도 가능한 데이터이지만, 그와 같이 하면, 압축되어 있지 않기 때문에, 부호화 파라미터의 데이터량이 많아져, 자기 테이프(604)의 이용 효율이 저하한다. 그래서, 히스토리 VLC(211)에 의해 압축하여, history_stream의 포맷으로 하고, 다중화하도록 하는 것이 바람직하다.
도 79에 도시한 바와 같이, 비디오 테이프 레코더(601)의 재생 시스템에서는 자기 테이프(604)로부터, 재생 헤드(611)에 의해 재생된 신호가, 채널 디코딩 장치(612)에서 채널 디코드된다. 디멀티플렉서(631)는 채널 디코딩 장치(612)에서 채널 디코드된다. 디멀티플렉서(631)는 채널 디코딩 장치(612)로부터 공급된 제 4 세대의 부호화 스트림(ST)을, 비디오 스트림과, history_stream으로 분리하고, 비디오 스트림을 복호 장치(102)에 공급하고, history_stream을 히스토리 VLD(203)에 공급한다.
즉 상기 예에 있어서는 도 15에 도시한 히스토리 디코딩 장치(104) 중, 히스토리 VLD(203)만이 채용된다.
히스토리 VLD(203)는 history_stream을 가변 길이 복호 처리하여, 얻어진 제 1 세대 내지 제 3 세대의 부호화 파라미터를 부호화 장치(106)에 출력한다.
또한, 디멀티플렉서(631)로부터 출력된 history_stream은 컨버터(212')에 입력된다. 상기 컨버터(212')와, 후단의 유저 데이터 포맷터(213')는 히스토리 인코딩 장치(107)에 내장되어 있는 컨버터(212), 및 유저 데이터 포메이터(213)(도 15 참조)와는, 별개의 것이지만, 그들과 동일의 기능을 부과하는 것이다.
즉 컨버터(212')는 디멀티플렉서(631)로부터 입력된 history_stream에 마커 비트를 부가하여, converted_history_stream을 생성하고, 유저 데이터 포맷터(213')에 출력한다. 유저 데이터 포메이터(213')는 입력된 converted_history_stream을 user_data로 변환하여, 부호화 장치(106)에 출력한다. 상기 user_data에는 제 1 세대 내지 제 3 세대의 부호화 파라미터가 포함되어 있는 것으로 된다.
복호 장치(102)는 디멀티플렉서(631)로부터 입력된 비디오 스트림을 복호하여, 베이스 밴드 비디오 신호를 부호화 장치(106)에 출력한다. 또한, 복호 장치(102)는 제 4 세대의 부호화 파라미터를 부호화 장치(106)에 공급함과 동시에, 히스토리 인코딩 장치(107)에 출력한다. 히스토리 인코딩 장치(107)는 입력된 제 4 세대의 부호화 파라미터로부터 user_data를 생성하고, 부호화 장치(106)에 출력한다.
부호화 장치(106)는 도 77에 있어서의 부호화 장치(106)와 마찬가지로, 「통상 부호화 처리」 또는 파라미터 재이용 부호화 처리」를 실행하고, 제 5 세대의 부호화스트림(ST)을 출력한다. 상기 제 5 세대의 부호화 스트림(ST)에는 그 픽처층의 user_data에, 제 1 세대 내지 제 4 세대의 부호화 파라미터가 기록되어 있다.
이상의 설명으로부터 알 수 있는 바와 같이, 본 발명의 트랜스코더에 의하면, 과거의 부호화 처리에 있어서 생성된 부호화 파라미터를, 현재의 부호화 처리에서 생성된 부호화 스트림의 유저 데이터 영역에 기술하도록 하여, 생성된 비트 스트림은, MPEG 규격에 준한 부호화 스트림이기 때문에, 기존의 어떤 디코더일지라도 복호 처리를 행할 수 있다. 또한, 본 발명의 트랜스코더에 의하면, 과거의 부호화 처리에 있어서의 부호화 파라미터를 전송하기 위해서 전용선과 같은 것을 설치할 필요가 없기 때문에, 종래의 데이터 스트림 전송 환경을 그대로 사용하여, 과거의 부호화 파라미터를 전송할 수 있다.
본 실시예의 트랜스코더에 의하면, 과거의 부호화 처리에 있어서 생성된 부호화 파라미터를, 선택적으로 현재의 부호화 처리에 있어서 생성된 부호화 스트림 내에 기술하도록 하고 있기 때문에, 출력되는 비트 스트림의 비트율을 극단적으로 올리지 않고, 과거의 부호화 파라미터를 전송할 수 있다.
본 실시예의 트랜스코더에 의하면, 과거의 부호화 파라미터와 현재의 부호화 파라미터 중에서, 현재의 부호화 처리에 알맞은 부호화 파라미터를 선택하여 부호화 처리를 행하도록 하고 있기 때문에, 복호 처리 및 부호화 처리를 되풀이하였다고 해도, 화질 열화가 축적되지 않는다.
본 실시예의 트랜스코더에 의하면, 과거의 부호화 파라미터 중에서, 픽처 타입에 따라서 현재의 부호화 처리에 알맞은 부호화 파라미터를 선택하여 부호화 처리를 행하도록 하고 있기 때문에, 복호 처리 및 부호화 처리를 되풀이하였다고 해서도, 화질 열화가 축적되지 않는다.
또한, 본 실시예의 트랜스코더에 의하면, 과거의 부호화 파라미터에 포함되는 픽처 타입에 기초하여, 과거의 부호화 파라미터를 재이용할 것인지의 여부를 결정하고 있기 때문에, 알맞은 부호화 처리를 행할 수 있다.
또한, 상기 각 처리를 행하는 컴퓨터 프로그램은, 자기 디스크, 광디스크, 광자기 디스크, 반도체 메모리 등의 기록 매체에 기록하여 제공하는 외에, 인터넷, ATM, 디지털 위성 등의 네트워크를 통해 전송하여, 유저의 기록 매체에 기록시키는 것으로 제공할 수 있다.
또한, 본 실시예의 트랜스코더에 의하면, 트랜스코더에 의해서 재부호화된 부호화 스트림에 대하여, 그때까지의 부호화 처리에 있어서의 부호화 이력의 조합을 나타내는 데이터 세트에 관한 정보를 기술하도록 하였기 때문에, 적은 용량의 전송로를 통해 전송 가능한 이력 정보를 포함하는 스트림을 생성하는 것이 가능해진다.
본 실시예의 트랜스코더에 의하면, 과거의 부호화 처리에서 사용된 복수의 부호화 파라미터를, 선택적으로 조합하여, 그 부호화 이력 정보를 생성하여, 부호화 스트림에 중첩하도록 하였기 때문에, 재부호화에 따르는 화상의 열화를 억제가능한 스트림을, 적은 용량의 미디어를 통해 전송하는 것이 가능해진다.
본 실시예의 트랜스코더에 의하면, 데이터 세트를 나타내는 정보에 기초하여, 부호화 파라미터를 추출하여, 추출한 부호화 파라미터에 기초하여, 재부호화된 부호화 스트림을 생성하도록 하였기 때문에, 재부호화에 따르는 화상의 열화를 억제한, 적은 전송 용량의 전송 미디어에 전송 가능한 스트림을 부호화하는 것이 가능해진다.
또한, 본 실시예의 트랜스코더에 의하면, 검출된 과거의 부호화 처리에 있어서의 부호화 이력을 기록 매체에 기록하도록 하였기 때문에, 부호화 스트림을 기록 매체에 기록한 경우에 있어서도, 화질의 열화를 억제하는 것이 가능해진다.
본 실시예의 트랜스코더에 의하면, 기록 매체로부터 재생된 부호화 스트림에 포함되는 부호화 이력을 검출하고, 재부호화된 부호화 스트림과 다중화하여 출력하도록 하였기 때문에, 기록 매체로부터 재생된 부호화 스트림을 두 번째 트랜스코딩하는 경우에 있어서도, 화질의 열화를 억제하는 것이 가능해진다.
본 발명은 코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치 및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법에 관한 것으로, 특히, MPEG 규격에 기초하여 과거에 부호화 처리가 실시된 적이 있는 부호화 스트림에 대하여 재부호화 처리를 실시함으로써, 다른 G0P(Group of Pictures) 구조나 다른 비트율을 갖는 재부호화 스트림을 생성하기 위한 트랜스코더에 등에 이용할 수 있다.
도 1은 고효율 부호화의 원리를 설명하는 도면.
도 2는 화상 데이터를 압축하는 경우에 있어서의 픽처 타입을 설명하는 도면.
도 3은 화상 데이터를 압축하는 경우에 있어서의 픽처 타입를 설명하는 도면.
도 4는 동화상 신호를 부호화하는 원리를 설명하는 도면.
도 5는 동화상 신호를 부호화하여, 복호하는 장치의 구성을 도시하는 블록도.
도 6은 화상 데이터의 구성을 설명하는 도면.
도 7은 도 5의 인코더(18)의 구성을 도시하는 블록도.
도 8은 도 7의 예측 모드 전환 회로(52)의 동작을 설명하는 도면.
도 9는 도 7의 예측 모드 전환 회로(52)의 동작을 설명하는 도면.
도 10은 도 7의 예측 모드 전환 회로(52)의 동작을 설명하는 도면.
도 11은 도 7의 예측 모드 전환 회로(52)의 동작을 설명하는 도면.
도 12는 도 5의 디코더(31)의 구성을 도시하는 블록도.
도 13은 픽처 타입에 대응한 SNR 제어를 설명하는 도면.
도 14는 본 발명을 적용한 트랜스코더(101)의 구성을 도시하는 블록도.
도 15는 도 14의 트랜스코더(101)의 보다 상세한 구성을 도시하는 블록도.
도 16은 도 14의 복호 장치(102)에 내장되는 복호화 장치(102)의 구성을 도시하는 블록도.
도 17은 매크로 블록의 화소를 설명하는 도면.
도 18은 부호화 파라미터가 기록되는 영역을 설명하는 도면.
도 19는 도 14의 부호화 장치(106)에 내장되는 부호화 장치(106)의 구성을 도시하는 블록도.
도 20은 도 15의 히스토리 VLC(211)의 구성예를 도시하는 블록도.
도 21은 도 15의 히스토리 VLD(203)의 구성예를 도시하는 블록도.
도 22는 도 15의 컨버터(212)의 구성예를 도시하는 블록도.
도 23은 도 22의 스터프 회로(323)의 구성예를 도시하는 블록도.
도 24는 도 22의 컨버터(212)의 동작을 설명하는 타이밍 차트.
도 25는 도 15의 컨버터(202)의 구성예를 도시하는 블록도.
도 26은 도 25의 딜리트 회로(343)의 구성예를 도시하는 블록도.
도 27는 도 15의 컨버터(212)의 다른 구성예를 도시하는 블록도.
도 28은 도 15의 컨버터(202)의 다른 구성예를 도시하는 블록도.
도 29는 도 15의 유저 데이터 포매터(213)의 구성예를 도시하는 블록도.
도 30은 도 14의 트랜스코더(101)가 실제로 사용되는 상태를 도시하는 도면.
도 31은 부호화 파라미터가 기록되는 영역을 설명하는 도면.
도 32는 도 14의 부호화 장치(106)의 변경 가능 픽처 타입 판정 처리를 설명하는 플로우 챠트.
도 33은 픽처 타입이 변경되는 예를 도시하는 도면.
도 34는 픽처 타입이 변경되는 다른 예를 도시하는 도면.
도 35는 도 14의 부호화 장치(106)의 양자화 제어 처리를 설명하는 도면.
도 36은 도 14의 부호화 장치(106)의 양자화 제어 처리를 설명하는 플로우 챠트.
도 37은 조밀 결합된 트랜스코더(101)의 구성을 도시하는 블록도.
도 38은 비디오 시퀀스의 스트림의 신택스를 설명하는 도면
도 39는 도 38의 신택스의 구성을 설명하는 도면.
도 40은 고정 길이의 이력 정보를 기록하는 history_stream()의 신택스를 설명하는 도면.
도 41은 고정 길이의 이력 정보를 기록하는 history_stream()의 신택스를 설명하는 도면.
도 42는 고정 길이의 이력 정보를 기록하는 history_stream()의 신택스를 설명하는 도면.
도 43은 고정 길이의 이력 정보를 기록하는 history_stream()의 신택스를 설명하는 도면.
도 44는 고정 길이의 이력 정보를 기록하는 history_stream()의 신택스를 설명하는 도면.
도 45는 고정 길이의 이력 정보를 기록하는 history_stream()의 신택스를 설명하는 도면.
도 46은 고정 길이의 이력 정보를 기록하는 history_stream()의 신택스를 설명하는 도면.
도 47은 가변 길이의 이력 정보를 기록하는 history_stream()의 신택스를 설명하는 도면.
도 48은 sequence_header()의 신택스를 설명하는 도면.
도 49는 sequence_extension()의 신택스를 설명하는 도면.
도 50은 extension_and_user_data()의 신택스를 설명하는 도면.
도 51은 user_data()의 신택스를 설명하는 도면.
도 52는 group_of_pictures_header()의 신택스를 설명하는 도면.
도 53은 picture_header()의 신택스를 설명하는 도면.
도 54는 picture_coding_extension()의 신택스를 설명하는 도면.
도 55는 extension_data()의 신택스를 설명하는 도면.
도 56은 quant_matrix_extension()의 신택스를 설명하는 도면.
도 57은 copyright_extension()의 신택스를 설명하는 도면.
도 58은 picture_display_extension()의 신택스를 설명하는 도면.
도 59는 picture_data()의 신택스를 설명하는 도면.
도 60은 slice()의 신택스를 설명하는 도면.
도 61은 macroblock()의 신택스를 설명하는 도면.
도 62는 macroblock_modes()의 신택스를 설명하는 도면.
도 63은 motion_vectors(s)의 신택스를 설명하는 도면.
도 64는 motion_vector(r, s)의 신택스를 설명하는 도면.
도 65는 I 픽처에 대한 macroblock_type의 가변 길이 부호를 설명하는 도면.
도 66은 P 픽처에 대한 macroblock_type의 가변 길이 부호를 설명하는 도면.
도 67은 B 픽처에 대한 macroblock_type의 가변 길이 부호를 설명하는 도면.
도 68은 re_coding_stream_info()의 신택스를 설명하는 도면.
도 69는 red_bw_flag, red_bw_indicator를 설명하는 도면.
도 70은 이력 정보의 인코딩 파라미터의 데이터 세트를 설명하는 도면.
도 71은 Re_Coding Information Bus macroblock formation을 설명하는 도면.
도 72는 Picture rate elements를 설명하는 도면.
도 73은 Picture rate elements를 설명하는 도면.
도 74는 Picture rate elements를 설명하는 도면.
도 75는 Re_Coding Information Bus가 기록되는 영역을 설명하는 도면.
도 76은 비디오 테이프 레코더의 기록계의 구성예를 도시하는 블록도.
도 77은 비디오 테이프 레코더의 재생계의 구성예를 도시하는 블록도.
도 78은 비디오 테이프 레코더의 기록계의 다른 구성예를 도시하는 블록도.
도 79는 비디오 테이프 레코더의 재생계의 다른 구성예를 도시하는 블록도.
도 80은 비디오 스트림과 history_stream의 기록 위치를 설명하는 도면.
* 도면의 부요 부분에 대한 부호의 설명 *
1, 106: 부호화 장치 2, 102: 복호 장치
3: 기록 매체 14, 33: 프레임 메모리
17, 32: 포맷 변환 회로 18: 인코더
19: 기록 회로 30: 재생 회로
31: 디코더 50: 움직임 벡터 검출 회로
57: 양자화 회로 58: 가변 길이 부호화 회로
59: 송신 버퍼 64, 87: 이동 보상 회로
70: 컨트롤러 81: 수신 버퍼
82: 가변 길이 복호 회로 83: 역양자화 회로
84: IDCT 회로 100: 컴퓨터
101: 트랜스코더 103: 히스토리 정보 다중화 장치
104: 히스토리 디코딩 장치 105: 히스토리 정보 분리 장치
107: 히스토리 인코딩 장치 201: 유저 데이터 디코더
202, 212: 컨버터 203, 211: 히스토리 VLC

Claims (45)

  1. 화상 데이터를 부호화 처리한 부호화 스트림을 재부호화 처리하는 재부호화 장치에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 이용된 이력 부호화 파라미터, 및 상기 이력 부호화 파라미터가 재이용 가능한 것을 식별하는 식별 정보를 상기 부호화 스트림과 함께 입력하는 입력 수단과,
    상기 입력 수단에 의해 입력된 상기 부호화 스트림을 복호 처리하는 동시에, 복호 처리된 상기 화상 데이터를 상기 입력 수단에 의해 입력된 상기 이력 부호화 파라미터와 함께 출력하는 복호 수단과,
    상기 식별 정보를 참조함으로써, 상기 복호 수단에 의해 출력된 상기 이력 부호화 파라미터 중에서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 선택 수단과,
    상기 선택 수단에 의해 선택된 이력 부호화 파라미터를 재이용하여, 상기 복호 수단에 의해 복호된 상기 화상 데이터를 재부호화 처리하여 재부호화 스트림을 생성하는 재부호화 수단을 구비하는 재부호화 장치.
  2. 제 1 항에 있어서, 상기 선택 수단은 상기 재부호화 수단에 의해 재부호화 처리된 상기 재부호화 스트림을 이용하는 애플리케이션에 따라서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 재부호화 장치.
  3. 제 1 항에 있어서, 현재의 부호화 파라미터를 산출하는 부호화 파라미터 산출 수단을 더 구비하고,
    상기 선택 수단은, 상기 식별 정보를 참조하여, 재이용하는 부호화 파라미터가 없는 경우, 상기 부호화 파라미터 산출 수단에 의해 산출된 부호화 파라미터를, 상기 재부호화 수단에 의한 재부호화 처리에 이용하는 파라미터로서 더 선택하는 재부호화 장치.
  4. 제 1 항에 있어서, 상기 재부호화 수단에 의해 생성된 상기 재부호화 스트림을 출력하는 출력 수단을 더 구비하는 재부호화 장치.
  5. 제 4 항에 있어서, 상기 식별 정보는, 상기 부호화 스트림을 이용하는 애플리케이션의 재부호화 처리에 의한 화질 열화의 정도에 따라서 구별되어 있는 재부호화 장치.
  6. 제 4 항에 있어서, 상기 식별 정보는, 상기 재부호화 스트림을 전송하는 전송로 또는 상기 재부호화 스트림을 기록하는 기록 매체의 용량에 따라서 구별되어 있는 재부호화 장치.
  7. 제 3 항에 있어서, 상기 선택 수단에 의해 선택된 상기 부호화 파라미터 및 상기 이력 부호화 파라미터 중 어느 하나를, 상기 재부호화 수단에 의해 생성된 상기 재부호화 스트림과 함께 출력하는 출력 수단을 더 구비하는 재부호화 장치.
  8. 제 7 항에 있어서, 상기 식별 정보는, 상기 출력 수단에 의해 출력되는 상기 재부호화 스트림, 상기 부호화 파라미터 및 상기 이력 부호화 파라미터 중 어느 하나를 포함하는 출력 정보를 전송하는 전송로, 또는 상기 출력정보를 기록하는 기록 매체의 용량에 따라서 구별되어 있는 재부호화 장치.
  9. 제 7 항에 있어서, 상기 재부호화 수단은 상기 선택 수단에 의해 선택된 상기 부호화 파라미터 및 상기 이력 부호화 파라미터 중 어느 하나를, 상기 재부호화 스트림에 기술하는 재부호화 장치.
  10. 제 1 항에 있어서, 상기 재부호화 수단은, 비트 레이트 또는 GOP 구조가 변경되도록 재부호화 처리를 행하는 재부호화 장치.
  11. 제 1 항에 있어서, 상기 재부호화 수단은, 시퀀스 레이어, GOP 레이어, 픽처 레이어, 슬라이스 레이어, 및 매크로블록 레이어를 갖는 MPEG 방식으로 재부호화를 하는 재부호화 장치.
  12. 제 1 항에 있어서, 상기 식별 정보에는,
    상기 부호화 스트림과 함께, 상기 이력 부호화 파라미터의 모두가 입력되는지, 상기 이력 부호화 파라미터 중 일부가 입력되는지를 나타내는 제 1 식별 정보와,
    상기 부호화 스트림과 함께 상기 이력 부호화 파라미터 중 일부가 입력되는 경우에, 상기 이력 부호화 파라미터의 조합을 나타내는 제 2 식별 정보가 포함되고,
    상기 선택 수단은, 상기 식별 정보에 포함되는 상기 제 1 식별 정보에, 상기 이력 부호화 스트림에 상기 이력 부호화 파라미터 중 일부가 입력되는 것으로 나타나 있는 경우, 상기 제 2 식별 정보를 기초로, 상기 복호 수단에 의해 출력된 상기 이력 부호화 파라미터 중에서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 재부호화 장치.
  13. 화상 데이터를 부호화 처리한 부호화 스트림을 재부호화 처리하는 재부호화 장치의 재부호화 방법에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 이용된 이력 부호화 파라미터 및 상기 이력 부호화 파라미터가 재이용 가능한 것을 식별하는 식별 정보를, 상기 부호화 스트림과 함께 입력하는 입력 스텝과,
    상기 입력 스텝의 처리에 의해 입력된 상기 부호화 스트림을 복호 처리하는 동시에, 복호 처리된 상기 화상 데이터를, 상기 입력 스텝의 처리에 의해 입력된 상기 이력 부호화 파라미터와 함께 출력하는 복호 스텝과.
    상기 식별 정보를 참조함으로써, 상기 복호 스텝의 처리에 의해 출력된 상기 이력 부호화 파라미터 중에서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 선택 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 이력 부호화 파라미터를 재이용하고, 상기 복호 스텝의 처리에 의해 복호된 상기 화상 데이터를 재부호화 처리하여 재부호화 스트림을 생성하는 재부호화 스텝을 포함하는 재부호화 방법.
  14. 화상 데이터를 부호화 처리한 부호화 스트림을 재부호화하는 처리를 컴퓨터에 실행시키기 위한 프로그램으로서,
    과거의 부호화 처리 또는 복호 처리에서 이용된 이력 부호화 파라미터 및 상기 이력 부호화 파라미터가 재이용 가능한 것을 식별하는 식별 정보 및 상기 부호화 스트림의 입력을 제어하는 입력 제어 스텝과,
    상기 입력 제어 스텝의 처리에 의해 입력이 제어된 상기 부호화 스트림을 복호 처리하는 동시에, 복호 처리된 상기 화상 데이터 및 상기 입력 제어 스텝의 처리에 의해 입력이 제어된 상기 이력 부호화 파라미터의 출력을 제어하는 복호 스텝과,
    상기 식별 정보를 참조함으로써, 상기 복호 스텝의 처리에 의해 출력이 제어된 상기 이력 부호화 파라미터 중에서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 선택 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 이력 부호화 파라미터를 재이용하여, 상기 복호 스텝의 처리에 의해 복호된 상기 화상 데이터를 재부호화 처리하여 재부호화 스트림을 생성하는 재부호화 스텝을 포함하는 처리를 실행하는 컴퓨터가 판독 가능한 상기 프로그램을 기록하는 기록 매체.
  15. 화상 데이터를 부호화 처리한 부호화 스트림을 재부호화 처리하는 재부호화 장치에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 이용된 이력 부호화 파라미터를, 상기 부호화 스트림과 함께 입력하는 입력 수단과,
    상기 입력 수단에 의해 입력된 상기 부호화 스트림을 복호 처리하는 동시에, 복호 처리된 상기 화상 데이터를, 상기 입력 수단에 의해 입력된 상기 이력 부호화 파라미터와 함께 출력하는 복호 수단과,
    상기 복호 수단에 의해 출력된 상기 이력 부호화 파라미터 중에서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 선택 수단과.
    상기 선택 수단에 의해 선택된 이력 부호화 파라미터를 재이용하여, 상기 복호 수단에 의해 복호된 상기 화상 데이터를 재부호화 처리하여 재부호화 스트림을 생성하는 재부호화 수단을 구비하고,
    상기 선택 수단은, 상기 재부호화 수단에 의해 재부호화 처리된 상기 재부호화 스트림을 전송하는 전송로의 용량 또는 상기 재부호화 스트림을 기록하는 기록 매체의 용량에 따라서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 재부호화 장치.
  16. 화상 데이터를 부호화 처리한 부호화 스트림을 재부호화 처리하는 재부호화 장치의 재부호화 방법에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 이용된 이력 부호화 파라미터를, 상기 부호화 스트림과 함께 입력하는 입력 스텝과,
    상기 입력 스텝의 처리에 의해 입력된 상기 부호화 스트림을 복호 처리하는 동시에, 복호 처리된 상기 화상 데이터를, 상기 입력 스텝의 처리에 의해 입력된 상기 이력 부호화 파라미터와 함께 출력하는 복호 스텝과,
    상기 복호 스텝의 처리에 의해 출력된 상기 이력 부호화 파라미터 중에서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 선택 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 이력 부호화 파라미터를 재이용하고, 상기 복호 스텝의 처리에 의해 복호된 상기 화상 데이터를 재부호화 처리하여 재부호화 스트림을 생성하는 재부호화 스텝을 포함하고,
    상기 선택 스텝의 처리에서는, 상기 재부호화 스텝의 처리에 의해 재부호화 처리된 상기 재부호화 스트림을 전송하는 전송로의 용량 또는 상기 재부호화 스트림을 기록하는 기록 매체의 용량에 따라서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 재부호화 방법.
  17. 화상 데이터를 부호화 처리한 부호화 스트림을 재부호화하는 처리를 컴퓨터에 실행시키기 위한 프로그램으로서,
    과거의 부호화 처리 또는 복호 처리에서 이용된 이력 부호화 파라미터 및 상기 부호화 스트림의 입력을 제어하는 입력 제어 스텝과,
    상기 입력 제어 스텝의 처리에 의해 입력이 제어된 상기 부호화 스트림을 복호 처리하는 동시에, 복호 처리된 상기 화상 데이터 및 상기 입력 제어 스텝의 처리에 의해 입력이 제어된 상기 이력 부호화 파라미터의 출력을 제어하는 복호 스텝과.
    상기 복호 스텝의 처리에 의해 출력이 제어된 상기 이력 부호화 파라미터 중에서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 선택 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 이력 부호화 파라미터를 재이용하여, 상기 복호 스텝의 처리에 의해 복호된 상기 화상 데이터를 재부호화 처리하여 재부호화 스트림을 생성하는 재부호화 스텝을 포함하고,
    상기 선택 스텝의 처리에서는, 상기 재부호화 스텝의 처리에 의해 재부호화 처리된 상기 재부호화 스트림을 전송하는 전송로의 용량 또는 상기 재부호화 스트림을 기록하는 기록 매체의 용량에 따라서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 처리를 실행하는 컴퓨터가 판독 가능한 상기 프로그램을 기록하는 기록 매체.
  18. 화상 데이터를 부호화 처리하는 부호화 장치에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 이용된 이력 부호화 파라미터 및 상기 이력 부호화 파라미터가 재이용 가능한 것을 식별하는 식별 정보를, 상기 화상 데이터와 함께 입력하는 입력 수단과,
    상기 식별 정보를 참조함으로써, 상기 입력 수단에 의해 입력된 상기 이력 부호화 파라미터 중에서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 선택 수단과,
    상기 선택 수단에 의해 선택된 이력 부호화 파라미터를 재이용하여, 상기 입력 수단에 의해 입력된 상기 화상 데이터를 부호화 처리하여 부호화 스트림을 생성하는 부호화 수단을 구비하는 부호화 장치.
  19. 화상 데이터를 부호화 처리하는 부호화 장치의 부호화 방법에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 이용된 이력 부호화 파라미터 및 상기 이력 부호화 파라미터가 재이용 가능한 것을 식별하는 식별 정보를, 상기 화상 데이터와 함께 입력하는 입력 스텝과,
    상기 식별 정보를 참조함으로써, 상기 입력 스텝의 처리에 의해 입력된 상기 이력 부호화 파라미터 중에서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 선택 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 이력 부호화 파라미터를 재이용하여, 상기 입력 스텝의 처리에 의해 입력된 상기 화상 데이터를 부호화 처리하여 부호화 스트림을 생성하는 부호화 스텝을 포함하는 부호화 방법.
  20. 화상 데이터를 부호화하는 처리를 컴퓨터에 실행시키기 위한 프로그램으로서,
    과거의 부호화 처리 또는 복호 처리에서 이용된 이력 부호화 파라미터 및 상기 이력 부호화 파라미터가 재이용 가능한 것을 식별하는 식별 정보 및 상기 화상 데이터의 입력을 제어하는 입력 제어 스텝과,
    상기 식별 정보를 참조함으로써, 상기 입력 제어 스텝의 처리에 의해 입력이 제어된 상기 이력 부호화 파라미터 중에서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 선택 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 이력 부호화 파라미터를 재이용하여, 상기 입력 제어 스텝의 처리에 의해 입력이 제어된 상기 화상 데이터를 부호화 처리하여 부호화 스트림을 생성하는 부호화 스텝을 포함하는 처리를 실행하는 컴퓨터가 판독 가능한 상기 프로그램을 기록하는 기록 매체.
  21. 화상 데이터를 부호화 처리하는 부호화 장치에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 이용된 이력 부호화 파라미터를, 상기 화상 데이터와 함께 입력하는 입력 수단과,
    상기 입력 수단에 의해 입력된 상기 이력 부호화 파라미터 중에서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 선택 수단과,
    상기 선택 수단에 의해 선택된 이력 부호화 파라미터를 재이용하고, 상기 입력 수단에 의해 입력된 상기 화상 데이터를 부호화 처리하여 부호화 스트림을 생성하는 부호화 수단을 구비하고,
    상기 선택 수단은, 상기 부호화 수단에 의해 부호화 처리된 상기 부호화 스트림을 전송하는 전송로의 용량 또는 상기 부호화 스트림을 기록하는 기록 매체의 용량에 따라서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 부호화 장치.
  22. 화상 데이터를 부호화 처리하는 부호화 장치의 부호화 방법에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 이용된 이력 부호화 파라미터를, 상기 화상 데이터와 함께 입력하는 입력 스텝과,
    상기 입력 스텝의 처리에 의해 입력된 상기 이력 부호화 파라미터 중에서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 선택 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 이력 부호화 파라미터를 재이용하여, 상기 입력 스텝의 처리에 의해 입력된 상기 화상 데이터를 부호화 처리하여 부호화 스트림을 생성하는 부호화 스텝을 포함하고,
    상기 선택 스텝의 처리에서는, 상기 부호화 스텝의 처리에 의해 부호화 처리된 상기 부호화 스트림을 전송하는 전송로의 용량 또는 상기 부호화 스트림을 기록하는 기록 매체의 용량에 따라서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 부호화 방법.
  23. 화상 데이터를 부호화하는 처리를 컴퓨터에 실행시키기 위한 프로그램으로서,
    과거의 부호화 처리 또는 복호 처리에서 이용된 이력 부호화 파라미터 및 상기 화상 데이터의 입력을 제어하는 입력 제어 스텝과,
    상기 입력 제어 스텝의 처리에 의해 입력이 제어된 상기 이력 부호화 파라미터 중에서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 선택 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 이력 부호화 파라미터를 재이용하여, 상기 입력 제어 스텝의 처리에 의해 입력이 제어된 상기 화상 데이터를 부호화 처리하여 부호화 스트림을 생성하는 부호화 스텝을 포함하고,
    상기 선택 스텝의 처리에서는, 상기 부호화 스텝의 처리에 의해 부호화 처리된 상기 부호화 스트림을 전송하는 전송로의 용량 또는 상기 부호화 스트림을 기록하는 기록 매체의 용량에 따라서, 재부호화 처리에서 재이용하는 이력 부호화 파라미터를 선택하는 처리를 실행하는 컴퓨터가 판독 가능한 상기 프로그램을 기록하는 기록 매체.
  24. 부호화 스트림을 전송하는 스트림 전송 장치에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 이용하는 애플리케이션이 재이용하는 부호화 파라미터를 선택하고, 선택한 부호화 파라미터의 조합을 나타내는 조합 정보를 생성하는 조합 정보 생성 수단과,
    상기 조합 정보 생성 수단에 의해 생성된 상기 조합 정보를 포함하는, 부호화 파라미터의 이력을 나타내는 부호화 이력 정보를 생성하는 이력 정보 생성 수단과,
    상기 이력 정보 생성 수단에 의해 생성된 상기 부호화 이력 정보를, 상기 부호화 스트림과 함께 전송하는 전송 수단을 구비하는 스트림 전송 장치.
  25. 제 24 항에 있어서, 상기 부호화 스트림은, 시퀀스 레이어, GOP 레이어, 픽처 레이어, 슬라이스 레이어, 및 매크로블록 레이어를 갖는 MPEG 방식으로 부호화되어 있는 스트림 전송 장치.
  26. 제 25 항에 있어서, 상기 전송 수단은, 상기 부호화 이력 정보를 상기 부호화 스트림에 user_data로서 기술하는 스트림 전송 장치.
  27. 제 24 항에 있어서, 상기 전송 수단은, 상기 이력 정보 생성 수단에 의해 생성된 상기 이력 정보를 상기 부호화 스트림에 기술하여 전송하는 스트림 전송 장치.
  28. 제 24 항에 있어서, 과거의 부호화 처리 또는 복호 처리에서 사용된 상기 부호화 파라미터에는 픽처 단위의 부호화 파라미터와 매크로블록 단위의 부호화 파라미터가 포함되어 있고,
    상기 조합 정보 생성 수단은, 상기 픽처 단위의 부호화 파라미터와 상기 매크로블록 단위의 상기 부호화 파라미터의 일부를 선택하는 스트림 전송 장치.
  29. 부호화 스트림을 전송하는 스트림 전송 장치의 스트림 전송 방법에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 이용하는 애플리케이션이 재이용하는 부호화 파라미터를 선택하고, 선택한 부호화 파라미터의 조합을 나타내는 조합 정보를 생성하는 조합 정보 생성 스텝과,
    상기 조합 정보 생성 스텝의 처리에 의해 생성된 상기 조합 정보를 포함하는, 부호화 파라미터의 이력을 나타내는 부호화 이력 정보를 생성하는 이력 정보 생성 스텝과,
    상기 이력 정보 생성 스텝의 처리에 의해 생성된 상기 부호화 이력 정보를, 상기 부호화 스트림과 함께 전송하는 전송 스텝을 포함하는 스트림 전송 방법.
  30. 부호화 스트림을 전송하는 처리를 컴퓨터에 실행시키기 위한 프로그램으로서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 이용하는 애플리케이션이 재이용하는 부호화 파라미터를 선택하고, 선택한 부호화 파라미터의 조합을 나타내는 조합 정보를 생성하는 조합 정보 생성 스텝과,
    상기 조합 정보 생성 스텝의 처리에 의해 생성된 상기 조합 정보를 포함하는, 부호화 파라미터의 이력을 나타내는 부호화 이력 정보를 생성하는 이력 정보 생성 스텝과,
    상기 이력 정보 생성 스텝의 처리에 의해 생성된 상기 부호화 이력 정보 및 상기 부호화 스트림의 전송을 제어하는 전송 제어 스텝을 포함하는 처리를 실행하는 컴퓨터가 판독 가능한 상기 프로그램을 기록한 기록 매체.
  31. 부호화 스트림을 전송하는 스트림 전송 장치에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 전송하는 전송로 또는 상기 부호화 스트림을 기록하는 기록 매체의 용량에 따라서 부호화 파라미터를 선택하고, 선택한 부호화 파라미터의 조합을 나타내는 조합 정보를 생성하는 조합 정보 생성 수단과,
    상기 조합 정보 생성 수단에 의해 생성된, 상기 조합 정보를 포함하는, 부호화 파라미터의 이력을 나타내는 부호화 이력 정보를 생성하는 이력 정보 생성 수단과,
    상기 이력 정보 생성 수단에 의해 생성된 상기 부호화 이력 정보를, 상기 부호화 스트림과 함께 전송하는 전송 수단을 구비하는 스트림 전송 장치.
  32. 부호화 스트림을 전송하는 스트림 전송 장치의 스트림 전송 방법에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 전송하는 전송로 또는 상기 부호화 스트림을 기록하는 기록 매체의 용량에 따라서 부호화 파라미터를 선택하고, 선택한 부호화 파라미터의 조합을 나타내는 조합 정보를 생성하는 조합 정보 생성 스텝과,
    상기 조합 정보 생성 스텝의 처리에 의해 생성된, 상기 조합 정보를 포함하는, 부호화 파라미터의 이력을 나타내는 부호화 이력 정보를 생성하는 이력 정보 생성 스텝과,
    상기 이력 정보 생성 스텝의 처리에 의해 생성된 상기 부호화 이력 정보를, 상기 부호화 스트림과 함께 전송하는 전송 스텝을 포함하는 스트림 전송 방법.
  33. 부호화 스트림을 전송하는 처리를 컴퓨터에 실행시키기 위한 프로그램으로서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 전송하는 전송로 또는 상기 부호화 스트림을 기록하는 기록 매체의 용량에 따라서 부호화 파라미터를 선택하고, 선택한 부호화 파라미터의 조합을 나타내는 조합 정보를 생성하는 조합 정보 생성 스텝과,
    상기 조합 정보 생성 스텝의 처리에 의해 생성된, 상기 조합 정보를 포함하는, 부호화 파라미터의 이력을 나타내는 부호화 이력 정보를 생성하는 이력 정보 생성 스텝과,
    상기 이력 정보 생성 스텝의 처리에 의해 생성된 상기 부호화 이력 정보 및 상기 부호화 스트림의 전송을 제어하는 전송 제어 스텝을 포함하는 처리를 실행하는 컴퓨터가 판독 가능한 상기 프로그램을 기록한 기록 매체.
  34. 부호화 스트림을 전송하는 스트림 전송 장치에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 이용하는 애플리케이션이 재이용하는 부호화 파라미터를 선택하는 선택 수단과,
    상기 선택 수단에 의해 선택된 상기 부호화 파라미터를, 상기 부호화 스트림과 함께 전송하는 전송 수단을 구비하는 스트림 전송 장치.
  35. 부호화 스트림을 전송하는 스트림 전송 장치의 스트림 전송 방법에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 이용하는 애플리케이션이 재이용하는 부호화 파라미터를 선택하는 선택 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 상기 부호화 파라미터를, 상기 부호화 스트림과 함께 전송하는 전송 스텝을 포함하는 스트림 전송 방법.
  36. 부호화 스트림을 전송하는 처리를 컴퓨터에 실행시키기 위한 프로그램으로서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 이용하는 애플리케이션이 재이용하는 부호화 파라미터를 선택하는 선택 스텝과.
    상기 선택 스텝의 처리에 의해 선택된 상기 부호화 파라미터 및 상기 부호화 스트림의 전송을 제어하는 전송 제어 스텝을 포함하는 처리를 실행하는 컴퓨터가 판독 가능한 상기 프로그램을 기록한 기록 매체.
  37. 부호화 스트림을 전송하는 스트림 전송 장치에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 전송하는 전송로 또는 상기 부호화 스트림을 기록하는 기록 매체의 용량에 따라서 재이용하는 부호화 파라미터를 선택하는 선택 수단과,
    상기 선택 수단에 의해 선택된 상기 부호화 파라미터를, 상기 부호화 스트림과 함께 전송하는 전송 수단을 구비하는 스트림 전송 장치.
  38. 부호화 스트림을 전송하는 스트림 전송 장치의 스트림 전송 방법에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 전송하는 전송로 또는 상기 부호화 스트림을 기록하는 기록 매체의 용량에 따라서 재이용하는 부호화 파라미터를 선택하는 선택 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 상기 부호화 파라미터를, 상기 부호화 스트림과 함께 전송하는 전송 스텝을 포함하는 전송 방법.
  39. 부호화 스트림을 전송하는 처리를 컴퓨터에 실행시키기 위한 프로그램으로서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 전송하는 전송로 또는 상기 부호화 스트림을 기록하는 기록 매체의 용량에 따라서 재이용하는 부호화 파라미터를 선택하는 선택 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 상기 부호화 파라미터 및 상기 부호화 스트림의 전송을 제어하는 전송 제어 스텝을 포함하는 처리를 실행하는 컴퓨터가 판독 가능한 상기 프로그램을 기록한 기록 매체.
  40. 부호화 스트림을 전송하는 스트림 전송 장치에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 이용하는 애플리케이션이 재이용하는 부호화 파라미터를 선택하는 선택 수단과,
    상기 선택 수단에 의해 선택된 상기 부호화 파라미터의 조합을 나타내는 조합 정보를 생성하는 조합 정보 생성 수단과,
    상기 선택 수단에 의해 선택된 상기 부호화 파라미터 및 상기 조합 정보 생성 수단에 의해 생성된 조합 정보를 포함하는, 부호화 파라미터의 이력을 나타내는 부호화 이력 정보를 생성하는 이력 정보 생성 수단과,
    상기 이력 정보 생성 수단에 의해 생성된 상기 부호화 이력 정보를, 상기 부호화 스트림과 함께 전송하는 전송 수단을 구비하는 스트림 전송 장치.
  41. 부호화 스트림을 전송하는 스트림 전송 장치의 스트림 전송 방법에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 이용하는 애플리케이션이 재이용하는 부호화 파라미터를 선택하는 선택 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 상기 부호화 파라미터의 조합을 나타내는 조합 정보를 생성하는 조합 정보 생성 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 상기 부호화 파라미터 및 상기 조합 정보 생성 스텝의 처리에 의해 생성된 상기 조합 정보를 포함하는, 부호화 파라미터의 이력을 나타내는 부호화 이력 정보를 생성하는 이력 정보 생성 스텝과,
    상기 이력 정보 생성 스텝의 처리에 의해 생성된 상기 부호화 이력 정보를, 상기 부호화 스트림과 함께 전송하는 전송 스텝을 포함하는 스트림 전송 방법.
  42. 부호화 스트림을 전송하는 처리를 컴퓨터에 실행시키기 위한 프로그램으로서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 이용하는 애플리케이션이 재이용하는 부호화 파라미터를 선택하는 선택 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 상기 부호화 파라미터의 조합을 나타내는 조합 정보를 생성하는 조합 정보 생성 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 상기 부호화 파라미터 및 상기 조합 정보 생성 스텝의 처리에 의해 생성된 상기 조합 정보를 포함하는, 부호화 파라미터의 이력을 나타내는 부호화 이력 정보를 생성하는 이력 정보 생성 스텝과,
    상기 이력 정보 생성 스텝의 처리에 의해 생성된 상기 부호화 이력 정보 및 상기 부호화 스트림의 전송을 제어하는 전송 제어 스텝을 포함하는 처리를 실행하는 컴퓨터가 판독 가능한 상기 프로그램을 기록한 기록 매체.
  43. 부호화 스트림을 전송하는 스트림 전송 장치에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 전송하는 전송로 또는 상기 부호화 스트림을 기록하는 기록 매체의 용량에 따라서, 재이용하는 부호화 파라미터를 선택하는 선택 수단과,
    상기 선택 수단에 의해 선택된 상기 재이용하는 상기 부호화 파라미터의 조합을 나타내는 조합 정보를 생성하는 조합 정보 생성 수단과.
    상기 선택 수단에 의해 선택된 상기 부호화 파라미터 및 상기 조합 정보 생성 수단에 의해 생성된 상기 조합 정보를 포함하는, 부호화 파라미터의 이력을 나타내는 부호화 이력 정보를 생성하는 이력 정보 생성 수단과,
    상기 이력 정보 생성 수단에 의해 생성된 상기 부호화 이력 정보를, 상기 부호화 스트림과 함께 전송하는 전송 수단을 구비하는 스트림 전송 장치.
  44. 부호화 스트림을 전송하는 스트림 전송 장치의 스트림 전송 방법에 있어서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 전송하는 전송로 또는 상기 부호화 스트림을 기록하는 기록 매체의 용량에 따라서, 재이용하는 부호화 파라미터를 선택하는 선택 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 재이용하는 상기 부호화 파라미터의 조합을 나타내는 조합 정보를 생성하는 조합 정보 생성 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 상기 부호화 파라미터 및 상기 조합 정보 생성 스텝의 처리에 의해 생성된 상기 조합 정보를 포함하는, 부호화 파라미터의 이력을 나타내는 부호화 이력 정보를 생성하는 이력 정보 생성 스텝과,
    상기 이력 정보 생성 스텝의 처리에 의해 생성된 상기 부호화 이력 정보를, 상기 부호화 스트림과 함께 전송하는 전송 스텝을 포함하는 스트림 전송 방법.
  45. 부호화 스트림을 전송하는 처리를 컴퓨터에 실행시키기 위한 프로그램으로서,
    과거의 부호화 처리 또는 복호 처리에서 사용된 부호화 파라미터로부터, 상기 부호화 스트림을 전송하는 전송로 또는 상기 부호화 스트림을 기록하는 기록 매체의 용량에 따라서, 재이용하는 부호화 파라미터를 선택하는 선택 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 재이용하는 상기 부호화 파라미터의 조합을 나타내는 조합 정보를 생성하는 조합 정보 생성 스텝과,
    상기 선택 스텝의 처리에 의해 선택된 상기 부호화 파라미터 및 상기 조합 정보 생성 스텝의 처리에 의해 생성된 상기 조합 정보를 포함하는, 부호화 파라미터의 이력을 나타내는 부호화 이력 정보를 생성하는 이력 정보 생성 스텝과,
    상기 이력 정보 생성 스텝의 처리에 의해 생성된 상기 부호화 이력 정보 및 상기 부호화 스트림의 전송을 제어하는 전송 제어 스텝을 포함하는 처리를 실행하는 컴퓨터가 판독 가능한 상기 프로그램을 기록한 기록 매체.
KR1020057020018A 1999-02-09 2000-02-09 코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법 KR100571307B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP3194499 1999-02-09
JPJP-P-1999-00031944 1999-02-09
PCT/JP2000/000720 WO2000048402A1 (en) 1999-02-09 2000-02-09 Coding system and its method, coding device and its method, decoding device and its method, recording device and its method, and reproducing device and its method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020007011242A Division KR100571687B1 (ko) 1999-02-09 2000-02-09 코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20050109629A true KR20050109629A (ko) 2005-11-21
KR100571307B1 KR100571307B1 (ko) 2006-04-17

Family

ID=12345086

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020057020018A KR100571307B1 (ko) 1999-02-09 2000-02-09 코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법
KR1020007011242A KR100571687B1 (ko) 1999-02-09 2000-02-09 코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020007011242A KR100571687B1 (ko) 1999-02-09 2000-02-09 코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법

Country Status (7)

Country Link
US (3) US7236526B1 (ko)
EP (1) EP1069779B1 (ko)
JP (1) JP3672185B2 (ko)
KR (2) KR100571307B1 (ko)
CN (1) CN1241416C (ko)
ES (1) ES2569491T3 (ko)
WO (1) WO2000048402A1 (ko)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715009A (en) 1994-03-29 1998-02-03 Sony Corporation Picture signal transmitting method and apparatus
CA2265089C (en) * 1998-03-10 2007-07-10 Sony Corporation Transcoding system using encoding history information
WO2000048402A1 (en) * 1999-02-09 2000-08-17 Sony Corporation Coding system and its method, coding device and its method, decoding device and its method, recording device and its method, and reproducing device and its method
JP4487374B2 (ja) * 1999-06-01 2010-06-23 ソニー株式会社 符号化装置及び符号化方法並びに多重化装置及び多重化方法
JP3694888B2 (ja) * 1999-12-03 2005-09-14 ソニー株式会社 復号装置および方法、符号化装置および方法、情報処理装置および方法、並びに記録媒体
FR2809573B1 (fr) * 2000-05-26 2002-08-16 Thomson Broadcast Systems Procede de codage d'un flux d'images video
EP1744563A3 (en) * 2000-07-21 2007-02-28 Matsushita Electric Industrial Co., Ltd. Signal transmission system
KR100394014B1 (ko) * 2001-06-23 2003-08-09 엘지전자 주식회사 영상 변환 부호화 장치
EP1261204A2 (en) * 2001-03-29 2002-11-27 Matsushita Electric Industrial Co., Ltd. Method and apparatus for data reproduction
DE10119214A1 (de) * 2001-04-19 2002-10-24 Highlight Comm Ag Pfaeffikon Verfahren zum Komprimieren von Videodaten
US7409094B2 (en) * 2001-05-04 2008-08-05 Hewlett-Packard Development Company, L.P. Methods and systems for packetizing encoded data
US9894379B2 (en) 2001-07-10 2018-02-13 The Directv Group, Inc. System and methodology for video compression
US7277486B2 (en) * 2002-05-03 2007-10-02 Microsoft Corporation Parameterization for fading compensation
US7609767B2 (en) * 2002-05-03 2009-10-27 Microsoft Corporation Signaling for fading compensation
NZ520986A (en) 2002-08-23 2005-04-29 Ectus Ltd Audiovisual media encoding system
FI114071B (fi) * 2003-01-13 2004-07-30 Nokia Corp Kuvien käsitteleminen rajoitetulla bittimäärällä
US8243004B2 (en) 2003-03-10 2012-08-14 Fergason Patent Properties, Llc Apparatus and method for preparing, storing, transmitting and displaying images
JP4196726B2 (ja) * 2003-05-14 2008-12-17 ソニー株式会社 画像処理装置および画像処理方法、記録媒体、並びに、プログラム
JP2005004866A (ja) * 2003-06-11 2005-01-06 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
JP4120934B2 (ja) 2003-06-16 2008-07-16 ソニー株式会社 画像処理装置および画像処理方法、記録媒体、並びに、プログラム
US8009739B2 (en) * 2003-09-07 2011-08-30 Microsoft Corporation Intensity estimation/compensation for interlaced forward-predicted fields
JP4232588B2 (ja) 2003-09-19 2009-03-04 ソニー株式会社 画像処理装置および画像処理方法、並びに、プログラム
US8165445B2 (en) * 2004-01-08 2012-04-24 Hewlett-Packard Development Company, L.P. System, method, and computer-readable medium for analyzing an MPEG-formatted file
EP1592255A1 (en) * 2004-04-30 2005-11-02 Matsushita Electric Industrial Co., Ltd. Motion vector estimation with improved motion vector selection
JP4655191B2 (ja) * 2004-09-02 2011-03-23 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
US8243820B2 (en) * 2004-10-06 2012-08-14 Microsoft Corporation Decoding variable coded resolution video with native range/resolution post-processing operation
US9071847B2 (en) * 2004-10-06 2015-06-30 Microsoft Technology Licensing, Llc Variable coding resolution in video codec
JP4383311B2 (ja) * 2004-10-13 2009-12-16 パナソニック株式会社 コンテンツ録画装置及びコンテンツ録画装置の制御方法並びにコンテンツ録画装置の記録プログラム
JP4442891B2 (ja) * 2004-11-30 2010-03-31 キヤノン株式会社 可変長符号化装置及び可変長符号化方法
US20060133507A1 (en) * 2004-12-06 2006-06-22 Matsushita Electric Industrial Co., Ltd. Picture information decoding method and picture information encoding method
US20060222251A1 (en) * 2005-04-01 2006-10-05 Bo Zhang Method and system for frame/field coding
FR2888424A1 (fr) * 2005-07-07 2007-01-12 Thomson Licensing Sas Dispositif et procede de codage et de decodage de donnees video et train de donnees
WO2007043811A1 (en) * 2005-10-12 2007-04-19 Samsung Electronics Co., Ltd. Method and apparatus for encoding/decoding audio data and extension data
JP4644097B2 (ja) * 2005-10-31 2011-03-02 富士通セミコンダクター株式会社 動画像符号化プログラム、プログラム記憶媒体、および符号化装置。
JP4666255B2 (ja) * 2005-12-27 2011-04-06 日本電気株式会社 符号化データ選定、符号化データ設定、再符号化データ生成及び再符号化の方法及び装置
US7956930B2 (en) 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
US9602840B2 (en) * 2006-02-06 2017-03-21 Thomson Licensing Method and apparatus for adaptive group of pictures (GOP) structure selection
KR100713530B1 (ko) * 2006-04-25 2007-05-02 삼성전자주식회사 이미지 비트 형식 변환 시 화질 열화를 방지하기 위한 영상처리 장치 및 방법
WO2008090793A1 (ja) 2007-01-22 2008-07-31 Nec Corporation 画像再符号化装置、画像再符号化方法及び画像符号化プログラム
JP2008193444A (ja) * 2007-02-06 2008-08-21 Hitachi Ltd 情報処理装置
US8107571B2 (en) * 2007-03-20 2012-01-31 Microsoft Corporation Parameterized filters and signaling techniques
JP4739295B2 (ja) 2007-08-27 2011-08-03 日本電信電話株式会社 映像信号生成装置、映像信号生成方法、映像信号生成プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
KR101946376B1 (ko) 2007-10-16 2019-02-11 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US8150187B1 (en) * 2007-11-29 2012-04-03 Lsi Corporation Baseband signal quantizer estimation
JP2009164880A (ja) 2008-01-07 2009-07-23 Mitsubishi Electric Corp トランスコーダ及び受信機
US8145794B2 (en) 2008-03-14 2012-03-27 Microsoft Corporation Encoding/decoding while allowing varying message formats per message
US8767838B1 (en) * 2008-09-05 2014-07-01 Zenverge, Inc. Cascading multiple video transcoders in a video processing system
US9083976B2 (en) 2008-09-05 2015-07-14 Freescale Semiconductor, Inc. Processing a video stream in real time based on binary information of the video stream
KR101738647B1 (ko) 2008-12-02 2017-06-08 아브 이니티오 테크놀로지 엘엘시 데이터 유지 시스템
KR20100072717A (ko) * 2008-12-22 2010-07-01 삼성전자주식회사 데이터 처리 방법 및 장치
KR101041687B1 (ko) * 2008-12-26 2011-06-14 경북대학교 산학협력단 심전도 신호의 세그먼트 압축 및 복원 방법
US20120287999A1 (en) * 2011-05-11 2012-11-15 Microsoft Corporation Syntax element prediction in error correction
GB2493755B (en) 2011-08-17 2016-10-19 Canon Kk Method and device for encoding a sequence of images and method and device for decoding a sequence of images
US9143802B2 (en) * 2011-10-31 2015-09-22 Qualcomm Incorporated Fragmented parameter set for video coding
US20130113882A1 (en) * 2011-11-08 2013-05-09 Sony Corporation Video coding system and method of operation thereof
US20130188709A1 (en) * 2012-01-25 2013-07-25 Sachin G. Deshpande Video decoder for tiles with absolute signaling
US9432666B2 (en) * 2012-03-29 2016-08-30 Intel Corporation CAVLC decoder with multi-symbol run before parallel decode
US10051264B2 (en) * 2012-04-20 2018-08-14 Qualcomm Incorporated Marking reference pictures in video sequences having broken link pictures
JP6160802B2 (ja) * 2012-08-14 2017-07-12 シャープ株式会社 ビット符号化装置、ビット復号装置、送信装置、受信装置、ビット符号化方法、ビット復号方法、送信方法、受信方法およびプログラム
US9584825B2 (en) * 2012-09-27 2017-02-28 Qualcomm Incorporated Long-term reference picture signaling in video coding
JP6473078B2 (ja) * 2013-04-05 2019-02-20 シャープ株式会社 画像復号装置
US20150103883A1 (en) * 2013-10-11 2015-04-16 Mediatek Inc. Method and apparatus for fast intra prediction
CN105981389B (zh) 2014-02-03 2019-03-01 三菱电机株式会社 图像编码装置、图像解码装置、编码流变换装置、图像编码方法以及图像解码方法
US9716888B2 (en) * 2014-03-26 2017-07-25 Vixs Systems, Inc. Video processing with static and dynamic regions and method for use therewith
EP3261352B1 (en) * 2015-02-17 2020-09-09 Sony Corporation Transmission device, transmission method, reception device, and reception method
JP6966478B2 (ja) 2016-02-02 2021-11-17 イミュノライト・エルエルシー フォスファー含有薬剤活性化剤、その懸濁液、懸濁液を含むシステム、及び使用方法
JP6977422B2 (ja) * 2017-09-13 2021-12-08 株式会社Jvcケンウッド トランスコード装置、トランスコード方法及びトランスコードプログラム
CN110198474B (zh) 2018-02-27 2022-03-15 中兴通讯股份有限公司 一种码流处理方法及装置
CN110474711B (zh) * 2018-05-11 2021-11-09 Tcl华星光电技术有限公司 编码方法、设备及可读存储介质
BR122021010905A2 (pt) * 2018-10-05 2021-07-20 Lg Electronics Inc. Método de decodificação de imagem realizado por um aparelho de decodificação, método de codificação de imagem realizado por um aparelho de codificação, mídia de armazenamento não transitória legível por computador, aparelho de decodificação para decodificação de imagem e aparelho de codificação para codificação de imagem
CN113037733A (zh) * 2021-03-01 2021-06-25 安徽商信政通信息技术股份有限公司 航空航天涉密数据的非物理接触无损传递的方法及系统
CN115002367B (zh) * 2022-04-21 2024-09-20 昆明物理研究所 一种两步式单斜率模拟-数字转换电路及转换方法

Family Cites Families (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2443769A2 (fr) 1978-12-08 1980-07-04 Telediffusion Fse Compression et expansion (quantification) de signaux numeriques de television a codage differentiel
DE3613343A1 (de) 1986-04-19 1987-10-22 Philips Patentverwaltung Hybrid-codierer
US4825448A (en) 1986-08-07 1989-04-25 International Mobile Machines Corporation Subscriber unit for wireless digital telephone system
US5187755A (en) 1988-06-30 1993-02-16 Dainippon Screen Mfg. Co., Ltd. Method of and apparatus for compressing image data
EP0441980B1 (en) 1989-09-04 1997-04-09 Fujitsu Limited Time-division multiplex data relay exchange system
EP0492528B1 (en) 1990-12-27 1996-10-09 Kabushiki Kaisha Toshiba Recording/reproducing apparatus
US5260783A (en) 1991-02-21 1993-11-09 Gte Laboratories Incorporated Layered DCT video coder for packet switched ATM networks
US5148272A (en) 1991-02-27 1992-09-15 Rca Thomson Licensing Corporation Apparatus for recombining prioritized video data
US5212549A (en) 1991-04-29 1993-05-18 Rca Thomson Licensing Corporation Error concealment apparatus for a compressed video signal processing system
US5227878A (en) 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
US5327520A (en) 1992-06-04 1994-07-05 At&T Bell Laboratories Method of use of voice message coder/decoder
JP3196906B2 (ja) 1992-08-21 2001-08-06 富士ゼロックス株式会社 画像信号の符号化装置
JP3358835B2 (ja) 1992-12-14 2002-12-24 ソニー株式会社 画像符号化方法及び装置
JP3163830B2 (ja) 1993-03-29 2001-05-08 ソニー株式会社 画像信号伝送方法及び装置
TW301098B (ko) 1993-03-31 1997-03-21 Sony Co Ltd
JPH06292019A (ja) 1993-04-02 1994-10-18 Fujitsu Ltd 画像データ圧縮装置と画像符号圧縮装置
JP3085024B2 (ja) 1993-06-01 2000-09-04 松下電器産業株式会社 画像再圧縮器及び画像記録装置
JPH0795584A (ja) 1993-07-30 1995-04-07 Matsushita Electric Ind Co Ltd 画像符号化装置
NL9301358A (nl) * 1993-08-04 1995-03-01 Nederland Ptt Transcodeerinrichting.
JP3081425B2 (ja) 1993-09-29 2000-08-28 シャープ株式会社 映像符号化装置
US5452006A (en) * 1993-10-25 1995-09-19 Lsi Logic Corporation Two-part synchronization scheme for digital video decoders
KR970003789B1 (ko) 1993-11-09 1997-03-21 한국전기통신공사 비디오 부호기의 전송율을 제어하기 위한 비트 할당 방법
EP0656729B1 (en) 1993-12-01 2000-02-09 Matsushita Electric Industrial Co., Ltd. Method and apparatus for editing or mixing compressed pictures
US5537440A (en) 1994-01-07 1996-07-16 Motorola, Inc. Efficient transcoding device and method
US5500678A (en) 1994-03-18 1996-03-19 At&T Corp. Optimized scanning of transform coefficients in video coding
US5563593A (en) 1994-03-18 1996-10-08 Lucent Technologies Inc. Video coding with optimized low complexity variable length codes
US5754235A (en) 1994-03-25 1998-05-19 Sanyo Electric Co., Ltd. Bit-rate conversion circuit for a compressed motion video bitstream
US5715009A (en) * 1994-03-29 1998-02-03 Sony Corporation Picture signal transmitting method and apparatus
US5541852A (en) * 1994-04-14 1996-07-30 Motorola, Inc. Device, method and system for variable bit-rate packet video communications
US5534937A (en) * 1994-04-14 1996-07-09 Motorola, Inc. Minimum-delay jitter smoothing device and method for packet video communications
JPH07288804A (ja) 1994-04-18 1995-10-31 Kokusai Denshin Denwa Co Ltd <Kdd> 画像信号の再符号化装置
US5940130A (en) 1994-04-21 1999-08-17 British Telecommunications Public Limited Company Video transcoder with by-pass transfer of extracted motion compensation data
DE4416967A1 (de) 1994-05-13 1995-11-16 Thomson Brandt Gmbh Verfahren und Vorrichtung zur Transcodierung von Bitströmen mit Videodaten
DE69535553T2 (de) 1994-06-17 2007-12-06 Snell & Wilcox Ltd., Havant Videokompression
GB9413001D0 (en) 1994-06-28 1994-08-17 Ntl Methods for the synchronisation of successive digital video compression/decompression systems
DE69522861T2 (de) 1994-06-30 2002-04-11 Koninklijke Philips Electronics N.V., Eindhoven Verfahren und Einrichtung zur Codeumwandlung von codiertem Datenstrom
US5512953A (en) 1994-08-09 1996-04-30 At&T Corp. Method and apparatus for conversion of compressed bit stream representation of video signal
JPH0865663A (ja) 1994-08-19 1996-03-08 Canon Inc ディジタル画像情報処理装置
JP3629728B2 (ja) 1994-08-31 2005-03-16 ソニー株式会社 動画像信号符号化方法、動画像信号符号化装置及び動画像信号記録媒体
JP3623989B2 (ja) 1994-09-22 2005-02-23 キヤノン株式会社 画像変換方法及び装置
JP3293369B2 (ja) 1994-10-12 2002-06-17 ケイディーディーアイ株式会社 画像情報の再符号化方法及び装置
JP3058028B2 (ja) 1994-10-31 2000-07-04 三菱電機株式会社 画像符号化データ再符号化装置
US5889561A (en) 1994-11-04 1999-03-30 Rca Thomson Licensing Corporation Method and apparatus for scaling a compressed video bitstream
GB9501736D0 (en) 1995-01-30 1995-03-22 Snell & Wilcox Ltd Video signal processing
WO1996025823A2 (en) * 1995-02-15 1996-08-22 Philips Electronics N.V. Method and device for transcoding video signals
JPH08298649A (ja) 1995-04-27 1996-11-12 Oki Electric Ind Co Ltd 映像符号化・復号化システム、映像符号化装置及び映像復号化装置
US5774206A (en) 1995-05-10 1998-06-30 Cagent Technologies, Inc. Process for controlling an MPEG decoder
GB2301970B (en) * 1995-06-06 2000-03-01 Sony Uk Ltd Motion compensated video processing
AU738985B2 (en) 1996-07-15 2001-10-04 British Broadcasting Corporation, The Video signal compression
JP3956323B2 (ja) 1996-07-16 2007-08-08 Kddi株式会社 画像情報の再符号化方法及び装置
US6856650B1 (en) 1996-07-16 2005-02-15 Kokusai Denshin Denwa Co., Ltd. Method and apparatus for second or later generation coding of video signal
JPH1032830A (ja) 1996-07-16 1998-02-03 Kokusai Denshin Denwa Co Ltd <Kdd> 画像情報の再符号化方法及び装置
JPH1051766A (ja) 1996-08-05 1998-02-20 Mitsubishi Electric Corp 画像符号化データ変換装置
JP3623056B2 (ja) 1996-09-10 2005-02-23 ソニー株式会社 動画像圧縮装置
GB2318246B (en) * 1996-10-09 2000-11-15 Sony Uk Ltd Processing digitally encoded signals
GB2318472B (en) 1996-10-09 2000-11-15 Sony Uk Ltd Processing encoded signals
US6163573A (en) 1996-12-12 2000-12-19 Sony Corporation Equipment and method for compressing picture data
US5870146A (en) 1997-01-21 1999-02-09 Multilink, Incorporated Device and method for digital video transcoding
CA2286708A1 (en) 1997-05-09 1998-11-12 Neomedia Technologies, Inc. Method for embedding links to a networked resource in a transmission medium
JP3022405B2 (ja) * 1997-06-03 2000-03-21 日本電気株式会社 画像メモリ制御装置
US5907374A (en) * 1997-06-30 1999-05-25 Hewlett-Packard Company Method and apparatus for processing a compressed input bitstream representing an information signal
US6012091A (en) 1997-06-30 2000-01-04 At&T Corporation Video telecommunications server and method of providing video fast forward and reverse
US6100940A (en) 1998-01-21 2000-08-08 Sarnoff Corporation Apparatus and method for using side information to improve a coding system
GB2333656B (en) * 1998-01-22 2002-08-14 British Broadcasting Corp Compressed signals
US6574274B2 (en) 1998-02-27 2003-06-03 Sony Corporation Picture signal processing system, decoder, picture signal processing method, and decoding method
JP3724204B2 (ja) 1998-03-10 2005-12-07 ソニー株式会社 符号化装置および方法、並びに記録媒体
CA2265089C (en) * 1998-03-10 2007-07-10 Sony Corporation Transcoding system using encoding history information
EP0993644A2 (en) 1998-04-30 2000-04-19 Koninklijke Philips Electronics N.V. Transcoding of a data stream
US6167084A (en) 1998-08-27 2000-12-26 Motorola, Inc. Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals
JP2000209425A (ja) 1998-11-09 2000-07-28 Canon Inc 画像処理装置及び方法並びに記憶媒体
WO2000048402A1 (en) 1999-02-09 2000-08-17 Sony Corporation Coding system and its method, coding device and its method, decoding device and its method, recording device and its method, and reproducing device and its method
JP4295861B2 (ja) 1999-05-31 2009-07-15 株式会社東芝 トランスコーダ装置
KR100357093B1 (ko) 1999-06-02 2002-10-18 엘지전자 주식회사 동영상 압축 복원시스템에서의 오류 은폐장치 및 방법
GB9920929D0 (en) 1999-09-03 1999-11-10 Sony Uk Ltd Video signal processor
JP3694888B2 (ja) 1999-12-03 2005-09-14 ソニー株式会社 復号装置および方法、符号化装置および方法、情報処理装置および方法、並びに記録媒体
US6369722B1 (en) 2000-03-17 2002-04-09 Matra Nortel Communications Coding, decoding and transcoding methods
FR2809573B1 (fr) 2000-05-26 2002-08-16 Thomson Broadcast Systems Procede de codage d'un flux d'images video
US20020016755A1 (en) * 2000-07-17 2002-02-07 Pearce Kenneth F. Method of establishing a commercial relationship between a service provider and a potential customer of the service, including a reasoning criterion, and method of face-to-face advertising in a public place
JP3632591B2 (ja) 2000-11-13 2005-03-23 日本電気株式会社 画像処理装置、方法及びコンピュータ読み取り可能な記録媒体
CN1320809C (zh) 2001-08-29 2007-06-06 佳能株式会社 图像处理装置与方法
JP4196726B2 (ja) * 2003-05-14 2008-12-17 ソニー株式会社 画像処理装置および画像処理方法、記録媒体、並びに、プログラム
JP2005304065A (ja) 2005-05-16 2005-10-27 Sony Corp 復号装置および復号方法、符号化装置および符号化方法、情報処理装置および情報処理方法、並びに、記録媒体

Also Published As

Publication number Publication date
US7680187B2 (en) 2010-03-16
JP3672185B2 (ja) 2005-07-13
KR100571307B1 (ko) 2006-04-17
KR100571687B1 (ko) 2006-04-18
ES2569491T3 (es) 2016-05-11
EP1069779B1 (en) 2016-04-13
US8681868B2 (en) 2014-03-25
CN1241416C (zh) 2006-02-08
EP1069779A4 (en) 2007-10-10
US7236526B1 (en) 2007-06-26
US20080043839A1 (en) 2008-02-21
EP1069779A1 (en) 2001-01-17
CN1294820A (zh) 2001-05-09
KR20010042575A (ko) 2001-05-25
WO2000048402A1 (en) 2000-08-17
US20070253488A1 (en) 2007-11-01

Similar Documents

Publication Publication Date Title
KR100571307B1 (ko) 코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법
KR100766740B1 (ko) 부호화 히스토리 정보를 이용하는 데이터 변환 장치 및 방법
JP3724205B2 (ja) 復号装置および方法、並びに記録媒体
JP3874153B2 (ja) 再符号化装置および再符号化方法、符号化装置および符号化方法、復号装置および復号方法、並びに、記録媒体
JP3724204B2 (ja) 符号化装置および方法、並びに記録媒体
JP3724203B2 (ja) 符号化装置および方法、並びに記録媒体
JP3890838B2 (ja) 符号化ストリーム変換装置、および、符号化ストリーム変換方法、並びに、記録媒体
JP4139983B2 (ja) 符号化ストリーム変換装置、および、符号化ストリーム変換方法、並びに、ストリーム出力装置、および、ストリーム出力方法
JP4016290B2 (ja) ストリーム変換装置およびストリーム変換方法、符号化装置および符号化方法、並びに、記録媒体
JP4539637B2 (ja) ストリーム記録装置およびストリーム記録方法、ストリーム再生装置およびストリーム再生方法、ストリーム伝送装置およびストリーム伝送方法、並びに、プログラム格納媒体
JP4482811B2 (ja) 記録装置及び方法
JP4016294B2 (ja) 符号化装置および符号化方法、ストリーム変換装置およびストリーム変換方法、並びに記録媒体
JP4543321B2 (ja) 再生装置及び方法
JP3817951B2 (ja) ストリーム伝送装置および方法、並びに記録媒体
JP4478630B2 (ja) 復号装置および復号方法、プログラム、並びに記録媒体
JP3817952B2 (ja) 再符号化装置および方法、符号化装置および方法、並びに記録媒体
JP4016348B2 (ja) ストリーム変換装置およびストリーム変換方法、並びに、記録媒体
JP4016349B2 (ja) ストリーム変換装置およびストリーム変換方法、並びに、記録媒体
JP4016347B2 (ja) ストリーム変換装置およびストリーム変換方法、並びに、記録媒体
JP3724202B2 (ja) 画像データ処理装置および方法、並びに記録媒体
JP4016293B2 (ja) 符号化装置および符号化方法、並びに記録媒体
JP2007124703A (ja) 復号装置および復号方法、伝送装置および伝送方法、並びに記録媒体
JP2000059770A (ja) データ伝送装置および方法、並びに提供媒体
JP2007124704A (ja) 復号装置および復号方法、伝送装置および伝送方法、並びに、記録媒体

Legal Events

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

Payment date: 20120402

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130329

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee