1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bsi bs en 61966 12 1 2011

42 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Multimedia Systems And Equipment — Colour Measurement And Management Part 12-1: Metadata For Identification Of Colour Gamut (Gamut ID)
Trường học British Standards Institution
Chuyên ngành Standards Publication
Thể loại standards publication
Năm xuất bản 2011
Thành phố Brussels
Định dạng
Số trang 42
Dung lượng 1,64 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • 7.1 General (12)
  • 7.2 Gamut geometry (13)
  • 7.3 Header of description of gamut geometry (14)
  • 7.4 Gamut instances (16)
  • 7.5 Gamut hulls (18)
  • 7.6 Gamut component (19)
    • 7.6.1 General (19)
    • 7.6.2 Packing of face indices (19)
  • 7.7 Faces (20)
    • 7.7.1 General (20)
    • 7.7.2 Packing of vertex indices (21)
  • 7.8 Vertices (21)
    • 7.8.1 General (21)
    • 7.8.2 Packing of colour space coordinates for vertices (22)
  • 8.1 General (23)
  • 8.2 Medium profile (23)
  • 8.3 Simple profile (23)

Nội dung

IEC 61966-2-4 2006 Multimedia systems and equipment - Colour measurement and management - Part 2-4: Colour management - Extended-gamut YCC colour space for video applications - xvYCC I

General

In the header of Gamut ID metadata, if ID_PROFILE equals 0b00, the description of gamut geometry shall correspond to the full profile.

Gamut geometry

The description of gamut geometry of the Gamut ID metadata describes the boundary of the actual colour gamut The description of gamut geometry starts at byte number ID_G

The description of gamut geometry contains five sets of different elements: ã gamut instances, ã gamut hulls, ã gamut components, ã faces, and ã vertices

The logical structure of the Gamut ID description of colour gamut is shown in Figure 1

GC0 GC1 GC2 GC3 GC4

Figure 1 – Logical structure of the description of gamut geometry (full profile)

Gamut geometry encompasses one or more descriptions of gamut boundaries, each representing the limits of a specific color gamut A Gamut Boundary Description (GBD) consists of vertices and triangular faces, with each face defined by the indices of three vertices.

A gamut component is a group of connex triangular faces A GC is a part of a boundary description A GC is defined by one ore more indices of faces

A gamut hull is a group of connex gamut components building all together a closed surface This surface is the boundary description of a connex volume in CIEXYZ colour space Each

GH is defined by one or more indices of GCs A GH may refer to a single GC In this case the

A GC is defined as a closed surface boundary on its own, while a GH can represent a collection of GCs Together, these GCs form a comprehensive closed surface boundary that describes a connected volume.

A gamut instance (GI) consists of multiple gamut hulls that collectively form a valid GBD of the actual color gamut It can be defined by one or more indices of gamut hulls When a GI refers to a single gamut hull (GH), that GH independently represents the actual color gamut Conversely, if a GI encompasses a list of GHs, the combined volumes of these GHs collectively describe the actual color gamut.

Gamut geometry encompasses multiple gamut instances, each represented as a complete and valid Gamut Boundary Description (GBD) Gamut instances (GIs) can vary based on several characteristics: the level of detail, where a higher level corresponds to an increased number of faces; the allowance of non-convex shapes; and the percentage of gamut colors, with each GI potentially containing different proportions of the actual color gamut.

A Gamut Indicator (GI) can include optional features such as inverted gamut components and indications of gamut ridges Inverted gamut components are utilized when a Gamut Component (GC) is referenced by one or more Gamut Handles (GH) with an inverted surface orientation Additionally, vertices may be designated as gamut ridges if they align with areas on the actual color gamut surface that exhibit non-continuous curvature.

The description of gamut geometry is summarized in Table 4

Table 4 – Description of gamut geometry

ID_G Header of description of gamut geometry

Header of description of gamut geometry

The header of the description of gamut geometry follows the header of Gamut ID metadata and is defined according to Table 5

Table 5 – Header of description of gamut geometry

Size bytes Symbol Description Values decimal ID_G 2 ID_GI Byte # of start of gamut instances [0;0hFFFF]

ID_G + 02 2 ID_GH Byte # of start of gamut hulls [0;0hFFFF] ID_G + 04 2 ID_GC Byte # of start of gamut components

ID_G + 06 2 ID_F Byte # of start of faces [0;0hFFFF] ID_G + 08 2 ID_V Byte # of start of vertices [0;0hFFFF]

ID_G + 0C 1 K Number of levels of detail 1 ≤ K ≤ 255

Maximum number of faces in lowest level of detail

(F see Table 6) ID_G + 0F 1 P Number of levels of colour population

ID_G + 10 1 2Q 0 Double of percentages of gamut colours [0;200]

ID_G + 11 1 2Q 1 Double of percentages of gamut colours [0;200]

ID_G + 10 + P-1 1 2Q P - 1 Double of percentages of gamut colours [0;200]

ID_G + 10 + P 1 X Convex or non-convex shape

X=1: all GIs and all GHs shall be convex

X=2: GIs and GHs may be convex or non-convex

16 bit integer or address values are encoded into 2 bytes bytes using big endian, i.e with the MSBs in the first byte and the LSBs in the second byte

The identifiers ID_GI, ID_GH, ID_GC, ID_F, and ID_V indicate the byte offsets from the start of the Gamut ID metadata to the respective beginnings of gamut instances, gamut hulls, gamut components, faces, and vertices data.

K indicates the number of levels of details The Gamut ID metadata contains at least K GIs If

K = 1 there are no different level of details Each GI is marked individually with a level of detail (0,1,…,K − 1), see Table 7

F MAX shall indicate the maximum number of faces for a GI having the lowest level of detail

(level 0) See Table 7 for definition of level of details See Table 13 for faces definition

P represents the number of alternative Gamut Indices (GIs) that are filled with varying percentages of colors from the actual color gamut When P is greater than 1, it indicates the existence of multiple GIs that describe the same actual color gamut, each featuring different color percentages.

ID metadata contains at least P GIs Each GI is marked individually with a population level

The percentages \( Q_0, \ldots, Q_{P-1} \) represent the color distribution associated with population levels ranging from 0 to \( P-1 \), with their doubles \( 2Q_0, \ldots, 2Q_{P-1} \) indicating the corresponding values These percentages provide an approximate measure of the proportion of colors, from 0 to 100, within the actual color gamut contained in the volume defined by a given GI at each population level By definition, the percentages \( Q_0, \ldots, Q_{P-1} \) can be specified in increments of 0.5 points.

The Gamut ID is defined by a variable X, which indicates the type of shapes used: X = 1 signifies that only convex shapes are utilized, while X = 2 allows for both convex and non-convex shapes In the case of X = 1, each Gamut Identifier (GI) and Gamut Header (GH) corresponds exclusively to convex shapes Conversely, when X = 2, GIs are paired, with the first GI labeled as "convex" referencing only convex GHs, and the second GI, labeled as "non-convex," potentially referencing non-convex shapes The Gamut ID metadata must include at least X GIs.

Gamut instances

Gamut geometry includes one or more descriptions of the actual color gamut boundaries, with each individual description referred to as a gamut instance (GI) Users of Gamut ID metadata can utilize any combination of these GIs, which are defined by a list starting from byte number ID_GI, as outlined in Table 6 Although the order of the GIs in the list is arbitrary, it remains fixed.

Byte # hex Size bytes Symbol Description Values

ID_GI 1 I Total number of gamut

ID_GI + 01 6+H 0 Definition of GI no 0, see Table 7

Definition of GI no 1 see Table 7

Definition of GI no I-1 see Table 7

I is the number of GIs and shall be equal to the product of X, P and K as defined in Table 5 The ith GI, i = 0…I − 1, is defined according to Table 7

Size bytes Symbol Description Values

00 1 K i Level of detail of this GI 0£K i £K-1

01 2 F i GI Number of faces used by this GI F 2 F MAX i i GI £ (F MAX see Table 5)

03 1 X i GI This GI defines a convex shape (X i GI = 1) or may define a non-convex shape (X i GI =2)

04 1 P i Level of colour population of this GI 0£P i £P-1

H i Number of gamut hulls referenced by this GI 1 ≤ H i ≤ H

Shall be valid indices of GH

