CA2480215A1 - Digital stream transcoder - Google Patents

Digital stream transcoder Download PDF

Info

Publication number
CA2480215A1
CA2480215A1 CA002480215A CA2480215A CA2480215A1 CA 2480215 A1 CA2480215 A1 CA 2480215A1 CA 002480215 A CA002480215 A CA 002480215A CA 2480215 A CA2480215 A CA 2480215A CA 2480215 A1 CA2480215 A1 CA 2480215A1
Authority
CA
Canada
Prior art keywords
levels
run
level
transcoder
sets
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.)
Granted
Application number
CA002480215A
Other languages
French (fr)
Other versions
CA2480215C (en
Inventor
Joel Schoenblum
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.)
Scientific Atlanta LLC
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of CA2480215A1 publication Critical patent/CA2480215A1/en
Application granted granted Critical
Publication of CA2480215C publication Critical patent/CA2480215C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • 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/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • 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
    • 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/547Motion estimation performed in a transform domain
    • 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
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Abstract

A run-level domain transcoder (134) receives a stream of compressed frames (136) carried in a bit stream. The run-level domain transcoder decodes the b it stream into run-level pairs and selectively processes the compressed frames so as to, among other things, reduce the number of bits necessary to represent the compressed frames.

Claims (19)

1. A method a transcoding a digital stream, the method comprising the steps of:
decoding a compressed frame of data carried in a first bit stream such that the frame is represented by a first group of sets of run-level pairs;
processing the frame in a domain defined by run and level to generate a second group of sets of run-level pairs representing the frame; and encoding the frame using the second group of sets of run-level pairs in a second bit stream, wherein the number of bits of the frame in the second bit stream is less than the number of bits of the frame in the first bit stream.
2. The method of claim 1, wherein the step of processing the frame includes the step of:
buffering the frame in a memory, wherein the frame is buffered only in the run-level domain format.
3. The method of claim 1, wherein each set of run-level pairs of the first group represents a block of pixel information.
4. The method of claim 1, wherein each set of run-level pairs of the first group of sets of run-level pairs is defined by a set of quantized levels, which were quantized by a first quantization parameter Q1, and an associated set of runs, and the step of processing further includes the steps of:
decomposing the sets of run-level pairs of the first group of sets of run-level pairs into sets of quantized levels and sets of runs;
requantizing the levels in a given set of quantized levels of the first group using the first quantization parameter Q1 and a second quantization parameter Q2, wherein the values of the requantized levels are smaller than the values of the quantized levels; and calculating new run values for the set of runs associated with the given set of quantized levels using the requantized levels.
5. The method of claim 4, wherein multiple sets of quantized levels are requantized in parallel.
6. The method of claim 4, wherein the new run values are calculated for multiple sets of runs in parallel.
7. The method of claim 4, wherein the step of processing further includes the step of:
determining for each quantized level of the given set of quantized levels the scan position thereof, and wherein the new run values are calculated using at least the determined scan positions.
8. The method of claim 7, wherein the step of processing further includes the step of:
associating a scan-position array with the given set of quantized levels, wherein the elements of the scan-position array include the determined scan positions;
determining the number of requantized levels that were set to zero by requantization, which precede the first non-zero requantized level; and determining the number of requantized levels that were set to zero by requantization, which interpose non-zero requantized levels.
9. The method of claim 8, wherein the scan position value of the n th element of the scan-position array is determined using the equation i n = r n + i n-i + 1, for n>0, and i n = r n, for n=0, where r n is the value of the n th run in associated set of runs.
10. The method of claim 9, wherein the new run value for the n th run of the set of runs associated with the given set of quantized levels is calculated using the equation r~ = i n - i n-k(n)-1 -1, for k(n)<n, r~ = i n , for k(n)=n where k(n) is the number of levels that were set to zero interposing the nth requantized level and the first preceding requantized non-zero level, i(n) is the scan position of the n th level of the given set of levels, and r~ is the new run value for the n th level.
11. The method of claim 4, wherein a given set of run-level pairs of the second group of sets of run-level pairs is defined by the requantized levels of the given set of quantized levels and the new run values of the associated set of runs.
12. The method of claim 1, wherein each set of run-level pairs of the first group of sets of run-level pairs is defined by a set of levels and an associated set of runs, and the step of processing further includes the steps of:
decomposing the sets of run-level pairs of the first group of sets of run-level pairs into sets of levels and associated sets of runs;
selectively zeroing levels in a given set of levels of the first group ; and calculating new run values for the set of runs associated with the given set of levels.
13. The method of claim 12, wherein levels in multiple sets of levels are selectively zeroed in parallel.
14. The method of claim 12, wherein the new run values are calculated for multiple sets of runs in parallel.
15. The method of claim 12, wherein the step of processing further includes the step of:
determining for each level of the given set of levels the scan position thereof, and wherein the new run values are calculated using at least the determined scan positions.
16. The method of claim 15, wherein the step of processing further includes the step of:
associating a scan-position array with the given set of levels, wherein the elements of the scan-position array include the determined scan positions;
determining the number of zeroed levels that were set to zero, which precede the first non-zero level; and determining the number of levels that were set to zero, which interpose non-zero levels.
17. The method of claim 16, wherein the scan position value of the n th element of the scan-position array is determined using the equation i n = r n + i n-1 + 1, for n>0, and i n = r n, for n=0, where r n is the value of the n th run in associated set of runs.
18. The method of claim 17, wherein the new run value for the n th run of the set of runs associated with the given set of levels is calculated using the equation r~ = i n - i n-k(n)-1 -1, fork(n)<n, r~ = i n, for k(n)=n where k(n) is the number of levels that were set to zero interposing the nth level and the first preceding requantized non-zero level, i(n) is the scan position of the n th level of the given set of levels, and r~ is the new run value for the n th level.
19. The method of claim 12, wherein a given set of run-level pairs of the second group of sets of run-level pairs is defined by the levels of the given set of levels after selective zeroing and the new run values of the associated set of runs.

22. The method of claim 1, wherein the frame is a formatted according to an MPEG
protocol.

23. The method of claim 22, wherein the frame is a video-frame.

24. A transcoder in a digital network that receives a stream of frames of information carried in a first bit stream and transmits the stream of frames in a second bit stream, the transcoder comprising:
a memory having multiple sets of runs buffered therein, and multiple sets of levels buffered therein, wherein the multiple sets of runs and multiple sets of levels define multiple sets of run-level pairs of a given frame of the stream of frames;
a processor in communication with the memory, the processor adapted to process in the run-level domain the multiple sets of run-level pairs of the given frame using at least the sets of runs; and a vector length encoder in communication with the processor, the vector length encoder adapted to receive the processed multiple sets of run-level pairs of the inter-coded frame and encode the multiple sets of run-level pairs into bits for the second bit stream, wherein the bit size of the given frame in the second bit stream is smaller than the bit size of the given frame in the first bit stream,.

25. The transcoder of claim 24, further including:
a vector length decoder in communication with the memory, the vector length decoder receives the first bit stream and decodes the bits of the first bit stream into the multiple sets of runs and multiple sets of levels and provides sets of multiple sets of runs and multiple sets of level to the memory for buffering therein.

26. The transcoder of claim 24, wherein the processor selectively zeros levels in the multiple sets of run-level pairs.

27. The transcoder of claim 26, wherein for a given set run-level pairs of the multiple sets of run-level pairs the processor selectively zeros levels of the given set of run-level pairs using at least the amplitudes of the levels of the given set of run-level pairs.

28. The transcoder of claim 26, wherein for a given set run-level pairs of the multiple sets of run-level pairs the processor selectively zeros levels of the given set of run-level pairs using at least the frequencies of the levels of the given set of run-level pairs.

29. The transcoder of claim 26, wherein for a given set run-level pairs of the multiple sets of run-level pairs the processor selectively zeros levels of the given set of run-level pairs using a thresholding function that selectively zeros levels based upon both amplitude and frequency.

30. The transcoder of claim 25, wherein the processor requantizes levels in the multiple sets of run-level pairs.

31. The transcoder of claim 30, prior to requantization, a given set of levels of the multiple sets of levels is defined by a contiguous sequence of non-zero values and at most two zero values that bookend the contiguous sequence of non-zero values, and after requantization, the given set of levels includes more than two zero values.

32. The transcoder of claim 30, prior to requantization, a given set of levels of the multiple sets of levels is defined by a contiguous sequence of non-zero values and only one zero values, and after requantization, the given set of levels includes more than one zero values.

33. The transcoder of claim 30, prior to requantization, a given set of levels of the multiple sets of consists of a contiguous sequence of non-zero values, and after requantization, the given set of levels includes at least one zero value.

34. The transcoder of claim 30, wherein the memory includes multiple scan-position arrays that are associated with the multiple sets of run-level pairs, wherein for a given scan-position array the elements thereof index the scan positions of the levels of particular set of levels, wherein the particular set of levels partially defines a given set of run-level pairs that is associated with the given scan-position array.

35. The transcoder of claim 34, wherein the vector length decoder determines the scan position value of the n th element of the given scan-position array using the equation i n = r n + i n-1 + 1, for n>0, and i n = r n, for n=0, where r n is the value of the n th run in a particular set of runs, wherein the particular set of runs and the particular set of levels together define given set of run-level pairs.

36. The transcoder of claim 35, wherein the processor is adapted to determine the number of levels that were set to zero preceding the first non-zero requantized level of the particular set of levels and the number of levels that were set of zero interposing non-zero requantized levels.

37. The transcoder of claim 36, wherein the processor calculates the new run value for the n th run of the particular set of runs using the equation r~ = i n - i n-k(n)-1 - 1 , for k(n)<n, r~ = i n, for k(n)=n where k(n) is the number of levels that were set to zero interposing the nth requantized level and the first preceding requantized non-zero level, i(n) is the scan position of the n th level of the particular set of levels, and r~ is the new run value for the n th level.

38. The transcoder of claim 36, wherein the processor calculates the new run values in parallel.

39. The transcoder of claim 36, wherein the processor is a digital signal processor.

40. The transcoder of claim 36, wherein the processor is an ASIC.

41. The transcoder of claim 36, wherein the processor is an FPGA.

42. A method a transcoding a digital stream, the method comprising the steps of:
decoding a compressed frame of data carried in a first bit stream such that the frame is represented by a first group of sets of run-level pairs wherein each set of run-level pairs of the first group of sets of run-level pairs is defined by a set of and an associated set of runs;
decomposing the sets of run-level pairs of the first group of sets of run-level pairs into sets of levels and sets of runs;
processing the sets of levels and the sets of runs of the frame in a domain defined by run and level to generate a second group of sets of run-level pairs representing the frame; and encoding the frame using the second group of sets of run-level pairs in a second bit stream, wherein the number of bits of the frame in the second bit stream is less than the number of bits of the frame in the first bit stream.

43. The method of claim 42, wherein each set of levels is defined by a set of quantized levels, which were quantized by a first quantization parameter Q1, and the step of processing further includes the steps of:
(a) inverse-quantizing the quantized levels of a given set of quantized levels (1(Q1)) of the first group using the first quantization parameter Q1 to produce therefrom a set of unquantized levels (1) ;
(b) requantizing the unquantized levels of the set of unquantized levels (1) using a second quantization parameter Q2 to produce therefrom a set of requantized levels (1(Q2)); and (c) calculating new run values for the set of runs associated with the given set of quantized levels (1(Q1)).

44. The method of claim 43, wherein a given set of run-level pairs of the second group of sets of run-level pairs is defined by the set of requantized levels (1(Q2)) and the new run values of the set of runs associated with the given set of quantized levels (1(Q1)).

45. The method of claim 43, wherein the step of processing further includes the steps of:
(d) inverse-quantizing the requantized levels of the set of requantized levels (1(Q2)) using the second quantization parameter Q2 to produce therefrom a set of unquantized-requantized levels (1');
(e) determining a set of quantization differences (D) by subtracting the set of unquantized-requantized levels (1') from the set of set of unquantized levels (1);
(f) buffering the set of quantization differences;
(g) determining for each level of the given set of quantized levels (1(Q1)) the scan position thereof;
(h) associating a scan-position array with the set of quantization differences (D), wherein the elements of the scan-position array include the determined scan positions; and (i) buffering the scan-position array.

46. The method of claim 45, wherein the step of processing further includes the steps of:
(j) determining the number of levels, which have the value of zero and which precede the first non-zero level, in the set of requantized levels (1(Q2));
and (k) determining the number of levels, which have the value of zero and which interpose non-zero levels, in the set of requantized levels (1(Q2)).

47. The method of claim 46, wherein the scan position value of the n th element of the scan-position array is determined using the equation i n = r n + i n-1 + 1, for n>0, and i n = r n, for n=0, where r n is the value of the n th run in the associated set of runs.

48. The method of claim 47, wherein the new run value for the n th run of the set of runs associated with the given set of quantized levels is calculated using the equation r~ = i n -i n-k(n)-1 -1, for k(n)<n, r~ = i n , for k(n)=n where k(n) is the number of levels that were set to zero interposing the nth level and the first preceding requantized non-zero level, i(n) is the scan position of the n th level of the given set of levels, and r~ is the new run value for the n th level.

49. The method of claim 45, wherein steps (a) through (i) are repeated for each set of run-level pairs of the first group, and further including the steps of:
(j) decoding a second compressed frame of data carried in the first bit stream such that the second frame is represented by a third group of sets of run-level pairs, wherein each set of run-level pairs of the third group of sets of run-level pairs is defined by a set of quantized levels, which were quantized by a first quantization parameter Q3, and an associated set of runs;
(k) applying motion compensation to the sets of run-level pairs of the third group of sets of run-level pairs using at the sets of quantization differences (D) to produce therefrom a fourth group of sets of run-level pairs; and (l) encoding the fourth group of sets of run-level pairs in the second bit stream.

50. The method of claim 49, wherein step (k) further includes the steps of:
(m) inverse-quantizing the quantized levels of a given second set of quantized levels (1(Q3)) of the third group using the third quantization parameter Q3 to produce therefrom a second set of unquantized levels (1) ;
(n) extracting a particular set of quantization differences from the buffer using header information of the second frame;
(o) matrix multiplying the particular set of quantization differences with a particular DCT-domain motion compensation matrix (G) to produce therefrom a set of motion compensated quantization differences (T);
(p) adding the set of motion compensated quantization differences (T) to the second set of unquantized levels (1);

(q) requantizing the second set of unquantized levels (1) using a fourth quantization parameter Q4 to produce therefrom a second set of requantized levels (1 (Q4)); and (r) calculating new run values for the second set of runs associated with the given second set of quantized levels (1(Q3)).

51. The method of claim 50, wherein the new run values for the second set of runs associates with the second set of quantized levels (1(Q3)) and the second set of quantized levels define a particular set of run-level pairs of the fourth group of run-level pairs.

52. The method of claim 50, wherein the particular DCT-domain motion compensation matrix (G) is selected from a set of DCT-domain motion compensation matrices using a motion vector of the second frame.

53. The method of claim 50, wherein each element of the set of motion compensated quantization differences (T) is associated with a scan position, and wherein step (p) further includes the step of:
(s) determining for each level of a given second set of quantized levels (1(Q3)) the scan position thereof; and (t) opportunistically adding the elements of the set of motion compensated quantization differences (T) to the levels of the second set of unquantized levels (1), wherein only when the scan position that is associated with a particular element of the set of motion compensated quantization differences (T) matches the scan position of a particular level is the particular element of the set of motion compensated quantization differences (T) added to the particular level.

54. The method of claim 50, wherein step (k) further includes the steps of:
(s) determining whether the second frame is a reference frame;
(t) responsive to determining the second frame is a reference frame, inverse-quantizing the quantized levels of the second set of requantized levels (1(Q4)) using the fourth quantization parameter Q4 to produce therefrom a second set of unquantized-requantized levels (1' ) ;

(u) responsive to determining the second frame is a reference frame, updating a particular set of quantization differences (D) by adding the difference of the second set of unquantized levels (1) and the second set of unquantized-requantized levels (1' ) to the set of motion compensated quantization differences (T).

55. The method of claim 54, wherein each element of the set of motion compensated quantization differences (T) is associated with a scan position, and wherein step (u) further includes the step of:
(v) determining for each level of the second set of unquantized levels (1) the scan position thereof; and (w) opportunistically adding the difference of the levels of the second set of unquantized levels (1) and the second set of unquantized-requantized levels (1' ) to the set of motion compensated quantization differences (T), wherein only when the scan position that is associated with a particular element of the set of motion compensated quantization differences (T) matches the scan position associated with a particular level is the difference of the levels added to the particular element of the set of motion~
compensated quantization differences.

39~

56. A transcoder in a digital network that receives a stream of frames of information carried in a first bit stream and transmits the stream of frames in a second bit stream, wherein the bit size of the frames in the second bit stream is smaller than the bit size in the first bit stream, the transcoder comprising:
a memory having multiple sets of runs buffered therein, multiple sets of levels buffered therein, multiple sets of quantization differences buffered therein, wherein the multiple sets of runs and multiple sets of levels define multiple sets of run-level pairs of an inter-coded frame, and wherein each set of run-level pairs represents information for a block of pixels; and a processor in communication with the memory, the processor adapted to apply motion compensation to the sets of run-level pairs of the inter-coded frame using at least the sets of quantization differences.

57. The transcoder of claim 56, wherein the processor is further adapted to inverse quantize the multiple sets of levels to produce multiple sets of unquantized levels (1) using a quantization parameter (Q1).

58. The transcoder of claim 56, wherein the levels in a given set of levels are a sequence of non-zero numbers.

59. The transcoder of claim 56, wherein the levels in a given set of levels are a sequence of non-zero numbers.

60. The transcoder of claim 56, wherein the levels in a given set of levels consist of a sequence of non-zero numbers and at most one zero.

61. The transcoder of claim 56, wherein for a given set of run-level pairs the processor applies motion compensation by adding to a specific set of unquantized levels (1) a specific set of quantization differences (D).

62. The transcoder of claim 61, wherein the specific set of unquantized levels (1) was produced from the set of levels used in defining the given set of run-level pairs.

63. The transcoder of claim 61, wherein the specific set of quantization differences (D) is selected using at least one motion vector of the inter-coded frame.

64. The transcoder of claim 61, wherein the addition of the specific set of quantization differences (D) to the specific set of unquantized levels (1) involves matrix multiplying the specific set of unquantized levels (1) by a specific DCT-domain motion compensation matrix and adding the result to the specific set of unquantized levels (1).

65. The transcoder of claim 64, wherein the specific DCT-domain motion compensation matrix is one of a plurality of DCT-domain motion compensation matrices that is selected using at least a portion of a motion vector.

66. The transcoder of claim 64, wherein the specific DCT-domain motion compensation matrix is a sub-matrix that is made up of selected columns of the specific DCT-domain motion compensation matrix.

67. The transcoder of claim 66, wherein the specific set of quantization differences (D) has a scan-position array associated therewith, and wherein the columns used in the sub-matrix are determined using the scan-position array.

68. The transcoder of claim 61, wherein the sum of the motion compensated specific set of quantization differences (D) and the specific set of unquantized levels (1) are requantized by the processor using a second quantization parameter (Q2) to produce a set of requantized levels (1' (Q2)).

69. The transcoder of claim 68, wherein the processor is further adapted to determine a set of new run values (r') for the set of requantized levels (1' (Q2)) using at least the set of levels used in defining the given set of run-level pairs.

70. The transcoder of claim 69, further including:
a vector length encoder in communication with the processor, the vector length encoder adapted to receive the set of new run values (r') and the set of requantized levels (1' (Q2)) and a compressed output representing the set of new run values and the set of requantized levels (1'(Q2)).

71. The transcoder of claim 70, wherein the vector length encoder uses Huffman coding to compress the set of new run values and the set of requantized levels (1'(Q2)).

72. The transcoder of claim 68, wherein the processor is adapted to determine whether the inter-coded frame is a reference frame for a subsequent inter-coded frame in the stream of frames.

73. The transcoder of claim 72, wherein the processor is adapted to inverse quantize the set of requantized levels (1'(Q2)) using the second quantization parameter (Q2) to produce a set of unquantized-requantized levels (1'), and responsive to the processor determining the inter-coded frame is a reference frame, the processor inverse quantizes the set of requantized levels (1'(Q2)) using the second quantization parameter (Q2) to produce the set of unquantized-requantized levels (1').

74. The transcoder of claim 72, wherein the processor subtracts the set of unquantized-requantized levels (1') from the set of unquantized set of levels (1) to generate an instantaneous set of quantization differences for the given set of run-level pairs.

75. The transcoder of claim 72, wherein the given set of run-level pairs corresponds to a specific block of pixels in a frame, wherein a particular set of quantization differences is associated with the specific block of pixels, wherein the processor accumulates quantization differences for the particular set of quantization differences by motion compensating the specific set of quantization differences and adding the instantaneous set of quantization differences thereto.

76. The transcoder of claim 56, wherein the memory includes a group of scan-position arrays, wherein the multiple sets of levels are associated with the group of scan-position arrays, and wherein a given scan-position array, which is associated with a given set of levels, indexes the scan positions for the levels of the given set of levels.

77. The transcoder of claim 76, wherein the memory include a second group of scan-position arrays, wherein the multiple sets of quantization differences are associated with the second group of scan-position arrays, wherein a given set of quantization differences includes differences in unquantized levels and unquantized-requantized levels for a particular set of levels from a previous reference frame, wherein an unquantized level (1) is the result of inverse quantizing a first quantized level (1(Q1)), which was quantized using a first quantization parameter (Q1), wherein a unquantized-requantized level (1') is the result of requantizing the first unquantized level (1) using a second quantization parameter (Q2) to produce a second quantized level (1(Q2) and then inverse quantizing the second quantized level (1(Q2) using the second quantization parameter (Q2), and wherein a given scan-position array, which is associated with the given set of quantization differences, indexes the scan positions for the unquantized levels ( 1) of the particular set of levels.

78. The transcoder of claim 77, wherein the given set of quantization differences in the unquantized levels and unquantized-requantized levels for the particular set of levels are motion compensated, and the given set of quantization differences includes differences in unquantized levels and unquantized-requantized levels for a second particular set of levels from a second previous reference frame.

79. The transcoder of claim 77, wherein the processor applies motion compensation to the sets of run-level pairs of the inter-coded frame using at least the sets of quantization differences, the first group of scan-position arrays, and the second group of scan-position arrays.

80. The transcoder of claim 77, wherein the processor applies motion compensation to sets of run-level pairs of the inter-coded frame in parallel.

81. The transcoder of claim 80, wherein the processor is a programmable digital signal processor.

82. The transcoder of claim 80, wherein the processor is an ASIC.

83. The transcoder of claim 80, wherein the processor is an FPGA.
CA2480215A 2002-03-27 2003-03-27 Digital stream transcoder Expired - Fee Related CA2480215C (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US36806802P 2002-03-27 2002-03-27
US60/368,068 2002-03-27
US10/397,658 2003-03-26
US10/397,658 US7236521B2 (en) 2002-03-27 2003-03-26 Digital stream transcoder
PCT/US2003/009272 WO2003084250A2 (en) 2002-03-27 2003-03-27 Digital stream transcoder

Publications (2)

Publication Number Publication Date
CA2480215A1 true CA2480215A1 (en) 2003-10-09
CA2480215C CA2480215C (en) 2012-03-13

Family

ID=28678209

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2480215A Expired - Fee Related CA2480215C (en) 2002-03-27 2003-03-27 Digital stream transcoder

Country Status (4)

Country Link
US (2) US7236521B2 (en)
EP (1) EP1495638A4 (en)
CA (1) CA2480215C (en)
WO (1) WO2003084250A2 (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7190723B2 (en) * 2002-03-27 2007-03-13 Scientific-Atlanta, Inc. Digital stream transcoder with a hybrid-rate controller
US8434116B2 (en) 2004-12-01 2013-04-30 At&T Intellectual Property I, L.P. Device, system, and method for managing television tuners
US8199825B2 (en) * 2004-12-14 2012-06-12 Hewlett-Packard Development Company, L.P. Reducing the resolution of media data
US7908627B2 (en) 2005-06-22 2011-03-15 At&T Intellectual Property I, L.P. System and method to provide a unified video signal for diverse receiving platforms
US20070147496A1 (en) * 2005-12-23 2007-06-28 Bhaskar Sherigar Hardware implementation of programmable controls for inverse quantizing with a plurality of standards
US20080260024A1 (en) * 2006-10-03 2008-10-23 Matsushita Electric Industrial Co., Ltd. Method, device, integrated circuit, and transcoder for selectively reducing quantization levels
EP2229779A1 (en) * 2007-12-11 2010-09-22 Thomson Licensing Methods and systems for transcoding within the distribution chain
WO2009091387A1 (en) * 2008-01-17 2009-07-23 Thomson Licensing Reduced video flicker
BRPI0921986A2 (en) * 2008-11-25 2018-06-05 Thomson Licensing methods and apparatus for filtering out sparse matrix artifacts for video encoding and decoding
US9516375B2 (en) 2008-12-02 2016-12-06 Orckit Ip, Llc Edge optimized transrating system
US8374113B2 (en) 2010-06-03 2013-02-12 Cisco Technology, Inc. Distributed gateway for reliable multicast wireless video
US8811167B2 (en) 2011-02-24 2014-08-19 Cisco Technology, Inc. Shaping multimedia stream bit-rates to adapt to network conditions
US9693064B2 (en) * 2011-09-30 2017-06-27 Avago Technologies General Ip (Singapore) Pte. Ltd Video coding infrastructure using adaptive prediction complexity reduction
US9432704B2 (en) * 2011-11-06 2016-08-30 Akamai Technologies Inc. Segmented parallel encoding with frame-aware, variable-size chunking
US9041721B2 (en) * 2012-02-13 2015-05-26 Nvidia Corporation System, method, and computer program product for evaluating an integral utilizing a low discrepancy sequence and a block size

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5614952A (en) * 1994-10-11 1997-03-25 Hitachi America, Ltd. Digital video decoder for decoding digital high definition and/or digital standard definition television signals
US5666161A (en) * 1993-04-26 1997-09-09 Hitachi, Ltd. Method and apparatus for creating less amount of compressd image data from compressed still image data and system for transmitting compressed image data through transmission line
US5537440A (en) * 1994-01-07 1996-07-16 Motorola, Inc. Efficient transcoding device and method
DE4416967A1 (en) 1994-05-13 1995-11-16 Thomson Brandt Gmbh Method and device for transcoding bit streams with video data
SE515535C2 (en) 1996-10-25 2001-08-27 Ericsson Telefon Ab L M A transcoder
US6141447A (en) 1996-11-21 2000-10-31 C-Cube Microsystems, Inc. Compressed video transcoder
US5870146A (en) 1997-01-21 1999-02-09 Multilink, Incorporated Device and method for digital video transcoding
US6181711B1 (en) 1997-06-26 2001-01-30 Cisco Systems, Inc. System and method for transporting a compressed video and data bit stream over a communication channel
US6058143A (en) 1998-02-20 2000-05-02 Thomson Licensing S.A. Motion vector extrapolation for transcoding video sequences
US6570922B1 (en) 1998-11-24 2003-05-27 General Instrument Corporation Rate control for an MPEG transcoder without a priori knowledge of picture type
US6434197B1 (en) 1999-01-07 2002-08-13 General Instrument Corporation Multi-functional transcoder for compressed bit streams
US6400763B1 (en) 1999-02-18 2002-06-04 Hewlett-Packard Company Compression system which re-uses prior motion vectors
US6259741B1 (en) 1999-02-18 2001-07-10 General Instrument Corporation Method of architecture for converting MPEG-2 4:2:2-profile bitstreams into main-profile bitstreams
JP2000244872A (en) * 1999-02-19 2000-09-08 Toshiba Corp Transcoder device
EP1032212A3 (en) * 1999-02-23 2004-04-28 Matsushita Electric Industrial Co., Ltd. Transcoder, transcoding system, and recording medium
US6275536B1 (en) 1999-06-23 2001-08-14 General Instrument Corporation Implementation architectures of a multi-channel MPEG video transcoder using multiple programmable processors
US6441754B1 (en) 1999-08-17 2002-08-27 General Instrument Corporation Apparatus and methods for transcoder-based adaptive quantization
WO2001058167A1 (en) 2000-02-04 2001-08-09 Koninklijke Philips Electronics N.V. Quantization method for bit rate transcoding applications
AU777595B2 (en) * 2000-03-13 2004-10-21 Sony Corporation Content supplying apparatus and method, and recording medium
US6748020B1 (en) * 2000-10-25 2004-06-08 General Instrument Corporation Transcoder-multiplexer (transmux) software architecture
US7266148B2 (en) * 2001-01-05 2007-09-04 Lg Electronics Inc. Video transcoding apparatus
US6778607B2 (en) 2001-05-22 2004-08-17 Intel Corporation Method and apparatus for multi-rate encoding of video sequences
US6950463B2 (en) * 2001-06-13 2005-09-27 Microsoft Corporation Non-compensated transcoding of a video stream
KR100440952B1 (en) * 2001-08-04 2004-07-21 삼성전자주식회사 Bit rate changing method through change of codeword of compressed image bit stream and apparatus therefor
US20030043908A1 (en) * 2001-09-05 2003-03-06 Gao Cheng Wei Bandwidth scalable video transcoder
US6959116B2 (en) * 2001-09-18 2005-10-25 Emc Corporation Largest magnitude indices selection for (run, level) encoding of a block coded picture
US7400774B2 (en) * 2002-09-06 2008-07-15 The Regents Of The University Of California Encoding and decoding of digital data using cues derivable at a decoder
KR20050086705A (en) * 2002-11-22 2005-08-30 코닌클리케 필립스 일렉트로닉스 엔.브이. Transcoder for a variable length coded data stream

Also Published As

Publication number Publication date
EP1495638A4 (en) 2006-06-21
WO2003084250A3 (en) 2004-01-29
WO2003084250A2 (en) 2003-10-09
EP1495638A2 (en) 2005-01-12
US20070237219A1 (en) 2007-10-11
US20030202583A1 (en) 2003-10-30
CA2480215C (en) 2012-03-13
US8155211B2 (en) 2012-04-10
US7236521B2 (en) 2007-06-26

Similar Documents

Publication Publication Date Title
CA2419521C (en) System and method for using pattern vectors for video and image coding and decoding
JP3888597B2 (en) Motion compensation coding apparatus and motion compensation coding / decoding method
US7800520B2 (en) Method and system for entropy coding
CA2480215A1 (en) Digital stream transcoder
KR0162197B1 (en) Image data variable length coding and decoding method and device
RU2004133964A (en) METHOD AND DEVICE FOR INDICATING QUANTIZER&#39;S PARAMETERS IN VIDEO-CODING SYSTEM
US7660355B2 (en) Low complexity transcoding between video streams using different entropy coding
KR940008487A (en) Image Coder Using Adaptive Frame / Field Transform Coding
JPH09261078A (en) Data decoding method and its device
AU1605299A (en) Adaptive entropy coding in adaptive quantization framework for video signal coding systems and processes
JPS61242481A (en) Image data sorting for digital tv signal
US7646814B2 (en) Low complexity transcoding between videostreams using different entropy coding
US11475600B2 (en) Method and device for digital data compression
KR101314149B1 (en) Adaptive differential pulse code modulation encoding apparatus and decoding apparatus
JPH10285048A (en) Digital data encoding/decoding method and its device
US20140269896A1 (en) Multi-Frame Compression
EP3180862B1 (en) Method for coding pulse vectors using statistical properties
KR100338801B1 (en) digital data encoder/decoder method and apparatus
US20060072836A1 (en) Arbitrary quantization step number encoding and decoding apparatus and method
US5654704A (en) Video variable length code encoder with EOB insertion responsive to word length
JP2820096B2 (en) Encoding and decoding methods
KR100204468B1 (en) An image encoder and decoder
KR20060027831A (en) Method of encoding a signal into a bit stream
KR970009387A (en) Image Coding System Using Adaptive Vector Quantization
EP0419141A2 (en) Bit-rate reduction

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed

Effective date: 20180327