KR102667983B1 - 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법 - Google Patents

화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법 Download PDF

Info

Publication number
KR102667983B1
KR102667983B1 KR1020227000909A KR20227000909A KR102667983B1 KR 102667983 B1 KR102667983 B1 KR 102667983B1 KR 1020227000909 A KR1020227000909 A KR 1020227000909A KR 20227000909 A KR20227000909 A KR 20227000909A KR 102667983 B1 KR102667983 B1 KR 102667983B1
Authority
KR
South Korea
Prior art keywords
image
information
flag
slice
brick
Prior art date
Application number
KR1020227000909A
Other languages
English (en)
Other versions
KR20220019283A (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
Priority claimed from JP2019115749A external-priority patent/JP2021002773A/ja
Application filed by 캐논 가부시끼가이샤 filed Critical 캐논 가부시끼가이샤
Publication of KR20220019283A publication Critical patent/KR20220019283A/ko
Application granted granted Critical
Publication of KR102667983B1 publication Critical patent/KR102667983B1/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/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/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods 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 using parallelised computational arrangements
    • 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

Abstract

화상을 복수의 타일로 분할하고, 해당 타일을, 해당 타일 이하의 크기의 복수의 블록을 포함하는 블록행을 하나 이상 포함하는 직사각형 영역으로 분할한다. 화상에 있어서의 각 슬라이스가 하나만의 직사각형 영역을 포함하는 경우에, 해당 직사각형 영역에 있어서의 수직 방향에 있어서의 블록의 수에 기초하여, 슬라이스에 있어서의 블록행의 부호 데이터의 선두 위치를 특정하기 위한 정보의 수를 특정한다. 특정한 수의 정보와, 화상에 있어서의 각 슬라이스가 하나만의 직사각형 영역으로 구성되어 있는 것을 나타내는 정보와, 블록행의 부호 데이터를, 적어도 다중화한 비트 스트림을 생성한다.

Description

화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법
본 발명은 화상의 부호화/복호 기술에 관한 것이다.
동화상의 압축 기록의 부호화 방식으로서, HEVC(High Efficiency Video Coding) 부호화 방식(이하, HEVC라고 기재함)이 알려져 있다. HEVC에서는 부호화 효율 향상을 위하여, 종래의 매크로 블록(16×16 화소)보다 큰 사이즈의 기본 블록이 채용되었다. 이 큰 사이즈의 기본 블록은 CTU(Coding Tree Unit)라고 불리고, 그 사이즈는 최대 64×64 화소이다. CTU는 또한 예측이나 변환을 행하는 단위가 되는 서브 블록으로 분할된다.
또한 HEVC에서는, 픽처를 복수의 타일 또는 슬라이스로 분할하여 부호화하는 것이 가능하다. 각 타일간 또는 슬라이스간에는 데이터의 의존성이 적고, 병렬로 부호화·복호화 처리를 실시할 수 있다. 멀티코어의 CPU 등으로 병렬로 처리를 실행하고, 처리 시간을 단축시킬 수 있는 것이, 타일, 슬라이스 분할의 큰 이점 중 하나로서 들 수 있다.
또한, 각 슬라이스는 HEVC에 채용되고 있는 종래의 2치 산술 부호화의 방법에 의해 부호화된다. 즉, 각 신택스 요소가 2치화되어, 2치 신호가 생성된다. 각 신택스 요소에는, 미리 발생 확률이 테이블(이하, 발생 확률 테이블)로서 부여되고, 2치 신호는 발생 확률 테이블에 기초하여 산술 부호화된다. 이 발생 확률 테이블은 복호 시에는 복호 정보로서, 계속되는 부호의 복호에 사용된다. 부호화 시에는 부호화 정보로서, 계속되는 부호화에 사용된다. 그리고 부호화가 행해질 때마다, 부호화된 2치 신호가 발생 확률이 높은 쪽의 심볼이었는지 여부 등의 통계 정보에 기초하여 발생 확률 테이블이 갱신된다.
또한 HEVC에는, Wavefront Parallel Processing(이하, WPP)이라 불리는 엔트로피 부호화·복호화를 병렬로 처리하기 위한 방법이 있다. WPP에서는, 미리 지정된 위치의 블록을 부호화 처리한 시점에서의 발생 확률의 테이블을, 다음 행의 좌측 단부의 블록에 적용함으로써, 부호화 효율의 저하를 억제한 후에 행 단위의 블록의 병렬 부호화 처리가 가능해진다. 블록행 단위의 병렬 처리를 가능하게 하기 위해서, 슬라이스 헤더에는 비트 스트림 중의 각 블록행의 선두 위치를 나타내는 entry_point_offset_minus1 및 그 수를 나타내는 num_entry_point_offsets가 부호화된다. 특허문헌 1에서는, WPP에 관련되는 기술이 개시되어 있다.
최근, HEVC의 후계로서 더욱 고효율의 부호화 방식의 국제 표준화를 행하는 활동이 개시되었다. JVET(Joint Video Experts Team)가 ISO/IEC와 ITU-T의 사이에 설립되고, VVC(Versatile Video Coding) 부호화 방식(이하, VVC)으로서 표준화가 진행되고 있다. VVC에서는, 타일을 또한 복수의 블록행으로 구성되는 직사각형(브릭)으로 분할하는 것이 검토되고 있다. 그리고 슬라이스는 하나 이상의 브릭을 포함하도록 구성된다.
일본 특허 공개 제2014-11638호 공보
VVC에 있어서는, 슬라이스를 구성하는 브릭이 미리 도출 가능하고, 또한 그 브릭에 내포되는 기본 블록행의 수도 다른 신택스로부터 도출 가능하다. 그 때문에, 해당 슬라이스에 속하는 기본 블록행의 선두 위치를 나타내는 entry_point_offset_minus1의 수를, num_entry_point_offset를 사용하지 않고 도출하는 것이 가능하다. 그 때문에 num_entry_point_offset는 용장의 신택스가 된다. 본 발명에서는, 용장의 신택스를 저감시킴으로써 비트 스트림의 부호량을 저감시키는 기술을 제공한다.
본 발명의 일 양태는, 화상을 복수의 타일로 분할하고, 해당 타일을, 해당 타일 이하의 크기의 복수의 블록을 포함하는 블록행을 하나 이상 포함하는 직사각형 영역으로 분할하는 분할 수단과, 상기 화상에 있어서의 각 슬라이스가 하나만의 상기 직사각형 영역을 포함하는 경우에, 해당 직사각형 영역에 있어서의 수직 방향에 있어서의 블록의 수에 기초하여, 상기 슬라이스에 있어서의 블록행의 부호 데이터의 선두 위치를 특정하기 위한 정보의 수를 특정하는 특정 수단과, 상기 특정 수단에 의해 특정한 수의 상기 선두 위치를 특정하기 위한 상기 정보와, 상기 화상에 있어서의 각 슬라이스가 하나만의 상기 직사각형 영역으로 구성되어 있는 것을 나타내는 정보와, 상기 블록행의 부호 데이터를, 적어도 다중화한 비트 스트림을 생성하는 생성 수단을 포함하는 것을 특징으로 한다.
본 발명의 구성에 의하면, 용장의 신택스를 저감시킴으로써 비트 스트림의 부호량을 저감시킬 수 있다.
본 발명의 기타 특징 및 이점은, 첨부 도면을 참조로 한 이하의 설명에 의해 밝혀질 것이다. 또한, 첨부 도면에 있어서는, 동일하거나 혹은 마찬가지의 구성에는 동일한 참조 번호를 붙인다.
첨부 도면은 명세서에 포함되고, 그 일부를 구성하며, 본 발명의 실시 형태를 나타내고, 그 기술과 함께 본 발명의 원리를 설명하기 위해 사용된다.
도 1은 화상 부호화 장치의 기능 구성예를 나타내는 블록도.
도 2는 화상 복호 장치의 기능 구성예를 나타내는 블록도.
도 3은 화상 부호화 장치에 의한 입력 화상의 부호화 처리의 흐름도.
도 4는 화상 복호 장치에 의한 비트 스트림의 복호 처리의 흐름도.
도 5는 컴퓨터 장치의 하드웨어 구성예를 나타내는 블록도.
도 6은 비트 스트림의 포맷의 일례를 나타내는 도면.
도 7은 입력 화상의 분할예를 나타내는 도면.
도 8은 입력 화상의 분할예를 나타내는 도면.
도 9a는 타일과 슬라이스의 관계를 나타내는 도면.
도 9b는 타일과 슬라이스의 관계를 나타내는 도면.
이하, 첨부 도면을 참조하여 실시 형태를 상세하게 설명한다. 또한, 이하의 실시 형태는 특허 청구 범위에 관한 발명을 한정하는 것은 아니다. 실시 형태에는 복수의 특징이 기재되어 있지만, 이들 복수의 특징의 모두가 발명에 필수라고 한정되지는 않고, 또한 복수의 특징은 임의로 조합할 수 있어도 된다. 또한, 첨부 도면에 있어서는, 동일 혹은 마찬가지의 구성에 동일한 참조 번호를 붙이고, 중복한 설명은 생략한다.
[제1 실시 형태]
우선, 본 실시 형태에 관한 화상 부호화 장치의 기능 구성예에 대하여, 도 1의 블록도를 사용하여 설명한다. 화상 분할부(102)에는, 부호화 대상이 되는 입력 화상이 입력된다. 입력 화상은 동화상을 구성하는 각 프레임의 화상이어도 되고, 정지 화상이어도 된다. 화상 분할부(102)는 입력 화상을 「하나 혹은 복수의 타일」로 분할한다. 타일은 입력 화상 내의 직사각형 영역을 덮는, 연속되는 기본 블록의 집합이다. 화상 분할부(102)는 또한, 각각의 타일을 하나 혹은 복수의 브릭으로 분할한다. 브릭은, 타일 내의 하나 혹은 복수의 기본 블록의 행(기본 블록행)으로 구성되는 직사각형 영역(타일 이하의 크기의 복수의 블록을 포함하는 블록행을 하나 이상 포함하는 직사각형 영역)이다. 화상 분할부(102)는 또한 입력 화상을, 「하나 또는 복수의 타일」 혹은 「하나의 타일 내의 하나 이상의 브릭」으로 구성되는 슬라이스로 분할한다. 슬라이스는 부호화의 기본 단위이며, 슬라이스마다 슬라이스의 종류를 나타내는 정보 등의 헤더 정보가 부가된다. 입력 화상을 4개의 타일, 4개의 슬라이스, 11개의 브릭으로 분할하는 예를 도 7에 나타낸다. 좌측 상단의 타일은 1개의 브릭, 좌측 하단의 타일은 2개의 브릭, 우측 상단의 타일은 5개의 브릭, 우측 하단의 타일은 3개의 브릭으로 각각 분할되어 있다. 그리고 좌측의 슬라이스는 3개의 브릭, 우측 상단의 슬라이스는 2개의 브릭, 우측 중앙의 슬라이스는 3개의 브릭, 우측 하단의 슬라이스는 3개의 브릭을 포함하도록 구성되어 있다. 화상 분할부(102)는 이와 같이 하여 분할한 타일, 브릭, 슬라이스의 각각에 대하여, 크기에 관한 정보를 분할 정보로서 출력한다.
블록 분할부(103)는 화상 분할부(102)로부터 출력된 기본 블록행의 화상(기본 블록행 화상)을 복수의 기본 블록으로 분할하고, 기본 블록 단위의 화상(블록 화상)을, 후단으로 출력한다.
예측부(104)는 기본 블록 단위의 화상을 서브 블록으로 분할하고, 서브 블록 단위로 프레임내 예측인 인트라 예측이나 프레임간 예측인 인터 예측 등을 행하여, 예측 화상을 생성한다. 브릭을 넘는 인트라 예측(다른 브릭의 블록의 화소를 사용한 인트라 예측), 브릭을 넘는 움직임 벡터의 예측(다른 브릭의 블록의 움직임 벡터를 사용한 움직임 벡터의 예측)은 행해지지 않는다. 또한 예측부(104)는 입력된 화상과 예측 화상으로부터 예측 오차를 산출하여 출력한다. 또한 예측부(104)는 예측에 필요한 정보(예측 정보), 예를 들어 서브 블록 분할 방법, 예측 모드나 움직임 벡터 등의 정보도 예측 오차와 함께 출력한다.
변환·양자화부(105)는 예측 오차를 서브 블록 단위로 직교 변환하여 변환 계수를 구하고, 당해 구한 변환 계수를 양자화하여 양자화 계수를 구한다. 역양자화·역변환부(106)는 변환·양자화부(105)로부터 출력된 양자화 계수를 역양자화하여 변환 계수를 재생하고, 또한 해당 재생된 변환 계수를 역직교 변환하여 예측 오차를 재생한다.
프레임 메모리(108)는 재생된 화상을 저장해두는 메모리로서 기능한다. 화상 재생부(107)는 예측부(104)로부터 출력된 예측 정보에 기초하여 프레임 메모리(108)를 적절히 참조하여 예측 화상을 생성하고, 해당 예측 화상과 입력된 예측 오차로부터 재생 화상을 생성하여 출력한다.
인루프 필터부(109)는 재생 화상에 대하여 디블로킹 필터나 샘플 어댑티브 오프셋 등의 인루프 필터 처리를 행하고, 해당 인루프 필터 처리가 실시된 화상(필터 화상)을 출력한다.
부호화부(110)는 변환·양자화부(105)로부터 출력된 양자화 계수 및 예측부(104)로부터 출력된 예측 정보를 부호화함으로써 부호 데이터(부호화 데이터)를 생성하고, 해당 생성된 부호 데이터를 출력한다.
통합 부호화부(111)는 화상 분할부(102)로부터 출력된 분할 정보를 사용하여 헤더 부호 데이터를 생성하고, 해당 생성된 헤더 부호 데이터와, 부호화부(110)로부터 출력된 부호 데이터를 포함하는 비트 스트림을 생성하여 출력한다. 제어부(199)는 화상 부호화 장치 전체의 동작 제어를 행하는 것이며, 상기 화상 부호화 장치의 각 기능부의 동작 제어를 행한다.
이어서, 도 1에 나타낸 구성을 갖는 화상 부호화 장치에 의한 입력 화상에 대한 부호화 처리에 대하여 설명한다. 본 실시 형태에서는 설명을 용이하게 하기 위해서, 인트라 예측 부호화의 처리만을 설명하지만, 이것에 한정되지 않고 인터 예측 부호화의 처리에 있어서도 적용 가능하다. 또한 본 실시 형태에서는 구체적인 설명을 행하기 위해서, 블록 분할부(103)는 화상 분할부(102)로부터 출력된 기본 블록행 화상을 「64×64 화소의 사이즈를 갖는 기본 블록」을 단위로 분할하는 것으로서 설명한다.
화상 분할부(102)는 입력 화상을 타일 및 브릭으로 분할한다. 화상 분할부(102)에 의한 입력 화상의 분할예를 도 8에 나타낸다. 도 8에서는, 입력 화상이 4개의 타일 및 10개의 브릭으로 분할되어 있다. 본 실시 형태에서는 1536×1024 화소의 사이즈를 갖는 입력 화상을 4개의 타일(하나의 타일의 사이즈는 768×512 화소)로 분할한다.
좌측 상단의 타일은 브릭으로 분할하지 않고(하나의 타일을 하나의 브릭으로 분할하는 것에 등가), 그 결과, 타일=브릭으로 되어 있다. 좌측 하단의 타일은 2개의 브릭(하나의 브릭의 높이는 256 화소)으로 분할되어 있고, 우측 상단의 타일은 4개의 브릭(하나의 브릭의 높이는 128 화소)으로 분할되어 있다. 또한, 우측 하단의 타일은 3개의 브릭(각각의 브릭의 높이는 상측으로부터 차례로 192 화소, 128 화소, 192 화소)으로 분할되어 있다.
또한, 타일 내의 각 브릭에는 래스터순의 타일 중에서 상측으로부터 차례로 ID가 부여된다. 도 8에 나타내는 BID가 브릭의 ID이다. 본 실시 형태에서는, 각 슬라이스가 하나만의 브릭으로 구성되는 것으로 한다. 즉, 슬라이스 0에는 BID=0의 브릭, 슬라이스 1에는 BID=1의 브릭과 같은 식으로 슬라이스와 브릭에서 동일한 ID가 대응지어진다.
그리고 화상 분할부(102)는 분할한 타일, 브릭, 슬라이스의 각각에 대하여, 크기에 관한 정보를 분할 정보로서 통합 부호화부(111)로 출력한다. 또한 화상 분할부(102)는 각 브릭을 기본 블록행 화상으로 분할하고, 해당 분할한 기본 블록행 화상을 블록 분할부(103)로 출력한다.
블록 분할부(103)는 화상 분할부(102)로부터 출력된 기본 블록행 화상을 복수의 기본 블록으로 분할하고, 기본 블록 단위의 화상인 블록 화상(64×64 화소)을 후단의 예측부(104)에 대하여 출력한다.
예측부(104)는 기본 블록 단위의 화상을 서브 블록으로 분할하고, 서브 블록 단위로 수평 예측이나 수직 예측 등의 인트라 예측 모드를 결정하고, 해당 결정한 인트라 예측 모드 및 부호화 완료의 화소로부터 예측 화상을 생성한다. 또한 예측부(104)는 입력된 화상과 예측 화상으로부터 예측 오차를 산출하고, 해당 산출한 예측 오차를 변환·양자화부(105)에 대하여 출력한다. 또한 예측부(104)는 서브 블록 분할 방법이나 인트라 예측 모드 등의 정보를 예측 정보로서, 부호화부(110) 및 화상 재생부(107)에 대하여 출력한다.
변환·양자화부(105)는 예측부(104)로부터 출력된 예측 오차를 서브 블록 단위로 직교 변환(서브 블록의 사이즈에 대응한 직교 변환 처리)하여 변환 계수(직교 변환 계수)를 구한다. 그리고 변환·양자화부(105)는 당해 구한 변환 계수를 양자화하여 양자화 계수를 구한다. 그리고 변환·양자화부(105)는 당해 구한 양자화 계수를 부호화부(110) 및 역양자화·역변환부(106)에 대하여 출력한다.
역양자화·역변환부(106)는 변환·양자화부(105)로부터 출력된 양자화 계수를 역양자화하여 변환 계수를 재생하고, 또한 해당 재생된 변환 계수를 역직교 변환하여 예측 오차를 재생한다. 그리고 역양자화·역변환부(106)는 해당 재생된 예측 오차를 화상 재생부(107)에 대하여 출력한다.
화상 재생부(107)는 예측부(104)로부터 출력된 예측 정보에 기초하여 프레임 메모리(108)를 적절히 참조하여 예측 화상을 생성하고, 해당 예측 화상과, 역양자화·역변환부(106)로부터 입력된 예측 오차로부터 재생 화상을 생성한다. 그리고 화상 재생부(107)는 해당 생성된 재생 화상을 프레임 메모리(108)에 저장한다.
인루프 필터부(109)는 프레임 메모리(108)로부터 재생 화상을 판독하고, 해당 판독된 재생 화상에 대하여 디블로킹 필터나 샘플 어댑티브 오프셋 등의 인루프 필터 처리를 행한다. 그리고 인루프 필터부(109)는, 해당 인루프 필터 처리가 실시된 화상을 다시 프레임 메모리(108)에 저장(재저장)한다.
부호화부(110)는 변환·양자화부(105)로부터 출력된 양자화 계수 및 예측부(104)로부터 출력된 예측 정보를 엔트로피 부호화함으로써 부호 데이터를 생성한다. 엔트로피 부호화의 방법은 특별히 지정하지 않지만, 골롬 부호화, 산술 부호화, 허프만 코딩화 등을 사용할 수 있다. 그리고 부호화부(110)는 해당 생성된 부호 데이터를 통합 부호화부(111)에 대하여 출력한다.
통합 부호화부(111)는 화상 분할부(102)로부터 출력된 분할 정보를 사용하여 헤더 부호 데이터를 생성하고, 해당 생성된 헤더 부호 데이터와, 부호화부(110)로부터 출력된 부호 데이터를 다중화함으로써 비트 스트림을 생성하여 출력한다. 비트 스트림의 출력처는 특정 출력처에 한정되는 것은 아니고, 화상 부호화 장치의 내부 혹은 외부의 메모리에 출력(저장)해도 되고, LAN이나 인터넷 등의 네트워크를 통하여 화상 부호화 장치와 통신 가능한 외부 장치에 대하여 송신해도 된다.
이어서, 통합 부호화부(111)가 출력하는 비트 스트림(화상 부호화 장치가 부호화하는 VVC에 의한 부호 데이터)의 포맷의 일례를 도 6에 나타낸다. 도 6의 비트 스트림에는, 시퀀스의 부호화에 관계되는 정보가 포함된 헤더 정보인 시퀀스·파라미터·세트(SPS)가 포함되어 있다. 또한 도 6의 비트 스트림에는, 픽처의 부호화에 관계되는 정보가 포함된 헤더 정보인 픽처·파라미터·세트(PPS)가 포함되어 있다. 또한 도 6의 비트 스트림에는, 슬라이스의 부호화에 관계되는 정보가 포함된 헤더 정보인 슬라이스 헤더(SLH)가 포함되어 있다. 또한 도 6의 비트 스트림에는, 각 브릭(도 6에서는 브릭 0 내지 브릭(N-1))의 부호 데이터가 포함되어 있다.
SPS에는 화상 사이즈 정보와 기본 블록 데이터 분할 정보가 포함되어 있다. PPS에는, 타일의 분할 정보인 타일 데이터 분할 정보와, 브릭의 분할 정보인 브릭 데이터 분할 정보와, 슬라이스의 분할 정보인 슬라이스 데이터 분할 정보 0과, 기본 블록행 데이터 동기화 정보가 포함되어 있다. SLH에는, 슬라이스 데이터 분할 정보 1과 기본 블록행 데이터 위치 정보가 포함되어 있다.
우선, SPS에 대하여 설명한다. SPS에는 화상 사이즈 정보로서 정보 601인 pic_width_in_luma_samples 및 정보 602인 pic_height_in_luma_samples가 포함되어 있다. pic_width_in_luma_samples는 입력 화상의 수평 방향의 사이즈(화소수)를 나타내고, pic_height_in_luma_samples는 입력 화상의 수직 방향의 사이즈(화소수)를 나타내고 있다. 본 실시 형태에서는, 입력 화상으로서 도 8의 입력 화상을 사용하기 때문에, pic_width_in_luma_samples=1536, pic_height_in_luma_samples=1024가 된다. 또한 SPS에는 기본 블록 데이터 분할 정보로서 정보 603인 log2_ctu_size_minus2가 포함되어 있다. log2_ctu_size_minus2는 기본 블록의 사이즈를 나타낸다. 기본 블록의 수직 방향 및 수평 방향의 화소수는 1<<(log2_ctu_size_minus2+2)로 나타내진다. 본 실시 형태에서는 기본 블록의 사이즈는 64×64 화소이기 때문에, log2_ctu_size_minus2의 값은 4가 된다.
이어서, PPS에 대하여 설명한다. PPS에는 타일 데이터 분할 정보로서 정보 604 내지 607이 포함되어 있다. 정보 604는, 입력 화상이 복수의 타일로 분할되어 부호화되어 있는지 여부를 나타내는 single_tile_in_pic_flag이다. single_tile_in_pic_flag=1의 경우에는, 입력 화상이 복수의 타일로 분할되어 부호화되지 않은 것을 나타낸다. 한편, single_tile_in_pic_flag=0의 경우에는, 입력 화상이 복수의 타일로 분할되어 부호화되어 있는 것을 나타낸다.
정보 605는 single_tile_in_pic_flag=0의 경우에 타일 데이터 분할 정보에 포함되는 정보이다. 정보 605는 각 타일이 동일한 사이즈를 갖는지 여부를 나타내는 uniform_tile_spacing_flag이다. uniform_tile_spacing_flag=1의 경우에는, 각 타일이 동일한 사이즈를 갖는 것을 나타내고, uniform_tile_spacing_flag=0의 경우에는, 사이즈가 동일하지 않은 타일이 존재하는 것을 나타낸다.
정보 606 및 정보 607은 uniform_tile_spacing_flag=1의 경우에 타일 데이터 분할 정보에 포함되는 정보이다. 정보 606은 (타일의 수평 방향의 기본 블록수-1)을 나타내는 tile_cols_width_minus1이다. 정보 607은 (타일의 수직 방향의 기본 블록수-1)을 나타내는 tile_rows_height_minus1이다. 입력 화상의 수평 방향의 타일수는, 입력 화상의 수평 방향의 기본 블록수를 타일의 수평 방향의 기본 블록수로 제산한 경우의 몫으로서 얻어진다. 이 제산에 의해 나머지가 발생한 경우에는, 몫에 1을 더한 수를 「입력 화상의 수평 방향의 타일수」로 한다. 또한 입력 화상의 수직 방향의 타일수는, 입력 화상의 수직 방향의 기본 블록수를 타일의 수직 방향의 기본 블록수로 제산한 경우의 몫으로서 얻어진다. 이 제산에 의해 나머지가 발생한 경우에는, 몫에 1을 더한 수를 「입력 화상의 수직 방향의 타일수」로 한다. 또한, 입력 화상 내의 총 타일수는, 입력 화상의 수평 방향의 타일수×입력 화상의 수직 방향의 타일수를 계산함으로써 구할 수 있다.
또한, uniform_tile_spacing_flag=0의 경우, 기타와 사이즈가 다른 타일이 포함되어 있기 때문에, 입력 화상의 수평 방향에 있어서의 타일의 수, 입력 화상의 수직 방향에 있어서의 타일의 수, 각 타일의 종횡의 사이즈를 부호로 한다.
또한 PPS에는 브릭 데이터 분할 정보로서 정보 608 내지 613이 포함되어 있다. 정보 608은 brick_splitting_present_flag이다. brick_splitting_present_flag=1의 경우에는, 입력 화상 내에 있어서의 하나 이상의 타일이 복수의 브릭으로 분할되어 있는 것을 나타낸다. 한편, brick_splitting_present_flag=0의 경우에는, 입력 화상 내에 있어서의 각각의 타일이 단일의 브릭으로 구성되어 있는 것을 나타낸다.
정보 609는 brick_splitting_present_flag=1의 경우에 브릭 데이터 분할 정보에 포함되는 정보이다. 정보 609는 각각의 타일에 대하여, 해당 타일이 복수의 브릭으로 분할되어 있는지 여부를 나타내는 brick_split_flag []이다. i번째의 타일이 복수의 브릭으로 분할되어 있는지를 나타내는 brick_split_flag []를 brick_split_flag [i]라고 표기한다. brick_split_flag [i]=1의 경우, i번째의 타일이 복수의 브릭으로 분할되어 있는 것을 나타내고, brick_split_flag [i]=0의 경우, i번째의 타일이 단일의 브릭으로 구성되어 있는 것을 나타낸다.
정보 610은 brick_split_flag [i]=1의 경우에, i번째의 타일을 구성하는 각각의 브릭의 사이즈가 동일한지 여부를 나타내는 uniform_brick_spacing_flag [i]이다. 모든 i에 대하여 brick_split_flag [i]=0이면, 정보 610은 브릭 데이터 분할 정보에는 포함되어 있지 않다. 정보 610은 brick_split_flag [i]=1을 충족시키는 i에 대하여, uniform_brick_spacing_flag [i]를 포함한다. uniform_brick_spacing_flag [i]=1의 경우에는, i번째의 타일을 구성하는 각각의 브릭의 사이즈가 동일한 것을 나타낸다. 한편, uniform_brick_spacing_flag [i]=0의 경우에는, i번째의 타일을 구성하는 브릭 중 기타와 사이즈가 다른 브릭이 존재하는 것을 나타낸다.
정보 611은 uniform_brick_spacing_flag [i]=1의 경우에 브릭 데이터 분할 정보에 포함되는 정보이다. 정보 611은 (i번째의 타일에 있어서의 브릭의 수직 방향의 기본 블록수-1)을 나타내는 brick_height_minus1 [i]이다.
또한, 브릭의 수직 방향의 기본 블록수는, 해당 브릭의 수직 방향의 화소수를, 기본 블록의 수직 방향의 화소수(본 실시 형태에서는 64 화소)로 제산함으로써 구할 수 있다. 또한, 타일을 구성하는 브릭수는, 타일의 수직 방향의 기본 블록수를 브릭의 수직 방향의 기본 블록수로 제산한 경우의 몫으로서 얻어진다. 이 제산에 의해 나머지가 발생한 경우에는, 몫에 1을 더한 수를 「타일을 구성하는 브릭수」로 한다. 예를 들어 타일의 수직 방향의 기본 블록수가 10이고, brick_height_minus1의 값이 2인 것으로 한다. 이 때, 이 타일은 상측으로부터 차례로, 기본 블록행수가 3인 브릭, 기본 블록행수가 3인 브릭, 기본 블록행수가 3인 브릭, 기본 블록행수가 1인 브릭의 4개의 브릭으로 분할되게 된다.
정보 612는 uniform_brick_spacing_flag [i]=0을 충족시키는 i에 대하여 (i번째의 타일을 구성하는 브릭수-1)을 나타내는 num_brick_rows_minus1 [i]이다.
또한, 본 실시 형태에서는, uniform_brick_spacing_flag [i]=0의 경우에는, (i번째의 타일을 구성하는 브릭수-1)을 나타내는 num_brick_rows_minus1 [i]를 브릭 데이터 분할 정보에 포함시켰다. 그러나, 이것에 한정되는 것은 아니다.
예를 들어 brick_split_flag [i]=1의 시점에서 i번째의 타일을 구성하는 브릭의 수가 2 이상이라고 상정하고, (해당 타일을 구성하는 브릭의 수-2)를 나타내는 num_brick_rows_minus2 [i]를 num_brick_rows_minus1 [i] 대신에 부호화해도 된다. 이렇게 함으로써, 해당 타일을 구성하는 브릭의 수를 나타내는 신택스의 비트수를 저감시킬 수 있다. 예를 들어, 해당 타일이 2개의 브릭에 의해 구성되고, num_brick_rows_minus1 [i]를 골롬 부호화하는 경우, 「1」을 나타내는 「010」의 3비트의 데이터가 부호화된다. 한편, (해당 타일을 구성하는 브릭의 수-2)를 나타내는 num_brick_rows_minus2 [i]를 골롬 부호화하는 경우, 0을 나타내는 「0」의 1비트의 데이터가 부호화된다.
정보 613은 uniform_brick_spacing_flag [i]=0을 충족시키는 i에 대하여 (i번째의 타일에 있어서의 j번째의 브릭의 수직 방향의 기본 블록수-1)을 나타내는 brick_row_height_minus1 [i] [j]이다. brick_row_height_minus1 [i] [j]는num_brick_rows_minus1 [i]의 수만큼 부호화된다. 타일에 있어서의 하단의 브릭의 수직 방향의 기본 블록수는, 해당 타일의 수직 방향의 기본 블록수로부터 「brick_row_height_minus1+1」의 총합을 감산함으로써 구할 수 있다. 예를 들어, 타일의 수직 방향의 기본 블록수=10, num_brick_rows_minus1=3, brick_row_height_minus1=2, 1, 2인 것으로 한다. 이 때, 해당 타일에 있어서의 하단의 브릭의 수직 방향의 기본 블록수는 10-(3+2+3)=2가 된다.
또한 PPS에는 슬라이스 데이터 분할 정보 0으로서 정보 614 내지 618이 포함되어 있다. 정보 614는 single_brick_per_slice_flag이다. single_brick_per_slice_flag=1의 경우, 입력 화상 내의 모든 슬라이스가 단일의 브릭으로 구성되어 있는 것을 나타낸다. 즉, 각각의 슬라이스가 하나만의 브릭으로 구성되는 것을 나타낸다. 한편, single_brick_per_slice_flag=0의 경우, 입력 화상에 있어서 하나 이상의 슬라이스가 복수의 브릭으로 구성되어 있는 것을 나타낸다.
정보 615는 rect_slice_flag이며, single_brick_per_slice_flag=0의 경우에 슬라이스 데이터 분할 정보 0에 포함되는 정보이다. rect_slice_flag는, 슬라이스가 포함하는 타일이 래스터순이거나 직사각형인 것을 나타낸다. 도 9a는, rect_slice_flag=0의 경우에 있어서의 타일과 슬라이스의 관계를 나타내고, 슬라이스 내의 타일이 래스터순으로 부호화되는 것을 나타내고 있다. 한편, 도 9b는, rect_slice_flag=1의 경우에 있어서의 타일과 슬라이스의 관계를 나타내고, 슬라이스 내의 복수의 타일이 직사각형상인 것을 나타내고 있다.
정보 616은 num_slices_in_pic_minus1이며, rect_slice_flag=1 또한 single_brick_per_slice_flag=0의 경우에 슬라이스 데이터 분할 정보 0에 포함되는 정보이다. num_slices_in_pic_minus1은 (입력 화상에 있어서의 슬라이스의 수-1)을 나타낸다.
정보 617은 입력 화상에 있어서의 각각의 슬라이스에 대하여, 해당 슬라이스(i번째의 슬라이스)의 좌측 상단의 브릭의 인덱스를 나타내는 top_left_brick_idx [i]이다.
정보 618은 입력 화상에 있어서의 각각의 슬라이스에 대하여, 해당 슬라이스에 있어서의 좌측 상단의 브릭의 인덱스와 우측 하단의 브릭의 인덱스의 차분을 나타내는 bottom_right_brick_idx_delta [i]이다. 단, 입력 화상 내의 최초의 슬라이스의 좌측 상단의 브릭의 인덱스는 0으로 결정되어 있기 때문에, 최초의 슬라이스의top_left_brick_idx [0]은 부호화되지 않는다.
또한 PPS에는 기본 블록행 데이터 동기화 정보로서 정보 619가 부호화되어 포함되어 있다. 정보 619는 entropy_coding_sync_enabled_flag이다. entropy_coding_sync_enabled_flag=1의 경우에는, 상측에 인접하는 기본 블록행의 소정 위치의 기본 블록을 처리한 시점에서의 발생 확률의 테이블을 좌측 단부의 블록에 적용한다. 이에 의해, 기본 블록행 단위로 엔트로피 부호화·복호화의 병렬 처리가 가능해진다.
이어서, SLH에 대하여 설명한다. SLH에는 슬라이스 데이터 분할 정보 1로서 정보 620 내지 621이 부호화되어 포함되어 있다. 정보 620은 rect_slice_flag=1 혹은 입력 화상 중의 브릭의 수가 2 이상인 경우에 슬라이스 데이터 분할 정보 1에 포함되는 slice_address이다. slice_address는, rect_slice_flag=0의 경우에는 슬라이스의 선두의 BID를 나타내고, rect_slice_flag=1의 경우에는, 현재의 슬라이스의 번호를 나타낸다.
정보 621은 rect_slice_flag=0 또한 single_brick_per_slice_flag=0의 경우에 슬라이스 데이터 분할 정보 1에 포함되는 num_bricks_in_slice_minus1이다. num_bricks_in_slice_minus1은 (슬라이스 중의 브릭수-1)을 나타낸다.
SLH에는 기본 블록행 데이터 위치 정보로서 정보 622가 포함되어 있다. 정보 622는 entry_point_offset_minus1 []이다. entry_point_offset_minus1 []는, entropy_coding_sync_enabled_flag=1의 경우에, (슬라이스 중의 기본 블록행수-1)의 수만큼 기본 블록행 데이터 위치 정보에 부호화되어 포함된다.
entry_point_offset_minus1 []는, 기본 블록행의 부호 데이터의 엔트리 포인트, 즉 기본 블록행의 부호 데이터의 선두 위치를 나타낸다. entry_point_offset_minus1 [j-1]은 j번째의 기본 블록행의 부호 데이터의 엔트리 포인트를 나타낸다. 0번째의 기본 블록행의 부호 데이터의 선두 위치는, 해당 기본 블록행이 속하는 슬라이스의 부호 데이터의 선두 위치와 동일하기 때문에 생략된다. 그리고, {(j-1번째의 기본 블록행의 부호 데이터의 크기-1}이entry_point_offset_minus1 [j-1]로서 부호화된다.
이어서, 본 실시 형태에 화상 부호화 장치에 의한 입력 화상의 부호화 처리(도 6의 구성을 갖는 비트 스트림의 생성 처리)에 대하여, 도 3의 흐름도에 따라서 설명한다.
먼저, 스텝 S301에서는, 화상 분할부(102)는 입력 화상을 타일, 브릭, 슬라이스로 분할한다. 그리고 화상 분할부(102)는 분할한 타일, 브릭, 슬라이스의 각각에 대하여, 크기에 관한 정보를 분할 정보로서 통합 부호화부(111)로 출력한다. 또한 화상 분할부(102)는 각 브릭을 기본 블록행 화상으로 분할하고, 해당 분할한 기본 블록행 화상을 블록 분할부(103)로 출력한다.
스텝 S302에서는, 블록 분할부(103)는 기본 블록행 화상을 복수의 기본 블록으로 분할하고, 기본 블록 단위의 화상인 블록 화상을, 후단의 예측부(104)에 대하여 출력한다.
스텝 S303에서는, 예측부(104)는 블록 분할부(103)로부터 출력된 기본 블록 단위의 화상을 서브 블록으로 분할하고, 서브 블록 단위로 인트라 예측 모드를 결정하고, 해당 결정한 인트라 예측 모드 및 부호화 완료의 화소로부터 예측 화상을 생성한다. 또한 예측부(104)는 입력된 화상과 예측 화상으로부터 예측 오차를 산출하고, 해당 산출한 예측 오차를 변환·양자화부(105)에 대하여 출력한다. 또한 예측부(104)는 서브 블록 분할 방법이나 인트라 예측 모드 등의 정보를 예측 정보로서, 부호화부(110) 및 화상 재생부(107)에 대하여 출력한다.
스텝 S304에서는, 변환·양자화부(105)는 예측부(104)로부터 출력된 예측 오차를 서브 블록 단위로 직교 변환하여 변환 계수(직교 변환 계수)를 구한다. 그리고 변환·양자화부(105)는 당해 구한 변환 계수를 양자화하여 양자화 계수를 구한다. 그리고 변환·양자화부(105)는 당해 구한 양자화 계수를 부호화부(110) 및 역양자화·역변환부(106)에 대하여 출력한다.
스텝 S305에서는, 역양자화·역변환부(106)는 변환·양자화부(105)로부터 출력된 양자화 계수를 역양자화하여 변환 계수를 재생하고, 또한 해당 재생된 변환 계수를 역직교 변환하여 예측 오차를 재생한다. 그리고 역양자화·역변환부(106)는 해당 재생된 예측 오차를 화상 재생부(107)에 대하여 출력한다.
스텝 S306에서는, 화상 재생부(107)는 예측부(104)로부터 출력된 예측 정보에 기초하여, 프레임 메모리(108)를 적절히 참조하여 예측 화상을 생성하고, 해당 예측 화상과, 역양자화·역변환부(106)로부터 입력된 예측 오차로부터 재생 화상을 생성한다. 그리고 화상 재생부(107)는 해당 생성된 재생 화상을 프레임 메모리(108)에 저장한다.
스텝 S307에서는, 부호화부(110)는 변환·양자화부(105)로부터 출력된 양자화 계수 및 예측부(104)로부터 출력된 예측 정보를 엔트로피 부호화함으로써 부호 데이터를 생성한다.
여기서, entropy_coding_sync_enabled_flag=1의 경우, 상측에 인접하는 기본 블록행의 소정의 위치의 기본 블록을 처리한 시점에서의 발생 확률 테이블을, 다음 기본 블록행의 좌측 단부의 기본 블록을 처리하기 전에 적용한다. 본 실시 형태에서는, entropy_coding_sync_enabled_flag=1인 것으로서 설명한다.
스텝 S308에서는, 제어부(199)는 슬라이스 내의 모든 기본 블록의 부호화가 완료되었는지 여부를 판단한다. 이 판단의 결과, 슬라이스 내의 모든 기본 블록의 부호화가 완료된 경우에는, 처리는 스텝 S309로 진행한다. 한편, 슬라이스 내의 기본 블록 중 아직 부호화하지 않은 기본 블록(미부호화의 기본 블록)이 남아 있는 경우에는, 해당 미부호화의 기본 블록을 부호화하기 위해, 처리는 스텝 S303으로 진행한다.
스텝 S309에서는, 통합 부호화부(111)는 화상 분할부(102)로부터 출력된 분할 정보를 사용하여 헤더 부호 데이터를 생성하고, 해당 생성된 헤더 부호 데이터와, 부호화부(110)로부터 출력된 부호 데이터를 포함하는 비트 스트림을 생성하여 출력한다.
입력 화상을 도 8에 도시한 바와 같이 분할한 경우, 타일 데이터 분할 정보의, single_tile_in_pic_flag는 0, uniform_tile_spacing_flag는 1이 된다. 또한tile_cols_width_minus1은 11, tile_rows_height_minus1은 7이다.
브릭 데이터 분할 정보의 brick_splitting_present_flag는 1이다. 좌측 상단의 타일은 브릭으로 분할되어 있지 않으므로 brick_split_flag [0]은 0이다. 그러나, 좌측 하단의 타일, 우측 상단의 타일, 우측 하단의 타일은 모두 브릭으로 분할되어 있으므로, brick_split_flag [1], brick_split_flag [2], brick_split_flag [3]은 1이다.
또한, 우측 상단의 타일, 좌측 하단의 타일은 모두 동일 사이즈의 브릭으로 분할되어 있으므로 uniform_brick_spacing_flag [1], uniform_brick_spacing_flag [2]는 1이다. 우측 하단의 타일에 대해서는, BID=8의 브릭 사이즈는, BID=7의 브릭 사이즈 및 BID=9의 브릭 사이즈와는 상이하므로, uniform_brick_spacing_flag [3]은 0이다.
brick_height_minus1 [1]은 1이며, brick_height_minus1 [2]는 3이다. brick_row_height_minus1 [3] [0]은 2, brick_row_height_minus1 [3] [1]은 1이다. 또한, num_brick_rows_minus1 [3]의 값은 2이다. num_brick_rows_minus1 [3]이 아니고, 그 대신에 상술한 num_brick_rows_minus2 [3]의 신택스를 부호화하는 경우에는, 값은 1이 된다.
또한, 상기한 바와 같이, 본 실시 형태에서는, 각 슬라이스가 하나만의 브릭으로 구성되는 것으로 되어 있기 때문에, 슬라이스 데이터 분할 정보 0의 single_brick_per_slice_flag는 1이 된다.
또한, 슬라이스 데이터 분할 정보 1로서, 먼저 슬라이스 중의 최초의 BID가 slice_address로서 부호화된다. 상기한 바와 같이, 본 실시 형태에서는, 각 슬라이스가 하나만의 브릭으로 구성되는 것으로 되어 있기 때문에, 슬라이스 0에는 0, 슬라이스 1에는 1, 슬라이스 N에는 N이 slice_address로서 부호화된다.
또한, 기본 블록행 데이터 위치 정보에 대해서는, 부호화부(110)로부터 보내진, 슬라이스 중의 ((j-1번째의 기본 블록행의 부호 데이터의 크기-1)을 entry_point_offset_minus1 [j-1]로서 부호화한다. 슬라이스 중의entry_point_offset_minus1 []의 수는, (슬라이스 중의 기본 블록행수-1)과 동등하다. 본 실시 형태에서는, 좌측 상단의 타일은 단일의 브릭을 포함하고, 그 기본 블록행의 수는 tile_rows_height_minus1+1=8이다. 따라서 j의 범위는 0 내지 6이 된다. 좌측 하단의 타일의 슬라이스(브릭)에 있어서의 기본 블록행수는, brick_height_minus1 [2]+1=4로서 구할 수 있다. 우측 상단의 타일의 슬라이스(브릭)에 있어서의 기본 블록행수는, brick_height_minus1 [1]+1=2로서 구할 수 있다. 우측 하단의 타일의 각각의 슬라이스(브릭)에 있어서의 기본 블록행수는, brick_row_height_minus1 [3] [0] 내지 [3] [1] 및 타일의 기본 블록행수가 8인 점에서, 상측으로부터 차례로 3, 2, 3(=8-3-2)가 된다.
이러한 처리에 의해, 각 슬라이스에 있어서의 기본 블록행수가 확정된다. 본 실시 형태에서는, 다른 신택스로부터 entry_point_offset_minus1의 수를 도출할 수 있으므로, 종래와 같이 num_entry_point_offset를 부호화하여 헤더에 포함시킬 필요는 없다. 따라서, 본 실시 형태에 따르면, 비트 스트림의 데이터양을 삭감할 수 있다.
스텝 S310에서는, 제어부(199)는 입력 화상에 있어서의 모든 기본 블록의 부호화가 완료되었는지 여부를 판단한다. 이 판단의 결과, 입력 화상에 있어서의 모든 기본 블록의 부호화가 완료된 경우에는, 처리는 스텝 S311로 진행한다. 한편, 입력 화상에 있어서 아직 부호화되지 않은 기본 블록이 남아있는 경우에는, 처리는 스텝 S303으로 진행하여, 아직 부호화되지 않은 기본 블록에 대하여 이후의 처리를 행한다.
스텝 S311에서는, 인루프 필터부(109)는 스텝 S306에서 생성된 재생 화상에 대하여 인루프 필터 처리를 행하고, 해당 인루프 필터 처리가 실시된 화상을 출력한다.
이렇게 본 실시 형태에 따르면, 브릭이 갖는 기본 블록행의 부호 데이터의 선두 위치를 나타내는 정보가 몇 개 부호화되어 있는지를 나타내는 정보를 부호화하여 비트 스트림에 포함시키지 않아도 되고, 해당 정보가 도출 가능한 비트 스트림을 생성할 수 있다.
[제2 실시 형태]
본 실시 형태에서는, 제1 실시 형태에 관한 화상 부호화 장치에 의해 생성된 비트 스트림을 복호하는 화상 복호 장치에 대하여 설명한다. 또한, 비트 스트림의 구성 등, 제1 실시 형태와 공통되는 요건에 대해서는 제1 실시 형태에서 설명한 바와 같기 때문에, 설명은 생략한다.
본 실시 형태에 관한 화상 복호 장치의 기능 구성예에 대하여, 도 2의 블록도를 사용하여 설명한다. 분리 복호부(202)는 제1 실시 형태에 관한 화상 부호화 장치에 의해 생성된 비트 스트림을 취득한다. 비트 스트림의 취득 방법은 특정 취득 방법으로 제한되지 않는다. 예를 들어, LAN이나 인터넷 등의 네트워크를 통하여 화상 부호화 장치로부터 직접적 혹은 간접적으로 비트 스트림을 취득해도 되고, 화상 복호 장치의 내부 혹은 외부에 보존해둔 비트 스트림을 취득해도 된다. 그리고 분리 복호부(202)는 해당 취득한 비트 스트림으로부터, 복호 처리에 관한 정보나 계수에 관한 부호 데이터를 분리하여, 복호부(203)에 보낸다. 또한 분리 복호부(202)는 비트 스트림의 헤더 부호 데이터를 복호한다. 본 실시 형태에서는, 타일, 브릭, 슬라이스, 기본 블록의 크기 등의 화상의 분할에 관한 헤더 정보를 복호하여 분할 정보를 생성하고, 해당 생성된 분할 정보를 화상 재생부(205)로 출력한다. 즉 분리 복호부(202)는 도 1의 통합 부호화부(111)와 역동작을 행한다.
복호부(203)는 분리 복호부(202)로부터 출력된 부호 데이터를 복호하여 양자화 계수 및 예측 정보를 재생한다. 역양자화·역변환부(204)는 양자화 계수에 대하여 역양자화를 행하여 변환 계수를 생성하고, 해당 생성된 변환 계수에 대하여 역직교 변환을 행함으로써 예측 오차를 재생한다.
프레임 메모리(206)는 재생된 픽처의 화상 데이터를 저장하기 위한 메모리이다. 화상 재생부(205)는 입력된 예측 정보에 기초하여 프레임 메모리(206)를 적절히 참조하여 예측 화상을 생성한다. 그리고 화상 재생부(205)는 해당 생성된 예측 화상과 역양자화·역변환부(204)에서 재생된 예측 오차로부터 재생 화상을 생성한다. 그리고 화상 재생부(205)는 재생 화상에 대하여 분리 복호부(202)로부터 입력된 분할 정보에 기초하여 타일, 브릭, 슬라이스의 입력 화상 중의 위치를 특정하여 출력한다.
인루프 필터부(207)는 상기 인루프 필터부(109)와 마찬가지로, 재생 화상에 대하여 디블로킹 필터 등의 인루프 필터 처리를 행하여, 인루프 필터 처리가 실시된 화상을 출력한다. 제어부(299)는 화상 복호 장치 전체의 동작 제어를 행하는 것이며, 상기 화상 복호 장치의 각 기능부의 동작 제어를 행한다.
이어서, 도 2에 나타낸 구성을 갖는 화상 복호 장치에 의한 비트 스트림의 복호 처리에 대하여 설명한다. 이하에서는, 비트 스트림을 프레임 단위에서 화상 복호 장치에 입력하는 것으로서 설명하지만, 1 프레임분의 정지 화상의 비트 스트림을 화상 복호 장치에 입력하도록 해도 된다. 또한, 본 실시 형태에서는 설명을 용이하게 하기 위해서, 인트라 예측 복호 처리만을 설명하지만, 이것으로 한정되지 않고 인터 예측 복호 처리에 있어서도 적용 가능하다.
분리 복호부(202)는 입력된 비트 스트림으로부터, 복호 처리에 관한 정보나 계수에 관한 부호 데이터를 분리하여, 복호부(203)에 보낸다. 또한 분리 복호부(202)는 비트 스트림의 헤더의 데이터를 복호한다. 보다 구체적으로는 분리 복호부(202)는, 도 6에 있어서의 기본 블록 데이터 분할 정보, 타일 데이터 분할 정보, 브릭 데이터 분할 정보, 슬라이스 데이터 분할 정보 0, 기본 블록행 데이터 동기화 정보, 기본 블록행 데이터 위치 정보 등을 복호하여 분할 정보를 생성한다. 그리고 분리 복호부(202)는 해당 생성된 분할 정보를 화상 재생부(205)로 출력한다. 또한 분리 복호부(202)는 픽처 데이터의 기본 블록 단위의 부호 데이터를 재생하여, 복호부(203)로 출력한다.
복호부(203)는 분리 복호부(202)로부터 출력된 부호 데이터를 복호하여 양자화 계수 및 예측 정보를 재생한다. 재생된 양자화 계수는 역양자화·역변환부(204)로 출력되고, 재생된 예측 정보는 화상 재생부(205)로 출력된다.
역양자화·역변환부(204)는 입력된 양자화 계수에 대하여 역양자화를 행하여 변환 계수를 생성하고, 해당 생성된 변환 계수에 대하여 역직교 변환을 행함으로써 예측 오차를 재생한다. 재생된 예측 오차는 화상 재생부(205)로 출력된다.
화상 재생부(205)는 분리 복호부(202)로부터 입력된 예측 정보에 기초하여 프레임 메모리(206)를 적절히 참조하여 예측 화상을 생성한다. 그리고 화상 재생부(205)는 해당 생성된 예측 화상과 역양자화·역변환부(204)에서 재생된 예측 오차로부터 재생 화상을 생성한다. 그리고 화상 재생부(205)는 재생 화상에 대하여 분리 복호부(202)로부터 입력된 분할 정보에 기초하여, 예를 들어 도 7과 같은 타일, 브릭, 슬라이스의 형상 및 입력 화상 중의 위치를 특정하여 프레임 메모리(206)로 출력(저장)한다. 프레임 메모리(206)에 저장된 화상은 예측 시의 참조에 사용된다.
인루프 필터부(207)는 프레임 메모리(206)로부터 판독한 재생 화상에 대하여 디블로킹 필터 등의 인루프 필터 처리를 행하여, 인루프 필터 처리가 실시된 화상을 프레임 메모리(206)로 출력(저장)한다.
제어부(299)는 프레임 메모리(206)에 저장된 재생 화상을 출력한다. 재생 화상의 출력처는 특정 출력처에 제한되지 않는다. 예를 들어 제어부(299)는, 화상 복호 장치가 갖는 표시 장치에 해당 재생 화상을 출력하여 해당 표시 장치에 해당 재생 화상을 표시시켜도 된다. 또한 예를 들어 제어부(299)는 LAN이나 인터넷 등의 네트워크를 통하여 재생 화상을 외부의 장치에 대하여 송신해도 된다.
이어서, 본 실시 형태에 관한 화상 복호 장치에 의한 비트 스트림의 복호 처리(도 6의 구성을 갖는 비트 스트림의 복호 처리)에 대하여, 도 4의 흐름도에 따라서 설명한다.
스텝 S401에서는, 분리 복호부(202)는 입력된 비트 스트림으로부터, 복호 처리에 관한 정보나 계수에 관한 부호 데이터를 분리하여, 복호부(203)에 보낸다. 또한 분리 복호부(202)는 비트 스트림의 헤더의 데이터를 복호한다. 보다 구체적으로는 분리 복호부(202)는, 도 6에 있어서의 기본 블록 데이터 분할 정보, 타일 데이터 분할 정보, 브릭 데이터 분할 정보, 슬라이스 데이터 분할 정보, 기본 블록행 데이터 동기화 정보, 기본 블록행 데이터 위치 정보 등을 복호하여 분할 정보를 생성한다. 그리고 분리 복호부(202)는 해당 생성된 분할 정보를 화상 재생부(205)로 출력한다. 또한 분리 복호부(202)는 픽처 데이터의 기본 블록 단위의 부호 데이터를 재생하여, 복호부(203)로 출력한다.
본 실시 형태에서는, 비트 스트림의 부호화원인 입력 화상의 분할은 도 8에 나타낸 분할로 한다. 비트 스트림의 부호화원인 입력 화상이나 그 분할에 관한 정보는 분할 정보로부터 도출할 수 있다.
화상 사이즈 정보에 포함되어 있는 pic_width_in_luma_samples로부터, 입력 화상의 수평 방향의 사이즈(가로 사이즈)가 1536 화소인 것을 특정할 수 있다. 또한, 화상 사이즈 정보에 포함되어 있는 pic_height_in_luma_samples로부터, 입력 화상의 수직 방향의 사이즈(세로 사이즈)가 1024 화소인 것을 특정할 수 있다.
또한, 기본 블록 데이터 분할 정보의 log2_ctu_size_minus2=4인 점에서, 기본 블록의 사이즈를, 1<<log2_ctu_size_minus2+2로부터 64×64 화소로 도출할 수 있다.
또한, 타일 데이터 분할 정보의 single_tile_in_pic_flag=0인 점에서, 입력 화상이 복수의 타일로 분할되어 있는 것을 특정할 수 있다. 그리고, uniform_tile_spacing_flag=1인 점에서, 각 타일이 (단부를 제외하고) 동일한 사이즈를 갖는 것을 특정할 수 있다.
또한, tile_cols_width_minus1=11, tile_rows_height_minus1=7인 점에서, 각 타일이 12×8개의 기본 블록으로 구성되어 있는 것을 특정할 수 있다. 즉, 각 타일이 768×512 화소로 구성되어 있는 것을 특정할 수 있다. 입력 화상이 1536×1024 화소인 점에서, 해당 입력 화상은 수평 방향으로 2개, 수직 방향으로 2개의 4개의 타일로 분할되어 부호화되어 있는 것을 알 수 있다.
또한, 브릭 데이터 분할 정보의 brick_splitting_present_flag=1인 점에서, 입력 화상 중의 적어도 하나의 타일이 복수의 브릭으로 분할되어 있는 것을 특정할 수 있다.
또한, brick_split_flag [0]=0, brick_split_flag [1] 내지 [3]=1이다. 이에 의해, 좌측 상단의 타일은 단일의 브릭으로 구성되어 있는 것을 특정하고, 그 이외의 3개의 타일은 복수의 브릭으로 분할되어 있는 것을 특정할 수 있다.
또한, uniform_brick_spacing_flag [1] 내지 [2]=1, uniform_brick_spacing_flag [3]=0이다. 이에 의해, 좌측 하단의 타일과 우측 상단의 타일에 대해서는, 단부를 제외하고 동일 사이즈의 브릭으로 구성되어 있는 것을 특정할 수 있고, 우측 하단의 타일에 대해서는, 기타와 사이즈가 다른 브릭이 존재하는 것을 특정할 수 있다.
또한, brick_height_minus1 [1]=1, brick_height_minus1 [2]=3이다. 이에 의해, 우측 상단의 타일에 있어서의 브릭의 기본 블록행의 수는 2, 좌측 하단의 타일에 있어서의 브릭의 기본 블록행의 수는 4인 것을 특정할 수 있다. 즉, 우측 상단의 타일은, 수직 방향의 사이즈가 128 화소인 브릭을 4개 포함하고, 좌측 하단의 타일은, 수직 방향의 사이즈가 256 화소인 브릭을 2개 포함하는 것을 특정할 수 있다. 또한, 우측 하단의 타일에 대해서는 num_brick_rows_minus1 [3]이 2인 점에서, 해당 타일이 3개의 브릭으로 구성되어 있는 것을 특정할 수 있다. 또한, brick_row_height_minus1 [3] [0]=2, brick_row_height_minus1 [3] [1]=1, 우측 하단의 타일의 수직 방향의 기본 블록수는 8이다. 이에 의해, 우측 하단의 타일은 상측으로부터, 수직 방향의 기본 블록수가 3인 브릭, 수직 방향의 기본 블록수가 2인 브릭, 수직 방향의 기본 블록수가 3인 브릭으로 구성되어 있는 것을 특정할 수 있다.
또한, 슬라이스 데이터 분할 정보 0에 있어서의 single_brick_per_slice_flag=1인 점에서, 입력 화상 내의 모든 슬라이스가 단일의 브릭으로 구성되어 있는 것을 특정한다. 본 실시 형태에서는, uniform_brick_spacing_flag [i]=0의 경우에는, (i번째의 타일을 구성하는 브릭수-1)을 나타내는 num_brick_rows_minus1 [i]를 브릭 데이터 분할 정보에 포함시켰다. 그러나, 이것에 한정되는 것은 아니다.
예를 들어 brick_split_flag [i]=1의 시점에서 i번째의 타일을 구성하는 브릭의 수가 2 이상이라고 상정하고, (해당 타일을 구성하는 브릭의 수-2)를 나타내는 num_brick_rows_minus2 [i]를 num_brick_rows_minus1 [i] 대신에 복호해도 된다. 이렇게 함으로써, 해당 타일을 구성하는 브릭의 수를 나타내는 신택스의 비트수를 저감시킨 비트 스트림을 복호할 수 있다.
이어서, 각 브릭의 좌측 상단 및 우측 하단의 경계의 좌표를 구한다. 좌표는 입력 화상의 좌측 상단을 원점으로 하여, 기본 블록의 수평 위치와 수직 위치로 나타내진다. 예를 들어, 좌측으로부터 3번째, 상측으로부터 2번째의 기본 블록의 좌측 상단의 경계의 좌표는 (3,2), 우측 하단의 경계의 좌표는 (4,3)이 된다. BID=0의 브릭 좌측 상단의 경계의 좌표는 (0,0)이다. BID=0의 브릭 기본 블록행수는 8이며, 모든 타일의 수평 방향의 기본 블록수는 12이기 때문에, 우측 하단의 경계의 좌표는 (12,8)이 된다. 우측 상단의 타일에 속하는 BID=1 내지 4의 각각의 브릭의 좌측 상단의 경계의 좌표는, 브릭의 기본 블록행수가 2이기 때문에, (12,0), (12,2), (12,4), (12,6)이 된다. 마찬가지로, 우측 상단의 타일에 속하는 BID=1 내지 4의 각각의 브릭의 우측 하단의 경계의 좌표는, (24,2), (24,4), (24,6), (24,8)이 된다. 좌측 하단의 타일에 속하는 BID=5 내지 6의 각각의 브릭의 좌측 상단의 경계의 좌표는, 브릭의 기본 블록행수가 4이기 때문에, (0,8), (0,12)가 된다. 마찬가지로, 좌측 하단의 타일에 속하는 BID=5 내지 6의 각각의 브릭의 우측 하단의 경계의 좌표는, (12,12), (12,16)이 된다. 우측 하단의 타일에 속하는 BID=7 내지 9의 각각의 브릭의 좌측 상단의 경계의 좌표는, 각각의 브릭의 기본 블록행수가 3, 2, 3이기 때문에, (12,8), (12,11), (12,13)이 된다. 마찬가지로, 우측 하단의 타일에 속하는 BID=7 내지 9의 각각의 브릭의 우측 하단의 경계의 좌표는, (24,11), (24,13). (24,16)이 된다.
또한, 기본 블록행 데이터 동기화 정보에 있어서의 entropy_coding_sync_enabled_flag=1이다. 이에 의해, (슬라이스 중의 (j-1번째의 기본 블록행의 부호 데이터의 크기-1)을 나타내는 entry_point_offset_minus1 [j-1]이 비트 스트림 중에 부호화되어 있는 것을 알 수 있다. entry_point_offset_minus1 []의 수는, (지금부터 복호할 슬라이스 중의 기본 블록행수-1)과 동등하다. 본 실시 형태에서는 슬라이스가 하나의 브릭만으로 구성되어 있기 때문에, 처리할 슬라이스의 기본 블록행수는 브릭의 기본 블록행수와 동일하고, 슬라이스와 브릭의 대응 관계는, slice_address의 값으로부터 구할 수 있다. slice_address가 N인 슬라이스(브릭)는, BID=N의 브릭을 포함하고 있다. 각 브릭의 기본 블록행수도 이미 도출 완료이므로, 종래와 같이 num_entry_point_offset를 부호화하지 않아도, 다른 신택스로부터 entry_point_offset_minus1 []의 수를 도출할 수 있다. 그리고 각 기본 블록행의 데이터의 선두 위치를 알기 때문에, 기본 블록행마다 병렬하여 복호 처리를 행할 수 있다.
이와 같이, 분리 복호부(202)에 의해 복호된 분할 정보로부터, 비트 스트림의 부호화원인 입력 화상이나 그 분할에 관한 정보 등, 각종 정보를 도출할 수 있다. 분리 복호부(202)로부터 도출된 분할 정보는 화상 재생부(205)에 보내져, 스텝 S404에서 입력 화상 내에 있어서의 처리 대상의 위치 특정에 사용된다.
스텝 S402에서는, 복호부(203)는 분리 복호부(202)에서 분리된 부호 데이터를 복호하여 양자화 계수 및 예측 정보를 재생한다. 스텝 S403에서는, 역양자화·역변환부(204)는 입력된 양자화 계수에 대하여 역양자화를 행하여 변환 계수를 생성하고, 해당 생성된 변환 계수에 대하여 역직교 변환을 행함으로써 예측 오차를 재생한다.
스텝 S404에서는, 화상 재생부(205)는 분리 복호부(202)로부터 입력된 예측 정보에 기초하여 프레임 메모리(206)를 적절히 참조하여 예측 화상을 생성한다. 그리고 화상 재생부(205)는 해당 생성된 예측 화상과 역양자화·역변환부(204)에서 재생된 예측 오차로부터 재생 화상을 생성한다. 그리고 화상 재생부(205)는 재생 화상에 대하여, 분리 복호부(202)로부터 입력된 분할 정보에 기초하여, 타일, 브릭의 입력 화상 중의 위치를 특정하고 그 위치에 합성하여, 프레임 메모리(206)로 출력(저장)한다.
스텝 S405에서는, 제어부(299)는 입력 화상의 모든 기본 블록을 복호하였는지 여부를 판단한다. 이 판단의 결과, 입력 화상의 모든 기본 블록을 복호한 경우에는, 처리는 스텝 S406으로 진행한다. 한편, 입력 화상에 있어서 아직 복호하지 않은 기본 블록이 남아있는 경우에는, 처리는 스텝 S402로 진행하여, 아직 복호하지 않은 기본 블록에 대하여 복호 처리를 행한다.
스텝 S406에서는, 인루프 필터부(207)는 프레임 메모리(206)로부터 판독한 재생 화상에 대하여 인루프 필터 처리를 행하여, 인루프 필터 처리가 실시된 화상을 프레임 메모리(206)로 출력(저장)한다.
이렇게 본 실시 형태에 따르면, 제1 실시 형태에 관한 화상 부호화 장치에 의해 생성된 「브릭이 갖는 기본 블록행의 선두 위치를 나타내는 정보가 몇 개 부호화되는지를 나타내는 정보를 포함하지 않는 비트 스트림」으로부터 입력 화상을 복호할 수 있다.
또한, 제1 실시 형태에 관한 화상 부호화 장치와 제2 실시 형태에 관한 화상 복호 장치는 별개의 장치여도 된다. 또한, 제1 실시 형태에 관한 화상 부호화 장치와 제2 실시 형태에 관한 화상 복호 장치를 하나의 장치로 통합해도 된다.
[제3 실시 형태]
도 1이나 도 2에 나타낸 각 기능부는 하드웨어에 실장해도 되지만, 일부를 소프트웨어에 실장해도 된다. 후자의 경우, 프레임 메모리(108)나 프레임 메모리(206)를 제외한 각 기능부를 소프트웨어(컴퓨터 프로그램)에 실장해도 된다. 이러한 컴퓨터 프로그램을 실행 가능한 컴퓨터 장치는, 상기 화상 부호화 장치나 화상 복호 장치에 적용 가능하다.
상기 화상 부호화 장치나 화상 복호 장치에 적용 가능한 컴퓨터 장치의 하드웨어 구성예에 대하여, 도 5의 블록도를 사용하여 설명한다. 또한, 도 5에 나타낸 하드웨어 구성은, 상기 화상 부호화 장치나 화상 복호 장치에 적용 가능한 컴퓨터 장치의 하드웨어 구성의 일례에 지나지 않고, 적절히 변경/변형이 가능하다.
CPU(501)는 RAM(502)이나 ROM(503)에 저장되어 있는 컴퓨터 프로그램이나 데이터를 사용하여 각종 처리를 실행한다. 이에 의해 CPU(501)는 컴퓨터 장치 전체의 동작 제어를 행함과 함께, 상기 화상 부호화 장치나 화상 복호 장치가 행하는 것으로서 설명한 각 처리를 실행 혹은 제어한다. 즉 CPU(501)는 도 1이나 도 2에 나타낸 각 기능부(프레임 메모리(108)나 프레임 메모리(206)를 제외함)로서 기능할 수 있다.
RAM(502)은 ROM(503)이나 외부 기억 장치(506)로부터 로드된 컴퓨터 프로그램이나 데이터를 저장하기 위한 에어리어, I/F(507)를 통해 외부로부터 수신한 데이터를 저장하기 위한 에어리어를 갖는다. 또한 RAM(502)은, CPU(501)가 각종 처리를 실행할 때에 사용하는 워크 에어리어를 갖는다. 이렇게 RAM(502)은 각종 에어리어를 적절히 제공할 수 있다. ROM(503)에는, 컴퓨터 장치의 설정 데이터나 기동 프로그램 등이 저장되어 있다.
조작부(504)는 키보드, 마우스, 터치 패널 화면 등의 유저 인터페이스이며, 유저가 조작함으로써 각종 지시를 CPU(501)에 대하여 입력할 수 있다.
표시부(505)는 액정 화면이나 터치 패널 화면 등에 의해 구성되어 있고, CPU(501)에 의한 처리 결과를 화상이나 문자 등을 가지고 표시할 수 있다. 또한, 표시부(505)는 화상이나 문자를 투영하는 프로젝터 등의 장치 장치여도 된다.
외부 기억 장치(506)는 하드디스크 드라이브 장치 등의 대용량 정보 기억 장치이다. 외부 기억 장치(506)에는, OS(오퍼레이팅 시스템)나, 상기 화상 부호화 장치나 화상 복호 장치가 행하는 것으로서 상술한 각 처리를 CPU(501)에 실행 혹은 제어시키기 위한 컴퓨터 프로그램이나 데이터가 보존되어 있다.
외부 기억 장치(506)에 보존되어 있는 컴퓨터 프로그램에는, 도 1이나 도 2에 있어서 프레임 메모리(108)나 프레임 메모리(206)를 제외한 각 기능부의 기능을 CPU(501)에 실행 혹은 제어시키기 위한 컴퓨터 프로그램이 포함되어 있다. 또한, 외부 기억 장치(506)에 보존되어 있는 데이터에는, 상기 설명에 있어서 기지의 정보로서 설명한 것이나, 부호화나 복호에 관련되는 각종 정보가 포함되어 있다.
외부 기억 장치(506)에 보존되어 있는 컴퓨터 프로그램이나 데이터는, CPU(501)에 의한 제어에 따라서 적절히 RAM(502)에 로드되어, CPU(501)에 의한 처리 대상이 된다.
도 1의 화상 부호화 장치가 갖는 프레임 메모리(108)나 도 2의 화상 부호화 장치가 갖는 프레임 메모리(206)는, 상기 RAM(502)이나 외부 기억 장치(506) 등의 메모리 장치를 사용하여 실장 가능하다.
I/F(507)는 외부의 장치와의 사이의 데이터 통신을 행하기 위한 인터페이스이다. 예를 들어, 컴퓨터 장치를 화상 부호화 장치에 적용한 경우, 화상 부호화 장치는 생성된 비트 스트림을 I/F(507)를 통해 외부로 출력할 수 있다. 또한, 컴퓨터 장치를 화상 복호 장치에 적용한 경우, 화상 복호 장치는 비트 스트림을 I/F(507)를 통해 수신할 수 있다. 또한 화상 복호 장치는, 비트 스트림을 복호한 결과를 I/F(507)를 통해 외부에 송신할 수 있다. CPU(501), RAM(502), ROM(503), 조작부(504), 표시부(505), 외부 기억 장치(506), I/F(507)는 모두 버스(508)에 접속되어 있다.
또한, 상기 설명에 있어서 사용한 구체적인 수치는, 구체적인 설명을 행하기 위해 사용한 것이며, 상기 각 실시 형태가 이들 수치에 한정되는 것을 의도한 것은 아니다. 또한, 이상 설명한 각 실시 형태의 일부 혹은 전부를 적절히 조합하여도 상관없다. 또한, 이상 설명한 각 실시 형태의 일부 혹은 전부를 선택적으로 사용해도 상관없다.
(기타 실시예)
본 발명은 상술한 실시 형태의 1 이상의 기능을 실현하는 프로그램을, 네트워크 또는 기억 매체를 통해 시스템 또는 장치에 공급하고, 그 시스템 또는 장치의 컴퓨터에 있어서의 하나 이상의 프로세서가 프로그램을 판독하여 실행하는 처리에서도 실현 가능하다. 또한, 1 이상의 기능을 실현하는 회로(예를 들어, ASIC)에 의해서도 실현 가능하다.
발명은 상기 실시 형태에 제한되는 것은 아니고, 발명의 정신 및 범위로부터 이탈하지 않고, 각종 변경 및 변형이 가능하다. 따라서, 발명의 범위를 밝히기 위해 청구항을 첨부한다.
본원은, 2019년 6월 21일 제출의 일본 특허 출원 제2019-115749를 기초로 하여 우선권을 주장하는 것이며, 그 기재 내용의 모두를 여기에 원용한다.
102: 화상 분할부
103: 블록 분할부
104: 예측부
105: 변환·양자화부
106: 역양자화·역변환부
107: 화상 재생부
108: 프레임 메모리
109: 인루프 필터부
110: 부호화부
111: 통합 부호화부

Claims (12)

  1. 삭제
  2. 삭제
  3. 삭제
  4. (a) 복수의 블록을 포함하는 타일 및 (b) 복수의 블록으로 형성된 블록행을 하나 이상 포함하는 직사각형 영역을 포함하는 화상을 부호화하여 얻어진 비트 스트림으로부터 화상을 복호하는 화상 복호 장치로서,
    상기 화상 내 복수의 직사각형 영역의 존재에 관련된 제1 플래그를 복호하고, 상기 제1 플래그의 값이 제1 값이고 상기 화상이 상기 복수의 직사각형 영역을 포함하는 경우, 각 직사각형 영역이 같은 크기를 갖는지를 나타내는 제2 플래그를 복호하고, 상기 제2 플래그에 기초하여, 상기 화상 내 상기 직사각형 영역의 수직 방향으로 블록들의 수를 식별하는 제1 정보를 복호하고, 각 직사각형 영역이 하나의 슬라이스로 구성되는지를 나타내는 제3 플래그 및 병렬 처리를 가능하게 하는 것과 관련된 entropy_coding_sync_enabled_flag를 복호하고, 상기 화상 내 처리 대상 슬라이스에 대응하는 직사각형 영역의 인덱스를 나타내는 제2 정보를 복호하는 복호 유닛과,
    상기 entropy_coding_sync_enabled_flag의 값이 상기 제1 값이고, 상기 제3 플래그가 각 직사각형 영역이 하나의 슬라이스로 구성되는 것을 나타내고, 상기 화상 내 상기 처리 대상의 슬라이스에 대응하는 직사각형 영역의 수직 방향으로 블록들의 수가 상기 직사각형 영역을 포함하는 타일의 수직 방향으로 블록들의 수보다 적고, 상기 처리 대상 슬라이스가 직사각형인 경우, 상기 제1 정보 및 상기 제2 정보에 기초하여, 상기 처리 대상 슬라이스에 있어서의 블록행의 부호 데이터의 선두 위치를 특정하기 위한 정보의 수를 특정하는 특정 유닛을 포함하고,
    상기 복호 유닛은, 상기 선두 위치를 특정하기 위한 정보의 수와, 상기 선두 위치를 특정하기 위한 정보에 적어도 기초하여, 상기 블록행의 부호 데이터를 복호하는 화상 복호 장치.
  5. 제4항에 있어서, 상기 처리 대상 슬라이스는, 소정 수의 연속되는 블록행들을 포함하는 화상 복호 장치.
  6. 삭제
  7. 삭제
  8. (a) 복수의 블록을 포함하는 타일 및 (b) 복수의 블록으로 형성된 블록행을 하나 이상 포함하는 직사각형 영역을 포함하는 화상을 부호화하여 얻어진 비트 스트림으로부터 화상을 복호하는 화상 복호 방법으로서,
    상기 화상 내 복수의 직사각형 영역의 존재에 관련된 제1 플래그를 복호하고,
    상기 제1 플래그의 값이 제1 값이고 상기 화상이 상기 복수의 직사각형 영역을 포함하는 경우, 각 직사각형 영역이 같은 크기를 갖는지를 나타내는 제2 플래그를 복호하고,
    상기 제2 플래그에 기초하여, 상기 화상 내 상기 직사각형 영역의 수직 방향으로 블록들의 수를 식별하는 제1 정보를 복호하고,
    각 직사각형 영역이 하나의 슬라이스로 구성되는지를 나타내는 제3 플래그 및 병렬 처리를 가능하게 하는 것과 관련된 entropy_coding_sync_enabled_flag를 복호하고,
    상기 화상 내 처리 대상 슬라이스에 대응하는 직사각형 영역의 인덱스를 나타내는 제2 정보를 복호하고,
    상기 entropy_coding_sync_enabled_flag의 값이 상기 제1 값이고, 상기 제3 플래그가 각 직사각형 영역이 하나의 슬라이스로 구성되는 것을 나타내고, 상기 화상 내 상기 처리 대상 슬라이스에 대응하는 직사각형 영역의 수직 방향으로 블록들의 수가 상기 직사각형 영역을 포함하는 타일의 수직 방향으로 블록들의 수보다 적고, 상기 처리 대상 슬라이스가 직사각형인 경우, 상기 제1 정보 및 상기 제2 정보에 기초하여, 상기 처리 대상 슬라이스에 있어서의 블록행의 부호 데이터의 선두 위치를 특정하기 위한 정보의 수를 특정하는 것을 포함하고,
    상기 블록행의 부호 데이터는, 상기 선두 위치를 특정하기 위한 정보의 수와, 상기 선두 위치를 특정하기 위한 정보에 적어도 기초하여, 복호되는 화상 복호 방법.
  9. 삭제
  10. 컴퓨터로 하여금,
    (a) 복수의 블록을 포함하는 타일 및 (b) 복수의 블록으로 형성된 블록행을 하나 이상 포함하는 직사각형 영역을 포함하는 화상을 부호화하여 얻어진 비트 스트림으로부터 화상을 복호하는 화상 복호 방법으로서,
    상기 화상 내 복수의 직사각형 영역의 존재에 관련된 제1 플래그를 복호하고,
    상기 제1 플래그의 값이 제1 값이고 상기 화상이 상기 복수의 직사각형 영역을 포함하는 경우, 각 직사각형 영역이 같은 크기를 갖는지를 나타내는 제2 플래그를 복호하고,
    상기 제2 플래그에 기초하여, 상기 화상 내 상기 직사각형 영역의 수직 방향으로 블록들의 수를 식별하는 제1 정보를 복호하고,
    각 직사각형 영역이 하나의 슬라이스로 구성되는지를 나타내는 제3 플래그 및 병렬 처리를 가능하게 하는 것과 관련된 entropy_coding_sync_enabled_flag를 복호하고,
    상기 화상 내 처리 대상 슬라이스에 대응하는 직사각형 영역의 인덱스를 나타내는 제2 정보를 복호하고,
    상기 entropy_coding_sync_enabled_flag의 값이 상기 제1 값이고, 상기 제3 플래그가 각 직사각형 영역이 하나의 슬라이스로 구성되는 것을 나타내고, 상기 화상 내 상기 처리 대상 슬라이스에 대응하는 직사각형 영역의 수직 방향으로 블록들의 수가 상기 직사각형 영역을 포함하는 타일의 수직 방향으로 블록들의 수보다 적고, 상기 처리 대상 슬라이스가 직사각형인 경우, 상기 제1 정보 및 상기 제2 정보에 기초하여, 상기 처리 대상 슬라이스에 있어서의 블록행의 부호 데이터의 선두 위치를 특정하기 위한 정보의 수를 특정하는 것을 포함하고,
    상기 블록행의 부호 데이터는, 상기 선두 위치를 특정하기 위한 정보의 수와, 상기 선두 위치를 특정하기 위한 정보에 적어도 기초하여 복호되는,
    컴퓨터 프로그램을 저장한 비일시적 컴퓨터 판독가능 저장 매체.
  11. 삭제
  12. 삭제
KR1020227000909A 2019-06-21 2020-05-28 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법 KR102667983B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019115749A JP2021002773A (ja) 2019-06-21 2019-06-21 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法
JPJP-P-2019-115749 2019-06-21
PCT/JP2020/021185 WO2020255669A1 (ja) 2019-06-21 2020-05-28 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法

Publications (2)

Publication Number Publication Date
KR20220019283A KR20220019283A (ko) 2022-02-16
KR102667983B1 true KR102667983B1 (ko) 2024-05-23

Family

ID=

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
비특허문헌 1 (BENJAMIN BROSS VERSATILE VIDEO CODING (DRAFT 5) JVET_N1001_V8.DOCX JVET_N1001 VERSION 8 2019.06.11)*
비특허문헌 2 (YE_KUI WANG AHG12: MISCELLANEOUS AHG12 TOPICS JVET_O0145_V1.DOCX JVET_O0145 VERSION 1 2019.06.20)*

Similar Documents

Publication Publication Date Title
RU2765234C1 (ru) Способ внутреннего предсказания и кодер и декодер, использующие его
US9866848B2 (en) Method and apparatus for line buffer reduction for video processing
KR102076398B1 (ko) 비디오 코딩 및 디코딩에서의 벡터 인코딩을 위한 방법 및 장치
KR20210077799A (ko) 부호화 장치, 부호화 방법 및 프로그램
WO2014087861A1 (ja) 画像処理装置、画像処理方法、およびプログラム
KR20200108084A (ko) 어파인 움직임 예측에 기반한 영상 코딩 방법 및 그 장치
JP2024019495A (ja) 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法
JP2024019496A (ja) 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法
KR102667983B1 (ko) 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법
KR102668065B1 (ko) 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법, 컴퓨터 프로그램을 저장한 비일시적 컴퓨터-판독가능 저장 매체
KR102668064B1 (ko) 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법, 컴퓨터 프로그램을 저장하기 위한 컴퓨터 판독 가능한 비일시적 저장 매체
WO2020255669A1 (ja) 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法
CN114009036B (zh) 图像编码设备和方法、图像解码设备和方法以及存储介质
TWI761166B (zh) 圖像和視訊編解碼中發信切片分割資訊之方法和裝置
TWI834910B (zh) 影像編碼裝置、影像編碼方法及程式、影像解碼裝置、影像解碼方法及程式
WO2021049277A1 (ja) 画像符号化装置及び画像復号装置
WO2016143093A1 (ja) 動画像符号化装置及びそれに用いるIntra予測符号化方法、及び動画像復号化装置