KR20240033618A - Video decoding device, operation method thereof, display device, and video system - Google Patents
Video decoding device, operation method thereof, display device, and video system Download PDFInfo
- Publication number
- KR20240033618A KR20240033618A KR1020220151989A KR20220151989A KR20240033618A KR 20240033618 A KR20240033618 A KR 20240033618A KR 1020220151989 A KR1020220151989 A KR 1020220151989A KR 20220151989 A KR20220151989 A KR 20220151989A KR 20240033618 A KR20240033618 A KR 20240033618A
- Authority
- KR
- South Korea
- Prior art keywords
- pipeline
- unit
- block
- memory
- unit data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000015654 memory Effects 0.000 claims abstract description 243
- 239000000872 buffer Substances 0.000 claims description 36
- 239000013598 vector Substances 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 28
- 230000009466 transformation Effects 0.000 claims description 7
- 235000019161 pantothenic acid Nutrition 0.000 description 33
- 238000010586 diagram Methods 0.000 description 32
- GHOKWGTUZJEAQD-ZETCQYMHSA-N (D)-(+)-Pantothenic acid Chemical compound OCC(C)(C)[C@@H](O)C(=O)NCCC(O)=O GHOKWGTUZJEAQD-ZETCQYMHSA-N 0.000 description 25
- 238000013139 quantization Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/439—Methods 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 cascaded computational arrangements for performing a single operation, e.g. filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/423—Methods 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 characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
Abstract
비디오 디코딩 장치, 그의 동작 방법, 디스플레이 장치, 및 비디오 시스템이 개시된다. 본 개시의 기술적 사상에 따른 비디오 디코딩 장치는, 비트스트림을 파이프라인 단위로 디코딩 처리하는 복수의 하드웨어 블록들, 및 복수의 하드웨어 블록들 사이에 위치하고 복수의 하드웨어 블록들 각각에 의해 파이프라인 단위로 처리된 유닛 데이터를 파이프라인 스테이지마다 저장하는 복수의 파이프라인 메모리들을 포함하는 디코더, 및 디코더에 의해 디코딩된 영상 데이터를 저장하는 메모리를 포함한다.A video decoding device, a method of operating the same, a display device, and a video system are disclosed. A video decoding device according to the technical idea of the present disclosure includes a plurality of hardware blocks that decode and process a bitstream in a pipeline unit, and are located between the plurality of hardware blocks and process the bitstream in a pipeline unit by each of the plurality of hardware blocks. It includes a decoder including a plurality of pipeline memories that store unit data for each pipeline stage, and a memory that stores image data decoded by the decoder.
Description
본 개시의 기술적 사상은 전자 장치에 관한 것이며, 보다 구체적으로는, 본 개시는 파이프라인 단위로 디코딩 동작을 수행하기 위한 비디오 디코딩 장치, 그의 동작 방법, 디스플레이 장치, 및 비디오 시스템에 관한 것이다.The technical idea of the present disclosure relates to an electronic device, and more specifically, the present disclosure relates to a video decoding device for performing a decoding operation on a pipeline basis, an operating method thereof, a display device, and a video system.
영상이나 음향이 디지털 데이터로 전환될 경우, 전환되는 디지털 데이터의 양은 상당히 크다. 압축되지 않은 디지털 데이터는 저장 공간을 많이 차지한다. 그래서, 디지털 데이터의 양을 압축하고 압축된 디지털 데이터를 비압축(decompression)하는 기술이 필요하게 되었다.When video or sound is converted to digital data, the amount of digital data converted is quite large. Uncompressed digital data takes up a lot of storage space. Therefore, a technology for compressing the amount of digital data and decompressing the compressed digital data has become necessary.
최근 새로운 비디오 압축 표준(Standard), 예를 들면, VVC(Versatile Video Coding)에 의하면, 블록의 처리 단위가 더 다양해졌고, 움직임 추정 및 보상 방법이 종래의 기술에 비해 훨씬 복잡해짐으로써 움직임 보상 시 요구되는 메모리 액세스량이 종래에 비해 훨씬 증가되었다. 따라서, 비디오 디코더에서 효율적인 메모리 액세스 방법이 요구된다.Recently, according to new video compression standards (VVC (Versatile Video Coding)), for example, VVC (Versatile Video Coding), the processing units of blocks have become more diverse, and motion estimation and compensation methods have become much more complex than conventional technologies, so the requirements for motion compensation are increased. The amount of memory access has increased significantly compared to before. Therefore, an efficient memory access method is required in a video decoder.
본 개시의 기술적 사상은, 비교적 적은 파이프라인 메모리를 이용하여 디코딩 동작을 수행하는 비디오 디코딩 장치, 그의 동작 방법, 디스플레이 장치, 및 비디오 시스템을 제공한다.The technical idea of the present disclosure provides a video decoding device that performs a decoding operation using a relatively small pipeline memory, a method of operating the same, a display device, and a video system.
본 개시의 기술적 사상에 따른 비디오 디코딩 장치는, 비트스트림을 파이프라인(pipeline) 단위로 디코딩 처리하는 복수의 하드웨어 블록들, 및 복수의 하드웨어 블록들 사이에 위치하고 복수의 하드웨어 블록들 각각에 의해 파이프라인 단위로 처리된 유닛 데이터를 파이프라인 스테이지마다 저장하는 복수의 파이프라인 메모리들을 포함하는 디코더; 및 디코더에 의해 디코딩된 영상 데이터를 저장하는 메모리를 포함한다. 유닛 데이터는, 코딩 트리 유닛(CTU: Coding Tree Unit, 이하 "CTU")에 포함된 복수의 단위 픽셀 그룹들 중 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 코딩 유닛(CU: Coding Unit, 이하 "CU")의 크기를 나타내는 현재 CU 사이즈 정보, 단위 픽셀 그룹들 각각이 속한 현재의 CU의 다음(next) CU의 위치를 나타내는 다음 CU 위치 정보, 및 단위 픽셀 그룹의 스캔 타입을 나타내는 스캔 타입 정보를 포함한다.A video decoding device according to the technical idea of the present disclosure includes a plurality of hardware blocks that decode a bitstream in a pipeline unit, and are located between the plurality of hardware blocks and operate the pipeline by each of the plurality of hardware blocks. A decoder including a plurality of pipeline memories that store processed unit data for each pipeline stage; and a memory that stores image data decoded by the decoder. The unit data includes the current coding unit (CU: Current CU size information indicating the size of the coding unit (hereinafter “CU”), next CU position information indicating the position of the next CU of the current CU to which each of the unit pixel groups belongs, and scan type of the unit pixel group. Contains the scan type information indicated.
또한, 본 개시의 기술적 사상에 따른 비디오 디코딩 장치의 동작 방법은, 제1 파이프라인 스테이지에서, 제1 하드웨어 블록이, 제1 파이프라인 스테이지에서 비트스트림이 파이프라인 단위로 분할된 제1 유닛 데이터를 처리하여, 제1 유닛 데이터를 제1 파이프라인 메모리에 저장하는 단계; 제1 파이프라인 스테이지 다음의 제2 파이프라인 스테이지에서, 제1 하드웨어 블록이, 제2 파이프라인 스테이지에서 파이프라인 단위로 분할된 제2 유닛 데이터를 처리하여, 제2 유닛 데이터를 제1 파이프라인 메모리에 저장하는 단계; 및 동시에, 제2 하드웨어 블록이, 제1 파이프라인 메모리에 저장된 제1 유닛 데이터를 읽어, 제1 유닛 데이터를 처리하는 단계를 포함한다.In addition, a method of operating a video decoding device according to the technical idea of the present disclosure includes, in a first pipeline stage, a first hardware block, and first unit data in which a bitstream is divided into pipeline units in the first pipeline stage. Processing and storing first unit data in a first pipeline memory; In the second pipeline stage following the first pipeline stage, the first hardware block processes the second unit data divided into pipeline units in the second pipeline stage, and stores the second unit data in the first pipeline memory. Save to; And at the same time, the second hardware block reads the first unit data stored in the first pipeline memory and processes the first unit data.
또한, 본 개시의 기술적 사상에 따른 비디오 시스템은, 파이프라인 영역 유닛에 관한 파이프라인 영역 유닛 정보를 포함하는 비트스트림을 제공하는 비디오 인코딩 장치; 및 비트스트림을 파이프라인 단위로 디코딩하고, 디코딩된 영상 데이터를 출력하는 비디오 디코딩 장치를 포함한다. 비디오 디코딩 장치는, 파이프라인 단위로 분할된 유닛 데이터를 처리하는 복수의 하드웨어 블록들; 및 유닛 데이터를 저장하기 위해 파이프라인 영역 유닛 정보에 대응되는 메모리 크기를 갖는 복수의 파이프라인 메모리들을 포함한다.In addition, a video system according to the technical idea of the present disclosure includes a video encoding device that provides a bitstream including pipeline area unit information regarding the pipeline area unit; and a video decoding device that decodes the bitstream in pipeline units and outputs decoded video data. A video decoding device includes a plurality of hardware blocks that process unit data divided in pipeline units; and a plurality of pipeline memories having a memory size corresponding to pipeline area unit information to store unit data.
또한, 본 개시의 기술적 사상에 따른 디스플레이 장치는, 비트스트림을 파이프라인(pipeline) 단위로 디코딩 처리하는 복수의 하드웨어 블록들, 및 복수의 하드웨어 블록들 사이에 위치하고 복수의 하드웨어 블록들 각각으로부터 제공되는 파이프라인 영역 유닛에 대응되는 유닛 데이터를 파이프라인 스테이지마다 저장하는 복수의 파이프라인 메모리들을 포함하는 디코더; 디코더에 의해 디코딩된 영상 데이터를 저장하는 메모리; 및 디코딩된 영상 데이터에 따른 영상을 표시하는 디스플레이 모듈을 포함한다.In addition, a display device according to the technical idea of the present disclosure includes a plurality of hardware blocks that decode a bitstream in a pipeline unit, and a plurality of hardware blocks located between the plurality of hardware blocks and provided from each of the plurality of hardware blocks. A decoder including a plurality of pipeline memories that store unit data corresponding to a pipeline area unit for each pipeline stage; a memory that stores image data decoded by a decoder; and a display module that displays an image according to the decoded image data.
본 개시의 기술적 사상에 의하면, 비디오 압축 방식이나, 트리 분할 모드와 무관하게 상대적으로 적은 파이프라인 단위로 디코딩 동작을 수행함으로써, 파이프라인 메모리의 크기, 저장 용량을 감소시키는 효과가 있다.According to the technical idea of the present disclosure, by performing a decoding operation in relatively small pipeline units regardless of the video compression method or tree splitting mode, there is an effect of reducing the size and storage capacity of the pipeline memory.
본 개시의 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.The effects that can be obtained from the embodiments of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned can be explained to those skilled in the art from the following description. Can be clearly derived and understood. That is, unintended effects resulting from implementing the embodiments of the present disclosure may also be derived by a person skilled in the art from the embodiments of the present disclosure.
도 1은 본 개시의 예시적인 실시예들에 따른 비디오 시스템의 블록도이다.
도 2는 본 개시의 예시적인 실시예들에 따른 디코더의 블록도이다.
도 3a 내지 도 3c는 본 개시의 예시적인 실시예들에 따른 파이프라인 메모리를 설명하기 위한 도면이다.
도 4는 본 개시의 예시적인 실시예들에 따른 비디오 디코딩 장치의 블록도이다.
도 5는 본 개시의 예시적인 실시예들에 따른 파이프라인 단위의 디코딩 처리 동작을 설명하기 위한 도면이다.
도 6은 본 개시의 예시적인 실시예들에 따른 코딩 트리 유닛과 코딩 유닛을 설명하기 위한 도면이다.
도 7a 내지 도 7e는 본 개시의 예시적인 실시예들에 따른 트리 분할 모드를 설명하기 위한 도면이다.
도 8a 내지 도 8e는 도 7a 내지 도 7e에 도시된 트리 분할 모드에서 파이프라인 영역 유닛을 설명하기 위한 도면이다.
도 9는 본 개시의 예시적인 실시예들에 따라 VVC(Versatile Video Coding) 코덱(Codec)에서 코딩 유닛과 파이프라인 영역 유닛을 설명하기 위한 도면이다.
도 10a 내지 도 10d는 본 개시의 예시적인 실시예들에 따른 파이프라인 단위로 유닛 데이터를 처리하는 동작을 설명하기 위한 도면이다.
도 11은 본 개시의 예시적인 실시예들에 따른 비트스트림의 구조를 설명하기 위한 도면이다.
도 12는 본 개시의 예시적인 실시예들에 따른 파이프라인 영역 유닛 개수 정보를 설명하기 위한 도면이다.
도 13은 본 개시의 예시적인 실시예들에 따른 파이프라인 영역 유닛 모드 정보를 설명하기 위한 도면이다.
도 14는 본 개시의 예시적인 실시예들에 따른 비디오 디코딩 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 15는 본 개시의 예시적인 실시예들에 따른 파이프라인 단위로 유닛 데이터를 처리하는 방법을 설명하기 위한 흐름도이다.
도 16은 본 개시의 예시적인 실시예들에 따른 디스플레이 장치의 블록도이다.1 is a block diagram of a video system according to example embodiments of the present disclosure.
2 is a block diagram of a decoder according to example embodiments of the present disclosure.
3A to 3C are diagrams for explaining a pipeline memory according to example embodiments of the present disclosure.
Figure 4 is a block diagram of a video decoding device according to example embodiments of the present disclosure.
FIG. 5 is a diagram for explaining a decoding processing operation on a pipeline basis according to example embodiments of the present disclosure.
FIG. 6 is a diagram for explaining a coding tree unit and a coding unit according to example embodiments of the present disclosure.
7A to 7E are diagrams for explaining a tree splitting mode according to exemplary embodiments of the present disclosure.
FIGS. 8A to 8E are diagrams for explaining a pipeline area unit in the tree split mode shown in FIGS. 7A to 7E.
FIG. 9 is a diagram illustrating a coding unit and a pipeline area unit in a Versatile Video Coding (VVC) Codec according to example embodiments of the present disclosure.
10A to 10D are diagrams for explaining an operation of processing unit data on a pipeline basis according to example embodiments of the present disclosure.
FIG. 11 is a diagram for explaining the structure of a bitstream according to example embodiments of the present disclosure.
FIG. 12 is a diagram for explaining pipeline area unit number information according to example embodiments of the present disclosure.
FIG. 13 is a diagram for explaining pipeline area unit mode information according to example embodiments of the present disclosure.
FIG. 14 is a flowchart illustrating a method of operating a video decoding device according to example embodiments of the present disclosure.
FIG. 15 is a flowchart illustrating a method of processing unit data on a pipeline basis according to example embodiments of the present disclosure.
Figure 16 is a block diagram of a display device according to example embodiments of the present disclosure.
이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다.Hereinafter, embodiments of the present disclosure will be described in detail with reference to the attached drawings.
도 1은 본 개시의 예시적인 실시예들에 따른 비디오 시스템의 블록도이다.1 is a block diagram of a video system according to example embodiments of the present disclosure.
도 1을 참조하면, 비디오 시스템(10)은 비디오 인코딩 장치(100) 및 비디오 디코딩 장치(200)를 포함할 수 있다.Referring to FIG. 1, the
비디오 인코딩 장치(100)는 비디오 데이터를 인코딩하여, 인코딩된 비트스트림(BS)을 전송할 수 있다. 여기서, 인코딩은 압축(compression) 및 트랜스코딩(transcoding)을 포함할 수 있다. 비디오 인코딩 장치(100)는 촬영 가능한 카메라 등을 구비하는 컴퓨터, 휴대폰, 안경, 시계 등의 전자 장치들로 구현될 수 있다. 이 경우, 비디오 인코딩 장치(100)는 촬영에 의해 생성된 비디오 데이터를 인코딩할 수 있다. 또는, 비디오 인코딩 장치(100)는 서버나 다른 전자 장치로부터 비디오 데이터를 수신하고, 수신된 비디오 데이터를 인코딩할 수도 있다. 비디오 데이터에 의해 표현되는 비디오는 이미지(image), 영상(picture) 등으로 치징될 수 있다. The
비디오 인코딩 장치(100)는 비디오 데이터를 부호화(encode)할 수 있다. 비디오 인코딩 장치(100)는 비디오 데이터의 용량을 줄이기 위해 비디오 데이터를 압축할 수 있다. 비디오 인코딩 장치(100)는 변환된 비디오 데이터를 양자화할 수 있다. 비디오 인코딩 장치(100)는 양자화된 비디오 데이터를 이용하여 비트스트림(BS)을 생성할 수 있다. 비디오 인코딩 장치(100)는 비트스트림(BS)를 유선 통신 또는 무선 통신을 통해 비디오 디코딩 장치(200)에 전송할 수 있다.The
일부 실시예들에서, 비트스트림(BS)은 파이프라인 영역 유닛에 관한 파이프라인 영역 유닛 정보를 포함할 수 있다. 비트스트림(BS)에 대한 실시예는 도 11을 참조하여 후술된다.In some embodiments, the bitstream (BS) may include pipeline area unit information regarding the pipeline area unit. An embodiment of the bitstream (BS) will be described later with reference to FIG. 11.
비디오 디코딩 장치(200)는 부호화된 비트스트림(BS)을 디코딩하여 사용자에게 영상을 제공할 수 있다. 비디오 디코딩 장치(200)는 비트스트림(BS)을 디코딩하여 비디오 데이터를 복원할 수 있다. 비디오 디코딩 장치(200)는 디코딩된 영상 데이터(DPD)를 출력할 수 있다. 디코딩된 영상 데이터(DPD)는 영상을 표시(display)할 수 있는 장치(예를 들면, 디스플레이 장치)에 제공될 수 있다.The
비디오 디코딩 장치(200)는 디코더(210) 및 메모리(220)를 포함할 수 있다.The
디코더(210)는 비트스트림(BS)을 압축 해제(decompression)하여 비디오 데이터를 복원할 수 있다. 디코더(210)는 수신된 비트스트림(BS)을 이용하여 변환 계수들을 추출하고, 추출된 변환 계수들에 대한 역변환 및 양자화 과정 등을 통하여 비디오 데이터를 복원할 수 있다. 변환 계수들은 비트스트림(BS)에 포함된 계수들을 2차원 형태로 변환한 것일 수 있다.The
일부 실시예들에서, 디코더(210)는 비트스트림(BS)을 파이프라인 단위로 디코딩하고, 디코딩된 영상 데이터(DPD)를 출력할 수 있다. 여기서, 파이프라인 단위로 디코딩 처리되는 데이터는, 유닛 데이터로 지칭될 수 있다. 본 개시의 유닛 데이터는, 파이프라인 영역 유닛에 대응될 수 있다. 파이프라인 영역 유닛은 미리 설정된 크기의 파이프라인 단위에 대응되는 또는 미리 설정된 개수의 단위 픽셀 그룹들을 포함하는 영역일 수 있다. 이러한 파이프라인 영역 유닛은 하나의 CTU 내에서 하나 이상 포함될 수 있다. 파이프라인 영역 유닛에 대한 설명은 도 8a 내지 도 8e를 참조하여 후술된다.In some embodiments, the
디코더(210)는 하나 이상의 프로세서에 의해 구현될 수 있다. 또한, 디코더(210)는 프로세서에 내장된 일종의 프로그램일 수 있다.
메모리(220)는 디코딩된 영상 데이터(DPD)를 저장할 수 있다. 메모리(220)는 디코더(210)가 모션(motion)을 보상하는데 이용되는 참조 영상 데이터를 저장할 수 있다. 메모리(220)는 디코더(210)에서 이용되는 기준 픽셀 값을 나타내는 데이터를 저장할 수 있다. The
메모리(220)는 비디오 디코딩 장치(200)의 다양한 기능을 지원하는 데이터와 프로그램을 저장할 수 있고, 입/출력되는 데이터들을 저장할 있고, 비디오 디코딩 장치(200)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 비디오 디코딩 장치(200)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다.The
메모리(220)는 플래시 메모리 타입(flash memory type), 램(random access memory: RAM), SRAM(static random access memory), PROM(programmable read-only memory), 및 자기 메모리 중 적어도 하나의 타입의 저장 매체를 포함할 수 있다.The
도 2는 본 개시의 예시적인 실시예들에 따른 디코더의 블록도이다.2 is a block diagram of a decoder according to example embodiments of the present disclosure.
도 2를 참조하면, 디코더(210)는 복수의 하드웨어 블록들(211, 213, 215, 217) 및 복수의 파이프라인 메모리들(212, 214)를 포함할 수 있다.Referring to FIG. 2, the
복수의 하드웨어 블록들(211, 213, 215, 217)은 파이프라인 단위로 분할된 유닛 데이터를 디코딩 처리할 수 있다. 디코딩 처리는 각 하드웨어 블록의 고유한 기능에 따라 유닛 데이터를 처리하는 것일 수 있다. 복수의 하드웨어 블록들(211, 213, 215, 217)은 각 블록이 고유의 기능을 수행하는 하드웨어 구성(element)일 수 있다. 복수의 하드웨어 블록들(211, 213, 215, 217)의 개수는 n개일 수 있다. n은 2 이상의 정수일 수 있다. A plurality of hardware blocks 211, 213, 215, and 217 may decode unit data divided on a pipeline basis. Decoding processing may be processing unit data according to the unique function of each hardware block. The plurality of hardware blocks 211, 213, 215, and 217 may be hardware elements in which each block performs a unique function. The number of hardware blocks 211, 213, 215, and 217 may be n. n may be an integer of 2 or more.
복수의 하드웨어 블록들(211, 213, 215, 217) 각각은 처리된 유닛 데이터를 대응되는 파이프라인 메모리에 저장(또는 라이트(write))할 수 있다. 그리고, 복수의 하드웨어 블록들(211, 213, 215, 217) 각각은 대응되는 파이프라인 메모리에 저장된 유닛 데이터를 읽어(read), 읽힌 유닛 데이터를 디코딩 처리할 수 있다. 이를 위해, 복수의 하드웨어 블록들(211, 213, 215, 217) 각각은 고유의 기능을 수행하는 엔진 및 각 파이프라인 메모리를 접근할 수 있는 직접 메모리 접근(Direct Memory Access: DMA)를 포함할 수 있다.Each of the plurality of hardware blocks 211, 213, 215, and 217 may store (or write) processed unit data in the corresponding pipeline memory. In addition, each of the plurality of hardware blocks 211, 213, 215, and 217 may read unit data stored in the corresponding pipeline memory and decode the read unit data. To this end, each of the plurality of hardware blocks 211, 213, 215, and 217 may include an engine performing a unique function and direct memory access (DMA) to access each pipeline memory. there is.
복수의 파이프라인 메모리들(212, 214)은 복수의 하드웨어 블록들(211, 213, 215, 217)에 의해 처리된 유닛 데이터를 저장할 수 있다. 복수의 파이프라인 메모리들(212, 214)은 복수의 하드웨어 블록들(211, 213, 215, 217)에 의해 처리된 유닛 데이터를 출력할 수도 있다. 일부 실시예들에서, 특정 파이프라인 스테이지에서, 복수의 파이프라인 메모리들(212, 214)은 특정 유닛 데이터를 저장하면서, 동시에 이미 저장된 다른 유닛 데이터를 출력할 수도 있다. 파이프라인 스테이지는 디코더(210)가 파이프라인 단위로 디코딩 동작을 수행하는 동작 기간, 동작 페이즈(phase) 등을 의미할 수 있다.The plurality of
파이프라인 단위는, 각 파이프라인 메모리에서 입력되거나 출력되는 유닛 데이터의 단위일 수 있다. 파이프라인 단위는 VPDU(Virtual Pipeline Data Unit)으로 지칭될 수 있다.A pipeline unit may be a unit of unit data input or output from each pipeline memory. A pipeline unit may be referred to as a Virtual Pipeline Data Unit (VPDU).
복수의 파이프라인 메모리들(212, 214)은 m개일 수 있다. m은 n보다 작거나 같은 정수일 수 있다. 복수의 파이프라인 메모리들(212, 214)은 복수의 하드웨어 블록들(211, 213, 215, 217) 사이마다 위치(또는 배치)될 수 있다. 예를 들면, 제1 파이프라인 메모리(212)는 제1 하드웨어 블록(211) 및 제2 하드웨어 블록(213) 사이에 배치될 수 있다. 제2 파이프라인 메모리(214)는 제2 하드웨어 블록(213) 및 제3 하드웨어 블록(215) 사이에 배치될 수 있다. 제n-1 하드웨어 블록(미도시)과 제n 하드웨어 블록(217) 사이에도 파이프라인 메모리(미도시)가 배치될 수 있다. 이와 같이, 2개의 서로 다른 하드웨어 블록들 사이에 적어도 하나의 파이프라인 메모리가 배치될 수 있다.There may be m plurality of
일부 실시예들에서, 복수의 파이프라인 메모리들(212, 214)은 유닛 데이터를 저장하기 위해 비트스트림(BS)에 포함된 파이프라인 영역 유닛 정보에 대응되는 메모리 크기를 가질 수 있다. 예를 들면, 파이프라인 영역 유닛 정보가 하나의 코딩 트리 유닛(coding tree unit) 내에서 32*32 픽셀들(pixels)(또는 32*32 개의 픽셀들로 지칭됨)에 대응되는 파이프라인 영역 유닛의 사이즈를 포함하는 경우, 복수의 파이프라인 메모리들(212, 214) 각각은 32*32 픽셀들(pixels)에 대응되는 메모리 크기를 가질 수 있다. 하지만, 이에 한정되는 것은 아니다.In some embodiments, the plurality of
일부 실시예들에서, 복수의 파이프라인 메모리들(212, 214)은 복수의 하드웨어 블록들(211, 213, 215, 217) 각각에 의해 파이프라인 단위로 처리된 유닛 데이터를 파이프라인 스테이지마다 저장할 수 있다.In some embodiments, the plurality of
일부 실시예들에서, 복수의 파이프라인 메모리들(212, 214)은, 복수의 하드웨어 블록들(211, 213, 215, 217) 각각으로부터 제공되는 파이프라인 영역 유닛에 대응되는 유닛 데이터를 파이프라인 스테이지마다 저장할 수 있다.In some embodiments, the plurality of
복수의 파이프라인 메모리들(212, 214)은 램(random access memory: RAM), SRAM(static random access memory) 등의 휘발성 메모리로 구현될 수 있으나, 이에 한정되는 것은 아니다.The plurality of
전술한 바에 의하면, 비디오 압축 방식이나, 트리 분할 모드와 무관하게 상대적으로 적은 파이프라인 단위로 디코딩 동작을 수행함으로써, 파이프라인 메모리의 크기, 저장 용량을 감소시키는 효과가 있다.As described above, by performing a decoding operation in relatively small pipeline units regardless of the video compression method or tree splitting mode, there is an effect of reducing the size and storage capacity of the pipeline memory.
도 3a 내지 도 3c는 본 개시의 예시적인 실시예들에 따른 파이프라인 메모리를 설명하기 위한 도면이다. 구체적으로, 도 3a는 특정 파이프라인 스테이지에서 동작하는 파이프라인 메모리를 나타내는 도면이고, 도 3b는 특정 파이프라인 스테이지의 다음 파이프라인 스테이지에서 동작하는 파이프라인 메모리를 나타내는 도면이며, 도 3c는 도 3b의 파이프라인 스테이지의 다음 파이프라인 스테이지에서 동작하는 파이프라인 메모리를 나타내는 도면이다.3A to 3C are diagrams for explaining a pipeline memory according to example embodiments of the present disclosure. Specifically, FIG. 3A is a diagram showing a pipeline memory operating in a specific pipeline stage, FIG. 3B is a diagram showing a pipeline memory operating in the next pipeline stage of a specific pipeline stage, and FIG. 3C is a diagram showing a pipeline memory operating in a specific pipeline stage. This is a diagram showing the pipeline memory operating in the next pipeline stage of the pipeline stage.
도 3a를 참조하면, 파이프라인 메모리(300)는 서로 다른 하드웨어 블록들 사이에 위치할 수 있다. 도 2를 참조하여 예를 들면, 파이프라인 메모리(300)는 제1 하드웨어 블록(211)과 제2 하드웨어 블록(213) 사이에 배치되는 제1 파이프라인 메모리(212)일 수 있다. 하지만, 이에 한정되는 것은 아니다.Referring to FIG. 3A,
일부 실시예들에서, 파이프라인 메모리(300)는 제1 메모리(310), 및 제2 메모리(320)를 포함할 수 있다. 제1 메모리(310) 및 제2 메모리(320)는 유닛 데이터를 저장할 수 있다. 제1 메모리(310) 및 제2 메모리(320)는 저장된 유닛 데이터를 출력할 수 있다. In some embodiments,
일부 실시예들에서, 특정 파이프라인 스테이지에서, 파이프라인 메모리(300)의 전단에 배치되는 하드웨어 블록이 제1 유닛 데이터(UD 1)를 처리할 수 있다. 그리고, 파이프라인 메모리(300)는 파이프라인 메모리(300)의 전단에 배치되는 하드웨어 블록으로부터 제1 유닛 데이터(UD 1)를 제공받을 수 있다. 예를 들면, 파이프라인 메모리(300)가 제1 파이프라인 메모리(212)인 것으로 가정한다. 제1 파이프라인 스테이지에서, 파이프라인 메모리(300)는 제1 하드웨어 블록(211)에 의해 처리된 제1 유닛 데이터(UD 1)를 제공받을 수 있다. 제1 하드웨어 블록(211)은 제1 유닛 데이터(UD 1)를 제1 메모리(310)에 저장할 수 있다. 일 실시예에서, 제2 메모리(320)는 비어있을 수 있다. 제2 메모리(320)가 비어 있는 경우, 파이프라인 메모리(300)의 후단에 배치되는 하드웨어 블록(예를 들면, 제2 하드웨어 블록(213))은 대기할 수 있다. 하지만, 이에 한정되는 것은 아니고, 다른 실시예에서는, 이전 스테이지에서 파이프라인 메모리(300)의 전단에 배치되는 하드웨어 블록(예, 제1 하드웨어 블록(211))에 의해 처리되는 유닛 데이터가 제2 메모리(320)에 저장될 수도 있다.In some embodiments, in a specific pipeline stage, a hardware block disposed at the front of the
도 3b를 참조하면, 특정 파이프라인 스테이지의 다음 파이프라인 스테이지에서, 파이프라인 메모리(300)의 전단에 배치되는 하드웨어 블록이 제2 유닛 데이터(UD 2)를 처리할 수 있다. 파이프라인 메모리(300)는, 제2 유닛 데이터(UD 2)를 제공받을 수 있다. 예를 들면, 파이프라인 메모리(300)가 제1 파이프라인 메모리(212)인 것으로 가정한다. 제2 파이프라인 스테이지에서, 파이프라인 메모리(300)는 제1 하드웨어 블록(211)에 의해 처리된 제2 유닛 데이터(UD 2)를 제공받을 수 있다. 제1 하드웨어 블록(211)은 제2 유닛 데이터(UD 2)를 제2 메모리(320)에 저장할 수 있다. 한편, 파이프라인 메모리(300)의 후단에 배치되는 하드웨어 블록은 이전 파이프라인 스테이지에서 파이프라인 메모리(300)에 저장된 유닛 데이터를 읽을 수 있다. 예를 들면, 파이프라인 메모리(300)가 제1 파이프라인 메모리(212)인 것으로 가정한다. 제2 파이프라인 스테이지에서, 제2 하드웨어 블록(213)은 제1 메모리(310)에 저장된 제1 유닛 데이터(UD 1)를 읽고, 제1 유닛 데이터(UD 1)를 처리할 수 있다. 일 실시예에서, 제2 유닛 데이터(UD 2)가 제2 메모리(320)에 저장되는 동작과 제1 유닛 데이터(UD 1)가 제1 메모리(310)로부터 출력되는 동작은 동시에 실행될 수 있다. 구체적으로 예를 들면, 제1 하드웨어 블록(211)이 제2 유닛 데이터(UD 2)를 처리하여 제2 유닛 데이터(UD 2)를 제2 메모리(320)에 저장하고, 동시에, 제2 하드웨어 블록(213)이 제1 유닛 데이터(UD 1)를 동시에 처리할 수 있다. Referring to FIG. 3B, in the next pipeline stage of a specific pipeline stage, a hardware block placed at the front of the
도 3c를 참조하면, 도 3b의 파이프라인 스테이지의 다음 파이프라인 스테이지에서, 파이프라인 메모리(300)의 전단에 배치되는 하드웨어 블록이 제3 유닛 데이터(UD 3)를 처리할 수 있다. 파이프라인 메모리(300)는, 제3 유닛 데이터(UD 3)를 제공받을 수 있다. 예를 들면, 파이프라인 메모리(300)가 제1 파이프라인 메모리(212)인 것으로 가정한다. 제3 파이프라인 스테이지에서, 파이프라인 메모리(300)는 제1 하드웨어 블록(211)에 의해 처리된 제3 유닛 데이터(UD 3)를 제공받을 수 있다. 제1 하드웨어 블록(211)은 제3 유닛 데이터(UD 3)를 제1 메모리(310)에 저장할 수 있다. 이 경우, 도 3a의 파이프라인 스테이지에서 제1 메모리(310)에 저장되었던 제1 유닛 데이터(UD 1)는 삭제될 수 있다. 즉, 제3 유닛 데이터(UD 3)가 제1 메모리(310)에 덮어쓰기 될(overwritten) 수 있다. 한편, 파이프라인 메모리(300)의 후단에 배치되는 하드웨어 블록(예, 제2 하드웨어 블록(213))은 제2 메모리(320)에 저장된 제2 유닛 데이터(UD 2)를 읽고, 제2 유닛 데이터(UD 2)를 처리할 수 있다. 이때, 제3 유닛 데이터(UD 3)가 제1 메모리(310)에 저장되는 동작과 제1 유닛 데이터가(UD 2)가 제2 메모리(320)로부터 출력되는 동작은 동시에 실행될 수 있다.Referring to FIG. 3C, in a pipeline stage following the pipeline stage of FIG. 3B, a hardware block disposed at the front of the
도 3a 내지 도 3c에서 전술한 '제1', '제2', 및 '제3'은 구성 및 용어를 구분하기 위한 것으로, '제1', '제2', 및 '제3'에 의해 그 순서 등이 한정되는 것은 아니다.'First', 'Second', and 'Third' described above in FIGS. 3A to 3C are used to distinguish configurations and terms, and are referred to as 'First', 'Second', and 'Third'. The order, etc. is not limited.
도 4는 본 개시의 예시적인 실시예들에 따른 비디오 디코딩 장치의 블록도이다.Figure 4 is a block diagram of a video decoding device according to example embodiments of the present disclosure.
도 4를 참조하면, 비디오 디코딩 장치(400)는 도 1에 도시된 비디오 디코딩 장치(200)에 대응될 수 있다. 비디오 디코딩 장치(400)는 비트스트림 파싱 블록(411), IQT 블록(412), 모션 벡터 블록(413), 인트라 모드 블록(414), 모션 보상 블록(415), 인터 예측 블록(416), 인트라 예측 및 리콘 블록(417), 루프 필터 블록(418), 제1 내지 제9 파이프라인 메모리들(421~429), 및 메모리(430)를 포함할 수 있다.Referring to FIG. 4, the
비트스트림 파싱 블록(411), IQT 블록(412), 모션 벡터 블록(413), 인트라 모드 블록(414), 모션 보상 블록(415), 인터 예측 블록(416), 인트라 예측 및 리콘 블록(417), 및 루프 필터 블록(418)은 도 2를 참조하여 전술한 복수의 하드웨어 블록들(211, 213, 215, 217)에 포함될 수 있다.
비트스트림 파싱 블록(411)은 비트스트림(BS)을 파싱(parsing)할 수 있다. 비트스트림 파싱 블록(411)은 신택스(syntax)별로 비트스트림(BS)을 파싱할 수 있다. 파싱은, CAVLD(Context Adaptive Variable Length Decoding)와 CABAD(Context Adaptive Binary Arithmetic Decoding)를 포함할 수 있다. 비트스트림 파싱 블록(411)은 엔트로피 디코딩 블록으로 지칭될 수 있다. The
비트스트림 파싱 블록(411)은 비트스트림(BS)에 대한 엔트로피 디코딩을 수행함으로써, 비트스트림(BS)에 포함된 다양한 정보를 획득할 수 있다. 비트스트림(BS)에 포함된 다양한 정보는, 예를 들면, 양자화된 계수, 디코딩된 코딩 파라미터, 인터 예측 파라미터, 인트라 예측 파라미터, 변환 파라미터, 양자화 파라미터, 루프 필터 파라미터, 및/또는 기타 신택스를 포함할 수 있다. 인터 예측 파라미터는, 예를 들어, 참조 화상 인덱스 및 모션 벡터를 포함할 수 있다. 인트라 예측 파라미터는, 예를 들어, 인트라 예측 모드 또는 인덱스를 포함할 수 있다. The
일부 실시예들에서, 비트스트림 파싱 블록(411)은 파이프라인 단위로 비트스트림(BS)을 파싱하고 파싱된 결과를 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)에 각각 저장할 수 있다. 비트스트림 파싱 블록(411)에 의해 처리된 유닛 데이터는 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)에 저장될 수 있다. 제1 파이프라인 메모리(421)는 비트스트림 파싱 블록(411)와 IQT 블록(412) 사이에 배치될 수 있다. 제2 파이프라인 메모리(422)는 비트스트림 파싱 블록(411)와 모션 벡터 블록(413) 사이에 배치될 수 있다.In some embodiments, the
IQT 블록(412)은 파싱된 비트스트림(BS)을 역양자화하고, 역양자화된 결과에 대하여 역변환을 수행할 수 있다. 일부 실시예들에서, IQT 블록(412)은 파이프라인 단위로 파싱된 비트스트림(BS)을 역양자화를 수행하고 역변환을 수행할 수 있다. 일부 실시예들에서, IQT 블록(412)은 제1 파이프라인 메모리(421)에 저장된 유닛 데이터를 읽을 수 있다. IQT 블록(412)은 역양자화 및 역변환 블록으로 지칭될 수 있다. 일부 실시예들에서, IQT 블록(412)은 역양자화 및 역변환의 결과를 제3 파이프라인 메모리(423)에 저장할 수 있다. IQT 블록(412)에 의해 처리된 유닛 데이터는 제3 파이프라인 메모리(423)에 저장될 수 있다. 제3 파이프라인 메모리(423)는 IQT 블록(412)과 인트라 예측 및 리콘 블록(417) 사이에 배치될 수 있다.The
모션 벡터 블록(413)은 제2 파이프라인 메모리(422)로부터 획득된 유닛 데이터를 기초로 모션 벡터를 획득할 수 있다. 일부 실시예들에서, 모션 벡터 블록(413)은 파이프라인 단위로 분할된 유닛 데이터를 처리하여, 모션 벡터를 획득할 수 있다. 일부 실시예들에서, 모션 벡터 블록(413)은 모션 벡터에 관한 유닛 데이터를 제4 파이프라인 메모리(424) 및 제5 파이프라인 메모리(425) 각각에 저장할 수 있다. 제4 파이프라인 메모리(424)는 모션 벡터 블록(413)과 인트라 모드 블록(414) 사이에 배치될 수 있다. 제5 파이프라인 메모리(425)는 모션 벡터 블록(413)과 모션 보상 블록(415) 사이에 배치될 수 있다.The
인트라 모드 블록(414)은 모션 벡터들에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정할 수 있다. 그리고, 인트라 모드 블록(414)은 예측 정보를 사용하여 디코딩되고 있는 현재 비디오 블록에 대한 예측 블록들을 생성할 수 있다. 예를 들면, 인트라 모드 블록(414)은 신택스들 중 일부를 사용하여 비디오 슬라이스의 비디오 블록들을 코딩하기 위해 사용되는 예측 모드(예를 들어, 인트라 예측 또는 인터 예측)를 결정할 수 있다. 또한, 인트라 모드 블록(414)은 신택스들 중 일부를 사용하여 인터 예측 슬라이스 타입(예를 들어, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스)를 결정할 수 있다. 또한, 인트라 모드 블록(414)은 신택스들 중 일부를 사용하여 슬라이스에 대한 참조 화상 리스트들 중 하나 이상에 대한 구성 정보를 결정할 수 있다. 또한, 인트라 모드 블록(414)은 신택스들 중 일부를 사용하여 슬라이스의 각각의 인터 인코딩된 비디오 블록에 대한 모션 벡터들을 결정할 수 있다. 또한, 인트라 모드 블록(414)은 신택스들 중 일부를 사용하여 슬라이스의 각각의 인터 코딩된 비디오 블록에 대한 인터 예측 상태를 결정할 수 있다. 또한, 인트라 모드 블록(414)은 신택스들 중 일부를 사용하여 현재 비디오 슬라이스에서의 비디오 블록들을 디코딩하기 위한 다른 정보를 결정할 수 있다.The intra
일부 실시예들에서, 인트라 모드 블록(414)은 파이프라인 단위로 분할된 유닛 데이터를 처리하여, 유닛 데이터를 제6 파이프라인 메모리(426)에 저장할 수 있다. 제6 파이프라인 메모리(426)는 인트라 모드 블록(414)과 인트라 예측 및 리콘 블록(417) 사이에 배치될 수 있다.In some embodiments, the intra
모션 보상 블록(415)은 제5 파이프라인 메모리(425)에 저장된 유닛 데이터에 의한 모션 벡터를 이용하여, 적어도 하나 이상의 참조 영상을 모션 보상함으로써, 예측 영상을 생성할 수 있다. 참조 영상에 대한 참조 영상 데이터의 크기는 상대적으로 크기 때문에, 참조 영상 데이터는 메모리(430)에 저장될 수 있다. 모션 벡터는 현재 코딩 유닛을 참조 영상(또는 참조 프레임)으로부터 움직임 예측이 수행될 때 가장 유사한 영역의 위치 정보를 나타낼 수 있다. 일부 실시예들에서, 모션 보상 블록(415)은 예측 영상에 대응되는 유닛 데이터를 제7 파이프라인 메모리(427)에 저장할 수 있다. 제7 파이프라인 메모리(427)는 모션 보상 블록(415)과 인터 예측 블록(416) 사이에 배치될 수 있다.The
인터 예측 블록(416)은 제7 파이프라인 메모리(427)에 저장된 유닛 데이터를 기초로 인터 예측을 수행할 수 있다. 인터 예측의 수행 결과, 코딩 유닛에 대한 예측 블록이 생성될 수 있다. 여기서, 인터 예측은 이전에 코딩된 픽처의 데이터로부터 코딩 유닛을 예측하는 것을 지칭할 수 있다. 일부 실시예들에서, 인터 예측 블록(416)은 인터 예측의 결과에 대응되는 유닛 데이터를 제8 파이프라인 메모리(428)에 저장할 수 있다. 제8 파이프라인 메모리(428)는 인터 예측 블록(416)과 인트라 예측 및 리콘 블록(417) 사이에 배치될 수 있다.The
인트라 예측 및 리콘 블록(417)은 제3, 제6, 및 제8 파이프라인 메모리들(423, 426, 428)에 저장된 복수의 유닛 데이터를 기초로 인트라 예측을 수행하고, 제3, 제6, 및 제8 파이프라인 메모리들(423, 426, 428)에 저장된 복수의 유닛 데이터 또는 샘플 값들을 가산하여 샘플들을 재구성(또는 복원)할 수 있다. 인트라 예측은 일반적으로 동일한 픽처의 이전에 코딩된 데이터로부터 코딩 유닛을 예측하는 것을 지칭한다. 일부 실시예들에서, 인트라 예측 및 리콘 블록(417)은 재구성 결과에 대응되는 유닛 데이터를 제9 파이프라인 메모리(429)에 저장할 수 있다. 제9 파이프라인 메모리(429)는 인트라 예측 및 리콘 블록(417)과 루프 필터 블록(418) 사이에 배치될 수 있다.The intra prediction and
루프 필터 블록(418)은 비트스트림(BS)의 복원시 발생할 수 있는 블록킹 현상을 감소시키는 디블록킹 필터(미도시)를 포함할 수 있다. 루프 필터 블록(418)의 플래그(flag)가 활성화되어 있으면, 루프 필터 블록(418)은 필터링 후에 디코딩된 영상 데이터를 메모리(430)에 저장할 수 있다. 만약 루프 필터 블록(418)의 플래그가 활성화되어 있지 않다면, 루프 필터 블록(418)은 인터 예측 또는 인트라 모드 예측 후 곧바로 복원된 영상 데이터를 메모리(430)에 저장할 수 있다. 루프 필터 블록(418)은 인-루프 필터(in-loop filter)로 지칭될 수 있다.The
메모리(430)는 디코딩된 영상 데이터 및 참조 영상 데이터 등을 저장할 수 있다. 메모리(430)는 DPB(Decoded Picture Buffer)로 지칭될 수 있다.The
제1 내지 제9 파이프라인 메모리들(421~429)은 도 2를 참조하여 전술한 복수의 파이프라인 메모리들(212, 214)에 포함될 수 있다.The first to
일부 실시예들에서, 제1 내지 제9 파이프라인 메모리들(421~429)은, 현재 CU 사이즈 정보, 다음 CU 위치 정보, 및 스캔 타입 정보를 저장할 수 있다. 현재 CU 사이즈 정보는, 코딩 트리 유닛에 포함된 복수의 단위 픽셀 그룹들 중 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 코딩 유닛의 크기를 나타내는 데이터일 수 있다. 단위 픽셀 그룹에 대한 설명은 도 7a 내지 도 7e를 참조하여 후술된다. 다음 CU 위치 정보는, 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 코딩 유닛의 다음(next) 코딩 유닛의 위치를 나타내는 데이터일 수 있다. 스캔 타입 정보는, 단위 픽셀 그룹의 스캔 타입을 나타내는 데이터일 수 있다. 예를 들면, 스캔 타입은 지-스캔(z-scan)일 수 있다. 다른 예를 들면, 스캔 타입은 래스터-스캔(raster-scan)일 수 있다. 하지만, 이에 한정되는 것은 아니다. 일부 실시예들에서, 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)는 디코딩된 정보를 나타내는 데이터를 더 저장할 수 있다. 제3 파이프라인 메모리(423)는 잔차(residual)을 나타내는 데이터를 더 저장할 수 있다. 제4 내지 제6 파이프라인 메모리들(424, 425, 426)은, 모션 벡터 및 인트라 모드를 나타내는 데이터를 더 저장할 수 있다. 제7 내지 제9 파이프라인 메모리들(427, 428, 429)은, 픽셀 값을 나타내는 데이터를 더 저장할 수 있다. 아울러, 제7 파이프라인 메모리(427)는 참조 픽셀 값(또는 참조 영상, 참조 프레임)을 나타내는 데이터를 더 저장할 수 있다.In some embodiments, the first to
도 5는 본 개시의 예시적인 실시예들에 따른 파이프라인 단위의 디코딩 처리 동작을 설명하기 위한 도면이다.FIG. 5 is a diagram illustrating a decoding processing operation on a pipeline basis according to exemplary embodiments of the present disclosure.
도 4 및 도 5를 참조하면, 제1 파이프라인 스테이지(PSTG 1)에서, 비트스트림 파싱 블록(411)이 제1 유닛 데이터(UD 1)를 처리하고, 제1 유닛 데이터(UD 1)를 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)에 저장할 수 있다. 한편, IQT 블록(412), 모션 벡터 블록(413), 인트라 모드 블록(414), 모션 보상 블록(415), 인터 예측 블록(416), 인트라 예측 및 리콘 블록(417), 및 루프 필터 블록(418)은 대기할 수 있다.4 and 5, in the first pipeline stage (PSTG 1), the bitstream parsing block 411 processes the first unit data (UD 1) and generates the first unit data (UD 1). It can be stored in the
제2 파이프라인 스테이지(PSTG 2)에서, 비트스트림 파싱 블록(411)이 제2 유닛 데이터(UD 2)를 처리하고, 제2 유닛 데이터(UD 2) 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)에 저장할 수 있다. IQT 블록(412) 및 모션 벡터 블록(413) 각각은 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)에 저장된 제1 유닛 데이터(UD 1)를 읽고, 제1 유닛 데이터(UD 1)를 처리하고, 제1 유닛 데이터(UD 1)를 제3 내지 제5 파이프라인 메모리들(423, 424, 425)에 각각 저장할 수 있다. 한편, 인트라 모드 블록(414), 모션 보상 블록(415), 인터 예측 블록(416), 인트라 예측 및 리콘 블록(417), 및 루프 필터 블록(418)은 대기할 수 있다.In the second pipeline stage (PSTG 2), the bitstream parsing block 411 processes the second unit data (UD 2), and the second unit data (UD 2) is stored in the
제3 파이프라인 스테이지(PSTG 3)에서, 비트스트림 파싱 블록(411)이 제3 유닛 데이터(UD 3)를 처리하고, 제3 유닛 데이터(UD 3) 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)에 저장할 수 있다. IQT 블록(412) 및 모션 벡터 블록(413) 각각은 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)에 저장된 제2 유닛 데이터(UD 2)를 읽고, 제2 유닛 데이터(UD 2)를 처리하고, 제2 유닛 데이터(UD 2)를 제3 내지 제5 파이프라인 메모리들(423, 424, 425)에 각각 저장할 수 있다. 인트라 모드 블록(414) 및 모션 보상 블록(415) 각각은 제3 내지 제5 파이프라인 메모리들(423, 424, 425)에 저장된 제1 유닛 데이터(UD 1)를 읽고, 제1 유닛 데이터(UD 1)를 처리하고, 제1 유닛 데이터(UD 1)를 제6 및 제7 파이프라인 메모리들(426, 427)에 각각 저장할 수 있다. 한편, 인터 예측 블록(416), 인트라 예측 및 리콘 블록(417), 및 루프 필터 블록(418)은 대기할 수 있다.In the third pipeline stage (PSTG 3), the bitstream parsing block 411 processes the third unit data (UD 3), and the third unit data (UD 3) is stored in the
제4 파이프라인 스테이지(PSTG 4)에서, 비트스트림 파싱 블록(411)이 제4 유닛 데이터(UD 4)를 처리하고, 제4 유닛 데이터(UD 4)를 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)에 저장할 수 있다. IQT 블록(412) 및 모션 벡터 블록(413) 각각은 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)로부터 제공된 제3 유닛 데이터(UD 3)를 처리하고, 제3 유닛 데이터(UD 3)를 제3 내지 제5 파이프라인 메모리들(423, 424, 425)에 각각 저장할 수 있다. 인트라 모드 블록(414) 및 모션 보상 블록(415) 각각은 제3 내지 제5 파이프라인 메모리들(423, 424, 425)로부터 제공된 제2 유닛 데이터(UD 2)를 처리하고, 제2 유닛 데이터(UD 2)를 제6 및 제7 파이프라인 메모리들(426, 427)에 각각 저장할 수 있다. 이와 마찬가지로, 인터 예측 블록(416)은 및 인트라 예측 및 리콘 블록(417)은 제1 유닛 데이터(UD 1)를 처리할 수 있다. 한편, 및 루프 필터 블록(418)은 대기할 수 있다.In the fourth pipeline stage (PSTG 4), the bitstream parsing block 411 processes the fourth unit data (UD 4), and stores the fourth unit data (UD 4) in the
마찬가지로, 제5 파이프라인 스테이지(PSTG 5)에서, 비트스트림 파싱 블록(411)이 제5 유닛 데이터(UD 5)를 처리할 수 있다. IQT 블록(412) 및 모션 벡터 블록(413) 각각은 제4 유닛 데이터(UD 4)를 처리할 수 있다. 인트라 모드 블록(414) 및 모션 보상 블록(415) 각각은 제3 유닛 데이터(UD 3)를 처리할 수 있다. 인터 예측 블록(416)은 및 인트라 예측 및 리콘 블록(417)은 제2 유닛 데이터(UD 2)를 처리할 수 있다. 루프 필터 블록(418)은 제1 유닛 데이터(UD 1)를 처리할 수 있다.Likewise, in the fifth pipeline stage (PSTG 5), the
전술한 방식대로, 제6 파이프라인 스테이지(PSTG 6), 제7 파이프라인 스테이지(PSTG 7) 및 제7 파이프라인 스테이지(PSTG 7)의 다음 파이프라인 스테이지들에서, 하드웨어 블록들(예, 411~418)이 동작할 수 있다.In the manner described above, in the following pipeline stages of the sixth pipeline stage (PSTG 6), the seventh pipeline stage (PSTG 7), and the seventh pipeline stage (PSTG 7), hardware blocks (e.g., 411 ~ 418) can operate.
도 6은 본 개시의 예시적인 실시예들에 따른 코딩 트리 유닛(CTU와 코딩 유닛(CU: Coding Unit, 이하 "CU")을 설명하기 위한 도면이다.FIG. 6 is a diagram illustrating a coding tree unit (CTU) and a coding unit (CU) (hereinafter “CU”) according to example embodiments of the present disclosure.
도 6을 참조하면, 영상(PICTURE)은 복수의 CTU들로 구분될 수 있다. 영상(PICTURE)에서 각 CTU에 대응되는 영역의 크기는 일정할 수 있다. 하지만, 이에 한정되는 것은 아니다. 예를 들어, 하나의 CTU은 64*64 픽셀들을 포함할 수 있다. 다른 예를 들면, 하나의 CTU은 128*128 픽셀들을 포함할 수도 있다. 하지만, 이에 한정되는 것은 아니다.Referring to FIG. 6, a picture (PICTURE) may be divided into a plurality of CTUs. In a picture (PICTURE), the size of the area corresponding to each CTU may be constant. However, it is not limited to this. For example, one CTU may contain 64*64 pixels. For another example, one CTU may contain 128*128 pixels. However, it is not limited to this.
하나의 CTU는 복수의 CU들을 포함할 수 있다. 영상(PICTURE)에서 각 CU에 대응되는 영역의 크기 및 형태는 다양할 수 있다. 이에 따라, 각 CU에 포함되는 픽셀의 개수는 CU마다 동일할 수도 있고, 다를 수 있다.One CTU may include multiple CUs. The size and shape of the area corresponding to each CU in a picture may vary. Accordingly, the number of pixels included in each CU may be the same or different for each CU.
도 7a 내지 도 7e는 본 개시의 예시적인 실시예들에 따른 트리 분할 모드를 설명하기 위한 도면이다.7A to 7E are diagrams for explaining a tree splitting mode according to exemplary embodiments of the present disclosure.
도 7a 내지 도 7e를 참조하면, 트리 분할 모드에 따라 하나의 CTU에서 적어도 하나의 CU가 포함될 수 있다. 서로 다른 CU는 도 7a 내지 도 7e에 도시된 굵은 선(thick line)과 같이 구분될 수 있다. 서로 다른 CU는 동일하거나 서로 다른 개수의 단위 픽셀 그룹(UPXG)을 포함할 수 있다. 도 7a 내지 도 7e에서, 하나의 CTU는 64*64 픽셀들을 포함하고, 하나의 단위 픽셀 그룹(UPXG)은 4*4 픽셀들을 포함하는 것으로 가정한다.Referring to FIGS. 7A to 7E, at least one CU may be included in one CTU depending on the tree splitting mode. Different CUs can be distinguished as thick lines shown in FIGS. 7A to 7E. Different CUs may include the same or different numbers of unit pixel groups (UPXG). In FIGS. 7A to 7E, it is assumed that one CTU includes 64*64 pixels, and one unit pixel group (UPXG) includes 4*4 pixels.
도 7a에 도시된 트리 분할 모드에 따르면, 하나의 CTU는 제1 내지 제5 CU들(CU 1, CU 2, CU 3, CU 4, CU 5)을 포함할 수 있다. 제1 CU(CU 1)에 포함되는 단위 픽셀 그룹(UPXG)의 개수는, 제3 CU(CU 3)에 포함된 단위 픽셀 그룹(UPXG)의 개수 및 제5 CU(CU 5)에 포함된 단위 픽셀 그룹(UPXG)의 개수와 동일할 수 있다. 예를 들면, 제1 CU(CU 1), 제3 CU(CU 3), 및 제5 CU(CU 5) 각각에 포함되는 단위 픽셀 그룹(UPXG)의 개수는 16*4개이고, 각 단위 픽셀 그룹(UPXG)에 포함된 픽셀 수는 4*4개이므로, 제1 CU(CU 1), 제3 CU(CU 3), 및 제5 CU(CU 5) 각각에 포함되는 픽셀 수는 64*16개일 수 있다. 제2 CU(CU 2)에 포함되는 단위 픽셀 그룹(UPXG)의 개수는, 제4 CU(CU 4)에 포함된 단위 픽셀 그룹(UPXG)의 개수와 동일할 수 있다. 예를 들면, 제2 CU(CU 2) 및 제4 CU(CU 4) 각각에 포함되는 단위 픽셀 그룹(UPXG)의 개수는 16*2개이고, 제2 CU(CU 2) 및 제4 CU(CU 4) 각각에 포함되는 픽셀 수는 64*8개일 수 있다.According to the tree splitting mode shown in FIG. 7A, one CTU may include first to fifth CUs (
도 7b에 도시된 트리 분할 모드에 따르면, 하나의 CTU는 제1 내지 제3 CU들(CU 1, CU 2, CU 3)을 포함할 수 있다. 제1 CU(CU 1)에 포함되는 단위 픽셀 그룹(UPXG)의 개수는, 제3 CU(CU 3)에 포함된 단위 픽셀 그룹(UPXG)의 개수와 동일할 수 있다. 예를 들면, 제1 CU(CU 1) 및 제3 CU(CU 3) 각각에 포함되는 단위 픽셀 그룹(UPXG)의 개수는 4*16개이고, 제1 CU(CU 1) 및 제3 CU(CU 3) 각각에 포함되는 픽셀 수는 16*64개일 수 있다. 제2 CU(CU 2)에 포함되는 단위 픽셀 그룹(UPXG)의 개수는 8*16개이고, 제2 CU(CU 2)에 포함되는 픽셀 수는 32*64개일 수 있다.According to the tree splitting mode shown in FIG. 7B, one CTU may include first to third CUs (
도 7c에 도시된 트리 분할 모드에 따르면, 하나의 CTU는 5개의 CU들을 포함할 수 있고, 도 7d에 도시된 트리 분할 모드에 따르면, 하나의 CTU는 11개의 CU들을 포함할 수 있으며, 도 7e에 도시된 트리 분할 모드에 따르면, 하나의 CTU는 14개의 CU들을 포함할 수 있다.According to the tree splitting mode shown in FIG. 7C, one CTU may include 5 CUs, and according to the tree splitting mode shown in FIG. 7D, one CTU may include 11 CUs, and FIG. 7E According to the tree splitting mode shown in , one CTU may include 14 CUs.
도 8a 내지 도 8e는 도 7a 내지 도 7e에 도시된 트리 분할 모드에서 파이프라인 영역 유닛을 설명하기 위한 도면이다.FIGS. 8A to 8E are diagrams for explaining a pipeline area unit in the tree split mode shown in FIGS. 7A to 7E.
도 8a 내지 도 8e를 참조하면, 트리 분할 모드와 무관하게 하나의 CTU에서 복수의 파이프라인 영역 유닛들이 포함될 수 있다. 파이프라인 영역 유닛은 미리 설정된 크기의 파이프라인 단위에 대응되는 또는 단위 픽셀 그룹(UPXG)들을 포함할 수 있다. 하나의 파이프라인 영역 유닛에 포함되는 단위 픽셀 그룹의 개수는, 예를 들어 64개이고, 하나의 파이프라인 영역 유닛에 포함되는 픽셀의 개수는 1,024(또는, 32*32) 개일 수 있다. 하지만, 이에 한정되는 것은 아니다. 파이프라인 영역 유닛은 복수의 파이프라인 메모리들(212, 214) 및 제1 내지 제9 파이프라인 메모리들(421~429)의 메모리 크기에 대응될 수 있다. 한편, 각 유닛 데이터는 하나의 파이프 영역 유닛에 대해 디코딩 처리될 데이터일 수 있다.Referring to FIGS. 8A to 8E, a plurality of pipeline area units may be included in one CTU regardless of the tree splitting mode. The pipeline area unit may include unit pixel groups (UPXG) corresponding to a pipeline unit of a preset size. For example, the number of unit pixel groups included in one pipeline area unit may be 64, and the number of pixels included in one pipeline area unit may be 1,024 (or 32*32). However, it is not limited to this. The pipeline area unit may correspond to the memory size of the plurality of
파이프라인 영역 유닛의 개수는, 예를 들어 4개일 수 있으나 이에 한정되는 것은 아니다. 이하에서는 설명의 편의상 파이프라인 영역 유닛의 개수는 4개인 것으로 가정한다. 제1 내지 제4 파이프라인 영역 유닛들(PAU 1, PAU 2, PAU 3, PAU 4)은 하나의 CTU 내에서 도 8a 내지 도 8e에 도시된 바와 같이 구분될 수 있다.The number of pipeline area units may be, for example, four, but is not limited thereto. Hereinafter, for convenience of explanation, it is assumed that the number of pipeline area units is 4. The first to fourth pipeline area units (
도 9는 본 개시의 예시적인 실시예들에 따라 VVC(Versatile Video Coding) 코덱(Codec)에서 코딩 유닛과 파이프라인 영역 유닛을 설명하기 위한 도면이다.FIG. 9 is a diagram illustrating a coding unit and a pipeline area unit in a Versatile Video Coding (VVC) Codec according to example embodiments of the present disclosure.
도 9를 참조하면, 비디오 코덱의 하나인 VVC는 최근에 개발된 비디오 압축 표준(standard)일 수 있다. VVC의 트리 분할 모드에 의하면, CU 단위가 도 9에 도시된 바와 같이 더욱 세분화될 수 있다. VVC의 트리 분할 모드로서 "SPLIT_TT_VER" 및 "SPLIT_TT_HOR"의 경우, 하나의 CTU가 홀수 개의 CU로 나뉠 수 있다.Referring to FIG. 9, VVC, one of the video codecs, may be a recently developed video compression standard. According to the tree splitting mode of VVC, CU units can be further divided as shown in FIG. 9. In the case of "SPLIT_TT_VER" and "SPLIT_TT_HOR" as tree splitting modes of VVC, one CTU may be divided into an odd number of CUs.
도 10a 내지 도 10d는 본 개시의 예시적인 실시예들에 따른 파이프라인 단위로 유닛 데이터를 처리하는 동작을 설명하기 위한 도면이다.10A to 10D are diagrams for explaining an operation of processing unit data on a pipeline basis according to example embodiments of the present disclosure.
도 10a 내지 도 10d에 도시된 트리 분할 방식은 도 7a 및 도 8a에 도시된 트리 분할 방식인 것으로 가정한다. 그리고, 도 10a 내지 도 10d에 도시된 파이프라인 영역 유닛들은 도 8a에 도시된 제1 내지 제4 파이프라인 영역 유닛들(PAU 1, PAU 2, PAU 3, PAU 4)인 것으로 가정한다. 그리고, 도 10a 내지 도 10d에 도시된 복수의 버퍼들(BUFFERS)은 제1 파이프라인 메모리(212)에 포함된 것으로 가정한다. 그리고, 도 10a 내지 도 10d에 도시된 실시예들 각각은 제1 내지 제5 파이프라인 스테이지들(PSTG 1~PSTG 5) 각각에서 제1 하드웨어 블록(211), 제1 파이프라인 메모리(212), 및 제2 하드웨어 블록(213)에 의해 동작되는 것으로 가정한다. 도 10a 내지 도 10d에 도시된 스캔 방식은 지-스캔(z-scan)인 것으로 가정한다.It is assumed that the tree splitting method shown in FIGS. 10A to 10D is the tree splitting method shown in FIGS. 7A and 8A. Additionally, it is assumed that the pipeline area units shown in FIGS. 10A to 10D are the first to fourth pipeline area units (
도 10a 내지 도 10d을 참조하면, 각 파이프라인 메모리는 복수의 버퍼들(BUFFERS)을 포함할 수 있다. 도 2를 참조하여 예를 들면, 복수의 파이프라인 메모리들(212, 214) 각각은, 복수의 버퍼들(BUFFERS)을 포함할 수 있다. 도 4를 참조하여 예를 들면, 제1 내지 제9 파이프라인 메모리들(421~429) 각각은, 복수의 버퍼들(BUFFERS)을 포함할 수 있다. 각 버퍼는 하나의 어드레스에 대응될 수 있다. 하나의 어드레스는 단위 픽셀 그룹(UPXG)에 대응될 수 있다. 즉, 각 버퍼는 단위 픽셀 그룹(UPXG)에 대한 다양한 정보를 저장할 수 있다. 예를 들면, 복수의 버퍼들(BUFFERS) 각각은, 현재 CU 사이즈 정보(CURRENT CU SIZE), 다음 CU 위치 정보(NEXT CU POSITION), 스캔 타입 정보(SCAN TYPE), 및 기타 데이터(OTHER INFO)를 저장할 수 있다. 현재 CU 사이즈 정보(CURRENT CU SIZE)는 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹(UPXG)들 각각이 속한 CU의 크기에 대한 정보를 포함할 수 있다. 다음 CU 위치 정보(NEXT CU POSITION)는 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹(UPXG)들 각각이 속한 현재의 CU의 다음 CU의 위치에 대한 정보를 포함할 수 있다. 스캔 타입 정보(SCAN TYPE) 단위 픽셀 그룹(UPXG)의 스캔 타입에 대한 정보를 포함할 수 있다. 기타 데이터(OTHER INFO)는 참조 픽셀 값(또는 참조 영상, 참조 프레임 등), 모션 벡터, 픽셀 값, 예측 모드 등에 관한 정보를 포함할 수 있다. 기타 데이터(OTHER INFO)는 제1 내지 제9 파이프라인 메모리들(421~429)마다 달라질 수도 있다.Referring to FIGS. 10A to 10D, each pipeline memory may include a plurality of buffers (BUFFERS). For example, with reference to FIG. 2 , each of the
도 10a를 참조하면, 제1 파이프라인 스테이지(PSTG 1)에서 제1 파이프라인 영역 유닛(PAU 1)에 대한 처리 동작이 수행될 수 있다. 제1 파이프라인 영역 유닛(PAU 1)에 대한 유닛 데이터(예를 들면, 제1 유닛 데이터(UD 1))가 제1 하드웨어 블록(211)에 의해 처리될 수 있다. 그리고, 제1 파이프라인 영역 유닛(PAU 1)에 대한 유닛 데이터가 복수의 버퍼들(BUFFERS)에 저장될 수 있다. 구체적으로, 도 10a에 도시된 CTU에서 표시된 번호들을 갖는 단위 픽셀 그룹(UPXG)들에 대한 데이터는 각 어드레스를 갖는 버퍼에 저장될 수 있다. 예를 들어, 도 10a에서 "0"으로 표시된 단위 픽셀 그룹(UPXG)에 대한 정보는 "0"번 어드레스를 갖는 버퍼에 저장될 수 있다. 제1 유닛 데이터(UD1)는 제1 파이프라인 영역 유닛(PAU 1)에 대응되는(또는 제1 파이프라인 영역 유닛(PAU 1)에 포함되는) 단위 픽셀 그룹(UPXG)들이 속한 현재의 CU의 크기를 나타내는 제1 현재 CU 사이즈 정보, 다음 CU의 위치를 나타내는 제1 다음 CU 위치 정보, 및 스캔 타입 정보를 포함할 수 있다.Referring to FIG. 10A, a processing operation for the first pipeline area unit (PAU 1) may be performed in the first pipeline stage (PSTG 1). Unit data (eg, first unit data UD 1) for the first pipeline
도 10b를 참조하면, 제2 파이프라인 스테이지(PSTG 2)에서 제2 파이프라인 영역 유닛(PAU 2)에 대한 처리 동작이 수행될 수 있다. 제2 파이프라인 영역 유닛(PAU 2)에 대한 유닛 데이터(예를 들면, 제2 유닛 데이터(UD 2))가 제1 하드웨어 블록(211)에 의해 처리되어 복수의 버퍼들(BUFFERS)에 저장될 수 있다. 제2 유닛 데이터(UD 2)는 제2 파이프라인 영역 유닛(PAU 2)에 대응되는(또는 제2 파이프라인 영역 유닛(PAU 2)에 포함되는) 단위 픽셀 그룹(UPXG)들이 속한 현재의 CU의 크기를 나타내는 제2 현재 CU 사이즈 정보, 다음 CU의 위치를 나타내는 제2 다음 CU 위치 정보, 및 스캔 타입 정보를 포함할 수 있다.Referring to FIG. 10B, a processing operation for the second pipeline area unit (PAU 2) may be performed in the second pipeline stage (PSTG 2). Unit data (e.g., second unit data UD 2) for the second pipeline
도 10c를 참조하면, 제3 파이프라인 스테이지(PSTG 3)에서 제3 파이프라인 영역 유닛(PAU 3)에 대한 유닛 데이터(예를 들면, 제3 유닛 데이터(UD 3))가 처리되어 복수의 버퍼들(BUFFERS)에 저장될 수 있다. 제3 유닛 데이터(UD 3)는 제3 현재 CU 사이즈 정보, 제3 다음 CU 위치 정보, 및 스캔 타입 정보를 포함할 수 있다.Referring to FIG. 10C, unit data (e.g., third unit data UD 3) for the third pipeline area unit (PAU 3) is processed in the third pipeline stage (PSTG 3) and stored in a plurality of buffers. It can be stored in BUFFERS. The third
마찬가지로, 도 10d를 참조하면, 제4 파이프라인 스테이지(PSTG 4)에서 제4 파이프라인 영역 유닛(PAU 4)에 대한 유닛 데이터(예를 들면, 제4 유닛 데이터(UD 4))가 처리되어 복수의 버퍼들(BUFFERS)에 저장될 수 있다. 제4 유닛 데이터(UD 4)는 제4 현재 CU 사이즈 정보, 제4 다음 CU 위치 정보, 및 스캔 타입 정보를 포함할 수 있다.Likewise, referring to FIG. 10D, unit data (e.g., fourth unit data UD 4) for the fourth pipeline
도 11은 본 개시의 예시적인 실시예들에 따른 비트스트림의 구조를 설명하기 위한 도면이다.FIG. 11 is a diagram for explaining the structure of a bitstream according to example embodiments of the present disclosure.
도 1 및 도 11을 참조하면, 비디오 인코딩 장치(100)에 의해 생성되는 비트스트림(BS)은 시퀀스 헤더 정보(SEQUENCE HEADER), 픽처 헤더 정보(PICTURE HEADER), 및 픽처 정보(PICTURE DATA)를 포함할 수 있다. 픽처 헤더 정보(PICTURE HEADER) 및 픽처 정보(PICTURE DATA)는 비트스트림(BS) 내에서 반복될 수 있다. 시퀀스 헤더 정보(SEQUENCE HEADER), 픽처 헤더 정보(PICTURE HEADER), 및 픽처 정보(PICTURE DATA)는 비디오 코덱 표준에 의해 정의되는 정보들이므로, 그 설명이 생략될 수 있다.1 and 11, the bitstream (BS) generated by the
일부 실시예들에서, 시퀀스 헤더 정보(SEQUENCE HEADER)는 버티컬 사이즈 정보(VERTICAL SIZE), 호라이즌 사이즈 정보(HORIZENTAL SIZE), 비트 퍼 픽셀 정보(BIT PER PIXEL), 크로마 포멧 정보(CHROMA FORMAT), CTU 사이즈 정보(CTU SIZE), 파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)를 포함할 수 있다. 버티컬 사이즈 정보(VERTICAL SIZE), 호라이즌 사이즈 정보(HORIZENTAL SIZE), 비트 퍼 픽셀 정보(BIT PER PIXEL), 크로마 포멧 정보(CHROMA FORMAT), CTU 사이즈 정보(CTU SIZE)는 비디오 코덱 표준에 의해 정의되는 정보들이므로, 그 설명이 생략될 수 있다. 파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)는 하나의 CTU에 포함되는 파이프라인 영역 유닛의 개수를 나타내는 데이터일 수 있다. 예를 들면, 파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)는 하나의 CTU 내에서 파이프라인 영역 유닛의 개수(예, "2", "4", "8" 등)를 나타낼 수 있다. 파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)에 대한 실시예들은 도 12를 참조하여 후술된다.In some embodiments, sequence header information (SEQUENCE HEADER) includes vertical size information (VERTICAL SIZE), horizon size information (HORIZENTAL SIZE), bit per pixel information (BIT PER PIXEL), chroma format information (CHROMA FORMAT), and CTU size. It may include information (CTU SIZE) and pipeline area unit number information (PAU_NUM_IN_CTU). Vertical size information (VERTICAL SIZE), horizon size information (HORIZENTAL SIZE), bit per pixel information (BIT PER PIXEL), chroma format information (CHROMA FORMAT), and CTU size information (CTU SIZE) are information defined by the video codec standard. Therefore, the explanation can be omitted. Pipeline area unit number information (PAU_NUM_IN_CTU) may be data indicating the number of pipeline area units included in one CTU. For example, pipeline area unit number information (PAU_NUM_IN_CTU) may indicate the number of pipeline area units (eg, “2”, “4”, “8”, etc.) within one CTU. Embodiments of the pipeline area unit number information (PAU_NUM_IN_CTU) will be described later with reference to FIG. 12.
일부 실시예들에서, 픽처 헤더 정보(PICTURE HEADER)는 인트라 픽쳐 플래그 정보(INTRA PICTURE FLAG), 픽쳐 QP(Quantization Parameter) 정보(PICTURE QP), 디블록 필터 인에이블 정보(DEBLOCK FILTER ENABLE), 및 파이프라인 영역 유닛 모드 정보(PAU_MODE)를 포함할 수 있다. 인트라 픽쳐 플래그 정보(INTRA PICTURE FLAG), 픽쳐 QP(Quantization Parameter) 정보(PICTURE QP), 및 디블록 필터 인에이블 정보(DEBLOCK FILTER ENABLE)는 비디오 코덱 표준에 의해 정의되는 정보들이므로, 그 설명이 생략될 수 있다. 파이프라인 영역 유닛 모드 정보(PAU_MODE)는 하나의 CTU에서 파이프라인 영역 유닛을 분할하는 방식을 나타내는 데이터일 수 있다. 파이프라인 영역 유닛 모드 정보(PAU_MODE)에 실시예들은 도 13을 참조하여 후술된다.In some embodiments, picture header information (PICTURE HEADER) includes intra picture flag information (INTRA PICTURE FLAG), picture Quantization Parameter (QP) information (PICTURE QP), deblock filter enable information (DEBLOCK FILTER ENABLE), and pipe May include line area unit mode information (PAU_MODE). INTRA PICTURE FLAG, picture QP (Quantization Parameter) information (PICTURE QP), and deblock filter enable information (DEBLOCK FILTER ENABLE) are information defined by the video codec standard, so their description is omitted. It can be. Pipeline area unit mode information (PAU_MODE) may be data indicating a method of dividing pipeline area units in one CTU. Embodiments of the pipeline area unit mode information (PAU_MODE) will be described later with reference to FIG. 13.
일부 실시예들에서, 픽처 정보(PICTURE DATA)는 타일 헤더 정보(TILE HEADER) 및 타일 정보(TILE DATA)를 포함할 수 있다. 타일 헤더 정보(TILE HEADER) 및 타일 정보(TILE DATA)는 픽처 정보(PICTURE DATA) 내에서 반복될 수 있다. 일 실시예에서, 타일 헤더 정보(TILE HEADER)는 타일 타입 정보(TILE TYPE), 타일 QP 정보(TILE QP), 타일 사이즈 정보(TILE SIZE), 및 파이프라인 영역 유닛 모드 정보(PAU_MODE)를 포함할 수 있다.In some embodiments, picture information (PICTURE DATA) may include tile header information (TILE HEADER) and tile information (TILE DATA). Tile header information (TILE HEADER) and tile information (TILE DATA) may be repeated within picture information (PICTURE DATA). In one embodiment, tile header information (TILE HEADER) may include tile type information (TILE TYPE), tile QP information (TILE QP), tile size information (TILE SIZE), and pipeline area unit mode information (PAU_MODE). You can.
일부 실시예들에서, 비트스트림(BS)이 파이프라인 영역 유닛 정보, 예를 들면, 파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU) 및 파이프라인 영역 유닛 모드 정보(PAU_MODE)를 포함하는 경우, 디코더(210)에 포함된 파이프라인 메모리들 각각의 크기는 파이프라인 영역 유닛 정보에 대응될 수 있다. 일 실시예에서, 각 파이프라인 메모리의 크기는 파이프라인 영역 유닛의 최대 개수, 하나의 CTU 내에서 파이프라인 영역 유닛의 최대 크기, 및/또는 하나의 CU에 포함되는 파이프라인 영역 유닛의 최대 개수에 대응될 수 있다.In some embodiments, when the bitstream (BS) includes pipeline area unit information, for example, pipeline area unit number information (PAU_NUM_IN_CTU) and pipeline area unit mode information (PAU_MODE), the
다른 실시예들에서, 파이프라인 영역 유닛 모드 정보(PAU_MODE)는, 픽처, 타일, 또는 CTU 등과 관련된 필드에 포함될 수도 있다.In other embodiments, pipeline area unit mode information (PAU_MODE) may be included in a field related to a picture, tile, or CTU.
도시되지 않았지만, 비트스트림(BS)은 하나의 CTU 내에서 파이프라인 영역 유닛의 크기(예, "0:16x16 pixels", "1: 32x32 pixels" 등)를 나타내는 파이프라인 영역 크기 정보를 더 포함할 수도 있다.Although not shown, the bitstream (BS) may further include pipeline area size information indicating the size of the pipeline area unit (e.g., "0:16x16 pixels", "1: 32x32 pixels", etc.) within one CTU. It may be possible.
도시되지 않았지만, 비트스트림(BS)은, 영상의 계층 구조에 따른 각 계층에서 이용되는 신택스들을 각각 포함하는 시퀀스 파라미터 정보, 픽처 파라미터 정보, 슬라이스 정보, 트랜스폼 정보 등을 더 포함할 수 있다.Although not shown, the bitstream (BS) may further include sequence parameter information, picture parameter information, slice information, transform information, etc., each including syntax used in each layer according to the hierarchical structure of the image.
도 12는 본 개시의 예시적인 실시예들에 따른 파이프라인 영역 유닛 개수 정보를 설명하기 위한 도면이다.FIG. 12 is a diagram for explaining pipeline area unit number information according to example embodiments of the present disclosure.
도 11 및 도 12를 참조하면, 파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)의 값(VALUE OF PAU_NUM_IN_CTU)은, 2-비트 파라미터(2-bit parameter)로 나타낼 수 있다. 예를 들면, 파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)의 값(VALUE OF PAU_NUM_IN_CTU)은, "0x00", "0x01", "0x02", 또는, "0x03"일 수 있다. 하지만, 이에 한정되는 것은 아니다. Referring to Figures 11 and 12, the value (VALUE OF PAU_NUM_IN_CTU) of the pipeline area unit number information (PAU_NUM_IN_CTU) can be expressed as a 2-bit parameter. For example, the value (VALUE OF PAU_NUM_IN_CTU) of the pipeline area unit number information (PAU_NUM_IN_CTU) may be “0x00”, “0x01”, “0x02”, or “0x03”. However, it is not limited to this.
파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)의 값(VALUE OF PAU_NUM_IN_CTU)이 "0x00"인 경우, 단일 CTU 내에 포함되는 파이프라인 영역 유닛의 개수(THE NUMBER OF PAU IN CTU)는 1개일 수 있다. 이는, CTU의 개수와 PAU의 개수가 동일하거나, 하나의 CTU와 하나의 PAU가 일대일 대응되는 것을 의미할 수 있다.If the value (VALUE OF PAU_NUM_IN_CTU) of the pipeline area unit number information (PAU_NUM_IN_CTU) is "0x00", the number of pipeline area units (THE NUMBER OF PAU IN CTU) included in a single CTU may be 1. This may mean that the number of CTUs and the number of PAUs are the same, or that one CTU and one PAU correspond one-to-one.
파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)의 값(VALUE OF PAU_NUM_IN_CTU)이 "0x01"인 경우, 단일 CTU 내에 포함되는 파이프라인 영역 유닛의 개수(THE NUMBER OF PAU IN CTU)는 2개일 수 있다. 이는 하나의 CTU는 2개의 PAU들을 포함하는 것을 의미할 수 있다. 즉, 하나의 CTU는 같은 면적을 가진 2개의 PAU로 나뉠 수 있다.If the value (VALUE OF PAU_NUM_IN_CTU) of the pipeline area unit number information (PAU_NUM_IN_CTU) is "0x01", the number of pipeline area units (THE NUMBER OF PAU IN CTU) included in a single CTU may be 2. This may mean that one CTU includes two PAUs. That is, one CTU can be divided into two PAUs with the same area.
파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)의 값(VALUE OF PAU_NUM_IN_CTU)이 "0x02"인 경우, 단일 CTU 내에 포함되는 파이프라인 영역 유닛의 개수(THE NUMBER OF PAU IN CTU)는 4개일 수 있다. 이는 하나의 CTU는 4개의 PAU들을 포함하는 것을 의미할 수 있다. 즉, 하나의 CTU는 같은 면적을 가진 4개의 PAU로 나뉠 수 있다.If the value (VALUE OF PAU_NUM_IN_CTU) of the pipeline area unit number information (PAU_NUM_IN_CTU) is "0x02", the number of pipeline area units (THE NUMBER OF PAU IN CTU) included in a single CTU may be 4. This may mean that one CTU includes 4 PAUs. In other words, one CTU can be divided into four PAUs with the same area.
파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)의 값(VALUE OF PAU_NUM_IN_CTU)이 "0x03"인 경우, 단일 CTU 내에 포함되는 파이프라인 영역 유닛의 개수(THE NUMBER OF PAU IN CTU)는 8개일 수 있다. 이는 하나의 CTU는 8개의 PAU들을 포함하는 것을 의미할 수 있다. 즉, 하나의 CTU는 같은 면적을 가진 8개의 PAU로 나뉠 수 있다.If the value (VALUE OF PAU_NUM_IN_CTU) of the pipeline area unit number information (PAU_NUM_IN_CTU) is "0x03", the number of pipeline area units (THE NUMBER OF PAU IN CTU) included in a single CTU may be 8. This may mean that one CTU includes 8 PAUs. That is, one CTU can be divided into eight PAUs with the same area.
도 13은 본 개시의 예시적인 실시예들에 따른 파이프라인 영역 유닛 모드 정보를 설명하기 위한 도면이다.FIG. 13 is a diagram for explaining pipeline area unit mode information according to example embodiments of the present disclosure.
도 13을 참조하면, 파이프라인 영역 유닛 모드 정보(PAU_MODE)는 하나의 CTU에서 파이프라인 영역 유닛을 분할하는 방식을 나타낼 수 있다. 일부 실시예들에서, 파이프라인 영역 유닛 모드 정보(PAU_MODE)는, CU의 크기가 PAU의 크기보다 큰 경우, 하나의 CTU를 특정 형태를 갖는 PAU로 나누는 방법을 의미할 수 있다.Referring to FIG. 13, pipeline area unit mode information (PAU_MODE) may indicate a method of dividing pipeline area units in one CTU. In some embodiments, pipeline area unit mode information (PAU_MODE) may refer to a method of dividing one CTU into PAUs having a specific type when the size of the CU is larger than the size of the PAU.
도 13을 참조하여 예를 들면, 파이프라인 영역 유닛 모드 정보(PAU_MODE)는 쿼드 모드(QUAD), 호라이즌 모드(HOR), 버티컬 모드(VER), 및 기타 모드(ELSE)를 포함할 수 있다. 하지만, 이에 한정되는 것은 아니다.For example, with reference to FIG. 13, pipeline area unit mode information (PAU_MODE) may include quad mode (QUAD), horizon mode (HOR), vertical mode (VER), and other modes (ELSE). However, it is not limited to this.
쿼드 모드(QUAD)는, 하나의 CTU를 정사각형의 파이프라인 영역 유닛으로 나누는 모드일 수 있다. 예를 들면, 하나의 CTU 내에서 4개의 파이프라인 영역 유닛들이 포함될 수 있고, 각 파이프라인 영역 유닛의 형태는 정사각형일 수 있다.Quad mode (QUAD) may be a mode that divides one CTU into square pipeline area units. For example, four pipeline area units may be included within one CTU, and the shape of each pipeline area unit may be square.
호라이즌 모드(HOR)는, 상기 하나의 CTU를 상대적으로 긴 수평 길이를 갖는 직사각형의 파이프라인 영역 유닛으로 나누는 모드일 수 있다. 예를 들면, 하나의 CTU 내에서 2개 이상의 파이프라인 영역 유닛들이 포함될 수 있고, 각 파이프라인 영역 유닛의 형태는 세로보다 더 긴 가로를 갖는 직사각형일 수 있다.Horizon mode (HOR) may be a mode that divides the one CTU into rectangular pipeline area units with a relatively long horizontal length. For example, two or more pipeline area units may be included within one CTU, and the shape of each pipeline area unit may be a rectangle with a width longer than the length.
버티컬 모드(VER)는, 하나의 CTU를 상대적으로 긴 수직 길이를 갖는 직사각형의 파이프라인 영역 유닛으로 나누는 모드일 수 있다. 예를 들면, 하나의 CTU 내에서 2개 이상의 파이프라인 영역 유닛들이 포함될 수 있고, 각 파이프라인 영역 유닛의 형태는 가로보다 더 긴 세로를 갖는 직사각형일 수 있다.Vertical mode (VER) may be a mode that divides one CTU into rectangular pipeline area units with a relatively long vertical length. For example, two or more pipeline area units may be included within one CTU, and the shape of each pipeline area unit may be a rectangle with a length longer than width.
기타 모드(ELSE)는, CU의 형태에 따라 쿼드 모드(QUAD), 호라이즌 모드(HOR), 또는 버티컬 모드(VER)로 선택되는 모드일 수 있다. 예를 들면, CU의 수평 길이가 CU의 수직 길이와 같으면, 즉 CU의 형태가 정사각형이면, 기타 모드(ELSE)는 쿼드 모드(QUAD) 또는 호라이즌 모드(HOR)일 수 있다. 다른 예를 들면, CU의 수평 길이가 CU의 수직 길이보다 길면, 기타 모드(ELSE)는 버티컬 모드(VER)일 수 있다. 또 다른 예를 들면, CU의 수직 길이가 CU의 수평 길이보다 길면, 기타 모드(ELSE)는 호라이즌 모드(HOR)일 수 있다.The other mode (ELSE) may be a mode selected as quad mode (QUAD), horizon mode (HOR), or vertical mode (VER) depending on the type of CU. For example, if the horizontal length of the CU is the same as the vertical length of the CU, that is, if the shape of the CU is square, the other mode (ELSE) may be quad mode (QUAD) or horizon mode (HOR). For another example, if the horizontal length of the CU is longer than the vertical length of the CU, the other mode (ELSE) may be the vertical mode (VER). For another example, if the vertical length of the CU is longer than the horizontal length of the CU, the other mode (ELSE) may be the horizon mode (HOR).
도 14는 본 개시의 예시적인 실시예들에 따른 비디오 디코딩 장치의 동작 방법을 설명하기 위한 흐름도이다.FIG. 14 is a flowchart illustrating a method of operating a video decoding device according to example embodiments of the present disclosure.
도 14를 참조하면, 비디오 디코딩 장치의 동작 방법은 제1 파이프라인 스테이지(S100) 및 제2 파이프라인 스테이지(S200)를 포함할 수 있다.Referring to FIG. 14, a method of operating a video decoding device may include a first pipeline stage (S100) and a second pipeline stage (S200).
제1 파이프라인 스테이지(S100)에서, 제1 하드웨어 블록이, 제1 파이프라인 스테이지에서 비트스트림이 파이프라인 단위로 분할된 제1 유닛 데이터를 처리하여, 제1 유닛 데이터를 제1 파이프라인 메모리에 저장하는 단계가 수행된다(S1000). 단계 S1000는 도 3a를 참조하여 바와 동일할 수 있다.In the first pipeline stage (S100), the first hardware block processes first unit data in which the bitstream is divided into pipeline units in the first pipeline stage, and stores the first unit data in the first pipeline memory. A saving step is performed (S1000). Step S1000 may be the same as with reference to FIG. 3A.
제1 파이프라인 스테이지(S100)의 다음의 제2 파이프라인 스테이지(S200)에서, 제1 하드웨어 블록이, 제2 파이프라인 스테이지에서 파이프라인 단위로 분할된 제2 유닛 데이터를 처리하여, 제2 유닛 데이터를 제1 파이프라인 메모리에 저장하는 단계가 수행된다(S2000). 단계 S2000과 동시에, 제2 하드웨어 블록이, 제1 파이프라인 메모리에 저장된 제1 유닛 데이터를 읽어, 제1 유닛 데이터를 처리하고, 제1 유닛 데이터를 제2 파이프라인 메모리에 저장하는 단계가 수행된다(S2100). 단계 S2000 및 단계 S2100는 도 3b를 참조하여 바와 동일할 수 있다.In the second pipeline stage (S200) following the first pipeline stage (S100), the first hardware block processes the second unit data divided into pipeline units in the second pipeline stage to form the second unit. A step of storing data in the first pipeline memory is performed (S2000). Simultaneously with step S2000, the second hardware block reads the first unit data stored in the first pipeline memory, processes the first unit data, and stores the first unit data in the second pipeline memory. (S2100). Step S2000 and step S2100 may be the same as with reference to FIG. 3B.
일부 실시예들에서, 제1 파이프라인 스테이지(S100)에서, 단계 S1000과 동시에, 제2 하드웨어 블록이, 제1 파이프라인 스테이지 이전의 파이프라인 스테이지에서 처리된 유닛 데이터를 제1 파이프라인 메모리로부터 읽어, 유닛 데이터를 처리하는 단계가 수행된다. 일 실시예에서, 처리되는 유닛 데이터는 제2 파이프라인 메모리에 저장될 수 있다. 다른 실시예에서, 제2 파이프라인 스테이지(S200)에서, 단계 S2000 및 단계 S2100과 동시에, 제3 하드웨어 블록이, 제2 파이프라인 메모리에 저장된 유닛 데이터를 읽어, 유닛 데이터를 처리하는 단계가 더 수행된다.In some embodiments, in the first pipeline stage S100, simultaneously with step S1000, the second hardware block reads unit data processed in the pipeline stage prior to the first pipeline stage from the first pipeline memory. , steps for processing unit data are performed. In one embodiment, the unit data being processed may be stored in a second pipeline memory. In another embodiment, in the second pipeline stage S200, simultaneously with steps S2000 and S2100, a third hardware block further performs the step of reading unit data stored in the second pipeline memory and processing the unit data. do.
일부 실시예들에서, 비디오 디코딩 장치의 동작 방법은 제2 파이프라인 스테이지(S200) 다음의 제3 파이프라인 스테이지를 더 포함할 수 있다. 제3 파이프라인 스테이지에서, 제1 하드웨어 블록이, 비트스트림에서 파이프라인 단위로 분할된 제3 유닛 데이터를 처리하여, 제3 유닛 데이터를 제1 파이프라인 메모리에 저장하는 단계, 및 동시에, 제2 하드웨어 블록이, 제1 파이프라인 메모리에 저장된 제2 유닛 데이터를 읽고, 제2 유닛 데이터를 처리하고, 제2 유닛 데이터를 제2 파이프라인 메모리에 저장하는 단계, 및 동시에, 제3 하드웨어 블록이, 제2 파이프라인 메모리에 저장된 제1 유닛 데이터를 읽어, 제1 유닛 데이터를 처리하는 단계가 수행된다.In some embodiments, the method of operating the video decoding device may further include a third pipeline stage following the second pipeline stage (S200). In the third pipeline stage, the first hardware block processes third unit data divided into pipeline units in the bitstream and stores the third unit data in the first pipeline memory, and at the same time, the second a hardware block reading second unit data stored in a first pipeline memory, processing the second unit data, and storing the second unit data in the second pipeline memory, and at the same time, a third hardware block comprising: A step of reading first unit data stored in the second pipeline memory and processing the first unit data is performed.
전술한 바에 의하면, 비디오 압축 방식이나, 트리 분할 모드와 무관하게 상대적으로 적은 파이프라인 단위로 디코딩 동작을 수행함으로써, 파이프라인 메모리의 크기, 저장 용량을 감소시키는 효과가 있다.As described above, by performing a decoding operation in relatively small pipeline units regardless of the video compression method or tree splitting mode, there is an effect of reducing the size and storage capacity of the pipeline memory.
도 15는 본 개시의 예시적인 실시예들에 따른 파이프라인 단위로 유닛 데이터를 처리하는 방법을 설명하기 위한 흐름도이다.FIG. 15 is a flowchart illustrating a method of processing unit data on a pipeline basis according to example embodiments of the present disclosure.
도 15를 참조하면, 도 15에 도시된 파이프라인 단위로 유닛 데이터를 처리하는 방법은, 도 2, 도 3a, 도 3b, 도 3c, 도 4, 및 도 5를 참조하여 전술한 바와 같이 하드웨어 블록들과 파이프라인 메모리들의 동작 방법에 대응될 수 있다.Referring to FIG. 15, the method of processing unit data in pipeline units shown in FIG. 15 includes hardware blocks as described above with reference to FIGS. 2, 3A, 3B, 3C, 4, and 5. It can correspond to the operation method of the pipeline memories.
단계 S10에서, 코딩 트리 블록(coding tree block: CTB, 이하 "CTB")이 시작된다. In step S10, a coding tree block (CTB) begins.
단계 S20에서, 하나의 CTB에 포함된 CU가 시작된다.In step S20, a CU included in one CTB is started.
단계 S30에서, 하드웨어 블록이 입력 버퍼를 읽고, 유닛 데이터를 처리하며, 출력 버퍼에 쓴다. 여기서, 입력 버퍼는 하드웨어 블록의 전단에 위치하는 파이프라인 메모리의 버퍼일 수 있다. 출력 버퍼는 하드웨어 블록의 후단에 위치하는 파이프라인 메모리의 버퍼일 수 있다. In step S30, the hardware block reads the input buffer, processes unit data, and writes to the output buffer. Here, the input buffer may be a buffer of pipeline memory located at the front of the hardware block. The output buffer may be a buffer in the pipeline memory located at the rear of the hardware block.
단계 S40에서, 버퍼 어드레스가 증가한다. 버퍼 어드레스가 증가한다는 것은 버퍼 어드레스의 번호가 증가한다는 것일 수 있다. 도 10a를 참조하면, 어드레스 번호가 1에서 2로 증가할 수 있다. 하지만, 이에 한정되는 것은 아니다.In step S40, the buffer address is incremented. Increasing the buffer address may mean that the buffer address number increases. Referring to FIG. 10A, the address number may increase from 1 to 2. However, it is not limited to this.
단계 S50에서, 버퍼 어드레스와 파이프라인 사이즈 간의 비율이 0인지 여부가 판단된다. 여기서, 파이프라인 사이즈는 파이프라인 메모리의 크기, 즉 파이프라인 메모리의 저장 용량일 수 있다.In step S50, it is determined whether the ratio between the buffer address and the pipeline size is 0. Here, the pipeline size may be the size of the pipeline memory, that is, the storage capacity of the pipeline memory.
버퍼 어드레스와 파이프라인 사이즈 간의 비율이 0이 아니면(S50, 아니오), 단계 S30이 수행된다. 버퍼 어드레스와 파이프라인 사이즈 간의 비율이 0이면(S50, 예), 단계 S60에서, 서브 파이프라인이 완료된다. 서브 파이프라인은 하나의 CU 내 포함되는 파이프라인일 수 있다.If the ratio between the buffer address and the pipeline size is not 0 (S50, no), step S30 is performed. If the ratio between the buffer address and the pipeline size is 0 (S50, yes), then in step S60, the sub-pipeline is completed. A sub-pipeline may be a pipeline included within one CU.
단계 S70에서, CU의 끝인지 여부가 판단된다. CU의 끝이 아니면(S70, 아니오), 단계 S30이 수행된다. CU의 끝이 맞으면(S70, 예), 단계 S80에서, CTB의 끝인지 여부가 판단된다. CTB의 끝이 아니면(S80, 아니오), 단계 S20이 수행된다. CTB의 맞으면(S80, 예), 단계 S90에서, CTB가 완료된다.In step S70, it is determined whether the CU is at the end. If it is not the end of the CU (S70, no), step S30 is performed. If the end of the CU is correct (S70, yes), in step S80, it is determined whether it is the end of the CTB. If it is not the end of the CTB (S80, no), step S20 is performed. If the CTB is correct (S80, yes), in step S90, the CTB is completed.
도 16은 본 개시의 예시적인 실시예들에 따른 디스플레이 장치의 블록도이다.Figure 16 is a block diagram of a display device according to example embodiments of the present disclosure.
도 16을 참조하면, 디스플레이 장치(1400)는, 휴대용 통신 단말기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 웨어러블 기기, 헬스케어 기기 또는 IoT(internet of things) 기기와 같은 모바일(mobile) 시스템에 포함될 수 있다. 하지만, 디스플레이 장치(1400)가 전술한 바에 한정되는 것은 아니다. 디스플레이 장치(1400)는 개인용 컴퓨터(personal computer), 랩탑(laptop) 컴퓨터, 서버(server), 미디어 재생기(media player) 또는 내비게이션(navigation)과 같은 차량용 장비(automotive device) 등에 포함될 수도 있다.Referring to FIG. 16, the
디스플레이 장치(1400)는 프로세서(1410), 디코더(1420), 메모리(1430), 및 디스플레이 모듈(1440)을 포함할 수 있다. The
프로세서(1410)는 디스플레이 장치(1400)의 전반적인 동작, 보다 구체적으로는 디스플레이 장치(1400)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 프로세서(1410)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다. The
프로세서(1410)는 하나 이상의 CPU 코어(1110)를 포함할 수 있다. 프로세서(1410)는 디코더(1420), 메모리(1430), 및 디스플레이 모듈(1440)을 제어하기 위한 적어도 하나의 컨트롤러를 더 포함할 수 있다.
프로세서(1410)는 AI(artificial intelligence) 데이터 연산 등 고속 데이터 연산을 위한 전용 회로인 가속기(accelerator)를 더 포함할 수 있다. 이와 같은 가속기는 GPU(Graphics Processing Unit), NPU(Neural Processing Unit) 및/또는 DPU(Data Processing Unit) 등을 포함할 수 있으며, 프로세서(1410)의 다른 구성 요소와는 물리적으로 독립된 별개의 칩(chip)으로 구현될 수도 있다.The
디코더(1420) 및 메모리(1430)는 도 1에 도시된 디코더(210) 및 메모리(220)에 대응될 수 있다.The
디스플레이 모듈(1440)은 사용자에게 각각 시각적 정보를 출력하는 출력 장치로 기능할 수 있다. 디스플레이 모듈(1440)은 디코더(1420)에 의해 디코딩된 영상 데이터에 따른 영상을 표시할 수 있다.The
본 개시의 범위 또는 기술적 사상을 벗어나지 않고 본 개시의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 개시의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 개시가 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.It is obvious to those skilled in the art that the structure of the present disclosure can be modified or changed in various ways without departing from the scope or technical spirit of the present disclosure. In view of the foregoing, it is believed that the present disclosure includes modifications and modifications of the present disclosure if such modifications and variations fall within the scope of the following claims and equivalents.
이상과 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, exemplary embodiments have been disclosed in the drawings and specifications. Although embodiments have been described in this specification using specific terms, this is only used for the purpose of explaining the technical idea of the present disclosure and is not used to limit the meaning or scope of the present disclosure as set forth in the claims. . Therefore, those skilled in the art will understand that various modifications and other equivalent embodiments are possible therefrom. Therefore, the true technical protection scope of the present disclosure should be determined by the technical spirit of the attached patent claims.
Claims (20)
상기 디코더에 의해 디코딩된 영상 데이터를 저장하는 메모리를 포함하고,
상기 유닛 데이터는,
코딩 트리 유닛(CTU: Coding Tree Unit, 이하 "CTU")에 포함된 복수의 단위 픽셀 그룹들 중 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 코딩 유닛(CU: Coding Unit, 이하 "CU")의 크기를 나타내는 현재 CU 사이즈 정보, 상기 단위 픽셀 그룹들 각각이 속한 현재의 CU의 다음(next) CU의 위치를 나타내는 다음 CU 위치 정보, 및 단위 픽셀 그룹의 스캔 타입을 나타내는 스캔 타입 정보를 포함하는, 비디오 디코딩 장치.A plurality of hardware blocks for decoding and processing a bitstream on a pipeline basis, and unit data located between the plurality of hardware blocks and processed on a pipeline basis by each of the plurality of hardware blocks through a pipeline. A decoder including a plurality of pipeline memories stored for each stage; and
Includes a memory for storing image data decoded by the decoder,
The unit data is,
The current coding unit (CU: Coding Unit, hereinafter) to which each unit pixel group corresponding to a pipeline area unit belongs among a plurality of unit pixel groups included in a coding tree unit (CTU: Coding Tree Unit, hereinafter “CTU”). Current CU size information indicating the size of the unit pixel group, next CU position information indicating the position of the next CU of the current CU to which each of the unit pixel groups belongs, and scan type indicating the scan type of the unit pixel group. A video decoding device containing information.
상기 복수의 하드웨어 블록들은,
제1 하드웨어 블록 및 제2 하드웨어 블록을 포함하고,
상기 복수의 파이프라인 메모리들은,
상기 제1 하드웨어 블록에 의해 처리된 제1 유닛 데이터를 저장하고, 상기 제2 하드웨어 블록에 제공될 제2 유닛 데이터를 저장하는, 제1 파이프라인 메모리를 포함하는 것을 특징으로 하는, 비디오 디코딩 장치.According to claim 1,
The plurality of hardware blocks are,
Comprising a first hardware block and a second hardware block,
The plurality of pipeline memories are,
A video decoding device comprising a first pipeline memory that stores first unit data processed by the first hardware block and stores second unit data to be provided to the second hardware block.
상기 제1 하드웨어 블록이 상기 제1 유닛 데이터를 처리하여 상기 제1 유닛 데이터를 상기 제1 파이프라인 메모리에 저장하고, 동시에, 상기 제2 하드웨어 블록이 상기 제2 유닛 데이터를 처리하는 것을 특징으로 하는, 비디오 디코딩 장치.According to clause 2,
The first hardware block processes the first unit data and stores the first unit data in the first pipeline memory, and at the same time, the second hardware block processes the second unit data. , video decoding device.
상기 제1 파이프라인 메모리는,
상기 제1 유닛 데이터를 저장하는 제1 메모리; 및
상기 제2 유닛 데이터를 저장하는 제2 메모리를 포함하는 것을 특징으로 하는, 비디오 디코딩 장치.According to clause 2,
The first pipeline memory is,
a first memory storing the first unit data; and
A video decoding device comprising a second memory storing the second unit data.
제1 파이프라인 스테이지에서, 상기 제1 하드웨어 블록은 상기 제1 유닛 데이터를 상기 제1 메모리에 저장하고, 상기 제2 하드웨어 블록은 상기 제2 메모리로부터 상기 제2 유닛 데이터를 읽고,
상기 제1 파이프라인 스테이지 다음의 제2 파이프라인 스테이지에서, 상기 제1 하드웨어 블록은 새로운 유닛 데이터를 상기 제2 메모리에 저장하고, 상기 제2 하드웨어 블록은 상기 제1 메모리로부터 상기 제1 유닛 데이터를 읽는 것을 특징으로 하는, 비디오 디코딩 장치.According to clause 4,
In a first pipeline stage, the first hardware block stores the first unit data in the first memory, and the second hardware block reads the second unit data from the second memory,
In a second pipeline stage following the first pipeline stage, the first hardware block stores new unit data in the second memory, and the second hardware block stores the first unit data from the first memory. A video decoding device, characterized in that reading.
상기 복수의 하드웨어 블록들은,
제1 하드웨어 블록 및 제2 하드웨어 블록을 포함하고,
상기 제1 하드웨어 블록은,
상기 비트스트림에서 상기 유닛 데이터를, 상기 복수의 파이프라인 메모리들 중 상기 제1 하드웨어 블록 및 상기 제2 하드웨어 블록 사이의 파이프라인 메모리에 저장하는 것을 특징으로 하는, 비디오 디코딩 장치.According to claim 1,
The plurality of hardware blocks are,
Comprising a first hardware block and a second hardware block,
The first hardware block is,
A video decoding device, characterized in that storing the unit data in the bitstream in a pipeline memory between the first hardware block and the second hardware block among the plurality of pipeline memories.
상기 복수의 파이프라인 메모리들은, 각각
상기 파이프라인 영역 유닛에 포함되는 단위 픽셀 그룹들에 대응되는 복수의 버퍼 어드레스들을 갖는 복수의 버퍼들을 포함하는 것을 특징으로 하는, 비디오 디코딩 장치.According to claim 1,
The plurality of pipeline memories each
A video decoding device comprising a plurality of buffers having a plurality of buffer addresses corresponding to unit pixel groups included in the pipeline area unit.
상기 복수의 하드웨어 블록들은,
상기 비트스트림을 파싱(parsing)하는 비트스트림 파싱 블록;
파싱된 비트스트림을 역양자화하고, 역양자화된 결과에 대하여 역변환을 수행하는 IQT 블록;
상기 파싱된 비트스트림을 기초로 모션 벡터를 생성하는 모션 벡터 블록;
상기 모션 벡터를 기초로 예측 블록을 생성하는 인트라 모드 블록;
상기 모션 벡터를 기초로 모션 보상을 수행하는 모션 보상 블록;
상기 모션 벡터를 기초로 인터 예측을 수행하는 인터 예측 블록;
상기 모션 벡터, 상기 예측 블록, 상기 인터 예측의 수행 결과를 기초로 인트라 예측을 수행하는 인트라 예측 및 리콘 블록; 및
상기 디코딩된 영상 데이터를 상기 메모리에 저장하는 루프 필터 블록을 포함하는 것을 특징으로 하는, 비디오 디코딩 장치.According to claim 1,
The plurality of hardware blocks are,
A bitstream parsing block that parses the bitstream;
An IQT block that dequantizes the parsed bitstream and performs inverse transformation on the dequantized result;
a motion vector block that generates a motion vector based on the parsed bitstream;
an intra-mode block that generates a prediction block based on the motion vector;
a motion compensation block that performs motion compensation based on the motion vector;
an inter prediction block that performs inter prediction based on the motion vector;
an intra prediction and recon block that performs intra prediction based on the motion vector, the prediction block, and a result of the inter prediction; and
A video decoding device comprising a loop filter block that stores the decoded image data in the memory.
상기 복수의 파이프라인 메모리들은,
상기 비트스트림 파싱 블록과 상기 역양자화 블록 사이에 배치되는 제1 파이프라인 메모리;
상기 비트스트림 파싱 블록과 상기 모션 벡터 블록 사이에 배치되는 제2 파이프라인 메모리;
상기 역양자화 블록과 상기 인트라 예측 및 리콘 블록 사이에 배치되는 제3 파이프라인 메모리;
상기 모션 벡터 블록과 상기 인트라 모드 블록 사이에 배치되는 제4 파이프라인 메모리;
상기 모션 벡터 블록과 상기 모션 보상 블록 사이에 배치되는 제5 파이프라인 메모리;
상기 인트라 모드 블록과 상기 인트라 예측 및 리콘 블록 사이에 배치되는 제6 파이프라인 메모리;
상기 모션 보상 블록과 상기 인터 예측 블록 사이에 배치되는 제7 파이프라인 메모리;
상기 인터 예측 블록과 상기 인트라 예측 및 리콘 블록 사이에 배치되는 제8 파이프라인 메모리; 및
상기 인트라 예측 및 리콘 블록과 상기 필터 블록 사이에 배치되는 제9 파이프라인 메모리를 포함하는 것을 특징으로 하는, 비디오 디코딩 장치.According to clause 8,
The plurality of pipeline memories are,
a first pipeline memory disposed between the bitstream parsing block and the dequantization block;
a second pipeline memory disposed between the bitstream parsing block and the motion vector block;
a third pipeline memory disposed between the dequantization block and the intra prediction and recon block;
a fourth pipeline memory disposed between the motion vector block and the intra mode block;
a fifth pipeline memory disposed between the motion vector block and the motion compensation block;
a sixth pipeline memory disposed between the intra mode block and the intra prediction and recon block;
a seventh pipeline memory disposed between the motion compensation block and the inter prediction block;
an eighth pipeline memory disposed between the inter prediction block and the intra prediction and recon block; and
A video decoding device comprising a ninth pipeline memory disposed between the intra prediction and recon block and the filter block.
제1 파이프라인 스테이지에서,
제1 하드웨어 블록이, 상기 제1 파이프라인 스테이지에서 비트스트림이 파이프라인 단위로 분할된 제1 유닛 데이터를 처리하여, 상기 제1 유닛 데이터를 제1 파이프라인 메모리에 저장하는 단계;
상기 제1 파이프라인 스테이지 다음의 제2 파이프라인 스테이지에서,
상기 제1 하드웨어 블록이, 상기 제2 파이프라인 스테이지에서 상기 파이프라인 단위로 분할된 제2 유닛 데이터를 처리하여, 상기 제2 유닛 데이터를 상기 제1 파이프라인 메모리에 저장하는 단계; 및
동시에, 제2 하드웨어 블록이, 상기 제1 파이프라인 메모리에 저장된 상기 제1 유닛 데이터를 읽어, 상기 제1 유닛 데이터를 처리하는 단계;
를 포함하는, 비디오 디코딩 장치의 동작 방법.In a method of operating a video decoding device including a plurality of hardware blocks and a plurality of pipeline memories,
In the first pipeline stage,
Processing, by a first hardware block, first unit data in which the bitstream is divided into pipeline units in the first pipeline stage, and storing the first unit data in a first pipeline memory;
In a second pipeline stage following the first pipeline stage,
Processing, by the first hardware block, second unit data divided into pipeline units in the second pipeline stage and storing the second unit data in the first pipeline memory; and
At the same time, a second hardware block reads the first unit data stored in the first pipeline memory and processes the first unit data;
A method of operating a video decoding device, including.
상기 제1 파이프라인 스테이지에서,
동시에, 상기 제2 하드웨어 블록이, 상기 제1 파이프라인 스테이지 이전의 파이프라인 스테이지에서 처리된 유닛 데이터를 상기 제1 파이프라인 메모리로부터 읽어, 상기 유닛 데이터를 처리하는 단계;
를 더 포함하는 것을 특징으로 하는, 비디오 디코딩 장치의 동작 방법.According to claim 10,
In the first pipeline stage,
At the same time, the second hardware block reads unit data processed in a pipeline stage before the first pipeline stage from the first pipeline memory and processes the unit data;
A method of operating a video decoding device, further comprising:
상기 제1 파이프라인 스테이지에서,
상기 유닛 데이터를 처리하는 단계는,
상기 유닛 데이터를 제2 파이프라인 메모리에 저장하고,
상기 제2 파이프라인 스테이지에서,
상기 제1 유닛 데이터를 처리하는 단계는,
상기 제1 유닛 데이터를 상기 제2 파이프라인 메모리에 저장하고,
상기 제2 파이프라인 스테이지에서,
동시에, 제3 하드웨어 블록이, 상기 제2 파이프라인 메모리에 저장된 상기 유닛 데이터를 읽어, 상기 유닛 데이터를 처리하는 단계;
를 더 포함하는 것을 특징으로 하는, 비디오 디코딩 장치의 동작 방법.According to claim 11,
In the first pipeline stage,
The step of processing the unit data is,
Store the unit data in a second pipeline memory,
In the second pipeline stage,
The step of processing the first unit data is,
Store the first unit data in the second pipeline memory,
In the second pipeline stage,
At the same time, a third hardware block reads the unit data stored in the second pipeline memory and processes the unit data;
A method of operating a video decoding device, further comprising:
상기 제2 파이프라인 스테이지 다음의 제3 파이프라인 스테이지에서,
상기 제1 하드웨어 블록이, 상기 비트스트림에서 상기 파이프라인 단위로 분할된 제3 유닛 데이터를 처리하여, 상기 제3 유닛 데이터를 상기 제1 파이프라인 메모리에 저장하는 단계;
동시에, 상기 제2 하드웨어 블록이, 상기 제1 파이프라인 메모리에 저장된 상기 제2 유닛 데이터를 읽고, 상기 제2 유닛 데이터를 처리하고, 상기 제2 유닛 데이터를 상기 제2 파이프라인 메모리에 저장하는 단계; 및
동시에, 상기 제3 하드웨어 블록이, 상기 제2 파이프라인 메모리에 저장된 상기 제1 유닛 데이터를 읽어, 상기 제1 유닛 데이터를 처리하는 단계;
를 더 포함하는 것을 특징으로 하는, 비디오 디코딩 장치의 동작 방법.According to claim 12,
In a third pipeline stage following the second pipeline stage,
Processing, by the first hardware block, third unit data divided into pipeline units from the bitstream and storing the third unit data in the first pipeline memory;
At the same time, the second hardware block reads the second unit data stored in the first pipeline memory, processes the second unit data, and stores the second unit data in the second pipeline memory. ; and
At the same time, the third hardware block reads the first unit data stored in the second pipeline memory and processes the first unit data;
A method of operating a video decoding device, further comprising:
상기 제2 파이프라인 스테이지에서,
상기 제1 유닛 데이터를 처리하는 단계는,
상기 제1 유닛 데이터를 제2 파이프라인 메모리에 저장하고,
상기 제2 파이프라인 스테이지 다음의 제3 파이프라인 스테이지에서,
상기 제1 하드웨어 블록이, 상기 제3 파이프라인 스테이지에서 상기 파이프라인 단위로 분할된 제3 유닛 데이터를 처리하여, 상기 제3 유닛 데이터를 상기 제1 파이프라인 메모리에 저장하는 단계;
동시에, 상기 제2 하드웨어 블록이, 상기 제1 파이프라인 메모리에 저장된 상기 제2 유닛 데이터를 읽고, 상기 제2 유닛 데이터를 처리하고, 상기 제2 유닛 데이터를 상기 제2 파이프라인 메모리에 저장하는 단계; 및
동시에, 제3 하드웨어 블록이, 상기 제2 파이프라인 메모리에 저장된 상기 제1 유닛 데이터를 읽어, 상기 제1 유닛 데이터를 처리하는 단계;According to claim 10,
In the second pipeline stage,
The step of processing the first unit data is,
Store the first unit data in a second pipeline memory,
In a third pipeline stage following the second pipeline stage,
Processing, by the first hardware block, third unit data divided into pipeline units in the third pipeline stage and storing the third unit data in the first pipeline memory;
At the same time, the second hardware block reads the second unit data stored in the first pipeline memory, processes the second unit data, and stores the second unit data in the second pipeline memory. ; and
At the same time, a third hardware block reads the first unit data stored in the second pipeline memory and processes the first unit data;
상기 제1 유닛 데이터는,
코딩 트리 유닛(CTU: Coding Tree Unit, 이하 "CTU")에 포함된 복수의 단위 픽셀 그룹들 중 제1 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 코딩 유닛(CU: Coding Unit, 이하 "CU")의 크기를 나타내는 제1 현재 CU 사이즈 정보, 상기 제1 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 CU의 다음(next) CU의 위치를 나타내는 제1 다음 CU 위치 정보, 및 단위 픽셀 그룹의 스캔 타입을 나타내는 스캔 타입 정보를 포함하고,
상기 제2 유닛 데이터는,
상기 복수의 단위 픽셀 그룹들 중 상기 제1 파이프라인 영역과 다른 제2 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 CU의 크기를 나타내는 제2 현재 CU 사이즈 정보, 상기 제2 파이프라인 영역 유닛에 대응되는 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 CU의 다음 CU의 위치를 나타내는 제2 다음 CU 위치 정보, 및 상기 스캔 타입 정보를 포함하는 것을 특징으로 하는, 비디오 디코딩 장치의 동작 방법.According to claim 10,
The first unit data is,
The current coding unit (CU: Coding Unit) to which each of the unit pixel groups corresponding to the first pipeline area unit belongs among a plurality of unit pixel groups included in the Coding Tree Unit (CTU) (hereinafter “CTU”). , hereinafter “CU”), first current CU size information indicating the size of the current CU, and first next indicating the location of the next CU of the current CU to which each of the unit pixel groups corresponding to the first pipeline area unit belongs. Contains CU position information and scan type information indicating the scan type of the unit pixel group,
The second unit data is,
Second current CU size information indicating the size of the current CU to which each of the unit pixel groups corresponding to a second pipeline area unit different from the first pipeline area unit among the plurality of unit pixel groups belongs, the second pipe An operation of a video decoding device, characterized in that it includes second next CU position information indicating the position of the next CU of the current CU to which each of the corresponding unit pixel groups corresponding to the line area unit belongs, and the scan type information. method.
상기 비트스트림을 파이프라인 단위로 디코딩하고, 디코딩된 영상 데이터를 출력하는 비디오 디코딩 장치를 포함하고,
상기 비디오 디코딩 장치는,
상기 파이프라인 단위로 분할된 유닛 데이터를 처리하는 복수의 하드웨어 블록들; 및
상기 유닛 데이터를 저장하기 위해 상기 파이프라인 영역 유닛 정보에 대응되는 메모리 크기를 갖는 복수의 파이프라인 메모리들을 포함하는, 비디오 시스템.a video encoding device that provides a bitstream including pipeline area unit information regarding the pipeline area unit; and
A video decoding device that decodes the bitstream in pipeline units and outputs decoded video data,
The video decoding device,
a plurality of hardware blocks that process unit data divided into pipeline units; and
A video system comprising a plurality of pipeline memories having a memory size corresponding to the pipeline area unit information for storing the unit data.
상기 파이프라인 영역 유닛 정보는,
하나의 코딩 트리 유닛(CTU: Coding Tree Unit, 이하 "CTU")에 포함되는 파이프라인 영역 유닛의 개수를 나타내는 파이프라인 영역 유닛 개수 정보를 포함하는 것을 특징으로 하는, 비디오 시스템.According to claim 16,
The pipeline area unit information is,
A video system comprising pipeline area unit number information indicating the number of pipeline area units included in one Coding Tree Unit (CTU) (hereinafter “CTU”).
상기 파이프라인 영역 유닛 정보는,
상기 하나의 CTU에서 상기 파이프라인 영역 유닛을 분할하는 방식을 나타내는 파이프라인 영역 유닛 모드 정보를 더 포함하는 것을 특징으로 하는, 비디오 시스템.According to claim 17,
The pipeline area unit information is,
The video system further includes pipeline area unit mode information indicating a method of dividing the pipeline area unit in the one CTU.
상기 파이프라인 영역 유닛 모드 정보는,
상기 하나의 CTU를 정사각형의 파이프라인 영역 유닛으로 나누는 쿼드 모드, 상기 하나의 CTU를 상대적으로 긴 수평 길이를 갖는 직사각형의 파이프라인 영역 유닛으로 나누는 호라이즌 모드, 및 상기 하나의 CTU를 상대적으로 긴 수직 길이를 갖는 직사각형의 파이프라인 영역 유닛으로 나누는 버티컬 모드를 포함하는 것을 특징으로 하는, 비디오 시스템.According to clause 18,
The pipeline area unit mode information is,
Quad mode, which divides the one CTU into square pipeline area units, Horizon mode, which divides the one CTU into rectangular pipeline area units with a relatively long horizontal length, and Horizon mode, which divides the one CTU into rectangular pipeline area units with a relatively long vertical length A video system comprising a vertical mode divided into rectangular pipelined area units having .
상기 유닛 데이터는,
하나의 CTU에 포함된 복수의 단위 픽셀 그룹들 중 상기 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 CU의 크기를 나타내는 현재 CU 사이즈 정보, 상기 단위 픽셀 그룹들 각각이 속한 현재의 CU의 다음(next) CU의 위치를 나타내는 다음 CU 위치 정보, 및 단위 픽셀 그룹의 스캔 타입을 나타내는 스캔 타입 정보를 포함하는 것을 특징으로 하는, 비디오 시스템.According to claim 16,
The unit data is,
Current CU size information indicating the size of the current CU to which each of the unit pixel groups corresponding to the pipeline area unit belongs among a plurality of unit pixel groups included in one CTU, and the current CU to which each of the unit pixel groups belongs. A video system comprising next CU position information indicating the position of the next CU, and scan type information indicating the scan type of a unit pixel group.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/214,112 US20240080499A1 (en) | 2022-09-05 | 2023-06-26 | Video decoding device, operating method thereof, display device, and video system |
CN202310929726.2A CN117651145A (en) | 2022-09-05 | 2023-07-26 | Video decoding device, operation method thereof and video system |
EP23190423.6A EP4340361A1 (en) | 2022-09-05 | 2023-08-08 | Video decoding device, operating method thereof, and video system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20220112338 | 2022-09-05 | ||
KR1020220112338 | 2022-09-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240033618A true KR20240033618A (en) | 2024-03-12 |
Family
ID=90299942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220151989A KR20240033618A (en) | 2022-09-05 | 2022-11-14 | Video decoding device, operation method thereof, display device, and video system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240033618A (en) |
-
2022
- 2022-11-14 KR KR1020220151989A patent/KR20240033618A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11611757B2 (en) | Position dependent intra prediction combination extended with angular modes | |
US9967577B2 (en) | Acceleration interface for video decoding | |
US10575007B2 (en) | Efficient decoding and rendering of blocks in a graphics pipeline | |
JP5280530B2 (en) | Fragmentation reference with temporal compression for video coding | |
KR101240450B1 (en) | Methods for determining block averages for film grain simulation | |
KR100994979B1 (en) | Parallel decoding of intra-encoded video | |
US20180103261A1 (en) | Browser-based video decoder using multiple cpu threads | |
KR20150056811A (en) | Content adaptive transform coding for next generation video | |
US20170264904A1 (en) | Intra-prediction complexity reduction using limited angular modes and refinement | |
CN112333446B (en) | Intra-frame block copy reference block compression method | |
US11818397B2 (en) | Sparse matrix representation using a boundary of non-zero coefficients | |
JP2023508364A (en) | context-adaptive transform set | |
KR20230084143A (en) | Method and apparatus for encoding/decoding at least one attribute of an animated 3D object | |
KR20230162989A (en) | Multimedia data processing methods, apparatus, devices, computer-readable storage media, and computer program products | |
CN107018416B (en) | Adaptive tile data size coding for video and image compression | |
KR101065546B1 (en) | A hardware multi-standard video decoder device | |
KR20240033618A (en) | Video decoding device, operation method thereof, display device, and video system | |
US20240080499A1 (en) | Video decoding device, operating method thereof, display device, and video system | |
TW202412523A (en) | Video decoding device, operating method thereof, and video system | |
CN117651145A (en) | Video decoding device, operation method thereof and video system | |
WO2022217442A1 (en) | Coefficient encoding/decoding method, encoder, decoder, and computer storage medium | |
US11849129B2 (en) | Intra-block copy decoding using dynamic re-mapping of on-chip memory | |
CN111770338B (en) | Method, device and equipment for determining index value of coding unit and storage medium | |
WO2023065890A1 (en) | Multimedia data processing method and apparatus, computer device, computer readable storage medium, and computer program product | |
KR20170053031A (en) | Enhanced data processing apparatus using multiple-block based pipeline and operation method thereof |