KR20130090322A - 화상 복호화 장치와 화상 부호화 장치 및 그 방법과 프로그램 - Google Patents

화상 복호화 장치와 화상 부호화 장치 및 그 방법과 프로그램 Download PDF

Info

Publication number
KR20130090322A
KR20130090322A KR20127031223A KR20127031223A KR20130090322A KR 20130090322 A KR20130090322 A KR 20130090322A KR 20127031223 A KR20127031223 A KR 20127031223A KR 20127031223 A KR20127031223 A KR 20127031223A KR 20130090322 A KR20130090322 A KR 20130090322A
Authority
KR
South Korea
Prior art keywords
unit
transform
image data
data
prediction
Prior art date
Application number
KR20127031223A
Other languages
English (en)
Inventor
겐지 곤도
Original Assignee
소니 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소니 주식회사 filed Critical 소니 주식회사
Publication of KR20130090322A publication Critical patent/KR20130090322A/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • 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
    • 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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/124Quantisation
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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

Abstract

부호화 비트 스트림의 처리를 가역 복호화부(52)와 역양자화부(53)와 역직교 변환부(54)에서 순서대로 행하여 직교 변환 후의 계수 데이터와 부호화 파라미터 정보를 얻는다. 역직교 변환부(54)는, 부호화 파라미터 정보로 나타내진 매크로 블록 내에 있어서의 변환 블록의 위치에 따라, 미리 설정되어 있는 기저를 사용해서 계수 데이터의 역직교 변환을 행하여 예측 오차 데이터를 얻는다. 인트라 예측부(62)는 예측 화상 데이터를 생성한다. 가산부(55)는, 예측 오차 데이터에 예측 화상 데이터를 가산해서 화상 데이터를 복호한다. 변환 블록의 위치에 따라서 설정되어 있는 기저를 사용함으로써, 최적인 역직교 변환을 행하는 것이 가능해져, 부호화 효율을 개선할 수 있다.

Description

