WO2010095528A1 - Scan conversion apparatus, image encoding apparatus, and methods of controlling the same - Google Patents
Scan conversion apparatus, image encoding apparatus, and methods of controlling the same Download PDFInfo
- Publication number
- WO2010095528A1 WO2010095528A1 PCT/JP2010/051728 JP2010051728W WO2010095528A1 WO 2010095528 A1 WO2010095528 A1 WO 2010095528A1 JP 2010051728 W JP2010051728 W JP 2010051728W WO 2010095528 A1 WO2010095528 A1 WO 2010095528A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- scan
- data
- status
- block
- holding
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
-
- 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/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- 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/436—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 parallelised computational 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
Definitions
- the present invention relates to a scan conversion apparatus, image encoding apparatus, and methods of controlling the same.
- Image data having a large data amount is not suitable for storage or transmission unless it undergoes processing. Generally, image data is compression-coded to decrease the data amount.
- a general image encoding apparatus will now be described. [0003] A digital image captured by an image sensing device or the like is divided into tiles each having a desired rectangular size. Each tile is further divided into predetermined two-dimensional MBs (macroblocks) (Fig. 5). Each MB data undergoes orthogonal transform and is thus converted from color space data to transform coefficients in the frequency space .
- Quantization processing is also performed for the transform coefficients as needed. If the data pattern of the image extends across a plurality of blocks, intra-frame prediction is performed to obtain the quantized transform coefficients in accordance with the frequency bands, thereby further decreasing the strength of the transform coefficients. However, if the quantized value changes depending on the coefficient position in a block or between blocks, correlation according to the frequency bands of the transform coefficients is not necessarily maintained even if the data pattern of the image extends across a plurality of blocks. It is therefore not always possible to suppress the strength of the transform coefficients by intra-frame prediction. In such a case, the intra-frame prediction processing may be omitted.
- the two-dimensional transform coefficients which have undergone quantization and intra-frame prediction are sorted into one-dimensional data by continuously placing significant coefficients ahead and runs (zeros) behind.
- sorted one-dimensional data is entropy-coded to generate a code stream.
- the code stream generated in the above- described way is reconstructed into the image in accordance with a reverse processing procedure.
- An image encoding apparatus which converts each of a number of blocks represented by JPEG, MPEG2, MPEG4, JPEG-XR, and the like uses run-length encoding for entropy encoding.
- Run-length encoding scans two- dimensionally arrayed transform coefficients in accordance with a predetermined pattern to sort them into a one-dimensional array, thereby encoding the length of continuous runs.
- Fig. 3A shows an example of the scan pattern. Scan is performed in the illustrated numerical order. This is called a "zigzag" pattern because the numerical order indicates a zigzag route.
- a predetermined pattern such as the "zigzag” pattern does not necessarily contributes to the encoding efficiency due to the following three reasons.
- a method of changing the scan order for each block is suitable (e.g., Japanese Patent Laid-Open Nos . 2006-191628 and 07-050836) .
- an MB including 16 x 16 pixels is divided into blocks each including 4 x 4 pixels, as shown in Fig. 4.
- Scan conversion of the blocks is performed in the order of A to P in Fig. 4.
- the scan conversion result of the block A is analyzed, that is, the coefficients are analyzed in the order after sorting, thereby deciding the scan order of the next block B.
- the scan conversion result of the block B is analyzed, that is, the coefficients are analyzed in the order after sorting, thereby deciding the scan order of the next block C.
- the scan order of the next block is decided depending on the scan conversion result of the current process target block. The scan order deciding method will be described in more detail with reference to Fig. 6.
- step S801 one transform coefficient C[n] (n > 0) is acquired in the one- dimensional order from a block that has undergone scan conversion.
- step S802 it is determined whether the coefficient C[n] acquired in step S801 is a run (zero) . If the transform coefficient C[n] is a run, the process advances to determination in step S804. On the other hand, if the transform coefficient C[n] is a significant coefficient (nonzero) , the process in step S803 is executed.
- a statistical information table ScanTotals which counts the number of significant coefficients generated at each position of a 4 x 4 block is updated.
- Fig. 7A shows an example of the statistical information table ScanTotals.
- Fig. 7A shows statistical information table values corresponding to the positions in the 4 x 4 pixel block corresponding to the scan order, as shown in Fig. 7B, for the descriptive convenience.
- the initial values of the statistical information ScanTotals are set as follows in some cases.
- a small integer (2 or 4) is selected as t.
- the value t may be decided by a quantization parameter used in quantization. Resetting the statistical information at a predetermined period allows the maximum bit length of the elements of the statistical information to be fixed.
- a table ScanOrder representing the correspondence between the scan order and the positions of coefficients in a 4 x 4 pixel block.
- the initial order of the coefficient positions ScanOrder corresponding to the scan order is preferably decided causally between an image encoding processing apparatus and an image decoding processing apparatus. For example, when coefficient prediction has been done in the horizontal direction, the scan order is initialized to the order of preferentially scanning in the horizontal direction (Fig. 3C) .
- the scan order is initialized to the order of preferentially scanning in the vertical direction (Fig. 3B) .
- the scan order in the horizontal direction may also be used as the initial scan order of a block which does not exhibit any specific directivity.
- Each of symbols a to o in Fig. 4 indicates the correspondence with a coefficient position in a given 4 x 4 pixel block shown in Fig. 4.
- the scan order table ScanOrder in the initialized status shown in Fig. 3B is represented by a to o in Fig. 4.
- step S804 the ordering between two pieces of statistical information ScanTotals [n] and ScanTotals [n-1] is determined.
- ScanTotals [n] > ScanTotals [n-1] means that the number of times of significant coefficient generation is larger at the position of the transform coefficient C[n] than at the position of a transform coefficient C [n-1] .
- step S805 conversion processing is performed for the coefficient position ScanOrder corresponding to the scan order and ScanTotals corresponding to it. If the statistical information ScanTotals [n] ⁇ ScanTotals [n-1] in step S804, the scan order change processing is not executed.
- step S805 The conversion processing in step S805 will be described in detail.
- the conversion processing to replace the coefficient positions ScanOrder [n] and ScanOrder [n-1] with each other, for example, the following calculations are performed.
- ScanOrder [n-1] ScanOrder [n]
- step S806 Upon determining in step S806 that transform coefficient acquisition in the block for scan order decision has not ended yet, the process advances to step S807 to prepare for acquisition of the next coefficient. If all coefficients in the block have been acquired, the scan order decision procedure ends.
- the coefficient position ScanOrder [n-1] corresponding to the scan order n-1 is causally decided using the statistical information ScanTotals [n] and ScanTotals [n-1] corresponding to the scan orders n and n-1. This allows to decide an optimum scan order stepwise.
- the encoding apparatus need not add, to the code stream, information to explicitly notify the decoding apparatus of the scan order.
- the scan order deciding method of deciding the scan order of a block based on the status of the preceding block the scan order can change for each block.
- the present invention provides a technique of solving the above-described problem and, more particularly, a technique of increasing the number of scan conversion target blocks per unit time by using scan conversion processing of changing the scan order for each block but executing the scan conversion processing in parallel if possible.
- the present invention in its first aspect provides an apparatus for sorting data in a block having n rows x m columns based on a predetermined scan order, comprising: scan status holding means for updating and holding a current scan status in accordance with a status of the data in the block; scan order holding means for updating and holding a scan order in accordance with the scan status; parallel number determination means for instructing to perform scan conversion processing of N blocks (N is an integer: N > 2) as M-parallel processing (M is an integer: 1 ⁇ M ⁇ N) in accordance with the scan status held by the scan status holding means; and scan conversion means for sorting, in accordance with the instruction from the parallel number determination means, the data in the block based on the scan order held by the scan order holding means.
- the present invention in its second aspect provides an apparatus for sorting data in a block having n rows x m columns based on a predetermined scan order, comprising: scan status holding means for updating and holding a current scan status in accordance with a status of the data in the block; scan order holding means for updating and holding a scan order in accordance with the scan status; significant data position information generation means for generating position information of significant data that exists in the block; parallel number determination means for instructing to perform scan conversion processing of N blocks (N is an integer: N > 2) as M- parallel processing (M is an integer: 1 ⁇ M ⁇ N) in accordance with the scan status held by the scan status holding means and the position information output from the significant data position information generation means; and scan conversion means for sorting, in accordance with the instruction from the parallel number determination means, the data in the block based - li ⁇
- the present invention in its third aspect provides a method of sorting data in a block having n rows x m columns based on a predetermined scan order, comprising: a scan status holding step of updating and holding a current scan status in accordance with a status of the data in the block; a scan order holding step of updating and holding a scan order in accordance with the scan status; a parallel number determination step of instructing to perform scan conversion processing of N blocks (N is an integer: N > 2) as M- parallel processing (M is an integer: 1 ⁇ M ⁇ N) in accordance with the scan status held in the scan status holding step; and a scan conversion step of sorting, in accordance with the instruction in the parallel number determination step, the data in the block based on the scan order held in the scan order holding step.
- the present invention in its fourth aspect provides a method of sorting data in a block having n rows x m columns based on a predetermined scan order, comprising: a scan status holding step of updating and holding a current scan status in accordance with a status of the data in the block; a scan order holding step of updating and holding a scan order in accordance with the scan status; a significant data position information generation step of generating position information of significant data that exists in the block; a parallel number determination step of instructing to perform scan conversion processing of N blocks (N is an integer: N > 2) as M-parallel processing (M is an integer: 1 ⁇ M ⁇ N) in accordance with the scan status held in the scan status holding step and the position information output in the significant data position information generation step; and a scan conversion step of sorting, in accordance with the instruction in the parallel number determination step, the data in the block based on the scan order held in the scan order holding step.
- the present invention in its fifth aspect provides an image encoding apparatus comprising: image dividing means for dividing an image into unit blocks each having n rows x m columns; orthogonal transform means for performing orthogonal transform of each unit block output from the image dividing means and outputting transform coefficients; quantization means for quantizing the transform coefficients output from the orthogonal transform means and outputting quantized transform coefficients; scan conversion means for sorting the quantized transform coefficients output from the quantization means in each unit block and outputting the quantized transform coefficients; and entropy encoding means for entropy-encoding the quantized transform coefficients output from the scan conversion means and outputting a code stream, the scan conversion means comprising: scan status holding means for updating and holding a current scan status in accordance with a status of data in the block; scan order holding means for updating and holding a scan order in accordance with the scan status; parallel number determination means for instructing to perform scan conversion processing of N blocks (N is an integer: N > 2) as M-parallel processing (M
- the present invention in its sixth aspect provides an image encoding apparatus comprising: image dividing means for dividing an image into unit blocks each having n rows x m columns; orthogonal transform means for performing orthogonal transform of each unit block output from the image dividing means and outputting transform coefficients; quantization means for quantizing the transform coefficients output from the orthogonal transform means and outputting quantized transform coefficients; scan conversion means for sorting the quantized transform coefficients output from the quantization means in each unit block and outputting the quantized transform coefficients; and entropy encoding means for entropy-encoding the quantized transform coefficients output from the scan conversion means and outputting a code stream, the scan conversion means comprising: scan status holding means for updating and holding a current scan status in accordance with a status of data in the block; scan order holding means for updating and holding a scan order in accordance with the scan status; significant data position information generation means for generating position information of significant data that exists in the block; parallel number determination means for instructing to perform scan conversion processing of
- the present invention in its seventh aspect provides a method of controlling an image encoding apparatus, comprising: an image dividing step of dividing an image into unit blocks each having n rows x m columns; an orthogonal transform step of performing orthogonal transform of each unit block output in the image dividing step and outputting transform coefficients; a quantization step of quantizing the transform coefficients output in the orthogonal transform step and outputting quantized transform coefficients; a scan conversion step of sorting the quantized transform coefficients output in the quantization step in each unit block and outputting the quantized transform coefficients; and an entropy encoding step of entropy-encoding the quantized transform coefficients output in the scan conversion step and outputting a code stream, the scan conversion step comprising: a scan status holding step of updating and holding a current scan status in accordance with a status of data in the block; a scan order holding step of updating and holding a scan order in accordance with the scan status; a parallel number determination step of instructing to perform scan conversion processing of N
- the present invention in its eighth aspect provides a method of controlling an image encoding apparatus, comprising: an image dividing step of dividing an image into unit blocks each having n rows x m columns; an orthogonal transform step of performing orthogonal transform of each unit block output in the image dividing step and outputting transform coefficients; a quantization step of quantizing the transform coefficients output in the orthogonal transform step and outputting quantized transform coefficients; a scan conversion step of sorting the quantized transform coefficients output in the quantization step in each unit block and outputting the quantized transform coefficients; and an entropy encoding step of entropy-encoding the quantized transform coefficients output in the scan conversion step and outputting a code stream, the scan conversion step comprising: a scan status holding step of updating and holding a current scan status in accordance with a status of data in the block; a scan order holding step of updating and holding a scan order in accordance with the scan status; a significant data position information generation step of generating position information of significant data
- the present invention in its ninth aspect provides a scan conversion apparatus which repeatedly executes, for run-length encoding, scanning N data in two-dimensionally arrayed blocks each having m x n data to convert the N data into one-dimensionally arrayed data and outputting the data, comprising: setting means for setting initial sorting information in which positions of scan target data in the m x n data and statistical appearance frequency values of nonzero at the positions are paired and arranged in descending order of the appearance frequency values of the scan target data; a plurality of scan conversion means executable in parallel, each scan conversion means sequentially reading out and outputting data in a block of interest in an order of data positions based on the sorting information, and if the readout data is nonzero, increasing the appearance frequency value at the position of the data; update means for, if a portion where the appearance frequency values are arranged in ascending order exists in the sorting information, updating the sorting information to attain the descending order by replacing two pairs determined to be arranged in the ascending order; determination
- the present invention in its tenth aspect provides a method of controlling a scan conversion apparatus which includes a plurality of scan conversion means executable in parallel, each scan conversion means sequentially reading out and outputting data in a block of interest in an order of data positions based on sorting information, and if the readout data is nonzero, increasing an appearance frequency value at a position of the data, and repeatedly executes, for run- length encoding, causing at least one scan conversion means to scan two-dimensionally arrayed blocks each having m x n data to convert the data into one- dimensionally arrayed data and outputting the data, comprising: a setting step of setting initial sorting information in which positions of scan target data in the m x n data and statistical appearance frequency values of nonzero at the positions are paired and arranged in descending order of the appearance frequency values of the scan target data; and an update step of updating, if a portion where the appearance frequency values are arranged in ascending order exists in the sorting information, the sorting information to attain the
- Fig. 1 is a block diagram showing the arrangement of a parallel scan conversion unit according to the first embodiment
- Fig. 2 is a block diagram showing the arrangement of an image encoder according to the present invention
- Figs. 3A to 3C are views showing examples of a scan order
- Fig. 4 is a view showing the relationship between a macroblock and blocks and the correspondence relationship between each data in a block and a character added to its position;
- Fig. 5 is a view for explaining image division
- Fig. 6 is a flowchart of scan order decision processing
- Figs. 7A and 7B are views showing a statistical information table and a coefficient position table
- Fig. 8 is a block diagram showing the arrangement of an image decoder
- Fig. 9 is a block diagram showing the arrangement of a digital camera applied in the embodiment ;
- Fig. 10 is a block diagram showing the arrangement of a scan conversion unit according to the first embodiment
- Fig. 11 is a block diagram showing the arrangement of a scan order holding unit according to the first embodiment
- Fig. 12 is a block diagram showing the arrangement of a scan status holding unit according to the first embodiment
- Fig. 13 is a block diagram showing the arrangement of a counter 1033 in Fig. 12;
- Fig. 14 is a block diagram showing the arrangement of a parallel number determination unit according to the first embodiment
- Fig. 15 is a flowchart of parallel number determination processing of the parallel number determination unit according to the first embodiment
- Fig. 16 is a timing chart of an operation according to the first embodiment
- Figs. 17A and 17B are a view showing the transition of the scan order (coefficient position) and statistical information in the process step according to the first embodiment
- Fig. 18 is a block diagram showing the arrangement of a parallel scan conversion unit according to the second embodiment
- Fig. 19 is a block diagram showing the arrangement of a parallel number determination unit according to the second embodiment.
- Fig. 20 is a flowchart of parallel number determination processing of the parallel number determination unit according to the second embodiment
- Fig. 21 is a block diagram showing the arrangement of a significant data position information generation unit according to the second embodiment
- Fig. 22 is a timing chart of an operation according to the second embodiment
- Figs. 23A and 23B are a view showing the transition of the scan order (coefficient position) and statistical information in the process step according to the second embodiment.
- Fig. 9 is a block diagram showing the hardware configuration of a digital camera serving as an image processing apparatus according to the embodiment.
- a sensing target image is formed on an image sensing device 1202 such as a CCD or CMOS via a lens 1201.
- the image sensing device 1202 converts the formed image into an analog signal and outputs it to an A/D converter 1203 of the succeeding stage.
- the A/D converter 1203 converts the analog signal received from the image sensing device 1202 into a digital signal.
- a memory control circuit 1207 acquires the converted digital signal from the A/D converter 1203 as data (image data) , and outputs the image data to an image processing unit 1204.
- the image processing unit 1204 executes known image interpolation processing and color conversion processing for the image data.
- the memory control circuit 1207 acquires the processed image data from the image processing unit
- the memory 1205 is configured to temporarily store the data of a sensed still image or moving image, and has an area to store a predetermined number of still images (still images corresponding to a predetermined number of frames) .
- the memory 1205 is read- and write-accessible .
- the memory control circuit 1207 includes a control unit dedicated to write data in the memory 1205 and read out data from the memory 1205. [0065]
- the memory control circuit 1207 reads out the image data from the memory 1205 again, and outputs it to a D/A converter 1208 and an encoder 1211.
- the D/A converter 1208 converts the image data into an analog signal, and outputs the converted analog signal to an image display unit 1209.
- the image display unit 1209 displays (reproduces) , on its display screen, an image (sensed image) represented by the analog signal.
- the encoder 1211 generates a code stream (encoded data) from the image data (input image) received from the memory control circuit 1207.
- the memory control circuit 1207 records the code stream generated by the encoder 1211 in a storage medium 1206 as a file.
- a removable medium such as an SD card which is detachable from the image processing apparatus is used as the storage medium 1206.
- the digital camera has various kinds of switches and buttons, including a mode dial 1221.
- the mode dial 1221 is used to select an image sensing mode or a reproduction mode.
- a system control unit 1220 controls the operations of the processing units of the apparatus in accordance with a program stored in a ROM 1223, thereby implementing the above-described processing. More specifically, the system control unit implements processing of causing the image display unit 1209 to display an image based on the data of an image obtained via the lens 1201, and also encoding the image data and recording it as a code stream in the storage medium 1206. [0068] If the user selects the reproduction mode by operating the mode dial 1221, the system control unit 1220 controls the operations of the units of the image processing apparatus, thereby implementing each processing to be explained below.
- the memory control circuit 1207 reads out a code stream from an encoded data file recorded in the storage medium 1206, and outputs the readout code stream to a decoder 1213.
- the decoder 1213 decodes the code stream received from the memory control circuit 1207.
- the memory control circuit 1207 outputs image data obtained by decoding to the D/A converter 1208.
- the D/A converter 1208 converts the image data into an analog signal, and outputs the converted analog signal to the image display unit 1209.
- the image display unit 1209 reproduces (displays) , on its display screen, the encoded image data file stored in the storage medium 1206.
- the ROM 1223 stores the setting data of the image processing apparatus and computer programs to be executed by the system control unit 1220, The ROM 1223 also stores data to be described below as known data in the following processing. That is, the system control unit 1220 executes processing using the computer programs and data stored in the ROM 1223, thereby controlling the operations of the units of the apparatus .
- the apparatus according to the embodiment thus implements each processing to be explained below.
- the encoder 1211 will be described next with reference to Fig. 2.
- Fig. 2 is a block diagram showing an example of the detailed functional arrangement of the encoder 1211. The units shown in Fig. 2 are formed from hardware. However, some or all of them may be implemented by a computer program. [0072] Referring to Fig.
- a tile dividing unit 201 functions as an image dividing unit configured to divide one input image data. More specifically, the tile dividing unit 201 divides input image data into one or more tiles and sequentially outputs the tiles to an MB dividing unit 202.
- the MB dividing unit 202 divides one input tile into a plurality of macroblocks (MBs) each serving as the unit of encoding processing, and outputs the divided MBs to an orthogonal transform unit 203. Hence, processing from the orthogonal transform unit 203 is done for each MB.
- An encoding operation of encoding one MB will be described below. The same operation is performed even for other MBs. When all MBs in one tile have been processed, the same processing is executed for another tile.
- the data of an MB undergoes orthogonal transform of the orthogonal transform unit 203 and is thus converted from color space data to transform coefficients in the frequency space.
- a quantization unit 204 quantizes the transform coefficients to lower the resolution, thereby- decreasing the data amount.
- a coefficient prediction unit 205 predicts the quantized transform coefficients (to be simply referred to as transform coefficients hereinafter) in accordance with each frequency band, thereby further decreasing the strength of the transform coefficients.
- the coefficient prediction processing may be omitted even if the data pattern of the image extends across a plurality of blocks.
- the transform coefficients which have undergone quantization and coefficient prediction are supplied to a parallel scan conversion unit 206 as two- dimensional data.
- the parallel scan conversion unit 206 scans the two-dimensionally arrayed transform coefficients to sort them into one-dimensionally arrayed data by continuously placing significant coefficients ahead and runs (zeros) behind.
- An entropy encoder 207 entropy-encodes (run-length encodes) the thus sorted one-dimensional data, thereby generating a code stream.
- Fig. 8 is a block diagram showing the arrangement of the decoder 1213.
- the decoder 1213 includes an entropy decoder 1107, parallel inverse scan conversion unit 1106, coefficient prediction unit 1105, inverse quantization unit 1104, inverse orthogonal transform unit 1103, MB combining unit 1102, and tile combining unit 1101.
- the contents of processes of these processing units are reverse to those in the encoder 1211 shown in Fig. 2, and a detailed description thereof will be omitted.
- a method of changing the scan order for each block is suitable. Two embodiments will be explained below in detail, which implement the parallel scan conversion unit 206 capable of executing scan conversion of two or more blocks in parallel to increase the process speed.
- [0078] [First Embodiment]
- Fig. 1 illustrates the arrangement of a parallel scan conversion unit 206.
- the parallel scan conversion unit 206 includes a scan conversion unit 101, scan order holding unit 102, scan status holding unit 103, and parallel number determination unit 104.
- the scan conversion unit 101 is assumed to execute two scan conversion processes in parallel for the descriptive convenience. However, three or more scan conversion processes may be executed in parallel, as is apparent from the following explanation.
- the parallel scan conversion unit 206 will be described in detail with reference to Fig. 1.
- the scan conversion unit 101 receives two consecutive block data inputs #1 and #2, performs scan conversion (sort processing) , and outputs converted data outputs #1 and #2.
- the scan conversion unit 101 executes scan conversion of block data inputs #1 and #2 in accordance with scan order information received from the scan order holding unit 102.
- the scan conversion unit 101 outputs only converted data output #1 or both of converted data outputs #1 and #2 in accordance with a parallel process control signal received from the parallel number determination unit 104.
- the scan order holding unit 102 Based on information output from the scan status holding unit 103, the scan order holding unit 102 performs the above-described conversion processing as needed, and generates and holds scan order information representing the scan order.
- the scan order holding unit 102 outputs the generated scan order information to the scan conversion unit 101 and the parallel number determination unit 104.
- the scan status holding unit 103 receives block data inputs #1 and #2, generates and holds a scan status and a next scan status, and outputs the next scan status to the scan order holding unit 102 and the scan status to the parallel number determination unit 104.
- the parallel number determination unit 104 functions as a scan control unit configured to control the operation of the scan conversion unit 101. More specifically, the parallel number determination unit 104 receives the scan order information output from the scan order holding unit 102 and the scan status output from the scan status holding unit 103. The parallel number determination unit 104 generates a parallel process control signal by analyzing these pieces of information, and outputs the control signal to the scan conversion unit 101 and the scan status holding unit 103.
- Fig. 16 shows changes in the statuses of the respective units from block data input to converted data output in periods of Terms 1 to 5.
- blocks A and B are supplied to each of the scan conversion unit 101 and the scan status holding unit 103 as block data #1 and #2.
- the scan order information held in the scan order holding unit 102 and the scan status held in the scan status holding unit 103 are in the initial status.
- the initial scan order information held in the scan order holding unit 102 represents the coefficient positions shown in Fig. 7B.
- the scan order information is not limited to this and can be any other information using an expression capable of specifying the scan order.
- the initial scan status (the initial appearance frequency values of the coefficients) held in the scan status holding unit 103 represents the statistically obtained information shown in Fig. 7A.
- the scan status is not limited to this and can be any other information to be used to decide the scan order.
- the pieces of the statistical information are arranged in the order (descending order) of appearance frequency value, as shown in Fig. 7A.
- the scan order and statistical information are decided based on the method of deciding the coefficient positions (ScanOrder) and statistical information (ScanTotals) shown in Fig. 6.
- the deciding method is not limited to this.
- Figs. 17A and 17B show the coefficient position data held in the scan order holding unit 102, the statistical information held in the scan status holding unit 103, and the statuses of block inputs #1 and #2 during the periods of Terms 1 to 5 in Fig. 16.
- Term 1 the coefficient positions and statistical information are initialized as shown in Figs. 17A and 17B. Assume that the blocks A and B having values shown in Fig. 17A are input.
- Figs. 17A and 17B coefficient positions corresponding to significant coefficients (coefficients having values other than 0) appearing in the input blocks are marked with full circles and open circles for the purpose of reference. The full circles correspond to significant coefficient positions in block input #1. The open circles correspond to significant coefficient positions in block input #2.
- the parallel number determination unit 104 determines that parallel processing is possible, and outputs a signal representing a parallel process instruction to the scan conversion unit 101.
- determination process S1046 it is determined whether the variable n equals the number of coefficients in a block. If NO, the value of the variable n is incremented (increased) in process S1047, and the process returns to process S1043. Note that in this embodiment, one block has a size of 4 x 4 pixels, and the scan target (sort target) includes 15 AC components other than one DC component in the block. Hence, the number of scan conversion target coefficients in the block is "15".
- process S1048 If YES in determination process S1046, all pieces of statistical information have been inspected, and the process advances to process S1048.
- the value P indicates the minimum number of blocks until execution of replacement processing. More specifically, this indicates that the data in P blocks can undergo scan conversion in parallel. Hence, the number of executable parallel processes can be decided as P.
- the scan conversion unit 101 sorts the scan orders of the input blocks A and B in accordance with the coefficient position information output from the scan order holding unit 102 and the parallel control signal output from the parallel number determination unit 104.
- the parallel control signal output from the parallel number determination unit 104 indicates parallel processing.
- the blocks A and B undergo sort processing in parallel in accordance with the coefficient position information output from the scan order holding unit 102.
- blocks C and D are respectively input as block data #1 and #2 to each of the scan conversion unit 101 and the scan status holding unit 103. Since parallel processing has been executed in Term 1, and the coefficients at the positions indicated by full and open circles in Figs. 17A and 17B are significant coefficients, the pieces of statistical information at the corresponding positions in the scan status holding unit 103 are updated to values as indicated by Term 2 in Fig. 17A. Since replacement of coefficient positions has not occurred upon inputting the blocks A and B, the coefficient position information in the scan order holding unit 102 does not change in Term 2.
- the parallel number determination unit 104 determines in accordance with the procedure shown in Fig. 15 whether to execute parallel processing, and outputs a control signal to the scan conversion unit 101 and the scan status holding unit 103.
- the parallel number determination unit 104 outputs a parallel control signal indicating sequential processing.
- the scan status holding unit 103 updates, out of the pieces of currently held statistical information, only information corresponding to the significant coefficients of the input block C, and outputs the information to the scan order holding unit 102 as the next statistical information.
- the positions corresponding to the significant coefficients of the input block C to be updated are indicated by full circles in Term 2 of Fig. 17A.
- the scan order holding unit 102 decides the coefficient position information using the statistical information in the next status output from the scan status holding unit 103.
- the scan conversion unit 101 outputs the results of scan conversion processing of the blocks A and B in Term 1 as converted data outputs #1 and #2.
- the scan conversion unit 101 sorts only the block C in accordance with the coefficient position information output from the scan order holding unit 102.
- blocks D and E are respectively input as block data #1 and #2 to each of the scan conversion unit 101 and the scan status holding unit 103. Since sequential processing has been executed in Term 2, and the coefficients at the positions indicated by full circles in Figs. 17A and 17B are significant coefficients of the block C, the pieces of statistical information at the corresponding positions in the scan status holding unit 103 are updated to values as indicated by Term 3 in Fig. 17A.
- the coefficient position information in the scan order holding unit 102 is updated as indicated by Term 3 in Fig. 17A.
- the scan status holding unit 103 updates, out of the pieces of currently held statistical information, information corresponding to the significant coefficients of the input blocks D and E, and outputs the information to the scan order holding unit 102 as the next statistical information.
- the positions corresponding to the significant coefficients of the input blocks D and E to be updated are indicated by full and open circles in Term 3 of Fig. 17A.
- the scan order holding unit 102 decides the coefficient position information using the statistical information in the next status output from the scan status holding unit 103.
- the scan conversion unit 101 outputs the result of scan conversion processing of the block C in Term 2 as converted data output #1.
- the scan conversion unit 101 also holds the result of the scan conversion processing of the block B and outputs it as converted data output #2.
- the scan conversion unit 101 sorts the blocks D and E in parallel in accordance with the coefficient position information output from the scan order holding unit 102 [0097]
- blocks F and G are respectively input as block data #1 and #2 to each of the scan conversion unit 101 and the scan status holding unit 103. Since parallel processing has been executed in Term 3, and the coefficients at the positions indicated by full and open circles in Figs. 17A and 17B are significant coefficients, the pieces of statistical information at the corresponding positions in the scan status holding unit 103 are updated to values as indicated by Term 4 in Fig. 17B.
- the coefficient position information in the scan order holding unit 102 does not change in Term 4.
- the parallel number determination unit 104 Based on the coefficient position information output from the scan order holding unit 102 and the statistical information output from the scan status holding unit 103, the parallel number determination unit 104 outputs a parallel control signal to the scan conversion unit 101 and the scan status holding unit 103 in accordance with the procedure shown in Fig. 15. In Term 4, a portion where the scan orders can replace each other exists, as indicated by Term 4 in Fig. 17B. Hence, the parallel number determination unit 104 outputs a parallel control signal indicating sequential processing.
- the scan status holding unit 103 updates, out of the pieces of currently held statistical information, only information corresponding to the significant coefficients of the input block F, and outputs the information to the scan order holding unit 102 as the next statistical information.
- the positions corresponding to the significant coefficients of the input block F to be updated are indicated by full circles in Term 4 of Fig. 17B.
- the scan order holding unit 102 decides the coefficient position information using the statistical information in the next status output from the scan status holding unit 103.
- the scan conversion unit 101 outputs the results of scan conversion processing of the blocks D and E in Term 3 as converted data outputs #1 and #2. Since the parallel control signal output from the parallel number determination unit 104 indicates sequential processing, the scan conversion unit 101 sorts only the block F in accordance with the coefficient position information output from the scan order holding unit 102.
- blocks G and H are respectively input as block data #1 and #2 to each of the scan conversion unit 101 and the scan status holding unit 103. Since sequential processing has been executed in Term 4, and the coefficients at the positions indicated by full circles in Figs. 17A and 17B are significant coefficients of the block F, the pieces of statistical information at the corresponding positions in the scan status holding unit 103 are updated to values as indicated by Term 5 in Fig. 17B. Since replacement of coefficient positions has not occurred upon inputting the block F, the coefficient position information in the scan order holding unit 102 does not change in Term 5. In Term 5, no portion where the scan orders can replace each other in the next status exists.
- the parallel number determination unit 104 outputs a parallel control signal indicating parallel processing to the scan conversion unit 101 and the scan status holding unit 103 in accordance with the procedure shown in Fig. 15.
- the scan status holding unit 103 updates, out of the pieces of currently held statistical information, information corresponding to the significant coefficients of the input blocks G and H, and outputs the information to the scan order holding unit 102 as the next statistical information.
- the positions corresponding to the significant coefficients of the input blocks G and H to be updated are indicated by full and open circles in Term 5 of Fig. 17B.
- the scan order holding unit 102 decides the coefficient position information using the statistical information in the next status output from the scan status holding unit 103.
- the scan conversion unit 101 outputs the result of scan conversion processing of the block F in Term 4 as converted data output #1.
- the scan conversion unit 101 also holds the result of the scan conversion processing of the block E and outputs it as converted data output #2. Since the parallel control signal output from the parallel number determination unit 104 indicates parallel processing, the scan conversion unit 101 sorts the blocks G and H in parallel in accordance with the coefficient position information output from the scan order holding unit 102.
- FIG. 10 is a block diagram showing an example of the internal arrangement of the scan conversion unit 101.
- a block scan converter #1 1011 sorts, in accordance with the coefficient position information, data in a block of interest input as block data input #1, and outputs the data as converted data output #1 in the next cycle.
- a block scan converter #2 1012 sorts block data input #2 in accordance with the coefficient position information and, if the parallel control signal indicates a parallel process instruction, outputs the data as converted data output #2 in the next cycle. If the parallel control signal indicates a sequential process instruction, the block scan converter #2 1012 holds the value in the preceding cycle and outputs it as converted data output #2.
- a sorter 1021a sorts nScanTotals representing the next statistical information in accordance with the coefficient position information based on the scan orders 1 to 15 and outputs the information.
- a sorter 1021b sorts nonzero information of coefficients b to o in accordance with the coefficient position information based on the scan orders 2 to 15 and outputs the information.
- a logic OR array 1022 logically ORs significant coefficient information #1 of the coefficients b to o and significant coefficient information #2 of the coefficients b to o, and outputs the nonzero information of the coefficients b to o.
- Each multiplexer 1023 selectively outputs one of inputs "1" and "0" in Fig. 11 in accordance with a selection signal.
- a comparator 1024 receives and compares, out of nScanTotals output from the sorter 1021a, two values adjacent in the scan order, and outputs a smaller one. If nonzero information output from the sorter 1021b does not indicate nonzero, the comparator 1024 outputs preceding nScanTotals in the scan order.
- a flip-flop 1025 receives the outputs from the multiplexers 1023, and holds and outputs them as the coefficient position information of the scan orders 1 to 15.
- Block input data #1 and #2 are split into coefficients at #1 to o #1 and a #2 to o #2, and the coefficients are input to nonzero detection units 1031al to 1031ol and 1031a2 to 1031o2, respectively.
- the nonzero detection units 1031al to 1031ol determine whether the coefficients a. #1 to o #1 are 0, respectively, and output the determination results as the nonzero signals of the coefficients a #1 to o #1. In this embodiment, "1" is output as a nonzero signal representing nonzero. Otherwise, "0" is output.
- the nonzero detection units 1031a2 to 1031o2 determine whether the coefficients a #2 to o #2 are 0, respectively, and output "1" for nonzero or "0" otherwise.
- Logic AND gates 1032a to 1032o logically AND the outputs from the nonzero detection units 1031a2 to 1031o2 and the input parallel control signal, and output the nonzero signals of the coefficients a_ #2 to o #2.
- the parallel control signal indicates a parallel process instruction by "1" and a sequential process instruction by "0". More specifically, when the parallel control signal indicates a sequential process instruction, all the nonzero signals of the coefficients a #2 to o #2 are masked by "0". The nonzero signals of the coefficients a_ #1 to o #1 and the coefficients a #2 to o #2 are output to the outside as significant coefficient information #1 and #2, respectively.
- the counter 1033a receives the nonzero signals of the coefficients a #1 and a #2, counts up the internal status of each signal based on its status, and outputs ScanTotals.
- Fig. 13 is a block diagram showing an example of the internal arrangement common to the counters 1033a to 1033o.
- a flip-flop 10331 holds and outputs ScanTotals of a corresponding coefficient.
- An adder 10332 adds "1" to the output from the flip-flop
- the multiplexer 10334 selectively outputs the output from the flip-flop 10331, the output from the adder 10332, or the output from the adder 10333 to the flip-flop 10331 in accordance with the statuses of #1 nonzero input and #2 nonzero input.
- the output from the multiplexer 10334 is output to the outside as "nScanTotals" as the next status of ScanTotals.
- the multiplexer 10334 selects and outputs the output from the adder 10332. When both inputs are “1”, the multiplexer 10334 selects and outputs the output from the adder 10333. Otherwise, the multiplexer 10334 selects and outputs the output from the flip-flop 10331. Like the counter 1033a, the remaining counters 1033b to 1033o receive the nonzero signals of the coefficients b #1 to o #1 and the nonzero signals of the coefficients b #2 to o #2, respectively, count up the internal statuses of the signals based on their statuses, and output ScanTotals.
- ScanTotals of the coefficients a_ to o output from the counters 1033a to 1033o are output to the outside as the next statistical information.
- ScanTotals of the coefficients a. to o output from the counters 1033a to 1033o are also output to the outside as the statistical information.
- the internal arrangement and operation of the parallel number determination unit 104 will be described next with reference to Fig. 14.
- the statistical information is split into ScanTotals of the coefficients a. to o and input to a sorter 1041.
- the sorter 1041 sorts the ScanTotals of the coefficients a to o in accordance with the coefficient position information based on the scan orders 1 to 15 and outputs the ScanTotals to a comparator 1042.
- the comparator 1042 compares the ScanTotals of the scan orders 1 to 15 and outputs the comparison result to a logic AND gate 1043.
- the comparator 1042 is formed by connecting a plurality of comparators 10421 as illustrated. If a value obtained by subtracting "1" from the input value from the upper side of Fig. 14 is smaller than the input value from the lower side, the comparator 10421 outputs "0" to the logic AND gate 1043 as a comparison result. Otherwise, "1" is output.
- the logic AND gate 1043 logically ANDs the comparison results of all the comparators 10421, which are output from the comparator 1042, and outputs the logic AND to the outside as a parallel control signal.
- the parallel control signal indicates a parallel process instruction by "1” and a sequential process instruction by "0".
- a scan conversion unit 101 receives two consecutive block data inputs #1 and #2, performs scan conversion, and outputs converted data outputs #1 and #2.
- the scan conversion unit 101 is connected to a scan order holding unit 102 and a parallel number determination unit 2104.
- the scan conversion unit 101 executes scan conversion of block data inputs #1 and #2 in accordance with scan order information received from the scan order holding unit 102.
- the scan conversion unit 101 outputs only converted data output #1 or both of converted data outputs #1 and #2 in accordance with a parallel process control signal received from the parallel number determination unit 2104.
- the scan order holding unit 102 Based on information output from a scan status holding unit 103, the scan order holding unit 102 generates and holds scan order information representing the scan order, and outputs the scan order information to the scan conversion unit 101, the parallel number determination unit 2104, and a significant data position information generation unit 2105.
- the scan status holding unit 103 receives block data inputs #1 and #2, generates and holds a scan status and a next scan status, and outputs the next scan status to the scan order holding unit 102 and the scan status to the parallel number determination unit 2104.
- the parallel number determination unit 2104 receives the scan order information output from the scan order holding unit 102, the scan status output from the scan status holding unit 103, and significant data position information output from the significant data position information generation unit 2105.
- the parallel number determination unit 2104 generates a parallel process control signal based on these pieces of information, and outputs it to the scan conversion unit 101 and the scan status holding unit 103.
- the significant data position information generation unit 2105 receives block data input #1 and the scan order information output from the scan order holding unit 102, arranges, based on the scan order, pieces of information each representing whether a corresponding coefficient is a significant coefficient, and outputs them to the parallel number determination unit 2104 as significant data position information.
- Fig. 22 shows changes in the statuses of the respective units from block data input to converted data output in periods of Terms 1 to 5.
- ⁇ blocks A and B are respectively input as block data #1 and #2 to each of the scan conversion unit 101 and the scan status holding unit 103.
- the block A is also input to the significant data position information generation unit 2105.
- the scan order information held in the scan order holding unit 102 and the scan status held in the scan status holding unit 103 are in the initial status.
- the operations of the scan order holding unit 102 and the scan status holding unit 103 according to the second embodiment and meanings of information handled in them are the same as those in the first embodiment, and a description thereof will not be repeated.
- Figs. 23A and 23B show the coefficient positions held in the scan order holding unit 102, the statistical information held in the scan status holding unit 103, and the statuses of block inputs #1 and #2 during the periods of Terms 1 to 5 in Fig. 22.
- Term 1 the coefficient positions and statistical information are initialized as shown in Fig. 23A. Assume that the blocks A and B having values shown in Fig. 23A are input.
- Figs. 23A and 23B coefficient positions corresponding to significant coefficients appearing in the input blocks are marked with full circles and open circles for the purpose of reference, as in Figs. 17A and 17B. The meanings of full and open circles are the same as in Figs. 17A and 17B.
- the significant data position information generation unit 2105 generates pieces of information each representing whether a corresponding coefficient in the block A is a significant coefficient, arranges them based on the scan order in accordance with the coefficient position information output from the scan order holding unit 102, and outputs the information to the parallel number determination unit 2104 as significant coefficient position information.
- Fig. 20 is a flowchart illustrating the parallel number determination procedure of the parallel number determination unit 2104. The parallel number determination procedure of the parallel number determination unit 2104 will be explained below with reference to Fig. 20.
- process S21042 statistical information ScanTotals (1) corresponding to the first scan order is substituted into a variable temp.
- process S21043 it is determined whether the coefficient of the nth scan order is a significant coefficient, and the value temp- N+l is smaller than the value of statistical information ScanTotals (n) of the nth scan order. If these conditions are satisfied, the process advances to process S21044. Otherwise, the process advances to process S21045.
- process S21044 it is determined to perform sequential processing. When process S21044 has been done, the determination processing ends. When the statistical information ScanTotals (n) of the nth scan order is substituted into the variable temp in process S21045, process S21046 is executed. In process S21046, it is confirmed whether a coefficient still remains in the block.
- process S21047 the value of the variable n is incremented, and the process returns to process S21043.
- the parallel number determination unit 2104 thus generates parallel process control information based on the statistical information ScanTotals and the information representing whether a coefficient is a significant coefficient. [0116] Revert to the description of Term 1.
- the scan conversion unit 101 sorts the scan orders of the input blocks A and B in accordance with the coefficient position information output from the scan order holding unit 102 and the parallel control signal output from the parallel number determination unit 2104.
- the parallel control signal output from the parallel number determination unit 2104 indicates parallel processing.
- the blocks A and B undergo sort processing in parallel in accordance with the coefficient position information output from the scan order holding unit 102.
- blocks C and D are respectively input as block data #1 and #2 to each of the scan conversion unit 101 and the scan status holding unit 103.
- the block C is also input to the significant data position information generation unit 2105. Since parallel processing has been executed in Term 1, and the coefficients at the positions indicated by full and open circles in Figs. 23A and 23B are significant coefficients, the pieces of statistical information at the corresponding positions in the scan status holding unit 103 are updated to values as indicated by Term 2 in Fig. 23A. Since replacement of coefficient positions has not occurred upon inputting the blocks A and B, the coefficient position information in the scan order holding unit 102 does not change in Term 2.
- the significant data position information generation unit 2105 generates pieces of information each representing whether a corresponding coefficient in the block C is a significant coefficient, arranges them based on the scan order in accordance with the coefficient position information output from the scan order holding unit 102, and outputs the information to the parallel number determination unit 2104 as significant coefficient position information.
- the parallel number determination unit 2104 Based on the coefficient position information output from the scan order holding unit 102, the statistical information output from the scan status holding unit 103, and the significant coefficient position information output from the significant data position information generation unit 2105, the parallel number determination unit 2104 outputs a parallel control signal to the scan conversion unit 101 and the scan status holding unit 103 in accordance with the procedure shown in Fig. 20.
- the parallel number determination unit 2104 outputs a parallel control signal indicating sequential processing.
- the scan status holding unit 103 updates, out of the pieces of currently held statistical information, only- information corresponding to the significant coefficients of the input block C, and outputs the information to the scan order holding unit 102 as the next statistical information.
- the positions corresponding to the significant coefficients of the input block C to be updated are indicated by full circles in Term 2 of Fig. 23A.
- the scan order holding unit 102 decides the coefficient position information using the statistical information in the next status output from the scan status holding unit 103.
- the scan conversion unit 101 outputs the results of scan conversion processing of the blocks A and B in Term 1 as converted data outputs #1 and #2. Since the parallel control signal output from the parallel number determination unit 2104 indicates sequential processing, the scan conversion unit 101 sorts only the block C in accordance with the coefficient position information output from the scan order holding unit 102. [0118] In Term 3, blocks D and E are respectively input as block data #1 and #2 to each of the scan conversion unit 101 and the scan status holding unit 103. In Term 3, the block D is also input to the significant data position information generation unit 2105. Since sequential processing has been executed in Term 2, and the coefficients at the positions indicated by full circles in Figs.
- the pieces of statistical information at the corresponding positions in the scan status holding unit 103 are updated to values as indicated by Term 3 in Fig. 23A. Since replacement of coefficient positions has occurred upon inputting the block C, the coefficient position information in the scan order holding unit 102 is updated as indicated by Term 3 in Fig. 23A.
- the significant data position information generation unit 2105 generates pieces of information each representing whether a corresponding coefficient in the block D is a significant coefficient, arranges them based on the scan order in accordance with the coefficient position information output from the scan order holding unit 102, and outputs the information to the parallel number determination unit 2104 as significant coefficient position information. In Term 3, no portion where the scan orders replace each other in the next status exists.
- the parallel number determination unit 2104 outputs a parallel control signal indicating parallel processing to the scan conversion unit 101 and the scan status holding unit 103 in accordance with the procedure shown in Fig. 20.
- the scan status holding unit 103 updates, out of the pieces of currently held statistical information, information corresponding to the significant coefficients of the input blocks D and E, and outputs the information to the scan order holding unit 102 as the next statistical information.
- the positions corresponding to the significant coefficients of the input blocks D and E to be updated are indicated by full and open circles in Term 3 of Fig. 23A.
- the scan order holding unit 102 decides the coefficient position information using the statistical information in the next status output from the scan status holding unit 103.
- the scan conversion unit 101 outputs the result of scan conversion processing of the block C in Term 2 as converted data output #1.
- the scan conversion unit 101 also holds the result of the scan conversion processing of the block B and outputs it as converted data output #2. Since the parallel control signal output from the parallel number determination unit 2104 indicates parallel processing, the scan conversion unit 101 sorts the blocks D and E in parallel in accordance with the coefficient position information output from the scan order holding unit 102. [0119]
- blocks F and G are respectively input as block data #1 and #2 to each of the scan conversion unit 101 and the scan status holding unit 103.
- the block F is also input to the significant data position information generation unit 2105.
- the pieces of statistical information at the corresponding positions in the scan status holding unit 103 are updated to values as indicated by Term 4 in Fig. 23B. Since replacement of coefficient positions has not occurred upon inputting the blocks D and E, the coefficient position information in the scan order holding unit 102 does not change in Term 4.
- the significant data position information generation unit 2105 generates pieces of information each representing whether a corresponding coefficient in the block F is a significant coefficient, arranges them based on the scan order in accordance with the coefficient position information output from the scan order holding unit 102, and outputs the information to the parallel number determination unit 2104 as significant coefficient position information.
- the parallel number determination unit 2104 Based on the coefficient position information output from the scan order holding unit 102 and the statistical information output from the scan status holding unit 103, the parallel number determination unit 2104 outputs a parallel control signal to the scan conversion unit 101 and the scan status holding unit 103 in accordance with the procedure shown in Fig. 20.
- Term 4 although a portion with the same statistical information exists, the coefficients are not significant coefficients, as indicated by Term 4 in Fig. 23B. Hence, it is determined that no coefficient position replacement occurs, and the parallel number determination unit 2104 outputs a parallel control signal indicating parallel processing.
- the scan status holding unit 103 updates, out of the pieces of currently held statistical information, information corresponding to the significant coefficients of the input blocks F and G, and outputs the information to the scan order holding unit 102 as the next statistical information.
- the positions corresponding to the significant coefficients of the input blocks F and G to be updated are indicated by full and open circles in Term 4 of Fig. 23B.
- the scan order holding unit 102 decides the coefficient position information using the statistical information in the next status output from the scan status holding unit 103.
- the scan conversion unit 101 outputs the results of scan conversion processing of the blocks D and E in Term 3 as converted data outputs #1 and #2.
- the scan conversion unit 101 sorts the blocks F and G in parallel in accordance with the coefficient position information output from the scan order holding unit 102 [0120]
- blocks H and I are respectively input as block data #1 and #2 to each of the scan conversion unit 101 and the scan status holding unit 103.
- the block H is also input to the significant data position information generation unit 2105. Since parallel processing has been executed in Term 4, and the coefficients at the positions indicated by full and open circles in Figs. 23A and 23B are significant coefficients, the pieces of statistical information at the corresponding positions in the scan status holding unit 103 are updated to values as indicated by Term 5 in Fig. 23B.
- the coefficient position information in the scan order holding unit 102 does not change in Term 5.
- the significant data position information generation unit 2105 generates pieces of information each representing whether a corresponding coefficient in the block H is a significant coefficient, arranges them based on the scan order in accordance with the coefficient position information output from the scan order holding unit 102, and outputs the information to the parallel number determination unit 2104 as significant coefficient position information.
- the parallel number determination unit 2104 outputs a parallel control signal indicating parallel processing to the scan conversion unit 101 and the scan status holding unit 103 in accordance with the procedure shown in Fig. 20.
- the scan status holding unit 103 updates, out of the pieces of currently held statistical information, information corresponding to the significant coefficients of the input blocks H and I, and outputs the information to the scan order holding unit 102 as the next statistical information.
- the positions corresponding to the significant coefficients of the input blocks H and I to be updated are indicated by full and open circles in Term 5 of Fig. 23B.
- the scan order holding unit 102 decides the coefficient position information using the statistical information in the next status output from the scan status holding unit 103.
- the scan conversion unit 101 outputs the result of scan conversion processing of the blocks F and G in Term 4 as converted data outputs #1 and #2. Since the parallel control signal output from the parallel number determination unit 2104 indicates parallel processing, the scan conversion unit 101 sorts the blocks H and I in parallel in accordance with the coefficient position information output from the scan order holding unit 102. The scan conversion processing is repeated in the same way.
- the input statistical information is split into ScanTotals of coefficients a to o and input to a sorter 1041.
- the sorter 1041 sorts the ScanTotals of the coefficients a to o in accordance with the coefficient position information based on the scan orders 1 to 15 and outputs the ScanTotals to a comparator 1042.
- the comparator 1042 compares the ScanTotals of the scan orders 1 to 15 and outputs the comparison result to a parallel number determination unit 21045.
- the description of the comparator 1042 is the same as in the first embodiment and will not be repeated.
- the input significant coefficient information is split into nonzero information of the scan order 2 to 15 and input to a parallel number determination unit 21044.
- the parallel number determination unit 21044 includes a plurality of logic inverting gates which logically invert the nonzero information of the scan orders 2 to 15 and output them to the parallel number determination unit 21045.
- the parallel number determination unit 21045 includes a plurality of logic OR gates which logically OR the comparison results from all comparators 10421 in the comparator 1042 and the logic inversion results of the nonzero information of the scan orders 2 to 15 output from the parallel number determination unit 21044, and output the logic ORs.
- a logic AND gate 1043 logically ANDs all outputs from the parallel number determination unit 21045 and outputs the logic AND to the outside as a parallel control signal. In this case, the parallel control signal indicates a parallel process instruction by "1" and a sequential process instruction by "0".
- Block data input #1 is split into coefficients a_ #1 to o #1, and the coefficients are input to scan status holding units 1031a to 1031o, respectively.
- the scan status holding units 1031a to 1031o determine whether the coefficients a_ #1 to o #1 are 0, and output the determination results as the nonzero signals of the coefficients a. #1 to o #1. In the second embodiment, "1" is output as a nonzero signal representing nonzero. Otherwise, "0" is output.
- a significant data position information generation unit 21052 serves as a sorter which sorts the coefficients a_ #1 to o #1 based on the scan orders 1 to 15 in accordance with the coefficient position information and outputs them as the nonzero information of the scan orders 1 to 15.
- the pieces of nonzero information of the scan orders 1 to 15 are output to the outside as significant coefficient information.
- each of two-dimensionally arrayed blocks as the scan conversion target has a size of 4 x 4 pixels, and 15 AC components of a block have been exemplified.
- the present invention is not limited to this.
- the block size can be expressed by n rows x m columns or m x n data. It is only necessary to instruct to perform scan conversion processing of N blocks (N > 2) as M-parallel processing (M is an integer: 1 ⁇ M ⁇ N) .
- the pieces of statistical information ScanTotals() and the coefficient positions ScanOrder ( ) are managed in separate tables, as shown in Figs. 7A and 7B. However, they may be managed in a single table because a piece of statistical information and a coefficient position are handled as a pair.
- the apparatus of the present invention is accommodated in an encoder incorporated in a camera.
- the present invention is not limited to this.
- aspects of the present invention can also be realized by a computer of a system or apparatus (or devices such as a CPU or MPU) that reads out and executes a program recorded on a memory device to perform the functions of the above-described embodiment (s) , and by a method, the steps of which are performed by a computer of a system or apparatus by, for example, reading out and executing a program recorded on a memory device to perform the functions of the above-described embodiment ( s ) .
- the program is provided to the computer for example via a network or from a recording medium of various types serving as the memory device (e.g., computer-readable medium) .
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/133,408 US8478079B2 (en) | 2009-02-17 | 2010-02-01 | Scan conversion apparatus, image encoding apparatus, and methods of controlling the same |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009-034390 | 2009-02-17 | ||
| JP2009034390A JP5421609B2 (ja) | 2009-02-17 | 2009-02-17 | スキャン変換装置及び画像符号化装置、並びにそれらの制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2010095528A1 true WO2010095528A1 (en) | 2010-08-26 |
Family
ID=42633811
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2010/051728 Ceased WO2010095528A1 (en) | 2009-02-17 | 2010-02-01 | Scan conversion apparatus, image encoding apparatus, and methods of controlling the same |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US8478079B2 (enExample) |
| JP (1) | JP5421609B2 (enExample) |
| WO (1) | WO2010095528A1 (enExample) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8344917B2 (en) | 2010-09-30 | 2013-01-01 | Sharp Laboratories Of America, Inc. | Methods and systems for context initialization in video coding and decoding |
| US8542748B2 (en) | 2008-03-28 | 2013-09-24 | Sharp Laboratories Of America, Inc. | Methods and systems for parallel video encoding and decoding |
| US9313514B2 (en) | 2010-10-01 | 2016-04-12 | Sharp Kabushiki Kaisha | Methods and systems for entropy coder initialization |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012129888A (ja) * | 2010-12-16 | 2012-07-05 | Samsung Electronics Co Ltd | 画像符号化装置及び画像符号化方法 |
| US9058223B2 (en) * | 2011-04-22 | 2015-06-16 | Microsoft Technology Licensing Llc | Parallel entropy encoding on GPU |
| JP6081862B2 (ja) * | 2013-05-15 | 2017-02-15 | 株式会社シキノハイテック | 画像符号化装置 |
| JP6081869B2 (ja) * | 2013-06-20 | 2017-02-15 | 株式会社シキノハイテック | 画像復号化装置 |
| US20220107738A1 (en) * | 2020-10-06 | 2022-04-07 | Kioxia Corporation | Read controller and input/output controller |
| JP7598254B2 (ja) | 2021-02-04 | 2024-12-11 | キヤノン株式会社 | 符号化装置、撮像装置、符号化方法、及びプログラム |
| CN119948550A (zh) * | 2023-05-01 | 2025-05-06 | 昆山云英谷电子科技有限公司 | 用于校准显示面板的系统和方法 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH11252338A (ja) * | 1998-03-05 | 1999-09-17 | Kanebo Ltd | データ処理装置 |
| JP2005160021A (ja) * | 2003-11-06 | 2005-06-16 | Matsushita Electric Ind Co Ltd | 信号処理方法および信号処理装置 |
| JP2006191628A (ja) * | 2004-12-31 | 2006-07-20 | Microsoft Corp | 適応係数スキャン順序付け |
| JP2007129612A (ja) * | 2005-11-07 | 2007-05-24 | Nippon Telegr & Teleph Corp <Ntt> | 直交変換係数のスキャン方法,逆スキャン方法,スキャン装置,逆スキャン装置,およびそのプログラム並びにそのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2240231B (en) | 1990-01-19 | 1994-03-30 | British Broadcasting Corp | High definition television coder/decoder |
| JPH0750836A (ja) | 1993-08-06 | 1995-02-21 | Sharp Corp | 画像符号化装置 |
| US6141446A (en) * | 1994-09-21 | 2000-10-31 | Ricoh Company, Ltd. | Compression and decompression system with reversible wavelets and lossy reconstruction |
| US6426975B1 (en) | 1997-07-25 | 2002-07-30 | Matsushita Electric Industrial Co., Ltd. | Image processing method, image processing apparatus and data recording medium |
| SE512291C2 (sv) | 1997-09-23 | 2000-02-28 | Ericsson Telefon Ab L M | Inbäddad DCT-baserad stillbildskodningsalgoritm |
| WO1999044368A1 (fr) | 1998-02-27 | 1999-09-02 | Kanebo Limited | Dispositif de traitement de donnees d'images et procede de traitement |
| US7966078B2 (en) * | 1999-02-01 | 2011-06-21 | Steven Hoffberg | Network media appliance system and method |
| JP3925298B2 (ja) * | 2002-05-14 | 2007-06-06 | 日本電気株式会社 | タイムシフト再生時間制御方法および情報再生装置 |
| JP2004348706A (ja) * | 2003-04-30 | 2004-12-09 | Canon Inc | 情報処理装置及び情報処理方法ならびに記憶媒体、プログラム |
| EP1530373A2 (en) | 2003-11-06 | 2005-05-11 | Matsushita Electric Industrial Co., Ltd. | Memory arrangement for a quick read access to image blocks according to a different scan order |
| US7852515B2 (en) * | 2007-06-05 | 2010-12-14 | Xerox Corporation | Infrared encoding for embedding multiple variable data information collocated in printed documents |
| JP5004986B2 (ja) | 2009-03-19 | 2012-08-22 | キヤノン株式会社 | スキャン変換装置及び画像符号化装置、並びにそれらの制御方法 |
| JP5520122B2 (ja) | 2010-04-14 | 2014-06-11 | キヤノン株式会社 | データ変換装置 |
-
2009
- 2009-02-17 JP JP2009034390A patent/JP5421609B2/ja not_active Expired - Fee Related
-
2010
- 2010-02-01 US US13/133,408 patent/US8478079B2/en not_active Expired - Fee Related
- 2010-02-01 WO PCT/JP2010/051728 patent/WO2010095528A1/en not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH11252338A (ja) * | 1998-03-05 | 1999-09-17 | Kanebo Ltd | データ処理装置 |
| JP2005160021A (ja) * | 2003-11-06 | 2005-06-16 | Matsushita Electric Ind Co Ltd | 信号処理方法および信号処理装置 |
| JP2006191628A (ja) * | 2004-12-31 | 2006-07-20 | Microsoft Corp | 適応係数スキャン順序付け |
| JP2007129612A (ja) * | 2005-11-07 | 2007-05-24 | Nippon Telegr & Teleph Corp <Ntt> | 直交変換係数のスキャン方法,逆スキャン方法,スキャン装置,逆スキャン装置,およびそのプログラム並びにそのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
Cited By (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10652585B2 (en) | 2008-03-28 | 2020-05-12 | Dolby International Ab | Methods, devices and systems for parallel video encoding and decoding |
| US10284881B2 (en) | 2008-03-28 | 2019-05-07 | Dolby International Ab | Methods, devices and systems for parallel video encoding and decoding |
| US20140241438A1 (en) | 2008-03-28 | 2014-08-28 | Sharp Kabushiki Kaisha | Methods, devices and systems for parallel video encoding and decoding |
| US9930369B2 (en) | 2008-03-28 | 2018-03-27 | Dolby International Ab | Methods, devices and systems for parallel video encoding and decoding |
| US12231699B2 (en) | 2008-03-28 | 2025-02-18 | Dolby International Ab | Methods, devices and systems for parallel video encoding and decoding |
| US9473772B2 (en) | 2008-03-28 | 2016-10-18 | Dolby International Ab | Methods, devices and systems for parallel video encoding and decoding |
| US9503745B2 (en) | 2008-03-28 | 2016-11-22 | Dolby International Ab | Methods, devices and systems for parallel video encoding and decoding |
| US9681143B2 (en) | 2008-03-28 | 2017-06-13 | Dolby International Ab | Methods, devices and systems for parallel video encoding and decoding |
| US8542748B2 (en) | 2008-03-28 | 2013-09-24 | Sharp Laboratories Of America, Inc. | Methods and systems for parallel video encoding and decoding |
| US9681144B2 (en) | 2008-03-28 | 2017-06-13 | Dolby International Ab | Methods, devices and systems for parallel video encoding and decoding |
| US8824541B2 (en) | 2008-03-28 | 2014-09-02 | Sharp Kabushiki Kaisha | Methods, devices and systems for parallel video encoding and decoding |
| US11838558B2 (en) | 2008-03-28 | 2023-12-05 | Dolby International Ab | Methods, devices and systems for parallel video encoding and decoding |
| US11438634B2 (en) | 2008-03-28 | 2022-09-06 | Dolby International Ab | Methods, devices and systems for parallel video encoding and decoding |
| US10958943B2 (en) | 2008-03-28 | 2021-03-23 | Dolby International Ab | Methods, devices and systems for parallel video encoding and decoding |
| US8344917B2 (en) | 2010-09-30 | 2013-01-01 | Sharp Laboratories Of America, Inc. | Methods and systems for context initialization in video coding and decoding |
| US10659786B2 (en) | 2010-10-01 | 2020-05-19 | Velos Media, Llc | Methods and systems for decoding a video bitstream |
| US10999579B2 (en) | 2010-10-01 | 2021-05-04 | Velos Media, Llc | Methods and systems for decoding a video bitstream |
| US10341662B2 (en) | 2010-10-01 | 2019-07-02 | Velos Media, Llc | Methods and systems for entropy coder initialization |
| US9313514B2 (en) | 2010-10-01 | 2016-04-12 | Sharp Kabushiki Kaisha | Methods and systems for entropy coder initialization |
Also Published As
| Publication number | Publication date |
|---|---|
| US20110243467A1 (en) | 2011-10-06 |
| JP2010193097A (ja) | 2010-09-02 |
| US8478079B2 (en) | 2013-07-02 |
| JP5421609B2 (ja) | 2014-02-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8644633B2 (en) | Scan conversion apparatus, image encoding apparatus, and methods of controlling them | |
| US8478079B2 (en) | Scan conversion apparatus, image encoding apparatus, and methods of controlling the same | |
| JP5302769B2 (ja) | スキャン変換装置及び画像符号化装置及びそれらの制御方法 | |
| JP6471786B2 (ja) | 画像処理装置及び画像処理方法 | |
| CN103229506B (zh) | 图像处理设备和图像处理方法 | |
| JP5782186B2 (ja) | 補間方法及びそれを利用した予測方法 | |
| EP3998776B1 (en) | Image encoding device, image decoding device, image encoding method, and image decoding method | |
| US8554004B2 (en) | Data transform apparatus | |
| CN109845253A (zh) | 用于处理视频信号的方法和装置 | |
| JP3864748B2 (ja) | 画像処理装置、電子カメラ、および画像処理プログラム | |
| CN109479149A (zh) | 视频信号处理方法和设备 | |
| CN109661819A (zh) | 用于处理视频信号的方法和设备 | |
| US11523121B2 (en) | Image data encoding and decoding and storage medium | |
| JPWO2009078150A1 (ja) | 動画像符号化装置、方法、プログラム及び集積回路 | |
| JP2014241507A (ja) | 画像処理装置および方法、プログラム、並びに撮像装置 | |
| JP2003244713A (ja) | カラー映像信号の伝送装置及びその伝送方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10743655 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 13133408 Country of ref document: US |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 10743655 Country of ref document: EP Kind code of ref document: A1 |