KR20140045978A - 오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조 - Google Patents

오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조 Download PDF

Info

Publication number
KR20140045978A
KR20140045978A KR1020147001188A KR20147001188A KR20140045978A KR 20140045978 A KR20140045978 A KR 20140045978A KR 1020147001188 A KR1020147001188 A KR 1020147001188A KR 20147001188 A KR20147001188 A KR 20147001188A KR 20140045978 A KR20140045978 A KR 20140045978A
Authority
KR
South Korea
Prior art keywords
offset
value
pixel
type
depth
Prior art date
Application number
KR1020147001188A
Other languages
English (en)
Other versions
KR101785770B1 (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=47422737&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20140045978(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 샤프 가부시키가이샤 filed Critical 샤프 가부시키가이샤
Publication of KR20140045978A publication Critical patent/KR20140045978A/ko
Application granted granted Critical
Publication of KR101785770B1 publication Critical patent/KR101785770B1/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/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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

적응 오프셋 필터(60)는, 입력 화상의 각 화소값에 오프셋을 가산하는 것이며, 오프셋 타입 지정 정보를 참조하여, 입력 화상의 대상 단위 영역에서의 오프셋 속성을 설정하고, 설정된 오프셋 속성에 포함되는 오프셋값 영역에 따른 비트 폭을 갖는 오프셋을 복호하여, 상기 입력 화상의 각 화소값에 상기 오프셋을 가산한다.

Description

오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조{OFFSET DECODING DEVICE, OFFSET ENCODING DEVICE, IMAGE FILTER DEVICE, AND DATA STRUCTURE}
본 발명은, 화상의 필터링을 행하는 화상 필터 장치에 관한 것이다. 또한, 화상 필터에 의해 참조되는 오프셋을 복호하는 오프셋 복호 장치 및 화상 필터에 의해 참조되는 오프셋을 부호화하는 오프셋 부호화 장치에 관한 것이다. 또한, 부호화 데이터의 데이터 구조에 관한 것이다.
동화상을 효율적으로 전송 또는 기록하기 위해서, 동화상을 부호화함으로써 부호화 데이터를 생성하는 동화상 부호화 장치(부호화 장치) 및 당해 부호화 데이터를 복호함으로써 복호 화상을 생성하는 동화상 복호 장치(복호 장치)가 사용되고 있다. 구체적인 동화상 부호화 방식으로서는, 예를 들어 H.264/MPEG-4.AVC에 채용되어 있는 방식, VCEG(Video Coding Expert Group)에서의 공동 개발용 코덱인 KTA 소프트웨어에 채용되어 있는 방식, 그 후계 코덱인 TMuC(Test Model under Consideration) 소프트웨어에 채용되어 있는 방식 및 HM(HEVC Test Model) 소프트웨어에 채용되어 있는 방식 등을 들 수 있다.
이러한 부호화 방식에 있어서, 동화상을 구성하는 화상(픽처)은, 화상을 분할함으로써 얻어지는 슬라이스, 슬라이스를 분할함으로써 얻어지는 최대 부호화 단위(LCU: Largest Coding Unit, 트리 블록이라고도 불림), 최대 부호화 단위를 분할함으로써 얻어지는 부호화 단위(CU: Coding Unit, 부호화 노드라고도 불림) 및 부호화 단위를 분할함으로써 얻어지는 블록 및 파티션을 포함하는 계층 구조에 의해 관리되며, 대부분의 경우, 블록을 최소 단위로 해서 부호화된다.
또한, 이러한 부호화 방식에서는, 통상, 입력 화상을 부호화/복호화함으로써 얻어지는 국소 복호 화상에 기초하여 예측 화상이 생성되고, 당해 예측 화상과 입력 화상의 차분 데이터가 부호화된다. 또한, 예측 화상의 생성 방법으로서는, 화면간 예측(인터 예측) 및 화면내 예측(인트라 예측)이라 불리는 방법이 알려져 있다.
인트라 예측에서는, 동일 프레임 내의 국소 복호 화상에 기초하여, 당해 프레임에서의 예측 화상이 순차 생성된다. 구체적으로는, 인트라 예측에서는, 통상, 예측 단위(예를 들어, 블록)마다, 미리 정해진 예측 방향(예측 모드)군에 포함되는 예측 방향으로부터 어느 하나의 예측 방향이 선택됨과 함께, 국소 복호 화상에서의 참조 화소의 화소값을, 선택된 예측 방향에 외부 삽입함으로써, 예측 대상 영역 상의 예측 화소값이 생성된다. 또한, 인터 예측에서는, 프레임 전체가 복호된 참조 프레임(복호 화상) 내의 참조 화상에 대하여 움직임 벡터를 사용한 움직임 보상을 적용함으로써, 예측 대상 프레임 내의 예측 화상이 예측 단위(예를 들어, 블록)마다 생성된다.
비특허문헌 1 및 비특허문헌 2에는, 복호 화상의 블록 왜곡을 저감시키는 디블록킹 필터의 후단으로, 적응적으로 결정된 필터 계수를 사용한 필터 처리를 행하는 적응적 루프 필터(「적응 필터」라고도 함)의 전단에 도입된 적응적 오프셋 필터(「적응 오프셋 필터」라고도 함)가 개시되어 있다. 이 적응 오프셋 필터는, 디블록킹 필터로부터 출력되는 화상의 각 화소값에 대하여 적응적으로 설정된 오프셋을 가산한다는 것이다.
이러한 적응 오프셋 필터를 구비함으로써, 블록 왜곡을 더 효과적으로 억제할 수 있다.
「JCTVC-D122」, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 4th Meeting: Daegu, KR, 01/2011 「JCTVC-E049」, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 5th Meeting: Geneva, CH, 03/2011
그러나, 종래의 적응 오프셋 필터에 사용되는 오프셋은, 값의 범위가 설정되어 있지 않고, 비트수가 크기 때문에, 오프셋을 저장해 두기 위한 큰 메모리 크기가 필요하게 된다는 문제를 갖고 있었다.
본 발명은 상기의 문제를 감안하여 이루어진 것으로, 메모리 크기의 증대를 억제하면서, 블록 왜곡을 저감할 수 있는 화상 필터 장치를 실현하는 데 있다.
상기의 문제를 해결하기 위해서, 본 발명에 따른 화상 필터 장치는, 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터 장치이며, 부호화 데이터를 참조하여, 오프셋값 영역을 설정하는 오프셋 속성 설정 수단과, 상기 설정된 오프셋값 영역으로 제한된 오프셋을 복호하는 오프셋 복호 수단과, 상기 입력 화상의 각 화소값에 상기 오프셋을 가산하는 필터 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기와 같이 구성된 화상 필터 장치에 의하면, 상기 오프셋 속성 설정 수단에 의해, 오프셋값 영역을 설정하고, 설정된 오프셋값 영역에 따른 비트 폭을 갖는 오프셋을 상기 오프셋 복호 수단에 의해 복호하므로, 오프셋을 저장해 두기 위한 메모리 크기를 효과적으로 삭감할 수 있다.
따라서, 상기 구성에 의하면, 오프셋을 저장해 두기 위한 메모리 크기를 삭감하면서, 적절한 오프셋 필터 처리를 행할 수 있다.
또한, 본 발명에 따른 오프셋 복호 장치는, 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터에 의해 참조되는 각 오프셋을 복호하는 오프셋 복호 장치이며, 각 오프셋 잔차를, 부호화 데이터로부터 복호하는 오프셋 잔차 복호 수단과, 각 오프셋의 예측값을, 복호 완료된 오프셋으로부터 도출하는 예측값 도출 수단과, 각 오프셋을, 상기 예측값 도출 수단에 의해 도출된 예측값 및 상기 오프셋 잔차 복호 수단에 의해 복호된 오프셋 잔차로부터 산출하는 오프셋 산출 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기와 같이 구성된 오프셋 복호 장치에 의하면, 각 오프셋 잔차를, 부호화 데이터로부터 복호하는 오프셋 잔차 복호 수단과, 각 오프셋의 예측값을, 복호 완료된 오프셋으로부터 도출하는 예측값 도출 수단과, 각 오프셋을, 상기 예측값 도출 수단에 의해 도출된 예측값 및 상기 오프셋 잔차 복호 수단에 의해 복호된 오프셋 잔차로부터 산출하는 오프셋 산출 수단을 구비하고 있으므로, 각 오프셋을 그대로 부호화하는 경우에 비해, 부호량이 적은 부호화 데이터로부터, 오프셋을 적절하게 복호할 수 있다.
또한, 본 발명에 따른 화상 필터 장치는, 입력 화상에 작용하는 화상 필터 장치이며, 입력 화상에서의 대상 화소의 화소값과 상기 대상 화소의 주변 화소의 화소값과의 차분값을 산출하는 산출 수단과, 상기 산출 수단에 의해 참조되는 화소값, 또는 상기 산출 수단에 의해 산출된 차분값을 소정의 시프트값만큼 우측 비트 시프트하는 비트 시프트 수단과, 상기 비트 시프트 수단에 의해 우측 비트 시프트된 차분값과 0의 대소 관계에 따라서, 상기 대상 화소를 복수의 오프셋 클래스 중 어느 하나로 분류하는 분류 수단과, 상기 대상 화소의 화소값에 대하여, 상기 분류 수단에 의해 분류된 오프셋 클래스에 관련지어진 오프셋을 가산하는 오프셋 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기와 같이 구성된 화상 필터 장치에 의하면, 우측 비트 시프트된 차분값과 0의 대소 관계에 따라서, 상기 대상 화소를 복수의 오프셋 클래스 중 어느 하나로 분류하고, 상기 대상 화소의 화소값에 대하여, 상기 분류 수단에 의해 분류된 오프셋 클래스에 관련지어진 오프셋을 가산하기 때문에, 클래스 분류 처리가, 노이즈의 영향을 받기 어려워져 부호화 효율이 향상된다.
또한, 본 발명에 따른 화상 필터 장치는, 입력 화상에 작용하는 화상 필터 장치이며, 입력 화상에서의 대상 화소의 화소값과 상기 대상 화소의 주변 화소의 화소값과의 차분값을 산출하는 산출 수단과, 상기 산출 수단에 의해 산출된 차분값과, 미리 정해진 제1 및 제2 임계값과의 대소 관계에 따라, 상기 대상 화소를 복수의 오프셋 클래스 중 어느 하나로 분류하는 분류 수단과, 상기 대상 화소의 화소값에 대하여, 상기 분류 수단에 의해 분류된 오프셋 클래스에 관련지어진 오프셋을 가산하는 오프셋 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기와 같이 구성된 화상 필터 장치는, 상기 산출 수단에 의해 산출된 차분값과, 미리 정해진 제1 및 제2 임계값과의 대소 관계에 따라, 상기 대상 화소를 복수의 오프셋 클래스 중 어느 하나로 분류하고, 상기 대상 화소의 화소값에 대하여, 상기 분류 수단에 의해 분류된 오프셋 클래스에 관련지어진 오프셋을 가산하기 때문에, 클래스 분류 처리가, 노이즈의 영향을 받기 어려워져 부호화 효율이 향상된다.
또한, 본 발명에 따른 화상 필터 장치는, 복수의 단위 영역으로 구성되는 입력 화상에 작용하는 화상 필터 장치이며, 제1 및 제2 오프셋 타입 중, 입력 화상에서의 대상 화소를 포함하는 대상 단위 영역이 속하는 오프셋 타입을 결정하는 결정 수단과, 상기 대상 단위 영역이 속하는 오프셋 타입 및 상기 대상 화소의 화소값에 따라, 상기 대상 화소를, 오프셋을 가산하지 않는 오프셋 클래스 및 오프셋을 가산하는 복수의 오프셋 클래스 중 어느 하나로 분류하는 분류 수단과, 상기 대상 화소의 화소값에 대하여, 상기 대상 단위 영역이 속하는 오프셋 타입 및 상기 분류 수단에 의해 분류된 오프셋 클래스에 관련지어진 오프셋을 가산하는 오프셋 수단을 구비하고 있고, 상기 분류 수단은, 상기 대상 화소의 화소값이 소정의 범위 내일 때, 상기 대상 화소를 포함하는 단위 영역이 속하는 오프셋 타입이 상기 제1 및 상기 제2 오프셋 타입 중 어느 경우라도, 상기 대상 화소를, 오프셋을 가산하는 오프셋 클래스로 분류하는 것을 특징으로 하고 있다.
상기와 같이 구성된 화상 필터 장치에 의하면, 상기 대상 화소의 화소값이 소정의 범위 내일 때, 상기 대상 화소를 포함하는 단위 영역이 속하는 오프셋 타입이 상기 제1 및 상기 제2 오프셋 타입 중 어느 경우라도, 상기 대상 화소를, 오프셋을 가산하는 오프셋 클래스로 분류하므로, 블록 노이즈를 효과적으로 제거할 수 있다. 따라서, 상기 구성에 의하면, 부호화 효율의 향상을 도모할 수 있다.
또한, 본 발명에 따른 화상 필터 장치는, 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터 장치이며, 복수의 오프셋 타입 중, 처리 대상의 단위 영역이 속하는 오프셋 타입을 결정하는 결정 수단과, 상기 오프셋 타입에 따라, 서로 다른 비트 폭을 갖는 오프셋을 결정함과 함께, 상기 오프셋을 부호화하는 오프셋 부호화 수단과, 상기 입력 화상의 각 화소값에 상기 결정된 오프셋을 가산하는 필터 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기와 같이 구성된 화상 필터 장치에 의하면, 복수의 오프셋 타입 중, 처리 대상의 단위 영역이 속하는 오프셋 타입을 결정하고, 결정된 오프셋 타입에 따라, 서로 다른 비트 폭을 갖는 오프셋을 결정하고, 결정된 오프셋을, 상기 입력 화상의 각 화소에 가산한다. 또한, 결정된 오프셋을 부호화한다.
따라서, 상기 구성에 의하면, 오프셋을 저장해 두기 위한 메모리 크기를 삭감하면서, 적절한 오프셋 필터 처리를 행할 수 있다. 또한, 상기 구성에 의하면, 부호화 데이터의 부호량이 삭감되므로, 부호화 효율이 향상된다.
또한, 본 발명에 따른 오프셋 부호화 장치는, 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터에 의해 참조되는 각 오프셋을 부호화하는 오프셋 부호화 장치이며, 각 오프셋의 예측값을, 부호화 완료된 오프셋으로부터 도출하는 예측값 도출 수단과, 각 오프셋과 상기 예측값 도출 수단에 의해 도출된 예측값으로부터 오프셋 잔차를 산출하는 오프셋 잔차 산출 수단과, 상기 오프셋 잔차 산출 수단에 의해 산출된 오프셋 잔차를 부호화하는 오프셋 잔차 부호화 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기와 같이 구성된 오프셋 부호화 장치에 의하면, 각 오프셋의 예측값을, 부호화 완료된 오프셋으로부터 도출하는 예측값 도출 수단과, 각 오프셋과 상기 예측값 도출 수단에 의해 도출된 예측값으로부터 오프셋 잔차를 산출하는 오프셋 잔차 산출 수단과, 상기 오프셋 잔차 산출 수단에 의해 산출된 오프셋 잔차를 부호화하는 오프셋 잔차 부호화 수단을 구비하고 있기 때문에, 부호화 데이터의 부호량을 삭감할 수 있다.
또한, 본 발명에 따른 부호화 데이터의 데이터 구조는, 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터에 의해 참조되는 부호화 데이터의 데이터 구조이며, 각 단위 영역이 속하는 오프셋 타입을 지정하는 오프셋 타입 지정 정보와, 상기 오프셋 타입에 따라서 서로 다른 비트 폭을 갖는 오프셋을 포함하고 있고, 상기 화상 필터는, 상기 부호화 데이터에 포함되는 오프셋 타입 지정 정보를 참조하여, 처리 대상의 단위 영역이 속하는 오프셋 타입을 결정함과 함께, 결정한 오프셋 타입에 따라서 서로 다른 비트 폭을 갖는 오프셋을 복호하는 것을 특징으로 하고 있다.
상기와 같이 구성된 부호화 데이터는, 오프셋 타입에 따라서 서로 다른 비트 폭을 갖는 오프셋을 포함하고 있으므로, 부호화 데이터의 부호량이 삭감된다. 또한, 상기 부호화 데이터를 복호하는 화상 필터는, 상기 오프셋 타입 지정 정보를 참조하여, 처리 대상의 단위 영역이 속하는 오프셋 타입을 결정함과 함께, 결정한 오프셋 타입에 따라서 서로 다른 비트 폭을 갖는 오프셋을 복호하므로, 오프셋을 저장해 두기 위한 메모리 크기를 삭감하면서, 적절한 오프셋 필터 처리를 행할 수 있다.
또한, 상기 오프셋 타입 지정 정보는, 상기 입력 화상마다 정해져 있는 것이어도 되고, 상기 단위 영역마다 정해져 있는 것이어도 된다. 또한, 상기 입력 화상의 소정의 세트마다 정해져 있는 것이어도 되고, 상기 단위 영역의 소정의 세트마다 정해져 있는 것이어도 된다.
이상과 같이, 본 발명에 따른 화상 필터 장치는, 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터 장치이며, 부호화 데이터를 참조하여, 오프셋값 영역을 설정하는 오프셋 속성 설정 수단과, 상기 설정된 오프셋값 영역으로 제한된 오프셋을 복호하는 오프셋 복호 수단과, 상기 입력 화상의 각 화소값에 상기 오프셋을 가산하는 필터 수단을 구비하고 있다.
또한, 본 발명에 따른 화상 필터 장치는, 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터 장치이며, 복수의 오프셋 타입 중, 처리 대상의 단위 영역이 속하는 오프셋 타입을 결정하는 결정 수단과, 상기 오프셋 타입에 따라, 서로 다른 비트 폭을 갖는 오프셋을 결정함과 함께, 상기 오프셋을 부호화하는 오프셋 부호화 수단과, 상기 입력 화상의 각 화소값에 상기 결정된 오프셋을 가산하는 필터 수단을 구비하고 있다.
또한, 본 발명에 따른 부호화 데이터의 데이터 구조는, 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터에 의해 참조되는 부호화 데이터의 데이터 구조이며, 각 단위 영역이 속하는 오프셋 타입을 지정하는 오프셋 타입 지정 정보와, 상기 오프셋 타입에 따라서 서로 다른 비트 폭을 갖는 오프셋을 포함하고 있고, 상기 화상 필터는, 상기 부호화 데이터에 포함되는 오프셋 타입 지정 정보를 참조하여, 처리 대상의 단위 영역이 속하는 오프셋 타입을 결정함과 함께, 결정한 오프셋 타입에 따라서 서로 다른 비트 폭을 갖는 오프셋을 복호한다.
상기 구성에 의하면, 오프셋을 저장해 두기 위한 메모리 크기를 삭감하면서, 화상 필터에 적절한 오프셋 필터 처리를 행하게 할 수 있다.
도 1은 본 발명의 제1 실시 형태에 따른 적응 오프셋 필터의 구성을 도시하는 블록도이다.
도 2는 본 발명의 제1 실시 형태에 따른 동화상 부호화 장치에 의해 생성되어, 동화상 복호 장치에 의해 복호되는 부호화 데이터의 데이터 구성을 도시하는 도면이고, (a) 내지 (d)는 각각, 픽처 레이어, 슬라이스 레이어, 트리 블록 레이어 및 CU 레이어를 나타내고 있고, (e)는 리프가 아닌 QAOU에 관한 QAOU 정보의 구성을 나타내고 있고, (f)는 리프 QAOU에 관한 QAOU 정보의 구성을 나타내고 있다.
도 3은 본 발명의 제1 실시 형태에 따른 부호화 데이터의 오프셋 정보(OI)에 포함되는 각 구문을 도시하는 도면이다.
도 4는 본 발명의 제1 실시 형태에 따른 오프셋 단위의 분할의 형태를 도시하는 도면이며, (a)는 sao_curr_depth=0, (b)는 sao_curr_depth=1, (c)는 sao_curr_depth=2, (d)는 sao_curr_depth=3, (e)는 sao_curr_depth=4의 경우를 나타내고 있다.
도 5는 본 발명의 제1 실시 형태에 따른 동화상 복호 장치의 구성을 도시하는 블록도이다.
도 6은 본 발명의 제1 실시 형태를 설명하기 위한 도면이며, (a)는 대상의 처리 단위를 구성하는 분할 심도 3의 각 QAOMU와 각 QAOMU에 할당된 QAOU 인덱스를 나타내고 있고, (b)는 QAOU 인덱스 0 내지 9의 각각에 관련지어진 오프셋 타입 및 각 오프셋 타입에서 선택 가능한 각 클래스에 관한 오프셋을 나타내고 있다.
도 7은 본 발명의 제1 실시 형태에서, 대상의 처리 단위에 포함되는 QAOMU에 붙여진 QAOMU 번호의 일례를 나타내는 도이며, (a)는 분할 심도가 0인 QAOMU에 붙여진 QAOMU 번호를 나타내고 있고, (b)는 분할 심도가 1인 QAOMU에 붙여진 QAOMU 번호를 나타내고 있고, (c)는 분할 심도가 2인 QAOMU에 붙여진 QAOMU 번호를 나타내고 있고, (d)는 분할 심도가 3인 QAOMU에 붙여진 QAOMU 번호를 나타내고 있고, (e)는 분할 심도가 4인 QAOMU에 붙여진 QAOMU 번호를 나타내고 있다.
도 8은 본 발명의 제1 실시 형태에 따른 적응 오프셋 필터 처리부에 의한 처리의 흐름을 나타내는 흐름도이다.
도 9는 본 발명의 제1 실시 형태에 따른 적응 필터가 구비하는 오프셋 속성 설정부에 의해 설정되는 오프셋의 비트 심도 및 시프트값의 예를, 화소의 비트 심도와 함께 도시하는 도면이며, (a) 내지 (d)는 각각, 패턴 S1 내지 S4에 대응하는 예를 나타내고 있고, (e)는, (d)에서, STEP=2로 취한 경우를 나타내고 있다.
도 10은 본 발명의 제1 실시 형태에 따른 적응 오프셋 필터에 의한 오프셋 처리를 설명하기 위한 도면이며, (a) 내지 (d)는 각각, sao_type_idx=1 내지 4일 때에 참조되는 화소를 나타내고 있다.
도 11은 본 발명의 제1 실시 형태에 따른 적응 오프셋 필터에 의한 오프셋 처리를 설명하기 위한 도면이며, (a)는 처리 대상 화소 x의 화소값 pic[x]와 화소 a 또는 b의 화소값의 대소 관계를 나타내는 그래프, 및 그 대소 관계에 따른 함수 Sign의 값을 나타내고 있고, (b)는 처리 대상 화소 x의 화소값과, 화소 a 및 b의 화소값의 대소 관계를 나타내는 그래프, 및 그 대소 관계에 따른 EdgeType의 값을 나타내고 있고, (c)는, (b)에 나타낸 각 그래프와 class_idx의 대응을 나타내고 있고, (d)는 EdgeType으로부터 class_idx로의 변환을 나타내는 변환 테이블을 나타내고 있다.
도 12는 본 발명의 제1 실시 형태에 따른 적응 오프셋 필터에 의한 오프셋 처리를 설명하기 위한 도면이며, (a)는 sao_type_idx=5일 때의 클래스 분류를 개략적으로 나타내고 있고, (b)는 sao_type_idx=6일 때의 클래스 분류를 개략적으로 나타내고 있고, (c)는 밴드 오프셋이 지정된 경우의 클래스 분류의 일례를 나타내는 표이다.
도 13은 본 발명의 제1 실시 형태에 따른 적응 오프셋 필터에 의한 오프셋 처리를 설명하기 위한 도면이며, 밴드 오프셋이 지정된 경우의 클래스 분류의 다른 예를 나타내는 표이다.
도 14는 본 발명의 제1 실시 형태에 따른 동화상 부호화 장치의 구성을 도시하는 블록도이다.
도 15는 본 발명의 제1 실시 형태에 따른 동화상 부호화 장치가 구비하는 적응 오프셋 필터의 구성을 도시하는 블록도이다.
도 16은 본 발명의 제1 실시 형태에 따른 동화상 부호화 장치가 구비하는 적응 오프셋 필터의 오프셋 산출부에 의한 처리의 흐름을 나타내는 흐름도이다.
도 17은 본 발명의 제1 실시 형태에 따른 동화상 부호화 장치가 구비하는 적응 오프셋 필터의 오프셋 정보 선택부에 의한 처리의 흐름을 나타내는 흐름도이다.
도 18은 본 발명의 제1 실시 형태에 따른 동화상 부호화 장치가 구비하는 적응 오프셋 필터의 오프셋 정보 선택부에 의한 처리를 설명하기 위한 도면이며, (a)는 분할 심도가 0 및 1일 경우의 분할의 형태를 나타내고 있고, (b)는 분할 심도가 1일 경우의 분할의 형태를 나타내고 있고, (c)는 분할 심도가 2일 경우의 분할의 형태를 나타내고 있고, (d)는 오프셋 정보 선택부에 의해 결정된 분할의 일례를 나타내고 있다.
도 19는 본 발명의 제2 실시 형태에 따른 동화상 복호 장치가 구비하는 적응 오프셋 필터의 구성을 도시하는 블록도이다.
도 20은 본 발명의 제2 실시 형태에 따른 적응 오프셋 필터를 설명하기 위한 도면이며, (a)는 함수 merge_tbl[sao_type_idx]의 제1 구체예를 나타내고 있고, (b)는 함수 merge_tbl[sao_type_idx]의 제2 구체예를 나타내고 있다.
도 21은 본 발명의 제2 실시 형태에 따른 동화상 부호화 장치가 구비하는 적응 오프셋 필터의 구성을 도시하는 블록도이다.
도 22는 본 발명의 제3 실시 형태에 따른 적응 오프셋 필터의 구성을 도시하는 블록도이다.
도 23은 상기 제3 실시 형태에 따른 부호화 데이터의 오프셋 정보(OI)의 구문을 도시하는 도면이다.
도 24는 상기 제3 실시 형태를 설명하기 위한 도면이며, (a)는 대상의 처리 단위를 구성하는 분할 심도 3의 각 QAOMU와 각 QAOMU에 할당된 QAOU 인덱스를 도시하는 도면이며, (b)는 QAOU 인덱스 0 내지 9의 각각에 관련지어진 오프셋 타입 및 각 오프셋 타입에서 선택 가능한 각 클래스에 관한 오프셋을 도시하는 도면이다.
도 25는 상기 제3 실시 형태에 따른 오프셋 정보 복호부가 사용하는 변환 테이블을 도시하는 도면이다.
도 26은 상기 제3 실시 형태에 따른 적응 오프셋 필터에 의한 오프셋 처리를 설명하기 위한 도면이며, (a)는 처리 대상 화소 x의 화소값 pix[x]와 화소 a 또는 b의 화소값의 대소 관계를 나타내는 그래프, 및 그 대소 관계에 따른 함수 Sign의 값을 도시하는 도면이며, (b)는 처리 대상 화소 x의 화소값과, 화소 a 및 b의 화소값의 대소 관계를 나타내는 그래프, 및 그 대소 관계에 따른 EdgeType의 값을 도시하는 도면이며, (c)는 (b)에 나타낸 각 그래프와 class_idx의 대응을 나타내는 도면이며, (d) 내지 (f)는, EdgeType으로부터 class_idx로의 변환을 나타내는 변환 테이블을 도시하는 도면이다.
도 27은 상기 제3 실시 형태에 따른 적응 오프셋 필터에 의한 오프셋 처리를 설명하기 위한 도면이며, (a)는 sao_type_idx=5일 때의 클래스 분류를 개략적으로 도시하는 도면이고, (b)는 sao_type_idx=6일 때의 클래스 분류를 개략적으로 도시하는 도면이다.
도 28은 상기 제3 실시 형태에 따른 적응 오프셋 필터에 의한 오프셋 처리를 설명하기 위한 도면이며, (a)는 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우의 클래스 분류를 개략적으로 도시하는 도면이고, (b)는 처리 대상의 QAOU의 계층의 심도가 임계값 이상의 경우의 클래스 분류를 개략적으로 도시하는 도면이다.
도 29는 상기 제3 실시 형태에서, 밴드 오프셋이 지정된 경우의 클래스 분류의 일례를 나타내는 도이며, (a)는 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우의 클래스 분류의 일례를 나타내는 도이고, (b)는 처리 대상의 QAOU의 계층의 심도가 임계값 이상의 경우의 클래스 분류의 일례를 나타내는 도이다.
도 30은 상기 제3 실시 형태에 따른 동화상 부호화 장치가 구비하는 적응 오프셋 필터의 구성을 도시하는 블록도이다.
도 31은 상기 제3 실시 형태에서, QAOU 인덱스가 「x」인 QAOU에 대해서, 오프셋 타입 각각에 대한 2승 오차를 산출하는 개요를 도시하는 도면이다.
도 32는 본 발명에 따른 제4 실시 형태에서, 화소값에 의해 EO와 BO를 전환하는 구성을 설명하기 위한 도면이며, (a)는 화소값에 의해 EO와 BO를 전환하는 구성의 개요를 설명하기 위한 도면이고, (b)는 구체적인 전환의 값을 설명하기 위한 도면이고, (c)는 오프셋 정보 저장부(621)에 저장되는 리스트 메모리의 내용을 도시하는 도면이다.
도 33은 본 발명에 따른 제5 실시 형태에서, EO의 타입을 수평 방향으로 한정하는 경우를 설명하기 위한 도면이며, (a)는 효과의 개요를 설명하기 위한 도면이고, (b)는 수평 방향의 화소의 위치를 설명하기 위한 도면이고, (c)는 (b)와는 다른 상태를 설명하기 위한 도면이고, (d)는 (c)의 효과를 설명하기 위한 도면이다.
도 34는 상기 제5 실시 형태에서, EO의 타입을 수평 방향으로 한정하는 경우를 설명하기 위한 도면이며, (a) 및 (b)는 참조하는 화소가 비대칭의 위치에 있는 경우를 도시하는 도면이고, (c)는 수평 에지의 개요를 도시하는 도면이다.
도 35는 본 발명에 따른 제6 실시 형태에서, 오프셋의 정밀도를 향상시키는 경우에 대한 개요를 도시하는 도면이다.
도 36은 상기 제6 실시 형태에서, 클래스 분류를 세분화하는 경우의 개요를 도시하는 도면이며, (a)는 변환 테이블을 도시하는 도면이고, (b) 내지 (d)는 클래스 분할을 설명하기 위한 도면이다.
도 37은 상기 제6 실시 형태에서, 색차에 따라서 클래스 분류를 행하는 경우를 설명하기 위한 도면이며, (a)는 무채색의 화소값을 고려한 클래스 분류를 설명하기 위한 도면이고, (b)는 무채색의 화소값을 사이에 두는 2개의 값 영역에서 비대칭인 클래스 분류를 설명하기 위한 도면이고, (c) 및 (d)는 색채 채널(Cr 또는 Cb)마다 서로 다른 클래스 분류를 설명하기 위한 도면이고, (e)는 BO의 클래스 분류를 하나로 하는 경우를 설명하기 위한 도면이다.
도 38은 본 발명에 따른 제7 실시 형태에서, 오프셋 정보 복호부의 구성을 도시하는 블록도이다.
도 39는 상기 제7 실시 형태에서, 분류되는 화소가 없는 클래스가 있을 경우의 개요를 도시하는 도면이다.
도 40은 상기 제7 실시 형태에서, 예측 후보 플래그를 사용하는 경우의 구문을 도시하는 도면이다.
도 41은 상기 제5 실시 형태에 따른 오프셋 정보 복호부의 구성을 도시하는 블록도이다.
도 42의 (a)는, 상기 제5 실시 형태에 따른 사용 오프셋 타입 선택부의 구성을 도시하는 블록도이며, (b)는 다른 사용 오프셋 타입 선택부의 구성을 도시하는 블록도이다.
도 43은 상기 제5 실시 형태에 따른 클래스 분류부의 구성을 도시하는 블록도이다.
도 44는 상기 제3 실시 형태에 따른 오프셋 정보 및 QAOU 정보의 구문을 도시하는 도면이며, (a)는 오프셋 정보의 구문을 도시하는 도면이고, (b)는 QAOU 정보의 구문을 도시하는 도면이고, (c)는 (a) 및 (b)에 나타내는 구문을 호출하는 적응 오프셋 필터 전체의 구문을 도시하는 도면이다.
도 45는 동화상 복호 장치 및 동화상 부호화 장치가, 동화상의 송수신에 이용할 수 있는 것을 설명하기 위한 도면이며, (a)는 동화상 부호화 장치를 탑재한 송신 장치의 구성을 나타낸 블록도이고, (b)는 동화상 복호 장치를 탑재한 수신 장치의 구성을 나타낸 블록도이다.
도 46은 동화상 복호 장치 및 동화상 부호화 장치가, 동화상의 기록 및 재생에 이용할 수 있는 것을 설명하기 위한 도면이며, (a)는 동화상 부호화 장치(2)를 탑재한 기록 장치의 구성을 나타낸 블록도이고, (b)는 동화상 복호 장치를 탑재한 재생 장치의 구성을 나타낸 블록이다.
[실시 형태1]
(부호화 데이터(#1))
본 실시 형태에 따른 동화상 부호화 장치(2) 및 동화상 복호 장치(1)의 상세한 설명에 앞서, 동화상 부호화 장치(2)에 의해 생성되어, 동화상 복호 장치(1)에 의해 복호되는 부호화 데이터(#1)의 데이터 구조에 대하여 설명을 행한다.
도 2는, 부호화 데이터(#1)의 데이터 구조를 도시하는 도면이다. 부호화 데이터(#1)는, 예시적으로, 시퀀스 및 시퀀스를 구성하는 복수의 픽처를 포함한다.
부호화 데이터(#1)에서의 픽처 레이어 이하의 계층의 구조를 도 2에 도시한다. 도 2의 (a) 내지 (d)는 각각, 픽처(PICT)를 규정하는 픽처 레이어, 슬라이스(S)를 규정하는 슬라이스 레이어, 트리 블록(Tree block)(TBLK)을 규정하는 트리 블록 레이어, 트리 블록(TBLK)에 포함되는 부호화 단위(Coding Unit; CU)를 규정하는 CU 레이어를 도시하는 도면이다.
(픽처 레이어)
픽처 레이어에서는, 처리 대상의 픽처(PICT)(이하, 대상 픽처라고도 함)를 복호하기 위해 동화상 복호 장치(1)가 참조하는 데이터의 집합이 규정되어 있다. 픽처(PICT)는, 도 2의 (a)에 도시한 바와 같이, 픽처 헤더(PH) 및 슬라이스(S1 내지 SNS)를 포함하고 있다(NS는 픽처(PICT)에 포함되는 슬라이스의 총 수).
또한, 이하, 슬라이스(S1 내지 SNS) 각각을 구별할 필요가 없을 경우, 부호의 첨자를 생략하여 기술하는 경우가 있다. 또한, 이하에 설명하는 부호화 데이터(#1)에 포함되는 데이터로서, 첨자를 붙이고 있는 다른 데이터에 대해서도 마찬가지이다.
픽처 헤더(PH)에는, 대상 픽처의 복호 방법을 결정하기 위해 동화상 복호 장치(1)가 참조하는 부호화 파라미터 군이 포함되어 있다. 예를 들어, 동화상 부호화 장치(2)가 부호화 시에 사용한 가변 길이 부호화의 모드를 나타내는 부호화 모드 정보(entropy_coding_mode_flag)는, 픽처 헤더(PH)에 포함되는 부호화 파라미터의 일례이다.
entropy_coding_mode_flag가 0인 경우, 당해 픽처(PICT)는, CAVLC(Context-based Adaptive Variable Length Coding)에 의해 부호화되어 있다. 또한, entropy_coding_mode_flag가 1일 경우, 당해 픽처(PICT)는, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 의해 부호화되어 있다.
또한, 픽처 헤더(PH)는, 픽처·파라미터·세트(PPS: Picture Parameter Set)라고도 불린다.
(슬라이스 레이어)
슬라이스 레이어에서는, 처리 대상의 슬라이스(S)(대상 슬라이스라고도 함)를 복호하기 위해 동화상 복호 장치(1)가 참조하는 데이터의 집합이 규정되어 있다. 슬라이스(S)는, 도 2의 (b)에 도시한 바와 같이, 슬라이스 헤더(SH) 및 트리 블록(TBLK1 내지 TBLKNC)(NC는 슬라이스(S)에 포함되는 트리 블록의 총 수)의 시퀀스를 포함하고 있다.
슬라이스 헤더(SH)에는, 대상 슬라이스의 복호 방법을 결정하기 위해 동화상 복호 장치(1)가 참조하는 부호화 파라미터 군이 포함된다. 슬라이스 타입을 지정하는 슬라이스 타입 지정 정보(slice_type)는, 슬라이스 헤더(SH)에 포함되는 부호화 파라미터의 일례이다.
슬라이스 타입 지정 정보에 의해 지정 가능한 슬라이스 타입으로서는, (1) 부호화 시에 인트라 예측만을 사용하는 I 슬라이스, (2) 부호화 시에 단방향 예측, 또는, 인트라 예측을 사용하는 P 슬라이스, (3) 부호화 시에 단방향 예측, 쌍방향 예측, 또는, 인트라 예측을 사용하는 B 슬라이스 등을 들 수 있다.
또한, 슬라이스 헤더(SH)에는, 동화상 복호 장치(1)가 구비하는 적응 필터에 의해 참조되는 필터 파라미터(FP)가 포함되어 있다. 또한, 필터 파라미터(FP)는, 픽처 헤더(PH)에 포함되는 구성으로 해도 된다.
(트리 블록 레이어)
트리 블록 레이어에서는, 처리 대상의 트리 블록(TBLK)(이하, 대상 트리 블록이라고도 함)을 복호하기 위해 동화상 복호 장치(1)가 참조하는 데이터의 집합이 규정되어 있다. 또한, 트리 블록을 최대 부호화 단위(LCU: Largest Cording Unit)라 칭하기도 한다.
트리 블록(TBLK)은, 트리 블록 헤더(TBLKH)와, 부호화 단위 정보(CU1 내지 CUNL)(NL은 트리 블록(TBLK)에 포함되는 부호화 단위 정보의 총 수)를 포함한다. 여기서 우선, 트리 블록(TBLK)과, 부호화 단위 정보(CU)의 관계에 대하여 설명하면 다음과 같다.
트리 블록(TBLK)은, 인트라 예측 또는 인터 예측, 및 변환의 각 처리를 위한 블록 사이즈를 특정하기 위한 파티션으로 분할된다.
트리 블록(TBLK)의 상기 파티션은, 재귀적인 4분목 분할에 의해 분할되어 있다. 이 재귀적인 4분목 분할에 의해 얻어지는 나무 구조를 이하, 부호화 트리(coding tree)라고 한다.
이하, 부호화 트리의 말단의 노드인 리프(leaf)에 대응하는 파티션을, 부호화 노드(coding node)로서 참조한다. 또한, 부호화 노드는, 부호화 처리의 기본적인 단위가 되기 때문에, 이하, 부호화 노드를 부호화 단위(CU)라고도 한다.
즉, 부호화 단위 정보(이하, CU 정보라고 함)(CU1 내지 CUNL)는, 트리 블록(TBLK)을 재귀적으로 4분목 분할하여 얻어지는 각 부호화 노드(부호화 단위)에 대응하는 정보이다.
또한, 부호화 트리의 루트(root)는 트리 블록(TBLK)에 대응지어진다. 바꾸어 말하면, 트리 블록(TBLK)은, 복수의 부호화 노드를 재귀적으로 포함하는 4분목 분할의 나무 구조의 최상위 노드에 대응지어진다.
또한, 각 부호화 노드의 크기는, 당해 부호화 노드가 직접 속하는 부호화 노드(즉, 당해 부호화 노드의 1 계층 상위의 노드의 파티션)의 크기의 종횡 모두 절반이다.
또한, 각 부호화 노드가 취할 수 있는 크기는, 부호화 데이터(#1)의 시퀀스 파라미터 세트(SPS)에 포함되는, 부호화 노드의 크기 지정 정보 및 최대 계층 심도(maximum hierarchical depth)에 의존한다. 예를 들어, 트리 블록(TBLK)의 크기가 64×64 화소이며, 최대 계층 심도가 3일 경우에는, 당해 트리 블록(TBLK) 이하의 계층에서의 부호화 노드는, 3종류의 크기, 즉, 64×64 화소, 32×32 화소 및 16×16 화소 중 어느 하나를 취할 수 있다.
(트리 블록 헤더)
트리 블록 헤더(TBLKH)에는, 대상 트리 블록의 복호 방법을 결정하기 위해 동화상 복호 장치(1)가 참조하는 부호화 파라미터가 포함된다. 구체적으로는, 도 2의 (c)에 도시한 바와 같이, 대상 트리 블록의 각 CU에 대한 분할 패턴을 지정하는 트리 블록 분할 정보(SP_TBLK) 및 양자화 스텝의 크기를 지정하는 양자화 파라미터 차분(Δqp)(qp_delta)이 포함된다.
트리 블록 분할 정보(SP_TBLK)는, 트리 블록을 분할하기 위한 부호화 트리를 나타내는 정보이며, 구체적으로는, 대상 트리 블록에 포함되는 각 CU의 형상, 크기 및 대상 트리 블록 내에서의 위치를 지정하는 정보이다.
또한, 트리 블록 분할 정보(SP_TBLK)는, CU의 형상이나 크기를 명시적으로 포함하지 않아도 된다. 예를 들어 트리 블록 분할 정보(SP_TBLK)는, 대상 트리 블록 전체 또는 트리 블록의 부분 영역을 4 분할할지 여부를 나타내는 플래그(split_coding_unit_flag)의 집합이어도 된다. 그 경우, 트리 블록의 형상이나 크기를 병용함으로써 각 CU의 형상이나 크기를 특정할 수 있다.
또한, 양자화 파라미터 차분(Δqp)은, 대상 트리 블록에서의 양자화 파라미터(qp)와, 당해 대상 트리 블록 직전에 부호화된 트리 블록에서의 양자화 파라미터(qp')의 차분(qp-qp')이다.
(CU 레이어)
CU 레이어에서는, 처리 대상의 CU(이하, 대상 CU라고도 함)를 복호하기 위해 동화상 복호 장치(1)가 참조하는 데이터의 집합이 규정되어 있다.
여기서, CU 정보(CU)에 포함되는 데이터의 구체적인 내용의 설명을 하기 전에, CU에 포함되는 데이터의 나무 구조에 대하여 설명한다. 부호화 노드는, 예측 트리(prediction tree; PT) 및 변환 트리(transform tree; TT)의 루트의 노드가 된다. 예측 트리 및 변환 트리에 대하여 설명하면 다음과 같다.
예측 트리에서는, 부호화 노드가 1개 또는 복수의 예측 블록으로 분할되어, 각 예측 블록의 위치와 크기가 규정된다. 다른 표현으로 말하면, 예측 블록은, 부호화 노드를 구성하는 1개 또는 복수의 중복되지 않는 영역이다. 또한, 예측 트리는, 상술한 분할에 의해 얻어진 1개 또는 복수의 예측 블록을 포함한다.
예측 처리는, 이 예측 블록마다 행해진다. 이하, 예측의 단위인 예측 블록을, 예측 단위(prediction unit; PU)라고도 한다.
예측 트리에서의 분할의 종류는, 대략 말하면, 인트라 예측의 경우와 인터 예측의 경우의 두 가지가 있다.
인트라 예측의 경우, 분할 방법은, 2N×2N(부호화 노드와 동일 크기)과, N×N이 있다.
또한, 인터 예측의 경우, 분할 방법은, 2N×2N(부호화 노드와 동일 크기), 2N×N, N×2N 및 N×N 등이 있다.
또한, 변환 트리에서는, 부호화 노드가 1개 또는 복수의 변환 블록으로 분할되어, 각 변환 블록의 위치와 크기가 규정된다. 다른 표현으로 말하면, 변환 블록은, 부호화 노드를 구성하는 1개 또는 복수의 중복되지 않는 영역이다. 또한, 변환 트리는, 상술한 분할로부터 얻어진 1개 또는 복수의 변환 블록을 포함한다.
변환 트리에서의 분할에는, 부호화 노드와 동일한 크기의 영역을 변환 블록으로서 할당하는 것과, 상술한 트리 블록의 분할과 마찬가지로, 재귀적인 4분목 분할에 의한 것이 있다.
변환 처리는, 이 변환 블록마다 행해진다. 이하, 변환의 단위인 변환 블록을, 변환 단위(transform unit; TU)라고도 한다.
(CU 정보의 데이터 구조)
계속해서, 도 2의 (d)를 참조하면서 CU 정보(CU)에 포함되는 데이터의 구체적인 내용에 대하여 설명한다. 도 2의 (d)에 도시한 바와 같이, CU 정보(CU)는, 구체적으로는, 스킵 플래그(SKIP), PT 정보(PTI) 및 TT 정보(TTI)를 포함한다.
스킵 플래그(SKIP)는, 대상의 PU에 대해서, 스킵 모드가 적용되어 있는지 여부를 나타내는 플래그이며, 스킵 플래그(SKIP)의 값이 1인 경우, 즉, 대상 CU에 스킵 모드가 적용되어 있는 경우, 그 CU 정보(CU)에서의 PT 정보(PTI) 및 TT 정보(TTI)는 생략된다. 또한, 스킵 플래그(SKIP)는, I 슬라이스에서는 생략된다.
PT 정보(PTI)는, CU에 포함되는 PT에 관한 정보이다. 바꿔 말하면, PT 정보(PTI)는, PT에 포함되는 1개 또는 복수의 PU 각각에 관한 정보의 집합이며, 동화상 복호 장치(1)에 의해 예측 화상을 생성할 때에 참조된다. PT 정보(PTI)는, 도 2의 (d)에 도시한 바와 같이, 예측 타입 정보(PType) 및 예측 정보(PInfo)를 포함하고 있다.
예측 타입 정보(PType)은, 대상 PU에 대한 예측 화상 생성 방법으로서, 인트라 예측을 사용하는 것인지, 또는 인터 예측을 사용하는 것인지를 지정하는 정보이다.
예측 정보(PInfo)는, 예측 타입 정보(PType)가 어느 것의 예측 방법을 지정하는 것인지에 따라서, 인트라 예측 정보 또는 인터 예측 정보로 구성된다. 이하에서는, 인트라 예측이 적용되는 PU를 인트라 PU라고도 부르며, 인터 예측이 적용되는 PU를 인터 PU라고도 부른다.
또한, 예측 정보(PInfo)는, 대상 PU의 형상, 크기 및 위치를 지정하는 정보가 포함된다. 상술한 바와 같이 예측 화상의 생성은, PU를 단위로서 행해진다. 예측 정보(PInfo)의 상세에 대해서는 후술한다.
TT 정보(TTI)는, CU에 포함되는 TT에 관한 정보이다. 바꿔 말하면, TT 정보(TTI)는, TT에 포함되는 1개 또는 복수의 TU 각각에 관한 정보의 집합이며, 동화상 복호 장치(1)에 의해 잔차 데이터를 복호할 때에 참조된다. 또한, 이하, TU를 블록이라 칭하기도 한다.
TT 정보(TTI)는, 도 2의 (d)에 도시한 바와 같이, 대상 CU의 각 변환 블록에 대한 분할 패턴을 지정하는 TT 분할 정보(SP_TT) 및 양자화 예측 잔차(QD1 내지 QDNT)(NT는, 대상 CU에 포함되는 블록의 총 수)를 포함하고 있다.
TT 분할 정보(SP_TT)는, 구체적으로는, 대상 CU에 포함되는 각 TU의 형상, 크기 및 대상 CU 내에서의 위치를 결정하기 위한 정보이다. 예를 들어, TT 분할 정보(SP_TT)는, 대상이 되는 노드의 분할을 행하는지 여부를 나타내는 정보(split_transform_unit_flag)와, 그 분할의 심도를 나타내는 정보(trafoDepth)로부터 실현할 수 있다.
또한, 예를 들어 CU의 크기가 64×64인 경우, 분할에 의해 얻어지는 각 TU는, 32×32 화소부터 2×2 화소까지의 크기를 취할 수 있다.
각 양자화 예측 잔차(QD)는, 동화상 부호화 장치(2)가 이하의 처리 1 내지 3을 처리 대상의 블록인 대상 블록에 실시함으로써 생성한 부호화 데이터이다.
처리 1: 부호화 대상 화상에서 예측 화상을 감산한 예측 잔차를 DCT 변환(Discrete Cosine Transform)한다;
처리 2: 처리 1에서 얻어진 변환 계수를 양자화한다;
처리 3: 처리 2에서 양자화된 변환 계수를 가변 길이 부호화한다;
또한, 상술한 양자화 파라미터(qp)는, 동화상 부호화 장치(2)가 변환 계수를 양자화할 때에 사용한 양자화 스텝(QP)의 크기를 나타낸다(QP=2qp/6).
(예측 정보(PInfo))
상술한 바와 같이, 예측 정보(PInfo)에는, 인터 예측 정보 및 인트라 예측 정보의 2종류가 있다.
인터 예측 정보에는, 동화상 복호 장치(1)가 인터 예측에 의해 인터 예측 화상을 생성할 때에 참조되는 부호화 파라미터가 포함된다. 보다 구체적으로는, 인터 예측 정보에는, 대상 CU의 각 인터 PU에 대한 분할 패턴을 지정하는 인터 PU 분할 정보 및 각 인터 PU에 대한 인터 예측 파라미터가 포함된다.
인터 예측 파라미터에는, 참조 화상 인덱스와, 추정 움직임 벡터 인덱스와, 움직임 벡터 잔차가 포함된다.
한편, 인트라 예측 정보에는, 동화상 복호 장치(1)가 인트라 예측에 의해 인트라 예측 화상을 생성할 때에 참조되는 부호화 파라미터가 포함된다. 보다 구체적으로는, 인트라 예측 정보에는, 대상 CU의 각 인트라 PU에 대한 분할 패턴을 지정하는 인트라 PU 분할 정보 및 각 인트라 PU에 관한 인트라 예측 파라미터가 포함된다. 인트라 예측 파라미터는, 각 인트라 PU에 관한 인트라 예측 방법(예측 모드)을 지정하기 위한 파라미터이다.
(오프셋 단위)
또한, 본 실시 형태에서, 각 픽처 또는 각 슬라이스는, 4분목 구조에 의해 복수의 오프셋 단위(QAOU: Quad Adaptive Offset Unit이라고도 함)로 재귀적으로 분할된다. 여기서, QAOU란, 본 실시 형태에 따른 적응 오프셋 필터에 의한 오프셋 필터 처리의 처리 단위이다.
도 2의 (e) 내지 (f)에 도시한 바와 같이, 각 QAOU에 관한 정보인 QAOU 정보는, 자신이 더 분할되는지 여부를 나타내는 sao_split_flag를 포함하고 있다. sao_split_flag는, 보다 구체적으로는, 후술하는 인수(sao_curr_depth, ys, xs)에 의해 지정되는 것이며, sao_split_flag[sao_curr_depth][ys][xs]라고도 표기한다.
임의의 QAOU에 포함되는 sao_split_flag가, 상기 QAOU가 더 분할되는 것임을 나타내고 있을 경우(즉, 당해 QAOU가 리프가 아닐 경우)에는, 도 2의 (e)에 도시한 바와 같이, 상기 QAOU에 관한 QAOU 정보에는, 상기 QAOU에 포함되는 복수의 QAOU의 각각에 관한 QAOU 정보가 포함된다.
한편, 임의의 QAOU에 포함되는 sao_split_flag가, 상기 QAOU가 그 이상 분할되지 않는 것임을 나타내고 있을 경우(즉, 당해 QAOU가 리프일 경우)에는, 도 2의 (f)에 도시한 바와 같이, 상기 QAOU에 관한 QAOU 정보에는, 상기 QAOU에 관한 오프셋 정보(OI)가 포함된다. 또한, 오프셋 정보(OI)에는, 도 2의 (f)에 도시한 바와 같이, 오프셋 타입을 지정하는 오프셋 타입 지정 정보(OTI) 및 오프셋 타입에 따라서 정해지는 오프셋 군이 포함되어 있다. 또한, 도 2의 (f)에 도시한 바와 같이, 오프셋 군에는 복수의 오프셋이 포함되어 있다.
또한, 부호화 데이터 중의 오프셋은 양자화된 값이다. 또한, 부호화 데이터 중의 오프셋은, 어떠한 예측, 예를 들어 선형 예측을 사용함으로써 얻어지는 예측 잔차이어도 된다. 또한, 일정한 단위 영역마다 후술하는 화소 비트 심도가 상이하게 지정되는 경우, 화소 비트 심도에 따라서 오프셋의 비트 심도, 오프셋값 영역 및 시프트값을 변경하는 본 실시 형태에서는, 오프셋 타입 지정 정보(OTI)에 처리 대상 영역의 화소 비트 심도를 포함하는 것도 가능하다.
오프셋 정보(OI)에 대해서, 참조하는 도면을 바꾸어 설명하면 이하와 같다.
도 3은, 오프셋 정보(OI)(도 3에서 sao_offset_param( )이라 표기)에 포함되는 각 구문을 도시하는 도면이다.
도 3에 도시한 바와 같이, 오프셋 정보(OI)에는, 구문 sao_type_idx[sao_curr_depth][ys][xs]가 포함되어 있다. 또한, sao_type_idx[sao_curr_depth][ys][xs]가 0이 아닐 경우, 오프셋 정보(OI)에는, sao_offset[sao_curr_depth][ys][xs][i]가 포함되어 있다.
(sao_curr_depth, ys, xs)
sao_type_idx 및 sao_offset의 인수인 sao_curr_depth는, QAOU의 분할 심도를 나타내는 인덱스이며, ys 및 xs는, 각각 QAOU(또는 후술하는 QAOMU)의 y 방향의 위치 및 x 방향의 위치를 나타내기 위한 인덱스이다.
도 4의 (a) 내지 (e)는, sao_curr_depth의 값에 따른 QAOU의 분할의 형태를 도시하는 도면이고, (a)는 sao_curr_depth=0, (b)는 sao_curr_depth=1, (c)는 sao_curr_depth=2, (d)는 sao_curr_depth=3, (e)는 sao_curr_depth=4의 경우를 나타내고 있다. 도 4의 (a) 내지 (e)에 도시한 바와 같이, 각 QAOU는, sao_curr_depth 및 (xs, ys)에 의해 지정된다.
또한, 도 4의 (a)에 도시한 바와 같이, sao_curr_depth=0일 때, xs 및 ys는 각각 0이며, 도 4의 (b)에 도시한 바와 같이, sao_curr_depth=1일 때, xs 및 ys는 각각 0 및 1 중 어느 하나의 값을 취할 수 있다. 또한, 도 4의 (c)에 도시한 바와 같이, sao_curr_depth=2일 때, xs 및 ys는 각각 0, 1, 2 및 3중 어느 하나의 값을 취할 수 있다. 일반적으로, 부여된 sao_curr_depth에 대하여 xs 및 ys는, 각각 0 내지 2sao _ curr _ depth-1의 값을 취할 수 있다.
(sao_type_idx)
sao_type_idx[sao_curr_depth][ys][xs]는, 상술한 오프셋 타입 지정 정보(OTI)에 대응하는 것이며, 각 QAOU에 대한 오프셋 타입을 지정하기 위한 구문이다. 이하에서는, sao_type_idx를 간단히 오프셋 타입이라 칭하기도 한다.
본 실시 형태에서, sao_type_idx[sao_curr_depth][ys][xs]는, 0부터 6까지의 정수값을 취한다. sao_type_idx[sao_curr_depth][ys][xs]=0은, 대상 QAOU에서의 오프셋 필터전 화상(예를 들어, 후술하는 디블록 완료 복호 화상(P_DB))에 대하여 오프셋 필터 처리를 행하지 않는 것을 나타내고 있고, sao_type_idx[sao_curr_depth][ys][xs]=1 내지 4는, 대상 QAOU에서의 오프셋 필터전 화상에 대하여 에지 오프셋 처리를 행하는 것을 나타내고 있고, sao_type_idx[sao_curr_depth][ys][xs]=5 내지 6은, 대상 QAOU에서의 오프셋 필터전 화상에 대하여 밴드 오프셋 처리를 행하는 것을 나타내고 있다. 에지 오프셋 처리 및 밴드 오프셋 처리의 구체적 내용에 대해서는 후술한다.
(sao_offset)
sao_offset[sao_curr_depth][ys][xs][i]는, 본 실시 형태에 따른 적응 오프셋 필터에 의한 오프셋 필터 처리에 있어서, 대상 QAOU에 포함되는 각 화소에 가산되는 오프셋의 구체적인 값을 나타내는 구문이다. 본 실시 형태에서는, sao_offset를 간단히 오프셋이라 칭하기도 한다.
sao_offset[sao_curr_depth][ys][xs][i]는, 인수 sao_curr_depth, ys 및 xs 외에, 인덱스 i에 의해 지정된다. 여기서, 인덱스 i는, 클래스를 지정하기 위한 인덱스이며, class_idx라고도 표기한다. 인덱스 i는, sao_type_idx[sao_curr_depth][ys][xs]의 값이 1 내지 4 중 어느 하나일 경우(즉, 에지 오프셋의 경우), i=0 내지 4 중 어느 하나의 정수값을 취한다. 또한, sao_type_idx[sao_curr_depth][ys][xs]의 값이 5 내지 6 중 어느 하나일 경우(즉, 밴드 오프셋의 경우), i=0 내지 16 중 어느 하나의 정수값을 취한다. 또한, 후술하는 바와 같이, 어떠한 경우도 i=0은, 오프셋을 가산하지 않는 것을 나타내고 있다.
후술하는 바와 같이, 본 실시 형태에 따른 적응 오프셋 필터는, 대상 QAOU에 포함되는 대상 화소를 상기 복수의 클래스 중 어느 하나로 분류하고, 상기 대상 화소에 대하여 상기 대상 화소가 분류된 클래스에 대한 오프셋(Offset)을 가산한다.
또한, 도 3에 도시한 Descriptor(기술자) ue(v)는, 이 기술자에 관련지어진 구문은 부호 없는 수치이며, 값이 가변 길이 부호화되는 것을 나타내고 있고, se(v)는 이 기술자에 관련지어진 구문은 부호 첨부의 수치이며, 부호와 절댓값으로 나누어서 가변 길이 부호화되는 것을 의미하고 있다.
(동화상 복호 장치 1)
이하에서는, 본 실시 형태에 따른 동화상 복호 장치(1)에 대하여 도 1 및 도 5 내지 도 13을 참조하여 설명한다. 동화상 복호 장치(1)는, 그 일부에, H.264/MPEG-4.AVC에 채용되어 있는 방식, VCEG(Video Coding Expert Group)에서의 공동 개발용 코덱인 KTA 소프트웨어에 채용되어 있는 방식, 그 후계 코덱인 TMuC(Test Model under Consideration) 소프트웨어에 채용되어 있는 방식 및 HM(HEVC TestModel) 소프트웨어에 채용되어 있는 기술을 포함하고 있다.
도 5는, 동화상 복호 장치(1)의 구성을 도시하는 블록도이다. 도 5에 도시한 바와 같이, 동화상 복호 장치(1)는, 가변 길이 부호 복호부(13), 움직임 벡터 복원부(14), 버퍼 메모리(15), 인터 예측 화상 생성부(16), 인트라 예측 화상 생성부(17), 예측 방식 결정부(18), 역양자화·역변환부(19), 가산기(20), 디블록킹 필터(41), 적응 필터(50) 및 적응 오프셋 필터(60)를 구비하고 있다. 동화상 복호 장치(1)는, 부호화 데이터(#1)를 복호함으로써 동화상(#2)을 생성하기 위한 장치이다.
가변 길이 부호 복호부(13)는, 각 파티션에 관한 예측 파라미터(PP)를, 부호화 데이터(#1)로부터 복호한다. 즉, 인터 예측 파티션에 관해서는, 참조 화상 인덱스(RI), 추정 움직임 벡터 인덱스(PMVI) 및 움직임 벡터 잔차(MVD)를 부호화 데이터(#1)로부터 복호하고, 이들을 움직임 벡터 복원부(14)에 공급한다. 한편, 인트라 예측 파티션에 관해서는, (1) 파티션의 크기를 지정하는 크기 지정 정보 및 (2) 예측 인덱스를 지정하는 예측 인덱스 지정 정보를 부호화 데이터(#1)로부터 복호하고, 이것을 인트라 예측 화상 생성부(17)에 공급한다. 또한, 가변 길이 부호 복호부(13)는, CU 정보를 부호화 데이터로부터 복호하고, 이것을 예측 방식 결정부(18)에 공급한다(도시 생략). 또한, 가변 길이 부호 복호부(13)는, 각 블록에 관한 양자화 예측 잔차(QD) 및 그 블록을 포함하는 트리 블록에 관한 양자화 파라미터 차분(Δqp)을 부호화 데이터(#1)로부터 복호하고, 이들을 역양자화·역변환부(19)에 공급한다. 또한, 가변 길이 부호 복호부(13)는, 부호화 데이터(#1)로부터 QAOU 정보를 추출하고, 추출한 QAOU 정보를 적응 오프셋 필터(60)에 공급한다.
움직임 벡터 복원부(14)는, 각 인터 예측 파티션에 관한 움직임 벡터(mv)를, 그 파티션에 관한 움직임 벡터 잔차(MVD)와, 다른 파티션에 관한 복원 완료된 움직임 벡터(mv')로부터 복원한다. 구체적으로는, (1) 추정 움직임 벡터 인덱스(PMVI)에 의해 지정되는 추정 방법에 따라, 복원 완료된 움직임 벡터(mv')로부터 추정 움직임 벡터(pmv)를 도출하고, (2) 도출한 추정 움직임 벡터(pmv)와 움직임 벡터 잔차(MVD)를 가산함으로써 움직임 벡터(mv)를 얻는다. 또한, 다른 파티션에 관한 복원 완료된 움직임 벡터(mv')는, 버퍼 메모리(15)로부터 판독할 수 있다. 움직임 벡터 복원부(14)는, 복원한 움직임 벡터(mv)를, 대응하는 참조 화상 인덱스(RI)와 함께 인터 예측 화상 생성부(16)에 공급한다. 또한, 쌍방향 예측(가중치 부여 예측)을 행하는 인터 예측 파티션에 대해서는, 복원한 2개의 움직임 벡터(mv1 및 mv2)를, 대응하는 참조 화상 인덱스(RI1 및 RI2)와 함께 인터 예측 화상 생성부(16)에 공급한다.
인터 예측 화상 생성부(16)는, 각 인터 예측 파티션에 관한 움직임 보상 화상(mc)을 생성한다. 구체적으로는, 움직임 벡터 복원부(14)로부터 공급된 움직임 벡터(mv)를 사용하여, 동일하게 움직임 벡터 복원부(14)로부터 공급된 참조 화상 인덱스(RI)에 의해 지정되는 필터 완료 복호 화상(P_FL')으로부터 움직임 보상 화상(mc)을 생성한다. 여기서, 필터 완료 복호 화상(P_FL')은, 이미 복호가 완료된 복호 화상(P)에 대하여 디블록킹 필터(41)에 의한 디블록 처리, 적응 오프셋 필터(60)에 의한 오프셋 필터 처리 및 적응 필터(50)에 의한 적응적 필터 처리를 실시함으로써 얻어지는 화상이며, 인터 예측 화상 생성부(16)는, 필터 완료 복호 화상(P_FL')을 구성하는 각 화소의 화소값을 버퍼 메모리(15)로부터 판독할 수 있다. 인터 예측 화상 생성부(16)에 의해 생성된 움직임 보상 화상(mc)은, 인터 예측 화상(Pred_Inter)으로서 예측 방식 결정부(18)에 공급된다. 또한, 쌍방향 예측(가중치 부여 예측)을 행하는 인터 예측 파티션에 대해서는, (1) 움직임 벡터(mv1)를 사용하여, 참조 화상 인덱스(RI1)에 의해 지정된 필터 완료 복호 화상(P_FL1')으로부터 움직임 보상 화상(mc1)을 생성하고, (2) 움직임 벡터(mv2)를 사용하여, 참조 화상 인덱스(RI2)에 의해 지정된 필터 완료 복호 화상(P_FL2')으로부터 움직임 보상 화상(mc2)을 생성하고, (3) 움직임 보상 화상(mc1)과 움직임 보상 화상(mc2)의 가중 평균에 오프셋값을 가함으로써 인터 예측 화상(Pred_Inter)을 생성한다.
인트라 예측 화상 생성부(17)는, 각 인트라 예측 파티션에 관한 예측 화상(Pred_Intra)을 생성한다. 구체적으로는, 우선, 부호화 데이터(#1)로부터 복호된 예측 모드를 참조하여, 상기 예측 모드를 대상 파티션에 대하여 예를 들어 래스터 스캔 순으로 할당한다. 계속해서, 당해 예측 모드가 나타내는 예측 방법에 따라, 복호 화상(P)으로부터 예측 화상(Pred_Intra)을 생성한다. 인트라 예측 화상 생성부(17)에 의해 생성된 인트라 예측 화상(Pred_Intra)은, 예측 방식 결정부(18)에 공급된다.
또한, 인트라 예측 화상 생성부(17)는, 대상 파티션의 크기 및 대상 파티션에 할당된 예측 모드를 나타내는 정보인 인트라 부호화 모드 정보(IEM)를 적응 필터(50)에 공급한다.
예측 방식 결정부(18)는, CU 정보에 기초하여, 각 파티션이 인터 예측을 행해야 할 인터 예측 파티션인지, 인트라 예측을 행해야 할 인트라 예측 파티션인지를 결정한다. 그리고, 전자의 경우에는, 인터 예측 화상 생성부(16)에서 생성된 인터 예측 화상(Pred_Inter)을 예측 화상(Pred)으로서 가산기(20)에 공급하고, 후자의 경우에는, 인트라 예측 화상 생성부(17)에서 생성된 인트라 예측 화상(Pred_Intra)을 예측 화상(Pred)으로서 가산기(20)에 공급한다.
역양자화·역변환부(19)는, (1) 양자화 예측 잔차(QD)를 역양자화하고, (2) 역양자화에 의해 얻어진 DCT 계수를 역DCT(Discrete Cosine Transform) 변환하고, (3) 역DCT 변환에 의해 얻어진 예측 잔차(D)를 가산기(20)에 공급한다. 또한, 양자화 예측 잔차(QD)를 역양자화할 때에 역양자화·역변환부(19)는, 가변 길이 부호 복호부(13)로부터 공급된 양자화 파라미터 차분(Δqp)으로부터 양자화 스텝(QP)을 도출한다. 양자화 파라미터(qp)는, 직전에 역양자화/역DCT 변환한 트리 블록에 관한 양자화 파라미터(qp')에 양자화 파라미터 차분(Δqp)을 가산함으로써 도출할 수 있고, 양자화 스텝(QP)은, 양자화 스텝(qp)으로부터 QP=2pq /6에 의해 도출할 수 있다. 또한, 역양자화·역변환부(19)에 의한 예측 잔차(D)의 생성은, 블록(변환 단위)을 단위로 해서 행해진다.
가산기(20)는, 예측 방식 결정부(18)로부터 공급된 예측 화상(Pred)과, 역양자화·역변환부(19)로부터 공급된 예측 잔차(D)를 가산함으로써 복호 화상(P)을 생성한다.
디블록킹 필터(41)는, 복호 화상(P)에서의 블록 경계 또는 CU 경계를 개재하여 서로 인접하는 화소의 화소값의 차가 미리 정해진 임계값보다 작은 경우에, 복호 화상(P)에서의 당해 블록 경계 또는 당해 CU 경계에 대하여 디블록킹 처리를 실시함으로써, 당해 블록 경계 또는 당해 CU 경계 부근의 화상의 평활화를 행한다. 디블록킹 필터(41)에 의해 디블록킹 처리가 실시된 화상은, 디블록 완료 복호 화상(P_DB)으로서, 적응 오프셋 필터(60)에 출력된다.
적응 오프셋 필터(60)는, 디블록킹 필터(41)로부터 공급되는 디블록 완료 복호 화상(P_DB)에 대하여 부호화 데이터(#1)로부터 복호된 오프셋을 사용한 오프셋 필터 처리를, QAOU를 처리 단위로 해서 실시함으로써 오프셋 필터 완료 복호 화상(P_OF)을 생성한다. 생성된 오프셋 필터 완료 복호 화상(P_OF)은, 적응 오프셋 필터(60)에 공급된다. 적응 오프셋 필터(60)의 구체적인 구성에 대해서는 후술하기 때문에, 여기에서는 설명을 생략한다.
적응 필터(50)는, 적응 오프셋 필터(60)로부터 공급되는 오프셋 필터 완료 복호 화상(P_OF)에 대하여 부호화 데이터(#1)로부터 복호된 필터 파라미터(FP)를 사용한 필터 처리를 실시함으로써, 필터 완료 복호 화상(P_FL)을 생성한다. 적응 필터(50)에 의해 필터 처리가 실시된 화상은, 필터 완료 복호 화상(P_FL)으로서 외부에 출력됨과 함께, 가변 길이 부호 복호부(13)에 의해 부호화 데이터로부터 복호된 POC 지정 정보와 관련지어서 버퍼 메모리(15)에 저장된다.
(적응 오프셋 필터(60))
도 1은, 적응 오프셋 필터(60)의 구성을 도시하는 블록도이다. 도 1에 도시한 바와 같이, 적응 오프셋 필터(60)는, 적응 오프셋 필터 정보 복호부(61) 및 적응 오프셋 필터 처리부(62)를 구비하고 있다.
또한, 도 1에 도시한 바와 같이, 적응 오프셋 필터 정보 복호부(61)는, 오프셋 정보 복호부(611), QAOU 구조 복호부(612) 및 오프셋 속성 설정부(613)를 구비하고 있다.
오프셋 정보 복호부(611)는, 부호화 데이터(#1)에 포함되어 있는 QAOU 정보를 참조하여, QAOU 정보에 포함되어 있는 오프셋 정보(OI)를 복호한다. 또한, 오프셋 정보(OI)를 복호함으로써 얻어진 sao_type_idx[sao_curr_depth][ys][xs] 및 sao_offset[sao_curr_depth][ys][xs][i]의 각 값을, 각각의 인수 (sao_curr_depth, ys, xs) 및 (sao_curr_depth, ys, xs, i)에 관련지어, 오프셋 정보 저장부(621)에 공급한다.
QAOU 구조 복호부(612)는, QAOU 정보에 포함되어 있는 sao_split_flag[sao_curr_depth][ys][xs]를 복호함으로써, QAOU의 분할 구조를 결정하고, 결정된 QAOU의 분할 구조를 나타내는 QAOU 구조 정보를, 오프셋 정보 저장부(621)에 공급한다.
오프셋 속성 설정부(613)는, 오프셋의 비트 심도(SAO_DEPTH라고도 함)와 오프셋의 값 영역을 결정한다. 여기에서는, 오프셋의 비트 심도는, 오프셋 속성 설정부(613)에 입력되는 도시되지 않은 화소 비트 심도(PIC_DEPTH라고도 함)로부터 결정한다. 화소 비트 심도란, 적응 오프셋 필터(60)의 입력 화상을 구성하는 화소값의 값 영역을 비트 폭으로 나타내는 것이며, 화소 비트 심도가 N 비트일 때, 화소값은 0 내지 2N-1의 범위를 취한다. 예를 들어, 화소 비트 심도가 8비트일 때, 화소값은 0 내지 255의 범위를 취할 수 있다. 적응 오프셋 필터(60)의 입력 화상은, 동화상 복호 장치(1)의 복호 화상, 또는, 동화상 부호화 장치(2)의 국소 복호 화상일 경우에는, 복호 화상/국소 복호 화상의 비트 심도가 사용된다. 적응 오프셋 필터(60)의 입력 화상의 정밀도 및 출력 화상의 정밀도는 화소 비트 심도이다.
화소 비트 심도는, 부호화 데이터(#1) 중의 구문을 사용하여 정해지는 값을 복호하여 사용할 수 있다. 예를 들어, H.264/AVC의 경우에는, 시퀀스 파라미터 세트 중의 bit_depth_luma_minus8을 사용하여 정할 수 있다. 또한, 다른 형태로서, 화소 비트 심도는 처리 대상의 단위 영역마다 정해져도 되고, 그 경우에는 상기 단위 영역의 헤더로부터 화소 비트 심도를 복호한다. 단위 영역의 화소 비트 심도는, 적응 오프셋 필터(60)의 입력 화상을 복호하기 위한 부호화 데이터(#1) 중의 파라미터 정보나 헤더에 포함되어 있어도 되고, QAOU 정보의 일부로서 포함되어 있어도 된다. 입력 화상을 복호하기 위한 파라미터 정보 및 헤더로서는, 픽처 파라미터 헤더, 슬라이스 헤더, LCU, CU 등에 화소 비트 심도를 포함시켜 두어도 된다. 또한, QAOU 정보의 일부로서는, 리프 QAOU에 화소 비트 심도를 포함시켜 두어도 되고, 소정의 계층(예를 들어 최상위 계층의 QAOU나 제1 계층의 QAOU)의 QAOU 정보에 화소 비트 심도를 포함시켜 두어도 상관없다. 또한, 화소 비트 심도의 부호화로서는, 8비트로부터의 차분값으로서 부호화하는 것이 적합하다. QAOU 정보에서는, 화소 비트 심도 외에, 시프트값을 직접 부호화하는 것도 적당하다. 또한, 시프트값은 8비트를 초과하는 경우에만 부호화하는 것이 적당하다. 여기서 시프트값이란, 역양자화를 행하기 위해 필요한 비트 시프트량을 나타낸다. 역양자화에 사용하는 파라미터로서는 시프트값 외에, 스텝 값이어도 된다. 이 경우, 오프셋의 역양자화는 스텝 값과의 곱, 오프셋의 양자화는 스텝 값에 의한 제산으로 실행된다.
또한, 오프셋의 비트 심도란, 부호화 데이터(#1) 중에 부호화되는 오프셋의 정밀도를 나타내는 값이다. 부호화 데이터(#1)에 포함되는 오프셋은 양자화되어 있고, 이 양자화된 오프셋은 복호 후, 후술하는 오프셋 도출부(625)에 의해, 화소 비트 심도에 맞춘 비트 심도로 역양자화된다. 또한, 후술하는 오프셋 가산부(626)에서, 역양자화된 오프셋의 가산이 행해진다. 오프셋의 비트 심도는, 화소 비트 심도 이하의 값을 갖는다. 오프셋의 비트 심도가 화소 비트 심도보다 k 비트만큼 작은 경우에는, 부호화되는 오프셋의 값은, 2k를 오프셋의 양자화 스텝으로 해서 양자화된 값을 의미한다. 복호한 비트 심도에서 화소 비트 심도로의 변환은, 후술하는 오프셋 도출부(625)에서 행해진다.
오프셋 속성 설정부(613)는 또한, 결정한 오프셋의 비트 심도에 의해 오프셋값 영역을 설정한다. 또한, 오프셋의 화소 비트 심도와 오프셋값 영역으로부터 시프트값을 설정한다. 설정된 오프셋값 영역 및 시프트값은 오프셋 정보 저장부(621) 및 오프셋 정보 복호부(611)에 공급된다. 오프셋의 비트 심도의 결정과 시프트값의 설정은 후술하는 패턴 S1 내지 S6 중 어느 한 형태로 행해진다. 오프셋값 영역의 설정은 후술하는 패턴 C1, 패턴 C2 중 어느 한 형태로 행해진다. 오프셋값 영역 및 시프트값 등 오프셋에 공통되는 속성을 오프셋 속성이라고 칭한다. 한편으로, 도 1에 도시한 바와 같이, 적응 오프셋 필터 처리부(62)는, 오프셋 정보 저장부(621), QAOU 제어부(622), 오프셋 타입 도출부(623). 클래스 분류부(624), 오프셋 도출부(625) 및 오프셋 가산부(626)를 구비하고 있다.
오프셋 정보 저장부(621)는, QAOU 구조 정보, sao_type_idx[sao_curr_depth][ys][xs] 및 sao_offset[sao_curr_depth][ys][xs][i]에 기초하여, 각 QAOU에 대해 지정된 오프셋 타입 및 상기 오프셋 타입에 있어서 선택 가능한 각 클래스에 관한 오프셋의 구체적인 값을 관리 및 저장하기 위한 구성이며, 맵 메모리 및 리스트 메모리를 구비하고 있다.
맵 메모리에는, 분할 심도에 따라서 정해지는 각 오프셋 최소 단위(QAOMU: Quad Adaptive Offset Minimum Unit이라고도 함)에 할당된 후술하는 QAOU 인덱스가 저장되어 있다. 도 6의 (a)에서는, 맵 메모리에 대하여 설명을 한다. 도 6의 (a)는 맵 메모리에 저장되는 QAOU 인덱스의 일례를 설명하기 위한 것으로서, 대상의 처리 단위(예를 들어 LCU)를 구성하는 분할 심도 3의 각 QAOMU와 각 QAOMU에 할당된 QAOU 인덱스를 도시하는 도면이다. 도 6의 (a)에서는, 간이적으로 인덱스 0 내지 9를 QAOU의 분할 심도를 고려하지 않고 QAOU를 지정하고 있다. 도 6의 (a)에 나타내는 예에서는, QAOU 인덱스=I에 의해 지정되는 QAOU를 QAOUI라고 표기하고 있다. 또한, 도 6의 (a)에서의 가는 선은 QAOMU의 경계를 나타내고 있고, 굵은 선은, QAOU의 경계를 나타내고 있다.
도 6의 (a)에 도시한 바와 같이, QAOU0은, 4개의 QAOMU로 구성되어 있고, 이들 4개의 QAOMU에는, QAOU 인덱스로서 0이 할당되어 있다. 한편으로, QAOU3은, 1개의 QAOMU로 구성되어 있고, 이 QAOMU에는, QAOU 인덱스로서 3이 할당되어 있다. 이와 같이, 맵 메모리에는, 각 QAOMU에 할당된 QAOU 인덱스가 저장되어 있다.
한편으로, 리스트 메모리에는, 각 QAOU 인덱스, 상기 QAOU 인덱스에 관련지어진 오프셋 타입 및 상기 오프셋 타입에서 선택 가능한 각 클래스에 관한 오프셋의 구체적인 값이 서로 관련지어져서 저장되어 있다. 오프셋 정보 저장부(621)는, 오프셋 속성 설정부(613)에 의해 설정되는 오프셋값 영역으로 값의 범위가 제한된 오프셋을 저장한다.
도 6의 (b)는, 리스트 메모리에 저장되는 정보의 일례를 설명하기 위한 것으로서, QAOU 인덱스 0 내지 9의 각각에 관련지어진 오프셋 타입 및 각 오프셋 타입에서 선택 가능한 각 클래스에 관한 오프셋을 나타내고 있다. 도 6의 (b)에서의 「xxx」는, 서로 상이할 수 있는 구체적인 수치를 나타내고 있는 것으로 한다.
또한, 도 6의 (b)에서의 「BO_1」은, sao_type_idx=5에 의해 지정되는 오프셋 타입을 나타내고 있다. 또한, 「EO_1」은, sao_type_idx=1에 의해 지정되는 오프셋 타입을 나타내고 있다. 이와 같이, sao_type_idx=1, 2, 3, 4에 의해 지정되는 오프셋 타입인 에지 오프셋을 각각 EO_1, 2, 3, 4라고도 표기하고, sao_type_idx=5, 6에 의해 지정되는 오프셋 타입인 밴드 오프셋을 각각 BO_1, 2라고도 표기한다.
도 6의 (b)에 도시한 바와 같이, 오프셋 타입이 밴드 오프셋일 경우, 상기 오프셋 타입에 대하여 리스트 메모리에 저장되는 오프셋은, 오프셋 1 내지 오프셋 16의 합계 16개이다. 여기서, 오프셋 1 내지 오프셋 16은 sao_type_idx[sao_curr_depth][ys][xs]의 값이 5 또는 6일 경우의, sao_offset[sao_curr_depth][ys][xs][1] 내지 sao_offset[sao_curr_depth][ys][xs][16]에 의해 각각 지정되는 값을 가리킨다. 한편으로, 오프셋 타입이 에지 오프셋일 경우, 상기 오프셋 타입에 대하여 리스트 메모리에 저장되는 오프셋은, 오프셋 1 내지 4의 합계 4개이다. 여기서, 오프셋 1 내지 4는 sao_type_idx[sao_curr_depth][ys][xs]의 값이 1, 2, 3, 4 중 어느 하나일 경우의, sao_offset[sao_curr_depth][ys][xs][1] 내지 sao_offset[sao_curr_depth][ys][xs][4]에 의해 각각 지정되는 값을 가리킨다. 오프셋 5 내지 16에는 아무것도 저장되지 않는다.
또한, 리스트 메모리에 저장되어 있는 각 오프셋의 메모리 크기는, 오프셋 속성 설정부(613)로부터 공급되는 오프셋값 영역에 의해 결정된다. 오프셋값 영역이 -24 내지 24-1일 경우, 오프셋 1개당 5비트로 표현이 가능하고, 5비트의 메모리 크기가 필요하다.
또한, 각 QAOMU에는, QAOMU 번호가 붙어 있고, 이 QAOMU 번호에 의해 각 QAOMU는 서로 식별 가능하다. 이하에서는, QAOMU 번호가 NQ인 QAOMU를 QAOMUNQ라고도 표기한다.
QAOU 인덱스는 분할 심도 0부터 최대의 분할 심도까지를 통해서 지정되는 QAOU의 블록의 번호이다. 최대의 분할 심도가 4인 경우에는, 분할 심도의 전체 블록(1+4+16+64+256=341개)에 대하여 도 7에 도시한 바와 같이, 0 내지 340의 값이 QAOU 인덱스에 의해 지정된다.
동화상 복호 장치(1)에서 사용하는 오프셋 정보 저장부(621)에서는, 모든 분할 심도의 모든 QAOU의 오프셋을 저장할 필요가 없기 때문에, 341개의 메모리 영역을 확보할 필요가 없고, 입력되는 QAOU 정보로 지정된 구조에서 실제로 사용되는 QAOU의 수만큼의 메모리 영역이 있으면 된다. 최대의 분할 심도가 4일 때, 그 블록 수는 256 이하이기 때문에, 256개의 맵 메모리 및 리스트 메모리가 있으면 충분하다. 이 경우, 오프셋 정보 저장부(621)에서 사용하는 QAOU 인덱스는, 리프 QAOU를 식별하기 위한 일의의 인덱스, 예를 들어 리스 QAOU를 복호할 때마다 하나씩 인크리먼트하는 0부터 255 이하의 인덱스를 사용한다. 또한, 오프셋 정보 저장부(621)에는, 최대 분할 심도에 대응하는 QAOU 정보를 단위로 해서, 맵 리스트를 저장하는 것도 가능하다. 이 경우, 오프셋 정보 저장부(621)에서 사용하는 QAOU 인덱스는 0 내지 255의 번호를 사용하고, 이것은 도 7에서의 QAOMU 번호 85 내지 340에 대응한다.
도 7의 (a) 내지 (e)는, 대상의 처리 단위(예를 들어 LCU)에 포함되는 QAOMU에 붙여진 QAOMU 번호의 일례를 나타내는 도이며, (a)는 분할 심도가 0인 QAOMU에 붙여진 QAOMU 번호를 나타내고 있고, (b)는 분할 심도가 1인 QAOMU에 붙여진 QAOMU 번호를 나타내고 있고, (c)는 분할 심도가 2인 QAOMU에 붙여진 QAOMU 번호를 나타내고 있고, (d)는 분할 심도가 3인 QAOMU에 붙여진 QAOMU 번호를 나타내고 있고, (e)는 분할 심도가 4인 QAOMU에 붙여진 QAOMU 번호를 나타내고 있다.
QAOU 제어부(622)는, 적응 오프셋 필터 처리부(62)에 포함되는 각 부를 제어한다. 또한, QAOU 제어부(622)는, QAOU 구조 정보를 참조하여, 디블록 완료 복호 화상(P_DB)을 1개 또는 복수의 QAOU로 분할하여, 각 QAOU를 소정의 순서로 스캔한다. 또한, 처리 대상으로 하는 대상 QAOMU를 나타내는 QAOMU 번호를 오프셋 타입 도출부(623)에 공급한다.
오프셋 타입 도출부(623)는, 오프셋 정보 저장부(621)의 맵 메모리 및 리스트 메모리를 참조하여, QAOU 제어부(622)로부터 공급된 QAOMU 번호에 의해 지정되는 오프셋 타입을 도출한다. 또한, 도출한 오프셋 타입을, 클래스 분류부(624)에 공급한다.
클래스 분류부(624)는, 대상 QAOU에 포함되는 각 화소를, 오프셋 타입 도출부(623)로부터 공급되는 오프셋 타입에서 선택 가능한 복수의 클래스 중 어느 하나로 분류한다. 또한, 당해 오프셋 타입과, 각 화소가 분류된 클래스를 나타내는 클래스 인덱스를 오프셋 도출부(625)에 공급한다. 또한, 클래스 분류부(624)에 의한 구체적인 분류 처리에 대해서는 후술하기 때문에 여기에서는 설명을 생략한다.
오프셋 도출부(625)는, 오프셋 정보 저장부(621)의 리스트 메모리를 참조하여, 대상 QAOU에 포함되는 각 화소에 대해서, 클래스 분류부(624)로부터 공급되는 오프셋 타입 및 클래스 인덱스에 의해 지정되는 오프셋을 도출한다. 또한 오프셋 속성 설정부(613)에 의해 설정된 시프트값만큼, 오프셋을 좌측으로 비트 시프트하는 오프셋 역 시프트부(도시하지 않음)를 구비한다. 오프셋 역 시프트부는, 오프셋의 비트 심도와 화소 비트 심도를 맞추도록, 상기 오프셋의 역양자화를 행한다. 이러한 역양자화를 행함으로써, 후술하는 오프셋 가산부(626)의 가산 처리에 있어서, 동일한 비트 심도로, 화소값과 오프셋의 가산을 행하는 것이 가능하다. 각 화소에 대하여 역양자화한 오프셋은, 오프셋 가산부(626)에 공급된다.
오프셋 가산부(626)는, 대상 QAOU에서의 디블록 완료 복호 화상(P_DB)의 각 화소에 대하여 오프셋 도출부(625)로부터 공급되는 오프셋을 가산한다. 오프셋 가산부(626)는, 디블록 완료 복호 화상(P_DB)에 포함되는 모든 QAOU에 대해 처리를 행하여 얻어지는 화상을 오프셋 필터 완료 복호 화상(P_OF)으로서 출력한다.
도 8은, 적응 오프셋 필터 처리부(62)에 의한 처리의 흐름을 나타내는 흐름도이다.
(스텝 S101)
우선, QAOU 제어부(622)는, 오프셋 정보 저장부(621)로부터 QAOU 구조 정보를 취득한다.
(스텝 S102)
계속해서, QAOU 제어부(622)는, 처리 대상으로 하는 대상 QAOMU의 QAOMU 번호를 루프 변수로 하는 제1 루프를 개시한다.
(스텝 S103)
QAOU 제어부(622)는, 오프셋 타입 도출부(623)에 QAOMU 번호를 공급한다. QAOU 제어부(622)에 의한 제어에 기초하여, 오프셋 타입 도출부(623)는, QAOU 제어부(622)로부터 공급된 QAOMU 번호에 의해 지정되는 오프셋 타입을, 오프셋 정보 저장부(621)의 맵 메모리 및 리스트 메모리로부터 판독한다. 또한, 오프셋 타입 도출부(623)는, 판독한 오프셋 타입을, 클래스 분류부(624)에 공급한다.
(스텝 S104)
계속해서, QAOU 제어부(622)는, 대상 QAOMU에 포함되는 각 화소의 화소 번호를 루프 변수로 하는 제2 루프를 개시한다. 여기서, 화소 번호란, 대상 QAOMU에 포함되는 화소를 서로 식별하기 위한 것으로서, 예를 들어 대상 QAOMU에 포함되는 각 화소에 대하여 소정의 스캔 순으로 붙여진 것을 사용할 수 있다. 또한, 그러한 화소 번호 대신에, 대상 QAOMU에 포함되는 각 화소의 x 좌표 및 y 좌표를 루프 변수로 해도 된다.
(스텝 S105)
계속해서, 클래스 분류부(624)는, QAOU 제어부(622)에 의한 제어에 기초하여, 처리 대상의 화소를, 오프셋 타입 도출부(623)로부터 공급되는 오프셋 타입에서 선택 가능한 복수의 클래스 중 어느 하나로 분류한다. 또한, 당해 오프셋 타입과, 처리 대상의 화소가 분류된 클래스를 나타내는 클래스 인덱스를 오프셋 도출부(625)에 공급한다.
(스텝 S106)
계속해서, 오프셋 도출부(625)는, QAOU 제어부(622)에 의한 제어에 기초하여, 처리 대상의 화소에 대해 가산해야 할 오프셋을 오프셋 정보 저장부(621)로부터 판독한다. 즉, 클래스 분류부(624)로부터 공급되는 오프셋 타입 및 클래스 인덱스에 의해 지정되는 오프셋을 판독한다. 또한, 처리 대상의 화소에 대하여 도출된 오프셋을 오프셋 속성 설정부(613)로부터 공급되는 시프트값만큼 좌측으로 비트 시프트함으로써 역양자화한 오프셋을, 오프셋 가산부(626)에 공급한다.
(스텝 S107)
계속해서, 오프셋 가산부(626)는, QAOU 제어부(622)에 의한 제어에 기초하여, 디블록 완료 복호 화상(P_DB)의 처리 대상 화소의 화소값에 대하여 오프셋 도출부(625)로부터 공급되는 오프셋을 가산한다.
(스텝 S108)
본 스텝은, 제2 루프의 종단부이다.
(스텝 S109)
본 스텝은, 제1 루프의 종단부이다.
또한, 스텝 S103에서, 오프셋 타입 도출부(623)가 판독한 오프셋이 0(오프셋 타입=0)일 때, QAOU 제어부(622)는, 처리 대상의 QAOMU의 각 화소에 대하여 오프셋을 가산하지 않도록 오프셋 가산부(626)를 제어한다.
또한, 스텝 S105에서, 대상 화소가 클래스 0(클래스 인덱스=0)으로 분류되었을 경우, 상기 대상 화소에 대해서는, 오프셋을 가산하지 않도록 오프셋 가산부(626)를 제어한다.
(오프셋의 저장에 필요한 비트수)
계속해서, 오프셋(sao_offset)의 저장에 필요한 비트수에 대하여 설명한다. 화소 비트 심도가 10비트이고, 오프셋의 비트 심도가 9비트일 경우, 오프셋은 -29 내지 29-1의 값을 취하고, 오프셋 1개당의 비트수는 10비트로 큰 비트수를 갖게 된다. 이렇게 큰 비트수의 오프셋을 복호하는 경우, 오프셋 정보 저장부(621)는, 오프셋을 저장해 두기 위한 메모리 크기로서, 1 픽처당 최대,
(1 픽처당의 QAOMU의 총 수)×(클래스 수)×(오프셋당의 비트수)=256×16×10(비트)=40960(비트)
를 갖고 있을 것이 요구된다. 1 픽처당의 QAOMU의 총 수는, 복호 장치에서는 256개인데, 후술하는 부호화 장치에서는 341개 사용하기 위해서, 더 큰 메모리가 필요하게 된다. 이와 같이, 오프셋의 값 영역을 제한하지 않고, 오프셋의 비트 심도로 가능한 값 영역을 사용하는 경우에는, 오프셋의 비트수가 크기 때문에, 오프셋을 저장해 두기 위한 큰 메모리 크기가 필요하게 된다.
(SAO_DEPTH와 부호화 효율의 관계)
SAO_DEPTH와 PIC_DEPTH는, 양자화 오차의 관점에서 서로 가까운 관계가 있다. 적응 오프셋 필터(60)의 출력 화상의 비트 심도는, 화소 비트 심도(PIC_DEPTH)이며, SAO_DEPTH는 화소에 가해지는 오프셋의 비트 심도이기 때문에, 화소 비트 심도를 초과하는 정밀도의 오프셋을 사용해도 출력 과정에서 버려지기 때문에, 오프셋의 정밀도인 SAO_DEPTH는, PIC_DEPTH 이하로 설정되는 것이 바람직하다. 또한, SAO_DEPTH가 PIC_DEPTH보다 작은 경우에는, 입력 화상을 필터에 의해 보정 가능한 정밀도(PIC_DEPTH)보다 거친 보정밖에 행할 수 없기 때문에, 필터 효과는 감소한다.
또한, 오프셋의 정밀도(SAO_DEPTH)가 높은 경우에는, 오프셋의 부호량이 증가한다. 일반적으로, 부호화 효율은 부호화 데이터의 부호량(R), 입력 화상의 왜곡(D), 가중치(λ)를 사용하여 표현되는 레이트 왜곡 비용(D+λR)를 최소화함으로써 최적화되는 점에서도 이해할 수 있는 바와 같이, 오프셋의 정밀도는, 왜곡(D)에 대하여 마이너스, 레이트(R)에 대하여 플러스의 영향을 미치는 점에서, 정밀도의 크기에는 트레이드 오프가 존재하여 특정한 최적값이 존재한다.
또한, 본 실시예에서, 양자화된 오프셋을 일정한 비트 폭으로 표현할 수 있는 오프셋값 영역으로 제한함으로써, 오프셋 정보 저장부(621)에서 양자화된 오프셋을 저장하기 위한 비트 폭을 제한할 수 있다. 제한하지 않는 경우와 비교하여, 메모리 크기 삭감의 효과를 얻을 수 있다. 그러나, 과도하게 오프셋값 영역을 좁게 하는 것은, 오프셋이 복호 화상의 왜곡을 보정하는 효과를 작게 해버리므로, 오프셋의 가산 처리는 복호 화상의 왜곡을 제거할 수 없어, 부호화 효율이 저하되는 경우가 있다. 따라서, 부호화 효율이 저하되지 않도록 오프셋값 영역을 최적의 범위로 설정하는 것이 바람직하다.
본 실시 형태에서는, 오프셋 속성 설정부(613)는, 패턴 S1 내지 S6 중 어느 하나에 의해 오프셋 비트 심도 및 오프셋의 시프트값을 설정하고, 패턴 C1 내지 C3 중 어느 하나에 의해 오프셋값 영역을 설정한다.
(패턴 S1)
패턴 S1에서는, 도 9의 (a)에 도시한 바와 같이, 오프셋의 비트 심도(SAO_DEPTH)를 화소 비트 심도(PIC_DEPTH)와 동등하게 한다. 오프셋의 정밀도의 최대값은 화소 비트 심도가 되므로, 패턴 S1은 최대의 정밀도로 오프셋을 부호화하게 된다.
(패턴 S2)
패턴 S2에서는, 도 9의 (b)에 도시한 바와 같이, PIC_DEPTH가 10비트 이하일 때는, SAO_DEPTH를 PIC_DEPTH와 동등하게 하고, PIC_DEPTH가 11비트 이상일 때는, SAO_DEPTH를 10으로 한다. 패턴 S2에서 오프셋의 비트 심도의 상한을 10비트로 하고 있다. 발명자의 지식에 의해, 복호 화상의 양자화 스텝(QP)의 값이 작을 때(비트 레이트가 높을 때), 오프셋의 비트 심도가 화소 비트 심도와 동일한 경우가, 오프셋의 비트 심도를 작게 하는 경우에 비해 부호화 효율이 더 높고, 반대로, 양자화 스텝(QP)의 값이 클 때, 오프셋의 비트 심도가 화소 비트 심도보다 작은 것이, 화소 비트 심도와 동일한 경우보다 부호화 효율이 더 높아진다. 발명자의 실험에서는, 양자화 파라미터(qp)가 12 내지 27인 영역에서, 오프셋의 비트 심도를 패턴 S2와 같이 정함으로써, 화소 비트 심도가 9비트 이하일 때에 오프셋의 비트 심도가 8비트이며, 화소 비트 심도가 10비트 이상일 때에 오프셋의 비트 심도가 9비트일 경우와 비교하여, 부호화 효율이 향상되는 것으로 확인되었다. 따라서, 패턴 S2에서, 10비트를 경계로 화소 비트 심도에 대한 의존성을 변화시킴으로써, 패턴 S1과 같이 오프셋의 비트 심도와 화소 비트 심도를 동등하게 한 경우에 비해, 오프셋의 부호량을 작게 할 수 있어, 높은 부호화 효율을 얻는 것이 가능하다.
(패턴 S3)
패턴 S3에서는, 도 9의 (c)에 도시한 바와 같이, PIC_DEPTH가 9비트 이하일 때는, SAO_DEPTH를 PIC_DEPTH와 동등하게 하고, PIC_DEPTH가 10비트 이상일 때는, SAO_DEPTH를 9로 한다. 패턴 S3에서 오프셋의 비트 심도의 상한을 9비트로 하고 있다. 패턴 S3에서도, 패턴 S2와 마찬가지로, 오프셋의 부호량을 작게 할 수 있어, 높은 부호화 효율을 얻는 것이 가능하다.
(패턴 S4)
패턴 S4에서는, 도 9의 (d)에 도시한 바와 같이, PIC_DEPTH가 10비트 이하일 때는, SAO_DEPTH를 PIC_DEPTH와 동등하게 하고, PIC_DEPTH가 11비트 이상일 때는, SAO_DEPTH를 10-floor((PIC_DEPTH-10)/STEP)으로 한다. 여기서 함수 floor(x)는, x 이하의 최대의 정수를 부여하는 함수이다. 패턴 S4에서는, 화소 비트 심도가 10비트 이상에서, 화소 비트가 STEP 비트만큼 증가(감소)할 때마다 오프셋의 비트 심도가 1비트만큼 증가(감소)하는 것을 의미한다. 도 9의 (e)에서는, 패턴 S4에서의 STEP=2의 경우를 나타내고 있으며, 화소 비트 심도가 2비트 증가할 때마다, 오프셋의 비트 심도는 1비트 증가하고 있다. 이러한 구성으로 함으로써, 화소 비트 심도의 크기를 고려하면서, 비트 레이트의 크기에 대하여 패턴 S2 및 패턴 S3보다 자유도가 높은 대응이 가능하다.
또한, 패턴 S1 내지 패턴 S4에 공통적으로, 시프트값은 PIC_DEPTH와 SAO_DEPTH의 차분값(PIC_DEPTH-SAO_DEPTH)으로 표현된다. 상기의 패턴 S1 내지 S4에서의 오프셋 비트 심도 및 시프트값의 변경은 메모리 크기 및 처리량의 증가를 동반하지 않고 오프셋 비트 심도 및 시프트값을 설정하고 있으므로, 부호화 효율의 개선이 가능하다.
(패턴 S5)
패턴 S5에서는 오프셋의 비트 심도를 명시적으로 부호화한다. 구체적으로는, 오프셋의 비트 심도와 소정의 값의 차를 부호화한다. 소정의 값은 8, 또는, 화소 비트 심도가 적당하며, 전자의 경우, SAO_DEPTH-8이 부호화되고, 후자의 경우에는 PIC_DEPTH-SAO_DEPTH가 적당하다. 또한, 오프셋의 비트 심도는, 부호화 데이터의 각종 파라미터 정보나 헤더, 또는 QAOU 정보의 일부로서 부호화해도 상관없다. QAOU 정보의 일부로서는, 리프 QAOU에 화소 비트 심도를 포함시켜 두어도 되고, 소정의 계층(예를 들어 최상위 계층의 QAOU나 제1 계층의 QAOU)의 QAOU 정보에 화소 비트 심도를 포함시켜 두어도 상관없다. 부호화 데이터의 일부로서 부호화함으로써, 복호 장치 및 부호화 장치에서 비트 심도를 최적의 값으로 설정함으로써 부호화 효율을 최대화시키는 효과가 얻어진다. 또한, 비트 심도를 QAOU 정보로 부호화할 경우에는, QAOU의 심도(sao_curr_depth)에 따라서 비트 심도를 변경함으로써 오프셋을 저장하는 메모리의 저감이 가능하다. 많은 오프셋이 출현할 가능성이 있는 것은 sao_curr_depth가 큰 경우이기 때문에, sao_curr_depth가 큰 경우에 비트 심도를 작게 하고, sao_curr_depth가 작은 경우에 비트 심도를 크게 설정함으로써 필요한 메모리 크기의 삭감이 가능하다. 예를 들어, sao_curr_depth=0 내지 1의 경우에는, 오프셋의 비트 심도=화소 비트 심도(패턴 S1)로 하고, sao_curr_depth=2 내지 4에서는, 오프셋의 비트 심도에 상한을 설정하는(패턴 S2) 등이 적당하며, 이렇게 비트 폭을 부호화한다. 또한, QAOU의 심도마다 오프셋의 비트 폭을 부호화하거나, QAOU의 심도에 의하지 않고 오프셋의 비트 폭을 1개 사용하는지를 나타내는 플래그를 부호화하여, QAOU의 심도마다 부호화할지 여부를 전환하는 것도 적당하다.
(패턴 S6)
패턴 S6에서는, 명시적인 부호화 없이, sao_curr_depth에 따라서 비트 심도를 결정한다. 예를 들어, sao_curr_depth=0 내지 1의 경우에는, 오프셋의 비트 심도=화소 비트 심도(패턴 S1)로 하고, sao_curr_depth=2 내지 4에서는, 오프셋의 비트 심도에 상한을 설정하는(패턴 S2) 등이 적당하다.
(패턴 C1)
패턴 C1에서는, SAO_DEPTH에 따라서 오프셋값 영역을 설정한다. 이하에서는 오프셋값 영역의 값을 나타내는 최대의 비트 길이를 CLIP_BIT로 한다. 구체적으로는, CLIP_BIT=SAO_DEPTH-K의 계산에 의해, 오프셋값 영역을 -2CLIP _ BIT -1 내지 2CLIP _ BIT -1-1이라고 정한다. 발명자의 실험에 의하면, K=4가 적당한 것을 알아내었다. 즉, K=4의 경우에는, 오프셋값 영역에 의해 오프셋의 범위를 제한해도 부호화 효율의 저하가 없는 것을 확인하였다. K=4는, 가장 자주 사용되는 화소의 비트 심도가 8인 경우에 적당하다. 화소 비트 심도가 8인 경우, 오프셋의 비트 심도(SAO_DEPTH)도 8이며, CLIP_BIT=8-K=4가 된다. 1개의 오프셋을 4비트로 저장할 수 있게 되면, 8비트의 바이트를 단위로서 취급하는 소프트웨어 등에서, 1바이트에 1개의 오프셋을 패킹하여 저장하는 것이 가능하여, 간이하게 메모리 크기의 삭감이 가능하다.
(패턴 C2)
패턴 C2에서는, SAO_DEPTH에 의하지 않고 오프셋값 영역을 설정한다. 구체적으로는, CLIP_BIT=8로서, 오프셋값 영역을 -27 내지 27-1이라고 정한다.
또한, 일반적으로, SAO_DEPTH에 의하지 않는 상수 N을 사용하여 CLIP_BIT=N으로 해도 된다. SAO_DEPTH에 의하지 않고 오프셋값 영역을 설정하는 경우에는, 메모리 크기를 작게 하는 효과를 얻기 때문에, 오프셋의 비트 심도보다 작은 값으로 설정하는 것이 바람직하다.
(패턴 C3)
패턴 C3에서는, 오프셋값 영역을, QAOU의 계층에 따라서 결정한다. sao_curr_depth가 작은 경우(예를 들어 0 내지 1)에는, 오프셋의 비트 심도에 의하지 않고 오프셋값 영역을 결정하고, sao_curr_depth가 큰 경우(예를 들어 2 내지 4)에는 오프셋의 비트 심도에 의해 결정하는 것이 적당하다. 예를 들어, 전자는 CLIP_BIT=8(패턴 C2), 후자는 SAO_DEPTH-K 비트(패턴 C1)로 하는 방법이 있다. 또한, 오프셋의 비트 심도를 QAOU의 계층에 따라서 변경하는 경우에는, 결과적으로 고정의 비트수라도 상관없는 경우가 있다. 예를 들어, CLIP_BIT=4로 하는 것이 적당하다.
(오프셋의 비트수의 구체예 1)
계속해서, 본 실시 형태에 따른 오프셋(sao_offset)의 비트수의 제1 구체예에 대하여 설명한다. 본 예에서는, 화소 비트 심도를 10비트로 하고, 시프트값의 설정을 패턴 S2에 의해 행하고, 오프셋값 영역의 설정을 패턴 C1에 의해 행하는 경우를 설명한다. 패턴 S2에서는 오프셋의 비트 심도는 10비트로 설정되고, 패턴 C1에서는 오프셋값 영역은 10-4=6비트로 설정된다. 오프셋 1개당의 비트수가 6비트라는 것은, 오프셋이 취할 수 있는 값을, -32부터 31까지의 값으로 제한하는 것에 대응한다. 본 예의 경우, 오프셋 정보 저장부(621)는, 오프셋을 저장해 두기 위한 메모리 크기로서, 1 픽처당 최대,
(1 픽처당의 QAOMU의 총 수)×(클래스 수)×(오프셋당의 비트수)=256×16×6(비트)=24576(비트)
을 갖고 있으면 충분하다.
따라서, 오프셋이 본 예의 값 영역을 갖는 구성으로 함으로써, 종래예에 비해, 오프셋 정보 저장부(621)에 필요한 메모리 크기를 대략 3/5으로 감소시킬 수 있다.
부호화 데이터(#1)에 포함되는 오프셋의 부호량을 삭감할 수 있으므로, 부호화 효율의 향상을 도모할 수 있다. 또한, 과도한 오프셋이 가산되는 것이 억제되므로, 적절한 화질이 보증된다.
(오프셋의 비트수의 구체예 2)
계속해서, 본 실시 형태에 따른 오프셋(sao_offset)의 비트수의 제2 구체예에 대하여 설명한다. 본 예에서는, 화소 비트 심도를 10비트로 하고, 시프트값의 설정을 패턴 S2에 의해 행하고, 오프셋값 영역의 설정을 패턴 C2에 의해 행하는 예를 설명한다. 패턴 S2로부터 오프셋의 비트 심도는 10비트로 설정되고, 패턴 C2로부터 오프셋값 영역은 8비트로 설정된다. 오프셋 1개당의 비트수가 8비트라는 것은, 오프셋이 취할 수 있는 값을, 예를 들어 -128부터 127까지의 값으로 제한하는 것에 대응한다. 본 예의 경우, 오프셋 정보 저장부(621)는, 오프셋을 저장해 두기 위한 메모리 크기로서, 1 픽처당 최대,
(1 픽처당의 QAOMU의 총 수)×(클래스 수)×(오프셋당의 비트수)=256×16×8(비트)=32768(비트)
을 갖고 있으면 충분하다.
따라서, 오프셋이 본 예의 비트수를 갖는 구성으로 함으로써, 종래예에 비해, 오프셋 정보 저장부(621)에 필요한 메모리 크기를 대략 4/5로 감소시킬 수 있다.
또한, 부호화 데이터(#1)에 포함되는 오프셋의 부호량을 삭감할 수 있으므로, 부호화 효율의 향상을 도모할 수 있다. 또한, 과도한 오프셋이 가산되는 것이 억제되므로, 적절한 화질이 보증된다.
또한, 오프셋의 비트수를 제한하면, 부호화 데이터에 포함되는 오프셋 정보의 부호량을 작게 할 수 있지만, 과도하게 제한해버리면, 적응 오프셋 필터를 구비하는 것의 이점이 작아져버리고, 부호화 데이터에 포함되는 잔차 데이터(잔차 화상의 화소값)의 부호량이 커져버린다는 문제가 있다.
(오프셋의 비트수의 구체예 3)
계속해서, 오프셋(sao_offset)의 비트수의 제3 구체예에 대하여 설명한다. 본 예 패턴 C1, C2 중 어느 하나에서는, 오프셋 타입이, 에지 오프셋(오프셋 타입=1 내지 4)인지, 밴드 오프셋(오프셋 타입=5 내지 6)인지에 따라, 오프셋의 비트수에 대하여 상이한 값을 설정한다. 여기에서는, 화소 비트 심도를 10비트로 할 경우를 예로 들어, 시프트값의 설정을 패턴 S2에 의해 행하고, 에지 오프셋의 오프셋값 영역의 설정을 패턴 C2에 의해 행하고, 밴드 오프셋의 오프셋값 영역의 설정을 패턴 C1에 의해 행하는 방법을 설명한다.
화소 비트 심도가 10비트인 경우, 패턴 S2에서는 오프셋의 비트 심도는 10비트로 설정된다. 에지 오프셋의 오프셋 타입에 속하는 오프셋(이하, 에지 오프셋의 오프셋)은 패턴 C2로부터 8비트에 값 영역이 설정된다. 밴드 오프셋의 오프셋 타입에 속하는 오프셋(이하, 밴드 오프셋의 오프셋)은 패턴 C1로부터 6비트에 값 영역이 설정된다. 보다 일반적으로는, 에지 오프셋의 오프셋의 비트수를 N 비트로 하고, 밴드 오프셋의 오프셋의 비트수를 M 비트로 했을 때, N≥M이 만족되도록 오프셋의 비트수를 정한다.
오프셋 정보 저장부(621)에서 확보가 필요한 메모리 크기는, QAOU 단위로, 오프셋 타입의 클래스 수×오프셋의 비트수이기 때문에, 오프셋의 클래스 수가 에지 오프셋보다 큰 밴드 오프셋의 비트수를 작게 하면, 오프셋을 오프셋 정보 저장부(621)에서 사용하는 메모리 영역을 유효하게 활용할 수 있다.
이렇게 오프셋 타입에 따라, 오프셋의 비트수를 상이하게 함으로써, 오프셋 정보 저장부(621)에 과도한 메모리 크기를 요구하지 않고, 부호화 효율의 향상을 도모할 수 있다. 메모리 영역을 가장 유효적으로 활용할 수 있다.
또한, 오프셋이 취할 수 있는 값을 제한하기 위한 임계값(th)이 2m-1보다 크고, 2m 이하일 때, 당해 오프셋을 부호화하기 위한 부호화 방식으로서, m 비트의 고정 길이 부호화/복호 방식을 사용할 수 있다. 또한, 최대값을 th로 하는 Truncated unary 부호화나, Truncated Rice 부호화 등의 가변 길이 부호화/복호 방식을 사용할 수 있다. 또한, 상기 최대값 th는, 오프셋 속성 설정부(613)로부터 공급되는 오프셋값 영역에 의해 결정된다. 또한, 동화상 복호 장치(1)는, 이와 같이 하여 부호화된 오프셋을 복호할 수 있다.
이상의 구성에서는 오프셋 속성 설정부(613)에 있어서, 오프셋의 비트 심도, 오프셋값 영역 및 시프트값이 설정된다. 적응 오프셋 필터 정보 복호부(61)에서는, 오프셋값 영역의 범위의 값을 갖는 양자화 오프셋이 복호되어, 개개의 오프셋에 대해 오프셋값 영역 이상의 비트 폭의 저장 영역을 갖는 오프셋 정보 저장부(621)에 저장된다. 본 실시 형태에서는, 오프셋값 영역이 오프셋의 비트 심도에 따라서 결정하는 것을 특징으로 한다. 또한, 오프셋의 비트 심도는, 화소의 비트 심도에 따라서 결정한다. 이로 인해, 오프셋의 비트 심도를 화소의 비트 심도에 따라서 결정하는 것도, 본 실시 형태의 특징이다.
또한, 실시 형태 1에서의 적응 오프셋 필터 정보 복호부(61)는, 복호 후의 오프셋을 저장하는 저장부와 상기 저장부로부터 얻어지는 오프셋을 역양자화를 행하는 역양자화부를 구비하여, 오프셋 도출부(625)에서의 역양자화 처리를 생략하는 형태로 해도 된다. 이 경우, 저장부는 오프셋 속성 설정부(613)에 의해 설정되는 오프셋값 영역으로 제한되는 오프셋을 저장하는 것과, 역양자화부는 오프셋 속성 설정부(613)에 의해 설정되는 시프트값에 따라서 좌측으로 시프트를 행하여 역양자화 처리를 행하는 것을 특징으로 한다.
오프셋 정보 복호부(611)는, 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에 오프셋을 가산하는 오프셋 가산부(626)에 의해 참조되는 각 오프셋을 부호화 데이터(#1)로부터 복호하는 것이며, 도시되지 않은 화소 비트 심도에 따라서 정해지는 오프셋값 영역 및 시프트값을 설정하여, 오프셋값 영역으로 제한되는 오프셋을 복호하는 오프셋 복호 수단을 구비하고 있다고 표현할 수도 있다.
또한, 본 실시 형태에 따른 적응 오프셋 필터(60)는, 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터 장치이며, 부호화 데이터에 포함되는 오프셋 타입 지정 정보를 참조하여, 처리 대상의 단위 영역에서의 오프셋 속성을 설정하는 오프셋 속성 설정부(613)와, 상기 설정된 오프셋 속성에 포함되는 오프셋값 영역에 따른 비트 폭을 갖는 오프셋을 복호하는 오프셋 정보 복호부(611)와, 상기 입력 화상의 각 화소값에 상기 오프셋을 가산하는 오프셋 가산부(626)를 구비하고 있는 화상 필터 장치라고 표현할 수도 있다.
또한, 오프셋 정보 복호부(611)는, 상기 오프셋 복호 수단 외에, 복수의 오프셋 타입 중, 처리 대상의 단위 영역이 속하는 오프셋 타입을 결정하는 결정 수단과, 상기 결정 수단에 의해 결정된 오프셋 타입에 따라서 서로 다른 비트 폭을 갖는 오프셋을 복호하는 오프셋 복호 수단을 구비하고 있는 구성으로 해도 된다.
또한, 상기 오프셋 타입 지정 정보는, 각 단위 영역에서의 상기 입력 화상의 화소값의 비트 심도를 포함하고, 오프셋 정보 복호부(611)는, 상기 화소값의 비트 심도에 따른 비트 폭을 갖는 오프셋을 복호하는 구성으로 할 수 있다.
이하에서는, 클래스 분류부(624)에 의한 분류 처리의 구체예에 대하여 설명한다. 클래스 분류부(624)는, 이하의 분류 처리예 중, 부호화 데이터(#1)를 생성하는 동화상 부호화 장치에서의 분류 처리에 대응하는 분류 처리를 행하는 것이 바람직하다.
(클래스 분류부(624)에 의한 분류 처리예 1)
클래스 분류부(624)에 의한 분류 처리의 제1 예에 대해서, 도 10의 (a) 내지 (f) 내지 도 12를 참조하여 설명한다.
(오프셋 타입=1 내지 4(에지 오프셋)일 때)
오프셋 타입 도출부(623)로부터 공급되는 오프셋 타입이 1 내지 4 중 어느 하나일 때, 클래스 분류부(624)는, 처리 대상의 화소의 근방에 에지가 존재하는지의 여부 및 에지가 존재하는 경우에는 에지의 종류를 판정하고, 판정한 결과에 따라, 당해 처리 대상의 화소를 복수의 클래스 중 어느 하나로 분류한다.
보다 구체적으로는, 우선, 클래스 분류부(624)는, 처리 대상 화소 x의 화소값 pic[x]와, 상기 처리 대상 화소에 인접하거나 또는 정점을 공유하는 2개의 화소 a, b의 화소값 pic[a], pic[b]의 차분의 부호
Sign(pic[x]-pic[a]) 및
Sign(pic[x]-pic[b])
를 산출한다. 여기서, Sign(z)는,
Sign(z)=+1(z>0일 때)
Sign(z)=0(z=0일 때)
Sign(z)=-1(z<0일 때)
의 각 값을 취하는 함수이다. 또한, 어느 화소를 화소 a 및 화소 b로서 사용할지는, 구체적으로는 오프셋 타입에 의존하여, 이하와 같이 정해진다.
·오프셋 타입=1(sao_type_idx=1)일 때
도 10의 (a)에 도시한 바와 같이, 처리 대상 화소 x의 좌측에 인접하는 화소를 화소 a라 하고, 처리 대상 화소의 우측에 인접하는 화소를 화소 b라 한다.
·오프셋 타입=2(sao_type_idx=2)일 때
도 10의 (b)에 도시한 바와 같이, 처리 대상 화소 x의 상측에 인접하는 화소를 화소 a라 하고, 처리 대상 화소의 하측에 인접하는 화소를 화소 b라 한다.
·오프셋 타입=3(sao_type_idx=3)일 때
도 10의 (c)에 도시한 바와 같이, 처리 대상 화소 x의 좌측 상단의 정점을 공유하는 화소를 화소 a라 하고, 처리 대상 화소의 우측 하단의 정점을 공유하는 화소를 화소 b라 한다.
·오프셋 타입=4(sao_type_idx=4)일 때
도 10의 (d)에 도시한 바와 같이, 처리 대상 화소 x의 좌측 하방의 정점을 공유하는 화소를 화소 a라 하고, 처리 대상 화소의 우측 상단의 정점을 공유하는 화소를 화소 b라 한다.
도 11의 (a)는, 처리 대상 화소 x의 화소값 pic[x]와 화소 a 또는 b의 화소값의 대소 관계를 나타내는 그래프, 및 그 대소 관계에 따른 함수 Sign의 값을 나타내는 도면이다. 도 11의 (a)에 나타내는 그래프에서 pic[x]가 붙어 있는 검은 원은, 처리 대상 화소 x의 화소값을 나타내는 것이며, pic[x]가 붙어 있지 않은 검은 원은, 처리 대상 화소 a 또는 b의 화소값을 나타내는 것이다. 또한, 도 11의 (a)에 나타내는 그래프에서의 상하 방향은, 화소값의 대소를 나타내고 있다.
계속해서, 클래스 분류부(624)는, Sign(pic[x]-pic[a]) 및 Sign(pic[x]-pic[b])에 기초하여, 이하의 수식 (1-1)에 의해 EdgeType을 도출한다.
EdgeType=Sign(pic[x]-pic[a])+Sign(pic[x]-pic[b])+2 … (1-1)
도 11의 (b)는, 처리 대상 화소 x의 화소값과, 화소 a 및 b의 화소값의 대소 관계를 나타내는 그래프, 및 그 대소 관계에 따른 EdgeType의 값을 도시하는 도면이다. 도 11의 (b)에서, 각 그래프의 중심의 검은 원은, 처리 대상 화소 x의 화소값을 나타내고 있고, 양단의 검은 원은, 화소 a 및 b의 화소값을 나타내고 있다. 또한, 도 11의 (b)에 나타내는 그래프에서의 상하 방향은, 화소값의 대소를 나타내고 있다.
계속해서, 클래스 분류부(624)는, 도출한 EdgeType에 기초하여, 처리 대상 화소 x가 속해야 할 클래스의 클래스 인덱스(class_idx)를 이하와 같이 도출한다.
class_idx=EoTbl[EdgeType]
여기서, EoTbl[EdgeType]은, EdgeType로부터 class_idx를 도출하기 위해 사용되는 변환 테이블이다. 당해 변환 테이블(EoTbl)의 구체예를 도 11의 (d)에 나타내었다.
도 11의 (d)에 도시한 바와 같이, 클래스 분류부(624)는, 처리 대상 화소 x, 화소 a 및 화소 b를 포함하는 영역에 에지가 존재하지 않는 경우(이하, 평탄할 경우라고도 함), 처리 대상 화소 x를 클래스 0(class_idx=0)으로 분류한다. 도 11의 (c)는 도 11의 (b)에 나타낸 각 그래프와 lass_idx의 대응을 나타내고 있다.
(오프셋 타입=5 내지 6(밴드 오프셋)일 때)
오프셋 타입 도출부(623)로부터 공급되는 오프셋 타입이 5 내지 6 중 어느 하나일 때, 클래스 분류부(624)는, 처리 대상 화소 x의 화소값 pic[x]에 따라, 당해 처리 대상 화소의 화소값을 복수의 클래스 중 어느 하나로 분류한다.
·오프셋 타입=5(sao_type_idx=5)일 때
클래스 분류부(624)는, 처리 대상 화소 x의 화소값 pic[x]가,
(max×1/4)≤pic[x]≤(max×3/4)
를 만족하고 있을 경우에, 당해 처리 대상 화소를 클래스 0 이외의 클래스로 분류한다. 즉, 처리 대상 화소의 화소값이, 도 12의 (a)에서의 사선의 범위 내인 경우에, 당해 처리 대상 화소를 클래스 0 이외의 클래스로 분류한다. 또한, 상기 max는, 처리 대상 화소 x의 화소값이 취할 수 있는 최대값을 나타내고 있으며, 예를 들어 max=255이다. 또한, max=255일 때, 상기의 조건은,
8≤(pic[x]/8)≤23
으로 표현할 수도 있다.
·오프셋 타입=6(sao_type_idx=6)일 때
클래스 분류부(624)는, 처리 대상 화소 x의 화소값 pic[x]이,
pic[x]≤(max×1/4) 또는 (max×3/4)≤pic[x]
를 만족하고 있을 경우에, 당해 처리 대상 화소를 클래스 0 이외의 클래스로 분류한다. 즉, 처리 대상 화소의 화소값이, 도 12의 (b)에서의 사선의 범위 내인 경우에, 당해 처리 대상 화소를 클래스 0 이외의 클래스로 분류한다. 또한, 상기 max는, 처리 대상 화소 x의 화소값이 취할 수 있는 최대값을 나타내고 있으며, 예를 들어 max=255이다. 또한, max=255일 때, 상기의 조건은,
(pic[x]/8)≤7 또는 24≤(pic[x]/8)
로 표현할 수도 있다.
클래스 분류부(624)에 의한 클래스 분류 처리를 보다 구체적으로 설명하면 이하와 같다.
오프셋 타입이 5 내지 6 중 어느 하나일 때, 클래스 분류부(624)는, 처리 대상 화소 x가 속해야 할 클래스의 클래스 인덱스(class_idx)를 이하와 같이 도출한다.
class_idx=EoTbl[sao_type_idx][pic[x]/8]
여기서, EoTbl[sao_type_idx][pic[x]/8]은, 처리 대상 화소 x의 화소값 pic[x]와 sao_type_idx로부터, class_idx를 도출하기 위해 사용되는 변환 테이블이다. 당해 변환 테이블(EoTbl)의 구체예를 도 12에 나타내었다. 도 12의 (c)에서 「BO_1」은, sao_type_index=5인 것을 나타내고 있고, 「BO_2」는, sao_type_index=6인 것을 나타내고 있다.
도 12의 (c)에 도시한 바와 같이, sao_type_index=5일 때, 클래스 분류부(624)는, 처리 대상 화소 x의 화소값 pic[x]이 8≤(pic[x]/8)≤23을 만족할 때, pic[x]의 크기에 따라, 처리 대상 화소 x를 클래스 인덱스 1부터 16까지 중 어느 하나의 클래스로 분류한다.
한편으로, sao_type_index=6일 때, 클래스 분류부(624)는, 처리 대상 화소 x의 화소값 pic[x]가 pic[x]/8)≤7 또는 24≤(pic[x]/8)을 만족할 때, pic[x]의 크기에 따라, 처리 대상 화소 x를 클래스 인덱스 1부터 16까지 중 어느 하나의 클래스로 분류한다.
일반적으로, 화상의 비트 심도가 PIC_DEPTH일 때, max=2PIC _ DEPTH-1이며, 도 12의 (c)에서의 pic/8 대신에 pic/2( PIC _ DEPTH -5)를 사용하여 클래스의 분류를 행한다.
(클래스 분류부(624)에 의한 분류 처리예 2)
계속해서, 클래스 분류부(624)에 의한 분류 처리의 제2 예에 대하여 설명한다.
본 처리예에서는, 클래스 분류부(624)는 수식 (1-1) 대신에, 이하의 수식 (1-2)를 사용하여 EdgeType을 도출한다. 그 밖에는 분류 처리예 1과 마찬가지이다.
EdgeType=Sign((pic[x]>>shift)-(pic[a]>>shift))+Sign((pic[x]>>shift)-(pic[b]>>shift))+2 … (1-2)
여기서, 「>>」는 우측 비트 시프트를 나타내고 있고, 「shift」는, 비트 시프트의 크기를 나타내고 있다. 「shift」의 구체적인 값은, 예를 들어 화소값의 비트 심도와 정의 상관을 갖도록 정할 수 있다.
분류 처리예 1에 의한 분류 처리에서는, 화소값의 구배가 매우 작은 경우에도, 화소값의 구배가 0이 아니면, Sign의 값은 비0이 된다. 따라서, 분류 처리예 1에 의한 분류 처리는, 노이즈의 영향을 받기 쉽다는 측면을 갖는다.
본 처리예에서는, 화소값을 우측 시프트하고나서 차분을 취하므로, EdgeType의 값이 노이즈의 영향을 받기 어려워져, 부호화 효율이 향상된다는 효과가 있다.
또한, 본 처리예에서는, 수식 (1-2) 대신에, 이하의 수식 (1-3)을 사용해도 된다.
EdgeType=Sign((pic[x]-pic[a])>>shift)+Sign((pic[x]-pic[b])>>shift))+2 … (1-3)
즉, 화소값의 차분을 취한 후에, 우측 비트 시프트를 행해도 된다. 수식 (1-3)을 사용함으로써도, 수식 (1-2)를 사용한 경우와 마찬가지의 효과를 발휘한다.
(클래스 분류부(624)에 의한 분류 처리예 3)
계속해서, 클래스 분류부(624)에 의한 분류 처리의 제3 예에 대하여 설명한다.
본 처리예에서는, 클래스 분류부(624)는 분류 처리예 1에서 설명한 함수 Sign의 정의를 이하와 같이 변경한다. 그 밖에는 분류 처리예 1과 마찬가지이다.
Sign(z)=+1(z>th일 때)
Sign(z)=0(-th≤z≤th일 때)
Sign(z)=-1(z<-th일 때)
여기서, th는, 미리 정해진 값을 갖는 임계값이다. 임계값(th)의 구체적인 값은, 그 절댓값이, 예를 들어 화소값의 비트 심도와 정의 상관을 갖도록 정할 수 있다.
본 처리예에서도, EdgeType의 값이 노이즈의 영향을 받기 어려워져, 높은 부호화 효율을 얻을 수 있다.
(클래스 분류부(624)에 의한 분류 처리예 4)
계속해서, 클래스 분류부(624)에 의한 분류 처리의 제4 예에 대하여 설명한다.
본 처리예에서는, 클래스 분류부(624)는 도 12의 (c)에 나타낸 EoTbl[sao_type_idx][pic[x]/8] 대신에, 도 13에 나타낸 EoTbl[sao_type_idx][pic[x]/8]을 사용한다.
도 13에 도시한 바와 같이, 본 처리예에서는, pic[x]/8의 값이 8 및 9 중 어느 하나일 경우, 처리 대상 화소 x는, sao_type_index=5이어도, sao_type_index=6이어도, 클래스 인덱스가 0이 아닌 클래스로 분류된다. 또한, pic[x]/8의 값이 22 및 23 중 어느 하나일 경우, 처리 대상 화소 x는, sao_type_index=5이어도, sao_type_index=6이어도, 클래스 인덱스가 0이 아닌 클래스로 분류된다.
또한, 본 처리예에서는, 처리 대상 화소의 화소값은, 그 값이 15 이하인 경우(pic[x]/8=0 또는 1일 경우), MIN에 클립된다. 또한, 처리 대상 화소의 화소값은, 그 값이 240 이상인 경우(pic[x]/8=30 또는 31일 경우), MAX에 클립된다. 여기서, MIN 및 MAX로서는,
·MIN=15, MAX=240
·MIN=16, MAX=239
·MIN=16, MAX=235
중 어느 하나의 조합을 사용하는 것이 바람직하다.
분류 처리예 1에서는, sao_type_index=5일 때에 클래스 0으로 분류되는 처리 대상 화소는, sao_type_index=6일 때에 클래스 0이 아닌 클래스로 분류된다. 또한, sao_type_index=6일 때에 클래스 0으로 분류되는 처리 대상 화소는, sao_type_index=5일 때에 클래스 0이 아닌 클래스로 분류된다.
따라서, 분류 처리예 1에서는, sao_type_index=5인지, sao_type_index=6인지에 따라, 오프셋을 가산한 후의 화소값이 크게 상이할 수 있기 때문에, 부호화 효율이 기대되는 만큼 향상되지 않는다는 문제가 발생할 수 있다. 또한, 이러한 문제는, 오프셋 필터 전 화상의 화소값이 pic[x]/8의 값이 8 및 9 중 어느 하나, 또는 pic[x]/8의 값이 22 및 23 중 어느 하나인 경우에 현저한 것이 될 수 있다.
본 처리예에서는, pic[x]/8의 값이 8 및 9 중 어느 하나일 경우, 처리 대상 화소 x는, sao_type_index=5이어도, sao_type_index=6이어도, 클래스 인덱스가 0이 아닌 클래스로 분류되고, pic[x]/8의 값이 22 및 23 중 어느 하나인 경우, 처리 대상 화소 x는, sao_type_index=5이어도, sao_type_index=6이어도, 클래스 인덱스가 0이 아닌 클래스로 분류되므로, 상술한 문제가 발생하기 어렵다. 따라서, 본 처리예의 처리를 행함으로써, 부호화 효율의 향상을 도모할 수 있다.
또한, 본 처리예에서는, pic[x]/8의 값이 8 및 9 중 어느 하나일 경우 및 pic[x]/8의 값이 22 및 23 중 어느 하나일 경우, 처리 대상 화소 x는, sao_type_index=5이어도, sao_type_index=6이어도, 클래스 인덱스가 0이 아닌 클래스로 분류되는 것으로 했지만, 이것은 본 처리예를 한정하는 것이 아니며, pic[x]/8의 값이 소정의 범위일 때에, 처리 대상 화소 x는, sao_type_index=5이어도, sao_type_index=6이어도, 클래스 인덱스가 0이 아닌 클래스로 분류되는 처리를 행하면 된다.
일반적으로, 화상의 화소 비트 심도가 PIC_DEPTH일 때, max=2PIC _ DEPTH-1이며, 도 13에서의 pic/8 대신에 pic/2( PIC _ DEPTH -5)를 사용하여 클래스의 분류를 행한다.
이와 같이, 본 처리예의 분류 처리를 행하는 클래스 분류부(624)는, 상기 대상 화소의 화소값이 소정의 범위 내일 때, 상기 대상 화소를 포함하는 단위 영역이 속하는 오프셋 타입이 상기 제1 및 상기 제2 오프셋 타입 중 어느 경우라도, 상기 대상 화소를, 오프셋을 가산하는 오프셋 클래스로 분류하는 것이라고 표현할 수도 있다.
(동화상 부호화 장치(2))
이하에서는, 부호화 대상 화상을 부호화함으로써 부호화 데이터(#1)를 생성하는 동화상 부호화 장치(2)에 대해서, 도 14 내지 도 18의 (a) 내지 (d)를 참조하여 설명한다. 동화상 부호화 장치(2)는, 그 일부에, H.264/MPEG-4.AVC에 채용되어 있는 방식, VCEG(Video Coding Expert Group)에서의 공동 개발용 코덱인 KTA 소프트웨어에 채용되어 있는 방식, 그 후계 코덱인 TMuC(Test Model under Consideration) 소프트웨어에 채용되어 있는 방식 및 HM(HEVC TestModel) 소프트웨어에 채용되어 있는 기술을 포함하고 있다.
도 14는, 본 실시 형태에 따른 동화상 부호화 장치(2)의 구성을 도시하는 블록도이다. 도 14에 도시한 바와 같이, 동화상 부호화 장치(2)는, 변환·양자화부(21), 가변 길이 부호 부호화부(22), 역양자화·역변환부(23), 버퍼 메모리(24), 인트라 예측 화상 생성부(25), 인터 예측 화상 생성부(26), 움직임 벡터 검출부(27), 예측 방식 제어부(28), 움직임 벡터 용장성 삭제부(29), 가산기(31), 감산기(32), 디블록킹 필터(33), 적응 필터(70) 및 적응 오프셋 필터(80)를 구비하고 있다. 동화상 부호화 장치(2)는, 동화상(#10)(부호화 대상 화상)을 부호화함으로써, 부호화 데이터(#1)를 생성하는 장치이다.
변환·양자화부(21)는, (1) 부호화 대상 화상에서 예측 화상(Pred)을 감산한 예측 잔차(D)를 블록마다 DCT 변환(Discrete Cosine Transform)하고, (2) DCT 변환에 의해 얻어진 DCT 계수를 양자화하고, (3) 양자화에 의해 얻어진 양자화 예측 잔차(QD)를 가변 길이 부호 부호화부(22) 및 역양자화·역변환부(23)에 공급한다. 또한, 변환·양자화부(21)는, (1) 양자화 시에 사용하는 양자화 스텝(QP)을, 트리 블록마다 선택하고, (2) 선택한 양자화 스텝(QP)의 크기를 나타내는 양자화 파라미터 차분(Δqp)을 가변 길이 부호 부호화부(22)에 공급하고, (3) 선택한 양자화 스텝(QP)을 역양자화·역변환부(23)에 공급한다. 여기서, 양자화 파라미터 차분(Δqp)이란, DCT 변환/양자화하는 트리 블록에 관한 양자화 파라미터(qp)(QP=2pq /6)의 값에서, 직전에 DCT 변환/양자화한 트리 블록에 관한 양자화 파라미터(qp')의 값을 감산하여 얻어지는 차분값을 가리킨다.
가변 길이 부호 부호화부(22)는, (1) 변환·양자화부(21)로부터 공급된 양자화 예측 잔차(QD) 및 Δqp, (2) 후술하는 예측 방식 제어부(28)로부터 공급된 양자화 파라미터(PP) 및 (3) 후술하는 적응 필터(70)로부터 공급된 필터 세트 번호, 필터 계수군, 영역 지정 정보, 및 온/오프 정보를 가변 길이 부호화함으로써, 부호화 데이터(#1)를 생성한다. 또한, 가변 길이 부호 부호화부(22)는, 적응 오프셋 필터(80)로부터 공급되는 QAOU 정보를 부호화하여, 부호화 데이터(#1)에 포함한다.
역양자화·역변환부(23)는, (1) 양자화 예측 잔차(QD)를 역양자화하고, (2) 역양자화에 의해 얻어진 DCT 계수를 역DCT(Discrete Cosine Transform) 변환하고, (3) 역DCT 변환에 의해 얻어진 예측 잔차(D)를 가산기(31)에 공급한다. 양자화 예측 잔차(QD)를 역양자화할 때에는, 변환·양자화부(21)로부터 공급된 양자화 스텝(QP)을 이용한다. 또한, 역양자화·역변환부(23)로부터 출력되는 예측 잔차(D)는, 변환·양자화부(21)에 입력되는 예측 잔차(D)에 양자화 오차가 가해진 것이지만, 여기에서는 간단화를 위해 공통 호칭을 사용한다.
인트라 예측 화상 생성부(25)는, 각 파티션에 관한 예측 화상(Pred_Intra)을 생성한다. 구체적으로는, (1) 각 파티션에 대해 인트라 예측에 사용하는 예측 모드를 선택하고, (2) 선택한 예측 모드를 사용하여, 복호 화상(P)으로부터 예측 화상(Pred_Intra)을 생성한다. 인트라 예측 화상 생성부(25)는, 생성한 인트라 예측 화상(Pred_Intra)을 예측 방식 제어부(28)에 공급한다.
또한, 인트라 예측 화상 생성부(25)는, 각 파티션에 대하여 선택된 예측 모드로부터, 각 파티션의 크기로부터 각 파티션에 관한 예측 인덱스(PI)를 특정하고, 당해 예측 인덱스(PI)를 예측 방식 제어부(28)에 공급한다.
또한, 인트라 예측 화상 생성부(25)는, 대상 파티션의 크기 및 대상 파티션에 할당된 예측 모드를 나타내는 정보인 인트라 부호화 모드 정보(IEM)를 적응 필터(70)에 공급한다.
움직임 벡터 검출부(27)는, 각 파티션에 관한 움직임 벡터(mv)를 검출한다. 구체적으로는, (1) 참조 화상으로서 이용하는 필터 완료 복호 화상(P_FL')을 선택하고, (2) 선택한 필터 완료 복호 화상(P_FL')에서 대상 파티션을 최량 근사하는 영역을 탐색함으로써, 대상 파티션에 관한 움직임 벡터(mv)를 검출한다. 여기서, 필터 완료 복호 화상(P_FL')은, 이미 복호가 완료된 복호 완료 복호 화상에 대하여 디블록킹 필터(33)에 의한 디블록 처리, 적응 오프셋 필터(80)에 의한 적응적 오프셋 처리 및 적응 필터(70)에 의한 적응적 필터 처리를 실시함으로써 얻어지는 화상이며, 움직임 벡터 검출부(27)는, 필터 완료 복호 화상(P_FL')을 구성하는 각 화소의 화소값을 버퍼 메모리(24)로부터 판독할 수 있다. 움직임 벡터 검출부(27)는, 검출한 움직임 벡터(mv)를, 참조 화상으로서 이용한 필터 완료 복호 화상(P_FL')을 지정하는 참조 화상 인덱스(RI)와 함께, 인터 예측 화상 생성부(26) 및 움직임 벡터 용장성 삭제부(29)에 공급한다. 또한, 쌍방향 예측(가중치 부여 예측)을 행하는 파티션에 대해서는, 참조 화상으로서 2장의 필터 완료 복호 화상(P_FL1' 및 P_FL2')을 선택하고, 2장의 필터 완료 복호 화상(P_FL1' 및 P_FL2')의 각각에 대응하는 움직임 벡터(mv1 및 mv2), 및 참조 화상 인덱스(RI1 및 RI2)를 인터 예측 화상 생성부(26) 및 움직임 벡터 용장성 삭제부(29)에 공급한다.
인터 예측 화상 생성부(26)는, 각 인터 예측 파티션에 관한 움직임 보상 화상(mc)을 생성한다. 구체적으로는, 움직임 벡터 검출부(27)로부터 공급된 움직임 벡터(mv)를 사용하여, 움직임 벡터 검출부(27)로부터 공급된 참조 화상 인덱스(RI)에 의해 지정되는 필터 완료 복호 화상(P_FL')으로부터 움직임 보상 화상(mc)을 생성한다. 움직임 벡터 검출부(27)와 마찬가지로, 인터 예측 화상 생성부(26)는, 필터 완료 복호 화상(P_FL')을 구성하는 각 화소의 화소값을 버퍼 메모리(24)로부터 판독할 수 있다. 인터 예측 화상 생성부(26)는, 생성한 움직임 보상 화상(mc)(인터 예측 화상(Pred_Inter))을 움직임 벡터 검출부(27)로부터 공급된 참조 화상 인덱스(RI)와 함께, 예측 방식 제어부(28)에 공급한다. 또한, 쌍방향 예측(가중치 부여 예측)을 파티션에 대해서는, (1) 움직임 벡터(mv1)를 사용하여, 참조 화상 인덱스(RI1)에 의해 지정된 필터 완료 복호 화상(P_FL1')으로부터 움직임 보상 화상(mc1)을 생성하고, (2) 움직임 벡터(mv2)를 사용하여, 참조 화상 인덱스(RI2)에 의해 지정된 필터 완료 참조 화상(P_FL2')으로부터 움직임 보상 화상(mc2)을 생성하고, (3) 움직임 보상 화상(mc1)과 움직임 보상 화상(mc2)의 가중 평균에 오프셋값을 가함으로써 인터 예측 화상(Pred_Inter)을 생성한다.
예측 방식 제어부(28)는, 인트라 예측 화상(Pred_Intra) 및 인터 예측 화상(Pred_Inter)을 부호화 대상 화상과 비교하여, 인트라 예측을 행할지 인터 예측을 행할지를 선택한다. 인트라 예측을 선택한 경우, 예측 방식 제어부(28)는, 인트라 예측 화상(Pred_Intra)을 예측 화상(Pred)으로서 가산기(31) 및 감산기(32)에 공급함과 함께, 인트라 예측 화상 생성부(25)로부터 공급된 예측 인덱스(PI)를 예측 파라미터(PP)로서 가변 길이 부호 부호화부(22)에 공급한다. 한편, 인터 예측을 선택한 경우, 예측 방식 제어부(28)는, 인터 예측 화상(Pred_Inter)을 예측 화상(Pred)으로서 가산기(31) 및 감산기(32)에 공급함과 함께, 인터 예측 화상 생성부(26)로부터 공급된 참조 화상 인덱스(RI), 및 움직임 벡터 용장성 삭제부(29)(후술)로부터 공급된 추정 움직임 벡터 인덱스(PMVI) 및 움직임 벡터 잔차(MVD)를 예측 파라미터(PP)로서 가변 길이 부호 부호화부에 공급한다.
예측 방식 제어부(28)에서 선택된 예측 화상(Pred)을, 부호화 대상 화상에서 감산함으로써, 감산기(32)에서 예측 잔차(D)가 생성된다. 감산기(32)에서 생성된 예측 잔차(D)는, 상술한 바와 같이, 변환·양자화부(21)에 의해 DCT 변환/양자화된다. 한편, 예측 방식 제어부(28)에서 선택된 예측 화상(Pred)을, 역양자화·역변환부(23)에서 생성된 예측 잔차(D)에 가산함으로써, 가산기(31)에서 국소 복호 화상(P)이 생성된다. 가산기(31)에서 생성된 국소 복호 화상(P)은, 디블록킹 필터(33), 적응 오프셋 필터(80) 및 적응 필터(70)를 경유한 뒤, 필터 완료 복호 화상(P_FL)으로서 버퍼 메모리(24)에 저장되어, 인터 예측에서의 참조 화상으로서 이용된다.
또한, 움직임 벡터 용장성 삭제부(29)는, 움직임 벡터 검출부(27)에 의해 검출된 움직임 벡터(mv)에서의 용장성을 삭제한다. 구체적으로는, (1) 움직임 벡터(mv)의 추정에 사용하는 추정 방법을 선택하고, (2) 선택한 추정 방법에 따라서 추정 움직임 벡터(pmv)를 도출하고, (3) 움직임 벡터(mv)로부터 추정 움직임 벡터(pmv)를 감산함으로써 움직임 벡터 잔차(MVD)를 생성한다. 움직임 벡터 용장성 삭제부(29)는, 생성한 움직임 벡터 잔차(MVD)를, 선택한 추정 방법을 나타내는 추정 움직임 벡터 인덱스(PMVI)와 함께 예측 방식 제어부(28)에 공급한다.
디블록킹 필터(33)는, 복호 화상(P)에서의 블록 경계 또는 CU 경계를 개재하여 서로 인접하는 화소의 화소값의 차가 미리 정해진 임계값보다 작은 경우에, 복호 화상(P)에서의 당해 블록 경계 또는 당해 CU 경계에 대하여 디블록킹 처리를 실시함으로써, 당해 블록 경계 또는 당해 CU 경계 부근의 화상의 평활화를 행한다. 디블록킹 필터(33)에 의해 디블록킹 처리가 실시된 화상은, 디블록 완료 복호 화상(P_DB)으로서 적응 오프셋 필터(80)에 출력된다.
적응 오프셋 필터(80)는, 디블록킹 필터(33)로부터 공급되는 디블록 완료 복호 화상(P_DB)에 대하여 적응적 오프셋 필터 처리를 실시함으로써 오프셋 필터 완료 복호 화상(P_OF)을 생성한다. 생성된 오프셋 필터 완료 복호 화상(P_OF)은, 적응 필터(70)에 공급된다. 적응 오프셋 필터(80)의 구체적인 구성에 대해서는 후술하기 때문에, 여기에서는 설명을 생략한다.
적응 필터(70)는, 적응 오프셋 필터(80)로부터 공급되는 오프셋 필터 완료 복호 화상(P_OF)에 대하여 적응적인 필터 처리를 실시함으로써, 필터 완료 복호 화상(P_FL)을 생성한다. 적응 필터(70)에 의해 필터 처리가 실시된 필터 완료 복호 화상(P_FL)은, 버퍼 메모리(24)에 저장된다. 적응 필터(70)에 의해 사용되는 필터 계수는, 필터 완료 복호 화상(P_FL)과 부호화 대상 화상(#10)의 오차가 보다 작아지도록 정해진 것이며, 이와 같이 하여 정해진 필터 계수가 필터 파라미터(FP)로서 부호화되어, 동화상 복호 장치(1)에 전송된다.
(적응 오프셋 필터(80))
도 15는, 적응 오프셋 필터(80)의 구성을 도시하는 블록도이다. 도 15에 도시한 바와 같이, 적응 오프셋 필터(80)는, 적응 오프셋 필터 정보 설정부(81) 및 적응 오프셋 필터 처리부(82)를 구비하고 있다.
또한, 도 15에 도시한 바와 같이, 적응 오프셋 필터 정보 설정부(81)는, 오프셋 산출부(811), 오프셋 시프트부(816), 오프셋 클립부(812), 오프셋 정보 선택부(813) 및 오프셋 속성 설정부(815)를 구비하고 있다.
(오프셋 산출부(811))
오프셋 산출부(811)는, 대상의 처리 단위(예를 들어 LCU)에 포함되는 소정의 분할 심도까지의 모든 QAOMU에 대하여, 모든 오프셋 타입 및 모든 클래스에 대한 오프셋을 산출한다. 여기서, 오프셋 타입 및 클래스는, 동화상 복호 장치(1)의 설명에서 설명한 것과 동일한 것을 가리킨다.
도 16은, 오프셋 산출부(811)에 의한 처리의 흐름을 나타내는 흐름도이다.
(스텝 S201)
우선, 오프셋 산출부(811)는, 처리 대상으로 하는 대상 QAOMU의 QAOMU 번호를 루프 변수로 하는 제1 루프를 개시한다. 예를 들어, 도 7의 (a) 내지 (e)에 나타낸 예의 경우, 당해 제1 루프는, QAOMU 번호=0부터 QAOMU 번호=340까지의 루프이다.
(스텝 S202)
계속해서, 오프셋 산출부(811)는, 대상 QAOMU에 대하여 선택 가능한 오프셋 타입을 루프 변수로 하는 제2 루프를 개시한다. 당해 제2 루프는, 오프셋 타입 1부터 오프셋 타입 6까지의 루프이다.
(스텝 S203)
계속해서, 오프셋 산출부(811)는, 대상 QAOMU에 포함되는 화소를 단위로 하는 제3 루프를 개시한다.
(스텝 S204)
계속해서, 오프셋 산출부(811)는, 대상 화소를 복수의 클래스 중 어느 하나로 분류한다. 보다 구체적으로는, 제2 루프 변수인 오프셋 타입이 1 내지 4일 때, 대상 화소를 클래스 1 내지 4 중 어느 하나로 분류한다. 본 스텝에서의 분류 처리는, 동화상 복호 장치(1)에서의 적응 오프셋 필터(60)가 구비하는 클래스 분류부(624)에 의한 분류 처리예 1 내지 분류 처리예 4 중 어느 하나와 동일한 처리이다.
또한, 대상 QAOMU에 대해서, 클래스마다, 화소가 분류된 횟수인 분류 횟수 count[part_idx][sao_type_index][class_idx]를 산출한다. 여기서, part_idx는, QAOMU 번호를 나타낸다.
(스텝 S205)
계속해서, 오프셋 산출부(811)는, 대상 화소에서의 디블록 완료 복호 화상(P_DB)의 화소값과 상기 대상 화소에서의 부호화 대상 화상(#10)의 화소값의 차분을 취함으로써 상기 대상 화소에서의 차분 화소값을 산출한다. 보다 구체적으로는, 대상 화소의 위치를 (x, y)라 했을 때, P_DB(x, y)-Org(x, y)를 산출한다. 여기서, P_DB(x, y)는, 대상 화소에서의 디블록 완료 복호 화상(P_DB)의 화소값을 나타내고 있고, Org(x, y)는, 대상 화소에서의 부호화 대상 화상(#10)의 화소값을 나타내고 있다.
(스텝 S206)
본 스텝은, 제3 루프의 종단부이다. 본 스텝이 종료한 시점에서, 대상 QAOMU에 포함되는 모든 화소에 대해서, 차분 화소값이 산출되어 있게 된다.
(스텝 S207)
계속해서, 오프셋 산출부(811)는, 대상 QAOMU에 포함되는 각 화소에 관한 차분 화소값의 클래스마다의 총합을, 상기 클래스의 분류 횟수로 나눔으로써 오프셋을 산출한다. 보다 구체적으로는, 오프셋 산출부(811)는, 대상 QAOMU, 대상 오프셋 타입 및 대상 클래스에 관한 오프셋 offset[part_idx][sao_type_idx][class_idx]를 이하의 식을 사용하여 산출한다.
offset[part_idx][sao_type_idx][class_idx]=Σ(P_DB(x, y)-Org(x, y))/count[part_idx][sao_type_idx][class_idx]
여기서, 기호 Σ는, part_idx에 의해 지정되는 대상 QAOMU 및 sao_type_idx에 의해 지정되는 대상 오프셋 타입에 있어서, class_idx에 의해 지정되는 대상 클래스로 분류된 화소에 대한 합을 취하는 것을 나타내고 있다.
(스텝 S208)
본 스텝은 제2 루프의 종단부이다.
(스텝 S209)
본 스텝은 제3 루프의 종단부이다.
이상의 처리에 의해, 오프셋 산출부(811)는, 대상 LCU에 포함되는 소정의 분할 심도까지의 모든 QAOMU에 대하여 모든 오프셋 타입 및 모든 클래스에 관한 오프셋을 산출한다. 예를 들어, 도 7의 (a) 내지 (e)에 나타내는 예의 경우, 오프셋 산출부(811)는 합계로,
((분할 심도 0인 QAOMU의 총 수)+...+(분할 심도 4인 QAOMU의 총 수))×((EO의 오프셋 타입 수)×(EO의 클래스 수)+(BO의 오프셋 타입 수)×(BO의 클래스 수))=(1+4+16+64+256)×((4×4)+(2×16))=16368(개)
의 오프셋을 산출하게 된다. 여기서, 각 오프셋의 비트수는 예를 들어 10비트이다.
오프셋 산출부(811)는, 상기의 처리에 의해 산출한 오프셋, 오프셋 타입, 클래스 및 QAOU의 분할 구조를 나타내는 QAOU 구조 정보를 포함하여 이루어지는 오프셋 정보를 오프셋 시프트부(816)에 공급한다.
또한, 동화상 부호화 장치(2)는, 상기 스텝 S204에서 어느 분류 처리예에 관한 분류 처리를 행하였는지를 나타내는 플래그를 부호화하는 구성으로 하여, 동화상 복호 장치(1)가 구비하는 적응 오프셋 필터(60)는, 당해 플래그를 참조하여, 당해 플래그가 나타내는 분류 처리와 동일한 분류 처리를 행하는 구성으로 할 수 있다. 또한, 그러한 플래그를 사용하지 않고, 동화상 부호화 장치(2)와 동화상 복호 장치(1)에서 미리 정해진 동일한 분류 처리를 행하는 구성으로 해도 된다.
(오프셋 시프트부(816))
오프셋 시프트부(816)는, 오프셋 산출부(811)로부터 공급되는 오프셋 정보에 포함되는 각 오프셋의 양자화를 행한다. 양자화는 오프셋을 우측으로 비트 시프트함으로써, 오프셋을 화소 비트 심도의 정밀도에서 오프셋의 비트 심도의 정밀도로 변환한다. 또한, 시프트 처리에서의 시프트량은, 후술하는 오프셋 속성 설정부(815)에 의해 공급되는 시프트값에 의해 결정된다.
(오프셋 클립부(812))
오프셋 클립부(812)는, 후술하는 오프셋 속성 설정부(815)로부터 공급되는 오프셋값 영역으로 제한하기 위해서, 오프셋 시프트부(816)로부터 공급되는 오프셋에 대하여 이하에 도시한 바와 같은 클립 처리 1, 클립 처리 2 중 어느 하나의 처리에 의해 클립의 처리를 행한다.
(클립 처리 1)
오프셋 클립부(812)는, 오프셋 시프트부(816)로부터 공급되는 오프셋 정보에 포함되는 각 오프셋에 대하여 클립 처리를 행한다. 오프셋 클립부(812)는, 오프셋 시프트부(816)로부터 공급되는 각 오프셋을 예를 들어 -8부터 7까지의 값에 클립함으로써, 각 오프셋을 4비트로 표현한다. 클립된 각 오프셋은, 오프셋 정보 선택부(813)에 공급된다. 클립하는 비트 폭은, 동화상 복호 장치(1)와 마찬가지로, 화상의 비트 심도와 오프셋의 비트 심도에 따라서 설정된다.
이와 같이, 각 오프셋을 클립함으로써, 각 오프셋이 저장되는 메모리(도시하지 않음)의 메모리 크기를 삭감할 수 있다. 또한, 부호화 데이터(#1)에 포함되는 오프셋의 부호량을 삭감할 수 있으므로, 부호화 효율의 향상을 도모할 수 있다. 또한, 과도한 오프셋이 가산되는 것이 억제되므로, 적절한 화질이 보증된다.
(클립 처리 2)
또한, 오프셋 클립부(812)는, 오프셋 시프트부(816)로부터 공급되는 각 오프셋의 클립 범위를, 오프셋 타입에 따라서 상이한 값을 설정하는 구성으로 해도 된다.
예를 들어, 오프셋 타입이 에지 오프셋일 경우에는, 오프셋의 비트수를 8비트로 하고, 오프셋 타입이 밴드 오프셋일 경우에는, 오프셋의 비트수를 4비트로 한다. 보다 일반적으로는, 오프셋 타입이 에지 오프셋일 경우의 오프셋의 비트수를 N 비트로 하고, 오프셋 타입이 밴드 오프셋일 경우의 오프셋의 비트수를 M 비트로 했을 때, N>M이 만족되도록 오프셋의 비트수를 정한다.
이렇게 오프셋 타입에 따라, 오프셋의 비트수를 상이하게 함으로써, 각 오프셋을 저장하기 위한 메모리에 과도한 메모리 크기를 요구하지 않고, 부호화 효율의 향상을 도모할 수 있다.
또한, 오프셋이 취할 수 있는 값을 제한하기 위한 임계값(th)이 2m-1보다 크고, 2m 이하일 때, 당해 오프셋을 부호화하기 위한 부호화 방식으로서, m 비트의 고정 길이 부호화를 사용할 수 있다. 보다 구체적으로는, 최대값을 th로 하는 Truncated unary 부호화나, Truncated Rice 부호화를 사용할 수 있다. 또한, 상기 최대값 th는, 오프셋 속성 설정부(815)로부터 공급되는 오프셋값 영역에 의해 결정된다.
또한, 상기 클립 처리 1 및 2를 조합하여 얻어지는 클립 처리도 본 실시 형태에 포함된다. 또한, 적응 오프셋 필터(80)는, 오프셋 클립부(812)를 구비하지 않는 구성으로 해도 된다.
(오프셋 정보 선택부(813))
오프셋 정보 선택부(813)는, RD 비용(Rate-Distorsion cost)이 보다 작아지는 오프셋 타입, 클래스, 오프셋의 조합 및 그것에 대응하는 QAOU 분할 구조를 결정하고, 결정한 오프셋 타입, 클래스, 오프셋 및 거기에 대응하는 QAOM 분할 구조를 나타내는 QAOU 정보를 가변 길이 부호 부호화부(22)에 공급한다. 또한, 오프셋 정보 선택부(813)는, 결정한 오프셋을 QAOU마다 또는 QAOMU마다 적응 오프셋 필터 처리부(82)에 공급한다.
오프셋 정보 선택부(813)의 처리에 대하여 도 17 내지 도 18을 참조하여 보다 구체적으로 설명하면 이하와 같다. 도 17은, 오프셋 정보 선택부(813)에 의한 처리의 흐름을 나타내는 흐름도이다.
(스텝 S301)
우선, 오프셋 정보 선택부(813)는, 처리 대상으로 하는 대상 QAOMU의 QAOMU 번호를 루프 변수로 하는 제1 루프를 개시한다.
(스텝 S302)
계속해서, 오프셋 정보 선택부(813)는, 대상 QAOMU에 대하여 선택 가능한 오프셋 타입을 루프 변수로 하는 제2 루프를 개시한다. 당해 제2 루프는, 오프셋 타입 1부터 오프셋 타입 6까지의 루프이다.
(스텝 S303)
계속해서, 오프셋 정보 선택부(813)는, 대상 오프셋 타입에 대해서, 대상 QAOMU에서의 오프셋 필터 완료 복호 화상(P_OF)과 부호화 대상 화상(#10)의 제곱 오차를 산출한다.
(스텝 S304)
본 스텝은 제2 루프의 종단부이다.
(스텝 S305)
본 스텝은 제1 루프의 종단부이다. 제1 및 제2 루프가 종료한 시점에서, 각 QAOMU에 대해 모든 오프셋 타입에 대한 제곱 오차가 산출되게 된다.
(스텝 S306)
계속해서, 오프셋 정보 선택부(813)는, 대상의 처리 단위(예를 들어 LCU)를 QAOU로 분할하는 QAOU 분할 구조 중, RD 비용이 보다 작아지는 QAOU 분할 구조를 결정한다.
본 스텝에서의 오프셋 정보 선택부(813)의 구체적인 처리예를 도 18의 (a) 내지 (d)를 참조하여 설명하면 이하와 같다.
우선, 오프셋 정보 선택부(813)는, 분할 심도를 0으로 했을 때의 RD 비용과 분할 심도를 1로 했을 경우의 RD 비용을 계산한다(도 18의 (a)). 도 18의 (a)에서는, 분할 심도 1의 RD 비용이 분할 심도 0의 RD 비용보다 작은 것으로 한다(도 18의 (b)).
계속해서, 오프셋 정보 선택부(813)는, 분할 심도를 2로 했을 경우의 RD 비용을 계산한다(도 18의 (c)).
계속해서, 오프셋 정보 선택부(813)는, 분할 심도 1의 QAOMU의 RD 비용과 상기 분할 심도 1의 QAOMU에 포함되는 분할 심도 2의 QAOMU의 RD 비용을 비교하여, 분할 심도 2의 QAOMU의 RD 비용이 더 작은 경우에는, 상기 분할 심도 1의 QAOMU를 분할 심도 2의 QAOMU로 갱신한다(도 18의 (d)). 이 처리를 최대의 분할 심도에 도달할 때까지 반복한다. 이에 의해, RD 비용이 보다 작아지는 QAOU 분할 구조가 결정된다.
(오프셋 속성 설정부(815))
오프셋 속성 설정부(815)는, 도시되지 않은 화소 비트 심도를 입력으로 하여 오프셋의 비트 심도를 결정한다. 결정된 오프셋의 비트 심도에 의해, 오프셋값 영역 및 시프트값을 설정한다. 오프셋값 영역은 적응 오프셋 필터 처리부(82)에 공급되고, 시프트값은 오프셋 시프트부(816)에 공급된다. 오프셋값 영역 및 시프트값의 설정은 상술한 오프셋 속성 설정부(613)와 동일한 처리이기 때문에, 여기에서는 설명을 생략한다.
(적응 오프셋 필터 처리부(82))
적응 오프셋 필터 처리부(82)는, 대상 QAOU에서의 디블록 완료 복호 화상(P_DB)의 각 화소에 대하여 오프셋 정보 선택부(813)로부터 공급되는 오프셋을 가산한다. 적응 오프셋 필터 처리부(82)는, 디블록 완료 복호 화상(P_DB)에 포함되는 모든 QAOU에 대해 처리를 행하여 얻어지는 화상을 오프셋 필터 완료 복호 화상(P_OF)으로서 출력한다. 또한, 적응 오프셋 필터 처리부(82)의 구성은, 적응 오프셋 필터 처리부(62)와 동일하기 때문에, 여기에서는 설명을 생략한다. 여기에서 도시되지 않은 적응 오프셋 필터 처리부(82)에 포함되는 오프셋 정보 저장부에 저장되는 각 오프셋은, 오프셋 속성 설정부(815)에 의해 설정되는 오프셋값 영역으로 제한된다.
[실시 형태 2]
실시 형태 1에서는, 부호화 데이터(#1)에 포함되는 sao_offset[sao_curr_depth][ys][xs][i]는, 적응 오프셋 필터에 의한 오프셋 필터 처리에 있어서, 대상 QAOU에 포함되는 각 화소에 가산되는 오프셋의 구체적인 값을 나타내는 구문인 것으로 하였다.
한편, 발명자는, 오프셋 필터 처리에 사용되는 오프셋의 값을 예측 부호화, 즉, 오프셋의 값과 당해 오프셋의 값의 예측값을 사용하여 산출되는 오프셋 잔차를 부호화함으로써, 부호화 데이터의 부호량을 더 삭감할 수 있다는 지식을 얻었다.
본 실시 형태에서는, 예측 부호화된 오프셋에, 오프셋 필터 처리를 행하는 동화상 복호 장치와, 오프셋 필터 처리에 사용한 오프셋을 예측 부호화하는 동화상 부호화 장치에 대해서, 도 19 내지 도 21을 참조하여 설명한다. 또한, 실시 형태 1에서 이미 설명한 부분에 대해서는 설명을 생략한다.
(부호화 데이터)
본 실시 형태에 따른 부호화 데이터는, 실시 형태 1에 관한 부호화 데이터(#1)에 포함되는 sao_offset[sao_curr_depth][ys][xs][i] 대신에, 오프셋 잔차 sao_offset_residual[sao_curr_depth][ys][xs][i]를 포함하고 있다. 본 실시 형태에 따른 부호화 데이터의 그 밖의 구성은, 실시 형태 1에 관한 부호화 데이터(#1)의 구성과 마찬가지이다. 이하에서는, 본 실시 형태에 따른 부호화 데이터를 부호화 데이터(#3)로 표기하기도 한다.
(sao_offset_residual)
오프셋 잔차 sao_offset_residual[sao_curr_depth][ys][xs][i]는, 본 실시 형태에 따른 적응 오프셋 필터에 의한 오프셋 필터 처리에 있어서 대상 QAOU에 포함되는 각 화소에 가산되는 오프셋의 값과, 상기 오프셋의 값의 예측값과의 가중치 부가 차분값이며, sao_offset_residual[sao_type_idx][class_idx]라고도 표기한다.
대상 QAOU에 포함되는 대상 화소에 가산되는 오프셋을 Offset[sao_type_idx][class_idx]라고 표기했을 때, 오프셋 잔차 sao_offset_residual[sao_type_idx][class_idx]는,
sao_offset_residual[sao_type_idx][class_idx]
=Offset[sao_type_idx][class_idx]
-a*pred_offset[merge_tbl[sao_type_idx]][class_idx]
에 의해 부여된다. 여기서, a는, 예측값 pred_offset에 곱해지는 가중 계수이며, merge_tbl은, sao_type_idx를 인수로 하는 함수이다. a 및 merge_tbl의 구체예에 대해서는 후술하므로 여기에서는 설명을 생략한다.
(동화상 복호 장치)
본 실시 형태에 따른 동화상 복호 장치는, 실시 형태 1에 관한 동화상 복호 장치(1)가 구비하는 적응 오프셋 필터(60) 대신에, 적응 오프셋 필터(60')를 구비하고 있다. 본 실시 형태에 따른 동화상 복호 장치의 그 밖의 구성은, 실시 형태 1에 관한 동화상 복호 장치(1)의 구성과 마찬가지이다.
도 19는, 본 실시 형태에 따른 적응 오프셋 필터(60')의 구성을 도시하는 블록도이다. 도 19에 도시한 바와 같이, 적응 오프셋 필터(60')는, 적응 오프셋 필터(60)가 구비하는 오프셋 정보 복호부(611) 대신에, 오프셋 정보 복호부(611')를 구비하고 있다.
(오프셋 정보 복호부(611'))
오프셋 정보 복호부(611')는, 부호화 데이터(#3)에 포함되어 있는 QAOU 정보를 참조하여, QAOU 정보에 포함되어 있는 오프셋 정보(OI)를 복호한다. 또한, 오프셋 정보(OI)를 복호함으로써 얻어진 오프셋 잔차 sao_offset_residual[sao_type_idx][class_idx]와, 예측값 pred_offset[merge_tbl[sao_type_idx]][class_idx]를 사용하여, 적응 오프셋 필터 처리에 사용되는 오프셋 Offset[sao_type_idx][class_idx]을,
Offset[sao_type_idx][class_idx]
=a*pred_offset[merge_tbl[sao_type_idx]][class_idx]
+sao_offset_residual[sao_type_idx][class_idx]
에 따라서 산출하고, 산출한 오프셋 Offset[sao_type_idx][class_idx]를, 오프셋 정보 저장부(621)에 저장한다. 여기서, pred_offset[merge_tbl[sao_type_idx]][class_idx]는, Offset[sao_type_idx][class_idx]의 예측값이다. merge_tbl[sao_type_idx]는, sao_type_idx=1 내지 6에 대하여 인덱스가 부여되는 테이블이며, 1개 이상의 sao_type_idx를 동일한 그룹으로서 간주하는 것이 가능하다.
(pred_offset의 구체예 1)
pred_offset[merge_tbl[sao_type_idx]][class_idx]의 제1 구체예에 대하여 설명한다. 본 예에서는, 예측값 pred_offset[merge_tbl[sao_type_idx]][class_idx]를,
pred_offset[merge_tbl[sao_type_idx]][class_idx]
=Offset'[sao_type_idx][class_idx]
에 의하여 정한다. 여기서, Offset'[sao_type_idx][class_idx]는, 복호 완료된 오프셋이며, 오프셋 타입 인덱스(sao_type_idx) 및 클래스 인덱스(class_idx)에 관련지어진 오프셋을 나타내고 있다.
이와 같이, 본 예에서는, Offset[sao_type_idx][class_idx]의 예측값으로서, 복호 완료된 오프셋이며, 오프셋 타입 인덱스(sao_type_idx) 및 클래스 인덱스(class_idx)에 관련지어진 오프셋 Offset'[sao_type_idx][class_idx]를 사용한다.
(pred_offset의 구체예 2)
pred_offset[merge_tbl[sao_type_idx]][class_idx]의 제2 구체예에 대하여 설명한다. 본 예에서는, 예측값 pred_offset[merge_tbl[sao_type_idx]][class_idx]를,
pred_offset[merge_tbl[sao_type_idx]][class_idx]
=(pred_offset'[merge_tbl[sao_type_idx]][class_idx]*W1
+Offset'[sao_type_idx][class_idx]*W2)>>log2(W1+W2)
에 의하여 정한다. 여기서, pred_offset'[merge_tbl[sao_type_idx]][class_idx]는, 복호 완료된 오프셋 Offset'[sao_type_idx][class_idx]을 산출할 때에 사용한 예측값을 나타내고 있다. 또한, 「*」는, 곱을 취하는 연산 기호를 나타내고 있고, 「>>」는 우측 비트 시프트를 나타내고 있다. 또한, W1 및 W2는, 각각 가중 계수를 나타내고 있고, 예를 들어 W1=3, W2=1로 취할 수 있다. W1 및 W2의 구체적인 값은, 부호화 효율이 보다 높아지도록 정하면 된다.
상기 식으로부터 명백해진 바와 같이, 본 예에서는, pred_offset를 구하기 위해서, pred_offset' 및 Offset'를 참조하고, pred_offset'를 구하기 위해서 pred_offset" 및 Offset"를 참조하고, ...과 같이 복호 완료된 예측값 및 오프셋이 재귀적으로 참조되므로, pred_offset에는, 복호 완료된 복수의 오프셋이 기여하게 된다. 따라서, 예측값의 과도한 변동이 억제된다. 이에 의해, 예를 들어 노이즈의 영향에 의해 적절하지 않은 예측값이 산출되는 경우에도, 그러한 적절하지 않은 예측값의 영향을 억제할 수 있으므로, 부호화 효율의 향상을 도모할 수 있다.
(pred_offset의 구체예 3)
pred_offset[merge_tbl[sao_type_idx]][class_idx]의 제3 구체예에 대하여 설명한다. 본 예에서는, 예측값 pred_offset[merge_tbl[sao_type_idx]][class_idx]를,
pred_offset[merge_tbl[sao_type_idx]][class_idx]
=clip3(-th, th, pred_offset[merge_tbl[sao_type_idx]][class_idx])
에 의하여 정한다. 여기서, clip3(A, B, C)는, 값 C를 하한값 A 및 상한값 B로 클립하는 것을 나타내고 있다. 또한, clip3의 인수의 pred_offset[merge_tbl[sao_type_idx]]는, 예를 들어 상기 구체예 1 또는 2와 같이 정해지는 것으로 한다. 또한, 임계값(th)은, 예를 들어 화소값의 비트 심도(bit_depth)에 의존하여 이하와 같이 정해진다.
th=4(bit_depth=8)
th=8(bit_depth>8)
이와 같이, 본 예에서는, 상한값 및 하한값으로 클립한 예측값을 사용함으로써, 너무 큰 예측값이나 너무 작은 예측값이 발생하지 않으므로, 부호화 효율의 향상을 도모할 수 있다. 또한, 상한값 및 하한값의 절댓값은, 화소값의 비트가 클 때에 커지도록 설정되어 있기 때문에, 화소값의 비트 심도에 따라, 적절한 클립 처리를 행할 수 있어, 화질의 열화를 방지할 수 있다.
(merge_tbl의 구체예 1)
도 20의 (a)는, 함수 merge_tbl[sao_type_idx]의 제1 구체예를 나타내는 표이다. 도 20의 (a)에 도시한 바와 같이, 본 예에 관한 merge_tbl[sao_type_idx]는, sao_type_idx=0일 때에는 값을 취하지 않고, sao_type_idx=1 내지 6일 때, 각각 0 내지 5의 값을 취한다. 따라서, 본 예에 관한 merge_tbl[sao_type_idx]는,
merge_tbl[sao_type_idx]=sao_type_idx-1
이라고 표현할 수도 있다.
본 예에 관한 merge_tbl[sao_type_idx]를 사용함으로써, 오프셋 정보 복호부(611')는, 예측값 pred_offset을, 각각의 sao_type_idx 및 각각의 class_idx에 대하여 개별적으로 정하므로, 오프셋 잔차 sao_offset_residual의 부호량을 삭감할 수 있다.
(merge_tbl의 구체예 2)
도 20의 (b)는, 함수 merge_tbl[sao_type_idx]의 제2 구체예를 나타내는 표이다. 도 20의 (b)에 도시한 바와 같이, 본 예에 관한 merge_tbl[sao_type_idx]는, 에지 오프셋(sao_type_idx=1 내지 4)일 때, 0의 값을 취하고, 밴드 오프셋(sao_type_idx=5 내지 6)일 때, 1 내지 2의 값을 취한다.
예를 들어, 앞의 오프셋의 산출 시에 sao_type_idx=1(merge_tbl[sao_type_idx=1]=0) 및 class_idx=1이 지정되고, 다음 오프셋의 산출 시에 sao_type_idx=2(merge_tbl[sao_type_idx=2]=0) 및 class_idx=1이 지정되었다고 하면, 당해 다음의 오프셋을 산출할 때에 사용되는 예측값은, 당해 앞의 오프셋의 산출 시에 사용할 수 있었던 예측값과 동일한 것이 된다.
본 예에 관한 merge_tbl[sao_type_idx]를 사용함으로써, 오프셋 정보 복호부(611')는, 에지 오프셋이 지정된 경우 및 밴드 오프셋이 지정된 경우의 각각에 대해서, 이하의 처리를 행하게 된다.
·에지 오프셋이 지정된 경우
복호 대상의 오프셋에 관련지어진 클래스와 동일한 클래스의 복호 완료된 오프셋으로부터 당해 복호 대상의 오프셋의 예측값을 산출한다. 여기서, 복호 대상의 오프셋과 예측값은 클래스가 동일하면, 오프셋 타입은 상이해도 된다. 따라서, 임의의 오프셋 타입의 오프셋을 산출하기 위해 설정된 예측값을, 당해 임의의 오프셋과는 다른 오프셋 타입의 오프셋을 산출하기 위해 사용할 수 있으므로, 예측값을 설정하기 위한 처리가 경감된다.
·밴드 오프셋이 지정된 경우
복호 대상의 오프셋에 관련지어진 오프셋 타입 및 클래스와 동일한 오프셋 타입 및 클래스의 오프셋으로부터 당해 복호 대상의 오프셋의 예측값을 산출한다.
본 예에 관한 merge_tbl[sao_type_idx]를 사용하면, 처리량을 삭감하면서 적절한 예측값을 산출할 수 있다.
(계수(a)의 구체예)
예측값 pred_offset에 곱해지는 가중 계수(a)는, 오프셋 타입에 관계없이 1을 사용해도 되고, 오프셋 타입에 의존하여 상이한 값을 사용해도 된다.
예를 들어,
a=1(에지 오프셋일 때)
a=0.5(밴드 오프셋일 때)
로 해도 된다. 보다 일반적으로는, 에지 오프셋이 지정된 경우의 계수(a)를, a(edge)라고 나타내고, 밴드 오프셋이 지정된 경우의 계수(a)를, a(band)라고 나타내기로 하면,
a(edge)>a(band)
를 만족하는 것을 사용하면 된다.
발명자는, 에지 오프셋이 지정될 경우의, 복호 완료된 오프셋과 복호 대상의 오프셋의 사이의 상관은, 밴드 오프셋이 지정되는 경우의, 복호 완료된 오프셋과 복호 대상의 오프셋의 사이의 상관보다 큰 것을 알아내었다. 상기의 구체예에서는, 복호 완료된 오프셋과 복호 대상의 오프셋의 상관의 영향을 적절하게 도입할 수 있으므로, 오프셋 잔차의 부호량이 삭감된다.
(동화상 부호화 장치)
본 실시 형태에 따른 동화상 부호화 장치는, 실시 형태 1에 관한 동화상 부호화 장치(2)가 구비하는 적응 오프셋 필터(80) 대신에, 적응 오프셋 필터(80')를 구비하고 있다. 본 실시 형태에 따른 동화상 부호화 장치의 그 밖의 구성은, 실시 형태 1에 관한 동화상 부호화 장치(2)의 구성과 마찬가지이다.
도 21은, 본 실시 형태에 따른 적응 오프셋 필터(80')의 구성을 도시하는 블록도이다. 도 21에 도시한 바와 같이, 적응 오프셋 필터(80')는, 적응 오프셋 필터(60)가 구비하는 각 부 외에, 오프셋 잔차 도출부(814)를 구비하고 있다.
(오프셋 잔차 도출부(814))
오프셋 잔차 도출부(814)는, 오프셋 정보 선택부(813)로부터 공급되는 오프셋과, 당해 오프셋의 예측값과의 차분을 취함으로써, 오프셋 잔차를 산출한다. 당해 오프셋 잔차는, QAOU 정보의 일부로서, 가변 길이 부호 부호화부(22)에 의해 부호화된다.
오프셋 잔차 도출부(814)에 의해 설정되는 예측값은, 본 실시 형태에 따른 동화상 복호 장치가 구비하는 오프셋 정보 복호부(611')에 의해 설정되는 예측값과 마찬가지이므로, 여기서는 설명을 생략한다.
(부기 사항 1)
본 발명은 이하와 같이 기재할 수도 있다.
본 발명에 따른 화상 필터 장치는, 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터 장치이며, 부호화 데이터에 포함되는 오프셋 타입 지정 정보를 참조하여, 처리 대상의 단위 영역에서의 오프셋 속성을 설정하는 오프셋 속성 설정 수단과, 상기 설정된 오프셋 속성에 포함되는 오프셋값 영역에 따른 비트 폭을 갖는 오프셋을 복호하는 오프셋 복호 수단과, 상기 입력 화상의 각 화소값에 상기 오프셋을 가산하는 필터 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기와 같이 구성된 화상 필터 장치에 의하면, 상기 오프셋 속성 설정 수단에 의해, 부호화 데이터에 포함되는 오프셋 타입 지정 정보를 참조하여, 처리 대상의 단위 영역에서의 오프셋 속성을 설정하고, 설정된 오프셋 속성에 포함되는 오프셋값 영역에 따른 비트 폭을 갖는 오프셋을 상기 오프셋 복호 수단에 의해 복호하므로, 오프셋을 저장해 두기 위한 메모리 크기를 효과적으로 삭감할 수 있다.
따라서, 상기 구성에 의하면, 오프셋을 저장해 두기 위한 메모리 크기를 삭감하면서, 적절한 오프셋 필터 처리를 행할 수 있다.
또한, 상기 오프셋 타입 지정 정보는, 상기 입력 화상마다 정해져 있는 것이어도 되고, 상기 단위 영역마다 정해져 있는 것이어도 된다. 또한, 상기 입력 화상의 소정의 세트마다 정해져 있는 것이어도 되고, 상기 단위 영역의 소정의 세트마다 정해져 있는 것이어도 된다.
또한, 상기 오프셋 타입 지정 정보는, 각 단위 영역에서의 상기 입력 화상의 화소값의 비트 심도를 포함하고, 상기 오프셋 복호 수단은, 상기 화소값의 비트 심도에 따른 비트 폭을 갖는 오프셋을 복호하는 것이 바람직하다.
상기 구성에 의하면, 상기 오프셋 복호 수단은, 상기 화소값의 비트 심도에 따른 비트 폭을 갖는 오프셋을 복호하므로, 오프셋을 저장해 두기 위한 메모리 크기를 효과적으로 삭감할 수 있다.
또한, 상기 오프셋 타입 지정 정보는, 각 단위 영역에서의 상기 입력 화상의 화소값의 비트 심도를 포함하고, 상기 오프셋 복호 수단은, 상기 비트 심도에 따른 값 영역을 표현 가능한 비트 폭을 갖는 오프셋을 복호하는 구성으로 해도 된다.
상기 구성에 의하면, 상기 오프셋 복호 수단은, 각 단위 영역에서의 상기 입력 화상의 화소값의 비트 심도에 따른 값 영역을 표현 가능한 비트 폭을 갖는 오프셋을 복호하므로, 오프셋을 저장해 두기 위한 메모리 크기를 효과적으로 삭감할 수 있다.
또한, 상기 비트 심도에 따른 값 영역을 표현 가능한 비트 폭이란, 값 영역의 범위에 포함되는 값을 2진수로 표현했을 때의 비트 폭을 가리키고, 예를 들어 값 영역이 -23 내지 23-1일 때는 표현 가능한 비트 폭은 4비트이다.
또한, 상기 복호된 오프셋은 양자화된 값이며, 상기 필터 수단은, 상기 오프셋 속성에 포함되는 파라미터를 사용하여 상기 오프셋을 역양자화한 값을 상기 각 화소값에 가산하는 것이 바람직하다.
상기 구성에 의하면, 상기 복호된 오프셋은 양자화된 값이며, 상기 필터 수단은, 상기 오프셋 속성에 포함되는 파라미터를 사용하여 상기 오프셋을 역양자화한 값을 상기 각 화소값에 가산하므로, 상기 오프셋 속성에 포함되는 파라미터에 따른 오프셋이 각 화상값에 가산된다.
따라서, 상기 구성에 의하면, 오프셋을 저장해 두기 위한 메모리 크기를 삭감하면서, 부호화 효율을 향상시킬 수 있다.
또한, 상기 오프셋 타입 지정 정보는, 화소값의 시프트값을 포함하고, 상기 필터 수단은, 상기 오프셋 대신에, 상기 시프트값을 사용하여 상기 오프셋을 역양자화한 값을 가산하는 구성으로 해도 된다.
상기 구성에 의하면, 상기 오프셋 타입 지정 정보는, 화소값의 시프트값을 포함하고, 상기 필터 수단은, 상기 오프셋 대신에, 상기 시프트값을 사용하여 상기 오프셋을 역양자화한 값을 가산하므로, 화소값의 시프트값에 따른 오프셋을 얻을 수 있다. 따라서, 오프셋을 저장해 두기 위한 메모리 크기를 삭감하면서, 부호화 효율을 향상시킬 수 있다.
또한, 화소값의 시프트값이란, 화소 비트 심도와 오프셋의 비트 심도의 차분값을 가리키고, 상기 시프트값을 사용하여 상기 오프셋을 역양자화한다란, 상기 오프셋을 상기 시프트값만큼 좌측으로 비트 시프트를 행하고, 오프셋의 비트 심도에서 화소 비트 심도로 변환하는 것을 가리킨다.
또한, 상기 오프셋 타입 지정 정보는, 상기 입력 화상에 대하여 정해지는 것인 것이 바람직하다.
상기 구성에 의하면, 오프셋 타입 지정 정보는, 상기 입력 화상에 대하여 정해지는 것이기 때문에, 상기 화상 필터 장치는, 상기 입력 화상에 대하여 적절한 오프셋 처리를 행할 수 있다.
또한, 본 발명에 따른 오프셋 복호 장치는, 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터에 의해 참조되는 각 오프셋을 복호하는 오프셋 복호 장치이며, 각 오프셋 잔차를, 부호화 데이터로부터 복호하는 오프셋 잔차 복호 수단과, 각 오프셋의 예측값을, 복호 완료된 오프셋으로부터 도출하는 예측값 도출 수단과, 각 오프셋을, 상기 예측값 도출 수단에 의해 도출된 예측값 및 상기 오프셋 잔차 복호 수단에 의해 복호된 오프셋 잔차로부터 산출하는 오프셋 산출 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기와 같이 구성된 오프셋 복호 장치에 의하면, 각 오프셋 잔차를, 부호화 데이터로부터 복호하는 오프셋 잔차 복호 수단과, 각 오프셋의 예측값을, 복호 완료된 오프셋으로부터 도출하는 예측값 도출 수단과, 각 오프셋을, 상기 예측값 도출 수단에 의해 도출된 예측값 및 상기 오프셋 잔차 복호 수단에 의해 복호된 오프셋 잔차로부터 산출하는 오프셋 산출 수단을 구비하고 있으므로, 각 오프셋을 그대로 부호화하는 경우에 비해, 부호량이 적은 부호화 데이터로부터, 오프셋을 적절하게 복호할 수 있다.
또한, 상기 입력 화상은, 복수의 단위 영역으로 구성되어 있고, 상기 오프셋 잔차 복호 수단은, 각 오프셋 잔차를, 단위 영역마다 정해지는 오프셋 타입 및 화소마다 정해지는 오프셋 클래스에 관련지어서 복호하고, 상기 예측값 도출 수단은, 각 오프셋의 예측값을, 상기 오프셋과 동일한 오프셋 타입 및 오프셋 클래스에 관련지어진 복호 완료된 오프셋으로부터 도출하는 것이 바람직하다.
상기 구성에 의하면, 각 오프셋의 예측값을, 상기 오프셋과 동일한 오프셋 타입 및 오프셋 클래스에 관련지어진 복호 완료된 오프셋으로부터 도출하므로, 예측 정밀도가 향상된다. 따라서, 상기 구성에 의하면, 부호량이 적은 부호화 데이터로부터 오프셋을 적절하게 복호할 수 있다.
또한, 상기 입력 화상은, 복수의 단위 영역으로 구성되어 있고, 상기 오프셋 잔차 복호 수단은, 각 오프셋 잔차를, 단위 영역마다 정해지는 오프셋 타입 및 화소마다 정해지는 오프셋 클래스에 관련지어서 복호하고, 상기 예측값 도출 수단은, 각 오프셋의 예측값을, 상기 오프셋에 관련지어진 오프셋 타입이 제1 오프셋 타입 군에 속해 있는 경우에, 상기 오프셋과 동일한 제1 오프셋 타입 군 및 동일한 오프셋 클래스에 관련지어진 복호 완료된 오프셋으로부터 도출하고, 상기 오프셋에 관련지어진 오프셋 타입이 제2 오프셋 타입 군에 속해 있는 경우에, 상기 오프셋과 동일한 오프셋 타입 및 오프셋 클래스에 관련지어진 복호 완료된 오프셋으로부터 도출하는 것이 바람직하다.
상기 구성에 의하면, 각 오프셋의 예측값을, 상기 오프셋에 관련지어진 오프셋 타입이 제1 오프셋 타입 군에 속해 있는 경우에, 상기 오프셋과 동일한 오프셋 타입에 관련지어진 복호 완료된 오프셋으로부터 도출하고, 상기 오프셋에 관련지어진 오프셋 타입이 제2 오프셋 타입 군에 속해 있는 경우에, 상기 오프셋과 동일한 오프셋 타입 및 오프셋 클래스에 관련지어진 복호 완료된 오프셋으로부터 도출하므로, 처리량을 삭감하면서, 예측 정밀도를 향상시킬 수 있다. 따라서, 상기 구성에 의하면, 처리량을 삭감하면서, 부호량이 적은 부호화 데이터로부터 오프셋을 적절하게 복호할 수 있다.
또한, 상기 제1 오프셋 타입이란, 예를 들어 당해 제1 오프셋 타입에 관련지어진 단위 영역에서의 각 화소가, 예를 들어 상기 화소의 근방에 에지의 형태에 따라, 복수의 클래스 중 어느 하나로 분류되는 것을 가리키고, 상기 제2 오프셋 타입이란, 당해 제2 오프셋 타입에 관련지어진 단위 영역에서의 각 화소가, 예를 들어 상기 화소의 화소값에 따라, 복수의 클래스 중 어느 하나로 분류되는 것을 가리킨다.
또한, 상기 오프셋 산출 수단은, 각 오프셋을, 상기 예측값 도출 수단에 의해 도출된 예측값 및 상기 오프셋 잔차 복호 수단에 의해 복호된 오프셋 잔차의 선형 함수로서 산출하는 것이며, 상기 예측값에 곱해지는 계수는, 상기 오프셋에 관련지어진 오프셋 타입이 제1 오프셋 타입 군에 속해 있는 경우와, 상기 오프셋에 관련지어진 오프셋 타입이 제2 오프셋 타입 군에 속해 있는 경우에 상이한 것이 바람직하다.
상기 구성에 의하면, 상기 예측값에 곱해지는 계수는, 상기 오프셋에 관련지어진 오프셋 타입이 제1 오프셋 타입 군에 속해 있는 경우와, 상기 오프셋에 관련지어진 오프셋 타입이 제2 오프셋 타입 군에 속해 있는 경우에 상이하므로, 오프셋 타입에 따라, 보다 적절한 계수를 사용하여 상기 오프셋을 산출할 수 있다. 이에 의해 부호화 효율의 향상을 도모할 수 있다.
또한, 상기 예측값 도출 수단은, 각 오프셋의 예측값을, 복호 완료된 오프셋과 상기 복호 완료된 오프셋의 예측값의 가중 평균을 취함으로써 도출하는 것이 바람직하다.
상기 구성에 의하면, 각 오프셋의 예측값을, 복호 완료된 오프셋과 상기 복호 완료된 오프셋의 예측값의 가중 평균을 취함으로써 도출하므로, 각 오프셋의 예측값에는, 복호 완료된 복수의 오프셋이 기여하게 된다. 따라서, 예측값의 과도한 변동이 억제된다. 이에 의해, 예를 들어 노이즈의 영향에 의해 적절하지 않은 예측값이 산출된 경우에도, 그러한 적절하지 않은 예측값의 영향을 억제할 수 있으므로, 부호화 효율의 향상을 도모할 수 있다.
또한, 상기 예측값 도출 수단은, 도출한 각 예측값을, 입력 화상에서의 각 화소값의 비트 심도에 따른 상한값 및 하한값으로 클립하는 클립 수단을 구비하고 있는 것이 바람직하다.
상기 구성에 의하면, 도출한 각 예측값을, 입력 화상에서의 각 화소값의 비트 심도에 따른 상한값 및 하한값으로 클립하므로, 너무 큰 예측값이나 너무 작은 예측값이 발생하지 않아, 부호화 효율의 향상을 도모할 수 있다.
또한, 본 발명에 따른 화상 필터 장치는, 입력 화상에 작용하는 화상 필터 장치이며, 입력 화상에서의 대상 화소의 화소값과 상기 대상 화소의 주변 화소의 화소값과의 차분값을 산출하는 산출 수단과, 상기 산출 수단에 의해 참조되는 화소값, 또는 상기 산출 수단에 의해 산출된 차분값을 소정의 시프트값만큼 우측 비트 시프트 하는 비트 시프트 수단과, 상기 비트 시프트 수단에 의해 우측 비트 시프트된 차분값과 0의 대소 관계에 따라, 상기 대상 화소를 복수의 오프셋 클래스 중 어느 하나로 분류하는 분류 수단과, 상기 대상 화소의 화소값에 대하여 상기 분류 수단에 의해 분류된 오프셋 클래스에 관련지어진 오프셋을 가산하는 오프셋 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기와 같이 구성된 화상 필터 장치에 의하면, 우측 비트 시프트된 차분값과 0의 대소 관계에 따라, 상기 대상 화소를 복수의 오프셋 클래스 중 어느 하나로 분류하고, 상기 대상 화소의 화소값에 대하여 상기 분류 수단에 의해 분류된 오프셋 클래스에 관련지어진 오프셋을 가산하므로, 클래스 분류 처리가 노이즈의 영향을 받기 어려워져 부호화 효율이 향상된다.
또한, 상기 소정의 시프트값은, 상기 대상 화소의 화소값의 비트 심도와 정의 상관을 갖고 있는 것이 바람직하다.
상기 구성에 의하면, 상기 소정의 시프트값은, 상기 대상 화소의 화소값의 비트 심도와 정의 상관을 갖고 있으므로, 부호화 효율의 향상을 더 효과적으로 도모할 수 있다.
또한, 본 발명에 따른 화상 필터 장치는, 입력 화상에 작용하는 화상 필터 장치이며, 입력 화상에서의 대상 화소의 화소값과 상기 대상 화소의 주변 화소의 화소값과의 차분값을 산출하는 산출 수단과, 상기 산출 수단에 의해 산출된 차분값과, 미리 정해진 제1 및 제2 임계값과의 대소 관계에 따라, 상기 대상 화소를 복수의 오프셋 클래스 중 어느 하나로 분류하는 분류 수단과, 상기 대상 화소의 화소값에 대하여 상기 분류 수단에 의해 분류된 오프셋 클래스에 관련지어진 오프셋을 가산하는 오프셋 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기와 같이 구성된 화상 필터 장치는, 상기 산출 수단에 의해 산출된 차분값과, 미리 정해진 제1 및 제2 임계값과의 대소 관계에 따라, 상기 대상 화소를 복수의 오프셋 클래스 중 어느 하나로 분류하고, 상기 대상 화소의 화소값에 대하여 상기 분류 수단에 의해 분류된 오프셋 클래스에 관련지어진 오프셋을 가산하므로, 클래스 분류 처리가 노이즈의 영향을 받기 어려워져 부호화 효율이 향상된다.
또한, 상기 제1 및 제2 임계값의 절댓값은, 상기 대상 화소의 화소값의 비트 심도와 정의 상관을 갖고 있는 것이 바람직하다.
상기 구성에 의하면, 상기 제1 및 제2 임계값의 절댓값은, 상기 대상 화소의 화소값의 비트 심도와 정의 상관을 갖고 있으므로, 부호화 효율의 향상을 더 효과적으로 도모할 수 있다.
또한, 본 발명에 따른 화상 필터 장치는, 복수의 단위 영역으로 구성되는 입력 화상에 작용하는 화상 필터 장치이며, 제1 및 제2 오프셋 타입 중, 입력 화상에서의 대상 화소를 포함하는 대상 단위 영역이 속하는 오프셋 타입을 결정하는 결정 수단과, 상기 대상 단위 영역이 속하는 오프셋 타입 및 상기 대상 화소의 화소값에 따라, 상기 대상 화소를, 오프셋을 가산하지 않는 오프셋 클래스 및 오프셋을 가산하는 복수의 오프셋 클래스 중 어느 하나로 분류하는 분류 수단과, 상기 대상 화소의 화소값에 대하여 상기 대상 단위 영역이 속하는 오프셋 타입 및 상기 분류 수단에 의해 분류된 오프셋 클래스에 관련지어진 오프셋을 가산하는 오프셋 수단을 구비하고 있고, 상기 분류 수단은, 상기 대상 화소의 화소값이 소정의 범위 내일 때, 상기 대상 화소를 포함하는 단위 영역이 속하는 오프셋 타입이 상기 제1 및 상기 제2 오프셋 타입 중 어느 경우라도, 상기 대상 화소를, 오프셋을 가산하는 오프셋 클래스로 분류하는 것을 특징으로 하고 있다.
상기와 같이 구성된 화상 필터 장치에 의하면, 상기 대상 화소의 화소값이 소정의 범위 내일 때, 상기 대상 화소를 포함하는 단위 영역이 속하는 오프셋 타입이 상기 제1 및 상기 제2 오프셋 타입 중 어느 경우라도, 상기 대상 화소를, 오프셋을 가산하는 오프셋 클래스로 분류하므로, 블록 노이즈를 효과적으로 제거할 수 있다. 따라서, 상기 구성에 의하면, 부호화 효율의 향상을 도모할 수 있다.
또한, 본 발명에 따른 화상 필터 장치는, 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터 장치이며, 복수의 오프셋 타입 중, 처리 대상의 단위 영역이 속하는 오프셋 타입을 결정하는 결정 수단과, 상기 오프셋 타입에 따라, 서로 다른 비트 폭을 갖는 오프셋을 결정함과 함께, 상기 오프셋을 부호화하는 오프셋 부호화 수단과, 상기 입력 화상의 각 화소값에 상기 결정된 오프셋을 가산하는 필터 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기와 같이 구성된 화상 필터 장치에 의하면, 복수의 오프셋 타입 중, 처리 대상의 단위 영역이 속하는 오프셋 타입을 결정하고, 결정된 오프셋 타입에 따라, 서로 다른 비트 폭을 갖는 오프셋을 결정하고, 결정된 오프셋을, 상기 입력 화상의 각 화소에 가산한다. 또한, 결정된 오프셋을 부호화한다.
따라서, 상기 구성에 의하면, 오프셋을 저장해 두기 위한 메모리 크기를 삭감하면서, 적절한 오프셋 필터 처리를 행할 수 있다. 또한, 상기 구성에 의하면, 부호화 데이터의 부호량이 삭감되므로, 부호화 효율이 향상된다.
또한, 본 발명에 따른 오프셋 부호화 장치는, 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터에 의해 참조되는 각 오프셋을 부호화하는 오프셋 부호화 장치이며, 각 오프셋의 예측값을, 부호화 완료된 오프셋으로부터 도출하는 예측값 도출 수단과, 각 오프셋과 상기 예측값 도출 수단에 의해 도출된 예측값으로부터 오프셋 잔차를 산출하는 오프셋 잔차 산출 수단과, 상기 오프셋 잔차 산출 수단에 의해 산출된 오프셋 잔차를 부호화하는 오프셋 잔차 부호화 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기와 같이 구성된 오프셋 부호화 장치에 의하면, 각 오프셋의 예측값을, 부호화 완료된 오프셋으로부터 도출하는 예측값 도출 수단과, 각 오프셋과 상기 예측값 도출 수단에 의해 도출된 예측값으로부터 오프셋 잔차를 산출하는 오프셋 잔차 산출 수단과, 상기 오프셋 잔차 산출 수단에 의해 산출된 오프셋 잔차를 부호화하는 오프셋 잔차 부호화 수단을 구비하고 있으므로, 부호화 데이터의 부호량을 삭감할 수 있다.
또한, 본 발명에 따른 부호화 데이터의 데이터 구조는, 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터에 의해 참조되는 부호화 데이터의 데이터 구조이며, 각 단위 영역이 속하는 오프셋 타입을 지정하는 오프셋 타입 지정 정보와, 상기 오프셋 타입에 따라서 서로 다른 비트 폭을 갖는 오프셋을 포함하고 있고, 상기 화상 필터는, 상기 부호화 데이터에 포함되는 오프셋 타입 지정 정보를 참조하여, 처리 대상의 단위 영역이 속하는 오프셋 타입을 결정함과 함께, 결정한 오프셋 타입에 따라서 서로 다른 비트 폭을 갖는 오프셋을 복호하는 것을 특징으로 하고 있다.
상기와 같이 구성된 부호화 데이터는, 오프셋 타입에 따라서 서로 다른 비트 폭을 갖는 오프셋을 포함하고 있으므로, 부호화 데이터의 부호량이 삭감된다. 또한, 상기 부호화 데이터를 복호하는 화상 필터는, 상기 오프셋 타입 지정 정보를 참조하여, 처리 대상의 단위 영역이 속하는 오프셋 타입을 결정함과 함께, 결정한 오프셋 타입에 따라서 서로 다른 비트 폭을 갖는 오프셋을 복호하므로, 오프셋을 저장해 두기 위한 메모리 크기를 삭감하면서, 적절한 오프셋 필터 처리를 행할 수 있다.
또한, 상기 오프셋 타입 지정 정보는, 상기 입력 화상마다 정해져 있는 것이어도 되고, 상기 단위 영역마다 정해져 있는 것이어도 된다. 또한, 상기 입력 화상의 소정의 세트마다 정해져 있는 것이어도 되고, 상기 단위 영역의 소정의 세트마다 정해져 있는 것이어도 된다.
[실시 형태 3]
우선, 본 실시 형태에서의 오프셋 정보(OI)에 대해서, 도 23을 참조하여 설명한다. 도 23의 (a)는 오프셋 정보(OI)(도 23의 (a)에서 "sao_offset_param( )"라고 표기)의 구문을 도시하는 도면이다.
도 23의 (a)에 도시한 바와 같이, 오프셋 정보(OI)에는, 파라미터 "sao_type_idx[sao_curr_depth][ys][xs]"가 포함되어 있다. 또한, 파라미터 "sao_type_idx[sao_curr_depth][ys][xs]"가 「0」이 아닐 경우, 오프셋 정보(OI)에는, 파라미터 "sao_offset[sao_curr_depth][ys][xs][i]"가 포함되어 있다.
(sao_curr_depth, ys, xs)
"sao_type_idx" 및 "sao_offset"의 인수인 "sao_curr_depth"는, QAOU의 분할 심도를 나타내는 파라미터이며, "ys" 및 "xs"는, 각각, QAOU(또는 후술하는 QAOMU)의 y 방향의 위치 및 x 방향의 위치를 나타내기 위한 파라미터이다.
"sao_curr_depth"의 값에 따른 QAOU의 분할의 형태에 대해서는, 도 4를 참조하여 상기에서 설명한 바와 같다.
도 23의 (b)는 QAOU 정보(도 23의 (b)에서 "sao_split_param( )"라고 표기)의 구문을 도시하는 도면이다. 도 23의 (b)의 구문에서 나타내는 바와 같이, 분할 심도 "sao_curr_depth"가 소정의 "saoMaxDepth"로 설정되는 최대값보다 작으면, 파라미터 "sao_split_flag"에 의해, QAOU가 더 분할되는지 여부가 선택된다. 분할되는 경우에는, 다음 계층 심도의 "sao_split_param( )"가 재귀적으로 호출된다. 분할 심도가 최대값에 달한("sao_curr_depth"가 "saoMaxDepth"보다 작지 않은) 경우에는, "sao_split_flag[sao_curr_depth][ys][xs]"에는 「0」이 설정되고, 그 이상의 분할은 행해지지 않는다.
도 44에는, 오프셋 정보 및 QAOU 정보의 구문의 다른 예를 나타낸다.
도 44의 (a)는 오프셋 정보의 구문이다. 도 23의 (a)와 마찬가지의 구성으로 되어 있지만, "sao_offset_param( )"의 인수 및 "sao_split_flag", "sao_type_idx", "sao_offset"의 배열의 첨자에, 색 성분을 의미하는 값인 "component"가 추가되어 있다. 이에 의해, 휘도 및 색차 등의 색 성분마다 서로 다른 QAOU 분할을 행하고, 또한, 서로 다른 오프셋을 적용할 수 있다.
도 44의 (b)는 QAOU 정보의 구문이다. 도 44의 (a)와 동일하게, 도 23의 (b)에 인수로서 색 성분 "component"를 추가한 구문이다.
도 44의 (c)는, 도 44의 (a) 및 도 44의 (b)의 구문을 호출하는, 적응 오프셋 필터 전체의 구문이다. 파라미터 "sao_flag"는 적응 오프셋 필터를 적용하는지의 여부를 선택하는 플래그이며, 당해 플래그가 참인 경우에만, 후속의 적응 오프셋 필터에 관한 파라미터가 사용된다. 당해 플래그가 참인 경우, 각 색 성분에 대하여 구문 "sao_split_param( )" 및 "sao_offset_param( )"가 최상위 계층을 지정하여 호출된다. 최상위 계층이기 때문에, 각 구문에 부여되는 인수는, sao_curr_depth=0, ys=0, xs=0이다. 또한, "component"의 값은, 휘도(Y)의 경우에는 0, 색차(Cb)의 경우에는 1, 색차(Cr)의 경우에는 2로 해서, 각 색 성분을 구별하고 있다. 또한, component의 값은, 처리 대상의 색 성분을 구별할 수 있으면 다른 값이어도 된다.
또한, 색차(Cb) 및 색차(Cr)에 대해서는, 각각에 대응하는 플래그 "sao_flag_cb" "sao_flag_cr"을 사용하여, 적응 오프셋 필터를 적용하는지의 여부를 선택하고, 적용하지 않을 경우에는 당해 색 성분에 대응하는 QAOU 정보 및 오프셋 정보를 저장하지 않는다.
상기 도 44의 구문에서는 인수 "component"가 추가되어 있기 때문에, 상기 도 23을 사용한 설명에서, 인수 [sao_curr_depth][ys][xs]를 [sao_curr_depth][ys][xs][component]로 치환하여 처리한다. 이후의 설명에서도 마찬가지이다.
(동화상 복호 장치(1'))
이어서, 본 실시 형태에 따른 동화상 복호 장치(1')에 대해서, 도 22 및 도 24 내지 도 29를 참조하여 설명한다. 또한, 상기의 실시 형태에서 나타낸 부재와 동일한 기능을 갖는 부재에는, 동일한 부호를 부여하고 그 설명을 생략한다.
동화상 복호 장치(1')는, 동화상 복호 장치(1)와 마찬가지로, 그 일부에, H.264/MPEG-4.AVC에 채용되어 있는 방식, VCEG(Video Coding Expert Group)에서의 공동 개발용 코덱인 KTA 소프트웨어에 채용되어 있는 방식, 그 후계 코덱인 TMuC(Test Model under Consideration) 소프트웨어에 채용되어 있는 방식 및 HM(HEVC TestModel) 소프트웨어에 채용되어 있는 기술을 포함하고 있다. 또한, 동화상 복호 장치(1')는, 동화상 복호 장치(1)에서의 적응 오프셋 필터(60) 대신에 적응 오프셋 필터(60')가 설치되어 있는 점이 상이하고, 다른 구성은 마찬가지이다.
(적응 오프셋 필터(60'))
이어서, 적응 오프셋 필터(60')의 상세에 대해서, 도 22를 참조하여 설명한다. 도 22는, 적응 오프셋 필터(60')의 구성을 도시하는 블록도이다. 도 22에 도시한 바와 같이, 적응 오프셋 필터(60')는, 적응 오프셋 필터 정보 복호부(61') 및 적응 오프셋 필터 처리부(62')를 포함하는 구성이다.
또한, 도 22에 도시한 바와 같이, 적응 오프셋 필터 정보 복호부(61')는, 오프셋 정보 복호부(611) 및 QAOU 구조 복호부(612)를 포함하는 구성이다.
오프셋 정보 복호부(611)는, 부호화 데이터(#1)에 포함되어 있는 QAOU 정보를 참조하여, QAOU 정보에 포함되어 있는 오프셋 정보(OI)를 복호한다. 또한, 오프셋 정보(OI)를 복호함으로써 얻어진 "sao_type_idx[sao_curr_depth][ys][xs][component]" 및 "sao_offset[sao_curr_depth][ys][xs][i]"의 각 값을, 각각의 인수 (sao_curr_depth, ys, xs) 및 (sao_curr_depth, ys, xs, i)에 관련지어, 오프셋 정보 저장부(621)에 공급한다.
보다 상세하게는, 오프셋 정보 복호부(611)는, 부호화 데이터(#1)로부터 코드를 복호하고, 복호한 코드를 "sao_type_idx"의 값으로 변환하여, 인수에 관련지어서 오프셋 정보 저장부(621)에 공급한다. 여기서, 오프셋 정보 복호부(611)는, 코드의 복호 방법 및 코드로부터 "sao_type_idx"의 값으로의 변환을, 처리 대상의 QAOU의 계층의 심도에 따라 변경하고 있다. 이 QAOU의 계층의 심도 등의 조건을 파라미터 조건이라 칭한다. 일반적인 파라미터 조건에 따른 오프셋 정보의 복호에 대해서는, 도 41, 도 42를 사용하여 후술한다.
코드의 복호 방법은, 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우와 처리 대상의 QAOU의 계층의 심도가 임계값 이상인 경우에, 서로 다른 최대값을 사용하여 행하는 것이어도 되고, 처리 대상의 QAOU의 계층의 심도가 임계값 이상의 경우에만 최대값을 사용하는 것이어도 된다. 또한, 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우와 처리 대상의 QAOU의 계층의 심도가 임계값 이상인 경우에, 서로 다른 바이너리제이션을 사용하여 행하는 것이어도 된다. 또한, 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우와 처리 대상의 QAOU의 계층의 심도가 임계값 이상인 경우에, 서로 다른 컨텍스트를 사용하는 것이어도 된다.
예를 들어, 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우에는, 가변 길이 부호화(ue(v))로 코드를 복호하고, 처리 대상의 QAOU의 계층의 심도가 임계값 이상인 경우에는, 오프셋 타입의 수에 따른 truncated 부호화(te(v))로, 코드를 복호해도 된다. 또한, 오프셋 타입 수가, 2의 거듭제곱승이면, 고정 길이 부호화로, 코드를 복호해도 된다. 오프셋 타입 수가 4개이면, 2bit로 표현 가능하므로, 2bit로 고정 길이 부호화할 수 있다.
또한, 오프셋 정보 복호부(611)는, 복호한 코드로부터 "sao_type_idx"의 값으로의 변환은, 도 25에 도시한 바와 같은 변환 테이블(801) 및 변환 테이블(802)을 사용하여 행한다. 도 25의 (a)의 변환 테이블(801)에서는, 2가지의 변환 패턴을 나타내고 있다. 이 2가지의 변환 패턴은, 처리 대상의 QAOU의 계층의 심도에 따라 구분지어 사용할 수 있다. 즉, 오프셋 정보 복호부(611)는, 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우에는, 변환 테이블(801A)을 사용하고, 처리 대상의 QAOU의 계층의 심도가, 임계값 이상인 경우에는, 변환 테이블(801B)을 사용한다.
도 25의 (a)의 변환 테이블(801A)에서는, 코드 「1」에 대하여 오프셋 타입 「EO_0」("sao_type_idx"=1)이 대응지어져 있고, 코드 「2」에 대하여 오프셋 타입 「EO_1」("sao_type_idx"=2)이 대응지어져 있고, 코드 「3」에 대하여 오프셋 타입 「EO_2」("sao_type_idx"=3)이 대응지어져 있다. 이하, 코드 4 내지 6에 대해서도 마찬가지이다.
또한, 도 25의 (a)의 변환 테이블(801B)에서는, 코드 「1」에 대하여 오프셋 타입 「EO_0」("sao_type_idx"=1)이 대응지어져 있고, 코드 「2」에 대하여 오프셋 타입 「BO_0」("sao_type_idx"=5)이 대응지어져 있고, 코드 「3」에 대하여 오프셋 타입 「BO_1」("sao_type_idx"=6)이 대응지어져 있다. 그리고, 변환 테이블(801B)에서는, 코드 4 내지 6은 사용되지 않았다.
이와 같이, 변환 테이블(801A)에서는, 적응 오프셋(SAO)에 사용하는 오프셋 타입 모두가 포함되어 있는 것에 반해, 변환 테이블(801B)에서는, 적응 오프셋(SAO)에 사용하는 오프셋 타입 중, 일부의 오프셋 타입밖에 포함되어 있지 않다. 따라서, 처리 대상의 QAOU의 계층의 심도가 임계값 이상인 경우에는, 일부의 오프셋 타입밖에 사용할 수 없게 된다.
이것은, 깊은 계층에서는, QAOU의 면적이 작아지기 때문에, QAOU 내의 화소값의 특성이 균일하게 가까워져, 많은 타입을 사용하지 않아도, 적절한 오프셋을 도출할 수 있기 때문이다. 또한, 이에 의해, 사용하는 오프셋 타입 수를 저감시킬 수 있으므로, 필요한 메모리량을 저감시킬 수 있음과 함께, 오프셋 타입을 나타내는 부호화 데이터의 데이터 길이 등을 짧게 함으로써, 부호화 효율을 향상시킬 수 있다.
또한, 변환 테이블(801B)에서의 코드와 오프셋 타입의 대응짓기가, 변환 테이블(801A)에서의 코드와 오프셋 타입의 대응짓기의 순서와 동일한 것이라면, 변환 테이블(801A)만을 사용하는 구성이어도 된다.
도 25의 (b)의 변환 테이블(802)은, 변환 테이블(801B) 대신에 사용할 수 있는, 변환 테이블(801B)과 마찬가지의 변환 테이블의 다양한 예를 나타내고 있다. 어느 변환 테이블이든, 변환 테이블(801B)과 마찬가지로 타입의 종류가 제한되어 있다. 또한, 공란은 해당하는 코드가 사용되지 않는 것을 나타낸다.
변환 테이블(802A)은, 에지 오프셋만을 사용하는 예이며 밴드 오프셋을 포함하지 않는다. 에지 오프셋의 오프셋 수는 통상 4개이며, 밴드 오프셋의 오프셋 수는 통상 16개이다. 이와 같이, 에지 오프셋의 오프셋 수는 밴드 오프셋의 오프셋 수에 비해 적다. 이로 인해, 밴드 오프셋의 사용을 제한함으로써, 오프셋의 유지에 사용하는 메모리량을 삭감할 수 있다. 특히, 계층이 깊을 경우, 오프셋이 증가하기 때문에 메모리량이 커진다. 또한, 계층이 깊을 경우에는, 밴드 오프셋의 선택률이 저하된다. 그로 인해, 계층을 파라미터 조건으로 하여, 계층이 깊을 경우에 에지 오프셋만을 구비하는 변환 테이블(802A)을 사용하고, 계층이 얕을 경우에는, 에지 오프셋과 밴드 오프셋을 구비하는 변환 테이블(예를 들어 801A)을 사용함으로써, 부호화 효율을 저하시키지 않고 메모리량의 삭감이 가능하게 된다. 또한, 부호화 장치에서 불필요한 선택지의 비용 계산을 생략할 수 있기 때문에 처리량을 저감할 수 있다.
변환 테이블(802B)은, 밴드 오프셋만을 사용하는 예이며 에지 오프셋을 포함하지 않는다. 밴드 오프셋은 에지 오프셋에 비해, 연산량이 작은 것, 대상 화소의 주위 화소를 사용하지 않기 때문에 참조 화소를 유지하기 위한 라인 메모리 등이 불필요하다는 특징을 갖는다. 그로 인해, 파라미터 조건에 따라, 변환 테이블(802B)을 사용함으로써 상기에 의한 효과를 얻을 수 있다. 변환 테이블(802C)은, 1개의 밴드 오프셋 「BO_0」("sao_type_idx"=5)만을 사용하는 예이다.
또한, 변환 테이블(802D)은, 변환 테이블(801B)과 마찬가지로 1개의 에지 오프셋과 2개의 밴드 오프셋을 사용하는 예이다. 구체적으로는, 오프셋 타입 「EO_0」("sao_type_idx"=1) 및 「BO_0」("sao_type_idx"=5), 「BO_1」("sao_type_idx"=6)을 사용하여, 밴드 오프셋 타입에 우선적으로 짧은 코드(작은 코드 번호)에 대응지은 예이다. 계층이 얕은 경우에는, 계층이 깊은 경우에 비해 밴드 오프셋의 선택률이 높아지기 때문에, 계층을 파라미터 조건으로 하고, 계층이 얕을 경우에 변환 테이블(802D)을 사용하여, 사용 빈도가 높은 타입에 짧은 코드에 대응지음으로써, 부호화 효율을 향상시킬 수 있다.
또한, 도 25에 예시한 것 이외에도, 파라미터 조건에 따라, 코드와 오프셋 타입의 대응짓기를 변경하는 것이 가능하다. 변환 테이블(801A)의 어느 에지 오프셋과도 밴드 오프셋과도 상이한 오프셋 타입을, 계층 심도 등의 조건에 따라서 단독 또는 다른 오프셋 타입과 함께 사용할 수 있다. 그 구체예로서는, 후술하는 다른 실시 형태에서 설명하는, EO와 BO의 특징을 겸비한 오프셋 타입이나, 종래의 에지 오프셋 「EO_0」와 상이한 수평 샘플 위치에서 에지를 검출하는 에지 오프셋이나, 종래의 밴드 오프셋 「BO_0」 및 「BO_1」과는 다른 밴드 할당에 의한 밴드 오프셋을 들 수 있다.
QAOU 구조 복호부(612)는, QAOU 정보에 포함되어 있는 "sao_split_flag[sao_curr_depth][ys][xs]"를 복호함으로써, QAOU의 분할 구조를 결정하고, 결정된 QAOU의 분할 구조를 나타내는 QAOU 구조 정보를, 오프셋 정보 저장부(621)에 공급한다.
또한, 다음에 나타낸 바와 같은 오프셋 속성 설정부(613)를 구비하고 있어도 된다. 오프셋 속성 설정부(613)는, 오프셋의 시프트값을 결정한다. 부호화 데이터의 오프셋은, 화소 비트 심도(PIC_DEPTH라고도 함)보다 정밀도가 낮은 오프셋의 비트 심도(SAO_DEPTH라고도 함)로 부호화된다. 즉, 부호화 데이터 중의 오프셋은, 양자화되어 있다. 시프트값이란, 역양자화를 행하기 위해 필요한 비트 시프트량을 나타낸다. 또한, 오프셋 속성 설정부(613)는, 오프셋의 비트 심도와 오프셋의 값 영역을 결정한다. 여기에서는, 오프셋의 비트 심도는, 오프셋 속성 설정부(613)에 입력되는 도시하지 않은 화소 비트 심도(PIC_DEPTH라고도 함)로부터 결정한다. 화소 비트 심도란, 적응 오프셋 필터(60)의 입력 화상을 구성하는 화소값의 값 영역을 비트 폭으로 나타내는 것이며, 화소 비트 심도가 N 비트일 때, 화소값은 0 내지 2N-1의 범위를 취한다.
SAO의 비트 심도 및 시프트값은, 이하의 식을 사용하는데, 후술하는 바와 같이, 파라미터 조건에 따라서 다른 값을 사용해도 된다.
SAO_DEPTH=MIN(PIC_DEPTH, 10)
시프트값=PIC_DEPTH-MIN(PIC_DEPTH, 10)
또한, 양자화 오프셋의 값 영역을 이하의 식으로 결정한다.
또한, 도 22에 도시한 바와 같이, 적응 오프셋 필터 처리부(62')는, 오프셋 정보 저장부(621), QAOU 제어부(622), 오프셋 타입 도출부(623), 클래스 분류부(624), 오프셋 도출부(625) 및 오프셋 가산부(626)를 포함하는 구성이다.
오프셋 정보 저장부(621)는, QAOU 구조 정보, "sao_type_idx[sao_curr_depth][ys][xs]" 및 "sao_offset[sao_curr_depth][ys][xs][i]"에 기초하여, 각 QAOU에 대하여 지정된 오프셋 타입 및 상기 오프셋 타입에 있어서 선택 가능한 각 클래스에 관한 오프셋의 구체적인 값을 관리 및 저장하는 것이며, 맵 메모리 및 리스트 메모리를 구비한 구성이다.
맵 메모리 및 리스트 메모리에 대해서, 도 24를 참조하여 설명한다. 도 24는, 맵 메모리 및 리스트 메모리에 저장되는 예를 도시하는 도면이며, 도 24의 (a)는 맵 메모리에 저장되는 QAOU 인덱스의 일례를 설명하기 위한 도면이며, 도 24의 (b)는 리스트 메모리에 저장되는 정보의 일례를 설명하기 위한 도면이다.
맵 메모리(601)에는, 분할 심도에 따라서 정해지는 각 오프셋 최소 단위(QAOMU: Quad Adaptive Offset Minimum Unit이라고도 함)에 할당된 후술하는 QAOU 인덱스가 저장되어 있다. 도 24의 (a)에서는, 대상의 처리 단위(예를 들어 LCU)를 구성하는 분할 심도 3의 각 QAOMU와 각 QAOMU에 할당된 QAOU 인덱스를 나타내고 있다. 또한, 도 24의 (a)에서는, QAOU의 분할 심도를 고려하지 않고, 간이적으로 인덱스 0 내지 9를 QAOU에 할당하고 있다. 또한, 도 24의 (a)에 나타내는 예에서는, QAOU 인덱스=I에 의해 지정되는 QAOU를 QAOUI라고 표기하고 있다. 또한, 도 24의 (a)에서의 가는 선은 QAOMU의 경계를 나타내고 있고, 굵은 선은 QAOU의 경계를 나타내고 있다.
도 24의 (a)에 도시한 바와 같이, QAOU0은, 4개의 QAOMU로 구성되어 있고, 이들 4개의 QAOMU에는, QAOU 인덱스로서 0이 할당되어 있다. 한편, QAOU3은, 1개의 QAOMU로 구성되어 있고, 이 QAOMU에는, QAOU 인덱스로서 3이 할당되어 있다. 이와 같이, 맵 메모리에는, 각 QAOMU에 할당된 QAOU 인덱스가 저장되어 있다.
또한, 리스트 메모리(602)에는, 각 QAOU 인덱스에 대하여 상기 QAOU 인덱스에 관련지어진 오프셋 타입 및 상기 오프셋 타입에 있어서 선택 가능한 각 클래스에 관한 오프셋의 구체적인 값이 서로 관련지어져서 저장되어 있다.
구체적으로, 도 24의 (b)를 참조하여 설명한다. 도 24의 (b)에서는, QAOU 인덱스 0 내지 9의 각각에 관련지어진 오프셋 타입 및 각 오프셋 타입에 있어서 선택 가능한 각 클래스에 관한 오프셋을 나타내고 있다. 도 24의 (b)에서의 「xxx」는, 서로 상이할 수 있는 구체적인 수치를 나타내고 있다.
또한, 도 24의 (b)에서의 「BO_1」은, "sao_type_idx"=5에 의해 지정되는 오프셋 타입을 나타내고 있다. 또한, 「EO_1」은, "sao_type_idx"=1에 의해 지정되는 오프셋 타입을 나타내고 있다. 이와 같이, "sao_type_idx"=1, 2, 3, 4에 의해 지정되는 오프셋 타입인 에지 오프셋을 각각 「EO_1, 2, 3, 4」라고도 표기하고, "sao_type_idx"=5, 6에 의해 지정되는 오프셋 타입인 밴드 오프셋을 각각 「BO_1, 2」라고도 표기한다.
도 24의 (b)에 도시한 바와 같이, 오프셋 타입이 밴드 오프셋일 경우, 상기 오프셋 타입에 대하여 리스트 메모리에 저장되는 오프셋은, 오프셋 1 내지 오프셋 16의 합계 16개이다. 여기서, 오프셋 1 내지 오프셋 16은, "sao_type_idx[sao_curr_depth][ys][xs]"의 값이 「5」 또는 「6」일 경우의, "sao_offset[sao_curr_depth][ys][xs][1]" 내지 "sao_offset[sao_curr_depth][ys][xs][16]"에 의해 각각 지정되는 값을 가리킨다.
한편, 오프셋 타입이 에지 오프셋일 경우, 상기 오프셋 타입에 대하여 리스트 메모리에 저장되는 오프셋은, 오프셋 1 내지 4의 합계 4개이다. 여기서, 오프셋 1 내지 4는, "sao_type_idx[sao_curr_depth][ys][xs]"의 값이 「1, 2, 3, 4」 중 어느 1개일 경우의, "sao_offset[sao_curr_depth][ys][xs][1]" 내지 "sao_offset[sao_curr_depth][ys][xs][4]"에 의해 각각 지정되는 값을 가리킨다. 또한, 에지 오프셋의 경우, 오프셋 5 내지 16에는 아무것도 저장되지 않는다.
또한, 각 QAOMU에는, QAOMU 번호가 붙어 있고, 이 QAOMU 번호에 의해 각 QAOMU는 서로 식별 가능하다. 이하에서는, QAOMU 번호가 NQ인 QAOMU를 QAOMUNQ라고도 표기한다.
또한, 본 실시 형태에서는, 처리 대상의 QAOU의 계층에 의해, 오프셋의 정밀도를 상이하게 하는 것이어도 된다. 오프셋의 정밀도에 따라, 역양자화에 사용하는 시프트값도 상이하다. 이 경우도, 오프셋의 정밀도 및 시프트값은, 화소 비트 심도(PIC_DEPTH)를 사용하여 도출한다.
오프셋의 정밀도의 예로서는, 예를 들어 QAOU의 계층의 심도가 임계값보다 작은 경우의 오프셋의 정밀도, 시프트값을,
SAO_DEPTH=MIN(PIC_DEPTH, 10)
시프트값=PIC_DEPTH-MIN(PIC_DEPTH, 10)
으로 하고, QAOU의 계층의 심도가 임계값 이상일 경우의 오프셋의 정밀도를,
SAO_DEPTH=MIN(PIC_DEPTH, 8)
시프트값=PIC_DEPTH-MIN(PIC_DEPTH, 8)
과 같이 하면, 오프셋의 정밀도를 서로 다른 것으로 할 수 있다.
상술한 바와 같이, 오프셋의 정밀도(오프셋의 비트 심도, SAO_DEPTH)와, 입력 화상을 구성하는 화소값의 값 영역을 비트 폭으로 표현한 화소 비트 심도(PIC_DEPTH)는, 양자화 오차의 관점에서 서로 밀접한 관계가 있다. 적응 오프셋 필터(60)의 출력 화상의 비트 심도는, 화소 비트 심도(PIC_DEPTH)이며, SAO_DEPTH는 화소에 가하는 오프셋의 비트 심도이므로, 화소 비트 심도를 초과하는 정밀도의 오프셋을 사용해도 출력 과정에서 버려지게 되어, SAO_DEPTH를 PIC_DEPTH를 초과하여 설정해도 의미가 없다. 반대로, SAO_DEPTH가 PIC_DEPTH보다 작은 경우에는, 입력 화상을 필터에 의해 보정 가능한 정밀도(PIC_DEPTH)보다 거친 보정밖에 행할 수 없기 때문에, 필터 효과는 감소한다.
따라서, 양자화된 오프셋을 일정한 비트 폭으로 표현할 수 있는 오프셋값 영역으로 제한함으로써, 오프셋 정보 저장부(621)에서 양자화된 오프셋을 저장하기 위한 비트 폭을 제한할 수 있다. 이에 의해, 제한하지 않을 경우와 비교하여, 메모리 크기 삭감의 효과를 얻을 수 있다. 한편으로, 과도하게 오프셋값 영역을 좁게 하는 것은, 오프셋이 복호 화상의 왜곡을 보정하는 효과를 작게 해버려, 오프셋 가산 처리에 의해서도 복호 화상의 왜곡을 제거할 수 없어, 부호화 효율이 저하되어버린다.
따라서, 부호화 효율이 저하되지 않도록 오프셋값 영역을 최적의 범위를 설정함으로써, 메모리의 사용량을 삭감하면서, 필터의 효과를 유지할 수 있다.
그리고, 오프셋값 영역의 값을 나타내는 최대의 비트 길이를 CLIP_BIT로 하고, CLIP_BIT=SAO_DEPTH-K의 계산에 의해, 오프셋값 영역을 -2CLIP _ BIT -1 내지 2CLIP _ BIT -1-1로 정한 경우에, 발명자의 실험에 의하면, K=4로 하면, 오프셋값 영역에 의해 오프셋의 범위를 제한해도 부호화 효율의 저하가 없는 것이 발견되었다.
그리고, 화소 비트 심도=8인 경우, 오프셋의 비트 심도(SAO_DEPTH)도 8이며, CLIP_BIT=8-K=4가 된다. 1개의 오프셋을 4비트로 저장할 수 있는 것은, 8비트의 바이트를 단위로서 취급하는 소프트웨어 등에서, 1바이트에 1개의 오프셋을 패킹하여 저장하는 것이 가능하여, 간이하게 메모리 크기의 삭감이 가능하게 된다.
그리고, 설정되는 오프셋의 정밀도가, 처리 대상의 QAOU의 계층에 따라 상이한 경우, 오프셋 정보 저장부(621)는, 처리 대상의 QAOU의 계층의 심도에 따라서 오프셋 저장 영역의 단위 크기를 전환하여 확보하고 있다.
구체적으로는, 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우의 오프셋의 정밀도가 nA 비트(예를 들어, nA=8 또는 6), 처리 대상의 QAOU의 계층의 심도가 임계값 이상인 경우의 오프셋의 정밀도가 nB 비트(nA>nB, 예를 들어nB=nA-2)로 설정되어 있을 때, 오프셋 정보 저장부(621)는, 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우의 오프셋을 저장하는 영역을 nA 비트 단위로 확보하고, 처리 대상의 QAOU의 계층의 심도가 임계값 이상인 경우의 오프셋을 저장하는 영역을 nB 비트 단위로 확보하고 있다.
또한, 처리 대상의 QAOU의 계층의 심도가 임계값 이상인 경우에는, 오프셋 정보 저장부(621)에 대하여 오프셋의 판독 기입을 행할 때에, 기입 시에는 (nA-nB) 비트 절하, 판독 시에는 (nA-nB) 비트 절상하여 입출력을 행하는 구성이 바람직하다. 이 구성에 의하면, 다른 모듈에서 오프셋의 정밀도의 차를 고려하여 처리를 행할 필요가 없어지기 때문이다.
또한, 오프셋 정보 저장부(621)는, 처리 대상의 QAOU의 계층의 심도에 따라, 필요한 클래스 수가 바뀌는 경우, 필요한 클래스 수에 맞추어, 확보하는 리스트 메모리의 영역을 전환한다. 예를 들어, 후술하는 바와 같이, 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우에는 16 클래스로 분류되고, 처리 대상의 QAOU의 계층의 심도가 임계값 이상이 되는 경우에는 8 클래스로 분류되는 밴드 오프셋의 경우를 생각한다. 이 경우, 처리 대상의 QAOU의 계층의 심도가 임계값 이상이 되는 경우의 클래스의 확보에 필요한 메모리의 용량은, 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우의 절반이 된다. 따라서, 오프셋 정보 저장부(621)는, 처리 대상의 QAOU의 계층의 심도가 임계값 이상이 되는 경우에 확보하는 리스트 메모리의 크기를, 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우의 절반으로 전환한다.
QAOU 제어부(622)는, 적응 오프셋 필터 처리부(62)에 포함되는 각 부를 제어한다. 또한, QAOU 제어부(622)는, QAOU 구조 정보를 참조하여, 디블록 완료 복호 화상(P_DB)을 1개 또는 복수의 QAOU로 분할하여, 각 QAOU를 소정의 순서로 스캔한다. 또한, 처리 대상으로 하는 대상 QAOMU를 나타내는 QAOMU 번호를 오프셋 타입 도출부(623)에 공급한다.
오프셋 타입 도출부(623)는, 오프셋 정보 저장부(621)의 맵 메모리 및 리스트 메모리를 참조하여, QAOU 제어부(622)로부터 공급된 QAOMU 번호에 의해 지정되는 오프셋 타입을 도출한다. 또한, 도출한 오프셋 타입을, 클래스 분류부(624)에 공급한다.
클래스 분류부(624)는, 대상 QAOU에 포함되는 각 화소를, 오프셋 타입 도출부(623)로부터 공급되는 오프셋 타입에서 선택 가능한 복수의 클래스 중 어느 하나로 분류한다. 또한, 당해 오프셋 타입과, 각 화소가 분류된 클래스를 나타내는 클래스 인덱스를 오프셋 도출부(625)에 공급한다. 또한, 클래스 분류부(624)에 의한 구체적인 분류 처리에 대해서는 후술하기 때문에 여기에서는 설명을 생략한다.
오프셋 도출부(625)는, 오프셋 정보 저장부(621)의 리스트 메모리를 참조하여, 대상 QAOU에 포함되는 각 화소에 대해서, 클래스 분류부(624)로부터 공급되는 오프셋 타입 및 클래스 인덱스에 의해 지정되는 오프셋을 도출한다. 또한 오프셋 속성 설정부(613)에 의해 설정된 시프트값만큼, 오프셋을 좌측으로 비트 시프트하는 오프셋 역 시프트부(도시하지 않음)를 구비한다. 오프셋 역 시프트부는, 오프셋의 비트 심도와 화소 비트 심도를 맞추어, 상기 오프셋의 역양자화를 행한다. 이러한 역양자화를 행함으로써, 후술하는 오프셋 가산부(626)의 가산 처리에 있어서, 동일한 비트 심도로, 화소값과 오프셋의 가산을 행하는 것이 가능하다. 각 화소에 대하여 역양자화한 오프셋은, 오프셋 가산부(626)에 공급된다.
오프셋 가산부(626)는, 대상 QAOU에서의 디블록 완료 복호 화상(P_DB)의 각 화소에 대하여 오프셋 도출부(625)로부터 공급되는 오프셋을 가산한다. 오프셋 가산부(626)는, 디블록 완료 복호 화상(P_DB)에 포함되는 모든 QAOU에 대해 처리를 행하여 얻어지는 화상을 오프셋 필터 완료 복호 화상(P_OF)으로서 출력한다.
이어서, 클래스 분류부(624)에 의한 분류 처리에 대해서, 도 26 내지 29를 참조하여 설명한다. 또한, 이하에서는, QAOU의 계층의 심도 등의 조건을 파라미터 조건으로 하는 경우를 설명하지만, 일반적인 파라미터 조건에 따른 클래스 분류부의 구성에 대해서는 도 34를 사용하여 후술한다.
도 26은, 적응 오프셋 필터(60)에 의한 오프셋 처리를 설명하기 위한 도면이며, (a)는 처리 대상 화소 x의 화소값 pix[x]와 화소 a 또는 b의 화소값의 대소 관계를 나타내는 그래프 및 그 대소 관계에 따른 함수 Sign의 값을 나타내고, (b)는 처리 대상 화소 x의 화소값과, 화소 a 및 b의 화소값의 대소 관계를 나타내는 그래프 및 그 대소 관계에 따른 EdgeType의 값을 나타내고, (c)는 (b)에 나타낸 각 그래프와 class_idx의 대응을 나타내고, (d) 내지 (f)는 EdgeType에서 class_idx로의 변환을 나타내는 변환 테이블을 나타내고 있다.
도 27은, 적응 오프셋 필터(60)에 의한 오프셋 처리를 설명하기 위한 도면이며, (a)는 "sao_type_idx"=5일 때의 클래스 분류를 개략적으로 나타내고, (b)는 "sao_type_idx"=6일 때의 클래스 분류를 개략적으로 나타내고 있다.
도 28은, 적응 오프셋 필터(60)에 의한 오프셋 처리를 설명하기 위한 도면이며, (a)는 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우의 클래스 분류를 개략적으로 나타내고, (b)는 처리 대상의 QAOU의 계층의 심도가 임계값 이상인 경우의 클래스 분류를 개략적으로 나타내고 있다.
도 29는, 밴드 오프셋이 지정된 경우의 클래스 분류의 일례를 나타내는 도이며, (a)는 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우의 클래스 분류의 일례를 나타내고, (b)는 처리 대상의 QAOU의 계층의 심도가 임계값 이상인 경우의 클래스 분류의 일례를 나타내고 있다.
(오프셋 타입=1 내지 4(에지 오프셋)일 때)
오프셋 타입 도출부(623)로부터 공급되는 오프셋 타입이 1 내지 4 중 어느 하나일 때의 클래스 분류부(624)의 처리는, 상기에서 도 10을 참조하여 설명한 바와 같다.
따라서, 도 26의 (a)에 도시한 바와 같이, 화소값 pix[x]와 화소 a 또는 b의 화소값의 대소 관계에 있어서, 화소값 pix[x]가, 화소 a 또는 b의 화소값보다 작은 경우에는 Sign(pix[x]-pix[a])=-1, 동일한 경우에는 Sign(pix[x]-pix[a])=0, 큰 경우에는 Sign(pix[x]-pix[a])=1이 된다. 또한, 도 26의 (a)에서 pix[x]가 붙어 있는 검은 원은, 처리 대상 화소 x의 화소값을 나타내는 것이며, pix[x]가 붙어 있지 않은 검은 원은, 처리 대상 화소 a 또는 b의 화소값을 나타내는 것이다. 또한, 도 26의 (a)에서의 상하 방향은, 화소값의 대소를 나타내고 있다.
계속해서, 클래스 분류부(624)는, Sign(pix[x]-pix[a]) 및 Sign(pix[x]-pix[b])에 기초하여, 이하의 수식 (1-1)에 의해 EdgeType을 도출한다.
EdgeType=Sign(pix[x]-pix[a])+Sign(pix[x]-pix[b])+2 … (1-1)
이에 의해, 도 26의 (b)에 도시한 바와 같이, 화소값 pix[x]에 대하여 화소 a 및 b의 화소값 모두 큰 경우에는, EdgeType=0이 된다. 또한, 화소값 pix[x]에 대하여 화소 a 및 b 중, 한쪽의 화소값이 크고, 다른 쪽의 화소값이 동일한 경우에는, EdgeType=1이 된다. 또한, 화소값 pix[x]에 대하여 화소 a 및 b 중, 한쪽의 화소값이 작고, 다른 쪽의 화소값이 동일한 경우에는, EdgeType=3이 된다.
또한, 화소값 pix[x]에 대하여 화소 a 및 b의 화소값 모두 작은 경우에는, EdgeType=4가 된다. 또한, 화소값 pix[x]에 대하여 화소 a 및 b 중, 한쪽의 화소값이 작고, 다른 쪽의 화소값이 큰 경우, 또는 화소값 pix[x]에 대하여 화소 a 및 b의 화소값 모두 동일한 경우에는, EdgeType=2가 된다.
또한, 도 26의 (b)에서, 각 그래프의 중심의 검은 원은, 처리 대상 화소 x의 화소값을 나타내고 있고, 양단의 검은 원은, 화소 a 및 b의 화소값을 나타내고 있다. 또한, 도 26의 (b)에서의 상하 방향은, 화소값의 대소를 나타내고 있다.
계속해서, 클래스 분류부(624)는 도출한 EdgeType에 기초하여, 처리 대상 화소 x가 속해야 할 클래스의 클래스 인덱스(class_idx)를 이하와 같이 도출한다.
class_idx=EoTbl[EdgeType]
여기서, EoTbl[EdgeType]은, EdgeType로부터 class_idx를 도출하기 위해 사용되는 변환 테이블이다. 당해 변환 테이블(EoTbl)의 구체예를 도 26의 (d) 내지 (f)에 나타내었다.
도 26의 (d)에 나타내는 변환 테이블(1001X)은, 처리 대상의 QAOU의 계층의 심도에 따라 사용하는 변환 테이블을 변경하지 않을 경우의 변환 테이블이다.
또한, 도 26의 (e)에 나타내는 변환 테이블(1001A)과 도 26의 (f)에 나타내는 변환 테이블(1001B)은, 처리 대상의 QAOU의 계층의 심도에 따라 사용하는 변환 테이블을 변경하는 경우의 변환 테이블이며, 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우에는 변환 테이블(1001A)을 사용하고, 처리 대상의 QAOU의 계층의 심도가 임계값 이상인 경우에는 변환 테이블(1001B)을 사용한다.
처리 대상의 QAOU의 계층의 심도에 따라 사용하는 변환 테이블을 변경하지 않을 경우, 변환 테이블(1001X)에 나타낸 바와 같이, 클래스 분류부(624)는, 처리 대상 화소 x, 화소 a 및 화소 b를 포함는 영역에 에지가 존재하지 않는 경우(이하, 평탄한 경우라고도 함), 즉, EdgeType=2인 경우, 처리 대상 화소 x를 클래스 0("class_idx"=0)으로 분류한다. 또한, EdgeType=0, 1, 3, 4를 각각 class_idx=1, 2, 3, 4로 분류한다.
또한, 처리 대상의 QAOU의 계층의 심도에 따라 사용하는 변환 테이블을 변경하지 않을 경우에, 처리 대상의 QAOU의 계층의 심도가 임계값보다 작을 때, 변환 테이블(1001A)에 나타낸 바와 같이, 클래스 분류부(624)는, 처리 대상 화소 x, 화소 a 및 화소 b를 포함하는 영역에 에지가 존재하지 않는 경우(이하, 평탄한 경우라고도 함), 즉, EdgeType=2인 경우, 처리 대상 화소 x를 클래스 0("class_idx"=0)으로 분류한다. 또한, EdgeType=0, 1, 3, 4를 각각 class_idx=1, 3, 4, 2로 분류한다. 또한, 처리 대상의 QAOU의 계층의 심도가 임계값 이상일 때, 변환 테이블(1001B)에 나타낸 바와 같이, 클래스 분류부(624)는, 처리 대상 화소 x, 화소 a 및 화소 b를 포함하는 영역에 에지가 존재하지 않는 경우(이하, 평탄한 경우라고도 함), 즉, EdgeType=2인 경우, 처리 대상 화소 x를 클래스 0("class_idx"=0)으로 분류한다. 또한, EdgeType=0, 1을 class_idx=1로, EdgeType=3, 4를 class_idx=2로 분류한다. 따라서, 변환 테이블(1001B)에서는, 복수의 EdgeType에 대하여 1개의 class_idx가 대응하고 있다.
또한, 변환 테이블(1001A)에 대해서는, 변환 테이블(1001X)과 동일해도 되게 생각된다. 그러나, 변환 테이블(1001A)을 변환 테이블(1001X)과 동일하게 하면, 변환S 테이블(1001B)과의 사이에서, 동일한 EdgeType에 대해, 서로 다른 class_idx가 할당되게 되어, 계층에 따라 처리가 바뀌어버리게 된다. 예를 들어, EdgeType=3일 때에, 계층의 심도가 임계값보다 작은 경우에는, class_idx=4, 계층의 심도가 임계값 이상인 경우에는, class_idx=2가 되어, 계층에 따라 처리가 바뀌어버리게 된다.
따라서, 변환 테이블(1001A)을 도 26의 (e)에 도시한 바와 같이 함으로써, 변환 테이블(1001B)과의 사이, 즉 계층간에 따라 처리가 변하지 않도록 하고 있다.
(오프셋 타입=5 내지 6(밴드 오프셋)일 때)
오프셋 타입 도출부(623)로부터 공급되는 오프셋 타입이 5 또는 6일 때, 클래스 분류부(624)는, 처리 대상 화소 x의 화소값 pix[x]에 따라, 당해 처리 대상 화소의 화소값을 복수의 클래스 중 어느 하나로 분류한다.
·오프셋 타입=5(sao_type_idx=5)일 때
클래스 분류부(624)는 처리 대상 화소 x의 화소값 pix[x]가,
(max×1/4)≤pix[x]≤(max×3/4)
를 만족하고 있을 경우에, 당해 처리 대상 화소를 클래스 0 이외의 클래스로 분류한다. 즉, 처리 대상 화소의 화소값이, 도 11의 (a)에서의 사선의 범위 내인 경우에, 당해 처리 대상 화소를 클래스 0 이외의 클래스로 분류한다. 또한, 상기 max는, 처리 대상 화소 x의 화소값이 취할 수 있는 최대값을 나타내고 있어, 예를 들어 max=255이다. 또한, max=255일 때, 상기의 조건은, 8≤(pix[x]/8)≤23으로 표현할 수도 있고, 4≤(pix[x]/16)≤11로 표현할 수도 있다.
·오프셋 타입=6(sao_type_idx=6)일 때
클래스 분류부(624)는 처리 대상 화소 x의 화소값 pix[x]가,
pix[x]≤(max×1/4) 또는 (max×3/4)≤pix[x]
를 만족하고 있을 경우에, 당해 처리 대상 화소를 클래스 0 이외의 클래스로 분류한다. 즉, 처리 대상 화소의 화소값이, 도 11의 (b)에서의 사선의 범위 내인 경우에, 당해 처리 대상 화소를 클래스 0 이외의 클래스로 분류한다. 또한, 상기 max는, 처리 대상 화소 x의 화소값이 취할 수 있는 최대값을 나타내고 있어, 예를 들어 max=255이다. 또한, max=255일 때, 상기의 조건은, (pix[x]/8)≤7 또는 24≤(pix[x]/8)로 표현할 수도 있고, (pix[x]/16)≤3 또는 12≤(pix[x]/16)으로 표현할 수도 있다.
클래스 분류부(624)에 의한 클래스 분류 처리를 보다 구체적으로 설명하면 이하와 같다.
오프셋 타입이 5 내지 6 중 어느 하나일 때, 클래스 분류부(624)는 처리 대상 화소 x가 속해야 할 클래스의 클래스 인덱스(class_idx)를 처리 대상의 QAOU의 계층의 심도의 따라, 이하와 같이 도출한다.
·처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우
class_idx=EoTbl[sao_type_idx][pix[x]/>>BoRefBit32
·처리 대상의 QAOU의 계층의 심도가 임계값 이상인 경우
class_idx=EoTbl[sao_type_idx][pix[x]/>>BoRefBit16
여기서, BoTbl[sao_type_idx][pix[x]/>>BoRefBit32] 및 BoTbl[sao_type_idx][pix[x]/>>BoRefBit16]은, 처리 대상 화소 x의 화소값 pix[x]와 sao_type_idx로부터, class_idx를 도출하기 위해 사용되는 변환 테이블이다. BoRefBit32와 BoRefBit16은, 화상 비트 심도를 PIC_DEPTH로 할 경우에, 각각 PIC_DEPTH-5, PIC_DEPTH-4로 도출되는 값이며, 화소값을 32단계 또는 16단계의 값으로 양자화한 것이다. 양자화된 화소값은 pixquant라고도 기술한다. BoRefBit32 및 BoRefBit16으로 우측 시프트하는 것은, 1<<BoRefBit32 및 1<<BoRefBit16으로 제산하는 것에 대응한다. 이 양자화 폭은 화소값의 비트 심도가 8비트인 경우에는 각각, 1<<(8-5)=8, 1<<(8-4)=16이다. 이하, 양자화 폭이 8인 경우를 설명한다. 또한, 이 양자화 폭을 클래스의 폭이라 칭한다.
클래스 분류부(624)는, 처리 대상의 QAOU의 계층의 심도에 따라서 분류하는 클래스의 폭을 바꾸어, 클래스의 분류를 행한다. 예를 들어, 도 28의 (a)에 도시한 바와 같이, 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우, 클래스 분류부(624)는, 클래스의 폭을 「8」로 해서 화소값을 32개로 분류하여, 클래스 분류를 행한다. 또한, 도 28의 (b)에 도시한 바와 같이, 처리 대상의 QAOU의 계층의 심도가 임계값 이상인 경우, 클래스 분류부(624)는, 클래스의 폭을 「16」으로 해서 화소값을 16개로 분류하여, 클래스 분류를 행한다.
이어서, 변환 테이블(EoTbl)의 구체예를 도 29에 나타내었다. 도 29의 (a), (b) 각각에서 「BO_1」은, "sao_type_index"=5인 것을 나타내고 있고, 「BO_2」는, "sao_type_index"=6인 것을 나타내고 있다. 또한, 도 29의 (a)에 나타내는 변환 테이블(1301)은 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우에 사용되는 변환 테이블이며, 도 29의 (b)에 나타내는 변환 테이블(1302)은 처리 대상의 QAOU의 계층의 심도가 임계값 이상인 경우에 사용되는 변환 테이블이다.
처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우에, "sao_type_index"=5일 때, 도 29의 (a)에 도시한 바와 같이, 클래스 분류부(624)는 화소값 pix[x]가 8≤(pix[x]/8)≤23을 만족하는 처리 대상 화소 x에 대해서, pix[x]의 크기에 따라, 클래스 인덱스 1부터 16까지 중 어느 하나의 클래스로 분류한다.
또한, "sao_type_index"=6일 때, 클래스 분류부(624)는, 화소값 pix[x]가pix[x]/8)≤7 또는 24≤(pix[x]/8)을 만족하는 처리 대상 화소 x에 대해서, pix[x]의 크기에 따라, 클래스 인덱스 1부터 16까지 중 어느 하나의 클래스로 분류한다.
또한, 처리 대상의 QAOU의 계층의 심도가 임계값 이상인 경우에, "sao_type_index"=5일 때, 도 29의 (b)에 도시한 바와 같이, 클래스 분류부(624)는, 화소값 pix[x]가 4≤(pix[x]/16)≤11을 만족하는 처리 대상 화소 x에 대해서, pix[x]의 크기에 따라, 클래스 인덱스 1부터 8까지 중 어느 하나의 클래스로 분류한다.
또한, "sao_type_index"=6일 때, 클래스 분류부(624)는, 화소값 pix[x]가 pix[x]/16)≤3 또는 12≤(pix[x]/16)을 만족하는 처리 대상 화소 x에 대해서, pix[x]의 크기에 따라, 클래스 인덱스 1부터 8까지 중 어느 하나의 클래스로 분류한다.
(오프셋 정보 복호부(611)의 구성)
도 41은, 적응 오프셋의 파라미터의 종류(파라미터 조건)에 따라, 사용하는 오프셋 타입을 변경하거나, 또한/또는, 적응 오프셋의 파라미터 조건에 따라, 클래스의 분류수를 변경하는 오프셋 정보 복호부(611)의 블록도이다. 오프셋 정보 복호부(611)는, 적응적 오프셋 타입 복호부(6111), 사용 오프셋 타입 선택부(6112), 오프셋 타입 복호부(6113), 적응적 오프셋 복호부(6114), 사용 오프셋 수 선택부(6115), 오프셋 복호부(6116)로 구성된다. 또한, 파라미터 조건이란, 화소값으로부터 산출되는 값 이외의 파라미터이며, 상기에서 설명한 계층, 오프셋 타입 외에, 후술하는 부기 사항에서 설명하는 블록 사이즈(QAOU 크기), 색 성분(컴포넌트), QP가 있다.
적응적 오프셋 타입 복호부(6111)는, 부호화 데이터 중의 QAOU 정보로부터, 파라미터 조건에 따라서 적절하게 오프셋 타입을 복호하는 수단이며, 사용 오프셋 타입 선택부(6112)와 오프셋 타입 복호부(6113)를 구비한다.
사용 오프셋 타입 선택부(6112)는, 파라미터 조건에 따라서 사용하는 오프셋 타입을 선택하는 수단이다. 파라미터 조건의 하나는, 상술한 바와 같이 계층이다. 계층이 얕은 경우에 사용하는 오프셋 타입의 수는, 계층이 깊은 경우에 사용하는 오프셋의 수보다 작다. 사용 오프셋 타입 선택부(6112)는, 파라미터 조건에 따라서 도 8에서 설명한 바와 같은 변환 테이블을 오프셋 타입 복호부(6113)에 입력한다. 또한 사용 가능한 오프셋 타입의 최대수를 오프셋 타입 복호부(6113)에 입력한다.
오프셋 타입 복호부(6113)는, 입력된 변환 테이블과 최대수에 따라서 부호화 데이터로부터 오프셋 타입을 복호한다. 오프셋 타입의 최대수를 N이라 하면, 코드가 취할 수 있는 범위가 0부터 N-1까지의 N개로 제한되므로, 코드의 부호화에 필요로 하는 비트수를 저감할 수 있다. 예를 들어, 최대수가 2m-1보다 크고, 2m 이하일 때 m 비트의 고정 길이 부호화를 사용할 수 있다. 또한, 최대값을 N-1로 하는 Truncated unary 부호화나, Truncated Rice 부호화를 사용할 수도 있다.
적응적 오프셋 복호부(6114)는, 부호화 데이터 중의 QAOU 정보로부터, 파라미터 조건에 따라서 적절하게 오프셋을 복호하는 수단이며, 사용 오프셋 수 선택부(6115)와 오프셋 복호부(6116)를 구비한다. 사용 오프셋 수 선택부(6115)는, 파라미터 조건에 따라, 사용하는 오프셋 수의 최대값과 오프셋의 정밀도를 선택하는 수단이다. 파라미터 조건의 하나는 계층이며, 계층이 얕은 경우에 사용하는 오프셋의 수는, 계층이 깊은 경우에 사용하는 오프셋의 수보다 크다. 예를 들어, 계층이 얕은 경우에는 도 29의 (a)와 같이 오프셋 수를 16개, 계층이 깊은 경우에는 도 29의 (b)와 같이 오프셋 수를 8개로 할 수 있다. 또한, 상술한 바와 같이, 계층에 따라, 오프셋의 정밀도(비트 심도)를 변경하는 것도 가능하다. 사용 오프셋 수 선택부(6115)는, 오프셋 최대수와 오프셋 정밀도를 오프셋 복호부(6116)에 입력한다. 오프셋 복호부(6116)는, 오프셋의 최대수와 오프셋의 정밀도에 따라서 오프셋을 복호한다. 오프셋의 수를 적게 할 경우에는, 오프셋의 부호량이 저감된다. 또한, 오프셋 타입과 마찬가지로, 오프셋에서도 각 오프셋의 정밀도가 결정되면, 오프셋을 부호화하는 코드가 취할 수 있는 범위도 제한되므로, 코드의 부호화에 필요로 하는 비트수를 저감할 수 있다.
도 42의 (a)는, 사용 오프셋 타입 선택부(6112)의 구성을 도시하는 블록도이다.
사용 오프셋 타입 선택부(6112)는, 오프셋 타입 변환 테이블 선택부(6117), 제1 오프셋 타입 변환 테이블 저장부(6118), 제2 오프셋 타입 변환 테이블 저장부(6119)를 구비한다.
오프셋 타입 변환 테이블 선택부(6117)는, 파라미터 조건에 따라서 제1 오프셋 타입 변환 테이블 저장부(6118)가 구비하는 변환 테이블, 또는 제2 오프셋 타입 변환 테이블 저장부(6119)가 구비하는 변환 테이블을 선택한다. 상술한 예에서는, 801A가, 제1 오프셋 타입 변환 테이블 저장부(6118)가 구비하는 변환 테이블이며, 801B가, 제2 오프셋 타입 변환 테이블 저장부(6119)가 구비하는 변환 테이블에 대응한다.
도 42의 (b)는 사용 오프셋 타입 선택부의 다른 구성을 도시하는 블록도이다.
사용 오프셋 타입 선택부(6112')는, 오프셋 타입 변환 테이블 선택부(6117'), 에지 오프셋 타입 및 밴드 오프셋 타입 변환 테이블 저장부(6118'), 수평 에지 오프셋 타입 및 밴드 오프셋 타입 변환 테이블 저장부(6119')를 구비한다.
(클래스 분류부(624)의 구성)
도 43은, 클래스 분류부(624)의 구성을 도시하는 블록도이다.
클래스 분류부(624)는, 적응적 에지 오프셋 클래스 분류부(6241), 사용 에지 오프셋 클래스 선택부(6242), 에지 오프셋 클래스 분류부(6243), 적응적 밴드 오프셋 클래스 분류부(6244), 사용 밴드 오프셋 클래스·클래스 폭 선택부(6245), 밴드 오프셋 클래스 분류부(6246)로 구성된다.
클래스 분류부(624)는, 파라미터 조건 및 오프셋 타입에 따라, 각 화소를 클래스로 분류한다. 오프셋 타입이 에지 오프셋을 나타내는 경우에는, 적응적 에지 오프셋 클래스 분류부(6241)에 의해 화소를 분류하고, 오프셋 타입이 밴드 오프셋인 경우에는, 적응적 밴드 오프셋 클래스 분류부(6244)에서 화소를 분류한다.
적응적 에지 오프셋 클래스 분류부(6241)는, 파라미터 조건에 따라서 적응적으로 화소를 클래스로 분류하는 수단이며, 사용 에지 오프셋 클래스 선택부(6242)와 에지 오프셋 클래스 분류부(6243)를 구비한다. 사용 에지 오프셋 클래스 선택부(6242)는, 사용하는 클래스의 종류를 선택한다. 사용 에지 오프셋 클래스 선택부(6242)는, 화소값의 분류 방법을 에지 오프셋 클래스 분류부(6243)에 입력한다. 구체적으로는, 화소값을 분류할 경우에 일시적으로 도출되는 중간값 EdgeType의 도출 방법과, EdgeType으로부터 class_idx를 도출하기 위해 사용되는 변환 테이블을 입력한다. 중간값 EdgeType의 도출 방법의 예는 도 26의 (a), 도 26의 (b)를 사용하여 설명한 것이며, 이것을 기본 에지 분류 방법이라 칭한다. 도 33에서 후술하는 바와 같은 에지 분류 방법을 사용할 수도 있다. 파라미터 조건의 하나는, 상술한 바와 같이 계층이며, 계층이 얕은 경우에 사용하는 클래스를, 계층이 깊은 경우에 사용하는 클래스보다 큰 수가 되도록 선택한다. EdgeType으로부터 class_idx를 도출하기 위해 사용되는 변환 테이블은, 1001A나 1001B가 예가 된다. 또한, 색 성분(컴포넌트)에 따라, 에지 도출 방법을 전환하는 방법도 적당하다. 이 경우, 휘도에서는, 수평, 수직, 경사 방향의 에지 분류 방법을 사용하는 기본 에지 분류 방법을 사용하고, 색차에서는, 라인 메모리를 삭감하기 위해 에지 분류에서 사용하는 참조 화소의 범위를, 대상 화소에서 보아 수평 방향으로 한정한 수평 에지 분류 방법을 사용하는 것이 적당하다. 에지 오프셋 클래스 분류부(6243)는, 부여된 분류 방법과, EdgeType으로부터 class_idx를 도출하기 위해 사용되는 변환 테이블에 기초하여 화소를 분류한다.
적응적 밴드 오프셋 클래스 분류부(6244)는, 파라미터 조건에 따라서 적응적으로 화소를 클래스로 분류하는 수단이며, 사용 밴드 오프셋 클래스·클래스 폭 선택부(6245)와 밴드 오프셋 클래스 분류부(6246)를 구비한다. 사용 밴드 오프셋 클래스·클래스 폭 선택부(6245)는, 화소값의 분류 방법을 밴드 오프셋 클래스 분류부(6246)에 입력한다. 구체적으로는, 화소값을 중간값으로 분류할 경우에 사용되는 양자화 폭인 클래스 폭과, 중간값으로부터 class_idx를 도출하기 위해 사용되는 변환 테이블을 입력한다. 파라미터 조건의 하나는, 이미 설명한 바와 같이 계층이며, 계층이 얕은 경우에 사용하는 클래스의 폭은, 계층이 깊은 경우에 사용하는 클래스의 폭보다 작다. 밴드 오프셋 클래스 분류부(6246)는, 입력된 클래스 폭과, 중간값으로부터 class_idx를 도출하기 위해 사용되는 변환 테이블에 따라서 화소값을 클래스로 분류한다. 입력인 클래스 폭은, 클래스 폭 자체가 아니라, 클래스 폭에 대응하는 정수이어도 상관없다. 예를 들어 1<<BoRefBit32를 클래스 폭으로 할 경우, 그 2를 밑으로 하는 대수인 화소의 양자화에 사용하는 비트수 BoRefBit32나, 화소의 비트 심도로부터 화소를 양자화에 사용하는 비트수를 구하기 위한 값, 예를 들어 BoRefBit32=PIC_DEPTH-5이면 5를 클래스 폭 대신에 사용해도 상관없다.
이와 같이, 파라미터 조건에 따라서 적응적으로 부호화 데이터를 복호하여, 화소의 클래스 분류를 행한다.
이상과 같이, 본 실시 형태에서는, 처리 대상의 QAOU의 계층의 심도에 따라, 클래스의 분류수를 변경하고 있다. 보다 상세하게는, 처리 대상의 QAOU의 계층의 심도가 큰 경우에, 작은 경우와 비교하여 보다 적은 클래스 수로 분류하고 있다.
일반적으로, 필요한 메모리량은, 메모리량=오프셋의 데이터 길이×클래스 수×QAOU 수이므로, 클래스 수를 저감시킴으로써 메모리의 사용량을 삭감할 수 있다.
또한, 깊은 계층에서는, QAOU의 면적이 작아짐과 함께, QAOU 내의 화소값의 특성이 균일하게 가까워지므로, 클래스 수를 저감시켜도 오프셋의 효과는 그다지 달라지지 않는다.
또한, 본 실시 형태에서는, 처리 대상의 QAOU의 계층의 심도에 따라, 오프셋의 정밀도를 변경하고 있다. 보다 상세하게는, 처리 대상의 QAOU의 계층의 심도가 큰 경우에, 작은 경우와 비교하여 오프셋의 정밀도를 낮추고 있다. 이에 의해, 처리 대상의 QAOU의 계층의 심도가 큰 경우의 부호량을 저감시키고 있다.
깊은 계층의 QAOU에서는, 포함되는 화소수가 적어지기 때문에, QAOU 전체에서 본 양자화 오차가 상위의 계층에 비해 작아진다. 따라서, 깊은 계층에서, 오프셋의 정밀도를 낮추어도, 오프셋의 효과는 그다지 변함없다.
(동화상 부호화 장치(2'))
이어서, 부호화 대상 화상을 부호화함으로써 부호화 데이터(#1)를 생성하는 동화상 부호화 장치(2')에 대해서, 도 30, 31을 참조하여 설명한다. 동화상 부호화 장치(2')는, 동화상 부호화 장치(2)와 마찬가지로, 그 일부에, H.264/MPEG-4.AVC에 채용되어 있는 방식, VCEG(Video Coding Expert Group)에서의 공동 개발용 코덱인 KTA 소프트웨어에 채용되어 있는 방식, 그 후계 코덱인 TMuC(Test Model under Consideration) 소프트웨어에 채용되어 있는 방식 및 HM(HEVC TestModel) 소프트웨어에 채용되어 있는 기술을 포함하고 있다.
또한, 동화상 부호화 장치(2')는, 동화상 부호화 장치(2)에서의 적응 오프셋 필터(80) 대신에 적응 오프셋 필터(80')가 마련되어 있는 점이 상이하고, 다른 구성은 마찬가지이다.
(적응 오프셋 필터(80'))
이어서, 적응 오프셋 필터(80')에 대해서 도 30을 참조하여 설명한다. 도 30은, 적응 오프셋 필터(80')의 구성을 도시하는 블록도이다. 도 30에 도시한 바와 같이, 적응 오프셋 필터(80')는, 적응 오프셋 필터 정보 설정부(81') 및 적응 오프셋 필터 처리부(82')를 포함하는 구성이다.
또한, 도 30에 도시한 바와 같이, 적응 오프셋 필터 정보 설정부(81')는, 오프셋 산출부(811), 오프셋 시프트부(816), 오프셋 클립부(812), 오프셋 정보 선택부(813) 및 오프셋 속성 설정부(815)를 포함하는 구성이다.
(오프셋 산출부(811))
오프셋 산출부(811)는, 대상의 처리 단위(예를 들어 LCU)에 포함되는 소정의 분할 심도까지의 모든 QAOU에 대하여 처리 대상의 QAOU의 계층에 따라서 존재하는 모든 오프셋 타입 및 모든 클래스에 관한 오프셋을 산출한다. 여기서, 오프셋 타입 및 클래스는, 동화상 복호 장치(1)의 설명에서 설명한 것과 동일한 것을 가리킨다.
오프셋 산출부(811)는, 상기의 처리에 의해 산출한 오프셋, 오프셋 타입, 클래스 및 QAOU의 분할 구조를 나타내는 QAOU 구조 정보를 포함하는 오프셋 정보를 오프셋 클립부(812)에 공급한다.
(오프셋 클립부(812))
오프셋 클립부(812)는, 오프셋 산출부(811)로부터 공급되는 오프셋에 대하여 이하에 나타낸 바와 같은 클립 처리 1, 클립 처리 2 중 어느 하나의 처리에 의해 클립 처리를 행한다.
(클립 처리 1)
오프셋 클립부(812)는, 오프셋 산출부(811)로부터 공급되는 각 오프셋을 예를 들어 -8부터 7까지의 값에 클립함으로써, 각 오프셋을 4비트로 표현한다. 클립된 각 오프셋은, 오프셋 정보 선택부(813)에 공급된다. 클립하는 비트 폭은, 동화상 복호 장치(1)와 마찬가지로, 화상의 비트 심도와 오프셋의 비트 심도에 따라서 설정된다.
이와 같이, 각 오프셋을 클립함으로써, 각 오프셋이 저장되는 메모리(도시하지 않음)의 메모리 크기를 삭감할 수 있다. 또한, 부호화 데이터(#1)에 포함되는 오프셋의 부호량을 삭감할 수 있으므로, 부호화 효율의 향상을 도모할 수 있다. 또한, 과도한 오프셋이 가산되는 것이 억제되므로, 적절한 화질이 보증된다.
(클립 처리 2)
또한, 오프셋 클립부(812)는, 오프셋 산출부(811)로부터 공급되는 각 오프셋의 클립 범위를, 오프셋 타입에 따라서 상이한 값을 설정하는 구성으로 해도 된다.
예를 들어, 오프셋 타입이 에지 오프셋일 경우에는, 오프셋의 비트수를 8비트로 하고, 오프셋 타입이 밴드 오프셋일 경우에는, 오프셋의 비트수를 4비트로 한다. 보다 일반적으로는, 오프셋 타입이 에지 오프셋일 경우의 오프셋의 비트수를 N 비트로 하고, 오프셋 타입이 밴드 오프셋일 경우의 오프셋의 비트수를 M 비트로 했을 때, N>M이 만족되도록 오프셋의 비트수를 정한다.
이렇게 오프셋 타입에 따라, 오프셋의 비트수를 상이하게 함으로써, 각 오프셋을 저장하기 위한 메모리에 과도한 메모리 크기를 요구하지 않고, 부호화 효율의 향상을 도모할 수 있다.
또한, 오프셋이 취할 수 있는 값을 제한하기 위한 임계값(th)이 2m-1보다 크고, 2m 이하일 때, 당해 오프셋을 부호화하기 위한 부호화 방식으로서, m 비트의 고정 길이 부호화를 사용할 수 있다. 보다 구체적으로는, 최대값을 th로 하는 Truncated unary 부호화나 Truncated Rice 부호화를 사용할 수 있다.
또한, 상기 클립 처리 1 및 2를 조합하여 얻어지는 클립 처리도 본 실시 형태에 포함된다. 또한, 적응 오프셋 필터(80)는, 오프셋 클립부(812)를 구비하지 않는 구성으로 해도 된다.
또한, 오프셋 클립부(812)는, 오프셋의 정밀도에 맞추어, 처리 대상의 QAOU의 계층의 심도에 따라 클립 범위를 전환한다. 구체적으로, 오프셋의 정밀도가, 처리 대상의 QAOU의 계층의 심도가 임계값보다 작은 경우에는 nA 비트, 처리 대상의 QAOU의 계층의 심도가 임계값 이상인 경우에는 nB 비트일 때를 생각한다. 이때, 오프셋 클립부(812)는, 처리 대상의 QAOU의 계층의 심도가 임계값보다 작으면, 클립 범위를 -2nA /2 내지 2nA /2-1로 한다. 또한, 처리 대상의 QAOU의 계층의 심도가 임계값 이상이면, 클립 범위를 -2nA /2 내지 2nA /2-1로 한 뒤에, 하위의 (nA-nB) 비트를 「0」으로 한다. 이에 의해, 오프셋 클립부(812)에 의해, 클립 처리된 오프셋을 사용하여 처리를 행하는 오프셋 정보 선택부(813)에 대하여, 오프셋의 정밀도를 고려하지 않고 처리를 행하게 할 수 있다.
(오프셋 정보 선택부(813))
오프셋 정보 선택부(813)는, RD 비용(Rate-Distortion cost)이 보다 작아지는 오프셋 타입, 클래스, 오프셋의 조합 및 거기에 대응하는 QAOU 분할 구조를 결정하고, 결정한 오프셋 타입, 클래스, 오프셋 및 거기에 대응하는 QAOM 분할 구조를 나타내는 QAOU 정보를 가변 길이 부호 부호화부(22)에 공급한다. 또한, 오프셋 정보 선택부(813)는, 결정한 오프셋을 QAOU마다 적응 오프셋 필터 처리부(82)에 공급한다.
오프셋 정보 선택부(813)의 처리에 대해 도 31을 참조하여 보다 구체적으로 설명하면 이하와 같다.
도 31은, QAOU 인덱스가 「x」의 QAOU에 대해서, 오프셋 타입 각각에 관한 2승 오차를 산출하는 개요를 도시하는 도면이다. 도 31에 도시한 바와 같이, 오프셋 정보 선택부(813)는, 모든 QAOMU에 대해서, 오프셋 타입 각각에 관한 2승 오차를 산출한다. 그리고, 산출한 2승 오차가 최소가 되는 오프셋 타입을 당해 QAOU의 오프셋 타입으로 한다. 이에 의해, 모든 QAOMU(QAOMU 번호 0 내지 340)에 대해서 오프셋 타입이 결정된다.
이어서, 오프셋 정보 선택부(813)는, 분할 심도를 0으로 했을 때의 RD 비용과 분할 심도를 1로 했을 경우의 RD 비용을 계산한다. 구체적인 계산 방법은, 상기에서 도 18을 참조하여 설명한 바와 같다.
(적응 오프셋 필터 처리부(82'))
적응 오프셋 필터 처리부(82')는, 대상 QAOU에서의 디블록 완료 복호 화상(P_DB)의 각 화소에 대해, 오프셋 정보 선택부(813)로부터 공급되는 오프셋을 가산한다. 적응 오프셋 필터 처리부(82')는, 디블록 완료 복호 화상(P_DB)에 포함되는 모든 QAOU에 대해 처리를 행하여 얻어지는 화상을 오프셋 필터 완료 복호 화상(P_OF)으로서 출력한다. 또한, 적응 오프셋 필터 처리부(82')의 구성은, 적응 오프셋 필터 처리부(62')와 동일하기 때문에, 여기에서는 설명을 생략한다.
또한, 적응 클립 타입을 사용하는 구성이어도 된다. 즉, 오프셋 타입의 하나로서, 적응 클립(AC) 타입을 설치할 수도 있다. 이 경우, 오프셋 타입은, EO, BO, AC의 3종류가 된다. 적응 클립 타입(AC)에서는, 오프셋을 사용하지 않고, 하한값 c1과 상한값 c2의 클립을 사용하여 화소값을 보정한다. 하한값 c1 및 상한값 c2의 예로서는, 예를 들어 c1=16, c2=235를 들 수 있다.
적응 클립 타입을 사용함으로써, 오프셋의 부호화 처리나 다수의 오프셋을 유지하는 메모리가 불필요하게 된다. 또한, 클립의 하한값 및 상한값을, 고정값이 아니라 적응적으로 부여할 경우에는, 하한값과 상한값을 부호화하면 된다. 이 경우에는, 각각 적당한 고정값으로부터의 차분, 예를 들어 하한값은 16부터의 오프셋, 상한값은 235부터의 오프셋을 부호화하는 것이 바람직하면 된다. 특히, 상한값은 큰 값이 되기 때문에, 이렇게 함으로써 부호화 효율을 낮추는 일이 없다.
(부기 사항 2)
또한, 상술한 바와 같이, QAOU의 계층의 심도에 따라서란, QAOU의 크기에 따라서라고 할 수도 있다. 즉, QAOU의 크기에 따라서 SAO의 타입 수, 클래스 수나 오프셋 정밀도를 상이하게 해도 된다.
예를 들어, QAOU의 크기가 N×N 화소 미만인 경우에는, SAO의 타입 수, 클래스 수 및 오프셋 정밀도 중 1개 또는 복수를, QAOU의 크기가 N×N 화소 이상인 경우보다 제한하는 구성이어도 된다. N의 구체예로서는, 예를 들어 N=64(LCU의 크기)를 들 수 있다.
또한, SAO의 타입 수의 제한으로서는, 예를 들어 EO를 수평 및 수직 타입으로 제한하거나, BO를 1종으로 하거나(변환 테이블(802C)), EO만을 사용하고 BO를 사용하지 않거나(변환 테이블(802A)), 수평 타입의 EO 및 BO 중 어느 하나만을 사용하는(변환 테이블(801B), 변환 테이블(802D)) 것 등을 들 수 있다. 오프셋 정보 복호부(611)에서는 괄호 내에 나타내는 변환 테이블을 사용한다. 또한, SAO의 클래스 수의 제한 및 오프셋 정밀도의 제한에 대해서는, 상술한 실시 형태와 마찬가지의 방법으로 행할 수 있다.
이와 같이, SAO의 타입의 종류, 타입 수, 클래스 수 및 오프셋 정밀도를 제한함으로써, 메모리의 사용량 삭감이나 처리 부하의 경감을 행할 수 있다. 특히, 타입의 종류를 BO로 제한하는 경우나, EO를 수평 및 수직 타입으로 제한하는 경우에는, 부호화 장치 및 복호 장치의 클래스 분류부의 처리 부하를 경감할 수 있다. 또한, 타입 수를 제한하는 경우에는, 최적의 타입을 선택하기 위한 비용 계산을 생략할 수 있으므로, 부호화 장치의 처리 부하를 경감할 수 있다. 타입의 종류를 EO로 제한하고, 클래스 수 및 오프셋 정밀도를 제한함으로써 오프셋을 축적하는 메모리의 사용량 삭감을 할 수 있다. 또한, 타입의 종류를 수평 타입의 EO 및 BO로 제한함으로써, 클래스 분류에 사용하는 참조 화소를 유지하는 라인 메모리 등의 일시적 메모리를 삭감할 수 있고, 또한, 참조 화소의 복호를 기다리는 동안의 지연을 짧게 할 수 있다. 또한, 메모리의 사용량의 삭감에는, BO의 클래스 수를 제한하는 것이, EO의 클래스 수를 제한하는 것보다 효과적이다.
이러한 제한은, 도 41 내지 도 43에 나타내는 수단의 구성에 의해, 파라미터 조건을 QAOUN의 크기로 했을 경우에, 파라미터 조건에 따라서 적응적으로 오프셋 정보 복호부(611), 클래스 분류부(624)의 동작을 변경함으로써 실현할 수 있다.
(부기 사항 3)
또한, 휘도값에 대하여 오프셋을 가하는 QAOU(이하, 휘도 유닛이라고도 함)의 크기와, 색차에 대하여 오프셋을 가하는 QAOU(이하, 색차 유닛이라고도 함)의 크기를 상이하게 하여, 색차 유닛에서는, 휘도 유닛보다, SAO의 타입의 종류, 타입 수, 클래스 수, 오프셋 정밀도 및 분할의 최대 계층을 제한하는 구성이어도 된다.
예를 들어, YUV 형식의 화상 포맷에서의 4:2:0 형식 등, 휘도와 색차에서 해상도가 상이하고, 색차의 해상도가 휘도보다 낮은 데이터 형식이면, 색차의 분할의 미세함은 휘도만큼은 필요 없어진다. 따라서, 색차 유닛에 대해서, SAO의 타입의 종류, 타입 수, 클래스 수, 오프셋 정밀도 및 분할의 최대 계층을 제한함으로써, 메모리의 사용량 삭감이나, 처리 부하의 경감을 행할 수 있다. 또한, 색차 유닛의 최대 계층의 제한은, 예를 들어 SAO의 트리 구조의 최대 심도를, 휘도 유닛보다 얕게 함으로써 가능이다.
이러한 제한은, 도 41 내지 도 43에 나타내는 수단의 구성에 의해, 파라미터 조건을 QAOUN의 크기로 했을 경우에, 파라미터 조건에 따라서 적응적으로 오프셋 정보 복호부(611), 클래스 분류부(624)의 동작을 변경함으로써 실현할 수 있다.
특히, 휘도와 색차 모든 쪽에 SAO 처리를 행하는 경우에는, 색 성분마다 클래스 분류에 사용하는 참조 화소를 유지하는 라인 메모리 등의 일시적 메모리를 구비할 필요가 있다. 휘도 성분은 색차 성분에 비해 중요도가 낮으므로, 파라미터 조건을 색차 성분으로 해고, 타입의 종류를 수평 타입의 EO 및 BO로 제한함으로써, 색차 성분에서의 라인 메모리를 삭감할 수 있다. 이 경우, 오프셋 정보 복호부(611)에서는, 변환 테이블(801B), 변환 테이블(802D) 등의 변환 테이블을 사용한다.
또한, 파라미터 조건을 색차 성분으로 해서, 휘도 성분에 비해 오프셋의 정밀도를 작게 하는 것도 특히 유효하다. 예를 들어, 휘도 성분의 오프셋의 정밀도를
SAO_DEPTH=MIN(PIC_DEPTH, AY)
시프트값=PIC_DEPTH-MIN(PIC_DEPTH, AY)
로 하고, 색차 성분의 경우에는, 오프셋의 정밀도, 시프트값을,
SAO_DEPTH=MIN(PIC_DEPTH, THC)
시프트값=PIC_DEPTH-MIN(PIC_DEPTH, AC)
와 같이 구할 경우에, 정밀도를 제어하는 변수 AY, AC로서 AY>AC를 사용하는 것이 적당하다. 예를 들어, AY=10 또는 9, AC=8로 한다. 이 경우, 휘도 성분의 오프셋의 정밀도는, 색차 성분보다 큰 것이 된다. 시프트값에 대해서는 휘도 성분의 시프트값이, 색차 성분보다 작은 값이 된다.
(부기 사항 4)
또한, CU의 양자화 파라미터(QP)의 값(QP값)이 임계값 이상인 경우에, SAO의 타입의 종류, 타입 수, 클래스 수, 오프셋 정밀도 및 분할의 최대 계층을 제한하는 구성이어도 된다. QP값은, 픽처의 초기의 QP값을 사용해도 되고, SAO의 처리 대상 QAOU가 LCU나 CU의 경계를 따르고 있는 경우에는, QAOU의 좌측 상단 좌표 또는 중심 좌표에 대응하는 위치의 CU의 QP값을 사용해도 된다.
QP값은, 그 값이 높을수록 예측 화상의 화질은 낮아지고, 상세한 분류 및 오프셋의 보정이 곤란해지기 때문에, SAO의 타입의 종류, 타입 수, 클래스 수, 오프셋 정밀도 및 분할의 최대 계층을 제한해도, 화질에 미치는 영향이 작다. 따라서, QP값이 임계값 이상인 경우에, SAO의 타입 수, 클래스 수, 오프셋 정밀도 및 분할의 최대 계층을 제한하는 구성으로 하면, 화질에 영향을 주지 않고, 메모리의 사용량 삭감이나, 처리 부하의 경감을 행할 수 있다.
이러한 제한은, 도 41 내지 도 43에 나타내는 수단의 구성에 의해, 파라미터 조건을 QP로 했을 경우에, 파라미터 조건에 따라서 적절하게 오프셋 정보 복호부(611), 클래스 분류부(624)의 동작을 변경함으로써 실현할 수 있다.
(부기 사항 5)
또한, 특정 타입의 픽처, 예를 들어 B 픽처나 비참조 픽처(IDR 픽처)에서는, SAO의 타입의 종류, 타입 수, 클래스 수, 오프셋 정밀도 및 분할의 최대 계층을 제한하는 구성이어도 된다.
I 픽처나 P 픽처에서는, 그 픽처의 화질이, 후의 픽처에 큰 영향을 주기 때문에 SAO의 정밀도를 높게 유지할 필요가 있다. 한편으로, 그 밖의 픽처에서는, 후의 픽처에 큰 영향을 주지 않으므로, 이들 픽처(B 픽처, IDR 픽처)에 대해서, SAO의 타입의 종류, 타입 수, 클래스 수, 오프셋 정밀도 및 분할의 최대 계층을 제한해도 된다. 이에 의해, 메모리의 사용량 삭감이나, 처리 부하의 경감을 행할 수 있다.
이러한 제한은, 도 41 내지 도 43에 나타내는 수단의 구성에 의해, 파라미터 조건을 픽처의 종류로 했을 경우에, 파라미터 조건에 따라서 적절하게 오프셋 정보 복호부(611), 클래스 분류부(624)의 동작을 변경함으로써 실현할 수 있다.
(부기 사항 6)
또한, 화면 상에서의 QAOU의 위치에 따라, SAO의 타입 수, 클래스 수, 오프셋 정밀도 및 분할의 최대 계층을 제한하는 구성이어도 된다.
예를 들어, 화면의 가장자리에서는, SAO의 타입 수, 클래스 수, 오프셋 정밀도 및 분할의 최대 계층을 제한해도 된다.
화면의 중앙 부근은, 유저가 주목하기 쉽기 때문에, 화질을 낮추면, 그대로 주관 화질이 저하되어버리지만, 화면의 주연에서 화질을 낮춰도, 주관 화질은 화면 중앙 부근만큼은 저하되지 않는다.
또한, 화면단을 넘는 샘플 점이 필요해지는 SAO 타입을 사용하지 않으면, 경계 판정 처리를 경감할 수 있다.
이러한 제한은, 도 41 내지 도 43에 나타내는 수단의 구성에 의해, 파라미터 조건을 QAOU의 위치로 했을 경우에, 파라미터 조건에 따라서 적응적으로 오프셋 정보 복호부(611), 클래스 분류부(624)의 동작을 변경함으로써 실현할 수 있다.
[실시 형태 4]
본 발명의 다른 실시 형태에 대하여 도 32에 기초해서 설명하면, 이하와 같다. 본 실시 형태에서, 상기 실시 형태와 상이한 것은, 화소값에 따라, EO와 BO를 전환하는 점이다.
본원 발명자들은, 화소에서, 중간 계조 영역에서는, BO보다 EO가 더 효과가 높고, 그 밖의 값 영역(저화소값 영역·고화소값 영역)에서는 BO가 더 효과가 높다는 특성을 발견하였다. 따라서, 본 실시 형태에서는, 저화소값 영역 및 고화소값 영역에서는 BO를 사용하고, 중간 계조 영역은 EO를 사용하고 있다.
구체적으로, 도 32를 참조하여 설명한다. 도 32는, 화소값에 따라 EO와 BO를 전환하는 구성을 설명하기 위한 도면이며, (a)는 화소값에 따라 EO와 BO를 전환하는 구성의 개요를 설명하기 위한 도면이며, (b)는 구체적인 전환의 값을 설명하기 위한 도면이고, (c)는 오프셋 정보 저장부(621)에 저장되는 리스트 메모리의 내용을 도시하는 도면이다.
도 32의 (a)에 도시한 바와 같이, 본 실시 형태에서는, 화소값(휘도값)이 0 부근 및 255 부근에서는 BO를 사용하고, 그 이외의 값 영역에서는 EO를 사용한다. 즉, 화소값에 따라 SAO 타입을 분류하여, 화소값이 0 부근 및 255 부근에서는, 화소값에 따른 오프셋을 가산하고, 그 이외의 지역에서는, 에지의 종류에 따른 오프셋을 가산한다.
본원 발명자들의 실험의 결과, EO와 BO는, 사용되는 화소값의 범위에 각각 치우침이 나타났다. 즉, EO는 중간 계조 영역에 많다는 것을 알았다. 이것은, 저화소값 영역 및 고화소값 영역에서는, 오차에 대한 영향은, 에지의 종류보다 화소값이 더 큰 경향이 있다는 것을 의미하고 있다.
따라서, 본 실시 형태에서는, EO와 BO를, 화소값 영역에 따라서 결정하고, 1개의 SAO 타입에서 EO 및 BO의 양자에서의 오차 보정 효과가 높은 부분을 이용하는 구성으로 하고 있다. 이에 의해, 부호화 효율을 향상시킬 수 있다. 또한, SAO 타입 수나 총 클래스 수를 감소시킬 수 있으므로, 메모리의 사용량의 삭감 및 처리 부하를 경감할 수 있다.
이어서, 본 실시 형태에 대해 보다 상세하게 설명한다. 우선, 본 실시 형태에서는, 상기 실시 형태와 달리, "sao_type_idx"에 대해서 1 내지 4까지를 사용하여, 이들을 다음과 같이 정의한다.
·"sao_type_idx"=1: (BO_EO_0) 실시 형태 1의 EO_0+BO에 상당
·"sao_type_idx"=2: (BO_EO_1) 실시 형태 1의 EO_1+BO에 상당
·"sao_type_idx"=3: (BO_EO_2) 실시 형태 1의 EO_2+BO에 상당
·"sao_type_idx"=4: (BO_EO_3) 실시 형태 1의 EO_3+BO에 상당
또한, 실시 형태 1에서의 EO_0 내지 3 및 BO_0, 1은 사용하지 않는다.
그리고, 클래스 분류부(624)는, 도 32의 (b)에 도시한 바와 같이, 도 29의 변환 테이블(1301)에서의 BoTbl[BO_1]을 사용하여 클래스 분류를 행한다. 그리고, 화소값이 max의 1/4 이하 및 max의 3/4 이상이면, 변환 테이블(1301)을 사용하여 클래스 분류를 행한다.
또한, 화소값이, max의 1/4과 3/4의 사이이면, 상기 실시 형태에 설명한 EO_0 내지 3에 따라서 에지 타입을 판정하고, 클래스 분류를 행한다.
이에 의해, 클래스 분류부(624)는, BO와 EO를 화소값에 따라 전환하여 클래스를 분류할 수 있다.
또한, 오프셋 산출부(811)는, 상기 실시 형태에서 설명한 오프셋의 산출 방법과 마찬가지의 방법으로 오프셋을 산출한다. 단, 본 실시 형태에서는, 오프셋 타입의 종류수가 4개이므로, 이 점을 달리하여 산출한다.
또한, 오프셋 정보 저장부(621)에 저장되는 리스트 메모리(2101)는, 도 32의 (c)에 도시한 바와 같이, QAOU 인덱스와 오프셋 타입과 상기 오프셋 타입에서 선택 가능한 각 클래스에 관한 오프셋의 구체적인 값이 서로 관련지어져서 저장되어 있다.
또한, EO와 BO의 특징을 겸비한 오프셋 타입을 사용하는 경우에, 우선, EO를 사용하여 클래스 분류를 행하고, 특정한 클래스(에지가 평탄한 클래스)에 대해서, BO를 사용하여 또한 클래스 분류하는 구성이어도 된다. 또한, 실시 형태에 기재한 EO 및 BO를 그대로 병용하는 구성이어도 된다. 또한, 상기 실시 형태에 기재한 조건(QAOU의 계층의 심도가 임계값보다 작은지의 여부)에 의해, EO와 BO의 특징을 겸비한 오프셋 타입을 설치하는지 여부를 변경하여, 타입 수나 클래스 수를 삭감하는 구성이어도 된다.
[실시 형태 5]
본 발명의 다른 실시 형태에 대하여 도 33, 34, 42에 기초해서 설명하면, 이하와 같다. 본 실시 형태에서, 상기 실시 형태와 다른 것은, EO의 클래스 분류에 있어서, 에지의 판정에 사용하는 화소를, 판정 대상의 화소의 수평 방향으로 존재하는 화소에만 한정하는 점이다.
상기 실시 형태에서는, 대상 화소 위 또는 하측 방향에 존재하는 화소에 대해서도, 에지의 판정에 사용되고 있었다. 그로 인해, 대상 화소의 상측 방향으로 존재하는 화소(오프셋 처리 완료된 화소)에 대해서는, 당해 화소의 오프셋 처리 전의 화소값을 유지해 두는 라인 버퍼가 필요하게 되어 있었다.
따라서, 에지의 판정에 사용하는 화소를, 대상 화소의 수평 방향으로 존재하는 화소에 한정하면, 상측 방향에 대한 참조가 없어지기 때문에, 라인 버퍼 분의 메모리의 사용량을 삭감할 수 있다. 또한, 상측 방향의 경계 판정(화면단 등)이 불필요하게 되므로, 처리량도 삭감할 수 있다.
또한, 수평 방향으로 존재하는 화소만을 사용하는 경우, 전회까지의 처리 결과를 유용하는 것이 가능하게 되기 때문에, 더욱 처리량을 삭감할 수 있다. 도 33의 (a)을 참조하여 설명한다. 도 33의 (a)는, 수평 방향으로 존재하는 화소를 나타내고 있고, x0 내지 x3은, 각각의 화소의 화소값이다.
우선, 화소값 x1의 화소에 대해서, 양쪽 이웃과의 차분은 이하와 같다.
s1=sign(x1-x0)-sign(x2-x1)
이어서, 화소값 x2의 화소에 대해서, 양쪽 이웃과의 차분을 산출하면 이하와 같이 된다.
s2=sign(x2-x1)-sign(x3-x2)
여기서, s1, s2는 x1, x2에서의 에지의 클래스 분류에 사용되는 값이다.
이와 같이, s2를 산출할 경우에, s1에서 사용한 sign(x2-x1)을 재이용하고 있다. 따라서, 이것만큼, 처리량을 저감시킬 수 있다.
이어서, 본 실시 형태의 상세에 대하여 설명한다. 본 실시 형태에서는, EO의 타입을 2종류로 하고 있다. 즉, "sao_type_idx"=1, 2의 경우만을, 에지 오프셋(EO)으로 하고 있다. 그리고, "sao_type_idx"=1(EO_0)일 때는, 대상 화소의 좌우의 화소와 비교해서 에지의 종류를 도출하고(도 33의 (b)), "sao_type_idx"=2(EO'_0)일 때는, 대상 화소의 좌우에서, 2 화소 이격된 위치에 있는 화소와 비교해서 에지의 종류를 도출한다(도 33의 (c)).
또한, "sao_type_idx"=3, 4인 경우에는 밴드 오프셋(BO)이 된다. 이것은, 상기 실시 형태 1에서, "sao_type_idx"=5, 6인 경우를 각각 3, 4로 대체 적용하면 된다.
상기 "sao_type_idx"=2인 경우에, 대상 화소의 양쪽 이웃에서 또한 1 화소분 이격된 화소를 사용해서 에지의 종류를 판정하는 것은, 수평에 대하여 각도가 얕은 에지의 검출을 용이하게 하기 위해서이다. 도 33의 (d)에 도시한 바와 같이, 대상 화소의 양쪽 이웃의 화소를 비교 대상으로 했을 경우, 화소값의 차분이 작아, 에지로는 판정되지 않는 경우가 있다. 이러한 경우에도, 또한 1 화소분 인접한 화소와의 차분을 취하면, 수평에 대하여 각도가 얕은 에지를 검출하는 것이 가능하게 된다.
또한, 대상 화소의 양쪽 이웃이 아니라, 좌측은 인접한 화소, 우측은 1 화소 더 옆의 화소(도 34의 (a))와의 차분을 사용해도 되고, 이 역(도 34의 (b))을 사용해도 된다. 이것은, 참조 화소가 화면의 단부에 닿는 경우에 특히 유효하다.
또한, 수평 방향의 화소만을 사용하는 경우를 한정하는 구성이어도 된다. 예를 들어, B 픽처나 비참조 픽처 등의 다른 픽처에 대한 영향이 작은 픽처의 경우에만, 수평 방향만의 화소를 참조하고, 그 밖의 경우에는, 상기 실시 형태 1과 마찬가지로 하는 구성이어도 되고, 화면단이나 슬라이스 경계 부근 등에서는, 수평 방향만의 화소를 참조하고, 그 밖에는, 상기 실시 형태와 마찬가지로 하는 구성이어도 된다. 이와 같이 하면, 메모리의 사용량을 삭감할 수 있음과 함께, 처리량의 삭감도 가능하게 된다. 또한, 상측 방향의 참조를 행하지 않으므로, 화면단이나 슬라이스 경계 부근에서의 경계의 판정 처리도 경감할 수 있다.
또한, 픽처나 블록 단위로, 플래그로 명시적으로 지정하는 구성이어도 된다.
예를 들어, 수평 에지(도 34의 (c))가 많은 경우에는, 상기 실시 형태에 기재한 방법으로 처리를 행하도록 하면, 성능이 저하되는 것을 방지할 수 있다.
또한, 상기 실시 형태에 기재한 조건(QAOU의 계층의 심도가 임계값보다 작은지 여부)에 의해, 수평 방향으로 존재하는 화소만을 사용하는 구성으로 할지 여부를 변경해도 된다. 또한, 상기 실시 형태에 기재한 바와 같은, BO와 EO를 병용하는 경우에 한하여, EO에 대해서는, 수평 방향으로 존재하는 화소만을 사용하는 구성으로 해도 된다.
또한, 수평 방향으로 존재하는 화소와의 차분이, 임계값보다 큰(또는 작은)지 여부에 의해, 에지의 종류를 도출해도 된다. 구체적으로는, 이하의 식에 따라서 클래스를 분류해도 된다.
Sign(z)=+1 (z>th일 때)
Sign(z)=0 (-th≤z≤th일 때)
Sign(z)=-1 (z<-th일 때)
여기서, th는, 미리 정해진 값을 갖는 임계값이다.
또한, 색차를 나타내는 화소값의 경우에는, 에지 오프셋에 있어서, 수평 방향으로 존재하는 화소만을 사용하는 구성으로 해도 된다.
수평에 한정하는 효과는, 수평 에지 분류 방법이 1개만일 경우, 예를 들어 도 33의 (b)만의 경우만이라도 얻을 수 있다. 상기한 바와 같이 복수의 서로 다른 수평 에지 분류 방법을 조합하는 경우에는, 1개의 수평 에지 분류 방법, 예를 들어 도 33의 (b)를 사용하는 경우보다, 보다 미세한 에지의 분류가 가능하다. 또한, 복수의 수평 에지 분류 방법을 사용하는 경우의 조합은, 도 33의 (b), (c)와 같이, 대상 화소와 참조 화소의 거리를 변경해서 2개의 예를 사용하는 경우에 한하지 않고, 에지의 종류를 도출하는 경우에 사용하는 임계값을 2개 사용하는 구성이어도 된다. 예를 들어, 상기 임계값(th)이 0일 경우와 1일 경우의 2개의 수평 에지 분류 방법을 구비해도 된다.
수평 방향의 화소만을 사용하는 경우를 한정하는 구성은, 실시 형태 1의 도 41 내지 도 43에 나타내는 수단의 구성에 의해, 파라미터 조건에 따라서 적응적으로 오프셋 정보 복호부(611), 클래스 분류부(624)의 동작을 변경함으로써 실현할 수 있다. 예를 들어, 도 41의 오프셋 정보 복호부(611)에서, 파라미터 조건에 따라, 사용 오프셋 타입 선택부(6112)에서 선택하는 오프셋 타입의 종류를 수평 에지 분류 방법에만 한정하여, 오프셋 타입 복호부(6113)에서는 한정된 종류의 오프셋 타입을 복호한다.
도 42의 (b)에서 나타내는 바와 같이, 오프셋 타입 변환 테이블 선택부(6117)는, 파라미터 조건에 따라서 에지 오프셋 타입 및 밴드 오프셋 타입 저장부(6118')가 구비하는 변환 테이블, 또는, 수평 에지 오프셋 타입 및 밴드 오프셋 타입 변환 테이블 저장부(6119')가 구비하는 변환 테이블을 선택한다. 하나의 예로는, 색 성분이 휘도인 경우에, 에지 오프셋 타입 및 밴드 오프셋 타입 변환 테이블 저장부(6118')가 구비하는 변환 테이블을 선택하고, 색차인 경우에, 수평 에지 오프셋 타입 및 밴드 오프셋 타입 변환 테이블 저장부(6119')가 구비하는 변환 테이블을 선택한다.
클래스 분류부(624)에서는, 내부의 사용 오프셋 타입 선택부(6112)에 있어서, 파라미터 조건에 따라서 수평 에지 분류 방법에만 한정하는 에지 분류 방법을 선택하여, 에지 오프셋 클래스 분류부(6243)에서 화소를 분류한다. 하나의 예로는, 색 성분이 휘도인 경우에는, 기본 에지 분류 방법을 선택하고, 색 성분이 색차인 경우에는, 수평 에지 분류 방법을 선택한다.
[실시 형태 6]
본 발명의 다른 실시 형태에 대하여 도 35 내지 37에 기초해서 설명하면, 이하와 같다. 본 실시 형태에서, 상기 실시 형태와 다른 것은, 색차의 화소값의 중앙 부근에서, 오프셋 정밀도를 향상시키거나 또는 클래스의 분할을 미세하게 하고 있는 점이다.
화상에 있어서, 무채색 부근의 오차는 주관 화질에 있어서 눈에 뜨이기 쉽다는 특성이 있다. 각 색차의 화소값에 있어서, 무채색이란, 값 영역의 중앙이며, 비트 심도가 8비트의 경우이면, 화소값 128의 화소의 색이다. 따라서, 본 실시 형태에서는, BO의 경우에, 색차의 화소값 128 부근에 대해서, 오프셋 정밀도를 높이거나 또는 보다 작은 클래스 폭을 사용하여 클래스 분할을 미세하게 하고 있다. 또한, 이하에서는, 색차의 화소값에 대하여 무채색 부근의 값 영역을, 무채색값 영역이라 칭한다.
이에 의해, 무채색값 영역의 오프셋 정밀도를 높일 수 있으므로, 무채색값 영역에서의 오프셋 보정의 성능이 향상된다. 따라서, 무채색값 영역에서의 원화상과의 오차가 감소하여, 주관 화질을 향상시킬 수 있다. 또한, 무채색값 영역에 있어서, 클래스의 분할을 다른 값 영역보다 좁게 분할함으로써, 무채색값 영역에서의 오프셋 보정을 보다 정밀하게 행할 수 있다. 이에 의해, 원화상과의 오차를 감소시킬 수 있어, 주관 화질을 향상시킬 수 있다.
또한, 본 실시 형태에서는, 무채색값 영역의 오프셋 정밀도의 향상 및 클래스 분할의 세분화를 행하고 있지만, 이에 한정하지 않고, 주관 화질에 영향을 미칠 것 같은 범위의 값에 대하여 클래스 분할을 세분화하거나, 오프셋 정밀도를 향상시키면, 주관 화질을 향상시킬 수 있다. 또한, 휘도의 화소값에 있어서도, 주관 화질상, 화질 열화가 눈에 띄기 쉬운 화소값 영역에 대하여 마찬가지로 오프셋 정밀도를 높이거나, 클래스 분할을 세분화하는 구성으로도 마찬가지의 효과를 발휘할 수 있다.
우선, 오프셋의 정밀도를 향상시키는 경우에 대해서, 도 35를 참조하여 설명한다. 도 35는, 오프셋의 정밀도를 향상시킬 경우에 관한 개요를 도시하는 도면이다. 도 35에 도시한 바와 같이, 오프셋의 정밀도를 향상시킬 경우, 색차의 화소값 128 부근의 오프셋의 정밀도를 고정밀도로 하고, 그 밖의 값 영역의 오프셋의 정밀도를 저정밀도로 한다.
또한, 오프셋 정보 저장부(621)는, 오프셋이 고정밀도의 값 영역의 오프셋에 대해서는, nB 비트(예를 들어 nB=8)의 저장 영역을 확보하고, 오프셋이 저정밀도의 값 영역의 오프셋에 대해서는, nA 비트(예를 들어 nA=6)의 저장 영역을 확보하고 있다. 또한, 기억 영역에 여유가 있으면 nB 비트 통일해도 된다. 이 경우에는, 실장이 용이하게 된다.
또한, 오프셋 클립부(812)는, 오프셋이 고정밀도의 값 영역과 저정밀도의 값 영역에서, 클립 범위를 전환한다. 예를 들어, 오프셋이 저정밀도의 값 영역에 대해서는, 클립 범위를, -2nA /2 내지 2nA /2-1로 하고, 오프셋이 고정밀도의 값 영역에 대해서는, 클립 범위를, -2nB /2 내지 2nB /2-1로 한다.
이어서, 클래스 분류를 세분화할 경우에 대해서, 도 36을 참조하여 설명한다. 도 36은 클래스 분류를 세분화할 경우의 개요를 도시하는 도면이며, (a)는 변환 테이블을 나타내고, (b) 내지 (d)는 클래스 분할을 설명하기 위한 도면이다.
그리고, 클래스 분류를 세분화하는 경우에는, 오프셋 정보 저장부(621)에서의 색차용의 리스트 메모리에 있어서, "sao_type_idx"=5에 상당하는 오프셋 저장 영역을, 클래스 분류수에 따라서 확보한다.
또한, 클래스 분류부(624)에 있어서, BO의 경우에, 화소값으로부터 클래스를 도출할 때에, 대상 화소의 화소값이 무채색값 영역인지 여부를 포함하여 판정한다. 구체적으로는, 예를 들어 도 36의 (a)에 나타내는 변환 테이블(2501) 중 어느 하나를 사용하여 클래스 분류를 행한다.
변환 테이블(2501)에서는, "class_idx =BoTbl[sao_type_idx][pix[x]/4]"에 의해 클래스 분류를 행하고 있고, 도 29의 변환 테이블(1301, 1302)보다, 보다 미세한 화소값에 대하여 클래스가 할당되어 있다.
또한, 변환 테이블(2501)의 「BoTbl[BO_0][pix/4](a)」에서는, 클래스를 16개로 나누고, 무채색값 영역을 세분화하여, 중간 계조 영역(pix/4=16 내지 21, 42 내지 47)을 거칠게 한 예를 나타내고 있다(도 36의 (b)). 또한, 「BoTbl[BO_0][pix/4](b)」에서는, 클래스를 16개로 나누는 동시에, 오프셋 있는 값 영역을 좁혀, 클래스 수와 클래스 폭의 최대값을 유지하면서 무채색값 영역을 세분화한 예를 나타내고 있다(도 36의 (c)). 또한, 「BoTbl[BO_0][pix/4](c)」에서는, 클래스를 18개로 나누고, 무채색 부근의 값 영역을 세분화함과 함께, 클래스 폭의 최대값도 유지한 예를 나타내고 있다(도 36의 (d)). 또한, 이 밖에도 예를 들면, 중간 계조 영역의 클래스 폭을 무채색값 영역의 클래스 폭보다 상대적으로 크게 해서, 전체의 클래스 수를 저감시킴으로써, 무채색값 영역의 보정 정밀도를 종래대로 유지한 채, 오프셋 저장 영역을 삭감할 수 있다. 이것은, 중간 계조 영역에서의 오프셋 보정의 사용 빈도가, 무채색 영역보다 낮기 때문에 가능하다.
또한, 오프셋의 정밀도 향상과, 무채색값 영역에서의 클래스 분류의 세분화를 병용한 구성이어도 된다.
또한, 휘도를 나타내는 화소값과 색차를 나타내는 화소값에서, 오프셋의 정밀도를 상이하게 하는 구성, 즉, 색차를 나타내는 화소값에 대한 오프셋의 정밀도를, 휘도를 나타내는 화소값에 대한 오프셋의 정밀도보다 거칠게 하는 구성이어도 된다.
(부기 사항 7)
또한, 오프셋의 가산을, 무채색(=색차의 화소값 128)에 접근하는 방향으로 행하는 구성이어도 된다. 즉, 오프셋 가산부(626)는, 화소값이 128 이상과 128 미만에서, 가산하는 오프셋의 부호를 반대로 하여 취급해도 된다. 예를 들어, 오프셋 a일 때, x'=x+a(x<128), x'=x-a(x≥128)로 해도 된다.
또한, 오프셋 가산 후의 화소값이 128을 넘어가는 경우, 128에서 클립하는 구성이어도 된다. 예를 들어, 화소값이 「126(녹색측)」이고, 오프셋이 「3」일 때에, 그대로 오프셋을 가산하여, x=126+3=129로 하지 않고, x=clip(126+3, 0, 128)=128로 해도 된다. 여기서, clip(x, y, z)은 x의 값을 y≤x≤z로 제한하는 처리를 나타낸다.
또한, 예를 들어 화소값이 「129(적색측)」이고, 오프셋이 「-4」일 때도, 그대로 오프셋을 가산하여, x=129+(-4)=125로 하지 않고, x=clip(129+(-4), 128, 255)=128로 해도 된다.
(부기 사항 8)
또한, 색차에 있어서, 중간 계조 영역과 그 밖의 값 영역으로 나누어서 오프셋을 가산하는 구성이어도 된다. 예를 들어, 도 37의 (a)에 도시한 바와 같이, 무채색의 화소값을 고려하여 클래스 분류를 행해도 된다. 도 37의 (a)에 나타내는 예에서는, "sao_type_idx"=5(BO_0)인 경우, 중간 계조 영역에 클래스가 할당되고, "sao_type_idx"=6(BO_1)인 경우, 중간 계조 영역 이외의 값 영역에 클래스가 할당되어 있다.
또한, 도 37의 (b)에 도시한 바와 같이, 무채색의 화소값을 사이에 두는 2개의 값 영역에서 비대칭으로 클래스 분류되어 있어도 된다. 도 37의 (b)에 나타내는 예에서는, 도 37의 (a)에 나타내는 예와 클래스의 폭은 동일하고 단락의 위치가 변경되어 있다.
또한, 도 37의 (c), (d)에 도시한 바와 같이, 색차의 채널(Cr 및 Cb)마다, 서로 다른 클래스 분류를 사용해도 된다. 도 37의 (c), (d)에 나타내는 예에서는, 색차(Cr)와 색차(Cb)에서 클래스의 폭이 상이하다. 클래스 폭의 변경은, 변환 테이블(2501)과 같이 클래스 수를 세분화함으로써 가능하다.
또한, 도 37의 (e)에 도시한 바와 같이, 색차에서는, BO의 타입을 하나로 하여 클래스 분류를 행하는 구성이어도 된다.
[실시 형태 7]
본 발명의 다른 실시 형태에 대하여 도 38 내지 40에 기초해서 설명하면, 이하와 같다. 본 실시 형태에서, 상기 실시 형태와 다른 것은, 오프셋의 값 자체가 아니라, 오프셋의 값을 예측 부호화, 즉, 오프셋의 값과 당해 오프셋의 값의 예측값을 사용하여 산출되는 오프셋 잔차를 부호화하는 점 및 오프셋 예측값에 「0」을 두는 점이다.
일반적으로 SAO에서는, 영역 분류를 나타내는 클래스에 따라서 오프셋을 부호화한다. 당해 클래스로 분류되는 화소가 없다(클래스가 비어있는) 경우에는 「0」이 부호화된다. 통상, 근방 클래스 및 근방 영역의 오프셋은 가까운 값을 갖기 때문에, 이미 복호한 오프셋값을 예측값으로 해서 차분을 부호화하면, 부호량을 삭감하는 것이 가능하다. 그러나, 클래스가 비어있을 경우에는, 반대로 부호량이 증가되어 버린다.
따라서, 본 실시 형태에서는, 오프셋의 예측값에 「0」을 포함하고, 「0」을 포함하는 복수의 예측값 후보로부터 1개의 예측값을 선택하여, 예측 차분을 부호화함으로써 오프셋의 부호량을 저감하고 있다.
이에 의해, 클래스가 비어있어도, 당해 클래스로 분류되는 화소가 있고, 오프셋이 부호화되는 경우에도, 적합한 예측값을 할당할 수 있기 때문에, 예측 부호화에 의해 부호량을 삭감할 수 있다.
본 실시 형태에 따른 오프셋 정보 복호부(611')의 구성에 대해서, 도 38을 참조하여 설명한다. 오프셋 정보 복호부(611')는, 도 22의 오프셋 정보 복호부(611) 대신에 설치되어 있는 것이며, 오프셋 잔차 복호부(651), 오프셋 복원부(652), 예측값 도출부(653)를 포함하는 구성이다. 또한, 예측값 도출부(653)는, 예측 후보 플래그 복호부(661), 고정 예측값 산출부(662), 부호화 예측값 산출부(663) 및 예측값 후보 선택부(664)를 포함하는 구성이다.
오프셋 잔차 복호부(651)는, 부호화 데이터(#1)에 포함되는 QAOU 정보로부터 오프셋 잔차를 복호하고, 복호한 오프셋 잔차를 오프셋 복원부(652)에 공급한다.
예측값 도출부(653)는, 오프셋의 예측값을 도출한다. 예측 후보 플래그 복호부(661)는, 예측 후보 플래그를 QAOU 정보로부터 복호하고, 복호한 예측 후보 플래그를 예측값 후보 선택부(664)에 공급한다. 또한, 예측 후보 플래그 복호부(661)는, 이전에 복호된 오프셋값이 「0」일 경우에는, 후보 선택 플래그를 복호하지 않는 구성이어도 된다.
고정 예측값 산출부(662)는, 당해 클래스로 분류되는 화소가 없을 경우에 부호화되는 오프셋인 고정값(여기서는 「0」)을 예측값으로서 산출하여, 예측값 후보 선택부(664)에 공급한다.
부호화 예측값 산출부(663)는, 이미 복호된 오프셋을 오프셋 정보 저장부(621)로부터 판독해서 예측값을 산출하여, 예측값 후보 선택부(664)에 공급한다.
예측값 후보 선택부(664)는, 예측 후보 플래그에 따라, 고정 예측값 산출부(662)로부터 공급된 예측값 및 부호화 예측값 산출부(663)로부터 공급된 예측값으로부터, 오프셋 복원부(652)에 공급하는 예측값을 선택한다.
오프셋 복원부(652)는, 예측값 후보 선택부(664)로부터 공급된 예측값(pred)과 오프셋 잔차 복호부(651)로부터 공급된 오프셋 잔차(sao_offset)로부터, 다음 식에 따라서 오프셋(Offset)을 복원한다.
"Offset"="pred"+"sao_offset"
여기서, 분류되는 화소가 없는 클래스(빈 클래스)가 있을 경우에, 부호량이 증가되어 버리는 이유에 대해서, 도 39를 참조하여 설명한다. 도 39는, 빈 클래스가 있을 경우의 개요를 도시하는 도면이다. 도 39에 도시한 바와 같이, 비어있지 않은 클래스에는, 당해 클래스의 오프셋이 부호화되어 있다. 그리고, 클래스마다, 전회의 오프셋을 예측값으로 해서 상기 예측값과 오프셋의 차분이 부호화된다. 그러나, 빈 클래스가 있으면, 예측값이 「0」이 되고, 차분값이 커져버린다. 이에 의해, 부호량이 증대해버린다.
따라서, 본 실시 형태에서는, 예측 후보 플래그에 의해, 예측값을 「0」과 「직전의 (0 이외의) 오프셋」에서 선택할 수 있도록 하고 있다.
예측 후보 플래그를 사용하는 경우의 구문에 대해서, 도 40을 참조하여 설명한다. 도 40은, 예측 후보 플래그를 사용하는 경우의 구문(2901)을 도시하는 도면이다. 도 40에 도시한 바와 같이, 예측 후보 플래그 "sao_pred_flag"를 추가하고, "sao_pred_flag"=0이면 직전에 복호한 (0이 아닌) 오프셋을 예측값 offsetp로 하고, "sao_pred_flag"=1이거나 또는 최초의 오프셋이면, 예측값 offsetp=0으로 한다. 또한, 구문(2901)에서, "sao_offset_delta"은 예측값으로부터의 차분(d)을 나타내고, "sao_offset[sao_curr_depth][ys][xs]"="offsetp+d"가 된다.
또한, 오프셋 타입에 따라, 예측 후보 플래그를 사용하지 않는 구성으로 해도 된다. 예를 들어, EO의 경우에는, 예측 후보 플래그를 사용하지 않고, BO의 경우에는, 예측 후보 플래그를 사용하는 구성으로 해도 된다. 이것은, BO에서는, 화소값의 분포에 따라 빈 클래스가 종종 발생하기 때문이다.
또한, 오프셋 타입에 따라, 예측 부호화 자체를 행할지의 여부를 결정하는 구성이어도 된다. 예를 들어, EO의 경우에는, 예측 부호화를 행하고, BO의 경우에는 예측 부호화를 행하지 않는 구성이어도 된다.
(부기 사항 9)
또한, 상기 실시 형태 3 내지 7에서, 인트라 예측 모드를 사용하여, LCU 단위로, 에지 오프셋의 클래스를 추정하거나, 제한하거나, 재배열을 행해도 된다.
SAO의 EO 타입으로서 선택되는 에지 방향은, 인트라 예측 모드와 상관이 있다고 생각된다. 이로 인해, SAO의 QAOU와 대응하는 위치에 있는 CU의 인트라 예측 모드를 참조하면, EO 클래스의 선택에 이용할 수 있다.
예를 들어, 인트라 예측 모드에 의해, EO 클래스를 추정하여 결정하거나, EO 클래스의 후보를 제한하거나, 또는, EO 클래스의 순서(인덱스)를, 선택될 가능성이 높은 순서대로 재배열할 수 있다.
이것은, SAO의 각 계층의 QAOU의 크기가 CU와 동일한 크기인 경우, 예를 들어 SAO의 QAOU의 최대 크기가 LCU 크기와 동등해지도록 화상이 분할되는 경우이면, 특히 용이하게 실현 가능하다.
(부기 사항 10)
종래의 적응 오프셋 필터에서는, 오프셋의 종류(타입, 클래스)가 많기 때문에, 큰 메모리 크기가 필요하게 될 가능성이 있다. 따라서, 본 실시 형태에서는, 메모리 크기의 증대를 억제하면서, 블록 왜곡을 저감할 수 있는 화상 필터 장치 등을 실현하고 있다.
본 발명에 따른 화상 필터 장치는, 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에, 복수의 오프셋 중에서 선택한 오프셋을 가산하는 화상 필터 장치이며, 각 단위 영역에 포함되는 화소의 화소값에 가산하는 오프셋을 상기 단위 영역마다 결정하는 오프셋 결정 수단과, 상기 오프셋 결정 수단이 결정한 오프셋을, 당해 단위 영역에 포함되는 화소의 화소값에 가산하는 필터 수단을 구비하고, 상기 오프셋 결정 수단은, 오프셋의 결정 대상이 되는 단위 영역의 크기가 소정의 크기보다 작은 경우, 단위 영역의 크기가 소정의 크기 이상의 경우보다 선택할 수 있는 오프셋 수가 제한된 오프셋 중에서 당해 단위 영역에 포함되는 화소의 화소값에 가산하는 오프셋을 결정하는 것을 특징으로 하고 있다.
상기 구성에 의하면, 오프셋의 결정 대상이 되는 단위 영역의 크기가 소정의 크기보다 작은 경우, 단위 영역의 크기가 소정의 크기 이상인 경우보다 제한된 오프셋 중에서 가산하는 오프셋이 결정된다.
단위 영역의 크기가 작은 경우, 그 중에 포함되는 화소수는 적어지고, 또한, 그 화소끼리는, 근사한 값을 가지고 있을 가능성이 높다. 따라서, 단위 영역의 크기가 작은 경우에는, 선택 가능한 오프셋 수를 제한해도, 오프셋 적용 후의 화상에 미치는 영향은 작다. 또한, 선택 가능한 오프셋 수를 제한함으로써, 필요한 메모리의 용량을 저감시킬 수 있다.
따라서, 상기 구성에 의하면, 오프셋 적용 후의 화상에 미치는 영향을 낮게 하면서, 메모리의 사용량을 삭감할 수 있다. 또한, 선택 가능한 오프셋 수가 작아짐으로써, 부호량을 삭감할 수 있어, 부호화 효율이 향상된다.
상기 과제를 해결하기 위해서, 본 발명에 따른 화상 필터 장치는, 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터 장치이며, 각 단위 영역에 포함되는 화소의 화소값에 가산하는 오프셋을 상기 단위 영역마다 결정하는 오프셋 결정 수단과, 상기 오프셋 결정 수단이 결정한 오프셋을, 당해 단위 영역에 포함되는 화소의 화소값에 가산하는 필터 수단을 구비하고, 상기 필터 수단은, 오프셋의 결정 대상이 되는 단위 영역의 크기가 소정의 크기보다 작은 경우, 단위 영역의 크기가 소정의 크기 이상인 경우보다 정밀도를 거칠게 한 오프셋을 가산하는 것을 특징으로 하고 있다.
상기 구성에 의하면, 오프셋의 결정 대상이 되는 단위 영역의 크기가 소정의 크기보다 작은 경우, 단위 영역의 크기가 소정의 크기 이상인 경우보다 정밀도가 거친 오프셋이 가산된다.
단위 영역의 크기가 작은 경우, 그 중에 포함되는 화소수는 적어지고, 또한, 그 화소끼리는, 근사한 값을 가지고 있을 가능성이 높다. 따라서, 단위 영역의 크기가 작은 경우에는, 오프셋의 정밀도를 거칠게 해도, 양자화 오차에 미치는 영향이 작다. 따라서, 오프셋 적용 후의 화상에 미치는 영향도 작다. 또한, 오프셋의 정밀도를 거칠게 함으로써, 필요한 메모리의 용량을 저감시킬 수 있다.
따라서, 상기 구성에 의하면, 오프셋 적용 후의 화상에 미치는 영향을 낮게 하면서, 메모리의 사용량을 삭감할 수 있다. 또한, 오프셋의 정밀도가 거칠어짐으로써, 부호량을 삭감할 수 있어, 부호화 효율이 향상된다.
본 발명에 따른 화상 필터 장치는, 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에, 적응 오프셋(SAO: Sample Adaptive Offset)을 실시하는 화상 필터 장치이며, 각 단위 영역에 포함되는 화소의 화소값에 가산하는 오프셋의 종류를 상기 단위 영역마다 결정하는 오프셋 결정 수단과, 상기 오프셋 결정 수단이 결정한 오프셋의 종류에 따른 오프셋을, 당해 단위 영역에 포함되는 화소의 화소값에 가산하는 필터 수단을 구비하고, 상기 오프셋 결정 수단은, 오프셋을 가산하는 대상 화소의 화소값이 최대값 및 최소값의 부근에 대해서는, 오프셋의 종류를 밴드 오프셋(BO)으로 결정하고, 그 이외의 값 영역의 화소에 대해서는 에지 오프셋(EO)으로 결정하는 것을 특징으로 하고 있다.
상기 구성에 의하면, 적응 오프셋을 실시하는 경우에, 화소값이, 최대값 및 최소값의 부근의 화소에 대해서는, 밴드 오프셋이 적용되고, 그 밖의 값 영역의 화소에 대해서는 에지 오프셋이 적용된다.
고화소값 영역 및 저화소값 영역에서는, 에지보다 화소값이 더 오차에 영향을 미치기 쉽다는 경향이 있으므로, 상기 구성에 의해, 오차 보정의 효율이 높아져서, 부호화 효율을 향상시킬 수 있다.
또한, 1개의 타입에서 밴드 오프셋과 에지 오프셋을 병용하면, 적응 오프셋의 타입 수를 저감시킬 수 있고, 메모리의 사용량 및 처리량을 삭감할 수 있다.
또한, 상기 구성에서, 밴드 오프셋이란, 처리 대상의 화소의 화소값의 크기에 따라, 당해 처리 대상 화소의 화소값에 복수의 오프셋 중 어느 하나를 가산하는 오프셋 처리를 말한다(이하 마찬가지임). 또한, 상기 구성에서, 에지 오프셋이란, 처리 대상의 화소의 화소값과 당해 처리 대상의 화소의 주변의 화소의 화소값의 차분에 따라, 당해 처리 대상 화소의 화소값에 복수의 오프셋 중 어느 하나를 가산하는 오프셋 처리를 말한다(이하 마찬가지임).
본 발명에 따른 화상 필터 장치에서는, 상기 오프셋 결정 수단은, 화소값이 최소값부터 최대값의 4분의 1까지와, 최대값의 4분의 3부터 최대값까지의 값 영역의 화소에 대해서는, 밴드 오프셋으로 결정하고, 그 밖의 값 영역에 대해서는 에지 오프셋으로 결정하는 것이어도 된다.
상기 구성에 의하면, 밴드 오프셋이 적용되는 화소와 에지 오프셋이 적용되는 화소를 명확하게 나눌 수 있다.
본 발명에 따른 화상 필터 장치는, 입력 화상에, 적응 오프셋(SAO: Sample Adaptive Offset)을 실시하는 화상 필터 장치이며, 에지 오프셋(EO)을 적용할 때의 클래스를 결정하기 위해 행하는 에지의 판정을, 대상 화소의 수평 방향으로 존재하는 화소만을 참조하여 행하는 클래스 분류 수단과, 에지 오프셋(EO)을 적용하는 경우, 상기 클래스 분류 수단이 분류한 클래스에 대응하는 오프셋을 가산하는 필터 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기 구성에 의하면, 에지의 판정에, 수평 방향의 화소밖에 참조하지 않으므로, 상측 방향의 화소도 참조하는 경우와 비교하여, 필요한 메모리량을 삭감할 수 있다. 또한, 상측 방향의 경계 판정이 불필요하게 되므로, 처리량도 삭감할 수 있다.
본 발명에 따른 화상 필터 장치에서는, 상기 클래스 분류 수단은, 대상 화소로부터 수평 방향으로 2 화소 이격된 위치에 있는 화소를 참조하여 에지의 판정을 행하는 것이어도 된다.
상기 구성에 의하면, 대상 화소로부터 2 화소 이격된 화소를 참조하므로, 에지의 각도가 얕은 경우에도 에지를 검출할 수 있다.
본 발명에 따른 화상 필터 장치는, 입력 화상에, 적응 오프셋(SAO: Sample Adaptive Offset)을 실시하는 화상 필터 장치이며, 색차를 나타내는 화소값이, 최대값 및 최소값의 중앙의 값인 중앙값 부근의 클래스의 분할 폭을, 그 밖의 값 영역보다 세분화하여, 밴드 오프셋(BO)을 적용할 때의 클래스를 결정하는 클래스 분류 수단과, 밴드 오프셋(BO)을 적용하는 경우, 상기 클래스 분류 수단이 분류한 클래스에 대응하는 오프셋을 가산하는 필터 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기 구성에 의하면, 색차를 나타내는 화소값이, 최대값 및 최소값의 중앙의 값인 중앙값 부근의 클래스의 분할 폭을, 그 밖의 값 영역보다 세분화하여, 밴드 오프셋(BO)을 적용할 때의 클래스를 결정한다.
색차의 화소값이 중앙값일 때, 당해 화소는 무채색이 된다. 무채색의 오차는, 사람의 눈에 띄기 쉬워, 주관 화질이 저하된다. 따라서, 상기 구성과 같이, 중앙값 부근의 클래스 폭을 세분화하면, 중앙값 부근의 화소에 대하여 미세하게 오프셋을 설정할 수 있다. 이에 의해, 주관 화질을 향상시킬 수 있다.
본 발명에 따른 화상 필터 장치에서는, 상기 필터 수단은, 오프셋 가산 전의 화소값과 가산 후의 화소값의 사이에 상기 중앙값이 존재하는 경우, 오프셋 가산 후의 화소값을 상기 중앙값으로 하는 것이어도 된다.
상기 구성에 의하면, 중앙값을 초과하여 오프셋이 가산되는 경우는 없어진다. 색차의 화소값이 중앙값의 화소는 무채색이며, 중앙값을 사이에 둔 양측에서는, 사람의 눈으로 지각할 수 있는 색이 바뀌어버린다. 따라서, 상기 구성에 의하면, 오프셋이 가산됨으로써, 사람이 지각하는 색이 바뀌어버리는 것을 방지할 수 있다.
본 발명에 따른 화상 필터 장치는, 입력 화상에, 적응 오프셋(SAO: Sample Adaptive Offset)을 실시하는 화상 필터 장치이며, 색차를 나타내는 화소값이, 최대값 및 최소값의 중앙의 값인 중앙값 부근의 화소에 대하여, 그 밖의 값 영역의 화소보다 정밀도가 높은 오프셋을 가산하는 필터 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기 구성에 의하면, 색차를 나타내는 화소값이, 최대값 및 최소값의 중앙의 값인 중앙값 부근의 화소에 대하여, 그 밖의 값 영역의 화소보다 정밀도가 높은 오프셋을 가산한다.
색차의 화소값이 중앙값일 때, 당해 화소는 무채색이 된다. 무채색의 오차는, 사람의 눈에 띄기 쉬워, 주관 화질이 저하된다. 따라서, 상기 구성과 같이, 중앙값 부근에서는, 가산하는 오프셋의 정밀도를 향상시키면, 중앙값 부근의 화소에 대하여 미세하게 오프셋을 가산할 수 있다. 이에 의해, 주관 화질을 향상시킬 수 있다.
본 발명에 따른 오프셋 복호 장치는, 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터에 의해 참조되는 각 오프셋을 복호하는 오프셋 복호 장치이며, 각 오프셋 잔차를, 부호화 데이터로부터 복호하는 오프셋 잔차 복호 수단과, 각 오프셋의 예측값을, 복호 완료된 오프셋 또는 미리 정해진 값으로부터 도출하는 예측값 도출 수단과, 각 오프셋을, 상기 예측값 도출 수단에 의해 도출된 예측값 및 상기 오프셋 잔차 복호 수단에 의해 복호된 오프셋 잔차로부터 산출하는 오프셋 산출 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기 구성에 의하면, 잔차로부터 오프셋을 복호하므로, 오프셋을 그대로 부호화하는 경우보다 부호량을 적게 할 수 있다. 또한, 잔차를 구하기 위한 예측값을 복호 완료된 오프셋 또는 미리 정해진 값으로부터 도출하므로, 복호 완료된 오프셋만을 사용함으로써, 차분 데이터의 부호량이, 그대로 부호화할 때보다 커져버리는 것을 방지할 수 있다.
또한, 미리 정해진 값으로서는, 예를 들어 「0」을 들 수 있다.
본 발명에 따른 오프셋 부호화 장치는, 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터에 의해 참조되는 각 오프셋을 부호화하는 오프셋 부호화 장치이며, 각 오프셋의 예측값을, 부호화 완료된 오프셋 또는 미리 정해진 값으로부터 도출하는 예측값 도출 수단과, 각 오프셋과 상기 예측값 도출 수단에 의해 도출된 예측값으로부터 오프셋 잔차를 산출하는 오프셋 잔차 산출 수단과, 상기 오프셋 잔차 산출 수단에 의해 산출된 오프셋 잔차를 부호화하는 오프셋 잔차 부호화 수단을 구비하고 있는 것을 특징으로 하고 있다.
상기 구성에 의하면, 잔차로부터 오프셋을 복호하므로, 오프셋을 그대로 부호화하는 경우보다 부호량을 적게 할 수 있다. 또한, 잔차를 구하기 위한 예측값을 복호 완료된 오프셋 또는 미리 정해진 값으로부터 도출하므로, 복호 완료된 오프셋만을 사용함으로써, 차분 데이터의 부호량이, 그대로 부호화할 때보다 커져버리는 것을 방지할 수 있다.
본 발명에 따른 부호화 데이터의 데이터 구조는, 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터에 의해 참조되는 부호화 데이터의 데이터 구조이며, 예측값을, 복호 완료된 오프셋 및 미리 정해진 값의 어느 것으로부터 도출할지를 나타내는 예측값 도출 정보를 포함하고, 상기 화상 필터는, 상기 부호화 데이터에 포함되는 예측값 도출 정보를 참조하여, 예측값을 도출하고, 오프셋을 복호하는 것을 특징으로 하고 있다.
상기 구성에 의하면, 예측값을, 복호 완료된 오프셋으로 할지 또는 미리 정해진 값으로 할지를, 예측값 도출 정보에 의해 결정할 수 있다.
(응용예)
상술한 동화상 복호 장치(1(1')) 및 동화상 부호화 장치(2(2'))는, 동화상의 송신, 수신, 기록, 재생을 행하는 각종 장치에 탑재하여 이용할 수 있다. 또한, 동화상은, 카메라 등에 의해 촬상된 자연 동화상이어도 되고, 컴퓨터 등에 의해 생성된 인공 동화상(CG 및 GUI를 포함함)이어도 된다.
우선, 상술한 동화상 복호 장치(1) 및 동화상 부호화 장치(2)를 동화상의 송신 및 수신에 이용할 수 있는 것을, 도 45를 참조하여 설명한다.
도 45의 (a)는 동화상 부호화 장치(2)를 탑재한 송신 장치(A)의 구성을 나타낸 블록도이다. 도 45의 (a)에 도시한 바와 같이, 송신 장치(A)는, 동화상을 부호화함으로써 부호화 데이터를 얻는 부호화부(A1)와, 부호화부(A1)가 얻은 부호화 데이터로 반송파를 변조함으로써 변조 신호를 얻는 변조부(A2)와, 변조부(A2)가 얻은 변조 신호를 송신하는 송신부(A3)를 구비하고 있다. 상술한 동화상 부호화 장치(2)는, 이 부호화부(A1)로서 이용된다.
송신 장치(A)는, 부호화부(A1)에 입력하는 동화상의 공급원으로서, 동화상을 촬상하는 카메라(A4), 동화상을 기록한 기록 매체(A5), 동화상을 외부로부터 입력하기 위한 입력 단자(A6) 및 화상을 생성 또는 가공하는 화상 처리부(A7)를 더 구비하고 있어도 된다. 도 45의 (a)에서는, 이것들 모두를 송신 장치(A)가 구비한 구성을 예시하고 있지만, 일부를 생략해도 상관없다.
또한, 기록 매체(A5)는, 부호화되지 않은 동화상을 기록한 것이어도 되고, 전송용의 부호화 방식과는 다른 기록용의 부호화 방식으로 부호화된 동화상을 기록한 것이어도 된다. 후자의 경우, 기록 매체(A5)와 부호화부(A1)의 사이에, 기록 매체(A5)로부터 판독한 부호화 데이터를 기록용의 부호화 방식에 따라서 복호하는 복호부(도시하지 않음)를 개재시키면 된다.
도 45의 (b)는 동화상 복호 장치(1)를 탑재한 수신 장치(B)의 구성을 나타낸 블록도이다. 도 45의 (b)에 도시한 바와 같이, 수신 장치(B)는, 변조 신호를 수신하는 수신부(B1)와, 수신부(B1)가 수신한 변조 신호를 복조함으로써 부호화 데이터를 얻는 복조부(B2)와, 복조부(B2)가 얻은 부호화 데이터를 복호함으로써 동화상을 얻는 복호부(B3)를 구비하고 있다. 상술한 동화상 복호 장치(1)는, 이 복호부(B3)로서 이용된다.
수신 장치(B)는, 복호부(B3)가 출력하는 동화상의 공급처로서, 동화상을 표시하는 디스플레이(B4), 동화상을 기록하기 위한 기록 매체(B5) 및 동화상을 외부에 출력하기 위한 출력 단자(B6)를 더 구비하고 있어도 된다. 도 45의 (b)에서는, 이것들 모두를 수신 장치(B)가 구비한 구성을 예시하고 있지만, 일부를 생략해도 상관없다.
또한, 기록 매체(B5)는, 부호화되지 않은 동화상을 기록하기 위한 것이어도 되고, 전송용의 부호화 방식과는 다른 기록용의 부호화 방식으로 부호화된 것이어도 된다. 후자의 경우, 복호부(B3)와 기록 매체(B5)의 사이에, 복호부(B3)로부터 취득한 동화상을 기록용의 부호화 방식에 따라서 부호화하는 부호화부(도시하지 않음)를 개재시키면 된다.
또한, 변조 신호를 전송하는 전송 매체는, 무선이어도 되고, 유선이어도 된다. 또한, 변조 신호를 전송하는 전송 형태는, 방송(여기서는, 송신처가 미리 특정되어 있지 않은 송신 형태를 가리킴)이어도 되고, 통신(여기서는, 송신처가 미리 특정되어 있는 송신 형태를 가리킴)이어도 된다. 즉, 변조 신호의 전송은, 무선 방송, 유선 방송, 무선 통신 및 유선 통신 중 어느 것에 의해 실현해도 된다.
예를 들어, 지상 디지털 방송의 방송국(방송 설비 등)/수신국(텔레비전 수상기 등)은 변조 신호를 무선 방송으로 송수신하는 송신 장치(A)/수신 장치(B)의 일례이다. 또한, 케이블 TV 방송의 방송국(방송 설비 등)/수신국(텔레비전 수상기 등)은 변조 신호를 유선 방송으로 송수신하는 송신 장치(A)/수신 장치(B)의 일례이다.
또한, 인터넷을 사용한 VOD(Video On Demand) 서비스나 동화상 공유 서비스 등의 서버(워크스테이션 등)/클라이언트(텔레비전 수상기, 퍼스널 컴퓨터, 스마트폰 등)는, 변조 신호를 통신으로 송수신하는 송신 장치(A)/수신 장치(B)의 일례이다(통상, LAN에서는 전송 매체로서 무선 또는 유선 중 어느 하나가 사용되고, WAN에서는 전송 매체로서 유선이 사용된다). 여기서, 퍼스널 컴퓨터에는, 데스크탑형PC, 랩탑형 PC 및 태블릿형 PC가 포함된다. 또한, 스마트폰에는, 다기능 휴대 전화 단말기도 포함된다.
또한, 동화상 공유 서비스의 클라이언트는, 서버로부터 다운로드한 부호화 데이터를 복호하여 디스플레이에 표시하는 기능 외에, 카메라로 촬상한 동화상을 부호화하여 서버에 업 로드하는 기능을 갖고 있다. 즉, 동화상 공유 서비스의 클라이언트는, 송신 장치(A) 및 수신 장치(B) 양쪽으로서 기능한다.
이어서, 상술한 동화상 복호 장치(1) 및 동화상 부호화 장치(2)를 동화상의 기록 및 재생에 이용할 수 있는 것을, 도 46을 참조하여 설명한다.
도 46의 (a)는 상술한 동화상 복호 장치(1)를 탑재한 기록 장치(C)의 구성을 나타낸 블록도이다. 도 46의 (a)에 도시한 바와 같이, 기록 장치(C)는, 동화상을 부호화함으로써 부호화 데이터를 얻는 부호화부(C1)와, 부호화부(C1)가 얻은 부호화 데이터를 기록 매체(M)에 기입하는 기입부(C2)를 구비하고 있다. 상술한 동화상 부호화 장치(2)는 이 부호화부(C1)로서 이용된다.
또한, 기록 매체(M)는, (1) HDD(Hard Disk Drive)나 SSD(Solid State Drive) 등과 같이 기록 장치(C)에 내장되는 타입의 것이어도 되고, (2) SD 메모리 카드나 USB(Universal Serial Bus) 플래시 메모리 등과 같이 기록 장치(C)에 접속되는 타입의 것이어도 되고, (3) DVD(Digital Versatile Disc)나 BD(Blu-ray Disc: 등록 상표) 등과 같이 기록 장치(C)에 내장된 드라이브 장치(도시하지 않음)에 장전되는 것이어도 된다.
또한, 기록 장치(C)는, 부호화부(C1)에 입력하는 동화상의 공급원으로서, 동화상을 촬상하는 카메라(C3), 동화상을 외부로부터 입력하기 위한 입력 단자(C4), 동화상을 수신하기 위한 수신부(C5) 및 화상을 생성 또는 가공하는 화상 처리부(C6)를 더 구비하고 있어도 된다. 도 46의 (a)에서는, 이것들 모두를 기록 장치(C)가 구비한 구성을 예시하고 있지만, 일부를 생략해도 상관없다.
또한, 수신부(C5)는, 부호화되지 않은 동화상을 수신하는 것이어도 되고, 기록용의 부호화 방식과는 다른 전송용의 부호화 방식으로 부호화된 부호화 데이터를 수신하는 것이어도 된다. 후자의 경우, 수신부(C5)와 부호화부(C1)의 사이에, 전송용의 부호화 방식으로 부호화된 부호화 데이터를 복호하는 전송용 복호부(도시하지 않음)를 개재시키면 된다.
이러한 기록 장치(C)로서는, 예를 들어 DVD 레코더, BD 레코더, HD(Hard Disk) 레코더 등을 들 수 있다(이 경우, 입력 단자(C4) 또는 수신부(C5)가 동화상의 주된 공급원이 된다). 또한, 캠코더(이 경우, 카메라(C3)가 동화상의 주된 공급원이 된다), 퍼스널 컴퓨터(이 경우, 수신부(C5) 또는 화상 처리부(C6)가 동화상의 주된 공급원이 된다), 스마트폰(이 경우, 카메라(C3) 또는 수신부(C5)가 동화상의 주된 공급원이 된다) 등도, 이러한 기록 장치(C)의 일례이다.
도 46의 (b)는 상술한 동화상 복호 장치(1)를 탑재한 재생 장치(D)의 구성을 나타낸 블록이다. 도 46의 (b)에 도시한 바와 같이, 재생 장치(D)는, 기록 매체(M)에 기입된 부호화 데이터를 판독하는 판독부(D1)와, 판독부(D1)가 판독한 부호화 데이터를 복호함으로써 동화상을 얻는 복호부(D2)를 구비하고 있다. 상술한 동화상 복호 장치(1)는, 이 복호부(D2)로서 이용된다.
또한, 기록 매체(M)는, (1) HDD나 SSD 등과 같이 재생 장치(D)에 내장되는 타입의 것이어도 되고, (2) SD 메모리 카드나 USB 플래시 메모리 등과 같이 재생 장치(D)에 접속되는 타입의 것이어도 되고, (3) DVD나 BD 등과 같이 재생 장치(D)에 내장된 드라이브 장치(도시하지 않음)에 장전되는 것이어도 된다.
또한, 재생 장치(D)는, 복호부(D2)가 출력하는 동화상의 공급처로서, 동화상을 표시하는 디스플레이(D3), 동화상을 외부에 출력하기 위한 출력 단자(D4) 및 동화상을 송신하는 송신부(D5)를 더 구비하고 있어도 된다. 도 46의 (b)에서는, 이것들 모두를 재생 장치(D)가 구비한 구성을 예시하고 있지만, 일부를 생략해도 상관없다.
또한, 송신부(D5)는, 부호화되지 않은 동화상을 송신하는 것이어도 되고, 기록용의 부호화 방식과는 다른 전송용의 부호화 방식으로 부호화된 부호화 데이터를 송신하는 것이어도 된다. 후자의 경우, 복호부(D2)와 송신부(D5)의 사이에, 동화상을 전송용의 부호화 방식으로 부호화하는 부호화부(도시하지 않음)를 개재시키면 된다.
이러한 재생 장치(D)로서는, 예를 들어 DVD 플레이어, BD 플레이어, HDD 플레이어 등을 들 수 있다(이 경우, 텔레비전 수상기 등이 접속되는 출력 단자(D4)가 동화상의 주된 공급처가 된다). 또한, 텔레비전 수상기(이 경우, 디스플레이(D3)가 동화상의 주된 공급처가 된다), 데스크탑형 PC(이 경우, 출력 단자(D4) 또는 송신부(D5)가 동화상의 주된 공급처가 된다), 랩탑형 또는 태블릿형 PC(이 경우, 디스플레이(D3) 또는 송신부(D5)가 동화상의 주된 공급처가 된다), 스마트폰(이 경우, 디스플레이(D3) 또는 송신부(D5)가 동화상의 주된 공급처가 된다), 디지털 사이니지(전자 간판이나 전자 게시판 등이라고 불리며, 디스플레이(D3) 또는 송신부(D5)가 동화상의 주된 공급처가 된다) 등도, 이러한 재생 장치(D)의 일례이다.
(소프트웨어에 의한 구성)
마지막으로, 동화상 복호 장치(1(1')) 및 동화상 부호화 장치(2(2'))의 각 블록, 특히 가변 길이 부호 복호부(13), 움직임 벡터 복원부(14), 인터 예측 화상 생성부(16), 인트라 예측 화상 생성부(17), 예측 방식 결정부(18), 역양자화·역변환부(19), 디블록킹 필터(41), 적응 필터(50), 적응 오프셋 필터(60(60')), 변환·양자화부(21), 가변 길이 부호 부호화부(22), 역양자화·역변환부(23), 인트라 예측 화상 생성부(25), 인터 예측 화상 생성부(26), 움직임 벡터 검출부(27), 예측 방식 제어부(28), 움직임 벡터 용장성 삭제부(29), 디블록킹 필터(33), 적응 필터(70), 적응 오프셋 필터(80(80'))는, 집적 회로(IC 칩) 상에 형성된 논리 회로에 의해 하드웨어적으로 실현하고 있어도 되고, CPU(central processing unit)를 사용하여 소프트웨어적으로 실현해도 된다.
후자의 경우, 동화상 복호 장치(1) 및 동화상 부호화 장치(2)는, 각 기능을 실현하는 제어 프로그램의 명령을 실행하는 CPU, 상기 프로그램을 저장한 ROM(read only memory), 상기 프로그램을 전개하는 RAM(random access memory), 상기 프로그램 및 각종 데이터를 저장하는 메모리 등의 기억 장치(기록 매체) 등을 구비하고 있다. 그리고, 본 발명의 목적은, 상술한 기능을 실현하는 소프트웨어인 동화상 복호 장치(1) 및 동화상 부호화 장치(2)의 제어 프로그램의 프로그램 코드(실행 형식 프로그램, 중간 코드 프로그램, 소스 프로그램)를 컴퓨터로 판독 가능하게 기록한 기록 매체를, 상기의 동화상 복호 장치(1) 및 동화상 부호화 장치(2)에 공급하고, 그 컴퓨터(또는 CPU나 MPU(micro processing unit))가 기록 매체에 기록되어 있는 프로그램 코드를 판독해서 실행함으로써도 달성 가능하다.
상기 기록 매체로서는, 예를 들어 자기 테이프나 카세트 데이프 등의 테이프류, 플로피(등록 상표) 디스크/하드 디스크 등의 자기 디스크나 CD-ROM(compact disc read-only memory)/MO 디스크(magneto-optical disc)/MD(Mini Disc)/DVD(digital versatile disc)/CD-R(CD Recordable) 등의 광 디스크를 포함하는 디스크류, IC 카드(메모리 카드를 포함함)/광 카드 등의 카드류, 마스크 ROM/EPROM(erasable programmable read-only memory)/EEPROM(electrically erasable and programmable read-only memory)(등록 상표)/플래시 ROM 등의 반도체 메모리류, 또는 PLD(Programmable logic device)나 FPGA(Field Programmable Gate Array) 등의 논리 회로류 등을 사용할 수 있다.
또한, 동화상 복호 장치(1) 및 동화상 부호화 장치(2)를 통신 네트워크와 접속 가능하게 구성하고, 상기 프로그램 코드를 통신 네트워크를 통해 공급해도 된다. 이 통신 네트워크는, 프로그램 코드를 전송 가능하면 되며, 특별히 한정되지 않는다. 예를 들어, 인터넷, 인트라넷, 엑스트라 네트, LAN(local area network), ISDN(integrated services digital network), VAN(value-added network), CATV(community antenna television/cable television) 통신망, 가상 전용망(virtual private network), 전화 회선망, 이동체 통신망, 위성 통신망 등이 이용 가능하다. 또한, 이 통신 네트워크를 구성하는 전송 매체도, 프로그램 코드를 전송 가능한 매체이면 되고, 특정한 구성 또는 종류의 것에 한정되지 않는다. 예를 들어, IEEE(institute of electrical and electronic engineers) 1394, USB, 전력선 반송, 케이블 TV 회선, 전화선, ADSL(asymmetric digital subscriber loop) 회선 등의 유선이나, IrDA(infrared data association)나 리모콘과 같은 적외선, Bluetooth(등록 상표), IEEE 802. 11 무선, HDR(high data rate), NFC(Near Field Communication), DLNA(Digital Living Network Alliance), 휴대 전화망, 위성 회선, 지상파 디지털망 등의 무선으로도 이용 가능하다. 또한, 본 발명은 상기 프로그램 코드가 전자적인 전송으로 구현화된, 반송파에 매립된 컴퓨터 데이터 신호의 형태로도 실현될 수 있다.
본 발명은 상술한 각 실시 형태에 한정되는 것은 아니며, 청구항에 나타낸 범위에서 다양한 변경이 가능하고, 서로 다른 실시 형태에 각각 개시된 기술적 수단을 적절히 조합하여 얻어지는 실시 형태에 대해서도 본 발명의 기술적 범위에 포함된다.
본 발명은 화상 데이터에 오프셋 필터링을 행하는 화상 필터에 적절하게 사용할 수 있다. 또한, 부호화 데이터를 복호하는 복호 장치 및 부호화 데이터를 부호화하는 부호화 장치에 적절하게 적용할 수 있다.
1 : 동화상 복호 장치(복호 장치) 41 : 디블록킹 필터
50 : 적응 필터
60, 60' : 적응 오프셋 필터(화상 필터 장치)
611, 611' : 오프셋 정보 복호부(오프셋 복호 장치, 결정 수단, 오프셋 속성 설정 수단, 오프셋 복호 수단, 오프셋 잔차 복호 수단, 예측값 도출 수단)
612 : QAOU 구조 복호부
613 : 오프셋 속성 설정부(오프셋 속성 설정 수단)
621 : 오프셋 정보 저장부 622 : QAOU 제어부
623 : 오프셋 타입 도출부
624 : 클래스 분류부(산출 수단, 비트 시프트 수단, 분류 수단)
625 : 오프셋 도출부(오프셋 역 시프트 수단)
626 : 오프셋 가산부(오프셋 수단)
2 : 동화상 부호화 장치(부호화 장치) 33 : 디블록킹 필터
70 : 적응 필터
80, 80' : 적응 오프셋 필터(화상 필터 장치)
811 : 오프셋 산출부 812 : 오프셋 클립부
813 : 오프셋 정보 선택부 814 : 오프셋 잔차 도출부
815 : 오프셋 속성 설정부(오프셋 속성 설정 수단)
816 : 오프셋 시프트부(오프셋 시프트 수단)

Claims (19)

  1. 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터 장치로서,
    부호화 데이터를 참조하여, 오프셋값 영역을 설정하는 오프셋 속성 설정 수단과,
    상기 설정된 오프셋값 영역으로 제한된 오프셋을 복호하는 오프셋 복호 수단과,
    상기 입력 화상의 각 화소값에 상기 오프셋을 가산하는 필터 수단
    을 구비하고 있는 것을 특징으로 하는 화상 필터 장치.
  2. 제1항에 있어서,
    상기 부호화 데이터는, 상기 입력 화상의 화소값의 비트 심도를 포함하고,
    상기 오프셋 속성 설정 수단은, 상기 화소값의 비트 심도에 따라서 상기 오프셋값 영역을 설정하는
    것을 특징으로 하는 화상 필터 장치.
  3. 제2항에 있어서,
    상기 오프셋 속성 설정 수단은, 상기 오프셋의 비트 폭인 오프셋 비트 심도를, 상기 화소값의 비트 심도가 10비트 이하인 경우에는 화소값의 비트 심도와 동등한 값으로 설정하고, 상기 화소값의 비트 심도가 11비트 이상인 경우에는 10으로 설정함과 함께, 상기 오프셋값 영역을 2오프셋 비트 심도-5 이하의 범위로 하는 것을 특징으로 하는 화상 필터 장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 복호된 오프셋은 양자화된 값이며,
    상기 필터 수단은, 상기 오프셋 속성에 포함되는 파라미터를 사용하여 상기 오프셋을 역양자화한 값을 상기 각 화소값에 가산하는
    것을 특징으로 하는 화상 필터 장치.
  5. 제3항에 있어서,
    상기 필터 수단은, 상기 화소값의 비트 심도에서, 상기 오프셋 비트 심도를 뺀 값인 시프트값만큼 좌측 시프트를 함으로써, 복호한 오프셋의 역양자화를 행하는 것을 특징으로 하는 화상 필터 장치.
  6. 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터에 의해 참조되는 각 오프셋을 복호하는 오프셋 복호 장치로서,
    각 오프셋 잔차를, 부호화 데이터로부터 복호하는 오프셋 잔차 복호 수단과,
    각 오프셋의 예측값을, 복호 완료된 오프셋으로부터 도출하는 예측값 도출 수단과,
    각 오프셋을, 상기 예측값 도출 수단에 의해 도출된 예측값 및 상기 오프셋 잔차 복호 수단에 의해 복호된 오프셋 잔차로부터 산출하는 오프셋 산출 수단
    을 구비하고 있는 것을 특징으로 하는 오프셋 복호 장치.
  7. 제6항에 있어서,
    상기 입력 화상은, 복수의 단위 영역으로 구성되어 있고,
    상기 오프셋 잔차 복호 수단은, 각 오프셋 잔차를, 단위 영역마다 정해지는 오프셋 타입 및 화소마다 정해지는 오프셋 클래스에 관련지어서 복호하고,
    상기 예측값 도출 수단은, 각 오프셋의 예측값을, 상기 오프셋과 동일한 오프셋 타입 및 오프셋 클래스에 관련지어진 복호 완료된 오프셋으로부터 도출하는
    것을 특징으로 하는 오프셋 복호 장치.
  8. 제6항에 있어서,
    상기 입력 화상은, 복수의 단위 영역으로 구성되어 있고,
    상기 오프셋 잔차 복호 수단은, 각 오프셋 잔차를, 단위 영역마다 정해지는 오프셋 타입 및 화소마다 정해지는 오프셋 클래스에 관련지어서 복호하고,
    상기 예측값 도출 수단은, 각 오프셋의 예측값을,
    상기 오프셋에 관련지어진 오프셋 타입이 제1 오프셋 타입 군에 속해 있는 경우에, 상기 오프셋과 동일한 오프셋 타입에 관련지어진 복호 완료된 오프셋으로부터 도출하고,
    상기 오프셋에 관련지어진 오프셋 타입이 제2 오프셋 타입 군에 속해 있는 경우에, 상기 오프셋과 동일한 오프셋 타입 및 오프셋 클래스에 관련지어진 복호 완료된 오프셋으로부터 도출하는
    것을 특징으로 하는 오프셋 복호 장치.
  9. 제8항에 있어서,
    상기 오프셋 산출 수단은, 각 오프셋을, 상기 예측값 도출 수단에 의해 도출된 예측값 및 상기 오프셋 잔차 복호 수단에 의해 복호된 오프셋 잔차의 선형 함수로서 산출하는 것이며,
    상기 예측값에 곱해지는 계수는, 상기 오프셋에 관련지어진 오프셋 타입이 제1 오프셋 타입 군에 속해 있는 경우와, 상기 오프셋에 관련지어진 오프셋 타입이 제2 오프셋 타입 군에 속해 있는 경우에 상이한
    것을 특징으로 하는 오프셋 복호 장치.
  10. 제6항 내지 제9항 중 어느 한 항에 있어서,
    상기 예측값 도출 수단은, 각 오프셋의 예측값을, 복호 완료된 오프셋과 상기 복호 완료된 오프셋의 예측값의 가중 평균을 취함으로써 도출하는
    것을 특징으로 하는 오프셋 복호 장치.
  11. 제6항 내지 제10항 중 어느 한 항에 있어서,
    상기 예측값 도출 수단은, 도출한 각 예측값을, 입력 화상에서의 각 화소값의 비트 심도에 따른 상한값 및 하한값으로 클립하는 클립 수단을 구비하고 있는
    것을 특징으로 하는 오프셋 복호 장치.
  12. 입력 화상에 작용하는 화상 필터 장치로서,
    입력 화상에서의 대상 화소의 화소값과 상기 대상 화소의 주변의 화소의 화소값의 차분값을 산출하는 산출 수단과,
    상기 산출 수단에 의해 참조되는 화소값, 또는 상기 산출 수단에 의해 산출된 차분값을 소정의 시프트값만큼 우측 비트 시프트하는 비트 시프트 수단과,
    상기 비트 시프트 수단에 의해 우측 비트 시프트된 차분값과 0의 대소 관계에 따라, 상기 대상 화소를 복수의 오프셋 클래스 중 어느 하나로 분류하는 분류 수단과,
    상기 대상 화소의 화소값에 대하여, 상기 분류 수단에 의해 분류된 오프셋 클래스에 관련지어진 오프셋을 가산하는 오프셋 수단
    을 구비하고 있는 것을 특징으로 하는 화상 필터 장치.
  13. 제12항에 있어서,
    상기 소정의 시프트값은, 상기 대상 화소의 화소값의 비트 심도와 정(正)의 상관을 갖고 있는
    것을 특징으로 하는 화상 필터 장치.
  14. 입력 화상에 작용하는 화상 필터 장치로서,
    입력 화상에서의 대상 화소의 화소값과 상기 대상 화소의 주변의 화소의 화소값의 차분값을 산출하는 산출 수단과,
    상기 산출 수단에 의해 산출된 차분값과, 미리 정해진 제1 및 제2 임계값과의 대소 관계에 따라, 상기 대상 화소를 복수의 오프셋 클래스 중 어느 하나로 분류하는 분류 수단과,
    상기 대상 화소의 화소값에 대하여, 상기 분류 수단에 의해 분류된 오프셋 클래스에 관련지어진 오프셋을 가산하는 오프셋 수단
    을 구비하고 있는 것을 특징으로 하는 화상 필터 장치.
  15. 제14항에 있어서,
    상기 제1 및 제2 임계값의 절대값은, 상기 대상 화소의 화소값의 비트 심도와 정(正)의 상관을 갖고 있는
    것을 특징으로 하는 화상 필터 장치.
  16. 복수의 단위 영역으로 구성되는 입력 화상에 작용하는 화상 필터 장치로서,
    제1 및 제2 오프셋 타입 중, 입력 화상에서의 대상 화소를 포함하는 대상 단위 영역이 속하는 오프셋 타입을 결정하는 결정 수단과,
    상기 대상 단위 영역이 속하는 오프셋 타입 및 상기 대상 화소의 화소값에 따라, 상기 대상 화소를, 오프셋을 가산하지 않는 오프셋 클래스 및 오프셋을 가산하는 복수의 오프셋 클래스 중 어느 하나로 분류하는 분류 수단과,
    상기 대상 화소의 화소값에 대하여 상기 대상 단위 영역이 속하는 오프셋 타입 및 상기 분류 수단에 의해 분류된 오프셋 클래스에 관련지어진 오프셋을 가산하는 오프셋 수단
    을 구비하고 있고,
    상기 분류 수단은, 상기 대상 화소의 화소값이 소정의 범위 내일 때, 상기 대상 화소를 포함하는 단위 영역이 속하는 오프셋 타입이 상기 제1 및 상기 제2 오프셋 타입 중 어느 경우에든, 상기 대상 화소를, 오프셋을 가산하는 오프셋 클래스로 분류하는
    것을 특징으로 하는 화상 필터 장치.
  17. 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터 장치로서,
    복수의 오프셋 타입 중, 처리 대상의 단위 영역이 속하는 오프셋 타입을 결정하는 결정 수단과,
    상기 오프셋 타입에 따라, 서로 다른 비트 폭을 갖는 오프셋을 결정함과 함께, 상기 오프셋을 부호화하는 오프셋 부호화 수단과,
    상기 입력 화상의 각 화소값에 상기 결정된 오프셋을 가산하는 필터 수단
    을 구비하고 있는 것을 특징으로 하는 화상 필터 장치.
  18. 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터에 의해 참조되는 각 오프셋을 부호화하는 오프셋 부호화 장치로서,
    각 오프셋의 예측값을, 부호화 완료된 오프셋으로부터 도출하는 예측값 도출 수단과,
    각 오프셋과 상기 예측값 도출 수단에 의해 도출된 예측값으로부터 오프셋 잔차를 산출하는 오프셋 잔차 산출 수단과,
    상기 오프셋 잔차 산출 수단에 의해 산출된 오프셋 잔차를 부호화하는 오프셋 잔차 부호화 수단
    을 구비하고 있는 것을 특징으로 하는 오프셋 부호화 장치.
  19. 복수의 단위 영역으로 구성되는 입력 화상의 각 화소값에 오프셋을 가산하는 화상 필터에 의해 참조되는 부호화 데이터의 데이터 구조로서,
    각 단위 영역이 속하는 오프셋 타입에 따라서 서로 다른 비트 폭을 갖는 오프셋을 포함하고 있고,
    상기 화상 필터는, 상기 부호화 데이터를 참조하여, 처리 대상의 단위 영역이 속하는 오프셋 타입을 결정함과 함께, 결정한 오프셋 타입에 따라서 서로 다른 비트 폭을 갖는 오프셋을 복호하는
    것을 특징으로 하는 부호화 데이터의 데이터 구조.
KR1020147001188A 2011-06-23 2012-06-22 오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조 KR101785770B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2011139961 2011-06-23
JPJP-P-2011-139961 2011-06-23
JPJP-P-2011-215476 2011-09-29
JP2011215476 2011-09-29
PCT/JP2012/066082 WO2012176910A1 (ja) 2011-06-23 2012-06-22 オフセット復号装置、オフセット符号化装置、画像フィルタ装置、および、データ構造

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020177027760A Division KR101826215B1 (ko) 2011-06-23 2012-06-22 오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조

Publications (2)

Publication Number Publication Date
KR20140045978A true KR20140045978A (ko) 2014-04-17
KR101785770B1 KR101785770B1 (ko) 2017-10-16

Family

ID=47422737

Family Applications (5)

Application Number Title Priority Date Filing Date
KR1020187036558A KR102005212B1 (ko) 2011-06-23 2012-06-22 오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조
KR1020187020857A KR101931675B1 (ko) 2011-06-23 2012-06-22 오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조
KR1020187002934A KR101881869B1 (ko) 2011-06-23 2012-06-22 오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조
KR1020177027760A KR101826215B1 (ko) 2011-06-23 2012-06-22 오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조
KR1020147001188A KR101785770B1 (ko) 2011-06-23 2012-06-22 오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조

Family Applications Before (4)

Application Number Title Priority Date Filing Date
KR1020187036558A KR102005212B1 (ko) 2011-06-23 2012-06-22 오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조
KR1020187020857A KR101931675B1 (ko) 2011-06-23 2012-06-22 오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조
KR1020187002934A KR101881869B1 (ko) 2011-06-23 2012-06-22 오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조
KR1020177027760A KR101826215B1 (ko) 2011-06-23 2012-06-22 오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조

Country Status (18)

Country Link
US (9) US9497455B2 (ko)
EP (6) EP3720127A1 (ko)
JP (7) JP5973434B2 (ko)
KR (5) KR102005212B1 (ko)
CN (3) CN103636210B (ko)
AU (4) AU2012274326B2 (ko)
CA (1) CA2840045C (ko)
CY (1) CY1123096T1 (ko)
DK (2) DK3361725T3 (ko)
ES (2) ES2699974T3 (ko)
HR (2) HRP20181975T1 (ko)
HU (2) HUE049411T2 (ko)
LT (1) LT3361725T (ko)
PL (2) PL3361725T3 (ko)
PT (2) PT3361725T (ko)
RS (1) RS58082B1 (ko)
SI (2) SI3361725T1 (ko)
WO (1) WO2012176910A1 (ko)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010017199A2 (en) 2008-08-04 2010-02-11 Liquidpiston, Inc. Isochoric heat addition engines and methods
CN106028050B (zh) * 2011-05-16 2019-04-26 寰发股份有限公司 用于亮度和色度分量的样本自适应偏移的方法和装置
US20120294353A1 (en) 2011-05-16 2012-11-22 Mediatek Inc. Apparatus and Method of Sample Adaptive Offset for Luma and Chroma Components
EP4075799B1 (en) 2011-06-14 2024-04-10 LG Electronics Inc. Apparatus for encoding and decoding image information
JP5973434B2 (ja) 2011-06-23 2016-08-23 華為技術有限公司Huawei Technologies Co.,Ltd. 画像フィルタ装置、フィルタ方法および動画像復号装置
KR102104594B1 (ko) * 2011-06-24 2020-04-24 엘지전자 주식회사 영상 정보 부호화 및 복호화 방법
CA2837827C (en) * 2011-06-27 2019-01-15 Panasonic Corporation Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding-decoding apparatus
MX2014000046A (es) 2011-06-28 2014-02-17 Samsung Electronics Co Ltd Metodo de codificacion de video que utiliza ajustes de desplazamiento de comformidad clasificacion de pixel y aparato para ello, metodo de decodificacion de video y aparato para ello.
JP5907367B2 (ja) 2011-06-28 2016-04-26 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
JP6031736B2 (ja) * 2011-07-21 2016-11-24 富士ゼロックス株式会社 物体識別システム及びプログラム
GB201119206D0 (en) * 2011-11-07 2011-12-21 Canon Kk Method and device for providing compensation offsets for a set of reconstructed samples of an image
US9277194B2 (en) * 2011-11-08 2016-03-01 Texas Instruments Incorporated Method and apparatus for image and video coding using hierarchical sample adaptive band offset
RU2602986C2 (ru) 2012-01-17 2016-11-20 Инфобридж Пте. Лтд. Способ применения краевого смещения
JP6226863B2 (ja) * 2012-04-13 2017-11-08 三菱電機株式会社 画像符号化装置、画像復号装置、画像符号化方法及び画像復号方法
CA2864570A1 (en) * 2012-04-16 2013-10-24 Mediatek Inc. Method and apparatus for sample adaptive offset coding with separate sign and magnitude
KR102164698B1 (ko) * 2013-03-25 2020-10-14 광운대학교 산학협력단 입력 버퍼를 재사용하는 샘플 적응적 오프셋 처리 장치 및 샘플 적응적 오프셋 처리 장치의 동작 방법
US20140301447A1 (en) * 2013-04-08 2014-10-09 Research In Motion Limited Methods for reconstructing an encoded video at a bit-depth lower than at which it was encoded
US9674538B2 (en) * 2013-04-08 2017-06-06 Blackberry Limited Methods for reconstructing an encoded video at a bit-depth lower than at which it was encoded
US10334253B2 (en) * 2013-04-08 2019-06-25 Qualcomm Incorporated Sample adaptive offset scaling based on bit-depth
CN104184645B (zh) * 2013-05-27 2018-05-04 华为技术有限公司 一种生成操作请求的方法、设备及***
DK3005696T3 (da) * 2013-05-30 2023-07-31 Huawei Tech Co Ltd Forskudte dynamiske intervalbegrænsninger til kantforskudt sao-filtrering
US9300967B2 (en) 2013-06-19 2016-03-29 Apple Inc. Sample adaptive offset control
US10708588B2 (en) * 2013-06-19 2020-07-07 Apple Inc. Sample adaptive offset control
JP6328759B2 (ja) * 2013-07-15 2018-05-23 寰發股▲ふん▼有限公司HFI Innovation Inc. ビデオ符号化のサンプル適応オフセット処理の方法
US20150049821A1 (en) * 2013-08-16 2015-02-19 Qualcomm Incorporated In-loop depth map filtering for 3d video coding
JP2015076866A (ja) * 2013-10-11 2015-04-20 日本放送協会 画像符号化装置、画像復号装置、及びプログラム
JP6253406B2 (ja) * 2013-12-27 2017-12-27 キヤノン株式会社 画像符号化装置、撮像装置、画像符号化方法、及びプログラム
US9628822B2 (en) 2014-01-30 2017-04-18 Qualcomm Incorporated Low complexity sample adaptive offset encoding
CN110177283B (zh) * 2014-04-04 2021-08-03 北京三星通信技术研究有限公司 对像素标识进行处理的方法和装置
JP2015216626A (ja) * 2014-04-23 2015-12-03 ソニー株式会社 画像処理装置及び画像処理方法
JP2015216627A (ja) * 2014-04-23 2015-12-03 ソニー株式会社 画像処理装置及び画像処理方法
CN105409221B (zh) 2014-04-29 2020-03-06 微软技术许可有限责任公司 用于样本自适应偏移滤波的编码器侧决策
CN105208300B (zh) * 2014-06-23 2018-06-22 上海箩箕技术有限公司 图像传感器、非晶硅tft像素单元的读取电路及方法
CN104202533B (zh) * 2014-09-24 2019-05-21 中磊电子(苏州)有限公司 移动检测装置及移动检测方法
JP6269431B2 (ja) * 2014-10-10 2018-01-31 ソニー株式会社 画像処理装置、画像処理方法及び画像処理システム
KR20170078682A (ko) * 2014-11-04 2017-07-07 삼성전자주식회사 에지 타입의 오프셋을 적용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US10785475B2 (en) * 2014-11-05 2020-09-22 Mediatek Singapore Pte. Ltd. Method and apparatus of video coding with prediction offset
US10057587B2 (en) * 2015-01-31 2018-08-21 Qualcomm Incorporated Coding escape pixels for palette mode coding
MX2017011439A (es) 2015-03-10 2018-06-27 Liquidpiston Inc Motor rotatorio epitrocoidal de alta densidad de potencia y eficiencia.
US20170006283A1 (en) * 2015-06-30 2017-01-05 Microsoft Technology Licensing, Llc Computationally efficient sample adaptive offset filtering during video encoding
JP6094838B2 (ja) * 2015-08-31 2017-03-15 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
ES2844525B1 (es) * 2015-09-11 2022-07-05 Kt Corp Metodo para decodificar un video
KR20180064423A (ko) * 2015-11-04 2018-06-14 엘지전자 주식회사 영상 코딩 시스템에서 영상 디코딩 방법 및 장치
CN106817583B (zh) * 2015-12-02 2020-01-10 福州瑞芯微电子股份有限公司 一种hevc sao计算方法和装置
EP3220643A1 (en) * 2016-03-14 2017-09-20 Thomson Licensing Method and device for encoding at least one image unit, and method and device for decoding a stream representative of at least one image unit
JP6634936B2 (ja) * 2016-04-05 2020-01-22 富士通株式会社 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法、画像復号プログラムおよび画像伝送システム
US10812791B2 (en) * 2016-09-16 2020-10-20 Qualcomm Incorporated Offset vector identification of temporal motion vector predictor
EP3324543B1 (en) * 2016-11-18 2020-01-08 Nxp B.V. Adaptive filter and method of operating an adaptive filter
EP3324542B1 (en) 2016-11-18 2019-10-23 Nxp B.V. Adaptive filter with manageable resource sharing
KR20180074150A (ko) * 2016-12-23 2018-07-03 삼성전자주식회사 Sao 필터링을 포함하는 비디오 데이터의 부호화를 위한 방법 및 장치
KR20230085949A (ko) * 2016-12-27 2023-06-14 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
CN110114803B (zh) * 2016-12-28 2023-06-27 松下电器(美国)知识产权公司 三维模型分发方法、三维模型接收方法、三维模型分发装置以及三维模型接收装置
JP6769302B2 (ja) * 2016-12-28 2020-10-14 富士通株式会社 動画像符号化装置、動画像符号化方法、動画像符号化用コンピュータプログラム、動画像復号装置及び動画像復号方法ならびに動画像復号用コンピュータプログラム
KR20220127948A (ko) 2017-03-22 2022-09-20 한양대학교 산학협력단 적응적인 화소 분류 기준에 따른 인루프 필터링 방법
US11593918B1 (en) * 2017-05-16 2023-02-28 Apple Inc. Gradient-based noise reduction
US11631199B2 (en) * 2017-08-10 2023-04-18 Sharp Kabushiki Kaisha Image filtering apparatus, image decoding apparatus, and image coding apparatus
JP6992351B2 (ja) 2017-09-19 2022-01-13 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
US10728549B2 (en) * 2017-11-06 2020-07-28 Dolby Laboratories Licensing Corporation Adaptive loop filtering for high-dynamic range video
WO2019135294A1 (ja) 2018-01-05 2019-07-11 株式会社ソシオネクスト 符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム
JP7476104B2 (ja) * 2018-01-19 2024-04-30 インターデジタル ヴイシー ホールディングス, インコーポレイテッド 点群処理
WO2019167849A1 (en) * 2018-02-28 2019-09-06 Sharp Kabushiki Kaisha Systems and methods for partitioning regions of a picture for video coding using different coding unit sizes
US11216984B2 (en) * 2019-01-09 2022-01-04 Samsung Electronics Co., Ltd. Patch splitting for improving video-based point cloud compression performance
WO2020186084A1 (en) 2019-03-12 2020-09-17 Tencent America LLC Method and apparatus for color transform in vvc
CN110225339A (zh) * 2019-05-10 2019-09-10 上海德衡数据科技有限公司 一种hevc视频序列编解码加速方法
KR102655352B1 (ko) * 2019-08-22 2024-04-04 엘지전자 주식회사 영상 디코딩 방법 및 그 장치
US11140388B2 (en) * 2019-09-06 2021-10-05 Tencent America LLC Method and apparatus for non-linear loop filtering
CN113298843B (zh) * 2020-02-24 2024-05-14 中科寒武纪科技股份有限公司 数据量化处理方法、装置、电子设备和存储介质
WO2021200921A1 (ja) * 2020-03-31 2021-10-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US20230239504A1 (en) * 2020-06-02 2023-07-27 Sharp Kabushiki Kaisha Video decoding apparatus and video coding apparatus
EP4272446A1 (en) * 2020-12-29 2023-11-08 Innopeak Technology, Inc. Method and apparatus for extended precision weighted prediction for vvc high bit depth coding
EP4315863A1 (en) * 2021-03-30 2024-02-07 Innopeak Technology, Inc. Weighted prediction for video coding
EP4349016A1 (en) * 2021-06-03 2024-04-10 Innopeak Technology, Inc. Quantization level binarization in video coding

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4284265B2 (ja) 2004-11-02 2009-06-24 株式会社東芝 動画像符号化装置、動画像符号化方法、動画像復号化装置および動画像復号化方法
US7876833B2 (en) * 2005-04-11 2011-01-25 Sharp Laboratories Of America, Inc. Method and apparatus for adaptive up-scaling for spatially scalable coding
WO2007116551A1 (ja) 2006-03-30 2007-10-18 Kabushiki Kaisha Toshiba 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
WO2007114368A1 (ja) * 2006-03-30 2007-10-11 Kabushiki Kaisha Toshiba 画像符号化装置及び方法並びに画像復号化装置及び方法
WO2008049446A1 (en) 2006-10-25 2008-05-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Quality scalable coding
US7983496B2 (en) 2007-06-26 2011-07-19 Mitsubishi Electric Research Laboratories, Inc. Inverse tone mapping for bit-depth scalable image coding adapted to variable block sizes
US8331663B2 (en) 2007-06-28 2012-12-11 Qualcomm Incorporated Efficient image compression scheme to minimize storage and bus bandwidth requirements
US8208560B2 (en) * 2007-10-15 2012-06-26 Intel Corporation Bit depth enhancement for scalable video coding
KR101365444B1 (ko) 2007-11-19 2014-02-21 삼성전자주식회사 영상의 해상도의 조정을 통하여 동영상을 효율적으로부호화/복호화하는 방법 및 장치
US8750378B2 (en) 2008-09-23 2014-06-10 Qualcomm Incorporated Offset calculation in switched interpolation filters
KR101196920B1 (ko) 2009-04-08 2012-11-05 한국전자통신연구원 적응적 비트 심도 감소를 통한 부호화와 복호화 방법 및 그 장치
US20120251012A1 (en) 2009-12-18 2012-10-04 Tomohiro Ikai Image filter, encoding device, decoding device, and data structure
JP5513221B2 (ja) 2010-04-01 2014-06-04 岡本化学工業株式会社 保護層形成用組成物およびそれを用いた感光性平版印刷版
JP2011223302A (ja) 2010-04-09 2011-11-04 Sony Corp 画像処理装置と画像処理方法
CN101924938B (zh) * 2010-08-11 2012-09-05 上海交通大学 视频解码宏块预测与边界滤波中相邻块信息的处理方法
US9055305B2 (en) 2011-01-09 2015-06-09 Mediatek Inc. Apparatus and method of sample adaptive offset for video coding
ES2715782T3 (es) 2011-04-21 2019-06-06 Hfi Innovation Inc Procedimiento y aparato para un filtrado en bucle mejorado
JP5539258B2 (ja) 2011-04-25 2014-07-02 株式会社イトーキ
US9008170B2 (en) 2011-05-10 2015-04-14 Qualcomm Incorporated Offset type and coefficients signaling method for sample adaptive offset
JP5973434B2 (ja) 2011-06-23 2016-08-23 華為技術有限公司Huawei Technologies Co.,Ltd. 画像フィルタ装置、フィルタ方法および動画像復号装置

Also Published As

Publication number Publication date
US10440362B2 (en) 2019-10-08
KR20170116229A (ko) 2017-10-18
ES2788690T3 (es) 2020-10-22
EP3361725B1 (en) 2020-01-29
HRP20181975T1 (hr) 2019-01-25
EP4135322A1 (en) 2023-02-15
JP5973434B2 (ja) 2016-08-23
ES2699974T3 (es) 2019-02-13
CY1123096T1 (el) 2021-12-31
JP2018082463A (ja) 2018-05-24
PL2725797T3 (pl) 2019-01-31
US20180098067A1 (en) 2018-04-05
US9866833B2 (en) 2018-01-09
AU2017204165B2 (en) 2018-01-04
AU2012274326B2 (en) 2017-03-23
CA2840045A1 (en) 2012-12-27
AU2018202384A1 (en) 2018-04-26
JP7200320B2 (ja) 2023-01-06
US11089302B2 (en) 2021-08-10
KR20180085827A (ko) 2018-07-27
US20190045187A1 (en) 2019-02-07
KR20180015280A (ko) 2018-02-12
EP4199513A1 (en) 2023-06-21
EP3361725A1 (en) 2018-08-15
KR101785770B1 (ko) 2017-10-16
AU2019200704B2 (en) 2019-11-14
EP2725797B1 (en) 2018-08-29
US20170034511A1 (en) 2017-02-02
EP3720127A1 (en) 2020-10-07
US20180288414A1 (en) 2018-10-04
CA2840045C (en) 2019-10-22
SI2725797T1 (sl) 2018-12-31
KR102005212B1 (ko) 2019-07-29
WO2012176910A1 (ja) 2012-12-27
EP2725797A1 (en) 2014-04-30
AU2018202384B2 (en) 2018-11-01
AU2012274326A1 (en) 2014-02-06
JP2019126077A (ja) 2019-07-25
CN103636210A (zh) 2014-03-12
KR101931675B1 (ko) 2018-12-21
US10477209B2 (en) 2019-11-12
AU2019200704A1 (en) 2019-02-21
JP2023024631A (ja) 2023-02-16
HUE049411T2 (hu) 2020-10-28
EP4135323A1 (en) 2023-02-15
PT3361725T (pt) 2020-05-06
KR101826215B1 (ko) 2018-03-22
HRP20200675T1 (hr) 2020-07-24
DK2725797T3 (da) 2019-01-02
US10764580B2 (en) 2020-09-01
JP6780046B2 (ja) 2020-11-04
US20230370593A1 (en) 2023-11-16
CN106851318A (zh) 2017-06-13
US9497455B2 (en) 2016-11-15
JP2016201824A (ja) 2016-12-01
JP2021005904A (ja) 2021-01-14
US20190349583A1 (en) 2019-11-14
KR20180136585A (ko) 2018-12-24
US20210352283A1 (en) 2021-11-11
JP6272402B2 (ja) 2018-01-31
RS58082B1 (sr) 2019-02-28
US20140140416A1 (en) 2014-05-22
SI3361725T1 (sl) 2020-07-31
US10390012B2 (en) 2019-08-20
JP6496802B2 (ja) 2019-04-10
PT2725797T (pt) 2018-12-05
HUE041898T2 (hu) 2019-06-28
AU2017204165A1 (en) 2017-07-13
CN103636210B (zh) 2016-12-07
US20200404265A1 (en) 2020-12-24
KR101881869B1 (ko) 2018-07-26
LT3361725T (lt) 2020-07-10
DK3361725T3 (da) 2020-04-27
JP6957715B2 (ja) 2021-11-02
EP2725797A4 (en) 2015-06-10
CN106604038A (zh) 2017-04-26
JP2022017267A (ja) 2022-01-25
CN106851318B (zh) 2019-01-08
PL3361725T3 (pl) 2020-07-13
US11765350B2 (en) 2023-09-19
JPWO2012176910A1 (ja) 2015-02-23
CN106604038B (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
JP7200320B2 (ja) 画像フィルタ装置、フィルタ方法および動画像復号装置
WO2013046990A1 (ja) オフセット復号装置、オフセット符号化装置、画像フィルタ装置、および、データ構造
JP2013138395A (ja) 画像フィルタ装置、画像復号装置、画像符号化装置、および、データ構造

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right