TW201336311A - Parallel pyramid entropy coding for video and image compression - Google Patents

Parallel pyramid entropy coding for video and image compression Download PDF

Info

Publication number
TW201336311A
TW201336311A TW101146843A TW101146843A TW201336311A TW 201336311 A TW201336311 A TW 201336311A TW 101146843 A TW101146843 A TW 101146843A TW 101146843 A TW101146843 A TW 101146843A TW 201336311 A TW201336311 A TW 201336311A
Authority
TW
Taiwan
Prior art keywords
code
block
sub
blocks
pixel
Prior art date
Application number
TW101146843A
Other languages
Chinese (zh)
Other versions
TWI517662B (en
Inventor
Lei Zhang
Original Assignee
Broadcom Corp
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 Broadcom Corp filed Critical Broadcom Corp
Publication of TW201336311A publication Critical patent/TW201336311A/en
Application granted granted Critical
Publication of TWI517662B publication Critical patent/TWI517662B/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]

Landscapes

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

Abstract

Methods, systems, and computer program products are provided to divide code blocks, such as blocks of quantized coefficient of image or video data, into smaller blocks and sub-blocks that can be processed in parallel using layered entropy coding and decoding scheme. This division is accomplished while still encoding the entire code block using the same layered entropy coding scheme.

Description

圖片用於視訊處理的系統及其方法 Picture system and method for video processing

本公開總體上涉及視訊處理,並且更具體地,涉及視訊編碼技術。 The present disclosure relates generally to video processing and, more particularly, to video encoding techniques.

視訊編碼中的許多處理都涉及串列位元流的處理。為了編碼或解碼位元流,這些自身綁定至串列操作的處理需要更強力的處理器來有效地完成此目的。 Many of the processing in video coding involves the processing of serial bit streams. In order to encode or decode a bitstream, the processing of these self-binding to serial operations requires a more powerful processor to do this efficiently.

尤其是,當處理串列資料時,時脈速度成為了限制因素。如果在能夠解析(分辨,resolve)下一條資料之前需要先處理各條資料,那麼可以透過增加處理時脈速度來(通常線性地)增加系統速度。然而,高時脈速度需要額外的功耗和散熱。 In particular, when processing serial data, the clock speed becomes a limiting factor. If you need to process each piece of data before you can resolve (resolve) the next piece of data, you can increase the system speed by increasing the processing clock speed (usually linearly). However, high clock speeds require additional power and heat dissipation.

因此,希望提供一種可並行化編碼技術。 Therefore, it is desirable to provide a parallelizable coding technique.

本發明提供了一種方法,包括:將代碼塊劃分為畫素組;將畫素組劃分為子塊;以及使用用於代碼塊的分層編碼方案來將分配給子塊的畫素編碼。 The present invention provides a method comprising: dividing a code block into a pixel group; dividing the pixel group into sub-blocks; and encoding a pixel assigned to the sub-block using a layered coding scheme for the code block.

優選地,將代碼塊劃分為畫素組包括:將代碼塊劃分為四個等尺寸的畫素組。 Preferably, dividing the code block into a pixel group comprises dividing the code block into four equal-sized pixel groups.

優選地,將畫素組劃分為子塊包括:確定一組群集樣式;以及選擇用於配置畫素組之一的相應子塊的群集樣式。 Preferably, dividing the pixel group into sub-blocks comprises: determining a set of cluster styles; and selecting a cluster style for configuring a corresponding sub-block of one of the pixel groups.

優選地,選擇群集樣式包括:確定用於每個子塊的最小和最 大代碼尺寸;以及確定用於相應畫素組的子塊的最小尺寸配置。 Preferably, selecting the cluster style comprises: determining the minimum and maximum for each sub-block Large code size; and the minimum size configuration that determines the sub-blocks for the corresponding pixel group.

優選地,該方法還包括:使用分層熵編碼方案來將用於子塊和畫素組的代碼尺寸儲存在所編碼的流中。 Preferably, the method further comprises storing the code sizes for the sub-blocks and the pixel groups in the encoded stream using a hierarchical entropy coding scheme.

優選地,該方法還包括:接收包括代碼塊的資料流程;使用代碼尺寸和分層的解碼方案來將代碼塊分開為畫素組;使用代碼尺寸來將畫素組分開為子塊;以及並行地解碼子塊。 Preferably, the method further comprises: receiving a data flow including the code block; separating the code block into a pixel group using a code size and a layered decoding scheme; using the code size to open the pixel component into sub-blocks; and parallelizing Decode the sub-block.

本發明還提供了一種電腦可讀儲存裝置,其上儲存有指令,指令透過計算裝置來執行,指令的執行使計算裝置執行以下操作,包括:將代碼塊劃分為畫素組;將畫素組劃分為子塊;以及使用用於代碼塊的分層編碼方案來將分配給子塊的畫素編碼。 The present invention also provides a computer readable storage device having instructions stored thereon, the instructions being executed by the computing device, the execution of the instructions causing the computing device to perform the following operations, including: dividing the code block into pixel groups; Divided into sub-blocks; and uses a layered coding scheme for code blocks to encode the pixels assigned to the sub-blocks.

優選地,將代碼塊劃分為畫素組包括:將代碼塊劃分為四個等尺寸的畫素組。 Preferably, dividing the code block into a pixel group comprises dividing the code block into four equal-sized pixel groups.

優選地,將畫素組劃分為子塊包括:確定一組群集樣式;以及選擇用於配置畫素組之一的相應子塊的群集樣式。 Preferably, dividing the pixel group into sub-blocks comprises: determining a set of cluster styles; and selecting a cluster style for configuring a corresponding sub-block of one of the pixel groups.

優選地,選擇群集樣式包括:確定用於每個子塊的最小和最大代碼尺寸;以及確定用於相應畫素組的子塊的最小尺寸配置。 Preferably, selecting the cluster pattern comprises determining a minimum and maximum code size for each sub-block; and determining a minimum size configuration for the sub-block of the corresponding pixel group.

優選地,操作還包括:使用分層的熵編碼方案來將用於子塊和畫素組的代碼尺寸儲存在編碼的流中。 Preferably, the operations further comprise storing the code sizes for the sub-blocks and the pixel groups in the encoded stream using a layered entropy coding scheme.

優選地,操作還包括:接收包括代碼塊的資料流程;使用代碼尺寸和分層的解碼方案將代碼塊分開為畫素組;使用代碼尺寸來將畫素組分開為子塊;以及並行地解碼子塊。 Preferably, the operations further comprise: receiving a data flow including the code block; separating the code block into a pixel group using a code size and a layered decoding scheme; using the code size to open the pixel component into sub-blocks; and decoding in parallel Subblock.

本發明還提供了一種系統,包括:編碼器,儲存在記憶體中並且被配置為執行以下操作,包括:將代碼塊劃分為畫素組,將畫素組劃分為子塊,以及使用用於代碼塊的分層編碼方案來將分配給子塊的畫素編碼;以及一個以上的處理器,被配置為處理編碼器。 The present invention also provides a system comprising: an encoder stored in a memory and configured to perform the following operations, including: dividing a code block into a pixel group, dividing the pixel group into sub-blocks, and using A layered coding scheme of code blocks to encode the pixels assigned to the sub-blocks; and more than one processor configured to process the encoder.

優選地,將代碼塊劃分為畫素組包括:將代碼塊劃分為四個等尺寸的畫素組。 Preferably, dividing the code block into a pixel group comprises dividing the code block into four equal-sized pixel groups.

優選地,將畫素組劃分為子塊包括:確定一組群集樣式;以及選擇用於配置畫素組之一的相應子塊的群集樣式。 Preferably, dividing the pixel group into sub-blocks comprises: determining a set of cluster styles; and selecting a cluster style for configuring a corresponding sub-block of one of the pixel groups.

優選地,選擇群集樣式包括:確定用於每個子塊的最小和最大代碼尺寸;以及確定用於相應畫素組的子塊的最小尺寸配置。 Preferably, selecting the cluster pattern comprises determining a minimum and maximum code size for each sub-block; and determining a minimum size configuration for the sub-block of the corresponding pixel group.

優選地,編碼器還被配置為進行以下操作,包括:使用分層的熵編碼方案將用於子塊和畫素組的代碼尺寸儲存在所編碼的流中。 Preferably, the encoder is further configured to: store the code sizes for the sub-blocks and the pixel groups in the encoded stream using a layered entropy coding scheme.

優選地,該方法還包括:解碼器,被配置為執行以下操作,包括:接收包括代碼塊的資料流程,使用代碼尺寸和分層的解碼方案將代碼塊分開為畫素組,使用代碼尺寸來將畫素組分開為子塊,以及並行地解碼子塊。 Preferably, the method further comprises: a decoder configured to: receive a data flow including the code block, separate the code block into a pixel group using a code size and a layered decoding scheme, and use the code size to The pixel components are opened as sub-blocks, and the sub-blocks are decoded in parallel.

100‧‧‧熵編碼標準 100‧‧‧ Entropy coding standard

102‧‧‧字首代碼列表 102‧‧‧Front code list

104a~104n‧‧‧畫素 104a~104n‧‧‧ pixels

200、500‧‧‧處理 200, 500 ‧ ‧ processing

300‧‧‧編碼處理 300‧‧‧Code processing

402‧‧‧8×8代碼塊 402‧‧‧8×8 code block

404a、404b、404c、404d‧‧‧塊 404a, 404b, 404c, 404d‧‧‧

405‧‧‧子塊 405‧‧‧Sub-block

406‧‧‧塊資料 406‧‧‧Information

408‧‧‧子塊資料 408‧‧‧Sub-block data

410‧‧‧畫素資料 410‧‧‧ pixel data

600‧‧‧電腦系統 600‧‧‧ computer system

602‧‧‧顯示介面 602‧‧‧Display interface

604‧‧‧處理器 604‧‧‧ processor

606‧‧‧通訊基礎設施 606‧‧‧Communication infrastructure

608‧‧‧主記憶體 608‧‧‧ main memory

610‧‧‧第二記憶體 610‧‧‧Second memory

612‧‧‧硬碟驅動器 612‧‧‧ hard disk drive

614‧‧‧可移除儲存驅動器 614‧‧‧Removable storage drive

615、622‧‧‧可移除儲存單元 615, 622‧‧‧Removable storage unit

620‧‧‧介面 620‧‧‧ interface

624‧‧‧通訊介面 624‧‧‧Communication interface

626‧‧‧通訊路徑 626‧‧‧Communication Path

630‧‧‧顯示單元 630‧‧‧Display unit

202~210、302~312、502~510‧‧‧步驟 202~210, 302~312, 502~510‧‧‧ steps

圖1顯示了範例性熵編碼標準。 Figure 1 shows an exemplary entropy coding standard.

圖2是顯示了根據本公開的實施方式的去除代碼塊相互依賴性的步驟的處理的流程圖。 2 is a flow chart showing the process of steps of removing code block interdependencies in accordance with an embodiment of the present disclosure.

圖3是顯示了根據本公開的實施方式的可以將代碼塊劃分為畫素組(子塊)的步驟的編碼處理的流程圖。 FIG. 3 is a flowchart showing an encoding process of a step of dividing a code block into a pixel group (sub-block) according to an embodiment of the present disclosure.

圖4顯示了根據本公開的實施方式的將代碼塊劃分為塊和子塊的方式。 4 illustrates a manner of dividing a code block into blocks and sub-blocks in accordance with an embodiment of the present disclosure.

圖5是顯示了根據本公開的實施方式的解碼步驟的處理的流程圖。 FIG. 5 is a flowchart showing a process of a decoding step according to an embodiment of the present disclosure.

圖6顯示了可以實現本公開的實施方式的範例性電腦系統。 FIG. 6 shows an exemplary computer system in which embodiments of the present disclosure may be implemented.

I.介紹 I. Introduction

以下詳細描述參考了顯示範例性實施方式的附圖。其他的實施方式也是可能的,並且可以在本公開的實質和範圍內對實施方式進行修改。因此,詳細描述不旨在限制本發明。相反地,本發明的範圍由所附申請專利範圍來限定。 The following detailed description refers to the accompanying drawings that illustrate exemplary embodiments. Other embodiments are also possible, and modifications may be made to the embodiments within the spirit and scope of the disclosure. Therefore, the detailed description is not intended to limit the invention. Rather, the scope of the invention is defined by the scope of the appended claims.

對該發明所屬領域中具有通常知識者顯而易見的是,本公開可以以諸如軟體、硬體、韌體和/或附圖中所示的實體的不同的實施方式來實施。任何具有對實現本公開的硬體的具體控制的實際軟體代碼都不限於本公開。因此,將在理解實施方式的修改和變形都為可能的條件下,並且在本公開的實質和範圍內來描述本公開的操作行為。 It will be apparent to those skilled in the art to which the present invention pertains that the present disclosure can be implemented in various embodiments, such as the software, hardware, firmware, and/or the entities shown in the drawings. Any actual software code having specific control over the hardware that implements the present disclosure is not limited to the present disclosure. Therefore, the operational behavior of the present disclosure will be described with the understanding that modifications and variations of the embodiments are possible, and within the spirit and scope of the present disclosure.

在說明書和申請專利範圍書中的對模組的提及意味著用於執行所指示的功能的硬體、韌體或軟體成分的任意組合。模組不需要是嚴格定義的實體,這使得幾個模組可以將硬體和軟體成分在功能上重疊。例如,軟體模組可以指在程式內的一行代碼,該程式本身是單獨的軟體程式。該發明所屬領域中具有通常知識者將理解的是可以根據例如多種格式或性能優化技術來定義模組的功能。 References to a module in the specification and claims are intended to mean any combination of hardware, firmware or soft component for performing the indicated function. Modules do not need to be strictly defined entities, which allows several modules to functionally overlap hardware and software components. For example, a software module can refer to a line of code within a program, which is itself a separate software program. Those of ordinary skill in the art to which this invention pertains will understand that the functionality of the modules can be defined in accordance with, for example, various formats or performance optimization techniques.

根據公開的實施方式,提供了用於將代碼塊(code block)劃分為畫素組(pixel groups),用於將畫素組劃分為子塊(sub-blocks),以及使用用於代碼塊的編碼方案來將分配給子塊的畫素編碼的方法、電腦可讀儲存裝置和系統。 According to a disclosed embodiment, there is provided a method for dividing a code block into pixel groups for dividing a pixel group into sub-blocks, and using a code block. A coding scheme to method, computer readable storage, and system for pixel coding assigned to a sub-block.

本公開此外的特徵和優點,還有本公開的各種實施方式的結構和操作,都在以下透過參考附圖來詳細描述。應注意,本公開不限於本文中描述的具體實施方式。這些實施方式在本文中的提出僅用於說明性的目的。基於本文中所包含的教導,另外的實施方式對該發明所屬領域中具有通常知識者也是顯而易見的。 The features and advantages of the present disclosure, as well as the structure and operation of the various embodiments of the present disclosure, are described in detail below with reference to the accompanying drawings. It should be noted that the present disclosure is not limited to the specific embodiments described herein. These embodiments are presented herein for illustrative purposes only. Based on the teachings contained herein, additional embodiments will be apparent to those of ordinary skill in the art to which this invention pertains.

圖1顯示了範例性熵(entropy)編碼標準100(現有技術)。諸如霍夫曼(Huffman)編碼的熵編碼是依賴於相應的可變長度的無字首碼字(prefix-free codeword)(或簡單的“代碼”)來表示每個固定長度輸入的無損(lossless)資料壓縮技術。例如,如編碼標準100中所示,在資料流程中提供了一組畫素104a、104b、104n(統稱為畫素104)。每個畫素都可以由例如包括該畫素的顏色強度資訊 的資料的24位元來表示(例如,8位元的資料用於紅色,8位元的資料用於綠色,8位元的資料用於藍色)。然而,雖然資料的24位元可以表示1678萬個不同的值,但是畫素塊(例如,在圖片(picture)內的16×16畫素區域)只會每畫素至多具有一個不同的值(例如,256個可能的值)。此外,尤其是在應用了有損(lossy)壓縮演算法之後(例如,透過減少畫素資料可以解析的唯一值的數量),一些重複很可能意味著一些畫素可以具有相同的量化系數值。 Figure 1 shows an exemplary entropy coding standard 100 (prior art). Entropy coding, such as Huffman coding, relies on a corresponding variable length prefix-free codeword (or simple "code") to represent lossless (lossless) of each fixed length input. ) Data compression technology. For example, as shown in encoding standard 100, a set of pixels 104a, 104b, 104n (collectively referred to as pixels 104) are provided in the data flow. Each pixel can be composed of, for example, color intensity information including the pixel The 24-bit representation of the data (for example, 8-bit data for red, 8-bit data for green, and 8-bit data for blue). However, although the 24-bit of the data can represent 16.78 million different values, the pixel block (for example, the 16×16 pixel region in the picture) will only have at most one different value per pixel ( For example, 256 possible values). Moreover, especially after applying a lossy compression algorithm (eg, by reducing the number of unique values that can be resolved by pixel data), some repetitions are likely to mean that some pixels can have the same quantized coefficient value.

例如,假設在16×16的畫素塊中的全部畫素都具有從只有三種可能的顏色的調色板中選擇的顏色。在這種情況下,熵編碼可以僅使用最多二位元的資料(例如,‘00=紅色’,‘01=藍色’,‘1=黃色’)來表示四種可能的值。在編碼階段期間,這些編碼使用已知的編碼技術來確定(諸如霍夫曼編碼)。應注意,在熵編碼中,如該發明所屬領域中具有通常知識者應當理解的,編碼長度是可變的。在以上範例中,在編碼序列的起始處檢測到‘1’之後,顏色就會被確定為黃色--資料的下一位元將是新代碼的開始。在編碼序列的起始處的代碼‘0’僅將概率減小至‘紅色’或‘藍色’,這取決於資料的下一位元。 For example, assume that all pixels in a 16x16 pixel block have a color selected from a palette of only three possible colors. In this case, entropy coding may use only a maximum of two bits of data (e.g., '00=red', '01=blue', '1=yellow') to represent four possible values. These encodings are determined using known encoding techniques (such as Huffman encoding) during the encoding phase. It should be noted that in entropy coding, the code length is variable as would be understood by one of ordinary skill in the art to which the invention pertains. In the above example, after '1' is detected at the beginning of the code sequence, the color is determined to be yellow - the next bit of the data will be the beginning of the new code. The code '0' at the beginning of the code sequence only reduces the probability to 'red' or 'blue' depending on the next bit of the material.

為了導航的簡單,該行為通常包括在諸如樹的資料結構中。例如,諸如“1001010111011”的代碼序列應當被翻譯為‘黃色’(1)、‘紅色’(00)、‘黃色’(1)、‘藍色’(01)、‘藍色’(01)、‘黃色’(1)、‘黃色’(1)、‘藍色’(01)、‘黃色’(1)。編碼本身(例如,諸如樹的資料結構)可以與所編碼的資料一起被設置為字首代碼列表(prefix code list)102。然後,各個畫素104僅包括唯一地表示其字首代碼所需的數量的資料位元。 For navigation simplicity, this behavior is typically included in a data structure such as a tree. For example, a code sequence such as "1001010111011" should be translated as 'yellow' (1), 'red' (00), 'yellow' (1), 'blue' (01), 'blue' (01), 'Yellow' (1), 'Yellow' (1), 'Blue' (01), 'Yellow' (1). The encoding itself (eg, a data structure such as a tree) may be set to a prefix code list 102 along with the encoded material. Each pixel 104 then only includes the number of data bits that are uniquely represented by their prefix code.

該方法的嚴重缺陷是全部編碼序列都必須被串列(順序)地解碼。因為畫素間的分割是提前未知的,所以不可能例如用第一處理線程對首先的X個畫素解碼,以及用第二處理線程對其次的 Y個畫素解碼。例如,跳至以上範例代碼序列的中間(例如,‘111011’)並且照常對其解碼會將‘黃色’(1)生成為第一個值。然而,這第一個‘1’實際上是用於‘藍色’(01)的編碼的一部分,但是在沒有串列處理全部的序列的條件下這是不可能確定的。 A serious drawback of this approach is that all code sequences must be decoded serially (sequentially). Since the segmentation between pixels is unknown in advance, it is impossible to decode the first X pixels, for example, with the first processing thread, and the second processing thread. Y pixel decoding. For example, jumping to the middle of the above example code sequence (e.g., '111011') and decoding it as usual will generate 'yellow' (1) as the first value. However, this first '1' is actually part of the encoding for 'blue' (01), but this is not possible without the serial processing of all sequences.

II.並行化技術 II. Parallelization technology

如上所述,現有的解碼技術必須串列處理。為了瞭解對隨後的畫素解碼所需要的資訊,必須解碼先前的畫素。因此,為了實現並行,需要一種技術來去除該相互依賴性。 As mentioned above, existing decoding techniques must be handled in tandem. In order to understand the information needed for subsequent pixel decoding, the previous pixels must be decoded. Therefore, in order to achieve parallelism, a technique is needed to remove this interdependence.

圖2是顯示了根據本公開的實施方式的去除代碼塊相互依賴性的步驟的處理200的流程圖。雖然該發明所屬領域中具有通常知識者應當理解本文中描述的技術可以以任何等級(例如,以在獨立圖片中的相互依賴的代碼塊、以在獨立流中的相互依賴的圖片等)來應用,但是例如,但不限於,在圖片或圖片序列中代碼塊(例如,16×16的畫素塊(pixel block))與其他代碼塊獨立。 2 is a flow diagram showing a process 200 of the steps of removing code block interdependencies in accordance with an embodiment of the present disclosure. Although one of ordinary skill in the art to which the invention pertains will appreciate that the techniques described herein can be applied at any level (e.g., with interdependent code blocks in separate pictures, interdependent pictures in separate streams, etc.) However, for example, but not limited to, a code block (eg, a 16×16 pixel block) in a picture or picture sequence is independent of other code blocks.

本方法開始於步驟202並且進行至將代碼塊(例如,圖片被劃分為16×16的代碼塊)劃分為畫素組的步驟204。例如,完整的圖片可以被劃分為獨立的16×16的代碼塊,該16×16的代碼塊繼而被劃分為8×8的畫素組,並且8×8的畫素組可以被劃分為四個4×4的畫素組。在步驟206中,做出是否對新的畫素組進行進一步的劃分的決定。如果是,那麼本方法進行至步驟204從而進一步地劃分畫素組(例如,每個4×4的畫素組可以更進一步地劃分為四個2×2的畫素組、四個4×1的畫素組、一個2×1、一個2×3和兩個1×4的畫素組的組合…等)。該發明所屬領域中具有通常知識者應當理解的是步驟204中進行的劃分可以視情況由相同的模組或幾個不同的模組處理。 The method begins in step 202 and proceeds to step 204 of dividing a code block (e.g., a picture is divided into 16x16 code blocks) into pixel groups. For example, a complete picture can be divided into independent 16×16 code blocks, which in turn are divided into 8×8 pixel groups, and an 8×8 pixel group can be divided into four. A 4×4 pixel group. In step 206, a decision is made whether to further divide the new pixel group. If so, the method proceeds to step 204 to further partition the pixel groups (eg, each 4x4 pixel group can be further divided into four 2x2 pixel groups, four 4x1 The set of pixels, a combination of 2 × 1, a 2 × 3 and two 1 × 4 pixel groups ... etc.). It should be understood by those of ordinary skill in the art to which the invention pertains that the partitioning performed in step 204 can be handled by the same module or by several different modules as appropriate.

如果沒有請求進一步的劃分,那麼本方法進行至在各層提供本地字首代碼的步驟208。本方法隨後結束於步驟210。根據本發明的實施方式,每次劃分根據層號來命名。全部圖片的第一級劃 分的代碼塊包括“層0”。第一組畫素組(例如,劃分16×16的代碼塊的8×8畫素組)包括“層1”等。在以上範例中,採用了層0至3。 If no further partitioning is requested, then the method proceeds to step 208 where a local prefix code is provided at each layer. The method then ends at step 210. According to an embodiment of the invention, each division is named according to the layer number. The first level of all pictures The code block of the division includes "layer 0". The first group of pixels (for example, an 8×8 pixel group dividing a 16×16 code block) includes “layer 1” and the like. In the above example, layers 0 to 3 were employed.

III.劃分代碼塊 III. Dividing code blocks

根據本公開的實施方式,每個代碼塊都包括用於表示塊內的畫素值的一組量化係數。該發明所屬領域中具有通常知識者將理解的是代碼塊可以包含額外的或不同的資料,並且量化係數的使用以範例而非限制的方式來提供。具體地,儘管係數通常被量化,但是它們可以是非量化的。因此,公開的實施方式還預期以一組非量化的係數來工作。 In accordance with an embodiment of the present disclosure, each code block includes a set of quantized coefficients for representing pixel values within the block. It will be understood by those of ordinary skill in the art that the code blocks can include additional or different materials, and the use of quantified coefficients is provided by way of example and not limitation. In particular, although the coefficients are typically quantized, they may be non-quantitative. Thus, the disclosed embodiments also contemplate working with a set of non-quantized coefficients.

根據本公開的實施方式,代碼塊根據“群集樣式(cluster pattern)”來劃分,該群集樣式(圖案)諸如如上所述4×4的畫素組可以被劃分為四個2×2的畫素組,四個4×1的畫素組,一個2×1、一個2×3以及兩個1×4的畫素組的組合,或諸如三角形、對角線或L形樣式的其他樣式。不管使用什麼樣式,編碼器都會透過例如將群集樣式資訊嵌入在塊或子塊的字首中來告知解碼器選擇了哪個樣式,否則該樣式應當提前由解碼器得知。 According to an embodiment of the present disclosure, the code block is divided according to a "cluster pattern" such as a 4×4 pixel group as described above, which can be divided into four 2×2 pixels. Group, four 4x1 pixel groups, a combination of 2x1, one 2x3, and two 1x4 pixel groups, or other styles such as triangles, diagonals, or L-shaped patterns. Regardless of the style used, the encoder tells the decoder which style was selected by, for example, embedding the cluster style information in the prefix of the block or sub-block, otherwise the pattern should be known to the decoder in advance.

圖3是顯示了根據本公開的實施方式的可以將代碼塊劃分為畫素組(子塊)的步驟的編碼處理300的流程圖。該發明所屬領域中具有通常知識者應當理解的是可以應用各種技術以不同等級來分割塊,並且本文中描述的技術以範例而非限制的方式來提供。例如,4×4代碼塊可以被劃分為四個2×2代碼塊--實現方式始終可以選擇進行這種特定的劃分,或可以採用以下進一步詳細描述的群集樣式。 3 is a flow diagram showing an encoding process 300 of the steps of dividing a code block into pixel groups (sub-blocks) in accordance with an embodiment of the present disclosure. It should be understood by those of ordinary skill in the art that the present invention can be applied to various different levels of the various embodiments. The techniques described herein are provided by way of example and not limitation. For example, a 4x4 code block can be divided into four 2x2 code blocks - an implementation can always choose to make this particular partition, or a cluster style as described in further detail below can be used.

為了本文中概述的範例的目的,代碼塊包括最終被劃分為4×4塊(例如,16×16的代碼塊被劃分為8×8的畫素組,每個8×8的畫素組被劃分為4×4的畫素組)的幾個畫素組。如以下描述的,每個4×4塊都被劃分為進一步的子塊。 For the purposes of the examples outlined herein, the code block includes a block of pixels that are ultimately divided into 4x4 blocks (eg, a 16x16 code block is divided into 8x8 pixel groups, each 8x8 pixel group is Several pixel groups divided into 4 × 4 pixel groups. As described below, each 4x4 block is divided into further sub-blocks.

本方法開始於步驟302並且進行至確定要分析的可能的群集 樣式的步驟304。例如,如果在四個2×2子塊或四個4×1子塊之間選擇,那麼具有兩個待分析的群集樣式。該發明所屬領域中具有通常知識者將理解的是多個群集樣式是可用的,並且所分析的樣式可以包括這些樣式的任何子集。此外,可以使用特定的樣式而不進行任何分析。 The method begins in step 302 and proceeds to determine a possible cluster to analyze Step 304 of the style. For example, if you choose between four 2x2 sub-blocks or four 4x1 sub-blocks, there are two cluster styles to analyze. Those of ordinary skill in the art to which this invention pertains will understand that multiple cluster styles are available, and that the styles analyzed can include any subset of these styles. In addition, specific styles can be used without any analysis.

在步驟306中,對於給定群集樣式確定用於子塊的最小和最大尺寸。例如,透過四個2×2子塊的群集樣式,用於編碼每一個子塊的最大代碼尺寸被確定。然後,透過四個2×2子塊的組集,最小代碼尺寸(即,對於具有最小代碼尺寸的單獨子塊的代碼尺寸)與最大代碼尺寸(即,對於具有最大代碼尺寸的單獨子塊的代碼尺寸)一起被確定。 In step 306, the minimum and maximum sizes for the sub-blocks are determined for a given cluster pattern. For example, through a cluster pattern of four 2x2 sub-blocks, the maximum code size used to encode each sub-block is determined. Then, through the set of four 2x2 sub-blocks, the minimum code size (ie, the code size for the individual sub-blocks with the smallest code size) and the maximum code size (ie, for individual sub-blocks with the largest code size) The code size) is determined together.

根據本公開的實施方式,對用於各個子塊的代碼尺寸的確定透過找到兩者的每個量化係數的補數尺寸(complement size)來完成,儘管該發明所屬領域中具有通常知識者將理解本技術可以被不同地應用於其他資料,或可以使用不同的技術來找到全部的量化係數的代碼尺寸。可以基於透過應用特定代碼表示量化係數所需的位元組來確定子塊的最大和最小尺寸。根據本發明的實施方式,由編碼技術領域中的技術人員來選擇代碼從而編碼獨立的量化係數。如上所述,該資訊用於確定相應的群集樣式的最小和最大尺寸(即,該組子塊的最小和最大代碼尺寸)。 According to an embodiment of the present disclosure, the determination of the code size for each sub-block is accomplished by finding the complement size of each of the quantized coefficients of both, although those of ordinary skill in the art to which the invention pertains will understand The technique can be applied differently to other materials, or different techniques can be used to find the code size of all quantized coefficients. The maximum and minimum sizes of the sub-blocks may be determined based on the set of bytes required to represent the quantized coefficients by applying a particular code. According to an embodiment of the invention, the code is selected by a person skilled in the art of coding to encode independent quantized coefficients. As described above, this information is used to determine the minimum and maximum sizes of the corresponding cluster style (ie, the minimum and maximum code sizes for the set of sub-blocks).

在步驟308中,將各種群集樣式的尺寸與其他群集樣式相比較。根據本公開的實施方式,透過將用於編碼全部量化係數的全部代碼尺寸和用於編碼群集樣式的字首代碼尺寸相加,基於最小化用於塊(例如,4×4塊)的位元總數來選擇來自一組可用群集樣式的群集樣式。例如,可以做出使用四個2×2子塊將比使用四個4×1子塊需要更少的位元來表示整個塊的決定。 In step 308, the dimensions of the various cluster styles are compared to other cluster styles. According to an embodiment of the present disclosure, minimizing a bit for a block (eg, a 4×4 block) by adding all code sizes for encoding all quantized coefficients and a prefix code size for encoding a cluster pattern The total to select a cluster style from a set of available cluster styles. For example, a decision can be made that using four 2x2 sub-blocks would require fewer bits to represent the entire block than using four 4x1 sub-blocks.

在步驟310中,如以下描述地儲存關於所選配置的字首代碼資訊,並且本方法結束於步驟312。作為非限制性的範例,需要1 至4位元來編碼在左上4×4塊的係數的最大尺寸與在該4×4塊中的每個子塊的係數的最大尺寸之間的差異,同時可以需要1或3位元來編碼對於其餘的4×4塊的上述差異。本演算法可以將2位元用於左上的4×4塊從而規定被用於對用於編碼上述差異(即在左上4×4塊的係數的最大尺寸與該4×4塊中樣式的每個子塊的係數的最大尺寸之間的差異)的位元數量進行編碼的位元數量,以及將1位元用於其餘的4×4塊從而規定被用於對用於編碼上述差異的位元數量進行編碼的位元數量,即,將用於對其餘的4×4塊的上述差異進行編碼的1或3位元。 In step 310, the prefix code information for the selected configuration is stored as described below, and the method ends at step 312. As a non-limiting example, 1 is required Up to 4 bits to encode the difference between the maximum size of the coefficients of the upper left 4x4 block and the maximum size of the coefficients of each subblock in the 4x4 block, while 1 or 3 bits may be required to encode The above difference of the remaining 4×4 blocks. The algorithm can use 2 bits for the upper left 4x4 block to specify the maximum size used to encode the above difference (ie, the maximum size of the coefficients in the upper left 4x4 block and the pattern in the 4x4 block) The number of bits between the maximum size of the coefficients of the sub-blocks is the number of bits to be encoded, and 1 bit is used for the remaining 4×4 blocks to specify the bits used to encode the above difference The number of bits that are encoded, i.e., 1 or 3 bits that will be used to encode the above differences for the remaining 4x4 blocks.

根據本公開的實施方式,群集(諸如4×4塊)的尺寸(會被用於編碼的位元的數量)被編碼為在較上層(諸如包含該4×4塊的8×8塊)中的字首的一部分,使得當解碼器解碼該位元流時,能夠與提取用於編碼其他群集的全部位元並行地提取用於編碼該群集的全部位元。將同樣的想法應用於以上範例中的低於該群集等級(例如,對於2×2子塊(層3)的4×4塊層(層2))的層(諸如組成群集4×4塊的四個2×2子塊)中,其中用於編碼每個子塊的位元數量被編碼為4×4塊中的字首的一部分。 According to an embodiment of the present disclosure, the size of a cluster (such as a 4x4 block) (the number of bits that will be used for encoding) is encoded as being in an upper layer (such as an 8x8 block containing the 4x4 block). A portion of the prefix, such that when the decoder decodes the bitstream, all of the bits used to encode the cluster can be extracted in parallel with all bits extracted for encoding other clusters. Apply the same idea to layers in the above example that are below the cluster level (eg, for a 4x4 block layer (layer 2) of 2x2 sub-blocks (layer 3)) (such as a cluster of 4x4 blocks) Among the four 2x2 sub-blocks, the number of bits used to encode each sub-block is encoded as a part of the prefix in the 4x4 block.

轉至圖4,作為與本公開的實施方式一致的非限制性範例,8×8代碼塊402被顯示為劃分為四個4×4塊。根據本公開的實施方式,四個塊404a、404b、404c和404d都各自根據群集或分割樣式被進一步地劃分為子塊。 Turning to FIG. 4, as a non-limiting example consistent with embodiments of the present disclosure, an 8x8 code block 402 is shown divided into four 4x4 blocks. According to an embodiment of the present disclosure, each of the four blocks 404a, 404b, 404c, and 404d is further divided into sub-blocks according to a cluster or partition pattern.

在塊404a的情況中,子塊405被顯示為2×2塊。根據本公開的實施方式,塊404a的所有子塊405的尺寸都一致。在如以上所述確定子塊405的最大尺寸之後,將其與塊404a的其他子塊的最大尺寸相比較從而確定子塊的最大(和最小)尺寸。與以上範例一致,在塊404a的最大尺寸和各個子塊的最大尺寸之間的差可以需要1至4位元來用於編碼。因此,2位元專門用於規定需要多少位元(從1到4)來編碼以上的差異。 In the case of block 404a, sub-block 405 is shown as a 2x2 block. According to an embodiment of the present disclosure, all sub-blocks 405 of block 404a are the same size. After determining the maximum size of the sub-block 405 as described above, it is compared to the maximum size of the other sub-blocks of the block 404a to determine the maximum (and minimum) size of the sub-block. Consistent with the above examples, the difference between the maximum size of block 404a and the maximum size of each sub-block may require 1 to 4 bits for encoding. Therefore, the 2-bit is specifically used to specify how many bits (from 1 to 4) are needed to encode the above difference.

將最大尺寸編碼為圖3中描述的尺寸的處理在塊級進行,其中每個4×4塊即404a、404b、404c和404d的最大樣式尺寸也都被編碼。 The process of encoding the largest size to the size depicted in Figure 3 is done at the block level, where the maximum pattern size of each 4x4 block, i.e., 404a, 404b, 404c, and 404d, is also encoded.

圖4在示圖的左手側顯示了根據本公開的實施方式的術語為並行金字塔熵編碼(“PPEC”)的演算法。該名稱來源於被展開的本示圖看上去會像金字塔形的概念,其中以編碼的畫素資料410為基礎,子塊資料408為中間層並且塊資料406為頂層。在每一層中,所有的塊或子塊都可以被並行地編碼和解碼。 4 shows, on the left hand side of the diagram, an algorithm in which the term parallel pyramid entropy coding ("PPEC") is used in accordance with an embodiment of the present disclosure. This name is derived from the concept that the expanded diagram appears to be pyramidal in shape, with the encoded pixel data 410 being the intermediate layer and the block data 406 being the top layer. In each layer, all blocks or sub-blocks can be encoded and decoded in parallel.

如圖4中所示,各個子塊都包括編碼的畫素資料。如上所述,各個塊包括的資料具有用於限定位元(其用於編碼在塊的最大尺寸與該塊內的各個子塊的最大尺寸之間的差異)數量的位元,以及編碼子塊資料的位元。全部的代碼塊資料包括每個塊的最大尺寸,還有用於編碼畫素資料的字首代碼(例如,霍夫曼編碼方案)。該發明所屬領域中具有通常知識者應當理解雖然本示圖顯示了上述各種成分,但是這些成分不需要以圖4中所示的特定順序出現。此外,如早先論述的,可以引入額外的層來提供子塊和子子塊的更細緻的劃分。此外,可以採用其中特定的塊被劃分為子塊,但是其他的塊被串列編碼而不進行進一步劃分的混合方法。該發明所屬領域中具有通常知識者應當理解的是這些改變及其他都在本公開的實質和範圍內。 As shown in Figure 4, each sub-block includes encoded pixel data. As described above, the data included in each block has a number of bits for defining a bit (which is used to encode the difference between the maximum size of the block and the maximum size of each sub-block within the block), and the encoding sub-block. The bit of the data. The entire code block data includes the maximum size of each block, as well as the prefix code used to encode the pixel data (for example, the Huffman coding scheme). It will be understood by those of ordinary skill in the art to which the present invention pertains that although the present drawings show the various components described above, these components need not appear in the particular order shown in FIG. Moreover, as discussed earlier, additional layers may be introduced to provide a more detailed partitioning of sub-blocks and sub-sub-blocks. Further, a hybrid method in which a specific block is divided into sub-blocks, but other blocks are serially encoded without further division may be employed. It is to be understood by those of ordinary skill in the art that these changes and other modifications are within the spirit and scope of the disclosure.

V.解碼器側操作 V. Decoder side operation

以前述方式來構造代碼塊將極大地有利於解碼器的尺寸。根據本公開的實施方式,對與以上描述一致的方式來構造的代碼塊進行操作的解碼器可以並行地處理代碼塊,並且甚至可以並行地處理獨立的子塊。 Constructing a code block in the manner described above will greatly facilitate the size of the decoder. According to an embodiment of the present disclosure, a decoder operating on a code block constructed in a manner consistent with the above description may process the code blocks in parallel, and may even process the independent sub-blocks in parallel.

在先前的串列操作中,需要按順序將代碼塊內的各個符號解碼。然而,透過如本文中描述將代碼塊分解為層,可以並行地解碼多個符號(例如,畫素組、字元組或可解碼資料的其他組),這 為以可相比的時脈速度運行的串列處理解決方案提供了量級上的改進。可選地,可以使用較低的時脈速度獲得相同的處理速度,這導致了高能量效率。 In the previous serial operation, each symbol within the code block needs to be decoded in order. However, by decomposing code blocks into layers as described herein, multiple symbols (eg, pixel groups, byte groups, or other groups of decodable material) can be decoded in parallel, which Provides an order of magnitude improvement for a serial processing solution running at comparable clock speeds. Alternatively, the same processing speed can be achieved using a lower clock speed, which results in high energy efficiency.

為了將如上所述的由編碼器包括的資訊從整體的代碼塊解析為分離的塊和子塊而構造解碼器。這意味著例如解碼器應當能夠瞭解在代碼塊中存在多少劃分的層,採用了什麼群集樣式等。全部該資料都在報頭塊中的某處規定或遍及代碼塊而展開。 The decoder is constructed in order to parse the information included by the encoder as described above from the entire code block into separate blocks and sub-blocks. This means, for example, that the decoder should be able to understand how many divided layers are present in the code block, what cluster styles are used, and so on. All of this information is published somewhere in the header block or throughout the code block.

圖5是顯示了根據本公開的實施方式的解碼步驟的處理500的流程圖。本方法開始於步驟502並且進行至將塊代碼資料劃分為獨立塊成分(例如,圖4的塊404a、404b、404c和404d)的步驟504。在步驟506中,根據本公開的實施方式,各個塊進一步分為子塊(例如,圖4的子塊405)。應注意,因為以上的層(例如,用於層2解碼的層1)限定了被解碼層的代碼尺寸,所以在步驟506中對各個塊的處理可以並行地進行。此外,因為限定並且已經解碼了各個子塊的尺寸,所以在步驟508中並行地實行對各個子塊的解碼。該方法結束於步驟510。 FIG. 5 is a flow diagram showing a process 500 of a decoding step in accordance with an embodiment of the present disclosure. The method begins in step 502 and proceeds to step 504 of dividing the block code material into separate block components (e.g., blocks 404a, 404b, 404c, and 404d of FIG. 4). In step 506, in accordance with an embodiment of the present disclosure, the various blocks are further divided into sub-blocks (eg, sub-block 405 of FIG. 4). It should be noted that because the above layers (e.g., layer 1 for layer 2 decoding) define the code size of the decoded layer, the processing of the individual blocks in step 506 can be performed in parallel. Furthermore, since the size of each sub-block is defined and already decoded, decoding of each sub-block is performed in parallel in step 508. The method ends at step 510.

VI.範例性電腦系統實現方式 VI. Example computer system implementation

本公開的各方面可以由軟體、韌體、硬體或它們的組合來實現。圖6顯示了本公開或其部分可以實現為電腦可讀代碼的電腦系統600的範例。例如,處理200(圖2)、處理300(圖3)和處理500(圖5)可以在系統600中實現。本公開的各種實施方式都依照該範例性電腦系統600來描述。在讀完本描述後,怎麼使用其他的電腦系統和/或電腦架構來實現本公開對該發明所屬領域中具有通常知識者而言應當是顯而易見的。 Aspects of the present disclosure can be implemented by software, firmware, hardware, or a combination thereof. FIG. 6 shows an example of a computer system 600 in which the present disclosure or portions thereof can be implemented as computer readable code. For example, process 200 (FIG. 2), process 300 (FIG. 3), and process 500 (FIG. 5) can be implemented in system 600. Various embodiments of the present disclosure are described in terms of the exemplary computer system 600. After reading this description, it should be apparent that the use of other computer systems and/or computer architectures to implement the present disclosure will be apparent to those of ordinary skill in the art to which the invention pertains.

電腦系統600包括諸如處理器604的一個以上的處理器。處理器604可以是專用目的或一般目的的處理器。處理器604連接至通訊基礎設施606(例如,匯流排或網路)。 Computer system 600 includes more than one processor, such as processor 604. Processor 604 can be a dedicated purpose or general purpose processor. The processor 604 is coupled to a communication infrastructure 606 (e.g., a bus or network).

電腦系統還包括主記憶體608,優選為隨機存取記憶體(RAM) 並且還可以包括第二記憶體610。第二記憶體610可以包括例如硬碟驅動器612、可移除(removable)儲存驅動器614和/或儲存棒。可移除儲存驅動器614可以包括軟碟驅動器、磁帶驅動器、光碟驅動器、快閃記憶體等。可移除儲存驅動614以眾所周知的方式從可移除儲存單元615中讀取和/或寫入至可移除儲存單元615。可移除儲存單元615可以包括由可移除儲存驅動614讀取並且寫入的軟碟、磁帶、光碟等。如該發明所屬領域中具有通常知識者應當瞭解的,可移除儲存單元615包括電腦可用儲存介質,該電腦可用儲存介質具有儲存在其中的軟體和/或資料。 The computer system also includes a main memory 608, preferably a random access memory (RAM) And a second memory 610 can also be included. The second memory 610 can include, for example, a hard disk drive 612, a removable storage drive 614, and/or a storage bar. The removable storage drive 614 can include a floppy disk drive, a tape drive, a disk drive, a flash memory, and the like. The removable storage drive 614 reads and/or writes from the removable storage unit 615 to the removable storage unit 615 in a well known manner. The removable storage unit 615 can include a floppy disk, a magnetic tape, a compact disc, and the like that are read and written by the removable storage drive 614. As will be appreciated by those of ordinary skill in the art to which the invention pertains, the removable storage unit 615 includes a computer usable storage medium having stored software and/or material stored therein.

在可選的實現方式中,第二記憶體610可以包括其他類似地裝置以用於允許將電腦程式或其他指令裝載在電腦系統600中。這樣的裝置可以包括,例如可移除儲存單元622和介面620。這樣的裝置的範例可以包括程式盒(program cartridge)以及盒式(cartridge)介面(諸如在視訊遊戲裝置中出現的)、可移除記憶體晶片(諸如EPROM或PROM)和關聯的插槽(socket)、以及其他的諸如可移除儲存單元622的可移除儲存單元以及允許軟體和資料從可移除儲存單元622中傳輸至電腦系統600的諸如介面620的介面。 In an alternative implementation, the second memory 610 can include other similar devices for allowing computer programs or other instructions to be loaded into the computer system 600. Such devices may include, for example, a removable storage unit 622 and an interface 620. Examples of such devices may include a program cartridge and a cartridge interface (such as found in video game devices), a removable memory chip (such as an EPROM or PROM), and associated slots (sockets). And other removable storage units such as removable storage unit 622 and interfaces such as interface 620 that allow software and materials to be transferred from removable storage unit 622 to computer system 600.

電腦系統600還可以包括通訊介面624。通訊介面624允許軟體和資料在電腦系統600和外部裝置之間傳輸。通訊介面624可以包括數據機、網路介面(諸如乙太網路卡)、通訊埠、PCMCIA卡槽(slot)和卡等。經由通訊介面624傳輸的軟體和資料可以是電子的、電磁的、光學的信號或者能夠由通訊介面624接收的其他信號的形式。這些信號經由通訊路徑626而提供給通訊介面624。通訊路徑626運載信號並且可以使用線路或線纜、光纖、電話線、蜂巢式電話鏈路、RF鏈路或其他通訊通道來實現。 Computer system 600 can also include a communication interface 624. Communication interface 624 allows software and data to be transferred between computer system 600 and external devices. The communication interface 624 can include a data machine, a network interface (such as an Ethernet card), a communication port, a PCMCIA card slot, and a card. The software and material transmitted via communication interface 624 may be in the form of an electronic, electromagnetic, optical signal or other signal that can be received by communication interface 624. These signals are provided to communication interface 624 via communication path 626. Communication path 626 carries signals and can be implemented using lines or cables, fiber optics, telephone lines, cellular telephone links, RF links, or other communication channels.

在本文中,術語“電腦程式介質”和“電腦可讀介質”用於一般地指諸如可移除儲存單元615、可移除儲存單元622和安裝在硬碟驅 動器612中的硬碟的介質。在通訊路徑626上運載的信號也可以體現本文中描述的邏輯。電腦程式介質和電腦可用介質還可以指諸如主記憶體608和第二記憶體610的記憶體,該記憶體可以是儲存半導體(例如,DRAM等)。這些電腦程式產品是用於將軟體系統提供給系統600的裝置。 As used herein, the terms "computer program medium" and "computer readable medium" are used generally to refer to, for example, a removable storage unit 615, a removable storage unit 622, and a hard disk drive. The medium of the hard disk in the actuator 612. The signals carried on communication path 626 may also embody the logic described herein. The computer program medium and the computer usable medium may also refer to a memory such as main memory 608 and second memory 610, which may be a storage semiconductor (eg, DRAM, etc.). These computer program products are devices for providing a software system to system 600.

電腦程式(也稱為電腦控制邏輯)儲存在主記憶體608和/或第二記憶體610中。電腦程式還可以經由通訊介面624來接收。當執行電腦程式時,該電腦程式使電腦系統600能夠按照本文中所描述的來實現本公開。尤其是,當執行電腦程式時,該電腦程式使處理器604能夠實現本公開的處理,該處理諸如上述的處理200(圖2)、處理300(圖3)和處理500(圖5)中的步驟。因此,該電腦程式表示電腦系統600的控制器。其中,本公開使用軟體來實現,可以使用可移除儲存驅動器614、介面620、硬碟驅動器612或通訊介面624來將該軟體儲存在電腦程式產品中以及裝載在電腦系統600中。 Computer programs (also referred to as computer control logic) are stored in main memory 608 and/or second memory 610. The computer program can also be received via the communication interface 624. When executed, the computer program enables computer system 600 to implement the present disclosure as described herein. In particular, when executing a computer program, the computer program enables processor 604 to perform the processes of the present disclosure, such as those described above in process 200 (FIG. 2), process 300 (FIG. 3), and process 500 (FIG. 5). step. Therefore, the computer program represents the controller of the computer system 600. The present disclosure is implemented using software. The removable storage drive 614, interface 620, hard drive 612, or communication interface 624 can be used to store the software in a computer program product and in the computer system 600.

本公開還涉及包括儲存在電腦可用介質上的軟體的電腦程式產品。這樣的軟體當在一個以上的資料處理裝置中執行時使資料處理裝置如本文所述的那樣進行操作。本公開的實施方式採用任何現在或將來所知曉的計算可用或可讀介質。電腦可用介質的範例包括但不限於主儲存裝置(例如任何類型的隨機存取記憶體)、第二儲存裝置(例如硬碟驅動器、軟碟、CD-ROM、ZIP盤(ZIP disks)、磁帶、磁儲存裝置、光儲存裝置、MEMS、奈米技術儲存裝置等)以及通訊媒介(例如有線和無線通訊網路、區域網路、廣域網路、內部網路等)。 The present disclosure also relates to a computer program product comprising software stored on a computer usable medium. Such software, when executed in more than one data processing device, causes the data processing device to operate as described herein. Embodiments of the present disclosure employ any computing available or readable medium known now or in the future. Examples of computer usable media include, but are not limited to, primary storage devices (eg, any type of random access memory), and second storage devices (eg, hard disk drives, floppy disks, CD-ROMs, ZIP disks, tapes, Magnetic storage devices, optical storage devices, MEMS, nanotechnology storage devices, etc.) and communication media (such as wired and wireless communication networks, regional networks, wide area networks, internal networks, etc.).

VII.結論 VII. Conclusion

應理解,具體說明部分,而非發明內容和摘要部分,旨在用於解釋申請專利範圍。發明內容和摘要部分可以提出一個以上的而非全部的由發明人設想的本公開的實施方式,並且因此,發明 和摘要部分不旨在以任何方式來限制本公開和所附的申請專利範圍。 It is to be understood that the specifics of the description, and not the The Summary of the Invention and the Abstract section may suggest more than one, but not all, of the embodiments of the present disclosure contemplated by the inventors, and thus, the invention The Abstract and the Abstract section are not intended to limit the scope of the disclosure and the appended claims.

在顯示具體功能的實現方式的功能構造塊和它們的關係的幫助下,在以上描述了本公開。為了表述的方便,在本文中任意地定義了這些功能構造塊的界限。只要具體的功能和其關係被合適地執行,就可以定義其他的界限。 The present disclosure has been described above with the aid of functional building blocks showing the implementation of specific functions and their relationships. For the convenience of the description, the boundaries of these functional building blocks are arbitrarily defined herein. As long as the specific functions and their relationships are properly performed, other boundaries can be defined.

之前的具體實施方式的描述將完整地體現本公開的一般性質,使得他人在沒有進行過度的實驗、沒有偏離本公開的整體概念的條件下,可以透過運用本領域內的技術知識來容易地修改和/或調整以用於該具體實施方式的各種應用。因此,基於本文中呈現的教導和指導,這些調整和修改旨在處於公開的實施方式的等同物的範圍和含義內。應當理解,本文中的措辭和術語為了描述而非限制的目的,這使得本公開的術語或措辭能夠依照教導和指導而被該發明所屬領域中具有通常知識者理解。 The description of the foregoing detailed description is to be construed as a comprehensive description of the embodiments of the present invention, and the invention can be easily modified by using the technical knowledge in the field without undue experimentation without departing from the overall concept of the disclosure. And/or adjusted for various applications of this particular embodiment. Therefore, the adaptations and modifications are intended to be within the scope and meaning of the equivalents of the disclosed embodiments. It will be understood that the phraseology and terminology herein is for the purposes of the description

本公開的外延和範圍應當不由上述任何範例性實施方式來限制,而應當只根據所附的申請專利範圍及其等同物來限定。 The scope and breadth of the disclosure should not be limited by any of the exemplary embodiments described above, but only by the scope of the appended claims and their equivalents.

200‧‧‧處理 200‧‧‧Process

202~210‧‧‧步驟 202~210‧‧‧Steps

Claims (10)

一種方法,包括:將代碼塊劃分為畫素組;將所述畫素組劃分為子塊;以及使用用於所述代碼塊的分層編碼方案來將分配給所述子塊的畫素編碼。 A method comprising: dividing a code block into a pixel group; dividing the pixel group into sub-blocks; and using a layered coding scheme for the code block to encode a pixel assigned to the sub-block . 根據申請專利範圍第1項所述的方法,其中,將所述代碼塊劃分為畫素組包括:將所述代碼塊劃分為四個等尺寸的畫素組。 The method of claim 1, wherein dividing the code block into a pixel group comprises dividing the code block into four equal-sized pixel groups. 根據申請專利範圍第1項所述的方法,其中,將所述畫素組劃分為子塊包括:確定一組群集樣式;以及選擇用於配置所述畫素組之一的相應子塊的群集樣式。 The method of claim 1, wherein dividing the pixel group into sub-blocks comprises: determining a set of cluster patterns; and selecting a cluster for configuring a corresponding sub-block of one of the pixel groups style. 根據申請專利範圍第1項所述的方法,還包括:使用分層熵編碼方案來將用於所述子塊和所述畫素組的代碼尺寸儲存在所編碼的流中。 The method of claim 1, further comprising: storing a code size for the sub-block and the set of pixels in the encoded stream using a hierarchical entropy coding scheme. 根據申請專利範圍第4項所述的方法,還包括:接收包括所述代碼塊的資料流程;使用所述代碼尺寸和分層的解碼方案來將所述代碼塊分開為畫素組;使用所述代碼尺寸來將所述畫素組分開為子塊;以及並行地解碼所述子塊。 The method of claim 4, further comprising: receiving a data flow including the code block; separating the code block into a pixel group using the code size and a layered decoding scheme; The code size is described to open the pixel component into sub-blocks; and the sub-blocks are decoded in parallel. 一種系統,包括:編碼器,儲存在記憶體中並且被配置為執行以下操作,包括:將代碼塊劃分為畫素組,將所述畫素組劃分為子塊,以及使用用於所述代碼塊的分層編碼方案來將分配給所述子 塊的畫素編碼;以及一個以上的處理器,被配置為處理所述編碼器。 A system comprising: an encoder stored in a memory and configured to perform the operations of: dividing a code block into a pixel group, dividing the pixel group into sub-blocks, and using the code for the code a hierarchical coding scheme of the block to assign to the child A pixel encoding of the block; and more than one processor configured to process the encoder. 根據申請專利範圍第6項所述的系統,其中,將所述代碼塊劃分為畫素組包括:將所述代碼塊劃分為四個等尺寸的畫素組。 The system of claim 6, wherein dividing the code block into a pixel group comprises dividing the code block into four equal-sized pixel groups. 根據申請專利範圍第6項所述的系統,其中,將所述畫素組劃分為子塊包括:確定一組群集樣式;以及選擇用於配置所述畫素組之一的相應子塊的群集樣式。 The system of claim 6, wherein dividing the pixel group into sub-blocks comprises: determining a set of cluster patterns; and selecting a cluster for configuring a corresponding sub-block of one of the pixel groups style. 根據申請專利範圍第6項所述的系統,其中,所述編碼器還被配置為進行以下操作,包括:使用分層的熵編碼方案將用於所述子塊和所述畫素組的代碼尺寸儲存在所編碼的流中。 The system of claim 6 wherein the encoder is further configured to: include code for the sub-block and the set of pixels using a layered entropy coding scheme The size is stored in the encoded stream. 根據申請專利範圍第9項所述的方法,還包括:解碼器,被配置為執行以下操作,包括:接收包括所述代碼塊的資料流程,使用所述代碼尺寸和分層的解碼方案將所述代碼塊分開為畫素組,使用所述代碼尺寸來將所述畫素組分開為子塊,以及並行地解碼所述子塊。 The method of claim 9, further comprising: a decoder configured to: receive a data flow including the code block, using the code size and a layered decoding scheme The code blocks are separated into groups of pixels, the code size is used to open the pixel components into sub-blocks, and the sub-blocks are decoded in parallel.
TW101146843A 2012-02-29 2012-12-12 Parallel pyramid entropy coding for video and image compression TWI517662B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/408,404 US9106932B2 (en) 2012-02-29 2012-02-29 Parallel pyramid entropy coding for video and image compression

Publications (2)

Publication Number Publication Date
TW201336311A true TW201336311A (en) 2013-09-01
TWI517662B TWI517662B (en) 2016-01-11

Family

ID=47630050

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101146843A TWI517662B (en) 2012-02-29 2012-12-12 Parallel pyramid entropy coding for video and image compression

Country Status (5)

Country Link
US (1) US9106932B2 (en)
EP (1) EP2635026A3 (en)
KR (1) KR101443804B1 (en)
CN (1) CN103297768B (en)
TW (1) TWI517662B (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013055500A (en) * 2011-09-02 2013-03-21 Sony Corp Solid state imaging device and camera system
CN103596011B (en) * 2013-11-20 2017-07-04 北京中星微电子有限公司 The storage processing method and device of view data
US8955027B1 (en) * 2013-11-21 2015-02-10 Google Inc. Transcoding media streams using subchunking
JP6511284B2 (en) * 2015-02-13 2019-05-15 パナソニック株式会社 Minimum value selection circuit, decoder and minimum value selection method
US11190975B2 (en) 2017-02-13 2021-11-30 Qualcomm Incorporated Feedback techniques for wireless communications
CN112866723B (en) * 2019-11-28 2024-04-19 瑞昱半导体股份有限公司 Image data processing method and system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3679083B2 (en) * 2002-10-08 2005-08-03 株式会社エヌ・ティ・ティ・ドコモ Image encoding method, image decoding method, image encoding device, image decoding device, image encoding program, image decoding program
US8718140B1 (en) * 2005-05-12 2014-05-06 Visualon, Inc. Encoding video data
US8634456B2 (en) * 2008-10-03 2014-01-21 Qualcomm Incorporated Video coding with large macroblocks
KR101038531B1 (en) * 2009-06-25 2011-06-02 한양대학교 산학협력단 Apparatus and method for encoding image capable of parallel processing in decoding and apparatus and method for decoding image capable of parallel processing
JP2011091575A (en) * 2009-10-21 2011-05-06 Sony Corp Coding apparatus and method
US8848779B2 (en) * 2010-07-15 2014-09-30 Sharp Laboratories Of America, Inc. Method of parallel video coding based on block size

Also Published As

Publication number Publication date
TWI517662B (en) 2016-01-11
KR20130099863A (en) 2013-09-06
EP2635026A3 (en) 2015-12-16
KR101443804B1 (en) 2014-11-04
CN103297768A (en) 2013-09-11
US20130223536A1 (en) 2013-08-29
EP2635026A2 (en) 2013-09-04
US9106932B2 (en) 2015-08-11
CN103297768B (en) 2017-12-29

Similar Documents

Publication Publication Date Title
TWI517662B (en) Parallel pyramid entropy coding for video and image compression
JP6317418B2 (en) Method and apparatus for encoding or decoding
JP6659586B2 (en) Image encoding / decoding method and apparatus
JP5266202B2 (en) Image encoding / decoding method and apparatus
JP5180370B2 (en) Multilevel representation of rearranged transform coefficients
US7443318B2 (en) High speed context memory implementation for H.264
CN103918273B (en) It is determined that the method for the binary code word for conversion coefficient
BRPI0800008B1 (en) image decoding device and method for obtaining image signals by decoding compressed data from digital moving image signals
TWI539793B (en) Decoder and method for decoding run-length-encoded data
CN103931197A (en) Method of determining binary codewords for transform coefficients
US10455244B2 (en) Method and device for entropy encoding or entropy decoding video signal for high-capacity parallel processing
CN104754362B (en) Image compression method using fine-divided block matching
US10771792B2 (en) Encoding data arrays
KR102296987B1 (en) Apparatus, method and system for hevc decoding image based on distributed system and machine learning model using block chain network
CN103618902B (en) Transcoding method, device and system for video file
CN115250351A (en) Compression method, decompression method and related products for image data
KR101868203B1 (en) Method and apparatus for processing stream
US11375183B2 (en) Methods and systems for combined lossless and lossy coding
KR20210074228A (en) A method and apparatus for encoding/decoding deep neural network model
KR101652694B1 (en) Adaptive processor and method for operating adaptive processor
CN115956361A (en) Method and system for combining lossless and lossy codecs
KR20200067040A (en) Apparatus and method for data compression
CN108848350A (en) High concurrent HD video processing technique based on ARM framework
KR20180029448A (en) Processor and data processing method thereof
CN107770541A (en) If data compression method and device that cutoff value is encoded to one group of coding parameter

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees