WO2010002148A2 - 영상 부호화 및 복호화 장치 및, 방법 - Google Patents

영상 부호화 및 복호화 장치 및, 방법 Download PDF

Info

Publication number
WO2010002148A2
WO2010002148A2 PCT/KR2009/003457 KR2009003457W WO2010002148A2 WO 2010002148 A2 WO2010002148 A2 WO 2010002148A2 KR 2009003457 W KR2009003457 W KR 2009003457W WO 2010002148 A2 WO2010002148 A2 WO 2010002148A2
Authority
WO
WIPO (PCT)
Prior art keywords
frequency coefficients
frequency
zero
encoding
coefficient
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
Application number
PCT/KR2009/003457
Other languages
English (en)
French (fr)
Other versions
WO2010002148A3 (ko
Inventor
김하윤
김해광
전병우
이영렬
문주희
지아지에
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Telecom Co Ltd
Original Assignee
SK Telecom Co Ltd
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 SK Telecom Co Ltd filed Critical SK Telecom Co Ltd
Priority to US13/002,582 priority Critical patent/US9319710B2/en
Publication of WO2010002148A2 publication Critical patent/WO2010002148A2/ko
Publication of WO2010002148A3 publication Critical patent/WO2010002148A3/ko
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Definitions

  • the present invention relates to an image encoding and decoding apparatus for encoding and / or decoding moving image data, and a method thereof, and to an apparatus and method for adaptively encoding moving image data reflecting characteristics of an image.
  • the data constituting the moving image has a much larger amount of data than audio or still image data, it requires a lot of hardware resources including memory to store or transmit itself without any processing. Accordingly, in order to prevent this, the video data is compressed and stored or transmitted using an encoder, and the decoder receives and plays the video data.
  • Moving Picture Experts Group (MPEG) and Video Coding Experts Group (VCEG) have developed video compression techniques that are superior to the existing MPEG-4 Part 2 and H.263 standards.
  • the new standard is called H.264 / AVC (Advanced video Coding), which was jointly released as MPEG-4 Part 10 AVC and ITU-T Recommendation H.264.
  • An object of the present invention is to provide an apparatus and method for improving the efficiency of image encoding and decoding by adaptively encoding by reflecting characteristics of an image in encoding and decoding video data.
  • the present invention includes a prediction unit for predicting a predicted pixel value of each pixel of a current block of an image;
  • a subtraction unit configured to generate a residual signal by calculating a difference value between an original pixel value of each pixel of the current block and a predicted pixel value of each pixel of the current block;
  • a converter for converting the residual signal into frequency coefficients;
  • a quantizer for quantizing the transformed frequency coefficients;
  • the present invention includes a prediction step of predicting the predicted pixel value of each pixel of the current block of the image; A subtraction step of generating a residual signal by calculating a difference value between an original pixel value of each pixel of the current block and a predicted pixel value of each pixel of the current block; Converting the residual signal into frequency coefficients; A quantization step of quantizing the transformed frequency coefficients; And encoding quantized frequency coefficients, but encoding run_before (the number of frequency coefficients '0' between a current non-zero frequency coefficient and a previous non-zero frequency coefficient). It provides a video encoding method comprising the encoding step of encoding using one of the tables.
  • the present invention includes a scanning step of scanning and quantizing the quantized frequency coefficients of each pixel of the current block of the image into a one-dimensional vector; Scanned quantized frequency coefficients include TotalCoeff (number of non-'0 'frequency coefficients), level (count value of non-'0' frequency coefficients), total_zero ('0' before last non-'0 'frequency coefficients) Number of frequency coefficients), and run_before (the number of frequency coefficients that are '0' between the current non-zero frequency coefficient and the previous non-zero frequency coefficient).
  • the encoded information includes an output step of outputting a bit string.
  • the present invention provides an input method comprising: an input step of reading an input bitstream; TotalCoeff (number of non-'0 'frequency coefficients), level (count value of non-'0' frequency coefficients), total_zero ('0' before last non-'0 'frequency information Number of frequency coefficients), and run_before (the number of frequency coefficients that are '0' between the current non-zero frequency coefficient and the previous non-zero frequency coefficient) to decode run_before.
  • a decoding step of decoding using one of different variable length coding tables It provides a decoding method comprising the step of restoring the decoded frequency coefficients in the original block form.
  • the present invention can improve the efficiency of image encoding and decoding by adaptively encoding by reflecting characteristics of an image in encoding and decoding video data.
  • FIG. 1 is a diagram illustrating video frames constituting a video used for inter prediction.
  • FIG. 2 is a block diagram of a video encoding apparatus according to an embodiment of the present invention.
  • FIG. 3 is a flowchart illustrating a method of encoding quantized frequency coefficients in the encoder of FIG. 2.
  • FIG. 4 is a diagram illustrating a frequency coefficient string zigzag scanned of the quantized frequency coefficients of FIG. 3.
  • 5A and 5B are variable length coding tables of run_before according to zero_left among variable length coding tables of H.264 / AVC (Advanced video coding).
  • 6 to 17 show different values of non_zero_left encoding run_before according to zero_left for 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, and 14, respectively. Length code tables are shown.
  • FIG. 18 is a flowchart of another method of encoding quantized frequency coefficients in the encoder of FIG.
  • 19 is a flowchart of an image encoding method according to another embodiment of the present invention.
  • 20 is a block diagram schematically illustrating an electronic configuration of an image decoding apparatus according to another embodiment of the present invention.
  • 21 is a flowchart illustrating a video decoding method according to another embodiment of the present invention.
  • FIG. 22 is a flowchart of a decoding method of decoding a block of frequency coefficients from information of a bitstream encoded in the decoding step of FIG. 21.
  • the video screen is composed of 30 frames in one second, the difference is small between one frame and neighboring frames, and thus cannot be distinguished by the human eye. For this reason, when 30 frames are sprayed in one second, the human eye recognizes the frames as continuous.
  • the pixel value of the next frame can be predicted from the known pixel values constituting the previous frame (this is called interprediction).
  • the encoding and decoding of such video data is performed based on a motion prediction technique.
  • the motion prediction is performed by referring to past frames or referring to both past and future frames based on the time axis.
  • the frame referred to to encode or decode the current frame is called a reference frame.
  • block-based video encoding one still image (frame) constituting a video is divided into macroblocks and subblocks constituting the macroblock, and motion is predicted in units of blocks and encoding is performed.
  • run_before refers to the number of frequency coefficients that are '0' between the current non-zero frequency coefficient and the previous non-zero frequency coefficient among the quantized frequency coefficients
  • non_zero_left is the current '0'.
  • 'No' refers to the number of non-zero '0' frequency coefficients remaining at the location of frequency
  • TotalCoeff refers to the number of frequency coefficients other than '0'
  • level refers to the coefficient value of non-zero frequency coefficients.
  • total_zero refers to the number of frequency coefficients that are '0' before the last frequency coefficient that is not '0'.
  • trailingOnes refers to the number of frequency coefficients having an absolute value of 1 continuously when the last consecutive absolute value is 1 among zigzag scanned quantized frequency coefficients
  • trailing_ones_sign_flag refers to the sign of trailingOnes.
  • FIG. 1 is a diagram illustrating video frames constituting a video used for inter prediction.
  • video data is composed of a series of still images. These still images are divided into GOP (Group of Picture) units. Each still image is called a frame.
  • GOP Group of Picture
  • One GOP includes an I frame 110, a P frame 120, and a B 130 frame.
  • the I frame 110 is a frame that is encoded by itself without using a reference frame
  • the P frame 120 and the B frame 130 are frames that are encoded by performing motion estimation and compensation using the reference frame.
  • the B frame 130 is a frame that is encoded by predicting the frame of the past and the frame of the future in the forward and reverse directions (bidirectional), respectively.
  • FIG. 2 is a block diagram of a video encoding apparatus according to an embodiment of the present invention.
  • the video encoding apparatus 200 includes a predictor 210, a subtractor 220, a transformer 230, a quantizer 240, and an encoder 250.
  • the video encoding apparatus 300 may be a personal computer (PC), a notebook computer, a personal digital assistant (PDA), a portable multimedia player (PMP), or a PlayStation Portable (PSP). ),
  • a communication device such as a communication modem for communicating with various devices or a wired / wireless communication network, a memory for storing various programs and data for encoding an image, and executing a program.
  • the prediction unit 210 currently uses any one or a combination of intra prediction based on motion prediction or intra prediction that predicts the next pixel using a correlation of pixel signals within the same frame.
  • a block (or macroblock) can be predicted.
  • the prediction unit 210 may be divided into a motion estimation unit (not shown) and a motion compensation unit (not shown).
  • the motion estimator finds the motion prediction value of the macroblock of the current frame in the reference frame and outputs the difference of the motion as a motion vector. That is, the macroblock to be searched is searched within a predetermined search area of the reference frame to find the most similar macroblock and the degree of movement is output as a motion vector.
  • the motion compensation unit obtains a prediction macro block corresponding to the obtained motion vector from the reference frame.
  • the predictor 210 is an intra predictor that predicts a current macroblock of a current frame using a neighboring macroblock of a current macroblock in an image, and at least one pixel value of at least one neighboring macroblock.
  • the predicted macroblock is predicted by calculating a predicted pixel value of each pixel of the current macroblock using.
  • the peripheral macroblock may be one or more peripheral macroblocks that are compressed before the current macroblock and located around the current macroblock.
  • the subtraction unit 220 generates a residual signal by subtracting the prediction macro block from the macro block of the original image frame and calculating the difference value.
  • the transformer 230 converts the residual signal generated by the subtractor 220 into a frequency domain to obtain frequency coefficients.
  • the transform unit 230 may convert the residual signal into the frequency domain by using various transformation techniques such as a discrete cosine transform (DCT), which transforms an image signal on a time axis into a frequency axis. Convert. In the case of the I frame described with reference to FIG. 1, the converter 230 converts the macroblock of the original image frame into the frequency domain.
  • DCT discrete cosine transform
  • the quantization unit 240 quantizes the frequency coefficients transformed into the frequency domain by the conversion unit 230.
  • Subtracting the predictive macroblock from the macroblock of the original picture frame is called a residual signal, and the residual signal value is encoded to reduce the amount of data during encoding. Since an error occurs during the quantization process, the video data generated in the bitstream includes an error generated during the transformation and quantization process.
  • the video encoding apparatus 200 may further include an inverse quantizer 360 and an inverse transform unit 370 to obtain a reference frame.
  • the quantized residual signal is combined with an image predicted by the predictor 210 through an inverse quantizer 360 and an inverse transformer 270 and stored in a reference frame storage (not shown).
  • a reference frame storage not shown
  • I frame it is stored in the reference frame storage of the predictor 210 through the inverse quantizer 360 and the transformer 370.
  • the reference image stored in the reference image storage unit becomes an image including an encoding error generated during a transform and quantization process in the original image frame.
  • the converter 230 receives A-B, which is a difference between the original image and the predicted image, and performs conversion.
  • A-B which is a difference between the original image and the predicted image
  • the reference image storage unit stores (A-B) + E and the predicted image B and stores the image A + E, which includes an error in the original image, as a reference image.
  • the encoder 250 encodes the frequency coefficients quantized by the quantizer 240 into a bitstream.
  • An entropy encoding technique may be used as the encoding technique, but various encoding techniques may be used without being limited thereto.
  • the encoder 250 encodes using coded block pattern information without entropy encoding. Otherwise, the encoding unit 250 encodes values of frequency coefficients other than '0' in order, and then encodes the values '0'. Encode the location of the frequency coefficients rather than
  • Table 1 1 (1) 0 (2) 0 (6) 0 (7) 0 (3) 0 (5) 0 (8) 0 (13) 3 (4) 0 (9) 0 (12) 0 (14) 0 (10) 0 (11) 0 (15) 0 (16)
  • FIG. 3 is a flowchart illustrating a method of encoding quantized frequency coefficients in the encoder 250 of FIG. 2.
  • FIG. 4 is a diagram illustrating a frequency coefficient string zigzag scanned of the quantized frequency coefficients of FIG. 3.
  • a zigzag scan of quantized frequency coefficients is performed (S310).
  • Table 1 () shows the zigzag scan order. Therefore, the zigzag scanned frequency coefficient sequence is 1 (1) 0 (2) 0 (3) 3 (4) 0 (5) 0 (6) 0 (7) 0 (8) as shown in FIG. 0 (9) 0 (10) 0 (11) 0 (12) 0 (13) 0 (14) 0 (15) 0 (16).
  • total_coeff is encoded using a variable length coding table of H.264 / Advanced video coding (AVC).
  • AVC Advanced video coding
  • one of the variable length encoding tables may be adaptively selected according to the situation of surrounding macroblocks to perform encoding.
  • frequency coefficient values other than '0' are encoded in the reverse or reverse order (high frequency to DC direction) as +3 and +1 (S330).
  • the level may be encoded using a variable length coding table of H.264 / AVC (Advanced video Coding).
  • run_before according to the number of frequency coefficients (zero_left) having the previous value of '0' remaining at the position of the frequency coefficient other than the current '0' may be encoded using one of different variable length coding tables.
  • the run_before for zero_left may be encoded using different variable length coding tables according to the number of non-zero frequency coefficients remaining (non_zero_left) remaining at positions other than the current '0'.
  • 5A and 5B illustrate a variable length coding table of run_before according to zero_left in a variable length coding table of H.264 / AVC.
  • variable-length encoding table of run_before according to zero_left of FIGS. 5A and 5B when encoding run_before for representing the position of the next frequency coefficient other than '0', the encoding length is changed based on information theory according to zero_left. have.
  • variable-length encoding table for example, if zero_left is '2', run_before encodes 0, 1, and 2 in order of 1, 2, and 2 bits, respectively. If zero_left is '3', run_before encodes 0, 1, 2, and 3 with a length of 2 bits, respectively.
  • this variable length coding table is generally encoded with a few bits as the run_before is smaller, but it is not possible to construct a variable length coding table using a general probability characteristic of an image in which many non-zero frequency coefficients appear in the low frequency part. .
  • non_zero_left the number of non-zero frequency coefficients present in the DC direction of the current non-zero frequency coefficients (non_zero_left) based on a general probability characteristic of an image in which many non-zero frequency coefficients appear in the low frequency portion. For example, a plurality of variable length encoding tables for encoding run_before according to zero_left are used.
  • the table value of FIG. 5A represents the number of bits used for encoding the corresponding run_before for the corresponding zero_left
  • the table value of FIG. 5B represents an encoded value used for encoding the corresponding run_before for the corresponding zero_left.
  • the run_before value 2 is encoded into two bits.
  • run_before The value 2 is encoded as '00'.
  • variable length encoding table of FIGS. 6 to 17 is only one example, and may be variously changed or modified based on a general probability characteristic of an image in which a frequency coefficient other than '0' appears in a low frequency portion.
  • different variable-length coding tables encoding run_before according to zero_left are used based on a general probability characteristic of an image in which many non-zero frequency coefficients appear in the low frequency portion, thereby efficiently quantizing blocks of quantized frequency coefficients. Can be encoded.
  • run_before 0, 1, and 2 are encoded in order of 1, 1, and 2, whereas in FIG. 6, when non_zero_left is 1, zero_left is 2.
  • run_before 0, 1, 2 are encoded in order of 2, 2, 1 bits.
  • the number of bits of run_before may be smaller as the probability that the frequency coefficient other than the previous '0' is located before the frequency coefficient other than the current '0' is higher.
  • variable length coding table may be smaller in size as the value of the number of non-zero frequency coefficients remaining other than '0' remains. That is, in the variable length coding tables of FIGS. 6 to 17, the value of non_zero_left is 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, and the value of non_zero_left. It can be seen that as the size increases, the size of the variable length coding table decreases. For example, if non-zero_left is 14, zero_left is 1. Also, if non_zero_left is 15, it does not need to remain.
  • the coded bitstreams of the quantized frequency coefficients of Table 1 through steps S310 to S350 are 2 (total_coeff), +3 (level), +1 (level), and 2 (total_zeros) as shown in Table 2. ), And 2 (run_before) information.
  • FIG. 18 is a flowchart of another method of encoding quantized frequency coefficients in the encoder of FIG. In this case, steps overlapping with FIG. 3 are the same as those described with reference to FIG.
  • a zigzag scan of quantized frequency coefficients is performed (S1810).
  • the frequency coefficient zigzag scan of the quantized frequency coefficients in Table 3 is 15 (1) -4 (2) 7 (3) 0 (4) 0 (5) 9 (6) -2 (7) 0 (8) 0 (9) 1 (10) 0 (11) -1 (12) 0 (13) 0 (14) 0 (15) 0 (16).
  • trailingones and trailing_ones_sign_flag can be encoded using a variable length encoding table of H.264 / AVC.
  • the frequency coefficient level other than '0' except the coefficient whose absolute value is 1 is encoded in the reverse order (high frequency to DC direction) as -2, +9, +7, -4, +15 ( S12050).
  • run_before between -1 (12) and +1 (10) is 1, run_before between +1 (10) and -2 (7) is 2, and between -2 (7) and +9 (6)
  • Run_before of run_before between +9 (6) and +7 (3) is 2, +7 (3) and -4 (2) and each run_before between -4 (2) and +15 is 0, so run_before
  • the reverse order is 1, 2, 0, 2, 0, 0.
  • Each of these run_befores (1, 2, 0, 2, 0, 0) selects one of the variable length coding tables of FIGS. 6 to 17 in consideration of non_zero_lefts, and encodes according to zero_left in the selected variable length incubation tables. The value is determined.
  • Bitstreams in which the quantized frequency coefficients of Table 3 are encoded through steps S1810 to S1870 are shown in Table 4. That is, the bitstream is 7 (total_coeff), 2 (trailingones),-(trailing_ones_sign_flag), + (trailing_ones_sign_flag), -2 (level), +9 (level), +7 (level), -4 (level), + It consists of 15 (level), 5 (total_zeros), 1 (run_before), 2 (run_before), 0 (run_before), 2 (run_before), 0 (run_before), and 0 (run_before).
  • the image encoded in the bitstream by the image encoding apparatus 200 is real-time or non-real-time through the wired or wireless communication network such as the Internet, local area wireless communication network, wireless LAN network, WiBro network, mobile communication network, or the like.
  • the image decoding apparatus may be transmitted to a video decoding apparatus through a communication interface such as a universal serial bus (USB), decoded by the video decoding apparatus, and restored and reproduced.
  • a communication interface such as a universal serial bus (USB)
  • 19 is a flowchart of an image encoding method according to another embodiment of the present invention.
  • an image encoding method includes a prediction step S1910, a subtraction step S1920, a transform step S1930, a quantization step S1940, and an encoding step S1950. .
  • the prediction step S1910 is a step of predicting pixel values of each pixel of the current block of the image.
  • the prediction step S1910 generates a prediction block by predicting pixel values of each pixel of the current block by a previously encoded block of a previous frame or a neighboring block of the current frame.
  • a difference (ie, a residual signal) between the original pixel value of the current block to be encoded and the prediction pixel value of the prediction block is calculated to reduce the amount of encoded data to increase coding efficiency.
  • the converting step S1930 is a step of converting the generated residual signal into the frequency domain by using a DCT transform.
  • the quantization step S1940 is a step of quantizing the frequency coefficients transformed into the frequency domain.
  • the encoding step (S1950) is a step of encoding the quantized frequency coefficients into the types of information in Table 2 or Table 4 using a variable length encoding table. Specific steps of the encoding step S1950 are omitted in the encoding method described with reference to FIGS. 3 to 18.
  • CAVLC context-based adaptive variable length coding
  • an image encoding method may further include an inverse quantization step S1960 and an inverse transform step S1970.
  • the inverse quantization step S1960 and the inverse transform step S1970 are steps of generating a residual signal through inverse quantization and inverse transformation of quantized frequency coefficients. That is, the quantized residual signal is combined with the image predicted in the prediction step S1910 through the inverse quantization step S1960 and the inverse transform step S1970 and stored as a reference frame.
  • the image encoded in the bitstream by the image encoding apparatus 200 is real-time or non-real-time through the wired or wireless communication network such as the Internet, local area wireless communication network, wireless LAN network, WiBro network, mobile communication network, or the like.
  • the image decoding apparatus may be transmitted to a video decoding apparatus through a communication interface such as a universal serial bus (USB), decoded by the video decoding apparatus, and restored and reproduced.
  • a communication interface such as a universal serial bus (USB)
  • 20 is a block diagram schematically illustrating an electronic configuration of an image decoding apparatus according to another embodiment of the present invention.
  • the image decoding apparatus 2000 is an apparatus for predicting a current block of an image using one or more neighboring blocks around the current block and decoding the image.
  • An inverse quantizer 2020 is an apparatus for predicting a current block of an image using one or more neighboring blocks around the current block and decoding the image.
  • An inverse quantizer 2020 is an apparatus for predicting a current block of an image using one or more neighboring blocks around the current block and decoding the image.
  • An inverse quantizer 2020 is an inverse quantizer 2020, an inverse transformer 2030, an adder 2040, and a predictor 2050.
  • the video decoding apparatus 800 may be a personal computer (PC), a notebook computer, a personal digital assistant (PDA), a portable multimedia player (PMP: Portable Multimedia Player (PSP), PlayStation Portable (PSP: PlayStation Portable), Mobile Communication Terminal (Mobile Communication Terminal) and the like, communication devices, such as a communication modem for performing communication with various devices or wired and wireless communication network, decoding the image Means a variety of devices including a memory for storing various programs and data, a microprocessor for executing and controlling the program by executing.
  • PC personal computer
  • PDA personal digital assistant
  • PMP Portable Multimedia Player
  • PSP PlayStation Portable
  • Mobile Communication Terminal Mobile Communication Terminal
  • the decoder 2010 decodes the bitstream and extracts quantized frequency coefficients. That is, the decoder 2010 decodes a bitstream, which is an image encoded by the image encoding apparatus 300, and extracts quantized frequency coefficients including pixel information of the current block of the image.
  • the decoder 2010 decodes the quantized frequency coefficients using the variable length coding tables described above from the information included in Table 2 or Table 4 included in the bitstream.
  • the decoder 2010 may include encoded information 2 (total_coeff), +3 (level), +1 (level), 2 (total_zeros), and 2 ( run_before), using the variable length coding tables shown in FIGS. 6 to 17, using the frequency coefficient sequence shown in FIG. 4 (1 (1) 0 (2) 0 (3) 3 (4) 0 (5)).
  • a specific decoding method will be described next with reference to FIGS. 21 and 22.
  • the dequantizer 2020 de-quantizes the frequency coefficients extracted from the bitstream by the decoder 2010.
  • the inverse transform unit 2030 generates inverse trasformation of the frequency coefficients inversely quantized by the inverse quantizer 2020 into a time domain.
  • the adder 2030 restores the original pixel value of the current block by adding the residual signal inversely transformed by the inverse transformer 2020 and the predicted pixel value of each pixel of the current block predicted by the predictor 2050.
  • 21 is a flowchart illustrating a video decoding method according to another embodiment of the present invention.
  • the image decoding apparatus 800 which receives and stores a bitstream of an image through a wired or wireless communication network or a cable, may reproduce the current block of the image in order to reproduce the image according to a user's selection or an algorithm of another program being executed.
  • the prediction is performed using one or more neighboring blocks around the block or the current block, and the image is decoded and reconstructed.
  • the image decoding method to restore the information contained in the bitstream to a quantized frequency coefficient representing the information on the pixel value of the current block of the image using a variable length coding table Decoding step (S2110), inverse quantization step of inverse quantizing the extracted quantized frequency coefficient (S2120), inverse transform step (S2130) to inverse transform the inverse quantized frequency coefficients to the time domain to restore the residual signal, inverse transform to the time domain Predicting the current block by using the current block indicated by the residual signal that has been processed, using the corresponding block of the previous frame or one or more neighboring blocks around the current block (S2140), and the residual signal of the current block inversely transformed in step S2130; An addition step of restoring the original pixel value of the current block by adding the prediction pixel values of each pixel of the current block predicted in step S2140 (S2) 150).
  • FIG. 22 is a flowchart of a decoding method of decoding a block of frequency coefficients from information of a bitstream encoded in the decoding step of FIG. 21.
  • information (2) of a bitstream coded by the encoding method described above with reference to FIGS. total_coeff), +3 (level), +1 (level), 2 (total_zeros), and 2 (run_before)) are read (S2110).
  • step S2230 After reading the first information (2 (total_coeff)) (S2220), the next information (+3 (level), +1 (level)) by the total_coeff value is read (S2230).
  • the frequency coefficients read in step S2230 are +3 and +1.
  • the frequency coefficient sequence obtained in step S2240 becomes 0 0 0 0 0 0 0 0 0 0 0 0 0 +3 +1.
  • step S2250 the next information 2 (run_before) is read, and a coefficient of '0' is added as much as the run_before value between the frequency coefficients obtained in step S2240 (S2250).
  • the frequency coefficient sequence obtained in step S2250 becomes 0 0 0 0 0 0 0 0 0 0 0 0 +3 0 0 +1.
  • the run_before value may be decoded using the variable length encoding table of FIG. 6, and then S2260 may be performed.
  • step S2250 the frequency coefficient sequence obtained in step S2250 is output in the reverse order and then restored to the original block form as shown in Table 2 (S2260).
  • the quantized frequency coefficient sequence shown in Table 4 can also be decoded in the same manner.
  • the original frequency coefficient sequence and the original macroblock can be restored by using the information and the run_before, total_coeff, and total_zeros values.
  • the decoding process is performed by using the variable length coding table in the decoding step, and then the quantized frequency coefficients are restored to finally obtain an image. Can be restored to a block.
  • the above-described video encoding method and decoding method can be created by a computer program. Codes and code segments constituting a program can be easily inferred by a computer programmer in the art.
  • the program is stored in a computer readable media, and read and executed by a computer to implement a video encoding and decoding method.
  • the information storage medium includes a magnetic recording medium, an optical recording medium, and a carrier wave medium.

Landscapes

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

Abstract

본 발명은, 영상의 현재 블록의 각 화소의 예측 화소값을 예측하는 예측부와, 상기 현재 블록의 각 화소의 원 화소값과 상기 현재 블록의 각 화소의 예측 화소값의 차이값을 계산하여 잔차신호를 생성하는 감산부와, 상기 잔차신호를 주파수 계수들로 변환하는 변환부와, 상기 변환된 주파수 계수들을 양자화하는 양자화부와, 상기 양자화된 주파수 계수들을 서로 다른 가변길이 부호화표들 중 하나를 사용하여 부호화하는 부호화부를 포함하는 영상 부호화 및 이에 대응하는 영상 복화화에 관한 것이다.

Description

[규칙 제26조에 의한 보정 09.09.2009] 영상 부호화 및 복호화 장치 및, 방법
본 발명은 동영상 데이터를 부호화 및/또는 복호화하는 영상 부호화 및 복호화 장치 및, 그 방법에 관한 것으로서, 영상의 특성을 반영하여 적응적으로 동영상 데이터를 부호화하는 장치 및 방법에 관한 것이다.
동영상을 구성하는 데이터는 음성이나 정지영상 데이터 등에 비하여 데이터량이 매우 많기 때문에, 아무런 처리없이 그 자체를 저장하거나 전송하기 위해서는 메모리를 포함하여 많은 하드웨어 자원을 필요로 한다. 따라서, 이를 방지하기 위해 부호화기를 사용하여 동영상 데이터를 압축하여 저장하거나 전송하며, 복호화기에서는 이를 수신하여 재생한다.
MPEG(Moving Picture Experts Group)과 VCEG(Video Coding Experts Group)은 기존의 MPEG-4 Part 2와 H.263 표준안보다 우수하고 뛰어난 비디오 압축 기술을 개발하였다. 이 새로운 표준안은 H.264/AVC(Advanced video Coding)이라 하며, MPEG-4 Part 10 AVC와 ITU-T Recommendation H.264로 공동으로 발표되었다.
본 발명은 동영상 데이터를 부호화하고 복호화하는 데 있어서, 영상의 특성을 반영하여 적응적으로 부호화함으로써 영상 부호화 복호화의 효율을 향상시키기 위한 장치 및 방법을 제공하는 데 그 목적이 있다.
일측면에서, 본 발명은, 영상의 현재 블록의 각 화소의 예측 화소값을 예측하는 예측부; 현재 블록의 각 화소의 원 화소값과 현재 블록의 각 화소의 예측 화소값의 차이값을 계산하여 잔차신호를 생성하는 감산부; 잔차신호를 주파수 계수들로 변환하는 변환부; 변환된 주파수 계수들을 양자화하는 양자화부; 및 양자화된 주파수 계수들을 부호화하되, run_before(현재의 '0'이 아닌 주파수 계수와 이전 '0'이 아닌 주파수 계수 사이에서 '0'인 주파수 계수의 개수)를 부호화할 때, 서로 다른 가변길이 부호화표들 중 하나를 사용하여 부호화하는 부호화부를 포함하는 것을 특징으로 하는 영상 부호화 장치를 제공한다.
다른 측면에서, 본 발명은, 영상의 현재 블록의 각 화소의 예측 화소값을 예측하는 예측단계; 현재 블록의 각 화소의 원 화소값과 현재 블록의 각 화소의 예측 화소값의 차이값을 계산하여 잔차신호를 생성하는 감산단계; 잔차신호를 주파수 계수들로 변환하는 변환단계; 변환된 주파수 계수들을 양자화하는 양자화단계; 및 양자화된 주파수 계수들을 부호화하되, run_before(현재의 '0'이 아닌 주파수 계수와 이전 '0'이 아닌 주파수 계수 사이에서 '0'인 주파수 계수의 개수)를 부호화할 때, 서로 다른 가변길이 부호화표들 중 하나를 사용하여 부호화하는 부호화단계를 포함하는 것을 특징으로 하는 영상 부호화 방법을 제공한다.
또 다른 측면에서, 본 발명은, 영상의 현재 블록의 각 화소의 양자화된 주파수 계수들을 스캔하여 일차원 벡터로 배열하는 스캔단계와; 스캔한 양자화된 주파수 계수들을, TotalCoeff('0'이 아닌 주파수 계수의 개수), level('0'이 아닌 주파수 계수들의 계수값), total_zero('0'이 아닌 마지막 주파수 계수 이전의 '0'인 주파수 계수의 개수), run_before(현재의 '0'이 아닌 주파수 계수와 이전 '0'이 아닌 주파수 계수 사이에서 '0'인 주파수 계수의 개수) 순서로 부호화할 때, 서로 다른 가변길이 부호화표들 중 하나를 사용하여 부호화하는 부호화단계와; 부호화된 정보들은 비트열로 출력하는 출력단계를 포함하는 것을 특징으로 하는 부호화 방법을 제공한다.
또 다른 측면에서, 본 발명은, 입력된 비트스트림을 읽는 입력단계와; 읽어들인 비트스트림의 정보들 중 TotalCoeff('0'이 아닌 주파수 계수의 개수), level('0'이 아닌 주파수 계수들의 계수값), total_zero('0'이 아닌 마지막 주파수 계수 이전의 '0'인 주파수 계수의 개수), run_before(현재의 '0'이 아닌 주파수 계수와 이전 '0'이 아닌 주파수 계수 사이에서 '0'인 주파수 계수의 개수)를 이용하여 주파수 계수를 복호화하되, run_before를 복호화할 때 서로 다른 가변길이 부호화표들 중 하나를 사용하여 복호화하는 복호화단계와; 복호화된 주파수 계수들을 원래의 블록 형태로 복원하는 복원단계를 포함하는 것을 특징으로 하는 복호화 방법을 제공한다.
위에서 설명한 바와 같이, 본 발명은 동영상 데이터를 부호화하고 복호화하는 데 있어서, 영상의 특성을 반영하여 적응적으로 부호화함으로써 영상 부호화 복호화의 효율을 향상시킬 수 있다.
도 1은 화면간 예측에 사용되는, 동영상을 구성하는 동영상 프레임들을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 동영상 부호화 장치의 블록도이다.
도3은 도2의 부호화부에서 양자화된 주파수 계수들을 부호화하는 방법의 흐름도이다.
도4는 도3의 양자화된 주파수 계수들을 지그재그 스캔한 주파수 계수열을 도시한 도면이다.
도5a 및 도5b는 H.264/AVC(Advanced video Coding)의 가변길이 부호화표(variable length coding table) 중 zero_left에 따른 run_before의 가변길이 부호화표이다.
도6 내지 도17은 non_zero_left의 값이 각각 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14에 대해 zero_left에 따른 run_before를 부호화하는 서로 다른 가변길이 부호화표들을 도시하고 있다.
도18은 도2의 부호화부에서 양자화된 주파수 계수들을 부호화하는 또다른 방법의 흐름도이다.
도19는 본 발명의 다른 실시예에 따른 영상 부호화 방법의 흐름도이다.
도 20은 본 발명의 또다른 실시예에 따른 영상 복호화 장치의 전자적인 구성을 간략하게 나타낸 블록 구성도이다.
도 21은 본 발명의 또다른 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
도22는 도21의 복호화단계에서 부호화된 비트스트림의 정보로부터 주파수 계수의 블록을 복호하는 복호화 방법의 흐름도이다.
동영상 화면은 1초 동안에 30장의 프레임으로 구성되므로 한 프레임과 이웃한 프레임 사이에는 그 차이가 작기 때문에, 인간의 눈으로 구분하지 못한다. 이 때문에, 1초 동안에 30장의 프레임을 뿌리면 인간의 눈은 프레임이 연속적인 것으로 인식한다.
이와 같이, 이전 프레임과 현재 프레임이 비슷하다면, 이전 프레임을 구성하고 있는 이미 알고 있는 화소값으로부터 다음 프레임의 화소값을 예측할 수 있다(이를 화면간 예측(interprediction)이라 함).
이러한 동영상 데이터의 부호화 및 복호화는 움직임 예측(motion prediction) 기술을 기반으로 이루어진다. 움직임 예측은 시간 축을 기준으로 과거 프레임을 참조하거나 과거 프레임과 미래 프레임을 모두 참조하는 방식으로 수행된다. 현재 프레임을 부호화하거나 복호화하는데 참조되는 프레임을 참조 프레임이라고 한다. 그리고, 블록 기반 동영상 부호화에서 동영상을 구성하는 하나의 정지영상(프레임)은 매크로블록과 매크로블록을 구성하는 서브블록으로 나누어져, 블록단위로 움직임이 예측되고 부호화가 수행된다.
또한 동일한 프레임 내에서 화소신호의 상관관계를 사용해 다음 화소를 예측하고 그 예측오차를 부호화할 수도 있다(이를 화면 내 예측(intraprediction)이라 함).
*본 발명에서, run_before는 양자화된 주파수 계수들 중에서 현재의 '0'이 아닌 주파수 계수와 이전 '0'이 아닌 주파수 계수 사이에서 '0'인 주파수 계수의 개수를 말하고, non_zero_left는 현재의 '0'이 아닌 주파수의 위치에서 남아있는 이전 '0’이 아닌 주파수 계수의 개수를 말하며, TotalCoeff는 '0'이 아닌 주파수 계수의 개수를 말하며, level은 '0'이 아닌 주파수 계수들의 계수값을 말하며, total_zero는 '0'이 아닌 마지막 주파수 계수 이전의 '0'인 주파수 계수의 개수를 말한다.
또한, 본 발명에서, trailingOnes는 지그재그 스캔한 양자화된 주파수 계수들 중 마지막에 연속하는 절대값이 1인 계수가 존재하는 경우, 마지막에 연속적으로 나오는 절대값이 1인 주파수 계수의 개수를 말하고, trailing_ones_sign_flag는 trailingOnes의 부호를 말한다.
도 1은 화면간 예측에 사용되는, 동영상을 구성하는 동영상 프레임들을 도시한 도면이다.
도 1을 참조하면, 동영상 데이터는 일련의 정지영상으로 구성되어 있다. 이 정지영상들은 GOP(Group of Picture) 단위로 구분되어 있다. 정지영상 하나하나를 프레임이라 한다. 하나의 GOP에는 I 프레임(110), P 프레임(120), B(130) 프레임이 포함되어 있다. I 프레임(110)은 참조 프레임을 사용하지 않고 자체적으로 부호화되는 프레임이며, P 프레임(120)과 B 프레임(130)은 참조 프레임을 사용하여 움직임 추정 및 보상을 수행하여 부호화되는 프레임이다. 특히, B 프레임(130)은 과거의 프레임과 미래의 프레임을 각각 순방향 및 역방향(양방향) 예측하여 부호화되는 프레임이다.
도 2는 본 발명의 일실시예에 따른 동영상 부호화 장치의 블록도이다.
본 발명의 일실시예에 따른 동영상 부호화 장치(200)는 예측부(210), 감산부(220), 변환부(230), 양자화부(240) 및 부호화부(250)를 포함한다.
이러한 영상 부호화 장치(300)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 이동통신 단말기(Mobile Communication Terminal) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.
예측부(210)는 위에서 설명한 바와 같이 움직임 예측을 기반으로 하는 화면간 예측이나 동일한 프레임 내에서 화소신호의 상관관계를 사용해 다음 화소를 예측하는 화면 내 예측 중 어느 하나 또는 둘의 조합을 이용하여 현재 블록(또는 매크로블록)을 예측할 수 있다.
예를 들어, 예측부(210)는 움직임추정부(미도시)와 움직임보상부(미도시)로 나누어 구성될 수 있다. 움직임 추정부는 현재 프레임의 매크로 블록의 움직임 예측치를 참조 프레임에서 찾아 그 움직임의 차이를 움직임 벡터로써 출력한다. 즉, 찾고자 하는 매크로 블록을 참조 프레임의 소정의 탐색영역 내에서 탐색하여, 가장 유사한 매크로 블록을 찾아 그 이동정도를 움직임 벡터로써 출력한다. 움직임 보상부는 구해진 움직임 벡터에 해당하는 예측 매크로 블록을 참조 프레임으로부터 얻는다.
또다른 예로, 예측부(210)는 현재 프레임의 현재 매크로 블록을 영상 내에서 현재 매크로 블록의 주변 매크로 블록을 이용하여 예측하는 인트라예측부로, 하나 이상의 주변 매크로 블록의 하나 이상의 화소값(Pixel Value)을 이용하여 현재 매크로 블록의 각 화소의 예측 화소값(Predicted Pixel Value)을 계산함으로써 예측 매크로 블록을 예측한다. 여기서, 주변 매크로 블록은 현재 매크로 블록 이전에 압축되고 현재 매크로 블록의 주변에 위치한 하나 이상의 주변 매크로 블록일 수 있다.
감산부(220)는 원 영상 프레임의 매크로 블록에서 예측 매크로 블록을 빼서 그 차이값을 계산하여 잔차신호(Residual Signal)를 생성한다.
변환부(230)는 감산부(220)에 의해 생성된 잔차신호를 주파수 영역으로 변환하여 주파수 계수들을 얻는다. 여기서, 변환부(230)는 이산 코사인 변환(DCT: Discrete Cosine Transform, 이하 'DCT 변환'이라 칭함) 등의 시간축의 화상 신호를 주파수축으로 변환하는 다양한 변환 기법을 이용하여 잔차신호를 주파수 영역으로 변환한다. 도1을 참조하여 설명한 I 프레임의 경우, 변환부(230)는 원 영상 프레임의 매크로 블록을 주파수 영역으로 변환한다.
양자화부(240)는 변환부(230)에 의해 주파수 영역으로 변환된 주파수 계수들을 양자화(Quantization)한다.
원 영상 프레임의 매크로 블록에서 예측 매크로 블록을 뺀 것을 잔차신호(residual signal)라고 하는데 부호화시의 데이터량을 줄이기 위해서 이 잔차신호값을 부호화한다. 양자화 과정에서 에러가 발생하므로, 비트스트림으로 만들어지는 동영상 데이터에는 변환 및 양자화 과정에서 발생한 에러가 포함되어 있다.
또한, 참조 프레임을 얻기 위해, 동영상 부호화 장치(200)는 역양자화부(360)와 역변환부(370)를 추가로 포함할 수 있다.
참조 프레임을 얻기 위해, 양자화된 잔차신호는 역양자화부(360)와 역변환부(270)를 거쳐 예측부(210)에서 예측된 영상과 합쳐져 참조 프레임 저장부(미도시)에 저장된다. I 프레임의 경우, 역양자화부(360)와 변환부(370)를 거쳐 예측부(210)의 참조 프레임 저장부에 저장된다. 참조영상 저장부에 저장된 참조영상은 원 영상 프레임에서 변환 및 양자화 과정에서 발생한 부호화 에러를 포함한 영상이 된다.
즉, 원 영상을 A 라고 하고, 예측된 영상을 B 라고 하면 변환부(230)는 원 영상과 예측된 영상과의 차이인 A-B를 입력받아 변환을 수행한다. 그리고 양자화 과정에서 에러성분(E)이 발생하여 부호화부(250)를 거쳐 출력되는 비트스트림은 (A-B)+E 가 된다. 그리고 참조영상 저장부는 (A-B)+E와 예측된 영상 B를 더하여 저장하므로 원 영상에서 에러가 포함된 영상인 A+E를 참조영상으로 저장한다.
부호화부(250)는 양자화부(240)에 의해 양자화된 주파수 계수들을 비트스트림으로 부호화한다. 이러한 부호화 기술로서는 엔트로피 부호화(Entropy Encoding) 기술이 사용될 수 있으나, 반드시 이에 한정하지 않고 다른 다양한 부호화 기술이 사용될 수도 있다.
부호화부(250)는 주파수 계수값이 모두 '0'이면 엔트로피 부호화하지 않고 Coded Block Pattern 정보를 이용하여 부호화하며 그렇지 않은 경우에 '0'이 아닌 주파수 계수의 값들을 순서대로 부호화하고 이‘0’이 아닌 주파수 계수의 위치를 부호화한다.
이하에서는, 양자화된 주파수 계수들이 표1과 같은 경우를 예를 들어 부호화부(250)가 부호화하는 방법을 설명한다.
표 1
1 (1) 0 (2) 0 (6) 0 (7)
0 (3) 0 (5) 0 (8) 0 (13)
3 (4) 0 (9) 0 (12) 0 (14)
0 (10) 0 (11) 0 (15) 0 (16)
도3은 도2의 부호화부(250)에서 양자화된 주파수 계수들을 부호화하는 방법의 흐름도이다. 도4는 도3의 양자화된 주파수 계수들을 지그재그 스캔한 주파수 계수열을 나타낸 도면이다.
도3을 참조하면, 먼저, 양자화된 주파수 계수들을 지그재그 스캔한다(S310). 이때 표1에서 ()안은 지그재그 스캔 순서를 나타낸다. 따라서, 지그재그 스캔한 주파수 계수열은, 도4에 도시한 바와 같이, 1(1) 0(2) 0(3) 3(4) 0(5) 0(6) 0(7) 0(8) 0(9) 0(10) 0(11) 0(12) 0(13) 0 (14) 0(15) 0(16)이 된다.
다음으로, 지그재그 스캔한 주파수 계수 열 중에서 '0'이 아닌 양자화된 주파수 계수(1, 3)의 개수(total number of non-zero coefficients, total_coeff =2)를 부호화한다(S320). 이 S320 단계에서, 예를 들어, H.264/AVC(Advanced video Coding)의 가변길이 부호화표(variable length coding table)를 이용하여 total_coeff를 부호화한다. 여기서, 이때 total_coeff를 부호화할 때, 주위의 매크로 블록의 상황에 따라 가변길이 부호화표의 하나를 적응적으로 선택하여 부호화를 수행할 수 있다.
다음으로, '0'이 아닌 주파수 계수값(level)을 역방향 또는 역순(고주파에서 DC 방향)으로 +3, +1과 같이 부호화한다(S330). 이 S330 단계에서도, 예를 들어 H.264/AVC(Advanced video Coding)의 가변길이 부호화표(variable length coding table)를 이용하여 level을 부호화할 수 있다.
다음으로, '0'이 아닌 마지막 주파수 계수(3(4))에서 DC 방향으로 남아 있는 '0'인 주파수 계수의 개수(total_zeros=2)를 부호화한다(S340).
다음으로, '0'이 아닌 마지막 주파수 계수(3(4))에서 DC 방향으로 '0'이 아닌 주파수 계수의 위치를 그 사이에 있는 연속되는 '0'의 값을 갖는 주파수 계수의 개수(run_before)로 부호화한다(S350). 이때, 현재의 '0'이 아닌 주파수 계수의 위치에서 남아있는 이전 '0’의 값을 갖는 주파수 계수의 개수(zero_left)에 따른 run_before를, 서로 다른 가변길이 부호화표들 중 하나를 사용하여 부호화할 수 있다. 예를 들어, 현재의 '0'이 아닌 주파수의 위치에서 남아있는 이전 0’이 아닌 주파수 계수의 개수(non_zero_left)에 따라 zero_left에 대한 run_before를 다른 가변길이 부호화표들을 이용하여 부호화할 수 있다.
도5a 및 도5b는 H.264/AVC의 가변길이 부호화표(variable length coding table) 중 zero_left에 따른 run_before의 가변길이 부호화표이다.
도5a 및 도5b의 zero_left에 따른 run_before의 가변길이 부호화표에서는, ‘0’이 아닌 다음 주파수 계수의 위치를 표현하기 위한 run_before를 부호화할 때, zero_left에 따라 정보이론에 기반하여 부호화 길이를 달리하고 있다.
이 가변길이 부호화표에서, 예를 들면, zero_left 가 '2'이면 run_before는 0, 1, 2, 에 대해서 각각 순서대로 1, 2, 2 비트의 길이로 부호화한다. zero_left 가 '3'이면 run_before는 0, 1, 2, 3 에 대해서 각각 2 비트의 길이로 부호화한다. 그런데, 이 가변길이 부호화표는 일반적으로 run_before가 작을수록 약간 적은 비트수로 부호화하나, 저주파 부분에서 ‘0’이 아닌 주파수 계수가 많이 나타나는 영상의 일반적인 확률 특성을 사용한 가변길이 부호화표를 구성하지 못한다.
따라서, 저주파 부분에서 ‘0’이 아닌 주파수 계수가 많이 나타나는 영상의 일반적인 확률 특성에 기반하여, 현재의 '0'아닌 주파수 계수의 DC 방향으로 존재하는 '0’이 아닌 주파수 계수의 개수(non_zero_left)에 대해, 각각 zero_left에 따른 run_before를 부호화하는 복수의 가변길이 부호화표를 사용한다.
도5a의 테이블 값은 해당 zero_left에 대해 해당 run_before를 부호화할 때 사용하는 비트수를 나타내고, 도5b의 테이블 값은 해당 zero_left에 대해 해당 run_before를 부호화할 때 사용하는 부호화값을 나타낸다. 예를 들어, 도5a에서는 zero_left가 '2'이고 run_before가 '2'인 경우, run_before 값 2를 2 개의 비트로 부호화한다는 것이며, 도5b에서는 zero_left가 '2'이고 run_before가 '2'인 경우, run_before 값 2를 '00'으로 부호화한다는 것이다.
도6 내지 도17은 non_zero_left의 값이 각각 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14에 대해 zero_left에 따른 run_before를 부호화하는 서로 다른 가변길이 부호화표들을 도시하고 있다. 도6 내지 도17의 가변길이 부호화표는 하나의 예시에 불과할 뿐이며, 저주파 부분에서 ‘0’이 아닌 주파수 계수가 많이 나타나는 영상의 일반적인 확률 특성을 기반으로 다양하게 변경 또는 변형할 수 있다. 이와 같이, 저주파 부분에서 ‘0’이 아닌 주파수 계수가 많이 나타나는 영상의 일반적인 확률 특성을 기반으로 zero_left에 따른 run_before를 부호화하는 서로 다른 가변길이 부호화표들을 사용하므로, 양자화된 주파수 계수의 블록을 효율적으로 부호화할 수 있다.
도5a 및 도5b을 참조하면 zero_left가 2인 경우, run_before 0, 1, 2에 대해서 순서대로 1, 1, 2로 부호화하는데 비해, 도6을 참조하면 non_zero_left의 값이 1인 경우zero_left가 2인 경우, run_before 0, 1, 2에 대해서 순서대로 2, 2, 1 비트로 부호화한다.
도6에서, run_before가 0 또는 1과 같이 상대적으로 작은 경우, 2와 같은 큰 비트수로 부호화하고, run_before가 2와 같이 상대적으로 큰 경우 1과 같이 상대적으로 작은 비트수로 부호화하는 이유는 다음과 같다. non_zero_left의 값이 1이면서 zero_left가 2인 경우는 현재의 '0'이 아닌 주파수 계수의 위치에서 DC 방향으로 존재하는 전체 주파수 계수가 3(1+2)인 경우이다. 이 때 하나만 존재하는 ‘0’이 아닌 계수는 영상의 특성상 DC 주파수 위치일 확률이 높다. 따라서 현재의 위치 다음 (현재의 위치에서의 주파수 계수값은 '0'이 아니다)의 3개의 주파수 계수는 <'0’이 아닌 주파수(DC), 0, 0>으로 구성될 확률이 가장 크다. 따라서 이 경우의 run_length = 2인 경우가 가장 확률이 높으므로 1비트의 적은 비트수를 배당하고 나머지 경우를 2 비트로 배당한 것이다.
동일한 이유로, 도7 내지 도17의 가변길이 부호화표들에서도, run_before의 비트수는 이전 '0'이 아닌 주파수 계수가 현재 '0'이 아닌 주파수 계수 이전에 위치할 확률이 높을수록 작을 수 있다.
또한, 이 가변길이 부호화표는 남아있는 이전 '0’이 아닌 주파수 계수의 개수(non_zero_left)의 값이 커질수록 그 크기가 작아질 수 있다. 즉, 도6 내지 도17의 가변길이 부호화표들에서, non_zero_left의 값이 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14로 non_zero_left의 값이 커질수록, 가변길이 부호화표의 크기가 작아지는 것을 알 수 있다. 예를 들어, non-zero_left가 14인 경우에는 zero_left는 1이 된다. 또한, non_zero_left가 15인 경우에는 남아있을 필요가 없다.
다시 도3을 참조하면, S310 내지 S350 단계를 통해 표1의 양자화된 주파수 계수들의 부호화된 비트스트림은 표2와 같이 2(total_coeff), +3(level), +1(level), 2(total_zeros), 2(run_before)의 정보의 순서로 구성된다.
표 2
정보의 종류 정보의 내용 정보
total_coeff '0'이 아닌 계수의 개수 2
level 양자화된 계수값 +3
level 양자화된 계수값 +1
total_zeros 마지막 계수 이전에 있는 '0'의 총 개수 2
run_before 계수 이전에 있는 연속된 '0'의 개수 2
양자화된 주파수 계수들을 부호화부(250)가 부호화하는 다른 예를 표3과 도18을 참조하여 설명한다.
표 3
15 (1) -4 (2) 9 (6) -2(7)
7 (3) 0 (5) 0 (8) 0 (13)
0 (4) 0 (9) -1 (12) 0 (14)
1 (10) 0 (11) 0 (15) 0 (16)
도18은 도2의 부호화부에서 양자화된 주파수 계수들을 부호화하는 또다른 방법의 흐름도이다. 이때, 도3과 중복되는 단계들은 도3을 참조하여 설명한 바와 동일하므로 약술한다.
도18을 참조하면, 먼저, 양자화된 주파수 계수들을 지그재그 스캔한다(S1810). 표3의 양자화된 주파수 계수들을 지그재그 스캔한 주파수 계수열은, 15(1) -4(2) 7(3) 0(4) 0(5) 9(6) -2(7) 0(8) 0(9) 1(10) 0(11) -1(12) 0(13) 0 (14) 0(15) 0(16)이 된다.
다음으로, '0'이 아닌 양자화된 주파수 계수(15, -4, 7, 9, -2, 1, -1)의 개수(total_coeff=7)를 부호화한다(S12020).
다음으로, 마지막에 연속하는 절대값이 1인 계수가 존재하는 경우, 마지막에 연속적으로 나오는 절대값이 1인 계수의 개수(trailingones=2)와 절대값이 1인 계수의 부호(trailing_ones_sign_flag=-, +)를 역순으로 부호화한다(S12030, S12040). 이 S12030 및 S12040 단계들에서도, 예를 들어 H.264/AVC의 가변길이 부호화표를 이용하여 trailingones 및 trailing_ones_sign_flag를 부호화할 수 있다.
다음으로, 절대값이 1인 계수를 제외한 '0'이 아닌 주파수 계수값(level)을 역순(고주파에서 DC 방향)으로 -2, +9, +7, -4, +15와 같이 부호화한다(S12050).
다음으로, '0'이 아닌 마지막 주파수 계수(-1(12))에서 DC 방향으로 남아 있는 '0'인 주파수 계수의 개수(total_zeros=5)를 부호화한다(S1860).
다음으로, '0'이 아닌 마지막 주파수 계수(-1(12))에서 DC 방향으로 '0'이 아닌 주파수 계수의 위치를 중간에 있는 연속되는 '0'의 값을 갖는 주파수 계수의 개수(run_before)로 부호화한다(S1870). 이때, 도6 내지 도17의 가변길이 부호화표들을 이용하여 run_before들을 '0'이 아닌 주파수 계수값(level)과 대응되도록 역순으로 부호화한다. 즉, -1(12)과 +1(10) 사이의 run_before는 1이고, +1(10)과 -2(7) 사이의 run_before는 2이고, -2(7)와 +9(6) 사이의 run_before는 +9(6)와 +7(3) 사이의 run_before는 2, +7(3)과 -4(2) 및 -4(2)와 +15 사이 각각의 run_before는 0이므로, run_before들은 역순으로 1, 2, 0, 2, 0, 0이다. 이 run_before들(1, 2, 0, 2, 0, 0) 각각은 non_zero_left들을 고려하여 도6 내지 도17의 가변길이 부호화표들 중 하나를 선택하고, 선택된 가변길이 부화화표들에서 zero_left에 따라 부호화값이 결정된다.
S1810 내지 S1870 단계를 통해 표3의 양자화된 주파수 계수들이 부호화된 비트스트림은 표4와 같다. 즉, 비트스트림은 7(total_coeff), 2(trailingones), -(trailing_ones_sign_flag), +(trailing_ones_sign_flag), -2(level), +9(level), +7(level), -4(level), +15(level), 5(total_zeros), 1(run_before), 2(run_before), 0(run_before), 2(run_before), 0(run_before), 0(run_before)의 정보의 순서로 구성된다.
표 4
정보의 종류 정보
total_coeff 7
trailingones 2
trailing_ones_sign_flag -
trailing_ones_sign_flag +
level -2
level +9
level +7
level -4
level +15
total_zeros 5
run_before 1
run_before 2
run_before 0
run_before 2
run_before 0
run_before 0
전술한 바와 같이, 영상 부호화 장치(200)에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등의 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
도19는 본 발명의 다른 실시예에 따른 영상 부호화 방법의 흐름도이다.
도19을 참조하면, 본 발명의 다른 실시예에 따른 영상 부호화 방법은 예측단계(S1910), 감산단계(S1920), 변환단계(S1930), 양자화단계(S1940), 부호화단계(S1950)을 포함한다.
예측단계(S1910)는 영상의 현재 블록의 각 화소의 화소값을 예측하는 단계이다. 예측단계(S1910)는 이전에 부호화된 이전 프레임의 블록 또는 현재 프레임의 주변 블록에 의해 현재 블록의 각 화소의 화소값을 예측하여 예측 블록을 생성한다.
감산단계(S1920)에서, 부호화된 데이터의 양을 줄여 부호화 효율을 높이기 위해 부호화하고자 하는 현재 블록의 원 화소값과, 예측 블록의 예측 화소값의 차이(즉, 잔차 신호)를 계산한다.
변환단계(S1930)는 생성된 잔차신호를 DCT 변환 등을 이용하여 주파수 영역으로 변환하는 단계이다.
양자화단계(S1940)는 주파수 영역으로 변환된 주파수 계수들을 양자화하는 단계이다.
부호화단계(S1950)는 양자화된 주파수 계수들을 가변길이 부호화표을 이용하여 표2 또는 표4의 정보의 종류들로 부호화하는 단계이다. 부호화단계(S1950)의 구체적인 단계들은 도3 내지 도18을 참조하여 설명한 부호화 방법에서 상세히 설명하였으므로 생략한다.
이와 같이 부호화단계(S1950)에서 양자화된 주파수 계수들을 가변길이 부호화표들을 이용하여 문맥기반으로 부호화하는 방법을 문맥기반 적응적 가변길이 부호화(Context Adaptive Variable Length Coding, CAVLC)라 한다. 본 발명의 실시예들은 양자화된 주파수 계수들을 부호화하는 단계에서 문맥기반 적응적 가변길이 부호화를 기반으로 하고 있다.
도19을 참조하면, 본 발명의 다른 실시예에 따른 영상 부호화 방법은 역양자화단계(S1960)과 역변환단계(S1970)를 추가로 포함할 수 있다.
역양자화단계(S1960)와 역변환단계(S1970)는 양자화된 주파수 계수들을 역양자화 및 역변환을 통해 잔차신호를 생성하는 단계들이다. 즉, 양자화된 잔차신호는 역양자화단계(S1960)와 역변환단계(S1970)를 거쳐 예측단계(S1910)에서 예측된 영상과 합쳐져 참조 프레임으로 저장된다.
전술한 바와 같이, 영상 부호화 장치(200)에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등의 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
도 20은 본 발명의 또다른 실시예에 따른 영상 복호화 장치의 전자적인 구성을 간략하게 나타낸 블록 구성도이다.
본 발명의 또다른 실시예에 따른 영상 복호화 장치(2000)는 영상의 현재 블록을 현재 블록의 주변에 있는 하나 이상의 주변 블록을 이용하여 예측하고 영상을 복호화(Decoding)하는 장치로서, 복호화부(2010), 역양자화부(2020), 역변환부(2030), 가산부(2040) 및 예측부(2050)를 포함한다.
이러한 영상 복호화 장치(800)는 도 2를 통해 전술한 영상 부호화 장치(300)와 같이, 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 이동통신 단말기(Mobile Communication Terminal) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 복호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.
복호화부(2010)는 비트스트림을 복호화하여 양자화된 주파수 계수들을 추출한다. 즉, 복호화부(2010)는 영상 부호화 장치(300)에 의해 부호화된 영상인 비트스트림을 복호화하여 영상의 현재 블록에 대한 화소 정보를 포함하고 있는 양자화된 주파수계수들을 추출한다.
복호화부(2010)는 비트스트림에 포함된, 표2 또는 표4에 포함된 정보들로부터 위에서 설명한 가변길이 부호화표들을 이용하여 양자화된 주파수 계수들을 복호화한다. 예를 들어, 복호화부(2010)는 비트스트림에 포함된, 표2에 포함된 부호화된 정보들(2(total_coeff), +3(level), +1(level), 2(total_zeros), 2(run_before))로부터 도6 내지 도17에 도시한 가변길이 부호화표들을 이용하여 일차적으로 도4에 도시한 주파수 계수열(1(1) 0(2) 0(3) 3(4) 0(5) 0(6) 0(7) 0(8) 0(9) 0(10) 0(11) 0(12) 0(13) 0 (14) 0(15) 0(16))로 복호화하고, 다음으로 표1에 양자화된 주파수 개수의 블록으로 변환한다. 구체적인 복호화 방법은 다음에 도21 및 도22를 참조하여 설명한다.
역양자화부(2020)는 복호화부(2010)에 의해 비트스트림으로부터 추출된 주파수 계수들을 역양자화(De-quantization)한다.
역변환부(2030)는 역양자화부(2020)에 의해 역양자화된 주파수 계수들을 시간 영역으로 역변환(Inverse Trasformation)하여 잔차신호를 생성한다.
가산부(2030)는 역 변환부(2020)에 의해 역변환된 잔차신호와 예측부(2050)에 의해 예측된 현재 블록의 각 화소의 예측 화소값을 더하여 현재 블록의 원 화소값을 복원한다.
도 21은 본 발명의 또다른 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
유무선 통신망 또는 케이블 등을 통해 영상에 대한 비트스트림을 수신하여 저장한 영상 복호화 장치(800)는 사용자의 선택 또는 실행 중인 다른 프로그램의 알고리즘에 따라 영상을 재생하기 위해, 영상의 현재 블록을 이전 프레임의 해당 블록 또는 현재 블록의 주변에 있는 하나 이상의 주변 블록을 이용하여 예측하고 영상을 복호화하여 복원한다.
이를 위해, 본 발명의 또다른 실시예에 따른 영상 복호화 방법은, 비트스트림에 포함된 정보들을 가변길이 부호화표를 이용하여 영상의 현재 블록의 화소값에 대한 정보를 나타내는 양자화된 주파수 계수로 복원하는 복호화단계(S2110), 추출된 양자화된 주파수 계수를 역양자화하는 역양자화 단계(S2120), 역양자화된 주파수 계수들을 시간 영역으로 역변환하여 잔차신호를 복원하는 역변환단계(S2130), 시간 영역으로 역 변환된 잔차신호가 나타내는 현재 블록을 이전 프레임의 해당 블록 또는 현재 블록의 주변에 있는 하나 이상의 주변 블록을 이용하여 현재 블록을 예측하는 예측단계(S2140), 단계 S2130에서 역 변환된 현재 블록의 잔차신호와 단계 S2140에서 예측된 현재 블록의 각 화소의 예측 화소값을 더하여 현재 블록의 원 화소값을 복원하는 가산단계(S2150)를 포함한다.
도22는 도21의 복호화단계에서 부호화된 비트스트림의 정보로부터 주파수 계수의 블록을 복호하는 복호화 방법의 흐름도이다.
도22를 참조하면, 본 발명의 또다른 실시예에 따른 복호화방법은, 먼저 표2에 도시된 주파수 계수들을 도3 내지 도17을 참조하여 설명한 부호화 방법으로 부호화된 비트스트림의 정보들(2(total_coeff), +3(level), +1(level), 2(total_zeros), 2(run_before))을 읽는다(S2110).
다음으로, 첫번째 정보(2(total_coeff))를 읽어드린 후(S2220), total_coeff값만큼 다음 정보들(+3(level), +1(level))을 읽는다(S2230). 이 S2230 단계에서 읽어드린 주파수 계수는 +3, +1이 된다.
다음으로, 다음 정보(2(total_zeros))를 읽어 '0'의 계수들을 16-total_zeros-total_coeff=12만큼 S2230 단계에서 구한 주파수 계수 앞에 붙인다(S2240). S2240 단계에서 구한 주파수 계수열은 0 0 0 0 0 0 0 0 0 0 0 0 +3 +1이 된다.
다음으로, 다음 정보(2(run_before))를 읽어 S2240 단계에서 구한 주파수 계수 사이에 run_before 값만큼 '0'의 계수를 붙인다(S2250). S2250 단계에서 구한 주파수 계수열은 0 0 0 0 0 0 0 0 0 0 0 0 +3 0 0 +1이 된다. 이때 run_before는 도6의 가변길이 부호화표에 의해 부호화되어 있으므로 S2250 단계에서도 run_before 값을 도6의 가변길이 부호화표를 이용하여 복호화한 후 S2260 단계를 수행할 수 있다.
다음으로 S2250 단계에서 구한 주파수 계수열을 역순서로 출력한 후 표2와 같은 원래의 블록 형태로 복원한다(S2260).
이상에서 표2에 도시된 양자화된 주파수 계수열을 도22를 참조하여 복호화하는 방법을 설명하였으나, 표4에 도시된 양자화된 주파수 계수열도 동일한 방법으로 복호화할 수 있다. 다만, 절대값이 1인 주파수 계수의 개수와 이들의 부호값을 포함하고 있으므로, 이 정보들과 run_before, total_coeff, total_zeros값을 이용하면 원래의 주파수 계수열 및 원래의 매크로 블록을 복원할 수 있다.
위에서 설명한 비트스트림의 정보들은 문맥기반 적응적 가변길이 부호화에 의해 가변길이 부호화표를 이용하여 부호화되어 있으므로, 복호화단계에서도 가변길이 부호화표를 이용하여 복호화한 후 양자화된 주파수 계수들을 복원하여 최종적으로 영상 블록으로 복원할 수 있다.
한편, 전술한 동영상 부호화 방법 및 복호화 방법은 컴퓨터 프로그램으로 작성 가능하다. 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 동영상 부호화및 복호화 방법을 구현한다. 정보저장매체는 자기 기록매체, 광 기록매체, 및 캐리어 웨이브 매체를 포함한다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (25)

  1. 영상의 현재 블록의 각 화소의 예측 화소값을 예측하는 예측부;
    상기 현재 블록의 각 화소의 원 화소값과 상기 현재 블록의 각 화소의 예측 화소값의 차이값을 계산하여 잔차신호를 생성하는 감산부;
    상기 잔차신호를 주파수 계수들로 변환하는 변환부;
    상기 변환된 주파수 계수들을 양자화하는 양자화부; 및
    상기 양자화된 주파수 계수들을 부호화하되, run_before(현재의 '0'이 아닌 주파수 계수와 이전 '0'이 아닌 주파수 계수 사이에서 '0'인 주파수 계수의 개수)를 부호화할 때, 서로 다른 가변길이 부호화표들 중 하나를 사용하여 부호화하는 것을 특징으로 하는 부호화부
    를 포함하는 영상 부호화 장치.
  2. 제1항에 있어서,
    상기 가변길이 부호화표는 non_zero_left(현재의 '0'이 아닌 주파수의 위치에서 남아있는 이전 '0’이 아닌 주파수 계수의 개수)에 따라 다른 것을 특징으로 하는 영상 부호화 장치.
  3. 제2항에 있어서,
    상기 부호화부는, 상기 양자화된 주파수 계수들을, TotalCoeff('0'이 아닌 주파수 계수의 개수), level('0'이 아닌 주파수 계수들의 계수값), total_zero('0'이 아닌 마지막 주파수 계수 이전의 '0'인 주파수 계수의 개수)의 부호화를 추가로 포함하여 문맥기반 적응적 가변길이 부호화로 부호화하는 것을 특징으로 하는 영상 부호화 장치.
  4. 제2항에 있어서,
    상기 가변길이 부호화표에서, 상기 run_before의 비트수는 이전 '0'이 아닌 주파수 계수가 현재의 '0'이 아닌 주파수 계수 이전에 위치할 확률이 높을수록 작은 것을 특징으로 하는 영상 부호화 장치.
  5. 제2항에 있어서,
    상기 가변길이 부호화표는 남아있는 상기 non_zero_left의 값이 커질수록 크기가 작아지는 것을 특징으로 하는 영상 부호화 장치.
  6. 제3항에 있어서,
    상기 부호화부는, 지그재그 스캔한 상기 양자화된 주파수 계수들을, 상기 TotalCoeff, 상기 level, 상기 total_zero, 상기 run_before 순서로 부호화하는 것을 특징으로 하는 영상 부호화 장치.
  7. 제6항에 있어서,
    상기 부호화부는, 지그재그 스캔한 상기 양자화된 주파수 계수들 중 마지막에 연속하는 절대값이 1인 계수가 존재하는 경우, trailingOnes(마지막에 연속적으로 나오는 절대값이 1인 주파수 계수의 개수)와 trailing_ones_sign_flag(상기 trailingOnes의 부호)를 추가로 포함하여 부호화하고,
    상기 trailingOnes와 상기 trailing_ones_sign_flag는 상기 TotalCoeff, 상기 level 사이에 위치하는 것을 특징으로 하는 영상 부호화 장치.
  8. 영상의 현재 블록의 각 화소의 예측 화소값을 예측하는 예측단계;
    상기 현재 블록의 각 화소의 원 화소값과 상기 현재 블록의 각 화소의 예측 화소값의 차이값을 계산하여 잔차신호를 생성하는 감산단계;
    상기 잔차신호를 주파수 계수들로 변환하는 변환단계;
    상기 변환된 주파수 계수들을 양자화하는 양자화단계; 및
    상기 양자화된 주파수 계수들을 부호화하되, run_before(현재의 '0'이 아닌 주파수 계수와 이전 '0'이 아닌 주파수 계수 사이에서 '0'인 주파수 계수의 개수)를 부호화할 때, 서로 다른 가변길이 부호화표들 중 하나를 사용하여 부호화하는 부호화단계
    를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  9. 제8항에 있어서,
    상기 가변길이 부호화표는 non_zero_left(현재의 '0'이 아닌 주파수의 위치에서 남아있는 이전 '0’이 아닌 주파수 계수의 개수)에 따라 다른 것을 특징으로 하는 영상 부호화 방법.
  10. 제9항에 있어서,
    상기 부호화단계는, 상기 양자화된 주파수 계수들을, TotalCoeff('0'이 아닌 주파수 계수의 개수), level('0'이 아닌 주파수 계수들의 계수값), total_zero('0'이 아닌 마지막 주파수 계수 이전의 '0'인 주파수 계수의 개수)의 부호화를 추가로 포함하여 문맥기반 적응적 가변길이 부호화로 부호화하는 것을 특징으로 하는 영상 부호화 방법.
  11. 제9항에 있어서,
    상기 가변길이 부호화표에서, 상기 run_before의 비트수는 이전 '0'이 아닌 주파수 계수가 현재의 '0'이 아닌 주파수 계수 이전에 위치할 확률이 높을수록 작은 것을 특징으로 하는 영상 부호화 방법.
  12. 제9항에 있어서,
    상기 가변길이 부호화표는 남아있는 상기 non_zero_left의 값이 커질수록 크기가 작아지는 것을 특징으로 하는 영상 부호화 방법.
  13. 제10항에 있어서,
    상기 부호화단계는, 지그재그 스캔한 상기 양자화된 주파수 계수들을, 상기 TotalCoeff, 상기 level, 상기 total_zero, 상기 run_before 순서로 부호화하는 것을 특징으로 하는 영상 부호화 방법.
  14. 제13항에 있어서,
    상기 부호화단계는, 지그재그 스캔한 상기 양자화된 주파수 계수들 중 마지막에 연속하는 절대값이 1인 계수가 존재하는 경우, trailingOnes(마지막에 연속적으로 나오는 절대값이 1인 주파수 계수의 개수)와 trailing_ones_sign_flag(상기 trailingOnes의 부호)를 추가로 포함하여 부호화하고,
    상기 trailingOnes와 상기 trailing_ones_sign_flag는 상기 TotalCoeff, 상기 level 사이에 위치하는 것을 특징으로 하는 영상 부호화 방법.
  15. 영상의 현재 블록의 각 화소의 양자화된 주파수 계수들을 스캔하여 일차원 벡터로 배열하는 스캔단계와;
    스캔한 상기 양자화된 주파수 계수들을, TotalCoeff('0'이 아닌 주파수 계수의 개수), level('0'이 아닌 주파수 계수들의 계수값), total_zero('0'이 아닌 마지막 주파수 계수 이전의 '0'인 주파수 계수의 개수), run_before(현재의 '0'이 아닌 주파수 계수와 이전 '0'이 아닌 주파수 계수 사이에서 '0'인 주파수 계수의 개수) 순서로 부호화할 때, 서로 다른 가변길이 부호화표들 중 하나를 사용하여 부호화하는 부호화단계와;
    상기 부호화된 정보들은 비트열로 출력하는 출력단계
    를 포함하는 것을 특징으로 하는 부호화 방법.
  16. 제15항에 있어서,
    상기 가변길이 부호화표는 non_zero_left(현재의 '0'이 아닌 주파수의 위치에서 남아있는 이전 '0’이 아닌 주파수 계수의 개수)에 따라 다른 것을 특징으로 하는 부호화 방법.
  17. 제15항에 있어서,
    상기 가변길이 부호화표에서, 상기 run_before의 비트수는 이전 '0'이 아닌 주파수 계수가 현재의 '0'이 아닌 주파수 계수 이전에 위치할 확률이 높을수록 작은 것을 특징으로 하는 부호화 방법.
  18. 제15항에 있어서,
    상기 가변길이 부호화표는 남아있는 상기 non_zero_left의 값이 커질수록 크기가 작아지는 것을 특징으로 하는 부호화 방법.
  19. 제15항에 있어서,
    지그재그 스캔한 상기 양자화된 주파수 계수들 중 마지막에 연속하는 절대값이 1인 주파수 계수가 존재하는 경우, trailingOnes(마지막에 연속적으로 나오는 절대값이 1인 주파수 계수의 개수)와 trailing_ones_sign_flag(상기 trailingOnes의 부호)를 추가로 포함하여 부호화하고,
    상기 trailingOnes와 상기 trailing_ones_sign_flag는 상기 TotalCoeff, 상기 level 사이에 위치하는 것을 특징으로 하는 부호화 방법.
  20. 제15항에 있어서,
    상기 출력단계에서, 상기 level과 상기 run_before가 복수인 경우 역순으로 출력하는 것을 특징으로 하는 부호화 방법.
  21. 입력된 비트스트림을 읽는 입력단계와;
    읽어들인 상기 비트스트림의 정보들 중 TotalCoeff('0'이 아닌 주파수 계수의 개수), level('0'이 아닌 주파수 계수들의 계수값), total_zero('0'이 아닌 마지막 주파수 계수 이전의 '0'인 주파수 계수의 개수), run_before(현재의 '0'이 아닌 주파수 계수와 이전 '0'이 아닌 주파수 계수 사이에서 '0'인 주파수 계수의 개수)를 이용하여 주파수 계수를 복호화하되, 상기 run_before를 복호화할 때 서로 다른 가변길이 부호화표들 중 하나를 사용하여 복호화하는 복호화단계와;
    복호화된 주파수 계수들을 원래의 블록 형태로 복원하는 복원단계를 포함하는 것을 특징으로 하는 복호화 방법.
  22. 제21항에 있어서,
    상기 가변길이 부호화표는 non_zero_left(현재의 '0'이 아닌 주파수의 위치에서 남아있는 이전 '0’이 아닌 주파수 계수의 개수)에 따라 다른 것을 특징으로 하는 복호화 방법.
  23. 제22항에 있어서,
    상기 가변길이 부호화표에서, 상기 run_before의 비트수는 이전 '0'이 아닌 주파수 계수가 현재의 '0'이 아닌 주파수 계수 이전에 위치할 확률이 높을수록 작은 것을 특징으로 하는 복호화 방법.
  24. 제22항에 있어서,
    상기 가변길이 부호화표는 남아있는 상기 non_zero_left의 값이 커질수록 크기가 작아지는 것을 특징으로 하는 복호화 방법.
  25. 제22항에 있어서,
    상기 입력단계에서, 상기 입력된 비트스트림 정보는, 마지막에 연속하는 절대값이 1인 주파수 계수가 존재하는 경우, trailingOnes(마지막에 연속적으로 나오는 절대값이 1인 주파수 계수의 개수)와 trailing_ones_sign_flag(상기 trailingOnes의 부호)를 상기 TotalCoeff, 상기 level 사이에 추가로 포함하며,
    상기 복호화단계는, 상기 trailingOnes와 상기 trailing_ones_sign_flag를 추가로 이용하여 상기 주파수 계수를 복호화하는 것을 특징으로 하는 복호화 방법.
PCT/KR2009/003457 2008-07-04 2009-06-26 영상 부호화 및 복호화 장치 및, 방법 Ceased WO2010002148A2 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/002,582 US9319710B2 (en) 2008-07-04 2009-06-26 Video encoding and decoding apparatus and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2008-0064903 2008-07-04
KR1020080064903A KR101501568B1 (ko) 2008-07-04 2008-07-04 영상 부호화 및 복호화 장치 및, 방법

Publications (2)

Publication Number Publication Date
WO2010002148A2 true WO2010002148A2 (ko) 2010-01-07
WO2010002148A3 WO2010002148A3 (ko) 2010-04-22

Family

ID=41466431

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2009/003457 Ceased WO2010002148A2 (ko) 2008-07-04 2009-06-26 영상 부호화 및 복호화 장치 및, 방법

Country Status (3)

Country Link
US (1) US9319710B2 (ko)
KR (1) KR101501568B1 (ko)
WO (1) WO2010002148A2 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130049523A (ko) 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 장치
KR20130049526A (ko) * 2011-11-04 2013-05-14 오수미 복원 블록 생성 방법
KR20130050404A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 복원 블록 생성 방법
EP4614445A3 (en) * 2018-12-26 2025-12-03 Panasonic Intellectual Property Corporation of America Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2020141855A1 (ko) * 2019-01-01 2020-07-09 엘지전자 주식회사 영상 코딩 시스템에서 레지듀얼 부호 관련 정보를 사용하는 영상 디코딩 방법 및 그 장치

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104754A (en) * 1995-03-15 2000-08-15 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system
KR101030862B1 (ko) * 2001-11-22 2011-04-22 파나소닉 주식회사 부호화 방법 및 부호화 장치
US7599835B2 (en) * 2002-03-08 2009-10-06 Nippon Telegraph And Telephone Corporation Digital signal encoding method, decoding method, encoding device, decoding device, digital signal encoding program, and decoding program
US7099387B2 (en) 2002-03-22 2006-08-29 Realnetorks, Inc. Context-adaptive VLC video transform coefficients encoding/decoding methods and apparatuses
US6795584B2 (en) * 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
US20040120404A1 (en) * 2002-11-27 2004-06-24 Takayuki Sugahara Variable length data encoding method, variable length data encoding apparatus, variable length encoded data decoding method, and variable length encoded data decoding apparatus
KR100959532B1 (ko) * 2003-12-18 2010-05-27 엘지전자 주식회사 Cavlc 복호 방법
KR100674941B1 (ko) 2005-01-13 2007-01-26 삼성전자주식회사 내용 적응 가변 길이 부호화 장치 및 방법
US20050259742A1 (en) * 2004-05-21 2005-11-24 Hellman Timothy M System and method for choosing tables in CAVLC
US7830964B2 (en) * 2004-11-24 2010-11-09 Lsi Corporation Method and/or apparatus for parsing compressed video bitstreams
JP4502384B2 (ja) * 2004-11-25 2010-07-14 キヤノン株式会社 可変長符号復号化装置及び可変長符号復号化方法
US20060126744A1 (en) * 2004-12-10 2006-06-15 Liang Peng Two pass architecture for H.264 CABAC decoding process
JP4271134B2 (ja) * 2004-12-10 2009-06-03 株式会社東芝 可変長符号化デコーダおよびデコード方法
JP2006203682A (ja) * 2005-01-21 2006-08-03 Nec Corp 動画像圧縮符号化ビットストリームシンタックス変換装置及び動画像通信システム
US7751636B2 (en) * 2005-09-23 2010-07-06 Faraday Technology Corp. Method for decoding transform coefficients corresponding to an image
JP4879558B2 (ja) * 2005-11-02 2012-02-22 パナソニック株式会社 動きベクトル検出装置
US7245242B2 (en) * 2005-11-28 2007-07-17 Conexant Systems, Inc. Decoding systems and methods
JP4844449B2 (ja) * 2006-04-17 2011-12-28 日本ビクター株式会社 動画像符号化装置、方法、プログラム、動画像復号化装置、方法、およびプログラム
KR100813877B1 (ko) * 2006-05-11 2008-03-18 전자부품연구원 효율적인 h.264/avc cavlc 디코딩 방법
TWI314820B (en) * 2006-05-26 2009-09-11 Ind Tech Res Inst Pattern-search based method for context-adaptive variable length coding/decoding
KR100801967B1 (ko) * 2006-07-07 2008-02-12 광주과학기술원 문맥 기반 적응적 가변 길이 부호화 인코더 및 디코더,문맥 기반 적응성 가변 길이 부호화하는 방법과 복호화하는방법 및 이를 이용한 동영상 전송 시스템.
JP4379444B2 (ja) * 2006-07-26 2009-12-09 ソニー株式会社 復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置
US8325819B2 (en) * 2006-10-12 2012-12-04 Qualcomm Incorporated Variable length coding table selection based on video block type for refinement coefficient coding
JP4356028B2 (ja) * 2007-05-17 2009-11-04 ソニー株式会社 情報処理装置および方法
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
BRPI0818444A2 (pt) * 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
US8848787B2 (en) * 2007-10-15 2014-09-30 Qualcomm Incorporated Enhancement layer coding for scalable video coding
WO2009075107A1 (ja) * 2007-12-13 2009-06-18 Panasonic Corporation 画像符号化装置、符号化レート変換装置、映像音声ストリーム記録装置、ネットワーク配信システム、係数変換装置、集積回路及び画像符号化方法
JP2010278668A (ja) * 2009-05-27 2010-12-09 Sony Corp 符号化装置及び符号化方法、並びに復号装置及び復号方法
US8410959B2 (en) * 2010-04-09 2013-04-02 Qualcomm, Incorporated Variable length codes for coding of video data

Also Published As

Publication number Publication date
US20110176605A1 (en) 2011-07-21
KR101501568B1 (ko) 2015-03-12
WO2010002148A3 (ko) 2010-04-22
KR20100004625A (ko) 2010-01-13
US9319710B2 (en) 2016-04-19

Similar Documents

Publication Publication Date Title
WO2010027182A2 (ko) 서브블록 내 임의 화소를 이용한 영상 부호화/복호화 방법 및 장치
WO2013070006A1 (ko) 스킵모드를 이용한 동영상 부호화 및 복호화 방법 및 장치
WO2013002549A2 (ko) 영상 부호화/복호화 방법 및 장치
WO2013109039A1 (ko) 가중치예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2012011672A2 (ko) 확장된 스킵모드를 이용한 영상 부호화/복호화 방법 및 장치
WO2010050706A2 (ko) 움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2013002550A2 (ko) 고속 코딩 단위(Coding Unit) 모드 결정을 통한 부호화/복호화 방법 및 장치
WO2012033344A2 (ko) 효과적인 화면내 예측모드 집합 선택을 이용한 영상 부호화/복호화 방법 및 장치
WO2013062193A1 (ko) 영상 복호화 방법 및 장치
WO2012077960A2 (ko) 임의의 형태의 블록을 이용한 인터예측에 의한 영상의 부호화/복호화 방법 및 장치
WO2010120113A2 (ko) 예측 모드 선택 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2013062196A1 (ko) 영상 복호화 장치
WO2011068331A2 (ko) 비디오 인코딩 장치 및 그 인코딩 방법, 비디오 디코딩 장치 및 그 디코딩 방법, 및 거기에 이용되는 방향적 인트라 예측방법
WO2011145836A2 (ko) 인트라 블록 및 인터 블록이 혼합된 코딩블록을 이용하는 영상 부호화/복호화 장치 및 그 방법
WO2011145819A2 (ko) 영상 부호화/복호화 장치 및 방법
WO2009157665A2 (ko) 블록 변환을 이용한 인트라 예측 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2011037337A2 (ko) 저주파수 성분을 고려한 영상 부호화/복호화 방법 및 장치
WO2009113791A2 (ko) 영상 부호화장치 및 영상 복호화장치
WO2012015275A2 (ko) 블록 분할예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2012093854A2 (ko) 코딩 유닛 단위 병렬 인트라예측을 이용한 부호화/복호화 방법 및 장치
WO2017043769A1 (ko) 부호화 장치, 복호화 장치 및 그 부호화 방법 및 복호화 방법
WO2010077071A2 (ko) 블록 모드 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2012077959A2 (ko) 노이즈성분을 위한 공간영역에서의 영상 부호화/복호화 방법 및 장치
WO2011108879A2 (ko) 영상 부호화 장치, 그 영상 부호화 방법, 영상 복호화 장치 및 그 영상 복호화 방법
WO2011111954A2 (ko) 움직임 벡터 해상도 조합을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치

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: 09773684

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13002582

Country of ref document: US

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 11/04/11)

122 Ep: pct application non-entry in european phase

Ref document number: 09773684

Country of ref document: EP

Kind code of ref document: A2