IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
UP-0571503
(2004-06-30)
|
등록번호 |
US-7800780
(2010-10-11)
|
국제출원번호 |
PCT/US2004/021222
(2004-06-30)
|
§371/§102 date |
20070821
(20070821)
|
국제공개번호 |
WO06/011883
(2006-02-02)
|
발명자
/ 주소 |
|
출원인 / 주소 |
- Adobe Systems Incorporated
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
0 인용 특허 :
6 |
초록
▼
A method, apparatus, and computer program product implementing techniques to calculate the hedron that contains an input point. An input color value representing a color having n color components is received. A color lookup table organized as an n-dimensional lattice is received, where n is the numb
A method, apparatus, and computer program product implementing techniques to calculate the hedron that contains an input point. An input color value representing a color having n color components is received. A color lookup table organized as an n-dimensional lattice is received, where n is the number of input channels in the color lookup table, each entry in the color lookup table being a vertex in the lattice, the color lookup table having 2n adjacent lattice points that form an n-dimensional cube around the input value, and the color lookup table defining an output color value at each lattice point. n+1 vertices from the 2n vertices of the n-dimensional cube are calculated, the n+1 vertices defining an enclosing hedron that encloses the input value, where the instructions to calculate n+1 vertices perform no branching operations. The enclosing hedron is used to calculate an output value from the input value.
대표청구항
▼
What is claimed is: 1. A computer program product, tangibly embodied in a machine-readable storage device, comprising instructions operable to cause data processing apparatus to: receive an input value representing a color having n color components; receive a color lookup table organized as an n-di
What is claimed is: 1. A computer program product, tangibly embodied in a machine-readable storage device, comprising instructions operable to cause data processing apparatus to: receive an input value representing a color having n color components; receive a color lookup table organized as an n-dimensional lattice, where n is the number of input channels in the color lookup table, each entry in the color lookup table being a vertex in the lattice, the color lookup table having 2n adjacent lattice points that form an n-dimensional cube around the input value, the color lookup table defining an output color value at each lattice point, and the color lookup table having a spacing between lattice points for each dimension, the spacing for the k-th dimension being the distance between entries in the color lookup table that are adjacent lattice points in the k-th dimension and have identical lattice coordinates in all other dimensions; use the spacings to calculate the addresses in the color lookup table of n vertices that define an enclosing hedron that encloses the input value, the other vertex that defines the enclosing hedron being the cube vertex with the lowest values in all input channels, which is called the starting vertex, each vertex of the enclosing hedron being a vertex of the n-dimensional cube in the color lookup table; and use the enclosing hedron to calculate an output value from the input value. 2. The computer program product of claim 1, wherein: spacing[k] is the spacing between lattice points for the k-th dimension; base is the starting vertex; v[i] is the value for the input channel i; the function (a<b) returns the value 1 if true, and zero otherwise; and the address of each vertex i is calculated to satisfy the equations address 0 [ i ] = base + ( ∑ k = 1 i - 1 ( v [ i ] ≤ v [ k ] ) × spacing [ k ] ) + ( ∑ k = i + 1 n ( v [ i ] < v [ k ] ) × spacing [ k ] ) address 1 [ i ] = address 0 [ i ] + spacing [ i ] . 3. The computer program product of claim 2, wherein: base[j] represents the value of output channel j at the address of the starting point; (address[i])[j] represents the value of output channel j at the address value address[i]; output[j] is the output value for channel j; and the output value for each input value is calculated to satisfy the equation output [ j ] = base [ j ] + ( ∑ i = 1 n v [ i ] × ( ( address 1 [ i ] ) [ j ] - ( address 0 [ i ] ) [ j ] ) ) . 4. The computer program product of claim 1, wherein: the vertex addresses are calculated by utilizing the offsets, such that address[i]=base+offset[i]. 5. The computer program product of claim 4, wherein: spacing[k] is the spacing between lattice points for the k-th dimension; v[i] is the value for the input channel i; the function (a<b) returns the value 1 if true, and zero otherwise; and the offset of each vertex i is calculated to satisfy the equations offset 0 [ i ] = ( ∑ k = 1 i - 1 ( v [ i ] ≤ v [ k ] ) × spacing [ k ] ) + ( ∑ k = i + 1 n ( v [ i ] < v [ k ] ) × spacing [ k ] ) . 6. The computer program product of claim 5, wherein: base[j] represents the value of output channel j at the address of the starting point; (address[i])[j] represents the value of output channel j at the address value address[i]; output[j] is the output value for channel j; and the output value for each input value is calculated to satisfy the equation output [ j ] = base [ j ] + ( ∑ i = 1 n v [ i ] × ( ( base [ i ] + offset 1 [ i ] ) [ j ] - ( base [ i ] + offset 0 [ i ] ) [ j ] ) ) . 7. The computer program product of claim 1, wherein the addresses of the vertices are calculated one input channel at a time. 8. The computer program product of claim 1, wherein the addresses of the vertices are calculated in parallel. 9. The computer program product of claim 1, wherein the number of color components n is any integer value greater than or equal to 2. 10. The computer program product of claim 1, wherein the order of the input channel values is not sorted. 11. A computer program product, tangibly embodied in machine-readable storage device, comprising instructions operable to cause data processing apparatus to: receive an input color value representing a color having n color components; receive a color lookup table organized as an n-dimensional lattice, where n is the number of input channels in the color lookup table, each entry in the color lookup table being a vertex in the lattice, the color lookup table having 2n adjacent lattice points that form an n-dimensional cube around the input value, the color lookup table defining an output color value at each lattice point; calculate n+1 vertices from the 2n vertices of the n-dimensional cube, the n+1 vertices defining an enclosing hedron that encloses the input value, wherein the instructions to calculate n+1 vertices perform no branching operations; and use the enclosing hedron to calculate an output value from the input value. 12. The computer program product of claim 11, wherein the addresses of the vertices are calculated one input channel at a time. 13. The computer program product of claim 11, wherein the addresses of the vertices are calculated in parallel. 14. The computer program product of claim 11, wherein the number of color components n is any value greater than or equal to 2. 15. The computer program product of claim 11, wherein the order of the input channel values is not sorted. 16. A computer program product, tangibly embodied in a machine-readable storage device, comprising instructions operable to cause data processing apparatus to: receive an input value representing a color having n color components; receive a color lookup table organized as an n-dimensional lattice, where n is the number of input channels in the color lookup table, each entry in the color lookup table being a vertex in the lattice, the color lookup table having 2n adjacent lattice points that form an n-dimensional cube around the input value, the color lookup table defining an output color value at each lattice point; and calculate addresses of the hedral vertices for all channels i, where the addresses of the hedral vertices define a hedron that encloses the input value, and the address of the vertex to use for value 1 of channel i is determined by calculating the address of the vertex to use for value 0 of channel i and adding the difference in address space between the vertices for channel i. 17. The computer program product of claim 16, further comprising of instructions operable to cause data processing apparatus to: interpolate output color coordinates for an output value corresponding to the input value by utilizing the addresses of the hedral vertices of the enclosing hedron. 18. An apparatus comprising: means for receiving an input value representing a color having n color components; means for receiving a color lookup table organized as an n-dimensional lattice, where n is the number of input channels in the color lookup table, each entry in the color lookup table being a vertex in the lattice, the color lookup table having 2n adjacent lattice points that form an n-dimensional cube around the input value, the color lookup table defining an output color value at each lattice point, and the color lookup table having a spacing between lattice points for each dimension, the spacing for the k-th dimension being the distance between entries in the color lookup table that are adjacent lattice points in the k-th dimension and have identical lattice coordinates in all other dimensions; means for using the spacings to calculate the addresses in the color lookup table of n vertices that define an enclosing hedron that encloses the input value, the other vertex that defines the enclosing hedron being the cube vertex with the lowest values in all input channels, each vertex of the enclosing hedron being a vertex of the n-dimensional cube in the color lookup table; and means for using the enclosing hedron to calculate an output value from the input value. 19. The apparatus of claim 18, wherein: spacing[k] is the spacing between lattice points for the k-th dimension; base is the starting vertex; v[i] is the value for the input channel i; the function (a<b) returns the value 1 if true, and zero otherwise; and the address of each vertex i is calculated to satisfy the equations address 0 [ i ] = base + ( ∑ k = 1 i - 1 ( v [ i ] ≤ v [ k ] ) × spacing [ k ] ) + ( ∑ k = i + 1 n ( v [ i ] < v [ k ] ) × spacing [ k ] ) address 1 [ i ] = address 0 [ i ] + spacing [ i ] . 20. The apparatus of claim 19, wherein: base[j] represents the value of output channel j at the address of the starting point; (address0[i])[j] represents the value of output channel j at the address of the vertice address0[i]; (address1[i])[j] represents the value of output channel j at the address of the vertice address1[i]; output[j] is the output value for channel j; and the output value for each input value is calculated to satisfy the equation output [ j ] = base [ j ] + ( ∑ i = 1 n v [ i ] × ( ( address 1 [ i ] ) [ j ] - ( address 0 [ i ] ) [ j ] ) ) . 21. The apparatus of claim 18, wherein: the vertex addresses are calculated by utilizing the offsets, such that address[i]=base+offset[i]. 22. The apparatus of claim 21, wherein: spacing[k] is the spacing between lattice points for the k-th dimension; v[i] is the value for the input channel i; the function (a<b) returns the value 1 if true, and zero otherwise; and the offset of each vertex i is calculated to satisfy the equations offset 0 [ i ] = ( ∑ k = 1 i - 1 ( v [ i ] ≤ v [ k ] ) × spacing [ k ] ) + ( ∑ k = i + 1 n ( v [ i ] < v [ k ] ) × spacing [ k ] ) . 23. The apparatus of claim 22, wherein: base[j] represents the value of output channel j at the address of the starting point; (address[i])[j] represents the value of output channel j at the address value address[i]; output[j] is the output value for channel j; and the output value for each input value is calculated to satisfy the equation output [ j ] = base [ j ] + ( ∑ i = 1 n v [ i ] × ( ( base [ i ] + offset 1 [ i ] ) [ j ] - ( base [ i ] + offset 0 [ i ] ) [ j ] ) ) . 24. The apparatus of claim 18, wherein the addresses of the vertices are calculated one input channel at a time. 25. The apparatus of claim 18, wherein the addresses of the vertices are calculated in parallel. 26. The apparatus of claim 18, wherein the number of color components n is any integer value greater than or equal to 2. 27. The apparatus of claim 18, wherein the order of the input channel values is not sorted. 28. An apparatus comprising: means for receiving an input color value representing a color having n color components; means for receiving a color lookup table organized as an n-dimensional lattice, where n is the number of input channels in the color lookup table, each entry in the color lookup table being a vertex in the lattice, the color lookup table having 2n adjacent lattice points that form an n-dimensional cube around the input value, the color lookup table defining an output color value at each lattice point; means for calculating n+1 vertices from the 2n vertices of the n-dimensional cube, the n+1 vertices defining an enclosing hedron that encloses the input value, wherein the instructions to calculate n+1 vertices perform no branching operations; and means for using the enclosing hedron to calculate an output value from the input value. 29. The apparatus of claim 28, wherein the addresses of the vertices are calculated one input channel at a time. 30. The apparatus of claim 28, wherein the addresses of the vertices are calculated in parallel. 31. The apparatus of claim 28, wherein the number of color components n is any value greater than or equal to 2. 32. The apparatus of claim 28, wherein the order of the input channel values is not sorted. 33. An apparatus comprising: means for receiving an input value representing a color having n color components; means for receiving a color lookup table organized as an n-dimensional lattice, where n is the number of input channels in the color lookup table, each entry in the color lookup table being a vertex in the lattice, the color lookup table having 2n adjacent lattice points that form an n-dimensional cube around the input value, the color lookup table defining an output color value at each lattice point; and means for calculating addresses of the hedral vertices for all channels i, where the addresses of the hedral vertices define a hedron that encloses the input value, and the address of the vertex to use for value 1 of channel i is determined by calculating the address of the vertex to use for value 0 of channel i and adding the difference in address space between the vertices for channel i. 34. The apparatus of claim 33, further comprising: means for interpolating output color coordinates for an output value corresponding to the input value by utilizing the addresses of the hedral vertices of the enclosing hedron.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.