KR20200092315A - 화상 처리 장치 및 방법 - Google Patents

화상 처리 장치 및 방법 Download PDF

Info

Publication number
KR20200092315A
KR20200092315A KR1020207013490A KR20207013490A KR20200092315A KR 20200092315 A KR20200092315 A KR 20200092315A KR 1020207013490 A KR1020207013490 A KR 1020207013490A KR 20207013490 A KR20207013490 A KR 20207013490A KR 20200092315 A KR20200092315 A KR 20200092315A
Authority
KR
South Korea
Prior art keywords
transform
unit
matrix
transformation
transformation matrix
Prior art date
Application number
KR1020207013490A
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 KR20200092315A publication Critical patent/KR20200092315A/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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • 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/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
    • 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/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/423Methods 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 characterised by memory arrangements
    • H04N19/426Methods 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 characterised by memory arrangements using memory downsizing methods
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

본 개시는, 직교 변환 및 역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있도록 하는 화상 처리 장치 및 방법에 관한 것이다. 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고, 그 도출된 제2 변환 행렬을 이용하여 화상의 예측 잔차를 직교 변환하고, 그 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성한다. 본 개시는, 예를 들어 화상 처리 장치, 화상 부호화 장치 또는 화상 복호 장치 등에 적용할 수 있다.

Description

화상 처리 장치 및 방법
본 개시는 화상 처리 장치 및 방법에 관한 것이며, 특히 직교 변환 및 역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있도록 한 화상 처리 장치 및 방법에 관한 것이다.
종래, 휘도에 대하여, TU(Transform Unit) 단위마다의, 수평 방향의 프라이머리 변환 PThor(프라이머리 수평 변환이라고도 칭함) 및 수직 방향의 프라이머리 변환 PTver(프라이머리 수직 변환이라고도 칭함)별로, 적응적으로 복수의 상이한 직교 변환으로부터 프라이머리 변환을 선택하는 적응 프라이머리 변환(AMT: Adaptive Multiple Core Transforms)이 개시되어 있다(예를 들어 비특허문헌 1 참조).
비특허문헌 1에서는, 프라이머리 변환의 후보로서 DCT-Ⅱ, DST-Ⅶ, DCT-Ⅷ, DST-Ⅰ, DCT-Ⅵ의 5개의 1차원 직교 변환이 있다. 또한 DST-Ⅳ 및 IDT(Identity Transform: 1차원 변환 스킵)의 2개의 1차원 직교 변환을 더 추가하여 합계 7개의 1차원 직교 변환을 프라이머리 변환의 후보로 할 것이 제안되어 있다(예를 들어 비특허문헌 2 참조).
Jianle Chen, Elena Alshina, Gary J. Sullivan, Jens-Rainer, Jill Boyce, "Algorithm Description of Joint Exploration Test Model 4", JVET-G1001_v1, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino, IT, 13-21 July 2017 V. Lorcy, P. Philippe, "Proposed improvements to the Adaptive multiple Core transform", JVET-C0022, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 3rd Meeting: Geneva, CH, 26 May - 1 June 2016
그러나 이들 방법의 경우, 프라이머리 변환의 전체 변환 행렬의 보유에 요하는 LUT(Look Up Table)의 사이즈가 증대되어 버릴 우려가 있었다. 즉, 이 프라이머리 변환의 하드웨어 실장을 고려한 경우, 변환 행렬의 계수의 보유에 요하는 메모리 사이즈가 증대될 우려가 있었다.
본 개시는 이와 같은 상황을 감안하여 이루어진 것이며, 직교 변환 및 역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있도록 하는 것이다.
본 기술의 일 측면의 화상 처리 장치는, 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하는 도출부와, 상기 도출부에 의하여 도출된 상기 제2 변환 행렬을 이용하여 화상의 예측 잔차를 직교 변환하는 직교 변환부와, 상기 직교 변환부에 의하여 상기 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는 부호화부를 구비하는 화상 처리 장치이다.
본 기술의 일 측면의 화상 처리 방법은, 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고, 도출된 상기 제2 변환 행렬을 이용하여 화상의 예측 잔차를 직교 변환하고, 상기 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는 화상 처리 방법이다.
본 기술의 다른 측면의 화상 처리 장치는, 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻는 복호부와, 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하는 도출부와, 상기 도출부에 의하여 도출된 상기 제2 변환 행렬을 이용하여, 상기 복호부에 의하여 얻어진 상기 계수 데이터를 역직교 변환하는 역직교 변환부를 구비하는 화상 처리 장치이다.
본 기술의 다른 측면의 화상 처리 방법은, 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻고, 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고, 도출된 상기 제2 변환 행렬을 이용하여, 얻어진 상기 계수 데이터를 역직교 변환하는 화상 처리 방법이다.
본 기술의 또 다른 측면의 화상 처리 장치는, 화상의 예측 잔차를 치환 조작하는 조작부와, 베이스로 되는 변환 행렬을 이용하여, 상기 조작부에 의하여 치환 조작된 상기 예측 잔차를 직교 변환하는 직교 변환부와, 상기 직교 변환부에 의하여 상기 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는 부호화부를 구비하는 화상 처리 장치이다.
본 기술의 또 다른 측면의 화상 처리 방법은, 화상의 예측 잔차를 치환 조작하고, 베이스로 되는 변환 행렬을 이용하여, 치환 조작된 상기 예측 잔차를 직교 변환하고, 상기 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는 화상 처리 방법이다.
본 기술의 또 다른 측면의 화상 처리 장치는, 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻는 복호부와, 상기 복호부에 의하여 얻어진 상기 계수 데이터를 역직교 변환하는 역직교 변환부와, 상기 역직교 변환부에 의하여 얻어진 상기 계수 데이터의 역직교 변환 결과를 치환 조작하는 조작부를 구비하는 화상 처리 장치이다.
본 기술의 또 다른 측면의 화상 처리 방법은, 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻고, 얻어진 상기 계수 데이터를 역직교 변환하고, 얻어진 상기 계수 데이터의 역직교 변환 결과를 치환 조작하는 화상 처리 방법이다.
본 기술의 일 측면의 화상 처리 장치 및 방법에 있어서는, 제1 변환 행렬이 이용되어 제2 변환 행렬이 도출되고, 그 도출된 제2 변환 행렬이 이용되어 화상의 예측 잔차가 직교 변환되고, 그 예측 잔차가 직교 변환되어 얻어진 계수 데이터가 부호화되어 비트 스트림이 생성된다.
본 기술의 다른 측면의 화상 처리 장치 및 방법에 있어서는, 비트 스트림이 복호되어, 화상의 예측 잔차가 직교 변환된 계수 데이터가 얻어지고, 제1 변환 행렬이 이용되어 제2 변환 행렬이 도출되고, 그 도출된 제2 변환 행렬이 이용되어, 그 얻어진 계수 데이터가 역직교 변환된다.
본 기술의 또 다른 측면의 화상 처리 장치 및 방법에 있어서는, 화상의 예측 잔차가 치환 조작되고, 베이스로 되는 변환 행렬이 이용되어, 그 치환 조작된 예측 잔차가 직교 변환되고, 그 예측 잔차가 직교 변환되어 얻어진 계수 데이터가 부호화되어 비트 스트림이 생성된다.
본 기술의 또 다른 측면의 화상 처리 장치 및 방법에 있어서는, 비트 스트림이 복호되어, 화상의 예측 잔차가 직교 변환된 계수 데이터가 얻어지고, 그 얻어진 계수 데이터가 역직교 변환되고, 그 얻어진 계수 데이터의 역직교 변환 결과가 치환 조작된다.
본 개시에 따르면 화상을 처리할 수 있다. 특히 직교 변환 및 역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
도 1은 변환 세트와, 선택될 직교 변환의 대응 관계를 나타내는 도면이다.
도 2는 직교 변환의 타입과, 이용될 함수의 대응 관계를 나타내는 도면이다.
도 3은 변환 세트와 예측 모드의 대응 관계를 나타내는 도면이다.
도 4는 LUT에 저장되는 직교 변환의 타입의 예를 나타내는 도면이다.
도 5는 HEVC에 있어서의 변환 행렬의 보유에 요하는 LUT 사이즈의 예를 나타내는 도면이다.
도 6은 변환 행렬의 보유에 요하는 LUT 사이즈의 예를 나타내는 도면이다.
도 7은 변환 행렬 사이의 유사성의 예를 설명하는 도면이다.
도 8은 플립에 의하여 대체 가능한 변환 타입의 예를 설명하는 도면이다.
도 9는 전치에 의하여 대체 가능한 변환 타입의 예를 설명하는 도면이다.
도 10은 변환 행렬의 대체의 주된 구체예의 일람을 나타내는 도면이다.
도 11은 화상 부호화 장치의 주된 구성예를 나타내는 블록도이다.
도 12는 직교 변환부의 주된 구성예를 나타내는 블록도이다.
도 13은 화상 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 14는 직교 변환 처리의 흐름의 예를 설명하는 흐름도이다.
도 15는 화상 복호 장치의 주된 구성예를 나타내는 블록도이다.
도 16은 역직교 변환부의 주된 구성예를 나타내는 블록도이다.
도 17은 화상 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 18은 역직교 변환 처리의 흐름의 예를 설명하는 흐름도이다.
도 19는 변환 타입 도출의 예를 나타내는 도면이다.
도 20은 변환 타입 도출의 구체예를 나타내는 도면이다.
도 21은 변환 행렬의 보유에 요하는 LUT 사이즈의 예를 나타내는 도면이다.
도 22는 프라이머리 변환부의 주된 구성예를 나타내는 블록도이다.
도 23은 프라이머리 수평 변환부의 주된 구성예를 나타내는 블록도이다.
도 24는 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 25는 프라이머리 수직 변환부의 주된 구성예를 나타내는 블록도이다.
도 26은 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 27은 프라이머리 변환 처리의 흐름의 예를 설명하는 흐름도이다.
도 28은 프라이머리 수평 변환 처리의 흐름의 예를 설명하는 흐름도이다.
도 29는 요소별 연산 표현의 예를 나타내는 도면이다.
도 30은 변환 행렬 도출 처리의 흐름의 예를 설명하는 흐름도이다.
도 31은 변환 타입 식별자에 대한 변환 타입의 할당의 예를 나타내는 도면이다.
도 32는 프라이머리 수직 변환 처리의 흐름의 예를 설명하는 흐름도이다.
도 33은 요소별 연산 표현의 예를 나타내는 도면이다.
도 34는 역프라이머리 변환부의 주된 구성예를 나타내는 블록도이다.
도 35는 역프라이머리 수직 변환부의 주된 구성예를 나타내는 블록도이다.
도 36은 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 37은 역프라이머리 수평 변환부의 주된 구성예를 나타내는 블록도이다.
도 38은 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 39는 역프라이머리 변환 처리의 흐름의 예를 설명하는 흐름도이다.
도 40은 역프라이머리 변환 선택 처리의 흐름의 예를 설명하는 흐름도이다.
도 41은 역프라이머리 수직 변환 처리의 흐름의 예를 설명하는 흐름도이다.
도 42는 역프라이머리 수평 변환 처리의 흐름의 예를 설명하는 흐름도이다.
도 43은 변환 타입 도출의 예를 나타내는 도면이다.
도 44는 변환 타입 도출의 구체예를 나타내는 도면이다.
도 45는 변환 행렬의 보유에 요하는 LUT 사이즈의 예를 나타내는 도면이다.
도 46은 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 47은 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 48은 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 49는 변환 타입 식별자에 대한 변환 타입의 할당의 예를 나타내는 도면이다.
도 50은 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 51은 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 52는 변환 타입 도출의 예를 나타내는 도면이다.
도 53은 변환 행렬의 보유에 요하는 LUT 사이즈의 예를 나타내는 도면이다.
도 54는 변환 행렬 도출 처리의 흐름의 예를 설명하는 흐름도이다.
도 55는 변환 타입 식별자에 대한 변환 타입의 할당의 예를 나타내는 도면이다.
도 56은 변환 타입 도출의 예를 나타내는 도면이다.
도 57은 변환 행렬의 보유에 요하는 LUT 사이즈의 예를 나타내는 도면이다.
도 58은 변환 타입 식별자에 대한 변환 타입의 할당의 예를 나타내는 도면이다.
도 59는 변환 타입 도출의 예를 나타내는 도면이다.
도 60은 변환 행렬의 보유에 요하는 LUT 사이즈의 예를 나타내는 도면이다.
도 61은 변환 행렬 도출 처리의 흐름의 예를 설명하는 흐름도이다.
도 62는 변환 타입 식별자에 대한 변환 타입의 할당의 예를 나타내는 도면이다.
도 63은 2차원 직교 변환의 공간 대칭성에 대하여 설명하는 도면이다.
도 64는 수평 방향의 대칭성에 대하여 설명하는 도면이다.
도 65는 수직 방향의 대칭성에 대하여 설명하는 도면이다.
도 66은 수평 방향·수직 방향의 대칭성에 대하여 설명하는 도면이다.
도 67은 예측 잔차의 변환을 수반하는 변환 행렬의 대체의 주된 구체예의 일람을 나타내는 도면이다.
도 68은 변환 행렬의 보유에 요하는 LUT 사이즈의 예를 나타내는 도면이다.
도 69는 프라이머리 변환부의 주된 구성예를 나타내는 블록도이다.
도 70은 프라이머리 변환 처리의 흐름의 예를 설명하는 흐름도이다.
도 71은 예측 잔차 치환 조작 처리의 흐름의 예를 설명하는 흐름도이다.
도 72는 변환 타입 식별자에 대한 변환 타입의 할당의 예를 나타내는 도면이다.
도 73은 역프라이머리 변환부의 주된 구성예를 나타내는 블록도이다.
도 74는 역프라이머리 변환 처리의 흐름의 예를 설명하는 흐름도이다.
도 75는 변환 행렬의 보유에 요하는 LUT 사이즈의 예를 나타내는 도면이다.
도 76은 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 77은 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 78은 변환 행렬 도출 처리의 흐름의 예를 설명하는 흐름도이다.
도 79는 변환 타입 식별자에 대한 변환 타입의 할당의 예를 나타내는 도면이다.
도 80은 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 81은 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 82는 변환 타입 식별자에 대한 변환 타입의 할당의 예를 나타내는 도면이다.
도 83은 변환 타입 식별자에 대한 변환 타입의 할당의 예를 나타내는 도면이다.
도 84는 부분 행렬을 이용한 변환 행렬의 도출에 대하여 설명하는 도면이다.
도 85는 부분 행렬로부터 도출되는 변환 행렬의 주된 구체예의 일람을 나타내는 도면이다.
도 86은 변환 행렬 도출의 모습의 예를 나타내는 도면이다.
도 87은 변환 행렬 도출의 모습의 예를 나타내는 도면이다.
도 88은 변환 행렬 도출의 모습의 예를 나타내는 도면이다.
도 89는 변환 행렬 도출의 모습의 예를 나타내는 도면이다.
도 90은 변환 행렬 도출의 모습의 예를 나타내는 도면이다.
도 91은 변환 행렬 도출의 모습의 예를 나타내는 도면이다.
도 92는 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 93은 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 94는 변환 행렬 도출 처리의 흐름의 예를 설명하는 흐름도이다.
도 95는 변환 타입 식별자에 대한 변환 타입의 할당의 예를 나타내는 도면이다.
도 96은 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 97은 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 98은 변환 행렬의 보유에 요하는 LUT 사이즈의 예를 나타내는 도면이다.
도 99는 변환 행렬 도출부의 주된 구성예를 나타내는 블록도이다.
도 100은 변환 행렬 도출 처리의 흐름의 예를 설명하는 흐름도이다.
도 101은 변환 타입 식별자에 대한 변환 타입의 할당의 예를 나타내는 도면이다.
도 102는 컴퓨터의 주된 구성예를 나타내는 블록도이다.
이하, 본 개시를 실시하기 위한 형태(이하, 실시 형태라 함)에 대하여 설명한다. 또한 설명은 이하의 순서로 행한다.
1. 적응 프라이머리 변환 [0022]
2. 제1 실시 형태(변환 행렬로부터의 변환 행렬 도출) [0047]
2-1. 공통 콘셉트
2-2. 실시예 1-1
2-3. 실시예 1-2
2-4. 실시예 1-3
2-5. 실시예 1-4
2-6. 실시예 1-5
3. 제2 실시 형태(예측 잔차 변환) [0567]
3-1. 공통 콘셉트
3-2. 실시예 2-1
3-3. 실시예 2-2
3-4. 실시예 2-3
3-5. 실시예 2-4
4. 제3 실시 형태(부분 행렬로부터의 변환 행렬 도출) [0740]
4-1. 공통 콘셉트
5. 제4 실시 형태(실시 형태의 조합) [0846]
5-1. 공통 콘셉트
6. 부기
<1. 적응 프라이머리 변환>
<기술 내용·기술 용어를 서포트하는 문헌 등>
본 기술에서 개시되는 범위는, 실시예에 기재되어 있는 내용뿐 아니라, 출원 당시에 있어서 공지로 되어 있는 이하의 비특허문헌에 기재되어 있는 내용도 포함된다.
비특허문헌 1: (상술)
비특허문헌 3: TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "Advanced video coding for generic audiovisual services", H.264, 04/2017
비특허문헌 4: TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "High efficiency video coding", H.265, 12/2016
즉, 상술한 비특허문헌에 기재되어 있는 내용도, 서포트 요건을 판단할 때의 근거로 된다. 예를 들어 비특허문헌 4에 기재되어 있는 Quad-Tree Block Structure, 비특허문헌 1에 기재되어 있는 QTBT(Quad Tree Plus Binary Tree) Block Structure가, 실시예에 있어서 직접적인 기재가 없는 경우이더라도, 본 기술의 개시 범위 내이며 청구의 범위의 서포트 요건을 만족시키는 것으로 한다. 또한, 예를 들어 파싱(Parsing), 신택스(Syntax), 시맨틱스(Semantics) 등의 기술 용어에 대해서도 마찬가지로, 실시예에 있어서 직접적인 기재가 없는 경우이더라도, 본 기술의 개시 범위 내이며 청구의 범위의 서포트 요건을 만족시키는 것으로 한다.
또한 본 명세서에 있어서, 화상(픽처)의 부분 영역이나 처리 단위로서 설명에 이용하는 「블록」(처리부를 나타내는 블록은 아님)은, 특별히 언급하지 않는 한, 픽처 내의 임의의 부분 영역을 나타내며, 그 크기, 형상 및 특성 등은 한정되지 않는다. 예를 들어 「블록」에는, 상술한 비특허문헌 1, 비특허문헌 3 및 비특허문헌 4에 기재된 TB(Transform Block), TU(Transform Unit), PB(Prediction Block), PU(Prediction Unit), SCU(Smallest Coding Unit), CU(Coding Unit), LCU(Largest Coding Unit), CTB(Coding Tree Block), CTU(Coding Tree Unit), 변환 블록, 서브블록, 매크로 블록, 타일, 또는 슬라이스 등, 임의의 부분 영역(처리 단위)이 포함되는 것으로 한다.
또한 이와 같은 블록의 사이즈를 지정하는 데 있어서, 직접적으로 블록 사이즈를 지정할 뿐 아니라, 간접적으로 블록 사이즈를 지정하도록 해도 된다. 예를 들어 사이즈를 식별하는 식별 정보를 이용하여 블록 사이즈를 지정하도록 해도 된다. 또한, 예를 들어 기준으로 되는 블록(예를 들어 LCU나 SCU 등)의 사이즈와의 비 또는 차분에 따라 블록 사이즈를 지정하도록 해도 된다. 예를 들어 신택스 요소 등으로서 블록 사이즈를 지정하는 정보를 전송하는 경우에, 그 정보로서, 상술한 바와 같은, 간접적으로 사이즈를 지정하는 정보를 이용하도록 해도 된다. 이와 같이 함으로써, 그 정보의 정보량을 저감시킬 수 있으며 부호화 효율을 향상시킬 수 있는 경우도 있다. 또한 이 블록 사이즈의 지정에는 블록 사이즈의 범위의 지정(예를 들어 허용되는 블록 사이즈의 범위의 지정 등)도 포함한다.
<적응 프라이머리 변환>
비특허문헌 1에 기재된 테스트 모델(JEM4(Joint Exploration Test Model 4))에 있어서는, 휘도의 변환 블록에 대하여, 수평 방향의 프라이머리 변환 PThor(프라이머리 수평 변환이라고도 칭함) 및 수직 방향의 프라이머리 변환 PTver(프라이머리 수직 변환이라고도 칭함)별로, 적응적으로 복수의 상이한 1차원 직교 변환으로부터 프라이머리 변환을 선택하는 적응 프라이머리 변환(AMT(Adaptive Multiple Core Transforms))이 개시되어 있다.
구체적으로는, 휘도의 변환 블록에 대하여, 적응 프라이머리 변환을 실시할지 여부를 나타내는 적응 프라이머리 변환 플래그 apt_flag가 0(거짓)인 경우에는, 예를 들어 도 1에 나타나는 표(LUT_TrSetToTrTypIdx)와 같이, 프라이머리 변환으로서, DCT(Discrete Cosine Transform)-Ⅱ 또는 DST(Discrete Sine Transform)-Ⅶ이 모드 정보에 의하여 일의적으로 결정된다(TrSetIdx=4).
적응 프라이머리 변환 플래그 apt_flag가 1(참)인 경우이고, 처리 대상의 휘도의 변환 블록을 포함하는 커런트 CU(Coding Unit)가 인트라 CU인 경우, 도 1에 나타나는 표와 같이, 수평 방향(x 방향)과 수직 방향(y 방향)의 각각에 대한 프라이머리 변환의 후보로 되는 직교 변환을 포함하는 변환 세트 TrSet가, 도 1에 나타내는 3개의 변환 세트 TrSet(TrSetIdx=0, 1, 2) 중에서 선택된다. 또한 도 1에 나타나는 DST-Ⅶ나 DCT-Ⅷ 등은 직교 변환의 타입을 나타내고 있으며, 각각 도 2의 표에 나타낸 바와 같은 함수가 이용된다.
이 변환 세트 TrSet는, 도 3에 나타나는 모드 정보와 변환 세트의 대응표(의 인트라 예측 모드 정보)에 기초하여 일의적으로 결정된다. 예를 들어 이하의 식 (1) 및 식 (2)와 같이, 각 변환 세트 TrSetH, TrSetV에 대하여, 대응하는 변환 세트 TrSet를 지정하는 변환 세트 식별자 TrSetIdx를 설정하도록 실시된다.
Figure pct00001
여기서, TrSetH는 프라이머리 수평 변환 PThor의 변환 세트를 나타내고, TrSetV는 프라이머리 수직 변환 PTver의 변환 세트를 나타내며, 룩업 테이블 LUT_IntraModeToTrSet는 도 3의 대응표이다. 룩업 테이블 LUT_IntraModeToTrSet[][]의 1번째의 배열은 인트라 예측 모드 IntraMode를 인수로 하고, 2번째의 배열은 {H=0, V=1}을 인수로 한다.
예를 들어 인트라 예측 모드 번호 19(IntraMode==19)의 경우, 프라이머리 수평 변환 PThor의 변환 세트 TrSetH(프라이머리 수평 변환 세트라고도 칭함)로서, 도 1의 표에 나타나는 변환 세트 식별자 TrSetIdx=0의 변환 세트가 선택되고, 프라이머리 수직 변환 PTver의 변환 세트 TrSetV(프라이머리 수직 변환 세트라고도 칭함)로서, 도 1의 표에 나타나는 변환 세트 식별자 TrSetIdx=2의 변환 세트가 선택된다.
또한 적응 프라이머리 변환 플래그 apt_flag가 1(참)인 경우이고, 처리 대상의 휘도의 변환 블록을 포함하는 커런트 CU가 인터 CU인 경우, 프라이머리 수평 변환의 변환 세트 TrSetH 및 프라이머리 수직 변환의 변환 세트 TrSetV에는, 인터 CU 전용의 변환 세트 InterTrSet(TrSetIdx=3)를 할당한다.
계속해서, 수평 방향과 수직 방향의 각각에 대하여, 선택된 변환 세트 TrSet 중, 어느 직교 변환을 적용할지를, 프라이머리 수평 변환 지정 플래그 pt_hor_flag 및 프라이머리 수직 변환 지정 플래그 pt_ver_flag 중의 대응하는 쪽에 따라 선택한다.
예를 들어 이하의 식 (3) 및 식 (4)와 같이, 프라이머리{수평, 수직} 변환 세트 TrSet{H, V}와, 프라이머리{수평, 수직} 변환 지정 플래그 pt_{hor, ver}_flag를 인수로 하여, 도 1에 나타나는 변환 세트의 정의표(LUT_TrSetToTrTypeIdx)로부터 도출한다.
Figure pct00002
예를 들어 인트라 예측 모드 번호 34(IntraMode==34)(즉, 프라이머리 수평 변환 세트 TraSetH가 0)이고, 프라이머리 수평 변환 지정 플래그 pt_hor_flag가 0인 경우, 도 1의 변환 세트 정의표(LUT_TrSetToTrTypeIdx)로부터, 식 (3)의 변환 타입 식별자 TrTypeIdxH의 값은 4이고, 해당 변환 타입 식별자 TrTypeIdxH의 값에 대응하는 변환 타입 TrTypeH는, 도 2을 참조하여 DST-Ⅶ이다. 즉, 변환 세트 식별자 TrSetIdx가 0인 변환 세트의 DST-Ⅶ이 프라이머리 수평 변환 PThor의 변환 타입으로서 선택된다. 또한 프라이머리 수평 변환 지정 플래그 pt_hor_flag가 1인 경우, DCT-Ⅷ이 변환 타입으로서 선택된다. 또한 변환 타입 TrType을 선택한다는 것은, 변환 타입 식별자 TrTypeIdx를 통하여, 해당 변환 타입 식별자 TrTypeIdx로 지정되는 변환 타입을 선택하는 것을 포함한다.
또한 프라이머리 수평 변환 지정 플래그 pt_hor_flag 및 프라이머리 수직 변환 지정 플래그 pt_ver_flag로부터 프라이머리 변환 식별자 pt_idx가, 이하의 식 (5)에 기초하여 도출된다. 즉, 프라이머리 변환 식별자 pt_idx의 상위 1bit는 프라이머리 수직 변환 지정 플래그의 값에 대응하고, 하위 1bit는 프라이머리 수평 변환 지정 플래그의 값에 대응한다.
Figure pct00003
도출된 프라이머리 변환 식별자 pt_idx의 bin열에 대하여, 산술 부호화를 적용하여 비트열을 생성함으로써 부호화가 실시된다. 또한 적응 프라이머리 변환 플래그 apt_flag 및 프라이머리 변환 식별자 pt_idx는 휘도의 변환 블록에 있어서 시그널된다.
이상과 같이 비특허문헌 1에서는, 프라이머리 변환의 후보로서 DCT-Ⅱ(DCT2), DST-Ⅶ(DST7), DCT-Ⅷ(DCT8), DST-Ⅰ(DST1), DCT-Ⅴ(DCT5)의 5개의 1차원 직교 변환이 제안되어 있다. 또한 비특허문헌 2에 있어서는, 그것들에 더해 DST-Ⅳ(DST4) 및 IDT(Identity Transform: 1차원 변환 스킵)의 2개의 1차원 직교 변환이 더 추가되어, 합계 7개의 1차원 직교 변환을 프라이머리 변환의 후보로 할 것이 제안되어 있다.
즉, 비특허문헌 1의 경우, 도 4에 나타난 바와 같이 프라이머리 변환의 후보로서 1차원 직교 변환이 LUT에 저장된다. 또한 비특허문헌 2의 경우, 그것들에 더해 DST-Ⅳ(DST4) 및 IDT도 LUT에 더 저장된다(도 4 참조).
HEVC(High Efficiency Video Coding)의 경우, 변환 행렬의 보유에 필요한 LUT(Look Up Table: 룩업 테이블)의 사이즈는, 도 5에 나타나는 표처럼 된다. 즉, LUT의 사이즈는 합계 약 1.3KB로 된다. 이에 비해, 비특허문헌 1에 기재된 방법의 경우, 예를 들어 DCT2는, 2/4/8/16/32/64/128점의 사이즈별 변환 행렬을 LUT 상에 보유할 필요가 있다. 또한 그 외의 1차원 변환(DST7/DST1/DCT8)은, 4/8/16/32/64점의 사이즈별 변환 행렬을 LUT 상에 보유할 필요가 있다. 이 경우, 변환 행렬의 각 계수의 비트 정밀도를 10bit로 가정하면, 프라이머리 변환의 전체 변환 행렬의 보유에 필요한 LUT의 사이즈는, 도 6의 A에 나타난 것처럼 된다. 즉, 이 경우의 LUT의 사이즈는 합계 약 53KB로 된다. 즉, 이 경우의 LUT의 사이즈는, HEVC의 경우에 비해 약 50배로 증대된다.
마찬가지로, 비특허문헌 2에 기재된 방법의 경우, 프라이머리 변환의 전체 변환 행렬의 보유에 요하는 LUT의 사이즈는, 도 6의 B에 나타나는 표처럼 된다. 즉, 이 경우의 LUT의 사이즈는 합계 약 67KB로 된다. 즉, 이 경우의 LUT의 사이즈는, HEVC의 경우에 비해 약 60배로 증대된다.
프라이머리 변환의 하드웨어 실장을 고려한 경우, LUT의 사이즈는 기억 용량(메모리 용량)에 반영된다. 즉, 비특허문헌 1이나 비특허문헌 2에 기재된 방법의 경우, HEVC의 경우에 비해, 회로 규모(변환 행렬의 계수의 유지에 필요한 메모리 용량)이 약 50배 내지 60배 정도로 증대될 우려가 있었다.
<2. 제1 실시 형태>
<2-1. 공통 콘셉트>
<변환 행렬의 도출>
그래서, 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고, 그 도출된 제2 변환 행렬을 이용하여 화상의 예측 잔차를 직교 변환하고, 그 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하도록 한다.
예를 들어 화상 처리 장치에 있어서, 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하는 도출부와, 그 도출부에 의하여 도출된 제2 변환 행렬을 이용하여 화상의 예측 잔차를 직교 변환하는 직교 변환부와, 그 직교 변환부에 의하여 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는 부호화부를 구비하도록 한다.
이와 같이 함으로써, 변환 행렬을 다른 변환 행렬로부터 도출할 수 있으므로, 직교 변환을 위하여 준비하는 변환 행렬의 수의 증대를 억제할 수 있어서, 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻고, 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고, 그 도출된 제2 변환 행렬을 이용하여, 그 얻어진 계수 데이터를 역직교 변환하도록 한다.
예를 들어 화상 처리 장치에 있어서, 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻는 복호부와, 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하는 도출부와, 그 도출부에 의하여 도출된 제2 변환 행렬을 이용하여, 그 복호부에 의하여 얻어진 계수 데이터를 역직교 변환하는 역직교 변환부를 구비하도록 한다.
이와 같이 함으로써, 변환 행렬을 다른 변환 행렬로부터 도출할 수 있으므로, 역직교 변환을 위하여 준비하는 변환 행렬의 수의 증대를 억제할 수 있어서, 역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<변환 행렬의 특성>
변환 행렬의 주된 역할 중 하나는, DC 성분의 방향을 향하여 저차(특히 0차)의 주파수 성분의 신호를 편중시키는 것이며, 그 주파수 성분을 모으는 방식이 중요한 특성으로 된다. 주파수 성분을 어떤 식으로 편중시킬지는, 저차(특히 0차)의 기저 벡터(행 벡터)의 파형 성분이 중요해진다. 즉, 이 기저 벡터의 파형 성분이 비슷한 경향이 있는 변환 행렬끼리는, 직교 변환·역직교 변환에 대하여 비슷한 성능을 기대할 수 있다(주파수 성분을 편중시키는 방식이 비슷함).
그래서, 변환 행렬의 저차(특히 0차)의 기저 벡터(행 벡터)의 파형에 주목한다. 예를 들어 도 7의 변환 행렬(30)에 있어서, 프레임(31) 내의 저차(특히 0차)의 행 벡터의 파형(각 요소의 값 경향)을 그래프(32)와 같이 나타내는 것으로 한다.
그래프(32)는, 도면 중 좌측일수록 보다 저주파 성분의 요소의 값(의 경향)을 나타내고, 도면 중 우측일수록 보다 고주파 성분의 요소의 값(의 경향)을 나타낸다. 또한 그래프(32)는, 도면 중 상측일수록 값이 큰 것을 나타내고, 도면 중 하측일수록 값이 작은 것을 나타낸다. 또한 그래프(32)의 상하 방향의 중앙이 0을 나타내고, 중앙보다 상측이 정의 값, 중앙보다 하측이 부의 값을 나타낸다.
그래프(32)의 파형(32A)은, 변환 행렬(30)의 0차의 행 벡터의 파형을 나타내고 있다. 이 파형(32A)에 나타난 바와 같이, 이 경우, 변환 행렬(30)의 0차의 행 벡터는, 저주파 성분으로부터 고주파 성분을 향하여 값이 커지는 경향을 갖는다.
또한, 예를 들어 도 7의 변환 행렬(30)에 있어서, 프레임(33) 내의 저차(특히 0차)의 열 벡터의 파형(각 요소의 값의 경향)을 그래프(34)와 같이 나타내는 것으로 한다. 그래프(34)는, 도면 중 상측일수록 보다 저주파 성분의 요소의 값(의 경향)을 나타내고, 도면 중 하측일수록 보다 고주파 성분의 요소의 값(의 경향)을 나타낸다. 또한 그래프(34)는, 도면 중 좌측일수록 값이 큰 것을 나타내고, 도면 중 우측일수록 값이 작은 것을 나타낸다. 또한 그래프(34)의 좌우 방향의 중앙이 0을 나타내고, 중앙보다 좌측이 정의 값, 중앙보다 우측이 부의 값을 나타낸다.
그래프(34)의 파형(34A)은, 변환 행렬(30)의 0차의 열 벡터의 파형을 나타내고 있다. 이 파형(34A)에 나타난 바와 같이, 이 경우, 변환 행렬(30)의 0차의 열 벡터는, 중간의 주파 성분에 있어서 피크를 갖는다(즉, 저주파측에 있어서 보다 저주파 성분을 향하여 값이 작아지고, 고주파측에 있어서 보다 고주파 성분을 향하여 값이 작아지는 경향을 가짐).
또한 본 명세서에 있어서는, 변환 행렬(30)의 0차의 열 벡터의 파형을, 그래프(35)와 같이 전치(轉置)한 상태에서 나타내는 경우도 있다. 그래프(35)의 구조는 그래프(32)와 마찬가지이다. 파형(35A)은 파형(34A)과 등가이다.
상술한 바와 같이, 이와 같은 저차(특히 0차)의 기저 벡터(행 벡터)의 파형이 유사한 변환 행렬끼리는 비슷한 성능을 갖는다. 환언하건대, 변환 행렬은, 저차(특히 0차)의 기저 벡터(행 벡터)의 파형이 유사한 다른 변환 행렬에 의하여 대체할 수 있다. 따라서 이를 이용함으로써, LUT에 저장할 변환 행렬의 수의 증대를 억제할 수 있다.
여기서, 비특허문헌 1이나 비특허문헌 2에 기재된 변환 타입에 주목하면, 이들 변환 타입의 변환 행렬의 0차의 행 벡터나 0차의 열 벡터의 파형은 4개의 형태(타입)로 분류할 수 있다. 도 8에 그 예를 나타낸다.
첫 번째 타입은 플랫형이다. 이 플랫형은, 각 주파수 성분에 있어서 값이 대략 균일한 파형의 타입이다. 두 번째 타입은 증가형이다. 이 증가형은, 저주파 성분으로부터 고주파 성분을 향하여 값이 증대되는 경향이 있는 파형의 타입이다. 세 번째 타입은 감소형이다. 이 감소형은, 저주파 성분으로부터 고주파 성분을 향하여 값이 감소하는 경향이 있는 파형의 타입이다. 네 번째의 타입은 산형이다. 이 산형은, 도중에 피크(최댓값)를 갖는 경향이 있는 파형의 타입이다. 즉, 이 산형의 경우, 파형은, 저주파 성분측에서 보다 저주파 성분을 향하여 값이 감소함과 함께, 고주파 성분측에서 보다 고주파 성분을 향하여 값이 감소하는 경향이 있다.
또한 이들 각 타입은 파형의 대강의 형태를 나타내는 것이며, 완전히 일치할 필요는 없다. 예를 들어 증가형의 경우, 파형은, 전체로서 저주파측으로부터 고주파측을 향하여 값이 커지는 경향이 있으면 되며, 저주파측으로부터 고주파측을 향하여 엄밀히 단조 증가하고 있지 않아도 된다.
마찬가지로 감소형의 경우, 파형은, 전체로서 저주파측으로부터 고주파측을 향하여 값이 작아지는 경향이 있으면 되며, 저주파측으로부터 고주파측을 향하여 엄밀히 단조 감소하고 있지 않아도 된다.
마찬가지로 산형의 경우, 파형은, 전체로서 중앙 부근에 있어서 피크(최댓값)를 갖고, 그 양측에 있어서, 그 피크로부터 멀어지는 방향으로 값이 감소하는 경향이 있으면 되며, 피크의 양측에 있어서 피크로부터 멀어지는 방향으로 값이 단조 감소하고 있을 필요는 없다. 또한 피크는 1성분에 의하여 형성되지 않아도 되며, 예를 들어 복수의 성분으로부터 피크의 대강의 위치나 값을 특정할 수 있는 것이어도 된다. 또한 피크의 위치는 엄밀히 중앙이 아니어도 된다.
마찬가지로 플랫형의 경우, 파형은, 전체로서 값이 대략 균일하면 되며, 엄밀히 플랫일 필요는 없다. 즉, 값에 다소의 변동이 있어도 된다. 환언하건대, 다른 3타입으로 분류할 수 없는 것을 플랫형으로 해도 된다.
이상의 파형 분류는 일례이며, 상술한 예에 한정되지 않는다. 즉, 상술한 것 이외의 타입으로 파형을 분류하도록 해도 되고, 분류할 타입의 수도 임의이며, 상술한 4종에 한정되지 않는다. 또한 이 분류는 본 기술의 설명의 편의상 행하는 것이며, 실제의 처리로서 행하는 것은 아니다.
이 분류에 따르면, 도 8에 나타난 바와 같이, DCT2의 변환 행렬의 0차 행 벡터의 파형은 플랫형으로 분류되고, 0차 열 벡터의 파형은 감소형으로 분류된다. 또한 DST7의 변환 행렬의 0차 행 벡터의 파형은 증가형으로 분류되고, 0차 열 벡터의 파형은 산형으로 분류된다. 또한 DCT8의 변환 행렬의 0차 행 벡터의 파형은 감소형으로 분류되고, 0차 열 벡터의 파형은 감소형으로 분류된다. 또한 DCT5의 변환 행렬의 0차 행 벡터의 파형은 플랫형으로 분류되고, 0차 열 벡터의 파형은 플랫형으로 분류된다. 또한 DST4의 변환 행렬의 0차 행 벡터의 파형은 증가형으로 분류되고, 0차 열 벡터의 파형은 증가형으로 분류된다.
상술한 바와 같이 변환 행렬은, 0차의 행 벡터의 파형이 유사한 다른 변환 행렬에 의하여 대체할 수 있다. 즉, 0차의 행 벡터의 파형이 동형인 변환 타입은, 서로 변환 행렬을 대체할 수 있다.
즉, 도출부가, 상술한 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출할 때, 최저차 행 벡터가 원하는 타입의 파형을 갖는 제2 변환 행렬을 도출하도록 해도 된다. 이와 같이 함으로써, 직교 변환·역직교 변환을 위하여 준비하는 변환 행렬의 수의 증대를 억제할 수 있어서, 직교 변환·역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
예를 들어 도출부가 제1 변환 행렬을 이용하여, 최저차 행 벡터가 플랫형의 파형을 갖는 제2 변환 행렬을 도출하도록 해도 된다. 이와 같이 함으로써, 도출한 제2 변환 행렬에 의하여, 최저차 행 벡터의 파형이 플랫형인 변환 행렬을 대체할 수 있다. 또한, 예를 들어 도출부가 제1 변환 행렬을 이용하여, 최저차 행 벡터가 증가형의 파형을 갖는 제2 변환 행렬을 도출하도록 해도 된다. 이와 같이 함으로써, 도출한 제2 변환 행렬에 의하여, 최저차 행 벡터의 파형이 증가형인 변환 행렬을 대체할 수 있다.
또한, 예를 들어 도출부가 제1 변환 행렬을 이용하여, 최저차 행 벡터가 감소형의 파형을 갖는 제2 변환 행렬을 도출하도록 해도 된다. 이와 같이 함으로써, 도출한 제2 변환 행렬에 의하여, 최저차 행 벡터의 파형이 감소형인 변환 행렬을 대체할 수 있다. 또한, 예를 들어 도출부가 제1 변환 행렬을 이용하여, 최저차 행 벡터가 산형의 파형을 갖는 제2 변환 행렬을 도출하도록 해도 된다. 이와 같이 함으로써, 도출한 제2 변환 행렬에 의하여, 최저차 행 벡터의 파형이 산형인 변환 행렬을 대체할 수 있다.
예를 들어 도 8에 있어서, DST7, DST4, DST8, DST3은 모두, 0차의 행 벡터의 파형이 증가형이므로 서로 변환 행렬을 대체할 수 있다. 즉, 서로 다른 변환 타입의 변환 행렬이더라도 대체할 수 있다.
즉, 도출부가, 상술한 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출할 때, 제1 변환 행렬과는 다른 변환 타입의 제2 변환 행렬을 도출하도록 해도 된다. 이와 같이 함으로써, 직교 변환·역직교 변환을 위하여 준비할 변환 타입의 수의 증대를 억제할 수 있어서, 직교 변환·역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 그 도출 시, 도출부가, 제1 변환 행렬과 행수 및 열수가 동일한 제2 변환 행렬을 도출하도록 해도 된다. 행수 및 열수를 변화시키는 경우, 파형의 타입이 의도치 않게 변화할 가능성이 있다. 따라서 행수 및 열수를 제1 변환 행렬과 동일하게 함으로써, 파형의 타입의 의도치 않은 변화가 생길 가능성을 억제할 수 있어서, 제2 변환 행렬의 도출을 보다 용이하게 행할 수 있다.
또한 행렬은, 요소에 대한 조작을 용이하게 행할 수 있다. 행렬의 요소에 대한 조작으로는, 예를 들어 요소의 재배열 등이 있다. 보다 구체적으로는, 예를 들어 행렬은, 그 요소군의 배열순을 소정의 방향으로 플립(반전)하거나, 요소군을 전치하여 행과 열을 뒤바꾸거나 할 수 있다. 또한 전치는, 행렬의 좌상단과 우하단을 잇는 대각선을 축으로 하는 플립(반전)과 등가이다. 즉, 전치는 플립의 일부라고도 할 수 있다. 또한 각 요소의 부호를 반전(정으로부터 부, 부로부터 정)하는 것도 용이하다.
이와 같은 조작을 이용함으로써, 0차의 행 벡터의 파형(의 타입)을 의도적으로 변화시킬 수 있다. 예를 들어 0차의 행 벡터의 파형이 증가형인 행렬을 행 방향으로 플립하면, 그 0차의 행 벡터의 파형은 감소형으로 변화한다. 반대로 0차의 행 벡터의 파형이 감소형인 행렬을 행 방향으로 플립하면, 그 0차의 행 벡터의 파형은 증가형으로 변화한다.
즉, 도 8에 나타난 바와 같이, 0차의 행 벡터의 파형이 증가형인 변환 타입(예를 들어 DST7, DST4, DST8, DST3)의 변환 행렬을 행 방향으로 플립함으로써, 0차의 행 벡터의 파형이 감소형인 변환 타입(예를 들어 DCT7, DCT4, DCT8, DCT3)의 변환 행렬을 대체 가능한 변환 행렬을 얻을 수 있다.
또한, 예를 들어 행렬을 전치하면 0차의 행 벡터의 파형 타입과 0차의 열 벡터의 파형 타입이 뒤바뀐다. 즉, 전치에 의하여, 행렬의 0차의 행 벡터의 파형이, 전치 전의 행렬의 0차의 열 벡터의 파형과 동일한 타입으로 된다.
예를 들어 도 9에 나타난 바와 같이, 0차의 열 벡터의 파형이 감소형인 DCT2(DCT6)의 변환 행렬을 전치함으로써, 0차의 행 벡터의 파형이 감소형인 변환 타입(DCT3, DCT7, DCT4, DCT8)의 변환 행렬을 대체 가능한 변환 행렬을 얻을 수 있다. 또한, 예를 들어 도 9에 나타난 바와 같이, 0차의 열 벡터의 파형이 산형인 DST7(DST3)의 변환 행렬을 전치함으로써, 0차의 행 벡터의 파형이 산형의 변환 타입(DST2, DST6, DST1, DST5)의 변환 행렬을 대체 가능한 변환 행렬을 얻을 수 있다.
즉, 도출부는, 이와 같은 제1 변환 행렬의 요소에 대한 조작에 의하여 제2 변환 행렬을 도출하도록 해도 된다. 그리고 이 요소에 대한 조작에는, 상술한 바와 같이 요소의 재배열(배열순의 변경)을 포함하도록 해도 된다. 이와 같이 함으로써 의도적으로 파형의 타입을 변경할 수 있으므로, 제1 변환 행렬로부터 보다 다양한 제2 변환 행렬을 도출할 수 있다. 따라서 직교 변환·역직교 변환을 위하여 준비할 변환 타입의 수의 증대를 억제할 수 있어서, 직교 변환·역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 물론 도출부가 이와 같은 조작을 복수 회 행하여 제2 변환 행렬을 도출하도록 해도 된다. 예를 들어 플립이나 전치 등의 조작을 임의로 조합할 수 있다. 또한 동일한 조작을 복수 회 반복해도 된다. 이와 같이 함으로써 제1 변환 행렬로부터 더욱 다양한 제2 변환 행렬을 도출할 수 있다.
또한 상술한 바와 같이, 직교 변환·역직교 변환에 이용되는 변환 행렬은 LUT에 저장된다. 따라서 도출부는, 이 룩업 테이블(LUT)에 저장되는 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하도록 해도 된다. 이와 같이 함으로써 LUT의 사이즈의 증대를 억제할 수 있다. 따라서 직교 변환·역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<도출예>
이상과 같은 조작을 수반하는 변환 행렬의 도출예의 일람을 도 10에 나타낸다. 또한 도출에 이용하는 변환 행렬(제1 변환 행렬)을 베이스 변환 행렬 Tbase라고도 칭한다. 베이스 변환 행렬의 변환 타입을 베이스 변환 타입 또는 제1 변환 타입이라고도 칭한다. 또한 도출할 변환 행렬(제2 변환 행렬)의 변환 타입을 제2 변환 타입이라고도 칭한다.
도 10에 나타나는 표에 있어서, 최상단의 항목명의 행을 제외하고 위로부터 1단째의 예의 도출은, 제1 변환 타입의 최저차 행 벡터의 파형과, 대체할 변환 행렬의 변환 타입의 최저차 행 벡터의 파형의 유사성에 주목한 것이다.
이 경우, 도출부는 제1 변환 행렬을 플립하여 제2 변환 행렬을 도출한다. 보다 구체적으로는, 도출부는 DST7의 변환 행렬을 베이스 변환 행렬 Tbase로 하고, 그것을 행 방향으로 플립하여 FlipDST7의 변환 행렬을 도출한다. DST7의 변환 행렬의 0차의 행 벡터의 파형은 증가형이므로, 도출된 FlipDST7의 변환 행렬의 0차의 행 벡터의 파형은 감소형이다. 따라서 이 FlipDST7의 변환 행렬에 의하여, 0차의 행 벡터의 파형이 감소형인 DCT8의 변환 행렬을 대체할 수 있다.
이와 같은 도출을 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DCT8의 변환 행렬을 준비할 필요가 없게 된다. 즉, 고유 변환 타입을 삭감할 수 있다. 즉, LUT 사이즈의 증대를 억제할 수 있다. 또한 도출된 제2 변환 타입(FlipDST7)의 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DCT8의 변환 행렬을 직교 변환·역직교 변환에 이용하는 경우와 동일한 정도의 부호화 효율이 얻어진다. 또한 이 경우, 1회의 조작으로 제2 변환 행렬(감소형의 대체 변환 행렬)을 도출할 수 있다.
또한 그 1단 아래의(위로부터 2단째의) 예의 도출은, 제1 변환 타입의 최저차 열 벡터의 파형과, 대체할 변환 행렬의 변환 타입의 최저차 행 벡터의 파형의 유사성에 주목한 것이다.
이 경우, 도출부는 제1 변환 행렬을 전치하여 제2 변환 행렬을 도출한다. 보다 구체적으로는, 도출부는 DST7의 변환 행렬을 베이스 변환 행렬 Tbase로 하고, 그것을 전치하여 TrDST7의 변환 행렬을 도출한다. DST7의 변환 행렬의 0차의 열 벡터의 파형은 산형이므로, 도출된 TrDST7의 변환 행렬의 0차의 행 벡터의 파형은 산형이다. 따라서 이 TrDST7의 변환 행렬에 의하여, 0차의 행 벡터의 파형이 산형인 DST1의 변환 행렬을 대체할 수 있다.
이와 같은 도출을 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DST1의 변환 행렬을 준비할 필요가 없게 된다. 즉, 고유 변환 타입을 삭감할 수 있다. 즉, LUT 사이즈의 증대를 억제할 수 있다. 또한 도출된 제2 변환 타입(TrDST7)의 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DST1의 변환 행렬을 직교 변환·역직교 변환에 이용하는 경우와 동일한 정도의 부호화 효율이 얻어진다. 또한 이 경우, 1회의 조작으로 제2 변환 행렬(산형의 대체 변환 행렬)을 도출할 수 있다.
또한 그 1단 아래의(위로부터 3단째의) 예의 도출은, 쌍으로 되는 DCT/DST 사이의 특성에 주목한 것이다. 보다 구체적으로는, 쌍으로 되는 DCT/DST 사이(예를 들어 DST7과 DCT8)에서는 짝수번째의 행 벡터가 축대칭이고 홀수번째의 행 벡터가 점대칭인 점에 주목하고 있다.
이 경우, 도출부는 제1 변환 행렬을 플립하고, 플립 후의 제1 변환 행렬 중, 홀수번째의 행 벡터의 부호를 반전하여 제2 변환 행렬을 도출한다. 보다 구체적으로는, 도출부는 DST7의 변환 행렬을 베이스 변환 행렬 Tbase로 하고, 그것을 행 방향으로 플립하고, 또한 홀수차의 행 벡터의 부호를 반전하여 DCT8의 변환 행렬을 도출한다. 또한 행 벡터의 부호 반전은, 행 벡터의 각 요소의 최상위 비트를 변환하면 된다. 당연히, 도출된 DCT8의 변환 행렬에 의하여 0차의 행 벡터의 파형이 감소형인 DST8의 변환 행렬을 대체할 수 있다.
이와 같은 도출을 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DCT8의 변환 행렬을 준비할 필요가 없게 된다. 즉, 고유 변환 타입을 삭감할 수 있다. 즉, LUT 사이즈의 증대를 억제할 수 있다. 또한 당연히, 도출된 제2 변환 타입(DCT8)의 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DCT8의 변환 행렬을 직교 변환·역직교 변환에 이용하는 경우와 동일한 부호화 효율이 얻어진다. 또한 이 경우, 2회의 조작으로 제2 변환 행렬(쌍으로 될 대체 변환 행렬)을 도출할 수 있다.
또한 그 1단 아래의(위로부터 4단째의) 예의 도출은, 위로부터 1단째의 경우와 마찬가지로, 제1 변환 타입의 최저차 행 벡터의 파형과, 대체할 변환 행렬의 변환 타입의 최저차 행 벡터의 파형의 유사성에 주목한 것이다.
이 경우, 도출부는 제1 변환 행렬을 플립하여 제2 변환 행렬을 도출한다. 보다 구체적으로는, 도출부는 DCT8의 변환 행렬을 베이스 변환 행렬 Tbase로 하고, 그것을 행 방향으로 플립하여 FlipDCT8의 변환 행렬을 도출한다. DCT8의 변환 행렬의 0차의 행 벡터의 파형은 감소형이므로, 도출된 FlipDCT8의 변환 행렬의 0차의 행 벡터의 파형은 증가형이다. 따라서 이 FlipDCT8의 변환 행렬에 의하여 0차의 행 벡터의 파형이 증가형의 DST7의 변환 행렬을 대체할 수 있다.
이와 같은 도출을 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DST7의 변환 행렬을 준비할 필요가 없게 된다. 즉, 고유 변환 타입을 삭감할 수 있다. 즉, LUT 사이즈의 증대를 억제할 수 있다. 또한 도출된 제2 변환 타입(FlipDCT8)의 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DST7의 변환 행렬을 직교 변환·역직교 변환에 이용하는 경우와 동일한 정도의 부호화 효율이 얻어진다. 또한 이 경우, 1회의 조작으로 제2 변환 행렬(감소형의 대체 변환 행렬)을 도출할 수 있다.
또한 그 1단 아래의(위로부터 5단째의) 예의 도출은, 제1 변환 타입의 최고차 열 벡터의 파형과, 대체할 변환 행렬의 변환 타입의 최저차 행 벡터의 파형의 유사성에 주목한 것이다.
이 경우, 도출부는 제1 변환 행렬을 플립하고, 플립 후의 제1 변환 행렬을 전치하여 제2 변환 행렬을 도출한다. 보다 구체적으로는, 도출부는 DCT8의 변환 행렬을 베이스 변환 행렬 Tbase로 하고, 그것을 행 방향으로 플립하고 또한 전치하여 TrFlipDCT8의 변환 행렬을 도출한다. DCT8의 변환 행렬의 최고차의 열 벡터의 파형은 산형이므로, 도출된 TrFlipDCT8의 변환 행렬의 0차의 행 벡터의 파형은 산형이다. 따라서 이 TrFlipDCT8의 변환 행렬에 의하여, 0차의 행 벡터의 파형이 산형인 DST1의 변환 행렬을 대체할 수 있다.
이와 같은 도출을 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DST1의 변환 행렬을 준비할 필요가 없게 된다. 즉, 고유 변환 타입을 삭감할 수 있다. 즉, LUT 사이즈의 증대를 억제할 수 있다. 또한 도출된 제2 변환 타입(TrFlipDCT8)의 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DST1의 변환 행렬을 직교 변환·역직교 변환에 이용하는 경우와 동일한 정도의 부호화 효율이 얻어진다. 또한 이 경우, 2회의 조작으로 제2 변환 행렬(산형의 대체 변환 행렬)을 도출할 수 있다.
또한 그 1단 아래의(위로부터 6단째의) 예의 도출은, 위로부터 3단째의 경우와 마찬가지로, 쌍으로 되는 DCT/DST 사이의 특성에 주목한 것이다. 보다 구체적으로는, 쌍으로 되는 DCT/DST 사이(예를 들어 DCT8과 DST7)에서는 짝수번째의 행 벡터가 축대칭이고 홀수번째의 행 벡터가 점대칭인 점에 주목하고 있다.
이 경우, 도출부는 제1 변환 행렬을 플립하고, 플립 후의 제1 변환 행렬 중, 홀수번째의 행 벡터의 부호를 반전하여 제2 변환 행렬을 도출한다. 보다 구체적으로는, 도출부는 DCT8의 변환 행렬을 베이스 변환 행렬 Tbase로 하고, 그것을 행 방향으로 플립하고, 또한 홀수차의 행 벡터의 부호를 반전하여 DST7의 변환 행렬을 도출한다. 당연히, 도출된 DST7의 변환 행렬에 의하여 0차의 행 벡터의 파형이 증가형의 DST7의 변환 행렬을 대체할 수 있다.
이와 같은 도출을 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DST7의 변환 행렬을 준비할 필요가 없게 된다. 즉, 고유 변환 타입을 삭감할 수 있다. 즉, LUT 사이즈의 증대를 억제할 수 있다. 또한 당연히, 도출된 제2 변환 타입(DST7)의 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DST7의 변환 행렬을 직교 변환·역직교 변환에 이용하는 경우와 동일한 부호화 효율이 얻어진다. 또한 이 경우, 2회의 조작으로 제2 변환 행렬(쌍으로 될 대체 변환 행렬)을 도출할 수 있다.
또한 그 1단 아래의(위로부터 7단째의) 예의 도출은, 제1 변환 타입의 최저차 열 벡터의 파형과, 대체할 변환 행렬의 변환 타입의 최저차 행 벡터의 파형의 유사성에 주목한 것이다.
이 경우, 도출부는 제1 변환 행렬을 전치하여 제2 변환 행렬을 도출한다. 보다 구체적으로는, 도출부는 DCT2의 변환 행렬을 베이스 변환 행렬 Tbase로 하고, 그것을 전치하여 DCT3의 변환 행렬을 도출한다. DCT2의 변환 행렬의 0차의 열 벡터의 파형은 감소형이므로, 도출된 DCT3의 변환 행렬의 0차의 행 벡터의 파형은 감소형이다. 따라서 이 DCT3의 변환 행렬에 의하여, 0차의 행 벡터의 파형이 감소형인 DCT8의 변환 행렬을 대체할 수 있다.
이와 같은 도출을 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DCT8의 변환 행렬을 준비할 필요가 없게 된다. 즉, 고유 변환 타입을 삭감할 수 있다. 즉, LUT 사이즈의 증대를 억제할 수 있다. 또한 도출된 제2 변환 타입(DCT3)의 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DCT8의 변환 행렬을 직교 변환·역직교 변환에 이용하는 경우와 동일한 정도의 부호화 효율이 얻어진다. 또한 이 경우, 1회의 조작으로 제2 변환 행렬(감소형의 대체 변환 행렬)을 도출할 수 있다.
또한 그 1단 아래의(위로부터 8단째의) 예의 도출은, 제1 변환 타입의 최고차 열 벡터의 파형과, 대체할 변환 행렬의 변환 타입의 최저차 행 벡터의 파형의 유사성에 주목한 것이다.
이 경우, 도출부는 제1 변환 행렬을 전치하고, 전치 후의 제1 변환 행렬을 플립하여 제2 변환 행렬을 도출한다. 보다 구체적으로는, 도출부는 DCT2의 변환 행렬을 베이스 변환 행렬 Tbase로 하고, 그것을 전치하고 또한 행 방향으로 플립하여 FlipDCT3의 변환 행렬을 도출한다. DCT2의 변환 행렬의 최고차의 열 벡터의 파형은 증가형이므로, 도출된 FlipDCT3의 변환 행렬의 0차의 행 벡터의 파형은 증가형이다. 따라서 이 FlipDCT3의 변환 행렬에 의하여, 0차의 행 벡터의 파형이 증가형의 DST7의 변환 행렬을 대체할 수 있다.
이와 같은 도출을 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DST7의 변환 행렬을 준비할 필요가 없게 된다. 즉, 고유 변환 타입을 삭감할 수 있다. 즉, LUT 사이즈의 증대를 억제할 수 있다. 또한 도출된 제2 변환 타입(FlipDCT3)의 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DST7의 변환 행렬을 직교 변환·역직교 변환에 이용하는 경우와 동일한 정도의 부호화 효율이 얻어진다. 또한 이 경우, 2회의 조작으로 제2 변환 행렬(증가형의 대체 변환 행렬)을 도출할 수 있다.
또한 상술한 각 도출예는 각각 단독으로 실시하도록 해도 되고, 복수의 도출예를 조합하여 실시하도록 해도 된다.
<화상 부호화 장치>
다음으로, 이상과 같은 변환 행렬의 도출을 행하는 구성에 대하여 설명한다. 도 11은, 본 기술을 적용한 화상 처리 장치의 일 양태인 화상 부호화 장치의 구성의 일례를 나타내는 블록도이다. 도 11에 나타나는 화상 부호화 장치(100)는, 동화상의 화상 데이터를 부호화하는 장치이다. 예를 들어 화상 부호화 장치(100)는, 비특허문헌 1, 비특허문헌 3, 또는 비특허문헌 4에 기재되어 있는 기술을 실장하며, 그것들 문헌 중 어느 것에 기재된 규격에 준거한 방법으로 동화상의 화상 데이터를 부호화한다.
또한 도 11에 있어서는, 처리부나 데이터의 흐름 등의 주된 것을 나타내고 있으며, 도 11에 나타나는 것이 전부는 아니다. 즉, 화상 부호화 장치(100)에 있어서, 도 11에 있어서 블록으로서 나타나 있지 않은 처리부가 존재하거나, 도 11에 있어서 화살표 등으로서 나타나 있지 않은 처리나 데이터의 흐름이 존재하거나 해도 된다. 이는, 화상 부호화 장치(100) 내의 처리부 등을 설명하는 다른 도면에 있어서도 마찬가지이다.
도 11에 나타난 바와 같이, 화상 부호화 장치(100)는 제어부(101), 재배열 버퍼(111), 연산부(112), 직교 변환부(113), 양자화부(114), 부호화부(115), 축적 버퍼(116), 역양자화부(117), 역직교 변환부(118), 연산부(119), 인루프 필터부(120), 프레임 메모리(121), 예측부(122) 및 레이트 제어부(123)를 갖는다.
<제어부>
제어부(101)는, 외부, 또는 미리 지정된 처리 단위의 블록 사이즈에 기초하여, 재배열 버퍼(111)에 의하여 보유되어 있는 동화상 데이터를 처리 단위의 블록(CU, PU, 변환 블록 등)으로 분할한다. 또한 제어부(101)는, 각 블록에 공급할 부호화 파라미터(헤더 정보 Hinfo, 예측 모드 정보 Pinfo, 변환 정보 Tinfo, 필터 정보 Finfo 등)를, 예를 들어 RDO(Rate-Distortion Optimization)에 기초하여 결정한다.
이들 부호화 파라미터의 상세에 대해서는 후술한다. 제어부(101)는, 이상과 같은 부호화 파라미터를 결정하면 그것을 각 블록에 공급한다. 구체적으로는 이하와 같다.
헤더 정보 Hinfo는 각 블록에 공급된다.
예측 모드 정보 Pinfo는 부호화부(115)와 예측부(122)에 공급된다.
변환 정보 Tinfo는 부호화부(115), 직교 변환부(113), 양자화부(114), 역양자화부(117) 및 역직교 변환부(118)에 공급된다.
필터 정보 Finfo는 인루프 필터부(120)에 공급된다.
<재배열 버퍼>
화상 부호화 장치(100)에는 동화상 데이터의 각 필드(입력 화상)가 그 재생순(표시순)으로 입력된다. 재배열 버퍼(111)는 각 입력 화상을 그 재생순(표시순)으로 취득하여 보유(기억)한다. 재배열 버퍼(111)는 제어부(101)의 제어에 기초하여 그 입력 화상을 부호화순(복호순)으로 재배열하거나 처리 단위의 블록으로 분할하거나 한다. 재배열 버퍼(111)는 처리 후의 각 입력 화상을 연산부(112)에 공급한다. 또한 재배열 버퍼(111)는 그 각 입력 화상(원화상)을 예측부(122)나 인루프 필터부(120)에도 공급한다.
<연산부>
연산부(112), 처리 단위의 블록에 대응하는 화상 I, 및 예측부(122)로부터 공급되는 예측 화상 P를 입력으로 하고, 화상 I 내지 예측 화상 P를, 이하의 식 (6)에 나타난 바와 같이 감산하여 예측 잔차 D를 도출하고, 그것을 직교 변환부(113)에 공급한다.
Figure pct00004
<직교 변환부>
직교 변환부(113)는, 연산부(112)로부터 공급되는 예측 잔차 D와, 제어부(101)로부터 공급되는 변환 정보 Tinfo를 입력으로 하고, 그 변환 정보 Tinfo에 기초하여 예측 잔차 D에 대하여 직교 변환을 행하여 변환 계수 Coeff를 도출한다. 직교 변환부(113)는, 그 얻어진 변환 계수 Coeff를 양자화부(114)에 공급한다.
<양자화부>
양자화부(114)는, 직교 변환부(113)로부터 공급되는 변환 계수 Coeff와, 제어부(101)로부터 공급되는 변환 정보 Tinfo를 입력으로 하고, 그 변환 정보 Tinfo에 기초하여 변환 계수 Coeff를 스케일링(양자화)한다. 또한 이 양자화의 레이트는 레이트 제어부(123)에 의하여 제어된다. 양자화부(114)는, 이와 같은 양자화에 의하여 얻어진 양자화 후의 변환 계수, 즉, 양자화 변환 계수 레벨 level을 부호화부(115) 및 역양자화부(117)에 공급한다.
<부호화부>
부호화부(115)는, 양자화부(114)로부터 공급된 양자화 변환 계수 레벨 level과, 제어부(101)로부터 공급되는 각종 부호화 파라미터(헤더 정보 Hinfo, 예측 모드 정보 Pinfo, 변환 정보 Tinfo, 필터 정보 Finfo 등)와, 인루프 필터부(120)로부터 공급되는 필터 계수 등의 필터에 관한 정보와, 예측부(122)로부터 공급되는 최적의 예측 모드에 관한 정보를 입력으로 한다. 부호화부(115)는 양자화 변환 계수 레벨 level을 가변 길이 부호화(예를 들어 산술 부호화)하여 비트열(부호화 데이터)을 생성한다.
또한 부호화부(115)는 그 양자화 변환 계수 레벨 level로부터 잔차 정보 Rinfo를 도출하고, 잔차 정보 Rinfo를 부호화하여 비트열을 생성한다.
또한, 부호화부(115)는 인루프 필터부(120)로부터 공급되는 필터에 관한 정보를 필터 정보 Finfo에 포함시키고, 예측부(122)로부터 공급되는 최적의 예측 모드에 관한 정보를 예측 모드 정보 Pinfo에 포함시킨다. 그리고 부호화부(115)는 상술한 각종 부호화 파라미터(헤더 정보 Hinfo, 예측 모드 정보 Pinfo, 변환 정보 Tinfo, 필터 정보 Finfo 등)를 부호화하여 비트열을 생성한다.
또한 부호화부(115)는, 이상과 같이 생성된 각종 정보의 비트열을 다중화하여 부호화 데이터를 생성한다. 부호화부(115)는 그 부호화 데이터를 축적 버퍼(116)에 공급한다.
<축적 버퍼>
축적 버퍼(116)는, 부호화부(115)에 있어서 얻어진 부호화 데이터를 일시적으로 보유한다. 축적 버퍼(116)는 소정의 타이밍에 있어서, 보유하고 있는 부호화 데이터를, 예를 들어 비트 스트림 등으로서 화상 부호화 장치(100)의 외부에 출력한다. 예를 들어 이 부호화 데이터는 임의의 기록 매체, 임의의 전송 매체, 임의의 정보 처리 장치 등을 통하여 복호측에 전송된다. 즉, 축적 버퍼(116)는, 부호화 데이터(비트 스트림)를 전송하는 전송부이기도 하다.
<역양자화부>
역양자화부(117)는 역양자화에 관한 처리를 행한다. 예를 들어 역양자화부(117)는, 양자화부(114)로부터 공급되는 양자화 변환 계수 레벨 level과, 제어부(101)로부터 공급되는 변환 정보 Tinfo를 입력으로 하고, 그 변환 정보 Tinfo에 기초하여 양자화 변환 계수 레벨 level의 값을 스케일링(역양자화)한다. 또한 이 역양자화는, 양자화부(114)에 있어서 행해지는 양자화의 역처리이다. 역양자화부(117)는, 이와 같은 역양자화에 의하여 얻어진 변환 계수 Coeff_IQ를 역직교 변환부(118)에 공급한다.
<역직교 변환부>
역직교 변환부(118)는 역직교 변환에 관한 처리를 행한다. 예를 들어 역직교 변환부(118)는, 역양자화부(117)로부터 공급되는 변환 계수 Coeff_IQ와, 제어부(101)로부터 공급되는 변환 정보 Tinfo를 입력으로 하고, 그 변환 정보 Tinfo에 기초하여 변환 계수 Coeff_IQ에 대하여 역직교 변환을 행하여 예측 잔차 D'을 도출한다. 또한 이 역직교 변환은, 직교 변환부(113)에 있어서 행해지는 직교 변환의 역처리이다. 역직교 변환부(118)는, 이와 같은 역직교 변환에 의하여 얻어진 예측 잔차 D'을 연산부(119)에 공급한다. 또한 역직교 변환부(118)는 복호측의 역직교 변환부(후술함)와 마찬가지이므로, 역직교 변환부(118)에 대해서는, 복호측에 대하여 행하는 설명(후술함)을 적용할 수 있다.
<연산부>
연산부(119)는, 역직교 변환부(118)로부터 공급되는 예측 잔차 D'과, 예측부(122)로부터 공급되는 예측 화상 P를 입력으로 한다. 연산부(119)는, 그 예측 잔차 D'과, 그 예측 잔차 D'에 대응하는 예측 화상 P를 가산하여, 국소 복호 화상 Rlocal을 도출한다. 연산부(119)는, 도출한 국소 복호 화상 Rlocal을 인루프 필터부(120) 및 프레임 메모리(121)에 공급한다.
<인루프 필터부>
인루프 필터부(120)는 인루프 필터 처리에 관한 처리를 행한다. 예를 들어 인루프 필터부(120)는, 연산부(119)로부터 공급되는 국소 복호 화상 Rlocal과, 제어부(101)로부터 공급되는 필터 정보 Finfo와, 재배열 버퍼(111)로부터 공급되는 입력 화상(원화상)을 입력으로 한다. 또한 인루프 필터부(120)에 입력되는 정보는 임의이며, 이들 정보 이외의 정보가 입력되어도 된다. 예를 들어 필요에 따라 예측 모드, 움직임 정보, 부호량 목표값, 양자화 파라미터 QP, 픽처 타입, 블록(CU, CTU 등)의 정보 등이 인루프 필터부(120)에 입력되도록 해도 된다.
인루프 필터부(120)는 그 필터 정보 Finfo에 기초하여 국소 복호 화상 Rlocal에 대하여 적당히 필터 처리를 행한다. 인루프 필터부(120)는 필요에 따라, 입력 화상(원화상)이나 그 외의 입력 정보도 그 필터 처리에 이용한다.
예를 들어 인루프 필터부(120)는, 비특허문헌 1에 기재된 바와 같이 양방향 필터, 디블로킹 필터(DBF(DeBlocking Filter)), 적응 오프셋 필터(SAO(Sample Adaptive Offset)) 및 적응 루프 필터(ALF(Adaptive Loop Filter))의 4개의 인루프 필터를 이 순으로 적용한다. 또한 어느 필터를 적용할지, 어느 순으로 적용할지는 임의이며, 적당히 선택 가능하다.
물론 인루프 필터부(120)가 행하는 필터 처리는 임의이며, 상술한 예에 한정되지 않는다. 예를 들어 인루프 필터부(120)가 위너 필터 등을 적용하도록 해도 된다.
인루프 필터부(120)는, 필터 처리된 국소 복호 화상 Rlocal을 프레임 메모리(121)에 공급한다. 또한, 예를 들어 필터 계수 등의 필터에 관한 정보를 복호측에 전송하는 경우, 인루프 필터부(120)는, 그 필터에 관한 정보를 부호화부(115)에 공급한다.
<프레임 메모리>
프레임 메모리(121)는, 화상에 관한 데이터의 기억에 관한 처리를 행한다. 예를 들어 프레임 메모리(121)는, 연산부(119)로부터 공급되는 국소 복호 화상 Rlocal이나, 인루프 필터부(120)로부터 공급되는, 필터 처리된 국소 복호 화상 Rlocal을 입력으로 하고, 그것을 보유(기억)한다. 또한 프레임 메모리(121)는 그 국소 복호 화상 Rlocal을 이용하여 픽처 단위별 복호 화상 R을 재구축하여 보유한다(프레임 메모리(121) 내의 버퍼에 저장함). 프레임 메모리(121)는 예측부(122)의 요구에 따라 그 복호 화상 R(또는 그 일부)을 예측부(122)에 공급한다.
<예측부>
예측부(122)는 예측 화상의 생성에 관한 처리를 행한다. 예를 들어 예측부(122)는, 제어부(101)로부터 공급되는 예측 모드 정보 Pinfo와, 재배열 버퍼(111)로부터 공급되는 입력 화상(원화상)과, 프레임 메모리(121)로부터 판독하는 복호 화상 R(또는 그 일부)을 입력으로 한다. 예측부(122)는 예측 모드 정보 Pinfo나 입력 화상(원화상)을 이용하여 인터 예측이나 인트라 예측 등의 예측 처리를 행하고, 복호 화상 R을 참조 화상으로 하여 참조하여 예측을 행하고, 그 예측 결과에 기초하여 움직임 보상 처리를 행하여 예측 화상 P를 생성한다. 예측부(122)는, 생성한 예측 화상 P를 연산부(112) 및 연산부(119)에 공급한다. 또한 예측부(122)는, 이상의 처리에 의하여 선택한 예측 모드, 즉, 최적의 예측 모드에 관한 정보를 필요에 따라 부호화부(115)에 공급한다.
<레이트 제어부>
레이트 제어부(123)는 레이트 제어에 관한 처리를 행한다. 예를 들어 레이트 제어부(123)는, 축적 버퍼(116)에 축적된 부호화 데이터의 부호량에 기초하여, 오버플로우 혹은 언더플로우가 발생하지 않도록 양자화부(114)의 양자화 동작의 레이트를 제어한다.
이상과 같은 구성의 화상 부호화 장치(100)에 있어서, 직교 변환부(113)는 도출부 및 직교 변환부로서, 상술한 본 기술을 적용한 처리를 행한다. 또한 부호화부(115)는 부호화부로서, 상술한 본 기술을 적용한 처리를 행한다. 또한 역직교 변환부(118)는 역직교 변환부 및 도출부로서, 상술한 본 기술을 적용한 처리를 행한다. 따라서 화상 부호화 장치(100)는, 직교 변환·역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<직교 변환부의 상세>
도 12는, 도 11의 직교 변환부(113)의 주된 구성예를 나타내는 블록도이다. 도 12에 나타난 바와 같이, 직교 변환부(113)는 스위치(151), 프라이머리 변환부(152) 및 세컨더리 변환부(153)를 갖는다.
스위치(151)는, 예측 잔차 D 및 컴포넌트 식별자 compID에 대응하는 변환 스킵 플래그 ts_flag[compID]를 입력으로 하고, 변환 스킵 플래그 ts_flag[compID]의 값이 NO_TS(=0)인 경우(변환 스킵을 적용하지 않는 경우), 프라이머리 변환부(152)에 예측 잔차 D를 공급한다. 또한 변환 스킵 플래그 ts_flag[compID]의 값이 2D_TS(=1)인 경우(2차원 변환 스킵을 적용하는 것을 나타내는 경우), 프라이머리 변환부(152) 및 세컨더리 변환부(153)를 스킵하고 예측 잔차 D를 변환 계수 Coeff로서 직교 변환부(113)의 외부에 출력한다(양자화부(114)에 공급함).
프라이머리 변환부(152)는, 예를 들어 직교 변환 등의 소정의 변환 처리인 프라이머리 변환에 관한 처리를 행한다. 예를 들어 프라이머리 변환부(152)는, 컴포넌트 식별자 compID, 컴포넌트 식별자 compID의 적응 프라이머리 변환 플래그 apt_flag[compID], 컴포넌트 식별자 compID의 프라이머리 변환 식별자 pt_idx [compID], 예측 모드 정보 PInfo, 변환 블록의 사이즈(횡폭의 대수값 log2TBWSize, 횡폭의 대수값 log2TBHSize), 및 예측 잔차 D를 입력으로 한다. 또한 변환 블록의 횡폭 TBWSize를 TBWidth라고도 칭하고, 그 대수값을 log2TBWidth라고도 칭한다. 마찬가지로 변환 블록의 횡폭 TBHSize를 TBHeight라고도 칭하고, 그 대수값을 log2TBHeight라고도 칭한다.
프라이머리 변환부(152)는, 그 예측 모드 정보 PInfo, 컴포넌트 식별자 compID, 컴포넌트 식별자 compID의 적응 프라이머리 변환 플래그 apt_flag[compID], 및 컴포넌트 식별자 compID의 프라이머리 변환 식별자 pt_idx [compID]를 참조하여, 컴포넌트 식별자 compID에 대응하는 프라이머리 수평 변환의 변환 타입 TrTypeH(및 해당 변환 타입을 나타내는 프라이머리 수평 변환 타입 식별자 TrTypeIdxH), 및 프라이머리 수직 변환의 변환 타입 TrTypeV(및 해당 변환 타입을 나타내는 프라이머리 수직 변환 타입 식별자 TrTypeIdxV)를 선택한다.
또한 프라이머리 변환부(152)는 예측 잔차 D에 대하여, 그 프라이머리 수평 변환 타입 식별자 TrTypeIdxH(또는 프라이머리 수평 변환 타입 TrTypeH)와 변환 블록의 횡폭 log2TBWSize로 정해지는 프라이머리 수평 변환과, 프라이머리 수직 변환 타입 식별자 TrTypeIdxV(또는 프라이머리 수직 변환 타입 TrTypeV)와 변환 블록의 횡폭 log2TBHSize로 정해지는 프라이머리 수직 변환과 행하여, 프라이머리 변환 후의 변환 계수 Coeff_P를 도출한다. 프라이머리 수평 변환은 수평 방향의 1차원 직교 변환이고, 프라이머리 수직 변환은 수직 방향의 1차원 직교 변환이다.
프라이머리 변환부(152)는, 도출한 변환 계수 Coeff_P를 세컨더리 변환부(153)에 공급한다.
세컨더리 변환부(153)는, 예를 들어 직교 변환 등의 소정의 변환 처리인 세컨더리 변환에 관한 처리를 행한다. 예를 들어 세컨더리 변환부(153)는, 세컨더리 변환 식별자 st_idx, 변환 계수의 스캔 방법을 나타내는 스캔 식별자 scanIdx, 및 변환 계수 Coeff_P를 입력으로 한다. 세컨더리 변환부(153)는 세컨더리 변환 식별자 st_idx 및 스캔 식별자 scanIdx에 기초하여, 변환 계수 Coeff_P에 대하여 세컨더리 변환을 행하여 세컨더리 변환 후의 변환 계수 Coeff_S를 도출한다.
보다 구체적으로는, 세컨더리 변환 식별자 st_idx가, 세컨더리 변환을 적용하는 것을 나타내는 경우(st_idx>0), 세컨더리 변환부(153)는 변환 계수 Coeff_P에 대하여, 세컨더리 변환 식별자 st_idx에 대응하는 세컨더리 변환의 처리를 실행하여 세컨더리 변환 후의 변환 계수 Coeff_S를 도출한다.
세컨더리 변환부(153)는 그 세컨더리 변환 계수 Coeff_S를 변환 계수 Coeff로서 직교 변환부(113)의 외부에 출력한다(양자화부(114)에 공급함).
또한 세컨더리 변환 식별자 st_idx가, 세컨더리 변환을 적용하지 않는 것을을 나타내는 경우(st_idx==0), 세컨더리 변환부(153)는 세컨더리 변환을 스킵하고 프라이머리 변환 후의 변환 계수 Coeff_P를 변환 계수 Coeff(세컨더리 변환 후의 변환 계수 Coeff_S)로서 직교 변환부(113)의 외부에 출력한다(양자화부(114)에 공급함).
이상과 같은 구성의 직교 변환부(113)에 있어서, 프라이머리 변환부(152)는 도출부 및 직교 변환부로서, 상술한 본 기술을 적용한 처리를 행한다. 즉, 도출부는 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고, 직교 변환부는, 도출부에 의하여 도출된 제2 변환 행렬을 이용하여 예측 잔차에 대한 프라이머리 변환을 행한다. 따라서 프라이머리 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 상술한 바와 같이 프라이머리 변환부(152)는 프라이머리 변환으로서 프라이머리 수평 변환과 프라이머리 수직 변환을 행한다. 즉, 도출부는, 수평 방향의 1차원 직교 변환용의 제2 변환 행렬과, 수직 방향의 1차원 직교 변환용의 제2 변환 행렬을 도출하고, 직교 변환부는 프라이머리 변환으로서, 도출부에 의하여 도출된 수평 방향의 1차원 직교 변환용의 제2 변환 행렬을 이용하여 수평 방향의 1차원 직교 변환을 행하고, 또한 도출부에 의하여 도출된 수직 방향의 1차원 직교 변환용의 제2 변환 행렬을 이용하여 수직 방향의 1차원 직교 변환을 행한다. 따라서 이와 같은, 수평 방향의 1차원 직교 변환 및 수직 방향의 1차원 직교 변환이 행해지는 프라이머리 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<화상 부호화 처리의 흐름>
다음으로, 이상과 같은 화상 부호화 장치(100)에 의하여 실행되는 각 처리의 흐름에 대하여 설명한다. 맨 먼저, 도 13의 흐름도를 참조하여 화상 부호화 처리의 흐름의 예를 설명한다.
화상 부호화 처리가 개시되면, 스텝 S101에 있어서, 재배열 버퍼(111)는 제어부(101)에 제어되며, 입력된 동화상 데이터의 프레임순을 표시순으로부터 부호화순으로 재배열한다.
스텝 S102에 있어서, 제어부(101)는, 재배열 버퍼(111)가 보유하는 입력 화상에 대하여 처리 단위를 설정한다(블록 분할을 행함).
스텝 S103에 있어서, 제어부(101)는, 재배열 버퍼(111)가 보유하는 입력 화상에 대한 부호화 파라미터를 결정(설정)한다.
스텝 S104에 있어서, 예측부(122)는 예측 처리를 행하여 최적의 예측 모드의 예측 화상 등을 생성한다. 예를 들어 이 예측 처리에 있어서, 예측부(122)는 인트라 예측을 행하여 최적의 인트라 예측 모드의 예측 화상 등을 생성하고, 인터 예측을 행하여 최적의 인터 예측 모드의 예측 화상 등을 생성하며, 그것들 중에서 비용 함수값 등에 기초하여 최적의 예측 모드를 선택한다.
스텝 S105에 있어서, 연산부(112)는, 입력 화상과, 스텝 S104의 예측 처리에 의하여 선택된 최적의 모드의 예측 화상의 차분을 연산한다. 즉, 연산부(112)는, 입력 화상과 예측 화상의 예측 잔차 D를 생성한다. 이와 같이 하여 구해진 예측 잔차 D는, 원래의 화상 데이터에 비해 데이터양이 저감된다. 따라서 화상을 그대로 부호화하는 경우에 비해 데이터양을 압축할 수 있다.
스텝 S106에 있어서, 직교 변환부(113)는, 스텝 S105의 처리에 의하여 생성된 예측 잔차 D에 대하여 직교 변환 처리를 행하여 변환 계수 Coeff를 도출한다.
스텝 S107에 있어서, 양자화부(114)는, 제어부(101)에 의하여 산출된 양자화 파라미터를 이용하거나 하여, 스텝 S106의 처리에 의하여 얻어진 변환 계수 Coeff를 양자화하여 양자화 변환 계수 레벨 level을 도출한다.
스텝 S108에 있어서, 역양자화부(117)는, 스텝 S107의 처리에 의하여 생성된 양자화 변환 계수 레벨 level을, 그 스텝 S107의 양자화 특성에 대응하는 특성으로 역양자화하여 변환 계수 Coeff_IQ를 도출한다.
스텝 S109에 있어서, 역직교 변환부(118)는, 스텝 S108의 처리에 의하여 얻어진 변환 계수 Coeff_IQ를, 스텝 S106의 직교 변환 처리에 대응하는 방법으로 역직교 변환하여 예측 잔차 D'을 도출한다. 또한 이 역직교 변환 처리는, 복호측에 있어서 행해지는 역직교 변환 처리(후술함)와 마찬가지이므로, 이 스텝 S109의 역직교 변환 처리에 대해서는, 복호측에 대하여 행하는 설명(후술함)을 적용할 수 있다.
스텝 S110에 있어서, 연산부(119)는, 스텝 S109의 처리에 의하여 도출된 예측 잔차 D'에, 스텝 S104의 예측 처리에 의하여 얻어진 예측 화상을 가산함으로써, 국소적으로 복호된 복호 화상을 생성한다.
스텝 S111에 있어서, 인루프 필터부(120)는, 스텝 S110의 처리에 의하여 도출된, 국소적으로 복호된 복호 화상에 대하여 인루프 필터 처리를 행한다.
스텝 S112에 있어서, 프레임 메모리(121)는, 스텝 S110의 처리에 의하여 도출된, 국소적으로 복호된 복호 화상이나, 스텝 S112에 있어서 필터 처리된, 국소적으로 복호된 복호 화상을 기억한다.
스텝 S113에 있어서, 부호화부(115)는, 스텝 S107의 처리에 의하여 얻어진 양자화 변환 계수 레벨 level을 부호화한다. 예를 들어 부호화부(115)는, 화상에 관한 정보인 양자화 변환 계수 레벨 level을, 산술 부호화 등에 의하여 부호화하여 부호화 데이터를 생성한다. 또한 이때, 부호화부(115)는 각종 부호화 파라미터(헤더 정보 Hinfo, 예측 모드 정보 Pinfo, 변환 정보 Tinfo)를 부호화한다. 또한 부호화부(115)는 양자화 변환 계수 레벨 level로부터 잔차 정보 RInfo를 도출하고, 그 잔차 정보 RInfo를 부호화한다.
스텝 S114에 있어서, 축적 버퍼(116)는, 이와 같이 하여 얻어진 부호화 데이터를 축적하며, 예를 들어 비트 스트림으로서 그것을 화상 부호화 장치(100)의 외부에 출력한다. 이 비트 스트림은, 예를 들어 전송로나 기록 매체를 통하여 복호측에 전송된다. 또한 레이트 제어부(123)는 필요에 따라 레이트 제어를 행한다.
스텝 S114의 처리가 종료되면 화상 부호화 처리가 종료된다.
이상과 같은 흐름의 화상 부호화 처리에 있어서, 스텝 S106의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 또한 스텝 S109의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 또한 스텝 S113의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 화상 부호화 처리를 실행함으로써, 직교 변환·역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<직교 변환 처리의 흐름>
다음으로, 도 13의 스텝 S106에 있어서 실행되는 직교 변환 처리의 흐름의 예를, 도 14의 흐름도를 참조하여 설명한다.
직교 변환 처리가 개시되면, 스위치(151)는, 스텝 S131에 있어서, 변환 스킵 플래그 ts_flag가 2D_TS(2차원 변환 스킵을 나타내는 경우)(예를 들어 1(참)), 또는 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참)인지 여부를 판정한다. 변환 스킵 플래그 ts_flag가 2D_TS(예를 들어 1(참)), 또는 변환 양자화 바이패스 플래그가 1(참)이라고 판정된 경우, 직교 변환 처리가 종료되고 처리는 도 13으로 되돌아간다. 이 경우, 직교 변환 처리(프라이머리 변환이나 세컨더리 변환)가 생략되고, 입력된 예측 잔차 D를 변환 계수 Coeff로 한다.
또한 도 14의 스텝 S131에 있어서, 변환 스킵 플래그 ts_flag가 2D_TS가 아니고(2차원 변환 스킵이 아니고)(예를 들어 0(거짓)), 또한 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0(거짓)이라고 판정된 경우, 처리는 스텝 S132로 진행된다. 이 경우, 프라이머리 변환 처리 및 세컨더리 변환 처리가 행해진다.
스텝 S132에 있어서, 프라이머리 변환부(152)는, 입력된 예측 잔차 D에 대하여, 컴포넌트 식별자 compID로 지정되는 적응 프라이머리 변환 정보에 기초하여 프라이머리 변환 처리를 행하여 프라이머리 변환 후의 변환 계수 Coeff_P를 도출한다.
스텝 S133에 있어서, 세컨더리 변환부(153)는 변환 계수 Coeff_P에 대하여 세컨더리 변환 처리를 행하여 세컨더리 변환 후의 변환 계수 Coeff_S(변환 계수 Coeff)을 도출한다.
스텝 S133의 처리가 종료되면 직교 변환 처리가 종료된다.
이상과 같은 직교 변환 처리에 있어서, 스텝 S132의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 직교 변환 처리를 실행함으로써, 프라이머리 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<화상 복호 장치>
도 15는, 본 기술을 적용한 화상 처리 장치의 일 양태인 화상 복호 장치의 구성의 일례를 나타내는 블록도이다. 도 15에 나타나는 화상 복호 장치(200)는, AVC나 HEVC와 같이, 화상과 그 예측 화상의 예측 잔차가 부호화된 부호화 데이터를 복호하는 장치이다. 예를 들어 화상 복호 장치(200)는, 비특허문헌 1, 비특허문헌 3 또는 비특허문헌 4에 기재되어 있는 기술을 실장하며, 그것들 문헌 중 어느 것에 기재된 규격에 준거한 방법으로 동화상의 화상 데이터가 부호화된 부호화 데이터를 복호한다. 예를 들어 화상 복호 장치(200)는, 상술한 화상 부호화 장치(100)에 의하여 생성된 부호화 데이터(비트 스트림)를 복호한다.
또한 도 15에 있어서는, 처리부나 데이터의 흐름 등의 주된 것을 나타내고 있으며, 도 15에 나타나는 것이 전부는 아니다. 즉, 화상 복호 장치(200)에 있어서, 도 15에 있어서 블록으로서 나타나 있지 않은 처리부가 존재하거나, 도 15에 있어서 화살표 등으로서 나타나 있지 않은 처리나 데이터의 흐름이 존재하거나 해도 된다. 이는, 화상 복호 장치(200) 내의 처리부 등을 설명하는 다른 도면에 있어서도 마찬가지이다.
도 15에 있어서, 화상 복호 장치(200)는 축적 버퍼(211), 복호부(212), 역양자화부(213), 역직교 변환부(214), 연산부(215), 인루프 필터부(216), 재배열 버퍼(217), 프레임 메모리(218) 및 예측부(219)를 구비하고 있다. 또한 예측부(219)는, 도시하지 않은 인트라 예측부 및 인터 예측부를 구비하고 있다. 화상 복호 장치(200)는, 부호화 데이터(비트 스트림)를 복호함으로써 동화상 데이터를 생성하기 위한 장치이다.
<축적 버퍼>
축적 버퍼(211)는, 화상 복호 장치(200)에 입력된 비트 스트림을 취득하여 보유(기억)한다. 축적 버퍼(211)는 소정의 타이밍에 있어서, 또는 소정의 조건이 갖추어지거나 한 경우, 축적하고 있는 비트 스트림을 복호부(212)에 공급한다.
<복호부>
복호부(212)는 화상의 복호에 관한 처리를 행한다. 예를 들어 복호부(212)는, 축적 버퍼(211)로부터 공급되는 비트 스트림을 입력으로 하고, 신택스 테이블의 정의에 따라 그 비트열로부터 각 신택스 요소의 신택스값을 가변 길이 복호하여 파라미터를 도출한다.
신택스 요소 및 신택스 요소의 신택스값으로부터 도출되는 파라미터에는, 예를 들어 헤더 정보 Hinfo, 예측 모드 정보 Pinfo, 변환 정보 Tinfo, 잔차 정보 Rinfo, 필터 정보 Finfo 등의 정보가 포함된다. 즉, 복호부(212)는 비트 스트림으로부터 이들 정보를 파싱한다(해석하여 취득함). 이들 정보에 대하여 이하에 설명한다.
<헤더 정보 Hinfo>
헤더 정보 Hinfo는, 예를 들어 VPS(Video Parameter Set)/SPS(Sequence Parameter Set)/PPS(Picture Parameter Set)/SH(슬라이스 헤더) 등의 헤더 정보를 포함한다. 헤더 정보 Hinfo에는, 예를 들어 화상 사이즈(횡폭 PicWidth, 횡폭 PicHeight), 비트 심도(휘도 bitDepthY, 색차 bitDepthC), 색차 어레이 타입 ChromaArrayType, CU 사이즈의 최댓값 MaxCUSize/최솟값 MinCUSize, 4분목 분할(Quad-tree 분할이라고도 함)의 최대 심도 MaxQTDepth/최소 심도 MinQTDepth, 2분목 분할(Binary-tree 분할)의 최대 심도 MaxBTDepth/최소 심도 MinBTDepth, 변환 스킵 블록의 최댓값 MaxTSSize(최대 변환 스킵 블록 사이즈라고도 함), 각 부호화 툴의 온오프 플래그(유효 플래그라고도 함) 등을 규정하는 정보가 포함된다.
예를 들어 헤더 정보 Hinfo에 포함되는 부호화 툴의 온오프 플래그로서는, 이하에 나타내는 변환, 양자화 처리에 관한 온오프 플래그가 있다. 또한 부호화 툴의 온오프 플래그는, 해당 부호화 툴에 관한 신택스가 부호화 데이터 중에 존재하는지 여부를 나타내는 플래그로도 해석할 수 있다. 또한 온오프 플래그의 값이 1(참)인 경우, 해당 부호화 툴이 사용 가능함을 나타내고, 온오프 플래그의 값이 0(거짓)인 경우, 해당 부호화 툴이 사용 불가임을 나타낸다. 또한 플래그 값의 해석은 반대여도 된다.
컴포넌트 간 예측 유효 플래그(ccp_enabled_flag): 컴포넌트 간 예측(CCP(Cross-Component Prediction), CC 예측이라고도 칭함)이 사용 가능한지 여부를 나타내는 플래그 정보이다. 예를 들어 이 플래그 정보가 「1」(참)인 경우, 사용 가능함을 나타내고, 「0」(거짓)인 경우, 사용 불가임을 나타낸다.
또한 이 CCP는 컴포넌트 간 선형 예측(CCLM 또는 CCLMP)이라고도 칭한다.
<예측 모드 정보 Pinfo>
예측 모드 정보 Pinfo에는, 예를 들어 처리 대상 PB(예측 블록)의 사이즈 정보 PBSize(예측 블록 사이즈), 인트라 예측 모드 정보 IPinfo, 움직임 예측 정보 MVinfo 등의 정보가 포함된다.
인트라 예측 모드 정보 IPinfo에는, 예를 들어 JCTVC-W1005, 7.3.8.5 Coding Unit syntax 중의 prev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode, 및 그 신택스로부터 도출되는 휘도 인트라 예측 모드 IntraPredModeY 등이 포함된다.
또한 인트라 예측 모드 정보 IPinfo에는, 예를 들어 컴포넌트 간 예측 플래그(ccp_flag(cclmp_flag)), 다클래스 선형 예측 모드 플래그(mclm_flag), 색차 샘플 위치 타입 식별자(chroma_sample_loc_type_idx), 색차 MPM 식별자(chroma_mpm_idx), 및 이들 신택스로부터 도출되는 휘도 인트라 예측 모드(IntraPredModeC) 등이 포함된다.
컴포넌트 간 예측 플래그(ccp_flag(cclmp_flag))는, 컴포넌트 간 선형 예측을 적용할지 여부를 나타내는 플래그 정보이다. 예를 들어 ccp_flag==1일 때, 컴포넌트 간 예측을 적용함을 나타내고, ccp_flag==0일 때, 컴포넌트 간 예측을 적용하지 않음을 나타낸다.
다클래스 선형 예측 모드 플래그(mclm_flag)는, 선형 예측의 모드에 관한 정보(선형 예측 모드 정보)이다. 보다 구체적으로는, 다클래스 선형 예측 모드 플래그(mclm_flag)는, 다클래스 선형 예측 모드로 할지 여부를 나타내는 플래그 정보이다. 예를 들어 「0」의 경우, 1클래스 모드(단일 클래스 모드)(예를 들어 CCLMP)임을 나타내고, 「1」의 경우, 2클래스 모드(다클래스 모드)(예를 들어 MCLMP)임을 나타낸다.
색차 샘플 위치 타입 식별자(chroma_sample_loc_type_idx)는, 색차 컴포넌트의 화소 위치의 타입(색차 샘플 위치 타입이라고도 칭함)을 식별하는 식별자이다. 예를 들어 색 포맷에 관한 정보인 색차 어레이 타입(ChromaArrayType)이 420형식을 나타내는 경우, 색차 샘플 위치 타입 식별자는, 이하의 식 (7)과 같은 할당 방식으로 된다.
Figure pct00005
또한 이 색차 샘플 위치 타입 식별자(chroma_sample_loc_type_idx)는, 색차 컴포넌트의 화소 위치에 관한 정보(chroma_sample_loc_info())로서(로 저장되어) 전송된다.
색차 MPM 식별자(chroma_mpm_idx)는, 색차 인트라 예측 모드 후보 리스트(intraPredModeCandListC) 중의 어느 예측 모드 후보를 색차 인트라 예측 모드로서 지정할지를 나타내는 식별자이다.
움직임 예측 정보 MVinfo에는, 예를 들어 merge_idx, merge_flag, inter_pred_idc, ref_idx_LX, mvp_lX_flag, X={0, 1}, mvd 등의 정보가 포함된다(예를 들어 JCTVC-W1005, 7.3.8.6 Prediction Unit Syntax를 참조).
물론 예측 모드 정보 Pinfo에 포함되는 정보는 임의이며, 이들 정보 이외의 정보가 포함되도록 해도 된다.
<변환 정보 Tinfo>
변환 정보 Tinfo에는, 예를 들어 이하의 정보가 포함된다. 물론 변환 정보 Tinfo에 포함되는 정보는 임의이며, 이들 정보 이외의 정보가 포함되도록 해도 된다.
처리 대상 변환 블록의 횡폭 사이즈 TBWSize 및 횡폭 TBHSize(또는 2를 밑으로 하는 각 TBWSize, TBHSize의 대수값 log2TBWSize, log2TBHSize여도 됨).
변환 스킵 플래그(ts_flag): (역)프라이머리 변환 및 (역)세컨더리 변환을 스킵할지 여부를 나타내는 플래그이다.
스캔 식별자(scanIdx)
양자화 파라미터(qp)
양자화 매트릭스(scaling_matrix(예를 들어 JCTVC-W1005, 7.3.4 Scaling list data syntax))
<잔차 정보 Rinfo>
잔차 정보 Rinfo(예를 들어 JCTVC-W1005에 7.3.8.11 Residual Coding syntax를 참조)에는, 예를 들어 이하의 신택스가 포함된다.
cbf(coded_block_flag): 잔차 데이터 유무 플래그
last_sig_coeff_x_pos: 라스트 비 제로 계수 X 좌표
last_sig_coeff_y_pos: 라스트 비 제로 계수 Y 좌표
coded_sub_block_flag: 서브블록 비 제로 계수 유무 플래그
sig_coeff_flag: 비 제로 계수 유무 플래그
gr1_flag: 비 제로 계수의 레벨이 1보다 큰지를 나타내는 플래그(GR1 플래그라고도 칭함)
gr2_flag: 비 제로 계수의 레벨이 2보다 큰지를 나타내는 플래그(GR2 플래그라고도 칭함)
sign_flag: 비 제로 계수의 정부를 나타내는 부호(사인 부호라고도 칭함)
coeff_abs_level_remaining: 비 제로 계수의 잔여 레벨(비 제로 계수 잔여 레벨이라고도 칭함)
등.
물론 잔차 정보 Rinfo에 포함되는 정보는 임의이며, 이들 정보 이외의 정보가 포함되도록 해도 된다.
<필터 정보 Finfo>
필터 정보 Finfo에는, 예를 들어 이하에 나타내는 각 필터 처리에 관한 제어 정보가 포함된다.
디블로킹 필터(DBF)에 관한 제어 정보
화소 적응 오프셋(SAO)에 관한 제어 정보
적응 루프 필터(ALF)에 관한 제어 정보
그 외의 선형·비선형 필터에 관한 제어 정보
보다 구체적으로는, 예를 들어 각 필터를 적용하는 픽처나, 픽처 내의 영역을 지정하는 정보나, CU 단위의 필터 On/Off 제어 정보, 슬라이스, 타일의 경계에 관한 필터 On/Off 제어 정보 등이 포함된다. 물론 필터 정보 Finfo에 포함되는 정보는 임의이며, 이들 정보 이외의 정보가 포함되도록 해도 된다.
복호부(212)의 설명으로 되돌아가, 복호부(212)는 잔차 정보 Rinfo를 참조하여 각 변환 블록 내의 각 계수 위치의 양자화 변환 계수 레벨 level을 도출한다. 복호부(212)는 그 양자화 변환 계수 레벨 level을 역양자화부(213)에 공급한다.
또한 복호부(212)는, 파싱한 헤더 정보 Hinfo, 예측 모드 정보 Pinfo, 양자화 변환 계수 레벨 level, 변환 정보 Tinfo, 필터 정보 Finfo를 각 블록에 공급한다. 구체적으로는 이하와 같다.
헤더 정보 Hinfo는 역양자화부(213), 역직교 변환부(214), 예측부(219), 인루프 필터부(216)에 공급된다.
예측 모드 정보 Pinfo는 역양자화부(213) 및 예측부(219)에 공급된다.
변환 정보 Tinfo는 역양자화부(213) 및 역직교 변환부(214)에 공급된다.
필터 정보 Finfo는 인루프 필터부(216)에 공급된다.
물론 상술한 예는 일례이며, 이 예에 한정되지 않는다. 예를 들어 각 부호화 파라미터가 임의의 처리부에 공급되도록 해도 된다. 또한 그 외의 정보가 임의의 처리부에 공급되도록 해도 된다.
<역양자화부>
역양자화부(213)는 역양자화에 관한 처리를 행한다. 예를 들어 역양자화부(213)는, 복호부(212)로부터 공급되는 변환 정보 Tinfo 및 양자화 변환 계수 레벨 level을 입력으로 하고, 그 변환 정보 Tinfo에 기초하여 양자화 변환 계수 레벨 level의 값을 스케일링(역양자화)하여 역양자화 후의 변환 계수 Coeff_IQ를 도출한다.
또한 이 역양자화는, 양자화부(114)에 의한 양자화의 역처리로서 행해진다. 또한 이 역양자화는, 역양자화부(117)에 의한 역양자화와 마찬가지의 처리이다. 즉, 역양자화부(117)는 역양자화부(213)과 마찬가지의 처리(역양자화)를 행한다.
역양자화부(213)는, 도출한 변환 계수 Coeff_IQ를 역직교 변환부(214)에 공급한다.
<역직교 변환부>
역직교 변환부(214)는 역직교 변환에 관한 처리를 행한다. 예를 들어 역직교 변환부(214)는, 역양자화부(213)로부터 공급되는 변환 계수 Coeff_IQ, 및 복호부(212)로부터 공급되는 변환 정보 Tinfo를 입력으로 하고, 그 변환 정보 Tinfo에 기초하여 변환 계수 Coeff_IQ에 대하여 역직교 변환 처리를 행하여 예측 잔차 D'을 도출한다.
또한 이 역직교 변환은, 직교 변환부(113)에 의한 직교 변환의 역처리로서 행해진다. 또한 이 역직교 변환은, 역직교 변환부(118)에 의한 역직교 변환과 마찬가지의 처리이다. 즉, 역직교 변환부(118)는 역직교 변환부(214)와 마찬가지의 처리(역직교 변환)를 행한다.
역직교 변환부(214)는, 도출한 예측 잔차 D'을 연산부(215)에 공급한다.
<연산부>
연산부(215)는, 화상에 관한 정보의 가산에 관한 처리를 행한다. 예를 들어 연산부(215)는, 역직교 변환부(214)로부터 공급되는 예측 잔차 D'과, 예측부(219)로부터 공급되는 예측 화상 P를 입력으로 한다. 연산부(215)는, 이하의 식 (8)에 나타난 바와 같이, 예측 잔차 D'과, 그 예측 잔차 D'에 대응하는 예측 화상 P(예측 신호)를 가산하여, 국소 복호 화상 Rlocal을 도출한다.
Figure pct00006
연산부(215)는, 도출한 국소 복호 화상 Rlocal을 인루프 필터부(216) 및 프레임 메모리(218)에 공급한다.
<인루프 필터부>
인루프 필터부(216)는 인루프 필터 처리에 관한 처리를 행한다. 예를 들어 인루프 필터부(216)는, 연산부(215)로부터 공급되는 국소 복호 화상 Rlocal과, 복호부(212)로부터 공급되는 필터 정보 Finfo를 입력으로 한다. 또한 인루프 필터부(216)에 입력되는 정보는 임의이며, 이들 정보 이외의 정보가 입력되어도 된다.
인루프 필터부(216)는 그 필터 정보 Finfo에 기초하여 국소 복호 화상 Rlocal에 대하여 적당히 필터 처리를 행한다.
예를 들어 인루프 필터부(216)는, 비특허문헌 1에 기재된 바와 같이, 양방향 필터, 디블로킹 필터(DBF(DeBlocking Filter)), 적응 오프셋 필터(SAO(Sample Adaptive Offset)) 및 적응 루프 필터(ALF(Adaptive Loop Filter))의 4개의 인루프 필터를 이 순으로 적용한다. 또한 어느 필터를 적용할지, 어느 순으로 적용할지는 임의이며, 적당히 선택 가능하다.
인루프 필터부(216)는, 부호화측(예를 들어 화상 부호화 장치(100)의 인루프 필터부(120))에 의하여 행해진 필터 처리에 대응하는 필터 처리를 행한다. 물론 인루프 필터부(216)가 행하는 필터 처리는 임의이며, 상술한 예에 한정되지 않는다. 예를 들어 인루프 필터부(216)가 위너 필터 등을 적용하도록 해도 된다.
인루프 필터부(216)는, 필터 처리된 국소 복호 화상 Rlocal을 재배열 버퍼(217) 및 프레임 메모리(218)에 공급한다.
<재배열 버퍼>
재배열 버퍼(217)는, 인루프 필터부(216)로부터 공급된 국소 복호 화상 Rlocal을 입력으로 하고, 그것을 보유(기억)한다. 재배열 버퍼(217)는 그 국소 복호 화상 Rlocal을 이용하여 픽처 단위별 복호 화상 R을 재구축하여 보유한다(버퍼 내에 저장함). 재배열 버퍼(217)는, 얻어진 복호 화상 R을 복호순으로부터 재생순으로 재배열한다. 재배열 버퍼(217)는 재배열한 복호 화상 R군을 동화상 데이터로서 화상 복호 장치(200)의 외부에 출력한다.
<프레임 메모리>
프레임 메모리(218)는, 화상에 관한 데이터의 기억에 관한 처리를 행한다. 예를 들어 프레임 메모리(218)는, 연산부(215)로부터 공급되는 국소 복호 화상 Rlocal을 입력으로 하고, 픽처 단위별 복호 화상 R을 재구축하여 프레임 메모리(218) 내의 버퍼에 저장한다.
또한 프레임 메모리(218)는, 인루프 필터부(216)로부터 공급되는, 인루프 필터 처리된 국소 복호 화상 Rlocal을 입력으로 하고, 픽처 단위별 복호 화상 R을 재구축하여 프레임 메모리(218) 내의 버퍼에 저장한다. 프레임 메모리(218)는 적당히, 그 기억하고 있는 복호 화상 R(또는 그 일부)을 참조 화상으로서 예측부(219)에 공급한다.
또한 프레임 메모리(218)가, 복호 화상의 생성에 관한 헤더 정보 Hinfo, 예측 모드 정보 Pinfo, 변환 정보 Tinfo, 필터 정보 Finfo 등을 기억하도록 해도 된다.
<예측부>
예측부(219)는 예측 화상의 생성에 관한 처리를 행한다. 예를 들어 예측부(219)는, 복호부(212)로부터 공급되는 예측 모드 정보 Pinfo를 입력으로 하고, 그 예측 모드 정보 Pinfo에 의하여 지정되는 예측 방법에 의하여 예측을 행하여, 예측 화상 P를 도출한다. 그 도출 시, 예측부(219)는, 그 예측 모드 정보 Pinfo에 의하여 지정되는, 프레임 메모리(218)에 저장된 필터 전 또는 필터 후의 복호 화상 R(또는 그 일부)을 참조 화상으로서 이용한다. 예측부(219)는, 도출한 예측 화상 P를 연산부(215)에 공급한다.
이상과 같은 구성의 화상 복호 장치(200)에 있어서, 역직교 변환부(214)는 도출부 및 역직교 변환부로서, 상술한 본 기술을 적용한 처리를 행한다. 또한 복호부(212)는 복호부로서, 상술한 본 기술을 적용한 처리를 행한다. 따라서 화상 복호 장치(200)는, 역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<역직교 변환부의 상세>
도 16은, 도 15의 역직교 변환부(214)의 주된 구성예를 나타내는 블록도이다. 도 16에 나타난 바와 같이 역직교 변환부(214)는 스위치(251), 역세컨더리 변환부(252) 및 역프라이머리 변환부(253)를 갖는다.
스위치(251)는 변환 계수 Coeff_IQ 및 변환 스킵 플래그 ts_flag[compID]를 입력으로 한다. 변환 스킵 플래그 ts_flag[compID]의 값이 NO_TS(=0)인 경우, 즉, 변환 스킵을 적용하지 않는 경우, 스위치(251)는 변환 계수 Coeff_IQ를 역세컨더리 변환부(252)에 공급한다. 또한 변환 스킵 플래그 ts_flag[compID]의 값이 2D_TS(=1)인 경우, 즉, 2차원 변환 스킵을 적용하는 것을 나타내는 경우, 스위치(251)는 역세컨더리 변환부(252) 및 역프라이머리 변환부(253)를 스킵하고 변환 계수 Coeff_IQ를 예측 잔차 D'로서 역직교 변환부(214)의 외부에 출력한다(연산부(215)에 공급함).
역세컨더리 변환부(252)는, 부호화측(예를 들어 화상 부호화 장치(100)의 세컨더리 변환부(153))에 있어서 행해지는 세컨더리 변환의 역처리인 역세컨더리 변환에 관한 처리를 행한다. 예를 들어 역세컨더리 변환부(252)는, 세컨더리 변환 식별자 st_idx, 변환 계수의 스캔 방법을 나타내는 스캔 식별자 scanIdx, 및 스위치(251)로부터 공급되는 변환 계수 Coeff_IQ를 입력으로 한다.
역세컨더리 변환부(252)는 세컨더리 변환 식별자 st_idx 및 스캔 식별자 scanIdx에 기초하여 변환 계수 Coeff_IQ에 대하여 역세컨더리 변환을 행하여 역세컨더리 변환 후의 변환 계수 Coeff_IS를 도출한다.
보다 구체적으로는, 세컨더리 변환 식별자 st_idx가, 역세컨더리 변환을 적용함을 나타내는 경우(st_idx>0), 역세컨더리 변환부(252)는 변환 계수 Coeff_IQ에 대하여, 세컨더리 변환 식별자 st_idx에 대응하는 역세컨더리 변환의 처리를 실행하여 역세컨더리 변환 후의 변환 계수 Coeff_IS를 도출한다. 역세컨더리 변환부(252)는, 그 역세컨더리 변환 후의 변환 계수 Coeff_IS를 역프라이머리 변환부(253)에 공급한다.
또한 세컨더리 변환 식별자 st_idx가, 역세컨더리 변환을 적용하지 않음을 나타내는 경우(st_idx==0), 역세컨더리 변환부(252)는 역세컨더리 변환을 스킵하고 변환 계수 Coeff_IQ를 역세컨더리 변환 후의 변환 계수 Coeff_IS로서 역프라이머리 변환부(253)에 공급한다.
역프라이머리 변환부(253)는, 부호화측(예를 들어 화상 부호화 장치(100)의 프라이머리 변환부(152))에 있어서 행해지는 프라이머리 변환의 역처리인 역프라이머리 변환에 관한 처리를 행한다. 예를 들어 역프라이머리 변환부(253)는, 컴포넌트 식별자 compID, 컴포넌트 식별자 compID의 적응 프라이머리 변환 플래그 apt_flag[compID], 컴포넌트 식별자 compID의 프라이머리 변환 식별자 pt_idx [compID], 예측 모드 정보 PInfo, 변환 블록의 사이즈(횡폭의 대수값 log2TBWSize, 횡폭의 대수값 log2TBHSize), 및 역세컨더리 변환 후의 변환 계수 Coeff_IS를 입력으로 한다.
역프라이머리 변환부(253)는, 그 예측 모드 정보 PInfo, 컴포넌트 식별자 compID, 컴포넌트 식별자 compID의 적응 프라이머리 변환 플래그 apt_flag[compID], 및 컴포넌트 식별자 compID의 프라이머리 변환 식별자 pt_idx [compID]를 참조하여, 컴포넌트 식별자 compID에 대응하는 역프라이머리 수평 변환의 변환 타입 TrTypeH(및 해당 변환 타입을 나타내는 역프라이머리 수평 변환 타입 식별자 TrTypeIdxH), 및 역프라이머리 수직 변환의 변환 타입 TrTypeV(및 해당 변환 타입을 나타내는 역프라이머리 수직 변환 타입 식별자 TrTypeIdxV)를 선택한다.
또한 역프라이머리 변환부(253)는, 역세컨더리 후의 변환 계수 Coeff_IS에 대하여, 그 역프라이머리 수직 변환 타입 식별자 TrTypeIdxV(또는 역프라이머리 수직 변환 타입 TrTypeV)와 변환 블록의 횡폭 log2TBHSize로 정해지는 역프라이머리 수직 변환과, 역프라이머리 수평 변환 타입 식별자 TrTypeIdxH(또는 역프라이머리 수평 변환 타입 TrTypeH)와 변환 블록의 횡폭 log2TBWSize로 정해지는 역프라이머리 수평 변환을 행하여, 역프라이머리 변환 후의 변환 계수 Coeff_IP를 도출한다. 역프라이머리 수직 변환은 수직 방향의 역1차원 직교 변환이고, 역프라이머리 수평 변환은 수평 방향의 역1차원 직교 변환이다.
역프라이머리 변환부(253)는, 그 역프라이머리 변환 후의 변환 계수 Coeff_IP를 예측 잔차 D'로서 역직교 변환부(214)의 외부에 출력한다(연산부(215)에 공급함).
이상과 같은 구성의 역직교 변환부(214)에 있어서, 역프라이머리 변환부(253)는 도출부 및 역직교 변환부로서, 상술한 본 기술을 적용한 처리를 행한다. 즉, 도출부는 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고, 역직교 변환부는, 그 도출부에 의하여 도출된 제2 변환 행렬을 이용하여, 역세컨더리 변환 결과에 대하여 역프라이머리 변환을 행한다. 따라서 이와 같은 역프라이머리 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 상술한 바와 같이 역프라이머리 변환부(253)는, 역프라이머리 변환으로서 역프라이머리 수직 변환과 역프라이머리 수평 변환을 행한다. 즉, 도출부는, 수직 방향의 역1차원 직교 변환용의 제2 변환 행렬과, 수평 방향의 역1차원 직교 변환용의 제2 변환 행렬을 도출하고, 역직교 변환부는 역프라이머리 변환으로서, 도출부에 의하여 도출된 수직 방향의 역1차원 직교 변환용의 제2 변환 행렬을 이용하여 수직 방향의 역1차원 직교 변환을 행하고, 또한 도출부에 의하여 도출된 수평 방향의 역1차원 직교 변환용의 제2 변환 행렬을 이용하여 수평 방향의 역1차원 직교 변환을 행한다. 따라서 이와 같은, 수직 방향의 역1차원 직교 변환 및 수평 방향의 역1차원 직교 변환이 행해지는 프라이머리 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<화상 복호 처리의 흐름>
다음으로, 이상과 같은 화상 복호 장치(200)에 의하여 실행되는 각 처리의 흐름에 대하여 설명한다. 맨 먼저, 도 17의 흐름도를 참조하여 화상 복호 처리의 흐름의 예를 설명한다.
화상 복호 처리가 개시되면, 축적 버퍼(211)는, 스텝 S201에 있어서, 화상 복호 장치(200)의 외부로부터 공급되는 부호화 데이터(비트 스트림)를 취득하여 보유한다(축적함).
스텝 S202에 있어서, 복호부(212)는 그 부호화 데이터(비트 스트림)를 복호하여 양자화 변환 계수 레벨 level을 얻는다. 또한 복호부(212)는 이 복호에 의하여 부호화 데이터(비트 스트림)로부터 각종 부호화 파라미터를 파싱한다(해석하여 취득함).
스텝 S203에 있어서, 역양자화부(213)는, 스텝 S202의 처리에 의하여 얻어진 양자화 변환 계수 레벨 level에 대하여, 부호화측에서 행해진 양자화의 역처리인 역양자화를 행하여 변환 계수 Coeff_IQ를 얻는다.
스텝 S204에 있어서, 역직교 변환부(214)는, 스텝 S203의 처리에 의하여 얻어진 변환 계수 Coeff_IQ에 대하여, 부호화측에서 행해진 직교 변환 처리의 역처리인 역직교 변환 처리를 행하여 예측 잔차 D'을 얻는다.
스텝 S205에 있어서, 예측부(219)는, 스텝 S202에 있어서 파싱된 정보에 기초하여, 부호화측으로부터 지정되는 예측 방법으로 예측 처리를 실행하고, 프레임 메모리(218)에 기억되어 있는 참조 화상을 참조하거나 하여 예측 화상 P를 생성한다.
스텝 S206에 있어서, 연산부(215)는, 스텝 S204의 처리에 의하여 얻어진 예측 잔차 D'과, 스텝 S205의 처리에 의하여 얻어진 예측 화상 P를 가산하여, 국소 복호 화상 Rlocal을 도출한다.
스텝 S207에 있어서, 인루프 필터부(216)는, 스텝 S206의 처리에 의하여 얻어진 국소 복호 화상 Rlocal에 대하여 인루프 필터 처리를 행한다.
스텝 S208에 있어서, 재배열 버퍼(217)는, 스텝 S207의 처리에 의하여 얻어진 필터 처리된 국소 복호 화상 Rlocal을 이용하여 복호 화상 R을 도출하고, 그 복호 화상 R군의 순서를 복호순으로부터 재생순으로 재배열한다. 재생순으로 재배열된 복호 화상 R군은 동화상으로서 화상 복호 장치(200)의 외부에 출력된다.
또한 스텝 S209에 있어서, 프레임 메모리(218)는, 스텝 S206의 처리에 의하여 얻어진 국소 복호 화상 Rlocal, 및 스텝 S207의 처리에 의하여 얻어진 필터 처리 후의 국소 복호 화상 Rlocal 중, 적어도 한쪽을 기억한다.
스텝 S209의 처리가 종료되면 화상 복호 처리가 종료된다.
이상과 같은 흐름의 화상 복호 처리에 있어서, 스텝 S202의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 또한 스텝 S204의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 화상 복호 처리를 실행함으로써, 역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<역직교 변환의 처리의 흐름>
다음으로, 도 17의 스텝 S204에 있어서 실행되는 역직교 변환 처리의 흐름의 예를, 도 18의 흐름도를 참조하여 설명한다. 역직교 변환 처리가 개시되면, 스위치(251)는, 스텝 S231에 있어서, 변환 스킵 플래그 ts_flag가 2D_TS(2차원 변환 스킵의 모드)(예를 들어 1(참))인지, 또는 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참)인지 여부를 판정한다. 변환 스킵 식별자 ts_idx가 2D_TS이거나, 또는 변환 양자화 바이패스 플래그가 1(참)이라고 판정된 경우, 역직교 변환 처리가 종료되고 처리는 도 17로 되돌아간다. 이 경우, 역직교 변환 처리(역프라이머리 변환이나 역세컨더리 변환)가 생략되고 변환 계수 Coeff_IQ를 예측 잔차 D'로 한다.
또한 스텝 S231에 있어서, 변환 스킵 식별자 ts_idx가 2D_TS가 아니고(2차원 변환 스킵 이외의 모드)(예를 들어 0(거짓)), 또한 변환 양자화 바이패스 플래그가 0(거짓)이라고 판정된 경우, 처리는 스텝 S232로 진행된다. 이 경우, 역세컨더리 변환 처리 및 역프라이머리 변환 처리가 행해진다.
스텝 S232에 있어서, 역세컨더리 변환부(252)는, 변환 계수 Coeff_IQ에 대하여 세컨더리 변환 식별자 st_idx에 기초하여 역세컨더리 변환 처리를 행하여, 변환 계수 Coeff_IS를 도출하여 출력한다.
스텝 S233에 있어서, 역프라이머리 변환부(253)는 변환 계수 Coeff_IS에 대하여 역프라이머리 변환 처리를 행하여 역프라이머리 변환 후의 변환 계수 Coeff_IP(예측 잔차 D')를 도출한다.
스텝 S233의 처리가 종료되면 역직교 변환 처리가 종료된다.
이상과 같은 역직교 변환 처리에 있어서, 스텝 S233의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 역직교 변환 처리를 실행함으로써, 역프라이머리 변환 처리에 필요한 메모리 용량의 증대를 억제할 수 있다.
<2-2. 실시예 1-1>
<콘셉트>
다음으로, 도 10을 참조하여 설명한 각 도출예에 대하여 보다 상세히 설명한다. 맨 먼저, 도 10에 나타나는 표에 있어서, 최상단의 항목명의 행을 제외하고 위로부터 1단째의 예와 2단째의 예에 대하여 설명한다.
상술한 바와 같이, 위로부터 1단째의 예의 도출은, 제1 변환 타입의 최저차 행 벡터의 파형과, 대체할 변환 행렬의 변환 타입의 최저차 행 벡터의 파형의 유사성에 주목한 것이다. 이 경우, 도출부는 제1 변환 행렬을 플립하여 제2 변환 행렬을 도출한다. 즉, 도출부는, 도 19에 나타난 바와 같이, DST7의 변환 행렬을 베이스 변환 행렬 Tbase로 하고, 그것을 행 방향으로 플립하여 FlipDST7의 변환 행렬을 도출한다. 이 FlipDST7의 변환 행렬에 의하여, 0차의 행 벡터의 파형이 유사한(감소형의) DCT8의 변환 행렬을 대체할 수 있다.
이 도출의 구체적인 예를 도 20의 상측에 나타낸다. 도 20의 상측에 나타난 바와 같이, 이 도출은, 베이스 변환 행렬 Tbase(DST7)와 플립 행렬 J의 행렬 곱에 의하여 나타낼 수 있다. 여기서 플립 행렬 J(Cross-Identity Matrix라고도 칭함)는, N×N의 단위 행렬 I를 좌우 반전한 것이다.
또한 위로부터 2단째의 예의 도출은, 제1 변환 타입의 최저차 열 벡터의 파형과, 대체할 변환 행렬의 변환 타입의 최저차 행 벡터의 파형의 유사성에 주목한 것이다. 이 경우, 도출부는 제1 변환 행렬을 전치하여 제2 변환 행렬을 도출한다. 즉, 도출부는, 도 19에 나타난 바와 같이, DST7의 변환 행렬을 베이스 변환 행렬 Tbase로 하고, 그것을 전치하여 TrDST7의 변환 행렬을 도출한다. 이 TrDST7의 변환 행렬에 의하여, 0차의 행 벡터의 파형이 유사한(산형의) DST1의 변환 행렬을 대체할 수 있다.
이 도출의 구체적인 예를 도 20의 하측에 나타낸다. 도 20의 하측에 나타난 바와 같이, 이 도출은, 베이스 변환 행렬 Tbase(DST7)의 전치에 의하여 나타낼 수 있다.
즉, 이상의 2개의 도출예는 모두, 1회의 조작(플립 또는 전치)으로 제2 변환 행렬을 도출할 수 있다. 또한 그 조작도 용이하다. 즉, 용이하게 제2 변환 행렬을 도출할 수 있다.
또한 이상의 2개의 도출예를 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DCT8의 변환 행렬 및 DST1의 변환 행렬을 준비할 필요가 없게 된다. 즉, 고유 변환 타입을 삭감할 수 있다.
이 경우, 도 21의 표에 나타난 바와 같이, 비특허문헌 1에 기재된 기술의 경우에 5종류 필요했던 변환 행렬(도 6의 A의 표 참조)을 3종류로 저감시킬 수 있으므로, LUT 사이즈의 합계는 약 40KB로 할 수 있다. 즉, 비특허문헌 1에 기재된 기술의 경우에 비해(약 53KB(도 6의 A의 표)) LUT의 사이즈를 저감시킬 수 있다. 즉, LUT의 사이즈의 증대를 억제할 수 있다.
또한 상술한 바와 같이, 이 경우에도, 도출된 제2 변환 타입(TrDST7이나 FlipDST7)의 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DST1의 변환 행렬이나 DCT8의 변환 행렬을 직교 변환·역직교 변환에 이용하는 경우와 동일한 정도의 부호화 효율이 얻어진다.
<프라이머리 변환부>
다음으로, 이와 같은 도출을 행하기 위한 구성이나 처리 등에 대하여 설명한다. 도 22는, 이 경우의 프라이머리 변환부(152)의 주된 구성예를 나타내는 블록도이다. 도 22에 나타난 바와 같이, 프라이머리 변환부(152)는 프라이머리 변환 선택부(311), 프라이머리 수평 변환부(312) 및 프라이머리 수직 변환부(313)를 갖는다.
프라이머리 변환 선택부(311)는 예측 모드 정보 PInfo, 컴포넌트 식별자 compID, 적응 프라이머리 변환 플래그 apt_flag[compID], 및 프라이머리 변환 식별자 pt_idx [compID]를 입력으로 한다. 프라이머리 변환 선택부(311)는 그것들 정보를 참조하여 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH 및 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV를 도출한다. 프라이머리 변환 선택부(311)는, 도출한 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH를 프라이머리 수평 변환부(312)에 공급한다. 또한 프라이머리 변환 선택부(311)는, 도출한 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV를 프라이머리 수직 변환부(313)에 공급한다.
프라이머리 수평 변환부(312)는, 예측 잔차 D, 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH, 및 변환 블록의 사이즈에 관한 정보(도시하지 않음)를 입력으로 한다. 이 변환 블록의 사이즈에 관한 정보는, 변환 블록의 수평 방향 또는 수직 방향의 크기(계수의 수)를 나타내는 자연수 N이어도 되고, 변환 블록의 횡폭을 나타내는 log2TBWSize(횡폭의 대수값)여도 된다(N=1<<log2TBWSize). 프라이머리 수평 변환부(312)는 예측 잔차 D에 대하여, 변환 타입 식별자 TrTypeIdxH와 변환 블록의 사이즈로 정해지는 프라이머리 수평 변환 Phor를 실행하여, 프라이머리 수평 변환 후의 변환 계수 Coeff_Phor를 도출한다. 프라이머리 수평 변환부(312)는, 그 프라이머리 수평 변환 후의 변환 계수 Coeff_Phor를 프라이머리 수직 변환부(313)에 공급한다.
프라이머리 수직 변환부(313)는, 프라이머리 수평 변환 후의 변환 계수 Coeff_Phor, 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV, 및 변환 블록의 사이즈에 관한 정보(도시하지 않음)를 입력으로 한다. 이 변환 블록의 사이즈에 관한 정보는, 변환 블록의 수평 방향 또는 수직 방향의 크기(계수의 수)를 나타내는 자연수 N이어도 되고, 변환 블록의 횡폭을 나타내는 log2TBHSize(횡폭의 대수값)여도 된다(N=1<<log2TBHSize). 프라이머리 수직 변환부(313)는, 프라이머리 수평 변환 후의 변환 계수 Coeff_Phor에 대하여, 변환 타입 식별자 TrTypeIdxV와 변환 블록의 사이즈로 정해지는 프라이머리 수직 변환 Pver를 실행하여, 그 프라이머리 수직 변환 후의 변환 계수 Coeff_Pver를 도출한다. 프라이머리 수직 변환부(313)는, 그 프라이머리 수직 변환 후의 변환 계수 Coeff_Pver를, 프라이머리 변환 후의 변환 계수 Coeff_P로서 프라이머리 변환부(152)의 외부에 출력한다(세컨더리 변환부(153)에 공급함).
이상과 같은 구성의 프라이머리 변환부(152)에 있어서, 프라이머리 수평 변환부(312) 및 프라이머리 수직 변환부(313)는 각각 도출부 및 직교 변환부로서, 상술한 본 기술을 적용한 처리를 행한다.
즉, 프라이머리 수평 변환부(312)는 도출부로서 수평 방향의 1차원 직교 변환용의 제2 변환 행렬을 도출하고, 또한 직교 변환부로서, 그 도출부에 의하여 도출된 수평 방향의 1차원 직교 변환용의 제2 변환 행렬을 이용하여 수평 방향의 1차원 직교 변환을 행한다. 따라서 프라이머리 수평 변환부(312)는, 수평 방향의 1차원 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 프라이머리 수직 변환부(313)는 도출부로서 수직 방향의 1차원 직교 변환용의 제2 변환 행렬을 도출하고, 또한 직교 변환부로서, 그 도출부에 의하여 도출된 수직 방향의 1차원 직교 변환용의 제2 변환 행렬을 이용하여 수직 방향의 1차원 직교 변환을 행한다. 따라서 프라이머리 수직 변환부(313)는, 수직 방향의 1차원 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<프라이머리 수평 변환부>
도 23은, 도 22의 프라이머리 수평 변환부(312)의 주된 구성예를 나타내는 블록도이다. 도 23에 나타난 바와 같이, 프라이머리 수평 변환부(312)는 변환 행렬 도출부(321), 행렬 연산부(322), 스케일링부(323) 및 클립부(324)를 갖는다.
변환 행렬 도출부(321)는, 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH와, 변환 블록의 사이즈에 관한 정보를 입력으로 하고, 그 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH에 대응하는, 변환 블록과 동일한 사이즈의, 프라이머리 수평 변환용의 변환 행렬 TH(수평 방향의 1차원 직교 변환용의 변환 행렬 TH)을 도출한다. 변환 행렬 도출부(321)는 그 변환 행렬 TH를 행렬 연산부(322)에 공급한다.
행렬 연산부(322)는, 그 변환 행렬 도출부(321)로부터 공급되는 변환 행렬 TH를 이용하여, 입력 데이터 Xin(즉, 예측 잔차 D의 변환 블록)에 대한 수평 방향의 1차원 직교 변환을 행하여 중간 데이터 Y1을 얻는다. 이 연산은 이하의 식 (9)와 같이 행렬식으로 나타낼 수 있다.
Figure pct00007
행렬 연산부(322)는 그 중간 데이터 Y1을 스케일링부(323)에 공급한다.
스케일링부(323)는, 그 중간 데이터 Y1의 각 i행 j열 성분의 계수 Y1[i, j]을 소정의 시프트양 SH로 스케일링하여 중간 데이터 Y2를 얻는다. 이 스케일링은 이하의 식 (10)과 같이 나타낼 수 있다. 이후, 어느 2차원 행렬(2차원 배열) X의 i행 j열 성분((i, j) 성분)을 X[i, j]로 표기한다.
Figure pct00008
스케일링부(323)는 그 중간 데이터 Y2를 클립부(324)에 공급한다.
클립부(324)는, 그 중간 데이터 Y2의 각 i행 j열 성분의 계수 Y2[i, j]의 값을 클립하여 출력 데이터 Xout(즉, 프라이머리 수평 변환 후의 변환 계수 Coeff_Phor)을 도출한다. 이 처리는 이하의 식 (11)과 같이 나타낼 수 있다.
Figure pct00009
클립부(324)는, 그 출력 데이터 Xout(프라이머리 수평 변환 후의 변환 계수 Coeff_Phor)을 프라이머리 수평 변환부(312)의 외부에 출력한다(프라이머리 수직 변환부(313)에 공급함).
이상과 같은 구성의 프라이머리 수평 변환부(312)에 있어서, 변환 행렬 도출부(321)는 도출부로서, 상술한 본 기술을 적용한 처리를 행한다. 또한 행렬 연산부(322)는 직교 변환부로서, 상술한 본 기술을 적용한 처리를 행한다. 따라서 프라이머리 수평 변환부(312)는, 수평 방향의 1차원 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<변환 행렬 도출부>
도 24는, 도 23의 변환 행렬 도출부(321)의 주된 구성예를 나타내는 블록도이다. 도 24에 나타난 바와 같이, 변환 행렬 도출부(321)는 변환 행렬 LUT(331), 플립부(332) 및 전치부(333)를 갖는다. 또한 도 24에 있어서는, 데이터의 수수를 나타내는 화살표를 생략하고 있지만, 변환 행렬 도출부(321)는 임의의 처리부(처리 블록) 사이에서 임의의 데이터를 수수할 수 있다.
변환 행렬 LUT(331)는, 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH 및 변환 블록의 사이즈 N에 대응하는 변환 행렬을 보유(저장)하기 위한 룩업 테이블이다. 변환 행렬 LUT(331)는, 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH 및 변환 블록의 사이즈 N이 지정되면, 그것들에 대응하는 변환 행렬을 선택하여 출력한다. 이 도출예의 경우, 변환 행렬 LUT(331)는 그 변환 행렬을 베이스 변환 행렬 Tbase로서 플립부(332) 혹은 전치부(333), 또는 양쪽에 공급한다.
플립부(332)는, 입력되는 N행 N열의 변환 행렬 T를 플립하여, 플립 후의 변환 행렬 Tflip을 출력한다. 이 도출예의 경우, 플립부(332)는, 변환 행렬 LUT(331)로부터 공급되는 N행 N열의 베이스 변환 행렬 Tbase를 입력으로 하고, 그 베이스 변환 행렬 Tbase를 행 방향(수평 방향)으로 플립하여, 플립 후의 변환 행렬 Tflip을 변환 행렬 TH로서 변환 행렬 도출부(321)의 외부에 출력한다(행렬 연산부(322)에 공급함).
전치부(333)는, 입력되는 N행 N열의 변환 행렬 T를 전치하여, 전치 후의 변환 행렬 Ttranspose를 출력한다. 이 도출예의 경우, 전치부(333)는, 변환 행렬 LUT(331)로부터 공급되는 N행 N열의 베이스 변환 행렬 Tbase를 입력으로 하고, 그 베이스 변환 행렬 Tbase를 전치하고, 전치 후의 변환 행렬 Ttranspose를 변환 행렬 TH로서 변환 행렬 도출부(321)의 외부에 출력한다(행렬 연산부(322)에 공급함).
이상과 같이 변환 행렬 도출부(321)는 플립부(332)나 전치부(333)를 갖는다. 따라서 변환 행렬 도출부(321)는, 예를 들어 플립부(332)를 이용하여, 도 10에 나타나는 표의, 위로부터 1단째의 예의 도출예를 실현할 수 있다. 또한 변환 행렬 도출부(321)는, 예를 들어 전치부(333)를 이용하여, 도 10에 나타나는 표의, 위로부터 2단째의 예의 도출예를 실현할 수 있다.
<프라이머리 수직 변환부>
도 25는, 도 22의 프라이머리 수직 변환부(313)의 주된 구성예를 나타내는 블록도이다. 도 25에 나타난 바와 같이, 프라이머리 수직 변환부(313)는 변환 행렬 도출부(351), 행렬 연산부(352), 스케일링부(353) 및 클립부(354)를 갖는다.
변환 행렬 도출부(351)는, 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV와, 변환 블록의 사이즈에 관한 정보를 입력으로 하고, 그 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV에 대응하는, 변환 블록과 동일한 사이즈의, 프라이머리 수직 변환용의 변환 행렬 TV(수직 방향의 1차원 직교 변환용의 변환 행렬 TV)를 도출한다. 변환 행렬 도출부(351)는 그 변환 행렬 TV를 행렬 연산부(352)에 공급한다.
행렬 연산부(352)는, 그 변환 행렬 도출부(351)로부터 공급되는 변환 행렬 TV를 이용하여, 입력 데이터 Xin(즉, 프라이머리 수평 변환 후의 변환 계수 Coeff_Phor의 변환 블록)에 대한 수직 방향의 1차원 직교 변환을 행하여 중간 데이터 Y1을 얻는다. 이 연산은 이하의 식 (12)와 같이 행렬식으로 나타낼 수 있다.
Figure pct00010
행렬 연산부(352)는 그 중간 데이터 Y1을 스케일링부(353)에 공급한다.
스케일링부(353)는, 그 중간 데이터 Y1의 각 i행 j열 성분의 계수 Y1[i, j]을 소정의 시프트양 SV로 스케일링하여 중간 데이터 Y2를 얻는다. 이 스케일링은 이하의 식 (13)과 같이 나타낼 수 있다.
Figure pct00011
스케일링부(353)는 그 중간 데이터 Y2를 클립부(354)에 공급한다.
클립부(354)는, 그 중간 데이터 Y2의 각 i행 j열 성분의 계수 Y2[i, j]의 값을 클립하여 출력 데이터 Xout(즉, 프라이머리 수직 변환 후의 변환 계수 Coeff_Pver)을 도출한다. 이 처리는 이하의 식 (14)와 같이 나타낼 수 있다.
Figure pct00012
클립부(324)는, 그 출력 데이터 Xout(프라이머리 수직 변환 후의 변환 계수 Coeff_Pver)을 프라이머리 변환 후의 변환 계수 Coeff_P로서 프라이머리 수직 변환부(313)의 외부에 출력한다(세컨더리 변환부(153)에 공급함).
이상과 같은 구성의 프라이머리 수직 변환부(313)에 있어서, 변환 행렬 도출부(351)는 도출부로서, 상술한 본 기술을 적용한 처리를 행한다. 또한 행렬 연산부(352)는 직교 변환부로서, 상술한 본 기술을 적용한 처리를 행한다. 따라서 프라이머리 수직 변환부(313)는, 수직 방향의 1차원 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<변환 행렬 도출부>
도 26은, 도 25의 변환 행렬 도출부(351)의 주된 구성예를 나타내는 블록도이다. 도 26에 나타난 바와 같이, 변환 행렬 도출부(351)는 변환 행렬 LUT(361), 플립부(362) 및 전치부(363)를 갖는다. 또한 도 26에 있어서는, 데이터의 수수를 나타내는 화살표를 생략하고 있지만, 변환 행렬 도출부(351)는 임의의 처리부(처리 블록) 사이에서 임의의 데이터를 수수할 수 있다.
변환 행렬 LUT(361)는, 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV 및 변환 블록의 사이즈 N에 대응하는 변환 행렬을 보유(저장)하기 위한 룩업 테이블이다. 변환 행렬 LUT(361)는, 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV 및 변환 블록의 사이즈 N이 지정되면, 그것들에 대응하는 변환 행렬을 선택하여 출력한다. 이 도출예의 경우, 변환 행렬 LUT(361)는 그 변환 행렬을 베이스 변환 행렬 Tbase로서 플립부(362) 혹은 전치부(363), 또는 양쪽에 공급한다.
플립부(362)는, 입력되는 N행 N열의 변환 행렬 T를 플립하여, 플립 후의 변환 행렬 Tflip을 출력한다. 이 도출예의 경우, 플립부(362)는, 변환 행렬 LUT(361)로부터 공급되는 N행 N열의 베이스 변환 행렬 Tbase를 입력으로 하고, 그 베이스 변환 행렬 Tbase를 행 방향(수평 방향)으로 플립하여, 플립 후의 변환 행렬 Tflip을 변환 행렬 TV로서 변환 행렬 도출부(351)의 외부에 출력한다(행렬 연산부(352)에 공급함).
전치부(363)는, 입력되는 N행 N열의 변환 행렬 T를 전치하여, 전치 후의 변환 행렬 Ttranspose를 출력한다. 이 도출예의 경우, 전치부(363)는, 변환 행렬 LUT(361)로부터 공급되는 N행 N열의 베이스 변환 행렬 Tbase를 입력으로 하고, 그 베이스 변환 행렬 Tbase를 전치하고, 전치 후의 변환 행렬 Ttranspose를 변환 행렬 TV로서 변환 행렬 도출부(351)의 외부에 출력한다(행렬 연산부(352)에 공급함).
이상과 같이 변환 행렬 도출부(351)는 플립부(362)나 전치부(363)를 갖는다. 따라서 변환 행렬 도출부(351)는, 예를 들어 플립부(362)를 이용하여, 도 10에 나타나는 표의, 위로부터 1단째의 예의 도출예를 실현할 수 있다. 또한 변환 행렬 도출부(351)는, 예를 들어 전치부(363)를 이용하여, 도 10에 나타나는 표의, 위로부터 2단째의 예의 도출예를 실현할 수 있다.
<프라이머리 변환 처리의 흐름>
다음으로, 상술한 구성에 의하여 행해지는 처리의 흐름의 예 등에 대하여 설명한다. 이 경우의, 도 14의 스텝 S132에 있어서 실행되는 프라이머리 변환 처리의 흐름의 예를, 도 27의 흐름도를 참조하여 설명한다.
프라이머리 변환 처리가 개시되면, 프라이머리 변환부(152)의 프라이머리 변환 선택부(311)(도 22)는, 스텝 S301에 있어서, 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH(및 해당 식별자로 지정되는 변환 타입 TrTypeH)와, 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV(및 해당 식별자로 지정되는 변환 타입 TrTypeV)를 각각, 상술한 바와 같이 선택한다.
스텝 S302에 있어서, 프라이머리 수평 변환부(312)는, 스텝 S301에 있어서 얻어진 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH에 대응하는 프라이머리 수평 변환 처리를 예측 잔차 D에 대하여 행하여, 프라이머리 수평 변환 후의 변환 계수 Coeff_Phor를 도출한다.
스텝 S303에 있어서, 프라이머리 수직 변환부(313)는, 스텝 S301에 있어서 얻어진 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV에 대응하는 프라이머리 수직 변환 처리를 프라이머리 수평 변환 결과(프라이머리 수평 변환 후의 변환 계수 Coeff_Phor)에 대하여 행하여, 프라이머리 수직 변환 후의 변환 계수 Coeff_Pver(프라이머리 변환 후의 변환 계수 Coeff_P)를 도출한다.
스텝 S303의 처리가 종료되면 프라이머리 변환 처리가 종료되고, 처리는 도 14로 되돌아간다.
이상과 같은 프라이머리 변환 처리에 있어서, 스텝 S302나 스텝 S303의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 프라이머리 변환 처리를 실행함으로써, 프라이머리 수평 변환 처리나 프라이머리 수직 변환 처리에 필요한 메모리 용량의 증대를 억제할 수 있다.
<프라이머리 수평 변환 처리의 흐름>
도 27의 스텝 S302에 있어서 실행되는 프라이머리 수평 변환 처리의 흐름에 대하여, 도 28의 흐름도를 참조하여 설명한다.
프라이머리 수평 변환 처리가 개시되면, 프라이머리 수평 변환부(312)의 변환 행렬 도출부(321)(도 23)는, 스텝 S321에 있어서, 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH(또는 변환 타입 TrTypeH)에 대응하는 변환 행렬 TH를 도출한다.
스텝 S322에 있어서, 행렬 연산부(322)는, 그 도출된 변환 행렬 TH를 이용하여 입력 데이터 Xin(예측 잔차 D)에 대하여 수평 방향의 1차원 직교 변환을 행하여 중간 데이터 Y1을 얻는다. 이 처리를 행렬식으로서 표현하면, 상술한 식 (9)와 같이 나타낼 수 있다. 또한 이 처리를 요소별 연산으로서 표현하면, 이하의 식 (15)와 같이 나타낼 수 있다.
Figure pct00013
즉, 도 29에 나타난 바와 같이, 중간 데이터 Y1의 i행 j열 성분의 계수 Y1[i, j]에는, 입력 데이터 Xin의 i행째의 행 벡터 Xin[i, :]과, 변환 행렬 TH의 j행째의 행 벡터 TH[j, :]의 전치 행렬 TH T[:, j]의 내적을 설정한다(j=0, …, M-1, i=0, …, N-1). 여기서, M은 입력 데이터 Xin의 x 방향의 사이즈이고, N은 입력 데이터 Xin의 y 방향의 사이즈이다. M 및 N은 이하의 식 (16)과 같이 나타낼 수 있다.
Figure pct00014
도 28로 되돌아가, 스텝 S323에 있어서, 스케일링부(323)는, 스텝 S322의 처리에 의하여 도출된 중간 데이터 Y1의 각 i행 j열 성분의 계수 Y1[i, j]을 시프트양 SH로 스케일링하여 중간 데이터 Y2를 도출한다. 이 스케일링은 상술한 식 (10)과 같이 나타낼 수 있다.
스텝 S324에 있어서, 클립부(324)는, 스텝 S323의 처리에 의하여 도출된 중간 데이터 Y2의 각 i행 j열 성분의 계수 Y2[i, j]의 값을 클립하여 출력 데이터 Xout(즉, 프라이머리 수평 변환 후의 변환 계수 Coeff_Phor)을 얻는다. 이 처리는 상술한 식 (11)과 같이 나타낼 수 있다.
스텝 S324의 처리가 종료되면 프라이머리 수평 변환 처리가 종료되고, 처리는 도 27로 되돌아간다.
이상과 같은 프라이머리 수평 변환 처리에 있어서, 스텝 S321이나 스텝 S322의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 프라이머리 수평 변환 처리를 실행함으로써, 수평 방향의 1차원 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<변환 행렬 도출 처리의 흐름>
다음으로, 도 28의 스텝 S321에 있어서 실행되는 변환 행렬 도출 처리의 흐름의 예를, 도 30의 흐름도를 참조하여 설명한다.
변환 행렬 도출 처리가 개시되면, 변환 행렬 도출부(321)는, 스텝 S341에 있어서, 변환 타입 식별자 TrTypeIdxH에 대응하는 베이스 변환 타입 BaseTrType을, 예를 들어 도 31에 나타낸 대응표를 참조하여 구한다. 또한 이 처리를 수식으로 나타내면, 예를 들어 식 (17)과 같이 표현할 수 있다. 또한, 그 구한 베이스 변환 타입의 N행 N열의 변환 행렬을 변환 행렬 LUT로부터 판독하고, 이하의 식 (18)과 같이 그것을 베이스 변환 행렬 Tbase로 설정한다.
Figure pct00015
또한 변환 행렬 도출부(321)는, 이하의 식 (19)와 같이, 플립 플래그 FlipFlag에, 변환 타입 식별자 TrTypeIdxH에 대응하는 값을 설정한다. 또한 변환 행렬 도출부(321)는 이하의 식 (20)과 같이, 전치 플래그 TransposeFlag에, 변환 타입 식별자 TrTypeIdxH에 대응하는 값을 설정한다.
Figure pct00016
스텝 S342에 있어서, 변환 행렬 도출부(321)는, 플립 플래그 FlipFlag와 전치 플래그 TransposeFlag가 이하의 식 (21)로 나타내어지는 조건(ConditionA1)을 만족시키는지 여부를 판정한다.
Figure pct00017
상술한 조건(ConditionA1)을 만족시킨다고 판정된 경우(플립 플래그 FlipFlag와 전치 플래그 TransposeFlag가 모두 거짓(0)인 경우), 처리는 스텝 S343으로 진행된다.
스텝 S343에 있어서, 변환 행렬 도출부(321)는, 이하의 식 (22)에 나타난 바와 같이 베이스 변환 행렬 Tbase를 변환 행렬 TH로 설정한다.
Figure pct00018
스텝 S343의 처리가 종료되면 변환 행렬 도출 처리가 종료되고, 처리는 도 28로 되돌아간다. 또한 스텝 S342에 있어서, 상술한 조건(ConditionA1)을 만족시키지 않는다고 판정된 경우(플립 플래그 FlipFlag 또는 전치 플래그 TransposeFlag가 참(1)인 경우), 처리는, 스텝 S344로 진행된다.
스텝 S344에 있어서, 변환 행렬 도출부(321)는, 플립 플래그 FlipFlag와 전치 플래그 TransposeFlag가, 이하의 식 (23)으로 나타내어지는 조건(ConditionA2)을 만족시키는지 여부를 판정한다.
Figure pct00019
상술한 조건(ConditionA2)을 만족시킨다고 판정된 경우(플립 플래그 FlipFlag가 거짓(0)이고, 또한 전치 플래그 TransposeFlag가 참(1)인 경우), 처리는 스텝 S345로 진행된다.
스텝 S345에 있어서, 변환 행렬 도출부(321)는 전치부(333)를 통하여 베이스 변환 행렬 Tbase를 전치하여 변환 행렬 TH를 얻는다. 이 처리는 이하의 식 (24)와 같이 행렬식으로서 표현할 수 있다.
Figure pct00020
또한 이 처리를 요소별 연산으로서 표현하는 경우, 변환 행렬 도출부(321)는 이하의 식 (25)와 같이, 베이스 변환 행렬 Tbase의 i행 j열 성분((i, j) 성분)을 변환 행렬 TH의 (j, i) 성분으로 설정한다.
Figure pct00021
여기서, N행 N열의 변환 행렬 TH의 i행 j열 성분((i, j) 성분)을 TH[i, j]로 표기한다. 또한 2행째의 「for i, j=0, …, N-1」은, i와 j가 0 내지 N-1의 값을 갖는 것을 나타낸다. 즉, TH[j, i]가 N행 N열의 변환 행렬 TH의 모든 요소를 나타내는 것을 의미한다.
이와 같이 스텝 S345의 처리를 요소별 연산으로서 표현함으로써, 간단한 2차원 배열에 대한 액세스로 전치 조작을 실현하는 것 할 수 있다. 스텝 S345의 처리가 종료되면 변환 행렬 도출 처리가 종료되고, 처리는 도 28로 되돌아간다.
또한 스텝 S344에 있어서, 상술한 조건(ConditionA2)을 만족시키지 않는다고 판정된 경우(플립 플래그 FlipFlag가 참(1)이거나, 또는 전치 플래그 TransposeFlag가 거짓(0)인 경우), 처리는 스텝 S346으로 진행된다.
스텝 S346에 있어서, 변환 행렬 도출부(321)는 플립부(332)를 통하여 베이스 변환 행렬 Tbase를 플립하여 변환 행렬 TH를 얻는다. 이 처리는 이하의 식 (26)과 같이 행렬식으로서 표현할 수 있다.
Figure pct00022
여기서, ×는 행렬 곱을 나타내는 연산자이다. 또한 플립 행렬 J(Cross-Identity Matrix)는, N행 N열의 단위 행렬 I를 좌우 반전한 것이다.
또한 이 처리를 요소별 연산으로서 표현하는 경우, 변환 행렬 도출부(321)는 이하의 식 (27)과 같이, 변환 행렬 TH의 i행 j열 성분((i, j) 성분)으로 베이스 변환 행렬 Tbase의 (i, N-1-j) 성분을 설정한다.
Figure pct00023
여기서, N행 N열의 변환 행렬 TH의 i행 j열 성분((i, j) 성분)을 TH[i, j]로 표기한다. 또한 2행째의 「for i, j=0, …, N-1」은, i와 j가 각각 0 내지 N-1의 값을 갖는 것을 나타낸다. 즉, TH[i, j]가 N행 N열의 변환 행렬 TH의 모든 요소를 나타내는 것을 의미한다.
이와 같이 스텝 S346의 처리를 요소별 연산으로서 표현함으로써, 베이스 변환 행렬 Tbase와 플립 행렬 J의 행렬 연산을 하지 않고, 간단한 2차원 배열에 대한 액세스로 전치 조작을 실현하는 것 할 수 있다. 또한 플립 행렬 J가 불필요해진다. 스텝 S346의 처리가 종료되면 변환 행렬 도출 처리가 종료되고, 처리는 도 28로 되돌아간다.
이상과 같은 변환 행렬 도출 처리에 있어서, 스텝 S345나 스텝 S346의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 변환 행렬 도출 처리를 실행함으로써, 수평 방향의 1차원 직교 변환에 있어서, 도 10에 나타나는 표의, 위로부터 1단째나 2단째의 예의 도출예를 실현할 수 있다. 따라서 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 스텝 S344의 처리와 스텝 S346의 처리의 사이에, 이하에 설명하는 분기를 넣어도 된다. 즉, 그 스텝에 있어서, 변환 행렬 도출부(321)는, 플립 플래그 FlipFlag와 전치 플래그 TransposeFlag가, 이하의 식 (28)로 나타내어지는 조건(ConditionA3)을 만족시키는지 여부를 판정한다.
Figure pct00024
변환 행렬 도출부(321)는, 상술한 조건(ConditionA3)을 만족시킨다고 판정된 경우(플립 플래그 FlipFlag가 참(1)이고, 또한 전치 플래그 TransposeFlag가 거짓(0)인 경우), 처리는 스텝 S346으로 진행된다.
또한 상술한 조건(ConditionA3)을 만족시키지 않는다고 판정된 경우(플립 플래그 FlipFlag가 거짓(0)이거나, 또는 전치 플래그 TransposeFlag가 참(1)인 경우), 변환 행렬 도출 처리가 종료되고 처리는 도 28로 되돌아간다.
<프라이머리 수직 변환 처리의 흐름>
다음으로, 도 27의 스텝 S303에 있어서 실행되는 프라이머리 수직 변환 처리의 흐름에 대하여, 도 32의 흐름도를 참조하여 설명한다.
프라이머리 수직 변환 처리가 개시되면, 프라이머리 수직 변환부(313)의 변환 행렬 도출부(351)(도 25)는, 스텝 S361에 있어서, 변환 행렬 도출 처리를 실행하여, 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV(또는 변환 타입 TrTypeV)에 대응하는 변환 행렬 TV를 도출한다.
이 변환 행렬 도출 처리의 흐름은, 도 30의 흐름도를 참조하여 설명한 프라이머리 수평 변환의 경우와 마찬가지이므로, 그 설명을 생략한다. 예를 들어 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH를 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV로 치환하거나, 도출될 프라이머리 수평 변환용의 변환 행렬 TH를 프라이머리 수직 변환용의 변환 행렬 TV로 치환하거나 하는 등, 도 30을 참조하여 행한 설명의, 수평 방향에 관한 설명을 수직 방향으로 치환하면 된다.
스텝 S362에 있어서, 행렬 연산부(352)는, 그 도출된 변환 행렬 TV를 이용하여 입력 데이터 Xin(프라이머리 수평 변환 후의 변환 계수 Coeff_Phor)에 대하여 수직 방향의 1차원 직교 변환을 행하여 중간 데이터 Y1을 얻는다. 이 처리를 행렬식으로서 표현하면, 상술한 식 (12)와 같이 나타낼 수 있다. 또한 이 처리를 요소별 연산으로서 표현하면, 이하의 식 (29)와 같이 나타낼 수 있다.
Figure pct00025
즉, 이 경우, 도 33에 나타난 바와 같이, 중간 데이터 Y1의 i행 j열 성분의 계수 Y1[i, j]에는, 변환 행렬 TV의 i행째의 행 벡터 TV[i, :]와, 입력 데이터 Xin의 j열째의 열 벡터 Xin[:, j]의 내적을 설정한다(j=0, …, M-1, i=0, …, N-1).
스텝 S363에 있어서, 스케일링부(353)는, 스텝 S322의 처리에 의하여 도출된 중간 데이터 Y1의 각 i행 j열 성분의 계수 Y1[i, j]을 시프트양 SV로 스케일링하여 중간 데이터 Y2를 도출한다. 이 스케일링은 상술한 식 (13)과 같이 나타낼 수 있다.
스텝 S364에 있어서, 클립부(354)는, 스텝 S363의 처리에 의하여 도출된 중간 데이터 Y2의 각 i행 j열 성분의 계수 Y2[i, j]의 값을 클립하여 출력 데이터 Xout(즉, 프라이머리 수직 변환 후의 변환 계수 Coeff_Pver)을 얻는다. 이 처리는 상술한 식 (14)와 같이 나타낼 수 있다.
스텝 S364의 처리가 종료되면 프라이머리 수평 변환 처리가 종료되고, 처리는 도 27로 되돌아간다.
이상과 같은 프라이머리 수직 변환 처리에 있어서, 스텝 S361이나 스텝 S362의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 프라이머리 수직 변환 처리를 실행함으로써, 수직 방향의 1차원 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<역프라이머리 변환부>
다음으로, 본 실시예의 경우의 화상 복호 장치(200)의 구성에 대하여 설명한다. 도 34는, 이 경우의 역프라이머리 변환부(253)(도 16)의 주된 구성예를 나타내는 블록도이다. 도 34에 나타난 바와 같이, 역프라이머리 변환부(253)는 역프라이머리 변환 선택부(411), 역프라이머리 수직 변환부(412) 및 역프라이머리 수평 변환부(413)를 갖는다.
역프라이머리 변환 선택부(411)는, 예측 모드 정보 PInfo, 컴포넌트 식별자 compID, 적응 프라이머리 변환 플래그 apt_flag[compID], 및 프라이머리 변환 식별자 pt_idx [compID]를 입력으로 한다. 역프라이머리 변환 선택부(411)는 그것들 정보를 참조하여 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV 및 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxH를 도출한다. 역프라이머리 변환 선택부(411)는, 도출한 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV를 역프라이머리 수직 변환부(412)에 공급한다. 또한 역프라이머리 변환 선택부(411)는, 도출한 역프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH를 역프라이머리 수평 변환부(413)에 공급한다.
역프라이머리 수직 변환부(412)는, 역세컨더리 변환 후의 변환 계수 Coeff_IS, 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV, 및 변환 블록의 사이즈에 관한 정보를 입력으로 한다. 이 변환 블록의 사이즈에 관한 정보는, 변환 블록의 수평 방향 또는 수직 방향의 크기(계수의 수)를 나타내는 자연수 N이어도 되고, 변환 블록의 횡폭을 나타내는 log2TBHSize(횡폭의 대수값)여도 된다(N=1<<log2TBHSize). 역프라이머리 수직 변환부(412)는, 역세컨더리 변환 후의 변환 계수 Coeff_IS에 대하여, 변환 타입 식별자 TrTypeIdxV와 변환 블록의 사이즈로 정해지는 역프라이머리 수직 변환 IPver를 실행하여 역프라이머리 수직 변환 후의 변환 계수 Coeff_IPver를 도출한다. 역프라이머리 수직 변환부(412)는, 그 역프라이머리 수직 변환 후의 변환 계수 Coeff_IPver를 역프라이머리 수평 변환부(413)에 공급한다.
역프라이머리 수평 변환부(413)는, 역프라이머리 수직 변환 후의 변환 계수 Coeff_IPver, 역프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH, 및 변환 블록의 사이즈에 관한 정보를 입력으로 한다. 이 변환 블록의 사이즈에 관한 정보는, 변환 블록의 수평 방향 또는 수직 방향의 크기(계수의 수)를 나타내는 자연수 N이어도 되고, 변환 블록의 횡폭을 나타내는 log2TBWSize(횡폭의 대수값)여도 된다(N=1<<log2TBWSize). 역프라이머리 수평 변환부(413)는, 역프라이머리 수직 변환부(412)로부터 공급되는 역프라이머리 수직 변환 후의 변환 계수 Coeff_IPver에 대하여, 변환 타입 식별자 TrTypeIdxH와 변환 블록의 사이즈로 정해지는 역프라이머리 수평 변환 IPhor를 실행하여, 그 역프라이머리 수평 변환 후의 변환 계수 Coeff_IPhor(즉, 역프라이머리 변환 후의 변환 계수 Coeff_IP)를 도출한다. 역프라이머리 수평 변환부(413)는, 그 역프라이머리 수평 변환 후의 변환 계수 Coeff_IPhor를 예측 잔차 D'로서 역프라이머리 변환부(253)의 외부에 출력한다(연산부(215)에 공급함).
이상과 같은 구성의 역프라이머리 변환부(253)에 있어서, 역프라이머리 수직 변환부(412) 및 역프라이머리 수평 변환부(413)는 각각 도출부 및 직교 변환부로서, 상술한 본 기술을 적용한 처리를 행한다.
즉, 역프라이머리 수직 변환부(412)는 도출부로서, 수직 방향의 역1차원 직교 변환용의 제2 변환 행렬을 도출하고, 또한 역직교 변환부로서, 그 도출부에 의하여 도출된 수직 방향의 역1차원 직교 변환용의 제2 변환 행렬을 이용하여 수직 방향의 역1차원 직교 변환을 행한다. 따라서 역프라이머리 수직 변환부(412)는, 수직 방향의 역1차원 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 역프라이머리 수평 변환부(413)는 도출부로서, 수평 방향의 역1차원 직교 변환용의 제2 변환 행렬을 도출하고, 또한 직교 변환부로서, 그 도출부에 의하여 도출된 수평 방향의 역1차원 직교 변환용의 제2 변환 행렬을 이용하여 수평 방향의 역1차원 직교 변환을 행한다. 따라서 역프라이머리 수평 변환부(413)는, 수평 방향의 역1차원 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<역프라이머리 수직 변환부>
도 35는, 도 34의 역프라이머리 수직 변환부(412)의 주된 구성예를 나타내는 블록도이다. 도 35에 나타난 바와 같이, 역프라이머리 수직 변환부(412)는 변환 행렬 도출부(421), 행렬 연산부(422), 스케일링부(423) 및 클립부(424)를 갖는다.
변환 행렬 도출부(421)는, 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV와, 변환 블록의 사이즈에 관한 정보를 입력으로 하고, 그 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV에 대응하는, 변환 블록과 동일한 사이즈의, 역프라이머리 수직 변환용의 변환 행렬 TV(수직 방향의 역1차원 직교 변환용의 변환 행렬 TV)를 도출한다. 변환 행렬 도출부(421)는 그 변환 행렬 TV를 행렬 연산부(422)에 공급한다.
행렬 연산부(422)는 그 변환 행렬 도출부(421)로부터 공급되는 변환 행렬 TV를 이용하여, 입력 데이터 Xin(즉, 역세컨더리 변환 후의 변환 계수 Coeff_IS의 변환 블록)에 대한 수직 방향의 역1차원 직교 변환을 행하여 중간 데이터 Y1을 얻는다. 이 연산은 이하의 식 (30)과 같이 행렬식으로 나타낼 수 있다.
Figure pct00026
행렬 연산부(422)는 그 중간 데이터 Y1을 스케일링부(423)에 공급한다.
스케일링부(423)는 그 중간 데이터 Y1의 각 i행 j열 성분의 계수 Y1[i, j]을 소정의 시프트양 SIV로 스케일링하여 중간 데이터 Y2를 얻는다. 이 스케일링은, 이하의 식 (31)과 같이 나타낼 수 있다.
Figure pct00027
스케일링부(423)는 그 중간 데이터 Y2를 클립부(424)에 공급한다.
클립부(424)는, 그 중간 데이터 Y2의 각 i행 j열 성분의 계수 Y2[i, j]의 값을 클립하여 출력 데이터 Xout(즉, 역프라이머리 수직 변환 후의 변환 계수 Coeff_IPver)을 도출한다. 이 처리는 상술한 식 (11)과 같이 나타낼 수 있다.
클립부(424)는, 그 출력 데이터 Xout(역프라이머리 수직 변환 후의 변환 계수 Coeff_IPver)을 역프라이머리 수직 변환부(412)의 외부에 출력한다(역프라이머리 수평 변환부(413)에 공급함).
이상과 같은 구성의 역프라이머리 수직 변환부(412)에 있어서, 변환 행렬 도출부(421)는 도출부로서, 상술한 본 기술을 적용한 처리를 행한다. 또한 행렬 연산부(422)는 직교 변환부로서, 상술한 본 기술을 적용한 처리를 행한다. 따라서 역프라이머리 수직 변환부(412)는, 수직 방향의 역1차원 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<변환 행렬 도출부>
도 36은, 도 35의 변환 행렬 도출부(421)의 주된 구성예를 나타내는 블록도이다. 도 36에 나타난 바와 같이, 변환 행렬 도출부(421)는 변환 행렬 LUT(431), 플립부(432) 및 전치부(433)를 갖는다. 또한 도 36에 있어서는, 데이터의 수수를 나타내는 화살표를 생략하고 있지만, 변환 행렬 도출부(421)는 임의의 처리부(처리 블록) 사이에서 임의의 데이터를 수수할 수 있다.
변환 행렬 LUT(431)는, 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV 및 변환 블록의 사이즈 N에 대응하는 변환 행렬을 보유(저장)하기 위한 룩업 테이블이다. 변환 행렬 LUT(431)는, 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV 및 변환 블록의 사이즈 N이 지정되면, 그것들에 대응하는 변환 행렬을 선택하여 출력한다. 이 도출예의 경우, 변환 행렬 LUT(431)는 그 변환 행렬을 베이스 변환 행렬 Tbase로서 플립부(432) 혹은 전치부(433), 또는 양쪽에 공급한다.
플립부(432)는, 입력되는 N행 N열의 변환 행렬 T를 플립하여, 플립 후의 변환 행렬 Tflip을 출력한다. 이 도출예의 경우, 플립부(432)는, 변환 행렬 LUT(431)로부터 공급되는 N행 N열의 베이스 변환 행렬 Tbase를 입력으로 하고, 그 베이스 변환 행렬 Tbase를 행 방향(수평 방향)으로 플립하고, 플립 후의 변환 행렬 Tflip을 변환 행렬 TV로서 변환 행렬 도출부(321)의 외부에 출력한다(행렬 연산부(422)에 공급함).
전치부(433)는, 입력되는 N행 N열의 변환 행렬 T를 전치하여, 전치 후의 변환 행렬 Ttranspose를 출력한다. 이 도출예의 경우, 전치부(433)는, 변환 행렬 LUT(431)로부터 공급되는 N행 N열의 베이스 변환 행렬 Tbase를 입력으로 하고, 그 베이스 변환 행렬 Tbase를 전치하고, 전치 후의 변환 행렬 Ttranspose를 변환 행렬 TV로서 변환 행렬 도출부(421)의 외부에 출력한다(행렬 연산부(422)에 공급함).
이상과 같이 변환 행렬 도출부(421)는 플립부(432)나 전치부(433)를 갖는다. 따라서 변환 행렬 도출부(421)는, 예를 들어 플립부(432)를 이용하여, 도 10에 나타나는 표의, 위로부터 1단째의 예의 도출예를 실현할 수 있다. 또한 변환 행렬 도출부(421)는, 예를 들어 전치부(433)를 이용하여, 도 10에 나타나는 표의, 위로부터 2단째의 예의 도출예를 실현할 수 있다.
<역프라이머리 수평 변환부>
도 37은, 도 34의 역프라이머리 수평 변환부(413)의 주된 구성예를 나타내는 블록도이다. 도 37에 나타난 바와 같이, 역프라이머리 수평 변환부(413)는 변환 행렬 도출부(451), 행렬 연산부(452), 스케일링부(453) 및 클립부(454)를 갖는다.
변환 행렬 도출부(451)는, 역프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH와, 변환 블록의 사이즈에 관한 정보를 입력으로 하고, 그 역프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH에 대응하는, 변환 블록과 동일한 사이즈의, 역프라이머리 수평 변환용의 변환 행렬 TH(수평 방향의 역1차원 직교 변환용의 변환 행렬 TH)를 도출한다. 변환 행렬 도출부(451)는 그 변환 행렬 TH를 행렬 연산부(452)에 공급한다.
행렬 연산부(452)는, 그 변환 행렬 도출부(451)로부터 공급되는 변환 행렬 TH를 이용하여, 입력 데이터 Xin(즉, 역프라이머리 수직 변환 후의 변환 계수 Coeff_IPver의 변환 블록)에 대한 수평 방향의 역1차원 직교 변환을 행하여 중간 데이터 Y1을 얻는다. 이 연산은 이하의 식 (32)와 같이 행렬식으로 나타낼 수 있다.
Figure pct00028
행렬 연산부(452)는 그 중간 데이터 Y1을 스케일링부(453)에 공급한다.
스케일링부(453)는 그 중간 데이터 Y1의 각 i행 j열 성분의 계수 Y1[i, j]을 소정의 시프트양 SIH로 스케일링하여 중간 데이터 Y2를 얻는다. 이 스케일링은, 이하의 식 (33)과 같이 나타낼 수 있다.
Figure pct00029
스케일링부(453)는 그 중간 데이터 Y2를 클립부(454)에 공급한다.
클립부(454)는, 그 중간 데이터 Y2의 각 i행 j열 성분의 계수 Y2[i, j]의 값을 클립하여 출력 데이터 Xout(즉, 역프라이머리 수평 변환 후의 변환 계수 Coeff_IPhor)을 도출한다. 이 처리는 상술한 식 (11)과 같이 나타낼 수 있다.
클립부(454)는, 그 출력 데이터 Xout(역프라이머리 수평 변환 후의 변환 계수 Coeff_IPhor(역프라이머리 변환 후의 변환 계수 Coeff_IP))을 예측 잔차 D'로서 역프라이머리 수평 변환부(413)의 외부에 출력한다(연산부(215)에 공급함).
이상과 같은 구성의 역프라이머리 수평 변환부(413)에 있어서, 변환 행렬 도출부(451)는 도출부로서, 상술한 본 기술을 적용한 처리를 행한다. 또한 행렬 연산부(452)는 역직교 변환부로서, 상술한 본 기술을 적용한 처리를 행한다. 따라서 역프라이머리 수평 변환부(413)는, 수평 방향의 역1차원 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<변환 행렬 도출부>
도 38은, 도 37의 변환 행렬 도출부(451)의 주된 구성예를 나타내는 블록도이다. 도 38에 나타난 바와 같이, 변환 행렬 도출부(451)는 변환 행렬 LUT(461), 플립부(462) 및 전치부(463)를 갖는다. 또한 도 38에 있어서는, 데이터의 수수를 나타내는 화살표를 생략하고 있지만, 변환 행렬 도출부(451)는 임의의 처리부(처리 블록) 사이에서 임의의 데이터를 수수할 수 있다.
변환 행렬 LUT(461)는, 역프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH 및 변환 블록의 사이즈 N에 대응하는 변환 행렬을 보유(저장)하기 위한 룩업 테이블이다. 변환 행렬 LUT(461)는, 역프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH 및 변환 블록의 사이즈 N이 지정되면, 그것들에 대응하는 변환 행렬을 선택하여 출력한다. 이 도출예의 경우, 변환 행렬 LUT(461)는 그 변환 행렬을 베이스 변환 행렬 Tbase로서 플립부(462) 혹은 전치부(463), 또는 양쪽에 공급한다.
플립부(462)는, 입력되는 N행 N열의 변환 행렬 T를 플립하여, 플립 후의 변환 행렬 Tflip을 출력한다. 이 도출예의 경우, 플립부(462)는, 변환 행렬 LUT(461)로부터 공급되는 N행 N열의 베이스 변환 행렬 Tbase를 입력으로 하고, 그 베이스 변환 행렬 Tbase를 행 방향(수평 방향)으로 플립하고, 플립 후의 변환 행렬 Tflip을, 변환 행렬 TH로서 변환 행렬 도출부(451)의 외부에 출력한다(행렬 연산부(452)에 공급함).
전치부(463)는, 입력되는 N행 N열의 변환 행렬 T를 전치하여, 전치 후의 변환 행렬 Ttranspose를 출력한다. 이 도출예의 경우, 전치부(463)는, 변환 행렬 LUT(461)로부터 공급되는 N행 N열의 베이스 변환 행렬 Tbase를 입력으로 하고, 그 베이스 변환 행렬 Tbase를 전치하고, 전치 후의 변환 행렬 Ttranspose를 변환 행렬 TH로서 변환 행렬 도출부(451)의 외부에 출력한다(행렬 연산부(452)에 공급함).
이상과 같이 변환 행렬 도출부(451)는 플립부(462)나 전치부(463)를 갖는다. 따라서 변환 행렬 도출부(451)는, 예를 들어 플립부(462)를 이용하여, 도 10에 나타나는 표의, 위로부터 1단째의 예의 도출예를 실현할 수 있다. 또한 변환 행렬 도출부(451)는, 예를 들어 전치부(463)를 이용하여, 도 10에 나타나는 표의, 위로부터 2단째의 예의 도출예를 실현할 수 있다.
<역프라이머리 변환 처리의 흐름>
다음으로, 화상 복호 장치(200)의 상술한 구성에 의하여 행해지는 처리의 흐름의 예 등에 대하여 설명한다. 이 경우의, 도 18의 스텝 S233에 있어서 실행되는 역프라이머리 변환 처리의 흐름의 예를, 도 39의 흐름도를 참조하여 설명한다.
역프라이머리 변환 처리가 개시되면, 역프라이머리 변환부(253)의 역프라이머리 변환 선택부(411)(도 34)는, 스텝 S401에 있어서, 역프라이머리 변환 선택 처리를 행하고, 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV(또는 변환 타입 TrTypeV)와, 역프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH(또는 변환 타입 TrTypeH)를 각각 선택한다.
스텝 S402에 있어서, 역프라이머리 수직 변환부(412)는, 스텝 S401에 있어서 얻어진 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV에 대응하는 역프라이머리 수직 변환 처리를 역세컨더리 변환 후의 변환 계수 Coeff_IS에 대하여 행하여, 역프라이머리 수직 변환 후의 변환 계수 Coeff_IPver를 도출한다.
스텝 S403에 있어서, 역프라이머리 수평 변환부(413)는, 스텝 S401에 있어서 얻어진 역프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH에 대응하는 역프라이머리 수평 변환 처리를 역프라이머리 수직 변환 후의 변환 계수 Coeff_IPver에 대하여 행하여, 역프라이머리 수평 변환 후의 변환 계수 Coeff_IPhor(즉, 역프라이머리 변환 후의 변환 계수 Coeff_IP(예측 잔차 D'))을 도출한다.
스텝 S403의 처리가 종료되면 역프라이머리 변환 처리가 종료되고, 처리는 도 18로 되돌아간다.
이상과 같은 역프라이머리 변환 처리에 있어서, 스텝 S402나 스텝 S403의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 역프라이머리 변환 처리를 실행함으로써, 역프라이머리 수직 변환 처리나 역프라이머리 수평 변환 처리에 필요한 메모리 용량의 증대를 억제할 수 있다.
<역프라이머리 변환 선택 처리의 흐름>
다음으로, 도 39의 스텝 S401에 있어서 실행되는 역프라이머리 변환 선택 처리의 흐름의 예를, 도 40의 흐름도를 참조하여 설명한다.
역프라이머리 변환 선택 처리가 개시되면, 역프라이머리 변환 선택부(411)는, 스텝 S421에 있어서, 컴포넌트 식별자 compID의 적응 프라이머리 변환 플래그 apt_flag[compID]가 참(1)인지 여부를 판정한다. 컴포넌트 식별자 compID의 적응 프라이머리 변환 플래그 apt_flag[compID]가 참(1)이라고 판정된 경우, 처리는 스텝 S422로 진행된다.
스텝 S422에 있어서, 역프라이머리 변환 선택부(411)는 예측 모드 정보 Pinfo에 기초하여 변환 세트군으로부터 각 방향의 변환 세트 TrSetH, TrSetV를 선택한다.
스텝 S423에 있어서, 역프라이머리 변환 선택부(411)는 변환 세트 TrSetH와 프라이머리 변환 식별자 pt_idx [compID]에 기초하여 역프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH를 도출한다. 이 처리는, 예를 들어 이하의 식 (34)와 같이 나타낼 수 있다.
Figure pct00030
스텝 S424에 있어서, 역프라이머리 변환 선택부(411)는 변환 세트 TrSetV와 역프라이머리 변환 식별자 pt_idx [compID]에 기초하여 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV를 도출한다. 이 처리는, 예를 들어 이하의 식 (35)와 같이 나타낼 수 있다.
Figure pct00031
스텝 S424의 처리가 종료되면 역프라이머리 변환 선택 처리가 종료되고, 처리는 도 39로 되돌아간다.
또한 스텝 S421에 있어서, 컴포넌트 식별자 compID의 적응 프라이머리 변환 플래그 apt_flag[compID]가 거짓(0)이라고 판정된 경우, 처리는 스텝 S425로 진행된다.
스텝 S425에 있어서, 역프라이머리 변환 선택부(411)는 역프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH에 소정의 직교 변환(예를 들어 DCT2)을 설정(선택)한다. 이 처리는, 예를 들어 이하의 식 (36)과 같이 나타낼 수 있다.
Figure pct00032
스텝 S426에 있어서, 역프라이머리 변환 선택부(411)는 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV에 소정의 직교 변환(예를 들어 DCT2)을 설정(선택)한다. 이 처리는, 예를 들어 이하의 식 (37)과 같이 나타낼 수 있다.
Figure pct00033
스텝 S426의 처리가 종료되면 역프라이머리 변환 선택 처리가 종료되고, 처리는 도 39로 되돌아간다.
<역프라이머리 수직 변환 처리의 흐름>
다음으로, 도 39의 스텝 S402에 있어서 실행되는 역프라이머리 수직 변환 처리의 흐름에 대하여, 도 41의 흐름도를 참조하여 설명한다.
역프라이머리 수직 변환 처리가 개시되면, 역프라이머리 수직 변환부(412)의 변환 행렬 도출부(421)(도 35)는, 스텝 S441에 있어서, 변환 행렬 도출 처리를 실행하여, 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV에 대응하는 변환 행렬 TV를 도출한다.
이 경우의 변환 행렬 도출 처리는, 도 30의 흐름도를 참조하여 설명한 프라이머리 수평 변환의 경우와 마찬가지의 흐름으로 행해진다. 따라서 그 설명을 생략한다. 예를 들어 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH를 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV로 치환하거나, 도출될 프라이머리 수평 변환용의 변환 행렬 TH를 역프라이머리 수직 변환용의 변환 행렬 TV로 치환하거나 함으로써, 도 30을 참조하여 행한 설명을, 이 경우의 변환 행렬 도출 처리의 설명으로서 적용할 수 있다.
스텝 S442에 있어서, 행렬 연산부(422)는, 그 도출된 변환 행렬 TV를 이용하여 입력 데이터 Xin(즉, 역세컨더리 변환 후의 변환 계수 Coeff_IS)에 대하여 수직 방향의 역1차원 직교 변환을 행하여 중간 데이터 Y1을 얻는다. 이 처리를 행렬식으로서 표현하면, 상술한 식 (30)과 같이 나타낼 수 있다.
스텝 S443에 있어서, 스케일링부(423)는, 스텝 S442의 처리에 의하여 도출된 중간 데이터 Y1의 각 i행 j열 성분의 계수 Y1[i, j]을 시프트양 SIV로 스케일링하여 중간 데이터 Y2를 도출한다. 이 스케일링은 상술한 식 (31)과 같이 나타낼 수 있다.
스텝 S444에 있어서, 클립부(424)는, 스텝 S443의 처리에 의하여 도출된 중간 데이터 Y2의 각 i행 j열 성분의 계수 Y2[i, j]의 값을 클립하여 출력 데이터 Xout(즉, 역프라이머리 수직 변환 후의 변환 계수 Coeff_IPver)을 얻는다. 이 처리는 상술한 식 (11)과 같이 나타낼 수 있다.
스텝 S444의 처리가 종료되면 역프라이머리 수직 변환 처리가 종료되고, 처리는 도 39로 되돌아간다.
이상과 같은 역프라이머리 수직 변환 처리에 있어서, 스텝 S441이나 스텝 S442의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 역프라이머리 수직 변환 처리를 실행함으로써, 수직 방향의 역1차원 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<역프라이머리 수평 변환 처리의 흐름>
다음으로, 도 39의 스텝 S403에 있어서 실행되는 역프라이머리 수평 변환 처리의 흐름에 대하여, 도 42의 흐름도를 참조하여 설명한다.
역프라이머리 수평 변환 처리가 개시되면, 역프라이머리 수평 변환부(413)의 변환 행렬 도출부(451)(도 37)는, 스텝 S461에 있어서, 변환 행렬 도출 처리를 실행하여, 역프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH에 대응하는 변환 행렬 TH를 도출한다.
이 경우의 변환 행렬 도출 처리는, 도 30의 흐름도를 참조하여 설명한 프라이머리 수평 변환의 경우와 마찬가지의 흐름으로 행해진다. 따라서 그 설명을 생략한다. 예를 들어 프라이머리 수평 변환을 역프라이머리 수평 변환으로 치환하거나 하면, 도 30을 참조하여 행한 설명을, 이 경우의 변환 행렬 도출 처리의 설명으로서 적용할 수 있다.
스텝 S462에 있어서, 행렬 연산부(452)는, 그 도출된 변환 행렬 TH를 이용하여 입력 데이터 Xin(즉, 역프라이머리 수직 변환 후의 변환 계수 Coeff_IPver)에 대하여 수평 방향의 역1차원 직교 변환을 행하여 중간 데이터 Y1을 얻는다. 이 처리를 행렬식으로서 표현하면, 상술한 식 (32)와 같이 나타낼 수 있다.
스텝 S463에 있어서, 스케일링부(453)는, 스텝 S462의 처리에 의하여 도출된 중간 데이터 Y1의 각 i행 j열 성분의 계수 Y1[i, j]을 시프트양 SIH로 스케일링하여 중간 데이터 Y2를 도출한다. 이 스케일링은 상술한 식 (33)과 같이 나타낼 수 있다.
스텝 S464에 있어서, 클립부(454)는, 스텝 S463의 처리에 의하여 도출된 중간 데이터 Y2의 각 i행 j열 성분의 계수 Y2[i, j]의 값을 클립하여 출력 데이터 Xout(즉, 역프라이머리 수평 변환 후의 변환 계수 Coeff_IPhor)을 얻는다. 이 처리는 상술한 식 (14)와 같이 나타낼 수 있다.
스텝 S464의 처리가 종료되면 역프라이머리 수평 변환 처리가 종료되고, 처리는 도 39로 되돌아간다.
이상과 같은 역프라이머리 수평 변환 처리에 있어서, 스텝 S461이나 스텝 S462의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 역프라이머리 수평 변환 처리를 실행함으로써, 수평 방향의 역1차원 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<2-3. 실시예 1-2>
<콘셉트>
다음으로, 도 10에 나타나는 표에 있어서, 최상단의 항목명의 행을 제외하고 위로부터 3단째의 예에 대하여 설명한다.
상술한 바와 같이, 위로부터 3단째의 예의 도출은, 쌍으로 되는 DCT/DST 사이의 특성에 주목한 것이다. 보다 구체적으로는, 쌍으로 되는 DCT/DST 사이(예를 들어 DST7과 DCT8)에서는 짝수번째의 행 벡터가 축대칭이고 홀수번째의 행 벡터가 점대칭인 점에 주목하고 있다. 이 경우, 도출부는 제1 변환 행렬을 플립하고, 플립 후의 제1 변환 행렬 중, 홀수번째의 행 벡터의 부호를 반전하여 제2 변환 행렬을 도출한다. 즉, 도출부는, 도 43에 나타난 바와 같이, DST7의 변환 행렬을 행 방향으로 플립하고, 또한 홀수차의 행 벡터의 부호를 반전하여 손실 없이 DCT8의 변환 행렬을 도출한다. 따라서 당연히, 그 도출된 DCT8에 의하여, 0차의 행 벡터의 파형이 동일한(감소형의) DCT8의 변환 행렬을 대체할 수 있다.
이 도출의 구체적인 예를 도 44에 나타낸다. 도 44에 나타난 바와 같이, 이 도출은, 홀수차의 행의 요소가 부인 단위 행렬 D와, 베이스 변환 행렬 Tbase(DST7)와, 플립 행렬 J의 행렬 곱에 의하여 나타낼 수 있다.
즉, 이 도출예는, 2회의 조작(플립과 부호 반전)으로 제2 변환 행렬을 도출할 수 있다. 또한 각 조작도 용이하다. 즉, 용이하게 제2 변환 행렬을 도출할 수 있다.
또한 이 도출예를 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DCT8의 변환 행렬을 준비할 필요가 없게 된다. 즉, 고유 변환 타입을 삭감할 수 있다.
이 경우, 도 45의 표에 나타난 바와 같이, 비특허문헌 1에 기재된 기술의 경우에 5종류 필요했던 변환 행렬(도 6의 A의 표 참조)을 4종류로 저감시킬 수 있으므로, LUT 사이즈의 합계는 약 47KB로 할 수 있다. 즉, 비특허문헌 1에 기재된 기술의 경우에 비해(약 53KB(도 6의 A의 표)) LUT의 사이즈를 저감시킬 수 있다. 즉, LUT의 사이즈의 증대를 억제할 수 있다.
또한 상술한 바와 같이, 이 경우, 제2 변환 타입으로서 변환 타입 DCT8의 변환 행렬을 얻을 수 있으므로, 그 제2 변환 타입의 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DCT8의 변환 행렬을 직교 변환·역직교 변환에 이용하는 경우와 동일한 부호화 효율이 얻어진다.
<변환 행렬 도출부>
다음으로, 이와 같은 도출을 행하기 위한 구성이나 처리 등에 대하여 설명한다. 먼저, 화상 부호화 장치(100)가 갖는 본 실시 형태의 기술 구성에 대하여 설명한다. 이 경우의 프라이머리 변환부(152), 프라이머리 수평 변환부(312), 및 프라이머리 수직 변환부(313) 등의 구성은, 도 22를 참조하여 설명한 <2-2. 실시예 1-1>의 경우와 마찬가지이므로, 그 설명을 생략한다.
도 46은, 이 경우의 변환 행렬 도출부(321)(프라이머리 수평 변환부(312) 내의 변환 행렬 도출부(321)(도 23))의 주된 구성예를 나타내는 블록도이다. 도 46에 나타난 바와 같이, 이 경우의 변환 행렬 도출부(321)는 변환 행렬 LUT(331), 플립부(332) 및 부호 반전부(501)를 갖는다. 또한 도 46에 있어서는, 데이터의 수수를 나타내는 화살표를 생략하고 있지만, 변환 행렬 도출부(321)는 임의의 처리부(처리 블록) 사이에서 임의의 데이터를 수수할 수 있다.
변환 행렬 LUT(331) 및 플립부(332)는 도 24의 경우와 마찬가지이다.
부호 반전부(501)는 N행 N열의 변환 행렬 T를 입력으로 하고, 그 변환 행렬 T의 소정 개소의 부호를 반전하여, 부호 반전 후의 변환 행렬 TInvSign을 출력한다. 이 도출예(실시예 1-2)의 경우, 변환 행렬 도출부(321)는, 변환 행렬 LUT(331)에 있어서 선택한 N행 N열의 베이스 변환 행렬 Tbase를, 플립부(332)를 통하여 수평 방향으로 플립하고, 또한 부호 반전부(501)를 통하여 홀수차 행 벡터의 부호를 반전하고, 변환 행렬 TInvSign을 변환 행렬 TH로서 변환 행렬 도출부(321)의 외부에 출력한다(행렬 연산부(322)에 공급함).
이상과 같이, 변환 행렬 도출부(321)는 플립부(332) 및 부호 반전부(501)를 이용하여, 도 10에 나타나는 표의, 위로부터 3단째의 예의 도출예를 실현할 수 있다.
<변환 행렬 도출부>
도 47은, 이 경우의 프라이머리 수직 변환부(313)가 갖는 변환 행렬 도출부(351)의 주된 구성예를 나타내는 블록도이다. 도 47에 나타난 바와 같이 이 경우의 변환 행렬 도출부(351)는, 변환 행렬 도출부(321)와 마찬가지로 변환 행렬 LUT(361), 플립부(362) 및 부호 반전부(502)를 갖는다. 또한 도 47에 있어서는, 데이터의 수수를 나타내는 화살표를 생략하고 있지만, 변환 행렬 도출부(351)는 임의의 처리부(처리 블록) 사이에서 임의의 데이터를 수수할 수 있다.
변환 행렬 LUT(361) 및 플립부(362)는 도 26의 경우와 마찬가지이다.
부호 반전부(502)는 부호 반전부(501)와 마찬가지로 N행 N열의 변환 행렬 T를 입력으로 하고, 그 변환 행렬 T의 소정 개소의 부호를 반전하여 부호 반전 후의 변환 행렬 TInvSign을 출력한다. 이 도출예의 경우, 변환 행렬 도출부(351)는 변환 행렬 LUT(361)에 있어서 선택한 N행 N열의 베이스 변환 행렬 Tbase를, 플립부(362)를 통하여 수평 방향으로 플립하고, 또한 부호 반전부(502)를 통하여 홀수차 행 벡터의 부호를 반전하여 변환 행렬 TInvSign을 변환 행렬 TV로서 변환 행렬 도출부(351)의 외부에 출력한다(행렬 연산부(352)에 공급함).
이상과 같이, 변환 행렬 도출부(351)는 플립부(362) 및 부호 반전부(502)를 이용하여, 도 10에 나타나는 표의, 위로부터 3단째의 예의 도출예를 실현할 수 있다.
<변환 행렬 도출 처리의 흐름>
이 경우의 프라이머리 변환 처리, 프라이머리 수평 변환 처리, 프라이머리 수직 변환 처리는, <2-2. 실시예 1-1>의 경우와 마찬가지의 흐름으로 행해지므로, 이들 처리에 대한 설명은 생략한다.
다음으로, 도 28의 스텝 S321에 있어서, 프라이머리 수평 변환부(312) 내의 변환 행렬 도출부(321)에 의하여 실행되는, 이 경우의 변환 행렬 도출 처리의 흐름의 예를, 도 48의 흐름도를 참조하여 설명한다.
변환 행렬 도출 처리가 개시되면, 변환 행렬 도출부(321)는, 스텝 S501에 있어서, 변환 타입 식별자 TrTypeIdxH에 대응하는 베이스 변환 타입 BaseTrType을, 예를 들어 도 49에 나타낸 대응표를 참조하여 구한다. 또한 이 처리를 수식으로 나타내면, 예를 들어 상술한 식 (17)과 같이 표현할 수 있다. 또한 변환 행렬 도출부(321)는, 그 구한 베이스 변환 타입의 N행 N열의 변환 행렬을 변환 행렬 LUT로부터 판독하고, 상술한 식 (18)과 같이 그것을 베이스 변환 행렬 Tbase로 설정한다.
또한 변환 행렬 도출부(321)는 상술한 식 (19)와 같이, 플립 플래그 FlipFlag에, 변환 타입 식별자 TrTypeIdxH에 대응하는 값을 설정한다. 또한 변환 행렬 도출부(321)는 이하의 식 (38)과 같이, 부호 반전 플래그 InvSignFlag에, 변환 타입 식별자 TrTypeIdxH에 대응하는 값을 설정한다.
Figure pct00034
스텝 S502에 있어서, 변환 행렬 도출부(321)는, 플립 플래그 FlipFlag와 전치 플래그 TransposeFlag가, 이하의 식 (39)로 나타내어지는 조건(ConditionB1)을 만족시키는지 여부를 판정한다.
Figure pct00035
상술한 식 (39)에 나타나는 조건을 만족시키지 않는다고 판정된 경우(즉, 플립 플래그 FlipFlag가 거짓(0)이거나, 또는 부호 반전 플래그 InvSignFlag가 거짓(0)이라고 판정된 경우), 처리는 스텝 S503으로 진행된다.
스텝 S503에 있어서, 변환 행렬 도출부(321)는 베이스 변환 행렬 Tbase를 변환 행렬 TH로 설정한다. 스텝 S503의 처리가 종료되면 변환 행렬 도출 처리가 종료되고, 처리는 도 28로 되돌아간다.
또한 스텝 S502에 있어서, 상술한 식 (39)에 나타나는 조건을 만족시킨다고 판정된 경우(즉, 플립 플래그 FlipFlag가 참(1)이고, 또한 부호 반전 플래그 InvSignFlag가 참(1)이라고 판정된 경우), 처리는 스텝 S504로 진행된다.
스텝 S504에 있어서, 변환 행렬 도출부(321)는 플립부(332)를 이용하여 베이스 변환 행렬 Tbase를 플립하고, 그것을 변환 행렬 TH로 설정한다. 즉, 변환 행렬 도출부(321)는 Flip(Tbase)의 변환 행렬 TH를 도출한다.
스텝 S505에 있어서, 변환 행렬 도출부(321)는 부호 반전부(501)를 이용하여, 변환 행렬 TH의 홀수번째의 행 벡터의 부호를 반전하여 변환 행렬 TH를 재설정한다. 이 처리는 이하의 식 (40)과 같이 행렬식으로서 표현할 수 있다.
Figure pct00036
여기서, ×는 행렬 곱을 나타내는 연산자이고, 부호 반전 행렬 D는, Diag(1, -1, …, (-1)N-1)로 이루어지는 대각 행렬이다.
또한 이 처리는, 이하의 식 (41)과 같이 요소별 연산으로서도 표현할 수 있다. 이와 같이 함으로써, 부호 반전 행렬 D를 갖지 않더라도 실현할 수 있다. 그 경우, 변환 행렬 도출부(321)는 변환 행렬 TH의 i행 j열 성분((i, j) 성분) 중, 홀수 행째(i%2==1)의 성분의 정부 부호를 반전한다.
Figure pct00037
여기서, N행 N열의 변환 행렬 TH의 i행 j열 성분((i, j) 성분)을 TH[i, j]로 표기한다. 또한 2행째의 「for i, j=0, …, N-1 and i%2==1」은, j가 0 내지 N-1의 값을 갖고, i가 0 내지 N-1의 범위의 홀수의 값을 갖는 것을 나타낸다. 즉, TH[i, j]가 N행 N열의 변환 행렬 TH의 홀수 행 벡터(의 각 요소)를 나타내는 것을 의미한다.
스텝 S505의 처리가 종료되면 변환 행렬 도출 처리가 종료되고, 처리는, 도 28로 되돌아간다.
<변환 행렬 도출 처리의 흐름>
또한 프라이머리 수직 변환 처리의 스텝 S361(도 32)에 있어서 실행되는 변환 행렬 도출 처리의 흐름은, 도 48의 흐름도를 참조하여 설명한 프라이머리 수평 변환에 있어서 실행되는 변환 행렬 도출 처리의 경우와 마찬가지이므로, 그 설명을 생략한다.
<변환 행렬 도출부>
다음으로, 이 경우의 화상 복호 장치(200)의 구성에 대하여 설명한다. 이 경우에도, 화상 복호 장치(200)가 갖는 역프라이머리 변환부(253), 역프라이머리 수직 변환부(412), 역프라이머리 수평 변환부(413) 등의 구성은, <2-2. 실시예 1-1>의 경우와 마찬가지이므로, 그 설명을 생략한다.
도 50은, 이 경우의 변환 행렬 도출부(421)(역프라이머리 수직 변환부(412)가 갖는 변환 행렬 도출부(421))의 주된 구성예를 나타내는 블록도이다. 도 50에 나타난 바와 같이 이 경우의 변환 행렬 도출부(421)는, 변환 행렬 도출부(321)와 마찬가지로 변환 행렬 LUT(431), 플립부(432) 및 부호 반전부(511)를 갖는다. 또한 도 50에 있어서는, 데이터의 수수를 나타내는 화살표를 생략하고 있지만, 변환 행렬 도출부(421)는 임의의 처리부(처리 블록) 사이에서 임의의 데이터를 수수할 수 있다.
변환 행렬 LUT(431) 및 플립부(432)는 도 36의 경우와 마찬가지이다. 부호 반전부(511)는 부호 반전부(501)와 마찬가지로 N행 N열의 변환 행렬 T를 입력으로 하고, 그 변환 행렬 T의 소정 개소의 부호를 반전하여 부호 반전 후의 변환 행렬 TInvSign을 출력한다. 이 도출예의 경우, 변환 행렬 도출부(421)는, 변환 행렬 LUT(431)에 있어서 선택한 N행 N열의 베이스 변환 행렬 Tbase를, 플립부(432)를 통하여 수평 방향으로 플립하고, 또한 부호 반전부(511)를 통하여 홀수차 행 벡터의 부호를 반전하고, 변환 행렬 TInvSign을 변환 행렬 TV로서 변환 행렬 도출부(421)의 외부에 출력한다(행렬 연산부(422)에 공급함).
이상과 같이, 변환 행렬 도출부(421)는 플립부(432) 및 부호 반전부(511)를 이용하여, 도 10에 나타나는 표의, 위로부터 3단째의 예의 도출예를 실현할 수 있다.
<변환 행렬 도출부>
도 51은, 이 경우의, 역프라이머리 수평 변환부(413)가 갖는 변환 행렬 도출부(451)의 주된 구성예를 나타내는 블록도이다. 도 51에 나타난 바와 같이 이 경우의 변환 행렬 도출부(451)는, 변환 행렬 도출부(421)과 마찬가지로 변환 행렬 LUT(461), 플립부(462) 및 부호 반전부(512)를 갖는다. 또한 도 51에 있어서는, 데이터의 수수를 나타내는 화살표를 생략하고 있지만, 변환 행렬 도출부(451)는 임의의 처리부(처리 블록) 사이에서 임의의 데이터를 수수할 수 있다.
변환 행렬 LUT(461) 및 플립부(462)는 도 50의 경우와 마찬가지이다. 부호 반전부(512)는 부호 반전부(501)와 마찬가지로 N행 N열의 변환 행렬 T를 입력으로 하고, 그 변환 행렬 T의 소정 개소의 부호를 반전하여 부호 반전 후의 변환 행렬 TInvSign을 출력한다. 이 도출예의 경우, 변환 행렬 도출부(451)는, 변환 행렬 LUT(461)에 있어서 선택한 N행 N열의 베이스 변환 행렬 Tbase를, 플립부(462)를 통하여 수평 방향으로 플립하고, 또한 부호 반전부(512)를 통하여 홀수차 행 벡터의 부호를 반전하고, 변환 행렬 TInvSign을 변환 행렬 TV로서 변환 행렬 도출부(451)의 외부에 출력한다(행렬 연산부(452)에 공급함).
이상과 같이, 변환 행렬 도출부(451)는 플립부(462) 및 부호 반전부(512)를 이용하여, 도 10에 나타나는 표의, 위로부터 3단째의 예의 도출예를 실현할 수 있다.
<변환 행렬 도출 처리의 흐름>
또한 변환 행렬 도출부(421) 및 변환 행렬 도출부(451)는, 도 48의 흐름도를 참조하여 설명한 경우와 마찬가지의 흐름으로 변환 행렬 도출 처리를 행하므로, 그 설명은 생략한다.
<2-4. 실시예 1-3>
<콘셉트>
다음으로, 도 10에 나타나는 표에 있어서, 최상단의 항목명의 행을 제외하고 위로부터 4단째 및 5단째의 예에 대하여 설명한다.
상술한 바와 같이, 위로부터 4단째의 예의 도출은, 위로부터 1단째의 경우와 마찬가지로, 제1 변환 타입의 최저차 행 벡터의 파형과, 대체할 변환 행렬의 변환 타입의 최저차 행 벡터의 파형의 유사성에 주목한 것이다. 이 경우, 도출부는 제1 변환 행렬을 플립하여 제2 변환 행렬을 도출한다. 즉, 도출부는, 도 52에 나타난 바와 같이 DCT8의 변환 행렬을 베이스 변환 행렬 Tbase로 하고, 그것을 행 방향으로 플립하여 FlipDCT8의 변환 행렬을 도출한다. 이 FlipDCT8의 변환 행렬에 의하여, 0차의 행 벡터의 파형이 유사한(증가형의) DST7의 변환 행렬을 대체할 수 있다.
또한 위로부터 5단째의 예의 도출은, 제1 변환 타입의 최고차 열 벡터의 파형과, 대체할 변환 행렬의 변환 타입의 최저차 행 벡터의 파형의 유사성에 주목한 것이다. 이 경우, 도출부는 제1 변환 행렬을 플립하고, 플립 후의 제1 변환 행렬을 전치하여 제2 변환 행렬을 도출한다. 즉, 도출부는, 도 52에 나타난 바와 같이 DCT8의 변환 행렬을 베이스 변환 행렬 Tbase로 하고, 그것을 행 방향으로 플립하고, 또한 전치하여 TrFlipDCT8의 변환 행렬을 도출한다. 이 TrFlipDCT8의 변환 행렬에 의하여, 0차의 행 벡터의 파형이 유사한(산형의) DST1의 변환 행렬을 대체할 수 있다.
즉, 이상의 2개의 도출예는, 1회 또는 2회의 조작(플립, 또는 플립+전치)으로 제2 변환 행렬을 도출할 수 있다. 또한 그 조작도 용이하다. 즉, 용이하게 제2 변환 행렬을 도출할 수 있다.
또한 이상의 2개의 도출예를 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DST7의 변환 행렬 및 DST1의 변환 행렬을 준비할 필요가 없게 된다. 즉, 고유 변환 타입을 삭감할 수 있다.
이 경우, 도 53의 표에 나타난 바와 같이, 비특허문헌 1에 기재된 기술의 경우에 5종류 필요했던 변환 행렬(도 6의 A의 표 참조)을 3종류로 저감시킬 수 있으므로, LUT 사이즈의 합계는 약 40KB로 할 수 있다. 즉, 비특허문헌 1에 기재된 기술의 경우에 비해(약 53KB(도 6의 A의 표)) LUT의 사이즈를 저감시킬 수 있다. 즉, LUT의 사이즈의 증대를 억제할 수 있다.
또한 상술한 바와 같이, 이 경우에도, 도출된 제2 변환 타입(FlipDCT8이나 TrFlipDCT8)의 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DST7의 변환 행렬이나 DST1의 변환 행렬을 직교 변환·역직교 변환에 이용하는 경우와 동일한 정도의 부호화 효율이 얻어진다.
<구성>
이 경우의 화상 부호화 장치(100) 및 화상 복호 장치(200)의 구성은 각각, <2-2. 실시예 1-1>에 있어서 설명한 것과 마찬가지이므로, 그 설명을 생략한다.
<변환 행렬 도출 처리의 흐름>
다음으로, 처리의 흐름에 대하여 설명한다. 변환 행렬 도출 처리 이외의 처리는, <2-2. 실시예 1-1> 등에 있어서 상술한 예와 마찬가지의 흐름으로 행해지므로, 그것들의 설명은 생략한다.
도 28의 스텝 S321에 있어서, 프라이머리 수평 변환부(312)가 갖는 변환 행렬 도출부(321)에 의하여 실행되는 변환 행렬 도출 처리의 흐름의 예를, 도 54의 흐름도를 참조하여 설명한다.
변환 행렬 도출 처리가 개시되면, 변환 행렬 도출부(321)는, 스텝 S521에 있어서, 변환 타입 식별자 TrTypeIdxH에 대응하는 베이스 변환 타입 BaseTrType을, 예를 들어 도 55에 나타낸 대응표를 참조하여 구한다.
또한 변환 행렬 도출부(321)는, 도 30의 흐름도의 스텝 S341의 경우와 마찬가지로, 변환 타입 식별자 TrTypeIdxH에 대응하는 플립 플래그 FlipFlag의 값과, 변환 타입 식별자 TrTypeIdxH에 대응하는 전치 플래그 TransposeFlag의 값을 설정한다.
스텝 S522에 있어서, 변환 행렬 도출부(321)는, 플립 플래그 FlipFlag가 이하의 식 (42)로 나타내어지는 조건(ConditionC1)을 만족시키는지 여부를 판정한다.
Figure pct00038
상술한 조건(ConditionC1)을 만족시키지 않는다고 판정된 경우(플립 플래그 FlipFlag가 거짓(0)인 경우), 처리는 스텝 S523으로 진행된다.
스텝 S523에 있어서, 변환 행렬 도출부(321)는, 도 30의 스텝 S343의 경우와 마찬가지로 베이스 변환 행렬 Tbase를 변환 행렬 TH로 설정한다. 스텝 S523의 처리가 종료되면 변환 행렬 도출 처리가 종료되고, 처리는 도 28로 되돌아간다.
또한 스텝 S522에 있어서, 상술한 조건(ConditionC1)을 만족시킨다고 판정된 경우(플립 플래그 FlipFlag가 참(1)인 경우), 처리는 스텝 S524로 진행된다.
스텝 S524에 있어서, 변환 행렬 도출부(321)는 베이스 변환 행렬 Tbase를 수평 방향으로 플립하고, 그 플립한 변환 행렬 Flip(Tbase)을 변환 행렬 Ttmp로 설정한다. 이 처리는 이하의 식 (43)과 같이 나타낼 수 있다.
Figure pct00039
스텝 S525에 있어서, 변환 행렬 도출부(321)는, 전치 플래그 TransposeFlag가 이하의 식 (44)로 나타내어지는 조건(ConditionC2)을 만족시키는지 여부를 판정한다.
Figure pct00040
상술한 조건(ConditionC2)을 만족시키지 않는다고 판정된 경우(전치 플래그 TransposeFlag가 거짓(0)인 경우), 처리는 스텝 S526으로 진행된다.
스텝 S526에 있어서, 변환 행렬 도출부(321)는 변환 행렬 Ttmp를 변환 행렬 TH로 설정한다. 이 처리는 이하의 식 (45)와 같이 나타낼 수 있다.
Figure pct00041
스텝 S526의 처리가 종료되면 변환 행렬 도출 처리가 종료되고, 처리는 도 28로 되돌아간다. 또한 스텝 S525에 있어서 상술한 조건(ConditionC2)을 만족시킨다고 판정된 경우(전치 플래그 TransposeFlag가 참(1)인 경우), 처리는 스텝 S527로 진행된다.
스텝 S527에 있어서, 변환 행렬 도출부(321)는, 변환 행렬 Ttmp를 전치한 Tr(Ttmp)을 변환 행렬 TH로 설정한다. 이 처리는, 예를 들어 이하의 식 (46)과 같이 나타낼 수 있다.
Figure pct00042
스텝 S527의 처리가 종료되면 변환 행렬 도출 처리가 종료되고, 처리는 도 28로 되돌아간다.
이상과 같이 변환 행렬 도출 처리를 실행함으로써, 수평 방향의 1차원 직교 변환에 있어서, 도 10에 나타나는 표의, 위로부터 4단째나 5단째의 예의 도출예를 실현할 수 있다. 따라서 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 이상에 있어서는 플립과 전치를 차례로 행하도록 설명하였지만, 플립과 전치를 일괄로(1회의 연산으로) 행하도록 해도 된다. 예를 들어 도 54의 스텝 S522 및 스텝 S525의 판정을 합쳐 행하여 양쪽이 참(1)인 경우, 플립과 전치를 일괄하여 행하도록 해도 된다.
예를 들어 이 플립 및 전치의 조작은, 요소별 연산으로서 표현하면, 변환 행렬 TH의 j행 i열 성분((j, i) 성분)으로 베이스 변환 행렬 Tbase의 (i, N-1-j) 성분을 설정하는 것이다. 즉, 이하의 식 (47)과 같이 표현할 수 있다.
Figure pct00043
여기서, N행 N열의 변환 행렬 TH의 i행 j열 성분((i, j) 성분)을 TH[i, j]로 표기한다. 또한 2행째의 「for i, j=0, …, N-1」은, i와 j가 각각 0 내지 N-1의 값을 갖는 것을 나타낸다. 즉, TH[i, j]가 N행 N열의 변환 행렬 TH의 모든 요소를 나타내는 것을 의미한다.
이와 같이 함으로써, 플립과 전치를 한 번의 조작, 그것도 간단한 2차원 배열에 대한 액세스로 실현할 수 있다. 또한 플립 행렬 J가 불필요하므로, 그만큼 메모리 용량의 증대를 억제할 수 있다.
또한 본 실시예의 경우, 도 32의 스텝 S361에 있어서, 프라이머리 수직 변환부(313)가 갖는 변환 행렬 도출부(351)에 의하여 실행되는 변환 행렬 도출 처리도, 이 도 54의 흐름도와 마찬가지의 흐름으로 행해진다.
또한 본 실시예의 경우, 도 41의 스텝 S441에 있어서, 역프라이머리 수직 변환부(412)가 갖는 변환 행렬 도출부(421)에 의하여 실행되는 변환 행렬 도출 처리도, 이 도 54의 흐름도와 마찬가지의 흐름으로 행해진다.
또한 본 실시예의 경우, 도 42의 스텝 S461에 있어서, 역프라이머리 수평 변환부(413)가 갖는 변환 행렬 도출부(451)에 의하여 실행되는 변환 행렬 도출 처리도, 이 도 54의 흐름도와 마찬가지의 흐름으로 행해진다.
따라서 이들에 대한 설명은 생략한다.
<2-5. 실시예 1-4>
<콘셉트>
다음으로, 도 10에 나타나는 표에 있어서, 최상단의 항목명의 행을 제외하고 위로부터 6단째의 예에 대하여 설명한다.
상술한 바와 같이, 위로부터 6단째의 예의 도출은, 위로부터 3단째의 경우(실시예 1-2)와 마찬가지로, 쌍으로 되는 DCT/DST 사이의 특성에 주목한 것이다. 보다 구체적으로는, 쌍으로 되는 DCT/DST 사이(예를 들어 DCT8과 DST7)에서는 짝수번째의 행 벡터가 축대칭이고 홀수번째의 행 벡터가 점대칭인 점에 주목하고 있다. 이 경우, 도출부는 제1 변환 행렬을 플립하고, 플립 후의 제1 변환 행렬 중, 홀수번째의 행 벡터의 부호를 반전하여 제2 변환 행렬을 도출한다. 즉, 도출부는, 도 56에 나타난 바와 같이, DCT8의 변환 행렬을 베이스 변환 행렬 Tbase로 하고, 그것을 행 방향으로 플립하고, 또한 홀수차의 행 벡터의 부호를 반전하여 DST7의 변환 행렬을 손실 없이 도출한다. 따라서 당연히, 그 도출된 DST7의 변환 행렬에 의하여, 0차의 행 벡터의 파형이 동일한(증가형의) DST7의 변환 행렬을 대체할 수 있다.
즉, 이 도출예는, 2회의 조작(플립+부호 반전)으로 제2 변환 행렬을 도출할 수 있다. 또한 그 조작도 용이하다. 즉, 용이하게 제2 변환 행렬을 도출할 수 있다.
또한 이 도출예를 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DST7의 변환 행렬을 준비할 필요가 없게 된다. 즉, 고유 변환 타입을 삭감할 수 있다.
이 경우, 도 57의 표에 나타난 바와 같이, 비특허문헌 1에 기재된 기술의 경우에 5종류 필요했던 변환 행렬(도 6의 A의 표 참조)을 4종류로 저감시킬 수 있으므로, LUT 사이즈의 합계는 약 47KB로 할 수 있다. 즉, 비특허문헌 1에 기재된 기술의 경우에 비해(약 53KB(도 6의 A의 표)) LUT의 사이즈를 저감시킬 수 있다. 즉, LUT의 사이즈의 증대를 억제할 수 있다.
또한 이 도출예의 경우, 제2 변환 행렬로서 DST7의 변환 행렬을 도출할 수 있는 것이므로, 이 제2 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, 당연히, DST7의 변환 행렬을 직교 변환·역직교 변환에 이용하는 경우와 동일한 부호화 효율이 얻어진다.
<구성 및 처리의 흐름>
이 경우의 화상 부호화 장치(100) 및 화상 복호 장치(200)의 구성은 각각, <2-3. 실시예 1-2>에 있어서 설명한 것과 마찬가지이므로, 그 설명을 생략한다. 또한 화상 부호화 장치(100) 및 화상 복호 장치(200)가 행하는 처리도, <2-3. 실시예 1-2>에 있어서 설명한 것과 마찬가지이므로, 그 설명을 생략한다.
단, 본 실시예의 경우에는, 변환 행렬 도출 처리에 있어서 변환 타입 식별자 TrTypeIdxH에 대응하는 베이스 변환 타입을 구할 때, 예를 들어 도 58에 나타낸 대응표를 참조하여 구한다. 그 이외에는, 도 48의 흐름도를 참조하여 설명한 경우와 마찬가지의 흐름으로 행하면 된다.
<2-6. 실시예 1-5>
<콘셉트>
다음으로, 도 10에 나타나는 표에 있어서, 최상단의 항목명의 행을 제외하고 위로부터 7단째 및 8단째의 예에 대하여 설명한다.
상술한 바와 같이, 위로부터 7단째의 예의 도출은, 위로부터 1단째의 경우와 마찬가지로, 제1 변환 타입의 최저차 행 벡터의 파형과, 대체할 변환 행렬의 변환 타입의 최저차 행 벡터의 파형의 유사성에 주목한 것이다. 단, 이 경우, 도출부는 제1 변환 행렬을 전치하여 제2 변환 행렬을 도출한다. 즉, 도출부는, 도 59에 나타난 바와 같이, DCT2의 변환 행렬을 베이스 변환 행렬 Tbase로 하고, 그것을 전치하여 DCT3의 변환 행렬을 도출한다. 이 DCT3의 변환 행렬에 의하여, 0차의 행 벡터의 파형이 유사한(감소형의) DCT8의 변환 행렬을 대체할 수 있다.
또한 위로부터 8단째의 예의 도출은, 위로부터 5단째의 경우와 마찬가지로, 제1 변환 타입의 최고차 열 벡터의 파형과, 대체할 변환 행렬의 변환 타입의 최저차 행 벡터의 파형의 유사성에 주목한 것이다. 이 경우, 도출부는 제1 변환 행렬을 전치하고, 전치 후의 제1 변환 행렬을 플립하여 제2 변환 행렬을 도출한다. 즉, 도출부는, 도 59에 나타난 바와 같이, DCT2의 변환 행렬을 베이스 변환 행렬 Tbase로 하고, 그것을 전치하고 또한 행 방향으로 플립하여 FlipDCT3의 변환 행렬을 도출한다. 이 FlipDCT3의 변환 행렬에 의하여, 0차의 행 벡터의 파형이 유사한(증가형의) DST7의 변환 행렬을 대체할 수 있다.
즉, 이상의 2개의 도출예는, 1회 또는 2회의 조작(전치, 또는 전치+플립)으로 제2 변환 행렬을 도출할 수 있다. 또한 그 조작도 용이하다. 즉, 용이하게 제2 변환 행렬을 도출할 수 있다.
또한 이상의 2개의 도출예를 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DCT8의 변환 행렬 및 DST7의 변환 행렬을 준비할 필요가 없게 된다. 즉, 고유 변환 타입을 삭감할 수 있다.
이 경우, 도 60의 표에 나타난 바와 같이, 비특허문헌 1에 기재된 기술의 경우에 5종류 필요했던 변환 행렬(도 6의 A의 표 참조)을 3종류로 저감시킬 수 있으므로, LUT 사이즈의 합계는 약 40KB로 할 수 있다. 즉, 비특허문헌 1에 기재된 기술의 경우에 비해(약 53KB(도 6의 A의 표)) LUT의 사이즈를 저감시킬 수 있다. 즉, LUT의 사이즈의 증대를 억제할 수 있다.
또한 상술한 바와 같이, 이 경우에도, 도출된 제2 변환 타입(DCT3이나 FlipDCT3)의 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DCT8의 변환 행렬이나 DST7의 변환 행렬을 직교 변환·역직교 변환에 이용하는 경우와 동일한 정도의 부호화 효율이 얻어진다.
<구성>
이 경우의 화상 부호화 장치(100) 및 화상 복호 장치(200)의 구성은 각각, <2-2. 실시예 1-1>에 있어서 설명한 것과 마찬가지이므로, 그 설명을 생략한다.
<변환 행렬 도출 처리의 흐름>
다음으로 처리의 흐름에 대하여 설명한다. 변환 행렬 도출 처리 이외의 처리는, <2-2. 실시예 1-1> 등에 있어서 상술한 예와 마찬가지의 흐름으로 행해지므로, 그것들의 설명은 생략한다.
도 28의 스텝 S321에 있어서, 프라이머리 수평 변환부(312)가 갖는 변환 행렬 도출부(321)에 의하여 실행되는 변환 행렬 도출 처리의 흐름의 예를, 도 61의 흐름도를 참조하여 설명한다.
변환 행렬 도출 처리가 개시되면, 변환 행렬 도출부(321)는, 스텝 S541에 있어서, 변환 타입 식별자 TrTypeIdxH에 대응하는 베이스 변환 타입 BaseTrType을, 예를 들어 도 62에 나타낸 대응표를 참조하여 구한다.
또한 변환 행렬 도출부(321)는, 도 30의 흐름도의 스텝 S341의 경우와 마찬가지로, 변환 타입 식별자 TrTypeIdxH에 대응하는 플립 플래그 FlipFlag의 값과, 변환 타입 식별자 TrTypeIdxH에 대응하는 전치 플래그 TransposeFlag의 값을 설정한다.
스텝 S542에 있어서, 변환 행렬 도출부(321)는, 전치 플래그 TransposeFlag가 이하의 식 (48)로 나타내어지는 조건(ConditionD1)을 만족시키는지 여부를 판정한다.
Figure pct00044
상술한 조건(ConditionD1)을 만족시키지 않는다고 판정된 경우(전치 플래그 TransposeFlag가 거짓(0)인 경우), 처리는 스텝 S543으로 진행된다.
스텝 S543에 있어서, 변환 행렬 도출부(321)는, 도 30의 스텝 S343의 경우와 마찬가지로 베이스 변환 행렬 Tbase를 변환 행렬 TH로 설정한다. 스텝 S543의 처리가 종료되면 변환 행렬 도출 처리가 종료되고, 처리는 도 28로 되돌아간다.
또한 스텝 S542에 있어서, 상술한 조건(ConditionD1)을 만족시킨다고 판정된 경우(전치 플래그 TransposeFlag가 참(1)인 경우), 처리는 스텝 S544로 진행된다.
스텝 S544에 있어서, 변환 행렬 도출부(321)는 베이스 변환 행렬 Tbase를 수평 방향으로 전치하고, 그 전치한 변환 행렬 Tr(Tbase)을 변환 행렬 Ttmp로 설정한다. 이 처리는 이하의 식 (49)과 같이 나타낼 수 있다.
Figure pct00045
스텝 S545에 있어서, 변환 행렬 도출부(321)는, 플립 플래그 FlipFlag가 이하의 식 (50)으로 나타내어지는 조건(ConditionD2)을 만족시키는지 여부를 판정한다.
Figure pct00046
상술한 조건(ConditionD2)을 만족시키지 않는다고 판정된 경우(플립 플래그 FlipFlag가 거짓(0)인 경우), 처리는 스텝 S546으로 진행된다.
스텝 S546에 있어서, 변환 행렬 도출부(321)는, 상술한 식 (45)와 같이 변환 행렬 Ttmp를 변환 행렬 TH로 설정한다.
스텝 S546의 처리가 종료되면 변환 행렬 도출 처리가 종료되고, 처리는 도 28로 되돌아간다. 또한 스텝 S545에 있어서 상술한 조건(ConditionD2)을 만족시킨다고 판정된 경우(플립 플래그 FlipFlag가 참(1)인 경우), 처리는 스텝 S547로 진행된다.
스텝 S547에 있어서, 변환 행렬 도출부(321)는, 변환 행렬 Ttmp를 플립한 Flip(Ttmp)을 변환 행렬 TH로 설정한다. 이 처리는, 예를 들어 이하의 식 (51)과 같이 나타낼 수 있다.
Figure pct00047
스텝 S547의 처리가 종료되면 변환 행렬 도출 처리가 종료되고, 처리는 도 28로 되돌아간다.
이상과 같이 변환 행렬 도출 처리를 실행함으로써, 수평 방향의 1차원 직교 변환에 있어서, 도 10에 나타나는 표의, 위로부터 7단째나 8단째의 예의 도출예를 실현할 수 있다. 따라서 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 이상에 있어서는, 전치와 플립을 차례로 행하도록 설명하였지만, 전치와 플립을 일괄로(1회의 연산으로) 행하도록 해도 된다. 예를 들어 도 61의 스텝 S542 및 스텝 S545의 판정을 합쳐 행하여 양쪽이 참(1)인 경우, 전치와 플립을 일괄하여 행하도록 해도 된다.
예를 들어 이 전치 및 플립의 조작은, 요소별 연산으로서 표현하면, 변환 행렬 TH의 i행 (N-1-j)열 성분((i, (N-1-j)) 성분)으로, 베이스 변환 행렬 Tbase의 (j, i) 성분을 설정하는 것이다. 즉, 이하의 식 (52)와 같이 표현할 수 있다.
Figure pct00048
여기서, N행 N열의 변환 행렬 TH의 i행 j열 성분((i, j) 성분)을 TH[i, j]로 표기한다. 또한 2행째의 「for i, j=0, …, N-1」은, i와 j가 각각 0 내지 N-1의 값을 갖는 것을 나타낸다. 즉, TH[i, j]가 N행 N열의 변환 행렬 TH의 모든 요소를 나타내는 것을 의미한다.
이와 같이 함으로써, 전치와 플립을 한 번의 조작, 그것도 간단한 2차원 배열에 대한 액세스로 실현할 수 있다. 또한 플립 행렬 J가 불필요하므로, 그만큼 메모리 용량의 증대를 억제할 수 있다.
또한 본 실시예의 경우, 도 32의 스텝 S361에 있어서, 프라이머리 수직 변환부(313)가 갖는 변환 행렬 도출부(351)에 의하여 실행되는 변환 행렬 도출 처리도, 이 도 61의 흐름도와 마찬가지의 흐름으로 행해진다. 예를 들어 도 61의 흐름도에 있어서, 변환 타입 식별자 TrTypeIdxH를 TrTypeIdxV로, 변환 행렬 TH를 변환 행렬 TV로 치환하여 해석하면 된다.
또한 본 실시예의 경우, 도 41의 스텝 S441에 있어서, 역프라이머리 수직 변환부(412)가 갖는 변환 행렬 도출부(421)에 의하여 실행되는 변환 행렬 도출 처리도, 이 도 61의 흐름도와 마찬가지의 흐름으로 행해진다. 예를 들어 도 61의 흐름도에 있어서, 변환 타입 식별자 TrTypeIdxH를 TrTypeIdxV로, 변환 행렬 TH를 변환 행렬 TV로 치환하여 해석하면 된다.
또한 본 실시예의 경우, 도 42의 스텝 S461에 있어서, 역프라이머리 수평 변환부(413)가 갖는 변환 행렬 도출부(451)에 의하여 실행되는 변환 행렬 도출 처리도, 이 도 61의 흐름도와 마찬가지의 흐름으로 행해진다.
따라서 이들에 대한 설명은 생략한다.
<3. 제2 실시 형태>
<3-1. 공통 콘셉트>
<예측 잔차의 치환 조작>
제1 실시 형태에 있어서는, 변환 행렬을 조작하여 다른 변환 행렬을 생성한다는 취지를 설명하였지만, 변환 행렬뿐 아니라 예측 잔차를 조작하도록 해도 된다. 즉, 화상의 예측 잔차를 치환 조작하고, 베이스로 되는 변환 행렬을 이용하여, 치환 조작된 예측 잔차를 직교 변환하고, 그 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하도록 해도 된다.
예를 들어 화상 처리 장치에 있어서, 화상의 예측 잔차를 치환 조작하는 조작부와, 베이스로 되는 변환 행렬을 이용하여, 그 조작부에 의하여 치환 조작된 예측 잔차를 직교 변환하는 직교 변환부와, 그 직교 변환부에 의하여 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는 부호화부를 구비하도록 해도 된다.
이와 같이 하더라도 제1 실시 형태의 경우와 등가의 2차원 직교 변환을 실현할 수 있다. 즉, 어떤 변환 행렬을 이용한 직교 변환에 의하여, 실질적으로 다른 변환 행렬에 의한 직교 변환을 실현할 수 있다. 따라서 제1 실시 형태의 경우와 마찬가지로, 직교 변환을 위하여 준비하는 변환 행렬의 수의 증대를 억제할 수 있어서, 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다. 또한 제1 실시 형태의 경우에 비해 조작의 횟수를 저감시킬 수 있으므로, 직교 변환의 처리량의 증대를 억제할 수 있다.
또한 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻고, 그 얻어진 계수 데이터를 역직교 변환하고, 그 얻어진 계수 데이터의 역직교 변환 결과를 치환 조작하도록 해도 된다.
예를 들어 화상 처리 장치에 있어서, 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻는 복호부와, 그 복호부에 의하여 얻어진 계수 데이터를 역직교 변환하는 역직교 변환부와, 그 역직교 변환부에 의하여 얻어진 계수 데이터의 역직교 변환 결과를 치환 조작하는 조작부를 구비하도록 해도 된다.
이와 같이 하더라도, 제1 실시 형태의 경우와 등가의 역2차원 직교 변환을 실현할 수 있다. 즉, 어떤 변환 행렬을 이용한 역직교 변환에 의하여, 실질적으로 다른 변환 행렬에 의한 역직교 변환을 실현할 수 있다. 따라서 제1 실시 형태의 경우와 마찬가지로, 역직교 변환을 위하여 준비하는 변환 행렬의 수의 증대를 억제할 수 있어서, 역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다. 또한 제1 실시 형태의 경우에 비해 조작의 횟수를 저감시킬 수 있으므로, 역직교 변환의 처리량의 증대를 억제할 수 있다.
보다 구체적으로 설명한다. 다른 2개의 2차원 직교 변환(예측 잔차를 포함함)의 공간 대칭성에 주목하면, 예를 들어 DST7의 변환 행렬과 그 DST7의 변환 행렬을 플립한 FlipDST7의 변환 행렬 사이와 같이, 어느 방향(수평 방향 또는 수직 방향)에 있어서, 1차원 직교 변환의 사이에 축대칭이 있는 경우가 있다. 또한, 예를 들어 예측 잔차에 대해서도, 예측 잔차(X)와 그 예측 잔차를 플립한 것(X·J) 사이에, 어느 방향(수평 방향 또는 수직 방향)에 있어서, 예측 잔차 사이에 축대칭성이 있는 경우가 있다.
이와 같은 경우, 예를 들어 도 63에 나타난 바와 같이, 원래의 예측 잔차를 플립한 것을, 제1 변환 행렬을 이용하여 직교 변환함으로써, 제1 변환 행렬을 플립한 제2 변환 행렬을 이용한 그 원래의 예측 잔차의 직교 변환을 대체할 수 있다.
도 63의 예의 경우, 도면 중 좌측에 있어서는, 이하의 식 (53)과 같이, 원래의 예측 잔차에 대하여, 제1 변환 행렬을 이용한 수직 방향의 1차원 직교 변환과, 플립한 제1 변환 행렬을 이용한 수평 방향의 1차원 직교 변환이 행해져 있다.
Figure pct00049
이에 비해, 도면 중 우측에는, 예측 잔차의 플립(이하의 식 (54))과, 그 플립한 예측 잔차에 대한 제1 변환 행렬을 이용한 수직 방향 및 수평 방향의 1차원 직교 변환(이하의 식 (55))이 나타나 있다.
Figure pct00050
이와 같은 2개의 2차원 직교 변환에는 공간 대칭성이 생긴다. 따라서 한쪽으로 다른 한쪽을 대체 가능하다.
환언하건대, 베이스로 되는 변환 행렬(변환 타입)과, 그 변환 행렬을 이용하여 도출한, 예측 잔차의 직교 변환에 이용할 변환 행렬 사이에 공간 대칭성이 존재하는 경우, 상술한 바와 같이, 예측 잔차를 그 공간 대칭성의 방향으로 플립하고, 그 플립한 예측 잔차를, 베이스로 되는 변환 행렬에 의하여 직교 변환함으로써, 다른 변환 행렬에 의한 직교 변환(베이스로 되는 변환 행렬을 이용하여 도출한 변환 행렬을 이용한, 플립하기 전의 예측 잔차의 직교 변환)을 대체할 수 있다.
즉, 조작부가 예측 잔차를, 1차원 직교 변환 사이의 공간 대칭성의 방향으로 플립하고, 직교 변환부가, 그 조작부에 의하여 플립된 예측 잔차를, 베이스로 되는 변환 행렬을 이용하여 직교 변환하도록 해도 된다. 이와 같이 함으로써, 다른 변환 행렬에 의한 직교 변환과 등가의 직교 변환을 행할 수 있다. 즉, 상술한 바와 같이, 실질적으로 다른 변환 행렬에 의한 직교 변환을 실현할 수 있다. 따라서 직교 변환을 위하여 준비하는 변환 행렬의 수의 증대를 억제할 수 있어서, 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
이는 역직교 변환에 대해서도 마찬가지이다. 즉, 비트 스트림을 복호하여 얻어진 계수 데이터를, 베이스로 되는 변환 행렬을 이용하여 역직교 변환하고, 조작부가 그 역직교 변환 결과를, 1차원 직교 변환 사이의 공간 대칭성의 방향으로 플립하도록 해도 된다. 이와 같이 함으로써, 실질적으로 다른 변환 행렬에 의한 역직교 변환을 실현할 수 있으므로, 역직교 변환을 위하여 준비하는 변환 행렬의 수의 증대를 억제할 수 있어서, 역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
예를 들어 도 64의 좌측에는, 예측 잔차 X에 대하여, DST7의 변환 행렬을 플립한 FlipDST7을 이용한 수평 방향의 1차원 직교 변환과, DST7의 변환 행렬을 이용한 수직 방향의 1차원 직교 변환을 행하는 2차원 직교 변환이 나타난다. 또한 도 64의 우측에는, 예측 잔차 X를 수평 방향으로 플립한 예측 잔차 X'(=X·J)에 대하여, DST7의 변환 행렬을 이용한 수평 방향·수직 방향의 1차원 직교 변환을 행하는 2차원 직교 변환이 나타난다. 이들은 서로 수평 방향에 대칭성을 갖고 있으며 등가이다. 따라서 예를 들어 후자의 2차원 직교 변환에 의하여 전자의 2차원 직교 변환을 대체할 수 있다. 또한 전자의 2차원 직교 변환은 이하의 식 (56)과 같이 표현되고, 후자의 2차원 직교 변환은 이하의 식 (57)과 같이 표현된다.
Figure pct00051
즉, 예를 들어 베이스로 되는 변환 행렬(변환 타입)과, 그 변환 행렬을 이용하여 도출한, 예측 잔차의 직교 변환에 이용할 변환 행렬 사이에 수평 방향의 대칭성이 존재하는 경우, 조작부가 예측 잔차를 수평 방향으로 플립하고, 직교 변환부가, 그 조작부에 의하여 수평 방향으로 플립된 예측 잔차를, 베이스로 되는 변환 행렬을 이용하여 직교 변환하도록 해도 된다. 이와 같이 함으로써, 실질적으로, 베이스로 되는 변환 행렬에 의한 직교 변환과의 사이에 수평 방향의 대칭성이 존재하는 다른 변환 행렬에 의한 직교 변환을 실현할 수 있다.
역직교 변환에 대해서도 마찬가지이다. 즉, 베이스로 되는 변환 행렬(변환 타입)과, 그 변환 행렬을 이용하여 도출한, 계수 데이터의 역직교 변환에 이용할 변환 행렬 사이에 수평 방향의 대칭성이 존재하는 경우, 역직교 변환부가, 비트 스트림을 복호하여 얻어진 계수 데이터를, 베이스로 되는 변환 행렬을 이용하여 역직교 변환하고, 조작부가 그 역직교 변환 결과를 수평 방향으로 플립하도록 해도 된다. 이와 같이 함으로써, 실질적으로, 베이스로 되는 변환 행렬에 의한 역직교 변환과의 사이에 수평 방향의 대칭성이 존재하는 다른 변환 행렬에 의한 역직교 변환을 실현할 수 있다.
또한, 예를 들어 도 65의 좌측에는, 예측 잔차 X에 대하여, DST7의 변환 행렬을 이용한 수평 방향의 1차원 직교 변환과, DST7의 변환 행렬을 플립한 FlipDST7을 이용한 수직 방향의 1차원 직교 변환을 행하는 2차원 직교 변환이 나타난다. 또한 도 65의 우측에는, 예측 잔차 X를 수직 방향으로 플립한 예측 잔차 X'(=J·X)에 대하여, DST7의 변환 행렬을 이용한 수평 방향·수직 방향의 1차원 직교 변환을 행하는 2차원 직교 변환이 나타난다. 이들은 서로 수직 방향에 대칭성을 갖고 있으며 등가이다. 따라서 예를 들어 후자의 2차원 직교 변환에 의하여 전자의 2차원 직교 변환을 대체할 수 있다. 또한 전자의 2차원 직교 변환은 이하의 식 (58)과 같이 표현되고, 후자의 2차원 직교 변환은 이하의 식 (59)와 같이 표현된다.
Figure pct00052
즉, 예를 들어 베이스로 되는 변환 행렬(변환 타입)과, 그 변환 행렬을 이용하여 도출한, 예측 잔차의 직교 변환에 이용할 변환 행렬 사이에 수직 방향의 대칭성이 존재하는 경우, 조작부가, 예측 잔차를 수직 방향으로 플립하고, 직교 변환부가, 그 조작부에 의하여 수직 방향으로 플립된 예측 잔차를, 베이스로 되는 변환 행렬을 이용하여 직교 변환하도록 해도 된다. 이와 같이 함으로써, 실질적으로, 베이스로 되는 변환 행렬에 의한 직교 변환과의 사이에 수직 방향의 대칭성이 존재하는 다른 변환 행렬에 의한 직교 변환을 실현할 수 있다.
역직교 변환에 대해서도 마찬가지이다. 즉, 베이스로 되는 변환 행렬(변환 타입)과, 그 변환 행렬을 이용하여 도출한, 계수 데이터의 역직교 변환에 이용할 변환 행렬 사이에 수직 방향의 대칭성이 존재하는 경우, 역직교 변환부가, 비트 스트림을 복호하여 얻어진 계수 데이터를, 베이스로 되는 변환 행렬을 이용하여 역직교 변환하고, 조작부가 그 역직교 변환 결과를, 수직 방향으로 플립하도록 해도 된다. 이와 같이 함으로써, 실질적으로, 베이스로 되는 변환 행렬에 의한 역직교 변환과의 사이에 수직 방향의 대칭성이 존재하는 다른 변환 행렬에 의한 역직교 변환을 실현할 수 있다.
또한, 예를 들어 도 66의 좌측에는, 예측 잔차 X에 대하여, DST7의 변환 행렬을 플립한 FlipDST7을 이용한 수평 방향·수직 방향의 1차원 직교 변환을 행하는 2차원 직교 변환이 나타난다. 또한 도 66의 우측에는, 예측 잔차 X를 수평 방향·수직 방향으로 플립한 예측 잔차 X'(=J·X·J)에 대하여, DST7의 변환 행렬을 이용한 수평 방향·수직 방향의 1차원 직교 변환을 행하는 2차원 직교 변환이 나타난다. 이들은 서로 수평 방향·수직 방향의 양쪽에 대칭성을 갖고 있으며 등가이다. 따라서 예를 들어 후자의 2차원 직교 변환에 의하여 전자의 2차원 직교 변환을 대체할 수 있다. 또한 전자의 2차원 직교 변환은 이하의 식 (60)과 같이 표현되고, 후자의 2차원 직교 변환은 이하의 식 (61)과 같이 표현된다.
Figure pct00053
즉, 예를 들어 베이스로 되는 변환 행렬(변환 타입)과, 그 변환 행렬을 이용하여 도출한, 예측 잔차의 직교 변환에 이용할 변환 행렬 사이에 수평 방향 및 수직 방향의 대칭성이 존재하는 경우, 조작부가 예측 잔차를 수평 방향 및 수직 방향으로 플립하고, 직교 변환부가, 그 조작부에 의하여 수평 방향 및 수직 방향으로 플립된 예측 잔차를, 베이스로 되는 변환 행렬을 이용하여 직교 변환하도록 해도 된다. 이와 같이 함으로써, 실질적으로, 베이스로 되는 변환 행렬에 의한 직교 변환과의 사이에 수평 방향 및 수직 방향의 대칭성이 존재하는 다른 변환 행렬에 의한 직교 변환을 실현할 수 있다.
역직교 변환에 대해서도 마찬가지이다. 즉, 베이스로 되는 변환 행렬(변환 타입)과, 그 변환 행렬을 이용하여 도출한, 계수 데이터의 역직교 변환에 이용할 변환 행렬 사이에 수평 방향 및 수직 방향의 대칭성이 존재하는 경우, 역직교 변환부가, 비트 스트림을 복호하여 얻어진 계수 데이터를, 베이스로 되는 변환 행렬을 이용하여 역직교 변환하고, 조작부가 그 역직교 변환 결과를 수평 방향 및 수직 방향으로 플립하도록 해도 된다. 이와 같이 함으로써, 실질적으로, 베이스로 되는 변환 행렬에 의한 역직교 변환과의 사이에 수평 방향 및 수직 방향의 대칭성이 존재하는 다른 변환 행렬에 의한 역직교 변환을 실현할 수 있다.
또한 상술한 식 (60)의 경우, 변환 행렬 T1과 T2를 각각 플립하므로 조작이 2회 필요해진다. 이에 비해, 상술한 식 (61)의 경우, 예측 잔차의 플립(J·X·J)은 치환 행렬 P와 예측 잔차 X의 행렬 곱으로 치환할 수 있다. 즉, 1회의 조작으로 행할 수 있다. 따라서 상술한 식 (60)의 경우(변환 행렬을 플립하는 경우)에 비해 조작의 횟수를 저감시킬 수 있어서, 직교 변환·역직교 변환의 처리량의 증대를 억제할 수 있다(직교 변환·역직교 변환을 보다 용이하게 행할 수 있음). 즉, 직교 변환·역직교 변환의 처리의 부하의 증대를 억제할 수 있다. 또한 직교 변환·역직교 변환을 보다 고속으로 행할 수 있다.
<변환 행렬의 부호 반전>
이상의 예측 잔차의 치환 조작과 함께 변환 행렬의 조작도 적용하도록 해도 된다. 예를 들어 도출부가 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고, 조작부가 예측 잔차를 1차원 직교 변환 사이의 공간 대칭성의 방향으로 플립하고, 직교 변환부가, 조작부에 의하여 플립된 예측 잔차를, 도출부에 의하여 도출된 제2 변환 행렬을 이용하여 직교 변환하도록 해도 된다. 이와 같이 함으로써, 실질적으로 다른 변환 행렬에 의한 직교 변환을 실현할 수 있다. 따라서 직교 변환을 위하여 준비하는 변환 행렬의 수의 증대를 억제할 수 있어서, 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
역직교 변환에 대해서도 마찬가지이다. 예를 들어 도출부가 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고, 역직교 변환부가, 도출부에 의하여 도출된 제2 변환 행렬을 이용하여, 복호부에 의하여 얻어진 계수 데이터를 역직교 변환하고, 조작부가, 역직교 변환부에 의하여 얻어진 계수 데이터의 역직교 변환 결과를 치환 조작하도록 해도 된다. 이와 같이 함으로써, 실질적으로 다른 변환 행렬에 의한 역직교 변환을 실현할 수 있다. 따라서 역직교 변환을 위하여 준비하는 변환 행렬의 수의 증대를 억제할 수 있어서, 역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 이 직교 변환 또는 역직교 변환에 있어서의 제2 변환 행렬의 도출 시, 도출부가, 제1 변환 행렬과 행수 및 열수가 동일한 제2 변환 행렬을 도출하도록 해도 된다. 행수 및 열수를 변화시키는 경우, 파형의 타입이 의도치 않게 변화할 가능성이 있다. 따라서 행수 및 열수를 제1 변환 행렬과 동일하게 함으로써, 파형의 타입의 의도치 않은 변화가 생길 가능성을 억제할 수 있어서, 제2 변환 행렬의 도출을 보다 용이하게 행할 수 있다.
또한 그 제2 변환 행렬의 도출 시에, 도출부가, 제1 변환 행렬 중, 홀수번째의 행 벡터의 부호를 반전하여 제2 변환 행렬을 도출하도록 해도 된다. 이와 같이 도출한 제2 변환 행렬을 이용하여, 상술한 바와 같이 예측 잔차를 치환 조작한 직교 변환함으로써, 제1 변환 행렬에 대하여 짝수번째의 행 벡터가 축대칭이고 홀수번째의 행 벡터가 점대칭인 다른 변환 행렬에 의한 예측 잔차의 직교 변환을 실현할(대체할) 수 있다. 또한 이와 같이 도출한 제2 변환 행렬을 이용하여 역직교 변환하고, 그 역직교 변환 결과를 상술한 바와 같이 치환 조작함으로써, 제1 변환 행렬에 대하여 짝수번째의 행 벡터가 축대칭이고 홀수번째의 행 벡터가 점대칭인 다른 변환 행렬을 이용한 역직교 변환을 실현할(대체할) 수 있다.
<예측 잔차의 조작예>
이상과 같은 다른 변환 행렬에 의한 직교 변환·역직교 변환을 대체하기 위한 예측 잔차의 조작예 일람을 도 67에 나타낸다.
도 67에 나타나는 표에 있어서, 최상단의 항목명의 행을 제외하고 위로부터 1단째의 예의 조작은, 다른 2개의 2차원 직교 변환에 있어서, 어느 방향(수평 방향 혹은 수직 방향, 또는 그 양쪽)으로 1차원 직교 변환 사이의 축대칭이 있음에 주목한 것이다.
이 경우, 조작부는 예측 잔차를, 1차원 직교 변환 사이의 공간 대칭성의 방향으로 플립하고, 직교 변환부는, 그 조작부에 의하여 플립된 예측 잔차를, 베이스로 되는 변환 행렬을 이용하여 직교 변환한다. 보다 구체적으로는, 조작부가 예측 잔차를 플립하고, 직교 변환부가 DST7의 변환 행렬을 베이스 변환 행렬 Tbase로 하고, 플립된 예측 잔차를 그 DST7의 변환 행렬을 이용하여 직교 변환한다. 이와 같이 함으로써, FlipDST7의 변환 행렬을 이용한, 플립되어 있지 않은 예측 잔차의 직교 변환을 대체할 수 있다. 또한 예측 잔차의 플립의 방향은 공간 대칭성의 방향(수평 방향 혹은 수직 방향, 또는 그 양쪽)에 대응한다.
역직교 변환의 경우에도 마찬가지이다. 역직교 변환부는, 비트 스트림을 복호하여 얻어진 계수 데이터를, 베이스로 되는 변환 행렬을 이용하여 역직교 변환하고, 조작부는 그 역직교 변환 결과를, 1차원 직교 변환 사이의 공간 대칭성의 방향으로 플립한다. 보다 구체적으로는, 역직교 변환부가 DST7의 변환 행렬을 이용하여 계수 데이터를 역직교 변환하고, 조작부가 그 역직교 변환 결과를 플립한다. 이와 같이 함으로써, FlipDST7의 변환 행렬을 이용한 계수 데이터의 역직교 변환을 대체할 수 있다. 또한 역직교 변환 결과의 플립의 방향은 공간 대칭성의 방향(수평 방향 혹은 수직 방향, 또는 그 양쪽)에 대응한다.
이와 같은 예측 잔차(역직교 변환 결과도 포함함)에 대한 조작을 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 FlipDST7의 변환 행렬을 준비할 필요가 없게 된다. 즉, 제1 실시 형태의 경우와 마찬가지로 고유 변환 타입을 삭감할 수 있다. 즉, LUT 사이즈의 증대를 억제할 수 있다. 또한 이와 같은 예측 잔차(역직교 변환 결과도 포함함)의 조작을 수반하는 직교 변환·역직교 변환을 행함으로써, FlipDST7의 변환 행렬을 이용하는 직교 변환·역직교 변환의 경우와 동일한 정도의 부호화 효율이 얻어진다.
또한 그 FlipDST7의 변환 행렬을 이용하는 직교 변환·역직교 변환의 경우와 비교하여, 예측 잔차(역직교 변환 결과도 포함함)에 대한 2차원의 플립 조작을 일괄 조작으로 행할 수 있으므로, 플립 조작의 횟수를 저감할 수 있다. 따라서 직교 변환·역직교 변환의 처리량의 증대를 억제할 수 있다(직교 변환·역직교 변환을 보다 용이하게 행할 수 있음). 즉, 직교 변환·역직교 변환의 처리의 부하의 증대를 억제할 수 있다. 또한 직교 변환·역직교 변환을 보다 고속으로 행할 수 있다.
또한 그 1단 아래의(위로부터 2단째의) 예의 조작은, 다른 2개의 2차원 직교 변환에 있어서, 어느 방향(수평 방향 혹은 수직 방향, 또는 그 양쪽)에 대한 1차원 직교 변환 사이의 유사성에 주목한 것이다. 보다 구체적으로는, 짝수번째의 행 벡터가 축대칭성을 갖고 홀수번째의 행 벡터가 점대칭성을 갖는 것에 주목하고 있다.
이 경우, 도출부가 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고, 조작부가 화상의 예측 잔차를 치환 조작하고, 직교 변환부가, 그 조작부에 의하여 치환 조작된 예측 잔차를, 도출부에 의하여 도출된 제2 변환 행렬을 이용하여 직교 변환한다. 보다 구체적으로는, 도출부가 DST7의 변환 행렬의 홀수번째의 행 벡터를 부호 반전하고, 조작부가 예측 잔차를 플립하고, 직교 변환부가, 플립된 예측 잔차를, 도출부에 의하여 도출된, DST7의 변환 행렬의 홀수번째의 행 벡터를 부호 반전한 변환 행렬을 이용하여 직교 변환한다. 이와 같이 함으로써, DCT8의 변환 행렬을 이용한, 플립되어 있지 않은 예측 잔차의 직교 변환을 대체할 수 있다.
또한 예측 잔차의 플립의 방향은 공간 대칭성의 방향(수평 방향 혹은 수직 방향, 또는 그 양쪽)에 대응한다. 또한 변환 행렬에 대한 조작은 홀수번째의 행 벡터에 대한 부호 반전뿐이므로, 도출부에 의하여 도출되는 변환 행렬의 행수 및 열수는 DST7의 변환 행렬과 동일하다.
역직교 변환의 경우에도 마찬가지이다. 도출부가 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고, 역직교 변환부가, 비트 스트림을 복호하여 얻어진 계수 데이터를, 그 제2 변환 행렬을 이용하여 역직교 변환하고, 조작부가 그 역직교 변환 결과를, 1차원 직교 변환 사이의 공간 대칭성의 방향으로 플립한다. 보다 구체적으로는, 도출부가 DST7의 변환 행렬의 홀수번째의 행 벡터를 부호 반전하고, 역직교 변환부가, 그 홀수번째의 행 벡터가 부호 반전된 DST7의 변환 행렬을 이용하여 계수 데이터를 역직교 변환하고, 조작부가 그 역직교 변환 결과를 플립한다. 이와 같이 함으로써, DCT8의 변환 행렬을 이용한 계수 데이터의 역직교 변환을 대체할 수 있다.
또한 역직교 변환 결과의 플립의 방향은 공간 대칭성의 방향(수평 방향 혹은 수직 방향, 또는 그 양쪽)에 대응한다. 또한 변환 행렬에 대한 조작은 홀수번째의 행 벡터에 대한 부호 반전뿐이므로, 도출부에 의하여 도출되는 변환 행렬의 행수 및 열수는 DST7의 변환 행렬과 동일하다.
이와 같은 예측 잔차(역직교 변환 결과도 포함함)에 대한 조작을 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DCT8의 변환 행렬을 준비할 필요가 없게 된다. 즉, 제1 실시 형태의 경우와 마찬가지로 고유 변환 타입을 삭감할 수 있다. 즉, LUT 사이즈의 증대를 억제할 수 있다. 또한 이와 같은 예측 잔차(역직교 변환 결과도 포함함)의 조작을 수반하는 직교 변환·역직교 변환을 행함으로써, DCT의 변환 행렬을 이용하는 직교 변환·역직교 변환의 경우와 동일한 부호화 효율이 얻어진다.
또한 그 1단 아래의(위로부터 3단째의) 예의 조작은, 다른 2개의 2차원 직교 변환에 있어서, 어느 방향(수평 방향 혹은 수직 방향, 또는 그 양쪽)으로 1차원 직교 변환 사이의 축대칭이 있음에 주목한 것이며, 위로부터 1단째와 동일한 조작이다.
단, 이 경우, DCT8의 변환 행렬을 베이스 변환 행렬 Tbase로 하고 있다. 따라서 이와 같이 함으로써, FlipDCT8의 변환 행렬을 이용한, 플립되어 있지 않은 예측 잔차의 직교 변환을 대체할 수 있다. 역직교 변환의 경우에도 마찬가지이다. 즉, 이와 같이 함으로써, FlipDCT8의 변환 행렬을 이용한 계수 데이터의 역직교 변환을 대체할 수 있다.
또한 그 1단 아래의(위로부터 4단째의) 예의 조작은, 다른 2개의 2차원 직교 변환에 있어서, 어느 방향(수평 방향 혹은 수직 방향, 또는 그 양쪽)에 대한 1차원 직교 변환 사이의 유사성(짝수번째의 행 벡터가 축대칭성을 갖고 홀수번째의 행 벡터가 점대칭성을 갖는 것)에 주목한 것이며, 위로부터 2단째와 동일한 조작이다.
단, 이 경우, DCT8의 변환 행렬을 베이스 변환 행렬 Tbase로 하고 있다. 따라서 이와 같이 함으로써, DST7의 변환 행렬을 이용한, 플립되어 있지 않은 예측 잔차의 직교 변환을 대체할 수 있다. 역직교 변환의 경우에도 마찬가지이다. 즉, 이와 같이 함으로써, DST7의 변환 행렬을 이용한 계수 데이터의 역직교 변환을 대체할 수 있다.
또한 상술한 각 도출예는 각각 단독으로 실시하도록 해도 되고, 복수의 도출예를 조합하여 실시하도록 해도 된다. 또한 상술한 예에서는, 베이스 변환 타입(제1 변환 타입)의 예로서 DST7 혹은 DCT8을 이용하여 설명하였지만, 도 8에 나타난 바와 같이 동형의 파형 형상을 갖는 변환 타입으로 치환해도 실현할 수 있다. 예를 들어 DST7을 DST4, DST8, DST3 등, 동형의 파형 형상을 갖는 그 외의 직교 변환으로 치환해도 된다. 마찬가지로 DCT8을 DCT3, DCT7, DCT4 등, 동형의 파형 형상을 갖는 그 외의 직교 변환으로 치환해도 된다.
<구성 및 처리의 흐름>
이와 같은 예측 잔차의 치환 조작을 행하는 화상 부호화 장치(100)의 구성은 제1 실시 형태의 경우와 마찬가지이다. 그리고 이 화상 부호화 장치(100)에 있어서, 직교 변환부(113)는 조작부 및 직교 변환부로서, 상술한 본 기술을 적용한 처리를 행한다. 또한 부호화부(115)는 부호화부로서, 상술한 본 기술을 적용한 처리를 행한다. 또한 역직교 변환부(118)는 역직교 변환부 및 조작부로서, 상술한 본 기술을 적용한 처리를 행한다. 따라서 화상 부호화 장치(100)는 직교 변환·역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 직교 변환부(113)의 구성은 제1 실시 형태의 경우와 마찬가지이다. 그리고 이 직교 변환부(113)에 있어서, 프라이머리 변환부(152)는 조작부 및 직교 변환부로서, 상술한 본 기술을 적용한 처리를 행한다. 즉, 조작부는 화상의 예측 잔차를 치환 조작하고, 직교 변환부는, 베이스로 되는 변환 행렬을 이용하여, 그 조작부에 의하여 치환 조작된 예측 잔차에 대한 프라이머리 변환을 행한다. 따라서 프라이머리 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 상술한 바와 같이 프라이머리 변환부(152)는 프라이머리 변환으로서, 프라이머리 수평 변환과 프라이머리 수직 변환을 행한다. 즉, 조작부는 화상의 예측 잔차를 치환 조작하고, 직교 변환부는, 그 치환 조작된 예측 잔차에 대하여 프라이머리 변환으로서, 베이스로 되는 수평 방향의 1차원 직교 변환용의 제2 변환 행렬을 이용하여, 수평 방향의 1차원 직교 변환을 행하고, 또한 베이스로 되는 수직 방향의 1차원 직교 변환용의 제2 변환 행렬을 이용하여, 수직 방향의 1차원 직교 변환을 행한다. 따라서 이와 같은, 수평 방향의 1차원 직교 변환 및 수직 방향의 1차원 직교 변환이 행해지는 프라이머리 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 화상 부호화 장치(100)에 의하여 실행되는 화상 부호화 처리의 흐름은 제1 실시 형태의 경우와 마찬가지이다. 즉, 이상과 같은 흐름의 화상 부호화 처리에 있어서, 스텝 S106의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 또한 스텝 S109의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 또한 스텝 S113의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 화상 부호화 처리를 실행함으로써, 직교 변환·역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 그 화상 부호화 처리의 스텝 S106에 있어서 실행되는 직교 변환 처리의 흐름은 제1 실시 형태의 경우와 마찬가지이다. 즉, 이상과 같은 흐름의 직교 변환 처리에 있어서, 스텝 S132의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 직교 변환 처리를 실행함으로써, 프라이머리 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 복호측도 마찬가지이다. 즉, 이와 같은 역직교 변환 결과의 치환 조작을 행하는 화상 복호 장치(200)의 구성은 제1 실시 형태의 경우와 마찬가지이다. 그리고 이 화상 복호 장치(200)에 있어서, 역직교 변환부(214)는 역직교 변환부 및 조작부로서, 상술한 본 기술을 적용한 처리를 행한다. 또한 복호부(212)는 복호부로서, 상술한 본 기술을 적용한 처리를 행한다. 따라서 화상 복호 장치(200)는 역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 역직교 변환부(214)의 구성은 제1 실시 형태의 경우와 마찬가지이다. 그리고 이 역직교 변환부(214)에 있어서, 역프라이머리 변환부(253)는 역직교 변환부 및 조작부로서, 상술한 본 기술을 적용한 처리를 행한다. 즉, 역직교 변환부는, 베이스로 되는 변환 행렬을 이용하여, 역세컨더리 변환 결과에 대한 역프라이머리 변환을 행하고, 조작부는, 얻어진 역프라이머리 변환 결과를 치환 조작한다. 따라서 역프라이머리 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 상술한 바와 같이 역프라이머리 변환부(253)는 역프라이머리 변환으로서, 역프라이머리 수직 변환과 역프라이머리 수평 변환을 행한다. 즉, 역직교 변환부는, 역세컨더리 변환 결과에 대하여 역프라이머리 변환으로서, 베이스로 되는 수직 방향의 역1차원 직교 변환용의 제2 변환 행렬을 이용하여, 수직 방향의 역1차원 직교 변환을 행하고, 또한 베이스로 되는 수평 방향의 역1차원 직교 변환용의 제2 변환 행렬을 이용하여, 수평 방향의 역1차원 직교 변환을 행한다. 따라서 이와 같은, 수직 방향의 역1차원 직교 변환 및 수평 방향의 역1차원 직교 변환이 행해지는 프라이머리 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 화상 복호 장치(200)에 의하여 실행되는 화상 복호 처리의 흐름은 제1 실시 형태의 경우와 마찬가지이다. 즉, 이상과 같은 흐름의 화상 복호 처리에 있어서, 스텝 S202의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 또한 스텝 S204의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 화상 복호 처리를 실행함으로써, 역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 그 화상 복호 처리의 스텝 S204에 있어서 실행되는 역직교 변환 처리의 흐름은 제1 실시 형태의 경우와 마찬가지이다. 즉, 이상과 같은 흐름의 역직교 변환 처리에 있어서, 스텝 S233의 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 역직교 변환 처리를 실행함으로써, 역프라이머리 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<3-2. 실시예 2-1>
<콘셉트>
다음으로, 도 67을 참조하여 설명한 각 도출예에 대하여 보다 상세히 설명한다. 맨 먼저, 도 67에 나타나는 표에 있어서, 최상단의 항목명의 행을 제외하고 위로부터 1단째의 예의 조작은, 다른 2개의 2차원 직교 변환에 있어서, 어느 방향(수평 방향 혹은 수직 방향, 또는 그 양쪽)으로 1차원 직교 변환 사이의 축대칭이 있음에 주목한 것이다.
이 경우, 조작부는 예측 잔차를 플립한다. 직교 변환부는, 그 플립된 예측 잔차를, 베이스 변환 행렬(DST7의 변환 행렬)을 이용하여 직교 변환한다. 이와 같이 함으로써, DST7의 변환 행렬을 플립한 FlipDST7(<2-2. 실시예 1-1> 참조)의 변환 행렬을 이용한 예측 잔차의 직교 변환을 대체할 수 있다.
역직교 변환에 대해서도 마찬가지이다. 이 경우, 역직교 변환부는 계수 데이터를, 베이스 변환 행렬(DST7의 변환 행렬)을 이용하여 역직교 변환하고, 조작부는 역직교 변환 결과를 플립한다. 이와 같이 함으로써, DST7의 변환 행렬을 플립한 FlipDST7의 변환 행렬을 이용한 계수 데이터(변환 계수 Coeff_IQ)의 역직교 변환을 대체할 수 있다.
이와 같은 예측 잔차(역직교 변환 결과도 포함함)에 대한 조작을 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 FlipDST7의 변환 행렬을 준비할 필요가 없게 된다. 즉, 제1 실시 형태의 경우와 마찬가지로 고유 변환 타입을 삭감할 수 있다.
이 경우, 도 68의 표에 나타난 바와 같이, 비특허문헌 1에 기재된 기술의 경우에 5종류 필요했던 변환 행렬(도 6의 A의 표 참조)을 4종류로 저감시킬 수 있으므로, LUT 사이즈의 합계는 약 47KB로 할 수 있다. 즉, 비특허문헌 1에 기재된 기술의 경우에 비해(약 53KB(도 6의 A의 표)) LUT의 사이즈를 저감시킬 수 있다. 즉, LUT의 사이즈의 증대를 억제할 수 있다.
또한 그 FlipDST7의 변환 행렬을 이용하는 직교 변환·역직교 변환의 경우와 비교하여, 예측 잔차(역직교 변환 결과도 포함함)에 대한 2차원의 플립 조작을 일괄 조작으로 행할 수 있으므로, 플립 조작의 횟수를 저감할 수 있다. 따라서 직교 변환·역직교 변환의 처리량의 증대를 억제할 수 있다(직교 변환·역직교 변환을 보다 용이하게 행할 수 있음).
또한 이와 같은 예측 잔차(역직교 변환 결과도 포함함)의 조작을 수반하는 직교 변환·역직교 변환을 행함으로써, FlipDST7의 변환 행렬을 이용하는 직교 변환·역직교 변환의 경우와 동일한 정도의 부호화 효율이 얻어진다.
<프라이머리 변환부>
다음으로, 이와 같은 처리를 행하기 위한 구성이나 처리 등에 대하여 설명한다. 도 69는, 이 경우의 프라이머리 변환부(152)의 주된 구성예를 나타내는 블록도이다. 도 69에 나타난 바와 같이, 이 경우의 프라이머리 변환부(152)는, 도 22에 나타나는 구성에 더해 예측 잔차 치환 조작부(551)을 갖는다.
프라이머리 변환 선택부(311)는, 도출한 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH 및 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV를 예측 잔차 치환 조작부(551)에도 공급한다.
예측 잔차 치환 조작부(551)는, 스위치(151)로부터 공급되는 예측 잔차 D, 그리고 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH 및 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV를 입력으로 한다. 예측 잔차 치환 조작부(551)는 예측 잔차 D를 변환 타입 식별자 TrTypeIdxH 및 변환 타입 식별자 TrTypeIdxV에 따라 플립한다. 예측 잔차 치환 조작부(551)는, 그 플립 후의 예측 잔차 Dflip을 프라이머리 수평 변환부(312)에 공급한다.
이상과 같은 구성의 프라이머리 변환부(152)에 있어서, 예측 잔차 치환 조작부(551)는 조작부로서, 상술한 본 기술을 적용한 처리를 행한다. 프라이머리 수평 변환부(312) 및 프라이머리 수직 변환부(313)는 각각 직교 변환부로서, 상술한 본 기술을 적용한 처리를 행한다.
즉, 프라이머리 수평 변환부(312)는 직교 변환부로서, 베이스로 되는 수평 방향의 1차원 직교 변환용의 변환 행렬을 이용하여, 플립 후의 예측 잔차 Dflip에 대하여 수평 방향의 1차원 직교 변환을 행한다. 따라서 프라이머리 수평 변환부(312)는 수평 방향의 1차원 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 프라이머리 수직 변환부(313)는 직교 변환부로서, 베이스로 되는 수직 방향의 1차원 직교 변환용의 변환 행렬을 이용하여, 프라이머리 수평 변환 후의 변환 계수 Coeff_Phor에 대하여 수직 방향의 1차원 직교 변환을 행한다. 따라서 프라이머리 수직 변환부(313)는 수직 방향의 1차원 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<프라이머리 변환 처리의 흐름>
다음으로, 상술한 구성에 의하여 행해지는 처리의 흐름의 예 등에 대하여 설명한다. 이 경우의, 도 14의 스텝 S132에 있어서 실행되는 프라이머리 변환 처리의 흐름의 예를, 도 70의 흐름도를 참조하여 설명한다.
프라이머리 변환 처리가 개시되면, 프라이머리 변환부(152)의 프라이머리 변환 선택부(311)는, 스텝 S561에 있어서, 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH(또는 변환 타입 TrTypeH)와, 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV(또는 변환 타입 TrTypeV)를 각각 선택한다.
스텝 S562에 있어서, 예측 잔차 치환 조작부(551)는 예측 잔차 치환 조작 처리를 실행하고, 스텝 S561에 있어서 얻어진 변환 타입 식별자 TrTypeIdxH 및 변환 타입 식별자 TrTypeIdxV에 따라 예측 잔차 D를 플립하여, 플립 후의 예측 잔차 Dflip을 도출한다.
스텝 S563에 있어서, 프라이머리 수평 변환부(312)는 프라이머리 수평 변환 처리를 행하고, 스텝 S561에 있어서 얻어진 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH에 대응하는 변환 행렬을 이용하여, 스텝 S562에 있어서 얻어진 플립 후의 예측 잔차 Dflip에 대하여 프라이머리 수평 변환을 행한다.
스텝 S564에 있어서, 프라이머리 수직 변환부(313)는 프라이머리 수직 변환 처리를 행하고, 스텝 S561에 있어서 얻어진 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV에 대응하는 변환 행렬을 이용하여, 스텝 S563의 처리에 의하여 얻어지는 프라이머리 수평 변환 후의 변환 계수 Coeff_Phor에 대하여 프라이머리 수직 변환을 행한다.
스텝 S564의 처리가 종료되면 프라이머리 변환 처리가 종료되고, 처리는 도 14로 되돌아간다.
이상과 같은 프라이머리 변환 처리에 있어서, 스텝 S562 내지 스텝 S564의 각 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 프라이머리 변환 처리를 실행함으로써, 프라이머리 수평 변환 처리나 프라이머리 수직 변환 처리에 필요한 메모리 용량의 증대를 억제할 수 있다.
<예측 잔차 치환 조작 처리의 흐름>
도 70의 스텝 S562에 있어서 실행되는 예측 잔차 치환 조작 처리의 흐름에 대하여, 도 71의 흐름도를 참조하여 설명한다.
예측 잔차 치환 조작 처리가 개시되면, 예측 잔차 치환 조작부(551)는 스텝 S581에 있어서, 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH(또는 변환 타입 TrTypeH)에 대응하는 플립 플래그 FlipFlagH와, 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV(또는 변환 타입 TrTypeV)에 대응하는 플립 플래그 FlipFlagV를 도출한다. 그때, 예측 잔차 치환 조작부(551)는, 예를 들어 도 72에 나타낸 대응표(LUT_TrTypeIdxToFlipFlag)를 참조하여 플립 플래그 FlipFlagH와 플립 플래그 FlipFlagV를 구한다. 이들 플립 플래그의 도출은, 예를 들어 이하의 식 (62) 및 식 (63)과 같이 나타낼 수 있다.
Figure pct00054
스텝 S582에 있어서, 예측 잔차 치환 조작부(551)는 스텝 S581에 있어서 도출한 플립 플래그 FlipFlagH 및 플립 플래그 FlipFlagV가, 이하의 식 (64)로 나타내어지는 조건을 만족시키는지 여부를 판정한다.
Figure pct00055
이 조건을 만족시킨다고 판정된 경우, 즉, FlipFlagH가 참(1)이고, 또한 FlipFlagV가 거짓(0)이라고 판정된 경우, 처리는 스텝 S583으로 진행된다.
스텝 S583에 있어서, 예측 잔차 치환 조작부(551)는 예측 잔차 D를 수평 방향으로 플립하여 플립 후의 예측 잔차 Dflip을 얻는다. 이 조작을 행렬 표현하면, 이하의 식 (65)와 같이 나타낼 수 있다.
Figure pct00056
여기서, ×는 행렬 곱을 나타내는 연산자이고, FlipH(X)는, 행렬 X를 수평 방향으로의 플립 조작을 나타내는 연산자이고, FlipV(·)에 대응하는 플립 행렬 J는, N행 N열의 단위 행렬 I를 좌우 반전한 것이다. 또한 이 조작을 요소별 연산으로서 표현하는 경우, 예측 잔차 치환 조작부(551)는 이하의 식 (66)과 같이, 플립 후의 예측 잔차 Dflip의 i행 j열 성분((i, j) 성분)으로 예측 잔차 D의 (i, N-1-j) 성분을 설정한다.
Figure pct00057
단, 예측 잔차 D의 사이즈는 횡폭 N, 횡폭 M(M행 N열)이다. 이 N, M은, 이하의 식 (67) 및 식 (68)을 만족시킨다.
Figure pct00058
스텝 S583의 처리가 종료되면, 처리는 스텝 S588로 진행된다. 또한 스텝 S582에 있어서, 조건을 만족시키지 않는다고 판정된 경우, 즉, FlipFlagH가 거짓(0)이거나, 또는 FlipFlagV가 참(1)이라고 판정된 경우, 처리는 스텝 S584로 진행된다.
스텝 S584에 있어서, 예측 잔차 치환 조작부(551)는, 스텝 S581에 있어서 도출한 플립 플래그 FlipFlagH 및 플립 플래그 FlipFlagV가, 이하의 식 (69)로 나타내어지는 조건을 만족시키는지 여부를 판정한다.
Figure pct00059
이 조건을 만족시킨다고 판정된 경우, 즉, FlipFlagH가 거짓(0)이고, 또한 FlipFlagV가 참(1)이라고 판정된 경우, 처리는 스텝 S585로 진행된다.
스텝 S585에 있어서, 예측 잔차 치환 조작부(551)는 예측 잔차 D를 수직 방향으로 플립하여 플립 후의 예측 잔차 Dflip을 얻는다. 이 조작을 행렬 표현하면, 이하의 식 (70)과 같이 나타낼 수 있다.
Figure pct00060
여기서, ×는 행렬 곱을 나타내는 연산자이고, FlipV(X)는, 행렬 X를 수직 방향으로의 플립 조작을 나타내는 연산자이고, FlipV(·)에 대응하는 플립 행렬 J는, M행 M열의 단위 행렬 I를 좌우 반전한 것이다. 또한 이 조작을 요소별 연산으로서 표현하는 경우, 예측 잔차 치환 조작부(551)는, 이하의 식 (71)과 같이, 플립 후의 예측 잔차 Dflip의 i행 j열 성분((i, j) 성분)으로 예측 잔차 D의 (M-1-i, j) 성분을 설정한다. 단, 예측 잔차 D의 사이즈는 횡폭 N, 횡폭 M(M행 N열)이며, 이 N, M은 상술한 식 (67) 및 식 (68)을 만족시킨다.
Figure pct00061
스텝 S585의 처리가 종료되면, 처리는 스텝 S588로 진행된다. 또한 스텝 S584에 있어서, 조건을 만족시키지 않는다고 판정된 경우, 즉, FlipFlagH가 참(1)이거나, 또는 FlipFlagV가 거짓(0)이라고 판정된 경우, 처리는 스텝 S586으로 진행된다.
스텝 S586에 있어서, 예측 잔차 치환 조작부(551)는, 스텝 S581에 있어서 도출한 플립 플래그 FlipFlagH 및 플립 플래그 FlipFlagV가, 이하의 식 (72)로 나타내어지는 조건을 만족시키는지 여부를 판정한다.
Figure pct00062
이 조건을 만족시킨다고 판정된 경우, 즉, FlipFlagH가 참(1)이고, 또한 FlipFlagV가 참(1)이라고 판정된 경우, 처리는 스텝 S587로 진행된다.
스텝 S587에 있어서, 예측 잔차 치환 조작부(551)는 예측 잔차 D를 수평 방향 및 수직 방향으로 플립하여 플립 후의 예측 잔차 Dflip을 얻는다. 이 조작을 행렬 표현하면, 이하의 식 (73)과 같이 나타낼 수 있다.
Figure pct00063
여기서, ×는 행렬 곱을 나타내는 연산자이고, 플립 행렬 J1은, N행 N열의 단위 행렬 I를 좌우 반전한 것이며, 플립 행렬 J2는, M행 M열의 단위 행렬 I를 좌우 반전한 것이다. 또한 플립 행렬 J는, 전치하더라도 플립 행렬 J와 등가이다(JT=J). 또한 이 조작을 요소별 연산으로서 표현하는 경우, 예측 잔차 치환 조작부(551)는 이하의 식 (74)와 같이, 플립 후의 예측 잔차 Dflip의 i행 j열 성분((i, j) 성분)으로 예측 잔차 D의 (M-i-1, N-j-1) 성분을 설정한다. 단, 예측 잔차 D의 사이즈는 횡폭 N, 횡폭 M(M행 N열)이며, 이 N, M은 상술한 식 (67) 및 식 (68)을 만족시킨다.
Figure pct00064
스텝 S587의 처리가 종료되면, 처리는 스텝 S588로 진행된다.
스텝 S588에 있어서, 예측 잔차 치환 조작부(551)는 이하의 식 (75)와 같이, 플립 후의 예측 잔차 Dflip을 예측 잔차 D로 한다. 즉, 이 예측 잔차 D(플립 후의 예측 잔차 Dflip)에 대하여 프라이머리 수평 변환 처리(도 70의 스텝 S563)가 행해진다.
Figure pct00065
스텝 S588의 처리가 종료되면 예측 잔차 치환 조작 처리가 종료되고, 처리는 도 70로 되돌아간다. 또한 스텝 S586에 있어서, 조건을 만족시키지 않는다고 판정된 경우, 즉, FlipFlagH가 거짓(0)이거나, 또는 FlipFlagV가 거짓(0)이라고 판정된 경우, 예측 잔차 치환 조작 처리가 종료되고, 처리는 도 70로 되돌아간다.
이상과 같이 예측 잔차 치환 조작 처리를 행함으로써, 예측 잔차 치환 조작부(551)는, 2차원 직교 변환(예측 잔차를 포함함)이 갖는 공간 대칭성의 방향으로(즉, 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH(또는 변환 타입 TrTypeH) 및 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV(또는 변환 타입 TrTypeV)에 대응하는 방향으로) 예측 잔차를 플립시킬 수 있다.
<역프라이머리 변환부>
다음으로, 본 실시예의 경우의 화상 복호 장치(200)의 구성에 대하여 설명한다. 도 73은, 이 경우의 역프라이머리 변환부(253)(도 16)의 주된 구성예를 나타내는 블록도이다. 도 73에 나타난 바와 같이, 이 경우의 역프라이머리 변환부(253)는, 도 34에 나타나는 구성에 더해 예측 잔차 치환 조작부(552)를 갖는다.
역프라이머리 변환 선택부(411)는, 도출한 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV 및 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxH를 예측 잔차 치환 조작부(551)에도 공급한다. 또한 역프라이머리 수평 변환부(413)는, 도출한 역프라이머리 수평 변환 후의 변환 계수 Coeff_IPhor를 예측 잔차 치환 조작부(552)에 공급한다.
예측 잔차 치환 조작부(552)는, 역프라이머리 수평 변환부(413)로부터 공급되는 역프라이머리 수평 변환 후의 변환 계수 Coeff_IPhor, 그리고 프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH(또는 변환 타입 TrTypeH) 및 프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV(또는 변환 타입 TrTypeV)를 입력으로 한다. 예측 잔차 치환 조작부(552)는, 역프라이머리 수평 변환 후의 변환 계수 Coeff_IPhor를, 변환 타입 식별자 TrTypeIdxH(또는 변환 타입 TrTypeH) 및 변환 타입 식별자 TrTypeIdxV(또는 변환 타입 TrTypeV)에 따라 플립한다. 예측 잔차 치환 조작부(552)는, 그 플립한 변환 계수 Coeff_IPhor(역프라이머리 변환 후의 변환 계수 Coeff_IP)을 예측 잔차 D'로서 역프라이머리 변환부(253)의 외부에 출력한다(연산부(215)에 공급함).
이상과 같은 구성의 역프라이머리 변환부(253)에 있어서, 예측 잔차 치환 조작부(552)는 조작부로서, 상술한 본 기술을 적용한 처리를 행한다. 역프라이머리 수직 변환부(412) 및 역프라이머리 수평 변환부(413)는 각각, 역직교 변환부로서, 상술한 본 기술을 적용한 처리를 행한다.
즉, 역프라이머리 수직 변환부(412)는 역직교 변환부로서, 베이스로 되는 수직 방향의 역1차원 직교 변환용의 변환 행렬을 이용하여, 역세컨더리 변환 후의 변환 계수 Coeff_IS에 대하여 수직 방향의 역1차원 직교 변환을 행한다. 이 변환 계수가, 그 후, 예측 잔차 치환 조작부(552)에 의하여 상술한 바와 같이 플립됨으로써, 다른 변환 행렬을 이용한 수직 방향의 역1차원 직교 변환을 대체할 수 있다. 따라서 역프라이머리 수직 변환부(412)는, 수직 방향의 역1차원 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 역프라이머리 수평 변환부(413)는 역직교 변환부로서, 베이스로 되는 수평 방향의 역1차원 직교 변환용의 변환 행렬을 이용하여, 역프라이머리 수직 변환 후의 변환 계수 Coeff_IPver에 대하여 수평 방향의 역1차원 직교 변환을 행한다. 이 변환 계수가 그 후, 예측 잔차 치환 조작부(552)에 의하여 상술한 바와 같이 플립됨으로써, 다른 변환 행렬을 이용한 수평 방향의 역1차원 직교 변환을 대체할 수 있다. 따라서 역프라이머리 수평 변환부(413)는, 수평 방향의 역1차원 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<역프라이머리 변환 처리의 흐름>
다음으로, 상술한 구성에 의하여 행해지는 처리의 흐름의 예 등에 대하여 설명한다. 이 경우의, 도 18의 스텝 S233에 있어서 실행되는 역프라이머리 변환 처리의 흐름의 예를, 도 74의 흐름도를 참조하여 설명한다.
역프라이머리 변환 처리가 개시되면, 역프라이머리 변환부(253)의 역프라이머리 변환 선택부(411)는, 스텝 S601에 있어서, 역프라이머리 변환 선택 처리를 행하여, 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV(또는 변환 타입 TrTypeV)와, 역프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH(또는 변환 타입 TrTypeH)를 각각 선택한다.
스텝 S602에 있어서, 역프라이머리 수직 변환부(412)는 역프라이머리 수직 변환 처리를 행하고, 스텝 S601에 있어서 얻어진 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV에 대응하는 변환 행렬을 이용하여, 역세컨더리 변환 후의 변환 계수 Coeff_IS에 대하여 수직 방향의 역1차원 직교 변환을 행한다.
스텝 S603에 있어서, 역프라이머리 수평 변환부(413)는 역프라이머리 수평 변환 처리를 행하고, 스텝 S601에 있어서 얻어진 역프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH에 대응하는 변환 행렬을 이용하여, 스텝 S602에 있어서 도출된 역프라이머리 수직 변환 후의 변환 계수 Coeff_IPver에 대하여 수평 방향의 역1차원 직교 변환을 행한다.
스텝 S604에 있어서, 예측 잔차 치환 조작부(552)는 예측 잔차 치환 조작 처리를 행하고, 스텝 S601에 있어서 얻어진 역프라이머리 수직 변환의 변환 타입 식별자 TrTypeIdxV와, 역프라이머리 수평 변환의 변환 타입 식별자 TrTypeIdxH를 이용하여, 스텝 S603에 있어서 도출된 역프라이머리 수평 변환 후의 변환 계수 Coeff_IPhor를 플립하여, 역프라이머리 변환 후의 변환 계수 Coeff_IP(예측 잔차 D')을 도출한다.
이 예측 잔차 치환 조작 처리는, 도 71의 흐름도를 참조하여 설명한 예와 마찬가지의 흐름으로 행해진다. 따라서 도 71에 관한 설명은, 적당히 예측 잔차 D를 변환 계수 Coeff_IPhor로 치환하거나 하면 이 스텝 S604의 처리에도 적용할 수 있으므로, 그 설명을 생략한다.
스텝 S604의 처리가 종료되면 역프라이머리 변환 처리가 종료되고, 처리는 도 18로 되돌아간다.
이상과 같은 역프라이머리 변환 처리에 있어서, 스텝 S602 내지 스텝 S604의 각 처리로서, 상술한 본 기술을 적용한 처리가 행해진다. 따라서 이 역프라이머리 변환 처리를 실행함으로써, 역프라이머리 수직 변환 처리나 역프라이머리 수평 변환 처리에 필요한 메모리 용량의 증대를 억제할 수 있다.
<3-3. 실시예 2-2>
<콘셉트>
다음으로, 도 67에 나타나는 표에 있어서, 최상단의 항목명의 행을 제외하고 위로부터 2단째의 예에 대하여 설명한다. 이 조작은, 다른 2개의 2차원 직교 변환에 있어서, 어느 방향(수평 방향 혹은 수직 방향, 또는 그 양쪽)에 대한 1차원 직교 변환 사이의 유사성에 주목한 것이다. 보다 구체적으로는, 짝수번째의 행 벡터가 축대칭성을 갖고 홀수번째의 행 벡터가 점대칭성을 갖는 것에 주목하고 있다.
이 경우, 도출부는 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고, 조작부는 예측 잔차를 치환 조작하고, 직교 변환부는, 그 치환 조작된 예측 잔차를, 제2 변환 행렬을 이용하여 직교 변환한다. 예를 들어 DST7의 변환 행렬을 베이스 변환 행렬로 하고, 도출부가, 그 DST7의 변환 행렬의 홀수번째의 행 벡터의 부호를 반전하고, 조작부가 예측 잔차를 플립하고, 직교 변환부가, 플립한 예측 잔차를, 홀수번째의 행 벡터를 부호 반전한 DST7의 변환 행렬을 이용하여 직교 변환한다. 이와 같이 함으로써, DST7의 변환 행렬을 플립하고, 그 홀수번째의 행 벡터를 부호 반전한 변환 행렬(즉, DCT8(<2-3. 실시예 1-2> 참조))을 이용한 예측 잔차의 직교 변환을 대체할 수 있다.
역직교 변환에 대해서도 마찬가지이다. 이 경우, 도출부는, 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고, 역직교 변환부는 계수 데이터를, 제2 변환 행렬을 이용하여 역직교 변환하고, 조작부는 역직교 변환 결과를 치환 조작한다. 예를 들어 DST7의 변환 행렬을 베이스 변환 행렬로 하고, 도출부가, 그 DST7의 변환 행렬의 홀수번째의 행 벡터의 부호를 반전하고, 역직교 변환부가 계수 데이터를, 홀수번째의 행 벡터를 부호 반전한 DST7의 변환 행렬을 이용하여 역직교 변환하고, 조작부가 그 역직교 변환 결과를 플립한다. 이와 같이 함으로써, DST7의 변환 행렬을 플립하고, 그 홀수번째의 행 벡터를 부호 반전한 변환 행렬(즉, DCT8(<2-3. 실시예 1-2> 참조))을 이용한 계수 데이터(변환 계수 Coeff_IQ)의 역직교 변환을 대체할 수 있다.
이와 같은 예측 잔차(역직교 변환 결과도 포함함)에 대한 조작을 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DCT8의 변환 행렬을 준비할 필요가 없게 된다. 즉, 제1 실시 형태의 경우와 마찬가지로 고유 변환 타입을 삭감할 수 있다.
이 경우, 도 75의 표에 나타난 바와 같이, 비특허문헌 1에 기재된 기술의 경우에 5종류 필요했던 변환 행렬(도 6의 A의 표 참조)을 4종류로 저감시킬 수 있으므로, LUT 사이즈의 합계는 약 47KB로 할 수 있다. 즉, 비특허문헌 1에 기재된 기술의 경우에 비해(약 53KB(도 6의 A의 표)) LUT의 사이즈를 저감시킬 수 있다. 즉, LUT의 사이즈의 증대를 억제할 수 있다.
<변환 행렬 도출부>
이 경우, 프라이머리 변환부(152)는 <3-2. 실시예 2-1>의 경우와 마찬가지의 구성을 갖는다. 또한 프라이머리 수평 변환부(312)는 <3-2. 실시예 2-1>의 경우와 마찬가지의 구성을 갖는다. 또한 프라이머리 수직 변환부(313)는 <3-2. 실시예 2-1>의 경우와 마찬가지의 구성을 갖는다. 단, 프라이머리 수평 변환부(312)가 갖는 변환 행렬 도출부(321)의 내부의 구성과, 프라이머리 수직 변환부(313)가 갖는 변환 행렬 도출부(351)의 내부의 구성이, <3-2. 실시예 2-1>의 경우와 다르다.
도 76은, 이 경우의 프라이머리 수평 변환부(312)가 갖는 변환 행렬 도출부(321)의 주된 구성예를 나타내는 블록도이다. 도 76에 나타난 바와 같이, 이 경우의 변환 행렬 도출부(321)는 변환 행렬 LUT(331) 및 부호 반전부(561)를 갖는다. 또한 도 76에 있어서는, 데이터의 수수를 나타내는 화살표를 생략하고 있지만, 변환 행렬 도출부(321)는 임의의 처리부(처리 블록) 사이에서 임의의 데이터를 수수할 수 있다.
부호 반전부(561)는 부호 반전부(501)(도 46)와 마찬가지의 처리부이며, N행 N열의 변환 행렬 T를 입력으로 하고, 그 변환 행렬 T의 소정 개소의 부호를 반전하여 부호 반전 후의 변환 행렬 TInvSign을 출력한다. 이 도출예(실시예 2-2)의 경우, 변환 행렬 도출부(321)는 부호 반전부(561)를 통하여, 변환 행렬 LUT(331)에 있어서 선택한 N행 N열의 베이스 변환 행렬 Tbase의 홀수차 행 벡터의 부호를 반전하여 변환 행렬 TInvSign을 도출한다. 변환 행렬 도출부(321)는 그 변환 행렬 TInvSign을 변환 행렬 TH로서 변환 행렬 도출부(321)의 외부에 출력한다(행렬 연산부(322)에 공급함).
이상과 같이, 변환 행렬 도출부(321)는 부호 반전부(561)를 이용하여, 도 67에 나타나는 표의, 위로부터 2단째의 예의, 프라이머리 수평 변환에 있어서의 「베이스 변환 행렬 Tbase의 조작」을 실현할 수 있다.
<변환 행렬 도출부>
도 77은, 이 경우의 프라이머리 수직 변환부(313)가 갖는 변환 행렬 도출부(351)의 주된 구성예를 나타내는 블록도이다. 도 77에 나타난 바와 같이, 이 경우의 변환 행렬 도출부(351)는, 변환 행렬 도출부(321)의 경우와 마찬가지로 변환 행렬 LUT(361) 및 부호 반전부(562)를 갖는다. 또한 도 77에 있어서는, 데이터의 수수를 나타내는 화살표를 생략하고 있지만, 변환 행렬 도출부(351)는 임의의 처리부(처리 블록) 사이에서 임의의 데이터를 수수할 수 있다.
부호 반전부(562)는, 부호 반전부(502)(도 47)과 마찬가지의 처리부이며, N행 N열의 변환 행렬 T를 입력으로 하고, 그 변환 행렬 T의 소정 개소의 부호를 반전하여 부호 반전 후의 변환 행렬 TInvSign을 출력한다. 이 도출예(실시예 2-2)의 경우, 변환 행렬 도출부(351)는 부호 반전부(562)를 통하여, 변환 행렬 LUT(361)에 있어서 선택한 N행 N열의 베이스 변환 행렬 Tbase의 홀수차 행 벡터의 부호를 반전하여 변환 행렬 TInvSign을 도출한다. 부호 반전부(562)는 그 변환 행렬 TInvSign을 변환 행렬 TV로서 변환 행렬 도출부(351)의 외부에 출력한다(행렬 연산부(352)에 공급함).
이상과 같이, 변환 행렬 도출부(351)는 부호 반전부(562)를 이용하여, 도 67에 나타나는 표의, 위로부터 2단째의 예의, 프라이머리 수직 변환에 있어서의 「베이스 변환 행렬 Tbase의 조작」을 실현할 수 있다.
<변환 행렬 도출 처리의 흐름>
이 경우의 프라이머리 변환 처리는, <3-2. 실시예 2-1>의 경우와 마찬가지의 흐름으로 행해지므로(도 70의 흐름도와 마찬가지의 흐름으로 행해지므로), 그 설명은 기본적으로 생략한다.
단, 이 경우, 도 70의 스텝 S562에 있어서 실행되는 예측 잔차 치환 조작 처리(도 71)의 스텝 S581에 있어서는, 예측 잔차 치환 조작부(551)가, 도 72에 나타나는 대응표 대신, 도 79에 나타나는 대응표(LUT_TrTypeIdxToFlipFlag)를 참조하여 플립 플래그 FlipFlagH와 플립 플래그 FlipFlagV를 구한다.
또한 이 경우, 도 70의 스텝 S563에 있어서 실행되는 프라이머리 수평 변환 처리는, <2-2. 실시예 1-1>의 경우와 마찬가지의 흐름으로 행해지지만(도 28의 흐름도와 마찬가지의 흐름으로 행해지지만), 도 28의 스텝 S321에 있어서 실행되는 변환 행렬 도출 처리는, 도 30의 예와는 다른 흐름으로 행해진다.
이 경우의, 도 28의 스텝 S321에 있어서, 프라이머리 수평 변환부(312) 내의 변환 행렬 도출부(321)에 의하여 실행되는 변환 행렬 도출 처리의 흐름의 예를, 도 78의 흐름도를 참조하여 설명한다.
변환 행렬 도출 처리가 개시되면, 변환 행렬 도출부(321)는, 스텝 S621에 있어서, 예를 들어 도 79에 나타나는 대응표(LUT_TrTypeIdxToFlipFlag)를 참조하여, 변환 타입 식별자 TrTypeIdxH에 대응하는 베이스 변환 타입의 베이스 변환 행렬 Tbase와, 부호 반전 플래그 InvSignFlag을 도출한다.
스텝 S622에 있어서, 변환 행렬 도출부(321)는, 스텝 S621에 있어서 도출한 부호 반전 플래그 InvSignFlag가 참(1)인지 여부를 판정한다. 부호 반전 플래그 InvSignFlag가 거짓(0)이라고 판정된 경우, 처리는 스텝 S623으로 진행된다.
스텝 S623에 있어서, 변환 행렬 도출부(321)는, 스텝 S621에 있어서 도출된 베이스 변환 행렬 Tbase(DST7)를 변환 행렬 LUT(331)로부터 판독하고, 그것을 변환 행렬 TH로 설정한다. 이를 행렬식으로 나타내면 이하의 식 (76)처럼 된다.
Figure pct00066
스텝 S623의 처리가 종료되면 변환 행렬 도출 처리가 종료되고, 처리는 도 28로 되돌아간다. 또한 스텝 S622에 있어서, 부호 반전 플래그 InvSignFlag가 참(1)이라고 판정된 경우, 처리는 스텝 S624로 진행된다.
스텝 S624에 있어서, 변환 행렬 도출부(321)는, 스텝 S621에 있어서 도출된 베이스 변환 행렬 Tbase(DST7)를 변환 행렬 LUT(331)로부터 판독하고, 부호 반전부(561)를 통하여 그 베이스 변환 행렬 Tbase(DST7)의 홀수번째의 행 벡터를 부호 반전하고 그것을 변환 행렬 TH로 설정한다. 이를 행렬식으로 나타내면 이하의 식 (77)처럼 된다.
Figure pct00067
여기서, ×는 행렬 곱을 나타내는 연산자이고, 부호 반전 행렬 D는, Diag(1, -1, …, (-1)N-1)로 이루어지는 대각 행렬이다.
스텝 S624의 처리가 종료되면 변환 행렬 도출 처리가 종료되고, 처리는 도 28로 되돌아간다.
<변환 행렬 도출 처리의 흐름>
또한 프라이머리 수직 변환 처리의 스텝 S361(도 32)에 있어서 실행되는 변환 행렬 도출 처리의 흐름은, 도 78의 흐름도를 참조하여 설명한 프라이머리 수평 변환에 있어서 실행되는 변환 행렬 도출 처리의 경우와 마찬가지이므로, 그 설명을 생략한다. 도 78의 설명에 있어서, 적당히 변환 타입 식별자 TrTypeIdxH를 변환 타입 식별자 TrTypeIdxV로 치환하거나 변환 행렬 TH를 변환 행렬 TV로 치환하거나 하면 된다.
<변환 행렬 도출부>
다음으로, 이 경우의 화상 복호 장치(200)의 구성에 대하여 설명한다. 이 경우에도 화상 복호 장치(200)가 갖는 역프라이머리 변환부(253), 역프라이머리 수직 변환부(412), 역프라이머리 수평 변환부(413) 등의 구성은, <2-2. 실시예 1-1>의 경우와 마찬가지이므로, 그 설명을 생략한다.
도 80은, 이 경우의 변환 행렬 도출부(421)(역프라이머리 수직 변환부(412)가 갖는 변환 행렬 도출부(421))의 주된 구성예를 나타내는 블록도이다. 도 80에 나타난 바와 같이, 이 경우의 변환 행렬 도출부(421)는, 변환 행렬 도출부(321)와 마찬가지로 변환 행렬 LUT(431) 및 부호 반전부(571)를 갖는다. 또한 도 80에 있어서는, 데이터의 수수를 나타내는 화살표를 생략하고 있지만, 변환 행렬 도출부(421)는 임의의 처리부(처리 블록) 사이에서 임의의 데이터를 수수할 수 있다.
변환 행렬 LUT(431)는 도 36의 경우와 마찬가지이다. 부호 반전부(571)는 부호 반전부(501)와 마찬가지의 처리부이며, N행 N열의 변환 행렬 T를 입력으로 하고, 그 변환 행렬 T의 소정 개소의 부호를 반전하여 부호 반전 후의 변환 행렬 TInvSign을 출력한다. 이 도출예(실시예 2-2)의 경우, 변환 행렬 도출부(421)는 부호 반전부(571)를 통하여, 변환 행렬 LUT(431)에 있어서 선택한 N행 N열의 베이스 변환 행렬 Tbase의 홀수차 행 벡터의 부호를 반전하여 변환 행렬 TInvSign을 도출한다. 부호 반전부(571)는 그 변환 행렬 TInvSign을 변환 행렬 TV로서 변환 행렬 도출부(421)의 외부에 출력한다(행렬 연산부(422)에 공급함).
이상과 같이, 변환 행렬 도출부(421)는 부호 반전부(571)를 이용하여, 도 67에 나타나는 표의, 위로부터 2단째의 예의, 역프라이머리 수직 변환에 있어서의 「베이스 변환 행렬 Tbase의 조작」을 실현할 수 있다.
<변환 행렬 도출부>
도 81은, 이 경우의, 역프라이머리 수평 변환부(413)가 갖는 변환 행렬 도출부(451)의 주된 구성예를 나타내는 블록도이다. 도 81에 나타난 바와 같이, 이 경우의 변환 행렬 도출부(451)는 변환 행렬 도출부(421)과 마찬가지로 변환 행렬 LUT(461) 및 부호 반전부(572)를 갖는다. 또한 도 81에 있어서는, 데이터의 수수를 나타내는 화살표를 생략하고 있지만, 변환 행렬 도출부(451)는 임의의 처리부(처리 블록) 사이에서 임의의 데이터를 수수할 수 있다.
변환 행렬 LUT(461)는 도 80의 경우와 마찬가지이다. 부호 반전부(572)는 부호 반전부(571)과 마찬가지의 처리부이며, N행 N열의 변환 행렬 T를 입력으로 하고, 그 변환 행렬 T의 소정 개소의 부호를 반전하여 부호 반전 후의 변환 행렬 TInvSign을 출력한다. 이 도출예(실시예 2-2)의 경우, 변환 행렬 도출부(451)는 부호 반전부(572)를 통하여, 변환 행렬 LUT(461)에 있어서 선택한 N행 N열의 베이스 변환 행렬 Tbase의 홀수차 행 벡터의 부호를 반전하여 변환 행렬 TInvSign을 도출한다. 부호 반전부(572)는 그 변환 행렬 TInvSign을 변환 행렬 TH로서 변환 행렬 도출부(451)의 외부에 출력한다(행렬 연산부(452)에 공급함).
이상과 같이, 변환 행렬 도출부(451)는 부호 반전부(512)를 이용하여, 도 67에 나타나는 표의, 위로부터 2단째의 예의, 역프라이머리 수직 변환에 있어서의 「베이스 변환 행렬 Tbase의 조작」을 실현할 수 있다.
<변환 행렬 도출 처리의 흐름>
또한 변환 행렬 도출부(421) 및 변환 행렬 도출부(451)는, 도 78의 흐름도를 참조하여 설명한 경우와 마찬가지의 흐름으로 변환 행렬 도출 처리를 행하므로, 그 설명은 생략한다.
<3-4. 실시예 2-3>
<콘셉트>
다음으로, 도 67에 나타나는 표에 있어서, 최상단의 항목명의 행을 제외하고 위로부터 3단째의 예에 대하여 설명한다. 이 예는, 위로부터 1단째의 예와 마찬가지로, 다른 2개의 2차원 직교 변환에 있어서, 어느 방향(수평 방향 혹은 수직 방향, 또는 그 양쪽)으로 1차원 직교 변환 사이의 축대칭이 있음에 주목한 것이다.
이 경우, 조작부는 예측 잔차를 플립한다. 직교 변환부는, 그 플립된 예측 잔차를, 베이스 변환 행렬(DCT8의 변환 행렬)을 이용하여 직교 변환한다. 이와 같이 함으로써, DCT8의 변환 행렬을 플립한 FlipDCT8(<2-4. 실시예 1-3> 참조)의 변환 행렬을 이용한 예측 잔차의 직교 변환을 대체할 수 있다.
역직교 변환에 대해서도 마찬가지이다. 이 경우, 역직교 변환부는, 계수 데이터를, 베이스 변환 행렬(DCT8의 변환 행렬)을 이용하여 역직교 변환하고, 조작부는 역직교 변환 결과를 플립한다. 이와 같이 함으로써, DCT8의 변환 행렬을 플립한 FlipDCT8의 변환 행렬을 이용한 계수 데이터(변환 계수 Coeff_IQ)의 역직교 변환을 대체할 수 있다.
이와 같은 예측 잔차(역직교 변환 결과도 포함함)에 대한 조작을 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 FlipDCT8의 변환 행렬을 준비할 필요가 없게 된다. 즉, 제1 실시 형태의 경우와 마찬가지로 고유 변환 타입을 삭감할 수 있다.
단, 이 경우, 예측 잔차 치환 조작 처리(도 71)에 있어서는, 도 72에 나타나는 대응표 대신, 도 82에 나타나는 대응표(LUT_TrTypeIdxToFlipFlag)가 참조되게 하면 된다.
또한 역직교 변환의 경우에도 마찬가지이며, 직교 변환의 경우와 마찬가지의 구성에 의하여 직교 변환의 경우와 마찬가지의 처리를 행하면 된다.
<3-5. 실시예 2-4>
<콘셉트>
다음으로, 도 67에 나타나는 표에 있어서, 최상단의 항목명의 행을 제외하고 위로부터 4단째의 예에 대하여 설명한다. 이 예는, 위로부터 2단째의 예와 마찬가지로, 다른 2개의 2차원 직교 변환에 있어서, 어느 방향(수평 방향 혹은 수직 방향, 또는 그 양쪽)에 대한 1차원 직교 변환 사이의 유사성(짝수번째의 행 벡터가 축대칭성을 갖고 홀수번째의 행 벡터가 점대칭성을 갖는 것)에 주목한 것이며, 위로부터 2단째와 동일한 조작이다.
이 경우, 도출부는 제1 변환 행렬로부터 제2 변환 행렬을 도출하고, 조작부는 예측 잔차 D를 플립한다. 직교 변환부는, 그 플립된 예측 잔차를, 베이스 변환 행렬(DCT8의 변환 행렬)을 부호 반전한 DST7의 변환 행렬을 이용하여 직교 변환한다. 이와 같이 함으로써, DCT8의 변환 행렬을 플립하여 부호 반전한 DST7(<2-5. 실시예 1-4> 참조)의 변환 행렬을 이용한 예측 잔차의 직교 변환을 대체할 수 있다.
역직교 변환에 대해서도 마찬가지이다. 이 경우, 도출부는, DCT8의 변환 행렬의 홀수번째의 행 벡터를 부호 반전하고, 역직교 변환부는 계수 데이터를, 홀수번째의 행 벡터를, 부호 반전된 DCT8의 변환 행렬(즉, DST7)을 이용하여 역직교 변환하고, 조작부는 역직교 변환 결과를 플립한다. 이와 같이 함으로써, DCT8의 변환 행렬을 플립하여 부호 반전한 DST7의 변환 행렬을 이용한 계수 데이터(변환 계수 Coeff_IQ)의 역직교 변환을 대체할 수 있다.
이와 같은 예측 잔차(역직교 변환 결과도 포함함)에 대한 조작을 적용함으로써, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DST7의 변환 행렬을 준비할 필요가 없게 된다. 즉, 제1 실시 형태의 경우와 마찬가지로 고유 변환 타입을 삭감할 수 있다.
단, 이 경우, 예측 잔차 치환 조작 처리(도 71)에 있어서는, 도 79에 나타나는 대응표 대신, 도 83에 나타나는 대응표(LUT_TrTypeIdxToFlipFlag)가 참조되게 하면 된다.
또한 역직교 변환의 경우에도 마찬가지이며, 직교 변환의 경우와 마찬가지의 구성에 의하여 직교 변환의 경우와 마찬가지의 처리를 행하면 된다.
<4. 제3 실시 형태>
<4-1. 공통 콘셉트>
<부분 행렬을 이용한 변환 행렬의 도출>
제1 실시 형태에 있어서는, 변환 행렬을 이용하여 다른 변환 행렬을 도출한다는 취지를 설명하였지만 이에 한정되지 않으며, 변환 행렬의 일부인 부분 행렬을 준비하고, 그 부분 행렬을 이용하여 변환 행렬을 도출하도록 해도 된다.
즉, 변환 행렬의 일부를 구성하는 부분 행렬을 이용하여 그 변환 행렬을 도출하고, 그 도출된 변환 행렬을 이용하여 화상의 예측 잔차를 직교 변환하고, 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하도록 해도 된다.
예를 들어 화상 처리 장치에 있어서, 변환 행렬의 일부를 구성하는 부분 행렬을 이용하여 그 변환 행렬을 도출하는 도출부와, 그 도출부에 의하여 도출된 변환 행렬을 이용하여 화상의 예측 잔차를 직교 변환하는 직교 변환부와, 그 직교 변환부에 의하여 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는 부호화부를 구비하도록 해도 된다.
이와 같이 함으로써, 부분 행렬을 보유해 두면 되게끔 되므로(변환 행렬의 전부를 보유해 둘 필요가 없으므로), 직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻고, 변환 행렬의 일부를 구성하는 부분 행렬을 이용하여 그 변환 행렬을 도출하고, 그 도출된 변환 행렬을 이용하여, 얻어진 계수 데이터를 역직교 변환하도록 해도 된다.
예를 들어 화상 처리 장치에 있어서, 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻는 복호부와, 변환 행렬의 일부를 구성하는 부분 행렬을 이용하여 그 변환 행렬을 도출하는 도출부와, 그 도출부에 의하여 도출된 변환 행렬을 이용하여, 복호부에 의하여 얻어진 계수 데이터를 역직교 변환하는 역직교 변환부를 구비하도록 해도 된다.
이와 같이 함으로써, 부분 행렬을 보유해 두면 되게끔 되므로(변환 행렬의 전부를 보유해 둘 필요가 없으므로), 역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
<부분 행렬과 변환 행렬 전체의 관계의 예>
보다 구체적으로 설명한다. 예를 들어 도 84에 나타난 바와 같이, DCT2의 변환 행렬(601)의 경우, 그 좌측 부분의 짝수번째의 행 벡터의 파형과, 우측 부분의 짝수번째의 행 벡터의 파형은, 서로 축대칭의 관계에 있다. 또한 그 변환 행렬(601)의 좌측 부분의 홀수번째의 행 벡터의 파형은 서로 점대칭의 관계에 있다.
따라서 DCT2의 변환 행렬(601)의 좌측 부분을 구성하는 부분 행렬을, 변환 행렬(601)의 중심을 통과하는 열 방향을 축으로 하여 수평 방향(행 방향)으로 플립하고, 홀수번째의 행 벡터를 부호 반전함으로써, DCT2의 변환 행렬(601)의 우측 부분을 구성하는 부분 행렬을 도출할 수 있다. 즉, DCT2의 변환 행렬(601)은, 그 좌측 부분을 구성하는 부분 행렬로부터 도출할 수 있다.
또한, 예를 들어 DST7의 변환 행렬(602)의 경우, 그 좌측 상방 삼각 부분의 짝수번째의 행 벡터의 파형과, 우측 하방 삼각 부분의 짝수번째의 열 벡터의 파형은, 서로 축대칭의 관계에 있다. 또한 그 변환 행렬(602)의 좌측 상방 삼각 부분의 홀수번째의 행 벡터의 파형과, 우측 하방 삼각 부분의 홀수번째의 열 벡터의 파형은, 서로 점대칭의 관계에 있다.
따라서 DST7의 변환 행렬(602)의 좌측 상방 삼각 부분을 구성하는 부분 행렬을, 변환 행렬(602)의 우상단과 좌하단을 잇는 대각선을 축으로 하여 좌측 상방 우측 하방의 경사 방향으로 플립하고, 홀수번째의 열 벡터를 부호 반전함으로써, DST7의 변환 행렬(602)의 우측 하방 삼각 부분을 구성하는 부분 행렬을 도출할 수 있다. 즉, DST7의 변환 행렬(602)은, 그 좌측 상방 삼각 부분을 구성하는 부분 행렬로부터 도출할 수 있다.
즉, 변환 행렬 LUT에는, 변환 행렬 전체를 저장시키는 대신, 그 변환 행렬 전체를 도출 가능한, 그 변환 행렬의 부분 행렬을 저장하면 된다. 예를 들어 도출부가, 그 룩업 테이블(변환 행렬 LUT)에 저장되는 부분 행렬을 이용하여 변환 행렬(전체)을 도출하도록 해도 된다. 이와 같이 함으로써, DCT2 및 DST7의 변환 행렬 전체를 저장하는 경우보다도 UT 사이즈의 증대를 억제할 수 있다. 즉, 직교 변환·역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 이 부분 행렬로부터의 변환 행렬 전체의 도출을 위한 조작으로서, 상술한 바와 같이 플립을 행하도록 해도 된다. 또한 그 플립의 방향은 임의이다. 예를 들어 도출부가 부분 행렬을, 그 변환 행렬의 중심을 통과하는 소정의 방향의 축을 중심으로 하여 플립하고 그 변환 행렬의 나머지 부분 행렬을 도출함으로써, 변환 행렬을 도출하도록 해도 된다. 이와 같이 함으로써, 간이한 조작에 의하여 부분 행렬로부터 변환 행렬 전체를 도출할 수 있다.
또한 이 플립의 방향은 임의이다. 예를 들어 도출부가, 부분 행렬을 행에 평행인 방향(행 방향 또는 수평 방향이라고도 칭함)으로 플립하도록 해도 된다. 또한, 예를 들어 도출부가, 부분 행렬을 열에 평행인 방향(열 방향 또는 수직 방향이라고도 칭함)으로 플립하도록 해도 된다. 또한, 예를 들어 도출부가 부분 행렬을, 그 변환 행렬의 중심을 중심으로 하는 회전 방향으로 플립하도록 해도 된다. 또한, 예를 들어 도출부가 부분 행렬을, 변환 행렬의 대각선을 축으로 하는 경사 방향으로 플립하도록 해도 된다.
이와 같이 함으로써, 예를 들어 부분 행렬로부터, 그 부분 행렬에 대하여 다양한 방향으로 대칭성을 갖는 다른 부분 행렬을 간이한 조작에 의하여 도출할 수 있다.
또한 이 부분 행렬로부터의 변환 행렬 전체의 도출을 위한 조작으로서, 상술한 바와 같이 부호 반전을 행하도록 해도 된다. 예를 들어 도출부가 또한, 플립된 부분 행렬의 요소 부호를 반전하여 변환 행렬을 도출하도록 해도 된다. 이와 같이 함으로써, 간단한 조작에 의하여 부분 행렬로부터 보다 다양한 변환 행렬 전체를 도출할 수 있다.
<도출예>
이상과 같은 부분 행렬로부터의 변환 행렬 전체의 도출예의 일람을 도 85에 나타낸다. 또한 도출에 이용하는 부분 행렬을 베이스 부분 행렬이라고도 칭한다.
도 85에 나타나는 표에 있어서, 최상단의 항목명의 행을 제외하고 위로부터 1단째의 예의 도출은, 수직축에 대한 축대칭성에 주목한 것이다.
이 경우, 부분 행렬은, 변환 행렬의 좌측 절반의 부분 행렬 또는 우측 절반의 부분 행렬이며, 도출부는, 그 부분 행렬을 변환 행렬의 행 방향으로 플립하고, 또한 플립된 부분 행렬의 홀수번째의 행 벡터의 부호를 반전하여, 그 변환 행렬의 우측 절반의 부분 행렬 또는 좌측 절반의 부분 행렬(즉, 변환 행렬의 나머지 부분 행렬)을 도출함으로써, 변환 행렬 전체를 도출한다.
예를 들어 도 86에 나타난 바와 같이, 도출부는, 변환 타입이 DCT2인 변환 행렬(601)의 좌측 절반의 부분 행렬(601A)을, 변환 행렬(601)의 중심을 통과하는 열에 평행인 방향(열 방향)의 축(601X)을 중심으로 플립한다(즉, 수평 방향으로 플립함). 도출부는 또한, 그 홀수번째의 행 벡터의 부호를 반전한다. 이와 같이 함으로써, 그 변환 행렬(601)의 우측 절반의 부분 행렬(601B)이 도출된다. 즉, 변환 행렬(601) 전체가 도출된다. 이와 같은 도출을, 도출할 변환 행렬을 N행 N열의 변환 행렬 T라 하고, 도출에 이용할 그 부분 행렬을 C라 하여, 요소별 연산 표현으로서 나타내면, 이하의 식 (78)과 같이 나타낼 수 있다.
Figure pct00068
이와 같은 도출을 적용함으로써, 부분 행렬로부터 그 변환 행렬의 전체를 도출할 수 있으므로, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DCT2의 변환 행렬(601) 전체를 준비할 필요가 없게 된다(그 부분 행렬(601A)을 준비하면 됨). 즉, 이 후보의 정보량을 1/2로 할 수 있다. 즉, LUT 사이즈의 증대를 억제할 수 있다. 또한 도출된 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DCT2의 변환 행렬(601)을 직교 변환·역직교 변환에 이용하는 경우와 동일한 부호화 효율이 얻어진다.
또한 이와 같은 도출을 적용하는 변환 행렬은, 그 요소가 상술한 바와 같은 대칭성을 갖고 있으면 되며, 변환 타입은 상술한 예에 한정되지 않는다. 예를 들어 변환 타입은 DST2여도 된다.
또한 이상에 있어서는, 좌측 절반의 부분 행렬로부터 우측 절반의 부분 행렬(변환 행렬 전체)을 도출하도록 설명하였지만 이에 한정되지 않으며, 예를 들어 우측 절반의 부분 행렬로부터 좌측 절반의 부분 행렬(변환 행렬 전체)을 도출하도록 해도 된다.
또한 그 1단 아래의(위로부터 2단째의) 예의 도출은, 수평축에 대한 축대칭성에 주목한 것이다.
이 경우, 부분 행렬은, 변환 행렬의 상측 절반의 부분 행렬 또는 하측 절반의 부분 행렬이며, 도출부는, 그 부분 행렬을 변환 행렬의 열 방향으로 플립하고, 또한, 플립된 부분 행렬의 홀수번째의 열 벡터의 부호를 반전하여, 그 변환 행렬의 하측 절반의 부분 행렬 또는 상측 절반의 부분 행렬(즉, 변환 행렬의 나머지 부분 행렬)을 도출함으로써, 그 변환 행렬 전체를 도출한다.
예를 들어 도 87에 나타난 바와 같이, 도출부는, 변환 타입이 DST1인 변환 행렬(611)의 상측 절반의 부분 행렬(611A)을, 변환 행렬(611)의 중심을 통과하는 행에 평행인 방향(행 방향)의 축(611X)을 중심으로 플립한다(즉, 수직 방향으로 플립함). 도출부는 또한, 그 홀수번째의 열 벡터의 부호를 반전한다. 이와 같이 함으로써, 그 변환 행렬(611)의 하측 절반의 부분 행렬(611B)이 도출된다. 즉, 변환 행렬(611) 전체가 도출된다. 이와 같은 도출을, 도출할 변환 행렬을 N행 N열의 변환 행렬 T라 하고, 도출에 이용할 그 부분 행렬을 C라 하여, 요소별 연산 표현으로서 나타내면, 이하의 식 (79)과 같이 나타낼 수 있다.
Figure pct00069
이와 같은 도출을 적용함으로써, 부분 행렬로부터 그 변환 행렬의 전체를 도출할 수 있으므로, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DST1의 변환 행렬(611) 전체를 준비할 필요가 없게 된다(그 부분 행렬(611A)을 준비하면 됨). 즉, 이 후보의 정보량을 1/2로 할 수 있다. 즉, LUT 사이즈의 증대를 억제할 수 있다. 또한 도출된 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DST1의 변환 행렬(611)을 직교 변환·역직교 변환에 이용하는 경우와 동일한 부호화 효율이 얻어진다.
또한 이와 같은 도출을 적용하는 변환 행렬은, 그 요소가 상술한 바와 같은 대칭성을 갖고 있으면 되며, 변환 타입은 상술한 예에 한정되지 않는다. 예를 들어 변환 타입은 DCT3, DCT1 또는 DST3이어도 된다.
또한 이상에 있어서는, 상측 절반의 부분 행렬로부터 하측 절반의 부분 행렬(변환 행렬 전체)을 도출하도록 설명하였지만 이에 한정되지 않으며, 예를 들어 하측 절반의 부분 행렬로부터 상측 절반의 부분 행렬(변환 행렬 전체)을 도출하도록 해도 된다.
또한 그 1단 아래의(위로부터 3단째의) 예의 도출은, 점대칭성에 주목한 것이다.
이 경우, 부분 행렬은, 변환 행렬의 상측 절반의 부분 행렬 또는 하측 절반의 부분 행렬이며, 도출부는, 그 부분 행렬을 변환 행렬의 중심을 중심으로 하는 회전 방향으로 플립하고, 또한 플립된 부분 행렬의, 행 번호 및 열 번호가 모두 짝수인 요소, 및 행 번호 및 열 번호가 모두 홀수인 요소의 부호를 반전하여, 그 변환 행렬의 하측 절반의 부분 행렬 또는 상측 절반의 부분 행렬(즉, 변환 행렬의 나머지 부분 행렬)을 도출함으로써, 그 변환 행렬 전체를 도출한다.
예를 들어 도 88에 나타난 바와 같이, 도출부는, 변환 타입이 DST4인 변환 행렬(612)의 상측 절반의 부분 행렬(612A)을, 변환 행렬(612)의 중심(612X)를 중심으로 하는 회전 방향으로 플립한다. 도출부는 또한, 행 번호 및 열 번호가 모두 짝수인 요소, 및 행 번호 및 열 번호가 모두 홀수인 요소의 부호를 반전한다. 이와 같이 함으로써, 그 변환 행렬(612)의 하측 절반의 부분 행렬(612B)이 도출된다. 즉, 변환 행렬(612) 전체가 도출된다. 이와 같은 도출을, 도출할 변환 행렬을 N행 N열의 변환 행렬 T라 하고, 도출에 이용할 그 부분 행렬을 C라 하여, 요소별 연산 표현으로서 나타내면, 이하의 식 (80)과 같이 나타낼 수 있다.
Figure pct00070
이와 같은 도출을 적용함으로써, 부분 행렬로부터 그 변환 행렬의 전체를 도출할 수 있으므로, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DST4의 변환 행렬(612) 전체를 준비할 필요가 없게 된다(그 부분 행렬(612A)을 준비하면 됨). 즉, 이 후보의 정보량을 1/2로 할 수 있다. 즉, LUT 사이즈의 증대를 억제할 수 있다. 또한 도출된 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DST4의 변환 행렬(612)을 직교 변환·역직교 변환에 이용하는 경우와 동일한 부호화 효율이 얻어진다.
또한 이와 같은 도출을 적용하는 변환 행렬은, 그 요소가 상술한 바와 같은 대칭성을 갖고 있으면 되며, 변환 타입은 상술한 예에 한정되지 않는다. 예를 들어 변환 타입은 DCT4여도 된다.
또한 이상에 있어서는, 상측 절반의 부분 행렬로부터 하측 절반의 부분 행렬(변환 행렬 전체)을 도출하도록 설명하였지만 이에 한정되지 않으며, 예를 들어 하측 절반의 부분 행렬로부터 상측 절반의 부분 행렬(변환 행렬 전체)을 도출하도록 해도 된다.
또한 그 1단 아래의(위로부터 4단째의) 예의 도출은, 대각축에 대한 대칭성에 주목한 것이다.
이 경우, 부분 행렬은, 변환 행렬의 우측 상방 삼각 부분의 부분 행렬 또는 좌측 하방 삼각 부분의 부분 행렬이며, 도출부는, 그 부분 행렬을 전치하여, 변환 행렬의 좌측 하방 삼각 부분의 부분 행렬 또는 우측 상방 삼각 부분의 부분 행렬을 도출함으로써, 그 변환 행렬을 도출한다.
예를 들어 도 89에 나타난 바와 같이, 도출부는, 변환 타입이 DCT5인 변환 행렬(613)의 우측 상방 삼각 부분의 부분 행렬(613A)을, 변환 행렬(613)의 좌상단과 우하단을 잇는 대각선을 축으로 하여 플립한다. 이와 같이 함으로써, 그 변환 행렬(613)의 좌측 하방 삼각 부분의 부분 행렬(613B)이 도출된다. 즉, 변환 행렬(613) 전체가 도출된다. 이와 같은 도출을, 도출할 변환 행렬을 N행 N열의 변환 행렬 T라 하고, 도출에 이용할 그 부분 행렬을 C라 하여, 요소별 연산 표현으로서 나타내면, 이하의 식 (81)과 같이 나타낼 수 있다.
Figure pct00071
이와 같은 도출을 적용함으로써, 부분 행렬로부터 그 변환 행렬의 전체를 도출할 수 있으므로, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DCT5의 변환 행렬(613) 전체를 준비할 필요가 없게 된다(그 부분 행렬(613A)을 준비하면 됨). 즉, 이 후보의 정보량을 1/2로 할 수 있다. 즉, LUT 사이즈의 증대를 억제할 수 있다. 또한 도출된 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DCT5의 변환 행렬(613)을 직교 변환·역직교 변환에 이용하는 경우와 동일한 부호화 효율이 얻어진다.
또한 도 89에 나타난 바와 같이, 전치는, 변환 행렬의 좌상단과 우하단을 잇는 대각선을 축으로 하여 플립하는 것과 동의이다. 즉, 전치는 플립에 포함되는(플립 조작의 하나인) 것으로 한다.
또한 이와 같은 도출을 적용하는 변환 행렬은, 그 요소가 상술한 바와 같은 대칭성을 갖고 있으면 되며, 변환 타입은 상술한 예에 한정되지 않는다. 예를 들어 변환 타입은 DST5, DCT4, 또는 DCT8이어도 된다.
또한 이상에 있어서는, 우측 상방 삼각 부분의 부분 행렬로부터 좌측 하방 삼각 부분의 부분 행렬(변환 행렬 전체)을 도출하도록 설명하였지만 이에 한정되지 않으며, 예를 들어 좌측 하방 삼각 부분의 부분 행렬로부터 우측 상방 삼각 부분의 부분 행렬(변환 행렬 전체)을 도출하도록 해도 된다.
또한 그 1단 아래의(위로부터 5단째의) 예의 도출은, 크로스 위치의 대각축에 대한 대칭성에 주목한 것이다.
이 경우, 부분 행렬은, 변환 행렬의 좌측 상방 삼각 부분의 부분 행렬 또는 우측 하방 삼각 부분의 부분 행렬이며, 도출부는, 그 부분 행렬을, 변환 행렬의 우상단과 좌하단을 잇는 대각선을 축으로 하는 경사 방향으로 플립하고, 또한 그 플립된 부분 행렬의, 행 번호 및 열 번호가 모두 짝수인 요소, 및 행 번호 및 열 번호가 모두 홀수인 요소의 부호를 반전하여, 그 변환 행렬의 우측 하방 삼각 부분의 부분 행렬 또는 좌측 상방 삼각 부분의 부분 행렬을 도출한다.
예를 들어 도 90에 나타난 바와 같이 도출부는, 변환 타입이 DST7인 변환 행렬(602)의 좌측 상방 삼각 부분의 부분 행렬(602A)을, 변환 행렬(602)의 우상단과 좌하단을 잇는 대각선을 축으로 하여 플립한다. 도출부는 또한, 행 번호 및 열 번호가 모두 짝수인 요소, 및 행 번호 및 열 번호가 모두 홀수인 요소의 부호를 반전한다. 이와 같이 함으로써, 그 변환 행렬(602)의 우측 하방 삼각 부분의 부분 행렬(602B)이 도출된다. 즉, 변환 행렬(602) 전체가 도출된다. 이와 같은 도출을, 도출할 변환 행렬을 N행 N열의 변환 행렬 T라 하고, 도출에 이용할 그 부분 행렬을 C라 하여, 요소별 연산 표현으로서 나타내면, 이하의 식 (82)와 같이 나타낼 수 있다.
Figure pct00072
이와 같은 도출을 적용함으로써, 부분 행렬로부터 그 변환 행렬의 전체를 도출할 수 있으므로, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DST7의 변환 행렬(602) 전체를 준비할 필요가 없게 된다(그 부분 행렬(602A)을 준비하면 됨). 즉, 이 후보의 정보량을 1/2로 할 수 있다. 즉, LUT 사이즈의 증대를 억제할 수 있다. 또한 도출된 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DST7의 변환 행렬(602)을 직교 변환·역직교 변환에 이용하는 경우와 동일한 부호화 효율이 얻어진다.
또한 이 경우의, 변환 행렬의 우상단과 좌하단을 잇는 대각선을 축으로 하는 경사 방향으로 플립도, 행과 열이 뒤바뀌므로 「전치」에 포함되는(전치 조작의 하나인) 것으로 한다.
또한 이와 같은 도출을 적용하는 변환 행렬은, 그 요소가 상술한 바와 같은 대칭성을 갖고 있으면 되며, 변환 타입은 상술한 예에 한정되지 않는다. 예를 들어 변환 타입은 DST6이어도 된다.
또한 이상에 있어서는, 좌측 상방 삼각 부분의 부분 행렬로부터 우측 하방 삼각 부분의 부분 행렬(변환 행렬 전체)을 도출하도록 설명하였지만 이에 한정되지 않으며, 예를 들어 우측 하방 삼각 부분의 부분 행렬로부터 좌측 상방 삼각 부분의 부분 행렬(변환 행렬 전체)을 도출하도록 해도 된다.
또한 그 1단 아래의(위로부터 6단째 내지 8단째의) 예의 도출은, 수직축에 대한 축대칭성, 수평축에 대한 축대칭성, 및 점대칭성에 주목한 것이다.
이 경우, 부분 행렬은, 변환 행렬의 좌측 상방 1/4의 부분 행렬이며, 도출부는, 그 부분 행렬을 변환 행렬의 행 방향으로 플립하고, 그 플립된 부분 행렬의 홀수번째의 행 벡터의 부호를 반전하여 변환 행렬의 우측 상방 1/4의 부분 행렬을 도출하고, 또한 부분 행렬을 변환 행렬의 열 방향으로 플립하고, 그 플립된 부분 행렬의 홀수번째의 열 벡터의 부호를 반전하여 변환 행렬의 좌측 하방 1/4의 부분 행렬을 도출하고, 또한 부분 행렬을 변환 행렬의 중심을 중심으로 하는 회전 방향으로 플립하고, 그 플립된 부분 행렬의, 행 번호 및 열 번호가 모두 짝수인 요소, 및 행 번호 및 열 번호가 모두 홀수인 요소의 부호를 반전하여 변환 행렬의 우측 하방 1/4의 부분 행렬을 도출한다.
예를 들어 도 91에 나타난 바와 같이, 도출부는, 변환 타입이 DST1인 변환 행렬(614)의 좌측 상방 1/4의 부분 행렬(614A)을, 변환 행렬(614)의 중심을 통과하는 열에 평행인 방향(열 방향)의 축(614X-1)을 중심으로 플립한다(즉, 수평 방향으로 플립함). 도출부는 또한, 그 홀수번째의 행 벡터의 부호를 반전한다. 이와 같이 함으로써 그 변환 행렬(614)의 우측 상방 1/4의 부분 행렬(614B)이 도출된다.
또한 도출부는, 변환 타입이 DST1인 변환 행렬(614)의 좌측 상방 1/4의 부분 행렬(614A)을, 변환 행렬(614)의 중심을 통과하는 행에 평행인 방향(행 방향)의 축(614X-2)을 중심으로 플립한다(즉, 수직 방향으로 플립함). 도출부는 또한, 그 홀수번째의 열 벡터의 부호를 반전한다. 이와 같이 함으로써 그 변환 행렬(614)의 좌측 하방 1/4의 부분 행렬(614C)이 도출된다.
또한 도출부는, 변환 타입이 DST1인 변환 행렬(614)의 좌측 상방 1/4의 부분 행렬(614A)을, 변환 행렬(614)의 중심(614X-3)을 중심으로 하는 회전 방향으로 플립한다. 도출부는 또한, 행 번호 및 열 번호가 모두 짝수인 요소, 및 행 번호 및 열 번호가 모두 홀수인 요소의 부호를 반전한다. 이와 같이 함으로써 그 변환 행렬(614)의 우측 하방 1/4의 부분 행렬(614D)이 도출된다.
즉, 변환 행렬(614) 전체가 도출된다. 이와 같은 도출을, 도출할 변환 행렬을 N행 N열의 변환 행렬 T라 하고, 도출에 이용할 그 부분 행렬을 C라 하여, 요소별 연산 표현으로서 나타내면, 이하의 식 (83) 내지 식(85)와 같이 나타낼 수 있다.
Figure pct00073
이와 같은 도출을 적용함으로써 부분 행렬로부터 그 변환 행렬의 전체를 도출할 수 있으므로, 직교 변환·역직교 변환에 이용할 변환 행렬의 후보로서 DST1의 변환 행렬(614) 전체를 준비할 필요가 없게 된다(그 부분 행렬(614A)을 준비하면 됨). 즉, 이 후보의 정보량을 1/4로 할 수 있다. 즉, LUT 사이즈의 증대를 억제할 수 있다. 또한 도출된 변환 행렬을 이용하여 직교 변환·역직교 변환을 행함으로써, DST1의 변환 행렬(614)을 직교 변환·역직교 변환에 이용하는 경우와 동일한 부호화 효율이 얻어진다.
또한 이와 같은 도출을 적용하는 변환 행렬은, 요소가, 상술한 바와 같은 대칭성을 갖고 있으면 되며, 변환 타입은 상술한 예에 한정되지 않는다. 예를 들어 변환 타입은 DCT1이어도 된다.
또한 이상에 있어서는, 좌측 상방 1/4의 부분 행렬로부터 나머지 부분 행렬을 도출하도록 설명하였지만 이에 한정되지 않으며, 예를 들어 우측 상방 1/4의 부분 행렬로부터 나머지 부분 행렬을 도출하도록 해도 되고, 좌측 하방 1/4의 부분 행렬로부터 나머지 부분 행렬을 도출하도록 해도 되며, 우측 하방 1/4의 부분 행렬로부터 나머지 부분 행렬을 도출하도록 해도 된다.
<변환 행렬 도출부>
이와 같은 부분 행렬로부터의 변환 행렬의 도출을 행하는 화상 부호화 장치(100)의 구성은 제1 실시 형태의 경우와 마찬가지이다. 그리고 이 화상 부호화 장치(100)에 있어서, 직교 변환부(113)는 도출부 및 직교 변환부로서, 상술한 본 기술을 적용한 처리를 행한다. 또한 부호화부(115)는 부호화부로서, 상술한 본 기술을 적용한 처리를 행한다. 또한 역직교 변환부(118)는 역직교 변환부 및 도출부로서, 상술한 본 기술을 적용한 처리를 행한다. 따라서 화상 부호화 장치(100)는 직교 변환·역직교 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 직교 변환부(113)의 구성은 제1 실시 형태의 경우와 마찬가지이다. 그리고 이 직교 변환부(113)에 있어서, 프라이머리 변환부(152)는 도출부 및 직교 변환부로서, 상술한 본 기술을 적용한 처리를 행한다. 즉, 도출부는, 변환 행렬의 일부를 구성하는 부분 행렬을 이용하여 변환 행렬 전체를 도출하고, 직교 변환부는, 그 도출부에 의하여 도출된 변환 행렬을 이용하여 예측 잔차에 대한 프라이머리 변환을 행한다. 따라서 프라이머리 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 상술한 바와 같이 프라이머리 변환부(152)는 프라이머리 변환으로서, 프라이머리 수평 변환과 프라이머리 수직 변환을 행한다. 즉, 도출부는, 수평 방향의 1차원 직교 변환용의 상기 변환 행렬과, 수직 방향의 1차원 직교 변환용의 상기 변환 행렬을 도출하고, 직교 변환부는 프라이머리 변환으로서, 그 도출부에 의하여 도출된 수평 방향의 1차원 직교 변환용의 변환 행렬을 이용하여, 그 수평 방향의 1차원 직교 변환을 행하고, 또한 그 도출부에 의하여 도출된 수직 방향의 1차원 직교 변환용의 변환 행렬을 이용하여, 그 수직 방향의 1차원 직교 변환을 행한다. 따라서 이와 같은, 수평 방향의 1차원 직교 변환 및 수직 방향의 1차원 직교 변환이 행해지는 프라이머리 변환에 필요한 메모리 용량의 증대를 억제할 수 있다.
또한 이 경우, 프라이머리 변환부(152)는 <2-2. 실시예 1-1>의 경우와 마찬가지의 구성을 갖는다. 또한 프라이머리 수평 변환부(312)는 <2-2. 실시예 1-1>의 경우와 마찬가지의 구성을 갖는다. 또한 프라이머리 수직 변환부(313)는 <2-2. 실시예 1-1>의 경우와 마찬가지의 구성을 갖는다. 단, 프라이머리 수평 변환부(312)가 갖는 변환 행렬 도출부(321)의 내부의 구성과, 프라이머리 수직 변환부(313)가 갖는 변환 행렬 도출부(351)의 내부의 구성이, <2-2. 실시예 1-1>의 경우와 다르다.
도 92는, 이 경우의 프라이머리 수평 변환부(312)가 갖는 변환 행렬 도출부(321)의 주된 구성예를 나타내는 블록도이다. 도 92에 나타난 바와 같이, 이 경우의 변환 행렬 도출부(321)는 변환 행렬 LUT(331), 수평 방향 플립부(632), 수직 방향 플립부(633), 전치부(634) 및 부호 반전부(635)를 갖는다. 또한 도 92에 있어서는, 데이터의 수수를 나타내는 화살표를 생략하고 있지만, 변환 행렬 도출부(321)는 임의의 처리부(처리 블록) 사이에서 임의의 데이터를 수수할 수 있다.
수평 방향 플립부(632)는, 입력되는 부분 행렬을, 변환 행렬의 중심을 통과하는 열 방향의 직선을 축으로 하여 수평 방향(행 방향)으로 플립하여, 플립 후의 부분 행렬을 출력한다. 수직 방향 플립부(633)는, 입력되는 부분 행렬을, 변환 행렬의 중심을 통과하는 행 방향의 직선을 축으로 하여 수직 방향(열 방향)으로 플립하여, 플립 후의 부분 행렬을 출력한다. 전치부(634)는, 입력되는 부분 행렬을 전치하여(경사 방향으로 플립하여), 전치 후의 부분 행렬을 출력한다. 부호 반전부(635)는, 입력되는 부분 행렬의 일부 부호를 반전하여, 부호 반전 후의 부분 행렬을 출력한다.
예를 들어 도 85에 나타나는 표의 최상단의 항목명의 행을 제외하고 위로부터 1단째의 도출예의 경우, 변환 행렬 도출부(321)는 변환 행렬 LUT(331)로부터 변환 행렬의 좌측 절반(또는 우측 절반)의 부분 행렬을 판독하고, 수평 방향 플립부(632)를 통하여, 그 부분 행렬을 행 방향(수평 방향)으로 플립하고, 또한 부호 반전부(635)를 통하여, 그 플립된 부분 행렬의 홀수번째의 행 벡터의 부호를 반전하여, 변환 행렬의 나머지 부분 행렬을 도출한다. 이들 처리에 의하여 변환 행렬의 모든 부분 행렬이 얻어진다. 즉, 변환 행렬 전체가 도출된다. 변환 행렬 도출부(321)는, 그 도출한 변환 행렬(전체)을 변환 행렬 TH로서 변환 행렬 도출부(321)의 외부에 출력한다(행렬 연산부(322)에 공급함).
또한, 예를 들어 도 85에 나타나는 표의, 위로부터 2단째의 도출예의 경우, 변환 행렬 도출부(321)는 변환 행렬 LUT(331)로부터 변환 행렬의 상측 절반(또는 하측 절반)의 부분 행렬을 판독하고, 수직 방향 플립부(633)를 통하여, 그 부분 행렬을 열 방향(수직 방향)으로 플립하고, 부호 반전부(635)를 통하여, 그 플립된 부분 행렬의 홀수번째의 열 벡터의 부호를 반전하여, 변환 행렬의 나머지 부분 행렬을 도출한다. 이들 처리에 의하여 변환 행렬의 모든 부분 행렬이 얻어진다. 즉, 변환 행렬 전체가 도출된다. 변환 행렬 도출부(321)는, 그 도출한 변환 행렬(전체)을 변환 행렬 TH로서 변환 행렬 도출부(321)의 외부에 출력한다(행렬 연산부(322)에 공급함).
또한, 예를 들어 도 85에 나타나는 표의, 위로부터 3단째의 도출예의 경우, 변환 행렬 도출부(321)는 변환 행렬 LUT(331)로부터 변환 행렬의 상측 절반(또는 하측 절반)의 부분 행렬을 판독하고, 수평 방향 플립부(632)를 통하여 그 부분 행렬을 행 방향(수평 방향)으로 플립하고, 수직 방향 플립부(633)를 통하여, 그 수평 방향으로 플립된 부분 행렬을 또한 열 방향(수직 방향)으로 플립하고, 부호 반전부(635)를 통하여, 그 도출한 부분 행렬의, 행 번호 및 열 번호가 모두 짝수인 요소, 및 행 번호 및 열 번호가 모두 홀수인 요소의 부호를 반전하여, 변환 행렬의 나머지 부분 행렬을 도출한다. 이들 처리에 의하여 변환 행렬의 모든 부분 행렬이 얻어진다. 즉, 변환 행렬 전체가 도출된다. 변환 행렬 도출부(321)는, 그 도출한 변환 행렬(전체)을 변환 행렬 TH로서 변환 행렬 도출부(321)의 외부에 출력한다(행렬 연산부(322)에 공급함).
또한, 예를 들어 도 85에 나타나는 표의, 위로부터 4단째의 도출예의 경우, 변환 행렬 도출부(321)는 변환 행렬 LUT(331)로부터 변환 행렬의 우측 상방 삼각 부분(또는 좌측 하방 삼각 부분)의 부분 행렬을 판독하고, 전치부(634)를 통하여, 변환 행렬의 좌상단와 우하단을 잇는 직선을 축으로 하여 그 부분 행렬을 전치하여, 변환 행렬의 나머지 부분 행렬을 도출한다. 이 처리에 의하여 변환 행렬의 모든 부분 행렬이 얻어진다. 즉, 변환 행렬 전체가 도출된다. 변환 행렬 도출부(321)는, 그 도출한 변환 행렬(전체)을 변환 행렬 TH로서 변환 행렬 도출부(321)의 외부에 출력한다(행렬 연산부(322)에 공급함).
또한, 예를 들어 도 85에 나타나는 표의, 위로부터 5단째의 도출예의 경우, 변환 행렬 도출부(321)는 변환 행렬 LUT(331)로부터 변환 행렬의 좌측 상방 삼각 부분(또는 우측 하방 삼각 부분)의 부분 행렬을 판독하고, 전치부(634)를 통하여, 변환 행렬의 우상단과 좌하단을 잇는 직선을 축으로 하여 그 부분 행렬을 전치하고, 부호 반전부(635)를 통하여, 그 도출한 부분 행렬의, 행 번호 및 열 번호가 모두 짝수인 요소, 및 행 번호 및 열 번호가 모두 홀수인 요소의 부호를 반전하여, 변환 행렬의 나머지 부분 행렬을 도출한다. 이들 처리에 의하여 변환 행렬의 모든 부분 행렬이 얻어진다. 즉, 변환 행렬 전체가 도출된다. 변환 행렬 도출부(321)는, 그 도출한 변환 행렬(전체)을 변환 행렬 TH로서 변환 행렬 도출부(321)의 외부에 출력한다(행렬 연산부(322)에 공급함).
또한, 예를 들어 도 85에 나타나는 표의, 위로부터 6단째의 도출예의 경우, 변환 행렬 도출부(321)는 변환 행렬 LUT(331)로부터 변환 행렬의 좌측 상방 1/4의 부분 행렬을 판독한다. 변환 행렬 도출부(321)는 수평 방향 플립부(632)를 통하여, 그 부분 행렬을 행 방향(수평 방향)으로 플립하고, 또한 부호 반전부(635)를 통하여, 그 플립된 부분 행렬의 홀수번째의 행 벡터의 부호를 반전하여, 변환 행렬의 우측 상방 1/4의 부분 행렬을 도출한다.
또한 변환 행렬 도출부(321)는 수직 방향 플립부(633)를 통하여, 그 좌측 상방 1/4의 부분 행렬을 열 방향(수직 방향)으로 플립하고, 또한 부호 반전부(635)를 통하여, 그 플립된 부분 행렬의 홀수번째의 열 벡터의 부호를 반전하여 변환 행렬의 좌측 하방 1/4의 부분 행렬을 도출한다.
또한 변환 행렬 도출부(321)는 수평 방향 플립부(632)를 통하여 그 좌측 상방 1/4의 부분 행렬을 행 방향(수평 방향)으로 플립하고, 수직 방향 플립부(633)를 통하여 그 수평 방향으로 플립된 부분 행렬을 또한 열 방향(수직 방향)으로 플립하고, 부호 반전부(635)를 통하여, 그 도출한 부분 행렬의, 행 번호 및 열 번호가 모두 짝수인 요소, 및 행 번호 및 열 번호가 모두 홀수인 요소의 부호를 반전하여 변환 행렬의 우측 하방 1/4의 부분 행렬을 도출한다.
즉, 이들 처리에 의하여 변환 행렬의 모든 부분 행렬이 얻어진다. 즉, 변환 행렬 전체가 도출된다. 변환 행렬 도출부(321)는, 그 도출한 변환 행렬(전체)을 변환 행렬 TH로서 변환 행렬 도출부(321)의 외부에 출력한다(행렬 연산부(322)에 공급함).
이상과 같은 구성을 가지므로, 변환 행렬 도출부(321)는, 도 85에 나타나는 표의 각 도출예를 실현할 수 있다.
<변환 행렬 도출부>
도 93은, 이 경우의 프라이머리 수직 변환부(313)가 갖는 변환 행렬 도출부(351)의 주된 구성예를 나타내는 블록도이다. 도 93에 나타난 바와 같이 이 경우의 변환 행렬 도출부(351)는, 변환 행렬 도출부(321)의 경우와 마찬가지로 변환 행렬 LUT(361), 수평 방향 플립부(642), 수직 방향 플립부(643), 전치부(644) 및 부호 반전부(645)를 갖는다. 또한 도 93에 있어서는, 데이터의 수수를 나타내는 화살표를 생략하고 있지만, 변환 행렬 도출부(351)는 임의의 처리부(처리 블록) 사이에서 임의의 데이터를 수수할 수 있다.
수평 방향 플립부(642)는 수평 방향 플립부(632)와 마찬가지의 처리부이다. 수직 방향 플립부(643)는 수직 방향 플립부(633)와 마찬가지의 처리부이다. 전치부(644)는 전치부(634)와 마찬가지의 처리부이다. 부호 반전부(645)는 부호 반전부(635)와 마찬가지의 처리부이다.
변환 행렬 도출부(351)는 변환 행렬 LUT(361)로부터 변환 행렬의 소정의 부분 행렬을 판독하고, 수평 방향 플립부(632) 내지 부호 반전부(635)를 적당히 통하여, 도 85의 표에 나타나는 도출예 중 어느 한 방법으로 그 부분 행렬로부터 나머지 부분 행렬을 도출한다. 즉, 변환 행렬 전체가 도출된다. 변환 행렬 도출부(351)는, 그 도출한 변환 행렬(전체)을 변환 행렬 TV로서 변환 행렬 도출부(351)의 외부에 출력한다(행렬 연산부(352)에 공급함).
이상과 같은 구성을 가지므로, 변환 행렬 도출부(351)는, 도 85에 나타나는 표의 각 도출예를 실현할 수 있다.
<변환 행렬 도출 처리의 흐름>
이 경우의 프라이머리 변환 처리는, <2-2. 실시예 1-1>의 경우와 마찬가지의 흐름으로 행해지므로(도 27의 흐름도와 마찬가지의 흐름으로 행해지므로), 그 설명은 기본적으로 생략한다.
또한 이 경우, 도 27의 스텝 S302에 있어서 실행되는 프라이머리 수평 변환 처리는, <2-2. 실시예 1-1>의 경우와 마찬가지의 흐름으로 행해지지만(도 28의 흐름도와 마찬가지의 흐름으로 행해지지만), 도 28의 스텝 S321에 있어서 실행되는 변환 행렬 도출 처리는, 도 30의 예와는 다른 흐름으로 행해진다.
이 경우의, 도 28의 스텝 S321에 있어서, 프라이머리 수평 변환부(312) 내의 변환 행렬 도출부(321)에 의하여 실행되는 변환 행렬 도출 처리의 흐름의 예를, 도 94의 흐름도를 참조하여 설명한다.
변환 행렬 도출 처리가 개시되면, 변환 행렬 도출부(321)는, 스텝 S701에 있어서, 예를 들어 도 95에 나타나는 대응표를 참조하여, 변환 타입 식별자 TrTypeIdxH에 대응하는 부분 행렬 C를 변환 행렬 LUT(331)로부터 판독한다.
스텝 S702에 있어서, 변환 행렬 도출부(321)는 수평 방향 플립부(632) 내지 부호 반전부(635)를 적당히 이용하여, 변환 타입 식별자 TrTypeIdxH에 대응하는 변환 타입의 변환 행렬 TH를, 부분 행렬 C로부터 소정의 도출 방법(도 85의 표에 나타나는 도출 방법 중 어느 것)에 기초하여 도출한다.
스텝 S702의 처리가 종료되면 변환 행렬 도출 처리가 종료되고, 처리는 도 28로 되돌아간다.
<변환 행렬 도출 처리의 흐름>
또한 이 경우, 도 27의 스텝 S303에 있어서 실행되는 프라이머리 수직 변환 처리는, <2-2. 실시예 1-1>의 경우와 마찬가지의 흐름으로 행해진다(도 32의 흐름도와 마찬가지의 흐름으로 행해짐). 단, 도 32의 스텝 S361에 있어서 실행되는 변환 행렬 도출 처리는, 도 94의 흐름도의 경우와 마찬가지의 흐름으로 행해진다. 따라서 그 설명을 생략한다. 도 94의 설명에 있어서, 적당히 변환 타입 식별자 TrTypeIdxH를 변환 타입 식별자 TrTypeIdxV로 치환하거나 변환 행렬 TH를 변환 행렬 TV로 치환하거나 하면 된다.
<변환 행렬 도출부>
다음으로, 이 경우의 화상 복호 장치(200)의 구성에 대하여 설명한다. 이 경우에도 화상 복호 장치(200)가 갖는 역프라이머리 변환부(253), 역프라이머리 수직 변환부(412), 역프라이머리 수평 변환부(413) 등의 구성은, <2-2. 실시예 1-1>의 경우와 마찬가지이므로, 그 설명을 생략한다.
즉, 역직교 변환부가, 복호부에 의하여 얻어진 계수 데이터에 대한 역세컨더리 변환을 행하고, 또한 도출부에 의하여 도출된 변환 행렬을 이용하여, 그 역세컨더리 변환 결과에 대하여 역프라이머리 변환을 행하도록 해도 된다.
또한 도출부가, 수평 방향의 역1차원 직교 변환용의 변환 행렬과, 수직 방향의 역1차원 직교 변환용의 변환 행렬을 도출하고, 역직교 변환부가 역프라이머리 변환으로서, 도출부에 의하여 도출된 수평 방향의 역1차원 직교 변환용의 변환 행렬을 이용하여, 그 수평 방향의 역1차원 직교 변환을 행하고, 또한 도출부에 의하여 도출된 수직 방향의 역1차원 직교 변환용의 변환 행렬을 이용하여, 그 수직 방향의 역1차원 직교 변환을 행하도록 해도 된다.
도 96은, 이 경우의 역프라이머리 수직 변환부(412)가 갖는 변환 행렬 도출부(421)의 주된 구성예를 나타내는 블록도이다. 도 96에 나타난 바와 같이 이 경우의 변환 행렬 도출부(421)는, 변환 행렬 도출부(321)와 마찬가지로 변환 행렬 LUT(431), 수평 방향 플립부(652), 수직 방향 플립부(653), 전치부(654) 및 부호 반전부(655)를 갖는다. 또한 도 96에 있어서는, 데이터의 수수를 나타내는 화살표를 생략하고 있지만, 변환 행렬 도출부(421)는 임의의 처리부(처리 블록) 사이에서 임의의 데이터를 수수할 수 있다.
수평 방향 플립부(652)는 수평 방향 플립부(632)와 마찬가지의 처리부이다. 수직 방향 플립부(653)는 수직 방향 플립부(633)와 마찬가지의 처리부이다. 전치부(654)는 전치부(634)와 마찬가지의 처리부이다. 부호 반전부(655)는 부호 반전부(635)와 마찬가지의 처리부이다.
변환 행렬 도출부(421)는, 역직교 변환(역프라이머리 수직 변환)에 있어서, 변환 행렬 LUT(431)로부터 변환 행렬의 소정의 부분 행렬을 판독하고, 수평 방향 플립부(652) 내지 부호 반전부(655)를 적당히 통하여, 도 85의 표에 나타나는 도출예 중 어느 한 방법으로 그 부분 행렬로부터 나머지 부분 행렬을 도출한다. 즉, 변환 행렬 전체가 도출된다. 변환 행렬 도출부(421)는, 그 도출한 변환 행렬(전체)을 변환 행렬 TV로서 변환 행렬 도출부(421)의 외부에 출력한다(행렬 연산부(422)에 공급함).
이상과 같은 구성을 가지므로, 변환 행렬 도출부(421)는, 도 85에 나타나는 표의 각 도출예를 실현할 수 있다.
<변환 행렬 도출부>
도 97은, 이 경우의, 역프라이머리 수평 변환부(413)가 갖는 변환 행렬 도출부(451)의 주된 구성예를 나타내는 블록도이다. 도 97에 나타난 바와 같이 이 경우의 변환 행렬 도출부(451)는, 변환 행렬 도출부(421)과 마찬가지로 변환 행렬 LUT(461), 수평 방향 플립부(662), 수직 방향 플립부(663), 전치부(664) 및 부호 반전부(665)를 갖는다. 또한 도 97에 있어서는, 데이터의 수수를 나타내는 화살표를 생략하고 있지만, 변환 행렬 도출부(451)는 임의의 처리부(처리 블록) 사이에서 임의의 데이터를 수수할 수 있다.
수평 방향 플립부(662)는 수평 방향 플립부(632)와 마찬가지의 처리부이다. 수직 방향 플립부(663)는 수직 방향 플립부(633)와 마찬가지의 처리부이다. 전치부(664)는 전치부(634)와 마찬가지의 처리부이다. 부호 반전부(665)는 부호 반전부(635)와 마찬가지의 처리부이다.
변환 행렬 도출부(451)는 역직교 변환(역프라이머리 수평 변환)에 있어서, 변환 행렬 LUT(431)로부터 변환 행렬의 소정의 부분 행렬을 판독하고, 수평 방향 플립부(662) 내지 부호 반전부(665)를 적당히 통하여, 도 85의 표에 나타나는 도출예 중 어느 한 방법으로 그 부분 행렬로부터 나머지 부분 행렬을 도출한다. 즉, 변환 행렬 전체가 도출된다. 변환 행렬 도출부(451)는, 그 도출한 변환 행렬(전체)을 변환 행렬 TV로서 변환 행렬 도출부(451)의 외부에 출력한다(행렬 연산부(452)에 공급함).
이상과 같은 구성을 가지므로, 변환 행렬 도출부(451)는, 도 85에 나타나는 표의 각 도출예를 실현할 수 있다.
<변환 행렬 도출 처리의 흐름>
이 경우의 역프라이머리 변환 처리는 <2-2. 실시예 1-1>의 경우와 마찬가지의 흐름으로 행해진다(도 39의 흐름도와 마찬가지의 흐름으로 행해짐). 또한 도 39의 스텝 S401에 있어서 실행되는 역프라이머리 변환 선택 처리는, <2-2. 실시예 1-1>의 경우와 마찬가지의 흐름으로 행해진다(도 40의 흐름도와 마찬가지의 흐름으로 행해짐). 또한 도 39의 스텝 S402에 있어서 실행되는 역프라이머리 수직 변환 처리는, <2-2. 실시예 1-1>의 경우와 마찬가지의 흐름으로 행해진다(도 41의 흐름도와 마찬가지의 흐름으로 행해짐). 따라서 이들 처리에 대한 설명은 기본적으로 생략한다.
단, 그 역프라이머리 수직 변환 처리에 있어서 실행되는 변환 행렬 도출 처리(도 41의 스텝 S441)는, 도 94의 흐름도의 경우와 마찬가지의 흐름으로 행해진다. 따라서 그 설명을 생략한다.
<변환 행렬 도출 처리의 흐름>
또한 이 경우, 도 39의 스텝 S403에 있어서 실행되는 역프라이머리 수평 변환 처리는, <2-2. 실시예 1-1>의 경우와 마찬가지의 흐름으로 행해진다(도 42의 흐름도와 마찬가지의 흐름으로 행해짐). 따라서 그 설명을 생략한다.
단, 그 역프라이머리 수평 변환 처리에 있어서 실행되는 변환 행렬 도출 처리(도 42의 스텝 S461)는, 도 94의 흐름도의 경우와 마찬가지의 흐름으로 행해진다. 따라서 그 설명을 생략한다.
<5. 제4 실시 형태>
<5-1. 공통 콘셉트>
<실시 형태의 조합>
이상에 있어서는 제1 실시 형태 내지 제3 실시 형태를 설명하였지만, 이들 각 실시 형태를 조합하여 적용하도록 해도 된다. 예를 들어 비특허문헌 1에 기재된 방법에 대하여, 실시예 1-1에 있어서 설명한 방법과 제3 실시 형태에 있어서 설명한 방법을 조합하여 적용하도록 해도 된다.
즉, 도출부가 부분 행렬을 이용하여 제1 변환 행렬을 도출하고, 또한 그 도출한 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고, 직교 변환부가, 그 도출부에 의하여 도출된 제2 변환 행렬을 이용하여 예측 잔차를 직교 변환하도록 해도 된다.
그때, 도출부는 제1 변환 행렬을 이용하여, 제1 변환 행렬과는 다른 변환 타입의 제2 변환 행렬을 도출하도록 해도 된다. 또한 도출부는 제1 변환 행렬을 플립 또는 전치하여 제2 변환 행렬을 도출하도록 해도 된다.
그 경우, 도 98의 표에 나타난 바와 같이, 비특허문헌 1에 기재된 기술의 경우에 5종류 필요했던 변환 행렬(도 6의 A의 표 참조)을 3종류로 저감시킬 수 있고, 또한 그 3종류의 변환 행렬에 대해서도 부분 행렬을 준비하면 되므로, LUT 사이즈의 합계는 약 20KB로 할 수 있다. 즉, 비특허문헌 1에 기재된 기술의 경우에 비해(약 53KB(도 6의 A의 표)) LUT의 사이즈를 저감시킬 수 있다. 즉, LUT의 사이즈의 증대를 억제할 수 있다.
<변환 행렬 도출부>
이 경우에도 화상 부호화 장치(100) 및 화상 복호 장치(200)의 구성은 각각 제1 실시 형태의 경우와 기본적으로 마찬가지이다. 단, 각 변환 행렬 도출부의 구성만 제1 실시 형태의 경우와 다르다.
예를 들어 이 경우의, 변환 행렬 도출부(321)의 주된 구성예를 도 99에 나타낸다. 도 99에 나타난 바와 같이 이 경우의 변환 행렬 도출부(321)는, 실시예 1-1의 경우의 구성(도 24)과 제3 실시 형태의 경우의 구성(도 92)의 양쪽을 갖고 있으면 된다. 즉, 이 경우의 변환 행렬 도출부(321)는 변환 행렬 LUT(331), 플립부(332), 전치부(333), 수평 방향 플립부(632), 수직 방향 플립부(633), 전치부(634) 및 부호 반전부(635)를 갖는다.
<변환 행렬 도출 처리의 흐름>
이 변환 행렬 도출 처리에 의하여, 프라이머리 수평 변환 처리에 있어서 실행되는 변환 행렬 도출 처리의 흐름의 예를, 도 100의 흐름도를 참조하여 설명한다.
변환 행렬 도출 처리가 개시되면, 스텝 S721에 있어서, 변환 행렬 도출부(321)는, 도 101에 나타나는 대응표를 참조하여, 변환 타입 식별자 TrTypeIdxH에 대응하는 베이스 부분 행렬 C를 변환 행렬 LUT(331)로부터 판독한다.
스텝 S722에 있어서, 변환 행렬 도출부(321)는 그 대응표에 기초하여, 변환 타입 식별자 TrTypeIdxH에 대응하는 플립 플래그 FlipFlag와 전치 플래그 TransposeFlag을 도출한다(값을 설정함).
스텝 S723에 있어서, 변환 행렬 도출부(321)는 수평 방향 플립부(632) 내지 부호 반전부(635)를 적당히 이용하여, 변환 타입 식별자 TrTypeIdxH에 대응하는 베이스 변환 행렬 Tbase를 부분 행렬 C로부터 소정의 도출 방법에 기초하여 생성한다.
그리고 변환 행렬 도출부(321)는 스텝 S724 내지 스텝 S728의 각 처리를, 플립부(332) 및 전치부(333)를 적당히 이용하여 도 30의 스텝 S342 내지 스텝 S346의 각 처리와 마찬가지로 실행한다. 즉, 제1 변환 행렬을 제2 변환 행렬로 적당히 변환한다.
스텝 S728의 처리가 종료되면 변환 행렬 도출 처리가 종료되고, 처리는 도 28로 되돌아간다.
또한 프라이머리 수직 변환부(313)가 갖는 변환 행렬 도출부(351), 역프라이머리 수직 변환부(412)가 갖는 변환 행렬 도출부(421), 및 역프라이머리 수평 변환부(413)가 갖는 변환 행렬 도출부(451)는 모두, 도 99를 참조하여 설명한 경우와 마찬가지의 구성을 갖는다. 따라서 그것들의 설명은 생략한다.
또한 프라이머리 수직 변환 처리에 있어서 실행되는 변환 행렬 도출 처리, 역프라이머리 수직 변환 처리에 있어서 실행되는 변환 행렬 도출 처리, 및 역프라이머리 수평 변환 처리에 있어서 실행되는 변환 행렬 도출 처리는 모두, 도 100의 흐름도를 참조하여 상술한 경우와 마찬가지의 흐름으로 실행된다. 따라서 그것들의 설명은 생략한다.
이와 같이 함으로써 실시예 1-1과 제3 실시 형태의 양쪽의 효과를 얻을 수 있다.
또한 실시 형태(실시예)의 조합 방식은 임의이며 이 예에 한정되지 않는다. 예를 들어 실시 형태 3에 있어서 설명한 방법은 실시 형태 1의 각 실시예와 조합할 수 있다. 또한 실시 형태 3에 있어서 설명한 방법은 실시 형태 2에 있어서 설명한 방법과도 조합할 수 있다.
<6. 부기>
<컴퓨터>
상술한 일련의 처리는 하드웨어에 의하여 실행시킬 수도 있고, 소프트웨어에 의하여 실행시킬 수도 있다. 일련의 처리를 소프트웨어에 의하여 실행하는 경우에는, 그 소프트웨어를 구성하는 프로그램이 컴퓨터에 인스톨된다. 여기서 컴퓨터에는, 전용 하드웨어에 내장되어 있는 컴퓨터나, 각종 프로그램을 인스톨함으로써 각종 기능을 실행하는 것이 가능한, 예를 들어 범용 퍼스널 컴퓨터 등이 포함된다.
도 102는, 상술한 일련의 처리를 프로그램에 의하여 실행하는 컴퓨터의 하드웨어의 구성예를 나타내는 블록도이다.
도 102에 나타나는 컴퓨터(800)에 있어서, CPU(Central Processing Unit)(801), ROM(Read Only Memory)(802), RAM(Random Access Memory)(803)은 버스(804)를 통하여 상호 간에 접속되어 있다.
버스(804)에는 또한, 입출력 인터페이스(810)도 접속되어 있다. 입출력 인터페이스(810)에는 입력부(811), 출력부(812), 기억부(813), 통신부(814) 및 드라이브(815)가 접속되어 있다.
입력부(811)는, 예를 들어 키보드, 마우스, 마이크로폰, 터치 패널, 입력 단자 등을 포함한다. 출력부(812)는, 예를 들어 디스플레이, 스피커, 출력 단자 등을 포함한다. 기억부(813)는, 예를 들어 하드 디스크, RAM 디스크, 불휘발성 메모리 등을 포함한다. 통신부(814)는, 예를 들어 네트워크 인터페이스를 포함한다. 드라이브(815)는, 자기 디스크, 광 디스크, 광 자기 디스크, 또는 반도체 메모리 등의 리무버블 미디어(821)를 구동한다.
이상과 같이 구성되는 컴퓨터에서는, CPU(801)가, 예를 들어 기억부(813)에 기억되어 있는 프로그램을, 입출력 인터페이스(810) 및 버스(804)를 통하여 RAM(803)에 로드하여 실행함으로써, 상술한 일련의 처리가 행해진다. RAM(803)에는 또한, CPU(801)가 각종 처리를 실행하는 데 있어서 필요한 데이터 등도 적당히 기억된다.
컴퓨터(CPU(801))가 실행하는 프로그램은, 예를 들어 패키지 미디어 등으로서의 리무버블 미디어(821)에 기록하여 적용할 수 있다. 그 경우, 프로그램은, 리무버블 미디어(821)를 드라이브(815)에 장착함으로써 입출력 인터페이스(810)를 통하여 기억부(813)에 인스톨할 수 있다.
또한 이 프로그램은, 로컬 에어리어 네트워크, 인터넷, 디지털 위성 방송과 같은, 유선 또는 무선 전송 매체를 통하여 제공할 수도 있다. 그 경우, 프로그램은 통신부(814)에서 수신하여 기억부(813)에 인스톨할 수 있다.
그 외에, 이 프로그램은 ROM(802)이나 기억부(813)에 미리 인스톨해 둘 수도 있다.
<정보·처리의 단위>
이상에 있어서 설명한 각종 정보가 설정되는 데이터 단위나, 각종 처리가 대상으로 하는 데이터 단위는 각각 임의이며, 상술한 예에 한정되지 않는다. 예를 들어 이들 정보나 처리가 각각, TU(Transform Unit), TB(Transform Block), PU(Prediction Unit), PB(Prediction Block), CU(Coding Unit), LCU(Largest Coding Unit), 서브블록, 블록, 타일, 슬라이스, 픽처, 시퀀스, 또는 컴포넌트별로 설정되도록 해도 되고, 그것들 데이터 단위의 데이터를 대상으로 하도록 해도 된다. 물론 이 데이터 단위는 정보나 처리별로 설정될 수 있는 것이며, 모든 정보나 처리의 데이터 단위가 통일되어 있을 필요는 없다. 또한 이들 정보의 저장 장소는 임의이며, 상술한 데이터 단위의 헤더나 파라미터 세트 등에 저장되도록 해도 된다. 또한 복수 개소에 저장되도록 해도 된다.
<제어 정보>
이상의 각 실시 형태에 있어서 설명한 본 기술에 관한 제어 정보를 부호화측으로부터 복호측에 전송하도록 해도 된다. 예를 들어 상술한 본 기술을 적용하는 것을 허가(또는 금지)할지 여부를 제어하는 제어 정보(예를 들어 enabled_flag)를 전송하도록 해도 된다. 또한, 예를 들어 상술한 본 기술을 적용할 대상(또는 적용하지 않을 대상)을 나타내는 제어 정보를 전송하도록 해도 된다. 예를 들어 본 기술을 적용할(또는 적용을 허가 혹은 금지할) 블록 사이즈(상한 혹은 하한, 또는 그 양쪽), 프레임, 컴포넌트, 또는 레이어 등을 지정하는 제어 정보를 전송하도록 해도 된다.
<본 기술의 적용 대상>
본 기술은 임의의 화상 부호화·복호 방식에 적용할 수 있다. 즉, 상술한 본 기술과 모순되지 않는 한, 변환(역변환), 양자화(역양자화), 부호화(복호), 예측 등, 화상 부호화·복호에 관한 각종 처리의 사양은 임의이며, 상술한 예에 한정되지 않는다. 또한 상술한 본 기술과 모순되지 않는 한, 이들 처리 중 일부를 생략해도 된다.
또한 본 기술은, 복수의 시점(뷰(view))의 화상을 포함하는 다시점 화상의 부호화·복호를 행하는 다시점 화상 부호화·복호 시스템에 적용할 수 있다. 그 경우, 각 시점(뷰(view))의 부호화·복호에 있어서 본 기술을 적용하도록 하면 된다.
또한 본 기술은, 소정의 파라미터에 대하여 스케일러빌리티(scalability) 기능을 갖도록 복수 레이어화(계층화)된 계층 화상의 부호화·복호를 행하는 계층 화상 부호화(스케일러블 부호화)·복호 시스템에 적용할 수 있다. 그 경우, 각 계층(레이어)의 부호화·복호에 있어서 본 기술을 적용하도록 하면 된다.
상술한 실시 형태에 따른 화상 부호화 장치(100)나 화상 복호 장치(200)는, 예를 들어 위성 방송, 케이블 TV 등의 유선 방송, 인터넷 상에서의 배신, 및 셀룰러 통신에 의한 단말기로의 배신 등에 있어서의 송신기나 수신기(예를 들어 텔레비전 수상기나 휴대 전화기), 또는 광 디스크, 자기 디스크 및 플래시 메모리 등의 매체에 화상을 기록하거나 이들 기억 매체로부터 화상을 재생하거나 하는 장치(예를 들어 하드 디스크 리코더나 카메라) 등의 다양한 전자 기기에 응용될 수 있다.
또한 본 기술은, 임의의 장치 또는 시스템을 구성하는 장치에 탑재하는 모든 구성, 예를 들어 시스템 LSI(Large Scale Integration) 등으로서의 프로세서(예를 들어 비디오 프로세서), 복수의 프로세서 등을 이용하는 모듈(예를 들어 비디오 모듈), 복수의 모듈 등을 이용하는 유닛(예를 들어 비디오 유닛), 유닛에 그 외의 기능을 더 부가한 세트(예를 들어 비디오 세트) 등(즉, 장치의 일부의 구성)으로서 실시할 수도 있다.
또한 본 기술은, 복수의 장치에 의하여 구성되는 네트워크 시스템에도 적용할 수도 있다. 예를 들어 컴퓨터, AV(Audio Visual) 기기, 휴대형 정보 처리 단말기, IoT(Internet of Things) 디바이스 등의 임의의 단말기에 대하여, 화상(동화상)에 관한 서비스를 제공하는 클라우드 서비스에 적용할 수도 있다.
또한 본 기술을 적용한 시스템, 장치, 처리부 등은, 예를 들어 교통, 의료, 방범, 농업, 축산업, 광업, 미용, 공장, 가전, 기상, 자연 감시 등 임의의 분야에 이용할 수 있다. 또한 그 용도도 임의이다.
예를 들어 본 기술은, 관상용 콘텐츠 등의 제공용으로 제공되는 시스템이나 디바이스에 적용할 수 있다. 또한, 예를 들어 본 기술은, 교통 상황의 감리나 자동 운전 제어 등, 교통용으로 제공되는 시스템이나 디바이스에도 적용할 수 있다. 또한, 예를 들어 본 기술은, 보안용으로 제공되는 시스템이나 디바이스에도 적용할 수 있다. 또한, 예를 들어 본 기술은, 기계 등의 자동 제어용으로 제공되는 시스템이나 디바이스에 적용할 수 있다. 또한, 예를 들어 본 기술은, 농업이나 축산업용으로 제공되는 시스템이나 디바이스에도 적용할 수 있다. 또한 본 기술은, 예를 들어 화산, 삼림, 해양 등의 자연의 상태나 야생 생물 등을 감시하는 시스템이나 디바이스에도 적용할 수 있다. 또한, 예를 들어 본 기술은, 스포츠용으로 제공되는 시스템이나 디바이스에도 적용할 수 있다.
<그 외>
또한 본 명세서에 있어서 「플래그」란, 복수의 상태를 식별하기 위한 정보이며, 참(1) 또는 거짓(0)의 2상태를 식별할 때 이용하는 정보뿐 아니라, 3 이상의 상태를 식별하는 것이 가능한 정보도 포함된다. 따라서 이 「플래그」가 취할 수 있는 값은, 예를 들어 1/0의 2값이어도 되고 3값 이상이어도 된다. 즉, 이 「플래그」를 구성하는 bit 수는 임의이며, 1bit여도, 복수 bit여도 된다. 또한 식별 정보(플래그도 포함함)는, 그 식별 정보를 비트 스트림에 포함시키는 형태뿐 아니라, 어떤 기준으로 되는 정보에 대한 식별 정보의 차분 정보를 비트 스트림에 포함시키는 형태도 상정되기 때문에, 본 명세서에 있어서는, 「플래그」나 「식별 정보」는, 그 정보뿐 아니라, 기준으로 되는 정보에 대한 차분 정보도 포함한다.
또한 부호화 데이터(비트 스트림)에 관한 각종 정보(메타데이터 등)는, 부호화 데이터에 관련지어져 있으면 어떠한 형태로 전송 또는 기록되도록 해도 된다. 여기서 「관련짓다」라는 용어는, 예를 들어 한쪽 데이터를 처리할 때 다른 한쪽 데이터를 이용할 수 있도록(링크시킬 수 있도록) 하는 것을 의미한다. 즉, 서로 관련지어진 데이터는 하나의 데이터로서 통합되어도 되고, 각각 개별의 데이터로 해도 된다. 예를 들어 부호화 데이터(화상)에 관련지어진 정보는, 그 부호화 데이터(화상)와는 다른 전송로 상에서 전송되도록 해도 된다. 또한, 예를 들어 부호화 데이터(화상)에 관련지어진 정보는, 그 부호화 데이터(화상)와는 다른 기록 매체(또는 동일한 기록 매체의 다른 기록 에어리어)에 기록되도록 해도 된다. 또한 이 「관련짓기」는 데이터 전체가 아니라 데이터의 일부여도 된다. 예를 들어 화상과 그 화상에 대응하는 정보가, 복수 프레임, 1프레임, 또는 프레임 내의 일부분 등의 임의의 단위로 서로 관련지어지도록 해도 된다.
또한 본 명세서에 있어서, 「합성하다」, 「다중화하다」, 「부가하다」, 「일체화하다」, 「포함시키다」, 「저장하다」, 「집어넣다」, 「끼워넣다」, 「삽입하다」 등의 용어는, 예를 들어 부호화 데이터와 메타데이터를 하나의 데이터로 통합하는 것과 같은, 복수의 사물을 하나로 통합하는 것을 의미하며, 상술한 「관련짓다」의 하나의 방법을 의미한다.
또한 본 기술의 실시 형태는 상술한 실시 형태에 한정되는 것은 아니며, 본 기술의 요지를 일탈하지 않는 범위에 있어서 다양한 변경이 가능하다.
또한, 예를 들어 본 기술은, 장치 또는 시스템을 구성하는 모든 구성, 예를 들어 시스템 LSI(Large Scale Integration) 등으로서의 프로세서, 복수의 프로세서 등을 이용하는 모듈, 복수의 모듈 등을 이용하는 유닛, 유닛에 그 외의 기능을 더 부가한 세트 등(즉, 장치의 일부의 구성)으로서 실시할 수도 있다.
또한 본 명세서에 있어서 시스템이란, 복수의 구성 요소(장치, 모듈(부품) 등)의 집합을 의미하며, 모든 구성 요소가 동일 하우징 중에 있는지 여부는 불문한다. 따라서 별개의 하우징에 수납되고 네트워크를 통하여 접속되어 있는 복수의 장치, 및 하나의 하우징 중에 복수의 모듈이 수납되어 있는 하나의 장치는 모두 시스템이다.
또한, 예를 들어 하나의 장치(또는 처리부)로서 설명한 구성을 분할하여 복수의 장치(또는 처리부)로서 구성하도록 해도 된다. 반대로, 이상에 있어서 복수의 장치(또는 처리부)로서 설명한 구성을 통합하여 하나의 장치(또는 처리부)로서 구성되도록 해도 된다. 또한 각 장치(또는 각 처리부)의 구성에, 상술한 것 이외의 구성을 부가하도록 해도 물론 된다. 또한, 시스템 전체로서의 구성이나 동작이 실질적으로 동일하면, 어떤 장치(또는 처리부)의 구성의 일부를 다른 장치(또는 다른 처리부)의 구성에 포함시키도록 해도 된다.
또한, 예를 들어 본 기술은, 하나의 기능을 네트워크를 통하여 복수의 장치에서 분담, 공동으로 처리하는 클라우드 컴퓨팅의 구성을 취할 수 있다.
또한, 예를 들어 상술한 프로그램은 임의의 장치에 있어서 실행할 수 있다. 그 경우, 그 장치가, 필요한 기능(기능 블록 등)을 갖고 필요한 정보를 얻을 수 있도록 하면 된다.
또한, 예를 들어 상술한 흐름도에서 설명한 각 스텝은, 하나의 장치에서 실행하는 것 외에 복수의 장치에서 분담하여 실행할 수 있다. 또한, 하나의 스텝에 복수의 처리가 포함되는 경우에는, 그 하나의 스텝에 포함되는 복수의 처리는, 하나의 장치에서 실행하는 것 외에 복수의 장치에서 분담하여 실행할 수 있다. 환언하건대, 하나의 스텝에 포함되는 복수의 처리를 복수의 스텝의 처리로서 실행할 수도 있다. 반대로, 복수의 스텝으로서 설명한 처리를 하나의 스텝으로서 통합하여 실행할 수도 있다.
또한 컴퓨터가 실행하는 프로그램은, 프로그램을 기술하는 스텝의 처리가, 본 명세서에서 설명하는 순서에 따라 시계열로 실행되도록 해도 되고, 병렬로, 혹은 호출이 행해졌을 때 등의 필요한 타이밍에 개별로 실행되도록 해도 된다. 즉, 모순이 생기지 않는 한, 각 스텝의 처리가 상술한 순서와 다른 순서로 실행되도록 해도 된다. 또한 이 프로그램을 기술하는 스텝의 처리가, 다른 프로그램의 처리와 병렬로 실행되도록 해도 되고, 다른 프로그램의 처리와 조합하여 실행되도록 해도 된다.
또한 본 명세서에 있어서 복수 설명한 본 기술은, 모순이 생기지 않는 한, 각각 독립적으로 단체(單體)에서 실시할 수 있다. 물론 임의의 복수의 본 기술을 병용하여 실시할 수도 있다. 예를 들어 어느 실시 형태에 있어서 설명한 본 기술의 일부 또는 전부를, 다른 실시 형태에 있어서 설명한 본 기술의 일부 또는 전부와 조합하여 실시할 수도 있다. 또한 상술한 임의의 본 기술의 일부 또는 전부를, 상술하지 않은 다른 기술과 병용하여 실시할 수도 있다.
또한 본 기술은 이하와 같은 구성도 취할 수 있다.
(1) 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하는 도출부와,
상기 도출부에 의하여 도출된 상기 제2 변환 행렬을 이용하여 화상의 예측 잔차를 직교 변환하는 직교 변환부와,
상기 직교 변환부에 의하여 상기 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는 부호화부
를 구비하는, 화상 처리 장치.
(2) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 상기 제1 변환 행렬과는 다른 변환 타입의 상기 제2 변환 행렬을 도출하는,
(1)에 기재된 화상 처리 장치.
(3) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 상기 제1 변환 행렬과 행수 및 열수가 동일한 상기 제2 변환 행렬을 도출하는,
(1) 또는 (2)에 기재된 화상 처리 장치.
(4) 상기 도출부는, 상기 제1 변환 행렬의 요소에 대한 조작에 의하여 상기 제2 변환 행렬을 도출하는,
(1) 내지 (3) 중 어느 것에 기재된 화상 처리 장치.
(5) 상기 조작은 요소의 재배열을 포함하는,
(4)에 기재된 화상 처리 장치.
(6) 상기 도출부는 상기 조작을 복수 회 행함으로써 상기 제2 변환 행렬을 도출하는,
(4) 또는 (5)에 기재된 화상 처리 장치.
(7) 상기 도출부는, 룩업 테이블에 저장되는 상기 제1 변환 행렬을 이용하여 상기 제2 변환 행렬을 도출하는,
(1) 내지 (6) 중 어느 것에 기재된 화상 처리 장치.
(8) 상기 직교 변환부는, 상기 도출부에 의하여 도출된 상기 제2 변환 행렬을 이용하여 상기 예측 잔차에 대한 프라이머리 변환을 행하고, 또한 상기 프라이머리 변환의 결과에 대하여 세컨더리 변환을 행하는,
(1) 내지 (7) 중 어느 것에 기재된 화상 처리 장치.
(9) 상기 도출부는, 수평 방향의 1차원 직교 변환용의 상기 제2 변환 행렬과, 수직 방향의 1차원 직교 변환용의 상기 제2 변환 행렬을 도출하고,
상기 직교 변환부는 상기 프라이머리 변환으로서,
상기 도출부에 의하여 도출된 수평 방향의 1차원 직교 변환용의 상기 제2 변환 행렬을 이용하여 상기 수평 방향의 1차원 직교 변환을 행하고, 또한,
상기 도출부에 의하여 도출된 수직 방향의 1차원 직교 변환용의 상기 제2 변환 행렬을 이용하여 상기 수직 방향의 1차원 직교 변환을 행하는,
(8)에 기재된 화상 처리 장치.
(10) 상기 도출부는 상기 제1 변환 행렬을 플립하여 상기 제2 변환 행렬을 도출하는,
(1) 내지 (9) 중 어느 것에 기재된 화상 처리 장치.
(11) 상기 도출부는 상기 제1 변환 행렬을 전치하여 상기 제2 변환 행렬을 도출하는,
(1) 내지 (10) 중 어느 것에 기재된 화상 처리 장치.
(12) 상기 도출부는 상기 제1 변환 행렬을 플립하고, 플립 후의 제1 변환 행렬 중, 홀수번째의 행 벡터의 부호를 반전하여 상기 제2 변환 행렬을 도출하는,
(1) 내지 (11) 중 어느 것에 기재된 화상 처리 장치.
(13) 상기 도출부는 상기 제1 변환 행렬을 플립하고, 플립 후의 제1 변환 행렬을 전치하여 상기 제2 변환 행렬을 도출하는,
(1) 내지 (12) 중 어느 것에 기재된 화상 처리 장치.
(14) 상기 도출부는 상기 제1 변환 행렬을 전치하고, 전치 후의 제1 변환 행렬을 플립하여 상기 제2 변환 행렬을 도출하는,
(1) 내지 (13) 중 어느 것에 기재된 화상 처리 장치.
(15) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 최저차 행 벡터가 원하는 타입의 파형을 갖는 상기 제2 변환 행렬을 도출하는,
(1) 내지 (14) 중 어느 것에 기재된 화상 처리 장치.
(16) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 최저차 행 벡터가 플랫형의 파형을 갖는 상기 제2 변환 행렬을 도출하는,
(1) 내지 (15) 중 어느 것에 기재된 화상 처리 장치.
(17) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 최저차 행 벡터가 증가형의 파형을 갖는 상기 제2 변환 행렬을 도출하는,
(1) 내지 (16) 중 어느 것에 기재된 화상 처리 장치.
(18) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 최저차 행 벡터가 감소형의 파형을 갖는 상기 제2 변환 행렬을 도출하는,
(1) 내지 (17) 중 어느 것에 기재된 화상 처리 장치.
(19) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 최저차 행 벡터가 산형의 파형을 갖는 상기 제2 변환 행렬을 도출하는,
(1) 내지 (18) 중 어느 것에 기재된 화상 처리 장치.
(20) 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고,
도출된 상기 제2 변환 행렬을 이용하여 화상의 예측 잔차를 직교 변환하고,
상기 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는,
화상 처리 방법.
(21) 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻는 복호부와,
제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하는 도출부와,
상기 도출부에 의하여 도출된 상기 제2 변환 행렬을 이용하여, 상기 복호부에 의하여 얻어진 상기 계수 데이터를 역직교 변환하는 역직교 변환부
를 구비하는, 화상 처리 장치.
(22) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 상기 제1 변환 행렬과는 다른 변환 타입의 상기 제2 변환 행렬을 도출하는,
(21)에 기재된 화상 처리 장치.
(23) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 상기 제1 변환 행렬과 행수 및 열수가 동일한 상기 제2 변환 행렬을 도출하는,
(21) 또는 (22)에 기재된 화상 처리 장치.
(24) 상기 도출부는, 상기 제1 변환 행렬의 요소에 대한 조작에 의하여 상기 제2 변환 행렬을 도출하는,
(21) 내지 (23) 중 어느 것에 기재된 화상 처리 장치.
(25) 상기 조작은 요소의 재배열을 포함하는,
(24)에 기재된 화상 처리 장치.
(26) 상기 도출부는 상기 조작을 복수 회 행함으로써 상기 제2 변환 행렬을 도출하는,
(24) 또는 (25)에 기재된 화상 처리 장치.
(27) 상기 도출부는, 룩업 테이블에 저장되는 상기 제1 변환 행렬을 이용하여 상기 제2 변환 행렬을 도출하는,
(21) 내지 (26) 중 어느 것에 기재된 화상 처리 장치.
(28) 상기 역직교 변환부는, 상기 계수 데이터에 대한 역세컨더리 변환을 행하고, 또한 상기 도출부에 의하여 도출된 상기 제2 변환 행렬을 이용하여, 상기 역세컨더리 변환의 결과에 대하여 역프라이머리 변환을 행하는,
(21) 내지 (27) 중 어느 것에 기재된 화상 처리 장치.
(29) 상기 도출부는, 수평 방향의 역1차원 직교 변환용의 상기 제2 변환 행렬과, 수직 방향의 역1차원 직교 변환용의 상기 제2 변환 행렬을 도출하고,
상기 역직교 변환부는 상기 역프라이머리 변환으로서,
상기 도출부에 의하여 도출된 수평 방향의 역1차원 직교 변환용의 상기 제2 변환 행렬을 이용하여 상기 수평 방향의 역1차원 직교 변환을 행하고, 또한,
상기 도출부에 의하여 도출된 수직 방향의 역1차원 직교 변환용의 상기 제2 변환 행렬을 이용하여 상기 수직 방향의 역1차원 직교 변환을 행하는,
(28)에 기재된 화상 처리 장치.
(30) 상기 도출부는 상기 제1 변환 행렬을 플립하여 상기 제2 변환 행렬을 도출하는,
(21) 내지 (29) 중 어느 것에 기재된 화상 처리 장치.
(31) 상기 도출부는 상기 제1 변환 행렬을 전치하여 상기 제2 변환 행렬을 도출하는,
(21) 내지 (30) 중 어느 것에 기재된 화상 처리 장치.
(32) 상기 도출부는 상기 제1 변환 행렬을 플립하고, 플립 후의 제1 변환 행렬 중, 홀수번째의 행 벡터의 부호를 반전하여 상기 제2 변환 행렬을 도출하는,
(21) 내지 (31) 중 어느 것에 기재된 화상 처리 장치.
(33) 상기 도출부는 상기 제1 변환 행렬을 플립하고, 플립 후의 제1 변환 행렬을 전치하여 상기 제2 변환 행렬을 도출하는,
(21) 내지 (32) 중 어느 것에 기재된 화상 처리 장치.
(34) 상기 도출부는 상기 제1 변환 행렬을 전치하고, 전치 후의 제1 변환 행렬을 플립하여 상기 제2 변환 행렬을 도출하는,
(21) 내지 (33) 중 어느 것에 기재된 화상 처리 장치.
(35) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 최저차 행 벡터가 원하는 타입의 파형을 갖는 상기 제2 변환 행렬을 도출하는,
(21) 내지 (34) 중 어느 것에 기재된 화상 처리 장치.
(36) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 최저차 행 벡터가 플랫형의 파형을 갖는 상기 제2 변환 행렬을 도출하는,
(21) 내지 (35) 중 어느 것에 기재된 화상 처리 장치.
(37) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 최저차 행 벡터가 증가형의 파형을 갖는 상기 제2 변환 행렬을 도출하는,
(21) 내지 (36) 중 어느 것에 기재된 화상 처리 장치.
(38) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 최저차 행 벡터가 감소형의 파형을 갖는 상기 제2 변환 행렬을 도출하는,
(21) 내지 (37) 중 어느 것에 기재된 화상 처리 장치.
(39) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 최저차 행 벡터가 산형의 파형을 갖는 상기 제2 변환 행렬을 도출하는,
(21) 내지 (38) 중 어느 것에 기재된 화상 처리 장치.
(40) 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻고,
제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고,
도출된 상기 제2 변환 행렬을 이용하여, 얻어진 상기 계수 데이터를 역직교 변환하는,
화상 처리 방법.
(41) 화상의 예측 잔차를 치환 조작하는 조작부와,
베이스로 되는 변환 행렬을 이용하여, 상기 조작부에 의하여 치환 조작된 상기 예측 잔차를 직교 변환하는 직교 변환부와,
상기 직교 변환부에 의하여 상기 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는 부호화부
를 구비하는, 화상 처리 장치.
(42) 상기 조작부는 상기 예측 잔차를, 1차원 직교 변환 사이의 공간 대칭성의 방향으로 플립하고,
상기 직교 변환부는, 상기 조작부에 의하여 플립된 상기 예측 잔차를, 상기 변환 행렬을 이용하여 직교 변환하는,
(41)에 기재된 화상 처리 장치.
(43) 상기 조작부는 상기 예측 잔차를 수평 방향으로 플립하고,
상기 직교 변환부는, 상기 조작부에 의하여 수평 방향으로 플립된 상기 예측 잔차를, 상기 변환 행렬을 이용하여 직교 변환하는,
(41) 또는 (42)에 기재된 화상 처리 장치.
(44) 상기 조작부는 상기 예측 잔차를 수직 방향으로 플립하고,
상기 직교 변환부는, 상기 조작부에 의하여 수직 방향으로 플립된 상기 예측 잔차를, 상기 변환 행렬을 이용하여 직교 변환하는,
(41) 내지 (43) 중 어느 것에 기재된 화상 처리 장치.
(45) 상기 조작부는 상기 예측 잔차를 수평 방향 및 수직 방향으로 플립하고,
상기 직교 변환부는, 상기 조작부에 의하여 수평 방향 및 수직 방향으로 플립된 상기 예측 잔차를, 상기 변환 행렬을 이용하여 직교 변환하는,
(41) 내지 (44) 중 어느 것에 기재된 화상 처리 장치.
(46) 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하는 도출부를 더 구비하고,
상기 직교 변환부는, 상기 조작부에 의하여 플립된 상기 예측 잔차를, 상기 도출부에 의하여 도출된 상기 제2 변환 행렬을 이용하여 직교 변환하도록 구성되는,
(41) 내지 (45) 중 어느 것에 기재된 화상 처리 장치.
(47) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 상기 제1 변환 행렬과 행수 및 열수가 동일한 상기 제2 변환 행렬을 도출하는,
(46)에 기재된 화상 처리 장치.
(48) 상기 도출부는 상기 제1 변환 행렬 중, 홀수번째의 행 벡터의 부호를 반전하여 상기 제2 변환 행렬을 도출하는,
(46) 또는 (47)에 기재된 화상 처리 장치.
(49) 상기 직교 변환부는, 베이스로 되는 변환 행렬을 이용하여, 상기 조작부에 의하여 치환 조작된 상기 예측 잔차에 대한 프라이머리 변환을 행하고, 또한 상기 프라이머리 변환 결과에 대하여 세컨더리 변환을 행하는,
(41) 내지 (48) 중 어느 것에 기재된 화상 처리 장치.
(50) 화상의 예측 잔차를 치환 조작하고,
베이스로 되는 변환 행렬을 이용하여, 치환 조작된 상기 예측 잔차를 직교 변환하고,
상기 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는,
화상 처리 방법.
(51) 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻는 복호부와,
상기 복호부에 의하여 얻어진 상기 계수 데이터를 역직교 변환하는 역직교 변환부와,
상기 역직교 변환부에 의하여 얻어진 상기 계수 데이터의 역직교 변환 결과를 치환 조작하는 조작부
를 구비하는, 화상 처리 장치.
(52) 상기 조작부는 상기 역직교 변환 결과를, 1차원 직교 변환 사이의 공간 대칭성의 방향으로 플립하는,
(51)에 기재된 화상 처리 장치.
(53) 상기 조작부는 상기 역직교 변환 결과를 수평 방향으로 플립하는,
(51) 또는 (52)에 기재된 화상 처리 장치.
(54) 상기 조작부는 상기 역직교 변환 결과를 수직 방향으로 플립하는,
(51) 내지 (53) 중 어느 것에 기재된 화상 처리 장치.
(55) 상기 조작부는 상기 역직교 변환 결과를 수평 방향 및 수직 방향으로 플립하는,
(51) 내지 (54) 중 어느 것에 기재된 화상 처리 장치.
(56) 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하는 도출부를 더 구비하고,
상기 역직교 변환부는, 상기 도출부에 의하여 도출된 상기 제2 변환 행렬을 이용하여, 상기 복호부에 의하여 얻어진 상기 계수 데이터를 역직교 변환하도록 구성되고,
상기 조작부는, 상기 역직교 변환부에 의하여 얻어진 상기 계수 데이터의 역직교 변환 결과를 치환 조작하도록 구성되는,
(51) 내지 (55) 중 어느 것에 기재된 화상 처리 장치.
(57) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 상기 제1 변환 행렬과 행수 및 열수가 동일한 상기 제2 변환 행렬을 도출하는,
(56)에 기재된 화상 처리 장치.
(58) 상기 도출부는 상기 제1 변환 행렬 중, 홀수번째의 행 벡터의 부호를 반전하여 상기 제2 변환 행렬을 도출하는,
(56) 또는 (57)에 기재된 화상 처리 장치.
(59) 상기 역직교 변환부는, 상기 복호부에 의하여 얻어진 상기 계수 데이터에 대한 역세컨더리 변환을 행하고, 또한 베이스로 되는 변환 행렬을 이용하여, 상기 역세컨더리 변환 결과에 대하여 역프라이머리 변환을 행하고,
상기 조작부는, 상기 역직교 변환부에 의하여 얻어진 상기 역프라이머리 변환 결과를 치환 조작하는,
(51) 내지 (58) 중 어느 것에 기재된 화상 처리 장치.
(60) 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻고,
얻어진 상기 계수 데이터를 역직교 변환하고,
얻어진 상기 계수 데이터의 역직교 변환 결과를 치환 조작하는,
화상 처리 방법.
(61) 변환 행렬의 일부를 구성하는 부분 행렬을 이용하여 상기 변환 행렬을 도출하는 도출부와,
상기 도출부에 의하여 도출된 상기 변환 행렬을 이용하여 화상의 예측 잔차를 직교 변환하는 직교 변환부와,
상기 직교 변환부에 의하여 상기 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는 부호화부
를 구비하는, 화상 처리 장치.
(62) 상기 도출부는, 룩업 테이블에 저장되는 상기 부분 행렬을 이용하여 상기 변환 행렬을 도출하는,
(61)에 기재된 화상 처리 장치.
(63) 상기 직교 변환부는, 상기 도출부에 의하여 도출된 상기 변환 행렬을 이용하여 상기 예측 잔차에 대한 프라이머리 변환을 행하고, 또한 상기 프라이머리 변환 결과에 대하여 세컨더리 변환을 행하는,
(61) 또는 (62)에 기재된 화상 처리 장치.
(64) 상기 도출부는, 수평 방향의 1차원 직교 변환용의 상기 변환 행렬과, 수직 방향의 1차원 직교 변환용의 상기 변환 행렬을 도출하고,
상기 직교 변환부는 상기 프라이머리 변환으로서,
상기 도출부에 의하여 도출된 수평 방향의 1차원 직교 변환용의 상기 변환 행렬을 이용하여 상기 수평 방향의 1차원 직교 변환을 행하고, 또한,
상기 도출부에 의하여 도출된 수직 방향의 1차원 직교 변환용의 상기 변환 행렬을 이용하여 상기 수직 방향의 1차원 직교 변환을 행하는,
(63)에 기재된 화상 처리 장치.
(65) 상기 도출부는 상기 부분 행렬을, 상기 변환 행렬의 중심을 통과하는 소정의 방향의 축을 중심으로 하여 플립하여 상기 변환 행렬의 나머지 부분 행렬을 도출함으로써, 상기 변환 행렬을 도출하는,
(61) 내지 (64) 중 어느 것에 기재된 화상 처리 장치.
(66) 상기 도출부는 상기 부분 행렬을, 행에 평행인 방향으로 플립하는,
(65)에 기재된 화상 처리 장치.
(67) 상기 도출부는 상기 부분 행렬을, 열에 평행인 방향으로 플립하는,
(65) 또는 (66)에 기재된 화상 처리 장치.
(68) 상기 도출부는 상기 부분 행렬을, 상기 변환 행렬의 중심을 중심으로 하는 회전 방향으로 플립하는,
(65) 내지 (67) 중 어느 것에 기재된 화상 처리 장치.
(69) 상기 도출부는 상기 부분 행렬을, 상기 변환 행렬의 대각선을 축으로 하는 경사 방향으로 플립하는,
(65) 내지 (68) 중 어느 것에 기재된 화상 처리 장치.
(70) 상기 도출부는 또한, 플립된 상기 부분 행렬의 요소 부호를 반전하여 상기 변환 행렬을 도출하는,
(65) 내지 (69) 중 어느 것에 기재된 화상 처리 장치.
(71) 상기 부분 행렬은 상기 변환 행렬의 좌측 절반의 부분 행렬 또는 우측 절반의 부분 행렬이고,
상기 도출부는 상기 부분 행렬을 상기 변환 행렬의 행 방향으로 플립하고, 또한 플립된 상기 부분 행렬의 홀수번째의 행 벡터의 부호를 반전하여 상기 변환 행렬의 우측 절반의 부분 행렬 또는 좌측 절반의 부분 행렬을 도출함으로써, 상기 변환 행렬을 도출하도록 구성되는,
(61) 내지 (70) 중 어느 것에 기재된 화상 처리 장치.
(72) 상기 부분 행렬은 상기 변환 행렬의 상측 절반의 부분 행렬 또는 하측 절반의 부분 행렬이고,
상기 도출부는, 상기 부분 행렬을 상기 변환 행렬의 열 방향으로 플립하고, 또한 플립된 상기 부분 행렬의 홀수번째의 열 벡터의 부호를 반전하여 상기 변환 행렬의 하측 절반의 부분 행렬 또는 상측 절반의 부분 행렬을 도출함으로써, 상기 변환 행렬을 도출하도록 구성되는,
(61) 내지 (71) 중 어느 것에 기재된 화상 처리 장치.
(73) 상기 부분 행렬은 상기 변환 행렬의 상측 절반의 부분 행렬 또는 하측 절반의 부분 행렬이고,
상기 도출부는, 상기 부분 행렬을 상기 변환 행렬의 중심을 중심으로 하는 회전 방향으로 플립하고, 또한 플립된 상기 부분 행렬의, 행 번호 및 열 번호가 모두 짝수인 요소, 및 행 번호 및 열 번호가 모두 홀수인 요소의 부호를 반전하여 상기 변환 행렬의 하측 절반의 부분 행렬 또는 상측 절반의 부분 행렬을 도출함으로써, 상기 변환 행렬을 도출하도록 구성되는,
(61) 내지 (72) 중 어느 것에 기재된 화상 처리 장치.
(74) 상기 부분 행렬은 상기 변환 행렬의 우측 상방 삼각 부분의 부분 행렬 또는 좌측 하방 삼각 부분의 부분 행렬이고,
상기 도출부는 상기 부분 행렬을 전치하여 상기 변환 행렬의 좌측 하방 삼각 부분의 부분 행렬 또는 우측 상방 삼각 부분의 부분 행렬을 도출함으로써, 상기 변환 행렬을 도출하도록 구성되는,
(61) 내지 (73) 중 어느 것에 기재된 화상 처리 장치.
(75) 상기 부분 행렬은 상기 변환 행렬의 좌측 상방 삼각 부분의 부분 행렬 또는 우측 하방 삼각 부분의 부분 행렬이고,
상기 도출부는 상기 부분 행렬을, 상기 변환 행렬의 우상단과 좌하단을 잇는 대각선을 축으로 하는 경사 방향으로 플립하고, 또한 플립된 상기 부분 행렬의, 행 번호 및 열 번호가 모두 짝수인 요소, 및 행 번호 및 열 번호가 모두 홀수인 요소의 부호를 반전하여 상기 변환 행렬의 우측 하방 삼각 부분의 부분 행렬 또는 좌측 상방 삼각 부분의 부분 행렬을 도출함으로써, 상기 변환 행렬을 도출하도록 구성되는,
(61) 내지 (74) 중 어느 것에 기재된 화상 처리 장치.
(76) 상기 부분 행렬은 상기 변환 행렬의 좌측 상방 1/4의 부분 행렬이고,
상기 도출부는,
상기 부분 행렬을 상기 변환 행렬의 행 방향으로 플립하고, 또한 플립된 상기 부분 행렬의 홀수번째의 행 벡터의 부호를 반전하여 상기 변환 행렬의 우측 상방 1/4의 부분 행렬을 도출하고,
상기 부분 행렬을 상기 변환 행렬의 열 방향으로 플립하고, 또한 플립된 상기 부분 행렬의 홀수번째의 열 벡터의 부호를 반전하여 상기 변환 행렬의 좌측 하방 1/4의 부분 행렬을 도출하고,
상기 부분 행렬을, 상기 변환 행렬의 중심을 중심으로 하는 회전 방향으로 플립하고, 또한 플립된 상기 부분 행렬의, 행 번호 및 열 번호가 모두 짝수인 요소, 및 행 번호 및 열 번호가 모두 홀수인 요소의 부호를 반전하여 상기 변환 행렬의 우측 하방 1/4의 부분 행렬을 도출함으로써,
상기 변환 행렬을 도출하도록 구성되는,
(61) 내지 (75) 중 어느 것에 기재된 화상 처리 장치.
(77) 상기 도출부는 상기 부분 행렬을 이용하여 제1 변환 행렬을 도출하고, 또한 도출한 상기 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고,
상기 직교 변환부는, 상기 도출부에 의하여 도출된 상기 제2 변환 행렬을 이용하여 상기 예측 잔차를 직교 변환하는,
(61) 내지 (76) 중 어느 것에 기재된 화상 처리 장치.
(78) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 상기 제1 변환 행렬과는 다른 변환 타입의 상기 제2 변환 행렬을 도출하는,
(77)에 기재된 화상 처리 장치.
(79) 상기 도출부는 상기 제1 변환 행렬을 플립 또는 전치하여 상기 제2 변환 행렬을 도출하는,
(77) 또는 (78)에 기재된 화상 처리 장치.
(80) 변환 행렬의 일부를 구성하는 부분 행렬을 이용하여 상기 변환 행렬을 도출하고,
도출된 상기 변환 행렬을 이용하여 화상의 예측 잔차를 직교 변환하고,
상기 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는,
화상 처리 방법.
(81) 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻는 복호부와,
변환 행렬의 일부를 구성하는 부분 행렬을 이용하여 상기 변환 행렬을 도출하는 도출부와,
상기 도출부에 의하여 도출된 상기 변환 행렬을 이용하여, 상기 복호부에 의하여 얻어진 상기 계수 데이터를 역직교 변환하는 역직교 변환부
를 구비하는, 화상 처리 장치.
(82) 상기 도출부는, 룩업 테이블에 저장되는 상기 부분 행렬을 이용하여 상기 변환 행렬을 도출하는,
(81)에 기재된 화상 처리 장치.
(83) 상기 역직교 변환부는, 상기 복호부에 의하여 얻어진 상기 계수 데이터에 대한 역세컨더리 변환을 행하고, 또한 상기 도출부에 의하여 도출된 상기 변환 행렬을 이용하여, 상기 역세컨더리 변환 결과에 대하여 역프라이머리 변환을 행하는,
(81) 또는 (82)에 기재된 화상 처리 장치.
(84) 상기 도출부는, 수평 방향의 역1차원 직교 변환용의 상기 변환 행렬과, 수직 방향의 역1차원 직교 변환용의 상기 변환 행렬을 도출하고,
상기 역직교 변환부는 상기 역프라이머리 변환으로서,
상기 도출부에 의하여 도출된 수평 방향의 역1차원 직교 변환용의 상기 변환 행렬을 이용하여 상기 수평 방향의 역1차원 직교 변환을 행하고, 또한,
상기 도출부에 의하여 도출된 수직 방향의 역1차원 직교 변환용의 상기 변환 행렬을 이용하여 상기 수직 방향의 역1차원 직교 변환을 행하는,
(83)에 기재된 화상 처리 장치.
(85) 상기 도출부는 상기 부분 행렬을, 상기 변환 행렬의 중심을 통과하는 소정의 방향의 축을 중심으로 하여 플립하여 상기 변환 행렬의 나머지 부분 행렬을 도출함으로써, 상기 변환 행렬을 도출하는,
(81) 내지 (84) 중 어느 것에 기재된 화상 처리 장치.
(86) 상기 도출부는 상기 부분 행렬을, 행에 평행인 방향으로 플립하는,
(85)에 기재된 화상 처리 장치.
(87) 상기 도출부는 상기 부분 행렬을, 열에 평행인 방향으로 플립하는,
(85) 또는 (86)에 기재된 화상 처리 장치.
(88) 상기 도출부는 상기 부분 행렬을, 상기 변환 행렬의 중심을 중심으로 하는 회전 방향으로 플립하는,
(85) 내지 (87) 중 어느 것에 기재된 화상 처리 장치.
(89) 상기 도출부는 상기 부분 행렬을, 상기 변환 행렬의 대각선을 축으로 하는 경사 방향으로 플립하는,
(85) 내지 (88) 중 어느 것에 기재된 화상 처리 장치.
(90) 상기 도출부는 또한, 플립된 상기 부분 행렬의 요소 부호를 반전하여 상기 변환 행렬을 도출하는,
(85) 내지 (89) 중 어느 것에 기재된 화상 처리 장치.
(91) 상기 부분 행렬은 상기 변환 행렬의 좌측 절반의 부분 행렬 또는 우측 절반의 부분 행렬이고,
상기 도출부는 상기 부분 행렬을 상기 변환 행렬의 행 방향으로 플립하고, 또한 플립된 상기 부분 행렬의 홀수번째의 행 벡터의 부호를 반전하여 상기 변환 행렬의 우측 절반의 부분 행렬 또는 좌측 절반의 부분 행렬을 도출함으로써, 상기 변환 행렬을 도출하도록 구성되는,
(81) 내지 (90) 중 어느 것에 기재된 화상 처리 장치.
(92) 상기 부분 행렬은 상기 변환 행렬의 상측 절반의 부분 행렬 또는 하측 절반의 부분 행렬이고,
상기 도출부는 상기 부분 행렬을 상기 변환 행렬의 열 방향으로 플립하고, 또한 플립된 상기 부분 행렬의 홀수번째의 열 벡터의 부호를 반전하여 상기 변환 행렬의 하측 절반의 부분 행렬 또는 상측 절반의 부분 행렬을 도출함으로써, 상기 변환 행렬을 도출하도록 구성되는,
(81) 내지 (91) 중 어느 것에 기재된 화상 처리 장치.
(93) 상기 부분 행렬은 상기 변환 행렬의 상측 절반의 부분 행렬 또는 하측 절반의 부분 행렬이고,
상기 도출부는 상기 부분 행렬을 상기 변환 행렬의 중심을 중심으로 하는 회전 방향으로 플립하고, 또한 플립된 상기 부분 행렬의, 행 번호 및 열 번호가 모두 짝수인 요소, 및 행 번호 및 열 번호가 모두 홀수인 요소의 부호를 반전하여 상기 변환 행렬의 하측 절반의 부분 행렬 또는 상측 절반의 부분 행렬을 도출함으로써, 상기 변환 행렬을 도출하도록 구성되는,
(81) 내지 (92) 중 어느 것에 기재된 화상 처리 장치.
(94) 상기 부분 행렬은 상기 변환 행렬의 우측 상방 삼각 부분의 부분 행렬 또는 좌측 하방 삼각 부분의 부분 행렬이고,
상기 도출부는 상기 부분 행렬을 전치하여 상기 변환 행렬의 좌측 하방 삼각 부분의 부분 행렬 또는 우측 상방 삼각 부분의 부분 행렬을 도출함으로써, 상기 변환 행렬을 도출하도록 구성되는,
(81) 내지 (93) 중 어느 것에 기재된 화상 처리 장치.
(95) 상기 부분 행렬은 상기 변환 행렬의 좌측 상방 삼각 부분의 부분 행렬 또는 우측 하방 삼각 부분의 부분 행렬이고,
상기 도출부는 상기 부분 행렬을, 상기 변환 행렬의 우상단과 좌하단을 잇는 대각선을 축으로 하는 경사 방향으로 플립하고, 또한 홀수번째의 행 벡터의 부호를 반전하여 상기 변환 행렬의 우측 하방 삼각 부분의 부분 행렬 또는 좌측 상방 삼각 부분의 부분 행렬을 도출함으로써, 상기 변환 행렬을 도출하도록 구성되는,
(81) 내지 (94) 중 어느 것에 기재된 화상 처리 장치.
(96) 상기 부분 행렬은 상기 변환 행렬의 좌측 상방 1/4의 부분 행렬이고,
상기 도출부는,
상기 부분 행렬을 상기 변환 행렬의 행 방향으로 플립하고, 또한 플립된 상기 부분 행렬의 홀수번째의 행 벡터의 부호를 반전하여 상기 변환 행렬의 우측 상방 1/4의 부분 행렬을 도출하고,
상기 부분 행렬을 상기 변환 행렬의 열 방향으로 플립하고, 또한 플립된 상기 부분 행렬의 홀수번째의 열 벡터의 부호를 반전하여 상기 변환 행렬의 좌측 하방 1/4의 부분 행렬을 도출하고,
상기 부분 행렬을, 상기 변환 행렬의 중심을 중심으로 하는 회전 방향으로 플립하고, 또한 플립된 상기 부분 행렬의, 행 번호 및 열 번호가 모두 짝수인 요소, 및 행 번호 및 열 번호가 모두 홀수인 요소의 부호를 반전하여 상기 변환 행렬의 우측 하방 1/4의 부분 행렬을 도출함으로써,
상기 변환 행렬을 도출하도록 구성되는,
(81) 내지 (95) 중 어느 것에 기재된 화상 처리 장치.
(97) 상기 도출부는 상기 부분 행렬을 이용하여 제1 변환 행렬을 도출하고, 또한 도출한 상기 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고,
상기 역직교 변환부는, 상기 도출부에 의하여 도출된 상기 제2 변환 행렬을 이용하여 상기 계수 데이터를 역직교 변환하는,
(81) 내지 (96) 중 어느 것에 기재된 화상 처리 장치.
(98) 상기 도출부는 상기 제1 변환 행렬을 이용하여, 상기 제1 변환 행렬과는 다른 변환 타입의 상기 제2 변환 행렬을 도출하는,
(97)에 기재된 화상 처리 장치.
(99) 상기 도출부는 상기 제1 변환 행렬을 플립 또는 전치하여 상기 제2 변환 행렬을 도출하는,
(97) 또는 (98)에 기재된 화상 처리 장치.
(100) 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻고,
변환 행렬의 일부를 구성하는 부분 행렬을 이용하여 상기 변환 행렬을 도출하고,
도출된 상기 변환 행렬을 이용하여, 얻어진 상기 계수 데이터를 역직교 변환하는,
화상 처리 방법.
100: 화상 부호화 장치
101: 제어부
113: 직교 변환부
115: 부호화부
118: 역직교 변환부
152: 프라이머리 변환부
200: 화상 복호 장치
212: 복호부
214: 역직교 변환부
253: 역프라이머리 변환부
311: 프라이머리 변환 선택부
312: 프라이머리 수평 변환부
313: 프라이머리 수직 변환부
321: 변환 행렬 도출부
331: 변환 행렬 LUT
332: 플립부
333: 전치부
351: 변환 행렬 도출부
361: 변환 행렬 LUT
362: 플립부
363: 전치부
411: 역프라이머리 변환 선택부
412: 역프라이머리 수직 변환부
413: 역프라이머리 수평 변환부
421: 변환 행렬 도출부
431: 변환 행렬 LUT
432: 플립부
433: 전치부
451: 변환 행렬 도출부
461: 변환 행렬 LUT
462: 플립부
463: 전치부
501, 502, 511 및 512: 부호 반전부
551 및 552: 예측 잔차 치환 조작부
561, 562, 571 및 572: 부호 반전부
632: 수평 방향 플립부
633: 수직 방향 플립부
634: 전치부
635: 부호 반전부
642: 수평 방향 플립부
643: 수직 방향 플립부
644: 전치부
645: 부호 반전부
652: 수평 방향 플립부
653: 수직 방향 플립부
654: 전치부
655: 부호 반전부
662: 수평 방향 플립부
663: 수직 방향 플립부
664: 전치부
665: 부호 반전부

Claims (28)

  1. 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하는 도출부와,
    상기 도출부에 의하여 도출된 상기 제2 변환 행렬을 이용하여 화상의 예측 잔차를 직교 변환하는 직교 변환부와,
    상기 직교 변환부에 의하여 상기 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는 부호화부
    를 구비하는, 화상 처리 장치.
  2. 제1항에 있어서,
    상기 도출부는 상기 제1 변환 행렬을 이용하여, 상기 제1 변환 행렬과는 다른 변환 타입의 상기 제2 변환 행렬을 도출하는,
    화상 처리 장치.
  3. 제1항에 있어서,
    상기 도출부는 상기 제1 변환 행렬을 이용하여, 상기 제1 변환 행렬과 행수 및 열수가 동일한 상기 제2 변환 행렬을 도출하는,
    화상 처리 장치.
  4. 제1항에 있어서,
    상기 도출부는, 상기 제1 변환 행렬의 요소에 대한 조작에 의하여 상기 제2 변환 행렬을 도출하는,
    화상 처리 장치.
  5. 제4항에 있어서,
    상기 도출부는 상기 조작을 복수 회 행함으로써 상기 제2 변환 행렬을 도출하는,
    화상 처리 장치.
  6. 제1항에 있어서,
    상기 도출부는, 룩업 테이블에 저장되는 상기 제1 변환 행렬을 이용하여 상기 제2 변환 행렬을 도출하는,
    화상 처리 장치.
  7. 제1항에 있어서,
    상기 직교 변환부는, 상기 도출부에 의하여 도출된 상기 제2 변환 행렬을 이용하여 상기 예측 잔차에 대한 프라이머리 변환을 행하고, 또한 상기 프라이머리 변환의 결과에 대하여 세컨더리 변환을 행하는,
    화상 처리 장치.
  8. 제1항에 있어서,
    상기 도출부는 상기 제1 변환 행렬을 이용하여, 최저차 행 벡터가 원하는 타입의 파형을 갖는 상기 제2 변환 행렬을 도출하는,
    화상 처리 장치.
  9. 제1항에 있어서,
    상기 직교 변환부는, Quad-Tree Block Structure 또는 QTBT(Quad Tree Plus Binary Tree) Block Structure의 TU(Transform Unit)를 처리 단위로 하여 상기 예측 잔차의 직교 변환을 행하는,
    화상 처리 장치.
  10. 제1항에 있어서,
    상기 부호화부는, Quad-Tree Block Structure 또는 QTBT(Quad Tree Plus Binary Tree) Block Structure의 CU(Coding Unit)를 처리 단위로 하여 상기 계수 데이터의 부호화를 행하는,
    화상 처리 장치.
  11. 제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고,
    도출된 상기 제2 변환 행렬을 이용하여 화상의 예측 잔차를 직교 변환하고,
    상기 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는,
    화상 처리 방법.
  12. 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻는 복호부와,
    제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하는 도출부와,
    상기 도출부에 의하여 도출된 상기 제2 변환 행렬을 이용하여, 상기 복호부에 의하여 얻어진 상기 계수 데이터를 역직교 변환하는 역직교 변환부
    를 구비하는, 화상 처리 장치.
  13. 제12항에 있어서,
    상기 역직교 변환부는, 상기 계수 데이터에 대한 역세컨더리 변환을 행하고, 또한 상기 도출부에 의하여 도출된 상기 제2 변환 행렬을 이용하여, 상기 역세컨더리 변환의 결과에 대하여 역프라이머리 변환을 행하는,
    화상 처리 장치.
  14. 제12항에 있어서,
    상기 복호부는, Quad-Tree Block Structure 또는 QTBT(Quad Tree Plus Binary Tree) Block Structure의 CU(Coding Unit)를 처리 단위로 하여 상기 비트 스트림의 복호를 행하는,
    화상 처리 장치.
  15. 제12항에 있어서,
    상기 역직교 변환부는, Quad-Tree Block Structure 또는 QTBT(Quad Tree Plus Binary Tree) Block Structure의 TU(Transform Unit)를 처리 단위로 하여 상기 계수 데이터의 역직교 변환을 행하는,
    화상 처리 장치.
  16. 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻고,
    제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하고,
    도출된 상기 제2 변환 행렬을 이용하여, 얻어진 상기 계수 데이터를 역직교 변환하는,
    화상 처리 방법.
  17. 화상의 예측 잔차를 치환 조작하는 조작부와,
    베이스로 되는 변환 행렬을 이용하여, 상기 조작부에 의하여 치환 조작된 상기 예측 잔차를 직교 변환하는 직교 변환부와,
    상기 직교 변환부에 의하여 상기 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는 부호화부
    를 구비하는, 화상 처리 장치.
  18. 제17항에 있어서,
    상기 조작부는 상기 예측 잔차를, 1차원 직교 변환 사이의 공간 대칭성의 방향으로 플립하고,
    상기 직교 변환부는, 상기 조작부에 의하여 플립된 상기 예측 잔차를, 상기 변환 행렬을 이용하여 직교 변환하는,
    화상 처리 장치.
  19. 제17항에 있어서,
    제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하는 도출부를 더 구비하고,
    상기 직교 변환부는, 상기 조작부에 의하여 플립된 상기 예측 잔차를, 상기 도출부에 의하여 도출된 상기 제2 변환 행렬을 이용하여 직교 변환하도록 구성되는,
    화상 처리 장치.
  20. 제19항에 있어서,
    상기 도출부는 상기 제1 변환 행렬 중, 홀수번째의 행 벡터의 부호를 반전하여 상기 제2 변환 행렬을 도출하는,
    화상 처리 장치.
  21. 제17항에 있어서,
    상기 직교 변환부는, Quad-Tree Block Structure 또는 QTBT(Quad Tree Plus Binary Tree) Block Structure의 TU(Transform Unit)를 처리 단위로 하여 상기 예측 잔차의 직교 변환을 행하는,
    화상 처리 장치.
  22. 제17항에 있어서,
    상기 부호화부는, Quad-Tree Block Structure 또는 QTBT(Quad Tree Plus Binary Tree) Block Structure의 CU(Coding Unit)를 처리 단위로 하여 상기 계수 데이터의 부호화를 행하는,
    화상 처리 장치.
  23. 화상의 예측 잔차를 치환 조작하고,
    베이스로 되는 변환 행렬을 이용하여, 치환 조작된 상기 예측 잔차를 직교 변환하고,
    상기 예측 잔차가 직교 변환되어 얻어진 계수 데이터를 부호화하여 비트 스트림을 생성하는,
    화상 처리 방법.
  24. 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻는 복호부와,
    상기 복호부에 의하여 얻어진 상기 계수 데이터를 역직교 변환하는 역직교 변환부와,
    상기 역직교 변환부에 의하여 얻어진 상기 계수 데이터의 역직교 변환 결과를 치환 조작하는 조작부
    를 구비하는, 화상 처리 장치.
  25. 제24항에 있어서,
    제1 변환 행렬을 이용하여 제2 변환 행렬을 도출하는 도출부를 더 구비하고,
    상기 역직교 변환부는, 상기 도출부에 의하여 도출된 상기 제2 변환 행렬을 이용하여, 상기 복호부에 의하여 얻어진 상기 계수 데이터를 역직교 변환하도록 구성되고,
    상기 조작부는, 상기 역직교 변환부에 의하여 얻어진 상기 계수 데이터의 역직교 변환 결과를 치환 조작하도록 구성되는,
    화상 처리 장치.
  26. 제24항에 있어서,
    상기 복호부는, Quad-Tree Block Structure 또는 QTBT(Quad Tree Plus Binary Tree) Block Structure의 CU(Coding Unit)를 처리 단위로 하여 상기 비트 스트림의 복호를 행하는,
    화상 처리 장치.
  27. 제24항에 있어서,
    상기 역직교 변환부는, Quad-Tree Block Structure 또는 QTBT(Quad Tree Plus Binary Tree) Block Structure의 TU(Transform Unit)를 처리 단위로 하여 상기 계수 데이터의 역직교 변환을 행하는,
    화상 처리 장치.
  28. 비트 스트림을 복호하여, 화상의 예측 잔차가 직교 변환된 계수 데이터를 얻고,
    얻어진 상기 계수 데이터를 역직교 변환하고,
    얻어진 상기 계수 데이터의 역직교 변환 결과를 치환 조작하는,
    화상 처리 방법.
KR1020207013490A 2017-11-24 2018-11-12 화상 처리 장치 및 방법 KR20200092315A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017226061 2017-11-24
JPJP-P-2017-226061 2017-11-24
PCT/JP2018/041821 WO2019102888A1 (ja) 2017-11-24 2018-11-12 画像処理装置および方法

Publications (1)

Publication Number Publication Date
KR20200092315A true KR20200092315A (ko) 2020-08-03

Family

ID=66631908

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207013490A KR20200092315A (ko) 2017-11-24 2018-11-12 화상 처리 장치 및 방법

Country Status (6)

Country Link
US (2) US11445218B2 (ko)
EP (1) EP3716622A4 (ko)
JP (2) JP7375543B2 (ko)
KR (1) KR20200092315A (ko)
CN (1) CN111373757B (ko)
WO (1) WO2019102888A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1036290C (zh) * 1993-09-21 1997-10-29 廖振宜 啮闭式转子
WO2020159982A1 (en) * 2019-01-28 2020-08-06 Op Solutions, Llc Shape adaptive discrete cosine transform for geometric partitioning with an adaptive number of regions
JP7469904B2 (ja) 2020-02-21 2024-04-17 シャープ株式会社 画像復号装置、画像符号化装置、画像復号方法及び画像符号化方法
CN112243125B (zh) * 2020-10-20 2022-07-12 浙江大华技术股份有限公司 视频编码方法以及电子设备、存储装置
US11856227B2 (en) * 2022-05-26 2023-12-26 Mediatek Inc. Transform architecture in video encoding systems

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050117639A1 (en) * 2003-10-24 2005-06-02 Turaga Deepak S. Optimal spatio-temporal transformations for reduction of quantization noise propagation effects
WO2011016251A1 (ja) * 2009-08-06 2011-02-10 パナソニック株式会社 符号化方法、復号方法、符号化装置及び復号装置
KR101885258B1 (ko) * 2010-05-14 2018-08-06 삼성전자주식회사 비디오 신호의 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
US9172968B2 (en) 2010-07-09 2015-10-27 Qualcomm Incorporated Video coding using directional transforms
US8855188B2 (en) * 2010-07-15 2014-10-07 Sharp Laboratories Of America, Inc. Method of parallel video coding based on mapping
US20120014441A1 (en) * 2010-07-15 2012-01-19 Sharp Laboratories Of America, Inc. Parallel video coding based on boundaries
US8885701B2 (en) * 2010-09-08 2014-11-11 Samsung Electronics Co., Ltd. Low complexity transform coding using adaptive DCT/DST for intra-prediction
US20120236936A1 (en) * 2011-03-14 2012-09-20 Segall Christopher A Video coding based on edge determination
US20130101033A1 (en) * 2011-10-14 2013-04-25 Qualcomm Incorporated Coding non-symmetric distributions of data
US10277915B2 (en) * 2011-11-07 2019-04-30 Qualcomm Incorporated Signaling quantization matrices for video coding
MY174497A (en) * 2011-12-19 2020-04-23 Sony Corp Image processing device and method
JP5878792B2 (ja) 2012-02-29 2016-03-08 Kddi株式会社 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、およびプログラム
US10194158B2 (en) 2012-09-04 2019-01-29 Qualcomm Incorporated Transform basis adjustment in scalable video coding
EP4090018A1 (en) * 2014-11-28 2022-11-16 HFI Innovation Inc. Method and apparatus of alternative transform for video coding
US10218976B2 (en) * 2016-03-02 2019-02-26 MatrixView, Inc. Quantization matrices for compression of video
US10182244B2 (en) * 2016-03-02 2019-01-15 MatrixView, Inc. Fast encoding loss metric

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Jianle Chen, Elena Alshina, Gary J. Sullivan, Jens-Rainer, Jill Boyce, "Algorithm Description of Joint Exploration Test Model 4", JVET-G1001_v1, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino, IT, 13-21 July 2017
V. Lorcy, P. Philippe, "Proposed improvements to the Adaptive multiple Core transform", JVET-C0022, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 3rd Meeting: Geneva, CH, 26 May - 1 June 2016

Also Published As

Publication number Publication date
US20210185357A1 (en) 2021-06-17
EP3716622A1 (en) 2020-09-30
CN111373757A (zh) 2020-07-03
JP7375543B2 (ja) 2023-11-08
US11445218B2 (en) 2022-09-13
JPWO2019102888A1 (ja) 2020-11-19
CN111373757B (zh) 2022-10-21
EP3716622A4 (en) 2020-09-30
JP2023129551A (ja) 2023-09-14
WO2019102888A1 (ja) 2019-05-31
US20220400285A1 (en) 2022-12-15

Similar Documents

Publication Publication Date Title
JP7283389B2 (ja) 画像処理装置および方法
US9706226B2 (en) Image encoding apparatus and image decoding apparatus employing intra preciction and direction transform matrix
JP7375543B2 (ja) 画像処理装置および方法
CN111937398B (zh) 图像处理装置和方法
JP7334730B2 (ja) 画像処理装置および方法
WO2020008909A1 (ja) 画像処理装置および方法
AU2015201843B2 (en) Image encoding method and image decoding method
WO2020066641A1 (ja) 画像処理装置および方法
WO2023195330A1 (ja) 画像処理装置および方法
WO2019230444A1 (ja) 画像処理装置および方法