IP Library Granted Patent US 8,000,545
Granted Patent B2
US 8,000,545 · App. 11/962,624 · Granted Aug 16, 2011

Method for accessing image data and method for accessing YUV420 image data

Assignee: Sunplus Technology Co., Ltd.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,000,545
App. No.
11/962,624
Granted
Aug 16, 2011
Kind
B2
Abstract

A method for accessing image data and a method for accessing YUV420 image data are disclosed. The method for accessing image data uses two different approaches to a buffer for accessing the JPEG image data, so that the method can achieve instant JPEG image data compression with only one buffer.

Claims (735)

1. A method for accessing image data, the image data comprising a plurality of image data matrixes A, each said image data matrix A comprising m rows of image data sub-matrixes R, each said image data sub-matrix R comprising n columns of image units a, each said image unit a comprising p pixels, each said pixel being represented with a plurality of units of data, the plurality of units comprising a first unit, a second unit and a third unit, wherein data of the first unit of w rows of image data sub-matrixes require u rows, each row comprising n columns, of memory units b for storage, and data of the second unit and the third unit of the w rows of image data sub-matrixes requires v rows, each row comprising n columns of the memory units b for storage, wherein

A

=

[

R

1

R

2

R

m

]

=

[

a

1

,

1

a

1

,

2

a

1

,

n

a

2

,

1

a

2

,

2

a

2

,

n

a

m

,

1

a

m

,

2

a

m

,

n

]

,

wherein R i represents the i th row of image data sub-matrix R; a i,j represents the i th row and j th column image unit a, the method for accessing image data comprising the following steps:

(a) providing a matrix storage space B, for temporarily storing the image data matrixes A, comprising x rows of sub-matrix storage spaces S or z columns of sub-matrix storage spaces C, each said sub-matrix storage space S comprising y columns of the memory units b, each said sub-matrix storage space C comprising x rows of sub-matrix storage spaces T or h columns of sub-matrix storage spaces D, each said sub-matrix storage space T comprising h columns of memory units b, wherein x=m*(u+v)/w, and when n*(1+v/u)/x is an integer, h=n*(1+v/u)/x, and when n*(1+v/u)/x is not an integer, h=INT(n*(1+v/u)/x)+1, wherein the function INT( ) is adapted to obtain an integer portion of an input parameter, and when n/h is an integer, z=n/h, and when n/h is not an integer, z=INT(n/h)+1, and y=h*z, wherein

B

=

[

S

1

S

2

S

x

]

=

[

b

1

,

1

b

1

,

2

b

1

,

y

b

2

,

1

b

2

,

2

b

2

,

y

b

x

,

1

b

x

,

2

b

x

,

y

]

=

[

C

1

C

2

C

z

]

,

C

q

=

[

T

1

T

2

T

x

]

=

[

b

1

,

1

b

1

,

2

b

1

,

h

b

2

,

1

b

2

,

2

b

2

,

h

b

x

,

1

b

x

,

2

b

x

,

h

]

=

[

D

1

D

2

D

h

]

,

wherein S k represents the kth row of sub-matrix storage spaces S, b k,l represents the k th row and l th column memory unit b, C q represents the q th column of sub-matrix storage spaces C, and T k represents the k th row of sub-matrix storage spaces T;

(b) obtaining data of w rows of image data sub-matrixes R in the e th image data matrix A, and writing the data into (u+v) rows of the sub-matrix storage spaces S of the matrix storage space B;

(c) reading data of the e th image data matrix A from the sub-matrix storage space C of the matrix storage space B, wherein after data of the one column of sub-matrix storage spaces C are read out completely, data of another column of sub-matrix storage spaces C can be read;

(d) obtaining data of w rows of the image data sub-matrixes R in the (e+1) th image data matrix A, and writing the data into the sub-matrix storage spaces C of the matrix storage space B; and

(e) reading data of the (e+1) th image data matrix A from the (u+v) rows of sub-matrix storage space S of the matrix storage space B, wherein after data of the one group of (u+v) rows of sub-matrix storage space S are read out completely, data of another group of (u+v) rows of sub-matrix storage space S can be read,

wherein e, h, I, j, k, l, m, n, p, q, x, y, and z are natural numbers; w, u, v are rational numbers; and i≦m, j≦n, k≦x, l≦y, and q≦z.

2. The method for accessing image data according to claim 1 , wherein when writing data into the (u+v) rows of sub-matrix storage spaces S of the matrix storage space B, a sequence of writing the data into the memory unit b k,l increases from l=1 to l=n, and when reading the data from the sub-matrix storage spaces C of the matrix storage space B, the data are read from the sub-matrix storage spaces D.

3. The method for accessing image data according to claim 2 , wherein when writing data into the (u+v) rows of sub-matrix storage spaces S of the matrix storage space B, (u−v) rows of data of the first unit, and v rows of data of the second unit and the third unit are written starting from the k th row of sub-matrix storage spaces S k , wherein k increases from k=1 to k=f, and v rows of data of the first unit are written starting from the g th row of sub-matrix storage spaces S g , wherein g increases from g=f+1 to g=x, wherein f=x*u/(u+v), and f and g are both natural numbers.

4. The method for accessing image data according to claim 2 , wherein when writing data into the (u+v) rows of sub-matrix storage spaces S of the matrix storage space B, data of the first unit are written starting from the k th row of sub-matrix storage spaces S k , wherein k increases from k=1 to k=f, and data of the second unit and the third unit are written starting from the g th row of sub-matrix storage spaces S g , wherein g increases from g=f+1 to g=x, wherein f=x*u/(u+v), and f and g are both natural numbers.

5. The method for accessing image data according to claim 1 , wherein when writing the data into the sub-matrix storage spaces C of the matrix storage space B, a sequence of writing the data into the memory units b k,l first increases l from l=1 to l=h, then increases k, and when reading data from (u+v) rows of sub-matrix storage spaces S of the matrix storage space B, the data are read from corresponding memory units b k,l of the sub-matrix storage spaces C, and the reading sequence of the sub-matrix storage spaces C q increases q from q=1 to q=z.

6. The method for accessing image data according to claim 1 , wherein p=8, m=16, n=80, w=2, u=1, v=½, x=12 and y=80.

7. The method for accessing image data according to claim 1 , wherein the data of the first unit are Y image component data, the data of the second unit are U image component data, and the data of the third unit are V image component data.

8. A method for accessing YUV420 image data, the YUV420 image data comprising a plurality of image data matrixes A, each said image data matrix A comprising m rows of image data sub-matrixes R, each said image data sub-matrix R comprising n columns of image units a, each said image unit a comprising p pixels, each pixel being represented with a plurality of units of data, the plurality of units comprising a first unit, a second unit and a third unit, wherein data of the first unit of w rows of image data sub-matrixes require u rows of memory units b for storage, and data of the second unit and the third unit of the w rows of image data sub-matrixes requires v rows of the memory units b for storage, wherein

A

=

[

R

1

R

2

R

m

]

=

[

a

1

,

1

a

1

,

2

a

1

,

n

a

2

,

1

a

2

,

2

a

2

,

n

a

m

,

1

a

m

,

2

a

m

,

n

]

,

wherein R i represents the i th row of image data sub-matrix R; a i,j represents the i th row and j th column image unit a, the method for accessing YUV420 image data comprising the following steps:

(f) providing a matrix storage space B, for temporarily storing the image data matrixes A, the matrix storage space B comprising x rows of sub-matrix storage spaces S or z columns of sub-matrix storage spaces C, each said sub-matrix storage space S comprising y columns of the memory units b, each said sub-matrix storage space C comprising x rows of sub-matrix storage spaces T or h columns of sub-matrix storage spaces D, each said sub-matrix storage space T comprising h columns of memory units b, each said matrix storage space C further comprising Y rows of sub-matrix storage spaces E, and each said sub-matrix storage space E comprising three rows of sub-matrix storage spaces T, wherein x=m*(u+v)/w, and when n*(1+v/u)/x is an integer, h=n*(1+v/u)/x, and when n*(1+v/u)/x is not an integer, h=INT(n*(1+v/u)/x)+1, wherein the function INT( ) is adapted to obtain an integer portion of an input parameter, and when n/h is an integer, z=n/h, when n/h is not an integer, z=INT(n/h)+1, and y=h*z, when an arithmetical compliment of (2*h)/3Q is zero, then m 1 =Q and m 2 =Q; when an arithmetical compliment of (2*h)/3Q is one, then m 1 =Q and m 2 =Q+1; and when an arithmetical compliment of (2*h)/3Q is two, then m 1 =Q+1 and m=Q, wherein Q is a quotient of (2*h)/3, and when an arithmetical compliment of x/3 is zero, then Y=x/3, wherein

B

=

[

S

1

S

2

S

x

]

=

[

b

1

,

1

b

1

,

2

b

1

,

y

b

2

,

1

b

2

,

2

b

2

,

y

b

x

,

1

b

x

,

2

b

x

,

y

]

=

[

C

1

C

2

C

z

]

,

C

q

=

[

T

1

T

2

T

x

]

=

[

b

1

,

1

b

1

,

2

b

1

,

m

1

b

1

,

m

1

+

1

b

1

,

h

b

2

,

1

b

2

,

2

b

2

,

m

2

b

2

,

m

2

+

1

b

2

,

h

b

3

,

1

b

3

,

2

b

3

,

m

1

b

3

,

m

1

+

1

b

3

,

h

b

4

,

1

b

4

,

2

b

4

,

m

1

b

4

,

m

1

+

1

b

4

,

h

b

5

,

1

b

5

,

2

b

5

,

m

2

b

5

,

m

2

+

1

b

5

,

h

b

6

,

1

b

6

,

2

b

6

,

m

1

b

6

,

m

1

+

1

b

6

,

h

b

x

-

2

,

1

b

x

-

2

,

2

b

x

-

2

,

m

1

b

x

-

2

,

m

1

+

1

b

x

-

2

,

h

b

x

-

1

,

1

b

x

-

1

,

2

b

x

-

1

,

m

2

b

x

-

1

,

m

2

+

1

b

x

-

1

,

h

b

x

,

1

b

x

,

2

b

x

,

m

1

b

x

,

m

1

+

1

b

x

,

h

]

=

[

D

1

D

2

D

h

]

=

[

E

1

E

2

E

Y

]

,

E

k

=

[

T

k

-

1

T

k

T

k

+

1

]

,

wherein S k represents kth sub-matrix storage spaces S, b k,l represents the k th row and l th column memory unit b, C q represents the q th column of sub-matrix storage spaces C, D q represents the q th column of sub-matrix storage spaces D; T k represents the k th row of sub-matrix storage spaces T; and E k represents the k th row of sub-matrix storage spaces E;

(g) obtaining data of w rows of image data sub-matrixes R in the e th image data matrix A, and writing data into (u+v) rows of the sub-matrix storage spaces S of the matrix storage space B;

(h) reading data of the e th image data matrix A from the sub-matrix storage space C of the matrix storage space B, wherein after data of the one column of sub-matrix storage spaces C are read out completely, data of another column of sub-matrix storage spaces C can be read;

(i) obtaining data of w rows of image data sub-matrixes R in the (e+1) th image data matrix A, and writing the data into the sub-matrix storage spaces C of the matrix storage space B; and

(j) reading data of the (e+1) th image data matrix A from the sub-matrix storage space S of the matrix storage space B,

wherein e, h, I, j, k, l, m, n, p, q, x, y, z, m 1 , m 2 , and Q are natural numbers;

w, u, v are rational numbers; and i≦m, j≦n, k≦x, l≦y, and q≦z.

9. The method for accessing YUV420 image data according to claim 8 , wherein when writing data into the (u+v) rows of sub-matrix storage spaces S of the matrix storage space B, a sequence of writing the data into the memory unit bk,l increases from l=1 to l=n, and when reading the data from the sub-matrix storage spaces C of the matrix storage space B, the data are read from the sub-matrix storage spaces D.

10. The method for accessing YUV420 image data according to claim 9 , wherein when writing data into the (u+v) rows of sub-matrix storage spaces S of the matrix storage space B, (u−v) rows of data of the first unit, and v rows of data of the second unit and the third unit are written starting from the k th row of sub-matrix storage spaces S k , wherein k increases from k=1 to k=f, and v rows of data of the first unit are written starting from the g th row of sub-matrix storage spaces S g , wherein g increases from g=f+1 to g=x, wherein f=x*u/(u+v), and f and g are both natural numbers.

11. The method for accessing YUV420 image data according to claim 9 , wherein when writing data into the (u+v) rows of sub-matrix storage spaces S of the matrix storage space B, data of the first unit are written starting from the kth row of sub-matrix storage spaces S k , wherein k increases from k=1 to k=f, and data of the second unit and the third unit are written starting from the g th row of sub-matrix storage spaces S g , wherein g increases from g=f+1 to g=x, wherein f=x*u/(u+v), and f and g are both natural numbers.

12. The method for accessing YUV420 image data according to claim 8 , wherein when writing the data into the sub-matrix storage spaces C of the matrix storage space B, the (u−v) rows of data of the first unit and the v rows of data of the second and the third units are written into the memory units b k−1,l through b k−1,m1 of the sub-matrix storage space T k−1 , b k,l through b k,m2 of the sub-matrix storage space T k , and b k+1,l through b k+1,m1 of the sub-matrix storage space T k+1 of the sub-matrix storage space E.

13. The method for accessing YUV420 image data according to claim 12 , wherein when writing the data into the sub-matrix storage spaces C of the matrix storage space B, the v rows of data of the first unit are written into the memory units b k−1,m1+1 through b k−1,h of the sub-matrix storage space T k−1 , b k,m2+1 through b k,h of the sub-matrix storage space T k , and b k+1,m1+1 through b k+1,h of the sub-matrix storage space T k+1 of the sub-matrix storage space E.

14. The method for accessing YUV420 image data according to claim 8 , wherein p=8, m=16, n=80, w=2, u=1, v=½, x=12 and y=80.

15. The method for accessing YUV420 image data according to claim 14 , wherein when writing data into the (u+v) rows of sub-matrix storage spaces S of the matrix storage space B, the (u−v) rows of data of the first unit and the v rows of data of the second and the third units are written from the k th row of sub-matrix storage spaces S k , wherein k is 1, 3, 4, 6, 7, 9, 10, and 12, and the v rows of data of the first unit are written from the g th row of sub-matrix storage spaces S g , wherein g is 2, 5, 8, and 11.

16. The method for accessing YUV420 image data according to claim 8 , wherein the data of the first unit are Y image component data, the data of the second unit are U image component data, and the data of the third unit are V image component data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2007
From: TSAI, JIANN-JONG
To: SUNPLUS TECHNOLOGY CO., LTD.
Reel/Frame 020294/0356 →
Priority Claims (1)
TW 95148423 A · Dec 22, 2006 · national
Continuity (1)
Related Publication 20080240593A1 · Oct 2, 2008