KR20180014846A - 화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체 - Google Patents

화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체 Download PDF

Info

Publication number
KR20180014846A
KR20180014846A KR1020187002773A KR20187002773A KR20180014846A KR 20180014846 A KR20180014846 A KR 20180014846A KR 1020187002773 A KR1020187002773 A KR 1020187002773A KR 20187002773 A KR20187002773 A KR 20187002773A KR 20180014846 A KR20180014846 A KR 20180014846A
Authority
KR
South Korea
Prior art keywords
block
cpu
decoding
size
encoding
Prior art date
Application number
KR1020187002773A
Other languages
English (en)
Other versions
KR101888515B1 (ko
Inventor
마사아키 코바야시
Original Assignee
캐논 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 캐논 가부시끼가이샤 filed Critical 캐논 가부시끼가이샤
Publication of KR20180014846A publication Critical patent/KR20180014846A/ko
Application granted granted Critical
Publication of KR101888515B1 publication Critical patent/KR101888515B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/02Colour television systems with bandwidth reduction
    • 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
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]

Abstract

화상을 복수의 사이즈의 분할 블록으로 분할하고, 분할 블록단위로 파라미터 값에 따라 화질을 제어하면서 그 화상을 부호화하는 화상 부호화장치의 화상 부호화방법은, 부호화되는 대상 블록의 블록 사이즈를 취득하는 단계; 상기 파라미터 값을 제어하는데 사용된 최소 블록 사이즈를 취득하는 단계; 상기 대상 블록의 분할 상태를 취득하는 단계; 상기 파라미터 값을 취득하는 단계; 상기 대상 블록의 분할 상태에 따라 상기 대상 블록이 분할된 것인가 아닌가를 판정하는 단계; 상기 대상 블록의 상기 블록 사이즈가 상기 최소 블록 사이즈 이상인지를 판정하는 단계; 상기 대상 블록의 상기 블록 사이즈가 상기 최소 블록 사이즈와 동일한가 아닌가를 판정하는 단계; 및 상기 취득된 상기 파라미터 값을 부호화하는 단계를 포함한다.

Description

화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체{IMAGE CODING APPARATUS, IMAGE CODING METHOD, IMAGE DECODING APPARATUS, IMAGE DECODING METHOD, AND STORAGE MEDIUM}
본 발명은 화상 부호화장치, 화상 부호화방법 및 프로그램, 화상복호장치, 화상복호방법 및 프로그램에 관한 것이다. 특히, 본 발명은, 화상의 부호화에 있어서의 화질 파라미터의 산출, 부호삽입에 관한 화질 파라미터 부호화방법 및 복호방법에 관한 것이다.
동화상의 압축 기록 방법으로서, H.264/동화상 전문가 그룹(MPEG)-4 개선 비디오 부호화(AVC), 이하, H.264가 알려져 있다. H.264는 1세그먼트(segment) 지상파 디지털 방송 및 그 밖의 응용에 널리 사용된다. H.264는, 종래의 부호화방식에 더해서 4×4화소단위로 정수변환을 사용하여, 복수의 인트라 예측 능력을 제공하는 것을 특징으로 한다(ISO/IEC14496-10:2004 Information technology--Coding of audio-visual objects--Part10:Advanced Video Coding, ITU-TH.264 Advanced video coding for generic audiovisual services).
MEPG-2와 H.264로 대표되는 직교변환과 양자화를 사용한 부호화방식에서는, 소정의 블록 화상을 직교변환 및 양자화 함에 의해 양자화 계수 데이터를 생성하고 있다. 양자화 파라미터라고 불리는 화질제어 파라미터를 사용하여서 양자화 함에 의해 화질을 제어한다. 구체적으로는, 작은 양자화 파라미터 값을 사용한 양자화는, 화질을 향상시키지만 부호량이 커진다. 큰 양자화 파라미터 값을 사용한 양자화는, 화질을 저하시키지만 부호량이 줄게 된다. 목표 부호량에 따라, 최적의 양자화 파라미터 값을 선택하여 부호화한다. 이러한 제어를, 레이트(rate) 제어라고 부른다. TM5를 포함한 여러 가지의 레이트 제어방식이 제안되어 있다. 양자화 후, 양자화 계수 데이터는 가변길이 부호화에 의해 부호화 계수 데이터가 생성된다.
또한, 양자화 파라미터도 부호화되어, 양자화 파라미터 부호가 생성된다. 예를 들면, H.264에 있어서는, 대상 블록 앞의 블록을 양자화하는데 사용된 양자화 파라미터와 그 대상 블록을 양자화하는데 사용된 양자화 파라미터와의 차분값을 사용한다. 본 차분값은 양자화 파라미터 델타(QP_DELTA)라고 불린다. 계산된 QP_DELTA는, Golomb부호화 또는 산술 부호화에 의해 QP_DELTA부호로 부호화된다. 예를 들면, Golomb부호화에 의한 QP_DELTA부호는, 차분값이 0인 경우도 1비트의 부호를 발생한다. 이렇게 하여 생성된 부호화 계수 데이터와 양자화 파라미터 부호는 복호기에 전송된다. 복호기는 부호화 계수 데이터와 양자화 파라미터 부호를 복호해서 양자화 계수 데이터와 양자화 파라미터를 생성한다. 그리고, 복호기는, 양자화 파라미터를 사용해서 양자화 계수 데이터를 역양자화와 역직교 변환함으로써, 복호화상을 생성한다.
MPEG-2와 H.264에서의 하나의 처리 단위는, 매크로블록이라고 불린다. 매크로블록은, 화상을 격자패턴으로 구분한 16×16화소의 격자 블록이다. 직교변환하는 블록의 사이즈를 화소단위로 표현하면, MPEG-2에서는 8×8, H.264에서는 8×8 또는 4×4가 된다. 즉, 하나의 매크로블록은, 복수의 직교변환 블록을 포함한다. MPEG-2와 H.264에서는, 매크로블록 단위로 양자화 파라미터를 제어(레이트 제어)할 수 있다. 동일한 매크로블록에 포함된 직교변환 블록은, 같은 양자화 파라미터로 양자화된다. H.264의 개량 기술에 있어서는, 화상을 격자패턴으로 분할한 격자 블록을 최대 부호화 트리 블록(LCTB:Largest Coding Tree Block)이라고 부른다. LCTB의 사이즈는 64×64화소다. LCTB는, 영역 4진 트리구조를 사용해서 부호화 트리 블록(CTB)이라고 불리는 보다 작은 사이즈의 블록들로 분할된다. 트리구조의 데이터를 탐색 또는 입출력을 행하기 위해서는, 주사순서를 특정할 필요가 있다. CTB는, 변환유닛(TU:Transform Unit)라고 불리는 직교변환 블록을 포함한다. 이 TU도 영역 4진 트리구조를 사용하여 보다 작은 사이즈로 분할된다. 각 유닛은, 분할 플래그를 갖는다. 분할 플래그가 참(True)인 블록은, 종횡을 1/2사이즈로 4개의 분할 블록을 내포하도록 구성되고, 분할 플래그가 거짓(False)인 블록은, 분할 블록을 내포하지 않는 대신에 블록의 실제 데이터를 갖는다. 즉, 비분할의 TU만이, 화상 블록의 계수 데이터를 갖는다. 하나의 LCTB(격자 블록)는, 계층구조적으로 복수의 다른 직교변환 사이즈의 블록을 포함한다. 블록을 분할할지의 여부는, 여러 가지 방법으로 판정할 수 있다. 하나의 판정 방법은, 라그랑지 승수법(Lagrange multipliers)을 사용해서 블록의 코스트를 계산하고, 보다 코스트가 낮은 블록의 분할 방법을 선택하는 것을 포함하는 일본국 공개특허공보 특개 2005-191706호에 기재되어 있다.
화상 부호화방법은 화상을 격자패턴으로 분할한 격자 블록 단위로 화상을 부호화하는 것을 포함한다고 한다. 격자 블록 사이즈가 크고, 격자 블록 단위로 화질제어를 할 경우, 화질이 다른 블록간의 경계가 눈에 띄어도 된다.
화질 파라미터의 변화의 유무에 관계없이 화질 파라미터를 부호화해서 전송한다. 격자 블록을 보다 작은 단위로 세부분할해서 화질을 제어하는 경우, 화질 파라미터의 부호에 의해 생긴 오버헤드의 문제가 있다.
본 발명은, 적정한 블록 단위로 화질의 제어가 가능해지고, 블록의 경계를 보다 작게 함에 의해서 그 경계가 눈에 띄기 어려운 화상을 생성하는 것을 목적으로 한다.
본 발명의 일 국면에 의하면, 화상 데이터를 부호화하는 화상 부호화장치는, 화상에 포함되는 블록의 블록 사이즈를 판정하는 판정 유닛; 및 복수의 블록에 대한 양자화 파라미터가 부호화되지 않는 경우에, 상기 복수의 블록의 소정의 블록의 처리에서, 양자화 파라미터에 관한 최소 사이즈를 갖는 영역에 포함되는, 상기 복수의 블록에 대한 상기 양자화 파라미터를 부호화하는 부호화 유닛을 구비한다.
(발명의 효과)
본 발명의 예시적 실시예에 의하면, 적정한 블록 단위로 화질의 제어가 가능해지고, 블록의 경계를 보다 작게 함에 의해서 그 경계가 눈에 띄기 어려운 화상을 생성하는 것이 가능하다. 모든 직교변환 블록에 대하여 화질제어 파라미터 부호를 삽입할 필요가 없기 때문에, 양자화 파라미터 부호량도 필요이상으로 증가하지 않을 것이다.
본 발명의 또 다른 특징들 및 국면들은, 첨부도면을 참조하여 이하의 예시적 실시예들의 상세한 설명으로부터 명백해질 것이다.
본 명세서에 포함되고 그 일부를 구성하는 첨부도면들은, 본 발명의 예시적 실시예들, 특징들 및 국면들을 예시하고, 이 설명과 함께, 본 발명의 원리를 설명하는 역할을 한다.
도 1은 본 발명의 제1 예시적 실시예에 따른 화질 파라미터의 부호화방법을 나타내는 흐름도다.
도 2는 본 발명의 제2 예시적 실시예에 따른 화질 파라미터의 복호방법을 나타내는 흐름도다.
도 3은 본 발명의 제3 예시적 실시예에 따른 화질 파라미터의 부호화방법을 나타내는 흐름도다.
도 4는 본 발명의 제4 예시적 실시예에 따른 화질 파라미터의 복호방법을 나타내는 흐름도다.
도 5는 본 발명의 제5 예시적 실시예에 따른 화질 파라미터의 부호화방법을 나타내는 흐름도다.
도 6은 본 발명의 제6 예시적 실시예에 따른 화질 파라미터의 복호방법을 나타내는 흐름도다.
도 7은 격자 블록의 분할 예를 나타낸 도면이다.
도 8a는 격자 블록의 분할과 분할 플래그의 예를 나타낸 도면이다.
도 8b는 격자 블록의 분할과 분할 플래그의 예를 나타낸 도면이다.
도 8c는 격자 블록의 분할과 분할 플래그의 예를 나타낸 도면이다.
도 8d는 격자 블록의 분할과 분할 플래그의 예를 나타낸 도면이다.
도 9는 본 발명의 예시적 실시예에 따른 부호화방법 및 복호방법을 실행하는 하드웨어 구성 예를 나타낸 도면이다.
도 10은 본 발명의 예시적 실시예에 따른 부호화방법을 실행하는 하드웨어 구성 예를 나타낸 도면이다.
도 11은 본 발명의 예시적 실시예에 따른 복호방법을 실행하는 하드웨어 구성 예를 나타낸 도면이다.
도 12a는 분할 블록의 화질제어의 예를 나타낸 도면이다.
도 12b는 분할 블록의 화질제어의 예를 나타낸 도면이다.
도 12c는 분할 블록의 화질제어의 예를 나타낸 도면이다.
도 13은 프레임의 부호화처리 방법을 나타내는 흐름도다.
도 14는 프레임의 복호처리 방법을 나타내는 흐름도다.
도 15는 부호화 프레임의 데이터 구조를 나타낸 도면이다.
도 16은 격자 블록의 부호화 데이터의 데이터 구조를 나타낸 도면이다.
도 17은 분할 블록의 부호화방법의 상세를 나타내는 흐름도다.
도 18은 분할 블록의 복호방법의 상세를 나타내는 흐름도다.
도 19는 상기 제1 예시적 실시예에 따른 화질 파라미터의 산출 방법을 나타내는 흐름도다.
도 20은 양자화 파라미터를 부수되게 하는 분할 블록을 나타낸 도면이다.
도 21a는 프로파일, 레벨, 및 화질 제어의 최소 블록 사이즈간의 관계를 나타내는 도면이다.
도 21b는 프로파일, 레벨, 및 화질 제어의 최소 블록 사이즈간의 관계를 나타내는 도면이다.
도 21c는 프로파일, 레벨, 및 화질 제어의 최소 블록 사이즈간의 관계를 나타내는 도면이다.
도 22는 화질 제어의 최소 블록 사이즈를 산출하는 과정을 나타내는 흐름도다.
도 23a는 시퀀스의 부호화 데이터의 구조를 나타내는 도면이다.
도 23b는 시퀀스의 부호화 데이터의 구조를 나타내는 도면이다.
도 24는 본 발명의 제7 예시적 실시예에 따른 화상 부호화 방법을 나타내는 흐름도다.
도 25는 본 발명의 제8 예시적 실시예에 따른 화상 복호방법을 나타내는 흐름도다.
이하, 본 발명의 각종 예시적 실시예, 특징 및 국면을 도면을 참조하여 상세히 설명한다.
본 발명의 제1 예시적 실시예에 따른 분할 블록의 부호화방법에 대해서 도 1, 도 9, 도 13, 도 17 및 도 19를 참조하여 설명한다.
도 9는, 본 예시적 실시예에 따른 부호화방법을 포함한 부호화 프로그램을 실행하기 위한 구성을 나타낸다. 본 부호화 프로그램은, 하드 디스크 장치(이하, HDD로 약칭한다)(903)에 기록되어 있다. 부호화 프로그램은, 기동시에 랜덤 액세스 메모리(RAM)(902)에 로드(load)된다. 이하에 표시되는 단계들을 중앙처리장치(CPU)(901)가 실행해서 화상 부호화처리를 행한다. 본 예시적 실시예에서는, 입력 화상 데이터는 HDD(903)에 격납되고, 거기로부터 판독된다. 출력 데이터는, HDD(903)에 기록된다.
이상의 구성의 부호화 동작에 관하여 설명한다. 도 13은, 프레임 전체를 부호화하는 과정을 설명한 흐름도다. 본 예시적 실시예에서는 화면을 64×64화소로 이루어진 격자 블록의 격자 패턴으로 각각 분할하고 순차로 격자 블록단위로 처리하는 경우를 다룬다. 격자 블록들은, 화면내에서 래스터(raster) 스캔순으로 처리된다. 이때, 격자 블록의 사이즈는 64에 한정되지 않는다.
단계S1301에서, CPU(901)는, 화질제어 최소 블록 사이즈를 설정한다. 단계S1302에서, CPU(901)는, 화질제어 최소 블록 사이즈를 부호화한다. 단계S1303에서, CPU(901)는, 프레임 헤더 정보를 부호화한다. 단계S1304에서, CPU(901)는, 화면좌상의 제1의 격자 블록을 대상 격자 블록으로서 설정한다. 단계S1305에서, CPU(901)는, 대상격자 블록에 대하여, 예측 처리를 실행하여, 잔차 데이터를 생성한다. 단계S1306에서, CPU(901)는, 대상격자 블록에 대하여, 잔차 데이터를 부호화하는 과정을 실행한다. 단계S1307에서, CPU(901)는, 프레임내의 격자 블록이 모두 처리되었는지를 판정한다. 단계S1308에서, CPU(901)는, 다음의 격자 블록을 대상 격자 블록으로서 설정한다.
이하, 이 단계들의 과정에 대하여 설명한다. 단계S1301에서, CPU(901)는, 화질제어 최소 블록 사이즈라고 불리는 파라미터를 설정한다. 본 예시적 실시예는, 화질의 제어가 직교변환계수를 양자화하는데 사용되는 양자화 파라미터에 의해 제어되는 것으로 하여 설명한다. 화질제어 최소 블록 사이즈는, 16×16화소이어서, 화질제어 최소 블록 사이즈 정보의 값은 16이다. 그러나, 이 값은 16에 한정되지 않는다. 프로그램의 개발자가 프로그램내에 고정 값을 삽입하여도 된다. 유저가 상기 프로그램의 유저 인터페이스를 거쳐서 값을 지정한다. 프로그램 자신이 최적값을 산출해서 설정해도 된다. 프로그램은, 입력 화상에 따라 최적값을 산출하여도 된다. 예를 들면, 입력 화상이 640×480화소보다도 클 경우에는, 그 프로그램은, 화질제어 최소 블록 사이즈를 16만큼 큰 값으로 설정하여도 된다. 해상도가 640×480화소 이하인 경우에는, 그 프로그램은 화질제어 최소 블록 사이즈를 8만큼 작은 값으로 설정하여도 된다.
단계S1302에서, CPU(901)는, 단계S1301에서 설정한 화질제어 최소 블록 사이즈를 부호화해서 화질제어 최소 블록 사이즈 부호를 생성한다. 예를 들면, CPU(901)는, 64의 화질제어 최소 블록 사이즈 정보를 표현하는 인덱스를 "0", 마찬가지로, 32, 16 및 8을 각각 "1", "2" 및 "3"으로서 제공하여도 된다. 그리고, CPU(901)는, 그 인덱스를 의미하는 고정길이의 부호를 생성하여도 된다.
단계S1303에서, CPU(901)는, 프레임 헤더 정보를 생성하고 부호화한다. CPU(901)는, 프레임 헤더 정보의 일부로서, 단계S1302에서 생성한 화질제어 최소 블록 사이즈 부호를 포함한다. 이때, 본 예시적 실시예에서는 프레임 헤더에 화질제어 최소 블록 사이즈 부호를 포함하는 상기 경우를 다루지만, 이것은 제한되지 않는다. 화질제어 최소 블록 사이즈 부호는, 시퀀스, 픽처, 슬라이스, 또는 최고 계층레벨의 블록에 포함되어도 된다.
단계S1304에서, CPU(901)는, 처리 대상이 되는 제1 대상격자 블록으로서 상기 화면 좌상의 격자 블록을 설정한다.
단계S1305에서, CPU(901)는, 프레임내 예측과 움직임 보상 예측을 사용해서 예측 화상을 생성하고, 대상격자 블록의 화소로부터 잔차 데이터를 생성한다. 프레임내 예측은, 대상격자 블록의 주변을 참조함으로써 예측 화상을 생성하는 것을 포함한다. 움직임 보상 예측은, 다른 프레임의 화소를 참조함으로써 예측 화상을 생성하는 것을 포함한다. 예시들은, 상기의 H.264부호화방식에서 채용된 인트라 예측과 움직임 보상 예측을 포함한다. CPU(901)는, 생성된 프레임내 예측 모드 및/또는 움직임 벡터를 부호화하여, 격자 블록 헤더 정보부호로서 출력 버퍼에 출력한다.
단계S1306에서, CPU(901)는, 대상격자 블록에 대해서, 도 17과 함께 설명하는 블록내의 잔차 데이터를 부호화하는 과정을 실행한다. 도 17의 상세한 것은 후술한다.
단계S1307에서, CPU(901)는, 프레임내의 격자 블록이 모두 처리되었는지를 판정한다. 격자 블록이 모두 처리되었을 경우(단계S1307에서 YES), CPU(901)는, 프레임 전체의 부호화처리를 종료한다. 격자 블록이 모두 처리되지 않은 경우에는(단계S1307에서 NO), CPU(901)는, 단계S1308을 실행한다.
단계S1308에서, CPU(901)는, 래스터 스캔순으로 다음 격자 블록을 대상 격자 블록으로서 설정하고, 단계S1305에 돌아간다.
도 17은, 단계S1306의 상세한 흐름도다. 단계S1306에서, CPU(901)는, 계층구조적으로 복수의 다른 사이즈의 직교변환 블록을 부호화하고, 화질제어 파라미터 부호를 포함하는 부호화 데이터를 생성한다. 구체적으로는, CPU(901)는, 화질제어 최소 블록 사이즈, 블록 사이즈 데이터와 블록의 잔차 데이터에 의거하여, 블록 분할, 직교변환 및 양자화를 행한다. 또한, 그 흐름도는, 블록 분할 플래그 부호, 부호화 계수 데이터, 및 화질 파라미터의 갱신에 관한 QP_DELTA부호를 생성하는 분할 블록의 부호화의 처리를 나타낸다. 본 예시적 실시예는, 계층적 구조화되는 영역 4진 트리구조를 사용한다. 최고 계층적 레벨에서의 블록은 64×64화소의 격자 블록이다. 분할 처리에 의해 그 레벨이 내려감에 따라, 32×32화소, 16×16화소, 및 8×8화소만큼 작은 블록이 처리될 수 있다. 상기 영역 4진 트리 기반의 블록 분할 구조는, 블록 분할 플래그를 스트림에 삽입하는 것에 의해, 복호기측에 전송될 수 있다.
단계S1700에서, CPU(901)는, 대상 블록을 분할하는 경우와 하지 않은 경우의 코스트를 산출한다. 단계S1701에서, CPU(901)는, 대상 블록을 분할할지를 판정한다. 단계S1702에서, CPU(901)는, 블록 분할 플래그를 거짓(false)으로서 부호화하여 출력한다. 단계S1703에서, CPU(901)는, 화질 파라미터를 산출하는 과정을 실행한다. 단계S1704에서, CPU(901)는, 직교변환, 양자화 및 가변길이 부호화를 실행한다. 단계S1705에서, CPU(901)는, 화질 파라미터를 부호화하는 과정을 실행한다. 단계S1706에서, CPU(901)는, 부호화 데이터를 소트(sort)하여, 출력 버퍼에 출력한다. 단계S1707에서, CPU(901)는, 블록 분할 플래그를 참(true)으로서 부호화하여, 출력한다. 단계S1708에서, CPU(901)는, 화질 파라미터를 산출하는 과정을 실행한다. 단계S1709에서, CPU(901)는, 화질 파라미터를 부호화하는 과정을 실행한다. 단계S1710에서, CPU(901)는, 내포된 분할 블록을 처리한다.
이하, 이 단계들의 과정에 관하여 설명한다. 단계S1700에서, CPU(901)는, 블록을 분할하는 경우와 분할하지 않은 경우의 코스트를 산출한다. 그 코스트는 전술한 라그랑지 승수법 이외, 화상의 특성, 통계량 및 예측된 부호길이를 사용하여 산출되어도 된다.
단계S1701에서, CPU(901)는, 단계S1700에서 산출된, 분할하는 경우의 코스트와 분할하지 않은 경우의 코스트를 비교한다. 블록을 분할하는 경우의 코스트가 분할하지 않은 경우보다 낮으면(단계S1701에서 YES), CPU(901)는, 그 결과를 참이라고 판정한다. 그렇지 않으면(단계S1701에서 NO), CPU(901)는, 그 결과를 거짓이라고 판정한다. 단계S1701의 판정 결과가 거짓일 경우에는(단계S1701에서 NO), CPU(901)는, 단계S1702 내지 단계S1706을 실행한다. 단계S1701의 판정 결과가 참인 경우에는(단계S1701에서 YES), CPU(901)는, 단계S1707 내지 단계S1710을 실행한다.
우선, 블록 분할을 행하지 않는 쪽의 코스트가 작은 경우에 관하여 설명한다. 단계S1702에서, CPU(901)는, 블록 분할 플래그를 거짓으로 하여 부호화한다. CPU(901)는, 1비트의 값 0을 할당해서 부호화하는 것이 일반적이지만, 이것에 한정되지 않는다.
단계S1703에서, CPU(901)는, 도 19에 나타낸 화질 파라미터 산출 과정을 실행하여, 화질 파라미터를 산출한다. 도 19의 상세한 것은 후술한다.
단계S1704에서, CPU(901)는, 잔차 데이터의 직교변환, 양자화 및 가변길이 부호화를 실행하여, 부호화 계수 데이터를 생성한다. 직교변환은 이산 코사인 변환(DCT)으로 실현된다. 양자화는, 단계S1703에서 산출한 화질 파라미터를 이용해서 행해진다. CPU(901)는, 후술하는 도 19에 나타낸 화질 파라미터 산출 과정에 의해 새로운 화질 파라미터가 산출되지 않았을 경우에는, 이전의 양자화에 이용한 화질 파라미터 값을 그대로 이용하여서, 양자화를 행한다. 가변길이 부호화에 관해서, CPU(901)는, 허프만(Huffman) 부호화 및 산술부호화를 사용하여도 된다. 이러한 부호화 기술들은, 전술한 H.264와 같은 방법들을 사용함으로써 실현될 수 있다.
단계S1705에서, CPU(901)는, 화질 파라미터 부호화 과정을 실행한다. 그 화질 파라미터 부호화 과정은, 도 1을 참조하여 상세히 후술한다.
단계S1706에서, CPU(901)는, 블록 분할 플래그 부호, QP_DELTA부호, 및 부호화 계수 데이터를 소트하여, 이 순서로 출력 버퍼에 출력한다. 출력해야 할 부호화 데이터가 존재하지 않은 경우에, CPU(901)는, 기존의 부호화 데이터만을 소트하여 출력한다. 도 16은 그 부호순의 일례를 나타낸다.
이제, 블록 분할을 행하는 쪽의 코스트가 작은 경우에 관하여 설명한다. 단계S1707에서, CPU(901)는, 블록 분할 플래그를 참으로 하여 부호화한다. CPU(901)는, 1비트의 값 1을 할당해서 부호화하는 것이 일반적이지만, 이것에 한정되지 않는다.
단계S1708에서, CPU(901)는, 후술하는 도 19에 나타낸 화질 파라미터의 산출 과정을 실행하여서, 화질 파라미터를 산출한다.
단계S1709에서, CPU(901)는, 단계S1705와 같이 화질 파라미터 부호화 과정을 실행한다. 화질 파라미터 부호화 과정은 도 1을 참조하여 후술한다.
단계S1710에서, CPU(901)는, 내포하는 모든 분할 블록에 대한, 즉, 계층적으로 이후의 레벨에 내포된 4개의 분할 블록(좌상, 우상, 좌하, 우하)을 대상에 대한, 본 과정을 재귀적으로 실행한다. 분할 블록 각각의 사이즈는, 원래의 대상 블록의 높이와 폭으로 1/2이다. 대상 블록 사이즈는 서서히 작아진다. 이 재귀처리는, 8×8화소만큼 작은 블록 사이즈까지 행해져도 된다. 이러한 재귀처리에 의해, 격자 블록은 영역 4진 트리구조로 연속적으로 분할된다. 예를 들면, 격자 블록이 도 7에 나타낸 것처럼 분할된다고 한다. 블록 분할의 유무를 나타내는 분할 플래그는, 대응한 블록을 분할 경우 1, 분할하지 않은 경우 0을 의미한다. 그 후, 분할 블록마다 분할 플래그는, 도 8a, 8b, 8c 및 8d와 같이 표현된다. 도 8a, 8b, 8c 및 8d는, 각각, 64×64화소, 32×32화소, 16×16화소, 및 8×8화소의 레벨과 블록을 나타낸다. 수치는 분할 플래그를 나타낸다. "-"은 플래그가 필요하지 않은 것을 나타낸다. 괄호안의 수치는, 구조 순서를 나타낸다. 본 예시적 실시예에서는, 구조순이란, 블록 단위에서는 좌상, 우상, 좌하 및 우하의 순서라고 말한다. 레벨 단위에서는, 구조순이란, 영역 4진 트리구조의 주사의 순방향 순서라고 말한다. 분할 플래그 부호, QP_DELTA부호, 및 부호화 계수 데이터의 세트는, 구조순으로 격납된다. 8×8화소의 블록이 더 이상 분할되지 않으므로, 분할 플래그는 이 블록에 대해 설정되지 않는다. 분할 플래그가 1을 갖는 블록은, 계수 데이터를 갖는 작은 사이즈의 분할 블록으로 세부분할되므로 계수 데이터 자신을 갖지 않는다. 스트림은, 후술되는 도 16에 나타나 있는 바와 같이, 각각의 분할 블록의 부호화 정보는 상기 구조순으로 배치되는 데이터 구조를 갖는다. 각 분할 블록의 부호화 정보는, 분할 플래그 부호, QP_DELTA부호, 및/또는 분할 블록의 계수 데이터로 이루어진 세트를 포함한다.
도 1은, 단계S1705 및 단계S1709에서 실행된 화질 파라미터 부호화 과정의 상세한 흐름도다. 단계S101에서, CPU(901)는, 대상 블록 사이즈를 취득한다. 단계S102에서, CPU(901)는, 화질제어 최소 블록 사이즈를 취득한다. 단계S103에서, CPU(901)는, 그 블록의 분할 상태를 취득한다. 단계S104에서, CPU(901)는, 대상 블록이 분할되어 있는지를 판정한다. 단계S105에서, CPU(901)는, 대상 블록 사이즈가 화질제어 최소 블록 사이즈 이상인지를 판정한다. 단계S106에서, CPU(901)는, 대상 블록 사이즈와 화질제어 최소 블록 사이즈가 같은지를 판정한다. 단계S107에서, CPU(901)는, 화질 파라미터를 취득한다. 단계S108에서, CPU(901)는, 화질 파라미터를 부호화한다.
이하, 이 단계들의 과정에 관하여 설명한다. 단계S101에서, CPU(901)는, 대상 블록 사이즈를 취득한다. 도 17의 과정으로부터 본 과정을 호출한 직후에, 처리 대상 블록은 격자 블록 자신이다. 이렇게 하여, 대상 블록 사이즈의 값은 64다. 이후, 재귀적인 호출로 인해, 영역 4진 트리구조의 레벨이 내려갈 때마다, 그 사이즈 값은, 32, 16 및 8로 변경된다.
단계S102에서, CPU(901)는, 외부로부터 설정된 화질제어 최소 블록 사이즈를 취득한다. 본 예시적 실시예에서는, 화질제어 최소 블록 사이즈의 값은 16이다. 부호화하는 대상 블록이 분할되어 있는가의 여부를, 도 17의 단계S1700 및 단계S1701에서 판정한다. 단계S103에서, CPU(901)는, 그 분할판정의 결과를 나타내는 분할 상태정보를 취득한다.
단계S104에서, CPU(901)는, 취득한 대상 블록의 분할 상태를 참조하고, 대상 블록이 분할되어 있는지를 판정한다. 그 대상 블록이 분할되었을 경우에는(단계S104에서 YES), CPU(901)는 단계S106을 실행한다. 대상 블록이 분할되지 않은 경우에는(단계S104에서 NO), CPU(901)는 단계S105를 실행한다.
단계S105에서, CPU(901)는 대상 블록 사이즈가 화질제어 최소 블록 사이즈이상인지를 판정한다. 대상 블록 사이즈가 이상이라고 판정되었을 경우에는(단계S105에서 YES), CPU(901)는 단계S107이후를 실행한다. 그렇지 않다고 판정되었을 경우에는(단계S105에서 NO), CPU(901)는 화질 파라미터의 부호화처리를 종료한다.
단계S106에서, CPU(901)는 대상 블록 사이즈가 화질제어 최소 블록 사이즈와 같은 것인가 아닌가를 판정한다. 대상 블록 사이즈가 화질제어 최소 블록 사이즈와 같다고 판정되었을 경우에는(단계S106에서 YES), CPU(901)는 단계S107 및 단계S108을 실행한다. 그렇지 않다고 판정되었을 경우에는(단계S108에서 NO), CPU(901)는 화질 파라미터의 부호화처리를 종료한다.
단계S107에서, CPU(901)는 화질 파라미터를 취득한다. 이 화질 파라미터는, 도 17의 단계S1703 또는 단계S1708에서 결정된 것이다. 단계S108에서, CPU(901)는 화질 파라미터를 부호화한다. 본 예시적 실시예에서, CPU(901)는 이전의 블록의 부호화에 사용한 화질 파라미터와, 단계S107에서 취득된 화질 파라미터간의 차분값을 QP_DELTA값으로서 구한다. CPU(901)는 구해진 QP_DELTA값을 Golomb부호화한 QP_DELTA부호가 화질 파라미터 부호가 된다. 본 예시적 실시예에서는, QP_DELTA가 Golomb부호화에 의해 부호화된다. 그러나, 이것은 제한되지 않는다. QP_DELTA는, 산술 부호화 또는 다른 가변길이 부호화에 의해 부호화되어도 된다. 이 화질 파라미터는, 다음의 QP_DELTA값을 산출하는데 사용된다.
도 19는, 단계S1703과 단계S1708에서 실행된 화질 파라미터 산출 과정의 상세한 흐름도다.
단계S1901에서, CPU(901)는 대상 블록 사이즈를 취득한다. 단계S1902에서, CPU(901)는 화질제어 최소 블록 사이즈를 취득한다. 단계S1903에서, CPU(901)는 블록의 분할 상태를 취득한다. 단계S1904에서, CPU(901)는 대상 블록이 분할되어 있는지를 판정한다. 단계S1905에서, CPU(901)는 대상 블록 사이즈가 화질제어 최소 블록 사이즈이상인지를 판정한다. 단계S1906에서, CPU(901)는 대상 블록 사이즈와 화질제어 최소 블록 사이즈가 같은지를 판정한다. 단계S1907에서, CPU(901)는 화질 파라미터를 산출한다.
이후, 이 단계들의 과정에 관하여 설명한다. 단계S1901에서, CPU(901)는 대상 블록 사이즈를 취득한다. 도 17의 과정으로부터 본 과정이 호출된 직후에, 처리 대상 블록은 격자 블록 자신이다. 따라서, 대상 블록 사이즈의 값은 64다. 이후, 재귀적 호출로 인해, 영역 4진 트리구조의 레벨이 내려갈 때마다, 그 사이즈 값은, 32, 16 및 8로 변경된다.
단계S1902에서, CPU(901)는 외부로부터 설정된 화질제어 최소 블록 사이즈를 취득한다. 본 예시적 실시예에서는 화질제어 최소 블록 사이즈의 값은 16이다.
부호화하는 대상 블록이, 도 17의 단계S1700과 단계S1701에서 분할되어 있는 것인가 아닌가를 판정한다. 단계S1903에서, CPU(901)는 그 분할판정의 결과를 나타내는 분할 상태정보를 취득한다.
단계S1904에서, CPU(901)는 취득한 대상 블록의 분할의 상태를 참조하여, 대상 블록이 분할되어 있는지를 판정한다. 대상 블록이 분할되어 있다고 판정되었을 경우에는(단계S1904에서 YES), CPU(901)는 단계S1906을 실행한다. 대상 블록이 분할되지 않고 있다고 판정되었을 경우에는(단계S1904에서 NO), CPU(901)는 단계S1905를 실행한다.
단계S1905에서, CPU(901)는, 대상 블록 사이즈가 화질제어 최소 블록 사이즈 이상인지를 판정한다. 대상 블록 사이즈가 이상이라고 판정되었을 경우에는(단계S1905에서 YES), CPU(901)는, 단계S1907을 실행한다. 그렇지 않다고 판정되었을 경우에는(단계S1905에서 NO), CPU(901)는, 화질 파라미터의 산출 처리를 종료한다.
단계S1906에서, CPU(901)는, 대상 블록 사이즈가 화질제어 최소 블록 사이즈와 같은지를 판정한다. 대상 블록 사이즈가 화질제어 최소 블록 사이즈와 같다고 판정되었을 경우에는(단계S1906에서 YES), CPU(901)는, 단계S1907을 실행한다. 그렇지 않다고 판정되었을 경우에는(단계S1906에서 NO), CPU(901)는, 화질 파라미터의 산출 처리를 종료한다.
단계S1907에서, CPU(901)는, 레이트 제어 처리에 의해, 대상 블록을 부호화하기 위한 화질 파라미터를 산출한다. 예를 들면, TM5와 같이, CPU(901)는, 대상 블록의 부호량을 예측하고, 최적의 양자화 파라미터를 산출한다. 대상 블록이 분할될 경우에는, 내포된 분할 블록 모두가 레이트 제어된다. 내포된 분할 블록은 동일한 화질 파라미터로 부호화되게 된다.
본 예시적 실시예에 따른 부호화방법을 사용하여, 도 15 및 도 16에서 나타낸 데이터 구조를 가진 데이터를 출력한다. 도 15를 참조하면, 프레임 헤더 정보는, 도 13의 단계S1303에서 삽입된 화질제어 최소 블록 사이즈의 부호를 포함한다. 프레임내의 모든 격자 블록은, 그 부호의 제어하에 있다. 도 16을 참조하면, 격자 블록 또는 64×64화소의 블록에 대한 분할 플래그에 계속되어, 이후의 레벨에서 32×32화소의 좌상의 블록에 대한 분할 플래그가 계속된다. 32×32화소의 블록이 분할되지 않은 경우, 그 블록의 화질 파라미터 부호나 QP_DELTA부호가 계속되고, 32×32화소의 잔차에 관한 계수 데이터의 부호가 이어진다. 우상의 32×32화소의 블록에 대한 분할 플래그가 계속된다. 이전에 설명된 것처럼, 32×32화소의 블록이 16×16화소의 블록으로 분할되는 경우, 분할 플래그가 계속되어 분할 상태를 나타낸다. 블록이 더 이상 분할되지 않은 경우에는, QP_DELTA부호와 계수 데이터의 부호가 계속된다. 화질제어 최소 블록 사이즈는 16이다. 블록이 16×16화소이하의 블록들로 분할되는 경우, 그것보다 작은 블록에서의 QP_DELTA부호의 부여는 없고, 분할 플래그와 계수 데이터의 부호가 계속되게 된다.
이렇게 대상 블록 사이즈와 화질제어 최소 블록 사이즈를 비교하고, 그 비교 결과에 따라, QP_DELTA부호의 부호화의 유무를 제어한다. 이러한 메카니즘의 제공에 의해, 화상을 격자패턴으로 분할한 블록 단위로 화질을 제어할 수 있게 된다. QP_DELTA부호를 격자 블록 단위(도 12a)로 삽입하는 종래의 경우에 비교하여, 보다 미세한 단위(도 12c)로 화질을 제어할 수 있다. 이것은, 화질이 다른 블록간의 경계를 좁히고, 화질의 차이를 눈에 뜨이기 어렵게 할 수 있다. 또 다른 종래의 경우에서는, 직교변환 블록 단위로 화질제어를 행하고, QP_DELTA부호를 삽입한다(도 12b). 이러한 경우와 달리, 화질제어의 단위를 선택할 수 있고, 모든 직교변환 블록에 QP_DELTA부호를 삽입할 필요가 없기 때문에, 필요이상의 부호량을 증가시키지 않을 것이다. 화질 파라미터를 삽입하는 조건과, 동일한 조건이 성립할 경우에만, 화질 파라미터 산출 과정이 실행된다. 이 때문에, 화질 파라미터의 산출도, 필요이상으로 증가하지 않는다.
본 예시적 실시예에서는 블록을 정방형의 블록으로서 정의했다. 블록이, 이를테면 8×4화소와 같은 장방형이어도 된다는 것을 알 것이다. 상기 영역 4진 트리구조를 재귀처리를 사용해서 주사하고 있지만, 루프 구조를 사용하여 그 주사하는 것을 구현하여도 된다.
본 예시적 실시예에 따른 부호화방법은, 도 10에 나타낸 것과 같이, 직교변환기(1003), 양자화기(1004) 및 가변길이 부호화기(1005) 등의 전용 하드웨어를 구비한 구성으로 행해져도 된다. CPU(1001)는, 직교변환, 양자화, 가변길이 부호화 단계를 실행하지 않고, 상기 유닛에 의해 각각의 그 처리의 일부를 행한다. 그 밖의 관점에서의 과정은, 도 17에 나타낸 것과 같다.
본 예시적 실시예에서는, 부호화된 데이터는 HDD(903)에 기록된 경우를 다루었다. 그렇지만, 이것에 한정되지 않는다. 하드 디스크 장치(903)이외의 기록 매체에 부호화된 데이터가 기록되어도 된다. 통신 인터페이스(905)를 거쳐서 통신회로에 부호화된 데이터가 송신되어도 되는 것을 알 것이다. 외부 기록 장치는, 휴대형 매체에 부호화된 데이터를 기록하도록 접속되어도 된다.
또한, 본 예시적 실시예에서는, 소프트웨어 어플리케이션이 하드 디스크 장치(903)에 기록되는 경우를 다루었다. 그렇지만, 이것에 한정되지 않는다. 소프트웨어 어플리케이션은, 판독전용 메모리(ROM)등의 하드웨어에 기록되어도 된다. 소프트웨어 어플리케이션이, 메모리 카드나 디스크 등의 휴대형 매체에 기록되어도 된다는 것을 알 것이다.
또한, 본 예시적 실시예에서는, 화질제어 최소 블록의 사이즈를 의미하는 부호를 발생하기 위해서 분할의 횟수를 부호화하는 경우를 다루었다. 그렇지만, 이것에 한정되지 않는다. 최대의 블록 사이즈가 격자 블록의 것이므로, 화질제어 최소 블록의 사이즈는 6비트의 고정길이의 부호로 나타내도 된다. 화질제어 최소 블록은, 정방형 구성에 한정되지 않는다. 종횡 구성의 화질제어 최소 블록은, 개별적으로 설치되어도 된다. 예를 들면, 종으로 또는 횡으로 인접하는 블록을 조로 해서, 그 블록 조의 단위로 화질 파라미터를 제어하여도 된다. 그 경우에, 화질제어 최소 블록의 사이즈를 종횡 구성으로 개별적으로 설정하는 것도 유효하다.
본 발명의 제2 예시적 실시예에 따른 화상의 복호방법에 대해서 도 2, 도 9, 도 14 및 도 18을 참조해서 설명한다.
도 9는, 본 예시적 실시예에 따른 복호방법을 포함한 복호 프로그램을 실행하기 위한 구성을 나타낸다. HDD(903)에는 기록 프로그램이 기록된다. 그 복호 프로그램은 RAM(902)에 로드되고, CPU(901)는 후술하는 과정의 단계들을 실행함에 의해 복호처리를 한다. 입력 부호 데이터는, HDD(903)로부터 판독된다. 복호화상은 비디오 RAM(VRAM)(904)내에 설치된 화상출력 버퍼를 거쳐서, 디스플레이에 출력된다. CPU(901)는, 복호처리를 블록마다 행한다. 각 블록을 복호하여 그 블록의 복호화상을 발생하여, 화상출력 버퍼에 출력할 때에, 프레임내 적정한 위치에 복사된다. 1프레임분의 블록의 복호처리가 종료할 때, 출력 버퍼에 1프레임의 화상이 출력된다. 입력된 부호화 데이터는 제1 예시적 실시예에서 생성된 부호화 데이터로 하여 이하에서 설명한다.
도 14는, 입력된 부호화 데이터를 복호하는 과정을 나타낸 것이다. 격자 블록들은, 래스터 스캔순으로 복호된다. 단계S1401에서, CPU(901)는, 프레임 헤더 정보를 복호해서 취득한다. 본 예시적 실시예에서는, 상기 프레임 헤더 정보가 화질제어 최소 블록 사이즈를 포함하는 경우를 다룬다. 그렇지만, 이것에 한정되지 않는다. 소정의 데이터 포맷에 의하면, 화질제어 최소 블록 사이즈는, 시퀀스, 픽처, 슬라이스, 또는 최고 계층레벨의 블록의 헤더 정보로부터 취득되어도 된다. 단계S1402에서, CPU(901)는, 화질제어 최소 블록 사이즈를 복호해서 취득한다. 단계S1403에서, CPU(901)는, 부호화 데이터의 복호결과를 최초에 제1 대상격자 블록에 격납하도록 설정한다. 단계S1404에서, CPU(901)는, 대상격자 블록의 예측 모드를 복호하고, 그 예측 모드에 따라 예측 화상을 생성한다. 단계S1405에서, CPU(901)는, 대상격자 블록에 대한 분할 블록 복호 과정을 실행한다. 단계S1406에서, CPU(901)는, 대상격자 블록의 예측 화상 데이터와 잔차 데이터를 가산하여, 화상출력 버퍼에 출력한다. 단계S1407에서, CPU(901)는, 프레임내의 격자 블록이 모두 처리되었는지를 판정한다. 단계S1408에서, CPU(901)는, 다음의 격자 블록을 대상 격자 블록으로서 설정한다.
이하, 이 단계들의 과정에 관하여 설명한다. 단계S1401에서, CPU(901)는, 화질제어 최소 블록 사이즈라고 불리는 파라미터를, 시퀀스, 픽처, 프레임, 슬라이스, 및 계층구조상의 최상위 블록의 헤더 정보로부터 취득한다.
단계S1402에서, CPU(901)는, 화질제어 최소 블록 사이즈를 복호해서 취득한다. 제1 예시적 실시예에 의하면, 화질제어 최소 블록 사이즈는 인덱스로서 부호화된다. 그 화질제어 최소 블록 사이즈는 16이다. 단계S1403에서, CPU(901)는, 대상격자 블록으로서 화면좌상의 격자 블록을 설정한다.
단계S1404에서, CPU(901)는, 대상격자 블록의 부호화 데이터를 복호한다. 이에 따라, CPU(901)는, 제1 예시적 실시예에서 생성된 프레임내 예측의 모드 및/또는 움직임 벡터를 복호한다. 인트라 부호화의 경우에는, CPU(901)는, 복호된 프레임내 예측 모드에 의거하여 인접한 복호된 화소를 참조해서 예측 화상 데이터를 생성한다. 인터(inter) 부호화의 경우에는, CPU(901)는, 움직임 벡터에 의거하여 움직임 보상을 행해서 예측 화상 데이터를 생성한다.
단계S1405에서, CPU(901)는, 도 18과 함께 후술하는 분할 블록의 복호 과정을 격자 블록에 대하여 실행한다. 분할 블록의 복호가 계층화되어 있기 때문에, CPU(901)는, 블록의 분할 플래그를 복호하고, 복호를 행하면서 분할 블록의 상태를 판정한다. 이에 따라, CPU(901)는, 화질 파라미터와, 예측에 대한 잔차 데이터를 생성한다.
단계S1406에서, CPU(901)는, 단계S1404에서 생성된 예측 화상 데이터와 단계S1405에서 생성된 잔차 데이터를 가산하고, 대상격자 블록의 복호화상을 생성한다. CPU(901)는, 그 복호된 화상을 화상출력 버퍼에 출력한다.
단계S1407에서, CPU(901)는, 프레임내의 격자 블록이 모두 복호처리되었는지를 판정한다. 예를 들면, CPU(901)는, 복호된 격자 블록의 개수를 계수한다. 격자 블록이 모두 복호처리되지 않은 경우(단계S1407에서 NO), CPU(901)는, 단계S1408에 진행된다. 모든 격자 블록이 복호되는 경우(단계S1407에서 YES), CPU(901)는, 프레임의 복호처리를 종료한다.
단계S1408에서, CPU(901)는, 래스터 스캔순으로 다음의 복호결과를 다음의 대상격자 블록으로서 설정한다.
도 18은, 단계S1405의 상세한 흐름도이며, 계층구조적으로 복수의 다른 사이즈의 직교변환 블록을 복호하는 과정을 나타낸다. 구체적으로는, 도 18은, 블록 분할 플래그 부호 및 QP_DELTA부호에 의거하여, 가변길이 부호화 계수 데이터를, 가변길이 복호, 역직교변환 및 역양자화를 행하여, 잔차 데이터를 생성하는 과정을 나타낸다. 본 예시적 실시예는, 이 계층구조화를 위한 영역 4진 트리구조를 사용한다. 최고 레벨에서의 블록(제1 처리 대상 블록)은 64×64화소의 격자 블록이다.
단계S1801에서, CPU(901)는, 대상 블록의 블록 분할 플래그를 복호한다. 단계S1802에서, CPU(901)는, 화질 파라미터 복호 과정을 실행한다.
단계S1803에서, CPU(901)는, 복호하는 대상 블록이 분할되어 있는지를 판정한다. 단계S1804에서, CPU(901)는, 가변길이복호, 역양자화 및 역직교변환을 실행한다. 단계S1805에서, CPU(901)는, 내포된 분할 블록의 복호처리를 재귀적으로 실행한다.
이하, 이 단계들의 과정에 관하여 설명한다. 단계S1801에서, CPU(901)는, 도 16에 나타나 있는 바와 같은 블록 분할 플래그를 복호하고, 대상 블록이 세부분할되어 있는 것인가 아닌가의 정보를 취득한다. 복호는 4진트리의 계층구조에 따라 행해진다. 이에 따라, CPU(901)는, 블록들의 분할의 상태를 취득할 수 있다.
단계S1802에서, CPU(901)는, 도 2와 함께 후술하는 화질 파라미터 복호 과정을 실행한다. 이에 따라, CPU(901)는, 대상 블록을 복호하기 위해서 역양자화에서 사용하는 화질 파라미터를 복호한다.
단계S1803에서, CPU(901)는, 복호된 블록 분할 플래그를 참조하여, 대상 블록이 분할되어 있는 것인가 아닌가를 판정한다. 대상 블록이 분할되지 않고 있다고 판정했을 경우에는(단계S1803에서 NO), CPU(901)는, 단계S1804를 실행한다. 대상 블록이 분할되었다고 판정했을 경우에는(단계S1803에서 YES), CPU(901)는, 단계S1805를 실행한다.
단계S1804에서, CPU(901)는, 대상 블록의 부호화 계수 데이터에 대하여, 가변길이복호, 역양자화, 및 역직교변환을 실시해서 잔차 데이터를 생성한다. 가변길이복호에 대해서는, CPU(901)는, 제1 예시적 실시예에서 사용한 부호화방식에 따라서 복호를 행한다. 이에 따라, CPU(901)는, 블록에 포함되어 있는 양자화 계수 데이터를 취득한다. 역양자화에 대해서는, CPU(901)는, 단계S1802에서 복호된 화질 파라미터를 사용한다. 단계S1802에서 새로운 화질 파라미터를 복호하지 않은 경우에는, CPU(901)는, 이전에 복호된 화질 파라미터를 그대로 사용하여, 역양자화를 실행한다. CPU(901)는, 역양자화에 의해 얻어진 계수 데이터에 대해 역직교변환을 실행하여서, 잔차 데이터를 생성한다.
단계S1805에서, CPU(901)는, 복호된 블록 분할 플래그가 계층적으로 이후의 레벨의 존재를 나타내면, 단계S1801로부터 단계S1805까지를 재귀적으로 실행한다. 따라서, CPU(901)는, 분할의 최소의 블록 사이즈에 이르기까지 잔차 데이터를 복원한다.
이하, 화질 파라미터를 복호하는 단계S1802를 도 2를 참조하여 상세히 설명한다.
도 2는, 계층구조적으로 복수의 다른 사이즈의 직교변환 블록의 화질 파라미터를 복호하는 과정을 나타낸다. 단계S201에서, CPU(901)는, 대상 블록 사이즈를 취득한다. 단계S202에서, CPU(901)는, 화질제어 최소 블록 사이즈를 취득한다. 단계S203에서, CPU(901)는, 그 블록의 분할 상태를 취득한다. 단계S204에서, CPU(901)는, 대상 블록이 분할되어 있는지를 판정한다. 단계S205에서, CPU(901)는, 대상 블록 사이즈가 화질제어 최소 블록 사이즈 이상인지를 판정한다. 단계S206에서, CPU(901)는, 대상 블록 사이즈와 화질제어 최소 블록 사이즈가 같은지를 판정한다. 단계S207에서, CPU(901)는, 화질 파라미터를 복호한다.
이하, 이 단계들의 과정에 관하여 설명한다. 단계S201에서, CPU(901)는, 대상 블록 사이즈를 취득한다. 도 18의 과정으로부터 본 과정을 호출한 직후에는, 처리 대상 블록은 격자 블록 자신이다. 따라서, 대상 블록 사이즈의 값은 64다. 이후, 분할 플래그를 복호하고, 그에 따라서, 그 사이즈 값은, 32, 16 및 8로 변경된다.
단계S202에서, CPU(901)는, 화질제어 최소 블록 사이즈를 취득한다. 본 예시적 실시예에서는, CPU(901)는, 도 14의 단계S1402에서 복호된 화질제어 최소 블록 사이즈를 취득한다. 단계S203에서, CPU(901)는, 블록 분할 상태를 취득한다. 본 예시적 실시예에서는, CPU(901)는, 도 18에서의 단계S1801에서 복호된 블록 분할 플래그를 취득한다.
단계S204에서, CPU(901)는, 블록 분할 플래그의 값을 판정한다. 제1 예시적 실시예에서 나타낸 것과 같은 부호할당을 사용하면, "0"의 값을 갖는 블록 분할 플래그는, 블록이 분할되지 않고 있는 것을 가리킨다. "1"의 값을 갖는 블록 분할 플래그는, 블록이 분할되어 있는 것을 가리킨다. 그 블록 분할 플래그의 값이 "0"이면(단계S204에서 NO), CPU(901)는, 단계S205를 실행한다. 그 블록 분할 플래그의 값이 "1"이면(단계S204에서 YES), CPU(901)는, 단계S206을 실행한다.
단계S205에서, CPU(901)는, 대상 블록 사이즈가 화질제어 최소 블록 사이즈 이상인가를 판정한다. 대상 블록 사이즈가 화질제어 최소 블록 사이즈 이상인 경우에는(단계S205에서 YES), CPU(901)는, 단계S207을 실행한다. 그렇지 않은 경우에는(단계S205에서 NO), CPU(901)는, 처리를 종료한다.
단계S206에서, CPU(901)는, 대상 블록 사이즈가 화질제어 최소 블록 사이즈와 같은지를 판정한다. 대상 블록 사이즈가 화질제어 최소 블록 사이즈 이상인 경우에는(단계S206에서 YES), CPU(901)는, 단계S207을 실행한다. 그렇지 않은 경우에는(단계S206에서 NO), CPU(901)는, 처리를 종료한다.
단계S207에서, CPU(901)는, 화질 파라미터 부호를 복호한다. 본 예시적 실시예에서는, CPU(901)는, QP_DELTA부호를 Golomb복호에 의해 QP_DELTA값으로 복호한다. 본 예시적 실시예에서는, Golomb복호에 의해 QP_DELTA를 복호한다. 그러나, 이것에 한정되지 않는다. QP_DELTA는, 소정의 데이터 포맷에 따라 산술 복호 또는 그 밖의 가변길이복호에 의해 복호되어도 된다. 그후, CPU(901)는, 이전의 블록의 부호화에 사용한 화질 파라미터에 QP_DELTA값을 가산하여서, 화질 파라미터를 생성한다.
본 예시적 실시예에서는, 화질 파라미터를 부호화한 대상 블록 사이즈와 화질제어 최소 블록 사이즈와의 비교 조건과 같은 조건으로, 화질 파라미터의 복호의 유무를 제어하고 있다. 이에 따라, 제1 예시적 실시예에서 나타낸 부호화방법으로 생성한 스트림을 복호하는 것이 가능해진다.
본 예시적 실시예에 따른 복호방법은, 도 9에 나타낸 구성 대신에, 도 11과 같이, 역직교변환기(1103), 역양자화기(1104), 가변길이복호기(1105) 등의 전용 하드웨어를 포함하는 구성으로 행해져도 된다. CPU(1101)는, 역직교변환, 역양자화, 가변길이복호 단계를 실행하지 않고, 상기 유닛에 의해 각각의 그 처리의 일부를 행한다. 그 밖의 관점에서의 과정은, 도 18에 나타낸 것과 같다.
본 예시적 실시예에서는, 부호화된 데이터는 하드 디스크 장치(903)에 기록된 경우를 다루었다. 그렇지만, 이것에 한정되지 않는다. 통신 인터페이스(1006)를 거쳐서 통신회로로부터 부호화된 데이터를 수신하여도 된다. 외부 기록 장치는, 휴대형 매체로부터 입력 부호화된 데이터에 접속되어도 된다.
또한, 본 예시적 실시예에서는, 소프트웨어 어플리케이션이 하드 디스크 장치(903)에 기록되는 경우를 다루었다. 그렇지만, 이것에 한정되지 않는다. 소프트웨어 어플리케이션은, 판독전용 메모리(ROM)등의 하드웨어에 기록되어도 된다. 소프트웨어 어플리케이션이, 메모리 카드나 디스크 등의 휴대형 매체에 기록되어도 된다는 것을 알 것이다.
본 발명의 제3 예시적 실시예에 따른 화질 파라미터의 부호화방법에 대해서 도 3을 참조해서 설명한다. 특별히 기술하지 않으면, 그 부호화방법을 실행하는 구성 및 그 단계들의 동작은, 상기 제1 예시적 실시예와 마찬가지다. 본 예시적 실시예에서는, 대상 블록을 내포하고, 또한, 화질제어 최소 블록 사이즈와 동일한 사이즈인 블록을, 화질제어 최소 블록으로서 정의한다. 화질제어 최소 블록내에 화질 파라미터가 부호화되어 있는지를 나타내는 정보를, 화질 파라미터 부호화 상태 정보로서 정의한다. 화질 파라미터 부호화 상태 정보는, 화질제어 최소 블록내에서, 제1 분할 블록에 대하여, 화질 파라미터가 부호화되는지를 나타내는 정보와 같다.
도 3은, 화질 파라미터의 부호화 과정을 나타낸다. 도 3은, 도 17의 단계S1704, 단계S1709에서 실행되는 화질 파라미터 부호화 과정의 상세한 흐름도다. 이 과정은, 도 1에 나타낸 화질 파라미터의 부호화 과정 대신에 실행된다. 단계S301에서, CPU(901)는, 화질 파라미터 부호화 상태 정보를 취득한다. 단계S302에서, CPU(901)는, 화질 파라미터 부호화 상태 정보를 참조하여, 화질제어 최소 블록내에 이미 화질 파라미터가 부호화되어 있는 것인가 아닌가를 판정한다.
이하, 이 단계들의 과정에 관하여 설명한다. 단계S104에서는, 제1 예시적 실시예와 마찬가지로, CPU(901)는, 취득한 대상 블록의 분할 상태, 즉 더 이상 4진트리에 의해 대상 블록이 분할되는 것인가 아닌가를 참조한다. 대상 블록이 분할되어 있다고 판정되었을 경우에는(단계S104에서 YES), CPU(901)는, 제1 예시적 실시예와는 달리, 처리를 종료한다. 대상 블록이 분할되지 않고 있다고 판정되었을 경우에는(단계S104에서 NO), CPU(901)는, 제1 예시적 실시예와 마찬가지로 단계S105를 실행한다.
단계S105에서, 제1 예시적 실시예와 마찬가지로, CPU(901)는, 대상 블록 사이즈가 화질제어 최소 블록 사이즈 이상인지를 판정한다. 대상 블록 사이즈가 이상이라고 판정되었을 경우에는(단계S105에서 YES), CPU(901)는, 제1 예시적 실시예와 마찬가지로 단계S107 및 단계S108을 실행한다. 그렇지 않다고 판정되었을 경우에는(단계S105에서 NO), CPU(901)는, 단계S301과 단계S302의 처리를 실행한다.
단계S301에서, CPU(901)는, 화질 파라미터 부호화 상태 정보를 취득한다. 본 예시적 실시예에서는, 화질제어 최소 블록 사이즈는 16이다. 대상 블록이 8×8화소의 좌상 블록이면, 당연히, CPU(901)는, 화질 파라미터가 부호화되지 않고 있다고 하는 정보를 취득한다. 대상 블록이 8×8화소의 우상, 좌하 또는 우하이면, 8×8좌상 블록에서 이미 화질 파라미터가 부호화되어 있다. 이러한 경우에, CPU(901)는, 화질 파라미터가 부호화되어 있다고 하는 정보를 취득하게 된다.
단계S302에서, CPU(901)는, 화질 파라미터 부호화 상태 정보를 참조하고, 화질제어 최소 블록내에서 이미 화질 파라미터가 부호화되어 있는 것인가 아닌가를 판정한다. 화질 파라미터가 부호화되지 않고 있다고 판정했을 경우에는(단계S302에서 NO), CPU(901)는, 단계S107과 단계S108을 실행한다. 화질 파라미터가 부호화되어 있다고 판정했을 경우에는(단계S302에서 YES), CPU(901)는, 화질 파라미터의 부호화처리를 종료한다.
본 예시적 실시예와 제1 예시적 실시예간의 차이에 관하여 설명한다. 제1 예시적 실시예에서, "대상 블록이 분할되고, 또한, 대상 블록 사이즈와 화질제어 최소 블록 사이즈가 같은 경우에", 대상 블록(분할 블록의 집합)에 부수되는 데이터로서, QP_DELTA부호가 삽입된다. 본 예시적 실시예에서는, "대상 블록이 분할되고, 또한, 대상 블록 사이즈와 화질제어 최소 블록 사이즈가 같은 경우에", 대상 블록내의 제1 블록인 좌상의 블록에 QP_DELTA부호가 부가된다. 본 예시적 실시예에서는, 화질제어 최소 블록 사이즈는 16이다. 도 20에 나타낸 것과 같이 분할된 블록을 스트림을 구성한다고 가정한다. 이러한 경우에는, 음영 블록 0,1,7,5,6,8,9,13,14,15번의 블록에 대응하는 가변길이 부호화 계수 데이터의 직전에, QP_DELTA부호가 삽입되게 된다. 즉, QP_DELTA부호가, 16×16화소이상의 블록에 대해서 부수되게 된다. 16×16화소의 블록이 분할되어 있는 경우에는, QP_DELTA부호가, 좌상의 8×8화소의 블록, 즉 16×16화소의 블록의 제1 세부분할 블록에 대해서 부수되게 된다.
이렇게, 본 예시적 실시예는, 제1 예시적 실시예와 동일한 효과를 제공할 수 있는 반면에, 그 과정과 데이터 구조의 개념은 다르다. 가능한 또 다른 구성에서는, 양자화 계수에 0이외의 값이 존재하지 않는 경우에는 화질 파라미터를 부호화하지 않는다. 상기 대상 블록내의 좌상의 블록에, 양자화 계수에 0이외의 값이 존재하지 않는 경우에는, 화질 파라미터는, 구조순으로 다음 양자화 계수에 0이외의 값이 존재하는 제1 분할 블록에 첨부된다. 본 예시적 실시예의 단계S301에서는, CPU(901)는, 부호화 대상 블록의 크기와 위치로부터, 화질 파라미터 부호화 상태 정보를 산출하여 취득한다. 그렇지만, 이것에 한정되지 않는다. 예를 들면, 화질제어 최소 블록 사이즈내에서 화질 파라미터가 부호화되었는지를 나타내는 플래그를 설정하여도 된다. 화질제어 최소 블록의 분할 처리를 실행할 때마다 그 플래그를 리셋트하고, 화질 파라미터를 부호화할 때마다 그 플래그를 세트하여도 된다. 화질 파라미터 부호화 상태 정보를 취득하기 위해서, CPU(901)는 플래그를 참조한다. 그 플래그가 리셋트되어 있으면, CPU(901)는, 화질 파라미터가 부호화되지 않고 있다고 하는 정보를 취득한다. 플래그가 세트되어 있으면, CPU(901)는, 화질 파라미터가 부호화되어 있다고 하는 정보를 취득한다.
본 발명의 제4 예시적 실시예에 따른 화질 파라미터의 복호방법에 대해서 도 4를 참조해서 설명한다. 별도로 기술이 없는 경우, 그 복호방법을 실행하는 구성 및 그 단계들의 동작은, 상기 제2 예시적 실시예와 마찬가지다. 본 예시적 실시예에서는, 대상 블록을 내포하고, 또한, 화질제어 최소 블록 사이즈와 동일한 사이즈인 블록을, 화질제어 최소 블록으로서 정의한다. 화질제어 최소 블록내에 화질 파라미터가 복호되어 있는지를 나타내는 정보를, 화질 파라미터 복호상태정보로서 정의한다.
도 4는, 화질 파라미터의 복호 과정을 나타낸다. 도 4는, 도 18의 단계S1802에서 실행되는 화질 파라미터 복호 과정의 상세한 흐름도다. 이 과정은, 도 2에 나타낸 화질 파라미터의 복호 과정 대신에 실행된다. 단계S401에서, CPU(901)는, 화질 파라미터 복호상태정보를 취득한다. 단계S402에서, CPU(901)는, 그 화질 파라미터 복호상태정보를 참조하여, 화질제어 최소 블록내에 이미 화질 파라미터가 복호되어 있는 것인가 아닌가를 판정한다.
이하, 이 단계들의 과정에 관하여 설명한다. 단계S204에서, CPU(901)는, 블록 분할 플래그의 값을 판정한다. 그 블록 분할 플래그의 값이 블록이 분할되지 않고 있는 것을 의미하는 "0"이면(단계S204에서 NO), CPU(901)는, 제2 예시적 실시예와 마찬가지로 단계S205를 실행한다. 그 블록 분할 플래그의 값이블록이 분할되어 있는 것을 의미하는 "1"이면(단계S204에서 YES), CPU(901)는, 제2 예시적 실시예와는 달리, 화질 파라미터의 복호처리를 종료한다.
단계S205에서, 상기 제2 예시적 실시예와 마찬가지로, CPU(901)는, 대상 블록 사이즈가 화질제어 최소 블록 사이즈 이상인지를 판정한다. 그 대상 블록 사이즈가 이상이라고 판정되었을 경우에는(단계S205에서 YES), CPU(901)는, 단계S207에 진행된다. 단계S207에서, CPU(901)는, 제2 예시적 실시예와 마찬가지로 화질 파라미터를 복호한다. 그렇지 않다고 판정되었을 경우에는(단계S205에서 NO), CPU(901)는, 단계S401과 단계S402를 실행한다.
단계S401에서, CPU(901)는, 화질 파라미터 복호상태정보를 취득한다. 본 예시적 실시예에서는, 화질제어 최소 블록 사이즈는 16이다. 대상 블록이 8×8화소의 좌상 블록이면, 당연히, CPU(901)는, 화질 파라미터가 복호되지 않은 정보를 취득한다. 대상 블록이 8×8화소의 우상, 좌하 또는 우하 블록이면, 8×8화소의 좌상 블록내에 이미 화질 파라미터가 복호되어 있다. 이러한 경우에, CPU(901)는, 화질 파라미터가 복호되어 있는 정보를 취득한다.
단계S402에서, CPU(901)는, 화질 파라미터 복호상태정보를 참조하여, 화질제어 최소 블록내에 이미 화질 파라미터가 복호되어 있는 것인가 아닌가를 판정한다. 화질 파라미터가 복호되지 않고 있으면(단계S402에서 NO), CPU(901)는, 단계S207을 실행한다. 화질 파라미터가 복호되어 있으면(단계S402에서 YES), CPU(901)는, 화질 파라미터의 복호처리를 종료한다.
본 예시적 실시예에서는, 화질 파라미터를 부호화한 대상 블록 사이즈와 화질제어 최소 블록 사이즈와의 비교 조건과, 화질제어 최소 블록내에 이미 화질 파라미터가 복호되어 있는 것인가 아닌가를 판정하는 판정 조건에 의거하여, 실제로 화질 파라미터를 복호할지를 제어한다. 이러한 모드에 의해, 제3 예시적 실시예에서 나타낸 부호화방법으로 생성한 스트림을 복호하는 것이 가능해진다. 양자화 계수에 0이외의 값이 존재하지 않으면 화질 파라미터를 부호화하지 않는 구성을 부호화방법이 채용하여도 된다. 이러한 경우에는, 그 복호방법은 동일한 구성을 채용하여도 된다. 상기 대상 블록내의 좌상의 블록에, 양자화 계수에 0이외의 값이 존재하지 않는 경우에는, 구조순으로 다음 양자화 계수에 0이외의 값이 존재하는 제1 분할 블록에서 화질 파라미터를 복호하게 된다.
본 예시적 실시예에 따른 도 4의 단계S401에서, CPU(901)는, 복호 대상 블록의 사이즈와 위치로부터, 화질 파라미터 복호상태정보를 산출하고, 취득한다. 그렇지만, 이것에 한정되지 않는다. 예를 들면, 화질제어 최소 블록 사이즈내에서 화질 파라미터가 복호되었는지를 나타내는 플래그를 설정하여도 된다. 화질제어 최소 블록의 분할 처리를 실행할 때마다 플래그를 리셋트하고, 화질 파라미터를 복호할 때마다 플래그를 세트한다. 그 화질 파라미터 복호상태정보를 취득하기 위해서, CPU(901)는, 플래그를 참조한다. 이 플래그가 리셋트되어 있으면, CPU(901)는, 화질 파라미터가 복호되지 않은 정보를 취득한다. 그 플래그가 세트되어 있으면, CPU(901)는, 화질 파라미터가 복호되어 있는 정보를 취득한다.
블록내의 잔차 데이터의 부호화 과정에 대해서 도 5를 참조해서 설명한다. 이 과정은, 본 발명의 제5 예시적 실시예에 따른 화질 파라미터의 부호화방법에 관련된다. 별도로 기술이 없는 경우, 그 부호화방법을 실행하는 구성 및 그 단계들의 동작은, 제1 예시적 실시예와 마찬가지다.
도 5는, 화질 파라미터의 부호화 과정과 잔차 데이터의 부호화의 과정을 나타낸다. 이 과정은, 도 17 및 도 1에 나타낸 처리를 실행한다. 이 과정은, 도 13의 단계S1306으로부터 호출된다. 단계S501에서, CPU(901)는, 대상 블록 사이즈를 취득한다. 단계S502에서, CPU(901)는, 화질제어 최소 블록 사이즈를 취득한다. 단계S503에서, CPU(901)는, 대상 블록을 분할하는 경우와 하지 않은 경우의 코스트를 각각 산출한다. 단계S504에서, CPU(901)는, 대상 블록이 분할할 것인가 아닌가를 판정한다. 단계S505에서, CPU(901)는, 거짓으로 한 블록 분할 플래그를 출력한다. 단계S506에서, CPU(901)는, 대상 블록 사이즈가 화질제어 최소 블록 사이즈 이상인지를 판정한다. 단계S507에서, CPU(901)는, 화질 파라미터를 산출한다. 단계S508에서, CPU(901)는, 화질 파라미터를 부호화하는 과정을 실행한다. 단계S509에서, CPU(901)는, 예측을 행하고, 직교변환, 양자화, 및 가변길이 복호를 실행한다. 단계S510에서, CPU(901)는, 블록 분할 플래그를 참으로 하여 출력한다. 단계S511에서, CPU(901)는, 대상 블록 사이즈와 화질제어 최소 블록 사이즈가 같은지를 판정한다. 단계S512에서, CPU(901)는, 화질 파라미터를 산출한다. 단계S513에서, CPU(901)는, 화질 파라미터를 부호화한다. 단계S514에서, CPU(901)는, 내포된 분할 블록을 처리한다.
이하의 처리 과정을 구체적으로 설명한다. 단계S501에서, CPU(901)는, 대상 블록 사이즈를 취득한다. 도 13의 과정으로부터 본 과정을 호출한 직후에, 처리 대상 블록은 격자 블록 자신이다. 본 예시적 실시예에서는, 대상 블록 사이즈의 값은 64이지만, 이것에 한정되지 않는다. 이후, 재귀적인 호출로 인해, 영역 4진 트리구조의 레벨이 내려갈 때마다, 그 사이즈 값은, 32, 16 및 8로 변경된다. 이때, 그 레벨 수는 이것에 한정되지 않는다.
단계S502에서, CPU(901)는, 외부에서 설정된 화질제어 최소 블록 사이즈를 취득한다. 본 예시적 실시예에서는, 이 화질제어 최소 블록 사이즈의 값은 16이지만, 이것에 한정되지 않는다.
단계S503에서, CPU(901)는, 블록을 분할하는 경우와 분할하지 않은 경우의 코스트를 각각 산출한다. 코스트는, 전술한 라그랑지 승수법 이외에, 화상의 특성, 통계량, 및 예측된 부호길이에 의해 산출된다.
단계S504에서, CPU(901)는, 단계S503에서 산출된, 분할하는 경우의 코스트와 분할하지 않은 경우의 코스트를 비교한다. 블록을 분할하는 경우의 코스트가 블록을 분할하지 않은 경우보다 낮으면(단계S504에서 YES), CPU(901)는, 단계S510∼단계S514를 실행한다. 그렇지 않으면(단계S504에서 NO), CPU(901)는, 단계S505∼단계S509를 실행한다.
단계S505에서, CPU(901)는, 블록 분할 플래그를 거짓로 하여 출력한다. 단계S506에서, CPU(901)는, 대상 블록 사이즈가 화질제어 최소 블록 사이즈 이상인지를 판정한다. 대상 블록 사이즈가 이상인 경우(단계S506에서 YES), CPU(901)는, 단계S507∼단계S509를 실행한다. 그렇지 않은 경우에는(단계S506에서 NO), CPU(901)는, 단계S507과 단계S508을 실행하지 않고, 단계S509를 실행한다.
단계S507에서, CPU(901)는, 대상 블록에 대하여, 레이트 제어를 행하여, 화질 파라미터를 산출한다. 단계S508에서, CPU(901)는, 단계S507에서 산출된 화질 파라미터를 부호화한다. 본 예시적 실시예에서, CPU(901)는, 이전의 블록에서 사용한 화질 파라미터와, 단계S507에서 산출한 화질 파라미터간의 차분값을 QP_DELTA값으로서 구한다. CPU(901)는, 구해진 QP_DELTA값을, 화질 파라미터 부호인 QP_DELTA부호로 Golomb부호화에 의해 부호화한다.
단계S509에서, CPU(901)는, 잔차 데이터의 직교변환, 양자화 및 가변길이 부호화를 실행하여, 부호화 계수 데이터를 생성한다. CPU(901)는, 단계S507에서 산출된 화질 파라미터를 사용해서 양자화한다. 단계S506에서 대상 블록 사이즈가 화질제어 최소 블록 사이즈보다 작다고 판정된 경우에는(단계S506에서 NO), CPU(901)는, 이전의 양자화에 사용된 화질 파라미터와 동일한 화질 파라미터를 사용한다.
단계S510에서, CPU(901)는, 참으로서 설정된 블록 분할 플래그를 부호화한다. 단계S511에서, CPU(901)는, 대상 블록 사이즈와 화질제어 최소 블록 사이즈가 동일한 것인가 아닌가를 판정한다. 그 대상 블록 사이즈와 화질제어 최소 블록 사이즈가 동일한 경우에는(단계S511에서 YES), CPU(901)는, 단계S512∼단계S514를 실행한다. 동일하지 않은 경우에는(단계S511에서 NO), CPU(901)는, 단계S512와 단계S513을 실행하지 않고, 단계S514를 실행한다.
단계S512에서, CPU(901)는, 레이트 제어 처리를 행하여, 대상 블록을 부호화하기 위한 화질 파라미터를 산출한다. 내포된 분할 블록 모두가 레이트 제어된다. 내포된 분할 블록은, 동일한 화질 파라미터로 부호화되게 된다.
단계S513에서, CPU(901)는, 단계S508과 같은 동작을 행하여, 단계S512에서 산출된 화질 파라미터를 부호화한다. 단계S514에서, CPU(901)는, 계층적으로 이하의 레벨에 내포된 4개의 분할 블록(좌상, 우상, 좌하, 우하)에 대해 본 과정을 재귀적으로 실행한다. 그 분할 블록 각각은, 원래의 대상 블록의 종횡 1/2의 사이즈를 갖는다. 그 대상 블록 사이즈는 서서히 작아진다. 이러한 재귀처리는, 8×8화소만큼 작은 블록 사이즈까지 행해질 수 있다. 이 재귀처리에 의해, 도 16에 나타나 있는 바와 같이, 각 분할 블록의 분할 플래그 부호, QP_DELTA부호 및 계수 데이터가, 구조순으로 스트림으로서 출력된다.
상술한 것처럼, 레이트 제어 처리와 화질 파라미터 부호화처리가 서로 일체화되어도 된다. 이러한 구성으로도, 상기 제3 예시적 실시예에서 나타낸 화질 파라미터 부호화방법과 같이 보다 미세한 단위로 화질을 제어하는 것이 가능하게 된다.
본 발명의 제6 실시예에 따른 화질 파라미터의 복호방법에 대해서 도 6을 참조해서 설명한다.
도 6은, 화질 파라미터의 복호 과정을 나타낸다. 이 과정은, 도 14의 단계S1405에 적용된다. 단계S601에서, CPU(901)는, 복호하는 대상 블록 사이즈를 취득한다. 단계S602에서, CPU(901)는, 화질제어 최소 블록 사이즈를 취득한다. 단계S603에서, CPU(901)는, 블록 분할 플래그를 복호한다. 단계S604에서, CPU(901)는, 상기 복호하는 대상 블록이 분할되어 있는지를 판정한다. 단계S605에서, CPU(901)는, 대상 블록 사이즈가 화질제어 최소 블록 사이즈 이상인지를 판정한다. 단계S606에서, CPU(901)는, 화질 파라미터를 복호한다. 단계S607에서, CPU(901)는, 가변길이복호, 역양자화 및 역직교변환을 실행한다. 단계S608에서, CPU(901)는, 대상 블록 사이즈가 화질제어 최소 블록 사이즈와 같은지를 판정한다. 단계S609에서, CPU(901)는, 화질 파라미터를 복호한다. 단계S610에서, CPU(901)는, 내포된 분할 블록을 대상 블록으로서 본 과정을 재귀적으로 호출하여, 복호한다.
이후, 이 단계들의 과정에 대해서 구체적으로 설명한다. 단계S601에서, CPU(901)는, 복호하는 대상 블록의 사이즈를 취득한다. 도 14의 과정으로부터 본 과정을 호출한 직후에, 처리 대상 블록은 격자 블록 자신이다. 본 예시적 실시예에서는 격자 블록의 사이즈 값은 64이지만, 이것에 한정되지 않는다. 이후, 재귀적인 호출로 인해, 상기 영역 4진트리 구조의 레벨이 작아질 때마다, 그 사이즈 값은, 32, 16 및 8로 변경된다. 이때, 레벨의 수는, 이것에 한정되지 않는다.
단계S602에서, CPU(901)는, 화질제어 최소 블록 사이즈를 취득한다. 본 예시적 실시예에서는, CPU(901)는, 프레임 헤더 정보에 삽입된 화질제어 최소 블록 사이즈를 취득한다.
단계S603에서, CPU(901)는, 블록 분할 상태를 취득한다. 본 예시적 실시예에서는, CPU(901)는, 도 18의 단계S1801에서 복호된 블록 분할 플래그의 값을 참조한다.
단계S604에서, CPU(901)는, 블록 분할 플래그의 값이 참인지 또는 거짓인지를 판정한다. 거짓이면(단계S604에서 NO), CPU(901)는, 단계S605∼단계S607을 실행한다. 참이면(단계S604에서 YES), CPU(901)는, 단계S608∼단계S610을 실행한다.
단계S605에서, CPU(901)는, 대상 블록 사이즈가 화질제어 최소 블록 사이즈 이상인가 아닌가를 판정한다. 대상 블록 사이즈가 화질제어 최소 블록 사이즈 이상인 경우에는(단계S605에서 YES), CPU(901)는, 단계S606과 단계S607을 실행한다. 그렇지 않은 경우에는(단계S605에서 NO), CPU(901)는, 단계S606을 실행하지 않고, 단계S607을 실행한다.
단계S606에서, CPU(901)는, 화질 파라미터 부호를 복호한다. 본 예시적 실시예에서는, CPU(901)는, QP_DELTA부호를 Golomb복호에 의해 QP_DELTA값으로 복호한다. 그리고, CPU(901)는, QP_DELTA값을, 이전의 역양자화에서 사용한 화질 파라미터에 가산함으로써, 화질 파라미터를 생성한다.
단계S607에서, CPU(901)는, 가변길이복호, 역양자화 및 역직교변환을 실행한다. 역양자화에는, CPU(901)는, 단계S606에서 복호된 화질 파라미터를 사용한다. 대상 블록 사이즈가 화질제어 최소 블록 사이즈보다도 작은 경우에는(단계S608에서 NO), CPU(901)는, 이전의 대상 블록을 역양자화 하는데 사용된 화질 파라미터를 사용한다. 이어서, CPU(901)는, 대상 블록의 복호를 종료한다.
단계S608에서, CPU(901)는, 대상 블록 사이즈가 화질제어 최소 블록 사이즈와 같은가 아닌가를 판정한다. 대상 블록 사이즈가 화질제어 최소 블록 사이즈와 같은 경우에는(단계S608에서 YES), CPU(901)는, 단계S609를 실행한다. 같지 않은 경우에는(단계S608에서 NO), CPU(901)는, 단계S609를 실행하지 않고, 단계S610에 진행된다.
단계S609에서, CPU(901)는, 계층적으로 이하의 레벨에 내포된 4개의 분할 블록(좌상, 우상, 좌하, 우하)에 대해 본 과정을 재귀적으로 실행한다. 그 분할 블록 각각은, 원래의 대상 블록의 종횡 1/2의 사이즈를 갖는다. 그 대상 블록 사이즈는 서서히 작아진다. 이러한 재귀처리에 의해, CPU(901)는, 도 16에 나타나 있는 바와 같이, 각 분할 블록의 분할 플래그 부호, QP_DELTA부호 및 계수 데이터를, 영역 4진 트리구조순으로 복호한다.
상술한 것처럼, 영역 4진 트리구조를 주사하는 재귀처리와 화질 파라미터 복호처리는 서로 일체화되어도 된다. 이러한 구성으로도, 상기 제1 예시적 실시예 또는 제5 예시적 실시예에 따른 부호화방법으로 부호화된 스트림을 복호할 수 있다.
본 발명의 제7 예시적 실시예는, 분할 블록 부호화방법을 다룬다. 본 예시적 실시예에 따른 분할 블록 부호화방법은, 도 9에 나타낸 구성을 사용하여서 실행된다.
부호화 이전에, CPU(901)는, 프로파일과 레벨을 설정한다. 프로파일은, 본 예시적 실시예에서 생성되는 스트림의 특성을 설명한다. 레벨들은, 상기 복호기의 처리성능에 따라 허용가능한 일 세트의 파라미터다. 처리성능이 주로 화상 사이즈에 좌우되므로, 레벨들은, 화상 사이즈마다 정의된다. 그러나, 레벨 정의의 유닛들은 화상 사이즈에 한정되지 않는다. 예를 들면, 처리 성능이 그 수에 좌우되기 때문에 처리 대상의 격자 블록의 수에 따라 레벨을 설정하여도 된다. 본 예시적 실시예에서는, 화질제어 최소 블록 사이즈는, 각 레벨에서 최소값으로 설정된다. 도 21a 및 21b는, 프로파일과 레벨에 의해 한정된 화질제어 최소 블록 사이즈를 정의하는 테이블을 나타낸다.
본 예시적 실시예는, 프로파일들이 기본 도구만을 사용하는 베이스라인 프로파일과, 그 밖의 도구를 사용하는 메인 프로파일을 포함하는 경우를 다룬다. 그렇지만, 그 프로파일들은 이것에 한정되지 않는다.
도 21a는 베이스라인 프로파일에서 화질제어 최소 블록 사이즈의 레벨과 한계치를 보이는 테이블을 나타낸다. 도 21b는 메인 프로파일에서 화질제어 최소 블록 사이즈의 레벨과 한계치를 보이는 테이블을 나타낸다.
본 예시적 실시예에서는, 프레임에 포함된 격자블록의 최대수(64×64화소)에 의해 레벨을 분류한다. 구체적으로는, 레벨 1은, 640×480화소 등의 상대적으로 작은 화상을 위한 것이다. 레벨 2는, 1920×1080화소의 중간크기의 화상을 위한 것이다. 레벨 3은, 4096×2160화소의 대화상을 위한 것이다. 이때, 레벨의 수와 레벨 분류는 본 발명의 요지를 한정하지 않는다.
도 21a에 나타낸 베이스라인 프로파일을 설명한다. 레벨 1은 화질제어 최소 블록 사이즈의 최소값이 8이고 화질제어 최소 블록 사이즈의 범위가 8 내지 64로 설정될 수 있다는 것을 보인다. 레벨 2는 화질제어 최소 블록 사이즈의 최소값이 16이고 화질제어 최소 블록 사이즈의 범위가 16 내지 64로 설정될 수 있다는 것을 보인다. 레벨 3은 화질제어 최소 블록 사이즈의 최소값이 32이고 화질제어 최소 블록 사이즈의 범위가 32 내지 64로 설정될 수 있다는 것을 보인다. 도 21b에 나타낸 메인 프로파일은, 화질제어 최소 블록 사이즈가 레벨의 상관없이 8 내지 64의 범위내에서 제어된다는 것을 보인다.
CPU(901)는, 도구 및 메모리 용량과 같은 부호화방법이나 장치의 조건에 따라, 및/또는 복호방법이나 장치의 조건을 고려하여, 상기 프로파일과 레벨을 판정한다. 그러나, 상기 프로파일과 레벨을 판정하는 방법은 특별히 한정되지 않는다. 설명하지 않은 유저는, 프로파일과 레벨을 설정하여도 된다. 상기 판정된 프로파일과 레벨은, 부호화되고, 동화상 전체에 대한 정보를 설명하는 시퀀스 헤더에 포함되고, 통신 인터페이스(905)로부터 출력된다. 이러한 프로파일과 레벨은, HDD(903)에 기록되어도 된다.
다음에, 프레임 부호화의 과정을 설명한다. 도 13의 단계S1301에서, 제1 예시적 실시예와 같이, CPU(901)는, 초기에 화질제어 최소 블록 사이즈의 파라미터를 설정한다. 도 22는 화질제어 최소 블록 사이즈를 산출하는 방법을 나타내는 흐름도다. 단계S2201에서, CPU(901)는, 프로파일 타입을 결정한다. 그 프로파일 타입이 베이스라인 프로파일인 경우에(단계S2202에서 베이스라인 프로파일), CPU(901)는, 단계S2202 이후의 단계를 실행한다. 프로파일 타입이 메인 프로파일인 경우에(단계S2202에서 메인 프로파일), CPU(901)는, 단계S2203을 실행한다.
먼저, 메인 프로파일의 경우를 설명한다. 단계S2203에서, CPU(901)는, 화질제어 최소 블록 사이즈를 8로 설정한다. 그리고, CPU(901)는, 그 처리를 종료한다.
다음에, 베이스라인 프로파일의 경우를 설명한다. 단계S2204에서, CPU(901)는 레벨 값을 취득한다. 본 예시적 실시예에서는, 그 레벨 값을, 입력 화상 사이즈에 따라 산출한다. 그 레벨 값은, 입력 화상 사이즈의 스트림을 복호할 수 있는 최소 레벨을 가리킨다.
단계S2205에서, CPU(901)는, 그 레벨 값이 1인지를 판정한다. 참인 경우에는(단계S2205에서 YES), CPU(901)는, 단계2206을 실행한다. 거짓인 경우에는(단계S2205에서 NO), CPU(901)는, 단계2207을 실행한다. 단계S2206에서, CPU(901)는, 화질제어 최소 블록 사이즈를 8로 설정한다. 단계S2207에서, CPU(901)는, 레벨 값이 2인지를 판정한다. 참인 경우(단계2207에서 YES), CPU(901)는, 단계2208을 실행한다. 거짓인 경우에는(단계S2207에서 NO), CPU(901)는, 단계2209를 실행한다. 단계S2208에서, CPU(901)는, 화질제어 최소 블록 사이즈를 16으로 설정한다. 단계S2209에서, CPU(901)는, 화질제어 최소 블록 사이즈를 32로 설정한다.
그리고, CPU(901)는 도 13에 나타낸 과정으로 돌아간다. 단계S1302에서, 제1 예시적 실시예와 같이, CPU(901)는 화질제어 최소 블록 사이즈를 부호화한다. 단계S1303에서, CPU(901)는, 부호화된 데이터를 포함하는 프레임 헤더 정보를 생성한다. 도 23a는, 그 생성된 비트 스트림을 나타낸다. 시퀀스 헤더는, 화상 사이즈를 나타내는 부호가 후속되는, 프로파일과 레벨의 부호화 데이터를 포함한다. 각 프레임 데이터에서의 프레임 헤더는, 화질제어 최소 블록 사이즈 부호를 포함하되, 사이즈가 도 21a에 정의된 화질제어 최소 블록 사이즈의 최소값 이상으로 설정되어 있다.
도 24는 과정 전체를 나타내는 흐름도다. 단계S2401에서, CPU(901)는, 부호화 대상의 사이즈를 입력한다. 단계S2402에서, CPU(901)는, 프로파일을 선택한다. 또한, CPU(901)는, 도 21a 또는 21b에 따라 레벨을 선택한다. 단계S2403에서, CPU(901)는, 그 선택된 레벨에 따라 화질제어 최소 블록 사이즈의 최소값을 취득한다. 단계S2404에서, CPU(901)는, 그 선택된 프로파일과 레벨을 부호화한다. 단계S2405에서, CPU(901)는, 그 프로파일과 레벨의 부호화 데이터를 포함하는 시퀀스 헤더를 생성한다. 단계S2406에서, CPU(901)는, 프레임단위로 부호화를 실행한다. 프레임마다 가능한 화질제어 최소 블록의 사이즈는, 화질제어 최소 블록 사이즈의 상기 최소값이상이다. 단계S2407에서, CPU(901)는, 프레임 모두가 부호화되어 있는지를 판정한다. 프레임 모두가 부호화되지 않은 경우에는(단계S2407에서 NO), CPU(901)는, 단계S2406으로 진행되어 다음 프레임을 부호화한다. 프레임 모두가 부호화되어 있는 경우에는(단계S2407에서 YES), CPU(901)는, 부호화 처리를 종료한다.
프로파일과 레벨의 제공과 화질제어 최소 블록 사이즈의 제한은, 화상 사이즈에 따라 화질제어 최소 블록 사이즈를 판정하는 것을 가능하게 한다. 따라서, 화질의 저하없이 보다 작은 블록에서의 동작을 생략하면서 화상을 부호화하는 것이 가능하다. 이에 따라 의도된 장치의 최적회로를 설계하는 것이 가능하고, 억제된 특정 소비전력의 구성을 설계하는 것이 가능하다. 예를 들면, 모바일 통신에 베이스라인 프로파일을 사용하여도 되어, 배터리 가동시간 때문에 부호화 동작에 대해 심하게 부하가 제한될 수 있다. 메인 프로파일은, 배터리 없는 고정장치에 메인 프로파일을 사용하여도 됨에 따라서, 상기 동작 부하에 대해 보다 느슨하게 제한된다. 소프트웨어의 관점에서, 화질제어 최소 블록 사이즈보다 작은 블록에서 양자화 제어를 실행하는 동작시간이 생략되어 속도가 향상될 수 있다.
본 예시적 실시예와 같이, 프로파일 및 레벨기반 부호화방법은, 상기 제3 및 제5 예시적 실시예에 적용되어도 된다.
도 21a 및 21b에 나타낸, 레벨마다 판정된 화질제어 최소 블록 사이즈의 최소값은, 항상 각각의 레벨에 사용되어도 된다. 이러한 경우에, 프레임마다 포함되는 화질제어 최소 블록 사이즈 부호가 생략될 수 있다. 도 23b는 비트 스트림을 나타낸다. 도 23b에 나타낸 비트 스트림은, 도 23a와는 프레임 헤더가 화질제어 최소 블록 사이즈 부호를 포함하지 않는다는 점에서 다르다. 시퀀스에서 화질제어 최소 블록 사이즈는, 상기 프로파일과 레벨에 정의된 화질제어 최소 블록 사이즈의 최소값으로 고정된다. 이것은, 부호화 효율을 향상시키는 중복 부호를 제거하는 효과를 제공한다.
화질제어 최소 블록 사이즈보다 작은 양자화 매트릭스들을 기억하는 메모리 용량과 이러한 양자화 매트릭스들의 갱신 처리도 생략될 수 있다.
본 발명의 제8 예시적 실시예에서는, 상기 제7 예시적 실시예에서 생성된 비트 스트림을 복호하는 화상복호방법을 다룬다. 본 예시적 실시예에 따른 화상복호방법은, 도 9에 나타낸 구성을 사용하여서 실행된다.
프레임을 복호하기 전에, CPU(901)는, 시퀀스 헤더를 입력하여 복호한다. CPU(901)는, 도 23a에 따라 프로파일과 레벨에 관련된 부호를 복호한다. CPU(901)는, 화상폭 부호와 화상 높이 부호도 복호한다. 그 복호된 프로파일이 베이스라인 프로파일인 경우에, CPU(901)는, 도 21a의 테이블을 참조한다. CPU(901)는, 그 레벨에 대응한 화질제어 최소 블록 사이즈의 최소값을 추가로 선택하여 판정한다. 그 복호된 프로파일이 메인 프로파일인 경우, CPU(901)는, 도 21b의 테이블을 참조하고, 화질제어 최소 블록 사이즈의 최소값을 8로 설정한다.
이때에, CPU(901)는, RAM(902)에 버퍼와 그 밖의 필요한 메모리를 준비한다. 예를 들면, 레벨 2에서 베이스라인 프로파일을 사용하여, 8×8화소의 블록 사이즈에서 화질 제어를 실행한다. 이러한 경우에, 8×8화소의 블록과 4×4화소의 블록단위로 화질 파라미터를 기억하는 메모리 영역은 생략되어도 된다.
CPU(901)는, 제2 예시적 실시예에 설명되어 있던 도 14의 흐름도에 따라 프레임을 복호한다. 단계S1402에서, CPU(901)는, 프레임 헤더에 포함된 화질제어 최소 블록 사이즈를 복호한다. 단계S1405에서, CPU(901)는, 대상 블록인 격자 블록으로 계층적 복호를 실행한다. 제2 예시적 실시예에서 설명된 도 18의 단계S1805에서, CPU(901)는, 계층적 레벨에 따라 재귀적 처리를 실행함으로써, 화질제어 최소 블록 사이즈의 블록들까지 화질제어 파라미터를 복호한다.
도 25는 과정 전체를 나타내는 흐름도다. 단계S2501에서, CPU(901)는, 시퀀스 헤더를 입력한다. 단계S2502에서, CPU(901)는, 프로파일과 레벨의 부호화된 데이터를 복호하여서, 그 프로파일과 레벨을 취득한다. 단계S2503에서, CPU(901)는, 그 선택된 레벨에 따라 화질제어 최소 블록 사이즈의 최소값을 취득한다. 단계S2504에서, CPU(901)는, 프레임의 단위로 복호를 실행한다. 이것은, 반드시 각 프레임에서의 화질제어 최소 블록의 가능한 사이즈가 화질제어 최소 블록 사이즈의 상기 최소값 이상이도록 한다. 단계S2505에서, CPU(901)는, 프레임 모두가 복호되어 있는지를 판정한다. 프레임 모두가 복호되어 있지 않은 경우(단계S2505에서 NO), CPU(901)는, 단계S2504에 진행되어 다음 프레임을 복호한다. 프레임 모두가 복호되어 있는 경우(단계S2505에서 YES), CPU(901)는, 그 복호처리를 종료한다.
프로파일과 레벨의 제공과 화질제어 최소 블록 사이즈의 제한은, 화상 사이즈에 따라 화질제어 최소 블록 사이즈를 판정하는 것을 가능하게 한다. 따라서, 화질의 저하없이 보다 작은 블록에서의 동작을 생략하면서 화상을 복호하는 것이 가능하다. 화질제어 최소 블록 사이즈의 판정은, 재귀적 처리의 횟수를 줄일 수 있음으로써, 격자블록 단위로 복호를 실행하기 위한 시간상의 변동을 억제할 수 있다.
이에 따라, 의도된 장치의 최적회로를 설계하는 것이 가능하고, 억제된 특정 소비전력의 구성을 설계하는 것이 가능하다. 예를 들면, 모바일 통신에 베이스라인 프로파일을 사용하여도 되어, 배터리 가동시간 때문에 부호화 동작에 대해 심하게 부하가 제한될 수 있다. 메인 프로파일은, 배터리 없는 고정장치에 메인 프로파일을 사용하여도 됨에 따라서, 상기 동작 부하에 대해 보다 느슨하게 제한된다. 소프트웨어의 관점에서, 화질제어 최소 블록 사이즈보다 작은 블록에서 양자화 제어를 실행하는 동작시간이 생략되어 속도가 향상될 수 있다.
CPU(901)는, 도 23b에 따라 프로파일 및 레벨 관련 부호를 복호하여도 된다는 것을 알 것이다. 상술한 것처럼, CPU(901)는, 시퀀스 헤더를 입력하여 복호한다. 그 결과로 얻어진 프로파일과 레벨에 따라, CPU(901)는, 상기와 같은 화질제어 최소 블록 사이즈를 판정한다. 프레임을 복호하는 경우, CPU(901)는, 단계S1402를 건너뛰고, 그 화질제어 최소 블록 사이즈를 사용한다.
상기 프로파일과 레벨에 따른 화질제어 최소 블록 사이즈의 독특한 결정에 의해, 각 프레임 헤더에 화질제어 최소 블록 사이즈 부호없이 화상 복호가 가능하다.
CPU(901)는, 복호된 화질제어 최소 블록 사이즈와, 상기 프로파일과 레벨에 의해 결정된 화질제어 최소 블록 사이즈를 비교하여도 된다. 후자가 전자보다 큰 경우, CPU(901)는, 오차의 비트 스트림을 검출하여도 된다.
본 발명을 예시적 실시예들을 참조하여 기재하였지만, 본 발명은 상기 개시된 예시적 실시예들에 한정되지 않는다는 것을 알 것이다. 아래의 청구항의 범위는, 모든 변형예와 동등한 구조 및 기능을 포함하도록 폭 넓게 해석해야 한다.
본 출원은, 여기서 전체적으로 참고로 포함된, 2011년 1월 13일에 제출된 일본국 특허출원번호 2011-004648의 우선권을 주장한다.
(부호의 설명)
901 : 중앙처리장치(CPU) 902 : 랜덤 액세스 메모리(RAM)
903 : 하드 디스크 장치(HDD)) 904 : 비디오 RAM(VRAM)
905 : 통신 인터페이스
1001 : 중앙처리장치(CPU) 1002 : 랜덤 액세스 메모리(RAM)
1003 : 직교변환기(1003) 1004 : 양자화기
1005 : 가변길이 부호화기 1006 : 통신 인터페이스
1101 : 중앙처리장치(CPU) 1102 : 랜덤 액세스 메모리(RAM)
1103 : 역직교변환기 1104 : 역양자화기
1105 : 가변길이복호기 1106 : 통신 인터페이스

Claims (29)

  1. 화상 부호화장치에 있어서,
    화상에 포함되는 블록의 블록 사이즈를 판정하는 판정 유닛;
    양자화 파라미터와 관련된 최소 영역 사이즈에 대한 정보를 부호화하는 정보 부호화 유닛; 및
    복수의 블록을 포함하는 블록 조의 부호화 처리에서 공유 가능한 양자화 파라미터의 차분값을 부호화하는 부호화 유닛을 구비하고,
    상기 복수의 블록 각각의 사이즈는 상기 최소 영역 사이즈보다 작고,
    상기 복수의 블록은 적어도 제1 블록 및 상기 제1 블록 이후에 처리되는 제2 블록을 포함하고,
    상기 부호화 유닛은, 상기 제1 블록이 0이 아닌 계수값을 포함하는 경우, 상기 제1 블록의 처리에서 상기 차분값을 부호화하고,
    상기 부호화 유닛은, 상기 제2 블록이 0이 아닌 계수값을 포함하고 상기 차분값이 상기 제1 블록의 상기 처리에서 부호화되지 않는 경우, 상기 제2 블록의 처리에서 상기 차분값을 부호화하는, 화상 부호화장치.
  2. 제 1 항에 있어서,
    상기 부호화 유닛은, 대상 블록이 상기 최소 영역 사이즈 이상의 사이즈를 갖는 경우, 상기 대상 블록의 처리에서, 상기 대상 블록의 부호화 처리에 사용된 양자화 파라미터의 차분값을 부호화하는, 화상 부호화장치.
  3. 제 2 항에 있어서,
    상기 부호화 유닛은, 상기 대상 블록이 분할되지 않은 경우, 상기 대상 블록의 상기 처리에서, 상기 대상 블록의 상기 부호화 처리에 사용된 상기 양자화 파라미터의 상기 차분값을 부호화하는, 화상 부호화장치.
  4. 제 1 항에 있어서,
    상기 부호화 유닛은, 상기 블록 조의 하나의 블록에서 상기 양자화 파라미터의 상기 차분값을 부호화하는, 화상 부호화장치.
  5. 제 1 항에 있어서,
    상기 부호화 처리는 양자화 처리를 포함하는, 화상 부호화장치.
  6. 제 1 항에 있어서,
    상기 최소 영역 사이즈에 대한 정보는 블록 사이즈를 식별할 수 있는 인덱스로 표시되는, 화상 부호화장치.
  7. 제 1 항에 있어서,
    상기 판정 유닛은 상기 블록을 분할할지의 여부를 나타내는 정보에 근거하여, 상기 블록의 블록 사이즈에 대한 정보를 판정하는, 화상 부호화장치.
  8. 제 1 항에 있어서,
    상기 부호화 유닛은, 상기 차분값이 상기 제1 블록의 상기 처리에서 부호화되는 경우, 상기 제2 블록의 상기 처리에서 상기 차분값을 부호화하지 않는, 화상 부호화장치.
  9. 제 1 항에 있어서,
    상기 최소 영역 사이즈는 양자화 처리를 제어하기 위한 블록 사이즈인, 화상 부호화장치.
  10. 제 1 항에 있어서,
    상기 최소 영역 사이즈는 양자화 처리를 제어하기 위한 최소 블록 사이즈인, 화상 부호화장치.
  11. 제 1 항에 있어서,
    상기 부호화 유닛은, 상기 양자화 파라미터를 사용하는 양자화 처리를 포함하는 상기 부호화 처리를 실행함으로써 화상 데이터를 부호화하는, 화상 부호화장치.
  12. 제 1 항에 있어서,
    상기 부호화 유닛은, 상기 제1 블록이 0이 아닌 계수값을 포함하지 않는 경우, 상기 제1 블록의 상기 처리에서 상기 차분값을 부호화하지 않는, 화상 부호화장치.
  13. 화상 데이터를 부호화함으로써 생성된 부호화 데이터를 복호하는 화상 복호장치에 있어서,
    양자화 파라미터와 관련된 최소 영역 사이즈에 대한 정보 및 화상에 포함되는 블록의 블록 사이즈에 대한 정보를 취득하는 취득 유닛; 및
    복수의 블록을 포함하는 블록 조의 복호 처리에서 공유 가능한 양자화 파라미터의 차분값을 복호하는 복호 유닛을 구비하고,
    상기 복수의 블록 각각의 사이즈는 상기 최소 영역 사이즈보다 작고,
    상기 복수의 블록은 적어도 제1 블록 및 상기 제1 블록 이후에 처리되는 제2 블록을 포함하고,
    상기 복호 유닛은, 상기 제1 블록이 0이 아닌 계수값을 포함하는 경우, 상기 제1 블록의 처리에서 상기 차분값을 복호하고,
    상기 복호 유닛은, 상기 제2 블록이 0이 아닌 계수값을 포함하고 상기 차분값이 상기 제1 블록의 상기 처리에서 복호되지 않는 경우, 상기 제2 블록의 처리에서 상기 차분값을 복호하는, 화상 복호장치.
  14. 제 13 항에 있어서,
    상기 복호 유닛은, 대상 블록이 상기 최소 영역 사이즈 이상의 사이즈를 갖는 경우, 상기 대상 블록의 처리에서, 상기 대상 블록의 복호 처리에 사용된 양자화 파라미터의 차분값을 부호화하는, 화상 복호장치.
  15. 제 14 항에 있어서,
    상기 복호 유닛은, 상기 대상 블록이 분할되지 않은 경우, 상기 대상 블록의 상기 처리에서 상기 대상 블록의 상기 복호 처리에 사용된 상기 양자화 파라미터의 상기 차분값을 복호하는, 화상 복호장치.
  16. 제 13 항에 있어서,
    상기 복호 유닛은, 상기 블록 조의 하나의 블록에서 상기 양자화 파라미터의 상기 차분값을 복호하는, 화상 복호장치.
  17. 제 13 항에 있어서,
    상기 복호 처리는 역양자화 처리를 포함하는, 화상 복호장치.
  18. 제 13 항에 있어서,
    상기 최소 영역 사이즈에 대한 정보는 블록 사이즈를 식별할 수 있는 인덱스로 표시되는, 화상 복호장치.
  19. 제 13 항에 있어서,
    상기 취득 유닛은, 상기 블록을 분할할지의 여부를 나타내는 정보에 근거하여, 상기 블록 사이즈에 대한 상기 정보를 취득하는, 화상 복호장치.
  20. 제 13 항에 있어서,
    상기 복호 유닛은, 상기 차분값이 상기 제1 블록의 상기 처리에서 복호되는 경우, 상기 제2 블록의 상기 처리에서 상기 차분값을 복호하지 않는, 화상 복호장치.
  21. 제 13 항에 있어서,
    상기 최소 영역 사이즈는 역양자화 처리를 제어하기 위한 블록 사이즈인, 화상 복호장치.
  22. 제 13 항에 있어서,
    상기 최소 영역 사이즈는 역양자화 처리를 제어하기 위한 최소 블록 사이즈인, 화상 복호장치.
  23. 제 13 항에 있어서,
    상기 복호 유닛은, 상기 양자화 파라미터를 사용하는 역양자화 처리를 포함하는 상기 복호 처리를 실행함으로써 상기 부호화 데이터를 복호하는, 화상 복호장치.
  24. 제 13 항에 있어서,
    상기 복호 유닛은, 상기 제1 블록이 0이 아닌 계수값을 포함하지 않는 경우, 상기 제1 블록의 상기 처리에서 상기 차분값을 복호하지 않는, 화상 복호장치.
  25. 제 13 항에 있어서,
    상기 차분값으로부터 상기 양자화 파라미터를 도출하는 도출 유닛을 더 구비하는, 화상 복호장치.
  26. 화상 부호화장치의 화상 부호화방법에 있어서,
    화상에 포함되는 블록의 블록 사이즈를 판정하는 판정 단계;
    양자화 파라미터와 관련된 최소 영역 사이즈에 대한 정보를 부호화하는 정보 부호화 단계; 및
    복수의 블록을 포함하는 블록 조의 부호화 처리에서 공유 가능한 양자화 파라미터의 차분값을 부호화하는 부호화 단계를 포함하고,
    상기 복수의 블록 각각의 사이즈는 상기 최소 영역 사이즈보다 작고,
    상기 복수의 블록은 적어도 제1 블록 및 상기 제1 블록 이후에 처리되는 제2 블록을 포함하고,
    상기 부호화 단계는, 상기 제1 블록이 0이 아닌 계수값을 포함하는 경우, 상기 제1 블록의 처리에서 상기 차분값을 부호화하고,
    상기 부호화 단계는, 상기 제2 블록이 0이 아닌 계수값을 포함하고 상기 차분값이 상기 제1 블록의 상기 처리에서 부호화되지 않는 경우, 상기 제2 블록의 처리에서 상기 차분값을 부호화하는, 화상 부호화장치의 화상 부호화방법.
  27. 화상 데이터를 부호화함으로써 생성된 부호화 데이터를 복호하는 화상 복호장치의 화상 복호방법에 있어서,
    양자화 파라미터와 관련된 최소 영역 사이즈에 대한 정보 및 화상에 포함되는 블록의 블록 사이즈에 대한 정보를 취득하는 취득 단계; 및
    복수의 블록을 포함하는 블록 조의 복호 처리에서 공유 가능한 양자화 파라미터의 차분값을 복호하는 복호 단계를 포함하고,
    상기 복수의 블록 각각의 사이즈는 상기 최소 영역 사이즈보다 작고,
    상기 복수의 블록은 적어도 제1 블록 및 상기 제1 블록 이후에 처리되는 제2 블록을 포함하고,
    상기 복호 단계는, 상기 제1 블록이 0이 아닌 계수값을 포함하는 경우, 상기 제1 블록의 처리에서 상기 차분값을 복호하고,
    상기 복호 단계는, 상기 제2 블록이 0이 아닌 계수값을 포함하고 상기 차분값이 상기 제1 블록의 상기 처리에서 복호되지 않는 경우, 상기 제2 블록의 처리에서 상기 차분값을 복호하는, 화상 복호장치의 화상 복호방법.
  28. 컴퓨터를 청구항 1에 기재된 화상 부호화장치의 각 유닛으로 기능시키기 위한 컴퓨터 프로그램을 기억하는 컴퓨터 판독 가능한 기억매체.
  29. 컴퓨터를 청구항 13에 기재된 화상 복호장치의 각 유닛으로 기능시키기 위한 컴퓨터 프로그램을 기억하는 컴퓨터 판독 가능한 기억매체.
KR1020187002773A 2011-01-13 2012-01-12 화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체 KR101888515B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2011-004648 2011-01-13
JP2011004648 2011-01-13
PCT/JP2012/000151 WO2012096181A1 (en) 2011-01-13 2012-01-12 Image coding apparatus, image coding method, and program, and image decoding apparatus, image decoding method, and program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020157023368A Division KR101825110B1 (ko) 2011-01-13 2012-01-12 화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체

Related Child Applications (2)

Application Number Title Priority Date Filing Date
KR1020187022852A Division KR101969359B1 (ko) 2011-01-13 2012-01-12 화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체
KR1020187022851A Division KR101969362B1 (ko) 2011-01-13 2012-01-12 화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체

Publications (2)

Publication Number Publication Date
KR20180014846A true KR20180014846A (ko) 2018-02-09
KR101888515B1 KR101888515B1 (ko) 2018-08-14

Family

ID=46507086

Family Applications (5)

Application Number Title Priority Date Filing Date
KR1020187002773A KR101888515B1 (ko) 2011-01-13 2012-01-12 화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체
KR1020157023368A KR101825110B1 (ko) 2011-01-13 2012-01-12 화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체
KR1020137021091A KR101598822B1 (ko) 2011-01-13 2012-01-12 화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체
KR1020187022851A KR101969362B1 (ko) 2011-01-13 2012-01-12 화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체
KR1020187022852A KR101969359B1 (ko) 2011-01-13 2012-01-12 화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체

Family Applications After (4)

Application Number Title Priority Date Filing Date
KR1020157023368A KR101825110B1 (ko) 2011-01-13 2012-01-12 화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체
KR1020137021091A KR101598822B1 (ko) 2011-01-13 2012-01-12 화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체
KR1020187022851A KR101969362B1 (ko) 2011-01-13 2012-01-12 화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체
KR1020187022852A KR101969359B1 (ko) 2011-01-13 2012-01-12 화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체

Country Status (11)

Country Link
US (6) US9445094B2 (ko)
EP (5) EP3905680B1 (ko)
JP (6) JP5963446B2 (ko)
KR (5) KR101888515B1 (ko)
CN (6) CN106454362B (ko)
BR (6) BR122019025405B8 (ko)
ES (5) ES2883132T3 (ko)
HU (5) HUE060051T2 (ko)
PL (5) PL3905680T3 (ko)
RU (5) RU2551801C2 (ko)
WO (1) WO2012096181A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9549190B2 (en) * 2009-10-01 2017-01-17 Sk Telecom Co., Ltd. Method and apparatus for encoding/decoding image using variable-size macroblocks
BR122019025405B8 (pt) 2011-01-13 2023-05-02 Canon Kk Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento
JP6130128B2 (ja) * 2012-11-30 2017-05-17 任天堂株式会社 圧縮データのデータ構造、記録媒体、データ圧縮装置、データ圧縮システム、データ圧縮プログラム、およびデータ圧縮方法
US20150145535A1 (en) * 2013-11-26 2015-05-28 Semtech Corporation Capacitive sensing interface for proximity detection
US10298927B2 (en) * 2014-03-28 2019-05-21 Sony Corporation Image decoding device and method
US10735728B2 (en) 2015-10-12 2020-08-04 Lg Electronics Inc. Method for processing image and apparatus therefor
JPWO2018092868A1 (ja) 2016-11-21 2019-10-17 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 符号化装置、復号装置、符号化方法及び復号方法
WO2018092869A1 (ja) 2016-11-21 2018-05-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
EP3383043A1 (en) 2017-03-27 2018-10-03 Thomson Licensing Methods and apparatus for picture encoding and decoding
WO2019076138A1 (en) * 2017-10-16 2019-04-25 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR ENCODING
EP3737098A4 (en) 2018-01-02 2021-06-09 Samsung Electronics Co., Ltd. CODING PROCESS AND ASSOCIATED APPARATUS, AND DECODING PROCESS AND ASSOCIATED APPARATUS
WO2019164660A1 (en) 2018-02-23 2019-08-29 Futurewei Technologies, Inc. Position dependent spatial varying transform for video coding
CA3157007A1 (en) * 2018-05-22 2019-11-28 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, decoding method, and picture compression program
PT3782361T (pt) 2018-05-31 2023-11-17 Huawei Tech Co Ltd Transformada que varia espacialmente com um tipo de transformada adaptativa
JP7278719B2 (ja) 2018-06-27 2023-05-22 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US20200068197A1 (en) * 2018-08-27 2020-02-27 Ati Technologies Ulc Benefit-based bitrate distribution for video encoding
CN110881129B (zh) * 2018-09-05 2024-01-05 华为技术有限公司 视频解码方法及视频解码器
US11399195B2 (en) * 2019-10-30 2022-07-26 Tencent America LLC Range of minimum coding block size in video coding
CN114697656B (zh) * 2020-12-31 2024-02-13 浙江宇视科技有限公司 一种编码方法、装置、电子设备及介质
CN113658283B (zh) * 2021-08-18 2023-11-28 北京达佳互联信息技术有限公司 图像处理方法、装置、电子设备及存储介质

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0535963B1 (en) * 1991-10-02 1998-06-10 Matsushita Electric Industrial Co., Ltd. Orthogonal transformation encoder
US5754699A (en) * 1994-11-24 1998-05-19 Victor Company Of Japan, Ltd. Method of reducing mosquito noise generated during decoding process of image data and device for decoding image data using the same
US6002802A (en) * 1995-10-27 1999-12-14 Kabushiki Kaisha Toshiba Video encoding and decoding apparatus
US6366614B1 (en) 1996-10-11 2002-04-02 Qualcomm Inc. Adaptive rate control for digital video compression
US6124811A (en) * 1998-07-02 2000-09-26 Intel Corporation Real time algorithms and architectures for coding images compressed by DWT-based techniques
US6570926B1 (en) * 1999-02-25 2003-05-27 Telcordia Technologies, Inc. Active techniques for video transmission and playback
US6477280B1 (en) * 1999-03-26 2002-11-05 Microsoft Corporation Lossless adaptive encoding of finite alphabet data
US6600836B1 (en) * 2000-01-28 2003-07-29 Qualcomm, Incorporated Quality based image compression
KR100973216B1 (ko) 2002-04-23 2010-07-30 노키아 코포레이션 비디오 부호화 시스템에서 양자화 변수들을 표시하는 방법 및 장치
US6795584B2 (en) * 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
EP1453004A2 (en) * 2003-02-28 2004-09-01 NTT DoCoMo, Inc. Image encoding apparatus and method
JP3959039B2 (ja) * 2003-02-28 2007-08-15 株式会社エヌ・ティ・ティ・ドコモ 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法、及び画像復号プログラム
US6900748B2 (en) * 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
JP4127818B2 (ja) 2003-12-24 2008-07-30 株式会社東芝 動画像符号化方法及びその装置
US20050259730A1 (en) * 2004-05-18 2005-11-24 Sharp Laboratories Of America, Inc. Video coding with residual color conversion using reversible YCoCg
JP4247680B2 (ja) * 2004-07-07 2009-04-02 ソニー株式会社 符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体
JP2006157481A (ja) * 2004-11-30 2006-06-15 Canon Inc 画像符号化装置及びその方法
JP4737991B2 (ja) * 2005-01-04 2011-08-03 株式会社東芝 再生装置
US8019000B2 (en) * 2005-02-24 2011-09-13 Sanyo Electric Co., Ltd. Motion vector detecting device
JP4146444B2 (ja) * 2005-03-16 2008-09-10 株式会社東芝 動画像符号化の方法及び装置
KR101246915B1 (ko) * 2005-04-18 2013-03-25 삼성전자주식회사 동영상 부호화 또는 복호화 방법 및 장치
EP1753242A2 (en) * 2005-07-18 2007-02-14 Matsushita Electric Industrial Co., Ltd. Switchable mode and prediction information coding
JP2007116351A (ja) 2005-10-19 2007-05-10 Ntt Docomo Inc 画像予測符号化装置、画像予測復号装置、画像予測符号化方法、画像予測復号方法、画像予測符号化プログラム、及び画像予測復号プログラム
KR101200865B1 (ko) * 2006-03-23 2012-11-13 삼성전자주식회사 영상의 부호화 방법 및 장치, 복호화 방법 및 장치
KR20080045516A (ko) * 2006-11-20 2008-05-23 삼성전자주식회사 Rgb 영상의 부호화 및 복호화 방법과 그 장치
EP3107292B1 (en) 2007-03-20 2018-08-15 Fujitsu Limited Video encoding method and apparatus, and video decoding apparatus
JP4650461B2 (ja) * 2007-07-13 2011-03-16 ソニー株式会社 符号化装置、符号化方法、プログラム、及び記録媒体
US8345763B2 (en) * 2007-11-27 2013-01-01 Mediatek Inc. Motion compensation method and integrated circuit utilizing the same
KR101213704B1 (ko) * 2007-12-05 2012-12-18 삼성전자주식회사 가변 컬러 포맷 기반 동영상 부호화 방법 및 장치, 그복호화 방법 및 장치
JP5359302B2 (ja) * 2008-03-18 2013-12-04 ソニー株式会社 情報処理装置および方法、並びにプログラム
JP4506875B2 (ja) * 2008-05-19 2010-07-21 ソニー株式会社 画像処理装置および画像処理方法
WO2009157577A1 (ja) 2008-06-27 2009-12-30 ソニー株式会社 画像処理装置及び画像処理方法
JP5035910B2 (ja) * 2008-06-27 2012-09-26 ソニー株式会社 画像処理装置および画像処理方法、並びにプログラム
US9467699B2 (en) * 2008-12-03 2016-10-11 Hfi Innovation Inc. Method for performing parallel coding with ordered entropy slices, and associated apparatus
US9635368B2 (en) * 2009-06-07 2017-04-25 Lg Electronics Inc. Method and apparatus for decoding a video signal
EP2273796A3 (en) 2009-06-09 2011-12-21 Thomson Licensing Method and device for coding
JP4774451B2 (ja) 2009-06-25 2011-09-14 株式会社大潟村あきたこまち生産者協会 米麺の製造方法と該方法による米麺と該米麺による乾麺
US20110274162A1 (en) * 2010-05-04 2011-11-10 Minhua Zhou Coding Unit Quantization Parameters in Video Coding
EP4290860A3 (en) * 2010-06-04 2024-02-14 Sony Group Corporation Image processing apparatus and method
US20110317757A1 (en) * 2010-06-25 2011-12-29 Qualcomm Incorporated Intra prediction mode signaling for finer spatial prediction directions
US8848779B2 (en) * 2010-07-15 2014-09-30 Sharp Laboratories Of America, Inc. Method of parallel video coding based on block size
US20120044992A1 (en) * 2010-08-17 2012-02-23 Qualcomm Incorporated Low complexity adaptive filter
MX2013001774A (es) * 2010-09-30 2013-03-18 Panasonic Corp Metodo de decodificacion de imagen, metodo de codificacion de imagen, aparato de decodificacion de imagen, aparato codificacion de imagen, programa, y circuito integrado.
US20120114034A1 (en) * 2010-11-08 2012-05-10 Mediatek Inc. Method and Apparatus of Delta Quantization Parameter Processing for High Efficiency Video Coding
CN105847830B (zh) * 2010-11-23 2019-07-12 Lg电子株式会社 由编码装置和解码装置执行的间预测方法
US9288496B2 (en) * 2010-12-03 2016-03-15 Qualcomm Incorporated Video coding using function-based scan order for transform coefficients
BR122019025405B8 (pt) 2011-01-13 2023-05-02 Canon Kk Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento
CN102685478B (zh) * 2011-03-11 2015-04-29 华为技术有限公司 编码方法以及装置、解码方法以及装置
US9609336B2 (en) * 2013-04-16 2017-03-28 Fastvdo Llc Adaptive coding, transmission and efficient display of multimedia (acted)
US20140376611A1 (en) * 2013-06-21 2014-12-25 Qualcomm Incorporated Adaptive color transforms for video coding
US10291827B2 (en) * 2013-11-22 2019-05-14 Futurewei Technologies, Inc. Advanced screen content coding solution
JP6368795B2 (ja) * 2014-03-14 2018-08-01 ヴィド スケール インコーポレイテッド Rgbビデオコーディングエンハンスメントのためのシステムおよび方法
US10057578B2 (en) * 2014-10-07 2018-08-21 Qualcomm Incorporated QP derivation and offset for adaptive color transform in video coding
US10390020B2 (en) * 2015-06-08 2019-08-20 Industrial Technology Research Institute Video encoding methods and systems using adaptive color transform

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Working Draft 1 of High-Efficiency Video Coding(JCTVC-C403), Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11(2011.01.06.) *

Also Published As

Publication number Publication date
JP2016192794A (ja) 2016-11-10
JP6338621B2 (ja) 2018-06-06
JP6686206B2 (ja) 2020-04-22
US20190020874A1 (en) 2019-01-17
RU2015113380A (ru) 2015-09-10
JP6801037B2 (ja) 2020-12-16
KR101969359B1 (ko) 2019-04-16
ES2926203T3 (es) 2022-10-24
PL3905679T3 (pl) 2022-10-24
BR112013017952B1 (pt) 2022-08-02
JP2019146228A (ja) 2019-08-29
KR20150104221A (ko) 2015-09-14
BR122019025405B1 (pt) 2022-10-11
EP3905680A1 (en) 2021-11-03
JP2012161074A (ja) 2012-08-23
EP3668094B1 (en) 2022-11-23
KR20180091966A (ko) 2018-08-16
US10750177B2 (en) 2020-08-18
HUE055548T2 (hu) 2021-12-28
BR122019025404B8 (pt) 2023-05-02
US20190364280A1 (en) 2019-11-28
EP2664147B1 (en) 2020-03-11
BR122019025407B1 (pt) 2022-10-11
US20160353105A1 (en) 2016-12-01
BR122019025407B8 (pt) 2023-05-02
US9445094B2 (en) 2016-09-13
ES2784761T3 (es) 2020-09-30
CN106412591B (zh) 2019-09-06
JP2019146226A (ja) 2019-08-29
US20140119455A1 (en) 2014-05-01
US10382757B2 (en) 2019-08-13
BR122019025404B1 (pt) 2022-10-11
JP6513261B2 (ja) 2019-05-15
HUE048896T2 (hu) 2020-08-28
RU2613736C2 (ru) 2017-03-21
EP3668095B1 (en) 2021-07-07
CN106412591A (zh) 2017-02-15
JP2018152884A (ja) 2018-09-27
HUE060786T2 (hu) 2023-04-28
RU2668727C2 (ru) 2018-10-02
RU2017107973A3 (ko) 2018-09-13
US10110899B2 (en) 2018-10-23
BR122019025404A2 (pt) 2020-02-18
PL3668094T3 (pl) 2023-02-13
US20180152705A1 (en) 2018-05-31
BR122019025406A2 (pt) 2020-02-18
EP3905680B1 (en) 2022-07-20
RU2701054C1 (ru) 2019-09-24
RU2017107973A (ru) 2018-09-13
BR122022013139B1 (pt) 2023-04-04
JP2019146227A (ja) 2019-08-29
CN106488242B (zh) 2020-02-28
RU2690218C1 (ru) 2019-05-31
KR101888515B1 (ko) 2018-08-14
BR122019025406B1 (pt) 2023-03-21
ES2936531T3 (es) 2023-03-17
PL3668095T3 (pl) 2021-12-13
RU2013137765A (ru) 2015-02-20
CN106454362A (zh) 2017-02-22
KR101969362B1 (ko) 2019-04-16
BR122019025407A2 (pt) 2020-02-18
PL3905680T3 (pl) 2022-10-31
CN105959693A (zh) 2016-09-21
ES2883132T3 (es) 2021-12-07
KR101598822B1 (ko) 2016-03-14
RU2551801C2 (ru) 2015-05-27
KR20180093099A (ko) 2018-08-20
EP3668095A1 (en) 2020-06-17
EP3668094A1 (en) 2020-06-17
HUE060051T2 (hu) 2023-01-28
ES2924028T3 (es) 2022-10-04
US20190020873A1 (en) 2019-01-17
BR122019025405A2 (pt) 2020-02-18
CN106454362B (zh) 2019-06-28
EP3905679B1 (en) 2022-07-27
JP6801038B2 (ja) 2020-12-16
CN103380620A (zh) 2013-10-30
WO2012096181A1 (en) 2012-07-19
CN103380620B (zh) 2016-12-14
CN106454361A (zh) 2017-02-22
BR112013017952A2 (pt) 2019-12-10
KR20140022797A (ko) 2014-02-25
US9918089B2 (en) 2018-03-13
BR122019025405B8 (pt) 2023-05-02
EP2664147A1 (en) 2013-11-20
EP3905679A1 (en) 2021-11-03
US10397575B2 (en) 2019-08-27
KR101825110B1 (ko) 2018-03-14
CN106454361B (zh) 2019-06-28
CN106488242A (zh) 2017-03-08
JP5963446B2 (ja) 2016-08-03
PL2664147T3 (pl) 2020-08-24
EP2664147A4 (en) 2015-11-18
HUE059647T2 (hu) 2022-12-28
CN105959693B (zh) 2019-03-29

Similar Documents

Publication Publication Date Title
KR101888515B1 (ko) 화상 부호화장치, 화상 부호화방법, 화상복호장치, 화상복호방법 및 기억매체
CN107396117B (zh) 视频编码和解码方法及非暂时性计算机可读存储介质

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant