KR20140132535A - Method for parallel encoding and system thereof - Google Patents

Method for parallel encoding and system thereof Download PDF

Info

Publication number
KR20140132535A
KR20140132535A KR20130051815A KR20130051815A KR20140132535A KR 20140132535 A KR20140132535 A KR 20140132535A KR 20130051815 A KR20130051815 A KR 20130051815A KR 20130051815 A KR20130051815 A KR 20130051815A KR 20140132535 A KR20140132535 A KR 20140132535A
Authority
KR
South Korea
Prior art keywords
encoding
data
parallel
target data
subset
Prior art date
Application number
KR20130051815A
Other languages
Korean (ko)
Inventor
위영철
이무재
Original Assignee
주식회사 큐램
주식회사 핀그램
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 큐램, 주식회사 핀그램 filed Critical 주식회사 큐램
Priority to KR20130051815A priority Critical patent/KR20140132535A/en
Publication of KR20140132535A publication Critical patent/KR20140132535A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

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)

Abstract

A parallel encoding method and system thereof are disclosed. The above parallel encoding method is characterized in that the parallel encoding system encodes at least two of N (N is an integer of 2 or more) subsets included in a target data set including a plurality of target data in parallel, Obtaining a corresponding set of N sub-codes, wherein at least two subsets of the N subsets are encoded in parallel to obtain N sub-codes corresponding to each of the N subsets Wherein the parallel encoding system encodes k th (k is an integer greater than 1 and less than or equal to N) th subset to a k th subset of codes, wherein the parallel encoding system is a target that is included in the k th subset Encoding the code data corresponding to each of the data, wherein the best code data of the k < th > Into the code corresponding to the original value of the corresponding object data.

Description

The present invention relates to a parallel encoding method and a parallel encoding method,

The present invention relates to a parallel encoding method and system thereof. More specifically, when the data to be encoded is not the original value of the data but is data having a difference value from the immediately preceding data and / or encoding using a variable length code (VLC) such as Huffman encoding To a method and apparatus that can perform encoding in parallel.

1 is a view for schematically explaining a conventional image compression method.

Referring to FIG. 1A, a conventional image compression method (for example, JPEG image compression) is a method in which an encoder receives raw image data (S10), samples the raw image data (S20) The sampled image data is DCT (Discrete Cosine Transform) for each data unit or block (S30), and quntaization is performed (S40). Then, the encoder can encode the block-quantized data in a predetermined manner (e.g., Huffman coding) to perform compression.

The quantized data for the block to be encoded may be a quantized DCT coefficient. Generally, in JPEG, DC coefficient (0th order DCT coefficient) and AC coefficient among the DCT coefficients are separated and encoded. The reason is that the DC coefficient is generally larger than the AC coefficient and the encoding method used for JPEG extrusion (for example, Huffman coding) has a higher compression ratio as the same value is included in the object data to be encoded .

Therefore, when separating and encoding only the DC coefficient, the object data to be encoded can be expressed as shown in FIG.

The target data set 10 as shown in FIG. 1B includes a plurality of target data (for example, DC 0 to DC (N-1) ). Also, each object data may be a value corresponding to the DC coefficient after the data unit (or data block) of the image data has undergone processing (sampling, DCT, and quantization).

The encoder can then directly encode the target data set 10, i.e., the DC coefficients, but in the JPEG standard, rather than encoding the original value of the DC coefficient to increase the compression ratio, the previous DC coefficient and the corresponding DC coefficient Lt; / RTI > The reason for encoding the difference value from the original value of the previous target data instead of encoding the original value of each target data is that when the difference value is encoded, the data having the same value is encoded in the target data set 10). If the difference value of each target data is specified as an encoding target, the target data set can be expressed as shown in FIG. 1C.

1C shows a target data set 20 to be encoded, and each target data (except for DC0) represents the difference value between the original value of the previous target data and the original value of the target data. For example, the second target data DC0-DC1 represents the difference value of the original value DC1 of the second target data DC0-DC1 from the original value DC0 of the previous target data DC0. Likewise, the third target data DC1-DC2 represents the difference value between the original value DC1 of the immediately preceding target data DC0-DC1 and the original value DC2 of the third target data DC1-DC2.

In order to increase the compression efficiency, there is a case where the original value of the target data to be encoded is not encoded but the difference value between the original value of the immediately preceding target data and the original value of the target data is encoded. In this case, since the number of data having the same value increases in the data set to be encoded, compression efficiency is increased when a predetermined encoding method (for example, Huffman coding) is performed. However, there is a problem in that parallel encoding is difficult to be performed in this case.

The reason is that if a given encoding system (encoder) wants to encode the first subset 21 and the second subset 22, which are part of the object data set 20, in parallel, as shown in Figure 1C, 2 can not know the value of the first object data DCk-1 - DCk of the second subset 22. That is, the original value DCk of the first subject data DCk-1 - DCk of the second subset 22 can be known through processing (sampling, DCT, and quantization) of the data blocks of the corresponding image data, This is because the original value DCk-1 of the immediately preceding object data is not known until the processing of the first subset 21 is finished.

In addition, when the encoding system is encoded with a code having a different length according to the value of the target data, even the code length of the first target data DCk-1 - DCk of the second subset 22 can not be known, The encoding of the second subset 22 can not be performed until the original value of the last target data DCk-1 of the subset 21 is known.

Therefore, the conventional JPEG encoding sequentially obtains the original values of the target data corresponding to the data units of the image (for example, 8x8 pixels), and then converts the target data into the corresponding difference values Value - the original value of the target data), and then perform the encoding sequentially.

However, as the multiprocessing environment has recently developed, even if the target data to be encoded has a difference value instead of the original value of the target data, if the parallel encoding is possible, the improvement of the encoding efficiency and the speed greatly increases .

Therefore, the target data included in the target data set to be encoded is not the original value but the difference value between the original value of the immediately preceding target data and the original value of the target data (hereinafter, simply referred to as' difference Quot ;, and " value "), there is a need for a technical idea capable of performing parallel encoding.

SUMMARY OF THE INVENTION Accordingly, the present invention has been made in view of the above-mentioned problems, and it is an object of the present invention to provide a method and an apparatus for correcting a difference between an original value of an immediately preceding object data and an original value of the object data, (Hereinafter referred to simply as " difference value " for the sake of convenience of description in this specification).

And in particular to provide a method and system that can perform JPEG encoding in parallel.

According to an aspect of the present invention, there is provided a method of parallel encoding, the parallel encoding system including at least one subset of N (N being an integer of 2 or more) subsets included in a target data set including a plurality of target data, And encoding the two in parallel to obtain N subcode sets corresponding to each of the N subsets, wherein at least two subsets of the N subsets are encoded in parallel to produce N subsets (K is an integer greater than 1 and less than or equal to N) th subset to the k-th sub-code set, included in the step of obtaining the N sub- Wherein the parallel encoding system encodes code data corresponding to each of the target data included in the k < th > But also, and the best code data of the k-th sub-code set are encoded in corresponding to the original value (original value) in the corresponding object data code.

Wherein the parallel encoding system encodes k th (k is an integer greater than 1 and equal to or less than N) th subset to a kth subcode set, wherein the parallel encoding system is operative with the best data of the kth subcode set, wherein the parallel encoding system encodes code data corresponding to each of the target data included in the kth subset, wherein the parallel encoding system encodes code data corresponding to each of the target data included in the kth subset, and encoding the code data corresponding to each of the target data included in the k-th subset.

Wherein the step of encoding at least two of the N subsets in parallel to obtain N sub-codes corresponding to each of the N subsets comprises: (k-1) ) Th sub-code set, wherein the parallel encoding system records a restart marker with the last data of the (k-1) th sub-code set.

Wherein the parallel encoding method comprises the step of the parallel encoding system dividing the image data into N subimage data and the parallel encoding system processing the N subimage data in parallel to obtain the N subsets can do.

Wherein the parallel encoding method further comprises: after the parallel encoding system acquires all of the N subsets, specifying the target data set, and generating an encoding table based on the target data included in the specified target data set Wherein the step of encoding the code data corresponding to each of the target data included in the kth subset of the parallel encoding system comprises the step of encoding target data included in the kth subset based on the generated encoding table, And encodes the code data corresponding to each of the encoded data.

The parallel encoding method further includes generating the kth encoding table based on the target data included in the obtained subset when the parallel encoding system obtains the kth subset of the N subset Wherein the step of encoding the code data corresponding to each of the target data included in the kth subset of the parallel encoding system includes the step of encoding each of the target data included in the kth subset based on the generated kth encoding table And encodes the corresponding code data.

For each of the code data encoded after the best code data of the kth subcode set, the parallel encoding system calculates an original value of the target data corresponding to the code data and an original value of the immediately preceding target data of the corresponding target data And the difference value of the difference value.

The parallel encoding method may further include generating the scan data by combining the N subcode sets obtained by the parallel encoding system.

The object data may be a DC coefficient or an AC coefficient for each data unit of the image data. The parallel encoding method may be stored in a computer-readable recording medium on which the program is recorded.

According to an aspect of the present invention, there is provided a parallel encoding system including a storage device in which at least one subset of N (N is an integer of 2 or more) subsets included in a target data set including at least one processor and a plurality of target data can be stored , The at least one processor encodes in parallel at least two of the N (N is an integer equal to or greater than 2) subsets to obtain N sub-codes corresponding to each of the N subsets, and k Th subset to a kth subcode set, and encoding the code data corresponding to each of the target data included in the kth subset to encode the kth subset, The data is encoded with a code corresponding to the original value of the corresponding object data.

The at least one processor records a restart marker with the best data of the kth subcode set and encodes code data corresponding to each of the target data included in the kth subset after the restart marker , and a restart marker is recorded with the last data of the (k-1) th sub-code set.

The at least one processor may divide predetermined image data into N subimage data and process the N subimage data in parallel to obtain and store the N subsets in the storage device.

Wherein the at least one processor specifies the target data set if all of the N subsets are obtained, generates an encoding table based on the target data included in the specified target data set, And encoding the code data corresponding to each of the target data included in the k-th subset, or if the k-th subset of the N subset is acquired, based on the target data included in the obtained subset th encoding table, and encode code data corresponding to each of the target data included in the k-th subset based on the generated k-th encoding table.

According to the technical idea of the present invention, encoding can be performed in parallel while performing JPEG encoding, that is, encoding target data existing after the specific target data before the value of the specific target data is determined, And can have a remarkable effect on the encoding speed.

In addition, not only the encoding process but also the image data can be processed in parallel (sampling, DCT, and quantization), so that a significant speed increase can be achieved in the process of generating the entire JPEG file.

In addition, the technical idea of the present invention has an effect that not only the JPEG encoding but also the parallel encoding scheme can be used for all kinds of target data in which the target data indicates the difference value.

BRIEF DESCRIPTION OF THE DRAWINGS A brief description of each drawing is provided to more fully understand the drawings recited in the description of the invention.
1 is a diagram schematically illustrating a conventional image data compression process.
FIG. 2 shows a flowchart for schematically explaining a parallel encoding method according to an embodiment of the present invention.
3 shows a flowchart for schematically explaining a single encoding process in a parallel encoding method according to an embodiment of the present invention.
4 is a diagram illustrating a plurality of processes in which encoding is performed in parallel according to a parallel encoding method according to an embodiment of the present invention.
FIG. 5 is a diagram illustrating a plurality of processes in which encoding is performed in parallel according to a parallel encoding method according to another embodiment of the present invention.
6 is a diagram for explaining a method of generating an encoding table according to a parallel encoding method according to an embodiment of the present invention.
7 is a diagram illustrating a schematic configuration of a parallel encoding system according to an embodiment of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS The present invention is capable of various modifications and various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. It is to be understood, however, that the invention is not to be limited to the specific embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.

The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise.

In this specification, terms such as "comprise" or "having" are used to specify that a feature, a number, a step, an operation, an element, a component, or a combination thereof, But do not preclude the presence or addition of features, numbers, steps, operations, components, parts, or combinations thereof.

Also, in this specification, when any one element 'transmits' data to another element, the element may transmit the data directly to the other element, or may be transmitted through at least one other element And may transmit the data to the other component. Conversely, when one element 'directly transmits' data to another element, it means that the data is transmitted to the other element without passing through another element in the element.

Hereinafter, the present invention will be described in detail with reference to the embodiments of the present invention with reference to the accompanying drawings. Like reference symbols in the drawings denote like elements.

FIG. 2 shows a flowchart for schematically explaining a parallel encoding method according to an embodiment of the present invention.

1C and FIG. 2, a parallel encoding method according to an embodiment of the present invention is a parallel encoding method in which a parallel encoding system encodes N (N is an integer of 2 or more) included in an object data set (for example, 20 in FIG. 1C) (E.g., 21, 22, etc. in FIG. 1C) of the subset (S100). If the N subsets are combined, the target data set may be the target data set. According to an embodiment, the data set in which the N subsets are merged may be part of the target data set. That is, the technical idea of the present invention may be applied only to a part of the object data set to be encoded.

In any case, the parallel encoding system may encode each of the N subsets contained in the target data set in parallel. Encoding in parallel may mean that the encoding of another subset begins before the encoding of either subset is complete. According to one embodiment, the encoding for the N subsets may be started in parallel at the same time.

The technical idea of the present invention is that at least two of the N subsets need only be encoded in parallel. Then, the remaining subset may be sequentially encoded. Or a plurality of subsets of the remaining subset may be encoded again in parallel.

For example, the parallel encoding system may employ parallel encoding for k (k is an integer that is greater than 1 and less than or equal to N) th, (k-1) th, and (k + (S110, S110-1, S110-2). A process for performing encoding for each subset may be generated by the parallel encoding system so that the encoding for each subset may be performed in parallel by the process. The process may be generated for each processor included in the parallel encoding system, and one processor may generate a plurality of processes. In this specification, a process of encoding any one subset into a corresponding sub-code set is defined as a single encoding process. The at least one processor may encode N subsets into N subcode sets through N processes that are independent of each other. The at least one processor may be implemented in various embodiments, such as a CPU, a microprocessor unit (MPU), a mobile processor, etc., according to an implementation of the parallel encoding system.

Then, the parallel encoding system may obtain a kth subcode set, a (k-1) th subcode set, and a (k + 1) th subcode set as a result of parallel encoding (S120, S120-1, S120 -2). Each sub-code set may include a result that the target data included in the corresponding subset is encoded with the corresponding code data. And a predetermined encoding table may be used for such encoding. Different encoding tables may be used for each subset, or the same encoding table may be used for all subsets. Further, each subcode set may further include predetermined data (e.g., RM (Restart marker)) for implementing the technical idea of the present invention.

As such, when at least two of the N subsets are encoded in parallel and the N subcode sets are ultimately obtained, the parallel encoding system combines the N subcode sets to generate a scan data set corresponding to the entire set of target data Data can be acquired.

In any case, according to the technical idea of the present invention, the code data corresponding to the foremost code data of each subcode set, that is, the best target data of the corresponding subset, is a code corresponding to the original value of the target data . In addition, predetermined data, that is, RM, which is additionally written to each subset other than the code data, may be recorded at the head of the subcode set or may be recorded at the end.

RM is a marker defined in the JPEG standard. Generally, as described above, JPEG encodes the difference value between the original value (DC value) of the immediately preceding target data and the original value of the target data, And may be a marker used to prevent errors in the data. Therefore, the technical idea of the present invention can provide a technical idea that parallel encoding can be performed through such RM. If the technical idea of the present invention is applied in addition to the JPEG image encoding, a separate marker for this RM function can be defined, and if the RM marker is recorded, the next code data corresponds to the difference value It is sufficient to be able to recognize that the code corresponds to the original value rather than the code.

In the parallel encoding method according to the technical idea of the present invention, a single encoding process, that is, a process in which any one subset is encoded into a subcode set is shown in FIG.

3 shows a flowchart for schematically explaining a single encoding process in a parallel encoding method according to an embodiment of the present invention. 4 is a diagram illustrating a plurality of processes in which encoding is performed in parallel according to a parallel encoding method according to an embodiment of the present invention. 5 is a diagram illustrating a plurality of processes in which encoding is performed in parallel according to a parallel encoding method according to another embodiment of the present invention.

FIGS. 4 and 5 illustrate examples of a subcode set when the actual encoding is performed according to the procedure shown in FIG.

First, referring to FIGS. 3A and 4, a parallel encoding system may perform at least two of N single encoding processes in parallel to encode N subsets into N subcode sets. The k th (k is greater than 1 and less than or equal to N) single encoding process among the N single encoding processes may encode the k th subset to the k th sub code set through the process shown in FIG. The first single encoding process is the process of encoding the first subset into the first sub-code set, since RM is not required at the beginning of the scan data, so only the second to Nth single encoding process in the single encoding process The best data of the subcode set can be recorded.

The parallel encoding system may allocate an area for a k-th sub code set to an arbitrary area of a predetermined storage device included in the parallel encoding system. The size of the area may vary. The parallel encoding system may record an RM at the head of the subcode set (S111). That is, the best data of the sub-code set may be RM. After the RM, encoding can be performed by recording code data sequentially corresponding to the first target data included in the kth subset from the last target data. For this, the parallel encoding system can set the index (i) of the target data to 1 (S112). The parallel encoding system may encode the original value of the target data (S114) when the index is 1 (i.e., the first target data) (S113). If the index is not 1 (i.e., not the first target data), the difference value may be encoded (S113) (S115).

The original value of the first object data is information that can be obtained immediately after the data unit (block) corresponding to the object data is sampled, DCT, and quantized. However, the difference value of the first object data is the immediately preceding object data That is, it is not known until the original value of the last object data of the (k-1) th subset is determined. Therefore, in order to perform parallel encoding, the first object data of each subset is encoded with a code corresponding to the original value, and the second target data is encoded with a code corresponding to the difference value. have.

If the index is greater than the last index max (i.e., encoding is performed to the last target data), the target data included in the subset is sequentially encoded with the corresponding code data while incrementing the index sequentially one by one (S116) (S117), the encoding process can be terminated. The parallel encoding system may then obtain the kth subcode set.

This process is illustratively shown in Fig.

The subset 30 shown in FIG. 4 may be the first subset of the subject data set that is the set of subject data to be encoded. For the first subset 30, as described above, the first single encoding process generated by the parallel encoding system does not record the best RM of the subcode set. Then, the target data can be sequentially encoded into corresponding code data one by one. For example, the first subject data DC0, 31 of the first subset 30 may be encoded with the corresponding code data E (DC0), 31-1. Where the symbol E (x) may represent a code value corresponding to x defined in a predetermined encoding table (e.g., a Huffman table). The first single encoding process for encoding the first subset 30 encodes and records the first target data DC0 and 31 into the corresponding first code data E (DC0), 31-1, The target data DC0-DC1, 32 can be encoded and recorded in the corresponding second code data E (DC0-DC1) 32-1. It is possible to encode and record the code data E (DC1-DC2), 33-1 corresponding to the third target data DC1-DC2, 33 successively after the second code data 32-1. In this way the first single encoding process converts the last object data DC (K-2) -DC (K-1), 34 of the first subset 30 to the corresponding code data E (DC ) -DC (K-1)), 34-1. The first subcode set 30-1 may then be obtained by the first single encoding process as shown in FIG.

On the other hand, a second single encoding process for encoding the second subset 50 of the target data set may be performed in parallel with the first single encoding process. The second single encoding process may generate the subcode set 50-1 corresponding to the second subset 50 through a process as shown in FIG. 3A.

The second single encoding process may write RM (RST, 50-2) as the best data of the subcode set 50-1 (S111). And sequentially perform encoding from the best target data 51 of the second subset 50 to the last target data. At this time, the second single encoding process can encode the original value DCK of the target data if the target data to be encoded is the first target data DC (K-1) -DCK, 51 (s113). As a result, the code data E (DCK) 51-1 corresponding to the original value DCK of the target data may be written after the RM 50-2 (S114). From the second target data (DCK-DC (K + 1), 52), encoding can be performed with code data corresponding to the difference value of the target data (S115). FIG. 4 shows a case where encoding is performed in a state where target data is recorded as a difference value, so that the target data itself can be encoded. However, if the target data is recorded as the original value, the code data corresponding to the obtained difference value may be sequentially recorded after obtaining the difference value. As a result, the code data E (DCK-DC (K + 1)) 52-1 corresponding to the second target data 52, the third target data DC (K + 1) The code data E (DC (K + 1) -DC (K + 2)) 53-1 corresponding to the subcode set 50-1 can be sequentially recorded in the subcode set 50-1. And the second single encoding process may end when encoding is performed up to the last target data.

When all of the Nth single encoding process is completed in this way, N subcode sets may be obtained, and the parallel encoding system may combine the obtained N subcode sets to obtain scan data in which the entire target data set has been encoded can do. At this time, RM is recorded in the best data of each subcode set (except for the first subcode set), and code data corresponding to the original value of the target data may be recorded immediately after the RM. Then, the decoding system can recognize that the code data immediately after the RM is the original value, and thus can normally decode the scan data.

Meanwhile, a single encoding process according to another embodiment of the present invention is shown in FIG. 3B.

3B, each single encoding process (except for the N-th single encoding process) encodes the target data included in the corresponding subset sequentially into corresponding code data, and then records RM after the last code data can do.

That is, the k-th single encoding process performed by the parallel encoding system (k is an integer greater than or equal to 1 and less than N) sequentially corresponds to the first target data included in the k-th subset from the last target data Encoding can be performed by recording the code data. For this, the parallel encoding system can set the index (i) of the target data to 1 (S111-1). The kth single encoding process may encode the original value of the target data (S114-1) when the index is 1 (i.e., the first target data) (S112-1). If the index is not 1 (i.e., not the first target data), the difference value may be encoded in step S113-1 (S113-1). To this end, the k-th single encoding process may sequentially perform encoding (S115-1) while incrementing the index by one (i.e., for the next target data) (S113-1).

If the index (i) is larger than the index (max) corresponding to the last target data (that is, if encoding has been performed up to the last target data) (S116-1), the kth single encoding process records RM (S117 -1).

An example in which the process shown in FIG. 3B is applied is shown in FIG.

Referring to FIG. 5, the subset 30 shown in FIG. 5 may be the first subset of the target data set that is the set of target data to be encoded. First, the single encoding process can sequentially encode the target data into corresponding code data one by one. For example, the first subject data DC0, 31 of the first subset 30 may be encoded with the corresponding code data E (DC0), 31-1. First, the object data 31 can be encoded into the code data 31-1 corresponding to the original value as described above. It is possible to encode and record the second target data DC0-DC1, 32 successively after the first code data 31-1 into the corresponding second code data E (DC0-DC1) 32-1. It is possible to encode and record the code data E (DC1-DC2), 33-1 corresponding to the third target data DC1-DC2, 33 successively after the second code data 32-1. In this way the first single encoding process converts the last object data DC (K-2) -DC (K-1), 34 of the first subset 30 to the corresponding code data E (DC ) -DC (K-1)), 34-1, and then recording RM (RST, 30-2) after the last code data and ending. The first subcode set 30-1 may then be obtained by the first single encoding process as shown in FIG.

On the other hand, a second single encoding process for encoding the second subset 50 of the target data set may be performed in parallel with the first single encoding process. The second single encoding process may also produce a second subcode set 50-1 corresponding to the second subset 50, as shown in FIG. 3B.

The second single encoding process may also generate the second subcode set 50-1 in the same manner as the first single encoding process. The second single encoding process can sequentially perform encoding from the best subject data 51 of the second subset 50 to the last subject data. If the target data to be encoded is the first target data DC (K-1) -DCK 51), the second single encoding process may encode the original value DCK of the target data (S112-1) (S114-1). As a result, the code data E (DCK) 51-1 corresponding to the original value DCK of the first target data 51 may be recorded as the best data of the second subcode set 50-1 ( S114-1). From the second target data (DCK-DC (K + 1), 52), encoding can be performed with code data corresponding to the difference value of the target data (S113-1). As a result, the code data E (DCK-DC (K + 1)) 52-1 corresponding to the second target data 52, the third target data DC (K + 1) , Code data E (DC (K + 1) -DC (K + 2)) 53-1 corresponding to the subcode set 50-1 can be sequentially recorded in the subcode set 50-1. Then, when encoding is performed up to the last target data, the second single encoding process can end after writing RM (RST, 50-2).

A single encoding process performing the process as shown in FIG. 3B may perform the encoding in the same way except for the last single encoding process. The last single encoding process can simply encode the target data contained in the last subset to the corresponding code data sequentially. Of course, at this time as well, the first object data can be encoded into the code data corresponding to the original value. When all of the Nth single encoding process is completed in this way, N subcode sets may be obtained, and the parallel encoding system may combine the obtained N subcode sets to obtain scan data in which the entire target data set has been encoded can do. The scan data finally obtained in the case where a single encoding process is performed in the method of FIG. 3A and the single encoding process is performed in the method of FIG. 3B may be the same.

When the technical idea of the present invention is used for JPEG image compression, when the scan data is obtained in the above-described process, the parallel encoding system can generate meta information corresponding to the scan data. The parallel encoding system may include a predetermined marker corresponding to the scan data in the meta information. For example, a DRI (Define Restart Interval) marker may be recorded, and a restart interval may be defined through the DRI marker. The restart interval may be the number of target data included in the subset or the number of code data included in the subcode set. To this end, each subset may be implemented to include the same number of target data. In addition, various markers (e.g., Start of Image (EOI), Start of Frame (SOF), Define Huffman Table (DHT), Start of Scan (SOS) DQT (Define Quantization Table), etc.) may be included in the meta information. Since these markers are widely known, a detailed description thereof will be omitted herein.

On the other hand, if the parallel encoding system is a system that encodes an image into a JPEG file, the parallel encoding system simply converts the target data (e.g., DC coefficients or AC coefficients after image data is sampled, DCT, and quantized) Quot ;, < / RTI > However, the parallel encoding system can perform processing in parallel until the target data is acquired. Accordingly, the processing (sampling, DCT, quantization) from the N sub-image data until the N subsets are obtained can also be performed in parallel after the image data is divided into N sub-image data. At this time, the processing process from one sub-image data to acquiring the subset can be defined as a single processing process. An example of a case where the process from image data to acquisition of target data is also performed in parallel is shown in Fig.

6 is a diagram for explaining a method of generating an encoding table according to a parallel encoding method according to an embodiment of the present invention.

6A and 6B, the parallel encoding system may divide input image data 60 into N sub-image data (for example, 61, 62, 63, and 64). (E.g., sampling, DCT, and quantization) to generate a corresponding subset based on the sub-image data (e.g., 61, 62, 63, 64) . As a result, a first subset, a second subset, (N-1) subset, and N subset can be obtained.

At least two of the N single processing processes may be performed in parallel. A single processing process, i.e., sampling, DCT, and quantization, can be performed independently of other single processing processes. That is, since the result of any one single processing process is not used for another single processing process, each single processing process can be performed independently.

On the other hand, an encoding table may be required for each single encoding process described above to encode the target data. In general, in the case of JPEG, Huffman coding is used as an encoding method, so it may be preferable that a Huffman table is predefined for each single encoding process to be performed. According to an embodiment of the present invention, the parallel encoding system can perform encoding using a standard Huffman table widely used in JPEG. In this case, the parallel encoding system may not need to generate a separate encoding table. According to another embodiment, the parallel encoding system may generate an encoding table for target data to be encoded, and then perform encoding using the generated encoding table.

In this case, according to the embodiment of the present invention, the N single encoding processes can perform encoding using the same encoding table. An example of this is shown in FIG. 6A. In the case of the scheme shown in FIG. 6A, the encoding table can be defined so that the entire object data to be encoded, that is, the target data set, must all be determined. Thus, the parallel encoding system can generate the encoding table based on a set of N subsets, i.e., the target data set, after all N subsets are obtained by N single processing processes. At this time, after the N single processing processes are all terminated, the encoding table is generated, and each single encoding process can be performed using the generated encoding table. This is because when the encoding table is implemented as a Huffman table, the target data to be encoded are all specified so that the code data corresponding to the value of each target data can be determined.

Another embodiment is shown in Figure 6B. According to the scheme shown in FIG. 6B, there may be at least two single encoding processes that perform encoding using different encoding tables among the N single encoding processes. According to an embodiment, each single encoding process may perform encoding using a corresponding unique encoding table (first encoding table, second encoding table, (N-1) encoding table, and Nth encoding table) have. Of course, in this case, it may be used in a data format that is implemented to use a plurality of encoding tables (e.g., a Huffman table). At this time, when any one of the single processing processes is terminated, any one encoding table is generated by any one obtained subset, and a corresponding single encoding process can be performed using the generated encoding table.

7 is a diagram illustrating a schematic configuration of a parallel encoding system according to an embodiment of the present invention.

Referring to FIG. 7, the parallel encoding system 100 may include at least one processor (e.g., a first processor 110, a second processor 120, and an X processor 130). In addition, the parallel encoding system 100 may include a predetermined storage device 140. N single encoding processes may be generated by the at least one processor 110, 120, 130 to perform the operations described above. Also, N single processing processes may be generated by the at least one processor 110, 120, 130 to perform the operations described above.

The parallel encoding system 100 is not necessarily implemented as any one physical device. A plurality of data processing devices may be organically coupled to implement the parallel encoding system 100 and at least one single encoding process and / or at least one single processing process may be generated by each data processing device. Of course, in this case, the storage device 140 may also be implemented as a plurality of devices.

The storage device 140 may temporarily store N subsets, target data sets, N subcode sets, and the like as described above. In addition, scan data or the like generated as a result of performing parallel encoding may be stored in the storage device 140. Of course, a compressed image file (e.g., a JPEG file) including the scan data may be generated and stored in the storage device 140. [

The parallel encoding system 100 may receive as input an object data set to be encoded. The target data set may be a set of target data to which difference values should be encoded as described above. The parallel encoding system 100 may then perform the functions defined herein to generate an encoded data set (e.g., scan data as described above). The parallel encoding system 100 may also receive image data as input and perform the functions defined herein to generate a compressed image file (e.g., a JPEG file) in which the image data is compressed in a predetermined format have.

The parallel encoding system 100 may be installed in various data processing apparatuses such as a computer, a mobile phone, a camera, or the like, in which encoding can be performed, thereby implementing the technical idea of the present invention.

The parallel encoding method according to an exemplary embodiment of the present invention may be implemented in the form of computer readable program instructions and stored in a computer readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored.

Program instructions to be recorded on a recording medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of software.

Examples of the computer-readable recording medium include magnetic media such as a hard disk, a floppy disk and a magnetic tape, optical media such as CD-ROM and DVD, a floptical disk, And hardware devices that are specially configured to store and execute program instructions such as magneto-optical media and ROM, RAM, flash memory, and the like. The above-mentioned medium may also be a transmission medium such as a light or metal wire, wave guide, etc., including a carrier wave for transmitting a signal designating a program command, a data structure and the like. The computer readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner.

Examples of program instructions include machine language code such as those produced by a compiler, as well as devices for processing information electronically using an interpreter or the like, for example, a high-level language code that can be executed by a computer.

The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be.

It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

It is intended that the present invention covers the modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents. .

Claims (14)

The parallel encoding system encodes in parallel at least two of the N (N is an integer of 2 or more) subsets included in the target data set including the plurality of target data in parallel, so that N sub-codes corresponding to each of the N sub- ≪ / RTI >
Wherein the parallel encoding system is included in the step of encoding at least two subsets of the N subsets in parallel to obtain N subcode sets corresponding to each of the N subsets, wherein k is an integer greater than 1 and N Less than or equal to integer) th subset to the k < th > sub-code set,
Wherein the parallel encoding system encodes code data corresponding to each of the target data included in the kth subset, wherein the best code data of the kth subcode set comprises an original value of the corresponding target data ) With a code corresponding to the parallel code.
2. The method of claim 1, wherein the parallel encoding system further comprises the step of encoding the kth subset (k is an integer greater than 1 and less than or equal to N)
Further comprising the step of the parallel encoding system recording a restart marker with the best data of the kth subcode set,
Wherein the step of encoding the code data corresponding to each of the target data included in the k < th > subset comprises:
The parallel encoding system encoding code data corresponding to each of the target data included in the k < th > subset after the restart markers.
2. The method of claim 1, wherein encoding at least two of the N subsets in parallel to obtain N subcode sets corresponding to each of the N subsets comprises:
Wherein the parallel encoding system further comprises encoding the (k-1) th subset with the (k-1) th subcode set, wherein the parallel encoding system further comprises: And a restart marker is recorded in the parallel encoding step.
2. The parallel encoding method according to claim 1,
The parallel encoding system dividing the image data into N subimage data; And
And the parallel encoding system processing the N sub-image data in parallel to obtain the N subsets.
5. The parallel encoding method according to claim 4,
After the parallel encoding system acquires all of the N subsets, identifying the set of target data; And
And generating an encoding table based on the target data included in the specified target data set,
Wherein the step of encoding the code data corresponding to each of the target data included in the k < th > subset comprises:
And the code data corresponding to each of the target data included in the k-th subset is encoded based on the generated encoding table.
5. The parallel encoding method according to claim 4,
Wherein the parallel encoding system further comprises generating a kth encoding table based on the target data included in the obtained subset when the kth subset of the N subset is obtained,
Wherein the step of encoding the code data corresponding to each of the target data included in the k < th > subset comprises:
And the code data corresponding to each of the target data included in the k-th subset is encoded based on the k-th encoding table.
The parallel encoding system according to claim 1, wherein, for each code data encoded after the best code data of the kth subcode set, the parallel encoding system compares the original value of the target data corresponding to the code data, To the code corresponding to the difference value of the original value of the immediately preceding object data.
2. The parallel encoding method according to claim 1,
And the parallel encoding system combines the obtained N subcode sets to generate scan data.
2. The method according to claim 1,
Wherein the image data is a DC coefficient or an AC coefficient for each data unit of the image data.
A computer-readable recording medium recording a program for performing the method according to any one of claims 1 to 9.
At least one processor; And
A storage device in which N (N is an integer of 2 or more) subsets included in a target data set including a plurality of target data can be stored,
Wherein the at least one processor comprises:
The method comprising the steps of: encoding in parallel at least two of N subsets (N being an integer equal to or greater than two) to obtain N subcode sets corresponding to each of the N subsets,
encoding the code data corresponding to each of the target data included in the k-th subset to encode the k-th subset of k-th (k is an integer greater than 1 and less than or equal to N) subset, And the best code data of the subcode set is encoded with a code corresponding to the original value of the corresponding target data.
12. The system of claim 11, wherein the at least one processor comprises:
a restart marker is recorded with the best data of the k-th subcode set, the code data corresponding to each of the target data included in the k-th subset after the restart marker is encoded,
and a restart marker is recorded as the last data of the (k-1) -th subcode set.
12. The system of claim 11, wherein the at least one processor comprises:
Processing the N pieces of sub-image data into N pieces of sub-image data and processing the N pieces of sub-image data in parallel to acquire the N subsets and store the N pieces of sub-image data in the storage device.
14. The apparatus of claim 13, wherein the at least one processor comprises:
Generating an encoding table based on the target data included in the specified target data set, and generating an encoding table based on the generated encoding table based on the generated encoding table, Encoding the code data corresponding to each of the target data included in the target data,
Generating a kth encoding table based on the target data included in the obtained subset when the kth subset of the N subset is obtained and generating the kth encoding table based on the kth encoding table based on the generated kth encoding table, And encodes the code data corresponding to each of the target data included in the subset.
KR20130051815A 2013-05-08 2013-05-08 Method for parallel encoding and system thereof KR20140132535A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130051815A KR20140132535A (en) 2013-05-08 2013-05-08 Method for parallel encoding and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130051815A KR20140132535A (en) 2013-05-08 2013-05-08 Method for parallel encoding and system thereof

Publications (1)

Publication Number Publication Date
KR20140132535A true KR20140132535A (en) 2014-11-18

Family

ID=52453469

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130051815A KR20140132535A (en) 2013-05-08 2013-05-08 Method for parallel encoding and system thereof

Country Status (1)

Country Link
KR (1) KR20140132535A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019050343A1 (en) * 2017-09-08 2019-03-14 국민대학교산학협력단 Method and apparatus for generating random number on basis of block cipher to which white-box cryptography is applied

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019050343A1 (en) * 2017-09-08 2019-03-14 국민대학교산학협력단 Method and apparatus for generating random number on basis of block cipher to which white-box cryptography is applied
KR20190028066A (en) * 2017-09-08 2019-03-18 국민대학교산학협력단 A method of generating random number based on block cipher with whitebox encryption and apparatus thereof

Similar Documents

Publication Publication Date Title
US8666179B2 (en) Image encoding apparatus and decoding apparatus
US7869659B2 (en) Image-comparing apparatus, image-comparing method, image-retrieving apparatus and image-retrieving method
US20160007037A1 (en) Method and system for still image encoding and random access decoding
JP2019515561A5 (en)
US8467442B2 (en) Image searching device and method, program and program recording medium
US8538180B2 (en) Method and apparatus for generating JPEG files suitable for parallel decoding
KR101832418B1 (en) Method and system for optimization of image encode quality
US10785493B2 (en) Method of compressing and decompressing image data
JP5318256B2 (en) High bit depth image compression
US9083977B2 (en) System and method for randomly accessing compressed data from memory
US8189687B2 (en) Data embedding apparatus, data extracting apparatus, data embedding method, and data extracting method
JP2022043029A (en) Method for encoding digital image, decoding method, associated device, user terminal and computer program
US20110170607A1 (en) WEAV Video Compression System
US8576923B2 (en) Bitstream navigation techniques
KR20140132535A (en) Method for parallel encoding and system thereof
KR20170059411A (en) Image compression method allowing a set compression quality to be obtained
EP3190793A1 (en) Method for re-encoding image and apparatus therefor
KR101541869B1 (en) Method for encoding and decoding using variable length coding and system thereof
CN111083416B (en) Data processing method and device, electronic equipment and readable storage medium
US9560365B2 (en) Image coding device, image decoding device, image coding method, and image decoding method
US10798383B2 (en) Method for decoding a digital image, coding method, devices, terminal and associated computer programs
US8260070B1 (en) Method and system to generate a compressed image utilizing custom probability tables
CN113473154B (en) Video encoding method, video decoding method, video encoding device, video decoding device and storage medium
CN112449188B (en) Video decoding method, video encoding device, video encoding medium, and electronic apparatus
CN111225210B (en) Video coding method, video coding device and terminal equipment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application