화상 복호화 장치와 화상 부호화 장치 및 그 방법과 프로그램{IMAGE DECODER APPARATUS, IMAGE ENCODER APPARATUS AND METHODS AND PROGRAMS THEREOF}
본 발명은, 화상 복호화 장치와 화상 부호화 장치 및 그 방법과 프로그램에 관한 것이다. 상세하게는, 효율적인 복호화나 부호화를 행할 수 있는 화상 복호화 장치와 화상 부호화 장치 및 그 방법과 프로그램을 제공한다.
최근, 화상 정보를 디지털로서 취급하고, 그때, 효율이 높은 정보의 전송, 축적을 목적으로 하고, 화상 정보 특유의 용장성을 이용하여, 직교 변환과 움직임 보상에 의해 압축하는 MPEG 등의 방식에 준거한 장치가, 방송국 등의 정보 배신 및 일반 가정에 있어서의 정보 수신의 양쪽에 있어서 보급되고 있다.
특히, MPEG2(ISO/IEC 13818-2)는, 범용 화상 부호화 방식으로서 정의되어 있다. MPEG2 압축 방식은, 비월 주사 화상 및 순차 주사 화상의 양쪽, 및 표준 해상도 화상 및 고정세 화상을 망라하는 표준으로, 프로페셔널 용도 및 컨슈머 용도의 광범위한 어플리케이션에 현재 널리 사용되고 있다. MPEG2 압축 방식을 사용함으로써, 예를 들어 1920×1088 화소를 갖는 고해상도의 비월 주사 화상이면 18 내지 22Mbps의 부호량(비트 레이트)을 할당함으로써, 높은 압축률로 양호한 화질의 실현이 가능하다.
MPEG2는 주로 방송용에 적합한 고화질 부호화를 대상으로 하고 있었지만, MPEG1보다 낮은 부호량(비트 레이트), 즉 보다 높은 압축률의 부호화 방식에는 대응하고 있지 않았다. 휴대 단말의 보급에 의해, 향후 그러한 부호화 방식의 요구는 높아진다고 생각되고, 이것에 대응해서 MPEG4 부호화 방식의 표준화가 행해졌다. 화상 부호화 방식에 관해서는, 1998년 12월에 ISO/IEC 14496-2로서 그 규격이 국제 표준으로 승인되었다.
또한, 최근, MPEG2나 MPEG4와 같은 부호화 방식에 비해, 그 부호화, 복호화에 보다 많은 연산량이 요구되기는 하지만, 보다 높은 부호화 효율을 실현할 수 있는 H.264 및 MPEG-4 Part10(Advanced Video Coding, 이하 H.264/AVC라고 기재함)이라는 이름으로 국제 표준으로 되어 있다. 이 H.264/AVC는, H.26L을 베이스로 해서, H.26L에서는 서포트되지 않는 기능도 도입하고 있다.
또한, H.264/AVC를 사용해서 화상 데이터를 보다 효율적으로 부호화하는 것이 특허 문헌 1 등에 개시되어 있다.
일본 특허 출원 공개 제2008-4984호 공보
그런데, 인트라 예측에서는, 인트라 예측의 방향에 맞추어 변환 방법의 전환을 행하는, MDDT(Mode dependent directional transform)라고 불리는 방식이 제안되어 있다. 이러한 MDDT 방식을 사용하는 경우, 인트라 예측의 방향에 맞추어 행해지는 변환이 최적화되어 있지 않으면, 부호화 효율을 개선하는 것이 곤란하다.
그래서, 본 발명에서는, 부호화 효율을 개선할 수 있는 화상 복호화 장치와 화상 부호화 장치 및 그 방법과 프로그램을 제공하는 것을 목적으로 한다.
본 발명의 제1 측면은, 화상 데이터와 예측 화상 데이터의 오차인 예측 오차 데이터를, 변환 블록마다 직교 변환하여, 상기 직교 변환 후의 계수 데이터를 처리해서 생성된 부호화 비트 스트림으로부터 상기 화상 데이터를 복호하는 화상 복호화 장치에 있어서, 상기 부호화 비트 스트림을 처리하여, 상기 직교 변환 후의 계수 데이터와 부호화 파라미터 정보를 얻는 데이터 처리부와, 상기 부호화 파라미터 정보로 나타내진 매크로 블록 내에 있어서의 상기 변환 블록의 위치에 따라서 미리 설정되어 있는 기저를 사용해서 상기 계수 데이터의 역직교 변환을 행하여 예측 오차를 얻는 역직교 변환부와, 상기 예측 화상 데이터를 생성하는 예측 화상 데이터 생성부와, 상기 역직교 변환부에서 얻어진 상기 예측 오차에 상기 예측 화상 데이터 생성부에서 생성된 예측 화상 데이터를 가산해서 상기 화상 데이터를 복호하는 가산부를 갖는 화상 복호화 장치에 있다.
본 발명의 화상 복호화 장치에서는, 부호화 비트 스트림을 처리해서 얻어진 직교 변환 후의 계수 데이터의 역직교 변환을 행할 때, 상기 부호화 비트 스트림에 포함되어 있는 화상 데이터를 복호하기 위한 부호화 파라미터 정보로 나타내진 매크로 블록 내에 있어서의 변환 블록의 블록 위치나 블록 위치와 부호화 파라미터 정보로 나타내진 예측 모드에 따라서 미리 설정되어 있는 기저가 사용되어, 역직교 변환 예를 들어 카루넨·루베 역변환이 행해진다. 또한, 매크로 블록에 포함되는 변환 블록이 복수일 때, 각 변환 블록의 직교 변환 후의 가장 낮은 주파수 성분의 계수를 사용한 블록의 직교 변환 후의 계수 데이터에 대하여, 예측 모드에 따라서 미리 설정되어 있는 기저를 사용하여,카루넨·루베 역변환이 행해진다. 또한, 역직교 변환부에서 사용되는 기저는, 예측 오차 데이터를 변환 블록마다 직교 변환했을 때 사용되는 기저의 역행예이다. 이러한 기저를 미리 설치해 두고, 블록 위치 등에 따른 기저를 선택하여 사용해서 역직교 변환을 행하여 직교 변환이 행해지기 전의 예측 오차 데이터를 생성한다.
본 발명의 제2 측면은, 화상 데이터와 예측 화상 데이터의 오차인 예측 오차 데이터를, 변환 블록마다 직교 변환하여, 그 직교 변환 후의 계수 데이터를 처리해서 생성된 부호화 비트 스트림으로부터 상기 화상 데이터를 복호하는 화상 복호화 방법에 있어서, 상기 부호화 비트 스트림을 처리하여, 상기 직교 변환 후의 계수 데이터와 부호화 파라미터 정보를 얻는 데이터 처리 공정과, 상기 부호화 파라미터 정보로 나타내진 매크로 블록 내에 있어서의 상기 변환 블록의 위치에 따라, 미리 설정되어 있는 기저를 사용해서 상기 계수 데이터의 역직교 변환을 행하여 예측 오차를 얻는 역직교 변환 공정과, 상기 예측 화상 데이터를 생성하는 예측 화상 데이터 생성 공정과, 상기 역직교 변환부에서 얻어진 상기 예측 오차에 상기 생성된 예측 화상 데이터를 가산해서 상기 화상 데이터를 복호하는 가산 공정을 포함하는 화상 복호화 방법에 있다.
본 발명의 제3 측면은, 화상 데이터와 예측 화상 데이터의 오차인 예측 오차 데이터를, 변환 블록마다 직교 변환하여, 그 직교 변환 후의 계수 데이터를 처리해서 생성된 부호화 비트 스트림으로부터 상기 화상 데이터를 복호하는 화상 부호화를 컴퓨터에서 실행시키는 프로그램으로서, 상기 부호화 비트 스트림을 처리하여, 상기 직교 변환 후의 계수 데이터와 부호화 파라미터 정보를 얻는 데이터 처리 수순과, 상기 부호화 파라미터 정보로 나타내진 매크로 블록 내에 있어서의 상기 변환 블록의 위치에 따라, 미리 설정되어 있는 기저를 사용해서 상기 계수 데이터의 역직교 변환을 행하여 예측 오차를 얻는 역직교 변환 수순과, 상기 예측 화상 데이터를 생성하는 예측 화상 데이터 생성 수순과, 상기 역직교 변환부에서 얻어진 상기 예측 오차에 상기 생성된 예측 화상 데이터를 가산해서 상기 화상 데이터를 복호하는 가산 수순을 상기 컴퓨터에서 실행시키는 프로그램에 있다.
본 발명의 제4 측면은, 화상 데이터의 부호화를 행하는 화상 부호화 장치에 있어서, 상기 화상 데이터의 예측 화상 데이터를 생성하는 예측부와, 상기 화상 데이터와 상기 예측 화상 데이터의 오차인 예측 오차 데이터를 생성하는 감산부와, 상기 예측 오차의 직교 변환을 변환 블록마다 행하고, 매크로 블록 내에 있어서의 상기 변환 블록의 위치에 따라서 미리 설정되어 있는 기저를 사용하여, 상기 직교 변환을 행하는 직교 변환부와, 상기 직교 변환부의 출력 데이터를 처리해서 부호화 비트 스트림을 생성하는 데이터 처리부를 갖는 화상 부호화 장치에 있다.
본 발명의 화상 부호화 장치에서는, 화상 데이터와 예측 화상 데이터의 오차를 나타내는 예측 오차 데이터를 변환 블록마다 직교 변환할 때, 매크로 블록 내에 있어서의 변환 블록의 블록 위치나 블록 위치와 예측 화상 데이터를 생성했을 때의 예측 모드에 따라서 미리 설정되어 있는 기저가 사용되어, 직교 변환 예를 들어 카루넨·루베 변환이 행해진다. 또한, 매크로 블록에 포함되는 변환 블록이 복수일 때, 각 변환 블록에 있어서의 직교 변환 후의 가장 낮은 주파수 성분의 계수로 구성한 블록의 카루넨·루베 변환이 행해진다. 이 카루넨·루베 변환에서는, 예측 모드에 따라서 미리 설정되어 있는 기저가 사용된다. 이 기저는, 미리 기저의 학습용으로 준비되어 있는 복수의 화상을 사용하여, 매크로 블록 사이즈마다, 변환 블록 사이즈마다, 매크로 블록 내에 있어서의 변환 블록의 위치마다, 및 예측 모드마다의 각 변환 블록 내의 예측 오차 데이터로부터 산출한 행렬의 고유값에 대응하는 고유 벡터이다. 또한, 기저는, 기저간의 거리 또는 참조 화소로부터의 거리에 따라 그룹화되어 있다. 이러한 기저를 미리 설치해 두고, 블록 위치 등에 따른 기저를 선택하여 사용해서 직교 변환을 행한다. 또한, 직교 변환 후의 계수 데이터에 대하여 양자화나 가역 부호화 등의 처리가 행해져, 부호화 비트 스트림의 생성이 행해진다.
본 발명의 제5 측면은, 화상 데이터의 부호화를 행하는 화상 부호화 방법에 있어서, 상기 화상 데이터의 예측 화상 데이터를 생성하는 예측 화상 데이터 생성 공정과, 상기 화상 데이터와 상기 예측 화상 데이터의 오차인 예측 오차 데이터를 생성하는 감산 공정과, 상기 예측 오차의 직교 변환을 변환 블록마다 행하고, 매크로 블록 내에 있어서의 상기 변환 블록의 위치에 따라서 미리 설정되어 있는 기저를 사용하여, 상기 직교 변환을 행하는 직교 변환 공정을 포함하는 화상 부호화 방법에 있다.
본 발명의 제6 측면은, 화상 데이터의 부호화를 컴퓨터에서 실행시키는 프로그램으로서, 상기 화상 데이터의 예측 화상 데이터를 생성하는 예측 화상 데이터 생성 수순과, 상기 화상 데이터와 상기 예측 화상 데이터의 오차인 예측 오차 데이터를 생성하는 감산 수순과, 상기 예측 오차의 직교 변환을 변환 블록마다 행하고, 매크로 블록 내에 있어서의 상기 변환 블록의 위치에 따라서 미리 설정되어 있는 기저를 사용하여, 상기 직교 변환을 행하는 직교 변환 수순을 상기 컴퓨터에서 실행시키는 프로그램에 있다.
또한, 본 발명의 프로그램은, 예를 들어, 여러 가지의 프로그램·코드를 실행 가능한 범용 컴퓨터·시스템에 대하여, 컴퓨터 판독 가능한 형식으로 제공하는 기억 매체, 통신 매체, 예를 들어, 광 디스크나 자기 디스크, 반도체 메모리 등의 기억 매체, 혹은, 네트워크 등의 통신 매체에 의해 제공 가능한 프로그램이다. 이러한 프로그램을 컴퓨터 판독 가능한 형식으로 제공함으로써, 컴퓨터·시스템 상에서 프로그램에 따른 처리가 실현된다.
본 발명에 따르면, 화상 데이터의 부호화 시에 행해지는 직교 변환에 있어서, 매크로 블록 내에 있어서의 변환 블록의 블록 위치에 따라서 미리 설정되어 있는 기저를 사용해서 직교 변환이 행해진다. 또한, 블록 위치에 따라서 미리 설정되어 있는 기저를 사용해서 직교 변환을 행하는 것으로 얻어진 계수 데이터를 처리해서 생성된 부호화 비트 스트림의 복호화에 있어서, 부호화 비트 스트림에 포함되어 있는 부호화 파라미터 정보로 나타내진 매크로 블록 내의 블록 위치에 따라서 미리 설정되어 있는 기저가 사용되어, 역직교 변환이 행해지므로, 직교 변환 후의 계수 데이터를 직교 변환 전의 예측 오차 데이터로 복귀시킬 수 있다. 이와 같이, 매크로 블록 내의 블록 위치에 따른 기저를 사용해서 직교 변환이나 역직교 변환이 행해지므로, 블록 위치에 따라서 최적화한 변환을 행하는 것이 가능해져, 부호화 효율을 개선할 수 있다.
도 1은 화상 부호화 장치의 구성을 도시한 도면.
도 2는 4×4 화소의 블록에 관한 인트라 예측 모드를 도시하는 도면.
도 3은 예측 모드와 예측 오차의 관계를 도시한 도면.
도 4는 직교 변환부에 있어서의 KL 변환을 도시하는 도면.
도 5는 직교 변환부의 구성을 도시하는 도면.
도 6은 화상 부호화 처리 동작을 도시하는 플로우차트.
도 7은 예측 처리를 도시하는 플로우차트.
도 8은 인트라 예측 처리를 도시하는 플로우차트.
도 9는 인터 예측 처리를 도시하는 플로우차트.
도 10은 부호화 파라미터 생성 처리를 도시하는 플로우차트.
도 11은 직교 변환 처리를 나타내는 부호 플로우차트.
도 12는 직교 변환 동작을 설명하기 위한 도면.
도 13은 화상 복호화 장치의 구성을 도시한 도면.
도 14는 역직교 변환부의 구성을 도시하는 도면.
도 15는 화상 복호화 처리 동작을 도시하는 플로우차트.
도 16은 역직교 변환 처리를 도시하는 플로우차트.
도 17은 역직교 변환 처리를 설명하기 위한 도면.
도 18은 예측 처리를 도시하는 플로우차트.
도 19는 기저의 학습 동작을 도시하는 플로우차트.
도 20은 기저의 그룹화를 설명하기 위한 도면.
도 21은 텔레비전 장치의 개략적인 구성을 예시한 도면.
도 22는 휴대 전화기의 개략적인 구성을 예시한 도면.
도 23은 기록 재생 장치의 개략적인 구성을 예시한 도면.
도 24는 촬상 장치의 개략적인 구성을 예시한 도면.
이하, 발명을 실시하기 위한 형태에 대해서 설명한다. 또한, 설명은 이하의 순서로 행한다.
1. 화상 부호화 장치의 구성
2. 직교 변환부의 구성
3. 화상 부호화 장치의 동작
4. 화상 복호화 장치의 구성
5. 역직교 변환부의 구성
6. 화상 복호화 장치의 동작
7. 기저의 학습 동작
8. 소프트웨어 처리의 경우
9. 전자 기기에 적용한 경우
<1. 화상 부호화 장치의 구성>
도 1은, 화상 부호화 장치의 구성을 도시하고 있다. 화상 부호화 장치(10)는, 아날로그/디지털 변환부(A/D 변환부)(11), 화면 재배열 버퍼(12), 감산부(13), 직교 변환부(14), 양자화부(15), 가역 부호화부(16), 축적 버퍼(17), 레이트 제어부(18)를 구비하고 있다. 또한, 화상 부호화 장치(10)는, 역양자화부(21), 역직교 변환부(22), 가산부(23), 디블록킹 필터(24), 프레임 메모리(27), 인트라 예측부(31), 움직임 예측·보상부(32), 예측 화상·최적 모드 선택부(33)를 구비하고 있다.
A/D 변환부(11)는, 아날로그의 화상 신호를 디지털의 화상 데이터로 변환해서 화면 재배열 버퍼(12)에 출력한다.
화면 재배열 버퍼(12)는, A/D 변환부(11)로부터 출력된 화상 데이터에 대하여 프레임의 재배열을 행한다. 화면 재배열 버퍼(12)는, 부호화 처리에 따른 GOP(Group of Pictures) 구조에 따라서 프레임의 재배열을 행하고, 재배열 후의 화상 데이터를 감산부(13)와 인트라 예측부(31)와 움직임 예측·보상부(32)에 출력한다.
감산부(13)에는, 화면 재배열 버퍼(12)로부터 출력된 화상 데이터와, 후술하는 예측 화상·최적 모드 선택부(33)에서 선택된 예측 화상 데이터가 공급된다. 감산부(13)는, 화면 재배열 버퍼(12)로부터 출력된 화상 데이터와 예측 화상·최적 모드 선택부(33)로부터 공급된 예측 화상 데이터의 차분인 예측 오차 데이터를 산출하여, 직교 변환부(14)에 출력한다.
직교 변환부(14)는, 감산부(13)로부터 출력된 예측 오차 데이터에 대하여 직교 변환 처리를 행한다. 또한, 직교 변환부(14)는, 인트라 예측을 행하는 경우, 예측 모드에 따른 직교 변환 처리를 행한다. 직교 변환부(14)는, 직교 변환 처리를 행함으로써 얻어진 계수 데이터를 양자화부(15)에 출력한다.
양자화부(15)에는, 직교 변환부(14)로부터 출력된 계수 데이터와, 후술하는 레이트 제어부(18)로부터 레이트 제어 신호가 공급되고 있다. 양자화부(15)는 계수 데이터의 양자화를 행하고, 양자화 데이터를 가역 부호화부(16)와 역양자화부(21)에 출력한다. 또한, 양자화부(15)는, 레이트 제어부(18)로부터의 레이트 제어 신호에 기초하여 양자화 파라미터(양자화 스케일)를 전환하여, 양자화 데이터의 비트 레이트를 변화시킨다.
가역 부호화부(16)에는, 양자화부(15)로부터 출력된 양자화 데이터와, 후술하는 인트라 예측부(31)와 움직임 예측·보상부(32)나 예측 화상·최적 모드 선택부(33)로부터 부호화 파라미터 정보가 공급된다. 또한, 부호화 파라미터 정보에는, 인트라 예측인지 인터 예측인지를 나타내는 정보, 매크로 블록 사이즈를 나타내는 매크로 블록 정보, 인트라 예측에 관한 정보, 인터 예측에 관한 정보 등이 포함된다. 가역 부호화부(16)는, 양자화 데이터에 대하여 예를 들어 가변길이 부호화 또는 산술 부호화 등에 의해 가역 부호화 처리를 행하고, 부호화 비트 스트림을 생성해서 축적 버퍼(17)에 출력한다. 또한, 가역 부호화부(16)는, 부호화 파라미터 정보를 가역 부호화하여, 부호화 비트 스트림의 예를 들어 헤더 정보에 부가한다. 또한, 양자화부(15)나 가역 부호화부(16)가, 직교 변환부(14)의 출력 데이터를 처리해서 부호화 비트 스트림을 생성하는 데이터 처리부에 상당한다.
축적 버퍼(17)는, 가역 부호화부(16)로부터의 부호화 비트 스트림을 축적한다. 또한, 축적 버퍼(17)는, 축적한 부호화 비트 스트림을 전송로에 따른 전송 속도로 출력한다.
레이트 제어부(18)는, 축적 버퍼(17)의 빈 용량의 감시를 행하고, 빈 용량에 따라서 레이트 제어 신호를 생성해서 양자화부(15)에 출력한다. 레이트 제어부(18)는, 예를 들어 축적 버퍼(17)로부터 빈 용량을 나타내는 정보를 취득한다. 레이트 제어부(18)는 빈 용량이 적게 되어 있을 때, 레이트 제어 신호에 의해 양자화 데이터의 비트 레이트를 저하시킨다. 또한, 레이트 제어부(18)는 축적 버퍼(17)의 빈 용량이 충분히 클 때, 레이트 제어 신호에 의해 양자화 데이터의 비트 레이트를 높게 한다.
역양자화부(21)는, 양자화부(15)로부터 공급된 양자화 데이터의 역양자화 처리를 행한다. 역양자화부(21)는, 역양자화 처리를 행함으로써 얻어진 계수 데이터를 역직교 변환부(22)에 출력한다.
역직교 변환부(22)는, 역양자화부(21)로부터 공급된 계수 데이터의 역직교 변환 처리를 행함으로써 얻어진 데이터를 가산부(23)에 출력한다.
가산부(23)는, 역직교 변환부(22)로부터 공급된 데이터와 예측 화상·최적 모드 선택부(33)로부터 공급된 예측 화상 데이터를 가산해서 참조 화상 데이터를 생성해서, 디블록킹 필터(24)와 인트라 예측부(31)에 출력한다.
디블록킹 필터(24)는, 화상의 부호화 시에 발생하는 블록 왜곡을 감소시키기 위한 필터 처리를 행한다. 디블록킹 필터(24)는, 가산부(23)로부터 공급된 참조 화상 데이터로부터 블록 왜곡을 제거하는 필터 처리를 행하고, 필터 처리 후의 참조 화상 데이터를 프레임 메모리(27)에 출력한다.
프레임 메모리(27)는, 디블록킹 필터(24)로부터 공급된 필터 처리 후의 참조 화상 데이터를 보유 지지한다.
인트라 예측부(31)는, 화면 재배열 버퍼(12)로부터 출력된 부호화 대상 화상의 화상 데이터와 가산부(23)로부터 공급된 참조 화상 데이터를 사용하여, 인트라 예측 처리를 행한다. 인트라 예측부(31)는, 직교 변환에 있어서의 변환 블록 사이즈마다, 및 인트라 예측의 예측 모드마다 인트라 예측 처리를 행한다. 인트라 예측부(31)는, 생성한 예측 화상 데이터를 예측 화상·최적 모드 선택부(33)에 출력한다. 또한, 인트라 예측부(31)는, 인트라 예측 처리에 관한 부호화 파라미터 정보를 생성해서, 가역 부호화부(16)와 예측 화상·최적 모드 선택부(33)에 출력한다. 인트라 예측부(31)는, 부호화 파라미터 정보에, 예를 들어 매크로 블록 사이즈나 변환 블록 사이즈, 매크로 블록 내에 있어서의 변환 블록의 위치, 예측 모드 등을 포함시킨다.
또한, 인트라 예측부(31)는, 각 인트라 예측 처리에 있어서 코스트 함수값을 산출하여, 산출한 코스트 함수값이 최소로 되는 인트라 예측 처리, 즉 부호화 효율이 가장 높아지는 최적 인트라 예측 처리를 선택한다. 인트라 예측부(31)는, 최적 인트라 예측 처리에 있어서의 부호화 파라미터 정보와 코스트값과 최적 인트라 예측 처리에서 생성한 예측 화상 데이터를, 예측 화상·최적 모드 선택부(33)에 출력한다.
움직임 예측·보상부(32)는, 매크로 블록에 대한 모든 움직임 보상 블록 사이즈로 인터 예측 처리를 행하고, 예측 화상 데이터를 생성해서 예측 화상·최적 모드 선택부(33)에 출력한다. 움직임 예측·보상부(32)는, 화면 재배열 버퍼(12)로부터 읽어내진 부호화 대상 화상에 있어서의 각 움직임 보상 블록 사이즈의 화상마다, 프레임 메모리(27)로부터 읽어내진 필터 처리 후의 참조 화상 데이터를 사용해서 움직임 벡터를 검출한다. 또한, 움직임 예측·보상부(32)는, 검출한 움직임 벡터에 기초하여 참조 화상에 움직임 보상 처리를 실시해서 예측 화상 데이터의 생성을 행한다. 또한, 움직임 예측·보상부(32)는, 인터 예측 처리에 관한 부호화 파라미터 정보, 예를 들어 매크로 블록 사이즈나 움직임 보상 블록 사이즈, 움직임 벡터 등을 나타내는 부호화 파라미터 정보를 생성해서, 가역 부호화부(16)와 예측 화상·최적 모드 선택부(33)에 출력한다.
또한, 움직임 예측·보상부(32)는, 각 움직임 보상 블록 사이즈에 대하여 코스트 함수값을 산출하여, 산출한 코스트 함수값이 최소로 되는 인터 예측 처리, 즉 부호화 효율이 가장 높아지는 인터 예측 처리를 선택한다. 움직임 예측·보상부(32)는, 최적 인터 예측 처리에 있어서의 부호화 파라미터 정보와 코스트값과 최적 인터 예측 처리에서 생성한 예측 화상 데이터를 예측 화상·최적 모드 선택부(33)에 출력한다.
예측 화상·최적 모드 선택부(33)는, 인트라 예측부(31)에서 변환 블록 사이즈나 예측 모드마다 인트라 예측 처리를 행하여 최적 인트라 예측 처리를 선택할 때, 부호화 파라미터 정보를 직교 변환부(14)와 가역 부호화부(16), 예측 화상 데이터를 감산부(13)에 출력한다. 또한, 예측 화상·최적 모드 선택부(33)는, 움직임 예측·보상부(32)에서 예측 블록마다 인터 예측 처리를 행해서 최적 인터 예측 처리를 선택할 때, 부호화 파라미터 정보를 직교 변환부(14)와 가역 부호화부(16)에 출력하고, 예측 화상 데이터를 감산부(13)에 출력한다. 또한, 예측 화상·최적 모드 선택부(33)는, 최적 인트라 예측 처리와 최적 인터 예측 처리 중 어느 하나를 선택하여 최적 모드로 할 때, 최적 인트라 예측 처리의 코스트 함수값과 최적 인터 예측 처리의 코스트 함수값을 비교한다. 예측 화상·최적 모드 선택부(33)는, 비교 결과에 기초하여, 코스트 함수값이 작은 예측 처리, 즉 부호화 효율이 높은 예측 처리를 최적 모드로서 선택하여, 선택한 최적 모드에서 생성된 예측 화상 데이터를 감산부(13)에 출력한다. 또한, 예측 화상·최적 모드 선택부(33)는, 최적 모드의 예측 처리를 나타내는 부호화 파라미터 정보를 직교 변환부(14)와 가역 부호화부(16)에 출력한다.
<2. 직교 변환부의 구성>
인트라 예측 처리에서는, 부호화필의 인접 블록의 화소를 사용해서 예측이 행해지고 있고, 복수의 예측 방향으로부터 최적인 예측 방향을 선택하는 것이 행해지고 있다. 예를 들어, H.264/AVC에서는, 16×16 화소의 블록에 관한 예측 모드로서, 예측 모드0 내지 예측 모드3의 4개 모드가 설정되어 있다. 또한, 8×8 화소의 블록에 관한 예측 모드로서, 예측 모드0 내지 예측 모드8의 9개의 예측 모드가 설정되어 있다. 또한, 4×4 화소의 블록에 관한 예측 모드로서, 예측 모드0 내지 예측 모드8의 9개의 예측 모드가 설정되어 있다.
도 2는, 예를 들어 4×4 화소의 블록에 관한 예측 모드를 도시하고 있다. 이하, 도 2의 각 예측 모드에 대해서 간단하게 설명한다. 또한, 도 2에 있어서 화살표는 예측 방향을 나타내고 있다.
도 2의 (A)는 예측 모드0(vertical)을 도시하고 있다. 예측 모드0은, 수직 방향에 인접하는 참조 화소(reference pixel) A 내지 D에 의해 예측값을 생성하는 모드이다. 도 2의 (B)는 예측 모드1(horizontal)을 도시하고 있다. 예측 모드1은, 화살표로 나타내는 바와 같이, 수평 방향에 인접하는 참조 화소 I 내지 L에 의해 예측값을 생성하는 모드이다. 도 2의 (C)는 예측 모드2(DC)를 도시하고 있다. 예측 모드2는, 13개의 참조 화소 A 내지 M 중, 이 블록의 수직 방향 및 수평 방향에 인접하는 참조 화소 A 내지 D 및 I 내지 L에 의해 예측값을 생성하는 모드이다.
도 2의 (D)는 예측 모드3(diagonal down-left)을 도시하고 있다. 예측 모드3은, 13개의 참조 화소 A 내지 M 중, 수평 방향에 연속하는 참조 화소 A 내지 H에 의해 예측값을 생성하는 모드이다. 도 2의 (E)는 예측 모드4(diagonal down-right)를 도시하고 있다. 예측 모드4는, 13개의 참조 화소 A 내지 M 중, 당해 블록에 인접하는 참조 화소 A 내지 D, I 내지 M에 의해 예측값을 생성하는 모드이다. 도 2의 (F)는 예측 모드5(vertical-right)를 도시하고 있다. 예측 모드5는, 13개의 참조 화소 A 내지 M 중, 당해 블록에 인접하는 참조 화소 A 내지 D, I 내지 M에 의해 예측값을 생성하는 모드이다.
도 2의 (G)는 예측 모드6(horizontal-down)을 도시하고 있다. 예측 모드6은, 예측 모드4 및 예측 모드5와 마찬가지로, 13개의 참조 화소 A 내지 M 중, 당해 블록에 인접하는 참조 화소 A 내지 D, I 내지 M에 의해 예측값을 생성하는 모드이다. 도 2의 (H)는 예측 모드7(vertical-left)을 도시하고 있다. 예측 모드7은, 13개의 참조 화소 A 내지 M 중, 당해 블록의 상방에 인접하는 4개의 참조 화소 A 내지 D와, 이 4개의 참조 화소 A 내지 D에 이어지는 4개의 참조 화소 E 내지 G에 의해 예측값을 생성하는 모드이다. 도 2의 (I)는 예측 모드8(horizontal-up)을 도시하고 있다. 예측 모드8은, 13개의 참조 화소 A 내지 M 중, 당해 블록의 좌측에 인접하는 4개의 참조 화소 I 내지 L에 의해 예측값을 생성하는 모드이다.
이와 같이 예측값을 생성하는 경우, 블록 내의 화소에 있어서, 예측값과의 오차(예측 오차)는 예측에 사용하는 화소에 가까운 화소일수록 적어지는 경우가 많다. 따라서, 예를 들어, 도 3의 (A)에 도시하는 바와 같이 최적 모드로서 예측 모드0(vertical)이 선택된 경우, 화소 P0 내지 P3은 화소 P12 내지 P15보다도 예측 오차가 적다. 또한, 도 3의 (B)에 도시하는 바와 같이 예측 모드1(horizontal)이 선택된 경우, 화소 P0, P4, P8, P12는 화소 P3, P7, P11, P15보다도 예측 오차가 적다. 또한, 도 3의 (C)에 도시하는 바와 같이 예측 모드4(diagonal down-right)가 선택된 경우, 화소 P0은 화소 P15보다도 예측 오차가 적다. 이와 같이, 예측 오차는 예측 모드에 의존하고 있다. 또한, 매크로 블록 내의 블록 위치에 대해서도, 부호화필의 인접 매크로 블록에 가까운 블록일수록 예측 오차가 적어지는 경우가 많고, 예측 오차는 매크로 블록에 있어서의 블록 위치에도 의존한다. 따라서, 직교 변환부(14)는, 예측 모드 및 매크로 블록 내의 직교 변환을 행하는 블록의 위치마다 최적인 기저를 설정함으로써, 예측 오차의 직교 변환을 최적화한다.
또한, 직교 변환에 있어서, 카루넨·루베 변환(이하 「KL(Karhunen-Loeve) 변환」이라고 함)은, 변환 후의 계수가 서로 무상관으로 되도록 변환하는 변환 방식, 즉 최대의 부호화 효율을 얻으려고 하는 최적의 변환 방식인 것이 알려져 있다. 그러나, KL 변환의 기저를 알기 위해서는, 예측 오차에 기초한 행렬의 생성이나 생성한 행렬의 고유값에 대응하는 고유 벡터를 산출해야만 한다. 여기서, 화상 부호화 장치에서 그때마다 기저를 계산하면, 화상 부호화 장치에 있어서의 연산량이 커지게 된다. 또한, 계산한 기저를 부호화 비트 스트림에 부가하면 부호화 효율의 악화를 초래하게 된다. 그래서, 매크로 블록 내의 직교 변환을 행하는 블록 위치나 예측 모드마다 최적인 기저를 미리 학습에 의해 산출해 둔다. 이 산출한 기저를 화상 부호화 장치와 화상 복호화 장치에서 사용하도록 하면, 화상 부호화 장치와 화상 복호화 장치에서 기저의 산출을 행할 필요가 없어, 화상 부호화 장치와 화상 복호화 장치의 구성은, 기저를 산출하는 경우에 비해 간이하게 된다. 또한, 기저를 전송할 필요가 없으므로, KL 변환을 사용해서 부호화 효율을 높일 수 있게 된다. 또한, 기저의 학습에 대해서는 후술한다.
인트라 예측에서는, 매크로 블록이 16×16 화소일 때, 부호화 대상 화상의 블록 사이즈인 변환 블록 사이즈는, 예를 들어 16×16 화소, 8×8 화소, 4×4 화소 중 어느 하나의 블록 사이즈로 된다. 또한, 매크로 블록이 8×8 화소일 때, 변환 블록 사이즈는, 예를 들어 8×8 화소, 4×4 화소 중 어느 하나의 블록 사이즈로 된다. 따라서, 직교 변환부(14)는, 도 4에 도시하는 바와 같이, 매크로 블록이 16×16 화소일 때, 16×16 화소, 8×8 화소, 4×4 화소의 블록 사이즈로 예측 모드에 따른 KL 변환을 행할 수 있게 구성한다. 또한, 직교 변환부(14)는, 매크로 블록이 8×8 화소일 때, 8×8 화소, 4×4 화소의 블록 사이즈로 예측 모드에 따른 KL 변환을 행할 수 있게 구성한다. 또한, 직교 변환부(14)는, 매크로 블록 내에 복수의 변환 블록이 설치되는 경우, 매크로 블록 내의 블록 위치 loc에 따른 KL 변환을 행한다.
도 5는, KL 변환을 사용한 직교 변환부(14)의 구성을 예시하고 있다. 직교 변환부(14)는, 16×16 KL 변환부(141), 8×8 KL 변환부(142), 2×2 KL 변환부(143, 146), 4×4 KL 변환부(144, 145), DCT부(147), 계수 선택부(148)를 갖고 있다.
16×16 KL 변환부(141)는, 예측 모드마다 미리 학습되어 있는 최적인 기저를 사용하여, 16×16 화소의 블록 단위로 예측 오차 데이터의 KL 변환을 행하고, 얻어진 계수를 계수 선택부(148)에 출력한다.
8×8 KL 변환부(142)는, 예측 모드 및 매크로 블록 내에 있어서의 블록 위치마다 미리 학습되어 있는 최적인 기저를 사용하여, 8×8 화소의 블록 단위로 예측 오차 데이터의 KL 변환을 행한다. 또한, 예측 오차 데이터가 16×16 화소의 블록 사이즈에 대응하는 데이터일 때, 16×16 화소의 블록에는 8×8 화소의 블록이 4개 포함된다. 따라서, 8×8 KL 변환부(142)는, 8×8 화소의 각 블록에 있어서의 가장 낮은 주파수 성분의 계수(이하 「최저 주파수 성분 계수」라고 함)를 2×2 KL 변환부(143)에 출력하고, 다른 계수를 계수 선택부(148)에 출력한다. 또한, 8×8 KL 변환부(142)는, 예측 오차 데이터가 8×8 화소의 블록 사이즈에 대응하는 데이터일 때, 예측 모드마다 미리 학습되어 있는 최적인 기저를 사용하여, 8×8 화소의 블록 단위로 예측 오차 데이터의 KL 변환을 행한다. 8×8 KL 변환부(142)는, KL 변환에 의해 얻어진 계수를 계수 선택부(148)에 출력한다.
2×2 KL 변환부(143)는, 예측 모드마다 미리 학습되어 있는 최적인 기저를 사용하여, 8×8 KL 변환부(142)로부터 공급된 2×2 블록 분의 계수의 KL 변환을 예측 모드에 대응하는 기저를 사용해서 행하고, 얻어진 계수를 계수 선택부(148)에 출력한다.
4×4 KL 변환부(144)는, 예측 모드 및 매크로 블록 내에 있어서의 블록 위치마다 미리 학습되어 있는 최적인 기저를 사용하여, 4×4 화소의 블록 단위로 예측 오차 데이터의 KL 변환을 행한다. 또한, 예측 오차 데이터가 16×16 화소의 블록 사이즈에 대응하는 데이터일 때, 16×16 화소의 블록에는 4×4 화소의 블록이 16개 포함된다. 따라서, 4×4 KL 변환부(144)는, 4×4 화소의 각 블록에 있어서의 최저 주파수 성분 계수를 4×4 KL 변환부(145)에 출력하고, 다른 계수를 계수 선택부(148)에 출력한다. 또한, 예측 오차 데이터가 8×8 화소의 블록 사이즈에 대응하는 데이터일 때, 8×8 화소의 블록에는 4×4 화소의 블록이 4개 포함된다. 따라서, 4×4 KL 변환부(144)는, 4×4 화소의 각 블록에 있어서의 최저 주파수 성분 계수를 2×2 KL 변환부(146)에 출력하고, 다른 계수를 계수 선택부(148)에 출력한다.
4×4 KL 변환부(145)는, 예측 모드마다 미리 학습되어 있는 최적인 기저를 사용하여, 4×4 KL 변환부(144)로부터 공급된 4×4 블록 분의 최저 주파수 성분 계수의 블록에 대해서 KL 변환을, 4×4 KL 변환부(144)로부터 나타내진 예측 모드에 대응하는 기저를 사용해서 행한다. 4×4 KL 변환부(145)는, KL 변환에 의해 얻어진 계수를 계수 선택부(148)에 출력한다.
2×2 KL 변환부(146)는, 예측 모드마다 미리 학습되어 있는 최적인 기저를 사용하여, 4×4 KL 변환부(144)로부터 공급된 2×2 블록 분의 최저 주파수 성분 계수의 블록에 대해서 KL 변환을 예측 모드에 대응하는 기저를 사용해서 행한다. 2×2 KL 변환부(146)는, KL 변환에 의해 얻어진 계수를 계수 선택부(148)에 출력한다.
DCT부(147)는, 예측 오차 데이터의 이산 코사인 변환을 행하고, 얻어진 계수를 계수 선택부(148)에 출력한다.
계수 선택부(148)는, 매크로 블록 사이즈와, 변환 블록 사이즈 즉 예측 오차 데이터에 대응하는 블록 사이즈에 따라서 계수의 선택을 행한다. 계수 선택부(148)는, 매크로 블록 사이즈가 16×16 화소일 때, 16×16 KL 변환부(141)로부터 출력된 계수, 8×8 KL 변환부(142)와 2×2 KL 변환부(143)로부터 출력된 계수, 4×4 KL 변환부(144)와 4×4 KL 변환부(145)로부터 출력된 계수 중 어느 하나를 변환 블록 사이즈에 기초하여 선택한다. 계수 선택부(148)는, 선택한 계수를 양자화부(15)에 출력한다.
또한, 계수 선택부(148)는, 매크로 블록 사이즈가 8×8 화소일 때, 8×8 KL 변환부(142)로부터 출력된 계수, 4×4 KL 변환부(144)와 2×2 KL 변환부(146)로부터 출력된 계수 중 어느 하나를 변환 블록 사이즈에 기초하여 선택한다. 계수 선택부(148)는, 선택한 계수를 양자화부(15)에 출력한다. 또한, 계수 선택부(148)는, 예측 화상·최적 모드 선택부(33)로부터 공급된 부호화 파라미터 정보에 의해 인터 예측 모드인 것이 나타내졌을 때, DCT부(147)로부터 출력된 계수를 양자화부(15)에 출력한다.
<3. 화상 부호화 장치의 동작>
다음에, 화상 부호화 처리 동작에 대해서 설명한다. 도 6은, 화상 부호화 처리 동작을 도시하는 플로우차트이다. 스텝 ST11에 있어서, A/D 변환부(11)는 입력된 화상 신호를 A/D 변환한다.
스텝 ST12에 있어서 화면 재배열 버퍼(12)는, 화상 재배열을 행한다. 화면 재배열 버퍼(12)는, A/D 변환부(11)로부터 공급된 화상 데이터를 기억하고, 각 픽쳐가 표시하는 순서로부터 부호화하는 순서로의 재배열을 행한다.
스텝 ST13에 있어서 감산부(13)는, 예측 오차 데이터의 생성을 행한다. 감산부(13)는, 스텝 ST12에서 재배열된 화상의 화상 데이터와 예측 화상·최적 모드 선택부(33)에서 선택된 예측 화상 데이터의 차분을 산출해서 예측 오차 데이터를 생성한다. 예측 오차 데이터는, 원래의 화상 데이터에 비해 데이터량이 작다. 따라서, 화상을 그대로 부호화하는 경우에 비해, 데이터량을 압축할 수 있다.
스텝 ST14에 있어서 직교 변환부(14)는, 직교 변환 처리를 행한다. 직교 변환부(14)는, 감산부(13)로부터 공급된 예측 오차 데이터를 직교 변환한다. 직교 변환부(14)는, 예를 들어 예측 오차 데이터에 대하여 카루넨·루베 변환이나 이산 코사인 변환 등의 직교 변환을 행하고, 계수 데이터를 출력한다. 또한, 직교 변환부(14)의 동작의 상세에 대해서는 후술한다.
스텝 ST15에 있어서 양자화부(15)는, 양자화 처리를 행한다. 양자화부(15)는, 계수 데이터를 양자화한다. 양자화 시에는, 후술하는 스텝 ST26의 처리에서 설명되는 바와 같이, 레이트 제어가 행해진다.
스텝 ST16에 있어서 역양자화부(21)는, 역양자화 처리를 행한다. 역양자화부(21)는, 양자화부(15)에 의해 양자화된 계수 데이터를 양자화부(15)의 특성에 대응하는 특성으로 역 양자화한다.
스텝 ST17에 있어서 역직교 변환부(22)는, 역직교 변환 처리를 행한다. 역직교 변환부(22)는, 역양자화부(21)에 의해 역 양자화된 계수 데이터를 직교 변환부(14)의 특성에 대응하는 특성으로 역직교 변환한다.
스텝 ST18에 있어서 가산부(23)는, 참조 화상 데이터의 생성을 행한다. 가산부(23)는, 예측 화상·최적 모드 선택부(33)로부터 공급된 예측 화상 데이터와, 이 예측 화상 데이터와 대응하는 블록 위치의 역직교 변환 후의 데이터를 가산하여, 참조 화상 데이터를 생성한다.
스텝 ST19에 있어서 디블록킹 필터(24)는, 필터 처리를 행한다. 디블록킹 필터(24)는, 가산부(23)로부터 출력된 참조 화상 데이터를 필터링해서 블록 왜곡을 제거한다.
스텝 ST20에 있어서 프레임 메모리(27)는, 참조 화상 데이터를 기억한다. 프레임 메모리(27)는, 필터 처리 후의 참조 화상 데이터를 기억한다.
스텝 ST21에 있어서 인트라 예측부(31)와 움직임 예측·보상부(32)는, 각각 예측 처리를 행한다. 즉, 인트라 예측부(31)는, 인트라 예측 모드의 인트라 예측 처리를 행하고, 움직임 예측·보상부(32)는, 인터 예측 모드의 움직임 예측·보상 처리를 행한다. 예측 처리의 상세한 것은, 도 7을 참조해서 후술하지만, 이 처리에 의해, 후보로 되는 모든 예측 모드에서 예측 처리가 각각 행해지고, 후보로 되는 모든 예측 모드에서 코스트 함수값이 각각 산출된다. 그리고, 산출된 코스트 함수값에 기초하여, 최적 인트라 예측 처리와 최적 인터 예측 처리가 선택되고, 선택된 예측 처리에서 생성된 예측 화상 데이터와 그 코스트 함수 및 부호화 파라미터 정보가 예측 화상·최적 모드 선택부(33)에 공급된다.
스텝 ST22에 있어서 예측 화상·최적 모드 선택부(33)는, 예측 화상 데이터의 선택을 행한다. 예측 화상·최적 모드 선택부(33)는, 인트라 예측부(31) 및 움직임 예측·보상부(32)로부터 출력된 각 코스트 함수값에 기초하여, 부호화 효율이 최선으로 되는 최적 모드를 결정한다. 또한, 예측 화상·최적 모드 선택부(33)는, 결정한 최적 모드의 예측 화상 데이터를 선택하여, 감산부(13)와 가산부(23)에 공급한다. 이 예측 화상 데이터는, 상술한 바와 같이, 스텝 ST13, ST18의 연산에 이용된다.
스텝 ST23에 있어서 예측 화상·최적 모드 선택부(33)는, 부호화 파라미터 정보 생성 처리를 행한다. 예측 화상·최적 모드 선택부(33)는, 선택한 예측 화상 데이터에 관한 부호화 파라미터 정보를 최적 모드의 부호화 파라미터 정보로서 직교 변환부(14)와 가역 부호화부(16)에 출력한다.
스텝 ST24에 있어서 가역 부호화부(16)는, 가역 부호화 처리를 행한다. 가역 부호화부(16)는, 양자화부(15)로부터 출력된 양자화 데이터를 가역 부호화한다. 즉, 양자화 데이터에 대하여 가변길이 부호화나 산술 부호화 등의 가역 부호화가 행해져, 데이터 압축된다. 이때, 상술한 스텝 ST23에 있어서 가역 부호화부(16)에 공급된 부호화 파라미터 정보 등도 가역 부호화된다. 또한, 양자화 데이터를 가역 부호화해서 생성된 부호화 비트 스트림의 헤더 정보에, 부호화 파라미터 정보 등의 가역 부호화 데이터가 부가된다.
스텝 ST25에 있어서 축적 버퍼(17)는, 축적 처리를 행한다. 축적 버퍼(17)는, 가역 부호화부(16)로부터 출력되는 부호화 비트 스트림을 축적한다. 이 축적 버퍼(17)에 축적된 부호화 비트 스트림은, 적절하게 읽어내어져 전송로를 통해서 복호측에 전송된다.
스텝 ST26에 있어서 레이트 제어부(18)는, 레이트 제어를 행한다. 레이트 제어부(18)는, 축적 버퍼(17)에서 부호화 비트 스트림을 축적할 때, 오버플로우 또는 언더플로우가 축적 버퍼(17)에서 발생하지 않도록, 양자화부(15)의 양자화 동작의 레이트를 제어한다.
다음에, 도 7의 플로우차트를 참조하여, 도 6의 스텝 ST21에 있어서의 예측 처리를 설명한다.
스텝 ST31에 있어서, 인트라 예측부(31)는 인트라 예측 처리를 행한다. 인트라 예측부(31)는 처리 대상의 블록의 화상을, 후보로 되는 모든 예측 모드에서 인트라 예측 처리한다. 또한, 인트라 예측 처리에서는, 가산부(23)로부터 공급된 참조 화상 데이터가 사용된다. 인트라 예측은, 후술하는 바와 같이 각 예측 모드에서 인트라 예측 처리가 행해져, 각 예측 모드에 있어서의 코스트 함수값이 산출된다. 그리고, 산출된 코스트 함수값에 기초하여, 부호화 효율이 가장 높은 인트라 예측 처리가 선택된다.
스텝 ST32에 있어서, 움직임 예측·보상부(32)는 인터 예측을 행한다. 움직임 예측·보상부(32)는, 프레임 메모리(27)에 기억되어 있는 필터 처리 후의 참조 화상 데이터를 사용하여, 각 움직임 보상 블록 사이즈로 인터 예측 처리를 행한다. 인터 예측에서는, 각 움직임 보상 블록 사이즈로 인터 예측 처리가 행해져, 각 예측 블록에 있어서의 코스트 함수값이 산출된다. 그리고, 산출된 코스트 함수값에 기초하여, 부호화 효율이 가장 높은 인터 예측 처리가 선택된다.
다음에, 도 7의 스텝 ST31에 있어서의 인트라 예측 처리에 대해서 도 8의 플로우차트를 참조해서 설명한다.
스텝 ST41에서 인트라 예측부(31)는, 각 예측 모드 및 변환 블록 사이즈로 임시로 인트라 예측 처리를 행한다. 인트라 예측부(31)는, 각 예측 모드 및 변환 블록 사이즈로, 일시로 가산부(23)로부터 공급된 참조 화상 데이터를 사용해서 예측 화상 데이터의 생성과, 예측 오차 데이터의 생성으로부터 가역 부호화까지의 처리를 행한다. 또한, 인트라 예측부(31)는, 각 인트라 예측 처리에 있어서, 인트라 예측 처리에 관한 부호화 파라미터 정보를 직교 변환부(14)와 가역 부호화부(16)에 출력한다.
스텝 ST42에서 인트라 예측부(31)는, 각 예측 모드와 각 변환 블록 사이즈에 대한 코스트 함수값을 산출한다. 코스트 함수값으로서는, H.264/AVC 방식에 있어서의 참조 소프트웨어인 JM(Joint Model)에서 정해져 있는 바와 같이, High Complexity 모드나, Low Complexity 모드 중 어느 하나의 방법에 기초해서 행한다.
즉, High Complexity 모드에 있어서는, 스텝 ST41의 처리로서, 각 예측 모드 및 변환 블록 사이즈에 대하여, 임시로 가역 부호화 처리까지를 행하고, 다음의 수학식 1로 나타내지는 코스트 함수값을 각 예측 모드 및 변환 블록 사이즈에 대하여 산출한다.
Figure pct00001
Ω는, 당해 블록 내지 매크로 블록을 부호화하기 위한 후보로 되는 예측 모드와 변환 블록 사이즈의 전체 집합을 나타내고 있다. D는, 예측 모드 및 변환 블록 사이즈로 부호화를 행한 경우의 참조 화상과 입력 화상의 차분 에너지(왜곡)를 나타내고 있다. R은, 직교 변환 계수나 부호화 파라미터 정보 등을 포함한 발생 부호량, λ는, 양자화 파라미터 QP의 함수로서 주어지는 라그랑제 승수이다.
즉, High Complexity Mode에서의 부호화를 행하기 위해서는, 상기 파라미터 D 및 R을 산출하기 위해서, 후보로 되는 모든 예측 모드 및 변환 블록 사이즈에 의해, 일단, 임시 인코드 처리를 행할 필요가 있어, 보다 높은 연산량을 필요로 한다.
한편, Low Complexity 모드에 있어서는, 스텝 ST41의 처리로서, 후보로 되는 모든 예측 모드 및 변환 블록 사이즈에 대하여, 예측 화상의 생성 및 부호화 파라미터 정보 등의 헤더 비트까지를 산출하고, 다음의 수학식 2로 나타내지는 코스트 함수값을 각 예측 모드에 대하여 산출한다.
Figure pct00002
Ω는, 당해 블록 내지 매크로 블록을 부호화하기 위한 후보로 되는 예측 모드와 변환 블록 사이즈의 전체 집합을 나타내고 있다. D는, 예측 모드와 변환 블록 사이즈로 부호화를 행한 경우의 참조 화상과 입력 화상의 차분 에너지(왜곡)를 나타내고 있다. Header_Bit는, 예측 모드와 변환 블록 사이즈에 대한 헤더 비트, QPtoQuant는, 양자화 파라미터 QP의 함수로서 주어지는 함수이다.
즉, Low Complexity Mode에 있어서는, 각각의 예측 모드 및 변환 블록 사이즈에 관해서, 예측 처리를 행할 필요가 있지만, 복호화 화상까지는 필요 없기 때문에, High Complexity Mode보다 낮은 연산량에서의 실현이 가능하다.
스텝 ST43에서 인트라 예측부(31)는, 최적 인트라 예측 처리를 결정한다. 인트라 예측부(31)는, 스텝 ST42에 있어서 산출된 코스트 함수값에 기초하여, 그들 중에서, 코스트 함수값이 최소값인 1개의 인트라 예측 처리를 선택하여 최적 인트라 예측 처리로 결정한다.
다음에, 도 9의 플로우차트를 참조하여, 도 7의 스텝 ST32의 인터 예측 처리에 대해서 설명한다.
스텝 ST51에서 움직임 예측·보상부(32)는, 각 움직임 보상 블록 사이즈로 가령 인터 예측 처리를 행한다. 움직임 예측·보상부(32)는, 각 움직임 보상 블록 사이즈로, 가령 부호화 처리 대상 블록의 화상 데이터와 참조 화상 데이터를 사용해서 움직임 예측을 행한다. 움직임 예측·보상부(32)는, 검출한 움직임 벡터에 기초하여 참조 화상 데이터의 움직임 보상을 행하고 예측 화상 데이터의 생성 등을 행한다. 또한, 움직임 예측·보상부(32)는, 각 인터 예측 처리에 있어서, 인터 예측 처리에 관한 부호화 파라미터 정보를 직교 변환부(14)와 가역 부호화부(16)에 출력한다.
스텝 ST52에서 움직임 예측·보상부(32)는, 각 움직임 보상 블록 사이즈에 대한 코스트 함수값의 산출을 행한다. 움직임 예측·보상부(32)는, 상술한 수학식 1 또는 수학식 2를 사용해서 코스트 함수값의 산출을 행한다. 코스트 함수값의 산출에서는, 부호화 파라미터 정보 등을 포함시킨 발생 부호량을 사용한다. 또한, 인터 예측 모드에 대한 코스트 함수값의 산출에는, H.264/AVC 방식에 있어서 정해져 있는 Skip Mode 및 Direct Mode의 코스트 함수값의 평가도 포함된다.
스텝 ST53에서 움직임 예측·보상부(32)는, 최적 인터 예측 처리를 결정한다. 움직임 예측·보상부(32)는, 스텝 ST52에 있어서 산출된 코스트 함수값에 기초하여, 그들 중에서, 코스트 함수값이 최소값인 1개의 인터 예측 처리를 선택하여 최적 인터 예측 처리로 결정한다.
다음에, 도 10의 플로우차트를 참조하여, 도 6에 있어서의 스텝 ST23의 부호화 파라미터 정보 생성 처리에 대해서, 인트라 예측 처리의 경우를 설명한다. 부호화 파라미터 정보는, 상술한 바와 같이 인트라 예측부(31)에서 생성한다. 또한, 예측 화상·최적 모드 선택부(33)에서 최적 모드를 선택했을 때, 선택한 예측 처리에 따른 부호화 파라미터 정보를 예측 화상·최적 모드 선택부(33)에서 생성하도록 해도 된다.
스텝 ST61에서 인트라 예측부(31)는, 매크로 블록 사이즈가 16×16 화소인지 여부를 판별한다. 인트라 예측부(31)는, 매크로 블록 사이즈가 16×16 화소일 때 스텝 ST62로 진행하고, 16×16 화소가 아닐 때 스텝 ST63으로 진행한다.
스텝 ST62에서 인트라 예측부(31)는, 16×16 화소에 있어서의 변환 블록 사이즈 정보를 설정해서 스텝 ST65로 진행한다. 인트라 예측부(31)는, 예를 들어 직교 변환부(14)에서 KL 변환을 행할 때의 변환 블록 사이즈를 4×4 화소로 할 때, 변환 블록 사이즈를 나타내는 변환 블록 사이즈 정보를 「0」으로 설정한다. 또한, 인트라 예측부(31)는, 직교 변환부(14)에서 KL 변환을 행할 때의 변환 블록 사이즈를 8×8 화소로 할 때, 변환 블록 사이즈 정보를 「1」, 16×16 화소로 할 때 「2」로 설정한다.
스텝 ST63에서 인트라 예측부(31)는, 매크로 블록 사이즈가 8×8 화소인지 여부를 판별한다. 인트라 예측부(31)는, 매크로 블록 사이즈가 8×8 화소일 때 스텝 ST64로 진행하고, 8×8 화소가 아닐 때 스텝 ST65로 진행한다.
스텝 ST64에서 인트라 예측부(31)는, 8×8 화소에 있어서의 변환 블록 사이즈 정보를 설정해서 스텝 ST65로 진행한다. 인트라 예측부(31)는, 예를 들어 직교 변환부(14)에서 KL 변환을 행할 때의 변환 블록 사이즈를 4×4 화소로 할 때, 변환 블록 사이즈 정보를 「0」으로 설정한다. 또한, 인트라 예측부(31)는, 직교 변환부(14)에서 KL 변환을 행할 때의 변환 블록 사이즈를 8×8 화소로 할 때, 변환 블록 사이즈 정보를 「1」로 한다.
스텝 ST65에서 인트라 예측부(31)는, 부호화 파라미터 정보를 생성한다. 인트라 예측부(31)는, 인트라 예측인 것을 나타내는 정보, 매크로 블록 사이즈, 변환 블록 사이즈 정보, 예측 모드, 매크로 블록 내의 블록 위치 등을 사용해서 부호화 파라미터 정보를 구성한다.
다음에, 도 11의 플로우차트를 참조하여, 직교 변환 처리에 대해서 설명한다. 스텝 ST71에서 직교 변환부(14)는, 인트라 예측인지 여부를 판별한다. 직교 변환부(14)는, 부호화 파라미터 정보에서 인트라 예측인 것이 나타나 있을 때 스텝 ST72로 진행하고, 인트라 예측인 것이 나타나 있지 않을 때 스텝 ST81로 진행한다.
스텝 ST72에서 직교 변환부(14)는, 매크로 블록 사이즈가 16×16 화소인지 여부를 판별한다. 직교 변환부(14)는, 부호화 파라미터 정보에서 매크로 블록 사이즈가 16×16 화소인 것을 나타내고 있을 때 스텝 ST73으로 진행하고, 16×16 화소인 것을 나타내고 있지 않을 때 스텝 ST78로 진행한다.
스텝 ST73에서 직교 변환부(14)는, 변환 블록 사이즈가 4×4 화소인지 여부를 판별한다. 직교 변환부(14)는, 부호화 파라미터 정보에서 변환 블록 사이즈가 4×4 화소인 것을 나타내고 있을 때 스텝 ST74로 진행하고, 4×4 화소인 것을 나타내고 있지 않을 때 스텝 ST75로 진행한다.
스텝 ST74에서 직교 변환부(14)는, 4×4직교 변환 처리를 행한다. 직교 변환부(14)는, 예측 모드와 블록 위치에 따라서 미리 학습되어 있는 기저를 사용해서 4×4 화소의 블록마다 KL 변환을 행한다. 여기서, 16×16 화소의 블록에는, 4×4 화소의 블록이 16개 포함되기 때문에 16회의 KL 변환을 행한다. 또한, 직교 변환부(14)는, 4×4 화소의 블록에 대해서 KL 변환을 행해서 얻어진 계수로부터, 최저 주파수 성분 계수를 선택하여, 선택한 4×4의 계수에 대하여 예측 모드에 따른 기저를 사용해서 KL 변환을 행한다. 직교 변환부(14)는, 최저 주파수 성분 계수에 대하여 KL 변환을 행해서 얻어진 계수와, 최저 주파수 성분 계수를 제외한 다른 계수를 양자화부(15)에 출력한다. 즉, 도 5에 도시하는 직교 변환부(14)의 계수 선택부(148)는, 4×4 KL 변환부(144, 146)로부터 출력되는 계수를 선택하여 양자화부(15)에 출력한다.
스텝 ST75에서 직교 변환부(14)는, 변환 블록 사이즈가 8×8 화소인지 여부를 판별한다. 직교 변환부(14)는, 부호화 파라미터 정보에서 변환 블록 사이즈가 8×8 화소인 것을 나타내고 있을 때 스텝 ST76으로 진행하고, 8×8 화소인 것을 나타내고 있지 않을 때 스텝 ST77로 진행한다.
스텝 ST76에서 직교 변환부(14)는, 8×8 직교 변환 처리를 행한다. 직교 변환부(14)는, 예측 모드와 블록 위치에 따라서 미리 학습되어 있는 기저를 사용해서 8×8 화소의 블록마다 KL 변환을 행한다. 여기서, 16×16 화소의 블록에는, 8×8 화소의 블록이 4개 포함되기 때문에 4회의 KL 변환을 행한다. 또한, 직교 변환부(14)는, 8×8 화소의 블록에 대해서 KL 변환을 행해서 얻어진 계수로부터, 최저 주파수 성분 계수를 선택하여, 선택한 2×2의 계수에 대하여 예측 모드에 따른 기저를 사용해서 KL 변환을 행한다. 직교 변환부(14)는, 최저 주파수 성분 계수에 대하여 KL 변환을 행해서 얻어진 계수와, 최저 주파수 성분 계수를 제외한 다른 계수를 양자화부(15)에 출력한다. 즉, 도 5에 도시하는 직교 변환부(14)의 계수 선택부(148)는, 8×8 KL 변환부(142)와 2×2 KL 변환부(143)로부터 출력되는 계수를 선택하여 양자화부(15)에 출력한다.
스텝 ST77에서 직교 변환부(14)는, 16×16 직교 변환 처리를 행한다. 직교 변환부(14)는, 예측 모드에 따라서 미리 학습되어 있는 기저를 사용해서 16×16 화소의 블록의 KL 변환을 행하고, 얻어진 계수를 양자화부(15)에 출력한다. 즉, 도 5에 도시하는 직교 변환부(14)의 계수 선택부(148)는, 16×16 KL 변환부(141)로부터 출력되는 계수를 선택하여 양자화부(15)에 출력한다.
스텝 ST72로부터 스텝 ST78로 진행하면, 직교 변환부(14)는, 변환 블록 사이즈가 4×4 화소인지 여부를 판별한다. 직교 변환부(14)는, 부호화 파라미터 정보에서 변환 블록 사이즈가 4×4 화소인 것을 나타내고 있을 때 스텝 ST79로 진행하고, 4×4 화소인 것을 나타내고 있지 않을 때 스텝 ST80으로 진행한다.
스텝 ST79에서 직교 변환부(14)는, 4×4직교 변환 처리를 행한다. 직교 변환부(14)는, 예측 모드와 블록 위치에 따라서 미리 학습되어 있는 기저를 사용해서 4×4 화소의 블록마다 KL 변환을 행한다. 여기서, 8×8 화소의 블록에는, 4×4 화소의 블록이 4개 포함되기 때문에 4회의 KL 변환을 행한다. 또한, 4×4 화소의 블록에 대해서 KL 변환을 행해서 얻어진 계수로부터, 최저 주파수 성분 계수를 선택하여, 선택한 2×2의 계수에 대하여 예측 모드에 따른 기저를 사용해서 KL 변환을 행한다. 직교 변환부(14)는, 최저 주파수 성분 계수에 대하여 KL 변환을 행해서 얻어진 계수와, 최저 주파수 성분 계수를 제외한 다른 계수를 양자화부(15)에 출력한다. 즉, 도 5에 도시하는 직교 변환부(14)의 계수 선택부(148)는, 4×4 KL 변환부(144)와 2×2 KL 변환부(146)로부터 출력되는 계수를 선택하여 양자화부(15)에 출력한다.
스텝 ST80에서 직교 변환부(14)는, 8×8 화소의 블록 단위로 직교 변환을 행한다. 직교 변환부(14)는, 예측 모드에 따라서 미리 학습되어 있는 기저를 사용해서 8×8 화소의 블록의 KL 변환을 행하고, 얻어진 계수를 양자화부(15)에 출력한다. 즉, 도 5에 도시하는 직교 변환부(14)의 계수 선택부(148)는, 8×8 KL 변환부(142)로부터 출력되는 계수를 선택하여 양자화부(15)에 출력한다.
스텝 ST81에서 직교 변환부(14)는, 이산 코사인 변환(DCT)을 행한다. 직교 변환부(14)는, 이산 코사인 변환을 행해서 얻어진 계수를 양자화부(15)에 출력한다. 즉, 도 5에 도시하는 직교 변환부(14)의 계수 선택부(148)는, DCT부(147)로부터 출력되는 계수를 선택하여 양자화부(15)에 출력한다.
도 12는, 직교 변환 동작을 설명하기 위한 도면으로서, 매크로 블록 사이즈가 도 12의 (A)에 도시하는 바와 같이 16×16 화소이며, 변환 블록 사이즈가 4×4 화소이면, 도 12의 (B)에 도시하는 바와 같이, 매크로 블록 내에는 16개의 변환 블록이 포함된다. 또한, 블록 내의 숫자는 블록 위치 loc를 나타내고 있다. 직교 변환부(14)의 4×4 KL 변환부(144)는, 각 변환 블록에 대해서, 각 블록의 예측 모드와 블록 위치에 대하여 최적화된 기저를 사용해서 KL 변환을 행하고, 도 12의 (C)에 도시하는 바와 같이 블록마다의 계수를 생성한다. 또한, 4×4 KL 변환부(145)는, 각 블록에 있어서의 최저 주파수 성분 계수(사선으로 나타냄)를 사용하여, 도 12의 (D)에 도시하는 바와 같이 4×4의 블록을 구성한다. 4×4 KL 변환부(145)는, 이 블록에 대하여, 예측 모드에 따라서 최적화된 기저를 사용해서 KL 변환을 행하고, 도 12의 (E)에 도시하는 바와 같이 블록마다의 계수를 생성한다. 직교 변환부(14)는 도 12의 (E)에 도시하는 계수와, 도 12의 (C)에 있어서의 최저 주파수 성분 계수를 제외한 다른 계수를 양자화부(15)에 출력한다.
매크로 블록 사이즈가 도 12의 (F)에 도시하는 바와 같이 8×8 화소이며, 변환 블록 사이즈가 4×4 화소이면, 도 12의 (G)에 도시하는 바와 같이, 매크로 블록 내에는 4개의 변환 블록이 포함된다. 또한, 블록 내의 숫자는 블록 위치 loc를 나타내고 있다. 직교 변환부(14)의 4×4 KL 변환부(144)는, 각 변환 블록에 대해서, 각 블록의 예측 모드와 블록 위치에 대하여 최적화된 기저를 사용해서 KL 변환을 행하고, 도 12의 (H)에 도시하는 바와 같이 블록마다의 계수를 생성한다. 또한, 2×2 KL 변환부(146)는, 각 블록에 있어서의 최저 주파수 성분 계수(사선으로 나타냄)를 사용하여, 도 12의 (I)에 도시하는 바와 같이 2×2의 블록을 구성한다. 2×2 KL 변환부(146)는, 이 블록에 대하여, 예측 모드에 따라서 최적화된 기저를 사용해서 KL 변환을 행하고, 도 12의 (J)에 도시하는 바와 같이 블록마다의 계수를 생성한다. 직교 변환부(14)는 도 12의 (J)에 도시하는 계수와, 도 12의 (H)에 있어서의 최저 주파수 성분 계수를 제외한 다른 계수를 양자화부(15)에 출력한다.
이와 같이, 본원 발명의 화상 부호화 장치 및 방법에 따르면, 화상 데이터의 부호화 시에 행해지는 직교 변환에 있어서, 매크로 블록 내에 있어서의 변환 블록의 블록 위치에 따라서 미리 설정되어 있는 기저를 사용해서 직교 변환이 행해진다. 따라서, 블록 위치에 따라서 최적화한 변환을 행하는 것이 가능해져, 부호화 효율을 개선할 수 있다. 또한, 블록 위치뿐만 아니라 예측 모드에 따라서 미리 설정되어 있는 기저를 사용해서 직교 변환을 행함으로써, 더욱 최적화한 직교 변환을 행하는 것이 가능해지고, 또한 부호화 효율을 개선할 수 있다. 또한, 부호화 효율을 개선함으로써, 예를 들어 부호화 비트 스트림의 데이터량을 늘리지 않더라도 화질을 개선할 수 있다.
<4. 화상 복호화 장치의 구성>
입력 화상을 부호화해서 생성된 부호화 비트 스트림은, 소정의 전송로나 기록 매체 등을 통해서 화상 복호화 장치에 공급되어 복호된다.
도 13은, 화상 복호화 장치의 구성을 도시하고 있다. 화상 복호화 장치(50)는, 축적 버퍼(51), 가역 복호화부(52), 역양자화부(53), 역직교 변환부(54), 가산부(55), 디블록킹 필터(56), 화면 재배열 버퍼(57), 디지털/아날로그 변환부(D/A 변환부)(58)를 구비하고 있다. 또한, 화상 복호화 장치(50)는, 프레임 메모리(61), 인트라 예측부(62), 움직임 보상부(63), 셀렉터(64)를 구비하고 있다.
축적 버퍼(51)는, 전송되어 온 부호화 비트 스트림을 축적한다. 가역 복호화부(52)는, 축적 버퍼(51)로부터 공급된 부호화 비트 스트림을, 도 1의 가역 부호화부(16)의 부호화 방식에 대응하는 방식으로 복호화한다.
가역 복호화부(52)는, 부호화 비트 스트림의 헤더 정보를 복호해서 얻어진 부호화 파라미터 정보를 인트라 예측부(62)나 움직임 보상부(63), 디블록킹 필터(56)에 출력한다. 또한, 가역 복호화부(52)는, 복호화 대상의 블록과 복호화필의 인접 블록의 움직임 벡터를 사용해서 예측 움직임 벡터의 후보를 설정한다. 가역 복호화부(52)는, 부호화 비트 스트림을 가역 복호화해서 얻어진 예측 움직임 벡터 선택 정보에 기초하여, 예측 움직임 벡터의 후보로부터 움직임 벡터를 선택하여, 선택한 움직임 벡터를 예측 움직임 벡터로 한다. 또한, 가역 복호화부(52)는, 부호화 비트 스트림을 가역 복호화해서 얻어진 차분 움직임 벡터에 예측 움직임 벡터를 가산해서 복호화 대상의 블록의 움직임 벡터를 산출하여, 움직임 보상부(63)에 출력한다.
역양자화부(53)는, 가역 복호화부(52)에서 복호된 양자화 데이터를, 도 1의 양자화부(15)의 양자화 방식에 대응하는 방식으로 역 양자화한다. 역직교 변환부(54)는, 도 1의 직교 변환부(14)의 직교 변환 방식에 대응하는 방식으로 역양자화부(53)의 출력을 역직교 변환해서 가산부(55)에 출력한다.
가산부(55)는, 역직교 변환 후의 데이터와 셀렉터(64)로부터 공급되는 예측 화상 데이터를 가산해서 복호 화상 데이터를 생성해서 디블록킹 필터(56)와 인트라 예측부(62)에 출력한다.
디블록킹 필터(56)는, 가산부(55)로부터 공급된 복호 화상 데이터에 대하여 필터 처리를 행하고, 블록 왜곡을 제거하고나서 프레임 메모리(61)에 공급하여 축적시킴과 함께, 화면 재배열 버퍼(57)에 출력한다.
화면 재배열 버퍼(57)는, 화상의 재배열을 행한다. 즉, 도 1의 화면 재배열 버퍼(12)에 의해 부호화의 순서를 위해 재배열된 프레임의 순서가, 원래의 표시의 순서로 재배열되어, D/A 변환부(58)에 출력된다.
D/A 변환부(58)는, 화면 재배열 버퍼(57)로부터 공급된 화상 데이터를 D/A 변환하고, 도시하지 않는 디스플레이에 출력함으로써 화상을 표시시킨다.
프레임 메모리(61)는, 디블록킹 필터(24)로부터 공급된 필터 처리 후의 복호 화상 데이터를 보유 지지한다.
인트라 예측부(62)는, 가역 복호화부(52)로부터 공급된 부호화 파라미터 정보에 기초하여 예측 화상의 생성을 행하고, 생성한 예측 화상 데이터를 셀렉터(64)에 출력한다.
움직임 보상부(63)는, 가역 복호화부(52)로부터 공급된 부호화 파라미터 정보나 움직임 벡터에 기초하여 움직임 보상을 행하고, 예측 화상 데이터를 생성해서 셀렉터(64)에 출력한다. 즉, 움직임 보상부(63)는, 가역 복호화부(52)로부터 공급된 움직임 벡터 및 참조 프레임 정보에 기초하여, 참조 프레임 정보로 나타내진 참조 화상에 대하여, 움직임 벡터에 기초하여 움직임 보상을 행하고, 움직임 보상 블록 사이즈의 예측 화상 데이터를 생성한다.
셀렉터(64)는, 인트라 예측부(62)에서 생성된 예측 화상 데이터를 가산부(55)에 공급한다. 또한, 셀렉터(64)는, 움직임 보상부(63)에서 생성된 예측 화상 데이터를 가산부(55)에 공급한다.
<5. 역직교 변환부의 구성>
도 14는, 역직교 변환부(54)의 구성을 도시하고 있다. 역직교 변환부(54)는, 16×16 KL 역변환부(541), 2×2 KL 역변환부(542, 545), 8×8 KL 역변환부(543), 4×4 KL 역변환부(544, 546), IDCT부(547) 및 데이터 선택부(548)를 갖고 있다.
16×16 KL 역변환부(541)는, 도 5에 도시하는 16×16 KL 변환부(141)에서 행해진 KL 변환에 대응하는 KL 역변환을 행한다. 16×16 KL 역변환부(541)는, 가역 복호화부(52)로부터 공급된 최적 모드의 부호화 파라미터 정보가 나타내는 예측 모드(최적 예측 모드)에 따른 기저를 사용하여, 역양자화부(53)로부터 출력된 역양자화후 데이터의 KL 역변환을 행한다. 16×16 KL 역변환부(541)는, KL 역변환을 행함으로써 얻어진 화상 데이터를 데이터 선택부(548)에 출력한다.
2×2 KL 역변환부(542)는, 도 5에 도시하는 2×2 KL 변환부(143)에서 행해진 KL 변환에 대응하는 KL 역변환을 행한다. 2×2 KL 역변환부(542)는, 최적 모드의 부호화 파라미터 정보가 나타내는 예측 모드에 따른 기저를 사용하여, 역양자화부(53)로부터 출력된 역양자화후 데이터의 KL 역변환을 행한다. 2×2 KL 역변환부(542)는, KL 역변환을 행함으로써 얻어진 최저 주파수 성분 계수를 8×8 KL 역변환부(543)에 출력한다.
8×8 KL 역변환부(543)는, 도 5에 도시하는 8×8 KL 변환부(143)에서 행해진 KL 변환에 대응하는 KL 역변환을 행한다. 8×8 KL 역변환부(543)는, 가역 복호화부(52)로부터 공급된 최적 모드의 부호화 파라미터 정보에 기초하여 KL 역변환을 행한다. 예를 들어, 8×8 KL 역변환부(543)는, 매크로 블록 사이즈가 16×16 화소일 때, 최적 모드의 부호화 파라미터 정보가 나타내는 예측 모드와 블록 위치에 따른 기저를 사용하여, 2×2 KL 역변환부(542)로부터 출력된 최저 주파수 성분 계수와 역양자화부(53)로부터 출력된 역양자화후 데이터의 KL 역변환을 행한다. 8×8 KL 역변환부(543)는, KL 역변환을 행함으로써 얻어진 화상 데이터를 데이터 선택부(548)에 출력한다. 또한, 8×8 KL 역변환부(543)는, 매크로 블록 사이즈가 8×8 화소일 때, 예측 모드와 블록 위치에 따른 기저를 사용하여, 역양자화부(53)로부터 출력된 역양자화후 데이터의 KL 역변환을 행하고, 얻어진 화상 데이터를 데이터 선택부(548)에 출력한다.
4×4 KL 역변환부(544)는, 도 5에 도시하는 4×4 KL 변환부(145)에서 행해진 KL 변환에 대응하는 KL 역변환을 행한다. 4×4 KL 역변환부(544)는, 최적 모드의 부호화 파라미터 정보가 나타내는 예측 모드에 따른 기저를 사용하여, 역양자화부(53)로부터 출력된 역양자화후 데이터의 KL 역변환을 행한다. 4×4 KL 역변환부(544)는, KL 역변환을 행함으로써 얻어진 최저 주파수 성분 계수를 4×4 KL 역변환부(546)에 출력한다.
2×2 KL 역변환부(545)는, 도 5에 도시하는 2×2 KL 변환부(146)에서 행해진 KL 변환에 대응하는 KL 역변환을 행한다. 2×2 KL 역변환부(545)는, 최적 모드의 부호화 파라미터 정보가 나타내는 예측 모드에 따른 기저를 사용하여, 역양자화부(53)로부터 출력된 역양자화후 데이터의 KL 역변환을 행한다. 2×2 KL 역변환부(545)는, KL 역변환을 행함으로써 얻어진 최저 주파수 성분 계수를 4×4 KL 역변환부(546)에 출력한다.
4×4 KL 역변환부(546)는, 도 5에 도시하는 4×4 KL 변환부(144)에서 행해진 KL 변환에 대응하는 KL 역변환을 행한다. 4×4 KL 역변환부(546)는, 가역 복호화부(52)로부터 공급된 최적 모드의 부호화 파라미터 정보에 기초하여 KL 역변환을 행한다. 예를 들어, 4×4 KL 역변환부(546)는, 매크로 블록 사이즈가 16×16 화소일 때, 최적 모드의 부호화 파라미터 정보가 나타내는 예측 모드와 블록 위치에 따른 기저를 사용하여, 4×4 KL 역변환부(544)로부터 출력된 최저 주파수 성분 계수와 역양자화부(53)로부터 출력된 역양자화후 데이터의 KL 역변환을 행한다. 4×4 KL 역변환부(546)는, KL 역변환을 행함으로써 얻어진 화상 데이터를 데이터 선택부(548)에 출력한다. 또한, 4×4 KL 역변환부(546)는, 매크로 블록 사이즈가 8×8 화소일 때, 예측 모드와 블록 위치에 따른 기저를 사용하여, 2×2 KL 역변환부(545)로부터 출력된 최저 주파수 성분 계수와 역양자화부(53)로부터 출력된 역양자화후 데이터의 KL 역변환을 행한다. 4×4 KL 역변환부(546)는, KL 역변환을 행함으로써 얻어진 화상 데이터를 데이터 선택부(548)에 출력한다.
IDCT부(547)는, 역양자화부(53)로부터 출력된 역양자화후 데이터를 사용하여, 역이산 코사인 변환을 행하고, 얻어진 화상 데이터를 데이터 선택부(548)에 출력한다.
데이터 선택부(548)는, 부호화 파라미터 정보에 기초하여, 16×16 KL 역변환부(541), 8×8 KL 역변환부(543), 4×4 KL 역변환부(546), IDCT부(547)로부터 출력된 화상 데이터의 선택을 행한다. 데이터 선택부(548)는, 선택한 화상 데이터를 예측 오차 데이터로서 가산부(55)에 출력한다.
<6. 화상 복호화 장치의 동작>
다음에, 도 15의 플로우차트를 참조하여, 화상 복호화 장치(50)에서 행해지는 화상 복호 처리 동작에 대해서 설명한다.
스텝 ST91에서 축적 버퍼(51)는, 전송되어 온 부호화 비트 스트림을 축적한다. 스텝 ST92에서 가역 복호화부(52)는, 가역 복호화 처리를 행한다. 가역 복호화부(52)는, 축적 버퍼(51)로부터 공급되는 부호화 비트 스트림을 복호화한다. 즉, 도 1의 가역 부호화부(16)에 의해 부호화된 각 픽쳐의 양자화 데이터가 얻어진다. 또한, 가역 복호화부(52), 부호화 비트 스트림의 헤더 정보에 포함되어 있는 부호화 파라미터 정보의 가역 복호화를 행하고, 얻어진 부호화 파라미터 정보를 디블록킹 필터(56)나 셀렉터(64)에 공급한다. 또한, 가역 복호화부(52)는, 부호화 파라미터 정보가 인트라 예측 모드에 관한 정보인 경우, 부호화 파라미터 정보를 인트라 예측부(62)에 출력한다. 또한, 가역 복호화부(52)는, 부호화 파라미터 정보가 인터 예측 모드에 관한 정보인 경우, 부호화 파라미터 정보를 움직임 보상부(63)에 출력한다.
스텝 ST93에 있어서 역양자화부(53)는, 역양자화 처리를 행한다. 역양자화부(53)는, 가역 복호화부(52)에 의해 복호된 양자화 데이터를, 도 1의 양자화부(15)의 특성에 대응하는 특성으로 역 양자화한다.
스텝 ST94에 있어서 역직교 변환부(54)는, 역직교 변환 처리를 행한다. 역직교 변환부(54)는, 역양자화부(53)로부터의 역양자화후 데이터에 대하여, 도 1의 직교 변환부(14)의 직교 변환에 대응하는 역직교 변환을 행한다.
스텝 ST95에 있어서 가산부(55)는, 복호 화상 데이터의 생성을 행한다. 가산부(55)는, 역직교 변환 처리를 행함으로써 얻어진 예측 오차 데이터와, 후술하는 스텝 ST99에서 선택된 예측 화상 데이터를 가산해서 복호 화상 데이터를 생성한다. 이에 의해 원래의 화상이 복호된다.
스텝 ST96에 있어서 디블록킹 필터(56)는, 필터 처리를 행한다. 디블록킹 필터(56)는, 가산부(55)로부터 출력된 복호 화상 데이터의 필터 처리를 행하고, 복호 화상에 포함되어 있는 블록 왜곡을 제거한다.
스텝 ST97에 있어서 프레임 메모리(61)는, 복호 화상 데이터의 기억 처리를 행한다.
스텝 ST98에 있어서 인트라 예측부(62)와 움직임 보상부(63)는, 예측 처리를 행한다. 인트라 예측부(62)와 움직임 보상부(63)는, 가역 복호화부(52)로부터 공급되는 부호화 파라미터 정보에 대응해서 각각 예측 처리를 행한다.
즉, 가역 복호화부(52)로부터 공급된 부호화 파라미터 정보가 인트라 예측인 것을 나타내고 있는 경우, 인트라 예측부(62)는, 부호화 파라미터 정보에 기초하여 인트라 예측 처리를 행하고, 예측 화상 데이터를 생성한다. 또한, 가역 복호화부(52)로부터 공급된 부호화 파라미터 정보가 인터 예측인 것을 나타내고 있는 경우, 움직임 보상부(63)는, 부호화 파라미터 정보에 기초하여 움직임 보상을 행하고, 예측 화상 데이터를 생성한다.
스텝 ST99에 있어서, 셀렉터(64)는 예측 화상 데이터의 선택을 행한다. 즉, 셀렉터(64)는, 인트라 예측부(62)로부터 공급된 예측 화상 데이터와 움직임 보상부(63)에서 생성된 예측 화상 데이터를 선택하여 가산부(55)에 공급하여, 상술한 바와 같이, 스텝 ST95에 있어서 역직교 변환부(54)의 출력과 가산시킨다.
스텝 ST100에 있어서 화면 재배열 버퍼(57)는, 화상 재배열을 행한다. 즉 화면 재배열 버퍼(57)는, 도 1의 화상 부호화 장치(10)의 화면 재배열 버퍼(12)에 의해 부호화를 위해 재배열된 프레임의 순서가, 원래의 표시의 순서로 재배열된다.
스텝 ST101에 있어서, D/A 변환부(58)는, 화면 재배열 버퍼(57)로부터의 화상 데이터를 D/A 변환한다. 이 화상이 도시하지 않는 디스플레이에 출력되고, 화상이 표시된다.
다음에, 역직교 변환 처리에 대해서, 도 16에 도시하는 플로우차트를 사용해서 설명한다. 스텝 ST111에서 역직교 변환부(54)는, 인트라 예측인지 여부를 판별한다. 역직교 변환부(54)는, 예를 들어 가역 복호화부(52)에서 부호화 비트 스트림으로부터 취출된 부호화 파라미터 정보에 기초하여 복호화를 행하는 블록이 인트라 예측인지 여부를 판별한다. 역직교 변환부(54)는, 부호화 파라미터 정보가 인트라 예측인 것을 나타내고 있을 때 스텝 ST112로 진행하고, 인트라 예측인 것을 나타내고 있지 않을 때, 즉 인터 예측일 때 스텝 ST121로 진행한다.
스텝 ST112에서 역직교 변환부(54)는, 매크로 블록 사이즈가 16×16 화소인지 여부를 판별한다. 역직교 변환부(54)는, 부호화 파라미터 정보에서 매크로 블록 사이즈가 16×16 화소인 것을 나타내고 있을 때 스텝 ST113으로 진행하고, 16×16 화소인 것을 나타내고 있지 않을 때 스텝 ST118로 진행한다.
스텝 ST113에서 역직교 변환부(54)는, 변환 블록 사이즈가 4×4 화소인지를 판별한다. 역직교 변환부(54)는 부호화 파라미터 정보에 있어서의 변환 블록 사이즈 정보가 「0」이고, 변환 블록 사이즈가 4×4 화소의 때 스텝 ST114로 진행하고, 「0」이 아닐 때 스텝 ST115로 진행한다.
스텝 ST114에서 역직교 변환부(54)는, 4×4 역직교 변환 처리를 행한다. 역직교 변환부(54)는, 예측 모드와 블록 위치에 따라서 미리 학습되어 있는 기저를 사용해서 4×4 KL 역변환을 행한다. 매크로 블록 사이즈가 16×16 화소일 때, 부호화에서는 16회의 KL 변환과 KL 변환을 행해서 얻어진 계수로부터 최저 주파수 성분 계수를 선택하여 KL 변환이 행해지고 있다. 따라서, 역직교 변환부(54)는, 예측 모드에 따른 기저를 사용하여, 최저 주파수 성분 계수의 역양자화후 데이터의 KL 역변환을 행한다. 또한, 역직교 변환부(54)는, 이 KL 역변환에 의해 얻어진 최저 주파수 성분 계수와 다른 성분의 계수로 이루어지는 16개의 블록에 대하여, 예측 모드와 블록 위치에 따른 기저를 사용해서 KL 역변환을 행한다. 역직교 변환부(54)는, KL 역변환을 행함으로써 얻어진 예측 오차 데이터를 가산부(55)에 출력한다. 즉, 도 14에 도시하는 역직교 변환부(54)의 데이터 선택부(548)는, 4×4 KL 역변환부(544)의 출력을 사용해서 4×4 KL 역변환부(546)에서 KL 역변환을 행함으로써 얻어진 데이터를 선택하여 가산부(55)에 출력한다.
스텝 ST115에서 역직교 변환부(54)는, 변환 블록 사이즈가 8×8 화소인지를 판별한다. 역직교 변환부(54)는 부호화 파라미터 정보에 있어서의 변환 블록 사이즈 정보가 「1」이고, 변환 블록 사이즈가 8×8 화소일 때 스텝 ST116으로 진행하고, 「1」이 아닐 때 스텝 ST117로 진행한다.
스텝 ST116에서 역직교 변환부(54)는, 8×8 역직교 변환 처리를 행한다. 역직교 변환부(54)는, 예측 모드와 블록 위치에 따라서 미리 학습되어 있는 기저를 사용해서 8×8 KL 역변환을 행한다. 매크로 블록 사이즈가 16×16 화소일 때, 부호화에서는 4회의 KL 변환과 KL 변환을 행해서 얻어진 계수로부터 최저 주파수 성분 계수를 선택하여 KL 변환이 행해지고 있다. 따라서, 역직교 변환부(54)는, 예측 모드에 따른 기저를 사용하여, 최저 주파수 성분 계수의 역양자화후 데이터의 KL 역변환을 행한다. 또한, 역직교 변환부(54)는, 이 KL 역변환에 의해 얻어진 최저 주파수 성분 계수와 다른 성분의 계수로 이루어지는 4개의 블록에 대하여, 예측 모드와 블록 위치에 따른 기저를 사용해서 KL 역변환을 행한다. 역직교 변환부(54)는, KL 역변환을 행함으로써 얻어진 예측 오차 데이터를 가산부(55)에 출력한다. 즉, 도 14에 도시하는 역직교 변환부(54)의 데이터 선택부(548)는, 2×2 KL 역변환부(542)의 출력을 사용해서 8×8 KL 역변환부(543)에서 KL 역변환을 행함으로써 얻어진 데이터를 선택하여 가산부(55)에 출력한다.
스텝 ST117에서 역직교 변환부(54)는, 16×16 역직교 변환 처리를 행한다. 역직교 변환부(54)는, 예측 모드에 따라서 미리 학습되어 있는 기저를 사용해서 16×16 KL 역변환을 행한다. 역직교 변환부(54)는, KL 역변환을 행함으로써 얻어진 예측 오차 데이터를 가산부(55)에 출력한다. 즉, 도 14에 도시하는 역직교 변환부(54)의 데이터 선택부(548)는, 16×16 KL 역변환부(541)에서 KL 역변환을 행함으로써 얻어진 데이터를 선택하여 가산부(55)에 출력한다.
스텝 ST112로부터 스텝 ST118로 진행하면, 역직교 변환부(54)는, 변환 블록 사이즈가 4×4 화소인지 판별한다. 역직교 변환부(54)는 부호화 파라미터 정보에 있어서의 변환 블록 사이즈 정보가 「0」이고, 변환 블록 사이즈가 4×4 화소일 때 스텝 ST119로 진행하고, 「0」이 아닐 때 스텝 ST120으로 진행한다.
스텝 ST119에서 역직교 변환부(54)는, 4×4 역직교 변환 처리를 행한다. 역직교 변환부(54)는, 예측 모드와 블록 위치에 따라서 미리 학습되어 있는 기저를 사용해서 4×4 KL 역변환 처리를 행한다. 매크로 블록 사이즈가 8×8 화소일 때, 부호화에서는 4회의 KL 변환과 KL 변환을 행해서 얻어진 계수로부터 최저 주파수 성분 계수를 선택하여 KL 변환이 행해지고 있다. 따라서, 역직교 변환부(54)는, 예측 모드에 따른 기저를 사용하여, 최저 주파수 성분 계수의 역양자화후 데이터의 KL 역변환을 행한다. 또한, 역직교 변환부(54)는, 이 KL 역변환에 의해 얻어진 최저 주파수 성분 계수와 다른 성분의 계수로 이루어지는 4개의 블록에 대하여, 예측 모드와 블록 위치에 따른 기저를 사용해서 KL 역변환을 행한다. 역직교 변환부(54)는, KL 역변환을 행함으로써 얻어진 예측 오차 데이터를 가산부(55)에 출력한다. 즉, 도 14에 도시하는 역직교 변환부(54)의 데이터 선택부(548)는, 2×2 KL 역변환부(545)의 출력을 사용해서 4×4 KL 역변환부(546)에서 KL 역변환을 행함으로써 얻어진 데이터를 선택하여 가산부(55)에 출력한다.
스텝 ST120에서 역직교 변환부(54)는, 8×8 역직교 변환 처리를 행한다. 역직교 변환부(54)는, 예측 모드에 따라서 미리 학습되어 있는 기저를 사용해서 8×8 KL 역변환을 행한다. 역직교 변환부(54)는, KL 역변환을 행함으로써 얻어진 예측 오차 데이터를 가산부(55)에 출력한다. 즉, 도 14에 도시하는 역직교 변환부(54)의 데이터 선택부(548)는, 8×8 KL 역변환부(543)에서 KL 역변환을 행함으로써 얻어진 데이터를 선택하여 가산부(55)에 출력한다.
스텝 ST121에서 역직교 변환부(54)는, 역이산 코사인 변환(IDCT)을 행한다. 역직교 변환부(54)는, 역이산 코사인 변환을 행해서 얻어진 계수를 가산부(55)에 출력한다. 즉, 도 14에 도시하는 역직교 변환부(54)의 데이터 선택부(548)는, IDCT부(547)로부터 출력되는 데이터를 선택하여 가산부(55)에 출력한다.
도 17은, 역직교 변환 동작을 설명하기 위한 도면으로서, 도 12의 직교 변환 동작에서 생성된 변환 계수의 역직교 변환을 예시하고 있다.
예를 들어, 매크로 블록 사이즈가 16×16 화소이고 변환 블록 사이즈가 4×4 화소인 것으로 한다. 이 경우, 4×4 KL 역변환부(544)는, 최적 모드의 부호화 파라미터 정보가 나타내는 예측 모드에 따른 기저를 사용해서 도 17의 (A)에 도시하는 최저 주파수 성분 계수의 KL 변환 후 데이터(역양자화 데이터)의 KL 역변환을 행한다. 4×4 KL 역변환부(544)는, 이 KL 역변환에 의해, 도 17의 (B)에 도시하는 가장 낮은 주파수 성분의 계수를 생성한다. 4×4 KL 역변환부(546)는, 도 17의 (C)에 도시하는 바와 같이, 최저 주파수 성분 계수와 다른 KL 변환 후 데이터(역양자화 데이터)를 블록마다의 계수로 복귀시킨다. 또한, 4×4 KL 역변환부(546)는, 도 17의 (D)에 도시하는 바와 같이, 부호화 파라미터 정보가 나타내는 예측 모드와 블록 위치에 따른 기저를 사용해서 16개의 4×4 블록마다 KL 역변환을 행하고, 도 17의 (E)에 도시하는 예측 오차 데이터를 생성한다. 데이터 선택부(548)는, 생성된 예측 오차 데이터를 선택하여 가산부(55)에 출력한다.
또한, 매크로 블록 사이즈가 8×8 화소이고 변환 블록 사이즈가 4×4 화소인 것으로 한다. 이 경우, 2×2 KL 역변환부(545)는, 최적 모드의 부호화 파라미터 정보가 나타내는 예측 모드에 따른 기저를 사용하여, 도 17의 (F)에 도시하는 최저 주파수 성분 계수의 KL 변환 후 데이터(역양자화 데이터)의 KL 역변환을 행한다. 2×2 KL 역변환부(545)는, 이 KL 역변환에 의해, 도 17의 (G)에 도시하는 최저 주파수 성분 계수를 생성한다. 4×4 KL 역변환부(546)는, 도 17의 (H)에 도시하는 바와 같이, 최저 주파수 성분 계수와 다른 KL 변환 후 데이터(역양자화 데이터)를 블록마다의 계수로 복귀시킨다. 또한, 4×4 KL 역변환부(546)는, 도 17의 (I)에 도시하는 바와 같이, 부호화 파라미터 정보가 나타내는 예측 모드와 블록 위치에 따른 기저를 사용해서 4개의 4×4 블록마다 KL 역변환을 행하고, 도 17의 (J)에 도시하는 예측 오차 데이터를 생성한다. 데이터 선택부(548)는, 생성된 예측 오차 데이터를 선택하여 가산부(55)에 출력한다.
다음에, 도 18의 플로우차트를 참조하여, 도 15의 스텝 ST98의 예측 처리에 대해서 설명한다.
스텝 ST131에서 가역 복호화부(52)는, 대상 블록이 인트라 부호화되어 있는지의 여부를 판정한다. 가역 복호화부(52)는, 가역 복호화를 행함으로써 얻어진 부호화 파라미터 정보가 인트라 예측의 정보일 때, 부호화 파라미터 정보를 인트라 예측부(62)에 공급해서 스텝 ST132로 진행한다. 또한, 가역 복호화부(52)는, 부호화 파라미터 정보가 인트라 예측의 정보가 아닐 때, 부호화 파라미터 정보를 움직임 보상부(63)에 공급해서 스텝 ST133으로 진행한다.
스텝 ST132에서 인트라 예측부(62)는, 인트라 예측 처리를 행한다. 인트라 예측부(62)는, 가산부(55)로부터 공급된 복호 화상 데이터와 부호화 파라미터 정보를 사용해서 인트라 예측을 행하고, 예측 화상 데이터를 생성한다.
스텝 ST133에서 움직임 보상부(63)는, 인터 예측 처리를 행한다. 움직임 보상부(63)는, 가역 복호화부(52)로부터의 부호화 파라미터 정보나 움직임 벡터에 기초하여, 프레임 메모리(61)로부터 공급된 복호 화상 데이터의 움직임 보상을 행한다. 또한, 움직임 보상부(63)는, 움직임 보상에 의해 생성한 예측 화상 데이터를 셀렉터(64)에 출력한다.
이와 같이, 본원 발명의 화상 복호화 장치 및 방법에서는, 블록 위치에 따라서 미리 설정되어 있는 기저를 사용해서 직교 변환을 행하는 것으로 얻어진 계수 데이터를 처리해서 생성된 부호화 비트 스트림의 복호화에 있어서, 부호화 비트 스트림에 포함되어 있는 부호화 파라미터 정보로 나타내진 매크로 블록 내의 블록 위치에 따라서 미리 설정되어 있는 기저가 사용되어, 역직교 변환이 행해진다. 따라서, 직교 변환 후의 계수 데이터를 직교 변환 전의 예측 오차 데이터로 복귀시킬 수 있으므로, 매크로 블록 내의 블록 위치에 따른 기저를 사용해서 직교 변환이 행해져도, 직교 변환 전의 예측 오차 데이터로 복귀시킬 수 있다. 또한, 예측 모드에 따른 기저를 사용해서 부호화가 행해져도, 부호화 파라미터 정보로 나타내진 예측 모드에 따라서 미리 설정되어 있는 기저를 사용함으로써, 직교 변환 후의 계수 데이터를 직교 변환 전의 예측 오차 데이터로 복귀시킬 수 있다.
<7. 기저의 학습 동작>
다음에, 직교 변환부(14)와 역직교 변환부(54)에서 사용되는 기저를, 학습 동작에 의해 미리 생성하는 기저 생성부에 대해서 설명한다. 도 19는, 기저의 학습 동작을 도시하는 플로우차트이고, 기저 생성부는, 학습용으로 준비한 화상을 사용해서 도 19에 도시하는 처리를 행하여 기저를 생성한다. 또한, 학습용의 화상으로서는, 화상의 내용에 의해 학습에 치우침이 발생하지 않도록, 가능한 한 상이한 많은 화상을 사용하도록 한다.
스텝 ST141에서 기저 생성부는, 학습에 사용하지 않고 있는 화상이 남아있는지를 판별한다. 기저 생성부는, 학습에 사용하지 않고 있는 화상이 남아있을 때는 스텝 ST142로 진행하고, 모든 화상을 사용해서 학습이 행해졌을 때는 스텝 ST152로 진행한다.
스텝 ST142에서 기저 생성부는, 학습에 사용하지 않고 있는 매크로 블록이 남아있는지를 판별한다. 기저 생성부는, 학습에 사용하는 화상에 있어서, 학습에 사용하지 않고 있는 매크로 블록이 남아있을 때는 스텝 ST143으로 진행하고, 모든 매크로 블록을 사용해서 학습이 행해졌을 때는 스텝 ST141로 복귀된다.
스텝 ST143에서 기저 생성부는, 매크로 블록 사이즈가 16×16 화소인지 판별한다. 기저 생성부는, 매크로 블록 사이즈가 16×16 화소일 때 스텝 ST144로 진행하고, 매크로 블록 사이즈가 16×16 화소가 아닐 때 스텝 ST148로 진행한다.
스텝 ST144에서 기저 생성부는, 16×16 예측 오차 데이터를 생성한다. 기저 생성부는 인트라 예측을 행하여 16×16 화소의 예측 오차 데이터를 생성한다.
스텝 ST145에서 기저 생성부는, 4×4 직교 변환의 대칭 행렬을 산출한다. 기저 생성부는, 16×16 예측 오차 데이터를 4×4 화소인 16개의 변환 블록으로 분할하여, 예측 모드와 매크로 블록 내에 있어서의 변환 블록의 블록 위치마다 대칭 행렬 M을 산출한다. 기저 생성부는, 4×4 화소의 변환 블록의 예측 오차 데이터를 배열해서 16차의 벡터로 하여, 16차의 벡터의 평균과 각 벡터의 차를 산출한다. 기저 생성부는, 이 차를 「q」로 하여 수학식 3의 연산을 행하고 대칭 행렬 M을 구한다.
Figure pct00003
또한, 수학식 3에 있어서, 「mdt」는 매크로 블록 사이즈와 변환 블록 사이즈를 판별 가능하게 하는 변환 모드 정보이다. 「mid」는 인트라 예측의 예측 모드이다. 「loc」는, 매크로 블록 내에 있어서의 변환 블록의 블록 위치이다. 「num」은 학습 횟수이다. 또한 「T」는 전치 행렬인 것을 나타내고 있다.
스텝 ST146에서 기저 생성부는, 8×8 직교 변환의 대칭 행렬을 산출한다. 기저 생성부는, 16×16 예측 오차 데이터를 8×8 화소인 4개의 변환 블록으로 분할하여, 예측 모드와 매크로 블록 내에 있어서의 변환 블록의 블록 위치마다 대칭 행렬 M을 산출한다. 기저 생성부는, 8×8 화소의 변환 블록의 예측 오차 데이터를 배열해서 64차의 벡터로 하여, 64차의 벡터의 평균과 각 벡터의 차를 산출한다. 기저 생성부는, 이 차를 「q」로 하여 수학식 3의 연산을 행하고 대칭 행렬 M을 구한다.
스텝 ST147에서 기저 생성부는, 16×16 직교 변환의 대칭 행렬을 산출한다. 기저 생성부는, 예측 모드마다 16×16 화소의 변환 블록의 예측 오차 데이터를 배열해서 256차의 벡터로 하여, 256차의 벡터의 평균과 각 벡터의 차를 산출한다. 기저 생성부는, 이 차를 「q」로 하여 수학식 3의 연산을 행하고, 예측 모드마다 대칭 행렬 M을 구한다.
스텝 ST143으로부터 스텝 ST148로 진행하면, 기저 생성부는, 매크로 블록 사이즈가 8×8 화소인지 판별한다. 기저 생성부는, 매크로 블록 사이즈가 8×8 화소일 때 스텝 ST149로 진행하고, 매크로 블록 사이즈가 8×8 화소가 아닐 때 스텝 ST142로 복귀된다.
스텝 ST149에서 기저 생성부는, 8×8 예측 오차 데이터를 생성한다. 기저 생성부는 인트라 예측을 행하여 8×8 화소의 예측 오차 데이터를 생성한다.
스텝 ST150에서 기저 생성부는, 4×4 직교 변환의 대칭 행렬을 산출한다. 기저 생성부는, 8×8 예측 오차 데이터를 4×4 화소인 4개의 변환 블록으로 분할하고, 예측 모드와 매크로 블록 내에 있어서의 변환 블록의 블록 위치마다 대칭 행렬 M을 산출한다. 기저 생성부는, 4×4 화소의 변환 블록의 예측 오차 데이터를 배열해서 16차의 벡터로 하여, 16차의 벡터의 평균과 각 벡터의 차를 산출한다. 기저 생성부는, 이 차를 「q」로 하여 수학식 3의 연산을 행하고 대칭 행렬 M을 구한다.
스텝 ST151에서 기저 생성부는, 8×8 직교 변환의 대칭 행렬을 산출한다. 기저 생성부는, 예측 모드마다 8×8 화소의 변환 블록의 예측 오차 데이터를 배열해서 64차의 벡터로 하여, 64차의 벡터의 평균과 각 벡터의 차를 산출한다. 기저 생성부는, 이 차를 「q」로 하여 수학식 3의 연산을 행하고, 예측 모드마다 대칭 행렬 M을 구한다.
스텝 ST152에서 기저 생성부는, KL 변환의 기저를 산출한다. 기저 생성부는, 각 대칭 행렬 M의 고유값에 대응하는 고유 벡터를 구하고, 고유값의 크기의 순서로 고유 벡터를 배열하여, KL 변환의 기저로 한다.
이와 같은 처리를 행하면, 16×16 KL 변환부(141), 8×8 KL 변환부(142), 2×2 KL 변환부(143, 146), 4×4 KL 변환부(144, 145)에서 KL 변환을 행할 때의 기저를 생성할 수 있다. 또한, 각 기저의 역행렬의 산출을 행함으로써, 16×16 KL 역변환부(541), 2×2 KL 역변환부(542, 545), 8×8 KL 역변환부(543), 4×4 KL 역변환부(544, 546)에서 KL 역변환을 행할 때의 기저를 생성할 수 있다.
또한, 매크로 블록 사이즈마다와 예측 모드마다 및 매크로 블록 내의 블록 위치마다 각 블록의 KL 변환이나 KL 역변환을 행하기 위한 기저를, 화상 부호화 장치와 화상 복호화 장치의 각각에서 기억하면, 기억해 두는 기저의 수가 많아지게 된다. 즉, 용량이 큰 메모리가 필요로 된다. 그래서, 기저의 그룹화를 행하고, 기억하는 기저를 삭감한다.
다음에, 그룹화의 방법에 대해서, 2개의 방법을 예시한다. 제1 방법은, 학습으로 구한 기저에 대해서, 기저간에서 유클리드 거리를 계산하고, 거리가 작은 것을 그룹화하여, 그룹 내의 복수의 기저를 대표하는 1개의 기저로 치환한다. 이렇게 그룹화를 행하면, 기저의 수를 삭감할 수 있다.
제2 방법은, 참조 화소로부터의 거리에 따라 그룹화하는 방법이다. 도 20에 도시하는 바와 같이, 예측 모드0(Vertical)에서는, 예를 들어 Group1={P4, P5, P6, P7}의 블록은 참조 화소로부터의 거리가 동일하게 된다. 이러한 경우, 화소 P4, P5, P6, P7의 예측 오차는 동일한 특성으로 되는 경우가 많다. 그래서, 이 Group1은 모두 동일한 기저를 채용한다. 마찬가지로, Group0, 2, 3도 동일한 기저를 채용함으로써, 16종류로부터 4종류로 기저를 삭감할 수 있다.
마찬가지로, 예측 모드1(horizontal)에서는, 예를 들어 Group1=P1, P5, P9, P13의 블록은 참조 화소로부터의 위치 관계(혹은 거리)가 동일하게 된다. 이러한 경우, 화소 P1, P5, P9, P13의 예측 오차는 동일한 특성으로 되는 경우가 많다. 그래서, 이 Group1은 모두 동일한 기저를 채용한다. 마찬가지로, Group0, 2, 3도 동일한 기저를 채용함으로써, 16종류로부터 4종류로 기저를 삭감할 수 있다.
또한, 예측 모드4(diagonal down-right)에서는, 참조 화소와 각 블록의 위치 관계가 동일하게 되지 않는다. 그러나, 90도 회전함으로써 P3, P12는 참조 화소와의 위치 관계가 동일하게 된다. 그래서, 90도 회전함으로써 참조 화소와의 위치 관계가 동일하게 되는 {P1, P4}, {P2, P8}, {P6, P9}, {P7, P13}, {P11, P14}를 각각 그룹화해서 동일한 기저를 채용한다.
또한, 예측 모드0(Vertical)을 90도 회전했을 때의 참조 화소와 각 블록의 위치 관계는, 예측 모드1(horizontal)과 동일하게 되기 때문에, 예측 모드0(Vertical)과 예측 모드1(horizontal)을 그룹화하면, 더욱 기저를 삭감할 수 있게 된다.
<8. 소프트웨어 처리의 경우>
명세서 중에 있어서 설명한 일련의 처리는 하드웨어, 또는 소프트웨어, 또는 양자의 복합 구성에 의해 실행하는 것이 가능하다. 소프트웨어에 의한 처리를 실행하는 경우에는, 처리 시퀀스를 기록한 프로그램을, 전용의 하드웨어에 내장된 컴퓨터 내의 메모리에 인스톨해서 실행시킨다. 또는, 각종 처리가 실행 가능한 범용 컴퓨터에 프로그램을 인스톨해서 실행시키는 것도 가능하다.
예를 들어, 프로그램은 기록 매체로서의 하드 디스크나 ROM(Read Only Memory)에 미리 기록해 둘 수 있다. 또는, 프로그램은 플렉시블 디스크, CD-ROM(Compact Disc Read Only Memory), MO(Magneto optical) 디스크, DVD(Digital Versatile Disc), 자기 디스크, 반도체 메모리 등의 리무버블 기록 매체에, 일시적 또는 영속적으로 저장(기록)해 둘 수 있다. 이러한 리무버블 기록 매체는, 소위 패키지 소프트웨어로서 제공할 수 있다.
또한, 프로그램은, 상술한 바와 같은 리무버블 기록 매체로부터 컴퓨터에 인스톨하는 것 외에, 다운로드 사이트로부터, 컴퓨터에 무선 전송하거나, LAN(Local Area Network), 인터넷과 같은 네트워크를 통하여, 컴퓨터에 유선으로 전송하고, 컴퓨터에서는, 그와 같이 해서 전송되어 오는 프로그램을 수신하고, 내장하는 하드 디스크 등의 기록 매체에 인스톨할 수 있다.
프로그램을 기술하는 스텝은, 기재된 순서를 따라 시계열적으로 행해지는 처리는 물론, 반드시 시계열적으로 처리되지 않더라도, 병렬적 혹은 개별로 실행되는 처리도 포함하는 것이다.
<9. 전자 기기에 적용한 경우>
또한, 이상에 있어서는, 부호화 방식/복호 방식으로서 H.264/AVC 방식이 사용되었지만, 본 발명은, 그 밖의 부호화 방식/복호 방식을 사용하는 화상 부호화 장치/화상 복호 장치에 적용할 수도 있다.
또한, 본 발명은, 예를 들어, MPEG, H.26x 등과 같이, 이산 코사인 변환 등의 직교 변환과 움직임 보상에 의해 압축된 화상 정보(부호화 비트 스트림)를, 위성 방송, 케이블 티비(텔레비전), 인터넷, 및 휴대 전화기 등의 네트워크 미디어를 통해서 수신할 때, 혹은, 광, 자기 디스크, 및 플래시 메모리와 같은 기억 미디어 상에서 처리할 때 사용되는 화상 부호화 장치 및 화상 복호 장치에 적용할 수 있다.
상술한 화상 부호화 장치(10)나 화상 복호화 장치(50)는, 임의의 전자 기기에 적용할 수 있다. 이하에 그 예에 대해서 설명한다.
도 21은, 본 발명을 적용한 텔레비전 장치의 개략적인 구성을 예시하고 있다. 텔레비전 장치(90)는, 안테나(901), 튜너(902), 디멀티플렉서(903), 디코더(904), 영상 신호 처리부(905), 표시부(906), 음성 신호 처리부(907), 스피커(908), 외부 인터페이스부(909)를 갖고 있다. 또한, 텔레비전 장치(90)는, 제어부(910), 유저 인터페이스부(911) 등을 갖고 있다.
튜너(902)는, 안테나(901)에서 수신된 방송파 신호로부터 원하는 채널을 선국해서 복조를 행하고, 얻어진 부호화 비트 스트림을 디멀티플렉서(903)에 출력한다.
디멀티플렉서(903)는, 부호화 비트 스트림으로부터 시청 대상인 프로그램의 영상이나 음성의 패킷을 추출하여, 추출한 패킷의 데이터를 디코더(904)에 출력한다. 또한, 디멀티플렉서(903)는, EPG(Electronic Program Guide) 등의 데이터의 패킷을 제어부(910)에 공급한다. 또한, 스크램블이 행해지고 있는 경우, 디멀티플렉서 등으로 스크램블의 해제를 행한다.
디코더(904)는, 패킷의 복호화 처리를 행하고, 복호 처리화에 의해 생성된 영상 데이터를 영상 신호 처리부(905), 음성 데이터를 음성 신호 처리부(907)에 출력한다.
영상 신호 처리부(905)는, 영상 데이터에 대하여, 노이즈 제거나 사용자 설정에 따른 영상 처리 등을 행한다. 영상 신호 처리부(905)는, 표시부(906)에 표시시키는 프로그램의 영상 데이터나, 네트워크를 통해서 공급되는 어플리케이션에 기초하는 처리에 의한 화상 데이터 등을 생성한다. 또한, 영상 신호 처리부(905)는, 항목의 선택 등의 메뉴 화면 등을 표시하기 위한 영상 데이터를 생성하고, 그것을 프로그램의 영상 데이터에 중첩한다. 영상 신호 처리부(905)는, 이와 같이 하여 생성한 영상 데이터에 기초하여 구동 신호를 생성해서 표시부(906)를 구동한다.
표시부(906)는, 영상 신호 처리부(905)로부터의 구동 신호에 기초하여 표시 디바이스(예를 들어 액정 표시 소자 등)를 구동하여, 프로그램의 영상 등을 표시시킨다.
음성 신호 처리부(907)는, 음성 데이터에 대하여 노이즈 제거 등의 소정의 처리를 실시하고, 처리 후의 음성 데이터의 D/A 변환 처리나 증폭 처리를 행하여 스피커(908)에 공급함으로써 음성 출력을 행한다.
외부 인터페이스부(909)는, 외부 기기나 네트워크와 접속하기 위한 인터페이스이며, 영상 데이터나 음성 데이터 등의 데이터 송수신을 행한다.
제어부(910)에는 유저 인터페이스부(911)가 접속되어 있다. 유저 인터페이스부(911)는, 조작 스위치나 리모트 컨트롤 신호 수신부 등으로 구성되어 있고, 사용자 조작에 따른 조작 신호를 제어부(910)에 공급한다.
제어부(910)는, CPU(Central Processing Unit)나 메모리 등을 사용해서 구성되어 있다. 메모리는, CPU에 의해 실행되는 프로그램이나 CPU가 처리를 행함에 있어서 필요한 각종 데이터, EPG 데이터, 네트워크를 통해서 취득된 데이터 등을 기억한다. 메모리에 기억되어 있는 프로그램은, 텔레비전 장치(90)의 기동시 등의 소정의 타이밍에 CPU에 의해 읽어내어져 실행된다. CPU는, 프로그램을 실행함으로써, 텔레비전 장치(90)가 사용자 조작에 따른 동작으로 되도록 각 부를 제어한다.
또한, 텔레비전 장치(90)에서는, 튜너(902), 디멀티플렉서(903), 영상 신호 처리부(905), 음성 신호 처리부(907), 외부 인터페이스부(909) 등과 제어부(910)를 접속하기 위해서 버스(912)가 설치되어 있다.
이와 같이 구성된 텔레비전 장치에서는, 디코더(904)에 본원의 화상 복호화 장치(화상 복호화 방법)의 기능이 설치된다. 이로 인해, 방송국 측에서 본원의 화상 부호화 장치의 기능을 사용함으로써, 부호화 효율이나 화질의 개선이 도모되어 부호화 비트 스트림의 생성이 행해져도, 텔레비전 장치에서 부호화 비트 스트림의 복호화를 올바르게 행할 수 있다.
도 22는, 본 발명을 적용한 휴대 전화기의 개략적인 구성을 예시하고 있다. 휴대 전화기(92)는, 통신부(922), 음성 코덱(923), 카메라부(926), 화상 처리부(927), 다중 분리부(928), 기록 재생부(929), 표시부(930), 제어부(931)를 갖고 있다. 이들은, 버스(933)를 통해서 서로 접속되어 있다.
또한, 통신부(922)에는 안테나(921)가 접속되어 있고, 음성 코덱(923)에는, 스피커(924)와 마이크로폰(925)이 접속되어 있다. 또한 제어부(931)에는, 조작부(932)가 접속되어 있다.
휴대 전화기(92)는, 음성 통화 모드나 데이터 통신 모드 등의 각종 모드에서, 음성 신호의 송수신, 전자우편이나 화상 데이터의 송수신, 화상 촬영, 또는 데이터 기록 등의 각종 동작을 행한다.
음성 통화 모드에 있어서, 마이크로폰(925)에서 생성된 음성 신호는, 음성 코덱(923)에서 음성 데이터로의 변환이나 데이터 압축이 행해져서 통신부(922)에 공급된다. 통신부(922)는, 음성 데이터의 변조 처리나 주파수 변환 처리 등을 행하여 송신 신호를 생성한다. 또한, 통신부(922)는, 송신 신호를 안테나(921)에 공급해서 도시하지 않는 기지국에 송신한다. 또한, 통신부(922)는, 안테나(921)에서 수신한 수신 신호의 증폭이나 주파수 변환 처리 및 복조 처리 등을 행하고, 얻어진 음성 데이터를 음성 코덱(923)에 공급한다. 음성 코덱(923)은, 음성 데이터의 데이터 신장이나 아날로그 음성 신호로의 변환을 행하여 스피커(924)에 출력한다.
또한, 데이터 통신 모드에 있어서, 메일 송신을 행하는 경우, 제어부(931)는, 조작부(932)의 조작에 의해 입력된 문자 데이터를 접수하여, 입력된 문자를 표시부(930)에 표시한다. 또한, 제어부(931)는, 조작부(932)에 있어서의 사용자 지시 등에 기초하여 메일 데이터를 생성해서 통신부(922)에 공급한다. 통신부(922)는, 메일 데이터의 변조 처리나 주파수 변환 처리 등을 행하고, 얻어진 송신 신호를 안테나(921)로부터 송신한다. 또한, 통신부(922)는, 안테나(921)에서 수신한 수신 신호의 증폭이나 주파수 변환 처리 및 복조 처리 등을 행하고, 메일 데이터를 복원한다. 이 메일 데이터를, 표시부(930)에 공급하여, 메일 내용의 표시를 행한다.
또한, 휴대 전화기(92)는, 수신한 메일 데이터를, 기록 재생부(929)에서 기억 매체에 기억시키는 것도 가능하다. 기억 매체는, 재기입 가능한 임의의 기억 매체이다. 예를 들어, 기억 매체는, RAM이나 내장형 플래시 메모리 등의 반도체 메모리, 하드 디스크, 자기 디스크, 광자기 디스크, 광 디스크, USB 메모리, 또는 메모리 카드 등의 리무버블 미디어이다.
데이터 통신 모드에 있어서 화상 데이터를 송신하는 경우, 카메라부(926)에서 생성된 화상 데이터를, 화상 처리부(927)에 공급한다. 화상 처리부(927)는, 화상 데이터의 부호화 처리를 행하여 부호화 데이터를 생성한다.
다중 분리부(928)는, 화상 처리부(927)에서 생성된 부호화 데이터와, 음성 코덱(923)으로부터 공급된 음성 데이터를 소정의 방식으로 다중화해서 통신부(922)에 공급한다. 통신부(922)는, 다중화 데이터의 변조 처리나 주파수 변환 처리 등을 행하고, 얻어진 송신 신호를 안테나(921)로부터 송신한다. 또한, 통신부(922)는, 안테나(921)에서 수신한 수신 신호의 증폭이나 주파수 변환 처리 및 복조 처리 등을 행하고, 다중화 데이터를 복원한다. 이 다중화 데이터를 다중 분리부(928)에 공급한다. 다중 분리부(928)는, 다중화 데이터의 분리를 행하고, 부호화 데이터를 화상 처리부(927), 음성 데이터를 음성 코덱(923)에 공급한다. 화상 처리부(927)는, 부호화 데이터의 복호화 처리를 행하여 화상 데이터를 생성한다. 이 화상 데이터를 표시부(930)에 공급하여, 수신한 화상의 표시를 행한다. 음성 코덱(923)은, 음성 데이터를 아날로그 음성 신호로 변환해서 스피커(924)에 공급하여, 수신한 음성을 출력한다.
이와 같이 구성된 휴대 전화 장치에서는, 화상 처리부(927)에 본원의 화상 부호화 장치(화상 부호화 방법)나 화상 복호화 장치(화상 복호화 방법)의 기능이 설치된다. 따라서, 화상 데이터의 통신을 행할 때, 부호화 효율이나 화질을 개선할 수 있다.
도 23은, 본 발명을 적용한 기록 재생 장치의 개략적인 구성을 예시하고 있다. 기록 재생 장치(94)는, 예를 들어 수신한 방송프로의 오디오 데이터와 비디오데이터를, 기록 매체에 기록하여, 그 기록된 데이터를 사용자의 지시에 따른 타이밍에 사용자에게 제공한다. 또한, 기록 재생 장치(94)는, 예를 들어 다른 장치로부터 오디오 데이터나 비디오 데이터를 취득하고, 그들을 기록 매체에 기록시킬 수도 있다. 또한, 기록 재생 장치(94)는, 기록 매체에 기록되어 있는 오디오 데이터나 비디오 데이터를 복호해서 출력함으로써, 모니터 장치 등에 있어서 화상 표시나 음성 출력을 행할 수 있게 한다.
기록 재생 장치(94)는, 튜너(941), 외부 인터페이스부(942), 인코더(943), HDD(Hard Disk Drive)부(944), 디스크 드라이브(945), 셀렉터(946), 디코더(947), OSD(On-Screen Display)부(948), 제어부(949), 유저 인터페이스부(950)를 갖고 있다.
튜너(941)는, 도시하지 않는 안테나에서 수신된 방송 신호로부터 원하는 채널을 선국한다. 튜너(941)는, 원하는 채널의 수신 신호를 복조해서 얻어진 부호화 비트 스트림을 셀렉터(946)에 출력한다.
외부 인터페이스부(942)는, IEEE1394 인터페이스, 네트워크 인터페이스부, USB 인터페이스, 플래시 메모리 인터페이스 등의 적어도 어느 하나로 구성되어 있다. 외부 인터페이스부(942)는, 외부 기기나 네트워크, 메모리 카드 등과 접속하기 위한 인터페이스이며, 기록하는 영상 데이터나 음성 데이터 등의 데이터 수신을 행한다.
인코더(943)는, 외부 인터페이스부(942)로부터 공급된 영상 데이터나 음성 데이터가 부호화되어 있지 않을 때 소정의 방식으로 부호화를 행하고, 부호화 비트 스트림을 셀렉터(946)에 출력한다.
HDD부(944)는, 영상이나 음성 등의 콘텐츠 데이터, 각종 프로그램이나 그 밖의 데이터 등을 내장의 하드 디스크에 기록하고, 또한 재생시 등에 그들을 당해 하드 디스크로부터 읽어낸다.
디스크 드라이브(945)는, 장착되어 있는 광 디스크에 대한 신호의 기록 및 재생을 행한다. 광 디스크, 예를 들어 DVD 디스크(DVD-Video, DVD-RAM, DVD-R, DVD-RW, DVD+R, DVD+RW 등)나 Blu-ray 디스크 등이다.
셀렉터(946)는, 영상이나 음성의 기록 시에는, 튜너(941) 또는 인코더(943)로부터의 어느 하나의 부호화 비트 스트림을 선택하여, HDD부(944)나 디스크 드라이브(945) 중 어느 하나에 공급한다. 또한, 셀렉터(946)는, 영상이나 음성의 재생시에, HDD부(944) 또는 디스크 드라이브(945)로부터 출력된 부호화 비트 스트림을 디코더(947)에 공급한다.
디코더(947)는, 부호화 비트 스트림의 복호화 처리를 행한다. 디코더(947)는, 복호 처리화를 행함으로써 생성된 영상 데이터를 OSD부(948)에 공급한다. 또한, 디코더(947)는, 복호 처리화를 행함으로써 생성된 음성 데이터를 출력한다.
OSD부(948)는, 항목의 선택 등의 메뉴 화면 등을 표시하기 위한 영상 데이터를 생성하고, 그것을 디코더(947)로부터 출력된 영상 데이터에 중첩해서 출력한다.
제어부(949)에는, 유저 인터페이스부(950)가 접속되어 있다. 유저 인터페이스부(950)는, 조작 스위치나 리모트 컨트롤 신호 수신부 등으로 구성되어 있고, 사용자 조작에 따른 조작 신호를 제어부(949)에 공급한다.
제어부(949)는, CPU나 메모리 등을 사용해서 구성되어 있다. 메모리는, CPU에 의해 실행되는 프로그램이나 CPU가 처리를 행함에 있어서 필요한 각종 데이터를 기억한다. 메모리에 기억되어 있는 프로그램은, 기록 재생 장치(94)의 기동시 등의 소정의 타이밍에 CPU에 의해 읽어내어져 실행된다. CPU는, 프로그램을 실행함으로써, 기록 재생 장치(94)가 사용자 조작에 따른 동작으로 되도록 각 부를 제어한다.
이와 같이 구성된 기록 재생 장치에서는, 인코더(943)에 본원의 화상 부호화 장치(화상 부호화 방법)의 기능, 디코더(947)에 화상 복호화 장치(화상 복호화 방법)의 기능이 설치되고, 부호화 효율이나 화질을 개선하여, 영상의 기록 재생을 효율적으로 행할 수 있다.
도 24는, 본 발명을 적용한 촬상 장치의 개략적인 구성을 예시하고 있다. 촬상 장치(96)는, 피사체를 촬상하고, 피사체의 화상을 표시부에 표시시키거나, 그것을 화상 데이터로서, 기록 매체에 기록한다.
촬상 장치(96)는, 광학 블록(961), 촬상부(962), 카메라 신호 처리부(963), 화상 데이터 처리부(964), 표시부(965), 외부 인터페이스부(966), 메모리부(967), 미디어 드라이브(968), OSD부(969), 제어부(970)를 갖고 있다. 또한, 제어부(970)에는, 유저 인터페이스부(971)가 접속되어 있다. 또한, 화상 데이터 처리부(964)나 외부 인터페이스부(966), 메모리부(967), 미디어 드라이브(968), OSD부(969), 제어부(970) 등은, 버스(972)를 통해서 접속되어 있다.
광학 블록(961)은, 포커스 렌즈나 조리개 기구 등을 사용해서 구성되어 있다. 광학 블록(961)은, 피사체의 광학상을 촬상부(962)의 촬상면에 결상시킨다. 촬상부(962)는, CCD 또는 CMOS 이미지 센서를 사용해서 구성되어 있고, 광전 변환에 의해 광학상에 따른 전기 신호를 생성해서 카메라 신호 처리부(963)에 공급한다.
카메라 신호 처리부(963)는, 촬상부(962)로부터 공급된 전기 신호에 대하여 니(knee) 보정이나 감마 보정, 색 보정 등의 다양한 카메라 신호 처리를 행한다. 카메라 신호 처리부(963)는, 카메라 신호 처리 후의 화상 데이터를 화상 데이터 처리부(964)에 공급한다.
화상 데이터 처리부(964)는, 카메라 신호 처리부(963)로부터 공급된 화상 데이터의 부호화 처리를 행한다. 화상 데이터 처리부(964)는, 부호화 처리를 행함으로써 생성된 부호화 데이터를 외부 인터페이스부(966)나 미디어 드라이브(968)에 공급한다. 또한, 화상 데이터 처리부(964)는, 외부 인터페이스부(966)나 미디어 드라이브(968)로부터 공급된 부호화 데이터의 복호화 처리를 행한다. 화상 데이터 처리부(964)는, 복호화 처리를 행함으로써 생성된 화상 데이터를 표시부(965)에 공급한다. 또한, 화상 데이터 처리부(964)는, 카메라 신호 처리부(963)로부터 공급된 화상 데이터를 표시부(965)에 공급하는 처리나, OSD부(969)로부터 취득한 표시용 데이터를, 화상 데이터에 중첩시켜서 표시부(965)에 공급한다.
OSD부(969)는, 기호, 문자, 또는 도형으로 이루어지는 메뉴 화면이나 아이콘 등의 표시용 데이터를 생성해서 화상 데이터 처리부(964)에 출력한다.
외부 인터페이스부(966)는, 예를 들어, USB 입출력 단자 등으로 구성되고, 화상의 인쇄를 행하는 경우에, 프린터와 접속된다. 또한, 외부 인터페이스부(966)에는, 필요에 따라서 드라이브가 접속되고, 자기 디스크, 광 디스크 등의 리무버블 미디어가 적절하게 장착되며, 그들로부터 읽어내진 컴퓨터 프로그램이, 필요에 따라서 인스톨된다. 또한, 외부 인터페이스부(966)는, LAN이나 인터넷 등의 소정의 네트워크에 접속되는 네트워크 인터페이스를 갖는다. 제어부(970)는, 예를 들어, 유저 인터페이스부(971)로부터의 지시에 따라서, 메모리부(967)로부터 부호화 데이터를 읽어내고, 그것을 외부 인터페이스부(966)로부터, 네트워크를 통해서 접속되는 다른 장치에 공급시킬 수 있다. 또한, 제어부(970)는, 네트워크를 통해서 다른 장치로부터 공급되는 부호화 데이터나 화상 데이터를, 외부 인터페이스부(966)를 통해서 취득하고, 그것을 화상 데이터 처리부(964)에 공급하거나 할 수 있다.
미디어 드라이브(968)로 구동되는 기록 미디어로서는, 예를 들어, 자기 디스크, 광자기 디스크, 광 디스크, 또는 반도체 메모리 등의, 읽고 쓰기 가능한 임의의 리무버블 미디어가 사용된다. 또한, 기록 미디어는, 리무버블 미디어로서의 종류도 임의이며, 테이프 디바이스이어도 되고, 디스크이어도 되고, 메모리 카드이어도 된다. 물론, 비접촉 IC 카드 등이어도 된다.
또한, 미디어 드라이브(968)와 기록 미디어를 일체화하고, 예를 들어, 내장형 하드디스크 드라이브나 SSD(Solid State Drive) 등과 같이, 비가반성의 기억 매체에 의해 구성되도록 해도 된다.
제어부(970)는, CPU나 메모리 등을 사용해서 구성되어 있다. 메모리는, CPU에 의해 실행되는 프로그램이나 CPU가 처리를 행함에 있어서 필요한 각종 데이터 등을 기억한다. 메모리에 기억되어 있는 프로그램은, 촬상 장치(96)의 기동시 등의 소정의 타이밍에 CPU에 의해 읽어내어져 실행된다. CPU는, 프로그램을 실행함으로써, 촬상 장치(96)가 사용자 조작에 따른 동작으로 되도록 각 부를 제어한다.
이와 같이 구성된 촬상 장치에서는, 화상 데이터 처리부(964)에 본원의 화상 부호화 장치(화상 부호화 방법)나 화상 복호화 장치(화상 복호화 방법)의 기능이 설치된다. 따라서, 촬상 화상을 메모리부(967)나 기록 미디어 등에 기록할 때, 부호화 효율이나 화질의 개선을 도모하여 촬상 화상의 기록 재생을 효율적으로 행할 수 있다.
또한, 본 발명은, 상술한 발명의 실시 형태에 한정해서 해석되어서는 안 된다. 예를 들어, 상술한 매크로 블록 사이즈나 변환 블록 사이즈 및 예측 모드에 한정되어서는 안 된다. 본 발명의 실시 형태는, 예시라고 하는 형태로 본 발명을 개시하고 있고, 본 발명의 요지를 일탈하지 않는 범위에서 당업자가 실시 형태의 수정이나 대용을 이룰 수 있는 것은 자명하다. 즉, 본 발명의 요지를 판단하기 위해서는, 청구의 범위를 참작해야 한다.
<산업상의 이용 가능성>
본 발명의 화상 복호화 장치와 화상 부호화 장치 및 그 방법과 프로그램에서는, 화상 데이터의 부호화 시에 행해지는 직교 변환에 있어서, 매크로 블록 내에 있어서의 변환 블록의 블록 위치에 따라서 미리 설정되어 있는 기저를 사용해서 직교 변환이 행해진다. 또한, 블록 위치에 따라서 미리 설정되어 있는 기저를 사용해서 직교 변환을 행하는 것으로 얻어진 계수 데이터를 처리해서 생성된 부호화 비트 스트림의 복호화에 있어서, 부호화 비트 스트림에 포함되어 있는 부호화 파라미터 정보로 나타내진 매크로 블록 내의 블록 위치에 따라서 미리 설정되어 있는 기저가 사용되어, 역직교 변환이 행해져, 직교 변환 후의 계수 데이터가 직교 변환 전의 예측 오차 데이터로 복귀된다. 이와 같이, 매크로 블록 내의 블록 위치에 따른 기저를 사용해서 직교 변환이나 역직교 변환이 행해지므로, 블록 위치에 따라서 최적화한 변환을 행하는 것이 가능해져, 부호화 효율을 개선할 수 있다. 따라서, MPEG, H.26x 등과 같이, 블록 단위로 부호화를 행함으로써 얻어진 화상 정보(부호화 비트 스트림)를, 위성 방송, 케이블 TV, 인터넷, 휴대 전화 등의 네트워크 미디어를 통해서 송수신할 때, 혹은 광, 자기 디스크, 플래시 메모리와 같은 기억 미디어 상에서 처리할 때 사용되는 화상 복호화 장치나 화상 부호화 장치 등에 적합하다.
10 : 화상 부호화 장치
11 : A/D 변환부
12, 57 : 화면 재배열 버퍼
13 : 감산부
14 : 직교 변환부
15 : 양자화부
16 : 가역부호화부
17, 51 : 축적 버퍼
18 : 레이트 제어부
21, 53 : 역양자화부
22, 54 : 역직교 변환부
23, 55 : 가산부
24, 56 : 디블록킹 필터
27, 61 : 프레임 메모리
31, 62 : 인트라 예측부
32, 63 : 움직임 예측·보상부
33 : 예측 화상·최적 모드 선택부
50 : 화상 복호화 장치
52 : 가역복호화부
58 : D/A 변환부
64, 946 : 셀렉터
90 : 텔레비전 장치
92 : 휴대 전화기
94 : 기록 재생 장치
96 : 촬상 장치
141 : 16×16 KL 변환부
142 : 8×8 KL 변환부
143, 146 : 2×2 KL 변환부
144, 145 : 4×4 KL 변환부
147 : DCT부
148 : 계수 선택부
541 : 16×16 KL 역변환부
542, 545 : 2×2 KL 역변환부
543 : 8×8 KL 역변환부
544, 546 : KL 역변환부
547 : IDCT부
548 : 데이터 선택부
901, 921 : 안테나
902, 941 : 튜너
903 : 디멀티플렉서
904, 947 : 디코더
905 : 영상 신호 처리부
906 : 표시부
907 : 음성 신호 처리부
908 : 스피커
909, 942, 966 : 외부 인터페이스부
910, 931, 949, 970 : 제어부
911, 932, 971 : 유저 I/F부
912, 933, 972 : 버스
922 : 통신부
923 : 음성 코덱
924 : 스피커
925 : 마이크로폰
926 : 카메라부
927 : 화상 처리부
928 : 다중 분리부
929 : 기록 재생부
930 : 표시부
943 : 인코더
944 : HDD부
945 : 디스크 드라이브
948, 969 : OSD부
961 : 광학 블록
962 : 촬상부
963 : 카메라 신호 처리부
964 : 화상 데이터 처리부
965 : 표시부
967 : 메모리부
968 : 미디어 드라이브

Claims (16)

  1. 화상 데이터와 예측 화상 데이터의 오차인 예측 오차 데이터를, 변환 블록마다 직교 변환하여, 그 직교 변환 후의 계수 데이터를 처리해서 생성된 부호화 비트 스트림으로부터 상기 화상 데이터를 복호하는 화상 복호화 장치로서,
    상기 부호화 비트 스트림을 처리하여, 상기 직교 변환 후의 계수 데이터와 부호화 파라미터 정보를 얻는 데이터 처리부와,
    상기 부호화 파라미터 정보로 나타내진 매크로 블록 내에 있어서의 상기 변환 블록의 위치에 따라, 미리 설정되어 있는 기저를 사용해서 상기 계수 데이터의 역직교 변환을 행하여 예측 오차 데이터를 얻는 역직교 변환부와,
    상기 예측 화상 데이터를 생성하는 예측 화상 데이터 생성부와,
    상기 역직교 변환부에서 얻어진 상기 예측 오차 데이터에 상기 예측 화상 데이터 생성부에서 생성된 예측 화상 데이터를 가산해서 상기 화상 데이터를 복호하는 가산부를 갖는, 화상 복호화 장치.
  2. 제1항에 있어서,
    상기 역직교 변환부는, 상기 변환 블록의 위치와 상기 부호화 파라미터 정보로 나타내진 예측 모드에 따라, 미리 설정되어 있는 기저를 사용해서 상기 역직교 변환을 행하는, 화상 복호화 장치.
  3. 제2항에 있어서,
    상기 역직교 변환부는, 상기 부호화 파라미터 정보에 기초하여 매크로 블록에 변환 블록이 복수 포함될 때, 상기 매크로 블록에 포함되는 각 변환 블록의 직교 변환 후의 가장 낮은 주파수 성분의 계수 데이터에 관한 직교 변환 후의 계수 데이터에 대하여, 예측 모드에 따라서 미리 설정되어 있는 기저를 사용해서 상기 역직교 변환을 행하는, 화상 복호화 장치.
  4. 제2항에 있어서,
    상기 역직교 변환부에서 사용되는 기저는, 상기 예측 오차 데이터를 변환 블록마다 직교 변환했을 때 사용되는 기저의 역행예인, 화상 복호화 장치.
  5. 제1항에 있어서,
    상기 역직교 변환부는, 상기 기저를 사용해서 카루넨·루베 역변환을 행하는, 화상 복호화 장치.
  6. 화상 데이터와 예측 화상 데이터의 오차인 예측 오차 데이터를, 변환 블록마다 직교 변환하여, 그 직교 변환 후의 계수 데이터를 처리해서 생성된 부호화 비트 스트림으로부터 상기 화상 데이터를 복호하는 화상 복호화 방법으로서,
    상기 부호화 비트 스트림을 처리하여, 상기 직교 변환 후의 계수 데이터와 부호화 파라미터 정보를 얻는 데이터 처리 공정과,
    상기 부호화 파라미터 정보로 나타내진 매크로 블록 내에 있어서의 상기 변환 블록의 위치에 따라, 미리 설정되어 있는 기저를 사용해서 상기 계수 데이터의 역직교 변환을 행하여 예측 오차를 얻는 역직교 변환 공정과,
    상기 예측 화상 데이터를 생성하는 예측 화상 데이터 생성 공정과,
    상기 역직교 변환부에서 얻어진 상기 예측 오차에 상기 생성된 예측 화상 데이터를 가산해서 상기 화상 데이터를 복호하는 가산 공정을 포함하는, 화상 복호화 방법.
  7. 화상 데이터와 예측 화상 데이터의 오차인 예측 오차 데이터를, 변환 블록마다 직교 변환하여, 그 직교 변환 후의 계수 데이터를 처리해서 생성된 부호화 비트 스트림으로부터 상기 화상 데이터를 복호하는 화상 부호화를 컴퓨터에서 실행시키는 프로그램으로서,
    상기 부호화 비트 스트림을 처리하여, 상기 직교 변환 후의 계수 데이터와 부호화 파라미터 정보를 얻는 데이터 처리 수순과,
    상기 부호화 파라미터 정보로 나타내진 매크로 블록 내에 있어서의 상기 변환 블록의 위치에 따라, 미리 설정되어 있는 기저를 사용해서 상기 계수 데이터의 역직교 변환을 행하여 예측 오차를 얻는 역직교 변환 수순과,
    상기 예측 화상 데이터를 생성하는 예측 화상 데이터 생성 수순과,
    상기 역직교 변환부에서 얻어진 상기 예측 오차에 상기 생성된 예측 화상 데이터를 가산해서 상기 화상 데이터를 복호하는 가산 수순을 상기 컴퓨터에서 실행시키는 프로그램.
  8. 화상 데이터의 부호화를 행하는 화상 부호화 장치로서,
    상기 화상 데이터의 예측 화상 데이터를 생성하는 예측부와,
    상기 화상 데이터와 상기 예측 화상 데이터의 오차인 예측 오차 데이터를 생성하는 감산부와,
    상기 예측 오차의 직교 변환을 변환 블록마다 행하고, 매크로 블록 내에 있어서의 상기 변환 블록의 위치에 따라, 미리 설정되어 있는 기저를 사용해서 상기 직교 변환을 행하는 직교 변환부와,
    상기 직교 변환부의 출력 데이터를 처리해서 부호화 비트 스트림을 생성하는 데이터 처리부를 갖는, 화상 부호화 장치.
  9. 제8항에 있어서,
    상기 직교 변환부는, 상기 변환 블록의 위치와 상기 예측부에서 상기 예측 화상 데이터의 생성을 행했을 때의 예측 모드에 따라, 미리 설정되어 있는 기저를 사용해서 상기 직교 변환을 행하는, 화상 부호화 장치.
  10. 제9항에 있어서,
    상기 직교 변환부는, 상기 매크로 블록에 포함되는 변환 블록이 복수일 때, 매크로 블록에 포함되는 각 변환 블록의 직교 변환 후의 가장 낮은 주파수 성분의 계수를 사용한 블록에 대해서, 상기 예측 모드에 따라, 미리 설정되어 있는 기저를 사용해서 직교 변환을 행하는, 화상 부호화 장치.
  11. 제9항에 있어서,
    상기 직교 변환부에서 사용되는 기저는, 미리 준비되어 있는 복수의 화상을 사용하여, 상기 매크로 블록 사이즈, 상기 변환 블록 사이즈, 상기 매크로 블록 내에 있어서의 변환 블록의 위치, 및 상기 예측 모드마다의 각 변환 블록 내의 예측 오차 데이터로부터 산출한 행렬의 고유값에 대응하는 고유 벡터인, 화상 부호화 장치.
  12. 제11항에 있어서,
    상기 직교 변환부에서 사용되는 기저는, 기저간의 거리에 따라 그룹화되어 있는, 화상 부호화 장치.
  13. 제11항에 있어서,
    상기 직교 변환부에서 사용되는 기저는, 참조 화소로부터의 거리에 따라 그룹화되어 있는, 화상 부호화 장치.
  14. 제8항에 있어서,
    상기 직교 변환부는, 상기 기저를 사용해서 카루넨·루베 변환을 행하는, 화상 부호화 장치.
  15. 화상 데이터의 부호화를 행하는 화상 부호화 방법으로서,
    상기 화상 데이터의 예측 화상 데이터를 생성하는 예측 화상 데이터 생성 공정과,
    상기 화상 데이터와 상기 예측 화상 데이터의 오차인 예측 오차 데이터를 생성하는 감산 공정과,
    상기 예측 오차의 직교 변환을 변환 블록마다 행하고, 매크로 블록 내에 있어서의 상기 변환 블록의 위치에 따라, 미리 설정되어 있는 기저를 사용해서 상기 직교 변환을 행하는 직교 변환 공정을 포함하는, 화상 부호화 방법.
  16. 화상 데이터의 부호화를 컴퓨터에서 실행시키는 프로그램으로서,
    상기 화상 데이터의 예측 화상 데이터를 생성하는 예측 화상 데이터 생성 수순과,
    상기 화상 데이터와 상기 예측 화상 데이터의 오차인 예측 오차 데이터를 생성하는 감산 수순과,
    상기 예측 오차의 직교 변환을 변환 블록마다 행하고, 매크로 블록 내에 있어서의 상기 변환 블록의 위치에 따라, 미리 설정되어 있는 기저를 사용해서 상기 직교 변환을 행하는 직교 변환 수순을 상기 컴퓨터에서 실행시키는 프로그램.
KR20127031223A 2010-06-09 2011-05-25 화상 복호화 장치와 화상 부호화 장치 및 그 방법과 프로그램 KR20130090322A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010131891A JP2011259205A (ja) 2010-06-09 2010-06-09 画像復号化装置と画像符号化装置およびその方法とプログラム
JPJP-P-2010-131891 2010-06-09
PCT/JP2011/061974 WO2011155332A1 (ja) 2010-06-09 2011-05-25 画像復号化装置と画像符号化装置およびその方法とプログラム

Publications (1)

Publication Number Publication Date
KR20130090322A true KR20130090322A (ko) 2013-08-13

Family

ID=45097940

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20127031223A KR20130090322A (ko) 2010-06-09 2011-05-25 화상 복호화 장치와 화상 부호화 장치 및 그 방법과 프로그램

Country Status (9)

Country Link
US (4) US9053549B2 (ko)
EP (1) EP2582137A1 (ko)
JP (1) JP2011259205A (ko)
KR (1) KR20130090322A (ko)
CN (3) CN105049859B (ko)
BR (1) BR112012030544A2 (ko)
RU (1) RU2012151530A (ko)
TW (1) TW201215156A (ko)
WO (1) WO2011155332A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017195917A1 (ko) * 2016-05-12 2017-11-16 엘지전자 주식회사 비디오 코딩 시스템에서 인트라 예측 방법 및 장치
US10027974B2 (en) 2014-05-19 2018-07-17 Huawei Technologies Co., Ltd. Image coding/decoding method, device, and system

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8625914B2 (en) * 2013-02-04 2014-01-07 Sony Corporation Image processing system, image processing method and program
KR101387467B1 (ko) * 2010-06-07 2014-04-22 (주)휴맥스 고해상도 영상의 부호화/복호화 방법 및 이를 수행하는 장치
JP2011259205A (ja) 2010-06-09 2011-12-22 Sony Corp 画像復号化装置と画像符号化装置およびその方法とプログラム
KR20120035096A (ko) * 2010-10-04 2012-04-13 한국전자통신연구원 쿼드 트리 변환 구조에서 부가 정보의 시그널링 방법 및 장치
US8923633B2 (en) * 2011-03-07 2014-12-30 Panasonic Intellectual Property Corporation Of America Image decoding method, image coding method, image decoding apparatus, and image coding apparatus
EP3432582B1 (en) 2012-02-29 2020-04-01 Sony Corporation Image processing device and method
US10139480B2 (en) * 2016-02-19 2018-11-27 Fujifilm Sonosite, Inc. Ultrasound transducer with data compression
AU2017387752B2 (en) * 2016-12-28 2022-08-25 Sony Corporation Image processing apparatus and method
JP2020202473A (ja) * 2019-06-07 2020-12-17 キヤノン株式会社 画像符号化装置及び画像復号装置及び方法及びプログラム

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0846971A (ja) * 1994-07-29 1996-02-16 Sharp Corp 動画像符号化装置
JP3169783B2 (ja) * 1995-02-15 2001-05-28 日本電気株式会社 動画像の符号化・復号システム
JP3788823B2 (ja) * 1995-10-27 2006-06-21 株式会社東芝 動画像符号化装置および動画像復号化装置
JP4014263B2 (ja) * 1997-10-01 2007-11-28 松下電器産業株式会社 映像信号変換装置及び映像信号変換方法
JP3519594B2 (ja) * 1998-03-03 2004-04-19 Kddi株式会社 ステレオ動画像用符号化装置
JP4168304B2 (ja) * 1999-09-16 2008-10-22 ソニー株式会社 情報出力装置、情報報知方法および情報信号供給経路選択方法
US6940911B2 (en) * 2000-03-14 2005-09-06 Victor Company Of Japan, Ltd. Variable picture rate coding/decoding method and apparatus
JP3887178B2 (ja) * 2001-04-09 2007-02-28 株式会社エヌ・ティ・ティ・ドコモ 信号符号化方法及び装置並びに復号方法及び装置
JP4120301B2 (ja) * 2002-04-25 2008-07-16 ソニー株式会社 画像処理装置およびその方法
US7009655B2 (en) * 2002-07-23 2006-03-07 Mediostream, Inc. Method and system for direct recording of video information onto a disk medium
US20090118019A1 (en) * 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
JP4617644B2 (ja) * 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
JP2005130417A (ja) 2003-10-01 2005-05-19 Matsushita Electric Ind Co Ltd 変換符号化方法および変換復号化方法
JP2005272727A (ja) * 2004-03-25 2005-10-06 Nippon Shokubai Co Ltd 水性樹脂分散体及びその製造方法
KR101104828B1 (ko) * 2004-12-09 2012-01-16 삼성전자주식회사 움직임 벡터 연산 장치 및 그 방법
JP2008004984A (ja) 2006-06-20 2008-01-10 Sony Corp 画像理装置および方法、プログラム、並びに記録媒体
US20080008246A1 (en) * 2006-07-05 2008-01-10 Debargha Mukherjee Optimizing video coding
US8571104B2 (en) * 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
JP4678015B2 (ja) * 2007-07-13 2011-04-27 富士通株式会社 動画像符号化装置及び動画像符号化方法
EP2051524A1 (en) * 2007-10-15 2009-04-22 Panasonic Corporation Image enhancement considering the prediction error
US8275033B2 (en) * 2008-01-15 2012-09-25 Sony Corporation Picture mode selection for video transcoding
JP2009194617A (ja) * 2008-02-14 2009-08-27 Sony Corp 画像処理装置、画像処理方法、画像処理方法のプログラム及び画像処理方法のプログラムを記録した記録媒体
JP2009272727A (ja) * 2008-04-30 2009-11-19 Toshiba Corp 予測誤差の方向性に基づく変換方法、画像符号化方法及び画像復号化方法
US9100648B2 (en) * 2009-06-07 2015-08-04 Lg Electronics Inc. Method and apparatus for decoding a video signal
US20110090952A1 (en) * 2009-10-21 2011-04-21 Cohen Robert A Directional Transforms for Video and Image Coding
KR101441879B1 (ko) * 2009-12-09 2014-09-23 에스케이텔레콤 주식회사 영상 부호화 장치 및 방법, 및 거기에 이용되는 변환 부호화 장치 및 방법, 변환기저 생성장치 및 방법, 및 영상 복호화 장치 및 방법
US8792740B2 (en) * 2010-02-02 2014-07-29 Humax Holdings Co., Ltd. Image encoding/decoding method for rate-distortion optimization and apparatus for performing same
JP2011259205A (ja) * 2010-06-09 2011-12-22 Sony Corp 画像復号化装置と画像符号化装置およびその方法とプログラム
MY184131A (en) * 2010-07-09 2021-03-19 Samsung Electronics Co Ltd Method and apparatus for entropy encoding/decoding a transform coefficient
US9066097B2 (en) * 2011-02-01 2015-06-23 Sony Corporation Method to optimize the transforms and/or predictions in a video codec
US9641840B2 (en) * 2011-05-20 2017-05-02 Sony Corporation Processing device and image processing method for encoding and decoding image
WO2013094385A1 (ja) * 2011-12-19 2013-06-27 ソニー株式会社 画像処理装置および方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10027974B2 (en) 2014-05-19 2018-07-17 Huawei Technologies Co., Ltd. Image coding/decoding method, device, and system
US10368086B2 (en) 2014-05-19 2019-07-30 Huawei Technologies Co., Ltd. Image coding/decoding method, device, and system
WO2017195917A1 (ko) * 2016-05-12 2017-11-16 엘지전자 주식회사 비디오 코딩 시스템에서 인트라 예측 방법 및 장치
US10785478B2 (en) 2016-05-12 2020-09-22 Lg Electronics Inc. Intra prediction method and apparatus for video coding

Also Published As

Publication number Publication date
CN105025295A (zh) 2015-11-04
US9596476B2 (en) 2017-03-14
US10499083B2 (en) 2019-12-03
EP2582137A1 (en) 2013-04-17
WO2011155332A1 (ja) 2011-12-15
US20130071038A1 (en) 2013-03-21
US9979982B2 (en) 2018-05-22
CN105049859A (zh) 2015-11-11
CN102918843A (zh) 2013-02-06
CN105025295B (zh) 2019-01-29
US20170164005A1 (en) 2017-06-08
US9053549B2 (en) 2015-06-09
US20180242019A1 (en) 2018-08-23
CN105049859B (zh) 2019-01-08
JP2011259205A (ja) 2011-12-22
RU2012151530A (ru) 2014-07-20
CN102918843B (zh) 2015-08-19
US20150281697A1 (en) 2015-10-01
TW201215156A (en) 2012-04-01
BR112012030544A2 (pt) 2016-08-09

Similar Documents

Publication Publication Date Title
AU2019200515B2 (en) Image decoding device, image encoding device, and method thereof
KR101914896B1 (ko) 화상 처리 장치와 화상 처리 방법
US10499083B2 (en) Image decoding apparatus, image encoding apparatus, and method and program for image decoding and encoding
WO2011155364A1 (ja) 画像復号化装置と画像符号化装置およびその方法とプログラム
KR20150024440A (ko) 화상 처리 장치 및 방법, 및 학습 장치 및 방법
WO2012063878A1 (ja) 画像処理装置と画像処理方法
JP2013150164A (ja) 符号化装置および符号化方法、並びに、復号装置および復号方法
KR20130088119A (ko) 부호화 장치 및 부호화 방법, 및 복호 장치 및 복호 방법
JP5387520B2 (ja) 情報処理装置と情報処理方法
JP2018191334A (ja) 画像符号化装置と画像符号化方法およびプログラム
JP2012138884A (ja) 符号化装置および符号化方法、並びに復号装置および復号方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid