KR20160114166A - 인코딩 및 디코딩 방법과 장치 - Google Patents

인코딩 및 디코딩 방법과 장치 Download PDF

Info

Publication number
KR20160114166A
KR20160114166A KR1020167023765A KR20167023765A KR20160114166A KR 20160114166 A KR20160114166 A KR 20160114166A KR 1020167023765 A KR1020167023765 A KR 1020167023765A KR 20167023765 A KR20167023765 A KR 20167023765A KR 20160114166 A KR20160114166 A KR 20160114166A
Authority
KR
South Korea
Prior art keywords
code block
block group
code
processing
processing order
Prior art date
Application number
KR1020167023765A
Other languages
English (en)
Other versions
KR101960825B1 (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 KR20160114166A publication Critical patent/KR20160114166A/ko
Application granted granted Critical
Publication of KR101960825B1 publication Critical patent/KR101960825B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/174Methods 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 slice, e.g. a line of blocks or a group of 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/146Data rate or code amount at the encoder output
    • 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/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
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation

Landscapes

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

Abstract

비디오 정보 내의 공간 상관관계를 완전히 활용할 수 있는 인코딩 및 디코딩 방법과 장치가 개시되며, 이로써 인코딩 및 디코딩 중에 압축 효율을 향상시킨다. 상기 인코딩 및 디코딩 방법은, 타깃 이미지의 총 코딩 비용에 따라, 상기 타깃 이미지에 포함된 복수의 코드 블록 그룹의 제1 처리 순서를 결정하는 단계; 상기 제1 처리 순서에 따라 상기 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹을 인코딩하여 비트스트림을 생성하는 단계; 및 상기 제1 처리 순서를 상기 비트스트림에 기입하는 단계를 포함한다. 타깃 이미지에 포함된 복수의 코드 블록 그룹의 제1 처리 순서가 상기 타깃 이미지의 총 코딩 비용에 따라 결정되고, 비디오 정보 내의 공간 상관관계가 완전히 활용될 수 있도록, 복수의 코드 블록 그룹이 제1 처리 순서에 따라 인코딩 및 디코딩되며, 이로써 인코딩 및 디코딩 중에 압축 효율을 향상시킨다.

Description

코딩 및 디코딩 방법과 장치{CODING AND DECODING METHOD AND DEVICE}
본 출원은 중국 특허청에 2014년 2월 18일에 출원되고 "ENCODING AND DECODING METHODS AND APPARATUSES"라는 제목의 중국 특허출원 번호 CN201410054130.3에 대해 우선권을 주장하는 바이며, 그 전체 내용이 원용에 의해 본 명세서에 포함된다.
본 발명은 영상 처리 분야에 관한 것으로, 상세하게는 인코딩 및 디코딩 방법과 장치에 관한 것이다.
비디오 압축 코딩 기술이 멀티미디어 서비스, 브로드캐스트 통신, 비디오 통신, 스토리지 등의 분야에서 널리 사용된다. 국제전기통신연합-전기통신표준화부문(International Telecommunication Union-Telecommunication standardization sector, ITU-T) 및 국제 표준화 기구(International Electrotechnical Commission, IEC)/국제 전기 표준 회의(International Electrotechnical Commission, IEC)에 의해 공동으로 개발된 H.264 표준 및 고급 비디오 부호화(Advanced Video Coding, AVC) 표준이 오늘날 가장 널리 사용되는 비디오 코딩 표준이다. 하지만, H.264/AVC는 고해상도 비디오의 압축 코딩에 적용할 수 없다. 고화질, 초고화질, 및 3D 비디오에 대한 수요가 증가함에 따라, 영상 부호화 공동 협력팀(Joint Collaborative Team on Video Coding, JCT-VC)이 고효율 비디오 부호화(High Efficiency Video Coding, HEVC) 표준을 제안하였고, H.264/AVC와 비교하여 HEVC의 압축 효율이 대략 50%만큼 향상되었다.
HEVC 표준에서, 인코딩될 이미지는 중첩하지 않는 이미지 블록(non-overlapping image block)으로 분할된다. 인코더는 각각의 이미지 블록을 순차적으로 처리하기 위해 프로그레시브 스캐닝(progressive scanning)을 수행한다. 전술한 이미지 블록이 복수의 서브블록(subblock)으로 더 분할될 수 있고, 각각의 서브블록의 코딩 파라미터가 각각의 서브블록에 대해 독립적으로 결정될 수 있다. HEVC 용어에 있어서, 전술한 중첩하지 않는 이미지 블록은 코딩 트리 유닛(Coding Tree Unit, CTU)이라고 하며, 코딩 트리 유닛의 크기는 일반적으로 64x64 화소로 설정된다. 쿼드 트리 구조(quadtree structure)가 CTU를 복수의 서브블록으로 더 분할하기 위해 사용될 수 있다. 여기서, 서브블록은 HEVC에서 일반적으로 코드 유닛(Coding Unit, CU)이라고 한다. 하나의 CTU 내의 CU는 Z-형상 방식으로 스캐닝하는 순서로 인코딩되고, 하나의 프레임 내의 모든 CTU는 라인 스캔의 순서로 인코딩된다. HEVC에서의 프레임 내 예측 모드는 다이렉트 커런트 예측(direct current prediction, DC prediction), 평면 예측(plane prediction), 및 방향성 예측(directional prediction)을 포함한다. 인코딩될 블록의 경우에는, 인코딩될 블록의 좌측과 위쪽의 이미 복원된 코드 블록은 예측을 위한 기준으로서 사용되고, 이미 복원된 블록 내에서 예측을 위해 사용되는 화소는 참조 화소(reference pixel)라고 한다. DC 예측은, 이미지에서 플랫 텍스처(flat texture)를 가진 영역 내의 블록에 적용 가능하고, 블록 내의 모든 화소에 대해 참조 화소의 평균값이 예측자(predictor)로서 사용된다. 평면 예측에 있어서, 참조 화소는 이중선형 보간 연산(bilinear interpolation operation)을 수행하기 위해 사용되어 블록 내의 모든 화소의 예측자를 획득하고, 따라서 평면 예측은 매끄럽게 변화하는 텍스쳐를 가진 블록에 적용 가능하다. 방향성 예측에 있어서, 이미 복원되고 현재 코드 블록에 가까운 블록과 매우 관련되어 있고 현재 코드 블록에 포함된 텍스쳐의 특징이 사용되고, 대응하는 참조 화소의 값이 주어진 방향을 따라 현재 블록 내 화소의 예측자로서 복제된다.
H.264/AVC 표준에서, 코드 블록은 매크로 블록(Macro Block, MB)이라고 하고, 매크로 블록의 크기는 고정적으로 16×16 화소이며, 각각의 매크로 블록은 예측 코딩을 위해 4×4, 8×8, 또는 16×16 서브 매크로 블록(Sub Macro Block, SMB)으로만 분할될 수 있다. MB 및 SMB는 각각 HEVC에서의 CTU 및 CU에 대응한다. MB의 인코딩 순서는 CTU의 인코딩 순서와 유사하고, MB 및 CTU 양자 모두는 라인 스캔의 순서로 인코딩되며, SMB의 인코딩 순서도 또한 Z-형상 방식으로의 프로그레시브 스캐닝이다. H.264/AVC에서의 프레임 내 예측(Intra-frame prediction)도 역시 평균 예측 및 방향성 예측을 이용하지만, 최대 9개의 예측 모드가 존재한다.
즉, 이미지가 기존의 비디오 코딩 표준으로 인코딩되는 경우, 인코딩될 이미지가 먼저 중첩하지 않는 코드 블록으로 분할된 다음, 각각의 블록이 일정한 순서(라인 스캔의 순서)로 순차적으로 인코딩되며, 결과적으로 비교적 낮은 인코딩 압축 효율을 초래한다.
본 발명의 실시예는 비디오 정보 내의 공간 상관관계를 완전히 활용할 수 있는 인코딩 및 디코딩 방법과 장치를 제공하고, 이로써 인코딩 및 디코딩 중에 압축 효율을 향상시킨다.
제1 양태에 따라, 인코딩 방법이 제공된다. 상기 인코딩 방법은, 타깃 이미지의 총 코딩 비용(total coding cost)에 따라, 상기 타깃 이미지에 포함된 복수의 코드 블록 그룹(multiple code blocks group)의 제1 처리 순서(first processing order)를 결정하는 단계; 상기 제1 처리 순서에 따라 상기 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹을 인코딩하여 비트스트림(bitstream)을 생성하는 단계; 및 상기 제1 처리 순서를 상기 비트스트림에 기입하는 단계를 포함한다.
제1 양태를 참조하여, 제1 양태의 제1 구현 방식에서, 상기 타깃 이미지의 총 코딩 비용에 따라, 상기 타깃 이미지에 포함된 복수의 코드 블록 그룹의 제1 처리 순서를 결정하는 단계는, 상기 복수의 코드 블록 그룹의 모든 처리 순서의 각각의 처리 순서에 대응하는 총 코딩 비용을 결정하는 단계 - 각각의 처리 순서에 대응하는 상기 총 코딩 비용은 상기 복수의 코드 블록 그룹이 각각의 처리 순서에 따라 인코딩된 경우의 코딩 비용의 합임 -; 및 상기 모든 처리 순서에 대응하는 상기 총 코딩 비용의 최소 총 코딩 비용에 대응하는 처리 순서가 상기 제1 처리 순서라고 결정하는 단계를 포함한다.
제1 양태 및 제1 양태의 전술한 구현 방식을 참조하여, 제1 양태의 제2 구현 방식에서, 상기 제1 처리 순서에 따라 상기 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹을 인코딩하여 비트스트림을 생성하는 단계는, 상기 제1 처리 순서에 따라, 상기 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계; 및 상기 제1 처리 순서 및 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서에 따라 상기 코드 블록 그룹을 인코딩하는 단계를 포함한다.
제1 양태 및 제1 양태의 전술한 구현 방식을 참조하여, 제1 양태의 제3 구현 방식에서, 상기 제1 처리 순서에 따라, 상기 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계 이전에, 상기 인코딩 방법은, 상기 코드 블록의 복수의 후보 처리 순서(candidate processing orders)를 결정하는 단계; 및 상기 복수의 후보 처리 순서 간의 대응 관계(correspondence) 및 복수의 위치 관계(multiple location relationships)를 결정하는 단계를 더 포함하고, 상기 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 상기 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
제1 양태 및 제1 양태의 전술한 구현 방식을 참조하여, 제1 양태의 제4 구현 방식에서, 상기 제1 처리 순서에 따라, 상기 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계는, 상기 제1 처리 순서에 따라, 상기 코드 블록 그룹과 상기 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하는 단계; 및 상기 대응 관계 및 상기 상대적인 위치 관계에 따라, 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서를 결정하는 단계를 포함한다.
제1 양태 및 제1 양태의 전술한 구현 방식을 참조하여, 제1 양태의 제5 구현 방식에서, 상기 코드 블록의 복수의 후보 처리 순서를 결정하는 단계는, 상기 코드 블록의 사전 설정된 복수의 후보 처리 순서를 이용하는 단계를 포함한다.
제1 양태 및 제1 양태의 전술한 구현 방식을 참조하여, 제1 양태의 제6 구현 방식에서, 상기 제1 처리 순서에 따라, 상기 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계는, 상기 제1 처리 순서에 따라, 상기 코드 블록 그룹과 상기 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하는 단계; 및 상기 상대적인 위치 관계, 및 상기 사전 설정된 복수의 후보 처리 순서와 상기 복수의 위치 관계 간의 대응 관계에 따라, 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서를 결정하는 단계를 포함하고, 상기 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 상기 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
제1 양태 및 제1 양태의 전술한 구현 방식을 참조하여, 제1 양태의 제7 구현 방식에서, 상기 제1 처리 순서를 상기 비트스트림에 기입하는 단계는, 상기 제1 처리 순서에 따라 상기 코드 블록 그룹의 인덱스를 배열하고, 상기 코드 블록 그룹의 배열된 인덱스를 인코딩하고 상기 배열된 인덱스를 상기 비트스트림에 기입하는 단계; 또는 상기 제1 처리 순서에 따라 상기 코드 블록 그룹의 좌표를 배열하고, 상기 코드 블록 그룹의 배열된 좌표를 인코딩하고 상기 배열된 좌표를 상기 비트스트림에 기입하는 단계를 포함한다.
제1 양태 및 제1 양태의 전술한 구현 방식을 참조하여, 제1 양태의 제8 구현 방식에서, 상기 코드 블록 그룹의 코딩 비용은, 상기 코드 블록 그룹을 인코딩하기 위해 소요되는 비트의 수, 또는 상기 코드 블록 그룹의 왜곡(distortion) 중 적어도 하나를 포함한다.
제2 양태에 따라, 디코딩 방법이 제공된다. 상기 디코딩 방법은, 비트스트림으로부터 타깃 이미지의 복수의 코드 블록 그룹의 제1 처리 순서를 획득하는 단계; 상기 제1 처리 순서에 따라, 상기 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계; 및 상기 제1 처리 순서 및 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서에 따라 상기 비트스트림을 디코딩하는 단계를 포함한다.
제2 양태를 참조하여, 제2 양태의 제1 구현 방식에서, 상기 제1 처리 순서에 따라, 상기 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계 이전에, 상기 디코딩 방법은, 상기 코드 블록의 복수의 후보 처리 순서를 결정하는 단계; 및 상기 복수의 후보 처리 순서 간의 대응 관계 및 복수의 위치 관계를 결정하는 단계를 더 포함하고, 상기 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 상기 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
제2 양태 및 제2 양태의 전술한 구현 방식을 참조하여, 제2 양태의 제2 구현 방식에서, 상기 제1 처리 순서에 따라, 상기 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계는, 상기 제1 처리 순서에 따라, 상기 코드 블록 그룹과 상기 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하는 단계; 및 상기 대응 관계 및 상기 상대적인 위치 관계에 따라, 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서를 결정하는 단계를 포함한다.
제2 양태 및 제2 양태의 전술한 구현 방식을 참조하여, 제2 양태의 제3 구현 방식에서, 상기 코드 블록의 복수의 후보 처리 순서를 결정하는 단계는, 상기 코드 블록의 사전 설정된 복수의 후보 처리 순서를 이용하는 단계를 포함한다.
제2 양태 및 제2 양태의 전술한 구현 방식을 참조하여, 제2 양태의 제4 구현 방식에서, 상기 제1 처리 순서에 따라, 상기 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계는, 상기 제1 처리 순서에 따라, 상기 코드 블록 그룹과 상기 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하는 단계; 및 상기 상대적인 위치 관계, 및 상기 사전 설정된 복수의 후보 처리 순서와 상기 복수의 위치 관계 간의 대응 관계에 따라, 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서를 결정하는 단계를 포함하고, 상기 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 상기 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
제2 양태 및 제2 양태의 전술한 구현 방식을 참조하여, 제2 양태의 제5 구현 방식에서, 상기 비트스트림으로부터 타깃 이미지의 복수의 코드 블록 그룹의 제1 처리 순서를 획득하는 단계는, 상기 복수의 코드 블록 그룹의 배열된 인덱스를 획득하기 위해 상기 비트스트림을 디코딩하고, 상기 복수의 코드 블록 그룹의 인덱스의 배열 순서에 따라 상기 제1 처리 순서를 결정하는 단계; 또는 상기 복수의 코드 블록 그룹의 배열된 좌표를 획득하기 위해 상기 비트스트림을 디코딩하고, 상기 복수의 코드 블록 그룹의 좌표의 배열 순서에 따라 상기 제1 처리 순서를 결정하는 단계를 포함한다.
제3 양태에 따라, 인코더가 제공된다. 상기 인코더는, 타깃 이미지의 총 코딩 비용에 따라, 상기 타깃 이미지에 포함된 복수의 코드 블록 그룹의 제1 처리 순서를 결정하도록 구성되는 결정 유닛; 및 상기 결정 유닛에 의해 결정된 상기 제1 처리 순서에 따라 상기 복수의 코드 블록 그룹 중 하나의 코드 블록을 인코딩하여 비트스트림을 생성하도록 구성되는 인코딩 유닛을 포함하고, 상기 인코딩 유닛은 추가적으로, 상기 결정 유닛에 의해 결정된 상기 제1 처리 순서를 상기 비트스트림에 기입하도록 구성된다.
제3 양태를 참조하여, 제3 양태의 제1 구현 방식에서, 상기 결정 유닛은 구체적으로, 상기 복수의 코드 블록 그룹의 모든 처리 순서의 각각의 처리 순서에 대응하는 총 코딩 비용을 결정하고, 상기 모든 처리 순서에 대응하는 상기 총 코딩 비용의 최소 총 코딩 비용에 대응하는 처리 순서가 상기 제1 처리 순서라고 결정하도록 구성되고, 각각의 처리 순서에 대응하는 상기 총 코딩 비용은 상기 복수의 코드 블록 그룹이 각각의 처리 순서에 따라 인코딩된 경우의 코딩 비용의 합이다.
제3 양태 및 제3 양태의 전술한 구현 방식을 참조하여, 제3 양태의 제2 구현 방식에서, 상기 인코딩 유닛은 구체적으로, 상기 결정 유닛을 사용함으로써 상기 제1 처리 순서에 따라, 상기 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하고, 상기 제1 처리 순서 및 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서에 따라 상기 코드 블록 그룹을 인코딩하도록 구성된다.
제3 양태 및 제3 양태의 전술한 구현 방식을 참조하여, 제3 양태의 제3 구현 방식에서, 상기 결정 유닛은 추가적으로, 상기 코드 블록의 복수의 후보 처리 순서를 결정하고, 상기 복수의 후보 처리 순서 간의 대응 관계 및 복수의 위치 관계를 결정하도록 구성되고, 상기 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 상기 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
제3 양태 및 제3 양태의 전술한 구현 방식을 참조하여, 제3 양태의 제4 구현 방식에서, 상기 결정 유닛은 구체적으로, 상기 제1 처리 순서에 따라, 상기 코드 블록 그룹과 상기 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하고, 상기 대응 관계 및 상기 상대적인 위치 관계에 따라, 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서를 결정하도록 구성된다.
제3 양태 및 제3 양태의 전술한 구현 방식을 참조하여, 제3 양태의 제5 구현 방식에서, 상기 결정 유닛은 구체적으로, 상기 코드 블록의 사전 설정된 복수의 후보 처리 순서를 이용하도록 구성된다.
제3 양태 및 제3 양태의 전술한 구현 방식을 참조하여, 제3 양태의 제6 구현 방식에서, 상기 결정 유닛은 구체적으로, 상기 제1 처리 순서에 따라, 상기 코드 블록 그룹과 상기 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하고, 상기 상대적인 위치 관계, 및 상기 사전 설정된 복수의 후보 처리 순서와 상기 복수의 위치 관계 간의 대응 관계에 따라, 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서를 결정하도록 구성되고, 상기 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 상기 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
제3 양태 및 제3 양태의 전술한 구현 방식을 참조하여, 제3 양태의 제7 구현 방식에서, 상기 인코딩 유닛은 구체적으로, 상기 제1 처리 순서에 따라 상기 코드 블록 그룹의 인덱스를 배열하고, 상기 코드 블록 그룹의 배열된 인덱스를 인코딩하고 상기 배열된 인덱스를 상기 비트스트림에 기입하거나; 또는 상기 제1 처리 순서에 따라 상기 코드 블록 그룹의 좌표를 배열하고, 상기 코드 블록 그룹의 배열된 좌표를 인코딩하고 상기 배열된 좌표를 상기 비트스트림에 기입하도록 구성된다.
제3 양태 및 제3 양태의 전술한 구현 방식을 참조하여, 제3 양태의 제8 구현 방식에서, 상기 코드 블록 그룹의 코딩 비용은, 상기 코드 블록 그룹을 인코딩하기 위해 상기 인코딩 유닛에 의해 소요되는 비트의 수, 또는 상기 코드 블록 그룹의 왜곡 중 적어도 하나를 포함한다.
제4 양태에 따라, 디코더가 제공된다. 상기 디코더는, 비트스트림으로부터 타깃 이미지의 복수의 코드 블록 그룹의 제1 처리 순서를 획득하도록 구성된 획득 유닛; 상기 제1 처리 순서에 따라, 상기 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하도록 구성되는 결정 유닛; 및 상기 제1 처리 순서 및 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서에 따라 상기 비트스트림을 디코딩하도록 구성된 디코딩 유닛을 포함한다.
제4 양태를 참조하여, 제4 양태의 제1 구현 방식에서, 상기 결정 유닛은 추가적으로, 상기 코드 블록의 복수의 후보 처리 순서를 결정하고, 상기 복수의 후보 처리 순서 간의 대응 관계 및 복수의 위치 관계를 결정하도록 구성되고, 상기 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 상기 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
제4 양태 및 제4 양태의 전술한 구현 방식 참조하여, 제4 양태의 제2 구현 방식에서, 상기 결정 유닛은 구체적으로, 상기 제1 처리 순서에 따라, 상기 코드 블록 그룹과 상기 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하고, 상기 대응 관계 및 상기 상대적인 위치 관계에 따라, 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서를 결정하도록 구성된다.
제4 양태 및 제4 양태의 전술한 구현 방식 참조하여, 제4 양태의 제3 구현 방식에서, 상기 결정 유닛은 구체적으로, 상기 코드 블록의 사전 설정된 복수의 후보 처리 순서를 이용하도록 구성된다.
제4 양태 및 제4 양태의 전술한 구현 방식 참조하여, 제4 양태의 제4 구현 방식에서, 상기 결정 유닛은 구체적으로, 상기 제1 처리 순서에 따라, 상기 코드 블록 그룹과 상기 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하고, 상기 상대적인 위치 관계, 및 상기 사전 설정된 복수의 후보 처리 순서와 상기 복수의 위치 관계 간의 대응 관계에 따라, 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서를 결정하도록 구성되고, 상기 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 상기 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
제4 양태 및 제4 양태의 전술한 구현 방식 참조하여, 제4 양태의 제5 구현 방식에서, 상기 획득 유닛은 구체적으로, 상기 비트스트림을 디코딩하기 위해 상기 디코딩 유닛을 사용함으로써 상기 복수의 코드 블록 그룹의 배열된 인덱스를 획득하고, 상기 결정 유닛을 사용함으로써 상기 복수의 코드 블록 그룹의 인덱스의 배열 순서에 따라 상기 제1 처리 순서를 결정하거나; 또는 상기 비트스트림을 디코딩하기 위해 상기 디코딩 유닛을 사용하여 상기 복수의 코드 블록 그룹의 배열된 좌표를 획득하고, 상기 결정 유닛을 사용함으로써 상기 복수의 코드 블록 그룹의 좌표의 배열 순서에 따라 상기 제1 처리 순서를 결정하도록 구성된다.
본 발명의 실시예에서, 타깃 이미지에 포함된 복수의 코드 블록 그룹의 제1 처리 순서가 상기 타깃 이미지의 총 코딩 비용에 따라 결정되고, 비디오 정보 내의 공간 상관관계가 완전히 활용될 수 있도록, 복수의 코드 블록 그룹이 제1 처리 순서에 따라 인코딩 및 디코딩되며, 이로써 인코딩 및 디코딩 중에 압축 효율을 향상시킨다.
본 발명의 실시예에서의 과제 해결수단을 더 명확하게 설명하기 위해, 다음에서는 본 발명의 실시예를 설명하기 위해 필요한 첨부 도면에 대해 간략히 소개한다. 명백히, 다음의 설명에서 첨부 도면은 본 발명의 일부 실시예를 나타낼 뿐이고, 당업자는 창의적인 노력 없이도 이러한 첨부한 도면으로부터 다른 도면을 여전히 도출할 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 인코딩 방법의 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 디코딩 방법의 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 코드 블록의 처리 순서의 개략도이다.
도 4는 본 발명의 다른 실시예에 따른 코드 블록의 처리 순서의 개략도이다.
도 5는 본 발명의 일 실시예에 따른 코드 블록의 후보 처리 순서들 간의 대응 관계 및 복수의 위치 관계의 개략도이다.
도 6은 본 발명의 일 실시예에 따른, 인코더 측에서 인코딩하는 단계의 흐름도이다.
도 7은 본 발명의 일 실시예에 따른, 디코더 측에서 디코딩하는 단계의 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 인코더의 개략적인 블록도이다.
도 9는 본 발명의 일 실시예에 따른 디코더의 개략적인 블록도이다.
도 10은 본 발명의 다른 실시예에 따른 인코더의 개략적인 블록도이다.
도 11은 본 발명의 다른 실시예에 따른 디코더의 개략적인 블록도이다.
이하, 본 발명의 실시예에서의 첨부 도면을 참조하여, 본 발명의 실시예에서의 과제 해결수단에 대해 명확하고 완전하게 설명한다. 명백히, 이하의 실시예는 본 발명의 실시예의 전부가 아니라 단지 일부일 뿐이다. 창작적인 노력 없이 본 발명의 실시예에 기반하여 당해 기술 분야의 당업자에 의해 획득되는 다른 모든 실시예도 본 발명의 보호 범위에 속할 것이다.
도 1은 본 발명의 일 실시예에 따른 인코딩 방법의 흐름도이다.
101. 타깃 이미지의 총 코딩 비용(total coding cost)에 따라, 타깃 이미지에 포함된 복수의 코드 블록 그룹(multiple code blocks group)의 제1 처리 순서를 결정한다.
102. 제1 처리 순서에 따라 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹을 인코딩하여 비트스트림(bitstream)을 생성한다.
103. 제1 처리 순서를 비트스트림에 기입한다.
본 발명의 본 실시예에서, 타깃 이미지 내의 공간 상관관계가 완전히 활용될 수 있도록, 타깃 이미지에 포함된 복수의 코드 블록 그룹의 제1 처리 순서가 타깃 이미지의 총 코딩 비용에 따라 결정되고, 복수의 코드 블록 그룹이 제1 처리 순서에 따라 인코딩되며, 따라서 인코딩 중에 압축 효율이 향상된다.
이해되어야 할 것은, 본 발명의 본 실시예에서의 타깃 이미지는 인코딩될 이미지이거나, 또는 코딩된 이미지라고도 할 수 있다는 것이다. 타깃 이미지가 복수의 중첩하지 않는 코드 블록 그룹으로 분할된다. 여기서, 코드 블록 그룹은 HEVC에서의 코딩 트리 유닛(coding tree unit, CTU)와 동일할 수 있거나, 또는 H.264/AVC에서의 매크로블록(macroblock, MB)과 동일할 수 있거나, 또는 이와 유사한 것과 동일할 수 있다. 코드 블록 그룹은, 코딩 파라미터가 독립적으로 결정될 수 있는 복수의 코드 블록으로 계속 분할될 수 있다. 여기서, 코드 블록은 HEVC에서의 코드 유닛 CU과 동일할 수 있거나, 또는 H.264/AVC에서의 서브 매크로블록 SMB등과 동일할 수 있거나, 또는 이와 유사한 것과 동일할 수 있다.
선택적으로, 일 실시예에서, 단계 101은 복수의 코드 블록 그룹의 모든 처리 순서의 각각의 처리 순서에 대응하는 총 코딩 비용을 결정하는 단계 - 각각의 처리 순서에 대응하는 총 코딩 비용은 복수의 코드 블록 그룹이 각각의 처리 순서에 따라 인코딩된 경우의 코딩 비용의 합임 -; 및 모든 처리 순서에 대응하는 총 코딩 비용의 최소 총 코딩 비용에 대응하는 처리 순서가 제1 처리 순서라고 결정하는 단계를 포함한다.
구체적으로, 코드 블록 그룹이 서로 다른 처리 순서로 처리되는 경우, 각각의 코드 블록 그룹의 코딩 비용은 처리 순서에 따라 달라진다. 코드 블록 그룹의 코딩 비용은 블록 그룹의 인코딩 품질을 측정하기 위한 중요한 기준이다. 코딩 비용이 계산되는 경우, 블록을 인코딩하기 위해 소요되는 비트의 수가 복원 후에 블록의 품질을 나타낸다. 코딩 비용이 더 작은 값을 가진다는 것은, 블록이 더 잘 인코딩되었다는 것을 나타낸다. 따라서, 모든 코드 블록 그룹의 최소 총 코딩 비용을 달성할 수 있는 처리 순서가 최적의 처리 순서로서 사용될 수 있다. 따라서, 최적의 처리 순서를 결정하는 문제는 최소 총 코딩 비용을 풀어내는 문제로 전환될 수 있다:
Figure pct00001
여기서,
Figure pct00002
은 코드 블록 그룹의 총 수량을 나타내고;
Figure pct00003
은 코드 블록 그룹의 인덱스가 좌측에서 우측 및 상측에서 하측의 순서로 표시된다는 것을 나타내며;
Figure pct00004
는 코드 블록 그룹의 처리 순서를 나타내는 벡터이고;
Figure pct00005
의 각각의 항목은 코드 블록 그룹의 인덱스 배열 방식이고, 총 가능한 처리 순서는
Figure pct00006
의 순열
Figure pct00007
이며;
Figure pct00008
인 경우에 나타낸 처리 순서는 기존의 라인 스캔 처리 순서이고;
Figure pct00009
는 이미 처리된 j개의 블록 그룹의 인덱스를 포함하는 세트이며; k는 이미 처리된 j개의 블록 그룹이 N개의 블록 그룹 중에서 선택된 j개의 블록 그룹의
Figure pct00010
개의 가능한 조합 중 k번째 조합이라는 것을 나타내고; i는 인코딩되지 않은 블록 그룹 중 하나를 나타내며;
Figure pct00011
Figure pct00012
내의 모든 코드 블록 그룹이 처리된 경우에 코드 블록 그룹 i를 처리하기 위해 필요한 비용을 나타내고;
Figure pct00013
은 모든 N개의 코드 블록 그룹의 세트를 나타내며;
Figure pct00014
은 N개의 코드 블록 그룹의 최적 처리 순서를 나타내고; 최적의 질문의 목적은, 모든 N개의 코드 블록 그룹의 총 비용
Figure pct00015
이 최소가 될 수 있도록 처리 순서
Figure pct00016
를 찾아내는 것이다.
Figure pct00017
를 풀기 위해, 각각의 코드 블록 그룹의 비용
Figure pct00018
이 계산될 필요가 있다. 하나의 코드 블록 그룹의 비용
Figure pct00019
이 획득된 후에, 공식 (2)에서 설명되는 방법이 코드 블록 그룹의 최적의 처리 순서를 결정하기 위해 사용될 수 있다:
Figure pct00020
(2)
여기서,
Figure pct00021
는 이미 처리된 코드 블록 그룹의 수량을 나타내고;
Figure pct00022
는 이미 처리된 j개의 블록 그룹의 모든 가능한 조합 중 k번째 조합을 나타내며;
Figure pct00023
는 전술한 경우의 k번째 조합 중 이미 처리된 j개의 블록 그룹의 인덱스를 포함하는 세트이고; 비용 함수
Figure pct00024
는 코드 블록 그룹 세트
Figure pct00025
내의 모든 블록 그룹의 비용의 합, 즉, 최적의 처리 순서
Figure pct00026
를 사용함으로써
Figure pct00027
에 포함된 j 코드 블록 그룹을 처리하기 위해 필요한 총 비용을 나타내며;
Figure pct00028
Figure pct00029
가 나타내는 k번째 조합이 나타내는 모든 j개의 블록 그룹이 처리된 경우 블록 그룹 i가 인코딩되는 때 초래되는 비용을 나타낸다.
전술한 프로세스를 설명하기 위해, 예가 제공된다. 여기서, 3개의 코드 블록 그룹이 존재하고, 이들은 처리되기 위해 1, 2, 및 3으로 번호가 매겨진다. j=2인 경우,
Figure pct00030
에 대한 3가지 가능한 경우가, 즉,
Figure pct00031
,
Figure pct00032
, 및
Figure pct00033
인 경우가 존재하고, 이들의 최적의 인코딩 순서는
Figure pct00034
,
Figure pct00035
, 및
Figure pct00036
이며, 이들에 대응하는 최적의 비용은
Figure pct00037
,
Figure pct00038
, 및
Figure pct00039
이다. 또한, j=3인 경우가 고려된다.
Figure pct00040
에 대한 3가지 가능한 경우에서, 다른 코드 블록 그룹은 각각 3으로 번호가 매겨진 블록 그룹, 2로 번호가 매겨진 블록 그룹, 및 1로 변호가 매겨진 블록 그룹이고, 블록 그룹을 인코딩하기 위한 이에 대응하는 비용은 각각
Figure pct00041
,
Figure pct00042
, 및
Figure pct00043
이다. 이때, 인코딩 번호 1, 2, 및 3을 가진 3개의 코드 블록 그룹의 최소 비용
Figure pct00044
이 공식 (3)을 이용함으로써 계산에 의해 획득될 수 있고, 그 후에 최적의 처리 순서
Figure pct00045
가 결정된다.
Figure pct00046
(3)
선택적으로, 일 실시예에서, 단계 102는, 제1 처리 순서에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계; 및 제1 처리 순서 및 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서에 따라 코드 블록 그룹을 인코딩하는 단계를 포함한다.
구체적으로, 코드 블록 그룹의 처리 순서가 결정된 후에, 코드 블록 그룹에 포함된 코드 블록의 처리 순서가 추가적으로 결정될 필요가 있을 수 있다. 현재 코드 블록 그룹 내의 코드 블록의 처리 순서가 코드 블록 그룹의 처리 순서에 따라 결정될 수 있다. 즉, 현재 코드 블록 그룹과 현재 코드 블록 그룹에 인접한 코드 블록 그룹 간의 처리 순서가 코드 블록 그룹의 처리 순서에 따라 결정될 수 있고, 이로써 현재 코드 블록 그룹 내의 코드 블록의 처리 순서가 결정된다. 현재 코드 블록 그룹 내의 코드 블록은 복수의 사전 설정된 후보 처리 순서(preset candidate processing order)를 가질 수 있다. 여기서, 각각의 후보 처리 순서는 하나의 위치 관계에 대응하고, 이 위치 관계는 현재 처리되는 코드 블록 그룹과 이미 처리되었으면서 현재 처리되는 코드 블록 그룹에 인접한 코드 블록 그룹 간의 상대적인 위치 관계이다. 현재 코드 블록 그룹이 인코딩될 때, 현재 코드 블록 그룹과 이미 인코딩되었으면서 현재 코드 블록 그룹에 인접하거나 가까운 코드 블록 그룹 간의 상대적인 위치 관계가 먼저 결정될 수 있고, 그 다음에 대응하는 코드 블록 그룹 내의 코드 블록의 처리 순서가 결정된 상대적인 위치 관계에 따라, 미리 구성된 대응 관계 중에서 결정된다. 코드 블록의 처리 순서가 결정된 후에, 현재 코드 블록 그룹 내의 모든 코드 블록이 처리 순서에 따라 인코딩되고, 인코딩이 종료된 후에 다음 코드 블록 그룹이 제1 처리 순서에 따라 처리된다. 현재 코드 블록 그룹과 유사하게, 다음 코드 블록 그룹 내의 코드 블록의 처리 순서가 상대적인 위치 관계에 따라 결정될 필요가 있고, 타깃 이미지의 모든 코드 블록 그룹이 제1 처리 순서에 따라 완전히 인코딩될 때까지 계속된다.
선택적으로, 일 실시예에서, 제1 처리 순서에 따라, 코드 블록 그룹의 각각의 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계 이전에, 인코딩 방법은, 코드 블록의 복수의 후보 처리 순서를 결정하는 단계; 및 복수의 후보 처리 순서들 간의 대응 관계 및 복수의 위치 관계를 결정하는 단계를 더 포함한다. 여기서, 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다. 선택적으로, 일 실시예에서, 코드 블록의 복수의 후보 처리 순서를 결정하는 단계는, 코드 블록의 사전 설정된 복수의 후보 처리 순서를 이용하는 단계를 포함한다. 사전 설정된 코드 블록의 복수의 후보 처리 순서는 복수의 방법을 이용하여 결정될 수 있다. 예를 들어, 사전 설정된 코드 블록의 복수의 후보 처리 순서는 코드 블록 그룹에 포함된 코드 블록의 분할 방식에 따라 결정된다. 코드 블록의 분할 방식은 동일한 크기의 분할을 포함할 수 있다. 즉, 코드 블록 그룹 내의 코드 블록의 크기는, 예를 들어 H.264/AVC에서 동일한 분할을 포함할 수 있다. 코드 블록의 분할 방식은, 예를 들어 HEVC에서 동일하지 않은 크기의 분할을 더 포함할 수 있다. 동일한 크기의 분할인 경우, 사전 설정된 코드 블록의 복수의 후보 처리 순서가 도 4에 도시될 수 있다. 동일하지 않은 크기의 분할인 경우에 있어서, 사전 설정된 코드 블록의 복수의 후보 처리 순서가 도 3에 도시될 수 있다. 이해되어야 할 것은, 도 3 및 도 4에 도시된 몇몇 처리 순서는 단지 일부 예이고, 사전 설정된 코드 블록의 처리 순서는 이에 한정되지 않고 임의의 순서일 수 있다는 것이다.
예를 들어, 인코더 측은 코드 블록 그룹 내의 코드 블록의 복수의 처리 순서 간의 대응 관계, 및 코드 블록 그룹과 인코딩된 코드 블록 그룹의 상대적인 위치를 사전 설정할 수 있다. 예를 들어, 도 4에 도시된 코드 블록의 4개의 처리 순서가 사전 설정될 수 있다. 여기서, 순서 0는 좌측에서 우측으로의 프로그레시브 스캐닝(progressive scanning)이고, 순서 1은 우측에서 좌측으로의 프로그레시브 스캐닝이며, 순서 2는 상측에서 하측으로의 열 단위 스캐닝이고, 순서 3은 하측에서 상측으로의 열 단위(column-by-column) 스캐닝이다. 코드 블록 그룹 및 이미 인코딩된 코드 블록 그룹의 상대적인 위치는 도 5에 도시된 16개의 상대적인 위치일 수 있다: 1. 이미 인코딩되었으면서 코드 블록 그룹에 인접한 코드 블록 그룹이 존재하지 않는다. 2. 코드 블록 그룹의 상측의 코드 블록 그룹이 인코딩되었다. 3. 코드 블록 그룹의 우측의 코드 블록 그룹이 인코딩되었다. 4. 코드 블록 그룹의 하측의 코드 블록 그룹이 인코딩되었다. 5. 코드 블록 그룹의 좌측의 코드 블록 그룹이 인코딩되었다. 6. 코드 블록 그룹의 상측 및 우측의 코드 블록 그룹이 인코딩되었다. 7. 코드 블록 그룹의 하측 및 우측의 코드 블록 그룹이 인코딩되었다. 8. 코드 블록 그룹의 좌측 및 하측의 코드 블록 그룹이 인코딩되었다. 9. 코드 블록 그룹의 좌측 및 상측의 코드 블록 그룹이 인코딩되었다. 10. 코드 블록 그룹의 상측 및 하측의 코드 블록 그룹이 인코딩되었다. 11. 코드 블록 그룹의 좌측 및 우측의 코드 블록 그룹이 인코딩되었다. 12. 코드 블록 그룹의 상측, 하측, 및 좌측의 코드 블록 그룹이 인코딩되었다. 13. 코드 블록 그룹의 좌측, 우측, 및 상측의 코드 블록 그룹이 인코딩되었다. 14. 코드 블록 그룹의 상측, 하측, 및 우측의 코드 블록 그룹이 인코딩되었다. 15. 코드 블록 그룹의 좌측, 우측, 및 하측의 코드 블록 그룹이 인코딩되었다. 16. 코드 블록 그룹의 상측, 하측, 좌측, 및 우측의 코드 블록 그룹이 인코딩되었다.
인코더 측은 추가적으로, 전술한 4개의 처리 순서와 전술한 16개의 상대적인 위치 관계 간의 대응 관계를 사전 구성할 수 있다. 예를 들어, 상대적인 위치 관계 1은 순서 0에 대응하고, 상대적인 위치 관계 2는 순서 3에 대응하며, 상대적인 위치 관계 3은 순서 2에 대응한다.
전술한 대응 관계로부터 알 수 있는 것은, 서로 다른 코드 블록 그룹 처리 순서가 주어진 경우, 대응하는 경우가 현재 코드 블록 그룹에 대한 전술한 16개의 경우 중에서 선택된다는 것이다. 현재 코드 블록 그룹 내의 코드 블록의 처리 순서가 나중에 결정되고, 그 다음에 인코딩 연산(encoding operation)이 주어진 코드 블록 처리 순서에 따라 현재 코드 블록 그룹 내의 코드 블록에 대해 수행되며, 코딩 비용이 계산된다.
여기서, 코드 블록 처리 순서를 결정하는 단계를 위해, 현재 코드 블록 그룹 내의 화소 값은, 가능한 한 이미 처리된 인접 코드 블록 그룹 내의 화소 값을 이용하여 예측된다. 코딩된 이미지의 공간 상관관계가 비교적 완전히 고려되며, 이는 압축 효율을 향상시키는 데 도움이 된다.
선택적으로, 일 실시예에서, 제1 처리 순서에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계는, 제1 처리 순서에 따라, 코드 블록 그룹과 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하는 단계; 및 상대적인 위치 관계, 및 사전 설정된 복수의 후보 처리 순서와 복수의 위치 관계 간의 대응 관계에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계를 포함한다. 여기서, 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
즉, 코드 블록의 복수의 후보 처리 순서 및 복수의 후보 처리 순서와 복수의 위치 관계 간의 대응 관계 양자 모두가 사전 설정될 수 있다. 현재 처리되는 코드 블록 그룹 내의 코드 블록의 처리 순서를 결정하는 경우, 인코더 측은, 사전 설정된 대응 관계에 따라 직접, 현재 처리되는 코드 블록 그룹 내의 코드 블록에 대응하는 처리 순서를 결정할 수 있다. 여기서, 복수의 후보 처리 순서 및 대응 관계는 전술한 실시예에서의 후보 처리 순서 및 대응관계와 유사하며, 세부사항은 본 명세서에서 다시 설명하지 않는다.
선택적으로, 일 실시예에서, 제1 처리 순서를 비트스트림에 기입하는 단계는, 제1 처리 순서에 따라 코드 블록 그룹의 인덱스를 배열하고, 코드 블록 그룹의 배열된 인덱스를 인코딩하고 이 배열된 인덱스를 비트스트림에 기입하는 단계; 또는 제1 처리 순서에 따라 코드 블록 그룹의 좌표를 배열하고, 코드 블록 그룹의 배열된 좌표를 인코딩하고 이 배열된 좌표를 비트스트림에 기입하는 단계를 포함한다.
구체적으로, 코드 블록 그룹의 처리 순서가 결정된 후에 처리 순서가 인덱스나 좌표에 의해 또는 다른 방식으로 비트스트림에 기입될 수 있어서, 디코더 측이 디코딩을 수행하는 경우에 디코더 측은 인코딩 중에 직접 코드 블록 그룹의 인코딩 순서를 획득할 수 있다. 구체적으로, 다음의 2가지 방식이 존재할 수 있다:
하나의 방식에서는, 인덱스 번호, 예컨대, 0 내지 N-1이 좌측에서 우측으로의 라인 스캔 및 상측에서 하측으로의 라인 스캔에 의해 코딩되는 이미지 내의 코드 블록 그룹에 할당될 수 있다. N개의 인덱스 번호는, 계산에 의해 획득되는 최적의 처리 순서에 따라 비트스트림에 기입된다.
다른 방식에서는, 수평 좌표 값 및 수직 좌표 값이 좌측에서 우측으로 및 상측에서 하측으로 코드 블록 그룹에 할당될 수 있다. 예를 들어,
Figure pct00047
는 코드 블록을 나타낸다. 코딩된 이미지가 각각 가로 방향 및 세로 방향으로 w개의 코드 블록 그룹 및 h개의 코드 블록 그룹을 가지면, 코딩된 이미지는 총 N개의 코드 블록 그룹을 가진다. 여기서,
Figure pct00048
이고, x 및 y의 값 범위는 각각
Figure pct00049
Figure pct00050
이다. N개의 그룹의 좌표가 계산에 의해 획득되는 최적의 처리 순서에 따라 인코딩될 수 있다. 예를 들어, N개의 수평 좌표 값 및 N개의 수직 좌표 값이 펄스 부호 변조(Pulse Code Modulation, PCM)와 유사한 인코딩 방식을 사용하여 독립적, 순차적으로 인코딩될 수 있다. 이와 달리, N개의 수평 좌표 값 및 N개의 수직 좌표 값이 차분 펄스 부호 변조(Differential Pulse Code Modulation, DPCM)와 유사한 인코딩 방식을 사용하여 인코딩될 수 있다.
코드 블록 그룹의 최적의 처리 순서 O이 전술한 방법을 사용함으로써 코딩된 후에, 인코딩의 결과는 비디오 비트스트림에 출력되며, 이로써 디코더 측은 최적의 처리 순서에 따라 디코딩을 수행한다.
선택적으로, 일 실시예에서, 코드 블록 그룹의 코딩 비용은 코드 블록 그룹을 인코딩하기 위해 소요되는 비트의 수, 또는 코드 블록 그룹의 왜곡(distortion) 중 적어도 하나를 포함한다. 코드 블록 그룹의 코딩 비용은, 블록 그룹의 인코딩 품질을 측정하기 위한 중요한 기준이다. 코딩 비용이 계산되는 경우, 블록을 인코딩하기 위해 소요되는 비트의 수가 복원 후 블록의 품질을 나타낸다. 코딩 비용이 더 작은 값을 가진다는 것은, 블록이 더 잘 인코딩된 것을 나타낸다.
이해되어야 할 것은, 타깃 이미지가 인코딩될 경우, 타깃 이미지에 포함된 코드 블록 그룹의 제1 처리 순서가 본 발명의 본 실시예에서의 방법에 따라 결정될 수 있다는 것이다. 코드 블록 그룹 내의 코드 블록의 처리 순서가 결정되는 경우, 일부 코드 블록 그룹 내의 코드 블록의 처리 순서가 결정될 수 있고, 다른 코드 블록 그룹 내의 코드 블록의 처리 순서는 다른 과제 해결수단에 따라 결정되거나 또는 사전 설정될 수 있다.
본 발명의 본 실시예에서, 타깃 이미지 내의 공간 상관관계가 완전히 활용될 수 있도록, 타깃 이미지에 포함된 복수의 코드 블록 그룹의 제1 처리 순서가 타깃 이미지의 총 코딩 비용에 따라 결정되고, 복수의 코드 블록 그룹이 제1 처리 순서에 따라 인코딩되며, 따라서 인코딩 중에 압축 효율이 향상된다.
도 2는 본 발명의 일 실시예에 따른 디코딩 방법의 흐름도이다.
201. 비트스트림으로부터 타깃 이미지의 복수의 코드 블록 그룹의 제1 처리 순서를 획득한다.
202. 제1 처리 순서에 따라, 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정한다.
203. 제1 처리 순서 및 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서에 따라 비트스트림을 디코딩한다.
본 발명의 본 실시예에서, 각각의 코드 블록 그룹에 포함된 코드 블록의 처리 순서가, 최소 총 코딩 비용을 달성할 수 있고 인코더 측에서 결정되는 제1 처리 순서에 따라 결정되고, 타깃 이미지의 비트스트림이 제1 처리 순서 및 각각의 코드 블록 그룹 내의 코드 블록의 처리 순서에 따라 디코딩된다. 인코딩 프로세스에서, 인코딩 중에 압축 효율을 향상시킬 수 있도록 타깃 이미지의 공간 상관관계가 완전히 활용된다.
선택적으로, 일 실시예에서, 제1 처리 순서에 따라, 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계 이전에, 디코딩 방법은, 코드 블록의 복수의 후보 처리 순서를 결정하는 단계; 및 복수의 후보 처리 순서 간의 대응 관계 및 복수의 위치 관계를 결정하는 단계를 더 포함한다. 여기서, 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
인코딩과 디코딩 간의 매칭을 보장하기 위해, 디코더 측은, 코드 블록 그룹의 처리 순서에 따라, 현재 코드 블록 그룹 내의 코드 블록의 처리 순서를 결정하기 위해, 인코더 측에 의해 사용된 해결 수단과 동일한 해결수단을 사용한다. 현재 코드 블록 그룹 내의 코드 블록은 복수의 사전 설정된 후보 처리 순서를 가질 수 있다. 여기서, 각각의 후보 처리 순서는 하나의 위치 관계에 대응하고, 이 위치 관계는 현재 처리되는 코드 블록 그룹과 이미 처리되었고 현재 처리되는 코드 블록 그룹에 인접한 코드 블록 그룹 간의 상대적인 위치 관계이다. 현재 코드 블록 그룹이 디코딩될 경우, 현재 코드 블록 그룹과 이미 디코딩되고 현재 코드 블록 그룹에 인접하거나 가까운 코드 블록 그룹 간의 상대적인 위치 관계가 먼저 결정될 수 있고, 그 다음에 대응하는 코드 블록 그룹 내의 코드 블록의 처리 순서가, 결정된 상대적인 위치 관계에 따라, 미리 구성된 대응 관계 중에서 결정된다. 코드 블록의 처리 순서가 결정된 후에, 현재 코드 블록 그룹 내의 모든 코드 블록이 처리 순서에 따라 디코딩되고, 디코딩이 종료된 후에 다음 코드 블록 그룹이 제1 처리 순서에 따라 처리된다. 현재 코드 블록 그룹과 유사하게, 다음 코드 블록 그룹 내의 코드 블록의 처리 순서가 상대적인 위치 관계에 따라 결정될 필요가 있고, 타깃 이미지의 모든 코드 블록 그룹이 제1 처리 순서에 따라 완전히 디코딩될 때까지 계속된다.
선택적으로, 일 실시예에서, 제1 처리 순서에 따라, 복수의 코드 블록 그룹의 각각의 코드 블록 그룹 내의 코드 블록의 처리 순서를 결정하는 단계는, 제1 처리 순서에 따라, 코드 블록 그룹과 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하는 단계; 및 대응 관계 및 상대적인 위치 관계에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계를 포함한다. 선택적으로, 일 실시예에서, 코드 블록의 복수의 후보 처리 순서를 결정하는 단계는, 코드 블록의 사전 설정된 복수의 후보 처리 순서를 이용하는 단계를 포함한다. 사전 설정된 코드 블록의 복수의 후보 처리 순서는 복수의 방법을 이용하여 결정될 수 있다. 예를 들어, 사전 설정된 코드 블록의 복수의 후보 처리 순서는, 코드 블록 그룹에 포함된 코드 블록의 분할 방식에 따라 결정된다. 코드 블록의 분할 방식은 동일한 크기의 분할, 즉, 코드 블록 그룹 내의 코드 블록의 크기가, 예를 들어 H.264/AVC에서 동일한 분할을 포함할 수 있다. 코드 블록의 분할 방식은, 예를 들어 HEVC에서 동일하지 않은 크기의 분할을 더 포함할 수 있다. 동일한 크기의 분할인 경우, 사전 설정된 코드 블록의 복수의 후보 처리 순서가 도 4에 도시될 수 있다. 동일하지 않은 크기의 분할의 경우, 사전 설정된 코드 블록의 복수의 후보 처리 순서가 도 3에 도시될 수 있다. 도 3 및 도 4에 도시된 몇몇 처리 순서는 단지 일부 예일 뿐이고, 사전 설정된 코드 블록의 처리 순서는 이에 한정되지 않고, 임의의 순서일 수 있다고 이해되어야 한다.
예를 들어, 디코더 측은 코드 블록 그룹 내의 코드 블록의 복수의 처리 순서, 및 코드 블록 그룹과 디코딩된 코드 블록 그룹 간의 상대적인 위치 대응 관계를 사전 설정할 수 있다. 예를 들어, 도 4에 도시된 코드 블록의 4개의 처리 순서가 사전 설정된다. 여기서, 순서 0는 좌측에서 우측으로의 프로그레시브 스캐닝이고, 순서 1은 우측에서 좌측으로의 프로그레시브 스캐닝이며, 순서 2는 상측에서 하측으로의 열 단위 스캐닝이고, 순서 3은 하측에서 상측으로의 열 단위 스캐닝이다. 코드 블록 그룹 및 이미 디코딩된 코드 블록 그룹의 상대적인 위치는 도 5에 도시된 16개의 상대적인 위치일 수 있다: 1. 이미 디코딩되었으면서 코드 블록 그룹에 인접한 코드 블록 그룹이 존재하지 않는다. 2. 코드 블록 그룹의 상측의 코드 블록 그룹이 디코딩되었다. 3. 코드 블록 그룹의 우측의 코드 블록 그룹이 디코딩되었다. 4. 코드 블록 그룹의 하측의 코드 블록 그룹이 디코딩되었다. 5. 코드 블록 그룹의 좌측의 코드 블록 그룹이 디코딩되었다. 6. 코드 블록 그룹의 상측 및 우측의 코드 블록 그룹이 디코딩되었다. 7. 코드 블록 그룹의 하측 및 우측의 코드 블록 그룹이 디코딩되었다. 8. 코드 블록 그룹의 좌측 및 하측의 코드 블록 그룹이 디코딩되었다. 9. 코드 블록 그룹의 좌측 및 상측의 코드 블록 그룹이 디코딩되었다. 10. 코드 블록 그룹의 상측 및 하측의 코드 블록 그룹이 디코딩되었다. 11. 코드 블록 그룹의 좌측 및 우측의 코드 블록 그룹이 디코딩되었다. 12. 코드 블록 그룹의 상측, 하측, 및 좌측의 코드 블록 그룹이 디코딩되었다. 13. 코드 블록 그룹의 좌측, 우측, 및 상측의 코드 블록 그룹이 디코딩되었다. 14. 코드 블록 그룹의 상측, 하측, 및 우측의 코드 블록 그룹이 디코딩되었다. 15. 코드 블록 그룹의 좌측, 우측, 및 하측의 코드 블록 그룹이 디코딩되었다. 16. 코드 블록 그룹의 상측, 하측, 좌측, 및 우측의 코드 블록 그룹이 디코딩되었다.
디코더 측은 추가적으로, 전술한 4개의 처리 순서와 전술한 16개의 상대적인 위치 관계 간의 대응 관계를 사전 구성할 수 있다. 예를 들어, 상대적인 위치 관계 1은 순서 0에 대응하고, 상대적인 위치 관계 2는 순서 3에 대응하며, 상대적인 위치 관계 3은 순서 2에 대응한다.
전술한 대응 관계로부터 알 수 있는 것은, 서로 다른 코드 블록 그룹 처리 순서가 주어진 경우, 대응하는 경우가 현재 코드 블록 그룹에 대한 전술한 16개의 경우 중에서 선택된다는 것이다. 현재 코드 블록 그룹 내의 코드 블록의 처리 순서가 나중에 결정되고, 그 다음에 디코딩 연산이 주어진 코드 블록 처리 순서에 따라 현재 코드 블록 그룹 내의 코드 블록에 대해 수행되며, 코딩 비용이 계산된다.
이해되어야 할 것은, 디코더 측의 전술한 복수의 사전 설정된 모드 및 대응 관계는 인코더 측의 사전 설정된 모드 및 대응 관계와 동일하다는 것이다.
선택적으로, 일 실시예에서, 제1 처리 순서에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계는, 제1 처리 순서에 따라, 코드 블록 그룹과 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하는 단계; 및 상대적인 위치 관계, 및 사전 설정된 복수의 후보 처리 순서와 복수의 위치 관계 간의 대응 관계에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계를 포함한다. 여기서, 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
즉, 코드 블록의 복수의 후보 처리 순서 및 복수의 후보 처리 순서와 복수의 위치 관계 간의 대응 관계 양자 모두가 사전 설정될 수 있다. 현재 처리되는 코드 블록 그룹 내의 코드 블록의 처리 순서를 결정하는 경우, 인코더 측은, 사전 설정된 대응 관계에 따라 직접, 현재 처리되는 코드 블록 그룹 내의 코드 블록에 대응하는 처리 순서를 결정할 수 있다. 여기서, 복수의 후보 처리 순서 및 대응 관계는 전술한 실시예에서의 후보 처리 순서 및 대응관계와 유사하며, 세부사항은 본 명세서에서 다시 설명하지 않는다.
선택적으로, 일 실시예에서, 단계 201은 복수의 코드 블록 그룹의 배열된 인덱스를 획득하기 위해 비트스트림을 디코딩하고, 복수의 코드 블록 그룹의 인덱스의 배열 순서에 따라 제1 처리 순서를 결정하는 단계; 또는 복수의 코드 블록 그룹의 배열된 좌표를 획득하기 위해 비트스트림을 디코딩하고, 복수의 코드 블록 그룹의 좌표의 배열 순서에 따라 제1 처리 순서를 결정하는 단계를 포함한다.
구체적으로, 코드 블록 그룹의 처리 순서를 결정한 후에 인코더 측이 인덱스나 좌표에 의해 또는 다른 방식으로 처리 순서를 비트스트림에 기입할 수 있어서, 디코더 측이 디코딩을 수행하는 경우에 디코더 측은 인코딩 중에 코드 블록 그룹의 인코딩 순서를 직접 획득할 수 있다. 구체적으로, 다음의 2가지 방식이 존재할 수 있다:
하나의 방식에서, 인덱스 번호, 예컨대, 0 내지 N-1이 좌측에서 우측으로의 라인 스캔 및 상측에서 하측으로의 라인 스캔에 의해 코딩된 이미지 내의 코드 블록 그룹에 할당될 수 있다. N개의 인덱스 번호는, 계산에 의해 획득되는 최적의 처리 순서에 따라 비트스트림에 기입된다.
다른 방식에서, 수평 좌표 값 및 수직 좌표 값이 좌측에서 우측으로 또한 상측에서 하측으로 코드 블록 그룹에 할당될 수 있다. 예를 들어,
Figure pct00051
는 코드 블록을 나타낸다. 코딩된 이미지가 각각 가로 방향 및 세로 방향으로 w개의 코드 블록 그룹 및 h개의 코드 블록 그룹을 가지면, 코딩된 이미지는 총 N개의 코드 블록 그룹을 가진다. 여기서,
Figure pct00052
이고, x 및 y의 값 범위는 각각
Figure pct00053
이며,
Figure pct00054
이다. N개의 그룹의 좌표가 계산에 의해 획득되는 최적의 처리 순서에 따라 인코딩될 수 있다. 예를 들어, N개의 수평 좌표 값 및 N개의 수직 좌표 값이 펄스 부호 변조(Pulse Code Modulation, PCM)와 유사한 인코딩 방식을 사용하여 독립적, 순차적으로 인코딩될 수 있다. 이와 달리, N개의 수평 좌표 값 및 N개의 수직 좌표 값이 차분 펄스 부호 변조(Differential Pulse Code Modulation, DPCM)와 유사한 인코딩 방식을 사용하여 인코딩될 수 있다.
즉, 이에 상응하여, 디코더 측은, 인코더 측이 비트스트림에 기입한 정보에 따라, 전술한 2개의 방식에서의 코드 블록 그룹의 처리 순서를 학습할 수 있다.
본 발명의 본 실시예에서, 각각의 코드 블록 그룹에 포함된 코드 블록의 처리 순서가, 최소 총 코딩 비용을 달성할 수 있고 인코더 측에서 결정되는 제1 처리 순서에 따라 결정되고, 타깃 이미지의 비트스트림이 제1 처리 순서 및 각각의 코드 블록 그룹 내의 코드 블록의 처리 순서에 따라 디코딩된다. 인코딩 프로세스에서, 인코딩 중에 압축 효율을 향상시킬 수 있도록, 타깃 이미지의 공간 상관관계가 완전히 활용된다.
도 3은 본 발명의 일 실시예에 따른 코드 블록의 처리 순서의 개략도이다. 도 4는 본 발명의 다른 실시예에 따른 코드 블록의 처리 순서의 개략도이다.
이해되어야 할 것은, 본 발명의 실시예에서의 코드 블록 그룹의 처리 순서가 임의의 순서일 수 있다는 것이다. 코드 블록 그룹의 처리 순서의 결정 또는 선택에 대해서는 도 2에서의 전술한 실시예에서 자세히 설명하였고, 세부사항은 본 명세서에서 다시 설명하지 않는다.
코드 블록 그룹 내의 모든 코드 블록의 처리 순서가 사전 설정된 복수의 후보 처리 순서로부터 선택될 수 있다. 예를 들어, 도 3에 도시된 Z-형상의 스캐닝의 4개의 처리 순서가 사전 설정될 수 있거나, 또는 도 4에 도시된 프로그레시브 스캐닝의 4개의 처리 순서가 사전 설정될 수 있다. 여기서, 도 3 및 도 4는 예를 통한 설명의 편의를 위해서만 사용된다. 실제로, 처리 순서의 어떠한 수량이라도 사전 설정될 수 있고, 처리 순서는 임의적일 수 있거나 및/또는 생략될 수 있으며, 이는 본 발명에서 제한되지 않는다.
코드 블록 그룹 내의 코드 블록이 서로 다른 크기를 가지면, 예컨대, HEVC에서의 CTU 내의 CU가 서로 다른 크기를 가질 수 있는 경우와 유사한 경우, 라인 스캔의 순서가 코드 블록을 처리하기 위해 사용되기에는 적절하지 않다. 이러한 경우, 도 3에 도시된 4개의 처리 순서가 코드 블록의 사전 설정된 처리 순서로서 선택될 수 있다. 코드 블록 그룹 내의 코드 블록이 동일한 크기를 가지면, 예컨대, H.264/AVC에서의 MB 내의 SMB가 동일한 크기를 가지는 경우와 유사한 경우, 도 4에 도시된 프로그레시브 스캐닝의 4개의 처리 순서가 코드 블록의 사전 설정된 처리 순서로서 선택될 수 있다. 코드 블록 상의 번호는 대응하는 코드 블록의 처리 순서를 나타낸다.
도 5는 본 발명의 일 실시예에 따른 코드 블록의 후보 처리 순서들 간의 대응 관계 및 복수의 위치 관계의 개략도이다.
인코더 측은 코드 블록 그룹 내의 코드 블록의 복수의 처리 순서 간의 대응 관계, 및 코드 블록 그룹과 이미 인코딩된 코드 블록 그룹의 상대적인 위치를 사전 설정할 수 있다. 예를 들어, 코드 블록의 4개의 처리 순서가 사전 설정될 수 있다. 여기서, 순서 0은 좌측에서 우측으로의 프로그레시브 스캐닝이고, 순서 1은 우측에서 좌측으로의 프로그레시브 스캐닝이며, 순서 2는 상측에서 하측으로의 열단위 스캐닝이고, 순서 3은 하측에서 상측으로의 열 단위 스캐닝이다. 코드 블록 그룹 및 이미 인코딩된 코드 블록 그룹의 상대적인 위치는 도 5에 도시된 16개의 상대적인 위치로 사전 설정될 수 있다: 1. 이미 인코딩되었으면서 코드 블록 그룹에 인접한 코드 블록 그룹이 존재하지 않는다. 2. 코드 블록 그룹 상측의 코드 블록 그룹이 인코딩되었다. 3. 코드 블록 그룹 우측의 코드 블록 그룹이 인코딩되었다. 4. 코드 블록 그룹 하측의 코드 블록 그룹이 인코딩되었다. 5. 코드 블록 그룹 좌측의 코드 블록 그룹이 인코딩되었다. 6. 코드 블록 그룹 상측 및 우측의 코드 블록 그룹이 인코딩되었다. 7. 코드 블록 그룹의 하측 및 우측의 코드 블록 그룹이 인코딩되었다. 8. 코드 블록 그룹의 좌측 및 하측의 코드 블록 그룹이 인코딩되었다. 9. 코드 블록 그룹의 좌측 및 상측의 코드 블록 그룹이 인코딩되었다. 10. 코드 블록 그룹의 상측 및 하측의 코드 블록 그룹이 인코딩되었다. 11. 코드 블록 그룹의 좌측 및 우측의 코드 블록 그룹이 인코딩되었다. 12. 코드 블록 그룹의 상측, 하측, 및 좌측의 코드 블록 그룹이 인코딩되었다. 13. 코드 블록 그룹의 좌측, 우측, 및 상측의 코드 블록 그룹이 인코딩되었다. 14. 코드 블록 그룹의 상측, 하측, 및 우측의 코드 블록 그룹이 인코딩되었다. 15. 코드 블록 그룹의 좌측, 우측, 및 하측의 코드 블록 그룹이 인코딩되었다. 16. 코드 블록 그룹의 상측, 하측, 좌측, 및 우측의 코드 블록 그룹이 인코딩되었다.
인코더 측은 추가적으로, 전술한 4개의 처리 순서와 전술한 16개의 상대적인 위치 관계 간의 대응 관계를 사전 구성할 수 있다. 예를 들어, 상대적인 위치 관계 1은 순서 0에 대응하고, 상대적인 위치 관계 2는 순서 3에 대응하며, 상대적인 위치 관계 3은 순서 2에 대응한다.
이해되어야 할 것은, 도 5에 도시된 대응 관계는 예로써 설명의 편의를 위해서만 사용된다는 것이다. 실제로, 처리 순서의 임의의 수량 및 상대적인 위치 관계의 임의의 수량이 사전 설정될 수 있고, 처리 순서는 임의적이거나 생략될 수 있으며, 이는 본 발명에서 제한되지 않는다.
전술한 대응 관계로부터 알 수 있는 것은, 서로 다른 코드 블록 그룹 처리 순서가 주어진 경우, 대응하는 경우가 현재 코드 블록 그룹에 대한 전술한 16개의 경우 중에서 선택된다는 것이다. 현재 코드 블록 그룹 내의 코드 블록의 처리 순서가 나중에 결정되고, 그 다음에 인코딩 연산이 주어진 코드 블록 처리 순서에 따라 현재 코드 블록 그룹 내의 코드 블록에 대해 수행되며, 코딩 비용이 계산된다. 예를 들어, 현재 코드 블록 그룹이 제1 처리 순서에 따라 처리될 경우, 현재 코드 블록 그룹의 좌측 및 우측의 코드 블록 그룹이 인코딩되었다고 먼저 결정될 수 있다. 도 5에서의 상대적인 위치 관계에 따라, 현재 코드 블록이 위치 관계 11에 속하며, 현재 코드 블록에 대응하는 코드 블록 처리 순서가 순서 0이라고 결정될 수 있다. 그 후에, 인코더 측은 코드 블록을 인코딩하기 위해, 코드 블록 그룹 내의 코드 블록에 대해 순서 0에 따라 좌측에서 우측으로의 프로그레시브 스캐닝을 수행할 수 있다. 모든 코드 블록이 완전히 인코딩된 후에, 다음 코드 블록 그룹이 제1 인코딩 순서에 따라 처리된다.
여기서, 코드 블록 처리 순서를 결정하는 단계를 위해, 현재 코드 블록 그룹 내의 화소 값은, 가능한 한 이미 처리된 인접 코드 블록 그룹 내의 화소 값을 이용하여 예측된다. 코딩된 이미지의 공간 상관관계가 비교적 완전히 고려되며, 이는 압축 효율을 향상시키는 데 도움이 된다.
도 6은 본 발명의 일 실시예에 따른 인코더 측에서 인코딩하는 단계의 흐름도이다.
먼저, 타깃 이미지(601)가 복수의 중첩하지 않는 코드 블록 그룹으로 분할된다. 코드 블록 그룹에 대한 분할 방법은 인코딩 및 디코딩 표준에 따라 달라질 수 있다. 예를 들어, HEVC에서의 분할에 의해 획득되는 코드 블록 그룹은 CTU일 수 있고, H.264/AVC에서의 분할에 의해 획득되는 코드 블록 그룹은 MB일 수 있다. 또한, 코드 블록 그룹의 분할은 또한 사전 설정되거나 임의적일 수 있다. 또한, 코드 블록 그룹은 코딩 파라미터가 독립적으로 결정될 수 있는 복수의 코드 블록으로 계속 분할될 수 있다. 전술한 코드 블록 그룹 또는 코드 블록은 화소의 세트이다. 예를 들어, 코드 블록의 크기가 NxN이면, 블록이 가로 방향 및 세로 방향 모두로 N개의 화소 크기를 가지는 2차원 화소 어레이라는 것을 나타낸다.
인코더 측이 코드 블록 내 화소의 예측자(predictor)(602)를 획득하기 위해 코드 블록에 대해 예측 연산을 수행한다. 예측 연산은 프레임 간 예측(inter-frame prediction)(611)과 프레임 내 예측(intra-frame prediction)(612)으로 일반적으로 분류될 수 있다. 또한, 코드 블록의 화소의 원래 값(603)과 코드 블록의 화소의 예측자(602) 간의 차이가 계산된다. 코드 블록 내 화소의 예측된 차이의 세트는 코드 블록의 잔차(residual)(604)라고 한다. 변환 및 양자화(613)가 잔차(604)에 대해 수행된 후에, 변환 양자화 계수(transformation quantized coefficient)(605)가 획득된다. 결국, 엔트로피 인코딩(entropy encoding)(614) 연산이 변환 양자화 계수(605)에 대해 수행되고, 엔트로피 인코딩에서 출력되는 비트 문자열이 비트스트림에 기입된다. 또한, 역양자화 및 역변환(614) 연산이 변환 및 양자화(613)가 수행되었던 변환 양자화 계수(605)에 대해 수행되어 복원 잔차(reconstruction residual)(606)를 획득하고, 현재 코드 블록의 복원 잔차(606) 및 예측자(602)가 함께 추가되어 블록의 복원(607)을 획득한다. 현재 블록의 복원(607)는 후속 코드를 예측하는 데 사용될 것이다. 여기서, 후속 코드 블록은 현재 코딩된 이미지 내의 처리될 코드 블록일 수 있거나, 또는 인코딩될 후속 이미지 내의 코드 블록일 수 있다.
타깃 이미지(601)에 대해 예측 코딩을 수행하기 전에, 인코더 측은 타깃 이미지(601)에 포함된 복수의 코드 블록 그룹의 처리 순서를 먼저 결정할 수 있다. 구체적으로, 코드 블록 그룹이 서로 다른 처리 순서로 처리되는 경우, 각각의 코드 블록 그룹의 코딩 비용은 처리 순서에 따라 달라진다. 따라서, 모든 코드 블록 그룹의 최소 총 코딩 비용을 달성할 수 있는 처리 순서가, 인코딩이 실제로 수행된 때의 코드 블록 그룹의 처리 순서로서 사용될 수 있다고 결정될 수 있다. 구체적인 결정 방법에 대해서는, 도 1에서의 전술한 실시예 중 관련된 단계 및 공식 (1) 및 공식 (2) 등을 참조할 수 있으며, 세부사항은 본 명세서에서 다시 설명하지 않는다.
코드 블록 그룹의 처리 순서가 결정된 후에, 각각의 코드 블록 그룹 내의 코드 블록의 처리 순서가 결정될 수 있다. 구체적으로, 현재 코드 블록 그룹 내의 코드 블록의 처리 순서가 결정될 수 있도록, 현재 코드 블록 그룹과 현재 코드 블록 그룹에 인접한 코드 블록 그룹 간의 처리 순서가 코드 블록 그룹의 처리 순서에 따라 결정될 수 있다. 현재 코드 블록 그룹 내의 코드 블록은 복수의 사전 설정된 후보 처리 순서를 가질 수 있다. 여기서, 각각의 후보 처리 순서는 하나의 위치 관계에 대응하고, 이 위치 관계는 현재 처리되는 코드 블록 그룹과 이미 처리되었고 현재 처리되는 코드 블록 그룹에 인접한 코드 블록 그룹 간의 상대적인 위치 관계이다. 현재 코드 블록 그룹이 인코딩될 때, 현재 코드 블록 그룹과 이미 인코딩되었으면서 현재 코드 블록 그룹에 인접하거나 가까운 코드 블록 그룹 간의 상대적인 위치 관계가 먼저 결정될 수 있고, 그 다음에 대응하는 코드 블록 그룹 내의 코드 블록의 처리 순서가 결정된 상대적인 위치 관계에 따라, 미리 구성된 대응 관계 중에서 결정된다. 코드 블록의 처리 순서가 결정된 후에, 현재 코드 블록 그룹 내의 모든 코드 블록이 처리 순서에 따라 인코딩되고, 인코딩이 종료된 후에 다음 코드 블록 그룹이 코드 블록 그룹의 처리 순서에 따라 처리된다. 현재 코드 블록 그룹과 유사하게, 다음 코드 블록 그룹 내의 코드 블록의 처리 순서가 상대적인 위치 관계에 따라 결정될 필요가 있고, 타깃 이미지의 모든 코드 블록 그룹이 처리 순서에 따라 완전히 인코딩될 때까지 계속된다. 전술한 "처리"는 예측 연산(611 및 612), 잔차(604)를 결정하는 연산, 변환/양자화(613) 연산, 엔트로피 인코딩(614) 연산, 역양자화/역변환(614) 연산, 복원(607) 연산 등을 포함할 수 있다.
또한, 비트스트림이 생성된 경우, 디코더 측이 순서에 따라 디코딩을 수행할 수 있도록, 코드 블록 그룹의 처리 순서가 비트스트림에 기입될 수 있다. 구체적인 처리 순서를 위한 식별 방법에 대해서는, 도 1에서의 대응하는 방법을 참조할 수 있고, 세부사항은 본 명세서에서 다시 설명하지 않는다.
본 발명의 본 실시예에서, 타깃 이미지 내의 공간 상관관계가 완전히 활용될 수 있도록, 타깃 이미지에 포함된 복수의 코드 블록 그룹의 처리 순서는 타깃 이미지의 총 코딩 비용에 따라 결정되고, 복수의 코드 블록 그룹이 처리 순서에 따라 인코딩되며, 따라서 인코딩 중에 압축 효율을 향상시킨다.
도 7은 본 발명의 일 실시예에 따른 디코더 측에서 디코딩하는 단계의 흐름도이다.
디코더 측의 처리 방법은 인코더 측의 처리 방법에 대응한다. 인코더 측에 의해 인코딩되어 출력된 비트스트림을 획득한 후에, 디코더 측은 인코더 측이 코드 블록 그룹을 인코딩할 때의 처리 순서를 비트스트림으로부터 획득할 수 있다. 처리 순서에 따라, 디코더 측은 현재 처리되는 코드 블록 그룹과 이미 디코딩되고 현재 처리되는 코드 블록 그룹에 인접하거나 가까운 코드 블록 그룹 간의 상대적인 위치 관계를 결정할 수 있고, 그 다음에 대응하는 코드 블록 그룹 내의 코드 블록의 처리 순서가 결정된 상대적인 위치 관계에 따라, 미리 구성된 대응 관계 중에서 결정된다. 코드 블록의 처리 순서가 결정된 후에, 현재 코드 블록 그룹 내의 모든 코드 블록이 처리 순서에 따라 디코딩되고, 디코딩이 종료된 후에 다음 코드 블록 그룹이 제1 처리 순서에 따라 처리된다. 현재 코드 블록 그룹과 유사하게, 다음 코드 블록 그룹 내의 코드 블록의 처리 순서가 상대적인 위치 관계에 따라 결정될 필요가 있고, 타깃 이미지의 모든 코드 블록 그룹이 제1 처리 순서에 따라 완전히 디코딩될 때까지 계속된다. 구체적으로, 도 2에서의 전술한 방법을 참조할 수 있고, 세부사항은 본 명세서에서 다시 설명하지 않는다. 이해되어야 할 것은, 디코더 측의 전술한 "처리"는, 예측 모드 정보 및 변환 양자화 계수(701)를 획득하기 위해, 입력 비트스트림에 대해 엔트로피 디코딩(711)을 수행하는 것을 포함한다는 것이다. 디코더는 현재 코드 블록의 예측을 획득하기 위해 예측 모드 정보 및 이미 복원된 블록 또는 이미지를 사용하고, 역양자화/역변환(712)이 복원 잔차(702)를 획득하기 위해 변환 양자화 계수(701)에 대해 수행되고, 현재 코드 블록의 복원 잔차(702) 및 예측자(703)는 코드 블록의 복원(704)을 획득하기 위해 함께 추가된다. 인코더 측은 코드 블록 그룹의 결정된 처리 순서 및 코드 블록 그룹 내의 코드 블록의 처리 순서에 따라 각각의 코드 블록에 관한 정보를 비트스트림에 기입한다. 따라서, 디코더 측은, 디코딩에 의해 획득되는 코드 블록의 복원된 블록을 전술한 순서로 복원되는 이미지에 순차적으로 더한다.
본 발명의 본 실시예에서, 타깃 이미지 내의 공간 상관관계가 완전히 활용될 수 있도록, 타깃 이미지에 포함된 복수의 코드 블록 그룹의 처리 순서는 타깃 이미지의 총 코딩 비용에 따라 결정되고, 복수의 코드 블록 그룹이 처리 순서에 따라 인코딩되며, 따라서 인코딩 중에 압축 효율을 향상시킨다.
도 8은 본 발명의 일 실시예에 따른 인코더의 개략적인 블록도이다. 도 8에서의 인코더(80)는 결정 유닛(81) 및 인코딩 유닛(82)을 포함한다.
결정 유닛(81)은 타깃 이미지의 총 코딩 비용에 따라, 타깃 이미지에 포함된 복수의 코드 블록 그룹의 제1 처리 순서를 결정한다. 인코딩 유닛(82)은, 비트스트림을 생성하기 위해, 결정 유닛(81)에 의해 결정된 제1 처리 순서에 따라 복수의 코드 블록 그룹 중 하나의 코드 블록을 인코딩하고; 인코딩 유닛(82)은 결정 유닛(81)에 의해 결정된 제1 처리 순서를 비트스트림에 기입한다.
본 발명의 본 실시예에서의 인코더(80)는, 타깃 이미지 내의 공간 상관관계가 완전히 활용될 수 있도록, 타깃 이미지의 총 코딩 비용에 따라, 타깃 이미지에 포함된 복수의 코드 블록 그룹의 제1 처리 순서를 결정하고, 제1 처리 순서에 따라 복수의 코드 블록 그룹을 인코딩하며, 따라서 인코딩 중에 압축 효율을 향상시킨다.
이해되어야 할 것은, 본 발명의 본 실시예에서의 타깃 이미지는 인코딩될 이미지이거나, 또는 코딩된 이미지라고도 할 수 있다는 것이다. 타깃 이미지는 복수의 중첩하지 않는 코드 블록 그룹으로 분할된다. 여기서, 코드 블록 그룹은 HEVC에서의 코딩 트리 유닛(CTU)와 같거나, 또는 H.264/AVC에서의 매크로블록(MB)과 같거나, 또는 이와 유사한 것과 같을 수 있다. 코드 블록 그룹은 코딩 파라미터가 독립적으로 결정될 수 있는 복수의 코드 블록으로 계속 분할될 수 있다. 여기서, 코드 블록은 HEVC에서의 코드 유닛 CU과 동일할 수 있거나, 또는 H.264/AVC에서의 서브 매크로블록 SMB과 동일할 수 있거나, 또는 이와 유사한 것과 동일할 수 있다.
선택적으로, 일 실시예에서, 결정 유닛(81)은 구체적으로, 복수의 코드 블록 그룹의 모든 처리 순서의 각각의 처리 순서에 대응하는 총 코딩 비용을 결정하고, 모든 처리 순서에 대응하는 총 코딩 비용의 최소 총 코딩 비용에 대응하는 처리 순서가 제1 처리 순서라고 결정하도록 구성된다. 여기서 각각의 처리 순서에 대응하는 총 코딩 비용은, 복수의 코드 블록 그룹이 각각의 처리 순서에 따라 인코딩된 경우의 코딩 비용의 합이다.
구체적으로, 코드 블록 그룹이 서로 다른 처리 순서로 처리되는 경우, 각각의 코드 블록 그룹의 코딩 비용은 처리 순서에 따라 달라진다. 코드 블록 그룹의 코딩 비용은, 블록 그룹의 인코딩 품질을 측정하기 위한 중요한 기준이다. 코딩 비용이 계산되는 경우, 블록을 인코딩하기 위해 소요되는 비트의 수가 복원 후 블록의 품질을 나타낸다. 코딩 비용이 더 작은 값을 가진다는 것은, 블록이 더 잘 인코딩되었다는 것을 나타낸다. 따라서, 모든 코드 블록 그룹의 최소 총 코딩 비용을 달성할 수 있는 처리 순서가 최적의 처리 순서로서 사용될 수 있다. 따라서, 최적의 처리 순서를 결정하는 문제가 최소 총 코딩 비용을 풀어내는 문제로 전환될 수 있다:
Figure pct00055
Figure pct00056
은 코드 블록 그룹의 총 수량을 나타내고;
Figure pct00057
은 코드 블록 그룹의 인덱스가 좌측에서 우측 및 상측에서 하측의 순서로 표시된다는 것을 나타내며;
Figure pct00058
는 코드 블록 그룹의 처리 순서를 나타내는 벡터이고;
Figure pct00059
의 각각의 항목은 코드 블록 그룹의 인덱스 배열 방식이고, 총 가능한 처리 순서는
Figure pct00060
의 순열
Figure pct00061
이며;
Figure pct00062
인 경우에 나타낸 처리 순서는 기존의 라인 스캔 처리 순서이고;
Figure pct00063
는 이미 처리된 j개의 블록 그룹의 인덱스를 포함하는 세트이며; k는 이미 처리된 j개의 블록 그룹이 N개의 블록 그룹 중에서 선택된 j개의 블록 그룹의
Figure pct00064
개의 가능한 조합 중 k번째 조합이라는 것을 나타내고; i는 인코딩되지 않은 블록 그룹 중 하나를 나타내며;
Figure pct00065
Figure pct00066
내의 모든 코드 블록 그룹이 처리된 경우에 코드 블록 그룹 i를 처리하기 위해 필요한 비용을 나타내고;
Figure pct00067
은 모든 N개의 코드 블록 그룹의 세트를 나타내며;
Figure pct00068
은 N개의 코드 블록 그룹의 최적 처리 순서를 나타내고; 최적의 질문의 목적은 모든 N개의 코드 블록 그룹의 총 비용
Figure pct00069
이 최소가 될 수 있도록 처리 순서
Figure pct00070
를 찾아내는 것이다.
Figure pct00071
를 풀기 위해, 각각의 코드 블록 그룹의 비용
Figure pct00072
이 계산될 필요가 있다. 하나의 코드 블록 그룹의 비용
Figure pct00073
이 획득된 후에, 공식 (5)에서 설명된 방법이 코드 블록 그룹의 최적의 처리 순서를 결정하기 위해 사용될 수 있다.
Figure pct00074
(5)
여기서,
Figure pct00075
는 이미 처리된 코드 블록 그룹의 수량을 나타내고;
Figure pct00076
는 이미 처리된 j개의 블록 그룹의 모든 가능한 조합 중 k번째 조합을 나타내며;
Figure pct00077
는 전술한 경우의 k번째 조합 중 이미 처리된 j개의 블록 그룹의 인덱스를 포함하는 세트이고; 비용 함수
Figure pct00078
는 코드 블록 그룹 세트
Figure pct00079
내의 모든 블록 그룹의 비용의 합, 즉, 최적의 처리 순서
Figure pct00080
를 사용함으로써,
Figure pct00081
에 포함된 j 코드 블록 그룹을 처리하는 데 필요한 총 비용을 나타내며;
Figure pct00082
Figure pct00083
가 나타내는 k번째 조합이 나타내는 모든 j개의 블록 그룹이 처리된 경우 블록 그룹 i가 인코딩되는 때 초래되는 비용을 나타낸다.
전술한 프로세스를 설명하기 위해, 예가 제공된다. 여기서, 3개의 코드 블록 그룹이 처리되기 위해 1, 2, 및 3으로 번호가 매겨진다. j=2인 경우,
Figure pct00084
에 대한 3가지 가능한 경우가, 즉,
Figure pct00085
,
Figure pct00086
, 및
Figure pct00087
인 경우가 존재하고, 이들의 최적의 인코딩 순서는
Figure pct00088
,
Figure pct00089
, 및
Figure pct00090
이며, 이들에 대응하는 최적의 비용은
Figure pct00091
,
Figure pct00092
, 및
Figure pct00093
이다. 또한, j=3인 경우가 고려된다.
Figure pct00094
에 대한 3가지 가능한 경우에서, 다른 코드 블록 그룹은 각각 3으로 번호가 매겨진 블록 그룹, 2로 번호가 매겨진 블록 그룹, 및 1로 변호가 매겨진 블록 그룹이고, 블록 그룹을 인코딩하기 위한 이에 대응하는 비용은 각각
Figure pct00095
,
Figure pct00096
, 및
Figure pct00097
이다. 이때, 인코딩 번호 1, 2, 및 3을 가진 3개의 코드 블록 그룹의 최소 비용
Figure pct00098
이 공식 (6)을 사용하여 계산에 의해 획득될 수 있고, 그 후에 최적의 처리 순서
Figure pct00099
가 결정된다.
Figure pct00100
(6)
선택적으로, 일 실시예에서, 인코딩 유닛은 구체적으로, 결정 유닛을 이용하여 제1 처리 순서에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하고, 제1 처리 순서 및 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서에 따라 코드 블록 그룹을 인코딩하도록 구성된다.
구체적으로, 코드 블록 그룹의 처리 순서가 결정된 후에, 코드 블록 그룹에 포함된 코드 블록의 처리 순서가 추가적으로 결정될 필요가 있을 수 있다. 현재 코드 블록 그룹 내의 코드 블록의 처리 순서가 코드 블록 그룹의 처리 순서에 따라 결정될 수 있다. 즉, 현재 코드 블록 그룹 내의 코드 블록의 처리 순서가 결정될 수 있도록, 현재 코드 블록 그룹과 현재 코드 블록 그룹에 인접한 코드 블록 그룹 간의 처리 순서가 코드 블록 그룹의 처리 순서에 따라 결정될 수 있다. 현재 코드 블록 그룹 내의 코드 블록은 복수의 사전 설정된 후보 처리 순서를 가질 수 있다. 여기서, 각각의 후보 처리 순서는 하나의 위치 관계에 대응하고, 이 위치 관계는 현재 처리되는 코드 블록 그룹과 이미 처리되었고 현재 처리되는 코드 블록 그룹에 인접한 코드 블록 그룹 간의 상대적인 위치 관계이다. 현재 코드 블록 그룹이 인코딩될 때, 현재 코드 블록 그룹과 이미 인코딩되었으면서 현재 코드 블록 그룹에 인접하거나 가까운 코드 블록 그룹 간의 상대적인 위치 관계가 먼저 결정될 수 있고, 그 다음에 대응하는 코드 블록 그룹 내의 코드 블록의 처리 순서가 결정된 상대적인 위치 관계에 따라, 미리 구성된 대응 관계 중에서 결정된다. 코드 블록의 처리 순서가 결정된 후에, 현재 코드 블록 그룹 내의 모든 코드 블록이 처리 순서에 따라 인코딩되고, 인코딩이 종료된 후에 다음 코드 블록 그룹이 제1 처리 순서에 따라 처리된다. 현재 코드 블록 그룹과 유사하게, 다음 코드 블록 그룹 내의 코드 블록의 처리 순서가 상대적인 위치 관계에 따라 결정될 필요가 있고, 타깃 이미지의 모든 코드 블록 그룹이 제1 처리 순서에 따라 완전히 인코딩될 때까지 계속된다.
선택적으로, 일 실시예에서, 결정 유닛은 추가적으로, 코드 블록의 복수의 후보 처리 순서를 결정하고, 복수의 후보 처리 순서 간의 대응 관계 및 복수의 위치 관계를 결정하도록 구성된다. 여기서, 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다. 선택적으로, 일 실시예에서, 결정 유닛은 추가적으로, 코드 블록의 사전 설정된 복수의 후보 처리 순서를 이용하도록 구성된다. 사전 설정된 코드 블록의 복수의 후보 처리 순서는 복수의 방법을 이용하여 결정될 수 있다. 예를 들어, 사전 설정된 코드 블록의 복수의 후보 처리 순서는 코드 블록 그룹에 포함된 코드 블록의 분할 방식에 따라 결정된다. 코드 블록의 분할 방식은 동일한 크기의 분할을 포함할 수 있다. 즉, 코드 블록 그룹 내의 코드 블록의 크기는, 예를 들어 H.264/AVC에서 동일한 분할을 포함할 수 있다. 코드 블록의 분할 방식은, 예를 들어 HEVC에서 동일하지 않은 크기의 분할을 더 포함할 수 있다. 동일한 크기의 분할인 경우, 사전 설정된 코드 블록의 복수의 후보 처리 순서가 도 4에 도시될 수 있다. 동일하지 않은 크기의 분할의 경우, 사전 설정된 코드 블록의 복수의 후보 처리 순서가 도 3에 도시될 수 있다. 도 3 및 도 4에 도시된 몇몇 처리 순서는 단지 일부 예일 뿐이고, 사전 설정된 코드 블록의 처리 순서는 이에 한정되지 않고, 임의의 순서일 수 있다고 이해되어야 한다.
예를 들어, 인코더(80)는 코드 블록 그룹 내의 코드 블록의 복수의 처리 순서 간의 대응 관계, 및 코드 블록 그룹 및 이미 인코딩된 코드 블록 그룹의 상대적인 위치를 사전 설정할 수 있다. 예를 들어, 도 4에 도시된 코드 블록의 4개의 처리 순서가 사전 설정될 수 있다. 여기서, 순서 0는 좌측에서 우측으로의 프로그레시브 스캐닝이고, 순서 1은 우측에서 좌측으로의 프로그레시브 스캐닝이며, 순서 2는 상측에서 하측으로의 열 단위 스캐닝이고, 순서 3은 하측에서 상측으로의 열 단위 스캐닝이다. 코드 블록 그룹 및 이미 인코딩된 코드 블록 그룹의 상대적인 위치는 도 5에 도시된 16개의 상대적인 위치일 수 있다: 1. 이미 인코딩되었으면서 코드 블록 그룹에 인접한 코드 블록 그룹이 존재하지 않는다. 2. 코드 블록 그룹 상측의 코드 블록 그룹이 인코딩되었다. 3. 코드 블록 그룹 우측의 코드 블록 그룹이 인코딩되었다. 4. 코드 블록 그룹 하측의 코드 블록 그룹이 인코딩되었다. 5. 코드 블록 그룹 좌측의 코드 블록 그룹이 인코딩되었다. 6. 코드 블록 그룹 상측 및 우측의 코드 블록 그룹이 인코딩되었다. 7. 코드 블록 그룹의 하측 및 우측의 코드 블록 그룹이 인코딩되었다. 8. 코드 블록 그룹의 좌측 및 하측의 코드 블록 그룹이 인코딩되었다. 9. 코드 블록 그룹의 좌측 및 상측의 코드 블록 그룹이 인코딩되었다. 10. 코드 블록 그룹의 상측 및 하측의 코드 블록 그룹이 인코딩되었다. 11. 코드 블록 그룹의 좌측 및 우측의 코드 블록 그룹이 인코딩되었다. 12. 코드 블록 그룹의 상측, 하측, 및 좌측의 코드 블록 그룹이 인코딩되었다. 13. 코드 블록 그룹의 좌측, 우측, 및 상측의 코드 블록 그룹이 인코딩되었다. 14. 코드 블록 그룹의 상측, 하측, 및 우측의 코드 블록 그룹이 인코딩되었다. 15. 코드 블록 그룹의 좌측, 우측, 및 하측의 코드 블록 그룹이 인코딩되었다. 16. 코드 블록 그룹의 상측, 하측, 좌측, 및 우측의 코드 블록 그룹이 인코딩되었다.
인코더(80)는 추가적으로, 전술한 4개의 처리 순서와 전술한 16개의 상대적인 위치 관계 간의 대응 관계를 미리 구성할 수 있다. 예를 들어, 상대적인 위치 관계 1은 순서 0에 대응하고, 상대적인 위치 관계 2는 순서 3에 대응하며, 상대적인 위치 관계 3은 순서 2에 대응한다.
전술한 대응 관계로부터 알 수 있는 것은, 서로 다른 코드 블록 그룹 처리 순서가 주어진 경우, 대응하는 경우가 현재 코드 블록 그룹에 대한 전술한 16개의 경우 중에서 선택된다는 것이다. 현재 코드 블록 그룹 내의 코드 블록의 처리 순서가 나중에 결정되고, 그 다음에 인코딩 연산이 주어진 코드 블록 처리 순서에 따라 현재 코드 블록 그룹 내의 코드 블록에 대해 수행되며, 코딩 비용이 계산된다.
여기서, 코드 블록 처리 순서를 결정하는 단계를 위해, 현재 코드 블록 그룹 내의 화소 값은, 가능한 한 이미 처리된 인접 코드 블록 그룹 내의 화소 값을 이용하여 예측된다. 코딩된 이미지의 공간 상관관계가 비교적 완전히 고려되며, 이는 압축 효율을 향상시키는 데 도움이 된다.
선택적으로, 일 실시예에서, 결정 유닛은 구체적으로, 제1 처리 순서에 따라, 코드 블록 그룹과 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하고, 대응 관계 및 상대적인 위치 관계에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하도록 구성된다.
선택적으로, 일 실시예에서, 결정 유닛은 구체적으로, 제1 처리 순서에 따라, 코드 블록 그룹과 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하고, 상대적인 위치 관계, 및 사전 설정된 복수의 후보 처리 순서와 복수의 위치 관계 간의 대응 관계에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하도록 구성된다. 여기서, 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
즉, 코드 블록의 복수의 후보 처리 순서 및 복수의 후보 처리 순서와 복수의 위치 관계 간의 대응 관계 양자 모두가 사전 설정될 수 있다. 현재 처리되는 코드 블록 그룹 내의 코드 블록의 처리 순서를 결정하는 경우, 인코더(80)는 직접 사전 설정된 대응 관계에 따라, 현재 처리되는 코드 블록 그룹 내의 코드 블록에 대응하는 처리 순서를 결정할 수 있다. 여기서, 복수의 후보 처리 순서 및 대응 관계는 전술한 실시예에서의 후보 처리 순서 및 대응관계와 유사하며, 세부사항은 본 명세서에서 다시 설명하지 않는다.
선택적으로, 일 실시예에서, 인코딩 유닛은 구체적으로, 제1 처리 순서에 따라 코드 블록 그룹의 인덱스를 배열하고, 코드 블록 그룹의 배열된 인덱스를 인코딩하고 이 배열된 인덱스를 비트스트림에 기입하거나; 또는 제1 처리 순서에 따라 코드 블록 그룹의 좌표를 배열하고, 코드 블록 그룹의 배열된 좌표를 인코딩하고 이 배열된 좌표를 비트스트림에 기입하도록 구성된다.
구체적으로, 코드 블록 그룹의 처리 순서가 결정된 후에 처리 순서가 인덱스나 좌표에 의해 또는 다른 방식으로 비트스트림에 기입될 수 있어서, 디코더 측이 디코딩을 수행하는 경우에 디코더 측이 인코딩 중에 직접 코드 블록 그룹의 인코딩 순서를 획득할 수 있다. 구체적으로, 다음의 2가지 방식이 존재할 수 있다:
하나의 방식에서, 인덱스 번호, 예컨대, 0 내지 N-1이 좌측에서 우측으로의 라인 스캔 및 상측에서 하측으로의 라인 스캔에 의해 코딩된 이미지 내의 코드 블록 그룹에 할당될 수 있다. N개의 인덱스 번호는, 계산에 의해 획득되는 최적의 처리 순서에 따라 비트스트림에 기입된다.
다른 방식에서, 수평 좌표 값 및 수직 좌표 값이 좌측에서 우측으로 또한 상측에서 하측으로 코드 블록 그룹에 할당될 수 있다. 예를 들어,
Figure pct00101
는 코드 블록을 나타낸다. 코딩된 이미지가 각각 가로 방향 및 세로 방향으로 w개의 코드 블록 그룹 및 h개의 코드 블록 그룹을 가지면, 코딩된 이미지는 총 N개의 코드 블록 그룹을 가진다. 여기서,
Figure pct00102
이고, x 및 y의 값 범위는 각각
Figure pct00103
Figure pct00104
이다. N개의 그룹의 좌표가 계산에 의해 획득되는 최적의 처리 순서에 따라 인코딩될 수 있다. 예를 들어, N개의 수평 좌표 값 및 N개의 수직 좌표 값이 펄스 부호 변조(Pulse Code Modulation, PCM)와 유사한 인코딩 방식을 사용하여 독립적, 순차적으로 인코딩될 수 있다. 이와 달리, N개의 수평 좌표 값 및 N개의 수직 좌표 값이 차분 펄스 부호 변조(Differential Pulse Code Modulation, DPCM)와 유사한 인코딩 방식을 사용하여 인코딩될 수 있다.
코드 블록 그룹의 최적의 처리 순서 O가 전술한 방법을 이용하여 코딩된 후에, 인코딩의 결과가 비디오 비트스트림에 출력되어, 디코더 측이 최적의 처리 순서에 따라 디코딩을 수행한다.
선택적으로, 일 실시예에서, 코드 블록 그룹의 코딩 비용은 코드 블록 그룹을 인코딩하기 위해 소요되는 비트의 수, 또는 코드 블록 그룹의 왜곡 중 적어도 하나를 포함한다.
코드 블록 그룹의 코딩 비용은, 블록 그룹의 인코딩 품질을 측정하기 위한 중요한 기준이다. 코딩 비용이 계산되는 경우, 블록을 인코딩하기 위해 소요되는 비트의 수가 복원 후 블록의 품질을 나타낸다. 코딩 비용이 더 작은 값을 가진다는 것은, 블록이 더 잘 인코딩되었다는 것을 나타낸다.
이해되어야 할 것은, 타깃 이미지가 인코딩될 경우, 타깃 이미지에 포함된 코드 블록 그룹의 제1 처리 순서가 본 발명의 본 실시예에서의 방법에 따라 결정될 수 있다는 것이다. 코드 블록 그룹 내의 코드 블록의 처리 순서가 결정되는 경우, 일부 코드 블록 그룹 내의 코드 블록의 처리 순서가 결정될 수 있고, 다른 코드 블록 그룹 내의 코드 블록의 처리 순서는 다른 과제 해결수단에 따라 결정되거나 또는 사전 설정될 수 있다.
본 발명의 본 실시예에서의 인코더(80)는, 타깃 이미지 내의 공간 상관관계가 완전히 활용될 수 있도록, 타깃 이미지의 총 코딩 비용에 따라, 타깃 이미지에 포함된 복수의 코드 블록 그룹의 제1 처리 순서를 결정하고, 제1 처리 순서에 따라 복수의 코드 블록 그룹을 인코딩하며, 따라서 인코딩 중에 압축 효율을 향상시킨다.
도 9는 본 발명의 일 실시예에 따른 디코더의 개략적인 블록도이다. 도 9에서의 디코더(90)는 획득 유닛(91), 결정 유닛(92), 및 디코딩 유닛(93)을 포함한다.
획득 유닛(91)은 비트스트림으로부터 타깃 이미지의 복수의 코드 블록 그룹의 제1 처리 순서를 획득한다. 결정 유닛(92)은 제1 처리 순서에 따라, 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정한다. 디코딩 유닛(93)은, 제1 처리 순서 및 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서에 따라 비트스트림을 디코딩한다.
본 발명의 본 실시예에서, 각각의 코드 블록 그룹에 포함된 코드 블록의 처리 순서가, 최소 총 코딩 비용을 달성할 수 있고 인코더 측에서 결정되는 제1 처리 순서에 따라 결정되고, 디코더(90)는 제1 처리 순서 및 각각의 코드 블록 그룹 내의 코드 블록의 처리 순서에 따라 타깃 이미지의 비트스트림을 디코딩한다. 인코딩 프로세스에서, 인코딩 중에 압축 효율을 향상시킬 수 있도록 타깃 이미지의 공간 상관관계가 완전히 활용된다.
선택적으로, 일 실시예에서, 결정 유닛(92)은 추가적으로, 코드 블록의 복수의 후보 처리 순서를 결정하고, 복수의 후보 처리 순서 간의 대응 관계 및 복수의 위치 관계를 결정하도록 구성된다. 여기서, 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
인코딩과 디코딩 간의 매칭을 보장하기 위해, 디코더(90)는, 코드 블록 그룹의 처리 순서에 따라 현재 코드 블록 그룹 내의 코드 블록의 처리 순서를 결정하기 위해 인코더 측에 의해 사용된 해결 수단과 동일한 해결수단을 사용한다. 현재 코드 블록 그룹 내의 코드 블록은 복수의 사전 설정된 후보 처리 순서를 가질 수 있다. 여기서, 각각의 후보 처리 순서는 하나의 위치 관계에 대응하고, 이 위치 관계는 현재 처리되는 코드 블록 그룹과 이미 처리되었고 현재 처리되는 코드 블록 그룹에 인접한 코드 블록 그룹 간의 상대적인 위치 관계이다. 현재 코드 블록 그룹이 디코딩될 경우, 현재 코드 블록 그룹과 이미 디코딩되고 현재 코드 블록 그룹에 인접하거나 가까운 코드 블록 그룹 간의 상대적인 위치 관계가 먼저 결정될 수 있고, 그 다음에 대응하는 코드 블록 그룹 내의 코드 블록의 처리 순서가 결정된 상대적인 위치 관계에 따라, 미리 구성된 대응 관계 중에서 결정된다. 코드 블록의 처리 순서가 결정된 후에, 현재 코드 블록 그룹 내의 모든 코드 블록이 처리 순서에 따라 디코딩되고, 디코딩이 종료된 후에 다음 코드 블록 그룹이 제1 처리 순서에 따라 처리된다. 현재 코드 블록 그룹과 유사하게, 다음 코드 블록 그룹 내의 코드 블록의 처리 순서가 상대적인 위치 관계에 따라 결정될 필요가 있고, 타깃 이미지의 모든 코드 블록 그룹이 제1 처리 순서에 따라 완전히 디코딩될 때까지 계속된다.
선택적으로, 일 실시예에서, 결정 유닛은 구체적으로, 제1 처리 순서에 따라, 코드 블록 그룹과 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하고, 대응 관계 및 상대적인 위치 관계에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하도록 구성된다. 선택적으로, 일 실시예에서, 결정 유닛은 구체적으로, 코드 블록의 사전 설정된 복수의 후보 처리 순서를 이용하도록 구성된다. 사전 설정된 코드 블록의 복수의 후보 처리 순서는 복수의 방법을 이용하여 결정될 수 있다. 예를 들어, 사전 설정된 코드 블록의 복수의 후보 처리 순서는 코드 블록 그룹에 포함된 코드 블록의 분할 방식에 따라 결정된다. 코드 블록의 분할 방식은 동일한 크기의 분할, 즉, 코드 블록 그룹 내의 코드 블록의 크기가, 예를 들어 H.264/AVC에서 동일한 분할을 포함할 수 있다. 코드 블록의 분할 방식은, 예를 들어 HEVC에서 동일하지 않은 크기의 분할을 더 포함할 수 있다. 동일한 크기의 분할인 경우, 사전 설정된 코드 블록의 복수의 후보 처리 순서가 도 4에 도시될 수 있다. 동일하지 않은 크기의 분할의 경우, 사전 설정된 코드 블록의 복수의 후보 처리 순서가 도 3에 도시될 수 있다. 도 3 및 도 4에 도시된 몇몇 처리 순서는 단지 일부 예일 뿐이고, 사전 설정된 코드 블록의 처리 순서는 이에 한정되지 않고, 임의의 순서일 수 있다고 이해되어야 한다.
예를 들어, 디코더(90)는 코드 블록 그룹 내의 코드 블록의 복수의 처리 순서 간의 대응 관계, 및 코드 블록 그룹과 인코딩된 코드 블록 그룹의 상대적인 위치를 사전 설정할 수 있다. 예를 들어, 도 4에 도시된 코드 블록의 4개의 처리 순서가 사전 설정된다. 여기서, 순서 0는 좌측에서 우측으로의 프로그레시브 스캐닝이고, 순서 1은 우측에서 좌측으로의 프로그레시브 스캐닝이며, 순서 2는 상측에서 하측으로의 열 단위 스캐닝이고, 순서 3은 하측에서 상측으로의 열 단위 스캐닝이다. 코드 블록 그룹 및 이미 디코딩된 코드 블록 그룹의 상대적인 위치는 도 5에 도시된 16개의 상대적인 위치일 수 있다: 1. 이미 디코딩되었으면서 코드 블록 그룹에 인접한 코드 블록 그룹이 존재하지 않는다. 2. 코드 블록 그룹의 상측의 코드 블록 그룹이 디코딩되었다. 3. 코드 블록 그룹의 우측의 코드 블록 그룹이 디코딩되었다. 4. 코드 블록 그룹의 하측의 코드 블록 그룹이 디코딩되었다. 5. 코드 블록 그룹의 좌측의 코드 블록 그룹이 디코딩되었다. 6. 코드 블록 그룹의 상측 및 우측의 코드 블록 그룹이 디코딩되었다. 7. 코드 블록 그룹의 하측 및 우측의 코드 블록 그룹이 디코딩되었다. 8. 코드 블록 그룹의 좌측 및 하측의 코드 블록 그룹이 디코딩되었다. 9. 코드 블록 그룹의 좌측 및 상측의 코드 블록 그룹이 디코딩되었다. 10. 코드 블록 그룹의 상측 및 하측의 코드 블록 그룹이 디코딩되었다. 11. 코드 블록 그룹의 좌측 및 우측의 코드 블록 그룹이 디코딩되었다. 12. 코드 블록 그룹 above, below, and on left of 코드 블록 그룹이 디코딩되었다. 13. 코드 블록 그룹의 좌측, 우측, 및 상측의 코드 블록 그룹이 디코딩되었다. 14. 코드 블록 그룹의 상측, 하측, 및 우측의 코드 블록 그룹이 디코딩되었다. 15. 코드 블록 그룹의 좌측, 우측, 및 하측의 코드 블록 그룹이 디코딩되었다. 16. 코드 블록 그룹의 하측, 좌측, 및 우측의 코드 블록 그룹이 디코딩되었다.
디코더(90) 추가적으로, 전술한 4개의 처리 순서와 전술한 16개의 상대적인 위치 관계 간의 대응 관계를 미리 구성할 수 있다. 예를 들어, 상대적인 위치 관계 1은 순서 0에 대응하고, 상대적인 위치 관계 2는 순서 3에 대응하며, 상대적인 위치 관계 3은 순서 2에 대응한다.
전술한 대응 관계로부터 알 수 있는 것은, 서로 다른 코드 블록 그룹 처리 순서가 주어진 경우, 대응하는 경우가 현재 코드 블록 그룹에 대한 전술한 16개의 경우 중에서 선택된다는 것이다. 현재 코드 블록 그룹 내의 코드 블록의 처리 순서가 나중에 결정되고, 그 다음에 디코딩 연산이 주어진 코드 블록 처리 순서에 따라 현재 코드 블록 그룹 내의 코드 블록에 대해 수행되며, 코딩 비용이 계산된다.
이해되어야 할 것은, 디코더(90)의 전술한 복수의 사전 설정된 모드 및 대응 관계는 인코더 측의 사전 설정된 모드 및 대응 관계와 동일하다는 것이다.
선택적으로, 일 실시예에서, 결정 유닛은 구체적으로, 제1 처리 순서에 따라, 코드 블록 그룹과 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하고, 상대적인 위치 관계, 및 사전 설정된 복수의 후보 처리 순서와 복수의 위치 관계 간의 대응 관계에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하도록 구성된다. 여기서, 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
즉, 코드 블록의 복수의 후보 처리 순서 및 복수의 후보 처리 순서와 복수의 위치 관계 간의 대응 관계 양자 모두가 사전 설정될 수 있다. 현재 처리되는 코드 블록 그룹 내의 코드 블록의 처리 순서를 결정하는 경우, 인코더 측은, 사전 설정된 대응 관계에 따라 직접, 현재 처리되는 코드 블록 그룹 내의 코드 블록에 대응하는 처리 순서를 결정할 수 있다. 여기서, 복수의 후보 처리 순서 및 대응 관계는 전술한 실시예에서의 후보 처리 순서 및 대응관계와 유사하며, 세부사항은 본 명세서에서 다시 설명하지 않는다.
선택적으로, 일 실시예에서, 획득 유닛(91)은 구체적으로, 복수의 코드 블록 그룹의 배열된 인덱스를 획득하기 위해 비트스트림을 디코딩하고, 복수의 코드 블록 그룹의 인덱스의 배열 순서에 따라 제1 처리 순서를 결정하거나; 또는 복수의 코드 블록 그룹의 배열된 좌표를 획득하기 위해 비트스트림을 디코딩하고, 복수의 코드 블록 그룹의 좌표의 배열 순서에 따라 제1 처리 순서를 결정하도록 구성된다.
구체적으로, 코드 블록 그룹의 처리 순서를 결정한 후에 인코더 측이 인덱스나 좌표에 의해 또는 다른 방식으로 처리 순서를 비트스트림에 기입할 수 있어서, 디코더(90)가 디코딩을 수행하는 경우에 디코더(90)는 인코딩 중에 코드 블록 그룹의 인코딩 순서를 직접 획득할 수 있다. 구체적으로, 다음의 2가지 방식이 존재할 수 있다:
하나의 방식에서, 인덱스 번호, 예컨대, 0 내지 N-1이 좌측에서 우측으로의 라인 스캔 및 상측에서 하측으로의 라인 스캔에 의해 코딩된 이미지 내의 코드 블록 그룹에 할당될 수 있다. N개의 인덱스 번호는, 계산에 의해 획득되는 최적의 처리 순서에 따라 비트스트림에 기입된다.
다른 방식에서, 수평 좌표 값 및 수직 좌표 값이 좌측에서 우측으로 또한 상측에서 하측으로 코드 블록 그룹에 할당될 수 있다. 예를 들어,
Figure pct00105
는 코드 블록을 나타낸다. 코딩된 이미지가 각각 가로 방향 및 세로 방향으로 w개의 코드 블록 그룹 및 h개의 코드 블록 그룹을 가지면, 코딩된 이미지는 총 N개의 코드 블록 그룹을 가진다. 여기서,
Figure pct00106
이고, x 및 y의 값 범위는 각각
Figure pct00107
Figure pct00108
이다. N개의 그룹의 좌표가 계산에 의해 획득되는 최적의 처리 순서에 따라 인코딩될 수 있다. 예를 들어, N개의 수평 좌표 값 및 N개의 수직 좌표 값이 펄스 부호 변조(Pulse Code Modulation, PCM)와 유사한 인코딩 방식을 사용하여 독립적, 순차적으로 인코딩될 수 있다. 이와 달리, N개의 수평 좌표 값 및 N개의 수직 좌표 값이 차분 펄스 부호 변조(Differential Pulse Code Modulation, DPCM)와 유사한 인코딩 방식을 사용하여 인코딩될 수 있다.
즉, 이에 상응하여, 디코더(90)가 인코더 측이 비트스트림에 기입한 정보에 따라, 전술한 2개의 방식에서의 코드 블록 그룹의 처리 순서를 학습할 수 있다.
본 발명의 본 실시예에서, 각각의 코드 블록 그룹에 포함된 코드 블록의 처리 순서가, 최소 총 코딩 비용을 달성할 수 있고 인코더 측에서 결정되는 제1 처리 순서에 따라 결정되고, 디코더(90)는 제1 처리 순서 및 각각의 코드 블록 그룹 내의 코드 블록의 처리 순서에 따라 타깃 이미지의 비트스트림을 디코딩한다. 인코딩 프로세스에서, 타깃 이미지의 공간 상관관계가 완전히 활용되어 인코딩 중에 압축 효율을 향상시킬수 있다.
도 10은 본 발명의 다른 실시예에 따른 인코더의 개략적인 블록도이다. 도 10에서의 인코더(100)는 프로세서(101) 및 메모리(102)를 포함한다. 프로세서(101)은 버스 시스템(103)를 이용하여 메모리(102)에 연결된다.
메모리(102)는, 프로세서(101)로 하여금 타깃 이미지의 총 코딩 비용에 따라, 타깃 이미지에 포함된 복수의 코드 블록 그룹의 제1 처리 순서를 결정하는 동작; 제1 처리 순서에 따라 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹을 인코딩하여 비트스트림을 생성하는 동작; 및 제1 처리 순서를 비트스트림에 기입하는 동작을 수행하게 하는 명령을 저장하도록 구성된다.
본 발명의 본 실시예에서의 인코더(100)는, 타깃 이미지 내의 공간 상관관계가 완전히 활용될 수 있도록, 타깃 이미지의 총 코딩 비용에 따라, 타깃 이미지에 포함된 복수의 코드 블록 그룹의 제1 처리 순서를 결정하고, 제1 처리 순서에 따라 복수의 코드 블록 그룹을 인코딩하며, 따라서 인코딩 중에 압축 효율을 향상시킨다.
이해되어야 할 것은, 본 발명의 본 실시예에서의 타깃 이미지는 인코딩될 이미지이거나, 또는 코딩된 이미지라고도 할 수 있다는 것이다. 타깃 이미지는 복수의 중첩하지 않는 코드 블록 그룹으로 분할되고, 여기서 코드 블록 그룹은 HEVC에서의 코딩 트리 유닛(CTU)와 같거나, 또는 H.264/AVC에서의 매크로블록(MB)과 같거나, 또는 이와 유사한 것과 같을 수 있다. 코드 블록 그룹은 코딩 파라미터가 독립적으로 결정될 수 있는 복수의 코드 블록으로 계속 분할될 수 있다. 여기서, 코드 블록은 HEVC에서의 코드 유닛 CU과 동일할 수 있거나, 또는 H.264/AVC에서의 서브 매크로블록(SMB)과 동일할 수 있거나, 또는 이와 유사한 것과 동일할 수 있다.
또한, 인코더(100)는 송신 회로(104) 또는 이와 유사한 것을 더 포함할 수 있다. 프로세서(101)는 인코더(100)의 동작을 제어하고, 프로세서(101)는 CPU(Central Processing Unit)라고도 할 수 있다. 메모리(102)는 롬(read-only memory, ROM) 및 램(random access memory, RAM)을 포함할 수 있고, 프로세서(101)에게 명령 및 데이터를 제공한다. 메모리(102)의 일부는 비휘발성 램(non-volatile RAM, NVRAM)을 더 포함할 수 있다. 인코더(100)의 컴포넌트들은 버스 시스템(103)을 이용하여 함께 결합된다. 여기서, 버스 시스템(103)은 데이터 버스를 포함할 뿐만 아니라 전력 버스, 제어 버스, 및 상태 신호 버스 등을 더 포함할 수 있다. 하지만, 명확한 설명을 위해, 도면 내의 다양한 타입의 버스가 버스 시스템(103)으로서 표시되어 있다.
본 발명의 실시예에서 개시된 방법은 프로세서(101)에 적용될 수 있거나, 또는 프로세서(101)에 의해 구현된다. 프로세서(101)는 집적 회로 칩(IC chip)일 수 있고 신호 처리 능력을 가진다. 구현 프로세스에서, 전술한 방법의 단계들은 프로세서(101) 내의 하드웨어의 통합 로직 회로를 사용하여 수행되거나 또는 소프트웨어 형태의 명령에 의해 수행될 수 있다. 전술한 프로세서(101)는 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 반도체(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 또는 다른 프로그램 가능한 로직 장치, 디스크리트 게이트(discrete gate) 또는 트랜지스터 로직 장치, 또는 독립된 하드웨어 컴포넌트일 수 있다. 프로세서(101)는, 본 발명의 실시예에서 개시된 방법, 단계 및 논리 블록도를 구현하거나 수행할 수 있다. 범용 프로세서는 마이크로프로세서일 수 있거나, 또는 프로세서는 어떤 기존의 프로세서 및 이와 유사한 것일 수 있다. 본 발명의 실시예를 참조하여 개시된 방법의 단계는, 하드웨어 디코딩 프로세서에 의해 직접 수행되고 완료될 수 있거나, 또는 디코딩 프로세서 내의 하드웨어와 소프트웨어의 모듈의 조합을 이용하여 수행되고 완료될 수 있다. 소프트웨어 모듈은 당해 분야에서의 성숙한 저장 매체, 예컨대, 램, 플래쉬 메모리, 롬, 피롬(programmable read-only memory), 전기적으로 소거 가능한 프로그램 가능 메모리, 또는 레지스터 내에 위치할 수 있다. 저장 매체는 메모리(102) 내에 위치하고, 프로세서(101)는 메모리(102) 내의 정보를 판독하고 프로세서(101)의 하드웨어와 결합하여 전술한 방법에서 단계를 완료한다.
선택적으로, 일 실시예에서, 타깃 이미지의 총 코딩 비용에 따라, 타깃 이미지에 포함된 복수의 코드 블록 그룹의 제1 처리 순서를 결정하는 과정은, 복수의 코드 블록 그룹의 모든 처리 순서의 각각의 처리 순서에 대응하는 총 코딩 비용을 결정하는 과정 - 각각의 처리 순서에 대응하는 총 코딩 비용은 복수의 코드 블록 그룹이 각각의 처리 순서에 따라 인코딩된 경우의 코딩 비용의 합임 -; 및 모든 처리 순서에 대응하는 총 코딩 비용의 최소 총 코딩 비용에 대응하는 처리 순서가 제1 처리 순서라고 결정하는 과정을 포함한다.
선택적으로, 일 실시예에서, 비트스트림을 생성하기 위해 제1 처리 순서에 따라 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹을 인코딩하는 과정은, 제1 처리 순서에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 것; 및 제1 처리 순서 및 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서에 따라 코드 블록 그룹을 인코딩하는 과정을 포함한다.
선택적으로, 일 실시예에서, 제1 처리 순서에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 과정 이전에, 인코딩 과정은, 코드 블록의 복수의 후보 처리 순서를 결정하는 과정; 및 복수의 후보 처리 순서 간의 대응 관계 및 복수의 위치 관계를 결정하는 과정을 더 포함한다. 여기서, 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
선택적으로, 일 실시예에서, 제1 처리 순서에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 과정은, 제1 처리 순서에 따라, 코드 블록 그룹과 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하는 과정; 및 대응 관계 및 상대적인 위치 관계에 따라 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 과정을 포함한다.
선택적으로, 일 실시예에서, 코드 블록의 복수의 후보 처리 순서를 결정하는 과정은, 코드 블록의 사전 설정된 복수의 후보 처리 순서를 이용하는 과정을 포함한다.
선택적으로, 일 실시예에서, 제1 처리 순서에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 과정은, 제1 처리 순서에 따라, 코드 블록 그룹과 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하는 과정; 및 상대적인 위치 관계, 및 사전 설정된 복수의 후보 처리 순서와 복수의 위치 관계 간의 대응 관계에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 과정을 포함한다. 여기서, 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
선택적으로, 일 실시예에서, 제1 처리 순서를 비트스트림에 기입하는 과정은, 제1 처리 순서에 따라 코드 블록 그룹의 인덱스를 배열하고, 코드 블록 그룹의 배열된 인덱스를 인코딩하고 이 배열된 인덱스를 비트스트림에 기입하는 과정; 또는 제1 처리 순서에 따라 코드 블록 그룹의 좌표를 배열하고, 코드 블록 그룹의 배열된 좌표를 인코딩하고 이 배열된 좌표를 비트스트림에 기입하는 과정을 포함한다.
선택적으로, 일 실시예에서, 코드 블록 그룹의 코딩 비용은 코드 블록 그룹을 인코딩하기 위해 소요되는 비트의 수, 또는 코드 블록 그룹의 왜곡 중 적어도 하나를 포함한다.
본 발명의 본 실시예에서의 인코더(100)는, 타깃 이미지 내의 공간 상관관계가 완전히 활용될 수 있도록, 타깃 이미지의 총 코딩 비용에 따라, 타깃 이미지에 포함된 복수의 코드 블록 그룹의 제1 처리 순서를 결정하고, 제1 처리 순서에 따라 복수의 코드 블록 그룹을 인코딩하며, 따라서 인코딩 중에 압축 효율을 향상시킨다.
도 11은 본 발명의 다른 실시예에 따른 디코더의 개략적인 블록도이다. 도 11에서의 디코더(110)는 프로세서(111) 및 메모리(112)를 포함한다. 프로세서(111)는 버스 시스템(113)을 이용하여 메모리(112)에 연결된다.
메모리(112)는, 프로세서(111)로 하여금 비트스트림으로부터 타깃 이미지의 복수의 코드 블록 그룹의 제1 처리 순서를 획득하는 동작; 제1 처리 순서에 따라, 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 동작; 및 제1 처리 순서 및 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서에 따라 비트스트림을 디코딩하는 동작을 수행하게 하는 명령을 저장하도록 구성된다.
본 발명의 본 실시예에서, 각각의 코드 블록 그룹에 포함된 코드 블록의 처리 순서가, 최소 총 코딩 비용을 달성할 수 있고 인코더 측에서 결정되는 제1 처리 순서에 따라 결정되고, 디코더(110)는 제1 처리 순서 및 각각의 코드 블록 그룹 내의 코드 블록의 처리 순서에 따라 타깃 이미지의 비트스트림을 디코딩한다. 인코딩 프로세스에서, 타깃 이미지의 공간 상관관계가 완전히 활용되어 인코딩 중에 압축 효율을 향상시킬수 있다.
또한, 디코더(110)는 송신 회로(114)나 이와 유사한 것을 더 포함할 수 있다. 프로세서(111)는 디코더(110)의 동작을 제어하고, 프로세서(111)는 CPU(Central Processing Unit)라고도 할 수 있다. 메모리(112)는 롬(read-only memory, ROM) 및 램(random access memory, RAM)을 포함할 수 있고, 프로세서(111)에게 명령 및 데이터를 제공한다. 메모리(112)의 일부는 비휘발성 램(non-volatile RAM, NVRAM)을 더 포함할 수 있다. 디코더(110)의 컴포넌트들은 버스 시스템(113)을 이용하여 함께 결합된다. 여기서, 버스 시스템(113)은 데이터 버스를 포함할 뿐만 아니라 전력 버스, 제어 버스, 및 상태 신호 버스 등을 더 포함할 수 있다. 하지만, 명확한 설명을 위해, 도면 내의 다양한 타입의 버스가 버스 시스템(113)으로서 표시되어 있다.
본 발명의 실시예에서 개시된 방법은 프로세서(111)에 적용될 수 있거나, 또는 프로세서(111)에 의해 구현된다. 프로세서(111)는 집적 회로 칩(IC chip)일 수 있고 신호 처리 능력을 가진다. 구현 프로세스에서, 전술한 방법의 단계들은 프로세서(111) 내의 하드웨어의 통합 로직 회로를 사용하여 수행되거나 또는 소프트웨어 형태의 명령에 의해 수행될 수 있다. 전술한 프로세서(111)는 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 반도체(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 또는 다른 프로그램 가능한 로직 장치, 디스크리트 게이트(discrete gate) 또는 트랜지스터 로직 장치, 또는 독립된 하드웨어 컴포넌트일 수 있다. 프로세서(111) 본 발명의 실시예에서 개시된 방법, 단계 및 논리 블록도를 구현하거나 수행할 수 있다. 범용 프로세서는 마이크로프로세서일 수 있거나, 또는 프로세서는 어떤 기존의 프로세서 및 이와 유사한 것일 수 있다. 본 발명의 실시예를 참조하여 개시된 방법의 단계는 하드웨어 디코딩 프로세서에 의해 직접 수행되고 완료될 수 있거나, 또는 디코딩 프로세서 내의 하드웨어와 소프트웨어의 모듈의 조합을 이용하여 수행되고 완료될 수 있다. 소프트웨어 모듈은 당해 분야에서의 성숙한 저장 매체, 예컨대, 램, 플래쉬 메모리, 롬, 피롬(programmable read-only memory), 전기적으로 소거 가능한 프로그램 가능 메모리, 또는 레지스터 내에 위치할 수 있다. 저장 매체는 메모리(112) 내에 위치하고, 프로세서(111)는 메모리(112) 내의 정보를 판독하고 프로세서(111)의 하드웨어와 결합하여 전술한 방법에서의 단계를 완료한다.
선택적으로, 일 실시예에서, 제1 처리 순서에 따라, 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 과정 이전에, 디코딩 방법은, 코드 블록의 복수의 후보 처리 순서를 결정하는 과정; 및 복수의 후보 처리 순서 간의 대응 관계 및 복수의 위치 관계를 결정하는 과정을 더 포함한다. 여기서, 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
선택적으로, 일 실시예에서, 제1 처리 순서에 따라, 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 과정은, 제1 처리 순서에 따라, 코드 블록 그룹과 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하는 과정; 및 대응 관계 및 상대적인 위치 관계에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 과정을 포함한다.
선택적으로, 일 실시예에서, 코드 블록의 복수의 후보 처리 순서를 결정하는 과정은, 코드 블록의 사전 설정된 복수의 후보 처리 순서를 이용하는 과정을 포함한다.
선택적으로, 일 실시예에서, 제1 처리 순서에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 과정은, 제1 처리 순서에 따라, 코드 블록 그룹과 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하는 과정; 및 상대적인 위치 관계, 및 사전 설정된 복수의 후보 처리 순서와 복수의 위치 관계 간의 대응 관계에 따라, 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 과정을 포함한다. 여기서, 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계이다.
선택적으로, 일 실시예에서, 비트스트림으로부터 타깃 이미지의 복수의 코드 블록 그룹의 제1 처리 순서를 획득하는 과정은, 복수의 코드 블록 그룹의 배열된 인덱스를 획득하기 위해 비트스트림을 디코딩하고, 복수의 코드 블록 그룹의 인덱스의 배열 순서에 따라 제1 처리 순서를 결정하는 과정; 또는 복수의 코드 블록 그룹의 배열된 좌표를 획득하기 위해 비트스트림을 디코딩하고, 복수의 코드 블록 그룹의 좌표의 배열 순서에 따라 제1 처리 순서를 결정하는 과정을 포함한다.
본 발명의 본 실시예에서, 각각의 코드 블록 그룹에 포함된 코드 블록의 처리 순서는, 최소 총 코딩 비용을 달성할 수 있고 인코더 측에서 결정되는 제1 처리 순서에 따라 결정되고, 디코더(110)는 제1 처리 순서 및 각각의 코드 블록 그룹 내의 코드 블록의 처리 순서에 따라 타깃 이미지의 비트스트림을 디코딩한다. 인코딩 프로세스에서, 타깃 이미지의 공간 상관관계가 완전히 활용되어 인코딩 중에 압축 효율을 향상시킬수 있다.
당업자라면 본 명세서에서 공개된 실시예에서 설명된 예와 함께, 방법 단계 및 유닛이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합에 의해 구현될 수 있다는 것을 알 수 있을 것이다. 하드웨어 및 소프트웨어 사이의 호환성을 명확하게 설명하기 위해, 앞에서는 기능에 따른 각각의 구현의 구성 및 단계를 일반적으로 설명하였다. 기능이 하드웨어에 의해 수행되는지 소프트웨어에 의해 수행되는지 여부는, 특정한 적용 및 기술적 해결방안의 설계 제한 조건에 달려있다. 당해 기술분야의 당업자는 각각의 개별 적용에 대해 설명된 기능을 구현하기 위해 다른 방법을 사용할 수 있지만, 그러한 구현이 본 발명의 범위를 벗어나는 것으로 간주되어서는 안 된다.
본 명세서에서 개시되는 실시예에서 설명된 방법 또는 단계는 하드웨어, 프로세서에 의해 실행되는 소프트웨어 프로그램, 또는 이들의 조합에 의해 구현될 수 있다. 소프트웨어 프로그램은 램(RAM), 메모리, 롬(ROM), 이피롬(EPROM), 이이피롬(EEPROM), 레지스터, 하드 디스크, 착탈식 디스크(removable disk), 씨디롬(CD-ROM), 또는 당해 분야에서 알려져 있는 어떤 다른 형태의 저장 매체 내에 존재할 수 있다.
본 발명이 첨부 도면을 참조하고 실시예와 함께 자세히 설명되었지만, 본 발명은 이에 한정되지 않는다. 본 발명의 취지 및 본질에서 벗어나지 않고도 당업자에 의해 본 발명의 실시예에 대해 다양한 동등한 변형 또는 대체가 이루어질 수 있고, 이러한 변형 또는 대체는 본 발명의 보호범위에 속할 것이다.

Claims (30)

  1. 인코딩 방법으로서,
    타깃 이미지의 총 코딩 비용(total coding cost)에 따라, 상기 타깃 이미지에 포함된 복수의 코드 블록 그룹(multiple code blocks group)의 제1 처리 순서(first processing order)를 결정하는 단계;
    상기 제1 처리 순서에 따라 상기 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹을 인코딩하여 비트스트림(bitstream)을 생성하는 단계; 및
    상기 제1 처리 순서를 상기 비트스트림에 기입하는 단계
    를 포함하는 인코딩 방법.
  2. 제1항에 있어서,
    상기 타깃 이미지의 총 코딩 비용에 따라, 상기 타깃 이미지에 포함된 복수의 코드 블록 그룹의 제1 처리 순서를 결정하는 단계는,
    상기 복수의 코드 블록 그룹의 모든 처리 순서의 각각의 처리 순서에 대응하는 총 코딩 비용을 결정하는 단계 - 각각의 처리 순서에 대응하는 상기 총 코딩 비용은 상기 복수의 코드 블록 그룹이 각각의 처리 순서에 따라 인코딩된 경우의 코딩 비용의 합임 -; 및
    상기 모든 처리 순서에 대응하는 상기 총 코딩 비용의 최소 총 코딩 비용에 대응하는 처리 순서가 상기 제1 처리 순서라고 결정하는 단계
    를 포함하는, 인코딩 방법.
  3. 제1항에 있어서,
    상기 제1 처리 순서에 따라 상기 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹을 인코딩하여 비트스트림을 생성하는 단계는,
    상기 제1 처리 순서에 따라, 상기 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계; 및
    상기 제1 처리 순서 및 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서에 따라 상기 코드 블록 그룹을 인코딩하는 단계
    를 포함하는, 인코딩 방법.
  4. 제3항에 있어서,
    상기 제1 처리 순서에 따라, 상기 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계 이전에, 상기 인코딩 방법은,
    상기 코드 블록의 복수의 후보 처리 순서(candidate processing orders)를 결정하는 단계; 및
    상기 복수의 후보 처리 순서 간의 대응 관계(correspondence) 및 복수의 위치 관계(multiple location relationships)를 결정하는 단계
    를 더 포함하고,
    상기 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 상기 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계인, 인코딩 방법.
  5. 제4항에 있어서,
    상기 제1 처리 순서에 따라, 상기 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계는,
    상기 제1 처리 순서에 따라, 상기 코드 블록 그룹과 상기 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하는 단계; 및
    상기 대응 관계 및 상기 상대적인 위치 관계에 따라, 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서를 결정하는 단계
    를 포함하는, 인코딩 방법.
  6. 제4항에 있어서,
    상기 코드 블록의 복수의 후보 처리 순서를 결정하는 단계는,
    상기 코드 블록의 사전 설정된 복수의 후보 처리 순서를 이용하는 단계를 포함하는, 인코딩 방법.
  7. 제6항에 있어서,
    상기 제1 처리 순서에 따라, 상기 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계는,
    상기 제1 처리 순서에 따라, 상기 코드 블록 그룹과 상기 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하는 단계; 및
    상기 상대적인 위치 관계, 및 상기 사전 설정된 복수의 후보 처리 순서와 상기 복수의 위치 관계 간의 대응 관계에 따라, 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서를 결정하는 단계
    를 포함하고,
    상기 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 상기 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계인, 인코딩 방법.
  8. 제1항에 있어서,
    상기 제1 처리 순서를 상기 비트스트림에 기입하는 단계는,
    상기 제1 처리 순서에 따라 상기 코드 블록 그룹의 인덱스를 배열하고,
    상기 코드 블록 그룹의 배열된 인덱스를 인코딩하고 상기 배열된 인덱스를 상기 비트스트림에 기입하는 단계; 또는
    상기 제1 처리 순서에 따라 상기 코드 블록 그룹의 좌표를 배열하고,
    상기 코드 블록 그룹의 배열된 좌표를 인코딩하고 상기 배열된 좌표를 상기 비트스트림에 기입하는 단계
    를 포함하는, 인코딩 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 코드 블록 그룹의 코딩 비용은,
    상기 코드 블록 그룹을 인코딩하기 위해 소요되는 비트의 수, 또는
    상기 코드 블록 그룹의 왜곡(distortion)
    중 적어도 하나를 포함하는, 인코딩 방법.
  10. 디코딩 방법으로서,
    비트스트림으로부터 타깃 이미지의 복수의 코드 블록 그룹의 제1 처리 순서를 획득하는 단계;
    상기 제1 처리 순서에 따라, 상기 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계; 및
    상기 제1 처리 순서 및 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서에 따라 상기 비트스트림을 디코딩하는 단계
    를 포함하는 디코딩 방법.
  11. 제10항에 있어서,
    상기 제1 처리 순서에 따라, 상기 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계 이전에, 상기 디코딩 방법은,
    상기 코드 블록의 복수의 후보 처리 순서를 결정하는 단계; 및
    상기 복수의 후보 처리 순서 간의 대응 관계 및 복수의 위치 관계를 결정하는 단계
    를 더 포함하고,
    상기 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 상기 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계인, 디코딩 방법.
  12. 제11항에 있어서,
    상기 제1 처리 순서에 따라, 상기 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계는,
    상기 제1 처리 순서에 따라, 상기 코드 블록 그룹과 상기 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하는 단계; 및
    상기 대응 관계 및 상기 상대적인 위치 관계에 따라, 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서를 결정하는 단계
    를 포함하는, 디코딩 방법.
  13. 제11항에 있어서,
    상기 코드 블록의 복수의 후보 처리 순서를 결정하는 단계는,
    상기 코드 블록의 사전 설정된 복수의 후보 처리 순서를 이용하는 단계를 포함하는, 디코딩 방법.
  14. 제13항에 있어서,
    상기 제1 처리 순서에 따라, 상기 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하는 단계는,
    상기 제1 처리 순서에 따라, 상기 코드 블록 그룹과 상기 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하는 단계; 및
    상기 상대적인 위치 관계, 및 상기 사전 설정된 복수의 후보 처리 순서와 상기 복수의 위치 관계 간의 대응 관계에 따라, 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서를 결정하는 단계
    를 포함하고,
    상기 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 상기 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계인, 디코딩 방법.
  15. 제10항에 있어서,
    상기 비트스트림으로부터 타깃 이미지의 복수의 코드 블록 그룹의 제1 처리 순서를 획득하는 단계는,
    상기 복수의 코드 블록 그룹의 배열된 인덱스를 획득하기 위해 상기 비트스트림을 디코딩하고,
    상기 복수의 코드 블록 그룹의 인덱스의 배열 순서에 따라 상기 제1 처리 순서를 결정하는 단계; 또는
    상기 복수의 코드 블록 그룹의 배열된 좌표를 획득하기 위해 상기 비트스트림을 디코딩하고,
    상기 복수의 코드 블록 그룹의 좌표의 배열 순서에 따라 상기 제1 처리 순서를 결정하는 단계를 포함하는, 디코딩 방법.
  16. 인코더로서,
    타깃 이미지의 총 코딩 비용에 따라, 상기 타깃 이미지에 포함된 복수의 코드 블록 그룹의 제1 처리 순서를 결정하도록 구성되는 결정 유닛; 및
    상기 결정 유닛에 의해 결정된 상기 제1 처리 순서에 따라 상기 복수의 코드 블록 그룹 중 하나의 코드 블록을 인코딩하여 비트스트림을 생성하도록 구성되는 인코딩 유닛을 포함하고,
    상기 인코딩 유닛은 추가적으로, 상기 결정 유닛에 의해 결정된 상기 제1 처리 순서를 상기 비트스트림에 기입하도록 구성되는, 인코더.
  17. 제16항에 있어서,
    상기 결정 유닛은 구체적으로,
    상기 복수의 코드 블록 그룹의 모든 처리 순서의 각각의 처리 순서에 대응하는 총 코딩 비용을 결정하고,
    상기 모든 처리 순서에 대응하는 상기 총 코딩 비용의 최소 총 코딩 비용에 대응하는 처리 순서가 상기 제1 처리 순서라고 결정하도록 구성되고,
    각각의 처리 순서에 대응하는 상기 총 코딩 비용은 상기 복수의 코드 블록 그룹이 각각의 처리 순서에 따라 인코딩된 경우의 코딩 비용의 합인, 인코더.
  18. 제16항에 있어서,
    상기 인코딩 유닛은 구체적으로,
    상기 결정 유닛을 사용함으로써 상기 제1 처리 순서에 따라, 상기 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하고,
    상기 제1 처리 순서 및 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서에 따라 상기 코드 블록 그룹을 인코딩하도록 구성되는, 인코더.
  19. 제18항에 있어서,
    상기 결정 유닛은 추가적으로,
    상기 코드 블록의 복수의 후보 처리 순서를 결정하고,
    상기 복수의 후보 처리 순서 간의 대응 관계 및 복수의 위치 관계를 결정하도록 구성되고,
    상기 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 상기 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계인, 인코더.
  20. 제19항에 있어서,
    상기 결정 유닛은 구체적으로,
    상기 제1 처리 순서에 따라, 상기 코드 블록 그룹과 상기 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하고,
    상기 대응 관계 및 상기 상대적인 위치 관계에 따라, 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서를 결정하도록 구성되는, 인코더.
  21. 제19항에 있어서,
    상기 결정 유닛은 구체적으로,
    상기 코드 블록의 사전 설정된 복수의 후보 처리 순서를 이용하도록 구성되는, 인코더.
  22. 제21항에 있어서,
    상기 결정 유닛은 구체적으로,
    상기 제1 처리 순서에 따라, 상기 코드 블록 그룹과 상기 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하고,
    상기 상대적인 위치 관계, 및 상기 사전 설정된 복수의 후보 처리 순서와 상기 복수의 위치 관계 간의 대응 관계에 따라, 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서를 결정하도록 구성되고,
    상기 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 상기 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계인, 인코더.
  23. 제16항에 있어서,
    상기 인코딩 유닛은 구체적으로,
    상기 제1 처리 순서에 따라 상기 코드 블록 그룹의 인덱스를 배열하고,
    상기 코드 블록 그룹의 배열된 인덱스를 인코딩하고 상기 배열된 인덱스를 상기 비트스트림에 기입하거나; 또는
    상기 제1 처리 순서에 따라 상기 코드 블록 그룹의 좌표를 배열하고,
    상기 코드 블록 그룹의 배열된 좌표를 인코딩하고 상기 배열된 좌표를 상기 비트스트림에 기입하도록 구성되는, 인코더.
  24. 제16항 내지 제23항 중 어느 한 항에 있어서,
    상기 코드 블록 그룹의 코딩 비용은,
    상기 코드 블록 그룹을 인코딩하기 위해 상기 인코딩 유닛에 의해 소요되는 비트의 수, 또는
    상기 코드 블록 그룹의 왜곡
    중 적어도 하나를 포함하는, 인코더.
  25. 디코더로서,
    비트스트림으로부터 타깃 이미지의 복수의 코드 블록 그룹의 제1 처리 순서를 획득하도록 구성된 획득 유닛;
    상기 제1 처리 순서에 따라, 상기 복수의 코드 블록 그룹 중 하나의 코드 블록 그룹에 포함된 복수의 코드 블록의 처리 순서를 결정하도록 구성되는 결정 유닛; 및
    상기 제1 처리 순서 및 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서에 따라 상기 비트스트림을 디코딩하도록 구성된 디코딩 유닛
    을 포함하는 디코더.
  26. 제25항에 있어서,
    상기 결정 유닛은 추가적으로,
    상기 코드 블록의 복수의 후보 처리 순서를 결정하고,
    상기 복수의 후보 처리 순서 간의 대응 관계 및 복수의 위치 관계를 결정하도록 구성되고,
    상기 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 상기 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계인, 디코더.
  27. 제26항에 있어서,
    상기 결정 유닛은 구체적으로,
    상기 제1 처리 순서에 따라, 상기 코드 블록 그룹과 상기 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하고,
    상기 대응 관계 및 상기 상대적인 위치 관계에 따라, 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서를 결정하도록 구성되는, 디코더.
  28. 제26항에 있어서,
    상기 결정 유닛은 구체적으로,
    상기 코드 블록의 사전 설정된 복수의 후보 처리 순서를 이용하도록 구성되는, 디코더.
  29. 제28항에 있어서,
    상기 결정 유닛은 구체적으로,
    상기 제1 처리 순서에 따라, 상기 코드 블록 그룹과 상기 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 상대적인 위치 관계를 결정하고,
    상기 상대적인 위치 관계, 및 상기 사전 설정된 복수의 후보 처리 순서와 상기 복수의 위치 관계 간의 대응 관계에 따라, 상기 코드 블록 그룹에 포함된 상기 복수의 코드 블록의 처리 순서를 결정하도록 구성되고,
    상기 복수의 위치 관계는 현재 처리되는 코드 블록 그룹과 상기 현재 처리되는 코드 블록 그룹에 인접하면서 이미 처리된 코드 블록 그룹 간의 복수의 상대적인 위치 관계인, 디코더.
  30. 제25항에 있어서,
    상기 획득 유닛은 구체적으로,
    상기 비트스트림을 디코딩하기 위해 상기 디코딩 유닛을 사용함으로써 상기 복수의 코드 블록 그룹의 배열된 인덱스를 획득하고,
    상기 결정 유닛을 사용함으로써 상기 복수의 코드 블록 그룹의 인덱스의 배열 순서에 따라 상기 제1 처리 순서를 결정하거나; 또는
    상기 비트스트림을 디코딩하기 위해 상기 디코딩 유닛을 사용하여 상기 복수의 코드 블록 그룹의 배열된 좌표를 획득하고,
    상기 결정 유닛을 사용함으로써 상기 복수의 코드 블록 그룹의 좌표의 배열 순서에 따라 상기 제1 처리 순서를 결정하도록 구성되는, 디코더.
KR1020167023765A 2014-02-18 2015-02-02 인코딩 및 디코딩 방법과 장치 KR101960825B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410054130.3 2014-02-18
CN201410054130.3A CN104853196B (zh) 2014-02-18 2014-02-18 编解码方法和装置
PCT/CN2015/072089 WO2015124058A1 (zh) 2014-02-18 2015-02-02 编解码方法和装置

Publications (2)

Publication Number Publication Date
KR20160114166A true KR20160114166A (ko) 2016-10-04
KR101960825B1 KR101960825B1 (ko) 2019-03-21

Family

ID=53852510

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167023765A KR101960825B1 (ko) 2014-02-18 2015-02-02 인코딩 및 디코딩 방법과 장치

Country Status (6)

Country Link
US (1) US20160373767A1 (ko)
EP (1) EP3094091A4 (ko)
JP (1) JP6389264B2 (ko)
KR (1) KR101960825B1 (ko)
CN (1) CN104853196B (ko)
WO (1) WO2015124058A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113810688B (zh) 2015-05-12 2023-07-18 三星电子株式会社 视频编码方法、视频解码方法以及计算机可读介质
EP3349458A4 (en) 2015-11-24 2018-10-24 Samsung Electronics Co., Ltd. Encoding sequence encoding method and device thereof, and decoding method and device thereof
CN107888330B (zh) * 2016-09-30 2022-04-05 华为技术有限公司 一种数据传输的方法和装置
US10771196B2 (en) * 2017-03-20 2020-09-08 Qualcomm Incorporated Techniques for signaling compressed HARQ or retransmission information between a base station and a user equipment
CN108881909A (zh) * 2017-05-09 2018-11-23 富士通株式会社 扫描顺序生成方法和扫描顺序生成设备
EP3484148A1 (en) 2017-11-09 2019-05-15 Thomson Licensing Automated scanning order for sub-divided blocks
US11343020B2 (en) 2017-11-10 2022-05-24 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Data compression method and device
CN110832856A (zh) 2017-11-30 2020-02-21 深圳市大疆创新科技有限公司 用于减小视频编码波动的系统及方法
CN111164980A (zh) * 2017-11-30 2020-05-15 深圳市大疆创新科技有限公司 用于控制图像帧内的视频编码的系统和方法
CN111164972A (zh) 2017-11-30 2020-05-15 深圳市大疆创新科技有限公司 用于在帧级别控制视频编码的系统和方法
US10530387B1 (en) * 2018-10-22 2020-01-07 Uber Technologies, Inc. Estimating an optimal ordering for data compression
EP3939278A4 (en) * 2019-03-11 2023-03-22 Tencent America LLC TILE AND SUB-DIVISION
CN113079375B (zh) * 2021-06-03 2022-03-08 浙江智慧视频安防创新中心有限公司 基于相关度比较确定视频编解码优先顺序的方法及装置
CN113660498B (zh) * 2021-10-20 2022-02-11 康达洲际医疗器械有限公司 一种基于显著性检测的帧间图像通用编码方法与系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2211552A1 (en) * 2009-01-22 2010-07-28 Thomson Licensing Method and device for video coding using macroblock groups
US20120082392A1 (en) * 2006-09-30 2012-04-05 Texas Instruments Incorporated Method and apparatus for frame coding in vertical raster scan order for hevc
US20130064294A1 (en) * 2011-07-01 2013-03-14 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008084817A1 (ja) * 2007-01-09 2008-07-17 Kabushiki Kaisha Toshiba 画像符号化と復号化の方法及び装置
JP5082548B2 (ja) * 2007-03-30 2012-11-28 富士通株式会社 画像処理方法、符号化器および復号化器
KR20090095316A (ko) * 2008-03-05 2009-09-09 삼성전자주식회사 영상 인트라 예측 방법 및 장치
CN101350927B (zh) * 2008-07-29 2011-07-13 北京中星微电子有限公司 帧内预测选择最优预测模式的方法及装置
CN102045560B (zh) * 2009-10-23 2013-08-07 华为技术有限公司 一种视频编解码方法及设备
US9042440B2 (en) * 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
CN102651816B (zh) * 2011-02-23 2014-09-17 华为技术有限公司 一种变换系数块的扫描方法和装置
JP2013150124A (ja) * 2012-01-18 2013-08-01 Sony Corp 画像処理装置および方法
CN103428487B (zh) * 2012-07-16 2017-06-09 上海数字电视国家工程研究中心有限公司 用于高清视频序列帧率提升的块处理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120082392A1 (en) * 2006-09-30 2012-04-05 Texas Instruments Incorporated Method and apparatus for frame coding in vertical raster scan order for hevc
EP2211552A1 (en) * 2009-01-22 2010-07-28 Thomson Licensing Method and device for video coding using macroblock groups
US20130064294A1 (en) * 2011-07-01 2013-03-14 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding

Also Published As

Publication number Publication date
CN104853196A (zh) 2015-08-19
JP2017506463A (ja) 2017-03-02
CN104853196B (zh) 2018-10-19
EP3094091A1 (en) 2016-11-16
JP6389264B2 (ja) 2018-09-12
US20160373767A1 (en) 2016-12-22
EP3094091A4 (en) 2016-11-16
WO2015124058A1 (zh) 2015-08-27
KR101960825B1 (ko) 2019-03-21

Similar Documents

Publication Publication Date Title
KR101960825B1 (ko) 인코딩 및 디코딩 방법과 장치
CN113812162B (zh) 视频中的简化二次变换的上下文建模
CN108028919B (zh) 一种视频或者图像编解码的方法及装置
CN108028931B (zh) 用于视频编解码的自适应帧间预测的方法及装置
KR100667808B1 (ko) 영상의 인트라 예측 부호화, 복호화 방법 및 장치
US9137545B2 (en) Image encoding and decoding apparatus and method
CN104380734B (zh) 编码以及解码视频数据的方法和装置
KR20130109963A (ko) 신규한 인트라 예측 모드
JP2014509119A (ja) 幾何学ベースのイントラ予測の方法および装置
KR20110114524A (ko) 화상 예측 부호화 장치, 방법 및 프로그램, 화상 예측 복호 장치, 방법 및 프로그램, 및 부호화·복호 시스템 및 방법
KR20150034696A (ko) 현재 블록의 분할을 예측하여 비디오를 코딩하는 방법, 디코딩 방법 및 이에 상응하는 코딩 및 디코딩 장치 및 컴퓨터 프로그램
CN111684810A (zh) 数据编码和解码
MX2012013263A (es) Metodos y aparatos para intracodificar un bloque que tiene pixeles asignados a grupos.
KR20100046202A (ko) 이미지들을 처리하기 위한 방법 및 그 대응하는 전자 장치
JP7047777B2 (ja) 画像データ符号化及び復号化
WO2021139572A1 (zh) 编码方法、解码方法、编码器、解码器以及存储介质
TW202044836A (zh) 用於視訊寫碼中的調色板語法的分組寫碼
KR20130027975A (ko) 인트라 예측 모드 부호화/복호화 방법 및 장치
CN110832854B (zh) 利用插值进行帧内预测的方法和装置
CN111886869A (zh) 图像解码方法/设备、图像编码方法/设备以及存储比特流的记录介质
CN111448798A (zh) 基于块形状的视频编码和解码的方法和装置
CN114222137A (zh) 构成预测运动矢量列表的方法
JP2022524916A (ja) 適応的な数の領域を伴う幾何学的分割のための形状適応離散コサイン変換
CN114747216A (zh) 多重转换选择的发信技术
KR20160091392A (ko) 이미지를 인코딩하고 디코딩하기 위한 방법, 이미지를 인코딩하고 디코딩하기 위한 디바이스 및 상응하는 컴퓨터 프로그램

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right