The level of detail for the ith geometric instance (GI) is denoted as \( K_i \), with the lowest level of detail being \( K_i = 0 \) If \( K_i \) exceeds the level of detail \( K_j \) of a j-th GI of the same type (where \( P_i = P_j \) and \( X_i = X_j \)), it indicates that the ith GI possesses a more precise geometric description compared to the j-th GI.

The number of faces used by the ith GI, denoted as \$F_i\$, must align with the faces referenced by the corresponding gamut components and hulls Specifically, the quantity \$F_i^{GI}\$ should not exceed \$2 K_i F_{MAX}\$, where \$F_{MAX}\$ is detailed in Table 6.

The indicator \( X_i \) determines whether a shape is convex or non-convex When \( X_i \) GI equals 1, the \( i \)th GI indicates a convex shape, and each GH associated with this GI also defines a convex shape Conversely, if \( X_i \) GI equals 2, the \( i \)th GI may represent either a convex or a non-convex shape, with each referenced GH potentially exhibiting similar characteristics.

GI may define a convex or a non-convex shape by itself

P i is the population level of the ith GI The ith GI shall contain approximately

A GI with population level \( P_i \) will encompass at least all the colors found in another GI with population level \( P_j \) if \( i \) is greater than \( j \) Different GIs with the same population level will contain approximately the same percentage of colors from the actual color gamut, which is represented as \( Q \) percent.

The variable \( H_i \) represents the number of gamut hulls associated with the \( i \)-th graphical interface (GI) When a single gamut hull is referenced by the \( i \)-th GI, \( H_i = 1 \), indicating that this hull defines the actual color gamut Conversely, if the \( i \)-th GI references multiple gamut hulls, \( H_i > 1 \), and the combined volumes of all referenced gamut hulls collectively represent the actual color gamut.

The H i indices of GHs have each one byte.

Gamut hulls

Gamut geometry includes one or more gamut hulls (GHs), which serve as closed surface boundaries that define a connected, closed volume in color space Each GH can be referenced by multiple gamut identifiers (GIs), and a GI may correspond to several GHs A GH can represent the entire color gamut or just a portion of it The definition of GHs is based on a list starting from the byte number ID_GH, as outlined in Table 8, with the order of the list being arbitrary yet fixed.

H is the total number of GHs contained in the Gamut ID metadata The hth GH, h = 0…H − 1, is defined according to Table 9

Byte # hex Size bytes Symbol Description Values

ID_GH 1 H Total number of gamut hulls

ID_GH + 01 3+C 0 + C 0 Definition of GH no 0 see Table 9

3+C 1 + C 1 Definition of GH no 1 see Table 9

3+C H - 1 + C H - 1 Definition of GH no H − 1 see Table 9

Size bytes Symbol Description Values

X h Indication whether this GH defines a convex shape or any shape (convex or non- convex)

X h =2: convex or non-convex shape

C h Number referenced gamut components that are used non-inverted by this GH

C h Number of referenced gamut components that are used inverted by this GH

03 C h Indices of referenced gamut components [0;C − 1] shall be valid indices of GCs

03 + C h C h Indices of referenced gamut components used in an inverted manner

The term \$C_h + C_h\$ represents the total number of gamut components associated with the hth GH When a single GC is referenced by the hth GH, it follows that \$C_h + C_h = 1\$, indicating that the GC independently defines the closed surface.

In a hth GH that references multiple GCs, the sum of the coefficients \(C_h\) exceeds 1, indicating that all referenced GCs collectively form the closed surface of the GH When a GC is utilized in an inverted manner, the surface normals of its faces are applied in the opposite direction For detailed information on referenced faces, refer to Table 10, and for surface normals, see section 7.7.

Gamut component

General

Gamut geometry consists of one or more components that define connected pieces of a boundary description of a surface in the CIEXYZ color space Each Gamut Component (GC) can be referenced by multiple Gamut Histograms (GHs), and a GH may reference several GCs A GC can represent the boundary description of a closed surface in 3D color space or a segment of it The GCs are specified by a list starting from byte number ID_GC, as outlined in Table 10, with the order of the list being arbitrary yet fixed.

Table 10 – Definition of gamut components

Byte # hex Size bytes Symbol Description Values

ID_GC 1 C Total number of gamut components

ID_GC + 01 2 + é F 0 ld ( F ) / 8 ù Definition of

The variable C represents the total number of GCs found in the Gamut ID metadata In Table 11, the operation ộ ự ã rounds up to the nearest integer when the operand is not an integer, while ld( ) ã denotes the logarithm with a base of 2.

The cth GC, c = 0…C − 1, is defined according to Table 11

Size bytes Symbol Description Values

F c Number faces referenced by this GC

02 é F c é ld (F ) ù / 8 ù Indices of referenced faces [0;F − 1] shall be valid indices of faces, F see Table 13

Packing of face indices

The face indices are efficiently packed into bytes, with each index requiring \$\text{ld}(F)\$ bits This packing is organized by geometry class (GC), ensuring that the first face index of each GC begins at the start of a byte.

An example of packing is given for the case of C = 2 gamut components each using

0 =F F faces from a total of F = 8 faces Each GC takes é N×ld ( F )×F c / 8 ù = é ( é ù ld 8 4 ) / 8 ù = 2 bytes for the indices of the faces The definition of the GCs requires in total é ( ) / 8 ù 5 é ( é ( ) 8 ù 4 ) / 8 ù 5 2 é 12 / 8 ù 9

C bytes Packing is as shown in

Table 12 – Example for packing of gamut components

Byte # hex Size Value binary

ID_GC + 03 1 1 index 2 index 3 index MSBs

ID_GC + 07 1 1 index 2 index 3 index MSBs

LSB are the least significant bits;

MSB are the most significant bits.

Faces

General

The faces are defined by a list of faces from byte number ID_F on according to Table 11 The order in the list is arbitrary but fixed

Byte # hex Size Symbol Description Values

ID_F 2 F Total number of faces 6 ≤ F < 65 535

ID_F+02 é 3 F é ld ( ) V ù / 8 ù 3F indices of vertices [0;V − 1]

Must be a valid indices of vertices

The total number of faces, denoted as F, in the description of gamut geometry must be at least 6 or equal to zero (refer to Clause 8) Each face is represented by three vertex indices, resulting in a total of 3F indices.

If a sample face is defined by three indices index of three vertices V 0 , V 1 , V 2 , respectively, in CIEXYZ space, the surface normal of the face is defined as follows:

= - n where x is the vector cross product: ã is the vector length operator, and n is the surface normal.

Packing of vertex indices

The indices of the vertices of all faces are packed into bytes Each index of a face takes

( ) V ld bits, for V see Table 15

An example of packing is given for the case of F =6 faces and V =5 vertices Each index of a vertex takes ld ( ) V =3 bits All indices take é 3 F é ld ( ) V ù / 8 ù = 7 bytes

Packing is as shown in Table 14

Table 14 – Example for packing of faces

Vertices

General

The vertices are defined by a list of vertices from byte number ID_V on, see Table 15

The order in the list is arbitrary but fixed

Byte # hex Size Symbol Description Values

ID_V 2 V Total number of vertices 5 ≤ V <

ID_V+02 2 R Number of vertices belonging to gamut ridges

ID_V+04 é 3VN / 8 ù 3V encoded colour space coordinates defining V vertices

ID_V+04+ é 3VN / 8 ù é R é ld ( ) V ù /8 ù R indices of vertices belonging to gamut ridges

Must be a valid indices of vertices

Hereby is ộ ự ã the operation that rounds to the next upper integer V is the total number of vertices of the description of gamut geometry

Gamut ridges are specific vertices within the overall set of vertices, representing locations on the surface of the actual color gamut that exhibit non-continuous surface curvature, characterized by features like ridges or summits.

Packing of colour space coordinates for vertices

In 8-bit encoding, the 12 color space coordinates are represented using 12 bytes In contrast, 10-bit encoding organizes the vertices as specified in Table 16, while 12-bit encoding follows the packing method outlined in Table 17.

Table 16 – Packing of 10-bit colour space coordinates

Table 17 – Packing of 12-bit colour space coordinates

8 Description of gamut geometry (medium and simple profiles)

General

This clause specifies the simple and medium profile of the description of gamut geometry See Clause 7 for the full profile.

Medium profile

In the header of Gamut ID metadata, if ID_PROFILE equals 0b01, the description of gamut geometry shall correspond to the medium profile

For the description of gamut geometry, the medium profile is identical to the full profile except the following specifications

In the medium profile, the description of gamut geometry is defined as per Table 5, with the stipulation that the number of levels of color population is fixed at P = 1, while the number of levels of details can be either K = 1 or K = 2.

The gamut hulls are defined according to Table 8 except: ã the total number H of gamut hulls shall be smaller than or equal to 4

Each gamut hull is defined according to Table 9 except ã the number of referenced gamut components that are used inverted by the hth GH shall be

The gamut components are defined according to Table 10 except: ã the total number C of gamut components shall be smaller than or equal to 4.

Simple profile

If ID_PROFILE (see Table 2) equals 0b10, the description of gamut geometry shall correspond to the simple profile

In the simple profile, ID_GBD_SPACE (see Table 2) shall be 0b011

In the simple profile, the format of the description of gamut geometry is summarized in Table 18

Table 18 – Description of gamut geometry (simple profile)

ID_G Header of description of gamut geometry

The header of the description of gamut geometry follows the Gamut ID header and is defined according to Table 19

Table 19 – Header of description of gamut geometry (simple profile)

Size bytes Symbol Description Values

ID_G 2 ID_V Bite # of start of vertices ID_G + 04

The vertices are specified by a list starting from byte number ID_V, where in the simple profile, ID_V is equal to ID_G plus 0h04 There are a total of V = 5 vertices, corresponding to the colors white, black, red, green, and blue, as detailed in Table 20.

Table 20 – Definition of vertices (simple profile)

Byte # hex Size Symbol Description Values

ID_V 2 V Total number of vertices

ID_V+04 é 3VN / 8 ù 3V encoded colour space coordinates defining V vertices

Hereby is ộ ự ã the operation that rounds to the next upper integer

An example for the description of gamut geometry using the simple profile is given in Annex D

Here is the rewritten paragraph:The Gamut ID metadata header's ID_E field plays a crucial role in determining the colour reproduction description, which is applicable if the field value is non-zero Specifically, the description of colour reproduction, starting from byte number ID_E, establishes the relationship between encoded colour space coordinates and radiometrically-linear CIEXYZ colour space coordinates, as outlined in CIE 15 Notably, when utilizing this description, the image state of the encoded colour space coordinates must be output-referred, adhering to the standards defined in ISO 22028-1.

The description of color reproduction is outlined in Table 21, where Gamut ID metadata may include Q distinct color reproduction models, ranging from E₀ to Eₖ₋₁ As the index increases, the color reproduction profiles exhibit greater precision and typically require more memory E₀ is characterized by the lowest precision and the smallest memory footprint.

Table 21 – Header of description of colour reproduction

Size bytes Symbol Description Values decimal

ID_E 1 Q Number of levels of detail

(number of colour reproduction profiles)

ID_E + 01 SE 0 E 0 First colour reproduction profile

SE Q − 1 E Q − 1 Qth colour reproduction profile

Each Gamut ID color reproduction model must be binary encoded using the ICC profile format outlined in ISO 15076-1:2005 The required tags include profileDescriptionTag, copyrightTag, mediaWhitePointTag, and chromaticAdaptationTag, which is necessary when the color space indicated by ID_GBD_SPACE requires adaptation to a white with a chromaticity different from CIE Illuminant D50 Additionally, at least one of the specified tag groups must be included.

- N-Component LUT-based display profiles tags: AtoB1Tag and BtoA1Tag;

- Three-component matrix-based display profile tags: redMatrixColumnTag, greenMatrixColumnTag, blueMatrixColumnTag, redTRCTag, greenTRCTag, blueTRCTag

A Gamut ID colour reproduction model shall not contain one of the following tags from ISO 15076-1:2005: ã outputResponseTag

A Gamut ID colour reproduction model must include specific features: the rendering intent in the ICC profile header should be either ICC-absolute colorimetric or media-relative colorimetric; the Profile Connection Space (PCS) must be XYZData; and if the colour space indicated by ID_GBD_SPACE requires adaptation to a white with a different chromaticity than D50, the ICC chromaticAdaptationTag should include a linearized Bradford transform as per ISO 15076-1:2005, Annex E This transform will convert CIEXYZ colour space coordinates under native illumination and white to PCS CIEXYZ colour space coordinates adapted to the D50 PCS white.

The mediaWhitePointTag offers the tristimulus values of the media white point after being adapted to the PCS D50 white standard All coordinates in the PCS XYZ color space, including those from the mediaWhitePointTag, are adjusted to align with this white point.

In a color reproduction model, the presence of specific ICC profile tags, including gamutTag, AtoB0Tag, BtoA0Tag, AtoB2Tag, BtoA2Tag, DtoB0Tag, BtoD0Tag, DtoB2Tag, and BtoD2Tag, indicates that they should not be utilized for obtaining gamut information.

Size of Gamut ID metadata

This annex gives the size of the following Gamut ID metadata parts: information: ã the header of Gamut ID metadata; ã the description of gamut geometry

The size of the header of Gamut ID metadata is 9 bytes

For medium and full profiles, the size in bytes of the description of gamut geometry is referred to as GSIZE and is given by

I is the number of gamut instances;

H is the number of gamut hulls;

C is the number of gamut components;

F is the number of faces;

V is the number of vertices

H i is the number of GH used by the ith GI;

C h is the number of GC used by the hth GH;

C h is the number of inverted GC used by the hth GH;

F c is the number of faces used by the cth GC

N is the number of bits per colour channel

R is the number of vertices belonging to gamut ridges

For the simple profile, GSIZE is 77

In 2006, the IEC released the International Standard IEC 61966-2-4, which outlines a wide-gamut color space encoding This standard is referenced in HDMI 1.3 and other related documents Additionally, HDMI 1.3 adopted a gamut metadata packet that describes the color gamut of video content.

IEC 61966-12-1 (this standard) specifies an extended, generalized and scalable gamut metadata format

For accurate colorimetric reproduction of video content on a display, three essential conditions must be met: first, the display must correctly interpret the color encoding of the content; second, any discrepancies between the color gamuts of the content and the display must be identified and managed effectively; and third, adjustments must be made to account for variations between the display's viewing conditions and the reference viewing conditions.

The Gamut ID metadata focuses on the second condition However, in order to satisfy the second condition, the first and third conditions need to be addressed as well

Differences in gamuts are exemplified by content colors that fall outside the sink gamut These out-of-gamut colors are typically handled using gamut mapping algorithms Since out-of-gamut colors cannot be accurately reproduced, the choice of a valid replacement color depends on color appearance and artistic intent.

The Gamut ID standard aims to provide a standardized format for defining the gamut of video content, facilitating effective gamut mapping by video sinks.

The Gamut ID standard aims to provide a unified format for defining the gamut of video sinks, particularly when gamut mapping is performed outside the display.

When a video sink lacks knowledge of the actual colour gamut of the video content, it must map incoming colours into its own gamut, often employing advanced gamut mapping techniques to preserve image details rather than relying on simple gamut clipping The range of possible colours is determined by the colour space encoding and reproduction rules, referred to as the colour encoding gamut, which is always equal to or larger than the content gamut In the absence of a specific description of the content's colour gamut, the video sink defaults to using the colour encoding gamut, leading to potential issues such as loss of detail or excessive contrast and saturation This is particularly problematic when the actual content gamut closely matches the sink's gamut, yet the encoding gamut exceeds it The introduction of Gamut ID metadata addresses this issue by providing a description of the actual content gamut, ensuring more accurate gamut mapping.

B.3 Scope of Gamut ID metadata

Figure B.1 illustrates the scope of Gamut ID metadata, which is typically linked to video content and equipment This metadata provides details about the color gamut of both the video content and the associated video equipment, including color reproduction information The video content can range from a single frame to a series of frames, a visible object, or any pictorial representation The equipment involved may include video sources like cameras and set-top boxes, as well as video sinks such as displays and printers.

The Gamut ID metadata standard outlines the format for associating metadata with content or displays, allowing for various methods of generation This open standard enables content creators, equipment manufacturers, and service providers to enhance their offerings The Gamut ID metadata can be utilized for purposes such as facilitating gamut mapping, a well-documented subject in scientific literature, with a comprehensive survey of methods provided by the CIE.

Figure B.1 – Scope of Gamut ID – Generation and use of metadata are not specified

Ngày đăng: 15/04/2023, 10:27

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN