KR20020026184A - 복호 장치 및 복호 방법, 기록 매체, 및 프로그램 - Google Patents

복호 장치 및 복호 방법, 기록 매체, 및 프로그램 Download PDF

Info

Publication number
KR20020026184A
KR20020026184A KR1020017016037A KR20017016037A KR20020026184A KR 20020026184 A KR20020026184 A KR 20020026184A KR 1020017016037 A KR1020017016037 A KR 1020017016037A KR 20017016037 A KR20017016037 A KR 20017016037A KR 20020026184 A KR20020026184 A KR 20020026184A
Authority
KR
South Korea
Prior art keywords
decoding
slice
stream
picture
frame
Prior art date
Application number
KR1020017016037A
Other languages
English (en)
Other versions
KR100796085B1 (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 KR20020026184A publication Critical patent/KR20020026184A/ko
Application granted granted Critical
Publication of KR100796085B1 publication Critical patent/KR100796085B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • 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

Landscapes

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

Abstract

픽쳐층의 파라미터의 입력을 받은 슬라이스 디코더 제어 회로(46)는, 슬라이스 디코더(47)에 픽쳐층의 파라미터와 슬라이스 1의 기입 포인터를, 슬라이스 디코더(48)에 픽쳐층의 파라미터와 슬라이스 2의 기입 포인터를, 슬라이스 디코더(49)에 픽쳐층의 파라미터와 슬라이스 3의 기입 포인터를 각각 순서대로 공급하여 디코드시킨다. 슬라이스 디코더 제어 회로(46)는 슬라이스 디코더(47 내지 49)로부터 입력되는 디코드 처리의 완료를 나타내는 신호의 입력을 기초로, 타이밍 A에서 슬라이스 디코더(48)에 슬라이스 4의 기입 포인터를 공급하여 디코드시키고, 타이밍 B에서 슬라이스 디코더(49)에 슬라이스 5의 기입 포인터를 공급하여 디코드시키며, 이하, 최후의 슬라이스의 디코드가 종료될 때까지 동일한 처리가 반복된다. 이에 따라, 복수의 슬라이스 디코더의 동작을 제어한다.

Description

복호 장치 및 복호 방법, 기록 매체, 및 프로그램{DECODER AND DECODING METHOD, RECORDED MEDIUM, AND PROGRAM}
MPEG2(Moving Picture Coding Experts Group/Moving Picture Experts Group2) 비디오는 ISO/IEC(International Standards Organization/International Electrotechnical Commission) 13818-2 및 ITU-T(International Telecommunication Union-Telecommunication sector) 권고 H.262에 규정되어 있는 비디오 신호의 고능률 부호화 방식이다.
MPEG2의 부호화 스트림은 부호화의 방법에 의해 결정되는 프로파일과, 처리하는 화소 수에 의해 결정되는 레벨에 의해 클래스 분류되어, 광범위한 어플리케이션에 대응할 수 있도록 이루어져 있다. 예를 들면, MP@ML(메인 프로파일 메인 레벨)은 그 클래스의 하나이며, DVB(Digital Video Broadcast)나, DVD(Digital Versatile Disk)에 널리 실용화되어 있다. 프로파일 및 레벨은, 도 5를 이용하여 후술하는 sequence_extension에 기술된다.
또한, 방송국에서의 비디오 신호의 제작에는, 비디오의 색차 신호를 종래의 기저 대역과 마찬가지의 4 : 2 : 2 방식으로 처리하고, 비트 레이트의 상한을 증가시킨 4 : 2 : 2 P(4 : 2 : 2 프로파일)가 규정되어 있다. 또한, 차세대의 고해상도 비디오 신호에 대응하기 위해, HL(하이 레벨)이 규정되어 있다.
도 1은 MPEG2의 대표적인 클래스와, 각각의 클래스에서의 각종 파라미터의 상한치를 나타낸다. 도 1에는 4 : 2 : 2 P@HL(4 : 2 : 2 프로파일 하이 레벨), 4 : 2 : 2 P@ML(4 : 2 : 2 프로파일 메인 레벨), MP@HL(메인 프로파일 하이 레벨), MP@HL-1440(메인 프로파일 하이 레벨-1440), MP@ML(메인 프로파일 메인 레벨), MP@LL(메인 프로파일 로우 레벨), 및 SP@ML(심플 프로파일 메인 레벨)에 대하여, 비트 레이트, 1 라인당의 샘플 수, 1 프레임당의 라인 수, 프레임 주파수, 및 샘플의 처리 시간의 상한치가 각각 도시되어 있다.
도 1로부터, 4 : 2 : 2 P@HL의 비트 레이트의 상한치는 300 (Mbit/sec)이고, 처리하는 화소 수의 상한치는 62,668,800 (samples/sec)이다. 한편, MP@ML의 비트 레이트의 상한치는 15 (Mbit/sec)이고, 처리하는 화소 수의 상한치는 10,368,000 (samples/sec)이다. 즉, 4 : 2 : 2 P@HL을 디코드하는 비디오 디코더는, MP@ML을 디코드하는 비디오 디코더와 비교하여, 비트 레이트에서 20배, 처리하는 화소 수에서 약 6배의 처리 능력이 필요하다는 것을 알 수 있다.
도 2는 MPEG2 비디오 비트 스트림의 레벨 구조를 나타낸다.
최상위층인 픽쳐층의 최초에는 sequence_header가 기술되어 있다. sequence_header는 MPEG 비트 스트림의 시퀀스의 헤더 데이터를 정의하는 것이다.시퀀스 최초의 sequence_header에 sequence_extension이 후속하지 않은 경우, 이 비트 스트림에는 ISO/IEC 11172-2의 규정이 적용된다. 시퀀스의 최초의 sequence_header에 sequence_extension이 후속하는 경우, 그 후 발생하는 모든 sequence_header의 직후에는 sequence_extension이 후속한다. 즉, 도 2에 도시한 경우에 있어서는, 모든 sequence_header의 직후에 sequence_extension이 후속한다.
sequence_extension은 MPEG 비트 스트림의 시퀀스층의 확장 데이터를 정의하는 것이다. sequence_extension은 sequence_header의 직후에만 발생하고, 또한, 복호 후 및 프레임 재배열 후에 프레임의 손실이 없도록 하기 위해, 비트 스트림의 마지막에 위치하는 sequence_end_code의 직전에 와서는 안된다. 또한, 비트 스트림 중에 sequence_extension이 발생한 경우, 각각의 picture_header의 직후에 picture_cording_extension이 후속한다.
GOP(group_of_picture) 내에는 복수의 화상(picture)이 포함된다. GOP_header는 MPEG 비트 스트림의 GOP층의 헤더 데이터를 정의하는 것이고, 또한, 이 비트 스트림 중에는 picture_header와 picture_coding_extension에 의해 정의된 데이터 엘리먼트가 기술되어 있다. 하나의 화상은 picture_header 및 picture_coding_extension에 후속하는 picture_data로서 부호화된다. 또한, GOP_header에 후속하는 최초의 부호화 프레임은 부호화된 I 프레임이다 (즉, GOP_header의 최초의 화상은 I 픽쳐임). ITU-T 권고 H.262에는 sequence_extension 및 picture_cording_extension 외에, 각종의 확장이 정의되어 있지만, 여기서는 그에 대한 도시 및 설명은 생략한다.
picture_header는 MPEG 비트 스트림의 픽쳐층의 헤더 데이터를 정의하는 것이고, picture_coding_extension은 MPEG 비트 스트림의 픽쳐층의 확장 데이터를 정의하는 것이다.
picture_data는 MPEG 비트 스트림의 슬라이스층 및 매크로 블럭층에 관한 데이터 엘리먼트를 기술하는 것이다. picture_data는, 도 2에 도시된 바와 같이, 복수의 slice(슬라이스)로 분할되고, 슬라이스는 복수의 macro_block(매크로 블럭)으로 분할된다.
macro_block은 16 ×16의 화소 데이터로 구성되어 있다. 슬라이스의 최초의 매크로 블럭 및 최후의 매크로 블럭은 스킵 매크로 블럭 (정보를 포함하지 않은 매크로 블럭)이 아니다. 매크로 블럭은 16 ×16의 화소 데이터로 구성되어 있다. 또한, 각 블럭은 8 ×8의 화소 데이터로 구성되어 있다. 또한, 프레임 DCT(Discrete Cosine Transform: 이산 코사인 변환) 부호화 및 필드 DCT 부호화의 사용이 가능한 프레임 화상에서는, 프레임 부호화와 필드 부호화의 경우에 매크로 블럭의 내부 구성이 상위하다.
매크로 블럭은 휘도 성분 및 색차 성분의 1 구획을 포함한다. 매크로 블럭이라는 용어는 정보원 및 복호 데이터 또는 대응하는 부호화 데이터 성분 중 어느 하나를 나타낸다. 매크로 블럭에는 4 : 2 : 0, 4 : 2 : 2, 및 4 : 4 : 4라는 3개의 색차 포맷이 있다. 매크로 블럭에서의 블럭의 순서는 각각의 색차 포맷에 따라 다르다.
도 3a는 4 : 2 : 0 방식의 경우에 있어서의 매크로 블럭을 나타낸다. 4 : 2: 0 방식의 경우, 매크로 블럭은 4개의 휘도(Y) 블럭과, 각각 1개의 색차(Cb, Cr) 블럭으로 구성된다. 도 3b는 4 : 2 : 2 방식의 경우에 있어서의 매크로 블럭을 나타낸다. 4 : 2 : 2 방식의 경우, 매크로 블럭은 4개의 휘도(Y) 블럭과, 각각 2개의 색차(Cb, Cr) 블럭으로 구성된다.
각 매크로 블럭은 몇 개의 방법에 의해 예측 부호화 처리가 가능하다. 예측 모드는 필드 예측과 프레임 예측의 2종류로 대별된다. 필드 예측에서는 먼저 복호된 하나 혹은 복수의 필드의 데이터를 사용하고, 각 필드에 대하여 독자적으로 예측을 행한다. 프레임 예측은 먼저 복호된 하나 혹은 복수의 프레임을 사용하여 프레임의 예측을 행한다. 필드 화상 내에서는 예측은 모두 필드 예측이다. 한편, 프레임 화상에서는 필드 예측, 또는 프레임 예측 중 어느 하나에 의해 예측이 가능하고, 그 예측 방법은 매크로 블럭마다 선택된다. 또한, 매크로 블럭의 예측 부호화 처리에서는 필드 예측 및 프레임 예측 이외에, 16 ×8 움직임 보상 및 이중 프라임의 2종류의 특별 예측 모드를 사용할 수 있다.
움직임 벡터 정보 및 다른 주변 정보는 각 매크로 블럭의 예측 오차 신호와 함께 부호화된다. 움직임 벡터의 부호화에 대해서는 가변 길이 부호를 사용하여 부호화된 최후의 움직임 벡터를 예측 벡터로 하여, 예측 벡터와의 차분 벡터를 부호화한다. 표시 가능한 벡터의 최대 길이는 화상마다 프로그램할 수 있다. 또한, 적절한 움직임 벡터의 계산은 부호기가 행한다.
그리고, picture_data의 다음에는 sequence_header와 sequence_extension이 배치되어 있다. 이 sequence_header와 sequence_extension에 의해 기술된 데이터엘리먼트는 비디오 스트림의 시퀀스의 선두에 기술된 sequence_header와 sequence_extension에 의해 기술된 데이터 엘리먼트와 매우 동일하다. 이와 같이 동일한 데이터를 스트림 내에 기술하는 이유는, 비트 스트림 수신 장치측에서 데이터 스트림의 도중 (예를 들면 픽쳐층에 대응하는 비트 스트림 부분)으로부터 수신이 개시된 경우에, 시퀀스층의 데이터를 수신할 수 없게 되어 스트림을 디코드할 수 없게 되는 것을 방지하기 위해서이다.
최후의 sequence_header와 sequence_extension에 의해 정의된 데이터 엘리먼트의 다음 즉, 데이터 스트림의 마지막에는 시퀀스의 끝을 나타내는 32 비트의 sequence_end_code가 기술되어 있다.
다음으로, 도 4 내지 도 12를 이용하여 각각의 데이터 엘리먼트의 상세에 대하여 설명한다.
도 4는 sequence_header의 데이터 구성을 나타낸다. sequence_header에 포함되는 데이터 엘리먼트는 sequence_header_code, 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는 시퀀스층의 개시 동기 코드를 나타내는 데이터이다. horizontal_size_value는 화상의 수평 방향의 화소 수의 하위 12 비트로 이루어진데이터이다. vertical_size_value는 화상의 세로의 라인 수의 하위 12 비트로 이루어진 데이터이다. aspect_ratio_information은 화소의 어스펙트비 (종횡비) 또는 표시 화면 어스펙트비를 나타내는 데이터이다. frame_rate_code는 화상의 표시 주기를 나타내는 데이터이다. bit_rate_value는 발생 비트량에 대한 제한을 위한 비트 레이트의 하위 18 비트의 데이터이다.
그리고, marker_bit는 개시 코드 에뮬레이션을 방지하기 위해 삽입되는 비트 데이터이다. vbv_buffer_size_value는 발생 부호량 제어용의 가상 버퍼 VBV(Video Buffering Verifier)의 크기를 결정하는 값의 하위 10 비트 데이터이다. constrained_parameter_flag는 각 파라미터가 제한 이내인 것을 나타내는 데이터이다. load_non_intra_quantiser_matrix는 비인트라 MB용 양자화 매트릭스 데이터의 존재를 나타내는 데이터이다.
load_intra_quantiser_matrix는 인트라 MB용 양자화 매트릭스 데이터의 존재를 나타내는 데이터이다. intra_quantiser-matrix는 인트라 MB용 양자화 매트릭스의 값을 나타내는 데이터이다. non_intra_quantiser_matrix는 비인트라 MB용 양자화 매트릭스의 값을 나타내는 데이터이다.
도 5는 sequence_extension의 데이터 구성을 나타낸다. sequence_extension은 extension_start_code, extension_start_code_identifier, profile_and_level_indication, progressive_sequence, chroma_format, horizontal_size_extension, vertical_size_extension, bit_rate_extension, marker_bit, vbv_buffer_size_extension, low_delay, frame_rate_extension_n, 및frame_rate_ex tension_d 등의 데이터 엘리먼트로 구성되어 있다.
extension_start_code는 확장 데이터의 개시 동기 코드를 나타내는 데이터이다. extension_start_code_identifier는 어떤 확장 데이터가 송신되는지를 나타내는 데이터이다. 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 비트의 데이터이다. marker_bit는 개시 코드 에뮬레이션을 방지하기 위해 삽입되는 비트 데이터이다. 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와 조합하여 프레임 레이트를 얻기 위한 데이터이다.
도 6은 GOP_header의 데이터 구성을 나타낸다. GOP_header를 나타내는 데이터 엘리먼트는 group_start_code, time_code, closed_gop, 및 broken_link로 구성된다.
group_start_code는 GOP층의 개시 동기 코드를 나타내는 데이터이다. time_code는 GOP의 선두 픽쳐의 시간을 나타내는 타임 코드이다. closed_gop는 GOP 내의 화상이 다른 GOP로부터 독립 재생 가능한 것을 나타내는 플래그 데이터이다. broken_link는 편집 등을 위해 GOP 내의 선두의 B 픽쳐를 정확하게 재생할 수 없는 것을 나타내는 플래그 데이터이다.
도 7은 picture_header의 데이터 구성을 나타낸다. 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는 픽쳐의 표시순을 나타내는 번호로 GOP의 선두에서 리세트되는 데이터이다. picture_coding_type는 픽쳐 타입을 나타내는 데이터이다. vbv_delay는 랜덤 액세스 시의 가상 버퍼의 초기 상태를 나타내는 데이터이다. full_pel_forward_vector, forward_f_code, full_pel_backward_vector, 및 backward_f_code는 MPEG2에서는 사용되지 않은 고정 데이터이다.
도 8은 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_pred_frame_dct, concealment_motion_vectors, q_scale_type, intra_vlc_format, alternate_scan, repeat_first_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 계수의 정밀도를 나타내는 데이터이다. 블럭 내의 각 화소의 휘도 및 색차 신호를 나타낸 행렬 f에 DCT를 실시하면, 8 ×8의 DCT 계수 행렬 F가 얻어진다. 이 행렬 F의 좌측 위 코너의 계수를 DC 계수라고 한다. DC 계수는 블럭 내의 평균 휘도, 평균 색차를 나타내는 신호이다. picture_structure는 프레임 구조인지 필드 구조인지를 나타내는 데이터이고, 필드 구조인 경우에는 상위 필드인지 하위 필드인지를 나타내는 데이터이다. top_field_first는 프레임 구조인 경우, 최초의 필드가 상위인지 하위인지를 나타내는 데이터이다. frame_predictive_frame_dct는 프레임 구조인 경우, 프레임 모드 DCT의 예측이 프레임 모드만인 것을 나타내는 데이터이다.concealment_motion_vectors는 인트라 매크로 블럭에 전송 에러를 은폐하기 위한 움직임 벡터가 첨부되어 있는 것을 나타내는 데이터이다.
q_scale_type는 선형 양자화 스케일을 이용하는지, 비선형 양자화 스케일을 이용하는지를 나타내는 데이터이다. intra_vlc_format는 인트라 매크로 블럭에 다른 2차원 VLC(Variable Length Cording)를 사용하는지의 여부를 나타내는 데이터이다. alternate_scan은 지그재그 스캔을 사용할지, 교번 스캔을 사용할지의 선택을 나타내는 데이터이다. repeat_first_field는 2 : 3 풀다운일 때에 사용되는 데이터이다. chroma_420_type는 신호 포맷이 4 : 2 : 0인 경우, 다음의 progressive_frame과 동일한 값이고, 그렇지 않은 경우에는 0을 나타내는 데이터이다. progressive_frame은 이 픽쳐가 순차 주사인지 인터레이스 필드인지를 나타내는 데이터이다. composite_display_flag는 소스 신호가 컴포지트 신호인지의 여부를 나타내는 데이터이다. v_axis, field_sequence, sub_carrier, burst_amplitude, 및 sub_carrier_phase는 소스 신호가 컴포지트 신호인 경우에 사용되는 데이터이다.
도 9는 picture_data의 데이터 구성을 나타낸다. picture_data() 함수에 의해 정의되는 데이터 엘리먼트는 slice() 함수에 의해 정의되는 데이터 엘리먼트이다. 이 slice() 함수에 의해 정의되는 데이터 엘리먼트는 비트 스트림 중에 적어도 하나 기술되어 있다.
slice() 함수는, 도 10에 도시된 바와 같이, slice_start_code, quantiser_scale_code, intra_slice_flag, intra_slice, reserved_bits,extra_bit_slice, 및 extra_information_slice 등의 데이터 엘리먼트와, macroblock() 함수에 의해 정의된다.
slice_start_code는 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() 함수는, 도 11에 도시한 바와 같이, macroblock_escape, macroblock_address_increment, quantiser_scale_code, 및 marker_bit 등의 데이터 엘리먼트와, macroblock_modes() 함수, motion_vectors(s)함수, 및 coded_block_pattern() 함수에 의해 정의된 데이터 엘리먼트를 기술하기 위한 함수이다.
macroblock_escape는 참조 매크로 블럭과 이전의 매크로 블럭과의 수평 방향의 차가 34 이상인지의 여부를 나타내는 고정 비트 열이다. 참조 매크로 블럭과 이전의 매크로 블럭과의 수평 방향의 차가 34 이상인 경우에는 macroblock_address_ increment의 값에 33이 더해진다. macroblock_address_increment는 참조 매크로 블럭과 이전의 매크로 블럭과의 수평 방향의 차를 나타내는 데이터이다. 만일, macroblock_address_increment의 앞에 macroblock_escape가 하나 존재하는 것이면, 이 macroblock_address_increment의 값에 33을 더한 값이 실제의 참조 매크로 블럭과 이전의 매크로 블럭과의 수평 방향의 차분을 나타내는 데이터로 된다.
quantiser_scale_code는 각 매크로 블럭에 설정된 양자화 스텝 사이즈를 나타내는 데이터로, macroblock_quant가 「1」일 때만 존재한다. 각 슬라이스층에는 슬라이스층의 양자화 스텝 사이즈를 나타내는 slice_quantiser_scale_code가 설정되어 있지만, 참조 매크로 블럭에 대하여 scale_code가 설정되어 있는 경우에는 이 양자화 스텝 사이즈를 선택한다.
macroblock_address_increment의 다음에는 macroblock_modes() 함수에 의해 정의되는 데이터 엘리먼트가 기술되어 있다. macroblock_modes() 함수는, 도 12에 도시한 바와 같이, macroblock_type, frame_motion_type, field_motion_type, dct_type 등의 데이터 엘리먼트를 기술하기 위한 함수이다. macroblock_type는 매크로 블럭의 부호화 타입을 나타내는 데이터이다.
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개로 필드 베이스의 예측 타입이면, frame_motion_type는 「00」이고, 예측 벡터가 1개로 필드 베이스의 예측 타입이면, frame_motion_type는 「01」이고, 예측 벡터가 1개로 프레임 베이스의 예측 타입이면, frame_motion_type는 「10」이고, 예측 벡터가 1개로 이중 프라임의 예측 타입이면, frame_motion_type는 「11」이다.
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 모드인지를 나타내는 데이터이다.
MPEG2의 스트림에 있어서, 이상 설명한 각각의 데이터 엘리먼트는 개시 코드(start code)라고 하는 특수한 비트 패턴으로 개시된다. 이들 개시 코드는 다른 상황에서는 비디오 스트림 중에 나타나지 않는 특정한 비트 패턴이다. 각 개시 코드는 개시 코드 프리픽스와, 그것에 후속하는 개시 코드치로 구성된다. 개시 코드 프리픽스는 비트 열 "0000 0000 0000 0000 0000 0001"이다. 개시 코드치는 개시 코드의 타입을 식별하는 8 비트의 정수이다.
도 13은 MPEG2의 각 개시 코드(start code)의 값을 나타낸다. 많은 개시 코드는 1개의 개시 코드치에 의해 표시된다. 그러나, slice_start_code는 01 내지 AF의 복수의 개시 코드치에 의해 표시되고, 이 개시 코드치는 슬라이스에 대한 수직 위치를 나타낸다. 이들 개시 코드는 전부 바이트 단위이기 때문에, 개시 코드 프리픽스의 최초의 비트가 바이트의 최초의 비트가 되도록, 개시 코드 프리픽스의 앞에 복수의 비트 "0"이 삽입되어, 개시 코드가 바이트 단위로 되도록 조정된다.
도 14는 종래의 MP@ML에 대응한 MPEG 비디오 디코더의 회로 구성을 나타내는 블럭도이다.
MPEG 비디오 디코더는 스트림 입력 회로(11), 버퍼 제어 회로(12), 클럭 발생 회로(13), 개시 코드 검출 회로(14), 디코더(15), 움직임 보상 회로(16), 및 표시 출력 회로(17)로 구성되는 IC(integrated circuit; 1)와, 스트림 버퍼(21), 및 비디오 버퍼(22)로 구성되고, 예를 들면, DRAM(Dynamic Random Access Memory)으로이루어진 버퍼(2)에 의해 구성된다.
IC(1)의 스트림 입력 회로(11)는 고능률 부호화된 부호화 스트림의 입력을 받아 버퍼 제어 회로(12)에 공급한다. 버퍼 제어 회로(12)는 클럭 발생 회로(13)로부터 공급되는 기본 클럭에 따라, 입력된 부호화 스트림을 버퍼(2)의 스트림 버퍼(21)에 입력한다. 스트림 버퍼(21)는 MP@ML의 디코드에 요구되는 VBV 버퍼 사이즈인 1,835,008 비트의 용량을 갖는다. 스트림 버퍼(21)에 보존되어 있는 부호화 스트림은 버퍼 제어 회로(12)의 제어에 따라, 먼저 기입된 데이터로부터 순서대로 판독되어 개시 코드 검출 회로(14)에 공급된다. 개시 코드 검출 회로(14)는 입력된 스트림으로부터 도 13을 이용하여 설명한 개시 코드를 검출하고, 검출한 개시 코드 및 입력된 스트림을 디코더(15)로 출력한다.
디코더(15)는 입력된 스트림을 MPEG 구문에 기초하여 디코드한다. 디코더(15)는 입력된 개시 코드에 따라, 우선, 픽쳐층의 헤더 파라미터를 디코드하고, 그것을 기초로 슬라이스층을 매크로 블럭으로 분리하여 매크로 블럭을 디코드하고, 그 결과 얻어지는 예측 벡터 및 화소를 움직임 보상 회로(16)로 출력한다.
MPEG에서는 화상의 시간적 용장성을 이용하여, 근접한 화상간에서 움직임 보상을 행한 차분을 얻음으로써 부호화 효율을 개선하고 있다. MPEG 비디오 디코더에서는, 움직임 보상을 이용한 화소에 대해서는 현재 디코드하고 있는 화소에 그 움직임 벡터가 나타내는 참조 화상의 화소 데이터를 가산함으로써 움직임 보상을 행하여, 부호화 이전의 화상 데이터로 복호한다.
디코더(15)로부터 출력되는 매크로 블럭이 움직임 보상을 사용하고 있지 않은 경우, 움직임 보상 회로(16)는 그 화소 데이터를 버퍼 제어 회로(12)를 통해 버퍼(2)의 비디오 버퍼(22)에 기입하여 표시 출력에 대비함과 함께, 이 화소 데이터는 다른 화상의 참조 데이터가 되는 경우에도 대비한다.
디코더(15)로부터 출력되는 매크로 블럭이 움직임 보상을 사용하고 있는 경우, 움직임 보상 회로(16)는 디코더(15)로부터 출력되는 예측 벡터에 따라, 버퍼 제어 회로(12)를 통해 버퍼(2)의 비디오 버퍼(22)로부터 참조 화소 데이터를 판독한다. 그리고, 판독한 참조 화소 데이터를 디코더(15)로부터 공급된 화소 데이터에 가산하여, 움직임 보상을 행한다. 움직임 보상 회로(16)는 움직임 보상을 행한 화소 데이터를 버퍼 제어 회로(12)를 통해 버퍼(2)의 비디오 버퍼(22)에 기입하여, 표시 출력에 대비함과 함께, 이 화소 데이터는 다른 화소의 참조 데이터로 되는 경우에도 대비한다.
표시 출력 회로(17)는 디코드한 화상 데이터를 출력하기 위한 동기 타이밍 신호를 발생하고, 이 타이밍을 기초로, 버퍼 제어 회로(12)를 통해 비디오 버퍼(22)로부터 화소 데이터를 판독하여, 복호 비디오 신호로서 출력한다.
이상 설명한 바와 같이, MPEG2 스트림은 계층 구조를 갖고 있다. 도 2를 이용하여 설명한 픽쳐층의 sequence_header 내지 picture_coding_extension의 데이터는, 도 1을 이용하여 설명한 프로파일 및 레벨이 상이한 경우에 있어서도 그 데이터량은 그다지 변경되지 않는다. 한편, 슬라이스층 이하의 데이터량은 부호화하는 화소 수에 의존한다.
도 1로부터, HL에 있어서, 하나의 픽쳐로 처리해야만 하는 매크로 블럭의 수는 ML에 대하여 약 6배로 된다. 또한, 도 3b로부터, 4 : 2 : 2 P에 있어서, 1개의 매크로 블럭에서 처리하는 블럭의 수는 MP의 4/3배로 된다.
즉, 도 14를 이용하여 설명한 MP@ML에 대응한 비디오 디코더에서, 4 : 2 : 2 P@HL의 부호화 스트림을 복호하려고 한 경우, VBV 버퍼 사이즈 및 화소 수의 증가에 따라 스트림 버퍼(21)의 버퍼 사이즈가 부족하다. 또한, 비트 레이트의 증가에 따라 입력 스트림의 스트림 버퍼(21)로의 액세스가 증가되고, 화소 수의 증가에 따라 움직임 보상 회로(16)의 비디오 버퍼(22)로의 액세스가 증가되기 때문에, 버퍼 제어 회로(12)의 제어가 제시간에 이루어지지 않는다. 또한, 비트 레이트의 증가, 매크로 블럭 및 블럭 수의 증가에 따라, 디코더(15)의 처리가 제시간에 이루어지지 않는다.
오늘날의 반도체 기술의 진전에 의해, 신호 처리 회로, 메모리 (버퍼) 회로 모두 그 동작 속도는 현저하게 향상되어 있다. 그러나, 현재의 ML@MP의 복호 기술에서는 4 : 2 : 2 P@HL을 복호하는 데까지는 이르고 있지 않다. 일반적으로, 이러한 고속 신호 처리를 행하려고 한 경우, 회로 규모가 대폭 증가되어 부품 점수의 증가 및 소비 전력의 증가를 초래하게 된다.
본 발명은 복호 장치 및 복호 방법, 및 기록 매체에 관한 것으로, 특히, 실현 가능한 회로 규모로 실시간 동작이 가능한 4 : 2 : 2 P@HL에 대응한 비디오 디코더를 실현할 수 있는 복호 장치 및 복호 방법 및 기록 매체에 관한 것이다.
도 1은 MPEG2의 프로파일과 레벨에 따른 각 파라미터의 상한치를 설명하기 위한 도면.
도 2는 MPEG2 비트 스트림의 계층 구조를 설명하기 위한 도면.
도 3a 및 도 3b는 매크로 블럭층을 설명하기 위한 도면.
도 4는 sequence_header의 데이터 구조를 설명하기 위한 도면.
도 5는 sequence_extension의 데이터 구조를 설명하기 위한 도면.
도 6은 GOP_header의 데이터 구조를 설명하기 위한 도면.
도 7은 picture_header의 데이터 구조를 설명하기 위한 도면.
도 8은 picture_coding_extension의 데이터 구조를 설명하기 위한 도면.
도 9는 picture_data의 데이터 구조를 설명하기 위한 도면.
도 10은 slice의 데이터 구조를 설명하기 위한 도면.
도 11은 macroblock의 데이터 구조를 설명하기 위한 도면.
도 12는 macroblock_modes의 데이터 구조를 설명하기 위한 도면.
도 13은 개시 코드를 설명하기 위한 도면.
도 14는 종래의 ML@MP의 부호화 스트림을 디코드하는 비디오 디코더의 구성을 나타내는 블럭도.
도 15는 본 발명을 적용한 비디오 디코더의 구성을 나타내는 블럭도.
도 16은 슬라이스 디코더 제어 회로의 처리에 대하여 설명하기 위한 흐름도.
도 17은 슬라이스 디코더 제어 회로의 처리의 구체예를 설명하기 위한 도면.
도 18은 움직임 보상 회로에 의한 슬라이스 디코더의 조정 처리를 설명하기 위한 흐름도.
도 19는 움직임 보상 회로에 의한 슬라이스 디코더의 조정 처리의 구체예를 설명하기 위한 도면.
도 20은 도 15의 MPEG 비디오 디코더를 구비한 재생 장치의 구성을 나타내는블럭도.
도 21은 인코더에 입력되어 부호화되는 MPEG 비디오 신호의 픽쳐 구성을 나타내는 도면.
도 22는 프레임간 예측을 이용한 MPEG의 화상 부호화의 예를 나타내는 도면.
도 23은 MPEG 부호화 스트림이 순방향으로 재생되는 경우의 복호 처리에 대하여 설명하기 위한 도면.
도 24는 MPEG 부호화 스트림이 역전 재생되는 경우의 복호 처리에 대하여 설명하기 위한 도면.
본 발명은 이러한 상황을 감안하여 이루어진 것으로, 오늘날의 반도체 기술을 이용하여 실현 가능한 회로 규모로 실시간 동작이 가능한 4 : 2 : 2 P@HL에 대응한 비디오 디코더를 실현할 수 있도록 하는 것이다.
본 발명의 제1 복호 장치는, 부호화 스트림을 복호하는 복수의 복호 수단과,복수의 복호 수단을 병행하여 동작시키도록 제어하는 복호 제어 수단을 포함하는 것을 특징으로 한다.
복수의 복호 수단에는 복호 처리의 종료를 나타내는 신호를 복호 제어 수단에 출력시키도록 할 수 있으며, 복호 제어 수단에는 복호 처리의 종료를 나타내는 신호를 출력한 복호 수단에 부호화 스트림을 복호시키도록 제어시킬 수 있다.
부호화 스트림을 버퍼링하는 제1 버퍼 수단과, 부호화 스트림으로부터 부호화 스트림에 포함되는 소정의 정보 단위의 시작을 나타내는 개시 코드를 판독함 과 함께, 제1 버퍼 수단에 개시 코드가 보유되어 있는 위치에 관한 위치 정보를 판독하는 판독 수단과, 판독 수단에 의해 판독된 개시 코드 및 위치 정보를 버퍼링하는 제2 버퍼 수단과, 제1 버퍼 수단에 의한 부호화 스트림의 버퍼링 및 제2 버퍼 수단에 의한 개시 코드 및 위치 정보의 버퍼링을 제어하는 버퍼링 제어 수단을 더 구비하도록 할 수 있다.
부호화 스트림은 ISO/IEC 13818-2 및 ITU-T 권고 H.262에 규정된 MPEG2의 부호화 스트림으로 할 수 있다.
복수의 복호 수단에 의해 복호되어 출력된 복수의 화상 데이터 중 소정의 것을 선택하는 선택 수단과, 선택 수단에 의해 선택된 화상 데이터의 입력을 받아, 필요에 따라 움직임 보상을 실시하는 움직임 보상 수단을 더 구비하도록 할 수 있다.
복호 수단에는 복호 처리가 종료된 것을 나타내는 종료 신호를 선택 수단에 출력시키도록 할 수 있고, 선택 수단에는 복수의 복호 수단의 각각의 처리 상태에대응하는 값을 기억하는 기억 수단을 갖고, 기억 수단의 값이 전부 제1 값으로 된 경우, 복호 처리가 종료된 것을 나타내는 종료 신호를 출력하고 있는 복호 수단에 대응하는 기억 수단에 기억되어 있는 값을 제1 값으로부터 제2 값으로 변경시키고, 대응하는 기억 수단에 기억되어 있는 값이 제2 값인 복호 수단에 의해 복호된 화상 데이터 중, 어느 하나의 화상 데이터를 선택시키고, 선택된 화상 데이터를 복호한 복호 수단에 대응하는 기억 수단에 기억되어 있는 값을 제1 값으로 변경시키도록 할 수 있다.
선택 수단에 의해 선택된 화상 데이터, 또는 움직임 보상 수단에 의해 움직임 보상이 실시된 화상 데이터를 보유하는 보유 수단과, 선택 수단에 의해 선택된 화상 데이터 및 움직임 보상 수단에 의해 움직임 보상이 실시된 화상 데이터의 보유 수단에 의한 보유를 제어하는 보유 제어 수단을 더 구비시키도록 할 수 있다.
보유 수단에는 화상 데이터의 휘도 성분과 색차 성분을 각각 나누어 보유시키도록 할 수 있다.
복호 수단에 공급되는 부호화 스트림의 프레임의 순서를 변경하는 변경 수단을 더 구비시키도록 할 수 있고, 보유 수단에는 화상 시퀀스 내의 인트라 부호화 프레임 및 전 방향 예측 부호화 프레임을 합계한 프레임 수보다 적어도 2개 많은 수의 프레임을 보유시키도록 할 수 있으며, 변경 수단에는 부호화 스트림을 역전 재생시키기 위한 소정의 순서가 되도록, 부호화 스트림의 프레임의 순서를 변경시키도록 할 수 있다.
보유 수단에 의해 보유되어 있는 화상 데이터를 판독하여 출력하는 출력 수단을 더 구비시키도록 할 수 있고, 소정의 순서란 인트라 부호화 프레임, 전 방향 예측 부호화 프레임, 양 방향 예측 부호화 프레임의 순서이고, 또한, 양 방향 예측 부호화 프레임 내에서의 순서는 부호화의 순서와는 반대인 것으로 할 수 있으며, 출력 수단에는 복호 수단에 의해 복호되고, 보유 수단에 의해 보유되어 있는 양 방향 예측 부호화 프레임을 순차적으로 판독하여 출력함과 함께, 소정의 타이밍에서 보유 수단에 의해 보유되어 있는 인트라 부호화 프레임, 혹은 전 방향 예측 부호화 프레임을 판독하여, 양 방향 예측 부호화 프레임 사이의 소정의 위치에 삽입하여 출력시키도록 할 수 있다.
소정의 순서란, 출력 수단에 의해 인트라 부호화 프레임, 혹은 전 방향 예측 부호화 프레임이 출력되는 타이밍에서, 복호 수단에 의해 복호된 하나 앞의 화상 시퀀스의 인트라 부호화 프레임 혹은 전 방향 예측 부호화 프레임이 보유 수단에 의해 보유되는 순서인 것으로 할 수 있다.
부호화 스트림을 복호하기 위해 필요한 정보를 기록하는 기록 수단과, 기록 수단에 의한 정보의 기록 및 정보의 복호 수단으로의 공급을 제어하는 제어 수단을 더 구비시키도록 할 수 있고, 부호화 스트림은 정보를 포함하는 것으로 할 수 있으며, 제어 수단에는 복호 수단의 복호 처리에 필요한 정보를 선택하여, 복호 수단에 공급시키도록 할 수 있다.
제어 수단이 복호 수단에 공급하는 정보는 복호 수단에 의해 복호되어 있는 프레임에 대응하는 상위층 부호화 파라미터인 것으로 할 수 있다.
보유 수단에 의해 보유되어 있는 화상 데이터를 판독하여 출력하는 출력 수단을 더 구비시키도록 할 수 있고, 복호 수단은 부호화 스트림을 통상 재생에 필요한 처리 속도의 N배속으로 복호하는 것이 가능한 것으로 할 수 있으며, 출력 수단은 보유 수단에 의해 보유되어 있는 화상 데이터 중 N 프레임마다의 화상 데이터를 출력하는 것이 가능한 것으로 할 수 있다.
부호화 스트림을 보유하는 제1 보유 수단과, 부호화 스트림으로부터 부호화 스트림에 포함되는 소정의 정보의 단위의 시작을 나타내는 개시 코드를 판독함 과 함께, 제1 보유 수단에 개시 코드가 보유되어 있는 위치에 관한 위치 정보를 판독하는 판독 수단과, 판독 수단에 의해 판독된 개시 코드 및 위치 정보를 보유하는 제2 보유 수단과, 제1 보유 수단에 의한 부호화 스트림의 보유 및 제2 보유 수단에 의한 개시 코드 및 위치 정보의 보유를 제어하는 제1 보유 제어 수단과, 복수의 복호 수단에 의해 복호되어, 출력된 복수의 화상 데이터 중 소정의 것을 선택하는 선택 수단과, 선택 수단에 의해 선택된 화상 데이터의 입력을 받아, 필요에 따라 움직임 보상을 실시하는 움직임 보상 수단과, 선택 수단에 의해 선택된 화상 데이터, 또는 움직임 보상 수단에 의해 움직임 보상이 실시된 화상 데이터를 보유하는 제3 보유 수단과, 선택 수단에 의해 선택된 화상 데이터 및 움직임 보상 수단에 의해 움직임 보상이 실시된 화상 데이터의 제3 보유 수단에 의한 보유를 제1 보유 제어 수단과는 독립하여 제어하는 제2 보유 제어 수단을 더 구비시킬 수 있다.
본 발명의 제1 복호 방법은, 부호화 스트림을 복호하는 복수의 복호 단계와, 복수의 복호 단계의 처리를 병행하여 동작시키도록 제어하는 복호 제어 단계를 포함하는 것을 특징으로 한다.
본 발명의 제1 기록 매체에 기록되어 있는 프로그램은 부호화 스트림을 복호하는 복수의 복호 단계와, 복수의 복호 단계의 처리를 병행하여 동작시키도록 제어하는 복호 제어 단계를 포함하는 것을 특징으로 한다.
본 발명의 제1 프로그램은 부호화 스트림을 복호하는 복수의 복호 단계와, 복수의 복호 단계의 처리를 병행하여 동작시키도록 제어하는 복호 제어 단계를 포함하는 것을 특징으로 한다.
본 발명의 제2 복호 장치는, 부호화 스트림을 복호하는 복수의 슬라이스 디코더와, 복수의 슬라이스 디코더를 병행하여 동작시키도록 제어하는 슬라이스 디코더 제어 수단을 포함하는 것을 특징으로 한다.
본 발명의 제2 복호 방법은, 부호화 스트림을 복호하는 복수의 슬라이스 디코더에 의한 복호를 제어하는 복호 제어 단계와, 복호 제어 단계를 병행하여 처리시키도록 제어하는 슬라이스 디코더 제어 단계를 포함하는 것을 특징으로 한다.
본 발명의 제2 기록 매체에 기록되어 있는 프로그램은, 부호화 스트림을 복호하는 복수의 슬라이스 디코더에 의한 복호를 제어하는 복호 제어 단계와, 복호 제어 단계를 병행하여 처리시키도록 제어하는 슬라이스 디코더 제어 단계를 포함하는 것을 특징으로 한다.
본 발명의 제2 프로그램은, 부호화 스트림을 복호하는 복수의 슬라이스 디코더에 의한 복호를 제어하는 복호 제어 단계와, 복호 제어 단계를 병행하여 처리시키도록 제어하는 슬라이스 디코더 제어 단계를 포함하는 것을 특징으로 한다.
본 발명의 제3 복호 장치는, 소스 부호화 스트림의 픽쳐를 구성하는 슬라이스마다 소스 부호화 스트림을 디코드하는 복수의 슬라이스 디코더와, 복수의 슬라이스 디코더의 디코드 상태를 감시함과 함께, 복수의 슬라이스 디코더를 제어하는 제어 수단을 구비하고, 제어 수단은 픽쳐에 포함되는 슬라이스의 순서에 상관없이, 슬라이스 디코더에 의한 픽쳐의 디코드 처리가 가장 빠르게 되도록 슬라이스를 복수의 슬라이스 디코더에 할당하는 것을 특징으로 한다.
본 발명의 제3 복호 방법은, 복수의 슬라이스 디코더에 의한 소스 부호화 스트림의 픽쳐를 구성하는 슬라이스마다의 소스 부호화 스트림의 디코드 처리를 제어하는 디코드 처리 제어 단계와, 복수의 슬라이스 디코더의 디코드 상태를 감시함과 함께, 복수의 슬라이스 디코더를 제어하는 제어 단계를 포함하고, 제어 단계의 처리에서는 픽쳐에 포함되는 슬라이스의 순서에 상관없이, 슬라이스 디코더에서 실행되는 디코드 처리가 가장 빠르게 되도록 슬라이스를 복수의 슬라이스 디코더에 할당하는 것을 특징으로 한다.
본 발명의 제3 프로그램은, 복수의 슬라이스 디코더에 의한 소스 부호화 스트림의 픽쳐를 구성하는 슬라이스마다의 소스 부호화 스트림의 디코드 처리를 제어하는 디코드 처리 제어 단계와, 복수의 슬라이스 디코더의 디코드 상태를 감시함과 함께, 복수의 슬라이스 디코더를 제어하는 제어 단계를 포함하고, 제어 단계의 처리에서는 픽쳐에 포함되는 슬라이스의 순서에 상관없이, 슬라이스 디코더에서 실행되는 디코드 처리가 가장 빠르게 되도록, 슬라이스를 복수의 슬라이스 디코더에 할당하는 것을 특징으로 한다.
본 발명의 제4 복호 장치는, 소스 부호화 스트림의 픽쳐를 구성하는 슬라이스마다 소스 부호화 스트림을 디코드하는 복수의 슬라이스 디코더와, 복수의 슬라이스 디코더의 디코드 상태를 감시함과 함께, 복수의 슬라이스 디코더를 제어하는 제어 수단을 구비하고, 제어 수단은 픽쳐에 포함되는 슬라이스의 순서에 상관없이, 복수의 슬라이스 디코더 중 디코드가 종료된 슬라이스 디코더에 디코드해야 할 슬라이스를 할당하는 것을 특징으로 한다.
본 발명의 제4 복호 방법은, 복수의 슬라이스 디코더에 의한 소스 부호화 스트림의 픽쳐를 구성하는 슬라이스마다의 소스 부호화 스트림의 디코드 처리를 제어하는 디코드 처리 제어 단계와, 복수의 슬라이스 디코더의 디코드 상태를 감시함과 함께, 복수의 슬라이스 디코더를 제어하는 제어 단계를 포함하고, 제어 단계의 처리에서는 픽쳐에 포함되는 슬라이스의 순서에 상관없이, 복수의 슬라이스 디코더 중 디코드 처리 제어 단계의 처리에 의해 디코드 처리가 종료된 슬라이스 디코더에 디코드해야 할 슬라이스를 할당하는 것을 특징으로 한다.
본 발명의 제4 프로그램은, 복수의 슬라이스 디코더에 의한 소스 부호화 스트림의 픽쳐를 구성하는 슬라이스마다의 소스 부호화 스트림의 디코드 처리를 제어하는 디코드 처리 제어 단계와, 복수의 슬라이스 디코더의 디코드 상태를 감시함과 함께, 복수의 슬라이스 디코더를 제어하는 제어 단계를 포함하고, 제어 단계의 처리에서는 픽쳐에 포함되는 슬라이스의 순서에 상관없이, 복수의 슬라이스 디코더 중 디코드 처리 제어 단계의 처리에 의해 디코드 처리가 종료된 슬라이스 디코더에 디코드해야 할 슬라이스를 할당하는 것을 특징으로 한다.
본 발명의 제1 복호 장치, 복호 방법, 및 프로그램에 있어서는 부호화 스트림이 복호되고, 복호 처리를 병행하여 동작시키도록 복호 처리가 제어된다.
본 발명의 제2 복호 장치, 복호 방법, 및 프로그램에 있어서는, 부호화 스트림이 복수의 슬라이스 디코더에 의해 복호되고, 복수의 슬라이스 디코더에 의한 복호 처리가 병행하여 행해진다.
본 발명의 제3 복호 장치, 복호 방법, 및 프로그램에 있어서는, 소스 부호화 스트림의 픽쳐를 구성하는 슬라이스마다 소스 부호화 스트림이 디코드되고, 복수의 슬라이스 디코더의 디코드 상태가 감시됨과 함께, 복수의 슬라이스 디코더가 제어되고, 픽쳐에 포함되는 슬라이스의 순서에 상관없이, 슬라이스 디코더에서 실행되는 디코드 처리가 가장 빠르게 되도록, 슬라이스가 복수의 슬라이스 디코더에 할당된다.
본 발명의 제4 복호 장치, 복호 방법, 및 프로그램에 있어서는, 소스 부호화 스트림의 픽쳐를 구성하는 슬라이스마다 소스 부호화 스트림이 디코드되고, 복수의 슬라이스 디코더의 디코드 상태가 감시됨과 함께, 복수의 슬라이스 디코더가 제어되고, 픽쳐에 포함되는 슬라이스의 순서에 상관없이, 복수의 슬라이스 디코더 중 디코드가 종료된 슬라이스 디코더에 디코드해야 할 슬라이스가 할당된다.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 설명한다.
도 15는 본 발명을 적용한 MPEG 비디오 디코더의 회로 구성을 나타내는 블럭도이다.
도 15의 MPEG 비디오 디코더는 스트림 입력 회로(41), 개시 코드 검출 회로(42), 스트림 버퍼 제어 회로(43), 클럭 발생 회로(44), 픽쳐 디코더(45), 슬라이스 디코더 제어 회로(46), 슬라이스 디코더(47 내지 49), 움직임 보상 회로(50), 휘도 버퍼 제어 회로(51), 색차 버퍼 제어 회로(52), 및 표시 출력 회로(53)로 구성되는 IC(31), 스트림 버퍼(61), 및 개시 코드 버퍼(62)로 구성되고, 예를 들면, DRAM으로 이루어진 버퍼(32), 휘도 버퍼(71), 및 색차 버퍼(72)로 구성되며, 예를 들면, DRAM으로 이루어진 비디오 버퍼(33), 컨트롤러(34), 및 드라이브(35)로 구성된다.
스트림 입력 회로(41)는 고능률 부호화된 부호화 스트림의 입력을 받아, 개시 코드 검출 회로(42)에 공급한다. 개시 코드 검출 회로(42)는 입력된 부호화 스트림을 스트림 버퍼 제어 회로(43)에 공급함과 함께, 도 13을 이용하여 설명한 개시 코드를 검출하여, 그것을 기초로 그 개시 코드의 종류와, 스트림 버퍼(61)에 그 개시 코드가 기입되는 위치를 나타내는 기입 포인터를 포함하는 개시 코드 정보를 생성하고, 스트림 버퍼 제어 회로(43)에 공급한다.
클럭 발생 회로(44)는 도 14를 이용하여 설명한 클럭 발생 회로(13)의 2배의 기본 클럭을 발생하여, 스트림 버퍼 제어 회로(43)에 공급한다. 스트림 버퍼 제어 회로(43)는 클럭 발생 회로(44)로부터 공급되는 기본 클럭에 따라, 입력된 부호화 스트림을 버퍼(32)의 스트림 버퍼(61)에 기입하고, 입력된 개시 코드 정보를 버퍼(32)의 개시 코드 버퍼(62)에 기입한다.
MPEG 비디오 디코더가 4 : 2 : 2 P@HL의 MPEG 부호화 스트림을 순방향으로 재생할 수 있도록 이루어져 있는 경우, 스트림 버퍼(61)는 적어도 4 : 2 : 2 P@HL의 디코드에 요구되는 VBV 버퍼 사이즈인 47,185,920 비트의 용량을 갖고 있다. 또한, MPEG 비디오 디코더가 역전 재생을 실행할 수 있도록 이루어져 있는 경우, 스트림 버퍼(61)는 적어도 2GOP 분의 데이터를 기록할 수 있는 용량을 갖고 있다.
픽쳐 디코드(45)는 스트림 버퍼 제어 회로(43)를 통해, 개시 코드 버퍼(62)로부터 개시 코드 정보를 판독한다. 예를 들면, 디코드 개시 시는 도 2를 이용하여 설명한 sequence_header로부터 디코드가 개시되기 때문에, 픽쳐 디코더(45)는 도 4를 이용하여 설명한 개시 코드인 sequence_header_code에 대응하는 기입 포인터를 개시 코드 버퍼(62)로부터 판독하고, 그 기입 포인터를 기초로, 스트림 버퍼(61)로부터 sequence_header를 판독하여 디코드한다. 계속해서, 픽쳐 디코더(45)는 sequence_header의 판독과 마찬가지로, sequence_extension, GOP_header, picture_coding_extension 등을 스트림 버퍼(61)로부터 판독하여 디코드한다.
픽쳐 디코더(45)가 개시 코드 버퍼(62)로부터 최초의 slice_start_code를 판독한 시점에서, 그 픽쳐의 디코드에 필요한 모든 파라미터가 갖추어지게 된다. 픽쳐 디코더(45)는 디코드된 픽쳐층의 파라미터를 슬라이스 디코더 제어 회로(46)로 출력한다.
슬라이스 디코더 제어 회로(46)는 픽쳐층의 파라미터의 입력을 받아, 스트림 버퍼 제어 회로(43)를 통해, 개시 코드 버퍼(62)로부터 대응하는 슬라이스의 개시 코드 정보를 판독한다. 또한, 슬라이스 디코더 제어 회로(46)는 슬라이스 디코더(47 내지 49) 중 어느 하나에 디코드시키는 슬라이스가 부호화 스트림에 포함되는 몇번째의 슬라이스인지를 나타내는 레지스터를 갖고, 그 레지스터를 참조하면서, 픽쳐층의 파라미터와, 개시 코드 정보에 포함되는 슬라이스의 기입 포인터를 슬라이스 디코더(47 내지 49) 중 어느 하나에 공급한다. 슬라이스 디코더 제어 회로(46)가, 슬라이스 디코더(47 내지 49) 중에서 디코드를 실행시키는 슬라이스 디코더를 선택하는 처리에 대해서는 도 16 및 도 17을 이용하여 후술한다.
슬라이스 디코더(47)는 매크로 블럭 검출 회로(81), 벡터 복호 회로(82), 역 양자화 회로(83), 및 역 DCT 회로(84)로 구성되고, 슬라이스 디코더 제어 회로(46)로부터 입력된 슬라이스의 기입 포인터를 기초로, 대응하는 슬라이스를 스트림 버퍼 제어 회로(43)를 통해 스트림 버퍼(61)로부터 판독한다. 그리고, 슬라이스 디코더 제어 회로(46)로부터 입력된 픽쳐층의 파라미터에 따라, 판독한 슬라이스를 디코드하여 움직임 보상 회로(50)로 출력한다.
매크로 블럭 검출 회로(81)는 슬라이스층의 매크로 블럭을 분리하여, 각 매크로 블럭의 파라미터를 디코드하고, 가변 길이 부호화된 각 매크로 블럭의 예측 모드 및 예측 벡터를 벡터 복호 회로(82)에 공급하며, 가변 길이 부호화된 계수 데이터를 역 양자화 회로(83)에 공급한다. 벡터 복호 회로(82)는 가변 길이 부호화된 각 매크로 블럭의 예측 모드 및 예측 벡터를 디코드하여, 예측 벡터를 복원한다. 역 양자화 회로(83)는 가변 길이 부호화된 계수 데이터를 디코드하여 역 DCT 회로(84)에 공급한다. 역 DCT 회로(84)는 디코드된 계수 데이터에 역 DCT을 실시하여, 부호화 이전의 화소 데이터로 복원한다.
슬라이스 디코더(47)는 움직임 보상 회로(50)에 디코드한 매크로 블럭에 대한 움직임 보상의 실행을 요구하고 (즉, 도 15에서 REQ로 나타내는 신호를 1로 함), 움직임 보상 회로(50)로부터 움직임 보상의 실행 요구에 대한 접수를 나타내는 신호 (도 15에서 ACK로 나타내는 신호)를 받아, 디코드된 예측 벡터 및 디코드된 화소를 움직임 보상 회로(50)에 공급한다. 슬라이스 디코더(47)는 ACK 신호의 입력을 받아, 디코드된 예측 벡터 및 디코드된 화소를 움직임 보상 회로(50)에 공급한 후에, REQ 신호를 1로부터 0으로 변경한다. 그리고, 다음에 입력된 매크로 블럭의 디코드가 종료된 시점에서 REQ 신호를 다시 0으로부터 1로 변경한다.
또한, 슬라이스 디코더(48)의 매크로 블럭 검출 회로(85) 내지 역 DCT 회로(88) 및 슬라이스 디코더(49)의 매크로 블럭 검출 회로(89) 내지 역 DCT 회로(92)에 있어서도, 슬라이스 디코더(47)의 매크로 블럭 검출 회로(81) 내지 역 DCT 회로(84)와 마찬가지의 처리가 행해지기 때문에, 그에 대한 설명은 생략한다.
움직임 보상 회로(50)는 슬라이스 디코더(47 내지 49)로부터 입력된 데이터의 움직임 보상이 종료되었는지의 여부를 나타내는 Reg_REQ_A, Reg_REQ_B, 및 Reg_REQ_C의 3개의 레지스터를 갖고, 이들 레지스터의 값을 참조하면서 적절하게 슬라이스 디코더(47 내지 49) 중의 하나를 선택하여, 움직임 보상 실행 요구를 접수하고 (즉, REQ 신호에 대하여 ACK 신호를 출력하여, 예측 벡터와 화소의 입력을 받고), 움직임 보상 처리를 실행한다. 이 때, 움직임 보상 회로(50)는 슬라이스 디코더(47 내지 49) 중, 소정의 타이밍에서 REQ 신호가 1인 슬라이스 디코더(47 내지 49)에 대한 움직임 보상이 각각 1회씩 종료된 후에, 다음의 움직임 보상 요구를 접수한다. 예를 들면, 슬라이스 디코더(47)가 연속하여 움직임 보상 요구를 보내어도, 슬라이스 디코더(48) 및 슬라이스 디코더(49)의 움직임 보상이 종료될 때까지 슬라이스 디코더(47)의 2번째의 움직임 보상 요구는 접수되지 않는다. 움직임 보상 회로(50)가 슬라이스 디코더(47 내지 49)의 어느 디코더의 출력에 대하여 움직임 보상을 실행하는지를 선택하는 처리에 대해서는, 도 18 및 도 19를 이용하여 후술한다.
슬라이스 디코더(47 내지 49) 중 어느 하나로부터 입력되는 매크로 블럭이 움직임 보상을 사용하고 있지 않은 경우, 움직임 보상 회로(50)는, 그 화소 데이터가 휘도 데이터이면, 휘도 버퍼 제어 회로(51)를 통해 비디오 버퍼(33)의 휘도 버퍼(71)에 기입하고, 그 화소 데이터가 색차 데이터이면, 색차 버퍼 제어 회로(52)를 통해 비디오 버퍼(33)의 색차 버퍼(72)에 기입하여 표시 출력에 대비함과 함께, 이 화소 데이터는 다른 화상의 참조 데이터로 되는 경우에도 대비한다.
또한, 슬라이스 디코더(47 내지 49) 중 어느 하나로부터 출력되는 매크로 블럭이 움직임 보상을 사용하고 있는 경우, 움직임 보상 회로(50)는 슬라이스 디코더(47 내지 49) 중 대응하는 디코더로부터 입력되는 예측 벡터에 따라, 그 화소 데이터가 휘도 데이터이면, 휘도 버퍼 제어 회로(51)를 통해 휘도 버퍼(71)로부터 참조 화소를 판독하고, 그 화소 데이터가 색차 데이터이면, 색차 버퍼 제어 회로(52)를 통해 색차 버퍼(72)로부터 참조 화소 데이터를 판독한다. 그리고, 움직임 보상 회로(50)는 판독한 참조 화소 데이터를 슬라이스 디코더(47 내지 49) 중 어느 하나로부터 공급된 화소 데이터에 가산하고, 움직임 보상을 행한다.
움직임 보상 회로(50)는 움직임 보상을 행한 화소 데이터를, 그 화소 데이터가 휘도 데이터이면, 휘도 버퍼 제어 회로(51)를 통해 휘도 버퍼(71)에 기입하고, 그 화소 데이터가 색차 데이터이면, 색차 버퍼 제어 회로(52)를 통해 색차 버퍼(72)에 기입하여 표시 출력에 대비함과 함께, 이 화소 데이터는 다른 화소의 참조 데이터로 되는 경우에도 대비한다.
표시 출력 회로(53)는 디코드한 화상 데이터를 출력하기 위한 동기 타이밍 신호를 발생하고, 이 타이밍에 따라 휘도 버퍼 제어 회로(51)를 통해 휘도 버퍼(71)로부터 휘도 데이터를 판독하고, 색차 버퍼 제어 회로(52)를 통해 색차 버퍼(72)로부터 색차 데이터를 판독하여, 복호 비디오 신호로서 출력한다.
드라이브(35)는 컨트롤러(34)에 접속되어 있고, 필요에 따라 장착되는 자기 디스크(101), 광 디스크(102), 광 자기 디스크(103), 및 반도체 메모리(104) 등과 데이터의 송수신을 행한다. 또한, 컨트롤러(34)는 앞서 설명한 IC(31) 및 드라이브(35)의 동작을 제어하는 것이다. 컨트롤러(34)는, 예를 들면, 드라이브에 장착되어 있는 자기 디스크(101), 광 디스크(102), 광 자기 디스크(103), 및 반도체 메모리(104) 등에 기록되어 있는 프로그램에 따라, IC(31)에 처리를 실행시킬 수 있다.
다음으로, 도 16의 흐름도를 참조하여, 슬라이스 디코더 제어 회로(46)의 처리에 대하여 설명한다.
단계 S1에 있어서, 슬라이스 디코더 제어 회로(46)는, 처리하는 슬라이스가 부호화 스트림의 몇번째의 슬라이스인지를 나타내는 레지스터의 값을 N=1로 한다. 단계 S2에 있어서, 슬라이스 디코더 제어 회로(46)는 슬라이스 디코더(47)가 처리 중인지의 여부를 판단한다.
단계 S2에 있어서, 슬라이스 디코더(47)가 처리 중이 아니라고 판단된 경우, 단계 S3에 있어서, 슬라이스 디코더 제어 회로(46)는 픽쳐층의 파라미터와, 개시 코드 정보에 포함되는 슬라이스 N의 기입 포인터를 슬라이스 디코더(47)에 공급하여, 슬라이스 디코더(47)에 슬라이스 N을 디코드시키고, 처리는 단계 S8로 진행한다.
단계 S2에 있어서, 슬라이스 디코더(47)가 처리 중이라고 판단된 경우, 단계S4에 있어서, 슬라이스 디코더 제어 회로(46)는 슬라이스 디코더(48)가 처리 중인지의 여부를 판단한다. 단계 S4에 있어서, 슬라이스 디코더(48)가 처리 중이 아니라고 판단된 경우, 단계 S5에 있어서, 슬라이스 디코더 제어 회로(46)는 픽쳐층의 파라미터와, 개시 코드 정보에 포함되는 슬라이스 N의 기입 포인터를 슬라이스 디코더(48)에 공급하여, 슬라이스 디코더(48)에 슬라이스 N을 디코드시키고, 처리는 단계 S8로 진행한다.
단계 S4에 있어서, 슬라이스 디코더(48)가 처리 중이라고 판단된 경우, 단계 S6에 있어서, 슬라이스 디코더 제어 회로(46)는 슬라이스 디코더(49)가 처리 중인지의 여부를 판단한다. 단계 S6에 있어서, 슬라이스 디코더(49)가 처리 중이라고 판단된 경우, 처리는 단계 S2로 되돌아가, 그 이후의 처리가 반복된다.
단계 S6에 있어서, 슬라이스 디코더(49)가 처리 중이 아니라고 판단된 경우, 단계 S7에 있어서, 슬라이스 디코더 제어 회로(46)는 픽쳐층의 파라미터와, 개시 코드 정보에 포함되는 슬라이스 N의 기입 포인터를 슬라이스 디코더(49)에 공급하여, 슬라이스 디코더(49)에 슬라이스 N을 디코드시키고, 처리는 단계 S8로 진행한다.
단계 S8에 있어서, 슬라이스 디코더 제어 회로(46)는 처리하는 슬라이스가 부호화 스트림의 몇번째의 슬라이스인지를 나타내는 레지스터의 값을 N=N+1로 한다. 단계 S9에 있어서, 슬라이스 디코더 제어 회로(46)는 모든 슬라이스의 디코드가 종료되었는지의 여부를 판단한다. 단계 S9에 있어서, 모든 슬라이스의 디코드가 종료되어 있지 않다라고 판단된 경우, 처리는 단계 S2로 되돌아가, 그 이후의처리가 반복된다. 단계 S9에 있어서, 모든 슬라이스의 디코드가 종료되었다고 판단된 경우, 처리가 종료된다.
도 17은 도 16을 이용하여 설명한 슬라이스 디코더 제어 회로(46)의 처리의 구체예를 나타내는 도면이다. 상술한 바와 같이, 픽쳐 디코더(45)에서 픽쳐층의 데이터가 디코드되고, 그 파라미터가 슬라이스 디코더 제어 회로(46)에 공급된다. 여기서, 도 16을 이용하여 설명한 단계 S1에 있어서, 슬라이스 디코더 제어 회로(46)는 레지스터의 값을 N=1로 한다. 단계 S2에 있어서, 슬라이스 디코더(47)는 처리 중이 아니다라고 판단되기 때문에, 단계 S3에 있어서, 슬라이스 디코더 제어 회로(46)는 픽쳐층의 파라미터와, 개시 코드 정보에 포함되는 슬라이스 1의 기입 포인터를 슬라이스 디코더(47)에 공급하여, 슬라이스 디코더(47)에 슬라이스 N(N=1)을 디코드시키고, 단계 S8에 있어서, 레지스터의 값을 N=N+1로 한다. 그리고, 단계 S9에 있어서, 모든 슬라이스의 디코드가 종료되어 있지 않다고 판단되기 때문에, 처리는 단계 S2로 되돌아간다.
단계 S2에 있어서, 슬라이스 디코더(47)는 처리 중이라고 판단된다. 그리고, 단계 S4에 있어서, 슬라이스 디코더(48)는 처리 중이 아니라고 판단되기 때문에, 단계 S5에 있어서, 슬라이스 디코더 제어 회로(46)는 픽쳐층의 파라미터와, 슬라이스 2의 기입 포인터를 슬라이스 디코더(48)에 공급하여, 슬라이스 디코더(48)에 슬라이스 N(N=2)을 디코드시키고, 단계 S8에 있어서, N=N+1로 한다. 그리고, 단계 S9에 있어서, 모든 슬라이스의 디코드가 종료되어 있지 않다고 판단되기 때문에, 처리는 단계 S2로 되돌아간다.
단계 S2에 있어서, 슬라이스 디코더(47)는 처리 중이라고 판단되고, 단계 S4에 있어서, 슬라이스 디코더(48)는 처리 중이라고 판단된다. 그리고, 단계 S6에 있어서, 슬라이스 디코더(49)는 처리 중이 아니라고 판단되기 때문에, 단계 S7에 있어서, 슬라이스 디코더 처리 회로는 픽쳐층의 파라미터와, 슬라이스 3의 기입 포인터를 슬라이스 디코더(49)에 공급하여, 슬라이스 디코더(49)에 슬라이스 N(N=3)을 디코드시키고, 단계 S8에 있어서, N=N+1로 한다. 그리고, 단계 S9에 있어서, 모든 슬라이스의 디코드가 종료되어 있지 않다고 판단되기 때문에, 처리는 단계 S2로 되돌아간다.
슬라이스 디코더(47 내지 49)는 입력된 슬라이스의 디코드 처리를 실시한 후, 디코드 처리의 완료를 나타내는 신호를 슬라이스 디코더 제어 회로(46)로 출력한다. 즉, 슬라이스 디코더(47 내지 49) 중 어느 하나로부터 슬라이스 2의 디코드의 완료를 나타내는 신호가 입력될 때까지, 슬라이스 디코더(47 내지 49)는 전부 처리 중이기 때문에, 단계 S2, 단계 S4, 및 단계 S6의 처리가 반복된다. 그리고, 도 17에서 A로 나타내는 타이밍에서, 슬라이스 디코더(48)가 디코드 처리의 완료를 나타내는 신호를 슬라이스 디코더(46)로 출력한 경우, 단계 S4에 있어서, 슬라이스 디코더(48)가 처리 중이 아니라고 판단되기 때문에, 단계 S5에 있어서, 슬라이스 디코더 제어 회로(46)는 슬라이스 4의 기입 포인터를 슬라이스 디코더(48)에 공급하여, 슬라이스 디코더(48)에 슬라이스 N(N=4)을 디코드시키고, 단계 S8에 있어서, N=N+1로 한다. 그리고, 단계 S9에 있어서, 모든 슬라이스의 디코드가 종료되어 있지 않다고 판단되기 때문에, 처리는 단계 S2로 되돌아간다.
그리고, 다음으로 슬라이스 디코더(47 내지 49) 중 어느 하나로부터 디코드 처리의 완료를 나타내는 신호의 입력을 받을 때까지, 슬라이스 디코더 제어 회로(46)는 단계 S2, 단계 S4, 및 단계 S6의 처리를 반복한다. 도 17에 있어서는, 슬라이스 디코더 제어 회로(46)는 도 17에서 B로 나타내는 타이밍에서, 슬라이스 디코더(49)로부터 슬라이스 3의 디코드의 종료를 나타내는 신호의 입력을 받기 때문에, 단계 S6에 있어서, 슬라이스 디코더(49)는 처리 중이 아니라고 판단된다. 단계 S7에 있어서, 슬라이스 디코더 제어 회로(46)는 슬라이스 5의 기입 포인터를 슬라이스 디코더(49)에 공급하여, 슬라이스 디코더(49)에 슬라이스 N(N=5)을 디코드시키고, 단계 S8에 있어서, N=N+1로 한다. 그리고, 단계 S9에 있어서, 모든 슬라이스의 디코드가 종료되어 있지 않다고 판단되기 때문에, 처리는 단계 S2로 되돌아간다. 이하, 최후의 슬라이스의 디코드가 종료될 때까지, 마찬가지의 처리가 반복된다.
이와 같이, 슬라이스 디코더 제어 회로(46)는 슬라이스 디코더(47 내지 49)의 처리 상황을 참조하면서, 슬라이스의 디코드 처리를 할당하기 때문에, 복수의 디코더를 효율적으로 사용할 수 있다.
다음으로, 도 18의 흐름도를 참조하여, 움직임 보상 회로(50)에 의한 슬라이스 디코더의 조정 처리에 대하여 설명한다.
단계 S21에 있어서, 움직임 보상 회로(50)는 내부의 레지스터 Reg_REQ_A, Reg_REQ_B, 및 Reg_REQ_C를 초기화한다. 즉, Reg_REQ_A=0, Reg_REQ_B=0, Reg_REQ_C=0으로 한다.
단계 S22에 있어서, 움직임 보상 회로(50)는 레지스터의 값이 모두 0인지의 여부를 판단한다. 단계 S22에 있어서, 레지스터의 값이 모두 0이 아니라고 (즉, 하나라도 1이 있다고) 판단된 경우, 처리는 단계 S24로 진행한다.
단계 S22에 있어서, 레지스터의 값이 모두 0이라고 판단된 경우, 단계 S23에 있어서, 움직임 보상 회로(50)는 슬라이스 디코더(47 내지 49)로부터 입력되는 REQ 신호를 기초로 레지스터의 값을 갱신한다. 즉, 슬라이스 디코더(47)로부터 REQ 신호가 출력되어 있는 경우, Reg_REQ_A=1로 하고, 슬라이스 디코더(48)로부터 REQ 신호가 출력되어 있는 경우, Reg_REQ_B=1로 하며, 슬라이스 디코더(49)로부터 REQ 신호가 출력되어 있는 경우, Reg_REQ_C=1로 한다. 그리고 처리는 단계 S24로 진행한다.
단계 S24에 있어서, 움직임 보상 회로(50)는 Reg_REQ_A=1인지의 여부를 판단한다. 단계 S24에 있어서, Reg_REQ_A=1이다라고 판단된 경우, 단계 S25에 있어서, 움직임 보상 회로(50)는 슬라이스 디코더(47)에 ACK 신호를 송신하고, Reg_REQ_A=0으로 한다. 슬라이스 디코더(47)는 움직임 보상 회로(50)에 벡터 복호 회로(82)에서 복호된 예측 벡터와, 역 DCT 회로(84)에서 역 DCT된 화소를 출력한다. 그리고 처리는 단계 S30으로 진행한다.
단계 S24에 있어서, Reg_REQ_A=1이 아니다고 판단된 경우, 단계 S26에 있어서, 움직임 보상 회로(50)는 Reg_REQ_B=1인지의 여부를 판단한다. 단계 S26에 있어서, Reg_REQ_B=1이다라고 판단된 경우, 단계 S27에 있어서, 움직임 보상 회로(50)는 슬라이스 디코더(48)에 ACK 신호를 송신하고, Reg_REQ_B=0으로 한다.슬라이스 디코더(48)는 움직임 보상 회로(50)에 벡터 복호 회로(86)에서 복호된 예측 벡터와, 역 DCT 회로(88)에서 역 DCT된 화소를 출력한다. 그리고 처리는 단계 S30으로 진행한다.
단계 S26에 있어서, Reg_REQ_B=1이 아니다라고 판단된 경우, 단계 S28에 있어서, 움직임 보상 회로(50)는 Reg_REQ_C=1인지의 여부를 판단한다. 단계 S28에 있어서, Reg_REQ_C=1이 아니라고 판단된 경우, 처리는 단계 S22로 되돌아가 그 이후의 처리가 반복된다.
단계 S28에 있어서, Reg_REQ_C=1이다라고 판단된 경우, 단계 S29에 있어서, 움직임 보상 회로(50)는 슬라이스 디코더(49)에 ACK 신호를 송신하고, Reg_REQ_C=0으로 한다. 슬라이스 디코더(49)는 움직임 보상 회로(50)에 벡터 복호 회로(90)에서 복호된 예측 벡터와, 역 DCT 회로(92)에서 역 DCT된 화소를 출력한다. 그리고 처리는 단계 S30으로 진행한다.
단계 S30에 있어서, 움직임 보상 회로(50)는 슬라이스 디코더(47 내지 49) 중 어느 하나로부터 입력된 매크로 블럭은 움직임 보상을 사용하고 있는지의 여부를 판단한다.
단계 S30에 있어서, 매크로 블럭이 움직임 보상을 사용하고 있다고 판단된 경우, 단계 S31에 있어서, 움직임 보상 회로(50)는 입력된 매크로 블럭에 움직임 보상 처리를 행한다. 즉, 움직임 보상 회로(50)는 슬라이스 디코더(47 내지 49) 중 대응하는 디코더로부터 출력되는 예측 벡터에 따라, 그 화소 데이터가 휘도 데이터이면, 휘도 버퍼 제어 회로(51)를 통해 휘도 버퍼(71)로부터 참조 화소를 판독하고, 그 화소 데이터가 색차 데이터이면, 색차 버퍼 제어 회로(52)를 통해 색차 버퍼(72)로부터 참조 화소 데이터를 판독한다. 그리고, 움직임 보상 회로(50)는 판독한 참조 화소 데이터를 슬라이스 디코더(47 내지 49) 중 어느 하나로부터 공급된 화소 데이터에 가산하고, 움직임 보상을 행한다.
움직임 보상 회로(50)는 움직임 보상을 행한 화소 데이터를, 그 화소 데이터가 휘도 데이터이면, 휘도 버퍼 제어 회로(51)를 통해 휘도 버퍼(71)에 기입하고, 그 화소 데이터가 색차 데이터이면, 색차 버퍼 제어 회로(52)를 통해 색차 버퍼(72)에 기입하여 표시 출력에 대비함과 함께, 이 화소 데이터는 다른 화소의 참조 데이터로 되는 경우에도 대비한다. 그리고, 처리는 단계 S22로 되돌아가 그 이후의 처리가 반복된다.
단계 S30에 있어서, 매크로 블럭이 움직임 보상을 사용하고 있지 않다고 판단된 경우, 단계 S32에 있어서, 움직임 보상 회로(50)는, 그 화소 데이터가 휘도 데이터이면, 휘도 버퍼 제어 회로(51)를 통해 휘도 버퍼(71)에 기입하고, 그 화소 데이터가 색차 데이터이면, 색차 버퍼 제어 회로(52)를 통해 색차 버퍼(72)에 기입하여 표시 출력에 대비함과 함께, 이 화소 데이터는 다른 화상의 참조 데이터로 되는 경우에도 대비한다. 그리고, 처리는 단계 S22로 되돌아가 그 이후의 처리가 반복된다.
도 19는 도 18을 이용하여 설명한 움직임 보상 회로(50)에 의한 디코더의 조정 처리의 구체예를 나타내는 도면이다.
도 19에 도시한 타이밍 C에서, 도 18의 단계 S22의 처리에 의해 움직임 보상회로(50)의 레지스터가 모두 0이라고 판단된 경우, 슬라이스 디코더(47 내지 49)는 모두 REQ 신호를 출력하고 있기 때문에, 단계 S23의 처리에 의해, 각각의 레지스터의 값은 Reg_REQ_A=1, Reg_REQ_B=1, Reg_REQ_C=1로 갱신된다. 그리고, 단계 S24의 처리에 의해, Reg_REQ_A=1이다라고 판단되기 때문에, 단계 S25에 있어서, 움직임 보상 회로(50)는 슬라이스 디코더(47)에 ACK 신호를 출력하여, Reg_REQ_A=0으로 하고, 슬라이스 디코더(47)로부터 예측 벡터와 화소의 입력을 받아 제1 움직임 보상을 행한다.
제1 움직임 보상이 종료된 후 즉, 도 19의 D로 나타내는 타이밍에서, 처리는 다시 단계 S22로 되돌아간다. 도 19에서 D로 나타내는 타이밍에서는 슬라이스 디코더(47)로부터 REQ 신호가 출력되어 있다. 그러나, 레지스터의 값은 Reg_REQ_A=0, Reg_REQ_B=1, Reg_REQ_C=1이고, 단계 S22에 있어서, 레지스터의 값은 모두 0이 아니라고 판단되기 때문에, 처리는 단계 S24로 진행하고, 레지스터의 값은 갱신되지 않는다.
단계 S24에 있어서, Reg_REQ_A=0이다라고 판단되고, 단계 S26에 있어서, Reg_REQ_B=1이다라고 판단되기 때문에, 움직임 보상 회로(50)는, 단계 S27에 있어서, 슬라이스 디코더(48)에 ACK 신호를 출력하여, Reg_REQ_B=0으로 하고, 슬라이스 디코더(48)로부터 예측 벡터와 화소의 입력을 받아 제2 움직임 보상을 행한다.
제2 움직임 보상이 종료된 후 즉, 도 19의 E로 나타내는 타이밍에서, 처리는 다시 단계 S22로 되돌아간다. 도 19에서 E로 나타내는 타이밍에서도, 슬라이스 디코더(47)로부터 REQ 신호가 출력되어 있다. 그러나, 레지스터의 값은Reg_REQ_A=0, Reg_REQ_B=0, Reg_REQ_C=1이기 때문에, 단계 S22에 있어서, 레지스터의 값은 모두 0이 아니라고 판단되기 때문에, 도 19에서 D로 나타내는 타이밍일 때와 마찬가지로, 레지스터의 값은 갱신되지 않는다.
그리고, 단계 S24에 있어서, Reg_REQ_A=0이다라고 판단되고, 단계 S26에 있어서, Reg_REQ_B=0이다라고 판단되며, 단계 S28에 있어서, Reg_REQ_C=1이다라고 판단되기 때문에, 움직임 보상 회로(50)는 단계 S29에 있어서 슬라이스 디코더(49)에 ACK 신호를 출력하여 Reg_REQ_C=0으로 하고, 슬라이스 디코더(49)로부터 예측 벡터와 화소의 입력을 받아 제3 움직임 보상을 행한다.
제3 움직임 보상이 종료된 후 즉, 도 19의 F로 나타내는 타이밍에서, 처리는 다시 단계 S22로 되돌아간다. F로 나타내는 타이밍에서는, 레지스터의 값은 Reg_REQ_A=0, Reg_REQ-B=0, Reg_REQ_C=0이기 때문에, 단계 S23에 있어서, 레지스터의 값이 갱신되어 Reg_REQ_A=1, Reg_REQ_B=1, Reg_REQ_C=0으로 된다.
그리고, 단계 S24에 있어서, Reg_REQ_A=1이다라고 판단되고, 마찬가지의 처리에 의해 제4 움직임 보상이 실행된다.
이러한 처리를 반복함으로써, 움직임 보상 회로(50)는 슬라이스 디코더(47 내지 49)를 조정하면서, 움직임 보상을 행한다.
이상 설명한 바와 같이, 도 15의 MPEG 비디오 디코더에서는 개시 코드 버퍼(62)를 설치함으로써, 픽쳐 디코더(45) 내지 슬라이스 디코더(49)를 서로의 동작의 종료를 대기하지 않고, 스트림 버퍼(61)에 액세스시킬 수 있다. 또한, 슬라이스 디코더(47 내지 49)는 슬라이스 디코더 제어 회로(46)의 처리에 의해, 동시에동작시킬 수 있다. 또한, 움직임 보상 회로(30)는 적절하게 하나의 슬라이스 디코더를 선택하고, 각각 분리된 휘도 버퍼(71) 및 색차 버퍼(72)에 액세스하여, 움직임 보상을 행할 수 있다. 따라서, 도 15의 MPEG 비디오 디코더에서는 디코드 처리 성능 및 버퍼로의 액세스 성능이 향상되어 2 : 4 : 4 P@HL에 대한 디코드 처리가 가능해진다.
다음으로, 도 15의 MPEG 비디오 디코더에 입력된 MPEG 스트림이 복호되어 재생되는 경우의 프레임의 버퍼링에 대하여 설명한다.
도 20은 도 15의 MPEG 비디오 디코더를 구비한 재생 장치의 구성을 나타내는 블럭도이다. 또, 도 15에 있어서의 경우와 대응하는 부분에는 동일한 부호를 붙이고, 그에 대한 설명은 적절하게 생략한다.
하드디스크(112)에는 MPEG 부호화 스트림이 기록되어 있다. 서보 회로(111)는 컨트롤러(34)의 제어에 기초하여 하드디스크(112)를 구동하고, 도시하지 않은 데이터 판독부에 의해 판독된 MPEG 스트림이 IC(31)의 재생 회로(121)에 입력된다.
재생 회로(121)는 도 15를 이용하여 설명한 스트림 입력 회로(41) 내지 클럭 발생 회로(44)를 포함하는 회로로서, 순방향의 재생 시는 입력된 순서로 MPEG 스트림을 재생 스트림으로서 MPEG 비디오 디코더(122)로 출력한다. 그리고, 역방향의 재생 (역전 재생) 시에는 스트림 버퍼(61)를 이용하여, 입력된 MPEG 부호화 스트림을 역전 재생에 적합한 순서로 재배열한 후, 재생 스트림으로서 MPEG 비디오 디코더(122)로 출력한다.
MPEG 비디오 디코더(122)는 도 15를 이용하여 설명한 픽쳐 디코더(45) 내지표시 출력 회로(53)를 포함하는 회로로서, 움직임 보상 회로(50)의 처리에 의해, 필요에 따라 비디오 버퍼(33)에 축적된 복호된 프레임을 참조 화상으로서 판독하고, 움직임 보상을 실행하여 입력된 재생 스트림의 각 픽쳐 (프레임)를 상술한 방법으로 복호하여, 비디오 버퍼(33)에 축적함과 함께, 표시 출력 회로(53)의 처리에 의해, 비디오 버퍼(33)에 축적된 프레임을 순차적으로 판독하여, 도시하지 않은 표시부 혹은 표시 장치로 출력하여 표시시킨다.
여기서는, 하드디스크(112)에 축적된 MPEG 부호화 스트림을 복호하여 출력하고, 표시시키는 경우를 예로 들어 설명하였지만, 도 15의 MPEG 비디오 디코더를 구비한 재생 장치, 혹은 녹화 재생 장치는, 도 20에서 나타내는 구성과 상이한 구성 (예를 들면, 스트림 버퍼(61)와 마찬가지로, 부호화 스트림을 보유하는 기능 및 재생 회로(121)와 마찬가지로, 프레임을 재배열하는 기능을 MPEG 비디오 디코더(122)에 구비시키도록 한 구성)이라도, 기본적으로 동일한 처리에 의해 입력된 MPEG 부호화 스트림이 복호되어 출력된다.
또한, 부호화 스트림을 축적하는 축적 매체는 하드디스크(112) 이외에도, 광 디스크, 자기 디스크, 광 자기 디스크, 반도체 메모리, 자기 테이프 등, 다양한 기록 매체를 이용하는 것이 가능한 것은 물론이다.
도 21 및 도 22를 이용하여, MPEG 예측 부호화 화상의 픽쳐 구성에 대하여 설명한다.
도 21은 도시하지 않은 인코더 (부호화 장치)에 입력되어 부호화되는 MPEG 비디오 신호의 픽쳐 구성을 나타내는 도면이다.
프레임 I2는 인트라 부호화 프레임 (I 픽쳐)이고, 다른 화상을 참조하지 않고, 부호화 (인코드)가 행해진다. 이러한 프레임은 복호의 개시점인 부호화 시퀀스의 액세스 포인트를 제공하지만, 그 압축율은 그다지 높지 않다.
프레임 P5, 프레임 P8, 프레임 Pb, 및 프레임 Pe는 전 방향 예측 부호화 프레임 (P 픽쳐)으로서, 과거의 I 픽쳐 또는 P 픽쳐로부터의 움직임 보상 예측에 의해 I 픽쳐보다 효율적인 부호화가 행해진다. P 픽쳐 자신도 예측의 참조로서 사용된다. 프레임 B3, 프레임 B4, …, 프레임 Bd는 양 방향 예측 부호화 프레임으로서, I 픽쳐, P 픽쳐와 비교하여 보다 효율적으로 압축이 행해지지만, 움직임 보상을 위해서는 과거 및 장래의 참조 화상을 모두 필요로 한다. B 픽쳐가 예측의 참조로서 사용되는 경우는 없다.
도 22는 도 21을 이용하여 설명한 MPEG 부호화 화상을 생성하기 위해, 도시하지 않은 인코더에서 실행되는 프레임간 예측을 이용한 MPEG 비디오 신호의 부호화의 예 (MPEG 부호화 스트림의 예)를 나타낸다.
입력된 비디오 신호는, 예를 들면 15 프레임마다 GOP(Group of Pictures)로 분할되고, 각 GOP의 처음부터 3번째가 I 픽쳐로 되고, 이하, 3 프레임마다 출현하는 프레임이 P 픽쳐로 되며, 그 이외의 프레임이 B 픽쳐로 된다 (M=15, N=3). 그리고, 부호화에 후방 예측을 필요로 하는 B 픽쳐인 프레임 B10 및 프레임 B11이 버퍼에 일시 보존되어, I 픽쳐인 프레임 I12가 최초로 부호화된다.
프레임 I12의 부호화의 종료 후, 버퍼에 일시 보존된 프레임 B10 및 프레임 B11이 프레임 I12를 참조 화상으로 하여 부호화된다. B 픽쳐는 본래 과거와 장래의 참조 화상을 모두 참조하여 부호화되어야 하지만, 프레임 B10 및 프레임 B11과 같이, 전 방향에 참조 가능한 화상이 없는 경우, Closed GOP 플래그를 설정하여 전 방향 예측을 행하지 않고서 후 방향의 예측만으로 부호화가 행해진다.
프레임 B10 및 프레임 B11의 부호화가 행해지고 있는 동안에 입력된 프레임 B13 및 프레임 B14는 비디오 버퍼에 저장되고, 다음으로 입력된 프레임 P15가 프레임 I12를 전 방향 예측 화상으로서 참조하여 부호화된다. 그리고, 비디오 버퍼로부터 판독된 프레임 B13 및 프레임 B14는 프레임 I12를 전 방향 예측 화상으로서 참조하고, 프레임 P15를 후 방향 예측 화상으로서 참조하여 부호화된다.
계속해서, 프레임 B16 및 프레임 B17이 비디오 버퍼에 저장되고, 이하, 마찬가지로 하여 순차적으로, P 픽쳐는 전회 부호화된 I 픽쳐, 혹은 P 픽쳐를 전 방향 예측 화상으로서 참조하여 부호화되고, B 픽쳐는 일단 비디오 버퍼에 저장된 후, 이전에 부호화된 I 픽쳐, 혹은 P 픽쳐를 전 방향 예측 화상 혹은 후 방향 예측 화상으로서 참조하여 부호화된다.
이와 같이 하여, 복수의 GOP에 걸쳐 화상 데이터가 부호화되어, 부호화 스트림이 생성된다. 도 20의 하드디스크(112)에는 상술한 방법으로 부호화된 MPEG 부호화 스트림이 기록된다.
부호화 시에, DCT 변환에 의해 얻어진 DCT 계수 행렬은 통상의 화상을 DCT 변환한 경우, 저주파 성분에서는 크고, 고주파 성분에서는 작다고 하는 특징이 있다. 이 특징을 이용하여 정보의 압축을 도모하는 것이 양자화 (각 DCT 계수에 대하여 임의의 양자화 단위로 나누어, 소수점 이하를 사사오입함)이다. 양자화 단위는 8 ×8의 양자화 테이블로서 설정되고, 저주파 성분에 대해서는 작은 값, 고주파 성분에 대해서는 큰 값이 설정된다. 양자화의 결과, 행렬의 좌측 위 이외의 성분은 대부분 0으로 된다. 그리고, 양자화 매트릭스에 대응하는 양자화 ID가 압축 데이터에 부가되어 복호측으로 넘겨진다. 즉, 도 20의 MPEG 비디오 디코더(122)는 양자화 ID로부터 양자화 매트릭스를 참조하여, MPEG 부호화 스트림을 복호한다.
다음으로, 도 23을 이용하여, 하드 디스크(112)로부터 순방향으로 비디오 데이터를 재생하는 경우에 GOP1 내지 GOP3의 부호화 스트림이 재생 회로(121)에 입력되고, MPEG 비디오 디코더(122)의 처리에 의해 복호되는 처리에 대하여 설명한다. 이 도 23은 프레임간 예측을 사용한 MPEG 복호예를 나타내고 있다.
순방향 재생을 위해 하드디스크(112)로부터 재생 회로(121)에 입력되는 MPE G 비디오 스트림은, 재생 회로(121)의 처리에 의해, 입력된 순서와 동일한 픽쳐 배열의 재생 스트림으로서 MPEG 비디오 디코더(122)로 출력된다. MPEG 비디오 디코더(122)에 있어서, 재생 스트림은 도 15 내지 도 19를 이용하여 설명한 수순에 따라 복호되어, 비디오 버퍼(33)에 축적된다.
최초로 입력된 프레임 I12는 I 픽쳐이기 때문에, 복호에 참조 화상을 필요로 하지 않는다. MPEG 비디오 디코더(122)에 있어서 복호된 프레임 I12가 축적되는 비디오 버퍼(33) 내의 버퍼 영역을 제1 버퍼로 한다.
다음으로 MPEG 비디오 디코더(122)에 입력되는 프레임 B10 및 프레임 B11은 B 픽쳐이지만, Closed GOP 플래그가 설정되어 있기 때문에, 비디오 버퍼(33)의 제1 버퍼에 축적되어 있는 프레임 I12를 후 방향 참조 화상으로서 참조하여 복호되어,비디오 버퍼(33)에 축적된다. 복호된 프레임 B10이 축적되는 버퍼 영역을 제3 버퍼로 한다.
그리고, 표시 출력 회로(53)의 처리에 의해, 비디오 버퍼(33)의 제3 버퍼로부터 프레임 B10이 판독되어, 도시하지 않은 표시부로 출력되어 표시된다. 그리고, 다음으로 복호된 프레임 B11이 비디오 버퍼(33)의 제3 버퍼에 축적 (즉, 제3 버퍼에 덮어쓰기)된 후, 판독되어 도시하지 않은 표시부로 출력되어 표시된다.
그 다음으로, 제1 버퍼로부터 프레임 I12가 판독되어, 도시하지 않은 표시부로 출력되어 표시되며, 그 타이밍에서, 다음의 프레임 P15가 비디오 버퍼(33)의 제1 버퍼에 축적되어 있는 프레임 I12를 참조 화상으로 하여 복호되어, 비디오 버퍼(33)의 제2 버퍼에 축적된다.
프레임 B10 및 프레임 B11에 Closed GOP 플래그가 설정되어 있지 않은 경우, 전 방향에 참조할 수 있는 화상이 없기 때문에, 프레임 B10 및 프레임 B11은 복호되지 않는다. 그와 같은 경우, 프레임 I12가 가장 처음에 표시 출력 회로(53)로부터 출력되어 표시된다.
다음으로 입력되는 프레임 B13은 비디오 버퍼(33)의 제1 버퍼에 축적되어 있는 프레임 I12를 전 방향 참조 화상으로 하고, 제2 버퍼에 축적되어 있는 프레임 P15를 후 방향 참조 화상으로서 참조하여 복호되어, 제3 버퍼에 축적된다. 그리고, 표시 출력 회로(53)의 처리에 의해, 비디오 버퍼(33)의 제3 버퍼로부터 프레임 B13이 판독되어, 출력 표시 처리가 실행되고 있는 동안에, 다음으로 입력되는 프레임 B14가 비디오 버퍼(33)의 제1 버퍼에 축적되어 있는 프레임 I12를 전 방향 참조화상으로 하고, 제2 버퍼에 축적되어 있는 프레임 P15를 후 방향 참조 화상으로서 참조하여 복호되어 제3 버퍼에 축적된다. 그리고, 표시 출력 회로(53)의 처리에 의해, 비디오 버퍼(33)의 제3 버퍼로부터 프레임 B14가 판독되어, 출력되어 표시된다.
다음으로 입력되는 프레임 P18은 제2 버퍼에 축적되어 있는 프레임 P15를 전 방향 참조 화상으로 하여 복호된다. 프레임 B14의 복호가 종료되면, 제1 버퍼에 축적되어 있는 프레임 I12는 그 후 참조되지 않기 때문에, 복호된 프레임 P18은 비디오 버퍼(33)의 제1 버퍼에 축적된다. 그리고, 제1 버퍼에 프레임 P18이 축적되는 타이밍에서, 제2 버퍼로부터 프레임 P15가 판독되어, 출력되어 표시된다.
이하, 마찬가지로 하여, GOP1의 프레임이 순차적으로 복호되어 제1 버퍼 내지 제3 버퍼에 축적되고, 순차적으로 판독되어 표시된다.
GOP2의 선두의 프레임 I22가 입력되었을 때, I 픽쳐인 프레임 I22는 복호 시에 참조 화상을 필요로 하지 않기 때문에, 그대로 복호되어 제2 버퍼에 축적된다. 그 타이밍에서, GOP1의 프레임 P1e가 판독되어, 출력되어 표시된다.
계속해서 입력되는 GOP2의 프레임 B20 및 프레임 B21은 제1 버퍼의 프레임 P1e를 전 방향 참조 화상으로, 제2 버퍼의 프레임 I22를 후 방향 참조 화상으로 하여 복호되어, 제3 버퍼에 순차적으로 축적되고, 판독되어 표시된다. 이와 같이, GOP의 선두에 있는 B 픽쳐는 이전의 GOP의 P 픽쳐를 전 방향 참조 화상으로 하여 복호된다.
이하, 마찬가지로 하여, GOP2의 프레임이 순차적으로 복호되어 제1 버퍼 내지 제3 버퍼에 축적되고, 순차적으로 판독되어 표시된다. 그리고, 마찬가지로 하여, GOP3 이하의 각각의 프레임이 순차적으로 복호되어 제1 버퍼 내지 제3 버퍼에 축적되고, 순차적으로 판독되어 표시된다.
이상의 처리에 있어서, MPEG 비디오 디코더(122)는 양자화 ID를 참조하여 복호 처리를 실행한다.
다음으로, 도 20을 이용하여 설명한 재생 장치에서 역전 재생을 실시하는 경우에 대해 설명한다.
종래의 역전 재생에 있어서는 I 픽쳐만을 추출하여 복호를 실행하고 있었기 때문에, 15 프레임 중의 1 프레임밖에 표시되지 않는 부자연스러운 재생 화상밖에 얻을 수 없었다.
그것에 대하여, 도 20의 재생 회로(121)에는 개시 코드 버퍼(62)에 기록된개시 코드에 기초하여, 스트림 버퍼(61)에 입력된 GOP의 프레임의 순서를 변경하여 재생 스트림을 생성시킬 수 있고, MPEG 비디오 디코더(122)에는 15 프레임 모두를 복호시킬 수 있다.
그러나, 재생 회로(121)는 역전 재생을 행하기 때문에, 개시 코드 버퍼(62)에 기록된 개시 코드에 기초하여, 스트림 버퍼(61)에 입력된 GOP의 프레임의 순서를 단순하게 역전시켜 재생 스트림을 생성하면 되는 것은 아니다.
예를 들면, 도 22를 이용하여 설명한 MPEG 부호화 스트림의 GOP2 및 GOP1을 역전 재생시키는 경우, 최초로 출력되어 표시되는 프레임은 프레임 P2e이어야 하지만, 프레임 P2e를 복호하기 위해서는 전 방향 참조 화상으로서 프레임 P2b를 참조할 필요가 있고, 또한 프레임 P2b를 복호하기 위해서는 전 방향 참조 화상으로서 프레임 P28이 필요하다. 프레임 P28을 복호하기 위해서도 전 방향 참조 화상이 필요하기 때문에, 결국, 프레임 P2e를 복호하고, 출력하여 표시시키기 위해서는 GOP2의 I 픽쳐 및 P 픽쳐가 전부 복호되어 있어야만 한다.
역전 재생 시에 최초로 표시되는 프레임 P2e를 복호하기 위해, GOP2를 전부 복호시켜 비디오 버퍼(33)에 축적시키고, 이후의 프레임으로부터 순서대로 판독하는 방법도 고려되지만, 그 경우, 비디오 버퍼(33)에는 1 GOP (15 프레임) 분의 버퍼 영역이 필요해진다.
또한, 이 방법으로는 프레임 P2e로부터 프레임 I22까지는 복호하여 재생하는 것이 가능하지만, GOP2의 처음의 2 프레임 즉, 역전 재생 시에 마지막으로 표시되어야 되는 프레임인 프레임 B21 및 프레임 B20을 복호하기 위해서는, 전 방향 참조 화상으로서 GOP1의 프레임 P1e가 필요하다. GOP1의 프레임 P1e를 복호하기 위해서는 GOP1의 모든 I 픽쳐 및 P 픽쳐가 필요하다.
즉, 이 방법으로는 비디오 버퍼(33)에 15 프레임 분의 버퍼 영역을 필요로 하면서, 1 GOP 분의 모든 프레임을 역전 재생할 수 없다.
도 22를 이용하여 설명한 바와 같이, M=15, N=3으로 부호화를 행한 경우, 1 GOP 내에는 합계 5 프레임의 I 픽쳐 혹은 P 픽쳐가 포함된다.
그래서, 스트림 버퍼(61)에 적어도 2 GOP 분의 프레임을 축적하는 것이 가능하도록 하고, 재생 회로(121)에 있어서 생성되는 재생 스트림의 프레임의 순서를 MPEG 비디오 디코더(122)의 역전 재생을 위한 디코드의 순서에 기초하여 결정하고,비디오 버퍼(33)에 적어도 「1 GOP에 포함되는 I 픽쳐 및 P 픽쳐의 합계수+2」로 나타내는 수의 프레임 (예를 들면, M=15, N=3의 MPEG 부호화 스트림을 역전 재생하는 경우, 7 프레임)을 축적하는 것이 가능하도록 함으로써, GOP가 겹친 부분도 연속하여 모든 프레임을 역전 재생할 수 있다.
도 24를 이용하여, 하드디스크(112)로부터 GOP1 내지 GOP3의 화상 데이터가 역전 재생되는 경우의 복호 처리에 대하여 설명한다. 이 도 24는 MPEG 역전 재생 디코더의 동작예를 나타내고 있다.
컨트롤러(34)는 서보 회로(111)를 제어하여, 하드디스크(112)로부터, 우선 GOP3, 계속해서 GOP2의 MPEG 부호화 스트림을 재생 회로(121)로 출력시킨다. 재생 회로(121)는 스트림 버퍼(61)에, GOP3, 계속해서 GOP2의 MPEG 부호화 스트림을 축적시킨다.
재생 회로(121)는 스트림 버퍼(61)로부터 GOP3의 선두 프레임 I32를 판독하고, 재생 스트림의 최초의 프레임으로서 MPEG 비디오 디코더(122)로 출력한다. 프레임 I32는 I 픽쳐이므로, 복호를 위해 참조 화상을 필요로 하지 않기 때문에, MPEG 비디오 디코더(122)에서 복호되어 비디오 버퍼(33)에 축적된다. 비디오 버퍼(33)에서, 복호된 프레임 I32가 축적되는 영역을 제1 버퍼로 한다.
여기서, 각각의 프레임의 데이터는, 도 2를 이용하여 설명한 헤더 및 확장 데이터에 기재된 파라미터를 기초로 복호된다. 상술한 바와 같이, MPEG 비디오 디코더(122)의 픽쳐 디코더(45)에 있어서, 각각의 파라미터가 디코드되어 슬라이스 디코더 제어 회로(46)에 공급되어, 복호 처리에 이용된다. GOP1이 복호되는 경우,GOP1의 sequence_header, sequence_extension, 및 GOP_header에 기재되어 있는 상위층의 파라미터 (예를 들면, 상술한 양자화 매트릭스)를 이용하여 복호가 실시되고, GOP2가 복호되는 경우, GOP2의 sequence_header, sequence_extension, 및 GOP_header에 기재되어 있는 상위층의 파라미터를 이용하여 복호가 실시되고, GOP3이 복호되는 경우, GOP3의 sequence_header, sequence_extension, 및 GOP_header에 기재되어 있는 상위층의 파라미터를 이용하여 복호가 실시된다.
그러나, 역전 재생 시에 있어서는 GOP마다 복호가 실시되지 않기 때문에, MPEG 비디오 디코더(122)는 각각의 GOP에서 최초로 I 픽쳐가 디코드되었을 때, 상위층 파라미터를 컨트롤러(34)에 공급한다. 컨트롤러(34)는 내장한 메모리(도시하지 않음)에, 공급된 상위층 파라미터를 보유한다.
컨트롤러(34)는 MPEG 비디오 디코더(122)에서 실행되는 복호 처리를 감시하고, 복호 처리 중의 프레임에 대응하는 상위층 파라미터를 내부의 메모리로부터 판독하여 MPEG 비디오 디코더(122)에 공급하고, 적절한 복호 처리가 이루어지도록 한다.
도 24에서, 재생 스트림의 프레임 번호의 상부에 나타내는 숫자는 양자화 ID로서, 재생 스트림의 각 프레임은 도 23을 이용하여 설명한 순방향의 복호와 마찬가지로 양자화 ID를 기초로 복호된다.
또, 본 실시예에 있어서는, 컨트롤러(34)가 그 내부에 메모리를 갖고, 상위층 부호화 파라미터를 보유하는 것으로서 설명하고 있지만, 컨트롤러(34)에 접속된 메모리를 설치하도록 하고, 컨트롤러(34)가 내부에 메모리를 보유하지 않고서 외부의 메모리에 상위층 부호화 파라미터를 보유하고, 필요에 따라 판독하여 MPEG 비디오 디코더(122)에 공급할 수 있도록 해도 된다.
또한, MPEG 비디오 디코더(122)에 GOP의 상위층 부호화 파라미터를 보유하기 위한 메모리를 구비시키도록 해도 된다. 또한, 상위층 부호화 파라미터 등의 부호화 조건이 이미 알려진 경우, MPEG 비디오 디코더(122)에 부호화 조건을 사전에 설정해도 되고, 상위층 부호화 파라미터가 GOP에 의해 변화되지 않는 것이 이미 알려진 경우, 컨트롤러(34)에 의해 GOP마다 상위층 부호화 파라미터를 판독하여, 프레임마다 MPEG 비디오 디코더(122)에 설정하는 것이 아니라, 동작 개시 시에 한번만 MPEG 비디오 디코더(122)에 부호화 파라미터를 설정하도록 해도 된다.
재생 회로(121)는 스트림 버퍼(61)로부터 프레임 P35를 판독하고, 재생 스트림의 다음의 프레임으로서 MPEG 비디오 디코더(122)로 출력한다. MPEG 비디오 디코더(122)에 있어서, 프레임 P35는 제1 버퍼에 기록되어 있는 프레임 I32를 전 방향 참조 화상으로 하여 복호되어, 비디오 버퍼(33)에 축적된다. 비디오 버퍼(33)에 있어서, 복호된 프레임 P35가 축적되는 영역을 제2 버퍼로 한다.
재생 회로(121)는 스트림 버퍼(61)로부터 프레임 P38, 프레임 P3b, 및 프레임 P3e를 순차적으로 판독하고, 재생 스트림으로서 출력한다. 이들 P 픽쳐는 MPEG 비디오 디코더(122)에 있어서, 하나 전에 복호된 P 픽쳐를 전 방향 참조 화상으로 하여 복호되어, 비디오 버퍼(33)에 축적된다. 비디오 버퍼(33)에 있어서, 복호된 이들 P 픽쳐의 프레임이 축적되는 영역을 제3 버퍼 내지 제5 버퍼로 한다.
이 때, GOP3의 I 픽쳐 및 P 픽쳐는 전부 복호되어, 비디오 버퍼(33)에 축적되어 있는 상태이다.
계속해서, 재생 회로(121)는 스트림 버퍼(61)로부터 GOP2의 프레임 I22를 판독하여, 재생 스트림으로서 출력한다. MPEG 디코더(122)에 있어서, I 픽쳐인 프레임 I22는 참조 화상을 필요로 하지 않고서 복호되어, 비디오 버퍼(33)에 축적된다. 복호된 프레임 I22가 축적되는 영역을 제6 버퍼로 한다. 또한, 제6 버퍼에 프레임 I22가 축적되는 타이밍에서, 제5 버퍼로부터 GOP3의 프레임 P3e가 판독되어 출력되며, 역전 재생의 최초의 화상으로서 표시된다.
재생 회로(121)는 스트림 버퍼(61)로부터 GOP3의 프레임 B3d 즉, GOP3의 B 픽쳐 중에서 처음에 역전 재생되어야 되는 프레임을 판독하고, 재생 스트림으로서 출력한다. MPEG 디코더(122)에 있어서, 프레임 B3d는 제4 버퍼의 프레임 P3b를 전 방향 참조 화상으로, 제5 버퍼의 프레임 P3e를 후 방향 참조 화상으로 하여 복호되어, 비디오 버퍼(33)에 축적된다. 복호된 프레임 B3d가 축적되는 영역을 제7 버퍼로 한다.
제7 버퍼에 축적된 프레임 B3d는 프레임/필드 변환 및 출력 비디오 동기 타이밍으로의 타이밍 정합이 행해진 후, 출력되어 표시된다. 프레임 B3d의 표시와 동일한 타이밍에서, 재생 회로(121)는 스트림 버퍼(61)로부터 GOP3의 프레임 B3c를 판독하여 MPEG 비디오 디코더(122)로 출력한다. MPEG 비디오 디코더(122)에 있어서, 프레임 B3c는 프레임 B3d와 마찬가지로, 제4 버퍼의 프레임 P3b를 전 방향 참조 화상, 제5 버퍼의 프레임 P3e를 후 방향 참조 화상으로 하여 복호된다.
먼저 복호되어, 출력된 프레임 B3d는 B 픽쳐이기 때문에, 다른 프레임의 복호를 위해 참조되지 않는다. 따라서, 복호된 프레임 P3c는 프레임 B3d 대신에, 제7 버퍼에 축적 (즉, 제7 버퍼에 덮어쓰기)되어 프레임/필드 변환 및 출력 비디오 동기 타이밍으로의 타이밍 정합이 행해진 후, 출력되어 표시된다.
재생 회로(121)는 스트림 버퍼(61)로부터 GOP2의 프레임 P25를 판독하여, MPEG 비디오 디코더(122)로 출력한다. MPEG 비디오 디코더(122)에 있어서, GOP2의 프레임 P25는 제6 버퍼의 프레임 I22를 전 방향 참조 화상으로 하여 복호된다. 제5 버퍼에 축적되어 있는 프레임 P3e는 이후 참조 화상으로서 이용되지 않기 때문에, 복호된 프레임 P25는 프레임 P3e 대신에 제5 버퍼에 축적된다. 그리고, 제5 버퍼에 프레임 P25가 축적되는 것과 동일한 타이밍에서, 제4 버퍼의 프레임 P3b가 판독되어 표시된다.
재생 회로(121)는 스트림 버퍼(61)로부터 GOP3의 프레임 B3a를 판독하고, 재생 스트림으로서 출력한다. MPEG 디코더(122)에 있어서, 프레임 B3a는 제3 버퍼의 프레임 P38을 전 방향 참조 화상으로, 제4 버퍼의 프레임 P3b를 후 방향 참조 화상으로 하여 복호되어, 비디오 버퍼(33)의 제7 버퍼에 축적된다.
제7 버퍼에 축적된 프레임 B3a는 프레임/필드 변환 및 출력 비디오 동기 타이밍으로의 타이밍 정합이 행해진 후, 출력되어 표시된다. 프레임 B3a의 표시와 동일한 타이밍에서, 재생 회로(121)는 스트림 버퍼(61)로부터 GOP3의 프레임 B39를 판독하고, MPEG 비디오 디코더(122)로 출력한다. MPEG 비디오 디코더(122)에 있어서, 프레임 B39는 프레임 B3a와 마찬가지로, 제3 버퍼의 프레임 P38을 전 방향 참조 화상으로, 제4 버퍼의 프레임 P3b를 후 방향 참조 화상으로 하여 복호되어, 프레임 B3a 대신에 제7 버퍼에 축적되고, 프레임/필드 변환 및 출력 비디오 동기 타이밍으로의 타이밍 정합이 행해진 후, 출력되어 표시된다.
재생 회로(121)는 스트림 버퍼(61)로부터 GOP2의 프레임 P28을 판독하여, MPEG 비디오 디코더(122)로 출력한다. MPEG 비디오 디코더(122)에 있어서, GOP2의 프레임 P28은 제5 버퍼의 프레임 P25를 전 방향 참조 화상으로 하여 복호된다. 제4 버퍼에 축적되어 있는 프레임 P3b는 이 이후 참조 화상으로서 이용되지 않기 때문에, 복호된 프레임 P28은 프레임 P3b 대신에 제4 버퍼에 축적된다. 그리고, 제4 버퍼에 프레임 P28이 축적되는 것과 동일한 타이밍에서, 제3 버퍼의 프레임 P38이 판독되어 표시된다.
이와 같이, GOP2의 I 픽쳐 혹은 P 픽쳐가 복호되어, 버퍼(33)에 축적되는 타이밍에서 GOP3의 I 픽쳐 혹은 P 픽쳐가 버퍼(33)로부터 판독되어 표시된다.
이하, 마찬가지로 하여, 도 24에 도시된 바와 같이, GOP3의 남은 B 픽쳐 및 GOP2의 남은 P 픽쳐가 B37, B36, P2b, B34, B33, P2e의 순으로 복호된다. 복호된 B 픽쳐는 제7 버퍼에 축적되어, 순차적으로 판독되어 표시된다. 복호된 GOP2의 P 픽쳐는 순차적으로 참조가 종료된 프레임이 축적되어 있던 제1 버퍼 내지 제6 버퍼 중 어느 하나에 축적되고, 제1 버퍼 내지 제6 버퍼 중 어느 하나에 이미 축적되어 있는 GOP3의 P 픽쳐가, 그 타이밍에서, 역전 재생의 순서로 행해지도록, B 픽쳐 사이에 판독되어 출력된다.
재생 회로(121)는 스트림 버퍼(61)로부터 GOP3의 프레임 B31, 계속해서, 프레임 B30을 판독하여 MPEG 비디오 디코더(122)로 출력한다. MPEG 비디오디코더(122)에 있어서, 프레임 B31 및 프레임 B30의 복호에 필요한 전 방향 참조 화상인 프레임 P2e는 제2 버퍼에, 후 방향 참조 화상인 I32는 제1 버퍼에 각각 축적되어 있기 때문에, GOP3의 처음의 2 프레임 즉, 역전 재생 시에 마지막으로 표시되어야 되는 프레임도 복호하는 것이 가능해진다.
복호된 프레임 B31 및 프레임 B30은 순차적으로 제7 버퍼에 축적되어, 프레임/필드 변환 및 출력 비디오 동기 타이밍으로의 타이밍 정합이 행해진 후, 출력되어 표시된다.
GOP3의 모든 프레임이 스트림 버퍼(61)로부터 판독된 후, 컨트롤러(34)는 서보 회로(111)를 제어하여, 하드디스크(112)로부터 GOP1을 판독시켜 재생 회로(121)에 공급시킨다. 재생 회로(121)는 소정의 처리를 실행하고, GOP1의 개시 코드를 추출하여 개시 코드 버퍼(62)에 기록시킴과 함께, GOP1의 부호화 스트림을 스트림 버퍼(61)에 공급하여 축적시킨다.
다음으로, 재생 회로(121)는 스트림 버퍼(61)로부터 GOP1의 프레임 I12를 판독하고, 재생 스트림으로서 MPEG 비디오 디코더(122)로 출력한다. 프레임 I12는 I 픽쳐이기 때문에, MPEG 비디오 디코더(122)에서 다른 화상을 참조하지 않고서 복호되고, 이 후의 처리에서 참조되는 것이 없는 제1 버퍼의 프레임 I32 대신에 제1 버퍼로 출력되어 축적된다. 이 때, 제2 버퍼로부터 프레임 P2e가 판독되어, 출력되고 GOP2의 역전 재생 표시가 개시된다.
다음으로, 재생 회로(121)는 스트림 버퍼(61)로부터 GOP2의 프레임 B2d 즉, GOP2의 B 픽쳐 중에서 처음에 역전 재생되어야 되는 프레임을 판독하고, 재생 스트림으로서 출력한다. MPEG 디코더(122)에 있어서, 프레임 B2d는 제3 버퍼의 프레임 P2b를 전 방향 참조 화상으로, 제2 버퍼의 프레임 P2e를 후 방향 참조 화상으로 하여 복호되어, 비디오 버퍼(33)에 축적된다. 복호된 프레임 B2d는 제7 버퍼에 축적되고, 프레임/필드 변환 및 출력 비디오 동기 타이밍으로의 타이밍 정합이 행해진 후, 출력되어 표시된다.
이하, 마찬가지로 하여, GOP2의 남은 B 픽쳐 및 GOP1의 남은 P 픽쳐가 B2c, P15, B2a, B29, P18, B27, B26, P1b, B24, B23, P1e, P21, P20의 순으로 복호되어, 순차적으로 참조가 종료된 프레임이 축적되어 있는 제1 버퍼 내지 제7 버퍼 중 어느 하나에 축적되고, 역전 재생의 순서로 판독되어 출력된다. 그리고, 도시는 되어 있지 않지만, 마지막으로 GOP1의 남은 B 픽쳐가 복호되어, 순차적으로 제7 버퍼에 축적되고, 역전 재생의 순서로 판독되어 출력된다.
도 24를 이용하여 설명한 처리에서는 통상 재생과 동일 속도의 역전 재생을 실행하였지만, 재생 회로(121)가 재생 스트림을 통상 재생 시의 3분의 1의 속도로 MPEG 비디오 디코더(122)로 출력하고, MPEG 비디오 디코더(122)가 통상의 3 프레임의 처리 시간으로 1 프레임만의 복호 처리를 실행하여, 도시하지 않은 표시부, 혹은 표시 장치에 통상의 3 프레임의 표시 시간에 동일한 프레임을 표시시키도록 함으로써, 3분의 1배속의 순방향 재생 및 역전 재생이 마찬가지의 처리에 의해 가능해진다.
또한, 표시 출력 회로(53)가 동일한 프레임을 반복하여 출력함으로써, 소위 스틸 재생도 가능해진다. 또, 재생 장치(121)로부터 MPEG 비디오 디코더(122)로의데이터 출력 속도 및 MPEG 비디오 디코더(122)의 처리 속도를 변경함으로써, 임의의 n에서, n분의 1배속의 순방향 재생 및 역전 재생이 마찬가지의 처리에 의해 가능해진다.
즉, 본 발명을 이용한 재생 장치에서는 등배속의 역전 재생, n분의 1배속의 역전 재생, 스틸 재생, n분의 1배속의 순방향 재생, 등배속의 순방향 재생 사이에서의 임의의 속도에 있어서, 원활한 트릭 재생이 가능해진다.
또한, MPEG 비디오 디코더(122)는 MPEG2 4 : 2 : 2 P@HL 대응의 디코더이기 때문에, MPEG2 MP@ML의 부호화 스트림을 6배속으로 복호하는 능력을 갖는다. 따라서, 재생 회로(121)가 MPEG2 MP@ML의 부호화 스트림으로부터 생성한 재생 스트림을 통상 재생 시의 6배의 속도로 MPEG 비디오 디코더(122)로 출력하면, MPEG 비디오 디코더(122)는 MPEG2 MP@ML의 부호화 스트림을 6배속으로 복호하는 능력을 갖기 때문에, 도시하지 않은 표시부, 혹은 표시 장치에 6 프레임마다 추출된 프레임을 표시시키도록 함으로써, 6배속의 순방향 재생 및 역전 재생이 마찬가지의 처리에 의해 가능해진다.
즉, 본 발명을 이용한 재생 장치에서는 MPEG2 MP@ML의 부호화 스트림을 6배속의 역전 재생, 등배속의 역전 재생, n분의 1배속의 역전 재생, 스틸 재생, n분의 1배속의 순방향 재생, 등배속의 순방향 재생, 6배속의 순방향 재생 사이에서의 임의의 속도에 있어서, 원활한 트릭 재생이 가능해진다.
또, MPEG 비디오 디코더(122)가 N배속의 복호 능력을 구비하고 있는 경우, 본 발명의 재생 장치는, 마찬가지의 처리에 의해, N배속의 순방향 재생 및 역전 재생이 가능하고, N배속의 역전 재생, 등배속의 역전 재생, n분의 1배속의 역전 재생, 스틸 재생, n분의 1배속의 순방향 재생, 등배속의 순방향 재생, N배속의 순방향 재생 사이에서의 임의의 속도에 있어서, 원활한 트릭 재생이 가능해진다.
이에 따라, 예를 들면, 영상 신호의 검증 시에 있어서 영상 소재의 내용을 용이하게 검증할 수 있으며, 영상 소재 검증 작업의 효율을 개선하거나, 영상 신호의 편집 작업에 있어서 편집점을 쾌적하게 검색할 수 있어 편집 작업의 효율을 개선할 수 있다.
상술한 일련의 처리는 소프트웨어에 의해 실행할 수도 있다. 그 소프트웨어는, 그 소프트웨어를 구성하는 프로그램이 전용의 하드웨어에 내장되어 있는 컴퓨터, 또는, 각종의 프로그램을 인스톨함으로써, 각종의 기능을 실행하는 것이 가능한, 예를 들면 범용 퍼스널 컴퓨터 등에 기록 매체로부터 인스톨된다.
이 기록 매체는 도 15 혹은 도 20에 도시한 바와 같이, 컴퓨터와는 별도로 사용자에게 프로그램을 제공하기 위해 배포되는 프로그램이 기록되어 있는 자기 디스크(101) (플로피 디스크를 포함함), 광 디스크(102) (CD-ROM(Compact Disk Read Only Memory), DVD(Digital Versatile Disk)를 포함함), 광 자기 디스크(103) (MD(Mini Disk)를 포함함), 혹은 반도체 메모리(104) 등으로 이루어진 패키지 미디어 등으로 구성된다.
또한, 본 명세서에 있어서, 기록 매체에 기록되는 프로그램을 기술하는 단계는 기재된 순서를 따라 시계열적으로 행해지는 처리는 물론, 반드시 시계열적으로 처리되지 않아도 병렬적 혹은 개별로 실행되는 처리도 포함하는 것이다.
본 발명의 제1 복호 장치, 복호 방법, 및 프로그램에 따르면, 부호화 스트림을 복호하고, 복호 처리를 병행하여 동작하도록 하였기 때문에, 실현 가능한 회로 규모로 실시간 동작이 가능한 4 : 2 : 2 P@HL에 대응한 비디오 디코더를 실현할 수 있다.
본 발명의 제2 복호 장치, 복호 방법, 및 프로그램에 따르면, 부호화 스트림을 복수의 슬라이스 디코더에서 복호하고, 복수의 슬라이스 디코더에 의해 복호 처리를 병행하여 동작하도록 하였기 때문에, 실현 가능한 회로 규모로 실시간 동작이 가능한 4 : 2 : 2 P@HL에 대응한 비디오 디코더를 실현할 수 있다.
본 발명의 제3 복호 장치, 복호 방법, 및 프로그램에 따르면, 소스 부호화 스트림의 픽쳐를 구성하는 슬라이스마다 소스 부호화 스트림을 디코드하고, 복수의 슬라이스 디코더의 디코드 상태를 감시함과 함께, 복수의 슬라이스 디코더를 제어하고, 픽쳐에 포함되는 슬라이스의 순서에 상관없이, 슬라이스 디코더에 있어서 실행되는 디코드 처리가 가장 빠르게 되도록, 슬라이스를 복수의 슬라이스 디코더에 할당하도록 하였기 때문에, 실현 가능한 회로 규모로 실시간 동작이 가능한 4 : 2 : 2 P@HL에 대응한 비디오 디코더를 실현할 수 있다.
본 발명의 제4 복호 장치, 복호 방법, 및 프로그램에 따르면, 소스 부호화 스트림의 픽쳐를 구성하는 슬라이스마다 소스 부호화 스트림을 디코드하고, 복수의 슬라이스 디코더의 디코드 상태를 감시함과 함께, 복수의 슬라이스 디코더를 제어하고, 픽쳐에 포함되는 슬라이스의 순서에 상관없이, 복수의 슬라이스 디코더 중 디코드가 종료된 슬라이스 디코더에 디코드해야 할 슬라이스를 할당하도록 하였기때문에, 실현 가능한 회로 규모로 실시간 동작이 가능한 4 : 2 : 2 P@HL에 대응한 비디오 디코더를 실현할 수 있다.

Claims (28)

  1. 부호화 스트림을 복호하는 복호 장치에 있어서,
    상기 부호화 스트림을 복호하는 복수의 복호 수단; 및
    복수의 상기 복호 수단을 병행하여 동작시키도록 제어하는 복호 제어 수단
    을 포함하는 것을 특징으로 하는 복호 장치.
  2. 제1항에 있어서,
    복수의 상기 복호 수단은 복호 처리의 종료를 나타내는 신호를 상기 복호 제어 수단으로 출력하고,
    상기 복호 제어 수단은, 복호 처리의 종료를 나타내는 상기 신호를 출력한 상기 복호 수단에, 새로운 상기 부호화 스트림을 복호시키도록 제어하는 것을 특징으로 하는 복호 장치.
  3. 제1항에 있어서,
    상기 부호화 스트림을 버퍼링하는 제1 버퍼 수단;
    상기 부호화 스트림으로부터 상기 부호화 스트림에 포함되는 소정 정보의 단위의 시작을 나타내는 개시 코드를 판독함과 함께, 상기 제1 버퍼 수단에 상기 개시 코드가 보유되어 있는 위치에 관한 위치 정보를 판독하는 판독 수단;
    상기 판독 수단에 의해 판독된 상기 개시 코드 및 상기 위치 정보를 버퍼링하는 제2 버퍼 수단; 및
    상기 제1 버퍼 수단에 의한 상기 부호화 스트림의 버퍼링 및 상기 제2 버퍼 수단에 의한 상기 개시 코드 및 상기 위치 정보의 버퍼링을 제어하는 버퍼링 제어 수단
    을 더 포함하는 것을 특징으로 하는 복호 장치.
  4. 제1항에 있어서,
    상기 부호화 스트림은 ISO/IEC 13818-2 및 ITU-T 권고 H.262에 규정된 MPEG2의 부호화 스트림인 것을 특징으로 하는 복호 장치.
  5. 제1항에 있어서,
    복수의 상기 복호 수단에 의해 복호되어 출력된 복수의 화상 데이터 중 소정의 것을 선택하는 선택 수단;
    상기 선택 수단에 의해 선택된 상기 화상 데이터의 입력을 받아, 필요에 따라 움직임 보상을 실시하는 움직임 보상 수단
    을 더 포함하는 것을 특징으로 하는 복호 장치.
  6. 제5항에 있어서,
    상기 복호 수단은 복호 처리가 종료된 것을 나타내는 종료 신호를 상기 선택 수단으로 출력하고,
    상기 선택 수단은,
    복수의 상기 복호 수단의 각각의 처리 상태에 대응하는 값을 기억하는 기억 수단을 구비하고,
    상기 기억 수단의 값이 모두 제1 값으로 된 경우, 복호 처리가 종료된 것을 나타내는 상기 종료 신호를 출력하고 있는 상기 복호 수단에 대응하는 상기 기억 수단에 기억되어 있는 값을 상기 제1 값으로부터 제2 값으로 변경하고,
    대응하는 상기 기억 수단에 기억되어 있는 값이 상기 제2 값인 상기 제1 복호 수단에 의해 복호된 상기 화상 데이터 중 어느 하나의 상기 화상 데이터를 선택하며,
    선택된 상기 화상 데이터를 복호한 상기 복호 수단에 대응하는 상기 기억 수단에 기억되어 있는 값을 상기 제1 값으로 변경하는 것을 특징으로 하는 복호 장치.
  7. 제5항에 있어서,
    상기 복호 수단에 의해 복호된 상기 화상 데이터, 상기 선택 수단에 의해 선택된 상기 화상 데이터, 또는 상기 움직임 보상 수단에 의해 움직임 보상이 실시된 상기 화상 데이터를 보유하는 보유 수단; 및
    상기 선택 수단에 의해 선택된 상기 화상 데이터, 또는 상기 움직임 보상 수단에 의해 움직임 보상이 실시된 상기 화상 데이터의 상기 보유 수단에 의한 보유를 제어하는 보유 제어 수단
    을 더 포함하는 것을 특징으로 하는 복호 장치.
  8. 제7항에 있어서,
    상기 보유 수단은 상기 화상 데이터의 휘도 성분과 색차 성분을 각각 나누어 보유하는 것을 특징으로 하는 복호 장치.
  9. 제7항에 있어서,
    상기 복호 수단에 공급되는 상기 부호화 스트림의 프레임의 순서를 변경하는 변경 수단
    을 더 포함하고,
    상기 보유 수단은 화상 시퀀스 내의 인트라 부호화 프레임 및 전(前) 방향 예측 부호화 프레임을 합계한 프레임 수보다 적어도 2개 많은 수의 프레임을 보유하며,
    상기 변경 수단은 상기 부호화 스트림을 역전 재생시키기 위한 소정의 순서로 되도록, 상기 부호화 스트림의 프레임의 순서를 변경하는 것을 특징으로 하는 복호 장치.
  10. 제9항에 있어서,
    상기 보유 수단에 의해 보유되어 있는 상기 화상 데이터를 판독하여 출력하는 출력 수단을 더 포함하고,
    상기 소정의 순서는 상기 인트라 부호화 프레임, 상기 전 방향 예측 부호화 프레임, 양 방향 예측 부호화 프레임의 순서이고, 상기 양 방향 예측 부호화 프레임 내에서의 순서는 부호화의 순서와는 반대이며,
    상기 출력 수단은 상기 복호 수단에 의해 복호되어, 상기 보유 수단에 의해 보유되어 있는 상기 양 방향 예측 부호화 프레임을 순차적으로 판독하여 출력함과 함께, 소정의 타이밍에서 상기 보유 수단에 의해 보유되어 있는 상기 인트라 부호화 프레임, 또는 상기 전 방향 예측 부호화 프레임을 판독하여, 상기 양 방향 예측 부호화 프레임 사이의 소정의 위치에 삽입하여 출력하는 것을 특징으로 하는 복호 장치.
  11. 제10항에 있어서,
    상기 소정의 순서는, 상기 출력 수단에 의해 상기 인트라 부호화 프레임 및 상기 전 방향 예측 부호화 프레임 중의 하나가 출력되는 타이밍에서, 상기 복호 수단에 의해 복호된 하나 전의 상기 화상 시퀀스의 상기 인트라 부호화 프레임 및 상기 전 방향 예측 부호화 프레임 중의 하나가 상기 보유 수단에 의해 보유되는 순서인 것을 특징으로 하는 복호 장치.
  12. 제9항에 있어서,
    상기 부호화 스트림을 복호하기 위해 필요한 정보를 기록하는 기록 수단; 및
    상기 기록 수단에 의한 상기 정보의 기록 및 상기 정보의 상기 복호 수단으로의 공급을 제어하는 제어 수단
    을 더 포함하고,
    상기 부호화 스트림은 상기 정보를 포함하며,
    상기 제어 수단은 상기 복호 수단의 복호 처리에 필요한 상기 정보를 선택하여, 상기 복호 수단에 공급하는 것을 특징으로 하는 복호 장치.
  13. 제12항에 있어서,
    상기 제어 수단이 상기 복호 수단에 공급하는 상기 정보는, 상기 복호 수단에 의해 복호되어 있는 프레임에 대응하는 상위층 부호화 파라미터인 것을 특징으로 하는 복호 장치.
  14. 제7항에 있어서,
    상기 보유 수단에 의해 보유되어 있는 상기 화상 데이터를 판독하여 출력하는 출력 수단
    을 더 포함하고,
    상기 복호 수단은 상기 부호화 스트림을 통상 재생에 필요한 처리 속도의 N배속으로 복호하며,
    상기 출력 수단은 상기 보유 수단에 의해 보유되어 있는 상기 화상 데이터 중 N 프레임마다의 상기 화상 데이터를 출력하는 것을 특징으로 하는 복호 장치.
  15. 제1항에 있어서,
    상기 부호화 스트림을 보유하는 제1 보유 수단;
    상기 부호화 스트림으로부터 상기 부호화 스트림에 포함되는 소정 정보의 단위의 시작을 나타내는 개시 코드를 판독함과 함께, 상기 제1 보유 수단에 상기 개시 코드가 보유되어 있는 위치에 관한 위치 정보를 판독하는 판독 수단;
    상기 판독 수단에 의해 판독된 상기 개시 코드 및 상기 위치 정보를 보유하는 제2 보유 수단;
    상기 제1 보유 수단에 의한 상기 화상 데이터의 보유 및 상기 제2 보유 수단에 의한 상기 개시 코드 및 상기 위치 정보의 보유를 제어하는 제1 보유 제어 수단;
    복수의 상기 복호 수단에 의해 복호되어, 출력된 복수의 화상 데이터 중 소정의 것을 선택하는 선택 수단;
    상기 선택 수단에 의해 선택된 상기 화상 데이터의 입력을 받아, 필요에 따라 움직임 보상을 실시하는 움직임 보상 수단;
    상기 선택 수단에 의해 선택된 상기 화상 데이터 및 상기 움직임 보상 수단에 의해 움직임 보상이 실시된 상기 화상 데이터 중의 하나를 보유하는 제3 보유 수단; 및
    상기 선택 수단에 의해 선택된 상기 화상 데이터 및 상기 움직임 보상 수단에 의해 움직임 보상이 실시된 상기 화상 데이터 중의 하나의 상기 제3 보유 수단에 의한 보유를, 상기 제1 보유 제어 수단과는 독립하여 제어하는 제2 보유 제어수단
    을 더 포함하는 것을 특징으로 하는 복호 장치.
  16. 부호화 스트림을 복호하는 복호 장치의 복호 방법에 있어서,
    상기 부호화 스트림을 복호하는 복수의 복호 단계; 및
    복수의 상기 복호 단계의 처리를 병행하여 동작시키도록 제어하는 복호 제어 단계
    를 포함하는 것을 특징으로 하는 복호 방법.
  17. 부호화 스트림을 복호하는 복호 장치용의 프로그램으로서,
    상기 부호화 스트림을 복호하는 복수의 복호 단계; 및
    복수의 상기 복호 단계의 처리를 병행하여 동작시키도록 제어하는 복호 제어 단계
    를 포함하는 것을 특징으로 하는 컴퓨터가 판독 가능한 프로그램이 기록되어 있는 기록 매체.
  18. 부호화 스트림을 복호하는 복호 장치를 제어하는 컴퓨터가 실행 가능한 프로그램에 있어서,
    상기 부호화 스트림을 복호하는 복수의 복호 단계; 및
    복수의 상기 복호 단계의 처리를 병행하여 동작시키도록 제어하는 복호 제어단계
    를 포함하는 것을 특징으로 하는 프로그램.
  19. 부호화 스트림을 복호하는 복호 장치에 있어서,
    상기 부호화 스트림을 복호하는 복수의 슬라이스 디코더; 및
    복수의 상기 슬라이스 디코더를 병행하여 동작시키도록 제어하는 슬라이스 디코더 제어 수단
    을 포함하는 것을 특징으로 하는 복호 장치.
  20. 부호화 스트림을 복호하는 복호 장치의 복호 방법에 있어서,
    상기 부호화 스트림을 복호하는 복수의 슬라이스 디코더에 의한 복호를 제어하는 복호 제어 단계; 및
    상기 복호 제어 단계를 병행하여 처리시키도록 제어하는 슬라이스 디코더 제어 단계
    를 포함하는 것을 특징으로 하는 복호 방법.
  21. 부호화 스트림을 복호하는 복호 장치용의 프로그램으로서,
    상기 부호화 스트림을 복호하는 복수의 슬라이스 디코더에 의한 복호를 제어하는 복호 제어 단계; 및
    상기 복호 제어 단계를 병행하여 처리시키도록 제어하는 슬라이스 디코더 제어 단계
    를 포함하는 것을 특징으로 하는 컴퓨터가 판독 가능한 프로그램이 기록되어 있는 기록 매체.
  22. 부호화 스트림을 복호하는 복호 장치를 제어하는 컴퓨터가 실행 가능한 프로그램에 있어서,
    상기 부호화 스트림을 복호하는 복수의 슬라이스 디코더에 의한 복호를 제어하는 복호 제어 단계; 및
    상기 복호 제어 단계를 병행하여 처리시키도록 제어하는 슬라이스 디코더 제어 단계
    를 포함하는 것을 특징으로 하는 프로그램.
  23. 소스 부호화 스트림을 복호하는 복호 장치에 있어서,
    상기 소스 부호화 스트림의 픽쳐를 구성하는 슬라이스마다 상기 소스 부호화 스트림을 디코드하는 복수의 슬라이스 디코더; 및
    상기 복수의 슬라이스 디코더의 디코드 상태를 감시함과 함께, 상기 복수의 슬라이스 디코더를 제어하는 제어 수단
    을 포함하고,
    상기 제어 수단은 상기 픽쳐에 포함되는 상기 슬라이스의 순서에 상관없이, 상기 슬라이스 디코더에 의한 상기 픽쳐의 디코드 처리가 가장 빠르게 되도록, 상기 슬라이스를 상기 복수의 슬라이스 디코더에 할당하는 것을 특징으로 하는 복호 장치.
  24. 소스 부호화 스트림을 복호하는 복호 장치의 복호 방법에 있어서,
    복수의 슬라이스 디코더에 의한 상기 소스 부호화 스트림의 픽쳐를 구성하는 슬라이스마다의 상기 소스 부호화 스트림의 디코드 처리를 제어하는 디코드 처리 제어 단계; 및
    상기 복수의 슬라이스 디코더의 디코드 상태를 감시함과 함께, 상기 복수의 슬라이스 디코더를 제어하는 제어 단계
    를 포함하고,
    상기 제어 단계의 처리에서는, 상기 픽쳐에 포함되는 상기 슬라이스의 순서에 상관없이, 상기 슬라이스 디코더에서 실행되는 상기 디코드 처리가 가장 빠르게 되도록, 상기 슬라이스를 상기 복수의 슬라이스 디코더에 할당하는 것을 특징으로 하는 복호 방법.
  25. 소스 부호화 스트림을 복호하는 복호 장치를 제어하는 컴퓨터가 실행 가능한 프로그램에 있어서,
    복수의 슬라이스 디코더에 의한 상기 소스 부호화 스트림의 픽쳐를 구성하는 슬라이스마다의 상기 소스 부호화 스트림의 디코드 처리를 제어하는 디코드 처리 제어 단계; 및
    상기 복수의 슬라이스 디코더의 디코드 상태를 감시함과 함께, 상기 복수의 슬라이스 디코더를 제어하는 제어 단계
    를 포함하고,
    상기 제어 단계의 처리에서는 상기 픽쳐에 포함되는 상기 슬라이스의 순서에 상관없이, 상기 슬라이스 디코더에서 실행되는 상기 디코드 처리가 가장 빠르게 되도록, 상기 슬라이스를 상기 복수의 슬라이스 디코더에 할당하는 것을 특징으로 하는 프로그램.
  26. 소스 부호화 스트림을 복호하는 복호 장치에 있어서,
    상기 소스 부호화 스트림의 픽쳐를 구성하는 슬라이스마다 상기 소스 부호화 스트림을 디코드하는 복수의 슬라이스 디코더; 및
    상기 복수의 슬라이스 디코더의 디코드 상태를 감시함과 함께, 상기 복수의 슬라이스 디코더를 제어하는 제어 수단
    을 포함하고,
    상기 제어 수단은 상기 픽쳐에 포함되는 상기 슬라이스의 순서에 상관없이, 상기 복수의 슬라이스 디코더 중 디코드가 종료된 상기 슬라이스 디코더에, 디코드해야 할 상기 슬라이스를 할당하는 것을 특징으로 하는 복호 장치.
  27. 소스 부호화 스트림을 복호하는 복호 장치의 복호 방법에 있어서,
    복수의 슬라이스 디코더에 의한 상기 소스 부호화 스트림의 픽쳐를 구성하는슬라이스마다의 상기 소스 부호화 스트림의 디코드 처리를 제어하는 디코드 처리 제어 단계; 및
    상기 복수의 슬라이스 디코더의 디코드 상태를 감시함과 함께, 상기 복수의 슬라이스 디코더를 제어하는 제어 단계
    를 포함하고,
    상기 제어 단계의 처리에서는 상기 픽쳐에 포함되는 상기 슬라이스의 순서에 상관없이, 상기 복수의 슬라이스 디코더 중 상기 디코드 처리 제어 단계의 처리에 의해 디코드 처리가 종료된 상기 슬라이스 디코더에, 디코드해야 할 상기 슬라이스를 할당하는 것을 특징으로 하는 복호 방법.
  28. 소스 부호화 스트림을 복호하는 복호 장치를 제어하는 컴퓨터가 실행 가능한 프로그램에 있어서,
    복수의 슬라이스 디코더에 의한 상기 소스 부호화 스트림의 픽쳐를 구성하는 슬라이스마다의 상기 소스 부호화 스트림의 디코드 처리를 제어하는 디코드 처리 제어 단계; 및
    상기 복수의 슬라이스 디코더의 디코드 상태를 감시함과 함께, 상기 복수의 슬라이스 디코더를 제어하는 제어 단계
    를 포함하고,
    상기 제어 단계의 처리에서는 상기 픽쳐에 포함되는 상기 슬라이스의 순서에 상관없이, 상기 복수의 슬라이스 디코더 중 상기 디코드 처리 제어 단계의 처리에의해 디코드 처리가 종료된 상기 슬라이스 디코더에, 디코드해야 할 상기 슬라이스를 할당하는 것을 특징으로 하는 프로그램.
KR1020017016037A 2000-04-14 2001-04-13 복호 장치, 복호 방법, 및 기록 매체 KR100796085B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000112951 2000-04-14
JPJP-P-2000-00112951 2000-04-14

Publications (2)

Publication Number Publication Date
KR20020026184A true KR20020026184A (ko) 2002-04-06
KR100796085B1 KR100796085B1 (ko) 2008-01-21

Family

ID=18625011

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017016037A KR100796085B1 (ko) 2000-04-14 2001-04-13 복호 장치, 복호 방법, 및 기록 매체

Country Status (8)

Country Link
US (2) US20020114388A1 (ko)
EP (1) EP1187489B1 (ko)
JP (2) JP5041626B2 (ko)
KR (1) KR100796085B1 (ko)
CN (1) CN1223196C (ko)
CA (1) CA2376871C (ko)
DE (1) DE60130180T2 (ko)
WO (1) WO2001080567A1 (ko)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7292772B2 (en) * 2000-05-29 2007-11-06 Sony Corporation Method and apparatus for decoding and recording medium for a coded video stream
GB2377840A (en) * 2001-07-18 2003-01-22 Sony Uk Ltd Audio/video recording and multiplexing apparatus
AU2002351389A1 (en) * 2001-12-17 2003-06-30 Microsoft Corporation Skip macroblock coding
JP4703114B2 (ja) * 2002-01-22 2011-06-15 マイクロソフト コーポレーション 開始符号エミュレーションの防止およびデータ充填のための方法およびシステム
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US7280700B2 (en) * 2002-07-05 2007-10-09 Microsoft Corporation Optimization techniques for data compression
US7154952B2 (en) 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
FR2842979B1 (fr) * 2002-07-24 2004-10-08 Thomson Licensing Sa Procede et dispositif de traitement de donnees numeriques
US7092576B2 (en) * 2003-09-07 2006-08-15 Microsoft Corporation Bitplane coding for macroblock field/frame coding type information
US7606308B2 (en) * 2003-09-07 2009-10-20 Microsoft Corporation Signaling macroblock mode information for macroblocks of interlaced forward-predicted fields
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
JP5330647B2 (ja) * 2003-09-17 2013-10-30 トムソン ライセンシング 適応参照画像の発生
JP4705921B2 (ja) * 2004-01-20 2011-06-22 パナソニック株式会社 量子化マトリクスおよび動画像の復号化方法、復号化装置、プログラムおよび記録媒体
WO2005076614A1 (en) 2004-01-30 2005-08-18 Matsushita Electric Industrial Co., Ltd. Moving picture coding method and moving picture decoding method
JP2007535191A (ja) 2004-01-30 2007-11-29 松下電器産業株式会社 画像符号化方法、画像復号化方法、画像符号化装置、画像復号化装置およびプログラム
CN101686364B (zh) * 2004-04-28 2013-03-13 松下电器产业株式会社 流产生装置,流产生方法,编码装置,编码方法,记录介质及其程序
TW201145943A (en) 2004-05-13 2011-12-16 Qualcomm Inc Synchronization of audio and video data in a wireless communication system
CN1306822C (zh) * 2004-07-30 2007-03-21 联合信源数字音视频技术(北京)有限公司 一种基于软硬件协同控制的视频解码器
CN1998242B (zh) * 2004-08-11 2010-07-07 株式会社日立制作所 图像编码装置和图像解码装置
JP4438059B2 (ja) * 2004-08-24 2010-03-24 キヤノン株式会社 画像再生装置及びその制御方法
JP4453518B2 (ja) 2004-10-29 2010-04-21 ソニー株式会社 符号化及び復号装置並びに符号化及び復号方法
EP1713075B1 (en) * 2005-01-28 2012-05-02 Panasonic Corporation Recording medium, reproduction device, program, reproduction method, recording method
US9077960B2 (en) 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
JP4182442B2 (ja) * 2006-04-27 2008-11-19 ソニー株式会社 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
US20080253449A1 (en) * 2007-04-13 2008-10-16 Yoji Shimizu Information apparatus and method
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
WO2009093647A1 (ja) * 2008-01-24 2009-07-30 Nec Corporation 動画像ストリーム加工方法及び装置、それを用いた動画像再生装置並びに動画像配信装置
US8370887B2 (en) 2008-05-30 2013-02-05 Microsoft Corporation Media streaming with enhanced seek operation
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
CN102349102A (zh) * 2009-03-13 2012-02-08 松下电器产业株式会社 语音解码装置及语音解码方法
KR20110017303A (ko) * 2009-08-13 2011-02-21 삼성전자주식회사 회전변환을 이용한 영상 부호화, 복호화 방법 및 장치
US9561730B2 (en) 2010-04-08 2017-02-07 Qualcomm Incorporated Wireless power transmission in electric vehicles
US10343535B2 (en) 2010-04-08 2019-07-09 Witricity Corporation Wireless power antenna alignment adjustment system for vehicles
US10244239B2 (en) 2010-12-28 2019-03-26 Dolby Laboratories Licensing Corporation Parameter set for picture segmentation
JP2013168932A (ja) * 2012-01-18 2013-08-29 Jvc Kenwood Corp 画像復号装置、画像復号方法及び画像復号プログラム
WO2013108634A1 (ja) * 2012-01-18 2013-07-25 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに画像復号装置、画像復号方法及び画像復号プログラム
WO2013109967A1 (en) * 2012-01-20 2013-07-25 Sony Corporation Complexity reduction of significance map coding
US10271069B2 (en) 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention
JPWO2018142596A1 (ja) * 2017-02-03 2019-02-07 三菱電機株式会社 符号化装置、符号化方法および符号化プログラム
WO2019065444A1 (ja) 2017-09-26 2019-04-04 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379070A (en) * 1992-10-02 1995-01-03 Zoran Corporation Parallel encoding/decoding of DCT compression/decompression algorithms
US5381145A (en) * 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
JP3871348B2 (ja) * 1993-03-05 2007-01-24 ソニー株式会社 画像信号復号化装置及び画像信号復号化方法
EP0614317A3 (en) * 1993-03-05 1995-01-25 Sony Corp Decoding video signals.
CA2145363C (en) * 1994-03-24 1999-07-13 Anthony Mark Jones Ram interface
US5510842A (en) * 1994-05-04 1996-04-23 Matsushita Electric Corporation Of America Parallel architecture for a high definition television video decoder having multiple independent frame memories
JP3250588B2 (ja) * 1994-07-12 2002-01-28 ソニー株式会社 データ再生装置
US5532744A (en) * 1994-08-22 1996-07-02 Philips Electronics North America Corporation Method and apparatus for decoding digital video using parallel processing
JP2863096B2 (ja) * 1994-08-29 1999-03-03 株式会社グラフィックス・コミュニケーション・ラボラトリーズ 並列処理による画像復号装置
US5623311A (en) * 1994-10-28 1997-04-22 Matsushita Electric Corporation Of America MPEG video decoder having a high bandwidth memory
JP3034173B2 (ja) * 1994-10-31 2000-04-17 株式会社グラフィックス・コミュニケーション・ラボラトリーズ 画像信号処理装置
JPH08205142A (ja) * 1994-12-28 1996-08-09 Daewoo Electron Co Ltd ディジタルビデオ信号への符号化/復号化装置
EP0720372A1 (en) * 1994-12-30 1996-07-03 Daewoo Electronics Co., Ltd Apparatus for parallel encoding/decoding of digital video signals
US5959690A (en) * 1996-02-20 1999-09-28 Sas Institute, Inc. Method and apparatus for transitions and other special effects in digital motion video
JPH1056641A (ja) * 1996-08-09 1998-02-24 Sharp Corp Mpegデコーダ
JPH10145237A (ja) * 1996-11-11 1998-05-29 Toshiba Corp 圧縮データ復号装置
JPH10150636A (ja) * 1996-11-19 1998-06-02 Sony Corp 映像信号再生装置及び映像信号の再生方法
JPH10178644A (ja) * 1996-12-18 1998-06-30 Sharp Corp 動画像復号装置
US6201927B1 (en) * 1997-02-18 2001-03-13 Mary Lafuze Comer Trick play reproduction of MPEG encoded signals
JPH10257436A (ja) * 1997-03-10 1998-09-25 Atsushi Matsushita 動画像の自動階層構造化方法及びこれを用いたブラウジング方法
JPH10262215A (ja) * 1997-03-19 1998-09-29 Fujitsu Ltd 動画像復号装置
JP3662129B2 (ja) * 1997-11-11 2005-06-22 松下電器産業株式会社 マルチメディア情報編集装置
JP3961654B2 (ja) * 1997-12-22 2007-08-22 株式会社東芝 画像データ復号化装置及び画像データ復号化方法
JP3093724B2 (ja) * 1998-04-27 2000-10-03 日本電気アイシーマイコンシステム株式会社 動画像データ再生装置及び動画像データの逆再生方法
JPH11341489A (ja) * 1998-05-25 1999-12-10 Sony Corp 画像復号化装置とその方法
CN1138270C (zh) * 1998-06-05 2004-02-11 皇家菲利浦电子有限公司 信息信号在记录载体上的轨迹中的记录和重放
JP4427827B2 (ja) * 1998-07-15 2010-03-10 ソニー株式会社 データ処理方法、データ処理装置及び記録媒体

Also Published As

Publication number Publication date
JP2001359107A (ja) 2001-12-26
DE60130180T2 (de) 2008-05-15
US20020114388A1 (en) 2002-08-22
JP5041626B2 (ja) 2012-10-03
US20090010334A1 (en) 2009-01-08
CA2376871A1 (en) 2001-10-25
KR100796085B1 (ko) 2008-01-21
EP1187489A4 (en) 2005-12-14
EP1187489A1 (en) 2002-03-13
CN1223196C (zh) 2005-10-12
CN1366776A (zh) 2002-08-28
JP2011172243A (ja) 2011-09-01
EP1187489B1 (en) 2007-08-29
CA2376871C (en) 2012-02-07
WO2001080567A1 (en) 2001-10-25
DE60130180D1 (de) 2007-10-11

Similar Documents

Publication Publication Date Title
KR100796085B1 (ko) 복호 장치, 복호 방법, 및 기록 매체
US7292772B2 (en) Method and apparatus for decoding and recording medium for a coded video stream
US8428126B2 (en) Image decoding device with parallel processors
KR100770704B1 (ko) 픽쳐 스킵 방법 및 장치
US5987179A (en) Method and apparatus for encoding high-fidelity still images in MPEG bitstreams
CN100508585C (zh) 用于控制数字视频比特流逆向播放的装置和方法
KR100289855B1 (ko) 복호화 방법 및 장치
JPH0818953A (ja) 動画像復号表示装置
JP2001285876A (ja) 画像符号化装置とその方法、ビデオカメラ、画像記録装置、画像伝送装置
KR100260475B1 (ko) 화상 데이타 부호화 방법 및 장치, 화상 데이타 복호화 방법 및 장치 및 화상 기록 매체
US20030016745A1 (en) Multi-channel image encoding apparatus and encoding method thereof
KR100192696B1 (ko) 화상 재생 방식 및 장치
JP3147792B2 (ja) 高速再生のためのビデオデータの復号化方法及びその装置
US20050141620A1 (en) Decoding apparatus and decoding method
US8300692B2 (en) Moving picture coding method, moving picture decoding method, moving picture coding device, and moving picture decoding device
JP4906197B2 (ja) 復号装置および方法、並びに記録媒体
US6128340A (en) Decoder system with 2.53 frame display buffer
JP2007142809A (ja) 映像記録装置
JPH0898142A (ja) 画像再生装置
JPH0923427A (ja) 画像圧縮方法及び装置
KR100256648B1 (ko) 영상 부호화 시스템의 압축 정보 포맷
TWI272849B (en) Decoder and decoding method, recording medium, and program
JPH08130715A (ja) 画像再生装置
JPH08265759A (ja) 圧縮信号切換装置
JP2003037816A (ja) 動画像符号化方法

Legal Events

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

Payment date: 20130110

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee