CA2480215A1 - Digital stream transcoder - Google Patents
Digital stream transcoder Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/115—Selection of the code volume for a coding unit prior to coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/48—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/547—Motion estimation performed in a transform domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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)
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)
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 |
-
2003
- 2003-03-26 US US10/397,658 patent/US7236521B2/en active Active
- 2003-03-27 CA CA2480215A patent/CA2480215C/en not_active Expired - Fee Related
- 2003-03-27 EP EP03716842A patent/EP1495638A4/en not_active Withdrawn
- 2003-03-27 WO PCT/US2003/009272 patent/WO2003084250A2/en active Application Filing
-
2007
- 2007-06-14 US US11/763,117 patent/US8155211B2/en active Active
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'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 |