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

화상 처리 장치 및 방법 Download PDF

Info

Publication number
KR102397673B1
KR102397673B1 KR1020187031806A KR20187031806A KR102397673B1 KR 102397673 B1 KR102397673 B1 KR 102397673B1 KR 1020187031806 A KR1020187031806 A KR 1020187031806A KR 20187031806 A KR20187031806 A KR 20187031806A KR 102397673 B1 KR102397673 B1 KR 102397673B1
Authority
KR
South Korea
Prior art keywords
transform
flag
encoding
inverse
primary
Prior art date
Application number
KR1020187031806A
Other languages
English (en)
Other versions
KR20190006953A (ko
Inventor
다케시 츠쿠바
Original Assignee
소니그룹주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소니그룹주식회사 filed Critical 소니그룹주식회사
Publication of KR20190006953A publication Critical patent/KR20190006953A/ko
Application granted granted Critical
Publication of KR102397673B1 publication Critical patent/KR102397673B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

본 개시는, 부호화 효율의 저감을 억제할 수 있도록 하는 화상 처리 장치 및 방법에 관한 것이다. 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환을 스킵시키는 경우, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환도 스킵시킨다. 본 개시는, 예를 들어, 화상 처리 장치, 화상 부호화 장치, 또는 화상 복호 장치 등에 적용할 수 있다.

Description

화상 처리 장치 및 방법
본 개시는, 화상 처리 장치 및 방법에 관한 것으로서, 특히, 부호화 효율의 저감을 억제할 수 있도록 한 화상 처리 장치 및 방법에 관한 것이다.
종래, 화상 부호화에 있어서, 화상과 그 예측 화상의 차분인 예측 잔차에 대하여 프라이머리 변환을 행한 후에, 또한 에너지 콤팩션을 높이기(저역으로 변환 계수를 집중시키기) 위해서, 변환 블록 내의 서브블록마다, 세컨더리 변환을 적용하는 것이 개시되어 있다(예를 들어, 비특허문헌 1 참조). 그 비특허문헌 1에는, 어느 세컨더리 변환을 적용할지를 나타내는 세컨더리 변환 식별자를 CU 단위에서 시그널하는 것도 개시되어 있다.
또한, 인코더에 있어서, RDO(Rate-Distortion Optimization)에 기초하여, 비특허문헌 1에 기재된 CU 단위에 대하여 어느 세컨더리 변환을 적용할지 결정하는 것은, 계산 복잡도가 크고, 변환 블록 단위에서의 세컨더리 변환을 적용할지 여부를 나타내는 세컨더리 변환 플래그를 시그널하는 것이 개시되어 있다(예를 들어, 비특허문헌 2 참조). 그 비특허문헌 2에는, 어느 세컨더리 변환을 적용할지를 나타내는 세컨더리 변환 식별자를, 프라이머리 변환 식별자 및 인트라 예측 모드에 기초하여 도출하는 것도 개시되어 있다.
J. Chen, E. Alshina, G. J. Sullivan, J. R. Ohm, J. Boyce, "Algorithm Description of Joint Exploration Test Model 2", JVET-B1001_v3, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 2nd Meeting: San Diego, USA, 20-26 February 2016 X.Zhao, A.Said, V.Seregin, M.Karczewicz, J.Chen, R.Joshi, "TU-level non-separable secondary transform", JVET-B0059, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 2nd Meeting: San Diego, USA, 20-26 February 2016
그러나, 비특허문헌 1 및 비특허문헌 2 중 어느 것에 기재된 방법에 있어서도, 변환 블록 단위로 변환 스킵 플래그가 1, 즉, 변환 스킵을 적용하는 것을 나타내는 경우, 프라이머리 변환에만 변환 스킵이 적용되고 있었다. 즉, 프라이머리 변환만 변환 스킵이 적용된 경우에도, 세컨더리 변환이 적용될 수 있다. 그 때문에, 예를 들어 비제로 계수가 적은 소한 잔차 신호와 같은, 변환 스킵을 적용한 편이 좋은 잔차 신호에 대하여 변환 스킵 플래그에 의해 변환 스킵을 적용하도록 하더라도, 세컨더리 변환이 적용되어버려, 에너지 콤팩션이 저하되어, 부호화 효율이 저감될 우려가 있었다.
본 개시는, 이러한 상황을 감안하여 이루어진 것이며, 부호화 효율의 저감을 억제할 수 있도록 하는 것이다.
본 기술의 제1 측면의 화상 처리 장치는, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환을 스킵시키는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환도 스킵시키는 제어부를 구비하는 화상 처리 장치이다.
본 기술의 제1 측면의 화상 처리 방법은, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환을 스킵시키는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환도 스킵시키는 화상 처리 방법이다.
본 기술의 제2 측면의 화상 처리 장치는, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환을 스킵시키는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환도 스킵시키는 제어부를 구비하는 화상 처리 장치이다.
본 기술의 제2 측면의 화상 처리 방법은, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환을 스킵시키는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환도 스킵시키는 화상 처리 방법이다.
본 기술의 제3 측면의 화상 처리 장치는, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대하여 세컨더리 변환이 행하여지는 경우, 상기 프라이머리 변환의 스킵에 관한 제1 정보의 부호화를 스킵하는 부호화부를 구비하는 화상 처리 장치이다.
본 기술의 제3 측면의 화상 처리 방법은, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대하여 세컨더리 변환이 행하여지는 경우, 상기 프라이머리 변환의 스킵에 관한 제1 정보의 부호화를 스킵하는 화상 처리 방법이다.
본 기술의 제4 측면의 화상 처리 장치는, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환이 행하여지는 경우, 상기 프라이머리 변환의 역변환인 역프라이머리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는 복호부를 구비하는 화상 처리 장치이다.
본 기술의 제4 측면의 화상 처리 방법은, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환이 행하여지는 경우, 상기 프라이머리 변환의 역변환인 역프라이머리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는 화상 처리 방법이다.
본 기술의 제5 측면의 화상 처리 장치는, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환이 스킵되는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 스킵에 관한 제1 정보의 부호화를 스킵하는 부호화부를 구비하는 화상 처리 장치이다.
본 기술의 제5 측면의 화상 처리 방법은, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환이 스킵되는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 스킵에 관한 제1 정보의 부호화를 스킵하는 화상 처리 방법이다.
본 기술의 제6 측면의 화상 처리 장치는, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환이 스킵되는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는 복호부를 구비하는 화상 처리 장치이다.
본 기술의 제6 측면의 화상 처리 방법은, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환이 스킵되는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는 화상 처리 방법이다.
본 기술의 제7 측면의 화상 처리 장치는, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환, 및 상기 프라이머리 변환 계수가 상기 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수에 대한 양자화가 스킵되는 경우, 상기 프라이머리 변환의 내용을 나타내는 제1 정보의 부호화를 스킵하는 부호화부를 구비하는 화상 처리 장치이다.
본 기술의 제7 측면의 화상 처리 방법은, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환, 및 상기 프라이머리 변환 계수가 상기 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수에 대한 양자화가 스킵되는 경우, 상기 프라이머리 변환의 내용을 나타내는 제1 정보의 부호화를 스킵하는 화상 처리 방법이다.
본 기술의 제8 측면의 화상 처리 장치는, 부호화 데이터가 복호되어서 얻어지는 양자화 변환 계수 레벨에 대한 역양자화, 상기 양자화 변환 계수 레벨이 상기 역양자화되어서 얻어지는 세컨더리 변환 계수를 프라이머리 변환 계수로 변환하는 역세컨더리 변환, 및 상기 프라이머리 변환 계수를 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차로 변환하는 역프라이머리 변환이 스킵되는 경우, 상기 역프라이머리 변환의 내용에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는 복호부를 구비하는 화상 처리 장치이다.
본 기술의 제8 측면의 화상 처리 방법은, 부호화 데이터가 복호되어서 얻어지는 양자화 변환 계수 레벨에 대한 역양자화, 상기 양자화 변환 계수 레벨이 상기 역양자화되어서 얻어지는 세컨더리 변환 계수를 프라이머리 변환 계수로 변환하는 역세컨더리 변환, 및 상기 프라이머리 변환 계수를 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차로 변환하는 역프라이머리 변환이 스킵되는 경우, 상기 역프라이머리 변환의 내용에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는 화상 처리 방법이다.
본 기술의 제1 측면의 화상 처리 장치 및 방법에 있어서는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환이 스킵되는 경우, 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환도 스킵된다.
본 기술의 제2 측면의 화상 처리 장치 및 방법에 있어서는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환이 스킵되는 경우, 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환도 스킵된다.
본 기술의 제3 측면의 화상 처리 장치 및 방법에 있어서는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대하여 세컨더리 변환이 행하여지는 경우, 프라이머리 변환의 스킵에 관한 제1 정보의 부호화가 스킵된다.
본 기술의 제4 측면의 화상 처리 장치 및 방법에 있어서는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환이 행하여지는 경우, 프라이머리 변환의 역변환인 역프라이머리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호가 스킵된다.
본 기술의 제5 측면의 화상 처리 장치 및 방법에 있어서는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환이 스킵되는 경우, 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 스킵에 관한 제1 정보의 부호화가 스킵된다.
본 기술의 제6 측면의 화상 처리 장치 및 방법에 있어서는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환이 스킵되는 경우, 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호가 스킵된다.
본 기술의 제7 측면의 화상 처리 장치 및 방법에 있어서는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환, 및 그 프라이머리 변환 계수가 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수에 대한 양자화가 스킵되는 경우, 프라이머리 변환의 내용을 나타내는 제1 정보의 부호화가 스킵된다.
본 기술의 제8 측면의 화상 처리 장치 및 방법에 있어서는, 부호화 데이터가 복호되어서 얻어지는 양자화 변환 계수 레벨에 대한 역양자화, 그 양자화 변환 계수 레벨이 역양자화되어서 얻어지는 세컨더리 변환 계수를 프라이머리 변환 계수로 변환하는 역세컨더리 변환, 및 그 프라이머리 변환 계수를 화상과 그 화상의 예측 화상과의 차분인 예측 잔차로 변환하는 역프라이머리 변환이 스킵되는 경우, 역프라이머리 변환의 내용에 관한 제1 정보의 부호화 데이터의 복호가 스킵된다.
본 개시에 의하면, 화상을 처리할 수 있다. 특히, 부호화 효율의 저감을 억제할 수 있다.
도 1은 CU에 관한 재귀적인 블록 분할의 개요를 설명하기 위한 설명도이다.
도 2는 도 1에 도시한 CU에의 PU의 설정에 대하여 설명하기 위한 설명도이다.
도 3은 도 1에 도시한 CU에의 TU의 설정에 대하여 설명하기 위한 설명도이다.
도 4는 CU/PU의 주사순에 대하여 설명하기 위한 설명도이다.
도 5는 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도 6은 변환부의 주된 구성예를 도시하는 블록도이다.
도 7은 스캔 식별자에 대응하는 각 스캔 방법의 예를 도시하는 도면이다.
도 8은 세컨더리 변환의 행렬의 예를 도시하는 도면이다.
도 9는 화상 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 10은 변환 처리의 흐름의 예를 설명하는 흐름도이다.
도 11은 화상 복호 장치의 주된 구성예를 도시하는 블록도이다.
도 12는 역변환부의 주된 구성예를 도시하는 블록도이다.
도 13은 화상 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 14는 역변환 처리의 흐름의 예를 설명하는 흐름도이다.
도 15는 신택스의 예를 도시하는 도면이다.
도 16은 부호화부의 주된 구성예를 도시하는 블록도이다.
도 17은 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 18은 복호부의 주된 구성예를 도시하는 블록도이다.
도 19는 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 20은 신택스의 예를 도시하는 도면이다.
도 21은 부호화부의 주된 구성예를 도시하는 블록도이다.
도 22는 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 23은 부호화 처리의 흐름의 예를 설명하는, 도 22에 이어지는 흐름도이다.
도 24는 복호부의 주된 구성예를 도시하는 블록도이다.
도 25는 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 26은 복호 처리의 흐름의 예를 설명하는, 도 25에 이어지는 흐름도이다.
도 27은 신택스의 예를 도시하는 도면이다.
도 28은 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 29는 부호화 처리의 흐름의 예를 설명하는, 도 28에 이어지는 흐름도이다.
도 30은 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 31은 복호 처리의 흐름의 예를 설명하는, 도 30에 이어지는 흐름도이다.
도 32는 프라이머리 변환 식별자의 부호화 모습의 예를 설명하는 도면이다.
도 33은 프라이머리 변환 식별자의 복호 모습의 예를 설명하는 도면이다.
도 34는 신택스의 예를 도시하는 도면이다.
도 35는 부호화부의 주된 구성예를 도시하는 블록도이다.
도 36은 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 37은 프라이머리 변환 식별자 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 38은 컨텍스트 인덱스에 대응하는 산술 부호화·산술 복호의 예를 도시하는 도면이다.
도 39는 프라이머리 변환 식별자의 부호화 모습을 나타내는 의사 코드의 예를 도시하는 도면이다.
도 40은 복호부의 주된 구성예를 도시하는 블록도이다.
도 41은 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 42는 프라이머리 변환 식별자 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 43은 프라이머리 변환 식별자의 복호 모습을 나타내는 의사 코드의 예를 도시하는 도면이다.
도 44는 CU, PU, 및 TU의 형상을 설명하는 도면이다.
도 45는 신택스 테이블의 예를 도시하는 도면이다.
도 46은 부호화부의 주된 구성예를 도시하는 블록도이다.
도 47은 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 48은 부호화 처리의 흐름의 예를 설명하는, 도 47에 이어지는 흐름도이다.
도 49는 복호부의 주된 구성예를 도시하는 블록도이다.
도 50은 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 51은 복호 처리의 흐름의 예를 설명하는, 도 50에 이어지는 흐름도이다.
도 52는 JEM-4.0에 있어서의 용장한 신택스에 대하여 설명하기 위한 도면이다.
도 53은 용장한 신택스를 억제하는 방법의 예에 대하여 설명하기 위한 도면이다.
도 54는 변환 유닛의 신택스의 예에 대하여 설명하기 위한 도면이다.
도 55는 잔차 부호화의 신택스의 예에 대하여 설명하기 위한 도면이다.
도 56은 부호화부의 주된 구성예를 도시하는 블록도이다.
도 57은 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 58은 변환 유닛의 신택스의 예에 대하여 설명하기 위한 도면이다.
도 59는 잔차 부호화의 신택스의 예에 대하여 설명하기 위한 도면이다.
도 60은 잔차 부호화의 신택스의 예에 대하여 설명하기 위한 도면이다.
도 61은 복호부의 주된 구성예를 도시하는 블록도이다.
도 62는 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 63은 JVET-E0037에 있어서의 용장한 신택스에 대하여 설명하기 위한 도면이다.
도 64는 용장한 신택스를 억제하는 방법의 예에 대하여 설명하기 위한 도면이다.
도 65는 변환 유닛의 신택스의 예에 대하여 설명하기 위한 도면이다.
도 66은 잔차 부호화의 신택스의 예에 대하여 설명하기 위한 도면이다.
도 67은 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 68은 잔차 부호화의 신택스의 예에 대하여 설명하기 위한 도면이다.
도 69는 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 70은 컴퓨터의 주된 구성예를 도시하는 블록도이다.
도 71은 텔레비전 장치의 개략적인 구성의 일례를 도시하는 블록도이다.
도 72는 휴대 전화기의 개략적인 구성의 일례를 도시하는 블록도이다.
도 73은 기록 재생 장치의 개략적인 구성의 일례를 도시하는 블록도이다.
도 74는 촬상 장치의 개략적인 구성의 일례를 도시하는 블록도이다.
도 75는 비디오 세트의 개략적인 구성의 일례를 도시하는 블록도이다.
도 76은 비디오 프로세서의 개략적인 구성의 일례를 도시하는 블록도이다.
도 77은 비디오 프로세서의 개략적인 구성의 다른 예를 도시하는 블록도이다.
도 78은 네트워크 시스템의 개략적인 구성의 일례를 도시하는 블록도이다.
이하, 본 개시를 실시하기 위한 형태(이하 실시 형태로 한다)에 대하여 설명한다. 또한, 설명은 이하의 순서로 행한다.
1. 제1 실시 형태((역)변환 스킵에 따른 (역)세컨더리 변환의 스킵)
2. 제2 실시 형태((역)세컨더리 변환에 따른 변환 스킵 플래그의 부호화·복호의 스킵)
3. 제3 실시 형태((역)변환 스킵에 따른 세컨더리 변환 플래그의 부호화·복호의 스킵)
4. 제4 실시 형태(비제로 계수의 서브블록 평균에 따른 세컨더리 변환 플래그의 부호화·복호의 스킵)
5. 제5 실시 형태(변환 양자화의 바이패스에 따른 프라이머리 변환 식별자의 부호화·복호의 스킵)
6. 제6 실시 형태(블록이 정사각형 또는 직사각형을 포함하는 직사각형일 경우의 변환 스킵 플래그의 부호화·복호의 스킵)
7. 제7 실시 형태(적응 프라이머리 변환 플래그와 변환 스킵 플래그의 제어)
8. 제8 실시 형태(적응 프라이머리 변환 플래그와 변환 스킵 플래그의 제어)
9. 제9 실시 형태(기타)
<1. 제1 실시 형태>
<변환 처리의 스킵>
예를 들어 비특허문헌 1에는, 화상 부호화에 있어서, 화상과 그 예측 화상의 차분인 예측 잔차에 대하여 프라이머리 변환을 행한 후에, 또한, 에너지 콤팩션을 높이기(저역으로 변환 계수를 집중시키기) 위해서, 변환 블록 내의 서브블록마다, 세컨더리 변환을 적용하는 것이 개시되어 있다. 또한, 그 비특허문헌 1에는, 어느 세컨더리 변환을 적용할지를 나타내는 세컨더리 변환 식별자를 CU 단위에 대하여 시그널하는 것도 개시되어 있다.
또한, 예를 들어 비특허문헌 2에는, 인코더에 있어서, RDO(Rate-Distortion Optimization)에 기초하여, 비특허문헌 1에 기재된 CU 단위로 어느 세컨더리 변환을 적용할지 결정하는 것은, 계산 복잡도가 크고, 변환 블록 단위에서의 세컨더리 변환을 적용할지 여부를 나타내는 세컨더리 변환 플래그를 시그널하는 것이 개시되어 있다. 또한, 그 비특허문헌 2에는, 어느 세컨더리 변환을 적용할지를 나타내는 세컨더리 변환 식별자를, 프라이머리 변환 식별자 및 인트라 예측 모드에 기초하여 도출하는 것도 개시되어 있다.
그러나, 비특허문헌 1 및 비특허문헌 2 중 어느 것에 기재된 방법에 있어서도, 변환 블록 단위로 변환 스킵 플래그가 1, 즉, 변환 스킵을 적용하는 것을 나타내는 경우, 프라이머리 변환에만 변환 스킵이 적용되어 있었다. 즉, 프라이머리 변환만 변환 스킵이 적용된 경우에도, 세컨더리 변환이 적용될 수 있다. 그 때문에, 변환 스킵의 컨셉을 감안한 경우에, 세컨더리 변환을 스킵(생략)할 수 없어, 연산량이 증대할 우려가 있었다. 또한, 예를 들어 비제로 계수(비제로 변환 계수라고도 칭한다)가 적은 소한 잔차 신호와 같은, 변환 스킵을 적용한 편이 좋은 잔차 신호에 대하여 변환 스킵 플래그에 의해 변환 스킵을 적용하도록 해도, 세컨더리 변환이 적용되어버려, 에너지 콤팩션이 저하되어, 부호화 효율이 저감될 우려가 있었다.
프라이머리 변환에서는, 프라이머리 변환 식별자 pt_idx로 지정되는 수평 방향의 프라이머리 변환 Phor 및 수직 방향의 프라이머리 변환 Pver가 선택되어, 예측 잔차 D에 대하여 예를 들어 이하의 식 (1)과 같이 행렬 연산이 행하여져, 프라이머리 변환 후의 변환 계수 Coeff_P(프라이머리 변환 계수라고도 칭한다)가 얻어진다.
Coeff_P=Phor·D·PverT
···(1)
또한, 식 (1)에 있어서, 연산자 "·"는, 행렬끼리의 내적(행렬적)을 행하는 조작을 나타내고, 연산자 "T"는, 전치 행렬의 조작을 나타낸다. 이상과 같이 구해진 프라이머리 변환 계수(Coeff_P)는 이어서, 세컨더리 변환이 행하여진다. 또한, 상술한 바와 같은 프라이머리 변환이 스킵(생략)되는 경우, 예측 잔차 D가 세컨더리 변환된다.
예를 들어, 예측 잔차 D가, 이하의 식 (2)에 나타낸 바와 같이 4×4의 행렬=[[255,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0]]이며, 스캔 식별자 scanIdx가 수평 스캔 hor을 나타내는 것으로 한다.
Figure 112018108314493-pct00001
···(2)
예측 잔차 D는, 수평 스캔의 계수의 스캔순을 따라서 스캔되어, 이하의 식 (3)에 나타낸 바와 같은 1×16차원의 벡터 X1d로 변환된다.
Figure 112018108314493-pct00002
···(3)
이 1×16차원의 벡터 X1d와 세컨더리 변환의 행렬 R을 사용하여, 이하의 식 (4)와 같은 행렬 연산이 행하여져, 이하의 식 (4)에 나타낸 바와 같은 신호 Y1d가 구해진다.
Y1d T=R·X1d T
···(4)
여기서, 연산자 "T"는, 전치 행렬의 조작을 나타낸다. 이 행렬 연산에 의해, 예를 들어, 이하의 식 (5)에 나타낸 바와 같은 신호 Y1d가 얻어진다.
Figure 112018108314493-pct00003
···(5)
이 연산 결과 Y1d의 놈을 정규화하기 위해서, 이하의 식 (6)과 같은 N 비트의 비트 시프트 연산이 행하여져, 비트 시프트 후의 신호 Z1d가 구해진다.
Z1d=(Y1d)>>N
···(6)
이 비트 시프트 연산에 의해, 예를 들어, 이하의 식 (7)에 나타낸 바와 같은 신호 Z1d가 얻어진다.
Figure 112018108314493-pct00004
···(7)
놈 정규화 후의 신호 Z1d는, 스캔 식별자 scanIdx에 의해 지정되는 스캔 방법에 기초하여, 1×16차원의 벡터 Z1d가 이하의 식 (8)에 나타낸 바와 같은 4×4 행렬 Coeff로 변환된다.
Figure 112018108314493-pct00005
···(8)
식 (2)와 같은 비제로 계수의 수가 적은(소한 잔차 신호) 잔차 신호(예측 잔차)의 경우, 프라이머리 변환을 스킵하고, 그 후에, 세컨더리 변환을 적용한 경우, 식 (8)과 같이 비제로 계수가 주파수 도메인 전체로 퍼질 우려가 있었다. 즉, 세컨더리 변환을 적용함으로써, 에너지 콤팩션이 저하되어, 부호화 효율이 저감될 우려가 있었다.
<세컨더리 변환·역세컨더리 변환의 스킵>
그래서, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환을 스킵시키는 경우, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환도 스킵시키도록 한다.
이와 같이 함으로써, 프라이머리 변환뿐만 아니라 세컨더리 변환도 스킵할 수 있게 되므로, 연산량의 증대를 억제할 수 있다. 또한, 상술한 예와 같이, 비제로 계수가 적고, 변환 스킵을 적용한 편이 좋은 잔차 신호에 대하여 세컨더리 변환을 적용하는 것을 억제할 수 있어, 에너지 콤팩션의 저감을 억제할 수 있다. 즉, 부호화 효율의 저감을 억제할 수 있다.
또한, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환을 스킵시키는 경우, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환도 스킵시키도록 한다.
이와 같이 함으로써, 역프라이머리 변환뿐만 아니라 역세컨더리 변환도 스킵할 수 있게 되므로, 연산량의 증대를 억제할 수 있다. 또한, 상술한 예와 같이, 비제로 계수가 적고, 변환 스킵을 적용한 편이 좋은 잔차 신호에 대하여 역세컨더리 변환을 적용하는 것을 억제할 수 있어, 에너지 콤팩션의 저감을 억제할 수 있다. 즉, 부호화 효율의 저감을 억제할 수 있다.
<블록 분할>
그런데, MPEG2(Moving Picture Experts Group 2(ISO/IEC 13818-2))나 MPEG-4 Part10(Advanced Video Coding, 이하 AVC라고 기재하는) 등의 종래의 화상 부호화 방식에서는, 부호화 처리는, 매크로 블록이라고 불리는 처리 단위로 실행된다. 매크로 블록은, 16x16 화소의 균일한 사이즈를 갖는 블록이다. 이에 반해, HEVC(High Efficiency Video Coding)에서는, 부호화 처리는, CU(Coding Unit)라고 불리는 처리 단위(부호화 단위)로 실행된다. CU는, 최대 부호화 단위인 LCU(Largest Coding Unit)를 재귀적으로 분할함으로써 형성되는, 가변적인 사이즈를 갖는 블록이다. 선택 가능한 CU의 최대 사이즈는, 64x64 화소이다. 선택 가능한 CU의 최소 사이즈는, 8x8 화소이다. 최소 사이즈의 CU는, SCU(Smallest Coding Unit)라고 불린다. 또한, CU의 최대 사이즈는, 64x64 화소에 한정되지 않고, 더 큰 128x128 화소, 256x256 화소 등의 블록 사이즈로 해도 된다.
이와 같이, 가변적인 사이즈를 갖는 CU가 채용되는 결과, HEVC에서는, 화상의 내용에 따라 화질 및 부호화 효율을 적응적으로 조정하는 것이 가능하다. 예측 부호화를 위한 예측 처리는, PU(Prediction Unit)라고 불리는 처리 단위(예측 단위)로 실행된다. PU는, CU를 몇 가지의 분할 패턴 중 1개로 분할함으로써 형성된다. 또한, PU는, 휘도(Y) 및 색차(Cb,Cr)마다의 PB(Prediction Block)라고 불리는 처리 단위(예측 블록)로 구성된다. 또한, 직교 변환 처리는, TU(Transform Unit)라고 불리는 처리 단위(변환 단위)로 실행된다. TU는, CU 또는 PU를 어느 깊이까지 분할함으로써 형성된다. 또한, TU는, 휘도(Y) 및 색차(Cb, Cr)마다의 TB(Transform Block)라고 불리는 처리 단위(변환 블록)로 구성된다.
<재귀적인 블록의 분할>
도 1은, HEVC에 있어서의 CU에 관한 재귀적인 블록 분할의 개요를 설명하기 위한 설명도이다. CU의 블록 분할은, 하나의 블록의 4(=2x2)개의 서브블록에의 분할을 재귀적으로 반복함으로써 행해지고, 그 결과 4분목(Quad-Tree)상의 트리 구조가 형성된다. 하나의 4분목 전체를 CTB(Coding Tree Block)라고 하고, CTB에 대응하는 논리적인 단위를 CTU(Coding Tree Unit)라고 한다.
도 1의 상부에는, 일례로서, 64x64 화소의 사이즈를 갖는 CU인 C01이 도시되어 있다. C01의 분할 깊이는 제로와 같다. 이것은, C01이 CTU의 루트이며 LCU에 상당하는 것을 의미한다. LCU 사이즈는, SPS(Sequence Parameter Set) 또는 PPS(Picture Parameter Set)에 있어서 부호화되는 파라미터에 의해 지정될 수 있다. CU인 C02는, C01로부터 분할되는 4개의 CU 중 1개이며, 32x32 화소의 사이즈를 갖는다. C02의 분할 깊이는 1과 같다. CU인 C03은, C02로부터 분할되는 4개의 CU 중 1개이며, 16x16 화소의 사이즈를 갖는다. C03의 분할 깊이는 2와 같다. CU인 C04는, C03으로부터 분할되는 4개의 CU 중 1개이며, 8x8 화소의 사이즈를 갖는다. C04의 분할 깊이는 3과 같다. 이와 같이, CU는, 부호화되는 화상을 재귀적으로 분할함으로써 형성된다. 분할의 깊이는 가변적이다. 예를 들어, 푸른 하늘과 같은 평탄한 화상 영역에는, 보다 큰 사이즈의(즉, 깊이가 얕은) CU가 설정될 수 있다. 한편, 많은 에지를 포함하는 급준한 화상 영역에는, 더 작은 사이즈의(즉, 깊이가 깊은) CU가 설정될 수 있다. 그리고, 설정된 CU의 각각이, 부호화 처리의 처리 단위가 된다.
<CU에의 PU의 설정>
PU는, 인트라 예측 및 인터 예측을 포함하는 예측 처리의 처리 단위이다. PU는, CU를 몇 가지의 분할 패턴 중 하나로 분할함으로써 형성된다. 도 2는, 도 1에 도시한 CU에의 PU의 설정에 대하여 설명하기 위한 설명도이다. 도 2의 우측에는, 2Nx2N, 2NxN, Nx2N, NxN, 2NxnU, 2NxnD, nLx2N 및 nRx2N이라고 하는, 8종류의 분할 패턴이 도시되어 있다. 이들 분할 패턴 중, 인트라 예측에서는, 2Nx2N 및 NxN의 2종류가 선택 가능하다(NxN은 SCU에서만 선택 가능). 이에 반해 인터 예측에서는, 비대칭 움직임 분할이 유효화되어 있는 경우에, 8종류의 분할 패턴의 모두가 선택 가능하다.
<CU에의 TU의 설정>
TU는, 직교 변환 처리의 처리 단위이다. TU는, CU(인트라 CU에 대해서는, CU 내의 각 PU)를 어느 깊이까지 분할함으로써 형성된다. 도 3은, 도 2에 도시한 CU에의 TU의 설정에 대하여 설명하기 위한 설명도이다. 도 3의 우측에는, C02에 설정될 수 있는 1개 이상의 TU가 도시되어 있다. 예를 들어, TU인 T01은, 32x32 화소의 사이즈를 갖고, 그 TU 분할의 깊이는 제로와 같다. TU인 T02는, 16x16 화소의 사이즈를 갖고, 그 TU 분할의 깊이는 1과 같다. TU인 T03은, 8x8 화소의 사이즈를 갖고, 그 TU 분할의 깊이는 2와 같다.
상술한 CU, PU 및 TU와 같은 블록을 화상에 설정하기 위하여 어떤 블록 분할을 행할지는, 전형적으로는, 부호화 효율을 좌우하는 비용의 비교에 기초하여 결정된다. 인코더는, 예를 들어 1개의 2Mx2M 화소의 CU와, 4개의 MxM 화소의 CU 사이에서 비용을 비교하고, 4개의 MxM 화소의 CU를 설정한 쪽이 부호화 효율이 높으면, 2Mx2M 화소의 CU를 4개의 MxM 화소의 CU로 분할하는 것을 결정한다.
<CU와 PU의 주사순>
화상을 부호화할 때, 화상(또는 슬라이스, 타일) 내에 격자상으로 설정되는 CTB(또는 LCU)가 래스터 스캔순으로 주사된다. 1개의 CTB 중에서는, CU는, 4분목를 좌측으로부터 우측, 위로부터 아래로 더듬어 가도록 주사된다. 커런트 블록을 처리할 때, 위 및 좌측의 인접 블록의 정보가 입력 정보로서 이용된다. 도 4는, CU와 PU의 주사순에 대하여 설명하기 위한 설명도이다. 도 4의 좌상에는, 1개의 CTB에 포함될 수 있는 4개의 CU인, C10, C11, C12 및 C13이 도시되어 있다. 각 CU의 프레임 내의 숫자는, 처리의 순서를 표현하고 있다. 부호화 처리는, 좌측 상단의 CU인 C10, 우측 상단의 CU인 C11, 좌측 하방의 CU인 C12, 우측 하단의 CU인 C13의 순서로 실행된다. 도 4의 우측에는, CU인 C11에 설정될 수 있는 인터 예측을 위한 1개 이상 PU가 도시되어 있다. 도 4 아래에는, CU인 C12에 설정될 수 있는 인트라 예측을 위한 1개 이상의 PU가 도시되어 있다. 이들 PU의 프레임 내의 숫자에 나타낸 바와 같이, PU도 또한, 좌측으로부터 우측, 위로부터 아래로 더듬어 가도록 주사된다.
이하에 있어서는, 화상(픽처)의 부분 영역이나 처리 단위로서 「블록」을 사용하여 설명하는 경우가 있다(처리부의 블록이 아니다). 이 경우의 「블록」은, 픽처 내의 임의의 부분 영역을 나타내고, 그 크기, 형상, 및 특성 등은 한정되지 않는다. 즉, 이 경우의 「블록」에는, 예를 들어, TB, TU, PB, PU, SCU, CU, LCU(CTB), 서브블록, 매크로 블록, 타일, 또는 슬라이스 등, 임의의 부분 영역(처리 단위)이 포함되는 것으로 한다.
<화상 부호화 장치>
도 5는, 본 기술을 적용한 화상 처리 장치의 일 형태인 화상 부호화 장치의 구성의 일례를 도시하는 블록도이다. 도 5에 도시되는 화상 부호화 장치(100)는, AVC나 HEVC과 같이, 화상과 그 예측 화상과의 예측 잔차를 부호화하는 장치이다. 예를 들어, 화상 부호화 장치(100)는, HEVC에 제안된 기술이나, JVET(Joint Video Exploration Team)에서 제안된 기술을 실장하고 있다.
또한, 도 5에 있어서는, 처리부나 데이터의 흐름 등의 주된 것을 나타내고 있고, 도 5에 도시되는 것이 모두라고는 할 수 없다. 즉, 화상 부호화 장치(100)에 있어서, 도 5에 있어서 블록으로서 도시되어 있지 않은 처리부가 존재하거나, 도 5에 있어서 화살표 등으로서 도시되어 있지 않은 처리나 데이터의 흐름이 존재하거나 해도 된다.
도 5에 도시되는 바와 같이 화상 부호화 장치(100)는, 제어부(101), 연산부(111), 변환부(112), 양자화부(113), 부호화부(114), 역양자화부(115), 역변환부(116), 연산부(117), 프레임 메모리(118), 및 예측부(119)를 갖는다.
제어부(101)는, 외부, 또는 미리 지정된 처리 단위의 블록 사이즈에 기초하여, 화상 부호화 장치(100)에 입력되는 동화상을 처리 단위의 블록(CU, PU, 변환 블록(TB) 등)으로 분할하고, 분할된 블록에 대응하는 화상 I를 연산부(111)에 공급시킨다. 또한, 제어부(101)는, 각 블록에 공급하는 부호화 파라미터(헤더 정보 Hinfo, 예측 모드 정보 Pinfo, 변환 정보 Tinfo 등)를 예를 들어, RDO(Rate-Distortion Optimization)에 기초하여 결정한다. 결정된 부호화 파라미터는, 각 블록에 공급된다.
헤더 정보 Hinfo는, 예를 들어, 비디오 파라미터 세트(VPS(Video Parameter Set)), 시퀀스 파라미터 세트(SPS(Sequence Parameter Set)), 픽처 파라미터 세트(PPS(Picture Parameter Set)), 슬라이스 헤더(SH) 등의 정보를 포함한다. 예를 들어, 헤더 정보 Hinfo에는, 화상 사이즈(가로폭 PicWidth, 세로폭 PicHeight), 비트 심도(휘도 bitDepthY, 색차 bitDepthC), CU 사이즈의 최댓값 MaxCUSize/최솟값 MinCUSize, 변환 블록 사이즈의 최댓값 MaxTBSize/최솟값 MinTBSize, 변환 스킵 블록의 최댓값 MaxTSSize(최대 변환 스킵 블록 사이즈라고도 칭한다), 각 부호화 툴의 온/오프 플래그(유효 플래그라고도 칭한다) 등을 규정하는 정보가 포함된다.
예를 들어, 헤더 정보 Hinfo에 포함되는 부호화 툴의 온/오프 플래그로서는, 이하에 나타내는 변환, 양자화 처리에 관계되는 온/오프 플래그가 있다. 또한, 부호화 툴의 온/오프 플래그는, 그 부호화 툴에 관계되는 신택스가 부호화 데이터 중에 존재하는지 여부를 나타내는 플래그라고도 해석할 수 있다. 또한, 온/오프 플래그의 값이 1(참)인 경우, 그 부호화 툴이 사용 가능한 것을 나타내고, 온/오프 플래그의 값이 0(거짓)인 경우, 그 부호화 툴이 사용 불가인 것을 나타낸다. 또한, 플래그 값의 해석은 역이어도 된다.
세컨더리 변환 유효 플래그(st_enabled_flag)는 변환 처리 및 그의 역처리의 하나로서, 세컨더리 변환을 하는 부호화 툴 또는 그의 역변환(역세컨더리 변환)을 하는 부호화 툴이 사용 가능한지 여부를 나타내는 플래그이다. 환언하자면, 이 세컨더리 변환 유효 플래그는, 대상으로 하는 데이터 단위에 있어서, 세컨더리 변환 또는 역세컨더리 변환((역)세컨더리 변환이라고도 칭한다)이 허가되어 있는지 여부를 나타내는 정보이다. 또한 환언하자면, 이 세컨더리 변환 유효 플래그는, 대상으로 하는 데이터 단위에 있어서의 (역)세컨더리 변환의 허가에 관한 정보이다.
예를 들어, 이 세컨더리 변환 유효 플래그 st_enabled_flag가 1(참)인 경우, (역)세컨더리 변환이 허가되어 있다((역)세컨더리 변환을 실행할 수 있다). 또한, 세컨더리 변환 유효 플래그 st_enabled_flag가 0(거짓)인 경우, (역)세컨더리 변환이 허가되어 있지 않다((역)세컨더리 변환을 실행할 수 없다).
변환 양자화 바이패스 유효 플래그(transquant_bypass_enabled_flag)는 변환 및 양자화, 또는, 그의 역처리(역변환 및 역양자화)의 하나로서, 변환 및 양자화, 또는, 역양자화 및 역변환을 스킵하는 부호화 툴이 사용 가능한지 여부를 나타내는 플래그이다. 환언하자면, 이 변환 양자화 바이패스 유효 플래그는, 대상으로 하는 데이터 단위에 있어서, 변환 및 양자화, 또는, 역양자화 및 역변환((역)변환 및 (역)양자화라고도 칭한다)의 스킵(바이패스)을 허가할지 여부를 나타내는 정보이다. 또한 환언하자면, 이 변환 양자화 바이패스 유효 플래그는, 대상으로 하는 데이터 단위에 있어서의 (역)변환 및 (역)양자화의 스킵(바이패스)의 허가에 관한 정보이다.
예를 들어, 이 변환 양자화 바이패스 유효 플래그 transquant_bypass_enabled_flag가 1(참)인 경우, (역)변환 및 (역)양자화의 바이패스가 허가되어 있다. 즉, (역)변환 및 (역)양자화를 바이패스할 수 있다. 또한, 변환 양자화 바이패스 유효 플래그 transquant_bypass_enabled_flag가 0(거짓)인 경우, (역)변환 및 (역)양자화의 바이패스가 허가되어 있지 않다. 즉, (역)변환 및 (역)양자화를 바이패스할 수 없다.
변환 스킵 유효 플래그(ts_enabled_flag)는 변환 처리 및 그의 역처리의 하나로서, 프라이머리 변환 및 세컨더리 변환을 포함하는 (역)변환을 스킵하는 부호화 툴이 사용 가능인지 나타내는 플래그이다. 환언하자면, 이 변환 스킵 유효 플래그는, 대상으로 하는 데이터 단위에 있어서, (역)변환의 스킵이 허가되어 있는지 여부를 나타내는 정보이다. 또한 환언하자면, 이 변환 스킵 유효 플래그는, 대상으로 하는 데이터 단위에 있어서의 (역)변환의 스킵 허가에 관한 정보이다.
예를 들어, 이 변환 스킵 유효 플래그 ts_enabled_flag가 1(참)인 경우, (역)변환의 스킵이 허가되어 있다. 즉, (역)변환을 스킵할 수 있다. 또한, 변환 스킵 유효 플래그 ts_enabled_flag가 0(거짓)인 경우, (역)변환의 스킵이 허가되어 있지 않다. 즉, (역)변환을 스킵할 수 없다.
또한, 비특허문헌 1이나 비특허문헌 2에 기재된 방법의 경우, 이 변환 스킵 유효 플래그는, 상술한 바와 같이, 프라이머리 변환 또는 역프라이머리 변환((역)프라이머리 변환이라고도 칭한다)에 밖에 작용하지 않았다. 그 때문에, 본 명세서에 있어서는, 이 변환 스킵 유효 플래그가, 『(역)프라이머리 변환』에 관한 정보라고 간주하여 설명하는 경우도 있다. 즉, 예를 들어, 이 변환 스킵 유효 플래그가, 「대상으로 하는 데이터 단위에 있어서의 『(역)프라이머리 변환』의 스킵의 허가에 관한 정보(대상으로 하는 데이터 단위에 있어서, 『(역)프라이머리 변환』의 스킵이 허가되어 있는지 여부를 나타내는 정보)」인 것으로 하여 설명하는 경우도 있다.
물론, 헤더 정보 Hinfo의 내용은 임의이며, 상술한 예 이외의 어떤 정보가 이 헤더 정보 Hinfo에 포함되게 해도 된다.
예측 모드 정보 Pinfo에는, 예를 들어, 이하와 같은 정보가 포함된다.
PU 사이즈 PUSize는, 처리 대상 PU의 PU 사이즈(예측 블록 사이즈)를 나타내는 정보이다. 인트라 예측 모드 정보 IPinfo(예를 들어, JCTVC-W1005, 7.3.8.5 Coding Unit syntax 중의 prev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode 등)는 처리 대상의 블록 인트라 예측 모드에 관한 정보이다. 움직임 예측 정보 MVinfo(예를 들어, JCTVC-W1005, 7.3.8.6 Prediction Unit Syntax 중의 merge_idx, merge_flag, inter_pred_idc, ref_idx_LX, mvp_lX_flag, X={0,1}, mvd 등)는 처리 대상의 블록 움직임 예측에 관한 정보이다.
물론, 예측 모드 정보 Pinfo의 내용은 임의이며, 상술한 예 이외의 어떤 정보가 이 예측 모드 정보 Pinfo에 포함되게 해도 된다.
변환 정보 Tinfo에는, 예를 들어, 이하와 같은 정보가 포함된다.
블록 사이즈 TBSize(또는, 2를 밑으로 하는 TBSize의 대수값 log2TBSize, 변환 블록 사이즈라고도 칭한다)는 처리 대상 변환 블록의 블록 사이즈를 나타내는 정보이다.
변환 양자화 바이패스 플래그(transquant_bypass_flag)는 대상으로 하는 데이터 단위에 있어서, (역)변환 및 (역)양자화를 스킵(바이패스)할지 여부를 나타내는 정보이다(예를 들어, JCTVC-W1005, 7.3.8.5 Coding unit syntax 중의 cu_transquant_bypass_flag 등). 환언하자면, 이 변환 양자화 바이패스 플래그는, 대상으로 하는 데이터 단위에 있어서의 (역)변환 및 (역)양자화의 스킵(바이패스)에 관한 정보이다.
예를 들어, 이 변환 양자화 바이패스 플래그 transquant_bypass _flag가 1(참)인 경우, (역)변환 및 (역)양자화가 바이패스된다. 또한, 변환 양자화 바이패스 유효 플래그 transquant_bypass _flag가 0(거짓)인 경우, (역)변환 및 (역)양자화가 바이패스되지 않는다.
변환 스킵 플래그(ts_flag)는 (역)변환을 스킵할지 여부를 나타내는 정보이다(예를 들어, JCTVC-W1005, 7.3.8.11 Residual coding syntax syntax 중의transfrom_skip_flag 등). 환언하자면, 이 변환 스킵 플래그는, 대상으로 하는 데이터 단위에 있어서의 (역)변환의 스킵에 관한 정보이다.
예를 들어, 이 변환 스킵 플래그 ts_flag가 1(참)인 경우, (역)변환((역)프라이머리 변환)이 스킵된다. 또한, 변환 스킵 플래그 ts_flag가 0(거짓)인 경우, (역)변환((역)프라이머리 변환)이 실행된다.
또한, 비특허문헌 1이나 비특허문헌 2에 기재된 방법의 경우, 이 변환 스킵 플래그는, 상술한 바와 같이, (역)프라이머리 변환이라고도 칭하는 것 밖에 작용하지 않았다. 그 때문에, 본 명세서에 있어서는, 이 변환 스킵 플래그가, 『(역)프라이머리 변환』에 관한 정보라고 간주하여 설명하는 경우도 있다. 즉, 예를 들어, 이 변환 스킵 플래그가, 「대상으로 하는 데이터 단위에 있어서의 『(역)프라이머리 변환』의 스킵에 관한 정보(대상으로 하는 데이터 단위에 있어서, 『(역)프라이머리 변환』을 스킵할지 여부를 나타내는 정보)」인 것으로 하여 설명하는 경우도 있다.
프라이머리 변환 식별자(pt_idx)는 대상으로 하는 데이터 단위에 있어서, 수직 방향, 및 수평 방향의 (역)프라이머리 변환에 어느 (역)프라이머리 변환을 적용할지를 나타내는 식별자이다(예를 들어, JVET-B1001, 2.5.1 Adaptive multiple Core transform을 참조. JEM2에서는 emt_idx라고도 칭한다). 환언하자면, 이 프라이머리 변환 식별자는, 대상으로 하는 데이터 단위에 있어서의 (역)프라이머리 변환의 내용에 관한 정보이다.
세컨더리 변환 식별자(st_idx)는 대상으로 하는 데이터 단위에 있어서, 어느 (역)세컨더리 변환을 적용할지를 나타내는 식별자이다(예를 들어, JVET-B1001, 2.5.2 Secondary Transforms를 참조. JEM2에서는, nsst_idx, rot_idx라고도 칭한다). 환언하자면, 이 세컨더리 변환 식별자는, 대상으로 하는 데이터 단위에 있어서의 (역)세컨더리 변환의 내용에 관한 정보이다.
예를 들어, 세컨더리 변환 식별자 st_idx는, 그 값이 0보다 큰 경우, (역)세컨더리 변환의 행렬을 지정하는 식별자이다. 환언하자면, 이 경우, 세컨더리 변환 식별자 st_idx는, (역)세컨더리 변환의 실행을 나타낸다. 또한, 예를 들어, 세컨더리 변환 식별자 st_idx는, 그 값이 0인 경우, (역)세컨더리 변환의 스킵을 나타낸다.
스캔 식별자(scanIdx)는 스캔 방법에 관한 정보이다. 양자화 파라미터(qp)는 대상으로 하는 데이터 단위에 있어서, (역)양자화에 사용되는 양자화 파라미터를 나타내는 정보이다. 양자화 매트릭스(scaling_matrix)는 대상으로 하는 데이터 단위에 있어서, (역)양자화에 사용되는 양자화 매트릭스를 나타내는 정보이다(예를 들어, JCTVC-W1005, 7.3.4 Scaling list data syntax).
물론, 변환 정보 Tinfo의 내용은 임의이며, 상술한 예 이외의 어떤 정보가 이 변환 정보 Tinfo에 포함되게 해도 된다.
헤더 정보 Hinfo는, 예를 들어, 각 블록에 공급된다. 예측 모드 정보 Pinfo는, 예를 들어, 부호화부(114) 및 예측부(119)에 공급된다. 변환 정보 Tinfo는, 예를 들어, 변환부(112), 양자화부(113), 부호화부(114), 역양자화부(115), 및 역변환부(116)에 공급된다.
연산부(111)는, 입력된 처리 단위의 블록에 대응하는 화상 I로부터, 예측부(119)로부터 공급된 예측 화상 P를, 식 (9)에 도시하는 바와 같이 감산하여 예측 잔차 D를 구하고, 그것을 변환부(112)에 공급한다.
D=I-P
···(9)
변환부(112)는, 제어부(101)로부터 공급되는 변환 정보 Tinfo에 기초하여, 연산부(111)로부터 공급되는 예측 잔차 D에 대하여 변환 처리를 행하고, 변환 계수 Coeff를 도출한다. 변환부(112)는, 그 변환 계수 Coeff를 양자화부(113)에 공급한다. 또한, 변환부(112)는, 변환 스킵 또는 변환 양자화 바이패스 시에, 변환 처리(프라이머리 변환 및 세컨더리 변환)를 스킵(생략)하고, 예측 잔차 D를 변환 계수 Coeff로서 양자화부(113)에 공급할 수도 있다.
양자화부(113)는, 제어부(101)로부터 공급되는 변환 정보 Tinfo에 기초하여, 변환부(112)로부터 공급되는 변환 계수 Coeff를 스케일링(양자화)한다. 즉, 양자화부(113)는, 변환 처리가 행하여진 변환 계수 Coeff, 또는, 변환 처리가 스킵(생략)된 변환 계수 Coeff(즉 예측 잔차 D)의 양자화를 행한다. 양자화부(113)는, 그 양자화에 의해 얻어진 양자화 후의 변환 계수, 즉 양자화 변환 계수 레벨 level을 부호화부(114) 및 역양자화부(115)에 공급한다. 또한, 양자화부(113)는, 변환 양자화 바이패스 시에, 양자화 처리를 스킵(생략)하고, 변환 계수 Coeff를 양자화 변환 계수 레벨 level로서 부호화부(114)에 공급할 수도 있다.
부호화부(114)는, 양자화부(113)로부터 공급되는 양자화 변환 계수 레벨 level 등을 소정의 방법으로 부호화한다. 예를 들어, 부호화부(114)는, 신택스 테이블의 정의에 따라, 제어부(101)로부터 공급되는 부호화 파라미터(헤더 정보 Hinfo, 예측 모드 정보 Pinfo, 변환 정보 Tinfo 등)나, 양자화부(113)로부터 공급되는 양자화 변환 계수 레벨 level을, 각 신택스 요소의 신택스값으로 변환하고, 각 신택스값을 부호화(예를 들어, 산술 부호화)하여, 비트열(부호화 데이터)을 생성한다.
또한, 부호화부(114)는, 양자화 변환 계수 레벨 level로부터 잔차 정보 RInfo를 도출하고, 잔차 정보 RInfo를 부호화하고, 비트열(부호화 데이터)을 생성한다.
잔차 정보 RInfo에는, 예를 들어, 라스트 비제로 계수 X 좌표(last_sig_coeff_x_pos), 라스트 비제로 계수 Y 좌표(last_sig_coeff_y_pos), 서브블록 비제로 계수 유무 플래그(coded_sub_block_flag), 비제로 계수 유무 플래그(sig_coeff_flag), 비제로 계수의 레벨이 1보다 큰지를 나타내는 플래그 정보인 GR1 플래그(gr1_flag), 비제로 계수의 레벨이 2보다 큰지를 나타내는 플래그 정보인 GR2 플래그(gr2_flag), 비제로 계수의 정부를 나타내는 부호인 사인 부호(sign_flag), 비제로 계수의 잔여 레벨을 나타내는 정보인 비제로 계수 잔여 레벨(coeff_abs_level_remaining) 등이 포함된다(예를 들어, JCTVC-W1005의 7.3.8.11 Residual Coding syntax를 참조).
물론, 잔차 정보 RInfo의 내용은 임의이며, 상술한 예 이외의 어떤 정보가 이 잔차 정보 RInfo에 포함되게 해도 된다.
부호화부(114)는, 예를 들어, 부호화된 각 신택스 요소의 비트열(부호화 데이터)을 다중화하고, 비트 스트림으로서 출력한다.
역양자화부(115)는, 제어부(101)로부터 공급되는 변환 정보 Tinfo에 기초하여, 양자화부(113)로부터 공급되는 양자화 변환 계수 레벨 level의 값을 스케일링(역양자화)하여, 역양자화 후의 변환 계수 Coeff_IQ를 도출한다. 역양자화부(115)는, 그 변환 계수 Coeff_IQ를 역변환부(116)에 공급한다. 또한, 역양자화부(115)는, 변환 양자화 바이패스 시에, 역양자화 처리를 스킵(생략)하고, 양자화 변환 계수 레벨 level을 변환 계수 Coeff_IQ로서 역변환부(116)에 공급할 수도 있다. 이 역양자화부(115)에 의해 행하여지는 역양자화는, 양자화부(113)에 의해 행하여지는 양자화의 역처리이며, 후술하는 화상 복호 장치에 있어서 행하여지는 역양자화와 동일한 처리이다. 따라서, 이 역양자화에 대해서는, 화상 복호 장치에 관한 설명에 있어서 후술한다.
역변환부(116)는, 제어부(101)로부터 공급되는 변환 정보 Tinfo에 기초하여, 역양자화부(115)로부터 공급되는 변환 계수 Coeff_IQ에 대하여 역변환을 행하고, 예측 잔차 D'를 도출한다. 역변환부(116)는, 그 예측 잔차 D'를 연산부(117)에 공급한다. 또한, 역변환부(116)는, 변환 스킵 또는 변환 양자화 바이패스 시에, 역변환 처리(역세컨더리 변환 및 역프라이머리 변환)를 스킵(생략)하고, 변환 계수 Coeff_IQ를 예측 잔차 D'로서 연산부(117)에 공급할 수도 있다. 이 역변환부(116)에 의해 행하여지는 역변환은, 변환부(112)에 의해 행하여지는 변환의 역처리이며, 후술하는 화상 복호 장치에 있어서 행하여지는 역변환과 동일한 처리이다. 따라서, 이 역변환에 대해서는, 화상 복호 장치에 관한 설명에 있어서 후술한다.
연산부(117)는, 역변환부(116)로부터 공급되는 예측 잔차 D'과, 예측부(119)로부터 공급되는, 그 예측 잔차 D'에 대응하는 예측 화상 P(예측 신호)를 이하의 식 (10)과 같이 가산하여 국소 복호 화상 Rec를 도출한다. 연산부(117)는, 그 국소 복호 화상 Rec를 프레임 메모리(118)에 공급한다.
Rec=D'+P
···(10)
프레임 메모리(118)는, 연산부(117)로부터 공급되는 국소 복호 화상 Rec를 사용하여 픽처 단위마다의 복호 화상을 재구축하고, 프레임 메모리(118) 내의 버퍼에 저장한다. 프레임 메모리(118)는, 예측부(119)에 의해 지정되는 복호 화상을 참조 화상으로 하여 버퍼로부터 판독하고, 예측부(119)에 공급한다. 또한, 프레임 메모리(118)는, 복호 화상의 생성에 관한 헤더 정보 Hinfo, 예측 모드 정보 Pinfo, 변환 정보 Tinfo 등을, 프레임 메모리(118) 내의 버퍼에 저장하게 해도 된다.
예측부(119)는, 예측 모드 정보 PInfo에 의해 지정되는, 프레임 메모리(118)에 저장된 복호 화상을 참조 화상으로서 취득하고, 그 참조 화상을 사용하여, 예측 모드 정보 Pinfo에 의해 지정되는 예측 방법에 의해 예측 화상 P를 생성한다. 예측부(119)는, 생성한 예측 화상 P를 연산부(111)나 연산부(117)에 공급한다.
이러한 화상 부호화 장치(100)에 있어서, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환을 스킵시키는 경우, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환도 스킵시키는 제어부를 구비하도록 한다.
<변환부>
도 6은, 변환부(112)의 주된 구성예를 도시하는 블록도이다. 도 6에 있어서, 변환부(112)는, 스위치(131), 프라이머리 변환부(132), 및 세컨더리 변환부(133)를 갖는다.
스위치(131)는, 프라이머리 변환 및 세컨더리 변환의 실행을 제어하는 제어부의 일 실시 형태이다. 예를 들어, 스위치(131)는, 프라이머리 변환을 스킵시키는 경우, 세컨더리 변환도 스킵시키도록 제어한다. 예를 들어, 스위치(131)는, 변환 정보 Tinfo에 포함되는, 프라이머리 변환의 스킵에 관한 변환 스킵 플래그 ts_flag의 값에 따라, 연산부(111)로부터 공급되는 예측 잔차 D의 공급처를 제어한다.
예를 들어, 변환 스킵 플래그 ts_flag의 값이 0인 경우, 즉, 변환 스킵 플래그 ts_flag가 변환(프라이머리 변환)의 실행을 나타내는 경우, 스위치(131)는, 적어도 프라이머리 변환을 실행시킨다. 즉, 이 경우, 스위치(131)는, 예측 잔차 D를 프라이머리 변환부(132)에 공급한다.
또한, 변환 스킵 플래그 ts_flag의 값이 1인 경우, 즉, 변환 스킵 플래그 ts_flag가 변환(프라이머리 변환)의 스킵(생략)을 나타내는 경우, 스위치(131)는, 프라이머리 변환 및 세컨더리 변환을 스킵시킨다. 즉, 이 경우, 스위치(131)는, 예측 잔차 D를 변환 계수 Coeff로서 양자화부(113)에 공급한다.
따라서, 변환부(112)는, 용이하게, 변환의 처리량의 불필요한 증대를 억제할 수 있다.
예를 들어, 4×4 행렬의 예측 잔차 D=[[255, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0,0,0,0]]과 같은, 비제로 계수의 수가 적은 소한 잔차 신호(예측 잔차 D)는 에너지 콤팩션의 저하를 억제하여, 부호화 효율의 저감을 억제하기 위해서, 변환 스킵(프라이머리 변환 및 세컨더리 변환의 스킵)을 적용하는 것이 바람직하다. 스위치(131)가, 상술한 바와 같이 변환 스킵 플래그 ts_flag의 값에 따라서 변환의 실행을 제어함으로써, 특히 이러한 비제로 계수의 수가 적은 소한 잔차 신호에 대하여 보다 용이하게 프라이머리 변환뿐만 아니라 세컨더리 변환도 스킵시킬 수 있어, 변환의 처리량의 증대를 억제하여, 부호화 효율의 저감을 억제할 수 있다.
또한, 스위치(131)는, 변환 정보 Tinfo에 포함되는, 변환 양자화 바이패스 플래그 transquant_bypass_flag의 값에 따라, 연산부(111)로부터 공급되는 예측 잔차 D의 공급처를 제어해도 된다.
예를 들어, 변환 양자화 바이패스 플래그 transquant_bypass_flag의 값이 0인 경우, 즉, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 변환 및 양자화의 실행을 나타내는 경우, 스위치(131)는, 적어도 프라이머리 변환을 실행시킨다. 즉, 이 경우, 스위치(131)는, 예측 잔차 D를 프라이머리 변환부(132)에 공급한다.
또한, 변환 양자화 바이패스 플래그 transquant_bypass_flag의 값이 1인 경우, 즉, 변환 양자화 바이패스 플래그 transquant bypass_flag가 변환 및 양자화의 스킵(생략)을 나타내는 경우, 스위치(131)는, 프라이머리 변환 및 세컨더리 변환을 스킵시킨다. 즉, 이 경우, 스위치(131)는, 예측 잔차 D를 변환 계수 Coeff로서 양자화부(113)에 공급한다.
이와 같이 함으로써, 변환부(112)는, 변환 스킵의 경우와 마찬가지로, 용이하게, 변환의 처리량의 불필요한 증대를 억제할 수 있다.
프라이머리 변환부(132)는, 스위치(131)로부터 공급되는 예측 잔차 D에 대하여 예를 들어 직교 변환 등의 프라이머리 변환을 실행한다. 즉, 프라이머리 변환부(132)는, 스위치(131)의 제어에 따라서, 프라이머리 변환을 행한다.
프라이머리 변환을 행하는 경우, 프라이머리 변환부(132)는, 예를 들어, 프라이머리 변환의 내용에 관한 정보인 프라이머리 변환 식별자 pt_idx의 값에 따른 방법으로 프라이머리 변환을 실행한다. 예를 들어, 프라이머리 변환부(132)는, 프라이머리 변환 식별자 pt_idx로 지정되는 수평 방향의 프라이머리 변환 Phor 및 수직 방향의 프라이머리 변환 Pver를 선택하고, 스위치(131)로부터 공급되는 예측 잔차 D에 대하여 예를 들어 이하의 식 (11)과 같이 행렬 연산을 행하여, 프라이머리 변환 후의 변환 계수 Coeff_P(프라이머리 변환 계수라고도 칭한다)를 도출한다.
Coeff_P=Phor·D·PverT
···(11)
또한, 식 (11)은 이하의 식 (12)와 같이 해도 된다.
Coeff_P=Pver·D·PhorT
···(12)
또한, 연산자 "·"는, 행렬끼리의 내적(행렬적)을 행하는 조작을 나타내고, 연산자 "T"는, 전치 행렬의 조작을 나타낸다. 프라이머리 변환부(132)는, 도출한 프라이머리 변환 계수 Coeff_P를 세컨더리 변환부(133)에 공급한다.
세컨더리 변환부(133)는, 프라이머리 변환부(132)로부터 공급되는 프라이머리 변환 계수 Coeff_P를 1차원의 벡터로 변환하고, 그 1차원의 벡터에 대한 행렬 연산을 행하고, 그 행렬 연산이 행하여진 1차원의 벡터의 스케일링을 행하고, 그 스케일링된 상기 1차원의 벡터를 행렬화하는 변환 처리인 세컨더리 변환을 행한다. 즉, 세컨더리 변환부(133)는, 스위치(131)의 제어에 따라서 세컨더리 변환을 행한다.
세컨더리 변환부(133)는, 세컨더리 변환의 내용에 관한 정보인 세컨더리 변환 식별자 st_idx와, 변환 계수의 스캔 방법에 관한 정보인 스캔 식별자 scanIdx에 기초하여, 프라이머리 변환 계수 Coeff_P에 대하여 세컨더리 변환을 행하고, 세컨더리 변환 후의 변환 계수 Coeff(세컨더리 변환 계수라고도 칭한다)를 도출한다.
도 6에 도시된 바와 같이, 세컨더리 변환부(133)는, 래스터라이즈부(141), 행렬 연산부(142), 스케일링부(143), 행렬화부(144), 및 세컨더리 변환 선택부(145)를 갖는다.
래스터라이즈부(141)는, 스캔 식별자 scanIdx에 의해 지정되는 변환 계수의 스캔 방법에 기초하여, 서브블록 단위(4x4 서브블록)마다, 프라이머리 변환부(132)로부터 공급되는 프라이머리 변환 계수 Coeff_P를 1×16차원의 벡터 X1d로 변환한다. 래스터라이즈부(141)는, 얻어진 벡터 X1d를 행렬 연산부(142)에 공급한다.
도 7의 A는, 스캔 식별자 scanIdx의 각 값에 의해 지정되는 스캔 타입 scanType를 나타내고 있다. 도 7의 A에 도시되는 바와 같이, 스캔 식별자 scanIdx가 0인 경우, 경사 방향 스캔(up-right diagonal scan)이 지정되고, 스캔 식별자 scanIdx가 1인 경우, 수평 방향 스캔(horizontal fast scan)이 지정되고, 스캔 식별자 scanIdx가 2인 경우, 수직 방향 스캔(vertical fast scan)이 지정된다. 도 7의 B 내지 도 7의 D는, 4×4 서브블록에 있어서의 각 스캔의 계수의 스캔순을 나타내고 있다. 도 7의 B 내지 도 7의 D에 있어서, 각 계수 위치에 첨부된 번호는, 그 계수 위치가 스캔되는 순서를 나타내고 있다. 도 7의 B는, 수평 방향 스캔(horizontal fast scan)의 스캔순의 예를 나타내고, 도 7의 C는, 수직 방향 스캔(vertical fast scan)의 스캔순의 예를 나타내고, 도 7의 D는, 경사 방향 스캔(up-right diagonal scan)의 스캔순의 예를 나타낸다.
예를 들어, 변환 스킵 플래그 ts_flag가 0이며, 프라이머리 변환부(132)로부터 공급되는 프라이머리 변환 계수 Coeff_P가, 이하의 식 (13)에 나타낸 바와 같은 4×4의 행렬인 것으로 한다.
Figure 112018108314493-pct00006
···(13)
또한, 스캔 식별자 scanIdx가 수평 스캔 hor을 나타내는 것으로 한다. 이 경우, 래스터라이즈부(141)는, 프라이머리 변환 계수 Coeff_P를, 도 7의 B의 수평 스캔의 계수의 스캔순을 따라서 스캔하고, 이하의 식 (14)에 나타낸 바와 같은 1×16차원의 벡터 X1d로 변환한다. 래스터라이즈부(141)는, 구한 벡터 X1d를 행렬 연산부(142)에 공급한다.
Figure 112018108314493-pct00007
···(14)
세컨더리 변환 선택부(145)는, 세컨더리 변환 식별자 st_idx로 지정되는 세컨더리 변환의 행렬 R을, 세컨더리 변환 선택부(145)의 내부 메모리(도시하지 않음)로부터 판독하고, 행렬 연산부(142)에 공급한다. 예를 들어, 세컨더리 변환 선택부(145)는, 어떤 세컨더리 변환 식별자 st_idx의 값인 때, 세컨더리 변환으로서, 도 8에 도시하는 16×16의 행렬 R을 판독하고, 행렬 연산부(142)에 공급한다.
또한, 세컨더리 변환 선택부(145)가, 세컨더리 변환 식별자 st_idx 및 인트라 예측 모드 정보 IPinfo(예를 들어, 예측 모드 번호)에 따라, 세컨더리 변환의 행렬 R을 선택하도록 해도 된다. 또한, 세컨더리 변환 선택부(145)가, 인트라 예측 모드 정보 IPinfo 대신에 움직임 예측 정보 MVinfo 및 세컨더리 변환 식별자 st_idx에 따라, 변환 R을 선택하도록 해도 된다.
행렬 연산부(142)는, 1차원 벡터 X1d 및 세컨더리 변환의 행렬 R을 사용하여, 이하의 식 (15)에 나타낸 바와 같은 행렬 연산을 행하고, 그 결과 Y1d를 스케일링부(143)에 공급한다.
Y1d T=R·X1d T
···(15)
여기서, 연산자 "T"는, 전치 행렬의 조작을 나타낸다. 예를 들어, 식 (14)의 벡터 X1d와 도 8에 도시하는 세컨더리 변환의 행렬 R의 행렬적에 의해, 이하의 식 (16)과 같은 결과 Y1d가 얻어진다.
Figure 112018108314493-pct00008
···(16)
스케일링부(143)는, 행렬 연산부(142)로부터 공급되는 신호 Y1d의 놈을 정규화하기 위해서, 이하의 식 (17)에 나타낸 바와 같은 N(N은 자연수) 비트의 비트 시프트 연산을 행하여, 비트 시프트 후의 신호 Z1d를 구한다.
Z1d=(Y1d)>>N
···(17)
또한, 이하의 식 (18)과 같이 N 비트의 시프트 연산 전에, 오프셋으로서, 1<<(N-1)의 값을, 신호 Z1d의 각 요소에 가산하게 해도 된다.
Z1d=(Y1d+((N-1)<<1)·E)>>N
···(18)
또한, 식 (18)에 있어서, E는, 모든 요소의 값이 1인 1×16차원의 벡터이다. 예를 들어, 도 8에 도시하는 세컨더리 변환의 행렬 R은, 8비트 스케일링된 행렬이기 때문에, 스케일링부(143)에 있어서, 놈의 정규화에 사용하는 N의 값은 8이다. 예를 들어, 식 (16)에 도시하는 신호 Y1d를 식 (18)에 있어서, N=8로서 연산하면, 식 (19)에 도시하는 결과 Z1d가 얻어진다.
Figure 112018108314493-pct00009
···(19)
일반적으로, 세컨더리 변환의 행렬 R이, N 비트 스케일링되어 있는 경우, 놈의 정규화의 비트 시프트량은, N 비트이다. 스케일링부(143)는, 이상과 같이 얻어진 신호 Z1d를 행렬화부(144)에 공급한다.
행렬화부(144)는, 스캔 식별자 scanIdx에 의해 지정되는 스캔 방법에 기초하여, 놈 정규화 후의 1×16차원의 벡터 Z1d를 4×4 행렬 X로 변환한다. 예를 들어, 행렬화부(144)는, 식 (19)에 도시하는 1×16차원의 벡터 Z1d를, 도 7의 B에 도시하는 수평 스캔에 기초하여 행렬화하여, 이하의 식 (20)에 도시하는 4x4 행렬의 변환 계수 Coeff를 얻는다.
Figure 112018108314493-pct00010
···(20)
행렬화부(144)는, 얻어진 변환 계수 Coeff를 양자화부(113)에 공급한다.
예를 들어, 변환 스킵 플래그 ts_flag가 변환 처리(프라이머리 변환)의 스킵을 나타내는 경우, 스위치(131)가 프라이머리 변환 및 세컨더리 변환을 스킵시키고, 양자화부(113)가 예측 잔차 D에 대하여 양자화를 행하고, 부호화부(114)가 양자화 변환 계수 레벨이나 변환 스킵 플래그 ts_flag를 부호화하고, 그들의 부호화 데이터를 포함하는 비트 스트림을 생성하도록 해도 된다.
<화상 부호화 처리의 흐름>
이어서, 화상 부호화 장치(100)에 의해 실행되는 각 처리의 흐름의 예를 설명한다. 처음에, 화상 부호화 처리의 흐름의 예를, 도 9의 흐름도를 참조하여 설명한다.
화상 부호화 처리가 개시되면, 스텝 S101에 있어서, 제어부(101)는, 부호화 제어 처리를 행하고, 블록 분할이나 부호화 파라미터의 설정 등을 행한다.
스텝 S102에 있어서, 예측부(119)는, 예측 처리를 행하고, 최적의 예측 모드의 예측 화상 등을 생성한다. 예를 들어, 이 예측 처리에 있어서, 예측부(119)는, 인트라 예측을 행하여 최적의 인트라 예측 모드의 예측 화상 등을 생성하고, 인터 예측을 행하여 최적의 인터 예측 모드의 예측 화상 등을 생성하고, 그들 중에서 비용 함수값 등에 기초하여 최적의 예측 모드를 선택한다.
스텝 S103에 있어서, 연산부(111)는, 입력 화상과, 스텝 S102의 예측 처리에 의해 선택된 최적의 모드의 예측 화상과의 차분을 연산한다. 즉, 연산부(111)는, 입력 화상과 예측 화상의 예측 잔차 D를 생성한다. 이와 같이 하여 구해진 예측 잔차 D는, 원래의 화상 데이터에 비하여 데이터양이 저감된다. 따라서, 화상을 그대로 부호화하는 경우에 비하여, 데이터양을 압축할 수 있다.
스텝 S104에 있어서, 변환부(112)는, 스텝 S103의 처리에 의해 생성된 예측 잔차 D에 대하여 변환 처리를 행하고, 변환 계수 Coeff를 도출한다. 스텝 S104의 처리 상세에 대해서는 후술한다.
스텝 S105에 있어서, 양자화부(113)는, 제어부(101)에 의해 산출된 양자화 파라미터를 사용하거나 하여, 스텝 S104의 처리에 의해 얻어진 변환 계수 Coeff를 양자화하고, 양자화 변환 계수 레벨 level을 도출한다.
스텝 S106에 있어서, 역양자화부(115)는, 스텝 S105의 처리에 의해 생성된 양자화 변환 계수 레벨 level을, 그 스텝 S105의 양자화 특성에 대응하는 특성으로 역양자화하고, 변환 계수 Coeff_IQ를 도출한다.
스텝 S107에 있어서, 역변환부(116)는, 스텝 S106의 처리에 의해 얻어진 변환 계수 Coeff_IQ를, 스텝 S104의 변환 처리에 대응하는 방법으로 역변환하고, 예측 잔차 D'를 도출한다. 또한, 이 역변환 처리는, 스텝 S104의 변환 처리의 역처리이며, 후술하는 화상 복호 처리에 있어서 실행되는 역변환 처리와 마찬가지로 실행된다. 그 때문에, 이 역변환 처리의 설명은, 복호측의 설명에 있어서 행한다.
스텝 S108에 있어서, 연산부(117)는, 스텝 S107의 처리에 의해 도출된 예측 잔차 D'에, 스텝 S102의 예측 처리에 의해 얻어진 예측 화상을 가산함으로써, 국소적으로 복호된 복호 화상을 생성한다.
스텝 S109에 있어서, 프레임 메모리(118)는, 스텝 S108의 처리에 의해 얻어진, 국소적으로 복호된 복호 화상을 기억한다.
스텝 S110에 있어서, 부호화부(114)는, 스텝 S105의 처리에 의해 얻어진 양자화 변환 계수 레벨 level을 부호화한다. 예를 들어, 부호화부(114)는, 화상에 관한 정보인 양자화 변환 계수 레벨 level을, 산술 부호화 등에 의해 부호화하여, 부호화 데이터를 생성한다. 또한, 이때, 부호화부(114)는, 각종 부호화 파라미터(헤더 정보 Hinfo, 예측 모드 정보 Pinfo, 변환 정보 Tinfo)를 부호화한다. 또한, 부호화부(114)는, 양자화 변환 계수 레벨 level로부터 잔차 정보 RInfo를 도출하고, 그 잔차 정보 RInfo를 부호화한다. 부호화부(114)는, 이렇게 생성한 각종 정보의 부호화 데이터를 통합하고, 비트 스트림으로서 화상 부호화 장치(100)의 외부로 출력한다. 이 비트 스트림은, 예를 들어, 전송로나 기록 매체를 통하여 복호측에 전송된다.
스텝 S110의 처리가 종료되면, 화상 부호화 처리가 종료된다.
또한, 이들의 각 처리의 처리 단위는 임의이며, 서로 동일하지 않아도 된다. 따라서, 각 스텝의 처리는, 적절히, 다른 스텝의 처리 등과 병행하거나, 또는, 처리순을 교체하여 실행할 수도 있다.
<변환 처리의 흐름>
이어서, 도 9의 스텝 S104에 있어서 실행되는 변환 처리의 흐름의 예를, 도 10의 흐름도를 참조하여 설명한다.
변환 처리가 개시되면, 스텝 S121에 있어서, 스위치(131)는, 변환 스킵 플래그 ts_flag가 1(참)인지 여부를 판정한다. 변환 스킵 플래그 ts_flag가 1(참)(변환 스킵 플래그 ts_flag가 변환 처리의 스킵을 나타낸다)이라고 판정된 경우, 프라이머리 변환 및 세컨더리 변환(스텝 S122 내지 스텝 S130의 처리)이 스킵되어, 변환 처리가 종료되고, 처리는 도 9로 되돌아간다. 즉, 스위치(131)는, 예측 잔차 D를 변환 계수 Coeff로서 양자화부(113)에 공급한다. 또한, 스텝 S121에 있어서, 변환 스킵 플래그 ts_flag가 0(거짓)(변환 스킵 플래그 ts_flag가 변환 처리의 실행을 나타낸다)이라고 판정된 경우, 처리는 스텝 S122로 진행한다.
또한, 스텝 S121에 있어서, 스위치(131)가, 추가로, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참)인지 여부를 판정하도록 해도 된다. 그 때, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참)(변환 양자화 바이패스 플래그 transquant_bypass_flag가 변환 처리 및 양자화 처리의 스킵을 나타낸다)이라고 판정된 경우, 프라이머리 변환 및 세컨더리 변환(스텝 S122 내지 스텝 S130의 처리)이 스킵되어, 변환 처리가 종료되고, 처리는 도 9로 되돌아간다. 즉, 스위치(131)는, 예측 잔차 D를 변환 계수 Coeff로서 양자화부(113)에 공급한다. 또한, 스텝 S121에 있어서, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0(거짓)(변환 양자화 바이패스 플래그 transquant_bypass_flag가 변환 처리 및 양자화 처리의 실행을 나타낸다)이라고 판정된 경우, 처리는 스텝 S122로 진행한다.
스텝 S122에 있어서, 프라이머리 변환부(132)는, 프라이머리 변환 식별자 pt_idx에 기초하여, 예측 잔차 D에 대한 프라이머리 변환을 행하고, 프라이머리 변환 계수 Coeff_P를 도출한다.
스텝 S123에 있어서, 세컨더리 변환부(133)는, 세컨더리 변환 식별자 st_idx가 세컨더리 변환을 적용할지 여부(st_idx>0)를 판정한다. 세컨더리 변환 식별자 st_idx가 0(세컨더리 변환 식별자 st_idx가 세컨더리 변환의 스킵을 나타낸다)이라고 판정된 경우, 세컨더리 변환(스텝 S124 내지 스텝 S130의 처리)이 스킵되어, 변환 처리가 종료되고, 처리는 도 9로 되돌아간다. 즉, 세컨더리 변환부(133)는, 프라이머리 변환 계수 Coeff_P를 변환 계수 Coeff로서 양자화부(113)에 공급한다.
또한, 스텝 S123에 있어서, 세컨더리 변환 식별자 st_idx가 0보다 크다(세컨더리 변환 식별자 st_idx가 세컨더리 변환의 실행을 나타낸다)고 판정된 경우, 처리는 스텝 S124로 진행한다. 스텝 S124 내지 스텝 S130의 처리에 의해 세컨더리 변환이 실행된다.
스텝 S124에 있어서, 세컨더리 변환 선택부(145)는, 세컨더리 변환 식별자 st_idx에 의해 지정되는 세컨더리 변환의 행렬 R을 선택한다.
스텝 S125에 있어서, 세컨더리 변환부(133)는, 처리 대상의 변환 블록을 서브 블록으로 분할하고, 미처리된 서브블록을 선택한다.
스텝 S126에 있어서, 래스터라이즈부(141)는, 스캔 식별자 scanIdx로 지정되는 스캔 방법에 기초하여, 프라이머리 변환 계수 Coeff_P를 1×16차원의 벡터 X1d로 변환한다.
스텝 S127에 있어서, 행렬 연산부(142)는, 벡터 X1d와 세컨더리 변환의 행렬 R의 행렬적을 연산하여, 벡터 Y1d를 구한다.
스텝 S128에 있어서, 스케일링부(143)는, 벡터 Y1d의 놈을 정규화하여, 벡터 Z1d를 구한다.
스텝 S129에 있어서, 행렬화부(144)는, 스캔 식별자 scanIdx로 지정되는 스캔 방법에 기초하여, 벡터 Z1d를 4×4의 행렬로 변환하여, 처리 대상의 서브블록 변환 계수 Coeff를 구한다. 이 변환 계수 Coeff가 양자화부(113)에 공급된다.
스텝 S130에 있어서, 세컨더리 변환부(133)는, 처리 대상의 변환 블록의 모든 서브블록을 처리했는지 여부를 판정한다. 미처리된 서브블록이 존재한다고 판정된 경우, 처리는 스텝 S125로 되돌아가고, 그 이후의 처리를 반복한다. 즉, 처리 대상의 변환 블록의 각 서브블록에 대해서, 스텝 S125 내지 스텝 S130의 각 처리(세컨더리 변환)가 실행된다. 스텝 S130에 있어서, 모든 서브블록을 처리했다(모든 서브블록의 세컨더리 변환을 행했다)고 판정된 경우, 변환 처리가 종료되고, 처리는 도 9로 되돌아간다.
또한, 변환 처리는, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다. 예를 들어, 스텝 S123에 있어서 세컨더리 변환 식별자 st_idx=0이라고 판정된 경우, 16×16의 단위 행렬이 세컨더리 변환의 행렬 R로서 선택되어, 스텝 S125 내지 스텝 S130의 각 처리가 실행되게 해도 된다.
이상과 같이 각 처리를 실행함으로써, 화상 부호화 장치(100)는, 변환 스킵 플래그 ts_flag로 변환 처리의 스킵을 나타내는 것에 의해 프라이머리 변환뿐만 아니라 세컨더리 변환도 스킵할 수 있다. 따라서, 예를 들어, 변환 스킵을 적용하는 것이 바람직한 비제로 계수의 수가 적은 소한 잔차 신호에 대하여 보다 용이하게, 변환의 처리량의 저감, 및 에너지 콤팩션의 저하를 억제하여, 부호화 효율이 향상된 변환 처리를 행할 수 있다.
<화상 복호 장치>
이어서, 이상과 같이 부호화된 부호화 데이터의 복호에 대하여 설명한다. 도 11은, 본 기술을 적용한 화상 처리 장치의 일 형태인 화상 복호 장치의 구성의 일례를 도시하는 블록도이다. 도 11에 도시되는 화상 복호 장치(200)는, 도 5의 화상 부호화 장치(100)에 대응하는 화상 복호 장치이며, 화상 부호화 장치(100)가 생성한 부호화 데이터(비트 스트림)를 화상 부호화 장치(100)에 의한 부호화 방법에 대응하는 복호 방법으로 복호한다. 예를 들어, 화상 복호 장치(200)는, HEVC에 제안된 기술이나, JVET에서 제안된 기술을 실장하고 있다.
또한, 도 11에 있어서는, 처리부나 데이터의 흐름 등의 주된 것을 나타내고 있고, 도 11에 도시되는 것이 모두라고는 할 수 없다. 즉, 화상 복호 장치(200)에 있어서, 도 11에 있어서 블록으로서 도시되어 있지 않은 처리부가 존재하거나, 도 11에 있어서 화살표 등으로서 도시되어 있지 않은 처리나 데이터의 흐름이 존재하거나 해도 된다.
도 11에 도시되는 바와 같이 화상 복호 장치(200)는, 복호부(211), 역양자화부(212), 역변환부(213), 연산부(214), 프레임 메모리(215), 및 예측부(216)를 갖는다. 화상 복호 장치(200)에는, 예를 들어 전송 매체나 기록 매체 등을 통하여, 화상 부호화 장치(100) 등이 생성한 부호화 데이터가 예를 들어 비트 스트림 등으로서 공급된다.
복호부(211)는, 공급되는 부호화 데이터를, 그 부호화 방법에 대응하는 소정의 복호 방법으로 복호한다. 예를 들어, 복호부(211)는, 신택스 테이블의 정의에 따라, 공급된 부호화 데이터(비트 스트림)의 비트열로부터, 각 신택스 요소의 신택스값을 복호한다. 신택스 요소에는, 예를 들어, 헤더 정보 Hinfo, 예측 모드 정보 Pinfo, 변환 정보 Tinfo, 잔차 정보 Rinfo 등의 정보가 포함된다.
복호부(211)는, 잔차 정보 Rinfo를 참조하여, 각 변환 블록 내의 각 계수 위치의 양자화 변환 계수 레벨 level을 도출한다. 복호부(211)는, 복호하여 얻은 예측 모드 정보 Pinfo, 양자화 변환 계수 레벨 level, 변환 정보 Tinfo를 각 블록에 공급한다. 예를 들어, 복호부(211)는, 예측 모드 정보 Pinfo를 예측부(216)에 공급하고, 양자화 변환 계수 레벨 level을 역양자화부(212)에 공급하고, 변환 정보 Tinfo를 역양자화부(212) 및 역변환부(213)에 공급한다.
역양자화부(212)는, 복호부(211)로부터 공급되는 변환 정보 Tinfo에 기초하여, 복호부(211)로부터 공급되는 양자화 변환 계수 레벨 level의 값을 스케일링(역양자화)하여, 역양자화 후의 변환 계수 Coeff_IQ를 도출한다. 이 역양자화는, 화상 부호화 장치(100)의 양자화부(113)(도 5)에 의해 행하여지는 양자화의 역처리이다. 또한, 역양자화부(115)(도 5)는 이 역양자화부(212)와 동일한 역양자화를 행한다. 역양자화부(212)는, 얻어진 변환 계수 Coeff_IQ를 역변환부(213)에 공급한다. 또한, 역양자화부(212)는, 변환 양자화 바이패스 시에, 역양자화 처리를 스킵(생략)하고, 양자화 변환 계수 레벨 level을 변환 계수 Coeff_IQ로서 역변환부(213)에 공급할 수도 있다.
역변환부(213)는, 복호부(211)로부터 공급되는 변환 정보 Tinfo에 기초하여, 역양자화부(212)로부터 공급되는 변환 계수 Coeff_IQ를 역변환하고, 예측 잔차 D'를 도출한다. 이 역변환은, 화상 부호화 장치(100)의 변환부(112)(도 5)에 의해 행하여지는 변환 처리의 역처리이다. 또한, 역변환부(116)는, 이 역변환부(213)와 동일한 역변환을 행한다. 이 역변환의 상세에 대해서는 후술한다. 역변환부(213)는, 얻어진 예측 잔차 D'를 연산부(214)에 공급한다. 또한, 역변환부(213)는, 변환 스킵 또는 변환 양자화 바이패스 시에, 역변환 처리(역세컨더리 변환 및 역프라이머리 변환)를 스킵(생략)하고, 변환 계수 Coeff_IQ를 예측 잔차 D'로서 연산부(214)에 공급할 수도 있다.
연산부(214)는, 이하의 식 (21)에 나타낸 바와 같이, 역변환부(213)로부터 공급되는 예측 잔차 D'과 그 예측 잔차 D'에 대응하는 예측 화상 P(예측 신호)를 가산하고, 국소적인 복호 화상 Rec를 도출한다. 연산부(214)는, 얻어진 국소적인 복호 화상 Rec를 사용하여 픽처 단위마다의 복호 화상을 재구축하고, 얻어진 복호 화상을 화상 복호 장치(200)의 외부로 출력한다. 또한, 연산부(214)는, 그 국소적인 복호 화상 Rec를 프레임 메모리(215)에도 공급한다.
Rec=D'+P
···(21)
프레임 메모리(215)는, 연산부(214)로부터 공급되는 국소적인 복호 화상 Rec를 사용하여 픽처 단위마다의 복호 화상을 재구축하고, 프레임 메모리(215) 내의 버퍼에 저장한다. 프레임 메모리(215)는, 예측부(216)의 예측 모드 정보 Pinfo에 의해 지정되는 복호 화상을 참조 화상으로 하여 버퍼로부터 판독하고, 예측부(216)에 공급한다. 또한, 프레임 메모리(215)는, 그 복호 화상의 생성에 관한 헤더 정보 Hinfo, 예측 모드 정보 Pinfo, 변환 정보 Tinfo 등을 프레임 메모리(215) 내의 버퍼에 저장하게 해도 된다.
예측부(216)는, 복호부(211)로부터 공급되는 예측 모드 정보 PInfo에 의해 지정되는, 프레임 메모리(215)에 저장된 복호 화상을 참조 화상으로서 취득하고, 그 참조 화상을 사용하여, 그 예측 모드 정보 Pinfo에 의해 지정되는 예측 방법에 의해 예측 화상 P를 생성한다. 예측부(216)는, 생성한 예측 화상 P를, 연산부(214)에 공급한다.
이러한 화상 복호 장치(200)에 있어서, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환을 스킵시키는 경우, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환도 스킵시키는 제어부를 구비하도록 한다.
<역변환부>
도 12는, 도 11의 역변환부(213)의 주된 구성예를 도시하는 블록도이다. 도 12에 도시된 바와 같이, 역변환부(213)는, 스위치(231), 역세컨더리 변환부(232), 및 역프라이머리 변환부(233)를 갖는다.
스위치(231)는, 역세컨더리 변환 및 역프라이머리 변환의 실행을 제어하는 제어부의 일 실시 형태이다. 예를 들어, 스위치(231)는, 역프라이머리 변환을 스킵시키는 경우, 역세컨더리 변환도 스킵시키도록 제어한다. 예를 들어, 스위치(231)는, 역프라이머리 변환의 스킵에 관한 정보인 변환 스킵 플래그 ts_flag의 값에 따라서 이러한 제어를 행한다.
예를 들어, 변환 스킵 플래그 ts_flag의 값이 0인 경우, 즉, 변환 스킵 플래그 ts_flag가 역변환(역프라이머리 변환)의 실행을 나타내는 경우, 스위치(231)는, 역세컨더리 변환 및 역프라이머리 변환을 실행시킨다. 즉, 이 경우, 스위치(231)는, 변환 계수 Coeff_IQ를 역세컨더리 변환부(232)에 공급한다.
이에 반해, 변환 스킵 플래그 ts_flag의 값이 1인 경우, 즉, 변환 스킵 플래그 ts_flag가 역변환(역프라이머리 변환)의 스킵(생략)을 나타내는 경우, 스위치(231)는, 역세컨더리 변환 및 역프라이머리 변환을 스킵시킨다. 즉, 이 경우, 스위치(231)는, 변환 계수 Coeff_IQ를 예측 잔차 D'로서 연산부(214)에 공급한다.
따라서, 역변환부(213)는, 용이하게, 역변환의 처리량의 불필요한 증대를 억제할 수 있다.
예를 들어, 4×4 행렬 Coeff_IQ=[[255, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0,0,0,0]]과 같은, 비제로 계수의 수가 적은 소한 잔차 신호(변환 계수 Coeff_IQ)는 에너지 콤팩션의 저하를 억제하여, 부호화 효율의 저감을 억제하기 위해서, 변환 스킵(역세컨더리 변환 및 역프라이머리 변환의 스킵)을 적용하는 것이 바람직하다. 스위치(231)가, 상술한 바와 같이 변환 스킵 플래그 ts_flag의 값에 따라서 역변환의 실행을 제어함으로써, 특히 이러한 비제로 계수의 수가 적은 소한 잔차 신호에 대하여 보다 용이하게 역프라이머리 변환뿐만 아니라 역세컨더리 변환도 스킵시킬 수 있어, 역변환의 처리량의 증대를 억제하여, 부호화 효율의 저감을 억제할 수 있다.
또한, 스위치(231)는, 변환 정보 Tinfo에 포함되는, 변환 양자화 바이패스 플래그 transquant_bypass_flag의 값에 따라, 외부로부터 공급되는 변환 계수 Coeff_IQ의 공급처를 제어해도 된다.
예를 들어, 변환 양자화 바이패스 플래그 transquant_bypass_flag의 값이 0인 경우, 즉, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 역변환 및 역양자화의 실행을 나타내는 경우, 스위치(231)는, 변환 계수 Coeff_IQ를 역세컨더리 변환부(232)에 공급한다.
또한, 변환 양자화 바이패스 플래그 transquant_bypass_flag의 값이 1인 경우, 즉, 변환 양자화 바이패스 플래그 transquant bypass_flag가 변환 및 양자화의 스킵(생략)을 나타내는 경우, 스위치(231)는, 역세컨더리 변환 및 역프라이머리 변환을 스킵시킨다. 즉, 이 경우, 스위치(231)는, 변환 계수 Coeff_IQ를 예측 잔차 D'로서 연산부(214)에 공급한다.
따라서, 역변환부(213)는, 변환 스킵과 마찬가지로, 용이하게, 변환의 처리량의 불필요한 증대를 억제할 수 있다.
역세컨더리 변환부(232)는, 스위치(231)로부터 공급되는 세컨더리 변환 계수, 즉, 부호화 데이터가 복호되어, 역양자화되어서 얻어지는 세컨더리 변환 계수를 1차원의 벡터로 변환하고, 그 1차원의 벡터에 대한 행렬 연산을 행하고, 그 행렬 연산이 행하여진 1차원의 벡터의 스케일링을 행하고, 그 스케일링된 1차원의 벡터를 행렬화하는 변환 처리인 역세컨더리 변환을 행한다. 즉, 역세컨더리 변환부(232)는, 스위치(231)의 제어에 따라서 역세컨더리 변환을 행한다.
역세컨더리 변환부(232)는, 세컨더리 변환의 내용에 관한 정보인 세컨더리 변환 식별자 st_idx와, 변환 계수의 스캔 방법에 관한 정보인 스캔 식별자 scanIdx에 기초하여, 변환 계수 Coeff_IQ에 대하여 역세컨더리 변환을 행하고, 역세컨더리 변환 후의 변환 계수 Coeff_IS(프라이머리 변환 계수라고도 한다)를 도출한다. 역세컨더리 변환부(232)는, 그 프라이머리 변환 계수 Coeff_IS를, 역프라이머리 변환부(233)에 공급한다. 또한, 역세컨더리 변환부(232)의 상세에 대해서는 후술한다.
역프라이머리 변환부(233)는, 역세컨더리 변환부(232)로부터 공급되는 프라이머리 변환 계수 Coeff_IS에 대하여 예를 들어 역직교 변환 등의 역프라이머리 변환을 실행한다. 즉, 역프라이머리 변환부(233)는, 스위치(231)의 제어에 따라서, 역프라이머리 변환을 행한다.
역프라이머리 변환을 행하는 경우, 역프라이머리 변환부(233)는, 예를 들어, 역프라이머리 변환의 내용에 관한 정보인 프라이머리 변환 식별자 pt_idx의 값에 따른 방법으로 역프라이머리 변환을 실행한다. 예를 들어, 역프라이머리 변환부(233)는, 복호부(211)로부터 공급되는 프라이머리 변환 식별자 pt_idx에 의해 지정되는 수평 방향의 역프라이머리 변환 IPhor 및 수직 방향의 역프라이머리 변환 IPver를 선택하고, 변환 계수 Coeff_IS에 대하여 예를 들어 식 (22)와 같은 행렬 연산을 행하여, 예측 잔차 D'를 도출한다.
D'=IPhor·Coeff_IS·IPverT
···(22)
여기서, 연산자 "·"는, 행렬끼리의 내적(행렬적)을 행하는 조작을 나타내고, 연산자 "T"는, 치환 행렬의 조작을 나타낸다. 또한, 수평 방향의 역프라이머리 변환 IPhor는, 수평 방향의 프라이머리 변환 Phor의 역변환이며, PhorT(=Phor-1)라고도 표현된다. 마찬가지로, 수직 방향의 역프라이머리 변환 IPver는, 수직 방향의 프라이머리 변환 Pver의 역변환이며, PverT(=Pver-1)라고도 표현된다. 또한, 상술한 식 (22)는 이하의 식 (23)과 같이 해도 된다.
D'=IPver·Coeff_IS·IPhorT
···(23)
역프라이머리 변환부(233)는, 얻어진 예측 잔차 D'를 연산부(214)에 공급한다.
이어서, 역세컨더리 변환부(232)에 대하여 설명한다. 도 12에 도시된 바와 같이, 역세컨더리 변환부(232)는, 래스터라이즈부(241), 행렬 연산부(242), 스케일링부(243), 행렬화부(244), 및 역세컨더리 변환 선택부(245)를 갖는다.
래스터라이즈부(241)는, 복호부(211)로부터 공급되는 스캔 식별자 scanIdx에 의해 지정되는 변환 계수의 스캔 방법에 기초하여, 서브블록(4×4 서브블록)마다, 스위치(231)로부터 공급되는 변환 계수 Coeff_IQ를 1×16차원의 벡터 X1d로 변환한다. 래스터라이즈부(241)는, 얻어진 벡터 X1d를 행렬 연산부(242)에 공급한다. 또한, 변환 계수의 스캔 방법에 관한 정보인 스캔 식별자 scanIdx와 대응하는 각 스캔 방법에 대해서는, 도 7을 참조하여 상술한 바와 같다.
예를 들어, 역변환부(213)에 공급되는 변환 계수 Coeff_IQ가, 이하의 식 (24)에 나타낸 바와 같은 4×4 행렬인 것으로 한다.
Figure 112018108314493-pct00011
···(24)
변환 스킵 플래그 ts_flag가 0이며, 스캔 식별자 scanIdx가 수평 스캔 hor을 나타내는 경우, 래스터라이즈부(241)는, 변환 계수 Coeff_IQ를 도 7의 B에 도시하는 수평 스캔의 계수의 스캔순을 따라서 스캔하고, 이하의 식 (25)에 나타낸 바와 같은 1×16차원의 벡터 X1d로 변환한다. 그리고, 래스터라이즈부(241)는, 얻어진 벡터 X1d를 행렬 연산부(242)에 공급한다.
Figure 112018108314493-pct00012
···(25)
역세컨더리 변환 선택부(245)는, 복호부(211)로부터 공급되는, 세컨더리 변환의 내용에 관한 정보인 세컨더리 변환 식별자 st_idx에 의해 지정되는 역세컨더리 변환의 행렬 IR(=RT)을 역세컨더리 변환 선택부(245)의 내부 메모리(도시하지 않음)로부터 판독하고, 행렬 연산부(242)에 공급한다. 예를 들어, 역세컨더리 변환 선택부(245)는, 어떤 세컨더리 변환 식별자 st_idx의 값인 때, 역세컨더리 변환의 행렬 IR로서, 도 8에 도시하는 16×16의 행렬 R의 전치 행렬 RT를 판독하고, 그것을 행렬 연산부(242)에 공급한다.
또한, 역세컨더리 변환 선택부(245)가, 예를 들어, 복호부(211)로부터 공급되는 세컨더리 변환 식별자 st_idx나 인트라 예측 모드 정보 IPinfo(예를 들어, 인트라 예측 모드 번호)에 따라, 역세컨더리 변환의 행렬 IR(=RT)을 선택하도록 해도 된다. 또한, 인트라 예측 모드 정보 IPinfo 대신에 움직임 예측 정보 MVinfo와 세컨더리 변환 식별자 st_idx에 따라, 역변환 IR이 선택되게 해도 된다.
행렬 연산부(242)는, 서브블록(4×4 서브블록)마다, 1×16차원의 벡터 X1d 및 역세컨더리 변환의 행렬 IR(=RT)을 사용하여, 이하의 식 (26)에 나타낸 바와 같은 행렬 연산을 행하고, 그 결과로서 벡터 Y1d를 도출한다.
Y1d T=IR·X1d T=RT·X1d T
···(26)
여기서, 연산자 "T"는, 전치 행렬의 조작을 나타낸다. 예를 들어, 행렬 연산부(242)는, 상술한 식 (25)에 도시하는 벡터 X1d와 도 8에 도시하는 세컨더리 변환의 행렬 R의 전치 행렬 RT를 사용하여, 식 (26)에 나타낸 바와 같은 행렬적을 행하고, 이하의 식 (27)에 나타낸 바와 같은 벡터 Y1d를 도출한다. 행렬 연산부(242)는, 얻어진 벡터 Y1d를 스케일링부(243)에 공급한다.
Figure 112018108314493-pct00013
···(27)
스케일링부(243)는, 서브블록(4×4 서브블록)마다, 행렬 연산부(242)로부터 공급되는 신호 Y1d의 놈을 정규화하기 위해서, 이하의 식 (28)에 나타내는 바와 같은 N(N은 자연수) 비트의 비트 시프트 연산을 신호 Y1d의 모든 요소에 대하여 행하고, 비트 시프트 후의 신호 Z1d를 구한다.
Z1d=(Y1d)>>N
···(28)
또한, 이하의 식 (29)에 나타낸 바와 같이, N 비트의 시프트 연산 전에, 오프셋으로서, 1<<(N-1)의 값이, 신호 Z1d의 각 요소에 가산되게 해도 된다. 또한, 식 (29)에 있어서, 벡터 E는, 모든 요소의 값이 1인 1×16차원의 벡터이다.
Z1d=(Y1d+((N-1)<<1)·E)>>N
···(29)
예를 들어, 도 8에 도시하는 역세컨더리 변환의 행렬 IR(=RT)은 8비트 스케일링된 행렬이기 때문에, 스케일링부(243)에 있어서, 놈의 정규화에 사용되는 N의 값은 8이다.
예를 들어, 식 (29)에 있어서, N=8로서 연산한 결과(신호 Z1d)는 이하의 식 (30)과 같이 된다.
Figure 112018108314493-pct00014
···(30)
일반적으로, 역세컨더리 변환의 행렬 IR(=RT)이 N 비트 스케일링되어 있는 경우, 놈의 정규화의 비트 시프트량은, N 비트이다.
행렬화부(244)는, 서브블록(4×4 서브블록)마다, 놈 정규화 후의 신호 Z1d 및 스캔 식별자 scanIdx를 입력으로 하고, 복호부(211)로부터 공급되는 스캔 식별자 scanIdx에 의해 지정되는 스캔 방법에 기초하여, 스케일링부(243)로부터 공급되는 1×16차원의 벡터 Z1d를 4×4 행렬의 프라이머리 변환 계수 Coeff_IS로 변환한다.
예를 들어, 행렬화부(244)는, 식 (30)에 도시하는 1×16차원의 벡터 Z1d를, 도 7의 B에 도시하는 수평 스캔에 기초하여 행렬화하여, 이하의 식 (31)에 나타낸 바와 같은 4×4 행렬의 프라이머리 변환 계수 Coeff_IS를 얻는다.
Figure 112018108314493-pct00015
···(31)
행렬화부(244)는, 얻어진 프라이머리 변환 계수 Coeff_IS를 역프라이머리 변환부(233)에 공급한다.
<화상 복호 처리의 흐름>
이어서, 이상과 같은 화상 복호 장치(200)에 의해 실행되는 각 처리의 흐름에 대하여 설명한다. 처음에, 도 13의 흐름도를 참조하여, 화상 복호 처리의 흐름의 예를 설명한다.
화상 복호 처리가 개시되면, 스텝 S201에 있어서, 복호부(211)는, 화상 복호 장치(200)에 공급되는 비트 스트림(부호화 데이터)을 복호하고, 헤더 정보 Hinfo, 예측 모드 정보 Pinfo, 변환 정보 Tinfo, 잔차 정보 Rinfo, 양자화 변환 계수 레벨 level 등의 정보를 얻는다.
스텝 S202에 있어서, 역양자화부(212)는, 스텝 S201의 처리에 의해 얻어진 양자화 변환 계수 레벨 level을 역양자화하여 변환 계수 Coeff_IQ를 도출한다. 이 역양자화는, 화상 부호화 처리의 스텝 S105(도 9)에 있어서 행하여지는 양자화의 역처리이며, 화상 부호화 처리의 스텝 S106(도 9)에 있어서 행하여지는 역양자화와 동일한 처리이다.
스텝 S203에 있어서, 역변환부(213)는, 스텝 S202의 처리에 의해 얻어진 변환 계수 Coeff_IQ를 역변환하고, 예측 잔차 D'를 도출한다. 이 역변환은, 화상 부호화 처리의 스텝 S104(도 9)에 있어서 행하여지는 변환 처리의 역처리이며, 화상 부호화 처리의 스텝 S107(도 9)에 있어서 행하여지는 역변환과 동일한 처리이다.
스텝 S204에 있어서, 예측부(216)는, 예측 모드 정보 PInfo에 기초하여, 부호화 시의 예측과 동일한 예측 모드에서 예측을 행하고, 예측 화상 생성한다.
스텝 S205에 있어서, 연산부(214)는, 스텝 S203의 처리에 의해 얻어진 예측 잔차 D'에, 스텝 S204의 처리에 의해 얻어진 예상 화상을 가산하여, 복호 화상을 얻는다.
스텝 S205의 처리가 종료되면, 화상 복호 처리가 종료된다.
<역변환 처리의 흐름>
이어서, 도 13의 스텝 S203에 있어서 실행되는 역변환 처리의 흐름의 예를, 도 14의 흐름도를 참조하여 설명한다.
역변환 처리가 개시되면, 스텝 S221에 있어서, 스위치(231)는, 변환 스킵 플래그 ts_flag가 1(참)인지 여부를 판정한다. 변환 스킵 플래그 ts_flag가 1(참)(변환 스킵 플래그 ts_flag가 역변환 처리의 스킵을 나타낸다)이라고 판정된 경우, 역세컨더리 변환 및 역프라이머리 변환(스텝 S222 내지 스텝 S230의 처리)이 스킵되어, 역변환 처리가 종료되고, 처리는 도 13으로 되돌아간다. 즉, 스위치(231)는, 변환 계수 Coeff_IQ를, 예측 잔차 D'로서 연산부(214)에 공급한다. 또한, 변환 스킵 플래그 ts_flag가 0(거짓)(변환 스킵 플래그 ts_flag가 역변환 처리의 실행을 나타낸다)이라고 판정된 경우, 처리는 스텝 S222로 진행한다.
또한, 스텝 S221에 있어서, 스위치(231)가, 또한, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참)인지 여부를 판정하도록 해도 된다. 그 때, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참)(변환 양자화 바이패스 플래그 transquant_bypass_flag가 역양자화 처리 및 역변환 처리의 스킵을 나타낸다)이라고 판정된 경우, 역세컨더리 변환 및 역프라이머리 변환(스텝 S222 내지 스텝 S230의 처리)이 스킵되어, 역변환 처리가 종료되고, 처리는 도 13으로 되돌아간다. 즉, 스위치(231)는, 변환 계수 Coeff_IQ를, 예측 잔차 D'로서 연산부(214)에 공급한다. 또한, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0(거짓)(변환 양자화 바이패스 플래그 transquant_bypass_flag가 역양자화 처리 및 역변환 처리의 실행을 나타낸다)이라고 판정된 경우, 처리는 스텝 S222로 진행한다.
스텝 S222에 있어서, 역세컨더리 변환부(232)는, 세컨더리 변환 식별자 st_idx가 역세컨더리 변환을 적용할지 여부(st_idx>0)를 판정한다. 세컨더리 변환 식별자 st_idx가 0(세컨더리 변환 식별자 st_idx가 역세컨더리 변환의 스킵을 나타낸다)이라고 판정된 경우, 역세컨더리 변환(스텝 S223 내지 스텝 S229의 처리)이 스킵되고, 처리는 스텝 S230으로 진행한다. 즉, 역세컨더리 변환부(232)는, 변환 계수 Coeff_IQ를 프라이머리 변환 계수 Coeff_P로서, 역프라이머리 변환부(233)에 공급한다.
또한, 스텝 S222에 있어서, 세컨더리 변환 식별자 st_idx가 0보다 크다(세컨더리 변환 식별자 st_idx가 역세컨더리 변환의 실행을 나타낸다)고 판정된 경우, 처리는 스텝 S223으로 진행한다. 스텝 S223 내지 스텝 S229의 처리에 의해 역세컨더리 변환이 실행된다.
스텝 S223에 있어서, 역세컨더리 변환 선택부(245)는, 세컨더리 변환 식별자 st_idx에 의해 지정되는 역세컨더리 변환의 행렬 IR을 선택한다.
스텝 S224에 있어서, 역세컨더리 변환부(232)는, 처리 대상의 변환 블록에 포함되는 미처리된 서브블록을 선택한다.
스텝 S225에 있어서, 래스터라이즈부(241)는, 스캔 식별자 scanIdx에 의해 지정되는 스캔 방법에 기초하여, 변환 계수 Coeff_IQ를 1×16차원의 벡터 X1d로 변환한다.
스텝 S226에 있어서, 행렬 연산부(242)는, 벡터 X1d와 역세컨더리 변환의 행렬 IR의 행렬적을 연산하여, 벡터 Y1d를 구한다.
스텝 S227에 있어서, 스케일링부(243)는, 벡터 Y1d의 놈을 정규화하여, 벡터 Z1d를 구한다.
스텝 S228에 있어서, 행렬화부(244)는, 스캔 식별자 scanIdx에 의해 지정되는 스캔 방법에 기초하여, 벡터 Z1d를 4×4의 행렬로 변환하여, 처리 대상의 서브블록 프라이머리 변환 계수 Coeff_P를 구한다.
스텝 S229에 있어서, 역세컨더리 변환부(232)는, 처리 대상의 변환 블록의 모든 서브블록을 처리했는지 여부를 판정한다. 미처리된 서브블록이 존재한다고 판정된 경우, 처리는 스텝 S224로 되돌아가고, 그 이후의 처리를 반복한다. 즉, 처리 대상의 변환 블록의 각 서브블록에 대해서, 스텝 S224 내지 스텝 S229의 각 처리(역세컨더리 변환)가 실행된다. 스텝 S229에 있어서, 모든 서브블록을 처리했다(모든 서브블록의 역세컨더리 변환을 행했다)고 판정된 경우, 처리는 스텝 S230으로 진행한다.
스텝 S230에 있어서, 역프라이머리 변환부(233)는, 프라이머리 변환 식별자 pt_idx에 기초하여, 프라이머리 변환 계수 Coeff_P에 대한 역프라이머리 변환을 행하고, 예측 잔차 D'를 도출한다. 이 예측 잔차 D'는, 연산부(214)에 공급된다.
스텝 S230의 처리가 종료되면, 역변환 처리가 종료되고, 처리는 도 13으로 되돌아간다.
또한, 이상의 역변환 처리는, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다. 예를 들어, 스텝 S222에 있어서 세컨더리 변환 식별자 st_idx가 0이라고 판정된 경우, 16×16의 단위 행렬이 역세컨더리 변환의 행렬 IR로서 선택되어, 스텝 S223 내지 스텝 S229의 각 처리가 실행되게 해도 된다.
이상과 같이 각 처리를 실행함으로써, 화상 복호 장치(200)는, 변환 스킵 플래그 ts_flag에 의해 변환 처리의 스킵을 나타내는 것에 의해 역프라이머리 변환뿐만 아니라 역세컨더리 변환도 스킵할 수 있다. 따라서, 예를 들어, 변환 스킵을 적용하는 것이 바람직한 비제로 계수의 수가 적은 소한 잔차 신호에 대하여 역변환의 처리량의 저감, 및 에너지 콤팩션의 저하를 억제하여, 부호화 효율이 향상된 역변환 처리를 행할 수 있다.
<2. 제2 실시 형태>
<변환 스킵 플래그의 부호화·복호의 스킵>
비특허문헌 1에 기재된 기술(JEM2)에서는, 세컨더리 변환 식별자 st_idx는, CU 단위로 부호화되고, 변환 스킵 플래그 ts_flag는, CU에 포함되는 각 변환 블록 단위로 부호화된다.
예를 들어, 이 기술(JEM2)에 대하여 제1 실시 형태에 있어서 설명한 본 기술을 적용하인, 변환 스킵 플래그 ts_flag가 1인(변환 스킵을 적용한다) 경우에 (역)프라이머리 변환 및 (역)세컨더리 변환을 스킵하도록 한다. 이 경우, 세컨더리 변환 식별자 st_idx가 세컨더리 변환의 실행을 나타내는 경우, 그 CU에 있어서 변환 스킵 플래그 ts_flag이(역)변환 처리의 스킵을 나타낼 수는 있지 않고, 변환 스킵 플래그 ts_flag는 0으로 결정한다. 즉, 이 경우, 변환 스킵 플래그 ts_flag의 부호화는 용장이 된다. 따라서, 부호화 효율이 저감될 우려가 있었다.
그래서, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대하여 세컨더리 변환이 행하여지는 경우, 그 프라이머리 변환의 스킵에 관한 제1 정보의 부호화를 스킵하도록 한다.
이와 같이 함으로써, 세컨더리 변환이 행하여지는 경우에 제1 정보의 부호화를 스킵할 수 있게 되므로, 부호화 효율의 저감을 억제할 수 있다.
또한, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환이 행하여지는 경우, 프라이머리 변환의 역변환인 역프라이머리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵하도록 한다.
이와 같이 함으로써, 역세컨더리 변환이 행하여지는 경우에 제1 정보의 부호화 데이터의 복호를 스킵할 수 있게 되므로, 부호화 효율의 저감을 억제할 수 있다.
<신택스>
이러한 제어를 나타내는 의사 코드를 기재한 신택스 테이블의 예를 도 15에 도시한다. 도 15의 위로부터 4단째에 도시된 바와 같이, 변환 스킵 플래그 ts_flag의 부호화(즉, 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호)는 세컨더리 변환 식별자 st_idx가 0인 것이 조건의 하나가 된다. 즉, 세컨더리 변환 식별자 st_idx가 0이 아닐 경우, 즉, (역)세컨더리 변환이 실행되는 경우, 변환 스킵 플래그 ts_flag의 부호화(변환 스킵 플래그 ts_flag의 부호화 데이터의 복호)가 스킵된다.
<부호화부>
이 경우에도 화상 부호화 장치(100)는, 제1 실시 형태의 경우와 기본적으로 동일한 구성을 갖는다. 단, 이 경우의 화상 부호화 장치(100)는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대하여 세컨더리 변환이 행하여지는 경우, 프라이머리 변환의 스킵에 관한 제1 정보의 부호화를 스킵하는 부호화부를 구비한다. 즉, 이 경우의 부호화부(114)는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대하여 세컨더리 변환이 행하여지는 경우, 프라이머리 변환의 스킵에 관한 제1 정보의 부호화를 스킵한다.
도 16은, 이 경우의 부호화부(114)가 프로그램 등을 실행함으로써 실현하는, 변환 스킵 플래그 ts_flag의 부호화에 관한 주된 기능의 예를 도시하는 기능 블록도이다. 도 16에 도시된 바와 같이, 부호화부(114)는, 프로그램을 실행함으로써, 변환 스킵 플래그 ts_flag의 부호화에 관한 기능으로서, 예를 들어, 세컨더리 변환 유효 플래그 부호화부(301), 세컨더리 변환 식별자 부호화부(302), 변환 스킵 유효 플래그 부호화부(303), 최대 변환 스킵 블록 사이즈 부호화부(304), 변환 양자화 바이패스 플래그 부호화부(305), 및 변환 스킵 플래그 부호화부(306)의 기능을 가질 수 있다.
세컨더리 변환 유효 플래그 부호화부(301)는, 세컨더리 변환의 허가에 관한 정보인 세컨더리 변환 유효 플래그 st_enabled_flag의 부호화에 관한 처리를 행한다. 세컨더리 변환 식별자 부호화부(302)는, 세컨더리 변환의 내용에 관한 정보인 세컨더리 변환 식별자 st_idx의 부호화에 관한 처리를 행한다. 변환 스킵 유효 플래그 부호화부(303)는, 변환(프라이머리 변환)의 스킵의 허가에 관한 정보인 변환 스킵 유효 플래그 ts_enabled_flag의 부호화에 관한 처리를 행한다. 최대 변환 스킵 블록 사이즈 부호화부(304)는, 변환(프라이머리 변환)의 스킵이 허가되는 변환 블록의 최대 사이즈를 나타내는 최대 변환 스킵 블록 사이즈 MaxTSSize의 부호화에 관한 처리를 행한다. 변환 양자화 바이패스 플래그 부호화부(305)는, 변환(프라이머리 변환 및 세컨더리 변환) 및 양자화의 스킵(바이패스)에 관한 정보인 변환 양자화 바이패스 플래그 transquant_bypass_flag의 부호화에 관한 처리를 행한다. 변환 스킵 플래그 부호화부(306)는, 변환(프라이머리 변환)의 스킵에 관한 정보인 변환 스킵 플래그 ts_flag의 부호화에 관한 처리를 행한다.
<부호화 처리의 흐름>
이어서, 화상 부호화 장치(100)에 의해 실행되는 각 처리의 흐름의 예를 설명한다. 이 경우 화상 부호화 장치(100)는, 화상 부호화 처리를, 제1 실시 형태의 경우와 기본적으로 마찬가지로 행한다. 단, 이 경우, 화상 부호화 장치(100)는, 화상 부호화 처리의 스텝 S110(도 9)에 있어서, 변환 스킵 플래그 ts_flag 등의 부호화를, 세컨더리 변환 식별자 st_idx의 값 등에 따라서 행한다. 이 변환 스킵 플래그 ts_flag 등의 부호화의 흐름의 예를 도 17의 흐름도를 참조하여 설명한다. 즉, 도 17에 도시하는 부호화 처리는, 도 9의 스텝 S110에 있어서 행하여지는 부호화 처리의 일부로서 실행된다. 기타의 부호화 파라미터나 양자화 변환 계수 레벨 level의 부호화는 임의의 방법으로 행해진다.
부호화 처리가 개시되면, 스텝 S301에 있어서, 세컨더리 변환 유효 플래그 부호화부(301)는, 헤더 정보 Hinfo에 포함되는 세컨더리 변환 유효 플래그 st_enabled_flag를 부호화하고, 비트열(부호화 데이터)을 생성하여 출력한다. 이 부호화에 의해 얻어진 세컨더리 변환 유효 플래그 st_enabled_flag의 부호화 데이터는, 양자화 변환 계수 레벨 level의 부호화 데이터를 포함하는 비트 스트림에 포함된다.
스텝 S302에 있어서, 세컨더리 변환 식별자 부호화부(302)는, 헤더 정보 Hinfo에 포함되는 세컨더리 변환 유효 플래그 st_enabled_flag가 1(참)인지 여부를 판정한다. 세컨더리 변환 유효 플래그 st_enabled_flag가 1이라고 판정된 경우, 즉, 세컨더리 변환의 실행이 허가되어 있다고 판정된 경우, 처리는 스텝 S303으로 진행한다.
스텝 S303에 있어서, 세컨더리 변환 식별자 부호화부(302)는, 세컨더리 변환 식별자 st_idx를 부호화하고, 비트열(부호화 데이터)을 생성하여 출력한다. 이 부호화에 의해 얻어진 세컨더리 변환 식별자 st_idx의 부호화 데이터는, 양자화 변환 계수 레벨 level의 부호화 데이터를 포함하는 비트 스트림에 포함된다. 스텝 S303의 처리가 종료되면, 처리는 스텝 S304로 진행한다.
또한, 스텝 S302에 있어서, 세컨더리 변환 유효 플래그 st_enabled_flag가 0(거짓)이라고 판정된 경우, 즉, 세컨더리 변환의 실행이 허가되어 있지 않다고 판정된 경우, 스텝 S303의 처리가 스킵되고, 처리는 스텝 S304로 진행한다.
세컨더리 변환이 행하여지지 않는 것이라면, 세컨더리 변환 식별자 st_idx는 불필요하다. 따라서, 이 경우, 세컨더리 변환 식별자 부호화부(302)는, 세컨더리 변환 식별자 st_idx의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S304에 있어서, 변환 스킵 유효 플래그 부호화부(303)는, 헤더 정보 HInfo에 포함되는 변환 스킵 유효 플래그 ts_enabled_flag를 부호화하고, 비트열(부호화 데이터)을 생성하여 출력한다. 이 부호화에 의해 얻어진 변환 스킵 유효 플래그 ts_enabled_flag의 부호화 데이터는, 양자화 변환 계수 레벨 level의 부호화 데이터를 포함하는 비트 스트림에 포함된다.
스텝 S305에 있어서, 최대 변환 스킵 블록 사이즈 부호화부(304)는, 헤더 정보 Hinfo에 포함되는 변환 스킵 유효 플래그 ts_enabled_flag가 1(참)인지 여부를 판정한다. 변환 스킵 유효 플래그 ts_enabled_flag가 1이라고 판정된 경우, 즉, 변환 스킵(프라이머리 변환 및 세컨더리 변환의 스킵)이 허가되어 있다고 판정된 경우, 처리는 스텝 S306으로 진행한다.
스텝 S306에 있어서, 최대 변환 스킵 블록 사이즈 부호화부(304)는, 최대 변환 스킵 블록 사이즈 MaxTSSize(또는, 2를 밑으로 하는 대수값 log2MaxTSSize)를 부호화하고, 비트열(부호화 데이터)을 생성하여 출력한다. 이 부호화에 의해 얻어진 최대 변환 스킵 블록 사이즈 MaxTSSize의 부호화 데이터는, 양자화 변환 계수 레벨 level의 부호화 데이터를 포함하는 비트 스트림에 포함된다. 스텝 S306의 처리가 종료되면 처리는 스텝 S307로 진행한다.
또한, 스텝 S305에 있어서, 변환 스킵 유효 플래그 ts_enabled_flag가 0이라고 판정된 경우, 즉, 변환 스킵이 허가되어 있지 않다고 판정된 경우, 스텝 S306의 처리가 스킵되고, 처리는 스텝 S307로 진행한다.
변환 스킵을 행할 수 없으면, 최대 변환 스킵 블록 사이즈 MaxTSSize(또는 log2MaxTSSize)는 불필요하다. 따라서, 이 경우, 최대 변환 스킵 블록 사이즈 부호화부(304)는, 최대 변환 스킵 블록 사이즈 MaxTSSize(또는 log2MaxTSSize)의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S307에 있어서, 변환 양자화 바이패스 플래그 부호화부(305)는, 변환 양자화 바이패스 플래그 transquant_bypass_flag를 부호화하고, 비트열(부호화 데이터)을 생성하여 출력한다. 이 부호화에 의해 얻어진 변환 양자화 바이패스 플래그 transquant_bypass_flag의 부호화 데이터는, 양자화 변환 계수 레벨 level의 부호화 데이터를 포함하는 비트 스트림에 포함된다.
스텝 S308에 있어서, 변환 스킵 플래그 부호화부(306)는, 변환 정보 Tinfo에 포함되는 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참)인지 여부를 판정한다. 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1이라고 판정된 경우, 즉, 변환(프라이머리 변환 및 세컨더리 변환) 및 양자화를 스킵(바이패스)한다고 판정된 경우, 스텝 S309 내지 스텝 S312의 처리가 스킵되어, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
변환 및 양자화가 바이패스되는 것이라면, 변환 스킵 플래그 ts_flag는 불필요하다. 따라서, 이 경우, 변환 스킵 플래그 부호화부(306)는, 변환 스킵 플래그 ts_flag의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S308에 있어서, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0이라고 판정된 경우, 즉, 변환 및 양자화를 스킵(바이패스)하지 않다고 판정된 경우, 처리는 스텝 S309로 진행한다.
스텝 S309에 있어서, 변환 스킵 플래그 부호화부(306)는, 세컨더리 변환 식별자 st_idx의 값이 0보다 큰지 여부(st_idx>0)를 판정한다. 세컨더리 변환 식별자 st_idx의 값이 0보다 크다고, 즉, 세컨더리 변환이 실행된다고 판정된 경우, 스텝 S310 내지 스텝 S312의 처리가 스킵되어, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
세컨더리 변환이 실행되는 것이라면, 변환 스킵은 행하여지지 않으므로, 변환 스킵 플래그 ts_flag의 값은 0으로 고정된다. 따라서, 이 경우, 변환 스킵 플래그 ts_flag를 복호측에 전송할 필요가 없으므로, 변환 스킵 플래그 부호화부(306)는, 변환 스킵 플래그 ts_flag의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S309에 있어서, 세컨더리 변환 식별자 st_idx의 값이 0인, 즉, 세컨더리 변환이 스킵된다고 판정된 경우, 처리는 스텝 S310으로 진행한다.
스텝 S310에 있어서, 변환 스킵 플래그 부호화부(306)는, 헤더 정보 HInfo에 포함되는 변환 스킵 유효 플래그 ts_enabled_flag가 1(참)인지 여부를 판정한다. 변환 스킵 유효 플래그 ts_enabled_flag가 0이라고, 즉, 변환 스킵이 허가되어 있지 않다고 판정된 경우, 스텝 S311 및 스텝 S312의 처리가 스킵되어, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
변환 스킵을 행할 수 없으면, 변환 스킵 플래그 ts_flag의 값은 0으로 고정된다. 따라서, 이 경우, 변환 스킵 플래그 ts_flag를 복호측에 전송할 필요가 없으므로, 변환 스킵 플래그 부호화부(306)는, 변환 스킵 플래그 ts_flag의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S310에 있어서, 변환 스킵 유효 플래그 ts_enabled_flag가 1이라고 판정된 경우, 즉, 변환 스킵이 허가되어 있다고 판정된 경우, 처리는 스텝 S311로 진행한다.
스텝 S311에 있어서, 변환 스킵 플래그 부호화부(306)는, 처리 대상의 변환 블록의 사이즈 TBSize가 최대 변환 스킵 블록 사이즈 MaxTSSize 이하인지 여부(조건식 TBSize<=MaxTSSize가 참인지 여부)를 판정한다. 처리 대상의 변환 블록의 사이즈 TBSize가 최대 변환 스킵 블록 사이즈 MaxTSSize보다 크다고 판정된 경우, 즉, 상술한 조건식이 0(거짓)이라고 판정된 경우, 스텝 S312의 처리가 스킵되어, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
변환 블록의 사이즈가 최대 변환 스킵 블록 사이즈보다 큰 경우, 변환 스킵이 허가되지 않으므로, 변환 스킵 플래그 ts_flag의 값은 0으로 고정된다. 따라서, 이 경우, 변환 스킵 플래그 ts_flag를 복호측에 전송할 필요가 없으므로, 변환 스킵 플래그 부호화부(306)는, 변환 스킵 플래그 ts_flag의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S311에 있어서, 처리 대상의 변환 블록의 사이즈 TBSize가 최대 변환 스킵 블록 사이즈 MaxTSSize 이하라고 판정된 경우, 즉, 상술한 조건식이 1(참)이라고 판정된 경우, 처리는 스텝 S312로 진행한다.
또한, 스텝 S311에 있어서, 상술한 조건식(TBSize<=MaxTSSize)은 2를 밑으로 하는 TB 사이즈의 대수값 log2TrafoSize(또는 log2TBSize), 2를 밑으로 하는 최대 변환 스킵 블록 사이즈 MaxTSSize의 대수값 log2MaxTSSize를 사용하여, 조건식(log2TrafroSize<=log2MaxTSSize)으로 치환해도 된다.
스텝 S312에 있어서, 변환 스킵 플래그 부호화부(306)는, 변환 스킵 플래그 ts_flag를 부호화하고, 비트열(부호화 데이터)을 생성하여 출력한다. 이 부호화에 의해 얻어진 변환 스킵 플래그 ts_flag의 부호화 데이터는, 양자화 변환 계수 레벨 level의 부호화 데이터를 포함하는 비트 스트림에 포함된다.
즉, 이하의 조건식 (32)가 1(참)이 되는 경우에만, 변환 스킵 플래그 ts_flag가 부호화된다. 이것은, 도 15를 참조하여 설명한 신택스의 위로부터 4단째에 대응한다.
논리값=(ts_enabled_flag &&
!transquant_bypass_flag &&
(log2TrafoSize <= log2MaxTSSize) &&
st_idx==0)
···(32)
스텝 S312의 처리가 종료되면, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
이상과 같이 부호화 처리를 실행함으로써, 화상 부호화 장치(100)는, CU 단위로 세컨더리 변환 식별자 st_idx를 부호화하는 경우에 있어서, 세컨더리 변환 식별자 st_idx가 세컨더리 변환을 적용하는 것을 나타내는 경우(st_idx>0), 변환 스킵 플래그 ts_flag의 부호화를 스킵할 수 있다. 즉, 변환 스킵 플래그 ts_flag에 관한 부호량의 삭감, 및 부호화에 따른 처리량을 저감할 수 있다.
또한, 상술한 부호화 처리는, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다. 또한, 상술한 신택스나 조건식 (32)는 실시 가능한 범위에서 연산을 변경 가능하다.
<복호부>
다음으로 화상 복호 장치(200)에 대하여 설명한다. 이 경우에도 화상 복호 장치(200)는, 제1 실시 형태의 경우와 기본적으로 동일한 구성을 갖는다. 단, 이 경우의 화상 복호 장치(200)는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환이 행하여지는 경우, 그 프라이머리 변환의 역변환인 역프라이머리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는 복호부를 구비한다. 즉, 이 경우의 복호부(211)는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환이 행하여지는 경우, 그 프라이머리 변환의 역변환인 역프라이머리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵한다.
도 18은, 이 경우의 복호부(211)가 프로그램 등을 실행함으로써 실현하는, 변환 스킵 플래그 ts_flag의 복호에 관한 주된 기능의 예를 도시하는 기능 블록도이다. 도 18에 도시된 바와 같이, 복호부(211)는, 프로그램을 실행함으로써, 변환 스킵 플래그 ts_flag의 복호에 관한 기능으로서, 예를 들어, 세컨더리 변환 유효 플래그 복호부(311), 세컨더리 변환 식별자 복호부(312), 변환 스킵 유효 플래그 복호부(313), 최대 변환 스킵 블록 사이즈 복호부(314), 변환 양자화 바이패스 플래그 복호부(315), 및 변환 스킵 플래그 복호부(316)의 기능을 가질 수 있다.
세컨더리 변환 유효 플래그 복호부(311)는, 역세컨더리 변환의 허가에 관한 정보인 세컨더리 변환 유효 플래그 st_enabled_flag의 부호화 데이터의 복호에 관한 처리를 행한다. 세컨더리 변환 식별자 복호부(312)는, 역세컨더리 변환의 내용에 관한 정보인 세컨더리 변환 식별자 st_idx의 부호화 데이터의 복호에 관한 처리를 행한다. 변환 스킵 유효 플래그 복호부(313)는, 역변환(역프라이머리 변환)의 스킵의 허가에 관한 정보인 변환 스킵 유효 플래그 ts_enabled_flag의 부호화 데이터의 복호에 관한 처리를 행한다. 최대 변환 스킵 블록 사이즈 복호부(314)는, 역변환(역프라이머리 변환)의 스킵이 허가되는 변환 블록의 최대 사이즈를 나타내는 최대 변환 스킵 블록 사이즈 MaxTSSize의 부호화 데이터의 복호에 관한 처리를 행한다. 변환 양자화 바이패스 플래그 복호부(315)는, 역변환(역세컨더리 변환 및 역프라이머리 변환) 및 역양자화의 스킵(바이패스)에 관한 정보인 변환 양자화 바이패스 플래그 transquant_bypass_flag의 부호화 데이터의 복호에 관한 처리를 행한다. 변환 스킵 플래그 복호부(316)는, 역변환(역프라이머리 변환)의 스킵에 관한 정보인 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호에 관한 처리를 행한다.
<복호 처리의 흐름>
이어서, 화상 복호 장치(200)에 의해 실행되는 각 처리의 흐름의 예를 설명한다. 이 경우 화상 복호 장치(200)는, 화상 복호 처리를, 제1 실시 형태의 경우와 기본적으로 마찬가지로 행한다. 단, 이 경우, 화상 복호 장치(200)는, 화상 복호 처리의 스텝 S201(도 13)에 있어서, 변환 스킵 플래그 ts_flag 등의 부호화 데이터의 복호를, 세컨더리 변환 식별자 st_idx의 값 등에 따라서 행한다. 이 변환 스킵 플래그 ts_flag 등의 부호화 데이터의 복호의 흐름의 예를 도 19의 흐름도를 참조하여 설명한다. 즉, 도 19에 도시하는 복호 처리는, 도 13의 스텝 S201에 있어서 행하여지는 복호 처리의 일부로서 실행된다. 기타의 부호화 파라미터나 양자화 변환 계수 레벨 level의 부호화 데이터의 복호는 임의의 방법으로 행해진다.
복호 처리가 개시되면, 스텝 S331에 있어서, 세컨더리 변환 유효 플래그 복호부(311)는, 비트 스트림(부호화 데이터)에 포함되는 세컨더리 변환 유효 플래그 st_enabled_flag의 부호화 데이터를 복호하고, 헤더 정보 Hinfo의 일부로서 출력한다.
스텝 S332에 있어서, 세컨더리 변환 식별자 복호부(312)는, 그 복호된 세컨더리 변환 유효 플래그 st_enabled_flag가 1(참)인지 여부를 판정한다. 세컨더리 변환 유효 플래그 st_enabled_flag가 0이라고 판정된 경우, 즉, 역세컨더리 변환의 실행이 허가되어 있지 않다고 판정된 경우, 처리는 스텝 S333으로 진행한다.
이 경우, 역세컨더리 변환은 스킵되므로, 세컨더리 변환 식별자 st_idx는 부호화되어 있지 않다. 따라서, 스텝 S333에 있어서, 세컨더리 변환 식별자 복호부(312)는, 세컨더리 변환 식별자 st_idx의 부호화 데이터의 복호를 스킵한다. 또한, 이 경우, 역세컨더리 변환은 스킵되므로, 세컨더리 변환 식별자 st_idx의 값은 0으로 고정된다. 따라서, 세컨더리 변환 식별자 복호부(312)는, 세컨더리 변환 식별자 st_idx의 값이 0이라고 추정한다. 즉, 세컨더리 변환 식별자 복호부(312)는, 세컨더리 변환 식별자 st_idx의 값을 0으로 설정한다(st_idx=0). 스텝 S333의 처리가 종료되면 처리는 스텝 S335로 진행한다.
또한, 스텝 S332에 있어서, 세컨더리 변환 유효 플래그 st_enabled_flag가 1이라고 판정된 경우, 처리는 스텝 S334로 진행한다. 이 경우, 역세컨더리 변환의 실행이 허가되어 있으므로, 스텝 S334에 있어서, 세컨더리 변환 식별자 복호부(312)는, 비트 스트림(부호화 데이터)에 포함되는 세컨더리 변환 식별자 st_idx의 부호화 데이터를 복호한다. 스텝 S334의 처리가 종료되면 처리는 스텝 S335로 진행한다.
또한, 이상의 세컨더리 변환 식별자 st_idx의 복호에 관한 처리는, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다.
스텝 S335에 있어서, 변환 스킵 유효 플래그 복호부(313)는, 비트 스트림(부호화 데이터)에 포함되는 변환 스킵 유효 플래그 ts_enabled_flag의 부호화 데이터를 복호하고, 헤더 정보 Hinfo의 일부로서 출력한다.
스텝 S336에 있어서, 최대 변환 스킵 블록 사이즈 복호부(314)는, 그 복호된 변환 스킵 유효 플래그 ts_enabled_flag가 1(참)인지 여부를 판정한다. 변환 스킵 유효 플래그 ts_enabled_flag가 1이라고 판정된 경우, 즉, 역변환(역세컨더리 변환 및 역프라이머리 변환)의 스킵이 허가되어 있다고 판정된 경우, 처리는 스텝 S337로 진행한다.
스텝 S337에 있어서, 최대 변환 스킵 블록 사이즈 복호부(314)는, 비트 스트림(부호화 데이터)에 포함되는 최대 변환 스킵 블록 사이즈 MaxTSSize(또는, 2를 밑으로 하는 대수값 log2MaxTSSize)의 부호화 데이터를 복호한다. 스텝 S337의 처리가 종료되면 처리는 스텝 S338로 진행한다.
또한, 스텝 S336에 있어서, 변환 스킵 유효 플래그 ts_enabled_flag가 0이라고 판정된 경우, 즉, 역변환의 스킵이 허가되어 있지 않다고 판정된 경우, 역변환의 스킵이 행하여지지 않는 것이기 때문에, 최대 변환 스킵 블록 사이즈 MaxTSSize는 불필요하다. 따라서, 이 경우, 스텝 S337의 처리가 스킵되고, 처리는 스텝 S338로 진행한다.
스텝 S338에 있어서, 변환 양자화 바이패스 플래그 복호부(315)는, 비트 스트림(부호화 데이터)에 포함되는 변환 양자화 바이패스 플래그 transquant_bypass_flag의 부호화 데이터를 복호하고, 변환 정보 Tinfo의 일부로서 출력한다.
스텝 S339에 있어서, 변환 스킵 플래그 복호부(316)는, 그 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참)인지 여부를 판정한다. 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1이라고 판정된 경우, 즉, 역변환(역세컨더리 변환 및 역프라이머리 변환) 및 역양자화를 스킵(바이패스)한다고 판정된 경우, 스텝 S340 내지 스텝 S342의 처리가 스킵되고, 처리는 스텝 S343으로 진행한다.
역변환 및 양자화가 바이패스되는 것이라면, 변환 스킵 플래그 ts_flag는 불필요하다. 따라서, 이 경우, 변환 스킵 플래그 복호부(316)는, 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
또한, 스텝 S339에 있어서, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0이라고 판정된 경우, 즉, 역변환 및 양자화를 스킵(바이패스)하지 않다고 판정된 경우, 처리는 스텝 S340으로 진행한다.
스텝 S340에 있어서, 변환 스킵 플래그 복호부(316)는, 세컨더리 변환 식별자 st_idx의 값이 0보다 큰지 여부(st_idx>0)를 판정한다. 세컨더리 변환 식별자 st_idx의 값이 0보다 큰, 즉, 역세컨더리 변환이 실행된다고 판정된 경우, 스텝 S341 및 스텝 S342의 처리가 스킵되고, 처리는 스텝 S343으로 진행한다.
세컨더리 변환이 실행되는 것이라면, 변환 스킵(역변환의 스킵)은 행하여지지 않으므로, 변환 스킵 플래그 ts_flag의 값은 0으로 고정된다. 따라서, 이 경우, 변환 스킵 플래그 ts_flag는 부호화측으로부터 전송되지 않으므로, 변환 스킵 플래그 복호부(316)는, 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S340에 있어서, 세컨더리 변환 식별자 st_idx의 값이 0이라고, 즉, 역세컨더리 변환이 스킵된다고 판정된 경우, 처리는 스텝 S341로 진행한다.
스텝 S341에 있어서, 변환 스킵 플래그 복호부(316)는, 헤더 정보 HInfo에 포함되는 변환 스킵 유효 플래그 ts_enabled_flag가 1(참)인지 여부를 판정한다. 변환 스킵 유효 플래그 ts_enabled_flag가 0이라고 판정된 경우, 즉, 변환 스킵이 허가되어 있지 않다고 판정된 경우, 스텝 S342의 처리가 스킵되고, 처리는 스텝 S343으로 진행한다.
변환 스킵(역변환의 스킵)을 행할 수 없으면, 변환 스킵 플래그 ts_flag의 값은 0으로 고정된다. 따라서, 이 경우, 변환 스킵 플래그 ts_flag는 부호화측으로부터 전송되지 않으므로, 변환 스킵 플래그 복호부(316)는, 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S341에 있어서, 변환 스킵 유효 플래그 ts_enabled_flag가 1이라고 판정된 경우, 즉, 변환 스킵(역변환의 스킵)이 허가되어 있다고 판정된 경우, 처리는 스텝 S342로 진행한다.
스텝 S342에 있어서, 변환 스킵 플래그 복호부(316)는, 처리 대상의 변환 블록의 사이즈 TBSize가 최대 변환 스킵 블록 사이즈 MaxTSSize 이하인지 여부(조건식 TBSize<=MaxTSSize가 참인지 여부)를 판정한다. 처리 대상의 변환 블록의 사이즈 TBSize가 최대 변환 스킵 블록 사이즈 MaxTSSize보다 크다고 판정된 경우, 즉, 상술한 조건식이 0(거짓)이라고 판정된 경우, 처리는 스텝 S343으로 진행한다.
변환 블록의 사이즈가 최대 변환 스킵 블록 사이즈보다 큰 경우, 변환 스킵이 허가되지 않으므로, 변환 스킵 플래그 ts_flag의 값은 0으로 고정된다. 따라서, 이 경우, 변환 스킵 플래그 ts_flag는 부호화측으로부터 전송되지 않으므로, 변환 스킵 플래그 복호부(316)는, 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다. 또한, 스텝 S342에 있어서, 상술한 조건식(TBSize<=MaxTSSize)은 2를 밑으로 하는 TB 사이즈의 대수값 log2TrafoSize(또는, log2TBSize), 2를 밑으로 하는 최대 변환 스킵 블록 사이즈 MaxTSSize의 대수값 log2MaxTSSize를 사용하여, 조건식(log2TrafroSize<=log2MaxTSSize)으로 치환해도 된다.
스텝 S343에 있어서, 변환 스킵 플래그 복호부(316)는, 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호를 스킵한다. 또한, 이 경우, 변환 스킵(역변환의 스킵)은 행하여지지 않는, 즉, 역변환이 실행되므로, 변환 스킵 플래그 ts_flag의 값은 0으로 고정된다. 따라서, 변환 스킵 플래그 복호부(316)는, 변환 스킵 플래그 ts_flag의 값이 0이라고 추정한다. 즉, 변환 스킵 플래그 복호부(316)는, 변환 스킵 플래그 ts_flag의 값을 0으로 설정한다(ts_flag=0). 스텝 S343의 처리가 종료되면 복호 처리가 종료되고, 처리는, 도 13으로 되돌아간다.
또한, 스텝 S342에 있어서, 처리 대상의 변환 블록의 사이즈 TBSize가 최대 변환 스킵 블록 사이즈 MaxTSSize 이하라고 판정된 경우, 즉, 상술한 조건식이 1(참)이라고 판정된 경우, 처리는 스텝 S344로 진행한다.
스텝 S344에 있어서, 변환 스킵 플래그 복호부(316)는, 변환 스킵 플래그 ts_flag의 부호화 데이터를 복호한다.
즉, 상술한 조건식 (32)가 1(참)이 되는 경우에만, 변환 스킵 플래그 ts_flag의 부호화 데이터가 복호된다. 이것은, 도 15를 참조하여 설명한 신택스의 위로부터 4단째에 대응한다.
스텝 S344의 처리가 종료되면, 복호 처리가 종료되고, 처리는, 도 13으로 되돌아간다.
이상과 같이 복호 처리를 실행함으로써, 화상 복호 장치(200)는, CU 단위로 세컨더리 변환 식별자 st_idx가 부호화되는 경우에 있어서, 그 세컨더리 변환 식별자 st_idx가 역세컨더리 변환의 실행을 나타내는 경우(st_idx>0), 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호를 스킵할 수 있다. 즉, 변환 스킵 플래그 ts_flag에 관한 부호량의 삭감, 및 복호에 관한 처리량을 저감할 수 있다.
또한, 상술한 복호 처리는, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다. 또한, 상술한 신택스나 조건식 (32)는 실시 가능한 범위에서 연산을 변경 가능하다.
<3. 제3 실시 형태>
<세컨더리 변환 플래그의 부호화·복호의 스킵>
비특허문헌 2에는, 비특허문헌 1에 기재된 기술(JEM2)에 있어서 CU 단위로 복호되는 세컨더리 변환 식별자 st_idx가, 변환 블록 단위로 복호되는 세컨더리 변환을 적용할지 여부를 나타내는 세컨더리 변환 플래그 st_flag와, PU 단위로 복호되는 인트라 예측 모드 정보 IPinfo에 기초하여, 변환 블록 단위로 도출되는 것이 기재되어 있다.
예를 들어, 이 비특허문헌 2에 기재된 기술에 대하여 제1 실시 형태에 있어서 설명한 본 기술을 적용하고, 변환 스킵 플래그 ts_flag가 1인(변환 스킵을 적용한다) 경우에 (역)프라이머리 변환 및 (역)세컨더리 변환을 스킵하도록 한다. 이 경우, 변환 블록 단위로 복호되는 변환 스킵 플래그 ts_flag가 (역)변환 처리의 스킵 실행을 나타내는 경우(ts_flag=1), (역)세컨더리 변환이 스킵되므로, 그 세컨더리 변환의 실행에 관한 정보인 세컨더리 변환 플래그 st_flag의 부호화가 용장이 된다. 따라서, 부호화 효율이 저감될 우려가 있었다.
그래서, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환이 스킵되는 경우, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 스킵에 관한 제1 정보의 부호화를 스킵하도록 한다.
이와 같이 함으로써, 프라이머리 변환이 스킵되는 경우에 제1 정보의 부호화를 스킵할 수 있게 되므로, 부호화 효율의 저감을 억제할 수 있다.
또한, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환이 스킵되는 경우, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵하도록 한다.
이와 같이 함으로써, 역프라이머리 변환이 스킵되는 경우에 제1 정보의 부호화 데이터의 복호를 스킵할 수 있게 되므로, 부호화 효율의 저감을 억제할 수 있다.
<신택스>
이러한 제어를 나타내는 의사 코드를 기재한 신택스 테이블의 예를 도 20에 도시하였다. 도 20의 위로부터 7단째에 도시된 바와 같이, 세컨더리 변환 플래그 st_flag의 부호화(즉, 세컨더리 변환 플래그 st_flag의 부호화 데이터의 복호)는 변환 스킵 플래그 ts_flag가 0인 것이 조건의 하나가 된다. 즉, 변환 스킵 플래그 ts_flag가 1인 경우, 즉, (역)프라이머리 변환이 스킵되는 경우, 세컨더리 변환 플래그 st_flag의 부호화(세컨더리 변환 플래그 st_flag의 부호화 데이터의 복호)가 스킵된다.
또한, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0인 것도, 세컨더리 변환 플래그 st_flag의 부호화(즉, 세컨더리 변환 플래그 st_flag의 부호화 데이터의 복호)의 조건의 하나가 된다. 즉, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1인 경우, 즉, (역)변환 및 (역)양자화가 스킵되는 경우, 세컨더리 변환 플래그 st_flag의 부호화(세컨더리 변환 플래그 st_flag의 부호화 데이터의 복호)가 스킵된다.
<부호화부>
이 경우에도 화상 부호화 장치(100)는, 제1 실시 형태의 경우와 기본적으로 동일한 구성을 갖는다. 즉, 제1 실시 형태에 있어서 설명한 화상 부호화 장치(100)가, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환이 스킵되는 경우, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 스킵에 관한 제1 정보의 부호화를 스킵하는 부호화부를 구비한다. 즉, 이 경우의 부호화부(114)는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환이 스킵되는 경우, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 스킵에 관한 제1 정보의 부호화를 스킵한다.
도 21은, 이 경우의 부호화부(114)가 프로그램 등을 실행함으로써 실현하는, 세컨더리 변환 플래그 st_flag의 부호화에 관한 주된 기능의 예를 도시하는 기능 블록도이다. 도 21에 도시된 바와 같이, 이 경우의 부호화부(114)는, 프로그램을 실행함으로써, 세컨더리 변환 플래그 st_flag의 부호화에 관한 기능으로서, 예를 들어, 제2 실시 형태에 있어서 설명한 부호화부(114)와 동일한, 세컨더리 변환 유효 플래그 부호화부(301), 변환 스킵 유효 플래그 부호화부(303), 최대 변환 스킵 블록 사이즈 부호화부(304), 변환 양자화 바이패스 플래그 부호화부(305), 및 변환 스킵 플래그 부호화부(306)의 기능을 가질 수 있다. 또한, 부호화부(114)는, 프로그램을 실행함으로써, 세컨더리 변환 플래그 st_flag의 부호화에 관한 기능으로서, 예를 들어, 세컨더리 변환 플래그 부호화부(321)의 기능을 가질 수 있다.
세컨더리 변환 플래그 부호화부(321)는, 세컨더리 변환의 실행에 관한 정보인 세컨더리 변환 플래그 st_flag의 부호화에 관한 처리를 행한다. 예를 들어, 세컨더리 변환 플래그 st_flag가 1(참)인 경우, 세컨더리 변환이 실행된다. 또한, 예를 들어, 세컨더리 변환 플래그 st_flag가 0(거짓)인 경우, 세컨더리 변환이 스킵된다.
<부호화 처리의 흐름>
이어서, 화상 부호화 장치(100)에 의해 실행되는 각 처리의 흐름의 예를 설명한다. 이 경우 화상 부호화 장치(100)는, 화상 부호화 처리를, 제1 실시 형태의 경우와 기본적으로 마찬가지로 행한다. 단, 이 경우, 화상 부호화 장치(100)는, 화상 부호화 처리의 스텝 S110(도 9)에 있어서, 세컨더리 변환 플래그 st_flag 등의 부호화를, 변환 스킵 플래그 ts_flag의 값 등에 따라서 행한다. 이 세컨더리 변환 플래그 st_flag 등의 부호화의 흐름의 예를 도 22 및 도 23의 흐름도를 참조하여 설명한다. 즉, 도 22 및 도 23에 도시하는 부호화 처리는, 도 9의 스텝 S110에 있어서 행하여지는 부호화 처리의 일부로서 실행된다. 기타의 부호화 파라미터나 양자화 변환 계수 레벨 level의 부호화는 임의의 방법으로 행해진다.
부호화 처리가 개시되면, 도 22의 스텝 S361 내지 스텝 S368의 각 처리가, 스텝 S304 내지 스텝 S308, 그리고, 스텝 S310 내지 스텝 S312의 각 처리(도 17)와 마찬가지로 실행된다.
또한, 스텝 S365에 있어서, 변환(프라이머리 변환 및 세컨더리 변환) 및 양자화의 스킵(바이패스)에 관한 정보인 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1이라고 판정된 경우, 즉, 변환(프라이머리 변환 및 세컨더리 변환) 및 양자화를 스킵(바이패스)한다고 판정된 경우, 처리는 도 23의 스텝 S371로 진행한다. 또한, 스텝 S365에 있어서, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0이라고 판정된 경우, 즉, 변환 및 양자화를 스킵(바이패스)하지 않다고 판정된 경우, 처리는 스텝 S366으로 진행한다.
또한, 스텝 S366에 있어서, 변환(프라이머리 변환)의 스킵의 허가에 관한 정보인 변환 스킵 유효 플래그 ts_enabled_flag가 0이라고, 즉, 변환 스킵이 허가되어 있지 않다고 판정된 경우, 처리는 도 23의 스텝 S371로 진행한다. 또한, 스텝 S366에 있어서, 변환 스킵 유효 플래그 ts_enabled_flag가 1인, 즉, 변환 스킵이 허가되어 있다고 판정된 경우, 처리는 스텝 S367로 진행한다.
또한, 스텝 S367에 있어서, 처리 대상의 변환 블록의 사이즈 TBSize가, 변환(프라이머리 변환)의 스킵이 허가되는 변환 블록의 최대 사이즈인 최대 변환 스킵 블록 사이즈 MaxTSSize보다 크다고 판정된 경우, 처리는 도 23의 스텝 S371로 진행한다. 또한, 스텝 S367에 있어서, 처리 대상의 변환 블록의 사이즈 TBSize가 최대 변환 스킵 블록 사이즈 MaxTSSize 이하라고 판정된 경우, 처리는 스텝 S368로 진행한다.
스텝 S368에 있어서 변환(프라이머리 변환)의 스킵에 관한 정보인 변환 스킵 플래그 ts_flag가 생성되어, 그 처리가 종료되면, 처리는 도 23의 스텝 S371로 진행한다.
도 23의 스텝 S371에 있어서, 세컨더리 변환 유효 플래그 부호화부(301)는, 헤더 정보 Hinfo에 포함되는, 세컨더리 변환의 허가에 관한 정보인 세컨더리 변환 유효 플래그 st_enabled_flag를 부호화하고, 비트열(부호화 데이터)을 생성하여 출력한다. 이 부호화에 의해 얻어진 세컨더리 변환 유효 플래그 st_enabled_flag의 부호화 데이터는, 양자화 변환 계수 레벨 level의 부호화 데이터를 포함하는 비트 스트림에 포함된다.
스텝 S372에 있어서, 세컨더리 변환 플래그 부호화부(321)는, 헤더 정보 Hinfo에 포함되는 세컨더리 변환 유효 플래그 st_enabled_flag가 1(참)인지 여부를 판정한다. 세컨더리 변환 유효 플래그 st_enabled_flag가 0이라고 판정된 경우, 즉, 세컨더리 변환의 실행이 허가되어 있지 않다고 판정된 경우, 스텝 S373 내지 스텝 S377의 처리가 스킵되어, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
세컨더리 변환이 행하여지지 않는 것이라면, 세컨더리 변환 플래그 st_flag의 값은 0으로 고정된다. 따라서, 이 경우, 세컨더리 변환 플래그 st_flag를 복호측에 전송할 필요가 없으므로, 세컨더리 변환 플래그 부호화부(321)는, 세컨더리 변환 플래그 st_flag의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S372에 있어서, 세컨더리 변환 유효 플래그 st_enabled_flag가 1이라고 판정된 경우, 즉, 세컨더리 변환의 실행이 허가되어 있다고 판정된 경우, 처리는 스텝 S373으로 진행한다.
스텝 S373에 있어서, 세컨더리 변환 플래그 부호화부(321)는, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참)인지 여부를 판정한다. 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1이라고 판정된 경우, 즉, 변환(프라이머리 변환 및 세컨더리 변환) 및 양자화를 스킵(바이패스)한다고 판정된 경우, 스텝 S374 내지 스텝 S377의 처리가 스킵되어, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
변환 및 양자화가 바이패스되는 것이라면, 세컨더리 변환 플래그 st_flag는 불필요하다. 따라서, 이 경우, 변환 스킵 플래그 부호화부(306)는, 세컨더리 변환 플래그 st_flag의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S373에 있어서, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0이라고 판정된 경우, 즉, 변환 및 양자화를 스킵(바이패스)하지 않다고 판정된 경우, 처리는 스텝 S374로 진행한다.
스텝 S374에 있어서, 세컨더리 변환 플래그 부호화부(321)는, 변환 스킵 플래그 ts_flag가 1(참)인지 여부를 판정한다. 변환 스킵 플래그 ts_flag가 1이라고 판정된 경우, 즉, 변환(프라이머리 변환)을 스킵한다고 판정된 경우, 스텝 S375 내지 스텝 S377의 처리가 스킵되어, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
프라이머리 변환이 스킵되는 경우, 세컨더리 변환도 스킵된다. 따라서 세컨더리 변환 플래그 st_flag의 값은 0으로 고정된다. 따라서, 이 경우, 세컨더리 변환 플래그 st_flag를 복호측에 전송할 필요가 없으므로, 세컨더리 변환 플래그 부호화부(321)는, 세컨더리 변환 플래그 st_flag의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S374에 있어서, 변환 스킵 플래그 ts_flag가 0이라고 판정된 경우, 즉, 변환(프라이머리 변환)을 실행한다고 판정된 경우, 처리는 스텝 S375로 진행한다.
스텝 S375에 있어서, 세컨더리 변환 플래그 부호화부(321)는, 잔차 정보 Rinfo를 참조하여, 변환 블록 내에 존재하는 비제로 계수를 카운트하고, 그 총 수 numSig(sig_coeff_flag==1의 총 수)를 구한다.
스텝 S376에 있어서, 세컨더리 변환 플래그 부호화부(321)는, 비제로 계수의 총 수 numSig이 소정의 역치 TH 이상인지 여부(numSig>=TH)를 판정한다. 비제로 계수의 총 수 numSig이 소정의 역치 TH보다 적다(numSig<TH)고 판정된 경우, 스텝 S377의 처리가 스킵되어, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
비제로 계수의 총 수 numSig이 소정의 역치 TH보다 적은 경우, 즉, 비제로 계수가 적은 소한 잔차 신호의 경우, 세컨더리 변환에 의해 에너지 콤팩션이 저하되어, 부호화 효율이 저감될 우려가 있어서, 부호화 효율의 저감을 억제하기 위해서는, 세컨더리 변환을 스킵하는 것이 바람직하다. 즉, 이 경우, 세컨더리 변환을 스킵하도록 제어된다. 따라서, 세컨더리 변환 플래그 st_flag의 값은 0으로 고정된다. 따라서, 이 경우, 세컨더리 변환 플래그 st_flag를 복호측에 전송할 필요가 없으므로, 세컨더리 변환 플래그 부호화부(321)는, 세컨더리 변환 플래그 st_flag의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S376에 있어서, 비제로 계수의 총 수 numSig이 소정의 역치 TH 이상이라고 판정된 경우, 처리는 스텝 S377로 진행한다.
스텝 S377에 있어서, 세컨더리 변환 플래그 부호화부(321)는, 세컨더리 변환 플래그 st_flag를 부호화하고, 비트열(부호화 데이터)을 생성하여 출력한다. 이 부호화에 의해 얻어진 세컨더리 변환 플래그 st_flag의 부호화 데이터는, 양자화 변환 계수 레벨 level의 부호화 데이터를 포함하는 비트 스트림에 포함된다.
즉, 이하의 조건식 (33)이 1(참)이 되는 경우에만, 세컨더리 변환 플래그 st_flag가 부호화된다. 이것은, 도 20을 참조하여 설명한 신택스의 위로부터 7단째에 대응한다.
논리값=(st_enabled_flag &&
(transquant_bypass_flag==0 || ts_flag==0) &&
numSig>=TH)
···(33)
스텝 S377의 처리가 종료되면, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
이상과 같이 부호화 처리를 실행함으로써, 화상 부호화 장치(100)는, 변환 블록 단위로 세컨더리 변환 플래그 st_flag를 부호화하는 경우에 있어서, 변환 스킵을 적용하는 경우(ts_flag=1), 세컨더리 변환 플래그 st_flag의 부호화를 스킵할 수 있다. 또한, 화상 부호화 장치(100)는, 변환 및 양자화의 바이패스를 적용하는 경우(transquant_bypass_flag=1), 세컨더리 변환 플래그 st_flag의 부호화를 스킵할 수 있다. 즉, 세컨더리 변환 플래그 st_flag에 관한 부호량의 삭감, 및 부호화에 관한 처리량을 저감할 수 있다.
또한, 상술한 부호화 처리는, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다. 또한, 상술한 신택스나 조건식 (33)은 실시 가능한 범위에서 연산을 변경 가능하다.
상술한 예에서는, 변환 블록 단위로 세컨더리 변환 플래그 st_flag의 부호화 처리에 대하여 설명했지만, 세컨더리 변환 플래그 st_flag 대신에 세컨더리 변환 식별자 st_idx를 부호화해도 된다. 이 경우, 도 20에 도시하는 신택스 테이블의 위로부터 8단째에 도시하는, 세컨더리 변환 플래그 st_flag를 세컨더리 변환 식별자 st_idx로 치환한다. 또한, 마찬가지로, 도 21에 있어서, 세컨더리 변환 플래그 부호화부(321)를, 도 16에 도시하는 세컨더리 변환 식별자 st_idx의 부호화에 관한 기능을 갖는 세컨더리 변환 식별자 부호화부(302)로 치환한다. 마찬가지로, 도 23의 흐름도에 있어서의 각 스텝에 있어서, 세컨더리 변환 플래그 st_flag의 부분을, 세컨더리 변환 식별자 st_idx로 치환하여 해석한다.
이상과 같이 부호화 처리를 실행함으로써, 화상 부호화 장치(100)는, 변환 블록 단위로 세컨더리 변환 식별자 st_idx를 부호화하는 경우에 있어서, 변환 스킵을 적용하는 경우(ts_flag=1), 세컨더리 변환 식별자 st_idx의 부호화를 스킵할 수 있다. 또한, 화상 부호화 장치(100)는, 변환 및 양자화의 바이패스를 적용하는 경우(transquant_bypass_flag=1), 세컨더리 변환 식별자 st_idx의 부호화를 스킵할 수 있다. 즉, 세컨더리 변환 식별자 st_idx에 관한 부호량의 삭감, 및 부호화에 관한 처리량을 저감할 수 있다.
또한, 상술한 조건식 (33)에 한정되지 않고, 휘도의 경우에만, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)를 부호화하도록, 하기 조건식 (34)로 변경해도 된다. 즉, 색 공간을 나타내는 식별자 cIdx가 휘도의 값 Luma(=0)을 나타내는 경우, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)의 부호화를 하고, cIdx가 색차의 값 Cb(=1) 또는 Cr(=2)을 나타내는 경우, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)의 부호화를 생략한다.
논리값=(cIdx==Luma && st_enabled_flag &&
(transquant_bypass_flag==0 || ts_flag==0) &&
numSig>=TH)
···(34)
또한, 상술한 조건식 (33)에 한정되지 않고, 인트라의 경우에만, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)를 부호화하도록, 하기 조건식 (35)로 변경해도 된다. 즉, CU의 예측 모드를 나타내는 CuPredMode[x0][y0]이 인트라 예측(=MODE_INTRA)을 나타내는 경우, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)를 부호화하고, 인터 예측의 경우, 부호화를 생략한다.
논리값=(CuPredMode[x0][y0]==MODE_INTRA && st_enabled_flag &&
(transquant_bypass_flag==0 || ts_flag==0) &&
numSig>=TH)
···(35)
또한, 조건식 (33) 내지 (35)의 조건은, 각각 조합해도 된다.
<복호부>
다음으로 화상 복호 장치(200)에 대하여 설명한다. 이 경우에도 화상 복호 장치(200)는, 제1 실시 형태의 경우와 기본적으로 동일한 구성을 갖는다. 단, 이 경우의 화상 복호 장치(200)는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환이 스킵되는 경우, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는 복호부를 구비한다. 즉, 이 경우의 복호부(211)는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환이 스킵되는 경우, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵한다.
도 24는, 이 경우의 복호부(211)가 프로그램 등을 실행함으로써 실현하는, 세컨더리 변환 플래그 st_flag의 복호에 관한 주된 기능의 예를 도시하는 기능 블록도이다. 도 24에 도시된 바와 같이, 이 경우의 복호부(211)는, 프로그램을 실행함으로써, 세컨더리 변환 플래그 st_flag의 복호에 관한 기능으로서, 예를 들어, 제2 실시 형태에 있어서 설명한 복호부(211)와 동일한, 세컨더리 변환 유효 플래그 복호부(311), 변환 스킵 유효 플래그 복호부(313), 최대 변환 스킵 블록 사이즈 복호부(314), 변환 양자화 바이패스 플래그 복호부(315), 및 변환 스킵 플래그 복호부(316)의 기능을 가질 수 있다. 또한, 복호부(211)는, 프로그램을 실행함으로써, 세컨더리 변환 플래그 st_flag의 복호에 관한 기능으로서, 예를 들어, 세컨더리 변환 플래그 복호부(331)의 기능을 가질 수 있다.
세컨더리 변환 플래그 복호부(331)는, 역세컨더리 변환의 실행에 관한 정보인 세컨더리 변환 플래그 st_flag의 부호화 데이터의 복호에 관한 처리를 행한다. 예를 들어, 세컨더리 변환 플래그 st_flag가 1(참)인 경우, 역세컨더리 변환이 실행된다. 또한, 예를 들어, 세컨더리 변환 플래그 st_flag가 0(거짓)인 경우, 역세컨더리 변환이 스킵된다.
<복호 처리의 흐름>
이어서, 화상 복호 장치(200)에 의해 실행되는 각 처리의 흐름의 예를 설명한다. 이 경우 화상 복호 장치(200)는, 화상 복호 처리를, 제1 실시 형태의 경우와 기본적으로 마찬가지로 행한다. 단, 이 경우, 화상 복호 장치(200)는, 화상 복호 처리의 스텝 S201(도 13)에 있어서, 세컨더리 변환 플래그 st_flag 등의 부호화 데이터의 복호를, 변환 스킵 플래그 ts_flag의 값 등에 따라서 행한다. 이 세컨더리 변환 플래그 st_flag 등의 부호화 데이터의 복호의 흐름의 예를 도 25 및 도 26의 흐름도를 참조하여 설명한다. 즉, 도 25 및 도 26에 도시하는 부호화 처리는, 도 13의 스텝 S201에 있어서 행하여지는 복호 처리의 일부로서 실행된다.
복호 처리가 개시되면, 도 25의 스텝 S381 내지 스텝 S389의 각 처리가, 스텝 S335 내지 스텝 S339, 그리고, 스텝 S341 내지 스텝 S344의 각 처리(도 19)와 마찬가지로 실행된다.
또한, 스텝 S385에 있어서, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0이라고 판정된 경우, 즉, 변환 및 양자화를 스킵(바이패스)하지 않다고 판정된 경우, 처리는 스텝 S386으로 진행한다.
또한, 스텝 S388에 있어서, 변환 스킵 플래그 ts_flag가 0으로 추정되어, 변환 스킵 플래그 ts_flag가 0으로 설정되면, 처리는 도 26의 스텝 S391로 진행한다. 마찬가지로, 스텝 S389에 있어서, 변환 스킵 플래그 ts_flag의 부호화 데이터가 복호되면, 처리는 도 26의 스텝 S391로 진행한다.
도 26의 스텝 S391에 있어서, 세컨더리 변환 유효 플래그 복호부(311)는, 비트 스트림(부호화 데이터)에 포함되는 세컨더리 변환 유효 플래그 st_enabled_flag의 부호화 데이터를 복호하고, 헤더 정보 Hinfo의 일부로서 출력한다.
스텝 S392에 있어서, 세컨더리 변환 플래그 복호부(331)는, 그 복호된 세컨더리 변환 유효 플래그 st_enabled_flag가 1(참)인지 여부를 판정한다. 세컨더리 변환 유효 플래그 st_enabled_flag가 0이라고 판정된 경우, 즉, 역세컨더리 변환의 실행이 허가되어 있지 않다고 판정된 경우, 스텝 S393 내지 스텝 S396의 처리가 스킵되고, 처리는 스텝 S397로 진행한다.
역세컨더리 변환이 허가되어 있지 않으면, 역세컨더리 변환은 스킵된다. 즉, 세컨더리 변환 플래그 st_flag의 값은 0으로 고정된다. 따라서, 이 경우, 세컨더리 변환 플래그 st_flag는 부호화측으로부터 전송되지 않으므로, 세컨더리 변환 플래그 복호부(331)는, 세컨더리 변환 플래그 st_flag의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S392에 있어서, 세컨더리 변환 유효 플래그 st_enabled_flag가 1이라고 판정된 경우, 즉, 역세컨더리 변환의 실행이 허가되어 있다고 판정된 경우, 처리는 스텝 S393으로 진행한다.
스텝 S393에 있어서, 세컨더리 변환 플래그 복호부(331)는, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참)인지 여부를 판정한다. 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1이라고 판정된 경우, 즉, 역변환(역세컨더리 변환 및 역프라이머리 변환) 및 역양자화를 스킵(바이패스)한다고 판정된 경우, 스텝 S394 내지 스텝 S396의 처리가 스킵되고, 처리는 스텝 S397로 진행한다.
역변환 및 역양자화가 바이패스되는 것이라면, 세컨더리 변환 플래그 st_flag는 불필요하다. 따라서, 이 경우, 세컨더리 변환 플래그 복호부(331)는, 세컨더리 변환 플래그 st_flag의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S393에 있어서, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0이라고 판정된 경우, 즉, 역변환 및 역양자화를 스킵(바이패스)하지 않다고 판정된 경우, 처리는 스텝 S394로 진행한다.
스텝 S394에 있어서, 세컨더리 변환 플래그 복호부(331)는, 변환 스킵 플래그 ts_flag가 1(참)인지 여부를 판정한다. 변환 스킵 플래그 ts_flag가 1(참)이라고 판정된 경우, 즉, 역변환(역프라이머리 변환)을 스킵한다고 판정된 경우, 스텝 S395 및 스텝 S396의 처리가 스킵되고, 처리는 스텝 S397로 진행한다.
역프라이머리 변환이 스킵된다면, 역세컨더리 변환도 스킵된다. 즉, 세컨더리 변환 플래그 st_flag의 값은 0으로 고정된다. 따라서, 이 경우, 세컨더리 변환 플래그 st_flag는 부호화측으로부터 전송되지 않으므로, 세컨더리 변환 플래그 복호부(331)는, 세컨더리 변환 플래그 st_flag의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S394에 있어서, 변환 스킵 플래그 ts_flag가 0(거짓)이라고 판정된 경우, 즉, 역변환(역프라이머리 변환)을 실행한다고 판정된 경우, 처리는 스텝 S395로 진행한다.
스텝 S395에 있어서, 세컨더리 변환 플래그 복호부(331)는, 잔차 정보 Rinfo를 참조하여, 변환 블록 내에 존재하는 비제로 계수를 카운트하고, 그 총 수 numSig(sig_coeff_flag==1의 총 수)를 구한다.
스텝 S396에 있어서, 세컨더리 변환 플래그 복호부(331)는, 비제로 계수의 총 수 numSig이 소정의 역치 TH 이상인지 여부(numSig>=TH)를 판정한다. 비제로 계수의 총 수 numSig이 소정의 역치 TH보다 적다(numSig<TH)고 판정된 경우, 처리는 스텝 S397로 진행한다.
비제로 계수의 총 수 numSig이 소정의 역치 TH보다 적은 경우, 즉, 비제로 계수가 적은 소한 잔차 신호의 경우, 역세컨더리 변환에 의해 에너지 콤팩션이 저하되어, 부호화 효율이 저감될 우려가 있어서, 부호화 효율의 저감을 억제하기 위해서는, 역세컨더리 변환을 스킵하는 것이 바람직하다. 즉, 이 경우, 역세컨더리 변환을 스킵하도록 제어된다. 따라서, 세컨더리 변환 플래그 st_flag의 값은 0으로 고정된다. 따라서, 이 경우, 세컨더리 변환 플래그 st_flag는 부호화측으로부터 전송되지 않으므로, 세컨더리 변환 플래그 복호부(331)는, 세컨더리 변환 플래그 st_flag의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S397에 있어서, 세컨더리 변환 플래그 복호부(331)는, 세컨더리 변환 플래그 st_flag의 부호화 데이터의 복호를 스킵한다. 또한, 이 경우, 역세컨더리 변환은 스킵되므로, 세컨더리 변환 플래그 st_flag의 값은 0으로 고정된다. 따라서, 세컨더리 변환 플래그 복호부(331)는, 세컨더리 변환 플래그 st_flag의 값이 0이라고 추정한다. 즉, 세컨더리 변환 플래그 복호부(331)는, 세컨더리 변환 플래그 st_flag의 값을 0으로 설정한다(st_flag=0). 스텝 S397의 처리가 종료되면 복호 처리가 종료되고, 처리는, 도 13으로 되돌아간다.
스텝 S396에 있어서, 비제로 계수의 총 수 numSig이 소정의 역치 TH 이상(numSig>=TH)이라고 판정된 경우, 처리는 스텝 S398로 진행한다.
스텝 S398에 있어서, 세컨더리 변환 플래그 복호부(331)는, 세컨더리 변환 플래그 st_flag의 부호화 데이터를 복호한다.
즉, 상술한 조건식 (33)이 1(참)이 되는 경우에만, 세컨더리 변환 플래그 st_flag의 부호화 데이터가 복호된다. 이것은, 도 20을 참조하여 설명한 신택스의 위로부터 7단째에 대응한다.
스텝 S398의 처리가 종료되면, 복호 처리가 종료되고, 처리는, 도 13으로 되돌아간다.
이상과 같이 복호 처리를 실행함으로써, 화상 복호 장치(200)는, 변환 블록 단위로 세컨더리 변환 플래그 st_flag를 복호하는 경우에 있어서, 변환 스킵을 적용하는 경우(ts_flag=1), 세컨더리 변환 플래그 st_flag의 부호화 데이터의 복호를 스킵할 수 있다. 또한, 화상 복호 장치(200)는, 역변환 및 역양자화의 바이패스를 적용하는 경우(transquant_bypass_flag=1), 세컨더리 변환 플래그 st_flag의 부호화 데이터의 복호를 스킵할 수 있다. 즉, 세컨더리 변환 플래그 st_flag에 관한 부호량의 삭감, 및 복호에 걸리는 처리량을 저감할 수 있다.
또한, 상술한 복호 처리는, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다. 또한, 상술한 신택스나 조건식 (33)은 실시 가능한 범위에서 연산을 변경 가능하다.
상술한 예에서는, 변환 블록 단위로 세컨더리 변환 플래그 st_flag의 복호 처리에 대하여 설명했지만, 세컨더리 변환 플래그 st_flag 대신에 세컨더리 변환 식별자 st_idx를 복호해도 된다. 이 경우, 도 27에 도시하는 신택스 테이블의 위로부터 8단째에 도시하는, 세컨더리 변환 플래그 st_flag를 세컨더리 변환 식별자 st_idx로 치환한다. 또한, 마찬가지로, 도 24에 있어서, 세컨더리 변환 플래그 복호부(331)를, 도 18에 도시하는 세컨더리 변환 식별자 st_idx의 복호에 관한 기능을 갖는 세컨더리 변환 식별자 복호부(312)로 치환한다. 마찬가지로, 도 26의 흐름도의 각 스텝에 있어서, 세컨더리 변환 플래그 st_flag의 부분을, 세컨더리 변환 식별자 st_idx로 치환하여 해석한다.
이상과 같이 복호 처리를 실행함으로써, 화상 복호 장치(200)는, 변환 블록 단위로 세컨더리 변환 식별자 st_idx를 복호하는 경우에 있어서, 변환 스킵을 적용하는 경우(ts_flag=1), 세컨더리 변환 식별자 st_idx의 복호를 스킵할 수 있다. 또한, 화상 복호 장치(200)는, 역양자화 및 역변환의 바이패스를 적용하는 경우(transquant_bypass_flag=1), 세컨더리 변환 식별자 st_idx의 복호를 스킵할 수 있다. 즉, 세컨더리 변환 식별자 st_idx에 관한 부호량의 삭감, 및 복호에 관한 처리량을 저감할 수 있다.
또한, 상술한 조건식 (33)에 한정되지 않고, 휘도의 경우에만, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)를 복호하도록 상술한 조건식 (34)로 변경해도 된다. 즉, 색 공간을 나타내는 식별자 cIdx가 휘도의 값 Luma(=0)을 나타내는 경우, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)의 복호를 하고, cIdx가 색차의 값 Cb(=1) 또는 Cr(=2)을 나타내는 경우, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)의 복호를 생략한다.
또한, 상술한 조건식 (33)에 한정되지 않고, 인트라의 경우에만, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)를 복호하도록 상술한 조건식 (35)로 변경해도 된다. 즉, CU의 예측 모드를 나타내는 CuPredMode[x0][y0]이 인트라 예측(=MODE_INTRA)을 나타내는 경우, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)를 복호하고, 인터 예측의 경우, 복호를 생략한다. 또한, 조건식 (33) 내지 (35)의 조건은, 각각 조합해도 된다.
<4. 제4 실시 형태>
<세컨더리 변환 플래그의 부호화·복호의 스킵>
비특허문헌 2에는, 세컨더리 변환 플래그 st_flag의 오버헤드를 삭감하기 위해서, 변환 블록 내의 비제로 계수가 소정 역치 TH(예를 들어 2) 이하인 경우, 세컨더리 변환을 적용하지 않는 것으로 하여 세컨더리 변환 플래그 st_flag의 시그널을 스킵하는 것이 개시되어 있다.
예를 들어, 8×8 변환 블록에 있어서, 8×8 변환 블록의 각 서브블록(4×4)에 비제로 계수가 각 1개 존재하는 것으로 하면, 변환 블록 내의 비제로 계수의 총 수는 4이다. 따라서, 이 총 수를 역치 TH(=2)와 비교하면, 세컨더리 변환을 적용할지 여부를 나타내는 st_flag를 시그널(부호화)하게 된다.
따라서, 이하의 과제가 있다. 각 서브블록에 소한 비제로 계수가 존재하는 신호에 대하여 세컨더리 변환을 적용할 우려가 있어, 에너지 콤팩션이 저하될 가능성이 있었다. 또한, (역)세컨더리 변환의 스킵이 명확한 경우(즉, 세컨더리 변환 플래그 st_flag=0이 명확한 경우), 이 세컨더리 변환 플래그 st_flag를 시그널(부호화)하면, 그 세컨더리 변환 플래그 st_flag의 오버헤드가 낭비되어, 부호화 효율이 저감될 우려가 있었다.
그래서, 처리 대상의 변환 블록에 포함되는 비제로 계수의 수의, 서브블록 단위의 평균값이 역치보다 적은 경우, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 스킵에 관한 제1 정보의 부호화를 스킵하도록 한다.
이와 같이 함으로써, 서브블록의 비제로 계수가 소인 경우에, 세컨더리 변환을 스킵할 수 있게 된다. 이에 의해, 에너지 콤팩션의 저하를 억제하여, 부호화 효율의 저감을 억제할 수 있다.
또한, 처리 대상의 변환 블록에 포함되는 비제로 계수의 수의, 서브블록 단위의 평균값이 역치보다 적은 경우, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵하도록 한다.
이와 같이 함으로써, 서브블록의 비제로 계수가 소인 경우에, 역세컨더리 변환을 스킵할 수 있게 된다. 이에 의해, 에너지 콤팩션의 저하를 억제하여, 부호화 효율의 저감을 억제할 수 있다.
<신택스>
이러한 제어를 나타내는 의사 코드를 기재한 신택스 테이블의 예를 도 27에 도시하였다. 도 27의 위로부터 7단째에 도시된 바와 같이, 세컨더리 변환 플래그 st_flag의 부호화(세컨더리 변환 플래그 st_flag의 부호화 데이터의 복호)는 처리 대상의 변환 블록에 포함되는 비제로 계수의 수, 서브블록 단위의 평균값인 서브블록 내 평균 비제로 계수수 numSigInSBK가, 소정의 역치(TH) 이상인 것이 조건의 하나가 된다. 즉, 서브블록 내 평균 비제로 계수수 numSigInSBK가 소정의 역치(TH)보다 적은 경우, 즉, 서브블록의 비제로 계수가 소인 경우, 세컨더리 변환 플래그 st_flag의 부호화(세컨더리 변환 플래그 st_flag의 부호화 데이터의 복호)가 스킵된다.
<부호화부>
이 경우, 화상 부호화 장치(100)는, 제1 실시 형태의 경우와 기본적으로 동일한 구성을 갖는다. 단, 이 경우의 화상 부호화 장치(100)는, 처리 대상의 변환 블록에 포함되는 비제로 계수의 수의, 서브블록 단위의 평균값이 역치보다 적은 경우, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 스킵에 관한 제1 정보의 부호화를 스킵하는 부호화부를 구비한다. 즉, 이 경우의 부호화부(114)는, 처리 대상의 변환 블록에 포함되는 비제로 계수의 수의, 서브블록 단위의 평균값이 역치보다 적은 경우, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 스킵에 관한 제1 정보의 부호화를 스킵한다.
이 경우의 부호화부(114)는, 프로그램 등을 실행함으로써, 제3 실시 형태에 있어서 설명한 것과 기본적으로 동일한 기능을 갖는다. 즉, 부호화부(114)는, 도 21을 참조하여 설명한 바와 같은 기능 블록을 갖는다.
<부호화 처리의 흐름>
이어서, 화상 부호화 장치(100)에 의해 실행되는 각 처리의 흐름의 예를 설명한다. 이 경우 화상 부호화 장치(100)는, 화상 부호화 처리를, 제1 실시 형태의 경우와 기본적으로 마찬가지로 행한다. 단, 이 경우, 화상 부호화 장치(100)는, 화상 부호화 처리의 스텝 S110(도 9)에 있어서, 세컨더리 변환 플래그 st_flag 등의 부호화를, 서브블록 내 평균 비제로 계수수 numSigInSBK 등에 따라서 행한다. 이 세컨더리 변환 플래그 st_flag 등의 부호화의 흐름의 예를 도 28 및 도 29의 흐름도를 참조하여 설명한다. 즉, 도 28 및 도 29에 도시하는 부호화 처리는, 도 9의 스텝 S110에 있어서 행하여지는 부호화 처리의 일부로서 실행된다. 기타의 부호화 파라미터나 양자화 변환 계수 레벨 level의 부호화는 임의의 방법으로 행해진다.
부호화 처리가 개시되면, 도 28의 스텝 S401 내지 스텝 S408의 각 처리가, 도 22의 스텝 S361 내지 스텝 S368의 각 처리와 마찬가지로 실행된다.
스텝 S405 또는 스텝 S408의 처리가 종료되면, 처리는 도 29의 스텝 S411로 진행한다.
도 29의 스텝 S411 내지 스텝 S414의 각 처리는, 도 23의 스텝 S371 내지 스텝 S374의 각 처리와 마찬가지로 실행된다.
스텝 S414에 있어서, 변환 스킵 플래그 ts_flag가 0이라고 판정된 경우, 즉, 변환(프라이머리 변환)을 실행한다고 판정된 경우, 처리는 스텝 S415로 진행한다.
스텝 S415에 있어서, 세컨더리 변환 플래그 부호화부(321)는, 서브블록 내 평균 비제로 계수수 nmSigInSBK를 구한다. 예를 들어, 세컨더리 변환 플래그 부호화부(321)는, 잔차 정보 Rinfo를 참조하여, 변환 블록 내에 존재하는 비제로 계수의 총 수 numSig(sig_coeff_flag==1의 총 수)를 이하의 식 (36)과 같이 도출한다.
numSig=Σ(sig_coeff_flag(i,j))
(i=0…TBSize-1,j=0…TBSize-1)
···(36)
이어서, 세컨더리 변환 플래그 부호화부(321)는, 구한 비제로 계수의 총 수 numSig을, 변환 블록 내의 서브블록의 총 수로 제산하고, 서브블록 내 평균 비제로 계수수 numSigInSBK를 이하의 식 (37)에 의해 도출한다.
numSigInSBK=numSig/(TBSize*TBSize/16)
···(37)
또한, 식 (37)에 있어서, 제산 대신 시프트 연산을 사용하여, 이하의 식 (38)과 같이, 서브블록 내 평균 비제로 계수수 numSigInSBK를 도출하도록 해도 된다.
numSigInSBK=numSig>>(2*(log2TBSize-2))
···(38)
여기서, log2TBSize는, 변환 블록 사이즈 TBSize의 2를 밑으로 하는 대수값이다. 또한, 여기서, 변환 블록은 TBSize×TBSize의 직사각형인 것을 상정하고 있지만, TBXSize×TBYSize의 직사각형이어도 된다. 이 경우, 상술한 식 (36)은 이하의 식 (39)로 치환하고, 상술한 식 (38)은 이하의 식 (40)으로 치환하면 된다.
numSig=Σ(sig_coeff_flag(i,j))
(i=0…TBXSize-1,j=0…TBYSize-1)
···(39)
numSigInSBK=numSig>>((log2TBXSize-2)+(log2TBYSize-2))
···(40)
여기서, log2TBXSize는, 변환 블록의 가로폭 TBXSize의 2를 밑으로 하는 대수값이며, log2TBYSize는, 변환 블록의 세로폭 TBYSize의 2를 밑으로 하는 대수값이다.
또한, 이상의 식 (36) 내지 식 (40)에서는, 변환 블록 내의 모든 서브블록에 있어서의 비제로 계수의 수를 하나하나 열거하고 있지만, 소정의 영역에 한정해도 된다. 예를 들어, TBXSize×TBYSize의 변환 블록에 있어서, 저주파 영역에 존재하는 서브블록 내의 비제로 계수를 하나하나 열거해도 된다. 예를 들어, 이하의 식 (41)에 나타낸 바와 같이, TBXSize×TBYSize의 변환 블록의 좌상반부에 존재하는 서브블록을 대상으로 하도록 해도 된다. 이 경우, 식 (40)은 이하의 식 (42)로 치환하면 된다.
numSig=Σ(sig_coeff_flag(i,j))
(i=0…TBXSize/2-1,j=0…TBYSize/2-1)
···(41)
numSigInSBK=numSig>>((log2TBXSize-3)+(log2TBYSize-3))
···(42)
또한, 이상의 식 (36) 내지 식 (42)에서는, 변환 블록 내의 모두(또는 소정 영역)의 서브블록에 있어서의 비제로 계수의 수 numSig을, 변환 블록 내의 모두(또는 소정 영역)의 서브블록의 총 수로 제산(또는 시프트 연산)을 하고 있지만, 제산(또는 시프트 연산) 전에, 서브블록수/2(=numSBK>>1)의 값을 오프셋으로서 가산하고 나서, 제산(또는 시프트 연산)해도 된다(예를 들어, 이하의 식 (43), 식 (44), 식 (45), 식 (46)). 여기서, numSBK는, 변환 블록 내의 모두(또는 소정 영역)의 서브블록수를 나타내고, 식 (43) 내지 식 (45)에 있어서의 numSBK는, numSBK=TBXSize*TBYSize/16=1<<((log2TBXSize-2)+(logTBYSize-2))이 되고, 식 (46)에 있어서의 numSBK는, numSBK=1<<((log2TBXSize-3)+(logTBYSize-3))이다.
numSigInSBK=(numSig+(numSBK>>1))/(TBSize*TBSize/16)
···(43)
numSigInSBK=(numSig+(numSBK>>1))>>(2*(log2TBSize-2))
···(44)
numSigInSBK=(numSig+(numSBK>>1))>>((log2TBXSize-2)+(log2TBYSize-2))
···(45)
numSigInSBK=(numSig+(numSBK>>1))>>((log2TBXSize-3)+(log2TBYSize-3))
···(46)
또한, 이상의 식 (36) 내지 식 (42)에서는, 변환 블록 내의 모두(또는 소정 영역)의 서브블록에 있어서의 비제로 계수의 수 numSig을, 변환 블록 내의 모두(또는 소정 영역)의 서브블록의 총 수로 제산(또는 시프트 연산)을 함으로써, 서브블록 내 평균 비제로 계수수 numSigInSBK를 도출하고 있지만, 제산에 사용하는 서브블록수를 비제로 계수가 존재하는 서브블록의 총 수 numNonZeroSBK(비제로 서브블록수라고도 칭한다)로 치환해도 된다. 예를 들어, 비제로 서브블록수 numNonZeroSBK를 이하의 식 (47)에 의해 도출한다. 즉, 서브블록 비제로 계수 유무 플래그 coded_sub_blck_flag(i,j)이 1이 되는 서브블록의 수를 하나하나 열거함으로써 비제로 서브블록수 numNonZeroSBK를 도출할 수 있다. 이 경우, 서브블록 내 평균 비제로 계수수 numSigInSBK는, 식 (40) 대신에 이하의 식 (48)에 의해 도출할 수 있다. 또한, 식 (48)에서는, 제로 제산을 피하기 위해서, 비제로 서브블록수 numNonZeroSBK가 0인지 여부를 판정하고, 0이라면, numSigInSBK에 0을 설정하고, 0보다 크면, numSigInSBK에numSig을numNonZeroSBK로 제산한 값을 설정한다.
numNonZero=Σ(coded_sub_block_flag(i,j))
(i=0…(TBXSize>>2)-1,j=0…(TBYSize>>2)-1)
···(47)
numSigInSBK=numNonZeroSBK==0 ? 0: numSig/numNonZeroSBK
···(48)
또한, 변환 블록 내의 소정 영역을 대상으로 하여, 그 소정 영역 내에 있는 서브블록에 있어서의 비제로 계수의 수, 및 비제로 계수를 갖는 서브블록의 수에 기초하여, 서브블록 내 평균 비제로 계수수 numSigInSBK를 도출해도 된다. 예를 들어, TBXSize×TBYSize의 변환 블록의 좌상반부에 존재하는 서브블록을 대상으로 하도록 해도 된다. 이 경우, 비제로 계수수 numSig은, 상술한 식 (41)에 의해 도출하고, 비제로 서브블록수 numNonZeroSBK는 이하의 식 (49)에 의해 도출한다. 도출한 numSig, 및 numNonZeroSBK를 참조하여, 상술한 식 (48)에 의해, 서브블록 내 평균 비제로 계수수 numSigInSBK를 도출한다.
numNonZero=Σ(coded_sub_block_flag(i,j))
(i=0…(TBXSize>>3)-1,j=0…(TBYSize>>3)-1)
···(49)
이상과 같이, 서브블록 내 평균 비제로 계수수 nmSigInSBK가 구해지면, 처리는 스텝 S416으로 진행한다.
스텝 S416에 있어서, 세컨더리 변환 플래그 부호화부(321)는, 서브블록 내 평균 비제로 계수수 numSigInSBK가 소정의 역치 TH 이상인지 여부(numSigInSBK>=TH)를 판정한다. 그 조건식의 논리값이 0(거짓)이라고 판정된 경우, 즉, numSigInSBK<TH를 만족시킨다고 판정된 경우, 스텝 S417의 처리가 스킵되어, 부호화 처리가 종료되고, 처리는, 도 9로 되돌아간다.
서브블록 내 평균 비제로 계수수 numSigInSBK가 소정의 역치 TH보다 적은 경우, 비제로 계수가 소한 서브블록이 존재한다. 그러한 서브블록에 대하여 세컨더리 변환을 행하면, 에너지 콤팩션이 저하되어, 부호화 효율이 저감될 우려가 있다. 따라서, 부호화 효율의 저감을 억제하기 위해서는, 세컨더리 변환을 스킵하는 것이 바람직하다. 즉, 이 경우, 세컨더리 변환을 스킵하도록 제어된다. 따라서, 세컨더리 변환 플래그 st_flag의 값은 0으로 고정된다. 따라서, 이 경우, 세컨더리 변환 플래그 st_flag를 복호측에 전송할 필요가 없다. 따라서, 세컨더리 변환 플래그 부호화부(321)는, 세컨더리 변환 플래그 st_flag의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S416에 있어서, 그 조건식의 논리값이 1(참)이라고 판정된 경우, 즉, numSigInSBK>=TH를 충족시키는 경우, 처리는 스텝 S417로 진행한다.
스텝 S417에 있어서, 세컨더리 변환 플래그 부호화부(321)는, 세컨더리 변환 플래그 st_flag를 부호화하고, 비트열(부호화 데이터)을 생성하여 출력한다. 이 부호화에 의해 얻어진 세컨더리 변환 플래그 st_flag의 부호화 데이터는, 양자화 변환 계수 레벨 level의 부호화 데이터를 포함하는 비트 스트림에 포함된다.
즉, 이하의 조건식 (50)이 1(참)이 되는 경우에만, 세컨더리 변환 플래그 st_flag가 부호화된다. 이것은, 도 27을 참조하여 설명한 신택스의 위로부터 7단째에 대응한다.
논리값=(st_enabled_flag &&
(transquant_bypass_flag==0 || ts_flag==0) &&
numSigInSBK>=TH)
···(50)
이상과 같이 부호화 처리를 실행함으로써, 화상 부호화 장치(100)는, 변환 블록 내의 각 서브블록에 소한 비제로 계수가 존재하는 신호에 대하여 세컨더리 변환 플래그 st_flag의 부호화 처리를 스킵할 수 있다. 즉, 세컨더리 변환 플래그의 부호화에 관한 처리량을 저감할 수 있다. 또한, 변환 블록 내의 각 서브블록에 소한 비제로 계수가 존재하는 신호에 대하여 에너지 콤팩션의 저하를 억제할 수 있다. 즉, 부호화 효율의 저감을 억제할 수 있다.
상술한 예에서는, 변환 블록 단위로 세컨더리 변환 플래그 st_flag의 부호화 처리에 대하여 설명했지만, 세컨더리 변환 플래그 st_flag 대신에 세컨더리 변환 식별자 st_idx를 부호화해도 된다. 이 경우, 도 27에 도시하는 신택스 테이블의 위로부터 8단째에 도시하는, 세컨더리 변환 플래그 st_flag를 세컨더리 변환 식별자 st_idx로 치환한다. 또한, 마찬가지로, 도 21에 있어서, 세컨더리 변환 플래그 부호화부(321)를, 도 16에 도시하는 세컨더리 변환 식별자 st_idx의 부호화에 관한 기능을 갖는 세컨더리 변환 식별자 부호화부(302)로 치환한다. 마찬가지로, 도 29의 흐름도의 각 스텝에 있어서, 세컨더리 변환 플래그 st_flag의 부분을, 세컨더리 변환 식별자 st_idx로 치환하여 해석한다.
이상과 같이 부호화 처리를 실행함으로써, 화상 부호화 장치(100)는, 변환 블록 내의 각 서브블록에 소한 비제로 계수가 존재하는 신호에 대하여 세컨더리 변환 식별자 st_idx의 부호화 처리를 스킵할 수 있다. 즉, 세컨더리 변환 식별자의 부호화에 관한 처리량을 저감할 수 있다. 또한, 변환 블록 내의 각 서브블록에 소한 비제로 계수가 존재하는 신호에 대하여 에너지 콤팩션의 저하를 억제할 수 있다. 즉, 부호화 효율의 저감을 억제할 수 있다.
또한, 상술한 조건식 (50)에 한정되지 않고, 휘도의 경우에만, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)를 부호화하도록, 하기 조건식 (51)로 변경해도 된다. 즉, 색 공간을 나타내는 식별자 cIdx가 휘도의 값 Luma(=0)을 나타내는 경우, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)의 부호화를 하고, cIdx가 색차 Cb(=1) 또는 Cr(=2)인 경우, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)의 부호화를 생략한다. 이 경우, 색차에 관한 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)는 부호화되지 않기 때문에, 휘도의 세컨더리 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)와 동등하다고 추정해도 된다. 또는, 색차의 잔차는, 일반적으로 휘도에 비하여, 소한 잔차 신호인 경우가 많기 때문에, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)를 세컨더리 변환을 스킵(생략)하는 것을 나타내는 값(0)과 동등하다고 추정해도 된다.
논리값=(cIdx==Luma && st_enabled_flag &&
(transquant_bypass_flag==0 || ts_flag==0) &&
numSigInSBK>=TH)
···(51)
또한, 상술한 조건식 (50)에 한정되지 않고, 인트라의 경우에만, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)를 부호화하도록, 하기 조건식 (52)로 변경해도 된다. 즉, CU의 예측 모드를 나타내는 CuPredMode[x0][y0]이 인트라 예측(=MODE_INTRA)을 나타내는 경우, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)를 부호화하고, 인터 예측의 경우, 부호화를 생략한다.
논리값=(CuPredMode[x0][y0]==MODE_INTRA && st_enabled_flag &&
(transquant_bypass_flag==0 || ts_flag==0) &&
numSigInSBK>=TH)
···(52)
또한, 조건식 (50) 내지 (52)의 조건은, 각각 조합해도 된다.
또한, 상술한 부호화 처리는, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다. 또한, 상술한 신택스나 조건식 (50) 내지 (52)는 실시 가능한 범위에서 연산을 변경 가능하다.
<복호부>
다음으로 화상 복호 장치(200)에 대하여 설명한다. 이 경우에도 화상 복호 장치(200)는, 제1 실시 형태의 경우와 기본적으로 동일한 구성을 갖는다. 단, 이 경우의 화상 복호 장치(200)는, 처리 대상의 변환 블록에 포함되는 비제로 계수의 수의, 서브블록 단위의 평균값이 역치보다 적은 경우, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는 복호부를 구비한다. 즉, 이 경우의 복호부(211)는, 처리 대상의 변환 블록에 포함되는 비제로 계수의 수의, 서브블록 단위의 평균값이 역치보다 적은 경우, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵한다.
이 경우의 복호부(211)는, 프로그램 등을 실행함으로써, 제3 실시 형태에 있어서 설명한 것과 기본적으로 동일한 기능을 갖는다. 즉, 복호부(211)는, 도 24를 참조하여 설명한 바와 같은 기능 블록을 갖는다.
<복호 처리의 흐름>
이어서, 화상 복호 장치(200)에 의해 실행되는 각 처리의 흐름의 예를 설명한다. 이 경우 화상 복호 장치(200)는, 화상 복호 처리를, 제1 실시 형태의 경우와 기본적으로 마찬가지로 행한다. 단, 이 경우, 화상 복호 장치(200)는, 화상 복호 처리의 스텝 S201(도 13)에 있어서, 세컨더리 변환 플래그 st_flag 등의 부호화 데이터의 복호를, 서브블록 내 평균 비제로 계수수 numSigInSBK 등에 따라서 행한다. 이 세컨더리 변환 플래그 st_flag 등의 부호화 데이터의 복호의 흐름의 예를 도 30 및 도 31의 흐름도를 참조하여 설명한다. 즉, 도 30 및 도 31에 도시하는 복호 처리는, 도 13의 스텝 S201에 있어서 행하여지는 복호 처리의 일부로서 실행된다. 기타의 부호화 파라미터나 양자화 변환 계수 레벨 level의 부호화 데이터의 복호는 임의의 방법으로 행해진다.
복호 처리가 개시되면, 도 30의 스텝 S421 내지 스텝 S429의 각 처리가, 도 25의 스텝 S381 내지 스텝 S389의 각 처리와 마찬가지로 실행된다.
스텝 S428 또는 스텝 S429의 처리가 종료되면, 처리는 도 31의 스텝 S431로 진행한다.
도 31의 스텝 S431 내지 스텝 S434의 각 처리는, 도 26의 스텝 S391 내지 스텝 S394의 각 처리와 마찬가지로 실행된다.
스텝 S434에 있어서, 변환 스킵 플래그 ts_flag가 0이라고 판정된 경우, 즉, 변환(프라이머리 변환)을 실행한다고 판정된 경우, 처리는 스텝 S435로 진행한다.
스텝 S435에 있어서, 세컨더리 변환 플래그 복호부(331)는, 처리 대상의 변환 블록에 포함되는 비제로 계수의 수의, 서브블록 단위의 평균값인 서브블록 내 평균 비제로 계수수 nmSigInSBK를 구한다. 예를 들어, 세컨더리 변환 플래그 복호부(331)는, 잔차 정보 Rinfo를 참조하여, 변환 블록 내에 존재하는 비제로 계수의 총 수 numSig(sig_coeff_flag==1의 총 수)를 이하의 식 (53)과 같이 도출한다.
numSig=Σ(sig_coeff_flag(i,j))
(i=0…TBSize-1,j=0…TBSize-1)
···(53)
이어서, 세컨더리 변환 플래그 복호부(331)는, 비제로 계수의 총 수 numSig을, 변환 블록 내의 서브블록의 총 수로 제산하고, 서브블록 내 평균 비제로 계수수 numSigInSBK를 이하의 식 (54)에 의해 도출한다.
numSigInSBK=numSig/(TBSize* TBSize/16)
···(54)
또한, 식 (54)에 있어서, 제산 대신 시프트 연산을 사용하여, 이하의 식 (55)와 같이, 서브블록 내 평균 비제로 계수수 numSigInSBK를 도출하도록 해도 된다.
numSigInSBK=numSig>>(2*(log2TBSize-2))
···(55)
여기서, log2TBSize는, 변환 블록 사이즈 TBSize의 2를 밑으로 하는 대수값이다. 또한, 여기서, 변환 블록은 TBSize×TBSize의 직사각형인 것을 상정하고 있지만, TBXSize×TBYSize의 직사각형이어도 된다. 이 경우, 상술한 식 (53)은 이하의 식 (56)으로 치환하고, 상술한 식 (55)는 이하의 식 (57)로 치환하면 된다.
numSig=Σ(sig_coeff_flag(i,j))
(i=0…TBXSize-1,j=0…TBYSize-1)
···(56)
numSigInSBK=numSig>>((log2TBXSize-2)+(log2TBYSize-2))
···(57)
여기서, log2TBXSize는, 변환 블록의 가로폭 TBXSize의 2를 밑으로 하는 대수값이며, log2TBYSize는, 변환 블록의 세로폭 TBYSize의 2를 밑으로 하는 대수값이다.
또한, 이상의 식 (53) 내지 식 (57)에서는, 변환 블록 내의 모든 서브블록에 있어서의 비제로 계수의 수를 하나하나 열거하고 있지만, 소정의 영역에 한정해도 된다. 예를 들어, TBXSize×TBYSize의 변환 블록에 있어서, 저주파 영역에 존재하는 서브블록 내의 비제로 계수를 하나하나 열거해도 된다. 예를 들어, 이하의 식 (58)에 나타낸 바와 같이, TBXSize×TBYSize의 변환 블록의 좌상반부에 존재하는 서브블록을 대상으로 하도록 해도 된다. 이 경우, 식 (57)은 이하의 식 (59)로 치환하면 된다.
numSig=Σ(sig_coeff_flag(i,j))
(i=0…TBXSize/2-1,j=0…TBYSize/2-1)
···(58)
numSigInSBK=numSig>>((log2TBXSize-3)+(log2TBYSize-3))
···(59)
또한, 이상의 식 (53) 내지 식 (59)에서는, 변환 블록 내의 모두(또는 소정 영역)의 서브블록에 있어서의 비제로 계수의 수 numSig을, 변환 블록 내의 모두(또는 소정 영역)의 서브블록의 총 수로 제산(또는 시프트 연산)을 하고 있지만, 제산(또는 시프트 연산) 전에, 서브블록수/2(=numSBK>>1)의 값을 오프셋으로서 가산하고 나서, 제산(또는 시프트 연산)해도 된다(예를 들어, 식 (60), 식 (61), 식 (62), 식 (63)). 여기서, numSBK는, 변환 블록 내의 모두(또는 소정 영역)의 서브블록수를 나타내고, 식 (60) 내지 식 (62)에 있어서의 numSBK는, numSBK=TBXSize*TBYSize/16=1<<((log2TBXSize-2)+(logTBYSize-2))이 되고, 식 (63)에 있어서의 numSBK는, numSBK=1<<((log2TBXSize-3)+(logTBYSize-3))이다.
numSigInSBK=(numSig+(numSBK>>1))/(TBSize*TBSize/16)
···(60)
numSigInSBK=(numSig+(numSBK>>1))>>(2*(log2TBSize-2))
···(61)
numSigInSBK=(numSig+(numSBK>>1))>>((log2TBXSize-2)+(log2TBYSize-2))
···(62)
numSigInSBK=(numSig+(numSBK>>1))>>((log2TBXSize-3)+(log2TBYSize-3))
···(63)
또한, 이상의 식 (53) 내지 식 (59)에서는, 변환 블록 내의 모두(또는 소정 영역)의 서브블록에 있어서의 비제로 계수의 수 numSig을, 변환 블록 내의 모두(또는 소정 영역)의 서브블록의 총 수로 제산(또는 시프트 연산)을 함으로써, 서브블록 내 평균 비제로 계수수 numSigInSBK를 도출하고 있지만, 제산에 사용하는 서브블록수를 비제로 계수가 존재하는 서브블록의 총 수 numNonZeroSBK(비제로 서브블록수라고도 칭한다)로 치환해도 된다. 예를 들어, 비제로 서브블록수 numNonZeroSBK를 상술한 식 (47)에 의해 도출한다. 즉, 서브블록 비제로 계수 유무 플래그 coded_sub_blck_flag(i,j)이 1이 되는 서브블록의 수를 하나하나 열거함으로써 비제로 서브블록수 numNonZeroSBK를 도출할 수 있다. 이 경우, 서브블록 내 평균 비제로 계수수 numSigInSBK는, 식 (54) 대신에 상술한 식 (48)에 의해 도출할 수 있다. 또한, 식 (48)에서는, 제로 제산을 회피하기 위해서, 비제로 서브블록수 numNonZeroSBK가 0인지 여부를 판정하고, 0이라면, numSigInSBK에 0을 설정하고, 0보다 크면, numSigInSBK에numSig을numNonZeroSBK로 제산한 값을 설정한다.
또한, 변환 블록 내의 소정 영역을 대상으로 하여, 그 소정 영역 내에 있는 서브블록에 있어서의 비제로 계수의 수, 및 비제로 계수를 갖는 서브블록의 수에 기초하여, 서브블록 내 평균 비제로 계수수 numSigInSBK를 도출해도 된다. 예를 들어, TBXSize×TBYSize의 변환 블록의 좌상반부에 존재하는 서브블록을 대상으로 하도록 해도 된다. 이 경우, 비제로 계수수 numSig은, 상술한 식 (41)에 의해 도출하고, 비제로 서브블록수 numNonZeroSBK는 상술한 식 (49)에 의해 도출한다. 도출한 numSig, 및 numNonZeroSBK를 참조하여, 상술한 식 (48)에 의해, 서브블록 내 평균 비제로 계수수 numSigInSBK를 도출한다.
이상과 같이, 서브블록 내 평균 비제로 계수수 nmSigInSBK가 구해지면, 처리는 스텝 S436으로 진행한다.
스텝 S416에 있어서, 세컨더리 변환 플래그 복호부(331)는, 서브블록 내 평균 비제로 계수수 numSigInSBK가 소정의 역치 TH 이상인지 여부(numSigInSBK>=TH)를 판정한다. 그 조건식의 논리값이 0(거짓)이라고 판정된 경우, 즉, numSigInSBK<TH를 만족시킨다고 판정된 경우, 처리는 스텝 S437로 진행한다.
서브블록 내 평균 비제로 계수수 numSigInSBK가 소정의 역치 TH보다 적은 경우, 비제로 계수가 소한 서브블록이 존재한다. 그러한 서브블록에 대하여 역세컨더리 변환을 행하면, 에너지 콤팩션이 저하되어, 부호화 효율이 저감될 우려가 있다. 따라서, 부호화 효율의 저감을 억제하기 위해서는, 역세컨더리 변환을 스킵하는 것이 바람직하다. 즉, 이 경우, 역세컨더리 변환을 스킵하도록 제어된다. 따라서, 세컨더리 변환 플래그 st_flag의 값은 0으로 고정된다. 따라서, 이 경우, 세컨더리 변환 플래그 st_flag는 부호화측으로부터 전송되지 않으므로, 세컨더리 변환 플래그 복호부(331)는, 세컨더리 변환 플래그 st_flag의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S437에 있어서, 세컨더리 변환 플래그 st_flag의 부호화 데이터의 복호를 스킵한다. 또한, 이 경우, 역세컨더리 변환은 스킵되므로, 세컨더리 변환 플래그 st_flag의 값은 0으로 고정된다. 따라서, 세컨더리 변환 플래그 복호부(331)는, 세컨더리 변환 플래그 st_flag의 값이 0이라고 추정한다. 즉, 세컨더리 변환 플래그 복호부(331)는, 세컨더리 변환 플래그 st_flag의 값을 0으로 설정한다(st_flag=0). 스텝 S437의 처리가 종료되면 복호 처리가 종료되고, 처리는, 도 13으로 되돌아간다.
스텝 S436에 있어서, 그 조건식의 논리값이 1(참)이라고 판정된 경우, 즉, numSigInSBK>=TH를 충족시키는 경우, 처리는 스텝 S438로 진행한다.
스텝 S438에 있어서, 세컨더리 변환 플래그 복호부(331)는, 세컨더리 변환 플래그 st_flag의 부호화 데이터를 복호한다.
즉, 상술한 조건식 (50)이 1(참)이 되는 경우에만, 세컨더리 변환 플래그 st_flag의 부호화 데이터가 복호된다. 이것은, 도 27을 참조하여 설명한 신택스의 위로부터 7단째에 대응한다.
스텝 S438의 처리가 종료되면, 복호 처리가 종료되고, 처리는, 도 13으로 되돌아간다.
이상과 같이 복호 처리를 실행함으로써, 화상 복호 장치(200)는, 변환 블록 내의 각 서브블록에 소한 비제로 계수가 존재하는 신호에 대하여 세컨더리 변환 플래그 st_flag의 복호 처리를 스킵할 수 있다. 즉, 세컨더리 변환 플래그의 부호화 데이터의 복호에 관한 처리량을 저감할 수 있다. 또한, 변환 블록 내의 각 서브블록에 소한 비제로 계수가 존재하는 신호에 대하여 에너지 콤팩션의 저하를 억제할 수 있다. 즉, 부호화 효율의 저감을 억제할 수 있다.
상술한 예에서는, 변환 블록 단위로 세컨더리 변환 플래그 st_flag의 복호 처리에 대하여 설명했지만, 세컨더리 변환 플래그 st_flag 대신에 세컨더리 변환 식별자 st_idx를 복호해도 된다. 이 경우, 도 27에 도시하는 신택스 테이블의 위로부터 8단째에 도시하는, 세컨더리 변환 플래그 st_flag를 세컨더리 변환 식별자 st_idx로 치환한다. 또한, 마찬가지로, 도 24에 있어서, 세컨더리 변환 플래그 복호부(331)를, 도 18에 도시하는 세컨더리 변환 식별자 st_idx의 복호에 관한 기능을 갖는 세컨더리 변환 식별자 복호부(312)로 치환한다. 마찬가지로, 도 31의 흐름도의 각 스텝에 있어서, 세컨더리 변환 플래그 st_flag의 부분을, 세컨더리 변환 식별자 st_idx로 치환하여 해석한다.
이상과 같이 복호 처리를 실행함으로써, 화상 복호 장치(200)는, 변환 블록 내의 각 서브블록에 소한 비제로 계수가 존재하는 신호에 대하여 세컨더리 변환 식별자 st_idx의 복호 처리를 스킵할 수 있다. 즉, 세컨더리 변환 식별자의 복호에 관한 처리량을 저감할 수 있다. 또한, 변환 블록 내의 각 서브블록에 소한 비제로 계수가 존재하는 신호에 대하여 에너지 콤팩션의 저하를 억제할 수 있다. 즉, 부호화 효율의 저감을 억제할 수 있다.
또한, 상술한 조건식 (50)에 한정되지 않고, 휘도의 경우에만, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)를 복호하도록 상술한 조건식 (51)로 변경해도 된다. 즉, 색 공간을 나타내는 식별자 cIdx가 휘도의 값 Luma(=0)을 나타내는 경우, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)의 복호를 하고, cIdx가 색차 Cb(=1) 또는 Cr(=2)인 경우, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)의 복호를 생략한다. 이 경우, 색차에 관한 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)는 복호되지 않기 때문에, 휘도의 세컨더리 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)와 동등하다고 추정해도 되는, 즉, 동일한 역세컨더리 변환을 적용한다. 또는, 색차의 잔차는, 일반적으로 휘도에 비하여, 소한 잔차 신호인 경우가 많기 때문에, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)를 역세컨더리 변환을 스킵(생략)하는 것을 나타내는 값(0)과 동등하다고 추정해도 된다.
또한, 상술한 조건식 (50)에 한정되지 않고, 인트라의 경우에만, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)를 복호하도록 상술한 조건식 (52)로 변경해도 된다. 즉, CU의 예측 모드를 나타내는 CuPredMode[x0][y0]이 인트라 예측(=MODE_INTRA)을 나타내는 경우, 세컨더리 변환 플래그 st_flag(또는 세컨더리 변환 식별자 st_idx)를 복호하고, 인터 예측의 경우, 복호를 생략한다. 또한, 조건식 (50) 내지 (52)의 조건은, 각각 조합해도 된다.
또한, 상술한 복호 처리는, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다. 또한, 상술한 신택스나 조건식 (50) 내지 (52)는 실시 가능한 범위에서 연산을 변경 가능하다.
<5. 제5 실시 형태>
<프라이머리 변환 식별자의 부호화·복호의 스킵>
비특허문헌 1에 기재된 방법에서는, 변환 블록마다, 수평 방향의 프라이머리 변환 Phor, 및 수직 방향의 프라이머리 변환 Pver에 어느 프라이머리 변환을 적용할지 지정하는 프라이머리 변환 식별자 pt_idx를 부호화하고 있었다. 보다 구체적으로는, 수평 방향의 프라이머리 변환 Phor를 Thor1, Thor2의 어느 쪽으로 할 지 지정하는 수평 방향 프라이머리 변환 지정 플래그 pt_hor_flag와, 수직 방향의 프라이머리 변환 Pver를 Tver1, Tver2의 어느 쪽으로 할 지 지정하는 수직 방향 프라이머리 변환 지정 플래그 pt_ver_flag로부터, 고정 길이 부호의 프라이머리 변환 식별자 pt_idx를 이하의 식 (64)와 같이 도출한다.
pt_idx={(pt_hor_flag<<1)+pt_ver_flag}
···(64)
그 후, 프라이머리 변환 식별자 pt_idx의 bin열에 대하여 산술 부호화를 적용하고, 비트열을 생성함으로써, 부호화가 실시된다. 도 32에 그 부호화의 모습을 나타낸다. 또한, 그 부호화에 대응하는 프라이머리 변환 식별자 pt_idx의 복호의 모습을 도 33에 도시하였다. 도 32의 A나 도 33의 A에 도시된 바와 같이, 프라이머리 변환 식별자 pt_idx는 고정 길이 부호로 2치화된다. 산술 부호화·산술 복호에 있어서의 컨텍스트의 선택은, 도 32의 B나 도 33의 B에 도시하는 테이블과 같이 행하여진다.
그러나, 비특허문헌 1에서는, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참)인 경우(변환 양자화 바이패스를 적용하는 경우)에 있어서, 프라이머리 변환 식별자 pt_idx를 시그널하기 때문에, 그 식별자의 오버헤드가 쓸데없어서, 부호화 효율이 저감될 우려가 있었다.
그래서, 화상 부호화 시에, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 변환 양자화 바이패스를 행하는 것을 나타내는 경우, 프라이머리 변환 식별자 pt_idx의 부호화를 스킵(생략)하도록 한다. 이와 같이 함으로써, 부호화 효율의 저감을 억제할 수 있다.
또한, 화상 복호 시에, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 변환 양자화 바이패스를 행하는 것을 나타내는 경우, 프라이머리 변환 식별자 pt_idx의 복호를 스킵(생략)하고, 또한, 프라이머리 변환 식별자 pt_idx의 값이, 수평 방향의 프라이머리 변환 Phor 및 수직 방향의 프라이머리 변환 Pver에 소정의 직교 변환(예를 들어, DCT-Type 2)을 사용하는 것을 나타내는 식별자의 값(예를 들어 -1)이라고 추정하도록 한다. 이와 같이 함으로써, 부호화 효율의 저감을 억제할 수 있다.
또한, 비특허문헌 1에 기재된 방법에서는, 프라이머리 변환 식별자 pt_idx의 값의 출현 빈도를 고려한 2치화가 아니기 때문에, 산술 부호화할 때에 부호화 효율이 저감될 우려가 있었다.
그래서, 프라이머리 변환 식별자 pt_idx의 2치화 방법으로서, 트렁케이티드 유너리 2치화(Truncated Unary Binarization(TU라고도 칭한다))를 적용하도록 한다. 이와 같이 함으로써, 부호화 효율의 저감을 억제할 수 있다.
<신택스>
이러한 제어를 나타내는 의사 코드를 기재한 신택스 테이블의 예를 도 34에 도시하였다. 도 34의 위로부터 7단째에 도시된 바와 같이, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0인 것이, 프라이머리 변환 식별자 pt_idx의 부호화(즉, 프라이머리 변환 식별자 pt_idx의 부호화 데이터의 복호)의 조건의 하나가 된다. 즉, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1인 경우, 즉, (역)변환 및 (역)양자화가 스킵되는 경우, 프라이머리 변환 식별자 pt_idx의 부호화(프라이머리 변환 식별자 pt_idx의 부호화 데이터의 복호)가 스킵된다.
<부호화부>
이 경우에도 화상 부호화 장치(100)는, 제1 실시 형태의 경우와 기본적으로 동일한 구성을 갖는다. 즉, 제1 실시 형태에 있어서 설명한 화상 부호화 장치(100)가, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환, 및 그 프라이머리 변환 계수가 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수에 대한 양자화가 스킵되는 경우, 프라이머리 변환의 내용을 나타내는 제1 정보의 부호화를 스킵하는 부호화부를 구비한다.
즉, 이 경우의 부호화부(114)는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환, 및 그 프라이머리 변환 계수가 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수에 대한 양자화가 스킵되는 경우, 프라이머리 변환의 내용을 나타내는 제1 정보의 부호화를 스킵한다.
도 35는, 이 경우의 부호화부(114)가 프로그램 등을 실행함으로써 실현하는, 프라이머리 변환 식별자의 부호화에 관한 주된 기능의 예를 도시하는 기능 블록도이다. 도 34에 도시된 바와 같이, 이 경우의 부호화부(114)는, 프로그램을 실행함으로써, 프라이머리 변환 식별자의 부호화에 관한 기능으로서, 예를 들어, 프라이머리 변환 유효 플래그 부호화부(401) 및 프라이머리 변환 식별자 부호화부(402)를 가질 수 있다.
프라이머리 변환 유효 플래그 부호화부(401)는, 프라이머리 변환의 허가에 관한 정보인 프라이머리 변환 유효 플래그 pt_enabled_flag의 부호화에 관한 처리를 행한다. 프라이머리 변환 식별자 부호화부(402)는, 프라이머리 변환의 내용에 관한 정보인 프라이머리 변환 식별자 pt_idx의 부호화에 관한 처리를 행한다.
<부호화 처리의 흐름>
이어서, 화상 부호화 장치(100)에 의해 실행되는 각 처리의 흐름의 예를 설명한다. 이 경우 화상 부호화 장치(100)는, 화상 부호화 처리를, 제1 실시 형태의 경우와 기본적으로 마찬가지로 행한다. 단, 이 경우, 화상 부호화 장치(100)는, 화상 부호화 처리의 스텝 S110(도 9)에 있어서, 프라이머리 변환 식별자 pt_idx 등의 부호화를, 변환 양자화 바이패스 플래그 transquant_bypass_flag의 값 등에 따라서 행한다. 이 프라이머리 변환 식별자 pt_idx 등의 부호화의 흐름의 예를 도 36의 흐름도를 참조하여 설명한다. 즉, 도 36에 도시하는 부호화 처리는, 도 9의 스텝 S110에 있어서 행하여지는 부호화 처리의 일부로서 실행된다. 기타의 부호화 파라미터나 양자화 변환 계수 레벨 level의 부호화는 임의의 방법으로 행해진다.
부호화 처리가 개시되면, 스텝 S501에 있어서, 프라이머리 변환 유효 플래그 부호화부(401)는, 헤더 정보 Hinfo에 포함되는 프라이머리 변환 유효 플래그 pt_enabled_flag를 부호화하고, 비트열(부호화 데이터)을 생성하여 출력한다. 이 부호화에 의해 얻어진 프라이머리 변환 유효 플래그 pt_enabled_flag의 부호화 데이터는, 양자화 변환 계수 레벨 level의 부호화 데이터를 포함하는 비트 스트림에 포함된다.
스텝 S502에 있어서, 프라이머리 변환 식별자 부호화부(402)는, 헤더 정보 Hinfo에 포함되는 프라이머리 변환 유효 플래그 pt_enabled_flag가 1(참)인지 여부를 판정한다. 프라이머리 변환 유효 플래그 pt_enabled_flag가 0이라고 판정된 경우, 즉, 프라이머리 변환의 실행이 허가되어 있지 않다고 판정된 경우, 스텝 S503 내지 스텝 S508의 처리가 스킵되어, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
프라이머리 변환의 실행이 허가되어 있지 않다면, 프라이머리 변환은 실행되지 않고, 프라이머리 변환 식별자 pt_idx를 복호측에 전송할 필요가 없다. 따라서, 프라이머리 변환 식별자 부호화부(402)는, 프라이머리 변환 식별자 pt_idx의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S502에 있어서, 프라이머리 변환 유효 플래그 pt_enabled_flag가 1이라고 판정된 경우, 즉, 프라이머리 변환의 실행이 허가되어 있다고 판정된 경우, 처리는 스텝 S503으로 진행한다.
스텝 S503에 있어서, 프라이머리 변환 식별자 부호화부(402)는, 변환 정보 Tinfo에 포함되는 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참)인지 여부를 판정한다. 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1이라고 판정된 경우, 즉, 변환(프라이머리 변환 및 세컨더리 변환) 및 양자화를 스킵(바이패스)한다고 판정된 경우, 스텝 S504 내지 스텝 S508의 처리가 스킵되어, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
변환 및 양자화가 바이패스되는 것이라면, 프라이머리 변환 식별자 pt_idx를 복호측에 전송할 필요가 없다. 따라서, 프라이머리 변환 식별자 부호화부(402)는, 프라이머리 변환 식별자 pt_idx의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S503에 있어서, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0이라고 판정된 경우, 즉, 변환 및 양자화를 스킵(바이패스)하지 않다고 판정된 경우, 처리는 스텝 S504로 진행한다.
스텝 S504에 있어서, 프라이머리 변환 식별자 부호화부(402)는, 변환 정보 Tinfo에 포함되는 변환 스킵 플래그 ts_flag가 1(참)인지 여부를 판정한다. 변환 스킵 플래그 ts_flag가 1이라고 판정된 경우, 즉, 변환(프라이머리 변환)을 스킵한다고 판정된 경우, 스텝 S505 내지 스텝 S508의 처리가 스킵되어, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
변환(프라이머리 변환)이 스킵된다면, 프라이머리 변환 식별자 pt_idx를 복호측에 전송할 필요가 없다. 따라서, 프라이머리 변환 식별자 부호화부(402)는, 프라이머리 변환 식별자 pt_idx의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S504에 있어서, 변환 스킵 플래그 ts_flag가 0이라고 판정된 경우, 즉, 변환(프라이머리 변환)을 스킵하지 않다고 판정된 경우, 처리는 스텝 S505로 진행한다.
스텝 S505에 있어서, 프라이머리 변환 식별자 부호화부(402)는, 처리 대상의 변환 블록의 사이즈 TBSize가 최대 프라이머리 변환 블록 사이즈 MaxPTSize 이하인지 여부(조건식 TBSize<=MaxPTSize가 참인지 여부)를 판정한다. 처리 대상의 변환 블록의 사이즈 TBSize가 최대 프라이머리 변환 블록 사이즈 MaxPTSize보다 크다고 판정된 경우, 즉, 상술한 조건식이 0(거짓)이라고 판정된 경우, 스텝 S506 내지 스텝 S508의 처리가 스킵되어, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
최대 프라이머리 변환 블록 사이즈 MaxPTSize는, 프라이머리 변환의 실행이 허가되는 최대의 블록 사이즈를 나타내는 정보이다. 즉, 변환 블록의 사이즈가 이 최대 프라이머리 변환 블록 사이즈 MaxPTSize보다 큰 경우, 프라이머리 변환의 실행이 허가되지 않으므로, 프라이머리 변환 식별자 pt_idx를 복호측에 전송할 필요가 없다. 따라서, 프라이머리 변환 식별자 부호화부(402)는, 프라이머리 변환 식별자 pt_idx의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S505에 있어서, 처리 대상의 변환 블록의 사이즈 TBSize가 최대 프라이머리 변환 블록 사이즈 MaxPTSize 이하라고 판정된 경우, 즉, 상술한 조건식이 1(참)이라고 판정된 경우, 처리는 스텝 S506으로 진행한다.
또한, 스텝 S505에 있어서, 상술한 조건식(TBSize<=MaxTSSize)은 2를 밑으로 하는 TB 사이즈의 대수값 log2TBSize, 2를 밑으로 하는 최대 프라이머리 변환 블록 사이즈 MaxPTSize의 대수값 log2MaxPTSize를 사용하여, 조건식(log2TBSize<=log2MaxPTSize)으로 치환해도 된다.
스텝 S506에 있어서, 프라이머리 변환 식별자 부호화부(402)는, 잔차 정보 Rinfo를 참조하여, 변환 블록 내에 존재하는 비제로 계수의 총 수 numSig(sig_coeff_flag==1의 총 수)를 이하의 식 (65)와 같이 도출한다.
numSig=Σ(sig_coeff_flag(i,j))
(i=0…TBSize-1,j=0…TBSize-1)
···(65)
스텝 S507에 있어서, 프라이머리 변환 식별자 부호화부(402)는, 비제로 계수의 총 수 numSig이 소정의 역치 TH 이상인지 여부(numSig>=TH)를 판정한다. 비제로 계수의 총 수 numSig이 소정의 역치 TH보다 적다(numSig<TH)고 판정된 경우, 스텝 S508의 처리가 스킵되어, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
비제로 계수의 총 수 numSig이 소정의 역치 TH보다 적은 경우, 즉, 비제로 계수가 적은 소한 잔차 신호의 경우, 에너지 콤팩션이 저하되어, 부호화 효율이 저감될 우려가 있어서, 부호화 효율의 저감을 억제하기 위해서는, 변환 스킵 또는 소정의 직교 변환(예를 들어, DCT-Type 2)을 적용하는 것이 바람직하다. 즉, 이 경우, 프라이머리 변환 식별자 pt_idx를 복호측에 전송할 필요가 없다. 따라서, 프라이머리 변환 식별자 부호화부(402)는, 프라이머리 변환 식별자 pt_idx의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S507에 있어서, 비제로 계수의 총 수 numSig이 소정의 역치 TH 이상이라고 판정된 경우, 처리는 스텝 S508로 진행한다.
스텝 S508에 있어서, 프라이머리 변환 식별자 부호화부(402)는, 프라이머리 변환 식별자 pt_idx를 가변 길이 부호화하고, 비트열(부호화 데이터)을 생성하여 출력한다. 이 부호화의 상세에 대해서는 후술한다. 이 부호화에 의해 얻어진 프라이머리 변환 식별자 pt_idx의 부호화 데이터는, 양자화 변환 계수 레벨 level의 부호화 데이터를 포함하는 비트 스트림에 포함된다.
즉, 이하의 조건식 (66)이 1(참)이 되는 경우에만, 프라이머리 변환 식별자 pt_idx가 부호화된다. 이것은, 도 34를 참조하여 설명한 신택스의 위로부터 7단째에 대응한다.
논리값=(pt_enabled_flag && (transquant_bypass_flag==0 || ts_flag==0) && (log2TBSize<=log2MaxPTSize) && numSig>=TH)
···(66)
스텝 S508의 처리가 종료되면, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
이상과 같이 부호화 처리를 실행함으로써, 화상 부호화 장치(100)는, 변환 양자화 바이패스를 적용하는 경우에, 프라이머리 변환 식별자 pt_idx의 부호화 처리를 스킵할 수 있다. 즉, 프라이머리 변환 식별자 pt_idx의 부호화에 관한 처리량 및 부호량을 저감할 수 있다.
또한, 상술한 조건식 (66)에 한정되지 않고, 휘도의 경우에만, 프라이머리 변환 식별자 pt_idx를 부호화하도록, 하기 조건식 (67)로 변경해도 된다. 즉, 색 공간을 나타내는 식별자 cIdx가 휘도의 값 Luma(=0)을 나타내는 경우, 프라이머리 변환 식별자 pt_idx의 부호화를 하고, cIdx가 색차 Cb(=1) 또는 Cr(=2)인 경우, 프라이머리 변환 식별자 pt_idx의 부호화를 생략한다.
논리값=(cIdx==Luma && st_enabled_flag &&
(transquant_bypass_flag==0 || ts_flag==0) &&
numSig>=TH)
···(67)
또한, 조건식 (66) 및 (67)의 조건은, 각각 조합해도 된다.
또한, 상술한 부호화 처리는, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다. 또한, 상술한 신택스나 조건식 (66) 및 (67)은 실시 가능한 범위에서 연산을 변경 가능하다.
<보충: CU 프라이머리 변환 플래그(적응 프라이머리 변환 플래그)의 부호화의 스킵>
상기 화상 부호화 장치(100)에서는, 변환 양자화 바이패스를 적용하는 경우에, 변환 블록 단위에서의 프라이머리 변환 식별자 pt_idx의 부호화 처리를 스킵하는 사례에 대하여 설명했지만, 이것에 한정되지 않는다. 예를 들어, CU 단위로, 변환 블록 단위의 프라이머리 변환 식별자 pt_idx를 부호화할지 여부를 나타내는 CU 프라이머리 변환 플래그 cu_pt_flag(적응 프라이머리 변환 플래그 apt_flag이라고도 칭한다)를 변환 양자화 바이패스 플래그 transquant_bypass_flag의 값에 따라서 부호화한다.
CU 프라이머리 변환 플래그 cu_pt_flag가 1(참)인 경우에는, 변환 블록 단위의 프라이머리 변환 식별자 pt_idx의 부호화를 하고, CU 프라이머리 변환 플래그 cu_pt_flag가 0(거짓)인 경우에는, 변환 블록 단위의 프라이머리 변환 식별자 pt_idx의 부호화를 생략해도 된다. 이 경우, 부호화부(114)는, 또한, 도시하지 않은 CU 프라이머리 변환 플래그 부호화부(403)를 구비한다.
CU 프라이머리 변환 플래그 부호화부(403)는, TU 단위에서의 프라이머리 변환 식별자 pt_idx의 부호화의 허가에 관한 정보인 CU 프라이머리 변환 플래그 cu_pt_flag의 부호화에 관한 처리를 행한다. CU 프라이머리 변환 플래그 부호화부(403)에 있어서의 CU 프라이머리 변환 플래그 cu_pt_flag의 부호화는 예를 들어, 이하의 의사 코드에 기초하여 행한다.
if (!transquant_bypass_flag && pt_enabled_flag)
{
encode cu_pt_flag
}
즉, CU 프라이머리 변환 플래그 부호화부(403)는, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0(거짓), 또한 프라이머리 변환 유효 플래그 pt_enabled_flag가 1(참)인 때에 CU 프라이머리 변환 플래그 cu_pt_flag를 부호화하고, 그 이외의 경우(변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참), 또는 프라이머리 변환 유효 플래그 pt_enabled_flag가 0(거짓))인 때에는, CU 프라이머리 변환 플래그 cu_pt_flag의 부호화를 생략한다. 즉, 변환 양자화 바이패스 플래그를 적용하는 경우에는, CU 프라이머리 변환 플래그 cu_pt_flag를 복호측에 전송할 필요가 없다. 따라서, CU 프라이머리 변환 플래그 부호화부(403)는, CU 프라이머리 변환 플래그 cu_pt_flag의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 할 수 있다.
또한, 이 경우, 프라이머리 변환 식별자 부호화부(402)에 있어서의, 프라이머리 변환 식별자 pt_idx의 부호화 조건은, 예를 들어, 이하의 의사 코드에 기초하여 행한다.
if(cu_pt_flag && ts_flag==0 && numSig>=TH)
{
encode pt_idx
}
즉, 프라이머리 변환 식별자 부호화부(402)는, CU 프라이머리 변환 플래그 cu_pt_flag가 1(참), 또한 변환 스킵 플래그 ts_flag가 0(거짓), 또한, 비제로 계수수 numSig이 역치 TH 이상인 때, 프라이머리 변환 식별자 pt_idx를 부호화하고, 그 이외의 경우(CU 프라이머리 변환 플래그 cu_pt_flag가 0(거짓), 또는 변환 스킵 플래그 ts_flag가 1(참), 또는, 비제로 계수수 numSig이 역치 TH보다 작다)인 때에는, 프라이머리 변환 식별자 pt_idx의 부호화를 생략한다. 즉, CU 프라이머리 변환 플래그가 0인 경우에는, 프라이머리 변환 식별자 pt_idx를 복호측에 전송할 필요가 없다. 따라서, 프라이머리 변환 식별자 부호화부(402)는, 프라이머리 변환 식별자 pt_idx의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 할 수 있다.
<프라이머리 변환 식별자 부호화 처리의 흐름>
이어서, 도 37의 흐름도를 참조하여, 도 36의 스텝 S508에 있어서 실행되는 프라이머리 변환 식별자 부호화 처리의 흐름의 예를 설명한다.
프라이머리 변환 식별자 부호화 처리가 개시되면, 프라이머리 변환 식별자 부호화부(402)는, 스텝 S511에 있어서, 변수의 초기화를 행한다. 예를 들어, 프라이머리 변환 식별자 부호화부(402)는, 프라이머리 변환 식별자 pt_idx의 최댓값인 maxPTIdx를 3으로 설정한다(maxPTIdx=3).
스텝 S512에 있어서, 프라이머리 변환 식별자 부호화부(402)는, 예측 모드 정보 Pinfo를 참조하여, 처리 대상 변환 블록을 포함하는 CU가 인트라 예측인지, 인터 예측인지 판정한다. 인터 예측이라고 판정된 경우, 처리는 스텝 S513으로 진행한다.
스텝 S513에 있어서, 프라이머리 변환 식별자 부호화부(402)는, 프라이머리 변환 식별자 pt_idx의 값을 이하의 식 (68)과 같이 수정한다.
pt_idx=maxPTIdx-pt_idx
···(68)
프라이머리 변환 식별자 pt_idx의 각 값의 출현 확률이, 인트라 예측과 인터 예측에서 역의 경향이 있다. 그래서, 프라이머리 변환 식별자 부호화부(402)는, 인트라 예측의 경우, 가장 출현 빈도 높은 값(0)을 0, 2번째로 출현 빈도가 높은 값(1)을 1, 3번째로 출현 빈도에 높은 값(2)을 2, 4번째로 출현 빈도가 높은 값(3)을 3으로 하여 산술 부호화를 행하고, 인터 예측의 경우, 가장 출현 빈도 높은 값(3)을 0, 2번째로 출현 빈도가 높은 값(2)을 1, 3번째로 출현 빈도에 높은 값(3)을 2, 4번째로 출현 빈도가 높은 값(0)을 3으로 하여 산술 부호화를 행하기 위해서, 산술 부호화가 대상으로 하는 프라이머리 변환 식별자 pt_idx의 값을 상술한 식 (68)과 같이 변경한다.
스텝 S513의 처리가 종료되면 처리는 스텝 S514로 진행한다. 또한, 스텝 S512에 있어서, 인트라 예측이라고 판정된 경우, 처리는 스텝 S514로 진행한다.
스텝 S514에 있어서, 프라이머리 변환 식별자 부호화부(402)는, 프라이머리 변환 식별자 pt_idx를 TU에 의해 2치화한 경우의 bin열의 길이를 나타내는maxBinIdx를 이하의 식 (69)와 같이 도출한다. 구체적으로는, 프라이머리 변환 식별자 pt_idx와, 프라이머리 변환 식별자 pt_idx의 최댓값 maxPTIdx 중 작은 값을 maxBinIdx의 값으로 한다.
maxBinIdx=min(pt_idx,maxPTIdx)
···(69)
스텝 S515에 있어서, 프라이머리 변환 식별자 부호화부(402)는, 프라이머리 변환 식별자 pt_idx를 2치화한 bin열의 현재의 bin의 위치를 나타내는 binIdx의 값이, binIdx의 최댓값 maxBinIdx보다 작은지 판정한다. binIdx의 값이, maxBinIdx의 값보다 작다고 판정된 경우(binIdx<maxBinIdx), 처리는 스텝 S516으로 진행한다.
스텝 S516에 있어서, 프라이머리 변환 식별자 부호화부(402)는, binIdx=i의 위치의 bin의 심볼 symbol의 값을 1로 설정한다(symbol=1).
스텝 S517에 있어서, 프라이머리 변환 식별자 부호화부(402)는, 2치화된 프라이머리 변환 식별자 pt_idx의 bin열에서 binIdx=i의 위치의 bin의 심볼 symbol을 산술 부호화한다.
여기서, 프라이머리 변환 식별자 부호화부(402)는, binIdx=i의 위치의 bin을 산술 부호화할 때에 도 38에 도시하는 바와 같이, 각 binIdx에 따른 컨텍스트를 사용하여, 산술 부호화한다. 예를 들어, 도 38의 M0의 경우에는, binIdx=0…2까지 모든 bin에 대해서, 컨텍스트를 사용하지 않는 바이패스 모드에 의해 산술 부호화를 행하는 예를 나타내고 있다. 또한, 바이패스 모드란, 심볼 0과 심볼 1의 발생 확률이 등확률인 것으로 하여, 산술 부호화를 행하는 모드이다.
또한, 도 38의 M1의 경우에는, binIdx=0(선두)의 bin에 대해서, 컨텍스트를 사용하는 레귤러 모드에 의해 산술 부호화를 행하고, binIdx=1…2의 bin에 대해서는, 바이패스 모드에 의해 산술 부호화를 행하는 예를 나타내고 있다. 또한, 레귤러 모드란, 심볼 0과 심볼 1의 발생 확률을 갱신하면서, 산술 부호화를 행하는 모드이다. 예를 들어, M1의 경우, binIdx=0의 bin에 대해서는, 인트라의 경우, 컨텍스트를 지정하는 인덱스 ctxInc의 값을 0으로 하고, 인터의 경우에는, 1을 할당한다.
또한, 도 38의 M2의 경우에는, binIdx=0…1의 bin에 대해서, 컨텍스트를 사용하는 레귤러 모드에 의해 산술 부호화를 행하고, binIdx=2의 bin에 대해서는, 바이패스 모드에 의해 산술 부호화를 행하는 예를 나타내고 있다. 예를 들어, M2의 경우, binIdx=0의 bin에 대해서는, 인트라의 경우, 컨텍스트를 지정하는 인덱스 ctxInc의 값을 0으로 하고, 인터의 경우에는, 1을 할당한다. 또한, binIdx=1의 bin에 대해서는, 인트라의 경우, 컨텍스트를 지정하는 인덱스 ctxInc의 값을 2로 하고, 인터의 경우에는, 3을 할당한다.
또한, 도 38의 M1 및 M2에서는, 레귤러 모드에 의해 산술 부호화의 대상으로 되는 binIdx=i의 위치의 bin에 대하여 인트라와 인터의 경우에, 상이한 컨텍스트를 지정하는 컨텍스트 인덱스 ctxInc를 할당하고 있다. 그러나, 상술한 식 (68)에 있어서, 프라이머리 변환 식별자 pt_idx의 각 값의 출현 확률이, 인트라 예측과 인터 예측에서 역의 경향을 이용하여, 프라이머리 변환 식별자 pt_idx에 대해서, 인트라 예측의 경우, 가장 출현 빈도 높은 값(0)을 0, 2번째로 출현 빈도가 높은 값(1)을 1, 3번째로 출현 빈도에 높은 값(2)을 2, 4번째로 출현 빈도가 높은 값(3)을 3으로 하고, 인터 예측의 경우, 가장 출현 빈도 높은 값(3)을 0, 2번째로 출현 빈도가 높은 값(2)을 1, 3번째로 출현 빈도에 높은 값(3)을 2, 4번째로 출현 빈도가 높은 값(0)을 3으로서 수정하고 있다. 이렇게 함으로써, 식 (68) 후의 프라이머리 변환 식별자 pt_idx의 binIdx=i의 bin의 심볼이 0, 또는 1이 되는 발생 확률을 인트라와 인터에서 동등하게 할 수 있다. 따라서, 인트라와 인터의 경우에, 레귤러 모드에 의해 산술 부호화의 대상으로 되는 binIdx=i의 위치의 bin에 대하여 동일한 컨텍스트를 지정하는 컨텍스트 인덱스 ctxInc를 할당해도 된다. 이 경우, 인트라와 인터에서 다른 컨텍스트를 지정하는 컨텍스트 인덱스 ctxInc를 할당하는 경우와 동등한 부호화 효율을 달성하면서, 추가로, 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다.
예를 들어, 도 38의 M3의 경우에는, binIdx=0(선두)의 bin에 대해서, 컨텍스트를 사용하는 레귤러 모드에 의해 산술 부호화를 행하고, binIdx=1…2의 bin에 대해서는, 바이패스 모드에 의해 산술 부호화를 행하는 예를 나타내고 있다. M3의 경우, binIdx=0의 bin에 대해서는, 인트라, 인터에 구애되지 않고, 컨텍스트를 지정하는 인덱스 ctxInc의 값을 0으로 한다.
또한, 도 38의 M4의 경우에는, binIdx=0…1의 bin에 대해서, 컨텍스트를 사용하는 레귤러 모드에 의해 산술 부호화를 행하고, binIdx=2의 bin에 대해서는, 바이패스 모드에 의해 산술 부호화를 행하는 예를 나타내고 있다. M4의 경우, 인트라, 인터에 구애되지 않고, binIdx=0의 bin에 대해서는, 컨텍스트를 지정하는 인덱스 ctxInc의 값을 0으로 하고, binIdx=1의 bin에 대해서는, 컨텍스트를 지정하는 인덱스 ctxInc의 값을 1로 한다.
도 38의 M0을 사용함으로써, 컨텍스트를 사용하는 레귤러 모드에 의한 산술 부호화를 하지 않고, 모두 바이패스 모드에 의해 산술 부호화하기 때문에, 비특허문헌 1에 기재된 방법에 비하여 고속으로 bin열을 산술 부호화할 수 있고, 또한, 종래 기술에 비하여 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다.
또한, 도 38의 M1을 사용함으로써, 선두의 bin(binIdx=0)에 대하여 컨텍스트를 사용하는 레귤러 모드에 의한 산술 부호화를 행하고, 나머지 bin을 바이패스 모드에 의해 산술 부호화하기 때문에, 비특허문헌 1에 기재된 방법보다도 비교적 고속으로 bin열을 산술 부호화할 수 있고, 또한, 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다. 또한, 부호화 효율도 개선된다.
도 38의 M2를 사용하는 장점은, binIdx=0…1의 bin에 대하여 컨텍스트를 사용하는 레귤러 모드에 의한 산술 부호화를 행하고, 나머지 bin을 바이패스 모드에 의해 산술 부호화하기 때문에, 비특허문헌 1에 기재된 방법보다도 비교적 고속으로 bin열을 산술 부호화할 수 있다. 또한, 부호화 효율도 개선된다.
또한, 도 38의 M3의 경우, 선두의 bin(binIdx=0)에 대하여 인트라, 인터에 구애되지 않고, 동일한 컨텍스트를 지정하는 컨텍스트 인덱스를 할당한다. 따라서, M1과 비교하여, 동등한 처리량, 및 동등한 부호화 효율을 달성하면서, 추가로 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다.
도 38의 M4의 경우, binIdx=0…1의 bin에 대하여 인트라, 인터에 구애되지 않고, 각각, 동일한 컨텍스트를 지정하는 컨텍스트 인덱스를 할당한다. 따라서, M2와 비교하여, 동등한 처리량, 및 부호화 효율을 달성하면서, 추가로 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다.
스텝 S518에 있어서, 프라이머리 변환 식별자 부호화부(402)는, 변수 binIdx의 값을 갱신한다(binIdx+=1). 스텝 S518의 처리가 종료되면, 처리는 스텝 S515로 되돌아가고, 그 이후의 처리를 반복한다. 즉, 스텝 S515에 있어서, binIdx의 값이, maxBinIdx의 값 이상으로 판정될 때까지, 스텝 S515 내지 스텝 S518의 처리를 반복한다. 스텝 S515에 있어서, binIdx의 값이, maxBinIdx의 값 이상으로 판정된 경우, 처리는 스텝 S519로 진행한다.
스텝 S519에 있어서, 프라이머리 변환 식별자 부호화부(402)는, 프라이머리 변환 식별자 pt_idx가, 프라이머리 변환 식별자 pt_idx의 최댓값 maxPTIdx보다 작은지 여부를 판정한다. 프라이머리 변환 식별자 pt_idx의 값이, maxPTIdx의 값보다 작다고 판정된 경우(pt_idx<maxPTIdx), 처리는 스텝 S520으로 진행한다.
스텝 S520에 있어서, 프라이머리 변환 식별자 부호화부(402)는, binIdx=i의 위치의 bin의 심볼 symbol의 값을 0으로 설정한다(symbol=0).
스텝 S521에 있어서, 프라이머리 변환 식별자 부호화부(402)는, 2치화된 프라이머리 변환 식별자 pt_idx의 bin열에서 binIdx=i의 위치의 bin의 심볼을 산술 부호화한다.
스텝 S521의 처리가 종료되면, 프라이머리 변환 식별자 부호화 처리가 종료되고, 처리는 도 36으로 되돌아간다. 또한, 스텝 S519에 있어서, 프라이머리 변환 식별자 pt_idx의 값이, maxPTIdx의 값 이상이라고 판정된 경우(pt_idx>=maxPTIdx), 스텝 S520 및 스텝 S521의 처리가 스킵되어, 프라이머리 변환 식별자 부호화 처리가 종료되고, 처리는 도 36으로 되돌아간다.
이상의 처리의 의사 코드를 도 39의 A에 도시하였다. 이와 같이 함으로써, 도 39의 B에 도시된 바와 같은 TU(트렁케이티드 유너리 2치화)를 사용한 2치화를 실현할 수 있다. 예를 들어, 프라이머리 변환 식별자 pt_idx의 값이 0이라면, 비트열 0이 얻어진다. 또한, 예를 들어, 프라이머리 변환 식별자 pt_idx의 값이 1이라면, 비트열 10이 얻어진다.
이와 같이 함으로써, 프라이머리 변환 식별자 pt_idx의 부호화 효율의 저감을 억제할 수 있다.
또한, 스텝 S513의 처리를 행함으로써, 인트라 예측과 인터 예측에서의 프라이머리 변환 식별자 pt_idx의 출현 빈도가 역경향이 있는 성질을 이용할 수 있어, 보다 효율적인 산술 부호화를 행할 수 있다.
또한, 스텝 S517의 처리에 있어서 도 38의 M0을 사용하는 경우, 컨텍스트를 사용하는 레귤러 모드에 의한 산술 부호화를 하지 않고, 모두 바이패스 모드에 의해 산술 부호화하기 때문에, 비특허문헌 1에 기재된 방법에 비하여 고속으로 bin열을 산술 부호화할 수 있고, 또한, 종래 기술에 비하여 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다.
또한, 스텝 S517의 처리에 있어서 도 38의 M1을 사용하는 경우, 선두의 bin(binIdx=0)에 대하여 컨텍스트를 사용하는 레귤러 모드에 의한 산술 부호화를 행하고, 나머지 bin을 바이패스 모드에 의해 산술 부호화하기 때문에, 비특허문헌 1에 기재된 방법보다도 비교적 고속으로 bin열을 산술 부호화할 수 있고, 또한, 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다. 또한, 부호화 효율도 개선된다.
또한, 스텝 S517의 처리에 있어서 도 38의 M2를 사용하는 경우, binIdx=0…1의 bin에 대하여 컨텍스트를 사용하는 레귤러 모드에 의한 산술 부호화를 행하고, 나머지 bin을 바이패스 모드에 의해 산술 부호화하기 때문에, 비특허문헌 1에 기재된 방법보다도 비교적 고속으로 bin열을 산술 부호화할 수 있다. 또한, 부호화 효율도 개선된다.
또한, 스텝 S517의 처리에 있어서 도 38의 M3을 사용하는 경우, 선두의 bin(binIdx=0)에 대하여 인트라, 인터에 구애되지 않고, 동일한 컨텍스트를 사용하는 레귤러 모드에 의한 산술 부호화를 행하고, 나머지 bin을 바이패스 모드에 의해 산술 부호화한다. 따라서, M1과 비교하여, 동등한 처리량, 및 동등한 부호화 효율을 달성하면서, 추가로, 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다.
또한, 스텝 S517의 처리에 있어서 도 38의 M4를 사용하는 경우, binIdx=0…1의 bin에 대하여 인트라, 인터에 구애되지 않고, 각각 동일한 컨텍스트를 사용하는 레귤러 모드에 의한 산술 부호화를 행하고, 나머지 bin을 바이패스 모드에 의해 산술 부호화한다. 따라서, M2와 비교하여, 동등한 처리량, 및 동등한 부호화 효율을 달성하면서, 추가로, 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다.
또한, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다. 예를 들어, 스텝 S516의 심볼 symbol을 0으로 하고, 스텝 S520의 심볼 symbol을 1로 하여 산술 부호화를 행하게 해도 된다. 그 경우, 도 39의 C에 도시하는 TU를 사용하여, 프라이머리 변환 식별자 pt_idx의 2치화를 행하게 된다.
또한, 스텝 S514 내지 스텝 S521의 처리 대신에 도 39의 B나 도 39의 C에 도시하는 TU의 룩업 테이블을 참조하여, 직접 프라이머리 변환 식별자 pt_idx의 값으로부터 bin열을 구하고, 그 bin열을 산술 부호화하도록 해도 된다.
<복호부>
다음으로 화상 복호 장치(200)에 대하여 설명한다. 이 경우에도 화상 복호 장치(200)는, 제1 실시 형태의 경우와 기본적으로 동일한 구성을 갖는다. 단, 이 경우의 화상 복호 장치(200)는, 부호화 데이터가 복호되어서 얻어지는 양자화 변환 계수 레벨에 대한 역양자화, 그 양자화 변환 계수 레벨이 역양자화되어서 얻어지는 세컨더리 변환 계수를 프라이머리 변환 계수로 변환하는 역세컨더리 변환, 및 그 프라이머리 변환 계수를 화상과 그 화상의 예측 화상과의 차분인 예측 잔차로 변환하는 역프라이머리 변환이 스킵되는 경우, 역프라이머리 변환의 내용에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는 복호부를 구비한다. 즉, 이 경우의 복호부(211)는, 부호화 데이터가 복호되어서 얻어지는 양자화 변환 계수 레벨에 대한 역양자화, 그 양자화 변환 계수 레벨이 역양자화되어서 얻어지는 세컨더리 변환 계수를 프라이머리 변환 계수로 변환하는 역세컨더리 변환, 및 그 프라이머리 변환 계수를 화상과 그 화상의 예측 화상과의 차분인 예측 잔차로 변환하는 역프라이머리 변환이 스킵되는 경우, 역프라이머리 변환의 내용에 관한 제1 정보의 부호화 데이터의 복호를 스킵한다.
도 40은, 이 경우의 복호부(211)가 프로그램 등을 실행함으로써 실현하는, 프라이머리 변환 식별자의 복호에 관한 주된 기능의 예를 도시하는 기능 블록도이다. 도 40에 도시된 바와 같이, 이 경우의 복호부(211)는, 프로그램을 실행함으로써, 프라이머리 변환 식별자의 복호에 관한 기능으로서, 예를 들어, 프라이머리 변환 유효 플래그 복호부(411) 및 프라이머리 변환 식별자 복호부(412)를 가질 수 있다.
프라이머리 변환 유효 플래그 복호부(411)는, 역프라이머리 변환의 허가에 관한 정보인 프라이머리 변환 유효 플래그 pt_enabled_flag의 부호화 데이터의 복호에 관한 처리를 행한다. 프라이머리 변환 식별자 복호부(412)는, 역프라이머리 변환의 내용에 관한 정보인 프라이머리 변환 식별자 pt_idx의 복호에 관한 처리를 행한다.
<복호 처리의 흐름>
이어서, 화상 복호 장치(200)에 의해 실행되는 각 처리의 흐름의 예를 설명한다. 이 경우 화상 복호 장치(200)는, 화상 복호 처리를, 제1 실시 형태의 경우와 기본적으로 마찬가지로 행한다. 단, 이 경우, 화상 복호 장치(200)는, 화상 복호 처리의 스텝 S201(도 13)에 있어서, 프라이머리 변환 식별자 pt_idx 등의 부호화 데이터의 복호를, 변환 양자화 바이패스 플래그 transquant_bypass_flag의 값 등에 따라서 행한다. 이 프라이머리 변환 식별자 pt_idx 등의 복호의 흐름의 예를 도 41의 흐름도를 참조하여 설명한다. 즉, 도 41에 도시하는 복호 처리는, 도 13의 스텝 S201에 있어서 행하여지는 복호 처리의 일부로서 실행된다. 기타의 부호화 파라미터나 양자화 변환 계수 레벨 level의 부호화 데이터의 복호는 임의의 방법으로 행해진다.
복호 처리가 개시되면, 스텝 S541에 있어서, 프라이머리 변환 유효 플래그 복호부(411)는, 비트 스트림(부호화 데이터)의 비트열로부터 프라이머리 변환 유효 플래그 pt_enabled_flag의 부호화 데이터를 복호하고, 헤더 정보의 일부로서 출력한다.
스텝 S542에 있어서, 프라이머리 변환 식별자 복호부(412)는, 헤더 정보 Hinfo에 포함되는 프라이머리 변환 유효 플래그 pt_enabled_flag가 1(참)인지 여부를 판정한다. 프라이머리 변환 유효 플래그 pt_enabled_flag가 0이라고 판정된 경우, 스텝 S543 내지 스텝 S547의 처리가 스킵되고, 처리는 스텝 S548로 진행한다.
역프라이머리 변환의 실행이 허가되어 있지 않다면, 역프라이머리 변환은 실행되지 않고, 프라이머리 변환 식별자 pt_idx는 부호화측으로부터 전송되지 않으므로, 프라이머리 변환 식별자 복호부(412)는, 프라이머리 변환 식별자 pt_idx의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
또한, 스텝 S542에 있어서, 프라이머리 변환 유효 플래그 pt_enabled_flag가 1이라고 판정된 경우, 처리는 스텝 S543으로 진행한다.
스텝 S543에 있어서, 프라이머리 변환 식별자 복호부(412)는, 변환 정보 Tinfo에 포함되는 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참)인지 여부를 판정한다. 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1이라고 판정된 경우, 즉, 역변환(역세컨더리 변환 및 역프라이머리 변환) 및 역양자화를 스킵(바이패스)한다고 판정된 경우, 스텝 S543 내지 스텝 S547의 처리가 스킵되고, 처리는 스텝 S548로 진행한다.
역변환 및 역양자화가 바이패스되는 것이라면, 프라이머리 변환 식별자 pt_idx는 불필요하다. 따라서, 이 경우, 프라이머리 변환 식별자 pt_idx는 부호화측으로부터 전송되지 않으므로, 프라이머리 변환 식별자 복호부(412)는, 프라이머리 변환 식별자 pt_idx의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S543에 있어서, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0이라고 판정된 경우, 즉, 역변환 및 역양자화를 스킵(바이패스)하지 않다고 판정된 경우, 처리는 스텝 S544로 진행한다.
스텝 S544에 있어서, 프라이머리 변환 식별자 복호부(412)는, 변환 정보 TInfo에 포함되는 변환 스킵 플래그 ts_flag가 1(참)인지 여부를 판정한다. 변환 스킵 플래그 ts_flag가 1이라고 판정된 경우, 즉, 역변환(역프라이머리 변환)을 스킵한다고 판정된 경우, 스텝 S545 내지 스텝 S547의 처리가 스킵되고, 처리는 스텝 S548로 진행한다.
역프라이머리 변환이 스킵된다면, 프라이머리 변환 식별자 pt_idx는 불필요하다. 따라서, 이 경우, 프라이머리 변환 식별자 pt_idx는 부호화측으로부터 전송되지 않으므로, 프라이머리 변환 식별자 복호부(412)는, 프라이머리 변환 식별자 pt_idx의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S544에 있어서, 변환 스킵 플래그 ts_flag가 0이라고 판정된 경우, 즉, 역변환(역프라이머리 변환)을 실행한다고 판정된 경우, 처리는 스텝 S545로 진행한다.
스텝 S545에 있어서, 프라이머리 변환 식별자 복호부(412)는, 처리 대상의 변환 블록의 사이즈 TBSize가 최대 프라이머리 변환 블록 사이즈 MaxPTSize 이하인지(조건식(TBSize<=MaxPTSize)의 논리값이 1(참)인지) 판정한다. 처리 대상의 변환 블록의 사이즈 TBSize가 최대 프라이머리 변환 블록 사이즈 MaxPTSize보다 크다고 판정된 경우(TBSize>MaxPTSize), 스텝 S546 및 스텝 S547의 처리가 스킵되고, 처리는 스텝 S548로 진행한다.
최대 프라이머리 변환 블록 사이즈 MaxPTSize는, 역프라이머리 변환의 실행이 허가되는 최대의 블록 사이즈를 나타내는 정보이다. 즉, 변환 블록의 사이즈가 이 최대 프라이머리 변환 블록 사이즈 MaxPTSize보다 큰 경우, 역프라이머리 변환의 실행이 허가되지 않으므로, 프라이머리 변환 식별자 pt_idx는 부호화측으로부터 전송되지 않는다. 따라서, 프라이머리 변환 식별자 복호부(412)는, 프라이머리 변환 식별자 pt_idx의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S545에 있어서, 처리 대상의 변환 블록의 사이즈 TBSize가 최대 프라이머리 변환 블록 사이즈 MaxPTSize 이하라고 판정된 경우(TBSize<=MaxPTSize), 처리는 스텝 S546으로 진행한다.
또한, 조건식(TBSize<=MaxPTSize)은 2를 밑으로 하는 TB 사이즈의 대수값 log2TBSize, 2를 밑으로 하는 최대 프라이머리 변환 블록 사이즈 MaxPTSize의 대수값 log2MaxPTSize를 사용하여, 조건식(log2TBSize<=log2MaxPTSize)으로 치환해도 된다.
스텝 S546에 있어서, 프라이머리 변환 식별자 복호부(412)는, 잔차 정보 Rinfo를 참조하여, 변환 블록 내에 존재하는 비제로 계수의 총 수 numSig(sig_coeff_flag==1의 총 수)을 이하의 식 (70)과 같이 도출한다.
numSig=Σ(sig_coeff_flag(i,j))
(i=0…TBSize-1,j=0…TBSize-1)
···(70)
스텝 S547에 있어서, 프라이머리 변환 식별자 복호부(412)는, 변환 블록 내의 비제로 계수의 수 numSig이 역치 TH보다 큰지 여부(numSig>=TH)를 판정한다. 비제로 계수의 총 수 numSig이 소정의 역치 TH보다 적다(numSig<TH)고 판정된 경우, 처리는 스텝 S548로 진행한다.
비제로 계수의 총 수 numSig이 소정의 역치 TH보다 적은 경우, 즉, 비제로 계수가 적은 소한 잔차 신호의 경우, 에너지 콤팩션이 저하되어, 부호화 효율이 저감될 우려가 있어서, 부호화 효율의 저감을 억제하기 위해서는, 변환 스킵 또는 소정의 역직교 변환(예를 들어, DCT-Type 2의 역변환)을 적용하는 것이 바람직하다. 즉, 이 경우, 프라이머리 변환 식별자 pt_idx는 부호화측으로부터 전송되지 않는다. 따라서, 프라이머리 변환 식별자 복호부(412)는, 프라이머리 변환 식별자 pt_idx의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S548에 있어서, 프라이머리 변환 식별자 복호부(412)는, 프라이머리 변환 식별자 pt_idx의 복호를 스킵한다. 또한, 이 경우, 프라이머리 변환 식별자 복호부(412)는, 프라이머리 변환 식별자 pt_idx의 값이, 수평 방향의 프라이머리 변환 Phor, 및 수직 방향의 프라이머리 변환 Pver에 소정의 직교 변환(예를 들어, DCT-Type 2)을 사용하는 것을 나타내는 식별자의 값(예를 들어 -1)이라고 추정한다. 즉, 프라이머리 변환 식별자 복호부(412)는, 프라이머리 변환 식별자 pt_idx의 값을 -1로 설정한다(pt_idx=-1). 스텝 S548의 처리가 종료되면 복호 처리가 종료되고, 처리는, 도 13으로 되돌아간다.
스텝 S547에 있어서, 비제로 계수의 총 수 numSig이 소정의 역치 TH 이상(numSig>=TH)이라고 판정된 경우, 처리는 스텝 S549로 진행한다.
스텝 S549에 있어서, 프라이머리 변환 식별자 복호부(412)는, 프라이머리 변환 식별자 pt_idx의 부호화 데이터를 복호한다. 이 복호의 상세에 대해서는 후술한다.
즉, 상술한 조건식 (66)이 1(참)이 되는 경우에만, 프라이머리 변환 식별자 pt_idx의 부호화 데이터가 복호된다. 이것은, 도 34를 참조하여 설명한 신택스의 위로부터 7단째에 대응한다.
스텝 S549의 처리가 종료되면, 복호 처리가 종료되고, 처리는, 도 13으로 되돌아간다.
이상과 같이 복호 처리를 실행함으로써, 화상 복호 장치(200)는, 변환 양자화 바이패스를 적용하는 경우에, 프라이머리 변환 식별자 pt_idx의 복호 처리를 스킵할 수 있다. 즉, 프라이머리 변환 식별자 pt_idx의 복호에 관한 처리량 및 부호량을 저감할 수 있다.
또한, 상술한 복호 처리는, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다. 또한, 상술한 신택스나 조건식 (66)은 실시 가능한 범위에서 연산을 변경 가능하다.
상기 화상 복호 장치(200)에서는, 변환 양자화 바이패스를 적용하는 경우에, 변환 블록 단위에서의 프라이머리 변환 식별자 pt_idx의 복호 처리를 스킵하는 사례에 대하여 설명했지만, 이것에 한정되지 않는다. 예를 들어, CU 단위로, 변환 블록 단위의 프라이머리 변환 식별자 pt_idx를 복호(부호화)하는지 여부를 나타내는 CU 프라이머리 변환 플래그 cu_pt_flag를 변환 양자화 바이패스 플래그 transquant_bypass_flag의 값에 따라서 복호한다. CU 프라이머리 변환 플래그 cu_pt_flag가 1(참)인 경우에는, 변환 블록 단위의 프라이머리 변환 식별자 pt_idx의 복호를 하고, CU 프라이머리 변환 플래그 cu_pt_flag가 0(거짓)인 경우에는, 변환 블록 단위의 프라이머리 변환 식별자 pt_idx의 복호를 생략하고, 프라이머리 변환 식별자 pt_idx의 값을 -1로 추정해도 된다. 이 경우, 복호부(214)는, 또한, 도시하지 않은 CU 프라이머리 변환 플래그 복호부(413)를 구비한다.
CU 프라이머리 변환 플래그 복호부(413)는, TU 단위에서의 프라이머리 변환 식별자 pt_idx의 복호(부호화)의 허가에 관한 정보인 CU 프라이머리 변환 플래그 cu_pt_flag의 복호에 관한 처리를 행한다. CU 프라이머리 변환 플래그 복호부(413)에 있어서의 CU 프라이머리 변환 플래그 cu_pt_flag의 복호는 예를 들어, 이하의 의사 코드에 기초하여 행한다.
if (!transquant_bypass_flag && pt_enabled_flag)
{
decode cu_pt_flag
}
즉, CU 프라이머리 변환 플래그 복호부(413)는, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0(거짓), 또한 프라이머리 변환 유효 플래그 pt_enabled_flag가 1(참)인 때에 CU 프라이머리 변환 플래그 cu_pt_flag를 복호하고, 그 이외의 경우(변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참), 또는 프라이머리 변환 유효 플래그 pt_enabled_flag가 0(거짓))인 때에는, CU 프라이머리 변환 플래그 cu_pt_flag의 복호를 생략하고, CU 프라이머리 변환 플래그 cu_pt_flag의 값을 0으로 추정한다. 즉, 변환 양자화 바이패스 플래그를 적용하는 경우에는, CU 프라이머리 변환 플래그 cu_pt_flag는 전송되지 않는다. 따라서, CU 프라이머리 변환 플래그 복호부(413)는, CU 프라이머리 변환 플래그 cu_pt_flag의 복호를 스킵하고, CU 프라이머리 변환 플래그 cu_pt_flag의 값을 0으로 추정한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 할 수 있다.
또한, 이 경우, 프라이머리 변환 식별자 복호부(412)에 있어서의, 프라이머리 변환 식별자 pt_idx의 복호 조건은, 예를 들어, 이하의 의사 코드에 기초하여 행한다.
if(cu_pt_flag && ts_flag==0 && numSig>=TH)
{
decode pt_idx
}
else {
pt_idx=-1
}
즉, 프라이머리 변환 식별자 복호부(412)는, CU 프라이머리 변환 플래그 cu_pt_flag가 1(참), 또한 변환 스킵 플래그 ts_flag가 0(거짓), 또한, 비제로 계수수 numSig이 역치 TH 이상의 때, 프라이머리 변환 식별자 pt_idx를 복호하고, 그 이외의 경우(CU 프라이머리 변환 플래그 cu_pt_flag가 0(거짓), 또는 변환 스킵 플래그 ts_flag가 1(참), 또는, 비제로 계수수 numSig이 역치 TH보다 작다)인 때에는, 프라이머리 변환 식별자 pt_idx의 복호를 생략하고, 프라이머리 변환 식별자 pt_idx의 값을 소정의 직교 변환(예를 들어, DCT-Type 2 등)을 적용하는 것을 나타내는 값(-1)이라고 추정한다. 즉, CU 프라이머리 변환 플래그가 0인 경우에는, 프라이머리 변환 식별자 pt_idx를 복호측에 전송되지 않는다. 따라서, 프라이머리 변환 식별자 복호부(412)는, 프라이머리 변환 식별자 pt_idx의 복호를 스킵하고, 그 식별자의 값을, 소정의 직교 변환을 적용하는 것을 나타내는 값(-1)으로 추정한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 할 수 있다.
<프라이머리 변환 식별자 복호 처리의 흐름>
이어서, 도 42의 흐름도를 참조하여, 도 41의 스텝 S549에 있어서 실행되는 프라이머리 변환 식별자 복호 처리의 흐름의 예를 설명한다.
프라이머리 변환 식별자 복호 처리가 개시되면, 프라이머리 변환 식별자 복호부(412)는, 스텝 S551에 있어서, 변수의 초기화를 행한다. 예를 들어, 프라이머리 변환 식별자 복호부(412)는, 프라이머리 변환 식별자 pt_idx를 0으로 설정한다(pt_idx=0). 또한, 예를 들어, 프라이머리 변환 식별자 복호부(412)는, 부호화 데이터의 비트열의 1bin을 산술 복호하여 얻어지는 심볼의 값을 넣는 변수인 symbol을 0으로 설정한다(symbol=0). 또한, 예를 들어, 프라이머리 변환 식별자 복호부(412)는, 프라이머리 변환 식별자 pt_idx의 부호화 데이터의 비트열에서 복호 대상의 bin의 위치를 나타내는 인덱스인 binIdx를 0으로 설정한다(binIdx=0). 또한, 예를 들어, 프라이머리 변환 식별자 복호부(412)는, 프라이머리 변환 식별자 pt_idx의 최댓값인 maxPTIdx를 3으로 설정한다(maxPTIdx=3).
스텝 S552에 있어서, 프라이머리 변환 식별자 복호부(412)는, 비트열에서 binIdx=i의 위치의 bin을 산술 복호하고, 얻어진 심볼의 값을, 변수 symbol에 설정한다. 여기서, 프라이머리 변환 식별자 복호부(412)는, binIdx=i의 위치의 bin을 산술 복호할 때에 도 38에 도시하는 바와 같이, 각 binIdx에 따른 컨텍스트를 사용하여, 산술 복호한다.
예를 들어, 도 38의 M0의 경우에는, binIdx=0…2까지 모든 bin에 대해서, 컨텍스트를 사용하지 않는 바이패스 모드에 의해 산술 복호를 행하는 예를 나타내고 있다. 또한, 바이패스 모드란, 심볼 0과 심볼 1의 발생 확률이 등확률인 것으로 하여, 산술 복호를 행하는 모드이다.
또한, 도 38의 M1의 경우에는, binIdx=0(선두)의 bin에 대해서, 컨텍스트를 사용하는 레귤러 모드에 의해 산술 복호를 행하고, binIdx=1…2의 bin에 대해서는, 바이패스 모드에 의해 산술 복호를 행하는 예를 나타내고 있다. 또한, 레귤러 모드란, 심볼 0과 심볼 1의 발생 확률을 갱신하면서, 산술 복호를 행하는 모드이다. 예를 들어, M1의 경우, binIdx=0의 bin에 대해서는, 인트라의 경우, 컨텍스트 키스를 지정하는 인덱스 ctxInc의 값을 0으로 하고, 인터의 경우에는, 1을 할당한다.
또한, 도 38의 M2의 경우에는, binIdx=0…1의 bin에 대해서, 컨텍스트를 사용하는 레귤러 모드에 의해 산술 복호를 행하고, binIdx=2의 bin에 대해서는, 바이패스 모드에 의해 산술 복호를 행하는 예를 나타내고 있다. 예를 들어, M2의 경우, binIdx=0의 bin에 대해서는, 인트라의 경우, 컨텍스트를 지정하는 인덱스 ctxInc의 값을 0으로 하고, 인터의 경우에는, 1을 할당한다. 또한, binIdx=1의 bin에 대해서는, 인트라의 경우, 컨텍스트를 지정하는 인덱스 ctxInc의 값을 2로 하고, 인터의 경우에는, 3을 할당한다.
또한, 도 38의 M1 및 M2에서는, 레귤러 모드에 의해 산술 복호의 대상으로 되는 binIdx=i의 위치의 bin에 대하여 인트라와 인터의 경우에, 상이한 컨텍스트를 지정하는 컨텍스트 인덱스 ctxInc를 할당하고 있다. 그러나, 화상 부호화 장치(100)에서는, 상술한 식 (68)에 있어서, 프라이머리 변환 식별자 pt_idx의 각 값의 출현 확률이, 인트라 예측과 인터 예측에서 역의 경향을 이용하여, 프라이머리 변환 식별자 pt_idx에 대해서, 인트라 예측의 경우, 가장 출현 빈도 높은 값(0)을 0, 2번째로 출현 빈도가 높은 값(1)을 1, 3번째로 출현 빈도에 높은 값(2)을 2, 4번째로 출현 빈도가 높은 값(3)을 3으로 하고, 인터 예측의 경우, 가장 출현 빈도 높은 값(3)을 0, 2번째로 출현 빈도가 높은 값(2)을 1, 3번째로 출현 빈도에 높은 값(3)을 2, 4번째로 출현 빈도가 높은 값(0)을 3으로서 수정하고, 산술 부호화를 행하고 있다. 이렇게 함으로써, 식 (68) 후의 프라이머리 변환 식별자 pt_idx의 binIdx=i의 bin의 심볼이 0, 또는 1이 되는 발생 확률을 인트라와 인터에서 동등하게 할 수 있다. 따라서, 화상 복호 장치(200)에 있어서도, 인트라와 인터의 경우에, 레귤러 모드에 의해 산술 복호의 대상으로 되는 binIdx=i의 위치의 bin에 대하여 동일한 컨텍스트를 지정하는 컨텍스트 인덱스 ctxInc를 할당해도 된다. 이 경우, 인트라와 인터에서 다른 컨텍스트를 지정하는 컨텍스트 인덱스 ctxInc를 할당하는 경우와 동등한 부호화 효율을 달성하면서, 추가로, 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다.
예를 들어, 도 38의 M3의 경우에는, binIdx=0(선두)의 bin에 대해서, 컨텍스트를 사용하는 레귤러 모드에 의해 산술 복호를 행하고, binIdx=1…2의 bin에 대해서는, 바이패스 모드에 의해 산술 복호를 행하는 예를 나타내고 있다. M3의 경우, binIdx=0의 bin에 대해서는, 인트라, 인터에 구애되지 않고, 컨텍스트를 지정하는 인덱스 ctxInc의 값을 0으로 한다.
또한, 도 38의 M4의 경우에는, binIdx=0…1의 bin에 대해서, 컨텍스트를 사용하는 레귤러 모드에 의해 산술 복호를 행하고, binIdx=2의 bin에 대해서는, 바이패스 모드에 의해 산술 복호를 행하는 예를 나타내고 있다. M4의 경우, 인트라, 인터에 구애되지 않고, binIdx=0의 bin에 대해서는, 컨텍스트를 지정하는 인덱스 ctxInc의 값을 0으로 하고, binIdx=1의 bin에 대해서는, 컨텍스트를 지정하는 인덱스 ctxInc의 값을 1로 한다.
도 38의 M0을 사용함으로써, 컨텍스트를 사용하는 레귤러 모드에 의한 산술 복호를 하지 않고, 모두 바이패스 모드에 의해 산술 복호하기 때문에, 비특허문헌 1에 기재된 방법에 비하여 고속으로 bin열로부터 심볼을 복호할 수 있고, 또한, 비특허문헌 1에 기재된 방법에 비하여 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다.
도 38의 M1을 사용함으로써, 선두의 bin(binIdx=0)에 대하여 컨텍스트를 사용하는 레귤러 모드에 의한 산술 복호를 행하고, 나머지 bin을 바이패스 모드에 의해 산술 복호하기 때문에, 비특허문헌 1에 기재된 방법보다 비교적 고속으로 bin열로부터 심볼을 복호할 수 있고, 또한, 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다. 또한, 부호화 효율도 개선된다.
도 38의 M2를 사용함으로써, binIdx=0…1의 bin에 대하여 컨텍스트를 사용하는 레귤러 모드에 의한 산술 복호를 행하고, 나머지 bin을 바이패스 모드에 의해 산술 복호하기 때문에, 비특허문헌 1에 기재된 방법보다 비교적 고속으로 bin열로부터 심볼을 복호할 수 있다. 또한, 부호화 효율도 개선된다.
또한, 도 38의 M3의 경우, 선두의 bin(binIdx=0)에 대하여 인트라, 인터에 구애되지 않고, 동일한 컨텍스트를 지정하는 컨텍스트 인덱스를 할당한다. 따라서, M1과 비교하여, 동등한 처리량, 및 동등한 부호화 효율을 달성하면서, 추가로 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다.
도 38의 M4의 경우, binIdx=0…1의 bin에 대하여 인트라, 인터에 구애되지 않고, 각각, 동일한 컨텍스트를 지정하는 컨텍스트 인덱스를 할당한다. 따라서, M2와 비교하여, 동등한 처리량, 및 동등한 부호화 효율을 달성하면서, 추가로 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다.
스텝 S553에 있어서, 프라이머리 변환 식별자 복호부(412)는, 심볼 symbol의 값이 1인지 판정한다. 심볼 symbol이 1이라고 판정된 경우, 처리는 스텝 S554로 진행한다.
스텝 S554에 있어서, 프라이머리 변환 식별자 복호부(412)는, 프라이머리 변환 식별자 pt_idx 및 변수 binIdx의 값을 갱신한다. 예를 들어, 프라이머리 변환 식별자 복호부(412)는, 프라이머리 변환 식별자 pt_idx의 값을 +1 인크리먼트한다(pt_idx+=1). 또한, 예를 들어, 프라이머리 변환 식별자 복호부(412)는, 변수 binIdx의 값을 +1 인크리먼트한다(binIdx+=1).
스텝 S555에 있어서, 프라이머리 변환 식별자 복호부(412)는, 프라이머리 변환 식별자 pt_idx의 값이, 프라이머리 변환 식별자 pt_idx의 최댓값 maxPTIdx와 동등한지 여부를 판정한다. 프라이머리 변환 식별자 pt_idx의 값이, 최댓값 maxPTIdx의 값과 동등하지 않다고 판정된 경우(pt_idx !=maxPTIdx), 처리는 스텝 S556으로 진행한다. 또한, 스텝 S553에 있어서, 심볼 symbol이 0이라고 판정된 경우, 처리는 스텝 S556으로 진행한다.
스텝 S556에 있어서, 프라이머리 변환 식별자 복호부(412)는, 심볼 symbol의 값이 1인지 여부를 판정한다. 심볼 symbol의 값이 1이라고 판정된 경우, 처리는 스텝 S552로 되돌아가고, 그 이후의 처리가 반복된다.
또한, 스텝 S555에 있어서, 프라이머리 변환 식별자 pt_idx의 값이, 최댓값 maxPTIdx의 값과 동등한다고 판정된 경우(pt_idx==maxPTIdx), 처리는 스텝 S557로 진행한다. 또한, 스텝 S556에 있어서, 심볼 symbol의 값이 0이라고 판정된 경우, 처리는 스텝 S557로 진행한다.
스텝 S557에 있어서, 프라이머리 변환 식별자 복호부(412)는, 예측 모드 정보 Pinfo를 참조하여, 처리 대상 변환 블록을 포함하는 CU가 인트라 예측인지, 인터 예측인지 판정한다. 인터 예측이라고 판정된 경우, 처리는 스텝 S558로 진행한다.
스텝 S558에 있어서, 프라이머리 변환 식별자 복호부(412)는, 복호하여 얻어진 프라이머리 변환 식별자 pt_idx의 값을 이하의 식 (71)에 기초하여, 수정한다.
pt_idx=maxPTIdx-pt_idx
···(71)
프라이머리 변환 식별자 pt_idx의 각 값의 출현 확률이, 인트라 예측과 인터 예측에서 역의 경향이 있다. 그래서, 인트라 예측의 경우, 가장 출현 빈도 높은 값(0)을 0, 2번째로 출현 빈도가 높은 값(1)을 1, 3번째로 출현 빈도에 높은 값(2)을 2, 4번째로 출현 빈도가 높은 값(3)을 3으로 하여 산술 부호화되고, 인터 예측의 경우, 가장 출현 빈도 높은 값(3)을 0, 2번째로 출현 빈도가 높은 값(2)을 1, 3번째로 출현 빈도에 높은 값(3)을 2, 4번째로 출현 빈도가 높은 값(0)을 3으로 하여 산술 부호화되어 있다. 프라이머리 변환 식별자 복호부(412)는, 이러한 프라이머리 변환 식별자 pt_idx의 값의 올바른 할당으로 되돌리기 위해서, 식 (71)과 같이 처리를 행한다.
스텝 S558의 처리가 종료되면, 프라이머리 변환 식별자 복호 처리가 종료되고, 처리는 도 41로 되돌아간다. 또한, 스텝 S557에 있어서, 인트라 예측이라고 판정된 경우, 스텝 S558의 처리는 스킵되어, 프라이머리 변환 식별자 복호 처리가 종료되고, 처리는 도 41로 되돌아간다.
이상의 처리의 의사 코드를 도 43의 A에 도시하였다. 이와 같이 함으로써, 도 43의 B에 도시된 바와 같은 TU(트렁케이티드 유너리 2치화)를 사용한 다식화(역2치화)를 실현할 수 있다. 예를 들어, 비트열이 0이라면, 프라이머리 변환 식별자 pt_idx의 값은 0이 된다. 또한, 예를 들어, 비트열이 10이라면, 프라이머리 변환 식별자 pt_idx의 값은 1이 된다.
이와 같이 함으로써, 프라이머리 변환 식별자 pt_idx의 부호화 효율의 저감을 억제할 수 있다.
또한, 스텝 S558의 처리를 행함으로써, 인트라 예측과 인터 예측에서의 프라이머리 변환 식별자 pt_idx의 출현 빈도가 역경향이 있는 성질을 이용할 수 있어, 보다 효율적인 산술 복호를 행할 수 있다.
또한, 스텝 S552의 처리에 있어서, 도 38의 M0을 사용하는 경우, 컨텍스트를 사용하는 레귤러 모드에 의한 산술 복호를 하지 않고, 모두 바이패스 모드에 의해 산술 복호하기 때문에, 비특허문헌 1에 기재된 방법에 비하여 고속으로 bin열로부터 심볼을 복호할 수 있고, 또한, 비특허문헌 1에 기재된 방법에 비하여 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다.
또한, 스텝 S552의 처리에 있어서, 도 38의 M1을 사용하는 경우, 선두의 bin(binIdx=0)에 대하여 컨텍스트를 사용하는 레귤러 모드에 의한 산술 복호를 행하고, 나머지 bin을 바이패스 모드에 의해 산술 복호하기 때문에, 비특허문헌 1에 기재된 방법보다도 비교적 고속으로 bin열로부터 심볼을 복호할 수 있고, 또한, 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다. 또한, 부호화 효율도 개선된다.
또한, 스텝 S552의 처리에 있어서, 도 38의 M2를 사용하는 경우, binIdx=0…1의 bin에 대하여 컨텍스트를 사용하는 레귤러 모드에 의한 산술 복호를 행하고, 나머지 bin을 바이패스 모드에 의해 산술 복호하기 때문에, 비특허문헌 1에 기재된 방법보다도 비교적 고속으로 bin열로부터 심볼을 복호할 수 있다. 또한, 부호화 효율도 개선된다.
또한, 스텝 S552의 처리에 있어서 도 38의 M3을 사용하는 경우, 선두의 bin(binIdx=0)에 대하여 인트라, 인터에 구애되지 않고, 동일한 컨텍스트를 사용하는 레귤러 모드에 의한 산술 복호를 행하고, 나머지 bin을 바이패스 모드에 의해 산술 복호한다. 따라서, M1과 비교하여, 동등한 처리량, 및 동등한 부호화 효율을 달성하면서, 추가로, 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다.
또한, 스텝 S552의 처리에 있어서 도 38의 M4를 사용하는 경우, binIdx=0…1의 bin에 대하여 인트라, 인터에 구애되지 않고, 각각 동일한 컨텍스트를 사용하는 레귤러 모드에 의한 산술 복호를 행하고, 나머지 bin을 바이패스 모드에 의해 산술 복호한다. 따라서, M2와 비교하여, 동등한 처리량, 및 동등한 부호화 효율을 달성하면서, 추가로, 컨텍스트를 보유하는 메모리 사이즈를 삭감할 수 있다.
또한, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다. 예를 들어, 스텝 S553이나 스텝 S556에 있어서, 심볼 symbo의 판정 조건을 1과 동등한 것으로 하고 있지만, 0과 동등한 것으로 해도 된다. 그 경우, 도 43의 C에 도시하는 TU를 사용하여, 프라이머리 변환 식별자 pt_idx의 역2치화를 행하게 된다.
또한, 스텝 S552 내지 스텝 S556의 처리 대신에 도 43의 B나 도 43의 C에 도시하는 TU의 룩업 테이블을 참조하여, 직접 비트열로부터 프라이머리 변환 식별자 pt_idx의 값을 구하게 해도 된다.
<6. 제6 실시 형태>
<CU, PU, 및 TU의 형상>
도 44는, 제6 실시 형태에 있어서의 CU, PU, 및 TU의 형상에 대하여 설명하는 도면이다.
제6 실시 형태에 있어서의 CU, PU, 및 TU는, JVET-C0024, "EE2.1: Quadtree plus binary tree structure integration with JEM tools"에 기재되어 있는 QTBT(Quad tree plus binary tree)의 CU, PU, 및 TU이다.
구체적으로는, 제6 실시 형태에 있어서의 CU의 블록 분할에서는, 하나의 블록을 4(=2x2)개뿐만 아니라, 2(=1x2,2x1)개의 서브블록으로도 분할할 수 있다. 즉, 제6 실시 형태에서는, CU의 블록 분할은, 하나의 블록을 4개 또는 2개의 서브블록으로의 분할을 재귀적으로 반복함으로써 행해지고, 그 결과 4분목(Quad-Tree)상 또는 수평 방향 또는 수직 방향으로 2분목(Binary-Tree)상의 트리 구조가 형성된다.
그 결과, CU의 형상은, 정사각형뿐만 아니라, 직사각형일 가능성이 있다. 예를 들어, LCU 사이즈가 128x128일 경우, CU의 사이즈(수평 방향의 사이즈 w×수직 방향의 사이즈 h)는 도 44에 도시하는 바와 같이, 128x128, 64x64, 32x32, 16x16, 8x8, 4x4와 같은 정사각형의 사이즈뿐만 아니라, 128x64, 128x32, 128x16, 128x8, 128x4, 64x128, 32x128, 16x128, 8x128, 4x128, 64x32, 64x16, 64x8, 64x4, 32x64, 16x64, 8x64, 4x64, 32x16, 32x8, 32x4, 16x32, 8x32, 4x32, 16x8, 16x4, 8x16, 4x16, 8x4, 4x8과 같은 직사각형의 사이즈일 가능성이 있다. 또한, 제6 실시 형태에서는, PU와 TU는 CU와 동일하다.
<변환 스킵 플래그의 부호화·복호의 스킵>
이상에 의해, 제6 실시 형태에서는, 변환 블록의 수평 방향의 사이즈 TBXSize와 수직 방향의 사이즈 TBYSize가 상이한 경우가 있다. 따라서, 제6 실시 형태에서는, 최대 변환 스킵 블록 사이즈 MaxTSSize로서, 변환 스킵 블록의 수평 방향의 사이즈 TBXSize와 수직 방향의 사이즈 TBYSize 중의 큰 쪽 max(TBXSize,TBYSize)의 최댓값이 설정된다. 그리고, max(TBXSize,TBYSize)와 최대 변환 스킵 블록 사이즈 MaxTSSize의 비교 결과에 기초하여, (역)변환의 스킵에 관한 변환 스킵 플래그 ts_flag의 부호화나 복호가 스킵된다. 제6 실시 형태의 변환 스킵 플래그 ts_flag의 부호화나 복호의 스킵 이외의 처리는, 제3 실시 형태의 처리와 마찬가지이다.
<신택스>
도 45는, 제6 실시 형태에 있어서의 변환 스킵 플래그 ts_flag 등의 부호화의 제어를 나타내는 의사 코드를 기재한 신택스 테이블의 예를 도시하는 도면이다.
도 45의 신택스 테이블은, 위로부터 4단째를 제외하고, 도 20의 신택스 테이블과 동일하다.
도 45의 위로부터 4단째에 도시된 바와 같이, 변환 스킵 플래그 ts_flag의 부호화(즉, 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호)는 max(TBXSize,TBYSize)가 최대 변환 스킵 블록 사이즈 MaxTSSize 이하인 것이 조건의 하나가 된다. 즉, max(TBXSize,TBYSize)가 최대 변환 스킵 블록 사이즈 MaxTSSize보다 큰 경우, 변환 스킵 플래그 ts_flag의 부호화(변환 스킵 플래그 ts_flag의 부호화 데이터의 복호)가 스킵된다.
또한, 변환 스킵 유효 플래그 ts_enabled_flag와 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1인 것도, 변환 스킵 플래그 ts_flag의 부호화(변환 스킵 플래그 ts_flag의 부호화 데이터의 복호)의 조건의 하나가 된다. 즉, (역)변환과 (역)양자화의 양쪽이 스킵되는 경우, 및 변환 스킵이 허가되어 있지 않은 경우, 변환 스킵 플래그 ts_flag의 부호화(변환 스킵 플래그 ts_flag의 부호화 데이터의 복호)가 스킵된다.
<부호화부>
이 경우에도 화상 부호화 장치(100)는, 제1 실시 형태의 경우와 기본적으로 동일한 구성을 갖는다. 즉, 제1 실시 형태에 있어서 설명한 화상 부호화 장치(100)가, max(TBXSize,TBYSize)와 최대 변환 스킵 블록 사이즈 MaxTSSize의 비교 결과에 기초하여, 변환 스킵 플래그 ts_flag의 부호화를 스킵하는 부호화부를 구비한다. 즉, 이 경우의 부호화부(114)는, max(TBXSize,TBYSize)와 최대 변환 스킵 블록 사이즈 MaxTSSize의 비교 결과에 기초하여, 변환 스킵 플래그 ts_flag의 부호화를 스킵한다.
도 46은, 이 경우의 부호화부(114)가 프로그램 등을 실행함으로써 실현하는, 변환 스킵 플래그 ts_flag의 부호화에 관한 주된 기능의 예를 도시하는 기능 블록도이다. 도 46에 도시된 바와 같이, 이 경우의 부호화부(114)는, 프로그램을 실행함으로써, 변환 스킵 플래그 ts_flag의 부호화에 관한 기능으로서, 예를 들어, 제3 실시 형태에 있어서 설명한 부호화부(114)와 동일한, 세컨더리 변환 유효 플래그 부호화부(301), 변환 스킵 유효 플래그 부호화부(303), 최대 변환 스킵 블록 사이즈 부호화부(304), 변환 양자화 바이패스 플래그 부호화부(305), 및 세컨더리 변환 플래그 부호화부(321)의 기능을 가질 수 있다. 또한, 부호화부(114)는, 프로그램을 실행함으로써, 변환 스킵 플래그 ts_flag의 부호화에 관한 기능으로서, 예를 들어, 변환 스킵 플래그 부호화부(441)의 기능을 가질 수 있다.
변환 스킵 플래그 부호화부(441)는, max(TBXSize,TBYSize)와 최대 변환 스킵 블록 사이즈 MaxTSSize의 비교 결과에 기초하여, 변환 스킵 플래그 ts_flag의 부호화에 관한 처리를 행한다.
<부호화 처리의 흐름>
이어서, 화상 부호화 장치(100)에 의해 실행되는 각 처리의 흐름의 예를 설명한다. 이 경우 화상 부호화 장치(100)는, 화상 부호화 처리를, 제1 실시 형태의 경우와 기본적으로 마찬가지로 행한다. 단, 이 경우, 화상 부호화 장치(100)는, 화상 부호화 처리의 스텝 S110(도 9)에 있어서, 변환 스킵 플래그 ts_flag의 부호화를, max(TBXSize,TBYSize)와 최대 변환 스킵 블록 사이즈 MaxTSSize의 비교 결과 등에 기초하여 행한다. 이 변환 스킵 플래그 ts_flag 등의 부호화의 흐름의 예를 도 47 및 도 48의 흐름도를 참조하여 설명한다. 즉, 도 47 및 도 48에 도시하는 부호화 처리는, 도 9의 스텝 S110에 있어서 행하여지는 부호화 처리의 일부로서 실행된다. 기타의 부호화 파라미터나 양자화 변환 계수 레벨 level의 부호화는 임의의 방법으로 행해진다.
도 47의 스텝 S601 내지 S606의 처리는, 도 22의 스텝 S361 내지 S366의 처리와 마찬가지이므로, 설명은 생략한다.
스텝 S607에 있어서, 변환 스킵 플래그 부호화부(441)는, 처리 대상의 변환 블록의 max(TBXSize,TBYSize)가 최대 변환 스킵 블록 사이즈 MaxTSSize 이하인지 여부(조건식 max(TBXSize,TBYSize)<=MaxTSSize가 참인지 여부)를 판정한다. 처리 대상의 변환 블록의 max(TBXSize,TBYSize)가 최대 변환 스킵 블록 사이즈 MaxTSSize보다 크다고 판정된 경우, 즉, 상술한 조건식이 0(거짓)이라고 판정된 경우, 스텝 S608의 처리가 스킵(생략)되어, 처리는 도 48의 스텝 S609로 진행한다.
max(TBXSize,TBYSize)가 최대 변환 스킵 블록 사이즈보다 큰 경우, 변환 스킵이 허가되지 않으므로, 변환 스킵 플래그 ts_flag의 값은 0으로 고정된다. 따라서, 이 경우, 변환 스킵 플래그 ts_flag를 복호측에 전송할 필요가 없으므로, 변환 스킵 플래그 부호화부(441)는, 변환 스킵 플래그 ts_flag의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S607에 있어서, 처리 대상의 변환 블록의 max(TBXSize,TBYSize)가 최대 변환 스킵 블록 사이즈 MaxTSSize 이하라고 판정된 경우, 즉, 상술한 조건식이 1(참)이라고 판정된 경우, 처리는 스텝 S608로 진행한다.
스텝 S608 내지 S615의 처리는, 도 22의 스텝 S368의 처리 및 도 23의 스텝 S371 내지 S377의 처리와 마찬가지이므로, 설명은 생략한다.
이상과 같이, 변환 스킵 플래그 부호화부(441)는, 변환 블록의 수평 방향의 사이즈 TBXSize 및 수직 방향의 사이즈 TBYSize에 기초하여, 변환 스킵 플래그 ts_flag의 부호화를 스킵한다. 따라서, 변환 블록의 형상이 직사각형인 경우에도, 변환 스킵 플래그 ts_flag의 부호화를 적절하게 스킵할 수 있다.
<복호부>
다음으로 화상 복호 장치(200)에 대하여 설명한다. 이 경우에도 화상 복호 장치(200)는, 제1 실시 형태의 경우와 기본적으로 동일한 구성을 갖는다. 단, 이 경우의 화상 복호 장치(200)는, max(TBXSize,TBYSize)와 최대 변환 스킵 블록 사이즈 MaxTSSize의 비교 결과에 기초하여, 변환 스킵 플래그 ts_flag의 복호를 스킵하는 복호부를 구비한다. 즉, 이 경우의 복호부(211)는, max(TBXSize,TBYSize)와 최대 변환 스킵 블록 사이즈 MaxTSSize의 비교 결과에 기초하여, 변환 스킵 플래그 ts_flag의 복호를 스킵한다.
도 49는, 이 경우의 복호부(211)가 프로그램 등을 실행함으로써 실현하는, 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호에 관한 주된 기능의 예를 도시하는 기능 블록도이다. 도 49에 도시된 바와 같이, 이 경우의 복호부(211)는, 프로그램을 실행함으로써, 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호에 관한 기능으로서, 예를 들어, 제3 실시 형태에 있어서 설명한 복호부(211)와 동일한, 세컨더리 변환 유효 플래그 복호부(311), 변환 스킵 유효 플래그 복호부(313), 최대 변환 스킵 블록 사이즈 복호부(314), 변환 양자화 바이패스 플래그 복호부(315), 및 세컨더리 변환 플래그 복호부(331)의 기능을 가질 수 있다. 또한, 복호부(211)는, 프로그램을 실행함으로써, 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호에 관한 기능으로서, 예를 들어, 변환 스킵 플래그 복호부(461)의 기능을 가질 수 있다.
세컨더리 변환 플래그 복호부(331)는, max(TBXSize,TBYSize)와 최대 변환 스킵 블록 사이즈 MaxTSSize의 비교 결과에 기초하여, 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호에 관한 처리를 행한다.
<복호 처리의 흐름>
이어서, 화상 복호 장치(200)에 의해 실행되는 각 처리의 흐름의 예를 설명한다. 이 경우 화상 복호 장치(200)는, 화상 복호 처리를, 제1 실시 형태의 경우와 기본적으로 마찬가지로 행한다. 단, 이 경우, 화상 복호 장치(200)는, 화상 복호 처리의 스텝 S201(도 13)에 있어서, 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호를, max(TBXSize,TBYSize)와 최대 변환 스킵 블록 사이즈 MaxTSSize의 비교 결과 등에 기초하여 행한다. 이 변환 스킵 플래그 ts_flag 등의 부호화 데이터의 복호의 흐름의 예를 도 50 및 도 51의 흐름도를 참조하여 설명한다. 즉, 도 50 및 도 51에 도시하는 부호화 처리는, 도 13의 스텝 S201에 있어서 행하여지는 복호 처리의 일부로서 실행된다.
도 50의 스텝 S631 내지 S636의 처리는, 도 25의 스텝 S381 내지 S386의 처리와 마찬가지이므로, 설명은 생략한다.
스텝 S637에 있어서, 변환 스킵 플래그 복호부(461)는, 처리 대상의 변환 블록의 max(TBXSize,TBYSize)가 최대 변환 스킵 블록 사이즈 MaxTSSize 이하인지 여부(조건식 max(TBXSize,TBYSize)<=MaxTSSize가 참인지 여부)를 판정한다. 처리 대상의 변환 블록의 max(TBXSize,TBYSize)가 최대 변환 스킵 블록 사이즈 MaxTSSize보다 크다고 판정된 경우, 즉, 상술한 조건식이 0(거짓)이라고 판정된 경우, 처리는 스텝 S638로 진행한다.
변환 블록의 max(TBXSize,TBYSize)가 최대 변환 스킵 블록 사이즈보다 큰 경우, 변환 스킵이 허가되지 않으므로, 변환 스킵 플래그 ts_flag의 값은 0으로 고정된다. 따라서, 이 경우, 변환 스킵 플래그 ts_flag는 부호화측으로부터 전송되지 않으므로, 변환 스킵 플래그 복호부(461)는, 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
또한, 스텝 S637에 있어서, 처리 대상의 변환 블록의 max(TBXSize,TBYSize)가 최대 변환 스킵 블록 사이즈 MaxTSSize 이하라고 판정된 경우, 즉, 상술한 조건식이 1(참)이라고 판정된 경우, 처리는 스텝 S639로 진행한다.
스텝 S638 내지 S647의 처리는, 도 25의 스텝 S388 및 S389 및 도 26의 스텝 S391 내지 S398의 처리와 마찬가지이므로, 설명은 생략한다.
이상과 같이, 변환 스킵 플래그 복호부(461)는, 변환 블록의 수평 방향의 사이즈 TBXSize 및 수직 방향의 사이즈 TBYSize에 기초하여, 변환 스킵 플래그 ts_flag의 부호화를 스킵한다. 따라서, 변환 블록의 형상이 직사각형인 경우에도, 변환 스킵 플래그 ts_flag의 복호를 적절하게 스킵할 수 있다.
또한, 변환 스킵 플래그 ts_flag의 부호화나 복호의 스킵을 행할지 여부의 판정 방법은, 수평 방향의 사이즈 TBXSize 및 수직 방향의 사이즈 TBYSize에 기초하여 변환 블록의 사이즈가 변환 스킵 블록 사이즈의 최댓값보다 큰지 여부를 판정하는 방법이라면, 상술한 방법에 한정되지 않는다.
예를 들어, 수평 방향의 사이즈 TBXSize 및 수직 방향의 사이즈 TBYSize의 대수가 큰 편인 max(log2TBXSize,log2TBYSize)가 변환 스킵 블록 사이즈의 최댓값의 대수 log2MaxTSSize보다 큰 경우(max(log2TBXSize,log2TBYSize)>log2MaxTSSize)에, 변환 스킵 플래그 ts_flag의 부호화나 복호의 스킵이 행하여지게 해도 된다.
또한, 최대 변환 스킵 블록 사이즈 MaxTSSize를, 최대 변환 스킵 블록의 수평 방향의 사이즈 MaxTSXSize와 수직 방향의 사이즈 MaxTSYSize의 합으로서, 수평 방향의 사이즈 TBXSize와 수직 방향의 사이즈 TBYSize의 합이, 최대 변환 스킵 블록 사이즈 MaxTSSize보다 큰 경우(TBXSize+TBYSize>MaxTSSize)에, 변환 스킵 플래그 ts_flag의 부호화나 복호의 스킵이 행하여지게 해도 된다.
또한, 수평 방향의 사이즈 TBXSize와 수직 방향의 사이즈 TBYSize의 곱이, 최대 변환 스킵 블록의 수평 방향의 사이즈 MaxTSXSize와 수직 방향의 사이즈 MaxTSYSize의 곱보다 큰 경우(TBXSize*TBYSize>MaxTSXSize*MaxTSYSize)에, 변환 스킵 플래그 ts_flag의 부호화나 복호의 스킵이 행하여지게 해도 된다.
또한, 수평 방향의 사이즈 TBXSize와 수직 방향의 사이즈 TBYSize의 대수의 합(log2TBXSize+log2TBYSize)이 최대 변환 스킵 블록의 수평 방향의 사이즈 MaxTSXSize와 수직 방향의 사이즈 MaxTSYSize의 대수의 합(log2MaxTSXSize+log2MaxTSYSize)보다 큰 경우(log2TBXSize+log2TBYSize>log2MaxTSXSize+log2MaxTSYSize)에, 변환 스킵 플래그 ts_flag의 부호화나 복호의 스킵이 행하여지게 해도 된다.
또한, 대수 log2MaxTSSize를, 최대 변환 스킵 블록의 수평 방향의 사이즈 MaxTSXSize와 수직 방향의 사이즈 MaxTSYSize의 대수의 합으로서, 수평 방향의 사이즈 TBXSize와 수직 방향의 사이즈 TBYSize의 대수의 합(log2TBXSize+log2TBYSize)이 대수 log2MaxTSSize보다 큰 경우(log2TBXSize+log2TBYSize>log2MaxTSSize)에, 변환 스킵 플래그 ts_flag의 부호화나 복호의 스킵이 행하여지게 해도 된다.
또한, 판정에 사용되는 최대 변환 스킵 블록의 수평 방향의 사이즈 MaxTSXSize(또는 그 대수값 log2MaxTSXSize)와 수직 방향의 사이즈 MaxTSYSize(또는 그 대수값 log2MaxTSYSize)는 SPS,PPS, 슬라이스 헤더(SH) 등의 파라미터 세트에 설정되어서, 부호화측으로부터 복호측에 통지된다.
또한, 제6 실시 형태에서는, 제3 실시 형태에 있어서의 블록이 도 44에 도시된 정사각형 또는 직사각형을 포함하는 직사각형의 블록이 적용되었지만, 제3 실시 형태 이외의 실시 형태에 있어서의 블록에 도 44에 도시된 직사각형의 블록이 적용되게 해도 된다. 이 경우, 각 실시 형태에 있어서, 제6 실시 형태와 마찬가지로, 수평 방향의 사이즈 TBXSize 및 수직 방향의 사이즈 TBYSize에 기초하여 변환 스킵 플래그 ts_flag의 부호화나 복호의 스킵이 행하여진다.
<7. 제7 실시 형태>
<종래 기술의 개요>
H. Huang, K. Zhang, Y.-W. Huang, S. Lei,"EE2.1: Quadtree plus binary tree structure integration with JEM tools", JVET-C0024, 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(이하, 비특허문헌 3이라고 칭한다)이나, J. Chen, E. Alshina, G. J. Sullivan, J.-R. Ohm, J. Boyce,"Algorithm Description of Joint Exploration Test Model 4"JVET-D1001, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 4th Meeting: Chendu, CN, 15-21 Octover 2016(이하, 비특허문헌 4이라고 칭한다)에는, 휘도의 변환 블록에 대해서, 수평 방향의 프라이머리 변환 PThor, 및 수직 방향의 변환 PTver마다, 적응적으로 복수의 상이한 1차원 직교 변환으로부터, 프라이머리 변환을 선택하는 적응 프라이머리 변환(AMT: Adaptive Multiple core Transform)이 개시되어 있다.
이 적응 프라이머리 변환을 실시할지 여부를 나타내는 적응 프라이머리 변환 플래그 apt_flag(CU 프라이머리 변환 플래그 cu_pt_flag라고도 칭한다)는 처리 대상의 휘도 변환 블록을 포함하는 CU에 있어서 시그널된다(복호측에 전송된다).
그러나, 상기 종래 기술에서는, apt_flag==1의 경우(적응 프라이머리 변환을 적용하는 경우)에, 변환 스킵의 적부를 나타내는 변환 스킵 플래그 ts_flag가 시그널될 수 있다. 따라서, ts_flag 또는 apt_flag에 관한 부호량이 용장으로 되어, 불필요하게 부호량이 증대할 우려가 있었다.
또한, 변환 양자화 바이패스 플래그 transquant_bypass_flag==1의 경우(변환 양자화 바이패스를 적용하는 경우), 적응 프라이머리 변환 플래그 apt_flag가 시그널될 수 있다. 따라서, apt_flag에 관한 부호량이 용장으로 되어, 불필요하게 부호량이 증대할 우려가 있었다.
비특허문헌 3 및 비특허문헌 4에 기재된 방법에 있어서, 용장한 부호량이 발생하는 경우의 예를 도 52에 도시하였다. 도 52에 도시하는 표는, 비특허문헌 3 및 비특허문헌 4에 기재된 방법에 있어서의, 변환 양자화 바이패스 플래그 transquant_bypass_flag, 적응 프라이머리 변환 플래그 apt_flag, 변환 스킵 플래그 ts_flag, 프라이머리 변환 식별자 pt_idx, 및 세컨더리 변환 식별자 st_idx가 취할 수 있는 베리에이션을 나타내고 있다.
예를 들어, 도 52에 도시하는 표에 있어서, case#1은, "transquant_bypass_flag==0, apt_flag==0, ts_flag==0, pt_idx는 시그널되지 않는, st_idx==0"의 상태를 나타내고 있고, 이때, 프라이머리 변환(1st Tr.)은 DCT가 선택되고, 세컨더리 변환(2nd Tr.)은 스킵되는 것을 나타낸다.
이에 반해, case#3 및 case#4는, apt_flag==1과 ts_flag==0이 시그널되어 있지만, 적응 프라이머리 변환 플래그 apt_flag를 시그널할 필요가 있는 경우에는ts_flag==0인 것은 명확하므로 이 변환 스킵 플래그 ts_flag의 시그널은 불필요하다. 즉, 이 경우, 변환 스킵 플래그 ts_flag가 용장한다. 또한, case#5는, ts_flag==1이 시그널되어 있음에도 불구하고 적응 프라이머리 변환 플래그 apt_flag가 시그널되어 있어 용장한다. case#6 및 case#7은, transquant_bypass_flag==1이 시그널되어 있음에도 불구하고 적응 프라이머리 변환 플래그 apt_flag가 시그널되어 있어 용장한다.
<적응 프라이머리 변환 플래그 및 변환 스킵 플래그의 부호화·복호의 스킵>
이상과 같이, 비특허문헌 3 및 비특허문헌 4에 기재된 방법에서는, 적응 프라이머리 변환 플래그 apt_flag==1의 경우(적응 프라이머리 변환을 적용하는 경우)에, 변환 스킵의 적부를 나타내는 변환 스킵 플래그 ts_flag가 시그널될 가능성이 있어, 불필요하게 부호량이 증대할 우려가 있었다. 또한, 변환 스킵 플래그 ts_flag==1의 경우에, 적응 프라이머리 변환 플래그 apt_flag가 시그널될 가능성이 있어, 불필요하게 부호량이 증대할 우려가 있었다. 또한, 변환 양자화 바이패스 플래그 transquant_bypass_flag==1의 경우(변환 양자화 바이패스를 적용하는 경우)에, 적응 프라이머리 변환 플래그 apt_flag가 시그널될 가능성이 있어, 불필요하게 부호량이 증대한다는 우려가 있었다.
그래서, 예를 들어 도 53의 case#5와 같이, 화상 부호화 시에, 변환 양자화 바이패스 플래그 transquant_bypass_flag==1의 경우(변환 양자화 바이패스를 행하는 것을 나타내는 경우), 적응 프라이머리 변환 플래그 apt_flag의 부호화를 스킵(생략)하도록 한다. 이와 같이 함으로써, 부호화 효율의 저감을 억제할 수 있다.
또한, 예를 들어 도 53의 case#3 및 case#4와 같이, 적응 프라이머리 변환 플래그 apt_flag==1의 경우(적응 프라이머리 변환을 적용하는 경우), 변환 스킵 플래그 ts_flag의 부호화를 스킵(생략)하도록 한다. 이와 같이 함으로써, 부호화 효율의 저감을 억제할 수 있다.
또한, 예를 들어 도 53의 case#5와 같이, 화상 복호 시에, 변환 양자화 바이패스 플래그 transquant_bypass_flag==1의 경우, 적응 프라이머리 변환 플래그 apt_flag의 복호를 스킵(생략)하도록 한다. 이와 같이 함으로써, 부호화 효율의 저감을 억제할 수 있다.
또한, 예를 들어 도 53의 case#3 및 case#4와 같이, 적응 프라이머리 변환 플래그 apt_flag==1의 경우, 변환 스킵 플래그 ts_flag의 복호를 스킵(생략)하도록 한다. 이와 같이 함으로써, 부호화 효율의 저감을 억제할 수 있다.
<신택스>
이러한 제어를 나타내는 의사 코드를 기재한 신택스 테이블의 예를 도 54 및 도 55에 도시하였다. 또한, 이들 신택스에 있어서, countNonZeroCoeffs(compID)는 compID가 나타내는 색신호의 변환 블록 내에 존재하는 비제로 계수(유의 계수)의 수를 되돌리는 함수이다. 이 예의 경우, 도 54의 위로부터 6단째에 도시된 바와 같이, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0(거짓)인 것이, 적응 프라이머리 변환 플래그 apt_flag의 부호화(적응 프라이머리 변환 플래그 apt_flag의 부호화 데이터의 복호)의 조건의 하나로 되어 있다. 즉, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참)인 경우, 즉, (역)변환 및 (역)양자화가 스킵되는 경우, 적응 프라이머리 변환 플래그 apt_flag의 부호화(적응 프라이머리 변환 플래그 apt_flag의 부호화 데이터의 복호)가 스킵된다.
또한, 도 55의 위로부터 3단째에 도시된 바와 같이, 적응 프라이머리 변환 플래그 apt_flag가 0(거짓)인 것이, 변환 스킵 플래그 ts_flag의 부호화(변환 스킵 플래그 ts_flag의 부호화 데이터의 복호)의 조건의 하나로 되어 있다. 즉, 적응 프라이머리 변환 플래그 apt_flag가 1(참)인 경우, 즉, 적응 프라이머리 변환이 적용되는 경우, 휘도 변환 블록 및 색차의 변환 블록에 관한 변환 스킵 플래그 ts_flag의 부호화(변환 스킵 플래그 ts_flag의 부호화 데이터의 복호)가 스킵된다.
<부호화>
이 경우에도 화상 부호화 장치(100)는, 제1 실시 형태의 경우와 기본적으로 동일한 구성을 갖는다. 즉, 제1 실시 형태에 있어서 설명한 화상 부호화 장치(100)가, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환, 및 그 프라이머리 변환 계수가 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수에 대한 양자화가 스킵되는 경우(변환 양자화 바이패스 시), 적응 프라이머리 변환의 온·오프를 나타내는 제1 정보의 부호화를 스킵하는 부호화부를 구비한다.
즉, 이 경우의 부호화부(114)는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환, 및 그 프라이머리 변환 계수가 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수에 대한 양자화가 스킵되는 경우, 적응 프라이머리 변환의 온·오프를 나타내는 제1 정보의 부호화를 스킵한다.
또한, 화상 부호화 장치(100)는, 적응 프라이머리 변환이 적용되는 경우, 변환 스킵의 온·오프를 나타내는 제2 정보의 부호화를 스킵하는 부호화부를 구비한다. 즉, 이 경우의 부호화부(114)는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 적응 프라이머리 변환이 실시되는 경우(apt_flag==1), 변환 스킵의 온·오프를 나타내는 제2 정보의 부호화를 스킵한다.
도 56은, 이 경우의 부호화부(114)가 프로그램 등을 실행함으로써 실현하는, 적응 프라이머리 변환 플래그의 부호화, 및 변환 스킵 플래그의 부호화에 관한 주된 기능의 예를 도시하는 기능 블록도이다. 도 56에 도시된 바와 같이, 이 경우의 부호화부(114)는, 프로그램을 실행함으로써, 적응 프라이머리 변환 플래그의 부호화에 관한 기능으로서, 예를 들어, 적응 프라이머리 변환 플래그 부호화부(501)를 갖고, 변환 스킵 플래그의 부호화에 관한 기능으로서, 변환 스킵 플래그 부호화부(502)를 가질 수 있다.
적응 프라이머리 변환 플래그 부호화부(501)는, 적응 프라이머리 변환의 온·오프에 관한 정보인 적응 프라이머리 변환 플래그 apt_flag의 부호화에 관한 처리를 행한다. 변환 스킵 플래그 부호화부(502)는, 변환 스킵의 온·오프에 관한 정보인 변환 스킵 플래그 ts_flag의 부호화에 관한 처리를 행한다.
<부호화 처리의 흐름>
이어서, 화상 부호화 장치(100)에 의해 실행되는 각 처리의 흐름의 예를 설명한다. 이 경우 화상 부호화 장치(100)는, 화상 부호화 처리를, 제1 실시 형태의 경우와 기본적으로 마찬가지로 행한다. 단, 이 경우, 화상 부호화 장치(100)는, 화상 부호화 처리의 스텝 S110(도 9)에 있어서, 적응 프라이머리 변환 플래그 apt_flag 등의 부호화를, 변환 양자화 바이패스 플래그 transquant_bypass_flag의 값 등에 따라서 행한다. 이 적응 프라이머리 변환 플래그 apt_flag 등의 부호화의 흐름의 예를 도 57의 흐름도를 참조하여 설명한다. 즉, 도 57에 도시하는 부호화 처리는, 도 9의 스텝 S110에 있어서 행하여지는 부호화 처리의 일부로서 실행된다. 기타의 부호화 파라미터나 양자화 변환 계수 레벨 level의 부호화는 임의의 방법으로 행해진다.
부호화 처리가 개시되면, 스텝 S701에 있어서, 적응 프라이머리 변환 플래그 부호화부(501)는, 이하의 조건식 (72)에 나타내는 조건 Condition 1이 1(참)인지 여부를 판정한다. 조건 Condition 1은, 도 54를 참조하여 설명한 신택스의 위로부터 6단째에 대응한다.
Condition 1:
apt_enabled_flag
&& compID==COMPONENT_Y
&& width<=MaxPTSize
&& height<=MaxPTSize
&& !transquant_bypass_flag
···(72)
여기서, MaxPTSize는, 적응 프라이머리 변환이 적용 가능한 블록 사이즈의 최댓값을 나타내고, 예를 들어, 64이다. 또한, MaxPTSize는, 상기 값에 한정되지 않고, 헤더 정보에 있어서 통지되는 MaxPTSize를 규정하는 파라미터에 의해 설정되어도 된다.
또한, 조건식 (72)에 있어서, 블록 사이즈와 역치를 비교하는 부분을, 이하의 조건식 (73)과 같이, 대수 표현으로 치환해도 된다.
apt_enabled_flag
&& compID==COMPONENT_Y
&& log2TbWidth<=log2MaxPTSize
&& log2TbHeight<=log2MaxPTSize
&& !transquant_bypass_flag
···(73)
여기서, log2MaxPTSize의 값은, 6이다. 또한, log2MaxPTSize의 값은, 이것에 한정되지 않고, 헤더 정보에 있어서 통지되는 log2MaxPTSize를 규정하는 파라미터에 의해 설정되어도 된다.
스텝 S701에 있어서, 조건 Condition 1이 1(참)이라고 판정된 경우, 즉, 적응 프라이머리 변환 플래그를 부호화한다고 판정된 경우, 처리는 스텝 S702로 진행한다. 스텝 S702에 있어서, 적응 프라이머리 변환 플래그 부호화부(501)는, 적응 프라이머리 변환 플래그 apt_flag를 가변 길이 부호화하고, 비트열(부호화 데이터)을 생성하여 출력한다. 스텝 S702의 처리가 종료되면 처리는 스텝 S703으로 진행한다.
이에 반해, 스텝 S701에 있어서, 조건 Condition 1이 0(거짓)이라고 판정된 경우, 즉, 적응 프라이머리 변환 플래그를 부호화하지 않다고 판정된 경우, 스텝 S702의 처리가 스킵되고, 처리는 스텝 S703으로 진행한다.
적응 프라이머리 변환 플래그의 부호화 조건을 만족시키지 않는다면, 적응 프라이머리 변환 플래그 apt_flag를 복호측에 전송할 필요가 없다. 따라서, 적응 프라이머리 변환 플래그 부호화부(501)는, 적응 프라이머리 변환 플래그 apt_flag의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S703에 있어서, 변환 스킵 플래그 부호화부(502)는, 이하의 조건식 (74)에 나타내는 조건 Condition 2가 1(참)인지 여부를 판정한다. 조건 Condition 2는, 도 55를 참조하여 설명한 신택스의 위로부터 3단째에 대응한다.
Condition 2:
ts_enabled_flag
&& width* height<=MaxTSSize
&& !transquant_bypass_flag
&& !apt_flag
···(74)
여기서, MaxTSSize는, 변환 스킵이 적용 가능한 블록 사이즈의 최댓값을 나타내고, 예를 들어, 16이다. 또한, MaxTSSize는, 상기 값에 한정되지 않고, 헤더 정보에 있어서 통지되는 MaxTSSize를 규정하는 파라미터에 의해 설정되어도 된다.
또한, 조건식 (74)에 있어서, 블록 사이즈와 역치를 비교하는 부분을, 이하의 조건식 (75)와 같이, 대수 표현으로 치환해도 된다.
ts_enabled_flag
&& (log2TbWidth+log2TbHeight)<=log2MaxTSSize
&& !transquant_bypass_flag
&& !apt_flag
···(75)
여기서, log2MaxTSSize의 값은, 4이다. 또한, log2MaxTSSize의 값은, 이것에 한정되지 않고, 헤더 정보에 있어서 통지되는 log2MaxTSSize를 규정하는 파라미터에 의해 설정되어도 된다.
스텝 S703에 있어서, 조건 Condition 2가 1(참)이라고 판정된 경우, 즉, 변환 스킵 플래그를 부호화한다고 판정된 경우, 처리는 스텝 S704로 진행한다. 스텝 S704에 있어서, 변환 스킵 플래그 부호화부(502)는, 변환 스킵 플래그 ts_flag를 가변 길이 부호화하고, 비트열(부호화 데이터)을 생성하여 출력한다. 스텝 S704의 처리가 종료되면 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
이에 반해, 스텝 S703에 있어서, 조건 Condition 2가 0(거짓)이라고 판정된 경우, 즉, 변환 스킵 플래그를 부호화하지 않다고 판정된 경우, 스텝 S704의 처리가 스킵되어, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
변환 스킵 플래그의 부호화 조건을 만족시키지 않는 것이라면, 변환 스킵 플래그 ts_flag를 복호측에 전송할 필요가 없다. 따라서, 변환 스킵 플래그 부호화부(502)는, 변환 스킵 플래그 ts_flag의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
이 부호화에 의해 얻어진 적응 프라이머리 변환 플래그 apt_flag의 부호화 데이터 및 변환 스킵 플래그 ts_flag의 부호화 데이터는, 양자화 변환 계수 레벨 level의 부호화 데이터를 포함하는 비트 스트림에 포함된다.
이상과 같이 부호화 처리를 실행함으로써, 화상 부호화 장치(100)는, 변환 양자화 바이패스를 적용하는 경우에, 적응 프라이머리 변환 플래그 apt_flag의 부호화 처리를 스킵할 수 있다. 즉, 적응 프라이머리 변환 플래그 apt_flag의 부호화에 관한 처리량 및 부호량을 저감할 수 있다.
또한, 화상 부호화 장치(100)는, 적응 프라이머리 변환을 적용하는 경우에, 변환 스킵 플래그 ts_flag의 부호화 처리를 스킵할 수 있다. 즉, 변환 스킵 플래그 ts_flag의 부호화에 관한 처리량 및 부호량을 저감할 수 있다.
<보충>
상술한 조건 condition 1은, 조건식 (72)에 한정되지 않고, 각 색 공간마다 적응 프라이머리 변환 플래그를 부호화(복호)하도록, 이하의 조건식 (76)으로 변경해도 된다. 이 경우, 상술한 조건식 (74)에 도시하는 조건 condition 2도 이하의 조건식 (77)에 맞춰서 변경하는 것이 바람직하다.
Condition 1b:
apt_enabled_flag
&& width<=MaxPTSize
&& height<=MaxPTSize
&& !transquant_bypass_flag
···(76)
Condition 2b:
ts_enabled_flag
&& width* height<=MaxTSSize
&& !transquant_bypass_flag
&& !apt_flag [compID]
···(77)
상기 변경에 대응하는 신택스 테이블을 도 58, 및 도 59에 도시하였다. 또한, 이들의 신택스에 있어서, countNonZeroCoeffs(compID)는 compID가 나타내는 색신호의 변환 블록 내에 존재하는 비제로 계수(유의 계수)의 수를 되돌리는 함수이다. 조건식 (76)에 도시하는 조건 Condition 1b는, 도 58의 신택스의 위로부터 6단째에 대응한다. 또한, 조건식 (77)에 도시하는 조건 Condition 2b는, 도 59의 신택스의 위로부터 3단째에 대응한다.
또한, 상술한 조건 Condition 2는, 조건식 (74)에 한정되지 않고, 예를 들어, 색 공간 식별자 compID가 휘도를 나타내고, 또한 적응 프라이머리 변환 플래그 apt_flag가 1(참)일 경우, 변환 스킵 플래그 ts_flag의 부호화(복호)를 생략하도록, 이하의 조건식 (78)로 변경해도 된다.
Codntion 2c:
ts_enabled_flag
&& width* height<=MaxTSSize
&& !transquant_bypass_flag
&& !(apt_flag && compID==COMPONENT_Y)
···(78)
상기 변경에 대응하는 신택스 테이블을 도 60에 도시하였다. countNonZeroCoeffs(compID)는 compID가 나타내는 색신호의 변환 블록 내에 존재하는 비제로 계수(유의 계수)의 수를 되돌리는 함수이다. 조건 Condition 2c는, 도 60의 신택스의 위로부터 3단째에 대응한다.
또한, 상술한 부호화 처리는, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다. 또한, 상술한 신택스나 조건식 (72) 내지 (78)은 실시 가능한 범위에서 연산을 변경 가능하다.
<복호>
다음으로 화상 복호 장치(200)에 대하여 설명한다. 이 경우에도 화상 복호 장치(200)는, 제1 실시 형태의 경우와 기본적으로 동일한 구성을 갖는다. 단, 이 경우의 화상 복호 장치(200)는, 부호화 데이터가 복호되어서 얻어지는 양자화 변환 계수 레벨에 대한 역양자화, 그 양자화 변환 계수 레벨이 역양자화되어서 얻어지는 세컨더리 변환 계수를 프라이머리 변환 계수로 변환하는 역세컨더리 변환, 및 그 프라이머리 변환 계수를 화상과 그 화상의 예측 화상과의 차분인 예측 잔차로 변환하는 역프라이머리 변환이 스킵되는 경우, 적응 프라이머리 변환의 온·오프에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는 복호부를 구비한다.
즉, 이 경우의 복호부(211)는, 부호화 데이터가 복호되어서 얻어지는 양자화 변환 계수 레벨에 대한 역양자화, 그 양자화 변환 계수 레벨이 역양자화되어서 얻어지는 세컨더리 변환 계수를 프라이머리 변환 계수로 변환하는 역세컨더리 변환, 및 그 프라이머리 변환 계수를 화상과 그 화상의 예측 화상과의 차분인 예측 잔차로 변환하는 역프라이머리 변환이 스킵되는 경우, 적응 프라이머리 변환의 온·오프에 관한 제1 정보의 부호화 데이터의 복호를 스킵한다.
또한, 화상 복호 장치(200)는, 적응 프라이머리 변환이 적용되는 경우(apt_flag==1), 변환 스킵의 온·오프를 나타내는 제2 정보의 부호화 데이터의 복호를 스킵하는 복호부(211)를 구비한다. 즉, 이 경우의 복호부(211)는, 부호화 데이터가 복호되어서 얻어지는 양자화 변환 계수 레벨에 대한 역양자화·역세컨더리 변환하여 얻어지는 프라이머리 변환 계수에 대하여 적응 프라이머리 변환의 역처리, 즉, 역적응 프라이머리 변환이 실시되는 경우, 변환 스킵의 온·오프를 나타내는 제2 정보의 부호화 데이터의 복호를 스킵한다.
도 61은, 이 경우의 복호부(211)가 프로그램 등을 실행함으로써 실현하는, 프라이머리 변환 식별자의 복호에 관한 주된 기능의 예를 도시하는 기능 블록도이다. 도 61에 도시된 바와 같이, 이 경우의 복호부(211)는, 프로그램을 실행함으로써, 적응 프라이머리 변환 플래그의 복호에 관한 기능으로서, 예를 들어, 적응 프라이머리 변환 플래그 복호부(511)를 갖고, 변환 스킵 플래그의 복호에 관한 기능으로서, 변환 스킵 플래그 복호부(512)를 가질 수 있다.
적응 프라이머리 변환 플래그 복호부(511)는, 역적응 프라이머리 변환의 온·오프에 관한 정보인 적응 프라이머리 변환 플래그 apt_flag의 부호화 데이터의 복호에 관한 처리를 행한다. 변환 스킵 플래그 복호부(512)는, 변환 스킵의 온·오프에 관한 정보인 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호에 관한 처리를 행한다.
<복호 처리의 흐름>
이어서, 화상 복호 장치(200)에 의해 실행되는 각 처리의 흐름의 예를 설명한다. 이 경우 화상 복호 장치(200)는, 화상 복호 처리를, 제1 실시 형태의 경우와 기본적으로 마찬가지로 행한다. 단, 이 경우, 화상 복호 장치(200)는, 화상 복호 처리의 스텝 S201(도 13)에 있어서, 적응 프라이머리 변환 플래그 apt_flag 등의 부호화 데이터의 복호를, 변환 양자화 바이패스 플래그 transquant_bypass_flag의 값 등에 따라서 행한다. 이 적응 프라이머리 변환 플래그 apt_flag 등의 복호의 흐름의 예를 도 62의 흐름도를 참조하여 설명한다. 즉, 도 62에 도시하는 복호 처리는, 도 13의 스텝 S201에 있어서 행하여지는 복호 처리의 일부로서 실행된다. 기타의 부호화 파라미터나 양자화 변환 계수 레벨 level의 부호화 데이터의 복호는 임의의 방법으로 행해진다.
복호 처리가 개시되면, 스텝 S711에 있어서, 적응 프라이머리 변환 플래그 호부(511)는, 상술한 조건식 (72)에 나타내는 조건 condition 1이 1(참)인지 여부를 판정한다. 조건 condition 1이 0(거짓)이라고 판정된 경우, 즉, 적응 프라이머리 변환 플래그를 복호하지 않는다고 판정된 경우, 처리는 스텝 S712로 진행한다.
스텝 S712에 있어서, 적응 프라이머리 변환 플래그 복호부(511)는, 적응 프라이머리 변환 플래그 apt_flag의 복호를 스킵한다. 이 경우, 적응 프라이머리 변환 플래그 복호부(511)는, 적응 프라이머리 변환을 실시하지 않는다고 해석하고, 그것을 나타내는 값(0)을 적응 프라이머리 변환 플래그 apt_flag에 설정한다(apt_flag=0).
즉, 적응 프라이머리 변환 플래그의 부호화 조건을 만족시키지 않는 것이라면, 적응 프라이머리 변환 플래그 apt_flag는 부호화측으로부터 전송되지 않으므로, 적응 프라이머리 변환 플래그 복호부(511)는, 적응 프라이머리 변환 플래그 apt_flag의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S712의 처리가 종료되면, 처리는 스텝 S714로 진행한다. 또한, 스텝 S711에 있어서, 조건 condition 1이 1(참)이라고 판정된 경우, 즉, 적응 프라이머리 변환 플래그를 복호한다고 판정된 경우, 처리는 스텝 S713으로 진행한다.
스텝 S713에 있어서, 적응 프라이머리 변환 플래그 복호부(511)는, 적응 프라이머리 변환 플래그 apt_flag의 부호화 데이터를 복호한다. 스텝 S713의 처리가 종료되면, 처리는 스텝 S714로 진행한다.
스텝 S714에 있어서, 변환 스킵 플래그 복호부(512)는, 상술한 조건식 (74)에 나타내는 condition 2가 1(참)인지 여부를 판정한다. 조건 condition 2가 0(거짓)이라고 판정된 경우, 즉, 변환 스킵 플래그를 복호하지 않는다고 판정된 경우, 처리는 스텝 S715로 진행한다.
스텝 S715에 있어서, 변환 스킵 플래그 복호부(512)는, 변환 스킵 플래그 ts_flag의 복호를 스킵한다. 이 경우, 변환 스킵 플래그 복호부(512)는, 변환 스킵을 실시하지 않는다고 해석하고, 그것을 나타내는 값(0)을 변환 스킵 플래그 ts_flag에 설정한다(ts_flag=0)).
즉, 변환 스킵 플래그의 부호화 조건을 만족시키지 않는 것이라면, 변환 스킵 플래그 ts_flag는 부호화측으로부터 전송되지 않으므로, 변환 스킵 플래그 복호부(512)는, 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S715의 처리가 종료되면, 복호 처리가 종료되고, 처리는 도 13으로 되돌아간다. 또한, 스텝 S714에 있어서, 조건 condition 2가 1(참)이라고 판정된 경우, 즉, 변환 스킵 플래그를 복호한다고 판정된 경우, 처리는 스텝 S716으로 진행한다.
스텝 S716에 있어서, 변환 스킵 플래그 복호부(512)는, 변환 스킵 플래그 ts_flag의 부호화 데이터를 복호한다. 스텝 S716의 처리가 종료되면, 복호 처리가 종료되고, 처리는 도 13으로 되돌아간다.
이상과 같이 복호 처리를 실행함으로써, 화상 복호 장치(200)는, 변환 양자화 바이패스를 적용하는 경우에, 적응 프라이머리 변환 플래그 apt_flag의 복호 처리를 스킵할 수 있다. 즉, 적응 프라이머리 변환 플래그 apt_flag의 복호에 관한 처리량 및 부호량을 저감할 수 있다.
또한, 화상 복호 장치(200)는, 적응 프라이머리 변환을 적용하는 경우에, 변환 스킵 플래그 ts_flag의 복호 처리를 스킵할 수 있다. 즉, 변환 스킵 플래그 ts_flag의 복호에 관한 처리량 및 부호량을 저감할 수 있다.
<보충>
상술한 조건 condition 1은, 조건식 (72)에 한정되지 않고, 각 색 공간마다 적응 프라이머리 변환 플래그를 복호하도록 상술한 조건식 (76)으로 변경해도 된다. 이 경우, 상술한 조건식 (74)를 상술한 조건식 (77)에 맞춰서 변경하는 것이 바람직하다.
또한, 상술한 조건 Condition 2는, 상술한 조건식 (74)에 한정되지 않고, 색 공간 식별자 compID가 휘도를 나타내고, 또한 적응 프라이머리 변환 플래그 apt_flag가 0(거짓)을 나타내는 경우, 변환 스킵 플래그 ts_flag의 복호를 생략하도록, 상술한 조건식 (78)로 변경해도 된다.
또한, 상술한 복호 처리는, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다. 또한, 상술한 신택스나 조건식 (72) 내지 (78)은 실시 가능한 범위에서 연산을 변경 가능하다.
<8. 제8 실시 형태>
<종래 기술의 개요>
H. Jang, J. Lim, J. Nam, S.-H. Kim, "Signaling for primary transform and transform skip"JVET-E0037, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 5th Meeting: Geneva, CH, 12-20 January 2017(이하, 비특허문헌 5라고 칭한다)에서는, 비특허문헌 2에 기재된QTBT(Quad Tree+Binary Tree)의 도입에 의해, 부호화 유닛 CU와 변환 유닛 TU가 동일해졌기 때문에, 변환 스킵 플래그 ts_flag==1인 경우(변환 스킵을 적용하는 경우), CU 레벨에서의 적응 프라이머리 변환 플래그 apt_flag의 시그널은 용장한 것을 지적하고 있다.
그래서, 비특허문헌 5에서는, 적응 프라이머리 변환 플래그 apt_flag의 신택스 위치를, 변환 스킵 플래그 ts_flag 후에 배치하고, ts_flag==1인 때, 그 적응 프라이머리 변환 플래그 apt_flag의 복호(부호화)를 생략하는 것이 제안되어 있다.
그러나, 비특허문헌 5에 기재된 구성에서는, 부호화 효율이 저하되는 것이 지적되어 있다. 또한, 비특허문헌 5에 기재된 구성에서는, 비특허문헌 3이나 비특허문헌 4의 경우와 마찬가지로, 변환 양자화 바이패스가 적용되는 경우(transquant_bypass_flag==1)에 있어서, 적응 프라이머리 변환 플래그 apt_flag가 시그널될 수 있다. 따라서, apt_flag에 관한 부호량이 용장으로 되어, 불필요하게 부호량이 증대할 우려가 있었다.
비특허문헌 5에 기재된 방법에 있어서, 용장한 부호량이 발생하는 경우의 예를 도 63에 도시하였다. 도 63에 도시하는 표는, 비특허문헌 5에 기재된 방법에 있어서의, 변환 양자화 바이패스 플래그 transquant_bypass_flag, 변환 스킵 플래그 ts_flag, 적응 프라이머리 변환 플래그 apt_flag, 프라이머리 변환 식별자 pt_idx, 및 세컨더리 변환 식별자 st_idx가 취할 수 있는 베리에이션에 대하여 기재한 것이다.
예를 들어, 도 63에 도시하는 표에 있어서, case#6 및 case#7은, transquant_bypass_flag==1이 시그널되어 있음에도 불구하고 적응 프라이머리 변환 플래그 apt_flag가 시그널되어 있어 용장한다.
<적응 프라이머리 변환 플래그·변환 스킵 플래그의 부호화·복호의 스킵>
이상과 같이, 비특허문헌 5에 기재된 방법에서는, 변환 양자화 바이패스가 적용되는 경우(transquant_bypass_flag==1)에 있어서, 적응 프라이머리 변환 플래그 apt_flag가 시그널될 가능성이 있어, 불필요하게 부호량이 증대한다는 우려가 있었다.
그래서, 예를 들어 도 64의 case#6과 같이, 화상 부호화 시에, 변환 양자화 바이패스 플래그 transquant_bypass_flag==1의 경우(변환 양자화 바이패스를 행하는 것을 나타내는 경우), 적응 프라이머리 변환 플래그 apt_flag의 부호화를 스킵(생략)하도록 한다. 이와 같이 함으로써, 부호화 효율의 저감을 억제할 수 있다.
또한, 예를 들어 도 64의 case#4와 같이, 변환 스킵 플래그 ts_flag==1의 경우(변환 스킵을 적용하는 경우), 적응 프라이머리 변환 플래그 apt_flag의 부호화를 스킵(생략)하도록 한다. 이와 같이 함으로써, 부호화 효율의 저감을 억제할 수 있다.
또한, 예를 들어 도 64의 case#6과 같이, 화상 복호 시에, 변환 양자화 바이패스 플래그 transquant_bypass_flag==1의 경우, 적응 프라이머리 변환 플래그 apt_flag의 복호를 스킵(생략)하도록 한다. 이와 같이 함으로써, 부호화 효율의 저감을 억제할 수 있다.
또한, 예를 들어 도 64의 case#4와 같이, 변환 스킵 플래그 ts_flag==1의 경우, 적응 프라이머리 변환 플래그 apt_flag의 복호를 스킵(생략)하도록 한다. 이와 같이 함으로써, 부호화 효율의 저감을 억제할 수 있다.
<신택스>
이러한 제어를 나타내는 의사 코드를 기재한 신택스 테이블의 예를 도 65 및 도 66에 도시하였다. 또한, 이들의 신택스에 있어서, countNonZeroCoeffs(compID)는 compID가 나타내는 색신호의 변환 블록 내에 존재하는 비제로 계수(유의 계수)의 수를 되돌리는 함수이다. 도 65 및 도 66의 예의 경우, 도 54에 있어서는 위로부터 6단째 내지 8단째(도 65의 위로부터 5단째와 6단째 사이에 있었던 적응 프라이머리 변환 플래그 apt_flag에 관한 기술이, 도 66의 위로부터 5단째 및 6단째로 이동되어 있고, 또한, 변환 스킵 플래그 ts_flag가 0(거짓), 또한, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 0(거짓)인 것이, 적응 프라이머리 변환 플래그 apt_flag의 부호화(적응 프라이머리 변환 플래그 apt_flag의 부호화 데이터의 복호)의 조건의 하나로 되어 있다.
즉, 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1(참)인 경우, 즉, (역)변환 및 (역)양자화가 스킵되는 경우, 적응 프라이머리 변환 플래그 apt_flag의 부호화(적응 프라이머리 변환 플래그 apt_flag의 부호화 데이터의 복호)가 스킵된다. 또한, 변환 스킵 플래그 ts_flag가 1(참)인 경우, 즉, 변환 스킵되는 경우, 적응 프라이머리 변환 플래그 apt_flag의 부호화(적응 프라이머리 변환 플래그 apt_flag의 부호화 데이터의 복호)가 스킵된다.
<부호화>
이 경우에도 화상 부호화 장치(100)는, 제1 실시 형태의 경우와 기본적으로 동일한 구성을 갖는다. 즉, 제1 실시 형태에 있어서 설명한 화상 부호화 장치(100)가, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환, 및 그 프라이머리 변환 계수가 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수에 대한 양자화가 스킵되는 경우(변환 양자화 바이패스 시), 또는, 변환이 스킵되는 경우(변환 스킵 시), 적응 프라이머리 변환의 온·오프를 나타내는 제1 정보의 부호화를 스킵하는 부호화부를 구비한다.
즉, 이 경우의 부호화부(114)는, 화상과 그 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환, 그 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환, 및 그 프라이머리 변환 계수가 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수에 대한 양자화가 스킵되는 경우, 또는, 변환이 스킵되는 경우, 적응 프라이머리 변환의 온·오프를 나타내는 제1 정보의 부호화를 스킵한다.
이 경우의 부호화부(114)가 프로그램을 실행함으로써 갖는 적응 프라이머리 변환 플래그의 부호화에 관한 기능은, 도 56을 참조하여 설명한 제7 실시 형태의 경우와 마찬가지이므로, 그 설명은 생략한다.
<부호화 처리의 흐름>
이어서, 화상 부호화 장치(100)에 의해 실행되는 각 처리의 흐름의 예를 설명한다. 이 경우 화상 부호화 장치(100)는, 화상 부호화 처리를, 제1 실시 형태의 경우와 기본적으로 마찬가지로 행한다. 단, 이 경우, 화상 부호화 장치(100)는, 화상 부호화 처리의 스텝 S110(도 9)에 있어서, 적응 프라이머리 변환 플래그 apt_flag 등의 부호화를, 변환 양자화 바이패스 플래그 transquant_bypass_flag의 값 등에 따라서 행한다. 이 적응 프라이머리 변환 플래그 apt_flag 등의 부호화의 흐름의 예를 도 67의 흐름도를 참조하여 설명한다. 즉, 도 67에 도시하는 부호화 처리는, 도 9의 스텝 S110에 있어서 행하여지는 부호화 처리의 일부로서 실행된다. 기타의 부호화 파라미터나 양자화 변환 계수 레벨 level의 부호화는 임의의 방법으로 행해진다.
부호화 처리가 개시되면, 스텝 S721에 있어서, 변환 스킵 플래그 부호화부(502)는, 이하의 조건식 (79)에 나타내는 조건 Condition 3이 1(참)인지 여부를 판정한다. 조건 Condition 3은, 도 66을 참조하여 설명한 신택스의 위로부터 3단째에 대응한다.
Condition 3:
ts_enabled_flag
&& width*height<=MaxTSSize
&& !transquant_bypass_flag
···(79)
여기서, MaxTSSize는, 변환 스킵이 적용 가능한 블록 사이즈의 최댓값을 나타내고, 예를 들어, 16이다. 또한, MaxTSSize는, 상기 값에 한정되지 않고, 헤더 정보에 있어서 통지되는 MaxTSSize를 규정하는 파라미터에 의해 설정되어도 된다.
또한, 조건식 (79)에 있어서, 블록 사이즈와 역치를 비교하는 부분을, 이하의 조건식 (80)과 같이, 대수 표현으로 치환해도 된다.
ts_enabled_flag
&& ((log2TbWidth+log2TbHeight)<=log2MaxTSSize)
&& !transquant_bypass_flag
···(80)
여기서, log2MaxTSSize의 값은, 4이다. 또한, log2MaxTSSize의 값은, 이것에 한정되지 않고, 헤더 정보에 있어서 통지되는 log2MaxTSSize를 규정하는 파라미터에 의해 설정되어도 된다.
스텝 S721에 있어서, 조건 Condition 3이 1(참)이라고 판정된 경우, 즉, 변환 스킵 플래그를 부호화한다고 판정된 경우, 처리는 스텝 S722로 진행한다. 스텝 S722에 있어서, 변환 스킵 플래그 부호화부(502)는, 변환 스킵 플래그 ts_flag를 가변 길이 부호화하고, 비트열(부호화 데이터)을 생성하여 출력한다. 스텝 S722의 처리가 종료되면 처리는 스텝 S723으로 진행한다.
이에 반해, 스텝 S721에 있어서, 조건 Condition 3이 0(거짓)이라고 판정된 경우, 즉, 변환 스킵 플래그를 부호화하지 않다고 판정된 경우, 스텝 S722의 처리가 스킵되고, 처리는 스텝 S723으로 진행한다.
변환 스킵 플래그의 부호화 조건을 만족시키지 않는 것이라면, 변환 스킵 플래그 ts_flag를 복호측에 전송할 필요가 없다. 따라서, 변환 스킵 플래그 부호화부(502)는, 변환 스킵 플래그 ts_flag의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S723에 있어서, 적응 프라이머리 변환 플래그 부호화부(501)는, 이하의 조건식 (81)에 나타내는 조건 Condition 4가 1(참)인지 여부를 판정한다. 조건 Condition 4는, 도 66을 참조하여 설명한 신택스의 위로부터 5단째에 대응한다.
Condition 4:
apt_enabled_flag
&& compID==COMPONENT_Y
&& width<=MaxPTSize
&& height<=MaxPTSize
&& !ts_flag [compID]
&& !transquant_bypass_flag
···(81)
여기서, MaxPTSize는, 적응 프라이머리 변환이 적용 가능한 블록 사이즈의 최댓값을 나타내고, 예를 들어, 64이다. 또한, MaxPTSize는, 상기 값에 한정되지 않고, 헤더 정보에 있어서 통지되는 MaxPTSize를 규정하는 파라미터에 의해 설정되어도 된다.
또한, 조건식 (81)에 있어서, 블록 사이즈와 역치를 비교하는 부분을, 이하의 조건식 (82)와 같이, 대수 표현으로 치환해도 된다.
apt_enabled_flag
&& compID==COMPONENT_Y
&& log2TbWidth<=log2MaxPTSize
&& log2TbHeight<=log2MaxPTSize
&& !ts_flag [compID]
&& !transquant_bypass_flag
···(82)
여기서, log2MaxPTSize의 값은, 6이다. 또한, log2MaxPTSize의 값은, 이것에 한정되지 않고, 헤더 정보에 있어서 통지되는 log2MaxPTSize를 규정하는 파라미터에 의해 설정되어도 된다.
스텝 S723에 있어서, 조건 Condition 4가 1(참)이라고 판정된 경우, 즉, 적응 프라이머리 변환 플래그를 부호화한다고 판정된 경우, 처리는 스텝 S724로 진행한다. 스텝 S724에 있어서, 적응 프라이머리 변환 플래그 부호화부(501)는, 적응 프라이머리 변환 플래그 apt_flag를 가변 길이 부호화하고, 비트열(부호화 데이터)을 생성하여 출력한다. 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다. 스텝 S724의 처리가 종료되면 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
이에 반해, 스텝 S723에 있어서, 조건 Condition 4가 0(거짓)이라고 판정된 경우, 즉, 적응 프라이머리 변환 플래그를 부호화하지 않다고 판정된 경우, 스텝 S724의 처리가 스킵되어, 부호화 처리가 종료되고, 처리는 도 9로 되돌아간다.
적응 프라이머리 변환 플래그의 부호화 조건을 만족시키지 않는 것이라면, 적응 프라이머리 변환 플래그 apt_flag를 복호측에 전송할 필요가 없다. 따라서, 적응 프라이머리 변환 플래그 부호화부(501)는, 적응 프라이머리 변환 플래그 apt_flag의 부호화를 스킵한다. 이와 같이 함으로써, 용장한 정보의 부호화를 스킵할 수 있으므로, 부호화 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
이 부호화에 의해 얻어진 적응 프라이머리 변환 플래그 apt_flag의 부호화 데이터 및 변환 스킵 플래그 ts_flag의 부호화 데이터는, 양자화 변환 계수 레벨 level의 부호화 데이터를 포함하는 비트 스트림에 포함된다.
이상과 같이 부호화 처리를 실행함으로써, 화상 부호화 장치(100)는, 변환 양자화 바이패스를 적용하는 경우에, 적응 프라이머리 변환 플래그 apt_flag의 부호화 처리를 스킵할 수 있다. 즉, 적응 프라이머리 변환 플래그 apt_flag의 부호화에 관한 처리량 및 부호량을 저감할 수 있다.
또한, 화상 부호화 장치(100)는, 변환 스킵을 적용하는 경우에, 적응 프라이머리 변환 플래그 apt_ flag의 부호화 처리를 스킵할 수 있다. 즉, 적응 프라이머리 변환 플래그 apt_ flag의 부호화에 관한 처리량 및 부호량을 저감할 수 있다.
<보충>
상술한 조건 condition 4는, 식 (81)에 한정되지 않고, 각 색 공간마다 적응 프라이머리 변환 플래그를 부호화(복호)하도록, 이하의 조건식 (83)으로 변경해도 된다.
Condition 4a:
apt_enabled_flag && compID==COMPONENT_Y
&& width<=MaxPTSize
&& height<=MaxPTSize
&& !ts_flag [compID] && !transquant_bypass_flag
···(83)
상기 변경에 대응하는 신택스 테이블을 도 68에 도시하였다. 또한, 이 신택스에 있어서, countNonZeroCoeffs(compID)는 compID가 나타내는 색신호의 변환 블록 내에 존재하는 비제로 계수(유의 계수)의 수를 되돌리는 함수이다. 조건 Condition 4a는, 도 68의 신택스의 위로부터 5단째에 대응한다.
또한, 상술한 부호화 처리는, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다. 또한, 상술한 신택스나 조건식 (79) 내지 (83)은 실시 가능한 범위에서 연산을 변경 가능하다.
<복호>
다음으로 화상 복호 장치(200)에 대하여 설명한다. 이 경우에도 화상 복호 장치(200)는, 제1 실시 형태의 경우와 기본적으로 동일한 구성을 갖는다. 단, 이 경우의 화상 복호 장치(200)는, 부호화 데이터가 복호되어서 얻어지는 양자화 변환 계수 레벨에 대한 역양자화, 그 양자화 변환 계수 레벨이 역양자화되어서 얻어지는 세컨더리 변환 계수를 프라이머리 변환 계수로 변환하는 역세컨더리 변환, 및 그 프라이머리 변환 계수를 화상과 그 화상의 예측 화상과의 차분인 예측 잔차로 변환하는 역프라이머리 변환이 스킵되는 경우, 또는, 변환이 스킵되는 경우(변환 스킵 시), 적응 프라이머리 변환의 온·오프에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는 복호부를 구비한다.
즉, 이 경우의 복호부(211)는, 부호화 데이터가 복호되어서 얻어지는 양자화 변환 계수 레벨에 대한 역양자화, 그 양자화 변환 계수 레벨이 역양자화되어서 얻어지는 세컨더리 변환 계수를 프라이머리 변환 계수로 변환하는 역세컨더리 변환, 및 그 프라이머리 변환 계수를 화상과 그 화상의 예측 화상과의 차분인 예측 잔차로 변환하는 역프라이머리 변환이 스킵되는 경우, 또는, 변환이 스킵이 적용되는 경우, 적응 프라이머리 변환의 온·오프에 관한 제1 정보의 부호화 데이터의 복호를 스킵한다.
이 경우의 복호부(211)가 프로그램을 실행함으로써 갖는 적응 프라이머리 변환 플래그의 부호화에 관한 기능은, 도 61을 참조하여 설명한 제7 실시 형태의 경우와 마찬가지이므로, 그 설명은 생략한다.
<복호 처리의 흐름>
이어서, 화상 복호 장치(200)에 의해 실행되는 각 처리의 흐름의 예를 설명한다. 이 경우 화상 복호 장치(200)는, 화상 복호 처리를, 제1 실시 형태의 경우와 기본적으로 마찬가지로 행한다. 단, 이 경우, 화상 복호 장치(200)는, 화상 복호 처리의 스텝 S201(도 13)에 있어서, 적응 프라이머리 변환 플래그 apt_flag 등의 부호화 데이터의 복호를, 변환 양자화 바이패스 플래그 transquant_bypass_flag의 값 등에 따라서 행한다. 이 적응 프라이머리 변환 플래그 apt_flag 등의 복호의 흐름의 예를 도 69의 흐름도를 참조하여 설명한다. 즉, 도 69에 도시하는 복호 처리는, 도 13의 스텝 S201에 있어서 행하여지는 복호 처리의 일부로서 실행된다. 기타의 부호화 파라미터나 양자화 변환 계수 레벨 level의 부호화 데이터의 복호는 임의의 방법으로 행해진다.
복호 처리가 개시되면, 스텝 S731에 있어서, 변환 스킵 플래그 복호부(512)는, 상술한 조건식 (79)에 나타내는 조건 Condition 3이 1(참)인지 여부를 판정한다. 조건 Condition 3이 0(거짓)이라고 판정된 경우, 즉, 변환 스킵 플래그를 복호하지 않는다고 판정된 경우, 처리는 스텝 S732로 진행한다.
스텝 S732에 있어서, 변환 스킵 플래그 복호부(512)는, 변환 스킵 플래그 ts_flag의 복호를 스킵한다. 이 경우, 변환 스킵 플래그 복호부(512)는, 변환 스킵을 실시하지 않는다고 해석하고, 그것을 나타내는 값(0)을 변환 스킵 플래그 ts_flag에 설정한다(ts_flag=0).
즉, 변환 스킵 플래그의 부호화 조건을 만족시키지 않는 것이라면, 변환 스킵 플래그 ts_flag는 부호화측으로부터 전송되지 않으므로, 변환 스킵 플래그 복호부(512)는, 변환 스킵 플래그 ts_flag의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S732의 처리가 종료되면, 처리는 스텝 S734로 진행한다. 또한, 스텝 S731에 있어서, 조건 condition 3이 1(참)이라고 판정된 경우, 즉, 변환 스킵 플래그를 복호한다고 판정된 경우, 처리는 스텝 S733으로 진행한다.
스텝 S733에 있어서, 변환 스킵 플래그 복호부(512)는, 변환 스킵 플래그 ts_flag의 부호화 데이터를 복호한다. 스텝 S733의 처리가 종료되면, 처리는 스텝 S734로 진행한다.
스텝 S734에 있어서, 적응 프라이머리 변환 플래그 복호부(511)는, 상술한 조건식 (81)에 나타내는 Condition 4가 1(참)인지 여부를 판정한다. 조건 Condition 4가 0(거짓)이라고 판정된 경우, 즉, 적응 프라이머리 변환 플래그를 복호하지 않는다고 판정된 경우, 처리는 스텝 S735로 진행한다.
스텝 S735에 있어서, 적응 프라이머리 변환 플래그 복호부(511)는, 적응 프라이머리 변환 플래그 apt_flag의 복호를 스킵한다. 이 경우, 적응 프라이머리 변환 플래그 복호부(511)는, 적응 프라이머리 변환을 실시하지 않는다고 해석하고, 그것을 나타내는 값(0)을 적응 프라이머리 변환 플래그 apt_flag에 설정한다(apt_flag=0). 복호 처리가 종료되고, 처리는 도 13으로 되돌아간다.
즉, 적응 프라이머리 변환 플래그의 부호화 조건을 만족시키지 않는 것이라면, 적응 프라이머리 변환 플래그 apt_flag는 부호화측으로부터 전송되지 않으므로, 적응 프라이머리 변환 플래그 복호부(511)는, 적응 프라이머리 변환 플래그 apt_flag의 부호화 데이터의 복호를 스킵한다. 이와 같이 함으로써, 용장한 정보의 복호를 스킵할 수 있으므로, 복호 처리의 부하의 증대를 억제할 수 있음과 함께, 부호화 효율의 저감을 억제할 수 있다.
스텝 S735의 처리가 종료되면, 복호 처리가 종료되고, 처리는 도 13으로 되돌아간다. 또한, 스텝 S734에 있어서, 조건 condition 2가 1(참)이라고 판정된 경우, 즉, 변환 스킵 플래그를 복호한다고 판정된 경우, 처리는 스텝 S736으로 진행한다.
스텝 S736에 있어서, 적응 프라이머리 변환 플래그 복호부(511)는, 적응 프라이머리 변환 플래그 apt_flag의 부호화 데이터를 복호한다. 스텝 S736의 처리가 종료되면, 복호 처리가 종료되고, 처리는 도 13으로 되돌아간다.
이상과 같이 복호 처리를 실행함으로써, 화상 복호 장치(200)는, 변환 양자화 바이패스를 적용하는 경우, 또는, 변환 스킵을 적용하는 경우에, 적응 프라이머리 변환 플래그 apt_flag의 복호 처리를 스킵할 수 있다. 즉, 적응 프라이머리 변환 플래그 apt_flag의 복호에 관한 처리량 및 부호량을 저감할 수 있다.
또한, 상술한 복호 처리는, 실시 가능한 범위에서, 각 스텝의 처리순의 교체나, 처리의 내용을 변경해도 된다. 또한, 상술한 신택스나 조건식 (79) 내지 (82)는 실시 가능한 범위에서 연산을 변경 가능하다.
<9. 제9 실시 형태>
<정보의 데이터 단위>
이상에 있어서 설명한 화상에 관한 정보나 화상의 부호화·복호에 관한 정보가 설정된다(또는 대상으로 하는 데이터의) 데이터 단위는, 각각 임의이며, 상술한 예에 한정되지 않는다. 예를 들어, 이들 정보가, 각각, TU, TB, PU, PB, CU, LCU, 서브블록, 블록, 타일, 슬라이스, 픽처, 시퀀스, 또는 컴포넌트마다 설정되도록 해도 되고, 그들의 데이터 단위의 데이터를 대상으로 하도록 해도 된다. 물론, 이 데이터 단위는, 정보마다 설정된다. 즉, 모든 정보가 동일한 데이터 단위마다 설정되도록(또는 대상으로 하도록) 하지 않아도 된다. 또한, 이들 정보의 저장 장소는 임의이며, 상술한 데이터 단위의 헤더나 파라미터 세트 등에 저장되게 해도 된다. 또한, 복수 개소에 저장되게 해도 된다.
<제어 정보>
이상의 각 실시 형태에 있어서 설명한 본 기술에 관한 제어 정보를 부호화측으로부터 복호측에 전송하게 해도 된다. 예를 들어, 상술한 본 기술을 적용하는 것을 허가(또는 금지)할지 여부를 제어하는 제어 정보(예를 들어 enabled_flag)를 전송하게 해도 된다. 또한, 예를 들어, 상술한 본 기술을 적용하는 것을 허가(또는 금지)하는 블록 사이즈의 상한 또는 하한, 또는 그 양쪽을 지정하는 제어 정보를 전송하게 해도 된다.
<부호화·복호>
본 기술은, 프라이머리 변환, 세컨더리 변환, 및 부호화(복호, 역세컨더리 변환, 및 역프라이머리 변환)를 행하는 임의의 화상 부호화·복호에 적용할 수 있다. 즉, 변환(역변환), 양자화(역양자화), 부호화(복호), 예측 등의 사양은 임의이며, 상술한 예에 한정되지 않는다. 예를 들어, 변환(역변환)에 있어서, (역)프라이머리 변환 및 (역)세컨더리 변환 이외의 (역)변환(즉 3 이상의 (역)변환)이 행하여지게 해도 된다. 또한, 부호화(복호)는 가역인 방식이어도 되고, 비가역인 방식이어도 된다. 또한, 양자화(역양자화)나 예측 등은 생략하도록 해도 된다. 또한, 필터 처리 등의 상술하고 있지 않은 처리가 행하여지게 해도 된다.
예를 들어, 루프 내 필터로서, 디블로킹 필터, 샘플 적응 오프셋(SAO; Sample Adaptive Offset)이나 적응 루프 필터(ALF; Adaptive Loop Filter)를 적용해도 된다. 또한, 로스레스 부호화를 행하는 경우, 화상 부호화 장치(100)에서는, 변환 양자화 바이패스 유효 플래그 transquant_bypass_enabled_flag를 1로 하여 부호화하고, 소정 단위마다(예를 들어, CTU나 CU) 변환 양자화 바이패스 플래그 transquant_bypass_flag를 1로서 부호화한다. 따라서, 소정 단위마다의 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1일 경우, 복호 화상을 수정하는 작용이 있는 필터나 루프 내 필터(디블로킹 필터, 샘플 적응 오프셋, 적응 루프 필터)의 처리를 생략할 필요가 있다. 또한, 소정 단위마다의 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1일 경우, 복호 화상을 수정하는 작용이 있는 필터나 루프 내 필터(디블로킹 필터, 샘플 적응 오프셋, 적응 루프 필터)에 관한 소정 단위마다의 신택스 요소의 부호화를 생략함으로써, 용장한 부호량을 삭감할 수 있다. 예를 들어, 적응 루프 필터라면, 필터 계수나 필터 처리의 온/오프 플래그 등의 신택스 요소의 부호화를 생략한다.
마찬가지로 하여, 로스레스 부호화된 부호화 데이터를 복호하는 화상 복호 장치(200)에서는, 변환 양자화 바이패스 유효 플래그 transquant_bypass_enabled_flag를 복호하고, 소정 단위마다(예를 들어, CTU나 CU) 변환 양자화 바이패스 플래그 transquant_bypass_flag를 복호한다. 따라서, 소정 단위마다의 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1일 경우, 복호 화상을 수정하는 작용이 있는 필터나 루프 내 필터(디블로킹 필터, 샘플 적응 오프셋, 적응 루프 필터)의 처리를 생략할 필요가 있다. 또한, 소정 단위마다의 변환 양자화 바이패스 플래그 transquant_bypass_flag가 1일 경우, 복호 화상을 수정하는 작용이 있는 필터나 루프 내 필터(디블로킹 필터, 샘플 적응 오프셋, 적응 루프 필터)에 관한 소정 단위마다의 신택스 요소의 복호를 생략함으로써, 용장한 부호의 복호에 관한 처리량을 삭감할 수 있다. 예를 들어, 적응 루프 필터라면, 필터 계수나 필터 처리의 온/오프 플래그 등의 신택스 요소의 복호를 생략한다.
<본 기술의 적용 분야>
본 기술을 적용한 시스템, 장치, 처리부 등은, 예를 들어, 교통, 의료, 방범, 농업, 축산업, 광업, 미용, 공장, 가전, 기상, 자연 감시 등, 임의의 분야에 이용할 수 있다.
예를 들어, 본 기술은, 감상용으로 제공되는 화상을 전송하는 시스템이나 디바이스에도 적용할 수 있다. 또한, 예를 들어, 본 기술은, 교통용으로 제공되는 시스템이나 디바이스에도 적용할 수 있다. 또한, 예를 들어, 본 기술은, 시큐리티용으로 제공되는 시스템이나 디바이스에도 적용할 수 있다. 또한, 예를 들어, 본 기술은, 스포츠용으로 제공되는 시스템이나 디바이스에도 적용할 수 있다. 또한, 예를 들어, 본 기술은, 농업용으로 제공되는 시스템이나 디바이스에도 적용할 수 있다. 또한, 예를 들어, 본 기술은, 축산업용으로 제공되는 시스템이나 디바이스에도 적용할 수 있다. 또한, 본 기술은, 예를 들어 화산, 삼림, 해양 등의 자연의 상태를 감시하는 시스템이나 디바이스에도 적용할 수 있다. 또한, 본 기술은, 예를 들어 날씨, 기온, 습도, 풍속, 일조 시간 등을 관측하는 기상 관측 시스템이나 기상 관측 장치에 적용할 수 있다. 또한, 본 기술은, 예를 들어 조류, 어류, 파충류, 양서류, 포유류, 곤충, 식물 등의 야생 생물의 생태를 관측하는 시스템이나 디바이스 등에도 적용할 수 있다.
<다시점 화상 부호화·복호 시스템에의 적용>
상술한 일련의 처리는, 복수의 시점(뷰(view))의 화상을 포함하는 다시점 화상의 부호화·복호를 행하는 다시점 화상 부호화·복호 시스템에 적용할 수 있다. 그 경우, 각 시점(뷰(view))의 부호화·복호에 있어서, 본 기술을 적용하게 하면 된다.
<계층 화상 부호화·복호 시스템에의 적용>
또한, 상술한 일련의 처리는, 소정의 파라미터에 대하여 스케일러빌리티(scalability) 기능을 갖도록 복수 레이어화(계층화)된 계층 화상의 부호화·복호를 행하는 계층 화상 부호화(스케일러블 부호화)·복호 시스템에 적용할 수 있다. 그 경우, 각 계층(레이어)의 부호화·복호에 있어서, 본 기술을 적용하게 하면 된다.
<컴퓨터>
상술한 일련의 처리는, 하드웨어에 의해 실행시킬 수도 있고, 소프트웨어에 의해 실행시킬 수도 있다. 일련의 처리를 소프트웨어에 의해 실행하는 경우에는, 그 소프트웨어를 구성하는 프로그램이 컴퓨터에 인스톨된다. 여기서 컴퓨터에는, 전용의 하드웨어에 내장되어 있는 컴퓨터나, 각종 프로그램을 인스톨함으로써, 각종 기능을 실행하는 것이 가능한, 예를 들어 범용의 퍼스널 컴퓨터 등이 포함된다.
도 70은, 상술한 일련의 처리를 프로그램에 의해 실행하는 컴퓨터의 하드웨어 구성예를 도시하는 블록도이다.
도 70에 도시하는 컴퓨터(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)에, 미리 인스톨해 둘 수도 있다.
<본 기술의 응용>
상술한 실시 형태에 따른 화상 부호화 장치(100)나 화상 복호 장치(200)는 예를 들어, 위성 방송, 케이블 TV 등의 유선 방송, 인터넷 상에서의 배신, 및 셀룰러 통신에 의한 단말기에의 배신 등에 있어서의 송신기나 수신기, 또는, 광 디스크, 자기 디스크 및 플래시 메모리 등의 매체에 화상을 기록하는 기록 장치나, 이들 기억 매체로부터 화상을 재생하는 재생 장치 등의, 여러가지 전자 기기에 응용될 수 있다.
<제1 응용예: 텔레비전 수상기 >
도 71은, 상술한 실시 형태를 적용한 텔레비전 장치의 개략적인 구성의 일례를 도시하고 있다. 텔레비전 장치(900)는 안테나(901), 튜너(902), 디멀티플렉서(903), 디코더(904), 영상 신호 처리부(905), 표시부(906), 음성 신호 처리부(907), 스피커(908), 외부 인터페이스(I/F)부(909), 제어부(910), 유저 인터페이스(I/F)부(911), 및 버스(912)를 구비한다.
튜너(902)는 안테나(901)를 통하여 수신되는 방송 신호로부터 원하는 채널의 신호를 추출하고, 추출한 신호를 복조한다. 그리고, 튜너(902)는 복조에 의해 얻어진 부호화 비트 스트림을 디멀티플렉서(903)로 출력한다. 즉, 튜너(902)는 화상이 부호화되어 있는 부호화 스트림을 수신하는, 텔레비전 장치(900)에 있어서의 전송부로서의 역할을 갖는다.
디멀티플렉서(903)는 부호화 비트 스트림으로부터 시청 대상의 프로그램 영상 스트림 및 음성 스트림을 분리하고, 분리한 각 스트림을 디코더(904)로 출력한다. 또한, 디멀티플렉서(903)는 부호화 비트 스트림으로부터 EPG(Electronic Program Guide) 등의 보조적인 데이터를 추출하고, 추출한 데이터를 제어부(910)에 공급한다. 또한, 디멀티플렉서(903)는 부호화 비트 스트림이 스크램블되어 있는 경우에는, 디스크램블을 행해도 된다.
디코더(904)는 디멀티플렉서(903)로부터 입력되는 영상 스트림 및 음성 스트림을 복호한다. 그리고, 디코더(904)는 복호 처리에 의해 생성되는 영상 데이터를 영상 신호 처리부(905)로 출력한다. 또한, 디코더(904)는 복호 처리에 의해 생성되는 음성 데이터를 음성 신호 처리부(907)로 출력한다.
영상 신호 처리부(905)는 디코더(904)로부터 입력되는 영상 데이터를 재생하고, 표시부(906)에 영상을 표시시킨다. 또한, 영상 신호 처리부(905)는 네트워크를 통하여 공급되는 어플리케이션 화면을 표시부(906)에 표시시켜도 된다. 또한, 영상 신호 처리부(905)는 영상 데이터에 대해서, 설정에 따라, 예를 들어 노이즈 제거 등의 추가적인 처리를 행해도 된다. 또한, 영상 신호 처리부(905)는 예를 들어 메뉴, 버튼 또는 커서 등의 GUI(GraphicalUserInterface)의 화상을 생성하고, 생성한 화상을 출력 화상에 중첩해도 된다.
표시부(906)는 영상 신호 처리부(905)로부터 공급되는 구동 신호에 의해 구동되어, 표시 디바이스(예를 들어, 액정 디스플레이, 플라즈마 디스플레이 또는 OELD(Organic Electro Luminescence Display)(유기 EL 디스플레이) 등)의 영상면 상에 영상 또는 화상을 표시한다.
음성 신호 처리부(907)는 디코더(904)로부터 입력되는 음성 데이터에 대하여 D/A 변환 및 증폭 등의 재생 처리를 행하고, 스피커(908)로부터 음성을 출력시킨다. 또한, 음성 신호 처리부(907)는 음성 데이터에 대하여 노이즈 제거 등의 추가적인 처리를 행해도 된다.
외부 인터페이스부(909)는 텔레비전 장치(900)와 외부 기기 또는 네트워크를 접속하기 위한 인터페이스이다. 예를 들어, 외부 인터페이스부(909)를 통하여 수신되는 영상 스트림 또는 음성 스트림이, 디코더(904)에 의해 복호되어도 된다. 즉, 외부 인터페이스부(909)도 또한, 화상이 부호화되어 있는 부호화 스트림을 수신하는, 텔레비전 장치(900)에 있어서의 전송부로서의 역할을 갖는다.
제어부(910)는 CPU 등의 프로세서, 및 RAM 및 ROM 등의 메모리를 갖는다. 메모리는, CPU에 의해 실행되는 프로그램, 프로그램 데이터, EPG 데이터, 및 네트워크를 통하여 취득되는 데이터 등을 기억한다. 메모리에 의해 기억되는 프로그램은, 예를 들어, 텔레비전 장치(900)의 기동 시에 CPU에 의해 읽어들여져, 실행된다. CPU는, 프로그램을 실행함으로써, 예를 들어 유저 인터페이스부(911)로부터 입력되는 조작 신호에 따라, 텔레비전 장치(900)의 동작을 제어한다.
유저 인터페이스부(911)는 제어부(910)와 접속된다. 유저 인터페이스부(911)는 예를 들어, 유저가 텔레비전 장치(900)를 조작하기 위한 버튼 및 스위치, 및 원격 제어 신호의 수신부 등을 갖는다. 유저 인터페이스부(911)는 이들 구성 요소를 통하여 유저에 의한 조작을 검출하여 조작 신호를 생성하고, 생성한 조작 신호를 제어부(910)로 출력한다.
버스(912)는 튜너(902), 디멀티플렉서(903), 디코더(904), 영상 신호 처리부(905), 음성 신호 처리부(907), 외부 인터페이스부(909) 및 제어부(910)를 서로 접속한다.
이렇게 구성된 텔레비전 장치(900)에 있어서, 디코더(904)가 상술한 화상 복호 장치(200)의 기능을 갖게 해도 된다. 즉, 디코더(904)가 부호화 데이터를, 이상의 각 실시 형태에 있어서 설명한 방법으로 복호하도록 해도 된다. 이와 같이 함으로써, 텔레비전 장치(900)는 수신하는 부호화 비트 스트림의 부호화 효율의 저감을 억제할 수 있다.
또한, 이렇게 구성된 텔레비전 장치(900)에 있어서, 영상 신호 처리부(905)가 예를 들어, 디코더(904)로부터 공급되는 화상 데이터를 부호화하고, 얻어진 부호화 데이터를, 외부 인터페이스부(909)를 통하여 텔레비전 장치(900)의 외부로 출력시킬 수 있도록 해도 된다. 그리고, 그 영상 신호 처리부(905)가 상술한 화상 부호화 장치(100)의 기능을 갖게 해도 된다. 즉, 영상 신호 처리부(905)가 디코더(904)로부터 공급되는 화상 데이터를, 이상의 각 실시 형태에 있어서 설명한 방법으로 부호화하도록 해도 된다. 이와 같이 함으로써, 텔레비전 장치(900)는 출력하는 부호화 데이터의 부호화 효율의 저감을 억제할 수 있다.
<제2 응용예: 휴대 전화기>
도 72는, 상술한 실시 형태를 적용한 휴대 전화기의 개략적인 구성의 일례를 도시하고 있다. 휴대 전화기(920)는 안테나(921), 통신부(922), 음성 코덱(923), 스피커(924), 마이크로폰(925), 카메라부(926), 화상 처리부(927), 다중 분리부(928), 기록 재생부(929), 표시부(930), 제어부(931), 조작부(932), 및 버스(933)를 구비한다.
안테나(921)는 통신부(922)에 접속된다. 스피커(924) 및 마이크로폰(925)은 음성 코덱(923)에 접속된다. 조작부(932)는 제어부(931)에 접속된다. 버스(933)는 통신부(922), 음성 코덱(923), 카메라부(926), 화상 처리부(927), 다중 분리부(928), 기록 재생부(929), 표시부(930), 및 제어부(931)를 서로 접속한다.
휴대 전화기(920)는 음성 통화 모드, 데이터 통신 모드, 촬영 모드 및 텔레비전 전화 모드를 포함하는 여러가지 동작 모드에서, 음성 신호의 송수신, 전자 메일 또는 화상 데이터의 송수신, 화상의 촬상, 및 데이터의 기록 등의 동작을 행한다.
음성 통화 모드에서, 마이크로폰(925)에 의해 생성되는 아날로그 음성 신호는, 음성 코덱(923)에 공급된다. 음성 코덱(923)은 아날로그 음성 신호를 음성 데이터로 변환하고, 변환된 음성 데이터를 A/D 변환하여 압축한다. 그리고, 음성 코덱(923)은 압축 후의 음성 데이터를 통신부(922)로 출력한다. 통신부(922)는 음성 데이터를 부호화 및 변조하여, 송신 신호를 생성한다. 그리고, 통신부(922)는 생성한 송신 신호를, 안테나(921)를 통하여 기지국(도시하지 않음)으로 송신한다. 또한, 통신부(922)는 안테나(921)를 통하여 수신되는 무선 신호를 증폭 및 주파수 변환하여, 수신 신호를 취득한다. 그리고, 통신부(922)는 수신 신호를 복조 및 복호하여 음성 데이터를 생성하고, 생성한 음성 데이터를 음성 코덱(923)으로 출력한다. 음성 코덱(923)은 음성 데이터를 신장 및 D/A 변환하여, 아날로그 음성 신호를 생성한다. 그리고, 음성 코덱(923)은 생성한 음성 신호를 스피커(924)에 공급하여 음성을 출력시킨다.
또한, 데이터 통신 모드에서, 예를 들어, 제어부(931)는 조작부(932)를 통한 유저에 의한 조작에 따라, 전자 메일을 구성하는 문자 데이터를 생성한다. 또한, 제어부(931)는 문자를 표시부(930)에 표시시킨다. 또한, 제어부(931)는 조작부(932)를 통한 유저로부터의 송신 지시에 따라서 전자 메일 데이터를 생성하고, 생성한 전자 메일 데이터를 통신부(922)로 출력한다. 통신부(922)는 전자 메일 데이터를 부호화 및 변조하여, 송신 신호를 생성한다. 그리고, 통신부(922)는 생성한 송신 신호를, 안테나(921)를 통하여 기지국(도시하지 않음)으로 송신한다. 또한, 통신부(922)는 안테나(921)를 통하여 수신되는 무선 신호를 증폭 및 주파수 변환하여, 수신 신호를 취득한다. 그리고, 통신부(922)는 수신 신호를 복조 및 복호하여 전자 메일 데이터를 복원하고, 복원한 전자 메일 데이터를 제어부(931)로 출력한다. 제어부(931)는 표시부(930)에 전자 메일의 내용을 표시시킴과 함께, 전자 메일 데이터를 기록 재생부(929)에 공급하고, 그 기억 매체에 기입시킨다.
기록 재생부(929)는 판독 기입 가능한 임의의 기억 매체를 갖는다. 예를 들어, 기억 매체는, RAM 또는 플래시 메모리 등의 내장형의 기억 매체여도 되고, 하드 디스크, 자기 디스크, 광자기 디스크, 광 디스크, USB(Universal Serial Bus) 메모리, 또는 메모리 카드 등의 외부 장착형의 기억 매체여도 된다.
또한, 촬영 모드에서, 예를 들어, 카메라부(926)는 피사체를 촬상하여 화상 데이터를 생성하고, 생성한 화상 데이터를 화상 처리부(927)로 출력한다. 화상 처리부(927)는 카메라부(926)로부터 입력되는 화상 데이터를 부호화하고, 부호화 스트림을 기록 재생부(929)에 공급하고, 그 기억 매체에 기입시킨다.
또한, 화상 표시 모드에서, 기록 재생부(929)는 기억 매체에 기록되어 있는 부호화 스트림을 판독하여 화상 처리부(927)로 출력한다. 화상 처리부(927)는 기록 재생부(929)로부터 입력되는 부호화 스트림을 복호하고, 화상 데이터를 표시부(930)에 공급하고, 그 화상을 표시시킨다.
또한, 텔레비전 전화 모드에서, 예를 들어, 다중 분리부(928)는 화상 처리부(927)에 의해 부호화된 영상 스트림과, 음성 코덱(923)으로부터 입력되는 음성 스트림을 다중화하고, 다중화한 스트림을 통신부(922)로 출력한다. 통신부(922)는 스트림을 부호화 및 변조하여, 송신 신호를 생성한다. 그리고, 통신부(922)는 생성한 송신 신호를, 안테나(921)를 통하여 기지국(도시하지 않음)으로 송신한다. 또한, 통신부(922)는 안테나(921)를 통하여 수신되는 무선 신호를 증폭 및 주파수 변환하여, 수신 신호를 취득한다. 이들 송신 신호 및 수신 신호에는, 부호화 비트 스트림이 포함될 수 있다. 그리고, 통신부(922)는 수신 신호를 복조 및 복호하여 스트림을 복원하고, 복원한 스트림을 다중 분리부(928)로 출력한다. 다중 분리부(928)는 입력되는 스트림으로부터 영상 스트림 및 음성 스트림을 분리하고, 영상 스트림을 화상 처리부(927), 음성 스트림을 음성 코덱(923)으로 출력한다. 화상 처리부(927)는 영상 스트림을 복호하여, 영상 데이터를 생성한다. 영상 데이터는, 표시부(930)에 공급되고, 표시부(930)에 의해 일련의 화상이 표시된다. 음성 코덱(923)은 음성 스트림을 신장 및 D/A 변환하여, 아날로그 음성 신호를 생성한다. 그리고, 음성 코덱(923)은 생성한 음성 신호를 스피커(924)에 공급하여 음성을 출력시킨다.
이렇게 구성된 휴대 전화기(920)에 있어서, 예를 들어 화상 처리부(927)가 상술한 화상 부호화 장치(100)의 기능을 갖게 해도 된다. 즉, 화상 처리부(927)가 화상 데이터를, 이상의 각 실시 형태에 있어서 설명한 방법으로 부호화하도록 해도 된다. 이와 같이 함으로써, 휴대 전화기(920)는 부호화 효율의 저감을 억제할 수 있다.
또한, 이렇게 구성된 휴대 전화기(920)에 있어서, 예를 들어 화상 처리부(927)가 상술한 화상 복호 장치(200)의 기능을 갖게 해도 된다. 즉, 화상 처리부(927)가 부호화 데이터를, 이상의 각 실시 형태에 있어서 설명한 방법으로 복호하도록 해도 된다. 이와 같이 함으로써, 휴대 전화기(920)는 부호화 데이터의 부호화 효율의 저감을 억제할 수 있다.
<제3 응용예: 기록 재생 장치>
도 73은, 상술한 실시 형태를 적용한 기록 재생 장치의 개략적인 구성의 일례를 도시하고 있다. 기록 재생 장치(940)는 예를 들어, 수신한 방송 프로그램의 음성 데이터 및 영상 데이터를 부호화하여 기록 매체에 기록한다. 또한, 기록 재생 장치(940)는 예를 들어, 다른 장치로부터 취득되는 음성 데이터 및 영상 데이터를 부호화하여 기록 매체에 기록해도 된다. 또한, 기록 재생 장치(940)는 예를 들어, 유저의 지시에 따라, 기록 매체에 기록되어 있는 데이터를 모니터 및 스피커 상에서 재생한다. 이때, 기록 재생 장치(940)는 음성 데이터 및 영상 데이터를 복호한다.
기록 재생 장치(940)는 튜너(941), 외부 인터페이스(I/F)부(942), 인코더(943), HDD(Hard Disk Drive)부(944), 디스크 드라이브(945), 셀렉터(946), 디코더(947), OSD(On-Screen Display)부(948), 제어부(949), 및 유저 인터페이스(I/F)부(950)를 구비한다.
튜너(941)는 안테나(도시하지 않음)를 통하여 수신되는 방송 신호로부터 원하는 채널의 신호를 추출하고, 추출한 신호를 복조한다. 그리고, 튜너(941)는 복조에 의해 얻어진 부호화 비트 스트림을 셀렉터(946)로 출력한다. 즉, 튜너(941)는 기록 재생 장치(940)에 있어서의 전송부로서의 역할을 갖는다.
외부 인터페이스부(942)는 기록 재생 장치(940)와 외부 기기 또는 네트워크를 접속하기 위한 인터페이스이다. 외부 인터페이스부(942)는 예를 들어, IEEE(Institute of Electrical and Electronic Engineers)1394 인터페이스, 네트워크 인터페이스, USB 인터페이스, 또는 플래시 메모리 인터페이스 등이어도 된다. 예를 들어, 외부 인터페이스부(942)를 통하여 수신되는 영상 데이터 및 음성 데이터는, 인코더(943)에 입력된다. 즉, 외부 인터페이스부(942)는 기록 재생 장치(940)에 있어서의 전송부로서의 역할을 갖는다.
인코더(943)는 외부 인터페이스부(942)로부터 입력되는 영상 데이터 및 음성 데이터가 부호화되어 있지 않은 경우에, 영상 데이터 및 음성 데이터를 부호화한다. 그리고, 인코더(943)는 부호화 비트 스트림을 셀렉터(946)로 출력한다.
HDD부(944)는 영상 및 음성 등의 콘텐츠 데이터가 압축된 부호화 비트 스트림, 각종 프로그램 및 기타의 데이터를 내부의 하드 디스크에 기록한다. 또한, HDD부(944)는 영상 및 음성의 재생 시에, 이들 데이터를 하드 디스크로부터 판독한다.
디스크 드라이브(945)는 장착되어 있는 기록 매체에의 데이터의 기록 및 판독을 행한다. 디스크 드라이브(945)에 장착되는 기록 매체는, 예를 들어 DVD(Digital Versatile Disc) 디스크(DVD-Video, DVD-RAM(DVD-Random Access Memory), DVD-R(DVD-Recordable), DVD-RW(DVD-Rewritable), DVD+R(DVD+Recordable), DVD+RW(DVD+Rewritable) 등) 또는 Blu-ray(등록 상표) 디스크 등이어도 된다.
셀렉터(946)는 영상 및 음성의 기록 시에는, 튜너(941) 또는 인코더(943)로부터 입력되는 부호화 비트 스트림을 선택하고, 선택한 부호화 비트 스트림을 HDD(944) 또는 디스크 드라이브(945)로 출력한다. 또한, 셀렉터(946)는 영상 및 음성의 재생 시에는, HDD(944) 또는 디스크 드라이브(945)로부터 입력되는 부호화 비트 스트림을 디코더(947)로 출력한다.
디코더(947)는 부호화 비트 스트림을 복호하여, 영상 데이터 및 음성 데이터를 생성한다. 그리고, 디코더(947)는 생성한 영상 데이터를 OSD부(948)로 출력한다. 또한, 디코더(947)는 생성한 음성 데이터를 외부의 스피커로 출력한다.
OSD부(948)는 디코더(947)로부터 입력되는 영상 데이터를 재생하고, 영상을 표시한다. 또한, OSD부(948)는 표시하는 영상에, 예를 들어 메뉴, 버튼 또는 커서 등의 GUI의 화상을 중첩해도 된다.
제어부(949)는 CPU 등의 프로세서, 및 RAM 및 ROM 등의 메모리를 갖는다. 메모리는, CPU에 의해 실행되는 프로그램, 및 프로그램 데이터 등을 기억한다. 메모리에 의해 기억되는 프로그램은, 예를 들어, 기록 재생 장치(940)의 기동 시에 CPU에 의해 읽어들여져, 실행된다. CPU는, 프로그램을 실행함으로써, 예를 들어 유저 인터페이스부(950)로부터 입력되는 조작 신호에 따라, 기록 재생 장치(940)의 동작을 제어한다.
유저 인터페이스부(950)는 제어부(949)와 접속된다. 유저 인터페이스부(950)는 예를 들어, 유저가 기록 재생 장치(940)를 조작하기 위한 버튼 및 스위치, 및 원격 제어 신호의 수신부 등을 갖는다. 유저 인터페이스부(950)는 이들 구성 요소를 통하여 유저에 의한 조작을 검출하여 조작 신호를 생성하고, 생성한 조작 신호를 제어부(949)로 출력한다.
이렇게 구성된 기록 재생 장치(940)에 있어서, 예를 들어 인코더(943)가 상술한 화상 부호화 장치(100)의 기능을 갖게 해도 된다. 즉, 인코더(943)가 화상 데이터를, 이상의 각 실시 형태에 있어서 설명 방법으로 부호화하도록 해도 된다. 이와 같이 함으로써, 기록 재생 장치(940)는 부호화 효율의 저감을 억제할 수 있다.
또한, 이렇게 구성된 기록 재생 장치(940)에 있어서, 예를 들어 디코더(947)가 상술한 화상 복호 장치(200)의 기능을 갖게 해도 된다. 즉, 디코더(947)가 부호화 데이터를, 이상의 각 실시 형태에 있어서 설명한 방법으로 복호하도록 해도 된다. 이와 같이 함으로써, 기록 재생 장치(940)는 부호화 데이터의 부호화 효율의 저감을 억제할 수 있다.
<제4 응용예: 촬상 장치>
도 74는, 상술한 실시 형태를 적용한 촬상 장치의 개략적인 구성의 일례를 도시하고 있다. 촬상 장치(960)는 피사체를 촬상하여 화상을 생성하고, 화상 데이터를 부호화하여 기록 매체에 기록한다.
촬상 장치(960)는 광학 블록(961), 촬상부(962), 신호 처리부(963), 화상 처리부(964), 표시부(965), 외부 인터페이스(I/F)부(966), 메모리부(967), 미디어 드라이브(968), OSD부(969), 제어부(970), 유저 인터페이스(I/F)부(971), 및 버스(972)를 구비한다.
광학 블록(961)은 촬상부(962)에 접속된다. 촬상부(962)는 신호 처리부(963)에 접속된다. 표시부(965)는 화상 처리부(964)에 접속된다. 유저 인터페이스부(971)는 제어부(970)에 접속된다. 버스(972)는 화상 처리부(964), 외부 인터페이스부(966), 메모리부(967), 미디어 드라이브(968), OSD부(969), 및 제어부(970)를 서로 접속한다.
광학 블록(961)은 포커스 렌즈 및 교축 기구 등을 갖는다. 광학 블록(961)은 피사체의 광학 상을 촬상부(962)의 촬상면에 결상시킨다. 촬상부(962)는 CCD(Charge Coupled Device) 또는 CMOS(Complementary Metal Oxide Semiconductor) 등의 이미지 센서를 갖고, 촬상면에 결상한 광학 상을 광전 변환에 의해 전기 신호로서의 화상 신호로 변환한다. 그리고, 촬상부(962)는 화상 신호를 신호 처리부(963)로 출력한다.
신호 처리부(963)는 촬상부(962)로부터 입력되는 화상 신호에 대하여 니 보정, 감마 보정, 색 보정 등의 다양한 카메라 신호 처리를 행한다. 신호 처리부(963)는 카메라 신호 처리 후의 화상 데이터를 화상 처리부(964)로 출력한다.
화상 처리부(964)는 신호 처리부(963)로부터 입력되는 화상 데이터를 부호화하여, 부호화 데이터를 생성한다. 그리고, 화상 처리부(964)는 생성한 부호화 데이터를 외부 인터페이스부(966) 또는 미디어 드라이브(968)로 출력한다. 또한, 화상 처리부(964)는 외부 인터페이스부(966) 또는 미디어 드라이브(968)로부터 입력되는 부호화 데이터를 복호하여, 화상 데이터를 생성한다. 그리고, 화상 처리부(964)는 생성한 화상 데이터를 표시부(965)로 출력한다. 또한, 화상 처리부(964)는 신호 처리부(963)로부터 입력되는 화상 데이터를 표시부(965)로 출력하여 화상을 표시시켜도 된다. 또한, 화상 처리부(964)는 OSD부(969)로부터 취득되는 표시용 데이터를, 표시부(965)로 출력하는 화상에 중첩해도 된다.
OSD부(969)는 예를 들어 메뉴, 버튼 또는 커서 등의 GUI의 화상을 생성하고, 생성한 화상을 화상 처리부(964)로 출력한다.
외부 인터페이스부(966)는 예를 들어 USB 입출력 단자로서 구성된다. 외부 인터페이스부(966)는 예를 들어, 화상의 인쇄 시에, 촬상 장치(960)와 프린터를 접속한다. 또한, 외부 인터페이스부(966)에는, 필요에 따라 드라이브가 접속된다. 드라이브에는, 예를 들어, 자기 디스크 또는 광 디스크 등의 리무버블 미디어가 장착되어, 리무버블 미디어로부터 판독되는 프로그램이, 촬상 장치(960)에 인스톨될 수 있다. 또한, 외부 인터페이스부(966)는 LAN 또는 인터넷 등의 네트워크에 접속되는 네트워크 인터페이스로서 구성되어도 된다. 즉, 외부 인터페이스부(966)는 촬상 장치(960)에 있어서의 전송부로서의 역할을 갖는다.
미디어 드라이브(968)에 장착되는 기록 매체는, 예를 들어, 자기 디스크, 광자기 디스크, 광 디스크, 또는 반도체 메모리 등의, 판독 기입 가능한 임의의 리무버블 미디어이면 된다. 또한, 미디어 드라이브(968)에 기록 매체가 고정적으로 장착되어, 예를 들어, 내장형 하드디스크 드라이브 또는 SSD(Solid State Drive)와 같은 비가반성의 기억부가 구성되어도 된다.
제어부(970)는 CPU 등의 프로세서, 및 RAM 및 ROM 등의 메모리를 갖는다. 메모리는, CPU에 의해 실행되는 프로그램, 및 프로그램 데이터 등을 기억한다. 메모리에 의해 기억되는 프로그램은, 예를 들어, 촬상 장치(960)의 기동 시에 CPU에 의해 읽어들여져, 실행된다. CPU는, 프로그램을 실행함으로써, 예를 들어 유저 인터페이스부(971)로부터 입력되는 조작 신호에 따라, 촬상 장치(960)의 동작을 제어한다.
유저 인터페이스부(971)는 제어부(970)와 접속된다. 유저 인터페이스부(971)는 예를 들어, 유저가 촬상 장치(960)를 조작하기 위한 버튼 및 스위치 등을 갖는다. 유저 인터페이스부(971)는 이들 구성 요소를 통하여 유저에 의한 조작을 검출하여 조작 신호를 생성하고, 생성한 조작 신호를 제어부(970)로 출력한다.
이렇게 구성된 촬상 장치(960)에 있어서, 예를 들어 화상 처리부(964)가 상술한 화상 부호화 장치(100)의 기능을 갖게 해도 된다. 즉, 화상 처리부(964)가 화상 데이터를, 이상의 각 실시 형태에 있어서 설명한 방법으로 부호화하도록 해도 된다. 이와 같이 함으로써, 촬상 장치(960)는 부호화 효율의 저감을 억제할 수 있다.
또한, 이렇게 구성된 촬상 장치(960)에 있어서, 예를 들어 화상 처리부(964)가 상술한 화상 복호 장치(200)의 기능을 갖게 해도 된다. 즉, 화상 처리부(964)가 부호화 데이터를, 이상의 각 실시 형태에 있어서 설명한 방법으로 복호하도록 해도 된다. 이와 같이 함으로써, 촬상 장치(960)는 부호화 데이터의 부호화 효율의 저감을 억제할 수 있다.
<제5 응용예: 비디오 세트>
또한, 본 기술은, 임의의 장치 또는 시스템을 구성하는 장치에 탑재하는 모든 구성, 예를 들어, 시스템 LSI(Large Scale Integration) 등으로서의 프로세서, 복수의 프로세서 등을 사용하는 모듈, 복수의 모듈 등을 사용하는 유닛, 유닛에 추가로 기타의 기능을 부가한 세트 등(즉, 장치의 일부 구성)으로서 실시할 수도 있다. 도 75는, 본 기술을 적용한 비디오 세트의 개략적인 구성의 일례를 도시하고 있다.
근년, 전자 기기의 다기능화가 진행하고 있어, 그 개발이나 제조에 있어서, 그 일부의 구성을 판매나 제공 등으로서 실시하는 경우, 1 기능을 갖는 구성으로서 실시를 행하는 경우뿐만 아니라, 관련하는 기능을 갖는 복수의 구성을 조합하여, 복수의 기능을 갖는 1세트로서 실시를 행하는 경우도 많이 보이게 되었다.
도 75에 도시하는 비디오 세트(1300)는 이러한 다기능화된 구성이며, 화상의 부호화나 복호(어느 한쪽이어도 되고, 양쪽이어도 된다)에 관한 기능을 갖는 디바이스에, 그 기능에 관련하는 기타의 기능을 갖는 디바이스를 조합한 것이다.
도 75에 도시된 바와 같이, 비디오 세트(1300)는 비디오 모듈(1311), 외부 메모리(1312), 파워 매니지먼트 모듈(1313), 및 프론트엔드 모듈(1314) 등의 모듈군과, 커넥티비티(1321), 카메라(1322), 및 센서(1323) 등이 관련하는 기능을 갖는 디바이스를 갖는다.
모듈은, 서로 관련하는 몇 가지의 부품적 기능을 통합하여, 통합된 기능을 갖는 부품으로 한 것이다. 구체적인 물리적 구성은 임의인데, 예를 들어, 각각 기능을 갖는 복수의 프로세서, 저항이나 콘덴서 등의 전자 회로 소자, 기타의 디바이스 등을 배선 기판 등에 배치하여 일체화한 것이 생각된다. 또한, 모듈에 다른 모듈이나 프로세서 등을 조합하여 새로운 모듈로 하는 것도 생각된다.
도 75의 예의 경우, 비디오 모듈(1311)은 화상 처리에 관한 기능을 갖는 구성을 조합한 것이며, 애플리케이션 프로세서, 비디오 프로세서, 브로드밴드 모뎀(1333), 및 RF 모듈(1334)을 갖는다.
프로세서는, 소정의 기능을 갖는 구성을 SoC(System On a Chip)에 의해 반도체 칩에 집적한 것이며, 예를 들어 시스템 LSI(Large Scale Integration) 등이라고 칭해지는 것도 있다. 이 소정의 기능을 갖는 구성은, 논리 회로(하드웨어 구성)여도 되고, CPU, ROM, RAM 등과, 그들을 사용하여 실행되는 프로그램(소프트웨어 구성)이어도 되고, 그 양쪽을 조합한 것이어도 된다. 예를 들어, 프로세서가, 논리 회로와 CPU, ROM, RAM 등을 갖고, 기능의 일부를 논리 회로(하드웨어 구성)에 의해 실현하고, 기타의 기능을 CPU에서 실행되는 프로그램(소프트웨어 구성)에 의해 실현하게 해도 된다.
도 75의 애플리케이션 프로세서(1331)는 화상 처리에 관한 어플리케이션을 실행하는 프로세서이다. 이 애플리케이션 프로세서(1331)에 있어서 실행되는 어플리케이션은, 소정의 기능을 실현하기 위해서, 연산 처리를 행할 뿐만 아니라, 예를 들어 비디오 프로세서(1332) 등, 비디오 모듈(1311) 내외의 구성을 필요에 따라서 제어할 수도 있다.
비디오 프로세서(1332)는 화상의 부호화·복호(그 한쪽 또는 양쪽)에 관한 기능을 갖는 프로세서이다.
브로드밴드 모뎀(1333)은 인터넷이나 공중 전화 회선망 등의 광대역의 회선을 통하여 행하여지는 유선 또는 무선(또는 그 양쪽)의 광대역 통신에 의해 송신하는 데이터(디지털 신호)를 디지털 변조하거나 하여 아날로그 신호로 변환하거나, 그 광대역 통신에 의해 수신한 아날로그 신호를 복조하여 데이터(디지털 신호)로 변환하거나 한다. 브로드밴드 모뎀(1333)은 예를 들어, 비디오 프로세서(1332)가 처리하는 화상 데이터, 화상 데이터가 부호화된 스트림, 애플리케이션 프로그램, 설정 데이터 등, 임의의 정보를 처리한다.
RF 모듈(1334)은 안테나를 통하여 송수신되는 RF(Radio Frequency) 신호에 대하여 주파수 변환, 변복조, 증폭, 필터 처리 등을 행하는 모듈이다. 예를 들어, RF 모듈(1334)은 브로드밴드 모뎀(1333)에 의해 생성된 기저 대역 신호에 대하여 주파수 변환 등을 행하여 RF 신호를 생성한다. 또한, 예를 들어, RF 모듈(1334)은 프론트엔드 모듈(1314)을 통하여 수신된 RF 신호에 대하여 주파수 변환 등을 행하여 기저 대역 신호를 생성한다.
또한, 도 75에 있어서 점선(1341)으로 도시된 바와 같이, 애플리케이션 프로세서(1331)와 비디오 프로세서(1332)를 일체화하여, 하나의 프로세서로서 구성되게 해도 된다.
외부 메모리(1312)는 비디오 모듈(1311)의 외부에 설치된, 비디오 모듈(1311)에 의해 이용되는 기억 디바이스를 갖는 모듈이다. 이 외부 메모리(1312)의 기억 디바이스는, 어떤 물리 구성에 의해 실현하게 해도 되지만, 일반적으로 프레임 단위의 화상 데이터와 같은 대용량의 데이터 저장에 이용되는 경우가 많으므로, 예를 들어 DRAM(Dynamic Random Access Memory)과 같은 비교적 저렴하고 대용량의 반도체 메모리에 의해 실현하는 것이 바람직하다.
파워 매니지먼트 모듈(1313)은 비디오 모듈(1311)(비디오 모듈(1311) 내의 각 구성)에의 전력 공급을 관리하고, 제어한다.
프론트엔드 모듈(1314)은 RF 모듈(1334)에 대하여 프론트엔드 기능(안테나측의 송수신단의 회로)을 제공하는 모듈이다. 도 75에 도시된 바와 같이, 프론트엔드 모듈(1314)은 예를 들어, 안테나부(1351), 필터(1352), 및 증폭부(1353)를 갖는다.
안테나부(1351)는 무선 신호를 송수신하는 안테나 및 그 주변의 구성을 갖는다. 안테나부(1351)는 증폭부(1353)로부터 공급되는 신호를 무선 신호로서 송신하고, 수신한 무선 신호를 전기 신호(RF 신호)로서 필터(1352)에 공급한다. 필터(1352)는 안테나부(1351)를 통하여 수신된 RF 신호에 대하여 필터 처리 등을 행하고, 처리 후의 RF 신호를 RF 모듈(1334)에 공급한다. 증폭부(1353)는 RF 모듈(1334)로부터 공급되는 RF 신호를 증폭하고, 안테나부(1351)에 공급한다.
커넥티비티(1321)는 외부와의 접속에 관한 기능을 갖는 모듈이다. 커넥티비티(1321)의 물리 구성은 임의이다. 예를 들어, 커넥티비티(1321)는 브로드밴드 모뎀(1333)이 대응하는 통신 규격 이외의 통신 기능을 갖는 구성이나, 외부 입출력 단자 등을 갖는다.
예를 들어, 커넥티비티(1321)가 Bluetooth(등록 상표), IEEE802.11(예를 들어 Wi-Fi(Wireless Fidelity, 등록 상표)), NFC(Near Field Communication), IrDA(InfraRed Data Association) 등의 무선 통신 규격에 준거하는 통신 기능을 갖는 모듈이나, 그 규격에 준거한 신호를 송수신하는 안테나 등을 갖게 해도 된다. 또한, 예를 들어, 커넥티비티(1321)가 USB(Universal Serial Bus), HDMI(등록 상표)(High-Definition Multimedia Interface) 등의 유선 통신 규격에 준거하는 통신 기능을 갖는 모듈이나, 그 규격에 준거한 단자를 갖게 해도 된다. 또한, 예를 들어, 커넥티비티(1321)가 아날로그 입출력 단자 등의 기타의 데이터(신호) 전송 기능 등을 갖게 해도 된다.
또한, 커넥티비티(1321)가 데이터(신호)의 전송처의 디바이스를 포함하게 해도 된다. 예를 들어, 커넥티비티(1321)가 자기 디스크, 광 디스크, 광자기 디스크, 또는 반도체 메모리 등의 기록 매체에 대하여 데이터의 판독이나 기입을 행하는 드라이브(리무버블 미디어의 드라이브뿐만 아니라, 하드 디스크, SSD(Solid State Drive), NAS(Network Attached Storage) 등도 포함한다)을 갖게 해도 된다. 또한, 커넥티비티(1321)가 화상이나 음성의 출력 디바이스(모니터나 스피커 등)를 갖게 해도 된다.
카메라(1322)는 피사체를 촬상하여, 피사체의 화상 데이터를 얻는 기능을 갖는 모듈이다. 카메라(1322)의 촬상에 의해 얻어진 화상 데이터는, 예를 들어, 비디오 프로세서(1332)에 공급되어서 부호화된다.
센서(1323)는 예를 들어, 음성 센서, 초음파 센서, 광 센서, 조도 센서, 적외선 센서, 이미지 센서, 회전 센서, 각도 센서, 각속도 센서, 속도 센서, 가속도 센서, 경사 센서, 자기 식별 센서, 충격 센서, 온도 센서 등, 임의의 센서 기능을 갖는 모듈이다. 센서(1323)에 의해 검출된 데이터는, 예를 들어, 애플리케이션 프로세서(1331)에 공급되어서 어플리케이션 등에 의해 이용된다.
이상에 있어서 모듈로서 설명한 구성을 프로세서로서 실현하게 해도 되고, 반대로 프로세서로서 설명한 구성을 모듈로서 실현하게 해도 된다.
이상과 같은 구성의 비디오 세트(1300)에 있어서, 후술하는 바와 같이 비디오 프로세서(1332)에 본 기술을 적용할 수 있다. 따라서, 비디오 세트(1300)는 본 기술을 적용한 세트로서 실시할 수 있다.
<비디오 프로세서의 구성예>
도 76은, 본 기술을 적용한 비디오 프로세서(1332)(도 75)의 개략적인 구성의 일례를 도시하고 있다.
도 76의 예의 경우, 비디오 프로세서(1332)는 비디오 신호 및 오디오 신호의 입력을 받아서 이들을 소정의 방식으로 부호화하는 기능과, 부호화된 비디오 데이터 및 오디오 데이터를 복호하여, 비디오 신호 및 오디오 신호를 재생 출력하는 기능을 갖는다.
도 76에 도시된 바와 같이, 비디오 프로세서(1332)는 비디오 입력 처리부(1401), 제1 화상 확대 축소부(1402), 제2 화상 확대 축소부(1403), 비디오 출력 처리부(1404), 프레임 메모리(1405), 및 메모리 제어부(1406)를 갖는다. 또한, 비디오 프로세서(1332)는 인코드·디코드 엔진(1407), 비디오 ES(Elementary Stream) 버퍼(1408A) 및 (1408B), 그리고, 오디오 ES 버퍼(1409A 및 1409B)를 갖는다. 또한, 비디오 프로세서(1332)는 오디오 인코더(1410), 오디오 디코더(1411), 다중화부(MUX(Multiplexer))(1412), 역다중화부(DMUX(Demultiplexer))(1413), 및 스트림 버퍼(1414)를 갖는다.
비디오 입력 처리부(1401)는 예를 들어 커넥티비티(1321)(도 75) 등으로부터 입력된 비디오 신호를 취득하고, 디지털 화상 데이터로 변환한다. 제1 화상 확대 축소부(1402)는 화상 데이터에 대하여 포맷 변환이나 화상의 확대 축소 처리 등을 행한다. 제2 화상 확대 축소부(1403)는 화상 데이터에 대하여 비디오 출력 처리부(1404)를 통하여 출력하는 곳에서의 포맷에 따라서 화상의 확대 축소 처리를 행하거나, 제1 화상 확대 축소부(1402)와 동일한 포맷 변환이나 화상의 확대 축소 처리 등을 행하거나 한다. 비디오 출력 처리부(1404)는 화상 데이터에 대하여 포맷 변환이나 아날로그 신호에의 변환 등을 행하고, 재생된 비디오 신호로서 예를 들어 커넥티비티(1321) 등으로 출력한다.
프레임 메모리(1405)는 비디오 입력 처리부(1401), 제1 화상 확대 축소부(1402), 제2 화상 확대 축소부(1403), 비디오 출력 처리부(1404), 및 인코드·디코드 엔진(1407)에 의해 공용되는 화상 데이터용의 메모리이다. 프레임 메모리(1405)는 예를 들어 DRAM 등의 반도체 메모리로서 실현된다.
메모리 제어부(1406)는 인코드·디코드 엔진(1407)으로부터의 동기 신호를 받아, 액세스 관리 테이블(1406A)에 기입된 프레임 메모리(1405)에의 액세스 스케줄에 따라서 프레임 메모리(1405)에 대한 기입·판독의 액세스를 제어한다. 액세스 관리 테이블(1406A)은, 인코드·디코드 엔진(1407), 제1 화상 확대 축소부(1402), 제2 화상 확대 축소부(1403) 등에서 실행되는 처리에 따라, 메모리 제어부(1406)에 의해 갱신된다.
인코드·디코드 엔진(1407)은 화상 데이터의 인코드 처리, 그리고, 화상 데이터가 부호화된 데이터인 비디오 스트림의 디코드 처리를 행한다. 예를 들어, 인코드·디코드 엔진(1407)은 프레임 메모리(1405)로부터 판독한 화상 데이터를 부호화하고, 비디오 스트림으로서 비디오 ES 버퍼(1408A)에 순차 기입한다. 또한, 예를 들어, 비디오 ES 버퍼(1408B)로부터 비디오 스트림을 순차 판독하여 복호하고, 화상 데이터로서 프레임 메모리(1405)에 순차 기입한다. 인코드·디코드 엔진(1407)은 이들의 부호화나 복호에 있어서, 프레임 메모리(1405)를 작업 영역으로서 사용한다. 또한, 인코드·디코드 엔진(1407)은 예를 들어 매크로 블록마다의 처리를 개시하는 타이밍에서, 메모리 제어부(1406)에 대하여 동기 신호를 출력한다.
비디오 ES 버퍼(1408A)는, 인코드·디코드 엔진(1407)에 의해 생성된 비디오 스트림을 버퍼링하고, 다중화부(MUX)(1412)에 공급한다. 비디오 ES 버퍼(1408B)는, 역다중화부(DMUX)(1413)로부터 공급된 비디오 스트림을 버퍼링하고, 인코드·디코드 엔진(1407)에 공급한다.
오디오 ES 버퍼(1409A)는, 오디오 인코더(1410)에 의해 생성된 오디오 스트림을 버퍼링하고, 다중화부(MUX)(1412)에 공급한다. 오디오 ES 버퍼(1409B)는, 역다중화부(DMUX)(1413)로부터 공급된 오디오 스트림을 버퍼링하고, 오디오 디코더(1411)에 공급한다.
오디오 인코더(1410)는 예를 들어 커넥티비티(1321) 등으로부터 입력된 오디오 신호를 예를 들어 디지털 변환하고, 예를 들어 MPEG 오디오 방식이나 AC3(AudioCode number 3) 방식 등의 소정의 방식으로 부호화한다. 오디오 인코더(1410)는 오디오 신호가 부호화된 데이터인 오디오 스트림을 오디오 ES 버퍼(1409A)에 순차 기입한다. 오디오 디코더(1411)는 오디오 ES 버퍼(1409B)로부터 공급된 오디오 스트림을 복호하고, 예를 들어 아날로그 신호에의 변환 등을 행하고, 재생된 오디오 신호로서 예를 들어 커넥티비티(1321) 등에 공급한다.
다중화부(MUX)(1412)는, 비디오 스트림과 오디오 스트림을 다중화한다. 이 다중화의 방법(즉, 다중화에 의해 생성되는 비트 스트림의 포맷)은 임의이다. 또한, 이 다중화 시에, 다중화부(MUX)(1412)는, 소정의 헤더 정보 등을 비트 스트림에 부가할 수도 있다. 즉, 다중화부(MUX)(1412)는, 다중화에 의해 스트림의 포맷을 변환할 수 있다. 예를 들어, 다중화부(MUX)(1412)는, 비디오 스트림과 오디오 스트림을 다중화함으로써, 전송용의 포맷의 비트 스트림인 트랜스포트 스트림으로 변환한다. 또한, 예를 들어, 다중화부(MUX)(1412)는, 비디오 스트림과 오디오 스트림을 다중화함으로써, 기록용의 파일 포맷의 데이터(파일 데이터)로 변환한다.
역다중화부(DMUX)(1413)는, 다중화부(MUX)(1412)에 의한 다중화에 대응하는 방법으로, 비디오 스트림과 오디오 스트림이 다중화된 비트 스트림을 역다중화한다. 즉, 역다중화부(DMUX)(1413)는, 스트림 버퍼(1414)로부터 판독된 비트 스트림으로부터 비디오 스트림과 오디오 스트림을 추출한다(비디오 스트림과 오디오 스트림을 분리한다). 즉, 역다중화부(DMUX)(1413)는, 역다중화에 의해 스트림의 포맷을 변환(다중화부(MUX)(1412)에 의한 변환의 역변환)할 수 있다. 예를 들어, 역다중화부(DMUX)(1413)는, 예를 들어 커넥티비티(1321)나 브로드밴드 모뎀(1333) 등으로부터 공급된 트랜스포트 스트림을, 스트림 버퍼(1414)를 통하여 취득하고, 역다중화함으로써, 비디오 스트림과 오디오 스트림으로 변환할 수 있다. 또한, 예를 들어, 역다중화부(DMUX)(1413)는, 예를 들어 커넥티비티(1321)에 의해 각종 기록 매체로부터 판독된 파일 데이터를, 스트림 버퍼(1414)를 통하여 취득하고, 역다중화함으로써, 비디오 스트림과 오디오 스트림으로 변환할 수 있다.
스트림 버퍼(1414)는 비트 스트림을 버퍼링한다. 예를 들어, 스트림 버퍼(1414)는 다중화부(MUX)(1412)로부터 공급된 트랜스포트 스트림을 버퍼링하고, 소정의 타이밍에 있어서, 또는 외부로부터의 요구 등에 기초하여, 예를 들어 커넥티비티(1321)나 브로드밴드 모뎀(1333) 등에 공급한다.
또한, 예를 들어, 스트림 버퍼(1414)는 다중화부(MUX)(1412)로부터 공급된 파일 데이터를 버퍼링하고, 소정의 타이밍에 있어서, 또는 외부로부터의 요구 등에 기초하여, 예를 들어 커넥티비티(1321) 등에 공급하고, 각종 기록 매체에 기록 시킨다.
또한, 스트림 버퍼(1414)는 예를 들어 커넥티비티(1321)나 브로드밴드 모뎀(1333) 등을 통하여 취득한 트랜스포트 스트림을 버퍼링하고, 소정의 타이밍에 있어서, 또는 외부로부터의 요구 등에 기초하여, 역다중화부(DMUX)(1413)에 공급한다.
또한, 스트림 버퍼(1414)는 예를 들어 커넥티비티(1321) 등에 있어서 각종 기록 매체로부터 판독된 파일 데이터를 버퍼링하고, 소정의 타이밍에 있어서, 또는 외부로부터의 요구 등에 기초하여, 역다중화부(DMUX)(1413)에 공급한다.
이어서, 이와 같은 구성의 비디오 프로세서(1332)의 동작의 예에 대하여 설명한다. 예를 들어, 커넥티비티(1321) 등으로부터 비디오 프로세서(1332)에 입력된 비디오 신호는, 비디오 입력 처리부(1401)에 있어서 4:2:2Y/Cb/Cr 방식 등의 소정의 방식의 디지털 화상 데이터로 변환되어, 프레임 메모리(1405)에 순차 기입된다. 이 디지털 화상 데이터는, 제1 화상 확대 축소부(1402) 또는 제2 화상 확대 축소부(1403)에 판독되어서, 4:2:0Y/Cb/Cr 방식 등의 소정의 방식에의 포맷 변환 및 확대 축소 처리가 행하여져, 다시 프레임 메모리(1405)에 기입된다. 이 화상 데이터는, 인코드·디코드 엔진(1407)에 의해 부호화되어, 비디오 스트림으로서 비디오 ES 버퍼(1408A)에 기입된다.
또한, 커넥티비티(1321) 등으로부터 비디오 프로세서(1332)에 입력된 오디오 신호는, 오디오 인코더(1410)에 의해 부호화되어, 오디오 스트림으로서, 오디오 ES 버퍼(1409A)에 기입된다.
비디오 ES 버퍼(1408A)의 비디오 스트림과, 오디오 ES 버퍼(1409A)의 오디오 스트림은, 다중화부(MUX)(1412)에 판독되어서 다중화되어, 트랜스포트 스트림 또는 파일 데이터 등으로 변환된다. 다중화부(MUX)(1412)에 의해 생성된 트랜스포트 스트림은, 스트림 버퍼(1414)에 버퍼된 후, 예를 들어 커넥티비티(1321)나 브로드밴드 모뎀(1333) 등을 통하여 외부 네트워크로 출력된다. 또한, 다중화부(MUX)(1412)에 의해 생성된 파일 데이터는, 스트림 버퍼(1414)에 버퍼된 후, 예를 들어 커넥티비티(1321) 등으로 출력되어, 각종 기록 매체에 기록된다.
또한, 예를 들어 커넥티비티(1321)나 브로드밴드 모뎀(1333) 등을 통하여 외부 네트워크로부터 비디오 프로세서(1332)에 입력된 트랜스포트 스트림은, 스트림 버퍼(1414)에 버퍼된 후, 역다중화부(DMUX)(1413)에 의해 역다중화된다. 또한, 예를 들어 커넥티비티(1321) 등에 있어서 각종 기록 매체로부터 판독되어, 비디오 프로세서(1332)에 입력된 파일 데이터는, 스트림 버퍼(1414)에 버퍼된 후, 역다중화부(DMUX)(1413)에 의해 역다중화된다. 즉, 비디오 프로세서(1332)에 입력된 트랜스포트 스트림 또는 파일 데이터는, 역다중화부(DMUX)(1413)에 의해 비디오 스트림과 오디오 스트림으로 분리된다.
오디오 스트림은, 오디오 ES 버퍼(1409B)를 통하여 오디오 디코더(1411)에 공급되어, 복호되어서 오디오 신호가 재생된다. 또한, 비디오 스트림은, 비디오 ES 버퍼(1408B)에 기입된 후, 인코드·디코드 엔진(1407)에 의해 순차 판독되고 복호되어서 프레임 메모리(1405)에 기입된다. 복호된 화상 데이터는, 제2 화상 확대 축소부(1403)에 의해 확대 축소 처리되어서, 프레임 메모리(1405)에 기입된다. 그리고, 복호된 화상 데이터는, 비디오 출력 처리부(1404)에 판독되어서, 4:2:2Y/Cb/Cr 방식 등의 소정의 방식으로 포맷 변환되어, 또한 아날로그 신호로 변환되어서, 비디오 신호가 재생 출력된다.
이렇게 구성되는 비디오 프로세서(1332)에 본 기술을 적용하는 경우, 인코드·디코드 엔진(1407)에, 상술한 각 실시 형태에 따른 본 기술을 적용하면 된다. 즉, 예를 들어, 인코드·디코드 엔진(1407)이 상술한 화상 부호화 장치(100)의 기능 또는 화상 복호 장치(200)의 기능 또는 그 양쪽을 갖게 해도 된다. 이와 같이 함으로써, 비디오 프로세서(1332)는 도 1 내지 도 69를 참조하여 상술한 각 실시 형태와 동일한 효과를 얻을 수 있다.
또한, 인코드·디코드 엔진(1407)에 있어서, 본 기술(즉, 화상 부호화 장치(100)의 기능 또는 화상 복호 장치(200)의 기능 또는 그 양쪽)은 논리 회로 등의 하드웨어에 의해 실현하게 해도 되고, 내장 프로그램 등의 소프트웨어에 의해 실현하게 해도 되고, 그들의 양쪽에 의해 실현하게 해도 된다.
<비디오 프로세서의 다른 구성예>
도 77은, 본 기술을 적용한 비디오 프로세서(1332)의 개략적인 구성의 다른 예를 도시하고 있다. 도 77의 예의 경우, 비디오 프로세서(1332)는 비디오 데이터를 소정의 방식으로 부호화·복호하는 기능을 갖는다.
보다 구체적으로는, 도 77에 도시된 바와 같이, 비디오 프로세서(1332)는 제어부(1511), 디스플레이 인터페이스(1512), 디스플레이 엔진(1513), 화상 처리 엔진(1514), 및 내부 메모리(1515)를 갖는다. 또한, 비디오 프로세서(1332)는 코덱 엔진(1516), 메모리 인터페이스(1517), 다중화·역다중화부(MUX DMUX)(1518), 네트워크 인터페이스(1519), 및 비디오 인터페이스(1520)를 갖는다.
제어부(1511)는 디스플레이 인터페이스(1512), 디스플레이 엔진(1513), 화상 처리 엔진(1514), 및 코덱 엔진(1516) 등, 비디오 프로세서(1332) 내의 각 처리부의 동작을 제어한다.
도 77에 도시된 바와 같이, 제어부(1511)는 예를 들어, 메인 CPU(1531), 서브 CPU(1532), 및 시스템 컨트롤러(1533)를 갖는다. 메인 CPU(1531)는, 비디오 프로세서(1332) 내의 각 처리부의 동작을 제어하기 위한 프로그램 등을 실행한다. 메인 CPU(1531)는, 그 프로그램 등에 따라서 제어 신호를 생성하고, 각 처리부에 공급한다(즉, 각 처리부의 동작을 제어한다). 서브 CPU(1532)는, 메인 CPU(1531)의 보조적인 역할을 한다. 예를 들어, 서브 CPU(1532)는, 메인 CPU(1531)가 실행하는 프로그램 등의 자 프로세스나 서브루틴 등을 실행한다. 시스템 컨트롤러(1533)는 메인 CPU(1531) 및 서브 CPU(1532)가 실행하는 프로그램을 지정하는 등, 메인 CPU(1531) 및 서브 CPU(1532)의 동작을 제어한다.
디스플레이 인터페이스(1512)는 제어부(1511)의 제어 하에서, 화상 데이터를 예를 들어 커넥티비티(1321) 등으로 출력한다. 예를 들어, 디스플레이 인터페이스(1512)는 디지털 데이터의 화상 데이터를 아날로그 신호로 변환하고, 재생된 비디오 신호로서, 또는 디지털 데이터의 화상 데이터인채로, 커넥티비티(1321)의 모니터 장치 등으로 출력한다.
디스플레이 엔진(1513)은 제어부(1511)의 제어 하에, 화상 데이터에 대하여 그 화상을 표시시키는 모니터 장치 등의 하드웨어 스펙에 맞도록, 포맷 변환, 사이즈 변환, 색 영역 변환 등의 각종 변환 처리를 행한다.
화상 처리 엔진(1514)은 제어부(1511)의 제어 하에, 화상 데이터에 대하여 예를 들어 화질 개선을 위한 필터 처리 등, 소정의 화상 처리를 실시한다.
내부 메모리(1515)는 디스플레이 엔진(1513), 화상 처리 엔진(1514), 및 코덱 엔진(1516)에 의해 공용되는, 비디오 프로세서(1332)의 내부에 설치된 메모리이다. 내부 메모리(1515)는 예를 들어, 디스플레이 엔진(1513), 화상 처리 엔진(1514), 및 코덱 엔진(1516)의 사이에 행하여지는 데이터의 수수에 이용된다. 예를 들어, 내부 메모리(1515)는 디스플레이 엔진(1513), 화상 처리 엔진(1514), 또는 코덱 엔진(1516)으로부터 공급되는 데이터를 저장하고, 필요에 따라(예를 들어, 요구에 따라), 그 데이터를, 디스플레이 엔진(1513), 화상 처리 엔진(1514), 또는 코덱 엔진(1516)에 공급한다. 이 내부 메모리(1515)는 어떤 기억 디바이스에 의해 실현하게 해도 되지만, 일반적으로 블록 단위의 화상 데이터나 파라미터 등과 같은 소용량의 데이터 저장에 이용하는 경우가 많으므로, 예를 들어 SRAM(Static Random Access Memory)과 같은 비교적(예를 들어 외부 메모리(1312)와 비교하여) 소용량이지만 응답 속도가 고속인 반도체 메모리에 의해 실현하는 것이 바람직하다.
코덱 엔진(1516)은 화상 데이터의 부호화나 복호에 관한 처리를 행한다. 이 코덱 엔진(1516)이 대응하는 부호화·복호의 방식은 임의이며, 그 수는 하나여도 되고, 복수여도 된다. 예를 들어, 코덱 엔진(1516)은 복수의 부호화·복호 방식의 코덱 기능을 구비하고, 그 중에서 선택된 것으로 화상 데이터의 부호화 또는 부호화 데이터의 복호를 행하게 해도 된다.
도 77에 도시하는 예에 있어서, 코덱 엔진(1516)은 코덱에 관한 처리의 기능 블록으로서, 예를 들어, MPEG-2Video(1541), AVC/H.264(1542), HEVC/H.265(1543), HEVC/H.265(Scalable)(1544), HEVC/H.265(Multi-view)(1545), 및 MPEG-DASH(1551)를 갖는다.
MPEG-2Video(1541)는, 화상 데이터를 MPEG-2 방식으로 부호화하거나 복호하거나 하는 기능 블록이다. AVC/H.264(1542)는, 화상 데이터를 AVC 방식으로 부호화하거나 복호하거나 하는 기능 블록이다. HEVC/H.265(1543)는, 화상 데이터를 HEVC 방식으로 부호화하거나 복호하거나 하는 기능 블록이다. HEVC/H.265(Scalable)(1544)는, 화상 데이터를 HEVC 방식으로 스케일러블 부호화하거나 스케일러블 복호하거나 하는 기능 블록이다. HEVC/H.265(Multi-view)(1545)는, 화상 데이터를 HEVC 방식으로 다시점 부호화하거나 다시점 복호하거나 하는 기능 블록이다.
MPEG-DASH(1551)는, 화상 데이터를 MPEG-DASH(MPEG-Dynamic Adaptive Streaming over HTTP) 방식으로 송수신하는 기능 블록이다. MPEG-DASH는, HTTP(HyperText Transfer Protocol)를 사용하여 비디오의 스트리밍을 행하는 기술이며, 미리 준비된 해상도 등이 서로 상이한 복수의 부호화 데이터 중에서 적절한 것을 세그먼트 단위로 선택하여 전송하는 것을 특징의 하나로 한다. MPEG-DASH(1551)는, 규격에 준거하는 스트림의 생성이나 그 스트림의 전송 제어 등을 행하고, 화상 데이터의 부호화·복호에 대해서는, 상술한 MPEG-2Video(1541) 내지 HEVC/H.265(Multi-view)(1545)를 이용한다.
메모리 인터페이스(1517)는 외부 메모리(1312)용의 인터페이스이다. 화상 처리 엔진(1514)이나 코덱 엔진(1516)으로부터 공급되는 데이터는, 메모리 인터페이스(1517)를 통하여 외부 메모리(1312)에 공급된다. 또한, 외부 메모리(1312)로부터 판독된 데이터는, 메모리 인터페이스(1517)를 통하여 비디오 프로세서(1332)(화상 처리 엔진(1514) 또는 코덱 엔진(1516))에 공급된다.
다중화·역다중화부(MUX DMUX)(1518)는, 부호화 데이터의 비트 스트림, 화상 데이터, 비디오 신호 등, 화상에 관한 각종 데이터의 다중화나 역다중화를 행한다. 이 다중화·역다중화의 방법은 임의이다. 예를 들어, 다중화 시에, 다중화·역다중화부(MUX DMUX)(1518)는, 복수의 데이터를 하나로 통합할뿐만 아니라, 소정의 헤더 정보 등을 그 데이터에 부가할 수도 있다. 또한, 역다중화 시에, 다중화·역다중화부(MUX DMUX)(1518)는, 하나의 데이터를 복수로 분할할뿐만 아니라, 분할한 각데이터에 소정의 헤더 정보 등을 부가할 수도 있다. 즉, 다중화·역다중화부(MUX DMUX)(1518)는, 다중화·역다중화에 의해 데이터의 포맷을 변환할 수 있다. 예를 들어, 다중화·역다중화부(MUX DMUX)(1518)는, 비트 스트림을 다중화함으로써, 전송용의 포맷의 비트 스트림인 트랜스포트 스트림이나, 기록용의 파일 포맷의 데이터(파일 데이터)로 변환할 수 있다. 물론, 역다중화에 의해 그의 역변환도 가능하다.
네트워크 인터페이스(1519)는 예를 들어 브로드밴드 모뎀(1333)이나 커넥티비티(1321) 등에 적합한 인터페이스이다. 비디오 인터페이스(1520)는 예를 들어 커넥티비티(1321)나 카메라(1322) 등에 적합한 인터페이스이다.
이어서, 이러한 비디오 프로세서(1332)의 동작의 예에 대하여 설명한다. 예를 들어, 커넥티비티(1321)나 브로드밴드 모뎀(1333) 등을 통하여 외부 네트워크로부터 트랜스포트 스트림을 수신하면, 그 트랜스포트 스트림은, 네트워크 인터페이스(1519)를 통하여 다중화·역다중화부(MUX DMUX)(1518)에 공급되어서 역다중화되어, 코덱 엔진(1516)에 의해 복호된다. 코덱 엔진(1516)의 복호에 의해 얻어진 화상 데이터는, 예를 들어, 화상 처리 엔진(1514)에 의해 소정의 화상 처리가 실시되어, 디스플레이 엔진(1513)에 의해 소정의 변환이 행하여져, 디스플레이 인터페이스(1512)를 통하여 예를 들어 커넥티비티(1321) 등에 공급되어, 그 화상이 모니터에 표시된다. 또한, 예를 들어, 코덱 엔진(1516)의 복호에 의해 얻어진 화상 데이터는, 코덱 엔진(1516)에 의해 재부호화되어, 다중화·역다중화부(MUX DMUX)(1518)에 의해 다중화되어서 파일 데이터로 변환되어, 비디오 인터페이스(1520)를 통하여 예를 들어 커넥티비티(1321) 등으로 출력되어, 각종 기록 매체에 기록된다.
또한, 예를 들어, 커넥티비티(1321) 등에 의해 도시하지 않은 기록 매체로부터 판독된, 화상 데이터가 부호화된 부호화 데이터의 파일 데이터는, 비디오 인터페이스(1520)를 통하여 다중화·역다중화부(MUX DMUX)(1518)에 공급되어서 역다중화되어, 코덱 엔진(1516)에 의해 복호된다. 코덱 엔진(1516)의 복호에 의해 얻어진 화상 데이터는, 화상 처리 엔진(1514)에 의해 소정의 화상 처리가 실시되어, 디스플레이 엔진(1513)에 의해 소정의 변환이 행하여져, 디스플레이 인터페이스(1512)를 통하여 예를 들어 커넥티비티(1321) 등에 공급되어, 그 화상이 모니터에 표시된다. 또한, 예를 들어, 코덱 엔진(1516)의 복호에 의해 얻어진 화상 데이터는, 코덱 엔진(1516)에 의해 재부호화되어, 다중화·역다중화부(MUX DMUX)(1518)에 의해 다중화되어서 트랜스포트 스트림으로 변환되어, 네트워크 인터페이스(1519)를 통하여 예를 들어 커넥티비티(1321)나 브로드밴드 모뎀(1333) 등에 공급되어 도시하지 않은 다른 장치에 전송된다.
또한, 비디오 프로세서(1332) 내의 각 처리부의 사이에서의 화상 데이터나 기타의 데이터의 수수는, 예를 들어, 내부 메모리(1515)나 외부 메모리(1312)를 이용하여 행하여진다. 또한, 파워 매니지먼트 모듈(1313)은 예를 들어 제어부(1511)에의 전력 공급을 제어한다.
이렇게 구성되는 비디오 프로세서(1332)에 본 기술을 적용하는 경우, 코덱 엔진(1516)에, 상술한 각 실시 형태에 따른 본 기술을 적용하면 된다. 즉, 예를 들어, 코덱 엔진(1516)이 상술한 화상 부호화 장치(100)의 기능 또는 화상 복호 장치(200)의 기능 또는 그 양쪽을 갖게 하면 된다. 이와 같이 함으로써, 비디오 프로세서(1332)는 도 1 내지 도 69를 참조하여 상술한 각 실시 형태와 동일한 효과를 얻을 수 있다.
또한, 코덱 엔진(1516)에 있어서, 본 기술(즉, 화상 부호화 장치(100)의 기능)은 논리 회로 등의 하드웨어에 의해 실현하게 해도 되고, 내장 프로그램 등의 소프트웨어에 의해 실현하게 해도 되고, 그들의 양쪽에 의해 실현하게 해도 된다.
이상으로 비디오 프로세서(1332)의 구성을 2예시했지만, 비디오 프로세서(1332)의 구성은 임의이며, 상술한 2예 이외의 것이어도 된다. 또한, 이 비디오 프로세서(1332)는 하나의 반도체 칩으로서 구성되게 해도 되지만, 복수의 반도체 칩으로서 구성되게 해도 된다. 예를 들어, 복수의 반도체를 적층하는 3차원 적층LSI로 해도 된다. 또한, 복수의 LSI에 의해 실현되게 해도 된다.
<장치에의 적용예>
비디오 세트(1300)는 화상 데이터를 처리하는 각종 장치에 내장할 수 있다. 예를 들어, 비디오 세트(1300)는 텔레비전 장치(900)(도 71), 휴대 전화기(920)(도 72), 기록 재생 장치(940)(도 73), 촬상 장치(960)(도 74) 등에 내장할 수 있다. 비디오 세트(1300)를 내장함으로써, 그 장치는, 도 1 내지 도 69를 참조하여 상술한 각 실시 형태와 동일한 효과를 얻을 수 있다.
또한, 상술한 비디오 세트(1300)의 각 구성의 일부일지라도, 비디오 프로세서(1332)를 포함하는 것이라면, 본 기술을 적용한 구성으로서 실시할 수 있다. 예를 들어, 비디오 프로세서(1332)만을 본 기술을 적용한 비디오 프로세서로서 실시할 수 있다. 또한, 예를 들어, 상술한 바와 같이 점선(1341)에 의해 나타나는 프로세서나 비디오 모듈(1311) 등을, 본 기술을 적용한 프로세서나 모듈 등으로서 실시할 수 있다. 또한, 예를 들어, 비디오 모듈(1311), 외부 메모리(1312), 파워 매니지먼트 모듈(1313), 및 프론트엔드 모듈(1314)을 조합하여, 본 기술을 적용한 비디오 유닛(1361)으로서 실시할 수도 있다. 어느 구성의 경우에도, 도 1 내지 도 69를 참조하여 상술한 각 실시 형태와 동일한 효과를 얻을 수 있다.
즉, 비디오 프로세서(1332)를 포함하는 것이라면 어떤 구성일지라도, 비디오 세트(1300)의 경우와 마찬가지로, 화상 데이터를 처리하는 각종 장치에 내장할 수 있다. 예를 들어, 비디오 프로세서(1332), 점선(1341)에 의해 나타나는 프로세서, 비디오 모듈(1311), 또는, 비디오 유닛(1361)을 텔레비전 장치(900)(도 71), 휴대 전화기(920)(도 72), 기록 재생 장치(940)(도 73), 촬상 장치(960)(도 74) 등에 내장할 수 있다. 그리고, 본 기술을 적용한 어느 구성을 내장함으로써, 그 장치는, 비디오 세트(1300)의 경우와 마찬가지로, 도 1 내지 도 69를 참조하여 상술한 각 실시 형태와 동일한 효과를 얻을 수 있다.
<제6 응용예: 네트워크 시스템>
또한, 본 기술은, 복수의 장치에 의해 구성되는 네트워크 시스템에도 적용할 수도 있다. 도 78은, 본 기술을 적용한 네트워크 시스템의 개략적인 구성의 일례를 도시하고 있다.
도 78에 도시하는 네트워크 시스템(1600)은 기기끼리가, 네트워크를 통하여 화상(동화상)에 관한 정보를 수수하는 시스템이다. 이 네트워크 시스템(1600)의 클라우드 서비스(1601)는 자신에 통신 가능하게 접속되는 컴퓨터(1611), AV(Audio Visual) 기기(1612), 휴대형 정보 처리 단말기(1613), IoT(Internet of Things) 디바이스(1614) 등의 단말기에 대하여 화상(동화상)에 관한 서비스를 제공하는 시스템이다. 예를 들어, 클라우드 서비스(1601)는 소위 동화상 배신(온 디맨드나 라이브 배신)과 같은, 화상(동화상)의 콘텐츠의 공급 서비스를 단말기에 제공한다. 또한, 예를 들어, 클라우드 서비스(1601)는 단말기로부터 화상(동화상)의 콘텐츠를 수취하여 보관하는 백업 서비스를 제공한다. 또한, 예를 들어, 클라우드 서비스(1601)는 단말기끼리의 화상(동화상)의 콘텐츠의 수수를 중개하는 서비스를 제공한다.
클라우드 서비스(1601)의 물리 구성은 임의이다. 예를 들어, 클라우드 서비스(1601)는 동화상을 보존하고, 관리하는 서버, 동화상을 단말기에 배신하는 서버, 동화상을 단말기로부터 취득하는 서버, 유저(단말기)나 과금을 관리하는 서버 등의 각종 서버나, 인터넷이나 LAN 등의 임의의 네트워크를 갖게 해도 된다.
컴퓨터(1611)는 예를 들어, 퍼스널 컴퓨터, 서버, 워크스테이션 등과 같은 정보 처리 장치에 의해 구성된다. AV 기기(1612)는 예를 들어, 텔레비전 수상기, 하드 디스크 레코더, 게임기기, 카메라 등과 같은 화상 처리 장치에 의해 구성된다. 휴대형 정보 처리 단말기(1613)는 예를 들어, 노트북형 퍼스널 컴퓨터, 태블릿 단말기, 휴대 전화기, 스마트폰 등과 같은 휴대형의 정보 처리 장치에 의해 구성된다. IoT 디바이스(1614)는 예를 들어, 기계, 가전, 가구, 기타의 물, IC 태그, 카드형 디바이스 등, 화상에 관한 처리를 행하는 임의의 물체에 의해 구성된다. 이들 단말기는, 모두 통신 기능을 갖고, 클라우드 서비스(1601)에 접속하여(세션을 확립하여), 클라우드 서비스(1601)와 정보의 수수를 행할(즉 통신을 행할) 수 있다. 또한, 각 단말기는, 다른 단말기와 통신을 행할 수도 있다. 단말기 간의 통신은, 클라우드 서비스(1601)를 통하여 행하게 해도 되고, 클라우드 서비스(1601)를 통하지 않고 행하게 해도 된다.
이상과 같은 네트워크 시스템(1600)에 본 기술을 적용하고, 단말기 간이나, 단말기와 클라우드 서비스(1601) 사이에서 화상(동화상)의 데이터가 수수되는 때에, 그 화상 데이터를 각 실시 형태에 있어서 상술한 바와 같이 부호화·복호하도록 해도 된다. 즉, 단말기(컴퓨터(1611) 내지 IoT 디바이스(1614))나 클라우드 서비스(1601)가 각각, 상술한 화상 부호화 장치(100)나 화상 복호 장치(200)의 기능을 갖게 해도 된다. 이와 같이 함으로써, 화상 데이터를 수수하는 단말기나 클라우드 서비스(1601)는 부호화 효율의 저감을 억제할 수 있다.
<기타>
또한, 부호화 데이터(비트 스트림)에 관한 각종 정보는, 부호화 데이터에 다중화되어서 전송되거나 또는 기록되게 해도 되고, 부호화 데이터에 다중화될 일 없이, 부호화 데이터와 관련지어진 별개의 데이터로서 전송되거나 또는 기록되게 해도 된다. 여기서, 「관련짓는다」라고 하는 용어는, 예를 들어, 한쪽 데이터를 처리할 때에 다른 쪽 데이터를 이용할 수 있도록(링크시킬 수 있도록) 하는 것을 의미한다. 즉, 서로 관련지어진 데이터는, 하나가 데이터로서 통합되어도 되고, 각각 개별의 데이터로 해도 된다. 예를 들어, 부호화 데이터(화상)에 관련지어진 정보는, 그 부호화 데이터(화상)와는 다른 전송로 상에서 전송되게 해도 된다. 또한, 예를 들어, 부호화 데이터(화상)에 관련지어진 정보는, 그 부호화 데이터(화상)와는 다른 기록 매체(또는 동일한 기록 매체의 다른 기록 에어리어)에 기록되게 해도 된다. 또한, 이 「관련 지음」은, 데이터 전체가 아니라, 데이터의 일부여도 된다. 예를 들어, 화상과 그 화상에 대응하는 정보가, 복수 프레임, 1 프레임, 또는 프레임 내의 일부분 등의 임의의 단위로 서로 관련지어지게 해도 된다.
또한, 상술한 바와 같이, 본 명세서에 있어서, 「합성한다」, 「다중화한다」, 「부가한다」, 「일체화한다」, 「포함한다」, 「저장한다」, 「집어 넣는다」, 「질러 넣는다」, 「삽입한다」 등의 용어는, 예를 들어 부호화 데이터와 메타데이터를 하나의 데이터로 통합하는 것과 같은, 복수의 물을 하나로 통합하는 것을 의미하고, 상술의 「관련짓는다」의 하나의 방법을 의미한다.
또한, 본 기술의 실시 형태는, 상술한 실시 형태에 한정되는 것은 아니라, 본 기술의 요지를 일탈하지 않는 범위에 있어서 다양한 변경이 가능하다.
예를 들어, 본 명세서에 있어서, 시스템이란, 복수의 구성 요소(장치, 모듈(부품) 등)의 집합을 의미하고, 모든 구성 요소가 동일 하우징 중에 있는지 여부는 불문한다. 따라서, 별개의 하우징에 수납되고, 네트워크를 통하여 접속되어 있는 복수의 장치, 및 하나의 하우징 중에 복수의 모듈이 수납되어 있는 하나의 장치는, 모두, 시스템이다.
또한, 예를 들어, 하나의 장치(또는 처리부)로서 설명한 구성을 분할하여, 복수의 장치(또는 처리부)로서 구성하도록 해도 된다. 반대로, 이상에 있어서 복수의 장치(또는 처리부)로서 설명한 구성을 통합하여 하나의 장치(또는 처리부)로서 구성되게 해도 된다. 또한, 각 장치(또는 각 처리부)의 구성에 상술한 것 이외의 구성을 부가하도록 해도 물론 된다. 또한, 시스템 전체로서의 구성이나 동작이 실질적으로 동일하다면, 어떤 장치(또는 처리부)의 구성의 일부를 다른 장치(또는 다른 처리부)의 구성에 포함하게 해도 된다.
또한, 예를 들어, 본 기술은, 하나의 기능을, 네트워크를 통하여 복수의 장치에서 분담, 공동하여 처리하는 클라우드 컴퓨팅의 구성을 취할 수 있다.
또한, 예를 들어, 상술한 프로그램은, 임의의 장치에 있어서 실행할 수 있다. 그 경우, 그 장치가, 필요한 기능(기능 블록 등)을 갖고, 필요한 정보를 얻을 수 있게 하면 된다.
또한, 예를 들어, 상술한 흐름도에서 설명한 각 스텝은, 하나의 장치에서 실행하는 외에, 복수의 장치에서 분담하여 실행할 수 있다. 또한, 하나의 스텝에 복수의 처리가 포함되는 경우에는, 그 하나의 스텝에 포함되는 복수의 처리는, 하나의 장치에서 실행하는 외에, 복수의 장치에서 분담하여 실행할 수 있다.
또한, 컴퓨터가 실행하는 프로그램은, 프로그램을 기술하는 스텝의 처리가, 본 명세서에서 설명하는 순서를 따라서 시계열로 실행되게 해도 되고, 병렬로, 또는 호출이 행하여졌을 때 등의 필요한 타이밍에서 개별로 실행되게 해도 된다. 또한, 이 프로그램을 기술하는 스텝의 처리가, 다른 프로그램의 처리와 병렬로 실행되게 해도 되고, 다른 프로그램의 처리와 조합하여 실행되게 해도 된다.
또한, 본 명세서에 있어서 복수 설명한 본 기술은, 모순이 발생하지 않는 한, 각각 독립적으로 단체로 실시할 수 있다. 물론, 임의의 복수의 본 기술을 병용하여 실시할 수도 있다. 예를 들어, 어느 실시 형태에 있어서 설명한 본 기술을, 다른 실시 형태에 있어서 설명한 본 기술과 조합하여 실시할 수도 있다. 또한, 상술한 임의의 본 기술을, 상술하고 있지 않은 다른 기술과 병용하여 실시할 수도 있다.
또한, 본 기술은 이하와 같은 구성도 취할 수 있다.
(1) 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환을 스킵시키는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환도 스킵시키는 제어부
를 구비하는 화상 처리 장치.
(2) 상기 제어부는, 상기 프라이머리 변환의 스킵에 관한 제1 정보가 상기 프라이머리 변환의 스킵을 나타내는 경우, 상기 프라이머리 변환 및 상기 세컨더리 변환을 스킵시키는
(1)에 기재된 화상 처리 장치.
(3) 상기 제어부는, 상기 제1 정보가 상기 프라이머리 변환의 실행을 나타내는 경우, 상기 프라이머리 변환을 실행시켜, 상기 세컨더리 변환의 내용에 관한 제2 정보가 상기 세컨더리 변환의 스킵을 나타낼 때, 상기 세컨더리 변환을 스킵시키는
(1) 또는 (2)에 기재된 화상 처리 장치.
(4) 상기 프라이머리 변환은 직교 변환인
(1) 내지 (3) 중 어느 하나에 기재된 화상 처리 장치.
(5) 상기 세컨더리 변환은,
상기 프라이머리 변환 계수를 1차원의 벡터로 변환하고,
상기 1차원의 벡터에 대한 행렬 연산을 행하고,
상기 행렬 연산이 행하여진 상기 1차원의 벡터의 스케일링을 행하고,
스케일링된 상기 1차원의 벡터를 행렬화하는
변환 처리인
(1) 내지 (4) 중 어느 하나에 기재된 화상 처리 장치.
(6) 상기 제어부의 제어에 따라서 상기 프라이머리 변환을 행하는 프라이머리 변환부와,
상기 제어부의 제어에 따라서 상기 세컨더리 변환을 행하는 세컨더리 변환부
를 더 구비하는 (1) 내지 (5) 중 어느 하나에 기재된 화상 처리 장치.
(7) 상기 세컨더리 변환부에 의해 상기 프라이머리 변환 계수가 상기 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수 또는 상기 예측 잔차에 대하여 양자화를 행하는 양자화부와,
상기 양자화부에 의해 상기 세컨더리 변환 계수 또는 상기 예측 잔차가 양자화되어서 얻어지는 양자화 변환 계수 레벨을 부호화하는 부호화부
를 더 구비하는 (1) 내지 (6) 중 어느 하나에 기재된 화상 처리 장치.
(8) 상기 제어부는, 상기 프라이머리 변환의 스킵에 관한 제1 정보가 상기 프라이머리 변환의 스킵을 나타내는 경우, 상기 프라이머리 변환 및 상기 세컨더리 변환을 스킵시키고,
상기 양자화부는, 상기 예측 잔차에 대하여 양자화를 행하고,
상기 부호화부는, 상기 양자화 변환 계수 레벨 및 상기 제1 정보를 부호화하고, 상기 양자화 변환 계수 레벨의 부호화 데이터 및 상기 제1 정보의 부호화 데이터를 포함하는 비트 스트림을 생성하는
(1) 내지 (7) 중 어느 하나에 기재된 화상 처리 장치.
(9) 상기 예측 화상을 생성하는 예측부를 더 구비하는
(1) 내지 (8) 중 어느 하나에 기재된 화상 처리 장치.
(10) 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환을 스킵시키는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환도 스킵시키는
화상 처리 방법.
(11) 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환을 스킵시키는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환도 스킵시키는 제어부
를 구비하는 화상 처리 장치.
(12) 상기 제어부는, 상기 역프라이머리 변환의 스킵에 관한 제1 정보가 상기 역프라이머리 변환의 스킵을 나타내는 경우, 상기 역프라이머리 변환 및 상기 역세컨더리 변환을 스킵시키는
(11)에 기재된 화상 처리 장치.
(13) 상기 제어부는, 상기 제1 정보가 상기 역프라이머리 변환의 실행을 나타내고, 또한, 상기 역세컨더리 변환의 내용에 관한 제2 정보가 상기 역세컨더리 변환의 스킵을 나타내는 경우, 상기 역세컨더리 변환을 스킵시켜서, 상기 역프라이머리 변환을 실행시키는
(11) 또는 (12)에 기재된 화상 처리 장치.
(14) 상기 역프라이머리 변환은 역직교 변환인
(11) 내지 (13) 중 어느 하나에 기재된 화상 처리 장치.
(15) 상기 역세컨더리 변환은,
부호화 데이터가 복호되어, 역양자화되어서 얻어지는 세컨더리 변환 계수를 1차원의 벡터로 변환하고,
상기 1차원의 벡터에 대한 행렬 연산을 행하고,
상기 행렬 연산이 행하여진 상기 1차원의 벡터의 스케일링을 행하고,
스케일링된 상기 1차원의 벡터를 행렬화하는
변환 처리인
(11) 내지 (14) 중 어느 하나에 기재된 화상 처리 장치.
(16) 상기 제어부의 제어에 따라서 상기 역프라이머리 변환을 행하는 역프라이머리 변환부와,
상기 제어부의 제어에 따라서 상기 역세컨더리 변환을 행하는 역세컨더리 변환부
를 더 구비하는 (11) 내지 (15) 중 어느 하나에 기재된 화상 처리 장치.
(17) 부호화 데이터를 복호하는 복호부와,
상기 복호부에 의해 상기 부호화 데이터가 복호되어서 얻어지는 양자화 변환 계수 레벨을 역양자화하는 역양자화부
를 더 구비하고,
상기 역세컨더리 변환부는, 상기 역양자화부에 의해 상기 양자화 변환 계수 레벨이 역양자화되어서 얻어지는 세컨더리 변환 계수에 대하여 상기 역세컨더리 변환을 행하고,
상기 역프라이머리 변환부는, 상기 역세컨더리 변환부에 의해 상기 세컨더리 변환 계수가 상기 역세컨더리 변환되어서 얻어지는 상기 프라이머리 변환 계수에 대하여 상기 역프라이머리 변환을 행하는
(11) 내지 (16) 중 어느 하나에 기재된 화상 처리 장치.
(18) 상기 복호부는, 비트 스트림으로부터, 상기 양자화 변환 계수 레벨의 부호화 데이터와, 상기 역프라이머리 변환의 스킵에 관한 제1 정보의 부호화 데이터를 취득하여 복호하고,
상기 제어부는, 상기 복호부에 의해 복호되어서 얻어지는 상기 제1 정보가 상기 프라이머리 변환의 스킵을 나타내는 경우, 상기 역프라이머리 변환 및 상기 역세컨더리 변환을 스킵시키는
(11) 내지 (17) 중 어느 하나에 기재된 화상 처리 장치.
(19) 상기 예측 화상을 생성하는 예측부를 더 구비하는
(11) 내지 (18) 중 어느 하나에 기재된 화상 처리 장치.
(20) 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환을 스킵시키는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환도 스킵시키는
화상 처리 방법.
(21) 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대하여 세컨더리 변환이 행하여지는 경우, 상기 프라이머리 변환의 스킵에 관한 제1 정보의 부호화를 스킵하는 부호화부
를 구비하는 화상 처리 장치.
(22) 상기 부호화부는, 상기 세컨더리 변환의 내용에 관한 제2 정보가 상기 세컨더리 변환의 실행을 나타내는 경우, 상기 제1 정보의 부호화를 스킵하는
(21)에 기재된 화상 처리 장치.
(23) 상기 부호화부는,
상기 프라이머리 변환, 상기 세컨더리 변환, 및 상기 프라이머리 변환 계수가 상기 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수에 대한 양자화의 스킵에 관한 제3 정보가 상기 프라이머리 변환, 상기 세컨더리 변환, 및 상기 양자화의 실행을 나타내고,
상기 제2 정보가 상기 세컨더리 변환의 스킵을 나타내고,
상기 프라이머리 변환의 스킵 허가에 관한 제4 정보가 상기 프라이머리 변환의 스킵 허가를 나타내고,
또한, 처리 대상의 변환 블록의 사이즈가, 상기 프라이머리 변환의 스킵이 허가되는 변환 블록의 최대 사이즈 이하인 경우,
상기 제1 정보를 부호화하는
(21) 또는 (22)에 기재된 화상 처리 장치.
(24) 상기 프라이머리 변환은 직교 변환인
(21) 내지 (23) 중 어느 하나에 기재된 화상 처리 장치.
(25) 상기 세컨더리 변환은,
상기 프라이머리 변환 계수를 1차원의 벡터로 변환하고,
상기 1차원의 벡터에 대한 행렬 연산을 행하고,
상기 행렬 연산이 행하여진 상기 1차원의 벡터의 스케일링을 행하고,
스케일링된 상기 1차원의 벡터를 행렬화하는
변환 처리인
(21) 내지 (24) 중 어느 하나에 기재된 화상 처리 장치.
(26) 상기 프라이머리 변환을 행하는 프라이머리 변환부와,
상기 세컨더리 변환을 행하는 세컨더리 변환부와,
상기 세컨더리 변환부에 의해 상기 프라이머리 변환 계수가 상기 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수 또는 상기 예측 잔차에 대하여 양자화를 행하는 양자화부
를 더 구비하고,
상기 부호화부는, 상기 양자화부에 의해 상기 세컨더리 변환 계수 또는 상기 예측 잔차가 양자화되어서 얻어지는 양자화 변환 계수 레벨을 부호화하여, 상기 양자화 변환 계수 레벨의 부호화 데이터를 포함하는 비트 스트림을 생성하는
(21) 내지 (25) 중 어느 하나에 기재된 화상 처리 장치.
(27) 상기 부호화부는, 상기 제1 정보의 부호화를 행하는 경우, 또한, 상기 제1 정보를 부호화하고, 생성한 상기 제1 정보의 부호화 데이터를 상기 비트 스트림에 포함하는
(21) 내지 (26) 중 어느 하나에 기재된 화상 처리 장치.
(28) 상기 부호화부는, 또한, 상기 세컨더리 변환의 내용에 관한 제2 정보를 부호화하고, 생성한 상기 제2 정보의 부호화 데이터를 상기 비트 스트림에 포함하는
(21) 내지 (27) 중 어느 하나에 기재된 화상 처리 장치.
(29) 상기 예측 화상을 생성하는 예측부를 더 구비하는
(21) 내지 (28) 중 어느 하나에 기재된 화상 처리 장치.
(30) 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대하여 세컨더리 변환이 행하여지는 경우, 상기 프라이머리 변환의 스킵에 관한 제1 정보의 부호화를 스킵하는
화상 처리 방법.
(31) 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환이 행하여지는 경우, 상기 프라이머리 변환의 역변환인 역프라이머리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는 복호부를 구비하는
화상 처리 장치.
(32) 상기 복호부는, 상기 역세컨더리 변환의 내용에 관한 제2 정보가 상기 역세컨더리 변환의 실행을 나타내는 경우, 상기 제1 정보의 부호화 데이터의 복호를 스킵하는
(31)에 기재된 화상 처리 장치.
(33) 상기 복호부는, 상기 제1 정보의 부호화 데이터의 복호를 스킵하는 경우, 상기 제1 정보가 상기 역프라이머리 변환의 실행을 나타낸다고 추정하는
(31) 또는 (32)에 기재된 화상 처리 장치.
(34) 상기 복호부는,
상기 역프라이머리 변환, 상기 역세컨더리 변환, 및 부호화 데이터가 복호되어서 얻어지는 양자화 변환 계수 레벨에 대한 역양자화의 스킵에 관한 제3 정보가 상기 역프라이머리 변환, 상기 역세컨더리 변환, 및 상기 역양자화의 실행을 나타내고,
상기 제2 정보가 상기 역세컨더리 변환의 스킵을 나타내고,
상기 역프라이머리 변환의 스킵 허가에 관한 제4 정보가 상기 역프라이머리 변환의 스킵 허가를 나타내고,
또한, 처리 대상의 변환 블록의 사이즈가, 상기 역프라이머리 변환의 스킵이 허가되는 변환 블록의 최대 사이즈 이하인 경우,
상기 제1 정보의 부호화 데이터를 복호하는
(31) 내지 (33) 중 어느 하나에 기재된 화상 처리 장치.
(35) 상기 복호부는, 또한, 양자화 변환 계수 레벨의 부호화 데이터를 복호하도록 구성되고,
상기 복호부에 의해 상기 부호화 데이터가 복호되어서 얻어지는 상기 양자화 변환 계수 레벨을 역양자화하는 역양자화부를 더 구비하는
(31) 내지 (34) 중 어느 하나에 기재된 화상 처리 장치.
(36) 상기 역세컨더리 변환을 행하는 역세컨더리 변환부와,
상기 역프라이머리 변환을 행하는 역프라이머리 변환부
를 더 구비하는 (31) 내지 (35) 중 어느 하나에 기재된 화상 처리 장치.
(37) 상기 역프라이머리 변환은 역직교 변환인
(31) 내지 (36) 중 어느 하나에 기재된 화상 처리 장치.
(38) 상기 역세컨더리 변환은,
부호화 데이터가 복호되어, 역양자화되어서 얻어지는 세컨더리 변환 계수를 1차원의 벡터로 변환하고,
상기 1차원의 벡터에 대한 행렬 연산을 행하고,
상기 행렬 연산이 행하여진 상기 1차원의 벡터의 스케일링을 행하고,
스케일링된 상기 1차원의 벡터를 행렬화하는
변환 처리인
(31) 내지 (37) 중 어느 하나에 기재된 화상 처리 장치.
(39) 상기 예측 화상을 생성하는 예측부를 더 구비하는
(31) 내지 (38) 중 어느 하나에 기재된 화상 처리 장치.
(40) 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환이 행하여지는 경우, 상기 프라이머리 변환의 역변환인 역프라이머리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는
화상 처리 방법.
(41) 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환이 스킵되는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 스킵에 관한 제1 정보의 부호화를 스킵하는 부호화부
를 구비하는 화상 처리 장치.
(42) 상기 부호화부는, 상기 프라이머리 변환의 스킵에 관한 제2 정보가 상기 프라이머리 변환의 스킵을 나타내는 경우, 상기 제1 정보의 부호화를 스킵하는
(41)에 기재된 화상 처리 장치.
(43) 상기 부호화부는,
상기 세컨더리 변환의 허가에 관한 제3 정보가 상기 세컨더리 변환의 허가를 나타내고,
상기 프라이머리 변환, 상기 세컨더리 변환, 및 상기 프라이머리 변환 계수가 상기 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수에 대한 양자화의 스킵에 관한 제4 정보가 상기 프라이머리 변환, 상기 세컨더리 변환, 및 상기 양자화의 실행을 나타내고,
상기 제2 정보가 상기 프라이머리 변환의 실행을 나타내고,
또한, 처리 대상의 변환 블록 내의 비제로 계수의 총 수가 소정의 역치 이상일 경우,
상기 제1 정보를 부호화하는
(41) 또는 (42)에 기재된 화상 처리 장치.
(44) 상기 프라이머리 변환은 직교 변환인
(41) 내지 (43) 중 어느 하나에 기재된 화상 처리 장치.
(45) 상기 세컨더리 변환은,
상기 프라이머리 변환 계수를 1차원의 벡터로 변환하고,
상기 1차원의 벡터에 대한 행렬 연산을 행하고,
상기 행렬 연산이 행하여진 상기 1차원의 벡터의 스케일링을 행하고,
스케일링된 상기 1차원의 벡터를 행렬화하는
변환 처리인
(41) 내지 (44) 중 어느 하나에 기재된 화상 처리 장치.
(46) 상기 프라이머리 변환을 행하는 프라이머리 변환부와,
상기 세컨더리 변환을 행하는 세컨더리 변환부와,
상기 세컨더리 변환부에 의해 상기 프라이머리 변환 계수가 상기 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수 또는 상기 예측 잔차에 대하여 양자화를 행하는 양자화부
를 더 구비하고,
상기 부호화부는, 상기 양자화부에 의해 상기 세컨더리 변환 계수 또는 상기 예측 잔차가 양자화되어서 얻어지는 양자화 변환 계수 레벨을 부호화하여, 상기 양자화 변환 계수 레벨의 부호화 데이터를 포함하는 비트 스트림을 생성하는
(41) 내지 (45) 중 어느 하나에 기재된 화상 처리 장치.
(47) 상기 부호화부는, 상기 제1 정보의 부호화를 행하는 경우, 또한, 상기 제1 정보를 부호화하고, 생성한 상기 제1 정보의 부호화 데이터를 상기 비트 스트림에 포함하는
(41) 내지 (46) 중 어느 하나에 기재된 화상 처리 장치.
(48) 상기 부호화부는, 상기 프라이머리 변환의 스킵에 관한 제2 정보의 부호화를 행하는 경우, 또한, 상기 제2 정보를 부호화하고, 생성한 상기 제2 정보의 부호화 데이터를 상기 비트 스트림에 포함하는
(41) 내지 (47) 중 어느 하나에 기재된 화상 처리 장치.
(49) 상기 예측 화상을 생성하는 예측부를 더 구비하는
(41) 내지 (48) 중 어느 하나에 기재된 화상 처리 장치.
(50) 상기 복호부는, 상기 역프라이머리 변환 및 상기 역세컨더리 변환의 변환 블록의 수평 방향의 사이즈 및 수직 방향의 사이즈에 기초하여, 상기 역프라이머리 변환의 스킵에 관한 역프라이머리 변환 스킵 정보의 복호를 스킵하도록
구성된
(41) 내지 (49) 중 어느 하나에 기재된 화상 처리 장치.
(51) 상기 복호부는, 상기 변환 블록의 수평 방향 및 수직 방향의 사이즈 중 큰 쪽이 소정값보다 큰 경우, 상기 역프라이머리 변환 스킵 정보의 복호를 스킵하도록
구성된
(50)에 기재된 화상 처리 장치.
(52) 상기 복호부는, 상기 변환 블록의 수평 방향과 수직 방향의 사이즈의 합 또는 곱이 소정값보다 큰 경우, 상기 역프라이머리 변환 스킵 정보의 복호를 스킵하도록
구성된
(50)에 기재된 화상 처리 장치.
(53) 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환이 스킵되는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 스킵에 관한 제1 정보의 부호화를 스킵하는
화상 처리 방법.
(54) 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환이 스킵되는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는 복호부
를 구비하는 화상 처리 장치.
(55) 상기 복호부는, 상기 역프라이머리 변환의 스킵에 관한 제2 정보가 상기 역프라이머리 변환의 스킵을 나타내는 경우, 상기 제1 정보의 부호화 데이터의 복호를 스킵하는
(54)에 기재된 화상 처리 장치.
(56) 상기 복호부는, 상기 제1 정보의 부호화 데이터의 복호를 스킵하는 경우, 상기 제1 정보가 상기 역세컨더리 변환의 스킵을 나타낸다고 추정하는
(54) 또는 (55)에 기재된 화상 처리 장치.
(57) 상기 복호부는,
상기 역세컨더리 변환의 허가에 관한 제3 정보가 상기 역세컨더리 변환의 허가를 나타내고,
상기 역프라이머리 변환, 상기 역세컨더리 변환, 및 부호화 데이터가 복호되어서 얻어지는 양자화 변환 계수 레벨에 대한 역양자화의 스킵에 관한 제4 정보가 상기 프라이머리 변환, 상기 세컨더리 변환, 및 상기 양자화의 실행을 나타내고,
상기 제2 정보가 상기 프라이머리 변환의 실행을 나타내고,
또한, 처리 대상의 변환 블록 내의 비제로 계수의 총 수가 소정의 역치 이상일 경우,
상기 제1 정보의 부호화 데이터를 복호하는
(54) 내지 (56) 중 어느 하나에 기재된 화상 처리 장치.
(58) 상기 복호부는, 또한, 양자화 변환 계수 레벨의 부호화 데이터를 복호하도록 구성되고,
상기 복호부에 의해 상기 부호화 데이터가 복호되어서 얻어지는 상기 양자화 변환 계수 레벨을 역양자화하는 역양자화부를 더 구비하는
(54) 내지 (57) 중 어느 하나에 기재된 화상 처리 장치.
(59) 상기 역세컨더리 변환을 행하는 역세컨더리 변환부와,
상기 역프라이머리 변환을 행하는 역프라이머리 변환부
를 더 구비하는 (54) 내지 (58) 중 어느 하나에 기재된 화상 처리 장치.
(60) 상기 역프라이머리 변환은 역직교 변환인
(54) 내지 (59) 중 어느 하나에 기재된 화상 처리 장치.
(61) 상기 역세컨더리 변환은,
부호화 데이터가 복호되어, 역양자화되어서 얻어지는 세컨더리 변환 계수를 1차원의 벡터로 변환하고,
상기 1차원의 벡터에 대한 행렬 연산을 행하고,
상기 행렬 연산이 행하여진 상기 1차원의 벡터의 스케일링을 행하고,
스케일링된 상기 1차원의 벡터를 행렬화하는
변환 처리인
(54) 내지 (60) 중 어느 하나에 기재된 화상 처리 장치.
(62) 상기 예측 화상을 생성하는 예측부를 더 구비하는
(54) 내지 (61) 중 어느 하나에 기재된 화상 처리 장치.
(63) 상기 복호부는, 상기 역프라이머리 변환 및 상기 역세컨더리 변환의 변환 블록의 수평 방향의 사이즈 및 수직 방향의 사이즈에 기초하여, 상기 역프라이머리 변환의 스킵에 관한 역프라이머리 변환 스킵 정보의 복호를 스킵하도록
구성된
(54) 내지 (62) 중 어느 하나에 기재된 화상 처리 장치.
(64) 상기 복호부는, 상기 변환 블록의 수평 방향 및 수직 방향의 사이즈 중 큰 쪽이 소정값보다 큰 경우, 상기 역프라이머리 변환 스킵 정보의 복호를 스킵하도록
구성된
(63)에 기재된 화상 처리 장치.
(65) 상기 복호부는, 상기 변환 블록의 수평 방향과 수직 방향의 사이즈의 합 또는 곱이 소정값보다 큰 경우, 상기 역프라이머리 변환 스킵 정보의 복호를 스킵하도록
구성된
(63)에 기재된 화상 처리 장치.
(66) 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환이 스킵되는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는
화상 처리 방법.
(67) 처리 대상의 변환 블록에 포함되는 비제로 계수의 수의, 서브블록 단위의 평균값이 역치보다 적은 경우, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 스킵에 관한 제1 정보의 부호화를 스킵하는 부호화부
를 구비하는 화상 처리 장치.
(68) 상기 부호화부는, 처리 대상의 변환 블록에 포함되는 상기 비제로 계수의 총 수를 구하고, 상기 총 수를 상기 변환 블록의 서브블록수로 제산함으로써, 상기 평균값을 구하는
(67)에 기재된 화상 처리 장치.
(69) 상기 부호화부는,
상기 세컨더리 변환의 허가에 관한 제2 정보가 상기 세컨더리 변환의 허가를 나타내고,
상기 프라이머리 변환, 상기 세컨더리 변환, 및 상기 프라이머리 변환 계수가 상기 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수에 대한 양자화의 스킵에 관한 제3 정보가 상기 프라이머리 변환, 상기 세컨더리 변환, 및 상기 양자화의 실행을 나타내고,
상기 프라이머리 변환의 스킵에 관한 제4 정보가 상기 프라이머리 변환의 실행을 나타내고,
또한, 상기 평균값이 상기 역치 이상일 경우,
상기 제1 정보를 부호화하는
(67) 또는 (68)에 기재된 화상 처리 장치.
(70) 상기 프라이머리 변환은 직교 변환인
(67) 내지 (69) 중 어느 하나에 기재된 화상 처리 장치.
(71) 상기 세컨더리 변환은,
상기 프라이머리 변환 계수를 1차원의 벡터로 변환하고,
상기 1차원의 벡터에 대한 행렬 연산을 행하고,
상기 행렬 연산이 행하여진 상기 1차원의 벡터의 스케일링을 행하고,
스케일링된 상기 1차원의 벡터를 행렬화하는
변환 처리인
(67) 내지 (70) 중 어느 하나에 기재된 화상 처리 장치.
(72) 상기 프라이머리 변환을 행하는 프라이머리 변환부와,
상기 세컨더리 변환을 행하는 세컨더리 변환부
를 더 구비하는 (67) 내지 (71) 중 어느 하나에 기재된 화상 처리 장치.
(73) 상기 세컨더리 변환부에 의해 상기 프라이머리 변환 계수가 상기 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수 또는 상기 예측 잔차에 대하여 양자화를 행하는 양자화부
를 더 구비하고,
상기 부호화부는, 상기 양자화부에 의해 상기 세컨더리 변환 계수 또는 상기 예측 잔차가 양자화되어서 얻어지는 양자화 변환 계수 레벨을 부호화하여, 상기 양자화 변환 계수 레벨의 부호화 데이터를 포함하는 비트 스트림을 생성하는
(67) 내지 (72) 중 어느 하나에 기재된 화상 처리 장치.
(74) 상기 부호화부는, 상기 제1 정보의 부호화를 행하는 경우, 또한, 상기 제1 정보를 부호화하고, 생성한 상기 제1 정보의 부호화 데이터를 상기 비트 스트림에 포함하는
(67) 내지 (73) 중 어느 하나에 기재된 화상 처리 장치.
(75) 상기 예측 화상을 생성하는 예측부를 더 구비하는
(67) 내지 (74) 중 어느 하나에 기재된 화상 처리 장치.
(76) 처리 대상의 변환 블록에 포함되는 비제로 계수의 수의, 서브블록 단위의 평균값이 역치보다 적은 경우, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 스킵에 관한 제1 정보의 부호화를 스킵하는
화상 처리 방법.
(77) 처리 대상의 변환 블록에 포함되는 비제로 계수의 수의, 서브블록 단위의 평균값이 역치보다 적은 경우, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는 복호부
를 구비하는 화상 처리 장치.
(78) 상기 복호부는, 처리 대상의 변환 블록에 포함되는 상기 비제로 계수의 총 수를 구하고, 상기 총 수를 상기 변환 블록의 서브블록수로 제산함으로써, 상기 평균값을 구하는
(77)에 기재된 화상 처리 장치.
(79) 상기 복호부는, 상기 제1 정보의 부호화 데이터의 복호를 스킵하는 경우, 상기 제1 정보가 상기 역세컨더리 변환의 스킵을 나타낸다고 추정하는
(77) 또는 (78)에 기재된 화상 처리 장치.
(80) 상기 복호부는,
상기 세컨더리 변환의 허가에 관한 제2 정보가 상기 세컨더리 변환의 허가를 나타내고,
상기 프라이머리 변환, 상기 세컨더리 변환, 및 상기 프라이머리 변환 계수가 상기 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수에 대한 양자화의 스킵에 관한 제3 정보가 상기 프라이머리 변환, 상기 세컨더리 변환, 및 상기 양자화의 실행을 나타내고,
상기 프라이머리 변환의 스킵에 관한 제4 정보가 상기 프라이머리 변환의 실행을 나타내고,
또한, 상기 평균값이 상기 역치 이상일 경우,
상기 제1 정보의 부호화 데이터를 복호하는
(77) 내지 (79) 중 어느 하나에 기재된 화상 처리 장치.
(81) 상기 복호부는, 또한, 양자화 변환 계수 레벨의 부호화 데이터를 복호하도록 구성되고,
상기 복호부에 의해 상기 부호화 데이터가 복호되어서 얻어지는 상기 양자화 변환 계수 레벨을 역양자화하는 역양자화부를 더 구비하는
(77) 내지 (80) 중 어느 하나에 기재된 화상 처리 장치.
(82) 상기 역세컨더리 변환을 행하는 역세컨더리 변환부와,
상기 역프라이머리 변환을 행하는 역프라이머리 변환부
를 더 구비하는 (77) 내지 (81) 중 어느 하나에 기재된 화상 처리 장치.
(83) 상기 역프라이머리 변환은 역직교 변환인
(77) 내지 (82) 중 어느 하나에 기재된 화상 처리 장치.
(84) 상기 역세컨더리 변환은,
부호화 데이터가 복호되어, 역양자화되어서 얻어지는 세컨더리 변환 계수를 1차원의 벡터로 변환하고,
상기 1차원의 벡터에 대한 행렬 연산을 행하고,
상기 행렬 연산이 행하여진 상기 1차원의 벡터의 스케일링을 행하고,
스케일링된 상기 1차원의 벡터를 행렬화하는
변환 처리인
(77) 내지 (83) 중 어느 하나에 기재된 화상 처리 장치.
(85) 상기 예측 화상을 생성하는 예측부를 더 구비하는
(77) 내지 (84) 중 어느 하나에 기재된 화상 처리 장치.
(86) 처리 대상의 변환 블록에 포함되는 비제로 계수의 수, 서브블록 단위의 평균값이 역치보다 적은 경우, 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차가 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환의 스킵에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는
화상 처리 방법.
(87) 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환, 및 상기 프라이머리 변환 계수가 상기 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수에 대한 양자화가 스킵되는 경우, 상기 프라이머리 변환의 내용을 나타내는 제1 정보의 부호화를 스킵하는 부호화부
를 구비하는 화상 처리 장치.
(88) 상기 부호화부는, 상기 프라이머리 변환, 상기 세컨더리 변환, 및 상기 양자화의 스킵에 관한 제2 정보가 상기 프라이머리 변환, 상기 세컨더리 변환, 및 상기 양자화의 스킵을 나타내는 경우, 상기 제1 정보의 부호화를 스킵하는
(87)에 기재된 화상 처리 장치.
(89) 상기 부호화부는,
상기 프라이머리 변환의 허가에 관한 제3 정보가 상기 프라이머리 변환의 허가를 나타내고,
상기 제2 정보가 상기 프라이머리 변환, 상기 세컨더리 변환, 및 상기 양자화의 실행을 나타내고,
상기 프라이머리 변환의 스킵에 관한 제4 정보가 상기 프라이머리 변환의 실행을 나타내고,
또한, 처리 대상의 변환 블록 내의 비제로 계수의 총 수가 소정의 역치 이상일 경우,
상기 제1 정보를 부호화하는
(87) 또는 (88)에 기재된 화상 처리 장치.
(90) 상기 부호화부는, 상기 제1 정보를, 트렁케이티드 유너리 2치화를 사용하여 2치화하고, 부호화하는
(87) 내지 (89) 중 어느 하나에 기재된 화상 처리 장치.
(91) 상기 부호화부는, 상기 제1 정보의 값을 상기 화상의 예측 모드에 따른 값으로 설정하는
(87) 내지 (90) 중 어느 하나에 기재된 화상 처리 장치.
(92) 상기 부호화부는, 상기 화상의 예측이 인터 예측인 경우, 상기 제1 정보의 값을, 상기 제1 정보의 최댓값으로부터 상기 제1 정보의 값을 감산한 값으로 변경하는
(87) 내지 (91) 중 어느 하나에 기재된 화상 처리 장치.
(93) 상기 부호화부는, 2치화한 상기 제1 정보의 선두의 bin을, 컨텍스트를 사용하는 레귤러 모드에서 산술 부호화하고, 나머지 bin을, 컨텍스트를 사용하지 않는 바이패스 모드에서 산술 부호화하는
(87) 내지 (92) 중 어느 하나에 기재된 화상 처리 장치.
(94) 상기 프라이머리 변환은 직교 변환이며,
상기 세컨더리 변환은,
상기 프라이머리 변환 계수를 1차원의 벡터로 변환하고,
상기 1차원의 벡터에 대한 행렬 연산을 행하고,
상기 행렬 연산이 행하여진 상기 1차원의 벡터의 스케일링을 행하고,
스케일링된 상기 1차원의 벡터를 행렬화하는
변환 처리인
(87) 내지 (93) 중 어느 하나에 기재된 화상 처리 장치.
(95) 상기 프라이머리 변환을 행하는 프라이머리 변환부와,
상기 세컨더리 변환을 행하는 세컨더리 변환부와,
상기 세컨더리 변환 계수 또는 상기 예측 잔차에 대하여 양자화를 행하는 양자화부
를 더 구비하고,
상기 부호화부는,
상기 양자화부에 의해 상기 세컨더리 변환 계수 또는 상기 예측 잔차가 양자화되어서 얻어지는 양자화 변환 계수 레벨을 부호화하여, 상기 양자화 변환 계수 레벨의 부호화 데이터를 포함하는 비트 스트림을 생성하고,
상기 제1 정보의 부호화를 행하는 경우, 또한, 상기 제1 정보의 부호화 데이터를 상기 비트 스트림에 포함하는
(87) 내지 (94) 중 어느 하나에 기재된 화상 처리 장치.
(96) 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환, 및 상기 프라이머리 변환 계수가 상기 세컨더리 변환되어서 얻어지는 세컨더리 변환 계수에 대한 양자화가 스킵되는 경우, 상기 프라이머리 변환의 내용을 나타내는 제1 정보의 부호화를 스킵하는
화상 처리 방법.
(97) 부호화 데이터가 복호되어서 얻어지는 양자화 변환 계수 레벨에 대한 역양자화, 상기 양자화 변환 계수 레벨이 상기 역양자화되어서 얻어지는 세컨더리 변환 계수를 프라이머리 변환 계수로 변환하는 역세컨더리 변환, 및 상기 프라이머리 변환 계수를 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차로 변환하는 역프라이머리 변환이 스킵되는 경우, 상기 역프라이머리 변환의 내용에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는 복호부
를 구비하는 화상 처리 장치.
(98) 상기 복호부는, 상기 역양자화, 상기 역세컨더리 변환, 및 상기 역프라이머리 변환의 스킵에 관한 제2 정보가 상기 역양자화, 상기 역세컨더리 변환, 및 상기 역프라이머리 변환의 스킵을 나타내는 경우, 상기 제1 정보의 부호화 데이터의 복호를 스킵하는
(97)에 기재된 화상 처리 장치.
(99) 상기 복호부는, 상기 제1 정보의 부호화 데이터의 복호를 스킵하는 경우, 상기 제1 정보가, 수평 방향의 역프라이머리 변환 및 수직 방향의 역프라이머리 변환에 소정의 직교 변환을 사용하는 것을 나타낸다고 추정하는
(97) 또는 (98)에 기재된 화상 처리 장치.
(100) 상기 복호부는,
상기 역프라이머리 변환의 허가에 관한 제3 정보가 상기 역프라이머리 변환의 허가를 나타내고,
상기 제2 정보가 상기 역양자화, 상기 역세컨더리 변환, 및 상기 역프라이머리 변환의 실행을 나타내고,
상기 역프라이머리 변환의 스킵에 관한 제4 정보가 상기 역프라이머리 변환의 실행을 나타내고,
또한, 처리 대상의 변환 블록 내의 비제로 계수의 총 수가 소정의 역치 이상일 경우,
상기 제1 정보의 부호화 데이터를 복호하는
(97) 내지 (99) 중 어느 하나에 기재된 화상 처리 장치.
(101) 상기 복호부는, 상기 제1 정보의 부호화 데이터를 산술 복호하고, 얻어진 bin을 트렁케이티드 유너리 2치화를 사용하여 다치화하여, 상기 제1 정보를 얻는
(97) 내지 (100) 중 어느 하나에 기재된 화상 처리 장치.
(102) 상기 복호부는, 복호하여 얻어진 상기 제1 정보의 값을 상기 화상의 예측 모드에 따른 값으로 설정하는
(97) 내지 (101) 중 어느 하나에 기재된 화상 처리 장치.
(103) 상기 복호부는, 상기 화상의 예측이 인터 예측인 경우, 상기 제1 정보의 값을, 상기 제1 정보의 최댓값으로부터 상기 제1 정보의 값을 감산한 값으로 변경하는
(97) 내지 (102) 중 어느 하나에 기재된 화상 처리 장치.
(104) 상기 복호부는, 상기 제1 정보의 부호화 데이터의 선두의 bin을, 컨텍스트를 사용하는 레귤러 모드에서 산술 복호하고, 나머지 bin을, 컨텍스트를 사용하지 않는 바이패스 모드에서 산술 복호하는
(97) 내지 (103) 중 어느 하나에 기재된 화상 처리 장치.
(105) 상기 복호부는, 또한, 상기 양자화 변환 계수 레벨의 부호화 데이터를 복호하도록 구성되고,
상기 복호부에 의해 상기 부호화 데이터가 복호되어서 얻어지는 상기 양자화 변환 계수 레벨을 상기 역양자화하는 역양자화부와,
상기 역양자화부에 의해 상기 양자화 변환 계수 레벨이 상기 역양자화되어서 얻어지는 상기 세컨더리 변환 계수에 대하여 상기 역세컨더리 변환을 행하는 역세컨더리 변환부와,
상기 역세컨더리 변환부에 의해 상기 세컨더리 변환 계수가 상기 역세컨더리 변환되어서 얻어지는 상기 프라이머리 변환 계수에 대하여 상기 역프라이머리 변환을 행하는 역프라이머리 변환부
를 더 구비하는 (97) 내지 (104) 중 어느 하나에 기재된 화상 처리 장치.
(106) 부호화 데이터가 복호되어서 얻어지는 양자화 변환 계수 레벨에 대한 역양자화, 상기 양자화 변환 계수 레벨이 상기 역양자화되어서 얻어지는 세컨더리 변환 계수를 프라이머리 변환 계수로 변환하는 역세컨더리 변환, 및 상기 프라이머리 변환 계수를 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차로 변환하는 역프라이머리 변환이 스킵되는 경우, 상기 역프라이머리 변환의 내용에 관한 제1 정보의 부호화 데이터의 복호를 스킵하는
화상 처리 방법.
(111) 화상 데이터로부터 얻어지는 정보를 부호화하고, 상기 화상 데이터에 대한 변환 처리 및 양자화를 스킵하는 경우, 적응 프라이머리 변환을 실시할지 여부를 나타내는 적응 프라이머리 변환 정보의 부호화를 스킵하는 부호화부
를 구비하는 화상 처리 장치.
(112) 상기 부호화부는, 상기 화상 데이터의 휘도 성분에 대한 상기 변환 처리 및 상기 양자화를 스킵하는 경우, 상기 화상 데이터의 휘도 성분에 대한 상기 적응 프라이머리 변환 정보의 부호화를 스킵하는
(111)에 기재된 화상 처리 장치.
(113) 상기 부호화부는, 색성분마다, 상기 적응 프라이머리 변환 정보를 부호화할지 여부를 설정하는
(111)에 기재된 화상 처리 장치.
(114) 상기 부호화부는, 또한, 상기 화상 데이터에 대하여 상기 적응 프라이머리 변환을 실시하는 경우, 상기 화상 데이터에 대한 상기 변환 처리를 스킵할지 여부를 나타내는 변환 스킵 정보의 부호화를 스킵하는
(111) 내지 (113) 중 어느 하나에 기재된 화상 처리 장치.
(115) 상기 부호화부는, 색성분마다, 상기 변환 스킵 정보를 부호화할지 여부를 설정하는
(114)에 기재된 화상 처리 장치.
(116) 상기 부호화부는, 상기 화상 데이터의 휘도 성분에 대한 상기 적응 프라이머리 변환을 실시하는 경우, 상기 화상 데이터의 휘도 성분에 대한 상기 변환 스킵 정보의 부호화를 스킵하는
(114)에 기재된 화상 처리 장치.
(117) 화상 데이터로부터 얻어지는 정보를 부호화하고, 상기 화상 데이터에 대한 변환 처리 및 양자화를 스킵하는 경우, 적응 프라이머리 변환을 실시할지 여부를 나타내는 적응 프라이머리 변환 정보의 부호화를 스킵하는
화상 처리 방법.
(121) 화상 데이터로부터 얻어지는 정보가 부호화된 부호화 데이터를 복호하고, 상기 부호화 데이터 복호된 데이터에 대한 역변환 처리 및 역양자화를 스킵하는 경우, 역적응 프라이머리 변환을 실시할지 여부를 나타내는 역적응 프라이머리 변환 정보의 복호를 스킵하는 복호부
를 구비하는 화상 처리 장치.
(122) 상기 복호부는, 상기 화상 데이터의 휘도 성분에 관한 데이터에 대한 상기 역변환 처리 및 상기 역양자화를 스킵하는 경우, 상기 화상 데이터의 휘도 성분에 관한 데이터에 대한 상기 역적응 프라이머리 변환 정보의 복호를 스킵하는
(121)에 기재된 화상 처리 장치.
(123) 상기 복호부는, 색성분마다, 상기 역적응 프라이머리 변환 정보를 복호할지 여부를 설정하는
(121)에 기재된 화상 처리 장치.
(124) 상기 복호부는, 또한, 상기 데이터에 대하여 상기 역적응 프라이머리 변환을 실시하는 경우, 상기 데이터에 대한 상기 역변환 처리를 스킵할지 여부를 나타내는 역변환 스킵 정보의 복호를 스킵하는
(121) 내지 (123) 중 어느 하나에 기재된 화상 처리 장치.
(125) 상기 복호부는, 색성분마다, 상기 역변환 스킵 정보를 복호할지 여부를 설정하는
(124)에 기재된 화상 처리 장치.
(126) 상기 복호부는, 상기 화상 데이터의 휘도 성분에 관한 데이터에 대한 상기 역적응 프라이머리 변환을 실시하는 경우, 상기 화상 데이터의 휘도 성분에 관한 데이터에 대한 상기 역변환 스킵 정보의 복호를 스킵하는
(124)에 기재된 화상 처리 장치.
(127) 화상 데이터로부터 얻어지는 정보가 부호화된 부호화 데이터를 복호하고, 상기 부호화 데이터 복호된 데이터에 대한 역변환 처리 및 역양자화를 스킵하는 경우, 역적응 프라이머리 변환을 실시할지 여부를 나타내는 역적응 프라이머리 변환 정보의 복호를 스킵하는
화상 처리 방법.
(131) 화상 데이터로부터 얻어지는 정보를 부호화하고, 상기 화상 데이터에 대한 변환 처리 및 양자화를 스킵하는 경우, 상기 화상 데이터에 대한 상기 변환 처리를 스킵할지 여부를 나타내는 변환 스킵 정보의 부호화를 스킵하는 부호화부
를 구비하는 화상 처리 장치.
(132) 상기 부호화부는, 색성분마다, 상기 변환 스킵 정보를 부호화할지 여부를 설정하는
(131)에 기재된 화상 처리 장치.
(133) 상기 부호화부는, 또한, 적응 프라이머리 변환을 실시할지 여부를 나타내는 적응 프라이머리 변환 정보의 부호화를 스킵하는
(131) 또는 (132) 중 어느 하나에 기재된 화상 처리 장치.
(134) 상기 부호화부는, 상기 화상 데이터의 휘도 성분에 대한 상기 적응 프라이머리 변환 정보의 부호화를 스킵하는
(133)에 기재된 화상 처리 장치.
(135) 상기 부호화부는, 색성분마다, 상기 적응 프라이머리 변환 정보를 부호화할지 여부를 설정하는
(133)에 기재된 화상 처리 장치.
(136) 화상 데이터로부터 얻어지는 정보를 부호화하고, 상기 화상 데이터에 대한 변환 처리 및 양자화를 스킵하는 경우, 상기 화상 데이터에 대한 상기 변환 처리를 스킵할지 여부를 나타내는 변환 스킵 정보의 부호화를 스킵하는
화상 처리 방법.
(141) 화상 데이터로부터 얻어지는 정보가 부호화된 부호화 데이터를 복호하고, 상기 부호화 데이터 복호된 데이터에 대한 역변환 처리 및 역양자화를 스킵하는 경우, 상기 부호화 데이터 복호된 데이터에 대한 역변환 처리를 스킵할지 여부를 나타내는 역변환 스킵 정보의 복호를 스킵하는 복호부
를 구비하는 화상 처리 장치.
(142) 상기 복호부는, 색성분마다, 상기 역변환 스킵 정보를 복호할지 여부를 설정하는
(141)에 기재된 화상 처리 장치.
(143) 상기 복호부는, 또한, 역적응 프라이머리 변환을 실시할지 여부를 나타내는 역적응 프라이머리 변환 정보의 복호를 스킵하는
(141) 또는 (142) 중 어느 하나에 기재된 화상 처리 장치.
(144) 상기 복호부는, 상기 화상 데이터의 휘도 성분에 관한 데이터에 대한 상기 역적응 프라이머리 변환 정보의 복호를 스킵하는
(143)에 기재된 화상 처리 장치.
(145) 상기 복호부는, 색성분마다, 상기 역적응 프라이머리 변환 정보를 복호할지 여부를 설정하는
(143)에 기재된 화상 처리 장치.
(146) 화상 데이터로부터 얻어지는 정보가 부호화된 부호화 데이터를 복호하고, 상기 부호화 데이터 복호된 데이터에 대한 역변환 처리 및 역양자화를 스킵하는 경우, 상기 부호화 데이터 복호된 데이터에 대한 역변환 처리를 스킵할지 여부를 나타내는 역변환 스킵 정보의 복호를 스킵하는
화상 처리 방법.
100: 화상 부호화 장치
101: 제어부
111: 연산부
112: 변환부
113: 양자화부
114: 부호화부
115: 역양자화부
116: 역변환부
117: 연산부
118: 프레임 메모리
119: 예측부
131: 스위치
132: 프라이머리 변환부
133: 세컨더리 변환부
141: 래스터라이즈부
142: 행렬 연산부
143: 스케일링부
144: 행렬화부
145: 세컨더리 변환 선택부
200: 화상 복호 장치
211: 복호부
212: 역양자화부
213: 역변환부
214: 연산부
215: 프레임 메모리
216: 예측부
231: 스위치
232: 역세컨더리 변환부
233: 역프라이머리 변환부
241: 래스터라이즈부
242: 행렬 연산부
243: 스케일링부
244: 행렬화부
245: 역세컨더리 변환 선택부
301: 세컨더리 변환 유효 플래그 부호화부
302: 세컨더리 변환 식별자 부호화부
303: 변환 스킵 유효 플래그 부호화부
304: 최대 변환 스킵 블록 사이즈 부호화부
305: 변환 양자화 바이패스 플래그 부호화부
306: 변환 스킵 플래그 부호화부
311: 세컨더리 변환 유효 플래그 복호부
312: 세컨더리 변환 식별자 복호부
313: 변환 스킵 유효 플래그 복호부
314: 최대 변환 스킵 블록 사이즈 복호부
315: 변환 양자화 바이패스 플래그 복호부
316: 변환 스킵 플래그 복호부
321: 세컨더리 변환 플래그 부호화부
331: 세컨더리 변환 플래그 복호부
401: 프라이머리 변환 유효 플래그 부호화부
402: 프라이머리 변환 식별자 부호화부
411: 프라이머리 변환 유효 플래그 복호부
412: 프라이머리 변환 식별자 복호부
461: 변환 스킵 플래그 복호부

Claims (19)

  1. 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환을 스킵시키는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환도 스킵시키는 제어부
    를 구비하는 화상 처리 장치.
  2. 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환을 스킵시키는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환도 스킵시키는
    화상 처리 방법.
  3. 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환을 스킵시키는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환도 스킵시키는 제어부
    를 구비하는 화상 처리 장치.
  4. 화상과 상기 화상의 예측 화상과의 차분인 예측 잔차에 대한 변환 처리인 프라이머리 변환의 역변환인 역프라이머리 변환을 스킵시키는 경우, 상기 예측 잔차가 상기 프라이머리 변환되어서 얻어지는 프라이머리 변환 계수에 대한 변환 처리인 세컨더리 변환의 역변환인 역세컨더리 변환도 스킵시키는
    화상 처리 방법.
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
KR1020187031806A 2016-05-13 2017-03-23 화상 처리 장치 및 방법 KR102397673B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JPJP-P-2016-097170 2016-05-13
JP2016097170 2016-05-13
JP2016114765 2016-06-08
JPJP-P-2016-114765 2016-06-08
PCT/JP2017/011715 WO2017195476A1 (ja) 2016-05-13 2017-03-23 画像処理装置および方法

Publications (2)

Publication Number Publication Date
KR20190006953A KR20190006953A (ko) 2019-01-21
KR102397673B1 true KR102397673B1 (ko) 2022-05-16

Family

ID=60266998

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187031806A KR102397673B1 (ko) 2016-05-13 2017-03-23 화상 처리 장치 및 방법

Country Status (10)

Country Link
US (6) US10595046B2 (ko)
EP (1) EP3454559A4 (ko)
JP (1) JP6822470B2 (ko)
KR (1) KR102397673B1 (ko)
CN (1) CN109076222B9 (ko)
AU (2) AU2017261992A1 (ko)
CA (1) CA3019490A1 (ko)
MX (1) MX2018013461A (ko)
RU (2) RU2733096C2 (ko)
WO (1) WO2017195476A1 (ko)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX2018013461A (es) 2016-05-13 2019-03-28 Sony Corp Aparato y metodo de procesamiento de imagenes.
EP3506638A4 (en) * 2016-08-26 2020-04-08 Sharp Kabushiki Kaisha IMAGE DECRYLING DEVICE, IMAGE ENCRYPTION DEVICE, IMAGE DECRYLING METHOD AND IMAGE ENCRYPTION METHOD
US10779007B2 (en) * 2017-03-23 2020-09-15 Mediatek Inc. Transform coding of video data
JP2019017066A (ja) * 2017-07-03 2019-01-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 符号化装置、復号装置、符号化方法及び復号方法
CN115460403A (zh) * 2017-07-31 2022-12-09 韩国电子通信研究院 对图像编码和解码的方法及存储比特流的计算机可读介质
WO2019069782A1 (ja) * 2017-10-06 2019-04-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US11310517B2 (en) * 2017-12-07 2022-04-19 Electronics And Telecommunications Research Institute Method and apparatus for encoding and decoding using selective information sharing between channels
US10567801B2 (en) * 2018-03-07 2020-02-18 Tencent America LLC Method and apparatus for video coding with primary and secondary transforms
JP7301951B2 (ja) * 2018-04-01 2023-07-03 エルジー エレクトロニクス インコーポレイティド 縮小された2次変換を用いて、ビデオ信号を処理する方法及び装置
CN116781905A (zh) 2018-04-01 2023-09-19 Lg电子株式会社 重构和发送视频信号的方法、对视频信号进行编码的方法
US11533471B2 (en) * 2018-06-22 2022-12-20 Sony Corporation Image processing apparatus and image processing method
WO2020003264A2 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Filtering of zero unit
WO2020003268A2 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Definition of zero unit
US11632557B2 (en) * 2019-01-01 2023-04-18 Lg Electronics Inc. Method and device for decoding video using residual sign related information in video coding system
EP3703376A4 (en) * 2019-01-15 2020-09-02 LG Electronics Inc. -1- METHOD AND DEVICE FOR IMAGE ENCODING USING A TRANSFORM SKIP FLAG
US11159795B2 (en) * 2019-03-04 2021-10-26 Tencent America LLC Max transform size control
EP3915258A4 (en) * 2019-03-08 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. COMMON CODING OF A PALETTE MODE USAGE DISPLAY
US11616966B2 (en) * 2019-04-03 2023-03-28 Mediatek Inc. Interaction between core transform and secondary transform
US11172211B2 (en) * 2019-04-04 2021-11-09 Tencent America LLC Method and apparatus for video coding
CN113711607B (zh) 2019-04-16 2023-10-10 寰发股份有限公司 用适应性次要变换信令编解码视频数据的方法以及装置
EP3949423A4 (en) * 2019-04-16 2023-04-12 HFI Innovation Inc. METHODS AND DEVICES FOR ENCODING VIDEO DATA WITH SECONDARY TRANSFORMATION
WO2020216303A1 (en) 2019-04-23 2020-10-29 Beijing Bytedance Network Technology Co., Ltd. Selective use of secondary transform in coded video
EP3949396A4 (en) 2019-05-10 2022-05-04 Beijing Bytedance Network Technology Co., Ltd. SELECTION OF SECONDARY TRANSFORMATION MATRICES FOR VIDEO PROCESSING
JP7277616B2 (ja) 2019-06-07 2023-05-19 北京字節跳動網絡技術有限公司 ビデオ・データを処理する方法、装置及び記憶媒体
US20230179779A1 (en) * 2019-06-12 2023-06-08 Sony Group Corporation Image processing device and method
WO2020253642A1 (en) * 2019-06-15 2020-12-24 Beijing Bytedance Network Technology Co., Ltd. Block size dependent use of secondary transforms in coded video
BR112021025530A2 (pt) * 2019-06-19 2022-02-01 Lg Electronics Inc Codificação por contexto para informações sobre conjunto de núcleo de transformada em sistema de codificação de imagem
JP7494850B2 (ja) * 2019-06-19 2024-06-04 ソニーグループ株式会社 画像処理装置および方法
KR102211000B1 (ko) * 2019-06-21 2021-02-02 삼성전자주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
EP3989557A4 (en) 2019-06-24 2023-05-24 LG Electronics Inc. METHOD AND APPARATUS FOR ENCODING/DECODING VIDEO USING MAXIMUM SATURATION TRANSFORM BLOCK SIZE LIMITATION, AND BITSTREAM TRANSMISSION METHOD
CN112135148B (zh) * 2019-06-25 2022-05-10 华为技术有限公司 非可分离变换方法以及设备
CN114208183A (zh) 2019-08-03 2022-03-18 北京字节跳动网络技术有限公司 视频的缩减二次变换中基于位置的模式导出
WO2021032045A1 (en) 2019-08-17 2021-02-25 Beijing Bytedance Network Technology Co., Ltd. Context modeling of side information for reduced secondary transforms in video
JP7484923B2 (ja) * 2019-09-06 2024-05-16 ソニーグループ株式会社 画像処理装置および方法
WO2021045188A1 (ja) * 2019-09-06 2021-03-11 ソニー株式会社 画像処理装置および方法
MX2022005833A (es) * 2019-11-22 2022-06-09 Sony Group Corp Dispositivo y metodo de procesamiento de imagenes.
AU2019275552B2 (en) * 2019-12-03 2022-10-13 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a coding tree unit
AU2019275553B2 (en) * 2019-12-03 2022-10-06 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a coding tree unit
MX2022006718A (es) * 2019-12-11 2022-07-12 Sony Group Corp Dispositivo de procesamiento de imagenes, metodo de generacion de flujo de bits, metodo de generacion de datos de coeficiente y metodo de generacion de coeficiente de cuantificacion.
US11438611B2 (en) 2019-12-11 2022-09-06 Hfi Innovation Inc. Method and apparatus of scaling window constraint for worst case bandwidth consideration for reference picture resampling in video coding
EP4109898A4 (en) * 2019-12-30 2023-01-11 Guangdong Oppo Mobile Telecommunications Corp., Ltd. TRANSFORMATION METHOD, ENCODER, DECODER AND STORAGE MEDIUM
EP4087246A4 (en) * 2019-12-31 2023-02-08 Guangdong Oppo Mobile Telecommunications Corp., Ltd. TRANSFORM PROCESS, ENCODER, DECODER, AND STORAGE MEDIA
US11445176B2 (en) * 2020-01-14 2022-09-13 Hfi Innovation Inc. Method and apparatus of scaling window constraint for worst case bandwidth consideration for reference picture resampling in video coding
GB202008299D0 (en) * 2020-06-02 2020-07-15 Imagination Tech Ltd Manipulation of data in a memory
WO2022179414A1 (en) * 2021-02-23 2022-09-01 Beijing Bytedance Network Technology Co., Ltd. Transform and quantization on non-dyadic blocks
WO2023166888A1 (ja) * 2022-03-03 2023-09-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号方法、符号化方法、復号装置及び符号化装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8619853B2 (en) * 2007-06-15 2013-12-31 Qualcomm Incorporated Separable directional transforms
US8634456B2 (en) * 2008-10-03 2014-01-21 Qualcomm Incorporated Video coding with large macroblocks
JP5184447B2 (ja) * 2009-06-22 2013-04-17 株式会社Kddi研究所 動画像符号化装置および復号装置
KR20120046726A (ko) * 2009-08-06 2012-05-10 파나소닉 주식회사 부호화 방법, 복호 방법, 부호화 장치 및 복호 장치
US8948241B2 (en) * 2009-08-07 2015-02-03 Qualcomm Incorporated Signaling characteristics of an MVC operation point
KR101807170B1 (ko) * 2009-11-24 2017-12-08 에스케이 텔레콤주식회사 적응적 2차예측 기반 영상 부호화/복호화 방법, 장치 및 기록 매체
US8885711B2 (en) * 2009-12-17 2014-11-11 Sk Telecom Co., Ltd. Image encoding/decoding method and device
GB2492333B (en) * 2011-06-27 2018-12-12 British Broadcasting Corp Video encoding and decoding using transforms
US20130003856A1 (en) * 2011-07-01 2013-01-03 Samsung Electronics Co. Ltd. Mode-dependent transforms for residual coding with low latency
US9350996B2 (en) * 2011-12-20 2016-05-24 Google Technology Holdings LLC Method and apparatus for last coefficient indexing for high efficiency video coding
KR20130116754A (ko) * 2012-04-16 2013-10-24 주식회사 팬택 엔트로피 부복호화 방법 및 이러한 방법을 사용하는 장치
WO2013187060A1 (ja) * 2012-06-12 2013-12-19 パナソニック株式会社 動画像符号化方法、動画像復号化方法、動画像符号化装置および動画像復号化装置
JP6553349B2 (ja) 2014-11-25 2019-07-31 東都フォルダー工業株式会社 布類自動投入機におけるバッファリング装置
JP2016114765A (ja) 2014-12-15 2016-06-23 富士フイルム株式会社 反射フィルム、光学部材、ディスプレイおよび画像表示装置
US10681379B2 (en) * 2015-09-29 2020-06-09 Qualcomm Incorporated Non-separable secondary transform for video coding with reorganizing
CN109076243B (zh) * 2016-05-04 2022-01-25 夏普株式会社 用于对变换数据进行编码的***和方法
MX2018013461A (es) 2016-05-13 2019-03-28 Sony Corp Aparato y metodo de procesamiento de imagenes.

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
High Efficiency Video coding, H.265(04/2013), ITU-T, 2013-06-07, pp. 1-300*
Jianle chen, et al. Algorithm description of Joint Exploration Test Model 2, Joint Video exploration Team(JVET), JVET-B1001-v3, 2016-03-25, pp. 1-30*

Also Published As

Publication number Publication date
AU2017261992A1 (en) 2018-11-22
CN109076222B (zh) 2021-08-31
JPWO2017195476A1 (ja) 2019-03-22
US20190104322A1 (en) 2019-04-04
JP6822470B2 (ja) 2021-01-27
RU2733096C2 (ru) 2020-09-29
CN109076222B9 (zh) 2021-10-15
US20210329300A1 (en) 2021-10-21
WO2017195476A1 (ja) 2017-11-16
EP3454559A1 (en) 2019-03-13
US11877008B2 (en) 2024-01-16
US20200112747A1 (en) 2020-04-09
CN109076222A (zh) 2018-12-21
US11070841B2 (en) 2021-07-20
US10595046B2 (en) 2020-03-17
RU2018138853A (ru) 2020-05-12
AU2022235590A1 (en) 2022-10-13
KR20190006953A (ko) 2019-01-21
US20240129533A1 (en) 2024-04-18
CA3019490A1 (en) 2017-11-16
US20230117669A1 (en) 2023-04-20
MX2018013461A (es) 2019-03-28
RU2018138853A3 (ko) 2020-07-21
RU2020129092A (ru) 2020-10-05
EP3454559A4 (en) 2019-03-13
US11546635B2 (en) 2023-01-03
US20200112746A1 (en) 2020-04-09
US10869061B2 (en) 2020-12-15

Similar Documents

Publication Publication Date Title
KR102397673B1 (ko) 화상 처리 장치 및 방법
JP7384247B2 (ja) 画像処理装置および方法
JP7167923B2 (ja) 画像処理装置および方法
WO2018061837A1 (ja) 画像処理装置および方法
WO2018173798A1 (ja) 画像処理装置および方法
JP7067487B2 (ja) 画像処理装置および方法
KR102390298B1 (ko) 화상 처리 장치 및 방법
JP2022140610A (ja) 画像処理装置および方法
WO2016147836A1 (ja) 画像処理装置および方法
WO2017126331A1 (ja) 画像処理装置および方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant