TIÊU CHUẨN QUỐC GIA TCVN 11795-14:2017 (ISO/IEC 14496-14:2003 WITH AMENDMENT 1:2010) VỀ CÔNG NGHỆ THÔNG TIN – MÃ HÓA ĐỐI TƯỢNG HÌNH ẢNH ÂM THANH – PHẦN 14: ĐỊNH DẠNG TỆP MP4
TCVN 11795-14:2017
ISO/IEC 14496-14:2013 WITH AMENDMENT 1:2010
CÔNG NGHỆ THÔNG TIN – MÃ HÓA ĐỐI TƯỢNG HÌNH ẢNH, ÂM THANH – PHẦN 14: ĐỊNH DẠNG TỆP MP4
Information technology – Coding of audio-visual objects – Part 14: MP4 file format
Lời nói đầu
TCVN 11795-14:2017 hoàn toàn tương đương với ISO/IEC 14496-14:2003
TCVN 11795-14:2017 do Học Viện Công nghệ Bưu chính Viễn thông biên soạn, Bộ Thông tin và Truyền thông đề nghị, Tổng cục Tiêu chuẩn Đo lường Chất lượng thẩm định, Bộ Khoa học và Công nghệ công bố.
Lời giới thiệu
0.1 Nguồn gốc
Tiêu chuẩn này định nghĩa tệp MP4, một ví dụ của định dạng tệp truyền thông theo chuẩn ISO [ISO/IEC 14496-12 và ISO/IEC 15444-12].
Tính chất chung của định dạng tệp truyền thông theo chuẩn ISO được thực hiện đầy đủ bởi MP4. Các phiên trình diễn MPEG-4 có tính động cao, và cấu trúc hạ tầng – định khung bộ mô tả đối tượng, có vai trò quản lý các đối tượng và các dòng trong một phiên trình diễn. Một bộ mô tả đối tượng ban đầu đóng vai trò là điểm khởi đầu cho định khung này. Trong các chế độ sử dụng được chỉ ra trong tệp truyền thông theo chuẩn ISO, sẽ thường có bộ mô tả đối tượng ban đầu như được thể hiện trong sơ đồ dưới đây.
0.2 Sự hoán đổi
Sơ đồ dưới đây đưa ra một ví dụ của một tệp hoán đổi đơn giản, có chứa hai dòng.
Hình 1 – Tệp hoán đổi đơn giản
CHÚ THÍCH:
• BIFS: định dạng nhị phân cho phân cảnh (Binary Format for Scene);
• IOD: bộ mô tả đối tượng ban đầu (Initial Object Descriptor);
• OD: bộ mô tả đối tượng (Object Descriptor).
0.3 Tạo lập nội dung
Sơ đồ sau thể hiện một bộ các tệp được sử dụng trong quá trình tạo lập nội dung.
Hình 2 – Tệp tạo lập nội dung
0.4 Phiên trình diễn tạo dòng
Sơ đồ dưới đây cho thấy một phiên trình diễn được chuẩn bị để tạo dòng qua một giao thức ghép kênh, chỉ yêu cầu một rãnh ghi gợi ý.
Hình 3 – Phiên trình diễn gợi ý cho tạo dòng
CÔNG NGHỆ THÔNG TIN – MÃ HÓA ĐỐI TƯỢNG HÌNH ẢNH, ÂM THANH – PHẦN 14: ĐỊNH DẠNG TỆP MP4
Information technology – Coding of audio-visual objects – Part 14: MP4 file format
1 Phạm vi áp dụng
Tiêu chuẩn này định nghĩa định dạng tệp MP4, một định dạng của tệp truyền thông theo chuẩn ISO.
2 Tài liệu viện dẫn
Các tài liệu viện dẫn sau đây là cần thiết để áp dụng tiêu chuẩn này. Đối với các tài liệu viện dẫn ghi năm công bố thì áp dụng phiên bản được nêu. Đối với các tài liệu viện dẫn không ghi năm công bố thì áp dụng phiên bản mới nhất (bao gồm cả các sửa đổi, bổ sung).
ISO/IEC 14496-1:2010, Công nghệ thông tin – Mã hóa đối tượng hình ảnh, âm thanh – Phần 1: Các hệ thống (Information technology – Coding of audio-visual objects – Part 1: Systems).
ISO/IEC 14496-12: Công nghệ thông tin – Mã hóa đối tượng hình ảnh, âm thanh – Phần 12: Định dạng tệp truyền thông cơ sở chuẩn ISO (về mặt kỹ thuật giống với ISO/IEC 15444-12) (Information technology – Coding of audio-visual objects – Part 12: ISO base media file format) (technically identical to ISO/IEC 15444-12).
3 Lưu trữ MPEG-4
3.1 Rãnh ghi dòng cơ sở
3.1.1 Dữ liệu dòng cơ sở
Để duy trì các mục tiêu không phụ thuộc vào giao thức tạo dòng, dữ liệu truyền thông được lưu trữ trong định dạng “tự nhiên” nhất của chúng, và không bị phân mảnh. Điều này cho phép thao tác nội bộ của dữ liệu truyền thông được dễ dàng. Do đó, dữ liệu truyền thông được lưu trữ như các đơn vị truy cập, một chuỗi các byte liên tiếp cho mỗi đơn vị truy cập (một đơn vị truy cập được định nghĩa là một “mẫu” cho một dòng truyền thông MPEG-4). Điều này tạo thuận lợi cho quá trình phân mảnh được sử dụng trong các rãnh ghi gợi ý. Định dạng tệp có thể mô tả và sử dụng dữ liệu truyền thông được lưu trữ trong các tệp khác, tuy nhiên sự hạn chế này vẫn được áp dụng. Vì vậy nếu một tệp được dùng có chứa dữ liệu truyền thông “trước phân mảnh” (ví dụ một dòng FlexMux trong một đĩa cứng), dữ liệu truyền thông sẽ cần được sao chép để định dạng lại các đơn vị truy cập, nhằm nhập các dữ liệu vào định dạng tệp này.
Điều này đúng cho tất cả các loại dòng dữ liệu trong tiêu chuẩn này, bao gồm các dòng “thông tin bổ trợ” như miêu tả đối tượng và tham chiếu thời gian. Hệ quả tích cực của việc này là định dạng tệp xử lý các dòng như nhau, nhưng nhược điểm thì lại tạo ra các liên kết chéo “bên trong” giữa các dòng. Điều này nghĩa là việc thêm và gỡ bỏ các dòng từ một phiên trình diễn sẽ liên quan đến việc thêm vào hoặc xóa bỏ các rãnh ghi dữ liệu và dữ liệu truyền thông liên kết của chính nó. Không chỉ các dòng phải được đặt vào hoặc gỡ bỏ khỏi khung hình mà dòng miêu tả đối tượng cũng cần được cập nhật.
Đối với mỗi rãnh ghi dữ liệu, toàn bộ bộ mô tả dòng cơ sở ES-descriptor được lưu trữ như là một mô tả hoặc các mô tả mẫu . SLConfigDescriptor cho rãnh ghi truyền thông được lưu trữ trong tệp bằng cách sử dụng giá trị mặc định (được định trước = 2), ngoại trừ khi bộ mô tả dòng cơ sở tham chiếu tới một dòng qua một địa chỉ URL, tức là, dòng được tham chiếu đến nằm ngoài phạm vi của tệp MP4. Trong trường hợp này, SLConfigDescriptor không bị ràng buộc giá trị được định trước.
Trong một dòng bít được truyền tải, các đơn vị truy cập trong gói SL được truyền đi gói trong các byte. Điều đó có nghĩa là các rãnh ghi gợi ý sẽ tạo các tiêu đề gói SL bằng cách sử dụng thông tin trong các rãnh ghi truyền thông, và các rãnh ghi gợi ý sẽ tham chiếu đến các đơn vị truy cập từ các rãnh ghi truyền thông. Việc đưa tiêu đề vào trong quá trình gợi ý là có thể thực hiện mà không làm dịch bit, vì mỗi gói SL và đơn vị truy cập chứa tương ứng sẽ cùng bắt đầu trên các biên byte.
3.1.2 Bộ mô tả dòng cơ sở
ESDescriptor cho mỗi dòng trong phạm vi của tệp MP4 mô tả trong tiêu chuẩn này được lưu trữ trong mô tả mẫu, các trường, và các cấu trúc bao gồm được giới hạn như sau:
• ES_ID – thiết lập là 0 để lưu trữ; khi tạo thành một dòng, 16 bit sau của định danh rãnh TrackID được sử dụng.
• streamDependenceFlag – thiết lập là 0 để lưu trữ; nếu một phụ thuộc tồn tại, nó được chỉ định sử dụng một rãnh ghi tham chiếu loại ‘dpnd’.
• URLflag – giữ nguyên, tức là đặt là false, giống như một dòng trong tệp, chứ không phải từ xa.
• SLConfigDescriptor – được xác định trước là loại 2.
• OCRStreamFlag – thiết lập là false trong tệp.
Các ESDescriptor dành cho một dòng được tham chiếu qua một ES URL được lưu trữ trong các mô tả mẫu và trong các trường và bao gồm các cấu trúc được giới hạn như sau.
• ES_ID – thiết lập là 0 để lưu trữ; khi tạo thành một dòng, 16 bit thấp của định danh rãnh TrackID được sử dụng.
• streamDependenceFlag – thiết lập là 0 để lưu trữ; nếu một phụ thuộc tồn tại, nó được chỉ định sử dụng một rãnh ghi tham chiếu loại ‘dpnd’.
• URLflag – giữ nguyên, tức là đặt là true, giống như một dòng không nằm trong tệp.
• SLConfigDescriptor – giữ nguyên.
• OCRStreamFlag – thiết lập là false trong tệp.
Cần lưu ý rằng QoSDescriptor có thể phải viết lại khi truyền dẫn vì nó chứa thông tin về kích thước PDU vv.
3.1.3 Bộ mô tả đối tượng
Bộ mô tả đối tượng ban đầu và các dòng bộ mô tả đối tượng được xử lý đặc biệt trong định dạng tệp. Các bộ mô tả đối tượng chứa các bộ mô tả ES, do đó nó chứa những thông tin cụ thể về dòng. Ngoài ra, để tạo điều kiện chỉnh sửa, các thông tin về rãnh ghi được lưu giữ dưới dạng một ESDescriptor trong mô tả mẫu của rãnh ghi đó. ESDescriptor phải được lấy từ đó từ đó, viết lại cho phù hợp, và được truyền dẫn như là một phần của dòng OD khi phiên trình diễn được tạo dòng.
Kết quả là, các bộ mô tả ES không được lưu trữ trong các rãnh ghi OD hoặc bộ mô tả đối tượng ban đầu. Thay vào đó, bộ mô tả đối tượng ban đầu có một mô tả chỉ được sử dụng trong tệp, chứa duy nhất ID rãnh ghi của dòng cơ sở. Khi được sử dụng, một ESDescriptor đã được viết lại phù hợp từ rãnh ghi tham chiếu sẽ thay thế bộ mô tả này. Tương tự như vậy, các rãnh ghi OD được liên kết đến các rãnh ghi ES bằng các tham chiếu rãnh ghi. Trong trường hợp một bộ mô tả ES sẽ được sử dụng trong rãnh ghi OD thì một bộ mô tả khác được sử dụng, nó chỉ diễn ra lại trong tệp. Nó bao gồm các chỉ số trong thiết lập của các tham chiếu rãnh ghi mpod mà rãnh ghi OD này sở hữu. Một ESDescriptor được viết lại phù hợp sẽ thay thế nó bởi các gợi ý của rãnh ghi này.
Các ES_ID_Inc được sử dụng trong khuôn bộ mô tả đối tượng:
Các ES_ID_Ref được sử dụng trong dòng OD:
CHÚ THÍCH: Các giá trị thẻ trên được quy định tại Bảng 1 của 7.2.2.1 và Bảng 2 của 7.2.2.3.2 trong tiêu chuẩn ISO/IEC 14496-1:2010, các giá trị thực tế cần được tham chiếu từ các bảng này.
Một gợi ý có thể phải gửi nhiều sự kiện OD hơn so với thực tế đã xảy ra trong rãnh ghi OD: ví dụ, nếu ES_description thay đổi tại thời điểm khi không có sự kiện nào trong rãnh ghi OD. Nói chung, bất kỳ sự kiện OD nào đã được xác thực rõ ràng vào rãnh ghi OD cũng phải được gửi cùng với những phần cần thiết để chỉ rõ những thay đổi khác. Bộ mô tả ES đã được gửi trong rãnh ghi OD sẽ được lấy từ phần mô tả của mẫu tạm thời kế tiếp trong rãnh ghi ES (trong thời gian giải mã).
3.2 Định danh rãnh ghi
Các định danh rãnh ghi được sử dụng trong một tệp MP4 là duy nhất trong tệp đó; không có bất kỳ hai rãnh ghi nào có thể sử dụng cùng một định danh.
Mỗi dòng cơ sở trong các tệp được lưu giữ như một rãnh ghi truyền thông. Đối với một dòng cơ sở, hai byte sau của bốn byte track_ID phải được thiết lập là định danh dòng cơ sở (ES_ID); hai byte trước của track_ID thiết lập là không. Các rãnh ghi gợi ý có thể sử dụng các giá trị định danh rãnh ghi trong cùng một dải, nếu khoảng số này là đủ (thường là như vậy). Tuy nhiên, các định danh rãnh ghi gợi ý cũng có thể sử dụng các giá trị lớn hơn giá trị của định danh rãnh ghi, vì định danh của chúng không được ánh xạ đến định danh dòng cơ sở. Như vậy các phiên trình diễn rất lớn có thể sử dụng toàn bộ không gian 16-bit cho các định danh dòng cơ sở.
Giá trị nhận dạng rãnh ghi kế tiếp, chứa trong next_track_ID của khung tiêu đề hình MovieHeaderBox, theo quy định của tiêu chuẩn ISO định dạng truyền thông cơ sở, thường mang một giá trị lớn hơn giá trị định danh rãnh ghi lớn nhất trong tệp. Việc này cho phép tạo ra một định danh rãnh ghi rất dễ dàng trong mọi tình huống. Tuy nhiên, nếu giá trị này lớn hơn hoặc bằng 65535, và nếu có thêm một rãnh ghi truyền thông mới, thì việc kiểm tra phải được thực hiện trong tệp cho định danh rãnh ghi tự do. Nếu mọi giá trị đều là 1 (32-bit maxint) thì cần thực hiện việc kiểm tra này cho tất cả các phần thêm vào.
Nếu ta muốn thêm vào một rãnh ghi chứa một định danh rãnh ghi đã biết (định danh dòng cơ sở), thì tệp phải được kiểm tra để đảm bảo rằng không có xung đột. Lưu ý rằng, có thể đánh số lại các rãnh ghi gợi ý khá dễ dàng nhưng cần lưu tâm các rãnh ghi truyền thông hơn bởi vì có thể có nhiều tham chiếu đến ES_ID (ID rãnh ghi) trong các rãnh ghi khác.
Nếu các rãnh ghi gợi ý có các ID rãnh ghi nằm ngoài phạm vi cho phép đối với các rãnh ghi dòng cơ sở, thì ID rãnh ghi kế tiếp sẽ ghi lại ID rãnh ghi gợi ý có sẵn tiếp theo. Vì giá trị này lớn hơn 65535, nên sau đó cần phải kiểm tra để tìm ra một ID rãnh ghi dòng cơ sở hợp lệ.
Nếu hai phiên trình diễn được hợp nhất thì có thể xuất hiện xung đột giữa các ID rãnh ghi của chúng. Trong trường hợp này, một hoặc nhiều rãnh ghi sẽ phải đánh số lại. Có hai thao tác cần thực hiện như sau:
• Thay đổi ID của chính rãnh ghi đó, điều này là khá dễ dàng (ID rãnh ghi nằm trong tiêu đề rãnh ghi).
• Thay đổi con trỏ đến rãnh ghi cần đánh số lại.
Các con trỏ có thể chỉ xuất hiện trong cấu trúc định dạng tệp đó. Định dạng tệp chỉ sử dụng các ID rãnh ghi thông qua các tham chiếu rãnh ghi, các tham chiếu rãnh ghi này có thể dễ dàng tìm thấy và sửa đổi. ID rãnh ghi trở thành ES_ID trong các dữ liệu MPEG-4, và ES_ID xuất hiện trong dòng OD. Vì tất cả các con trỏ đến ES_ID trong dòng OD được thay thế bằng các phương tiện tham chiếu rãnh ghi, nên không cần kiểm tra dòng OD để tham chiếu chéo trong dòng MPEG-4.
Trong các định dạng tệp, lệnh ES_DescriptorRemove và bộ mô tả IPI_DescrPointer được chuyển đổi thành ES_DescrRemoveRef và IPI_DescrPointerRef, do:
• Thay đổi giá trị của thẻ tương ứng về ES_DescrRemoveRefTag hoặc IPI_DescrPointerRefTag ;
• Thay đổi ES_ID bất kỳ về chỉ số tham chiếu rãnh ghi phù hợp (sử dụng các tham chiếu tương ứng của loại mpod và ipir – xem 5.2).
Khi thực hiện hoặc đưa ra gợi ý, các thay đổi chỉ số rãnh ghi tham chiếu và giá trị thẻ sẽ đảo ngược.
3.3 Đồng bộ các dòng
Trong trường hợp không có công bố rõ ràng về điều ngược lại thì các rãnh ghi (các dòng) xuất phát từ cùng một tệp phải được hiển thị đồng bộ. Điều này có nghĩa rằng, các gợi ý và/hoặc các máy chủ hoặc là phải chọn một trong các dòng làm nguồn OCR cho những dòng khác, hoặc phải thêm một dòng OCR để liên kết tất cả các dòng với nó. Các tham chiếu rãnh ghi loại ‘đồng bộ’ có thể được sử dụng trong tệp để loại bỏ các thao tác mặc định. Trong MPEG-4, OCRStreamFlag và OCR_ES_ID trong ESDescriptor chi phối các mối quan hệ đồng bộ. Việc ánh xạ cấu trúc MP4 vào các trường này phải tuân theo các quy tắc sau:
• MPEG-4 ESDescriptor, được lưu trữ trong tệp, thường chứa OCRStreamFlag thiết lập là FALSE, và không có OCR_ES_ID. Nếu một OCR_ES_ID được thiết lập, nó sẽ bị bỏ qua.
• Nếu một rãnh ghi (dòng) chứa một tham chiếu rãnh ghi loại ‘đồng bộ’ có giá trị là 0, thì bộ gợi ý hoặc máy chủ sẽ thiết lập các trường OCRStreamFlag trong MPEG-4 ESDescriptor là FALSE và không chèn thêm bất kỳ trường OCR_ES_ID nào. Điều này có nghĩa rằng dòng này không đồng bộ với dòng khác nữa, nhưng các dòng khác vẫn có thể được đồng bộ với nó.
• Nếu một rãnh ghi (dòng) chứa một tham chiếu rãnh ghi loại ‘đồng bộ’ có giá trị là 0, thì bộ gợi ý hoặc máy chủ sẽ thiết lập các trường OCRStreamFlag trong MPEG-4 ESDescriptor là TRUE và chèn thêm một trường OCR_ES_ID có cùng giá trị chứa trong rãnh tham chiếu ‘đồng bộ’. Điều này có nghĩa rằng dòng này sẽ đồng bộ với các dòng chứa trong OCR_ES_ID. Các dòng khác cũng có thể được đồng bộ trong cùng một dòng, hiển nhiên hoặc ngầm định.
• Nếu một rãnh ghi (dòng) không chứa một tham chiếu rãnh ghi loại ‘đồng bộ’, thì các trường hợp mặc định sẽ được áp dụng. Các bộ gợi ý hoặc máy chủ sẽ thiết lập các trường OCRStreamFlag trong MPEG-4 ESDescriptor là TRUE và sẽ chèn một trường OCR_ES_ID có giá trị được lựa chọn dựa trên các quy tắc dưới đây. Điều này có nghĩa rằng, dòng này được đồng bộ với các dòng ghi trong OCR_ES_ID. Các quy tắc để chọn OCR_ES_ID như sau:
o Nếu không có rãnh ghi (dòng) trong tệp có chứa một tham chiếu rãnh ghi loại ‘đồng bộ’, thì bộ gợi ý chọn một TrackID và sử dụng giá trị đó cho các trường OCR_ES_ID của tất cả các ESDescriptors. Trường hợp ngoại lệ có thể xảy ra ở ESDescriptor của dòng tương ứng với TrackID đó, ở đó OCRStreamRag có thể được thiết lập thành FALSE.
o Nếu một hoặc nhiều rãnh ghi (dòng) trong tệp chứa một tham chiếu rãnh ghi loại ‘đồng bộ’, và tất cả các tham chiếu rãnh ghi như vậy đều biểu thị một TrackID đơn, thì bộ gợi ý sẽ sử dụng TrackID đó. Trong một tham chiếu rãnh ghi loại ‘đồng bộ’, giá trị 0 sẽ tương đương với TrackID của chính rãnh ghi đó.
o Nếu hai hoặc nhiều rãnh ghi (dòng) trong tệp chứa một tham chiếu rãnh ghi loại ‘đồng bộ’, và tham chiếu rãnh ghi như vậy không biểu thị TrackID đơn, thì bộ gợi ý sẽ không thể lựa chọn chính xác và các thao tác sẽ không thể xác định. Trong một tham chiếu rãnh ghi của loại ‘đồng bộ’, giá trị 0 sẽ tương đương với TrackID của chính rãnh ghi đó.
3.4 Thành phần
Trong MPEG-4, cả hai thành phần hình ảnh và âm thanh được thực hiện thông qua hệ thống BIFS. Do đó, các cấu trúc được đánh dấu là “cấu trúc mẫu” trong một định dạng truyền thông cơ sở ISO liên quan đến thành phần, bao gồm các trường như ma trận, lớp, chế độ đồ họa (và các opcolor), âm lượng, các giá trị cân bằng, từ MovieHeaderBox và TrackHeaderBox, đều được thiết lập về giá trị mặc định của chúng trong các định dạng tệp. Các trường này không xác định thành phần hình ảnh hoặc âm thanh trong MPEG-4; trong MPEG-4, hệ thống BIFS xác định thành phần.
Các trường chiều rộng và chiều cao trong đầu vào mẫu hình ảnh VisualSampleEntry và khung tiêu đề rãnh TrackHeaderBox phải được thiết lập về các kích thước điểm ảnh của dòng hình ảnh.
3.5 Xử lý của FlexMux
Một bước bước phân mảnh và đóng gói trung gian có tính tùy chọn, được gọi là FlexMux, đã được định nghĩa trong tiêu chuẩn này. Một số giao thức tạo dòng có thể mang dòng FlexMux, thay vì các dòng cơ sở đóng gói. Flexmux có thể được sử dụng cho nhiều mục đích khác nhau, bao gồm, nhưng không giới hạn:
• giảm băng thông mạng lãng phí gây ra bởi tiêu đề gói SL khi tải tin nhỏ;
• giảm tài nguyên máy chủ yêu cầu trong khi đang cung cấp nhiều dòng, bằng cách giảm số lượng đọc đĩa hoặc truy xuất mạng.
Quá trình xây dựng các FlexMux PDU nhất thiết phải nắm bắt được những đặc điểm của giao thức tạo dòng mà trong đó FlexMux phải được sử dụng. Do đó, không thể thiết kế một xử lý không phụ thuộc vào giao thức tạo dòng của FlexMux. Thay vào đó, trong những giao thức tạo dòng mà ở đó FlexMux được sử dụng, các rãnh ghi gợi ý cho giao thức đó sẽ đóng gói và chứa thông tin về gói FlexMux. Trong trường hợp này, điều mong muốn là thiết kế của các rãnh ghi sẽ gợi ý sẽ phản ánh sát cách mà FlexMux được sử dụng. Ví dụ, một bảng nhỏ gọn tương tự như chế độ MuxCode (một phương pháp được sử dụng để kết hợp tải tin với các kênh FlexMux) có thể cần thiết nếu xen kẽ được cung cấp theo chế độ đó là cần thiết.
Trong một số trường hợp, có thể không thể tạo ra một ghép kênh FlexMux tĩnh thông qua một rãnh ghi gợi ý. Đáng chú ý là, nếu việc lựa chọn dòng là động (ví dụ, dựa trên phản hồi của ứng dụng) hoặc lựa chọn các chế độ muxcode hay khía cạnh khác của Flexmux là động, thì do đó FlexMux cũng được thiết lập động. Đây là một cái giá cần thiết cho ghép kênh thời gian. Điều này có thể là khó khăn cho một máy chủ khi tạo ra một ghép kênh động trong thời gian chạy, nhưng với giá này tính linh hoạt có thể thêm. Một máy chủ được mong muốn cung cấp chức năng như vậy có thể cần phải cân nhắc giữa giá thành và lợi ích, và chọn để thực hiện ghép kênh mà không cần sự trợ giúp của rãnh ghi gợi ý.
Một số cấu trúc theo chuẩn ISO/IEC 14496 thực chất đã được liên kết đến FlexMux, vì thế cần phải được giải quyết trong ngữ cảnh của một rãnh ghi gợi ý hướng FlexMux. Ví dụ, một một bảng ánh xạ dòng phải được cung cấp cho các thiết bị đầu cuối thu, nơi ánh xạ ID kênh FlexMux đến ID dòng cơ sở. Tương tự, nếu sử dụng chế độ MuxCode của FlexMux, thì cấu trúc chế độ MuxCode cho từng chỉ số MuxCode được sử dụng phải được xác định và cung cấp cho thiết bị đầu cuối.
Các ánh xạ và định nghĩa này có thể thay đổi theo thời gian và ISO/IEC 14496 không đưa ra cách thức quy định để cung cấp chúng cho các thiết bị đầu cuối; thay vào đó, phải sử dụng một cơ chế nào đó kết hợp với thiết kế hệ thống tổng thể hoặc các giao thức. Bộ gợi ý phải lưu trữ các ánh xạ và các định nghĩa. Do chúng có liên quan mật thiết với các phân đoạn thời gian cụ thể của rãnh ghi gợi ý cụ thể, vì vậy nên đặt các ánh xạ và các định nghĩa trong các mô tả mẫu cho rãnh ghi gợi ý đó. Các mô tả này thường là các dạng sau:
• bảng ánh xạ các kênh FlexMux đến các định danh ID dòng cơ sở;
• tập các định nghĩa cấu trúc chế độ MuxCode.
Hơn nữa, nên sử dụng định dạng như được thể hiện trong mục 7.4.2.5 trong tiêu chuẩn ISO/IEC 14496-1:2010, cho các định nghĩa chế độ MuxCode
Cần đặc biệt lưu ý khi thực hiện tạm dừng hoặc tìm kiếm một dòng hiện đang được truyền tải như một phần của dòng FlexMux. Việc tạm dừng hoặc tìm kiếm mọi dòng thành phần của một FlexMux nhất thiết phải tạm dừng hoặc tìm kiếm tất cả các dòng. Khi tìm kiếm, cần phải chú ý lưu tâm đến các điểm truy cập ngẫu nhiên. Chúng có thể không đồng bộ về thời gian trong các dòng hình thành FlexMux, có nghĩa là mọi hoạt động tìm kiếm đều đều không thể xuất phát từ một điểm truy cập ngẫu nhiên. Thật vậy, các điểm truy cập ngẫu nhiên của chính FlexMux nhất thiết phải được xác định trong các trường hợp như vậy.
Máy chủ cần thực hiện:
• kiểm tra các tham chiếu rãnh ghi để xác định các rãnh ghi truyền thông cơ sở (dòng cơ sở) được hình thành vào FlexMux;
• tìm thời điểm gần nhất trước thời điểm mong muốn sao cho sẽ có một điểm truy cập ngẫu nhiên cho mọi dòng ở giữa thời điểm đó và thời điểm tìm kiếm, bằng cách kiểm tra độc lập mỗi dòng;
• truyền dòng FlexMux từ thời điểm đó.
Điều này đảm bảo thiết bị đầu cuối nhận được một điểm truy cập ngẫu nhiên cho tất cả các dòng tại hoặc trước thời điểm tìm kiếm mong muốn. Tuy nhiên, có thể phải loại bỏ dữ liệu của các dòng đã nhận được dữ liệu trước các điểm truy cập ngẫu nhiên.
4 Định danh tệp
Nhãn ‘mp41’ được định nghĩa là định danh cho phiên bản 1, và nhãn ‘mp42’ là định danh cho phiên bản 2 của của tiêu chuẩn kỹ thuật này (ISO/IEC 14496-1:2010): ít nhất một trong các nhãn đó sẽ xuất hiện trong danh sách nhãn-tương thích trong khuôn loại-tệp, trong tất cả các tệp phù hợp với tiêu chuẩn kỹ thuật này.
Phần mở rộng tệp được ưu tiên là ‘.mp4’. Các loại MIME dạng hình ảnh/mp4, âm thanh/mp4 được sử dụng theo quy định của RFC thích hợp.
5 Các bổ sung đối với định dạng truyền thông cơ sở
Phần này định nghĩa các khuôn và các loại tham chiếu rãnh ghi, chúng được định nghĩa để sử dụng trong định dạng tệp này và không được định nghĩa trong định dạng tệp truyền thông theo chuẩn ISO.
5.1 Khuôn bộ mô tả đối tượng
Kiểu khuôn (Box Type): ‘iods’
Ngăn chứa (Container): Movie Box (‘moov’)
Bắt buộc (Mandatory): Không
Số lượng (Quantity): Không hoặc một
Đối tượng này chứa một bộ mô tả đối tượng hoặc một bộ mô tả đối tượng ban đầu.
Tùy thuộc vào bộ mô tả, có một số loại tệp có thể khác nhau về cách sử dụng:
• Phiên trình diễn, chứa IOD trong đó có một dòng BIFS (tệp MP4);
• Một phần của phiên trình diễn, chứa một IOD mà IOD này không chứa một dòng BIFS (tệp MP4);
• Một phần của phiên trình diễn, chứa một OD (tệp MP4);
• Tệp định dạng tự do, được tham chiếu bởi các tham chiếu dữ liệu MP4 (định dạng tự do);
• Một phần của phiên trình diễn, tham chiếu bởi một ES URL
CHÚ THÍCH: Ba loại đầu tiên là các tệp MP4, tệp tham chiếu bởi một tham chiếu dữ liệu không nhất thiết phải là một tệp MP4, vì nó có định dạng tự do. Các tệp được tham chiếu bởi ES URL, bởi các tham chiếu dữ liệu, hoặc được định làm đầu vào cho một quá trình biên tập, không cần có một Khuôn Bộ mô tả Đối tượng.
OD URL có thể trỏ đến một tệp MP4. Ngầm hiểu, đích của URL như vậy là OD/IOD nằm trong phần tử ‘iods’ trong tệp đó.
Nếu một tệp MP4 chứa một vài bộ mô tả đối tượng, thì chỉ có OD/IOD trong phần từ ‘iods’ là có thể được gán địa chỉ bằng một OD URL từ một phiên trình diễn MPEG-4 từ xa.
5.1.1 Cú pháp
Cú pháp cho ObjectDescriptor và InitialObjectDescriptor được mô tả tại 7.2.6 trong ISO/IEC 14496-1:2010.
5.1.2 Giải nghĩa
Giải nghĩa cho ObjectDescriptor và InitialObjectDescriptor được mô tả tại 7.2.6 trong ISO/IEC 14496-1:2010. Nội dung của khuôn này được hình thành bằng cách lấy một bộ mô tả đối tượng hoặc mô tả đối tượng ban đầu và:
• thay đổi thẻ sang MP4_OD_Tag hoặc MP4_IOD_Tag phù hợp cho đối tượng này;
• thay thế các Bộ mô tả ES có ES_ID_Inc tham chiếu đến rãnh ghi phù hợp.
5.2 Các loại Tham chiếu rãnh ghi
MP4 định nghĩa các giá trị bổ sung sau đây dành cho loại-tham chiếu:
• dpnd – rãnh ghi này có một phụ thuộc MPEG-4 trên rãnh ghi được tham chiếu. Nếu loại rãnh ghi đó có một MP4AudioEnhancementSampleEntry được định nghĩa trong điều 5.6 thì tham chiếu rãnh ghi là bắt buộc và phụ thuộc mạnh, ví dụ, rãnh ghi có chứa tham chiếu không thể giải mã được nếu không có rãnh ghi tham chiếu;
• ipir – rãnh ghi này chứa các khai báo IPI cho rãnh ghi được tham chiếu;
• mpod – rãnh ghi này là một rãnh ghi OD sử dụng các rãnh ghi được tham chiếu như một rãnh ghi dòng cơ sở;
• sync – rãnh ghi này sử dụng các rãnh ghi được tham chiếu như là nguồn đồng bộ của nó.
Các loại tham chiếu ‘cdsc’ (nội dung mô tả) là cách thức các dòng mô tả (như MPEG-7) được liên kết với nội dung mà chúng mô tả trong tệp MP4 ; khi tệp được tạo dòng hoặc gợi ý, các tham chiếu rãnh ghi này được sử dụng để tạo thành ObjectDescriptor diễn giải nội dung và mô tả, hoặc DescriptionDescriptionDescriptor nếu phù hợp.
5.3 Khuôn tiêu đề rãnh ghi
Khuôn tiêu đề rãnh ghi ghi lại thời gian rãnh ghi. Nếu không thể xác định thời gian của một rãnh ghi, thì thời gian này sẽ được thiết lập tất cả là 1 (32-bit maxint): đây là trường hợp khi một bộ mô tả dòng cơ sở có chứa một ES_URL, do vậy nội dung đa phương tiện nằm ngoài tệp MP4 và việc phân chia nó thành các mẫu là chưa biết.
Các cờ tiêu đề rãnh ghi track_in_movie và track_in_preview không được sử dụng trong MP4 và phải được thiết lập về giá trị mặc định là 1 trong tất cả các tệp.
5.4 Loại tham chiếu bộ xử lý
Dưới đây định nghĩa các giá trị bổ sung cho loại-xử lý trong khuôn tham chiếu xử lý (‘hdlr’) của định dạng tệp truyền thông cơ sở:
‘odsm’ ObjectDescriptorStream
‘crsm’ ClockReferenceStream
‘sdsm’ SceneDescriptionStream
‘m7sm’ MPEG7Stream
‘ocsm’ ObjectContentInfoStream
‘ipsm’ IPMP Stream
‘mjsm’ MPEG-J stream
5.5 Khuôn tiêu đề truyền thông MPEG-4
Các dòng theo chuẩn ISO/IEC 14496 khác hình ảnh và âm thanh hiện đang sử dụng một khuôn tiêu đề truyền thông MPEG-4 rỗng, được định nghĩa ở đây. Có một tập các loại dành riêng cho các tiêu đề truyền thông cụ thể cho các loại dòng theo tiêu chuẩn ISO/IEC 14496.
5.5.1 Cú pháp
aligned(8) class Mpeg4MediaHeaderBox extends NullMediaHeaderBox ( flags ) { };
5.5.2 Giải nghĩa
version – là một số nguyên thể hiện các phiên bản của hộp này.
flags – là một số nguyên 24-bit có chứa cờ (hiện tại tất cả gán là 0).
Các loại khuôn sau đây được dành riêng như các loại khuôn truyền thông tiềm năng, nhưng hiện chưa được sử dụng:
ObjectDescriptorStream ‘odhd’
ClockReferenceStream ‘crhd’
SceneDescriptionStream ‘sdhd’
MPEG7Stream ‘m7hd’
ObjectContentInfoStream ‘ochd’
IPMP Stream ‘iphd’
MPEG-J Stream ‘mjhd’
5.6 Khuôn mô tả mẫu
Kiểu khuôn (Box Types): ‘mp4v’, ‘mp4a’, ‘mp4s’
Ngăn chứa (Container): Khuôn bảng mẫu (‘stbl’)
Bắt buộc (Mandatory): Có
Số lượng (Quantity): Một
Đối với các dòng hình ảnh, sử dụng một VisualSampleEntry; đối với các dòng âm thanh không có các lớp nâng cao, ví dụ, không có phần mở rộng có khả năng mở rộng được, sử dụng một MP4AudioSampIeEntry. Đối với các dòng âm thanh có các lớp nâng cao, sử dụng một MP4AudioEnhancementSampleEntry. Đối với tất cả các dòng MPEG-4 khác, sử dụng một MpegSampleEntry. Các rãnh ghi gợi ý sử dụng một định dạng đầu vào cụ thể cho giao thức của chúng, với một cái tên tương ứng.
Đối với tất cả các dòng MPEG-4, trường dữ liệu lưu trữ một ES_Descriptor cùng với tất cả các nội dung của nó. Nhiều đầu vào trong bảng bao hàm sự xuất hiện của lệnh ES_DescriptorUpdate. Trong trường hợp một ES_Descriptor tham chiếu đến dòng thông qua một ES URL (do đó nằm ngoài phạm vi của tệp MP4 được mô tả trong tiêu chuẩn này) chỉ có một đầu vào trong bảng này được cho phép, nghĩa là không hỗ trợ sự xuất hiện của lệnh ES_DescriptorUpdate. Các ES_Descriptor được lưu trữ trong các định dạng tệp bị hạn chế bởi các quy tắc thiết lập trong 3.1.
Đối với rãnh ghi gợi ý, mô tả mẫu chứa những dữ liệu khai báo phù hợp cho các giao thức đang được sử dụng, và định dạng của rãnh ghi gợi ý. Định nghĩa của mô tả mẫu là riêng cho từng giao thức tạo dòng. Tuy nhiên, cần lưu ý đến các thông tin về FlexMux ở trên, nhu cầu cần Bảng ánh xạ dòng, và các định nghĩa định dạng chế độ MuxCode.
Đối với dòng hình ảnh, phụ lục K tiểu mục 3.1 về đặc tả hình ảnh (ISO/IEC 14496-2) yêu cầu thông tin cấu hình (ví dụ như các tiêu đề chuỗi hình ảnh) được mang trong cấu trúc cấu hình bộ giải mã, và không có trong dòng. Do MP4 là một cấu trúc hệ thống, nên cần lưu ý rằng điều đó có nghĩa là các tiêu đề này (chuỗi đối tượng hình ảnh, vv) phải nằm trong ES_descriptor của mô tả mẫu, và không xuất hiện trong các mẫu đa phương tiện.
Một MP4AudioEnhancementSampleEntry cho thấy rằng rãnh ghi chứa dữ liệu âm thanh MPEG là dữ liệu âm thanh nâng cao duy nhất (ví dụ nâng cao về không gian hoặc chất lượng) và rãnh ghi đó không thể được giải mã nếu không có rãnh ghi âm thanh tham chiếu, như đã được chỉ ra bởi một tham chiếu rãnh ghi bắt buộc của loại dpnd
5.6.1 Cú pháp
5.6.2 Giải nghĩa
Entry_count – là một số nguyên phản ánh số lượng các đầu vào trong bảng dưới đây.
SampleEntny – là đầu vào mẫu thích hợp.
width trong VisualSampleEntry là độ rộng hình ảnh tối đa của dòng được mô tả bởi mô tả mẫu này,
theo điểm ảnh, như được mô tả trong 6.2.3 của ISO/IEC 14496-2, video_object_layer_width trong các tiêu đề hình ảnh;
height trong VisualSampleEntry là chiều cao hình ảnh tối đa của dòng được mô tả bởi mô tả mẫu này, theo điểm ảnh, như được mô tả trong 6.2.3 của ISO/IEC 14496-2, video_object_layer_height trong các tiêu đề hình ảnh;
Compressorname – trong các đầu vào mẫu được thiết lập là 0
ES – là Bộ mô tả ES cho dòng này.
5.7 Sự suy giảm các giá trị ưu tiên
Trong Khuôn Ưu tiên Giảm, kích thước tối đa của một ưu tiên giảm trong tiêu đề SL là 15 bit; kích thước này nhỏ hơn so với kích thước của trường 16 bit. Các bit có trọng số cao nhất được mặc định trước là 0.
6 Các trường mẫu được sử dụng
Trong phần “Các trường và loại dữ liệu” của định dạng tệp truyền thông cơ sở ISO, khái niệm trường “mẫu” đã được định nghĩa. Tiêu chuẩn kỹ thuật này xuất phát từ tiêu chuẩn cơ sở trên, và đòi hỏi mọi trạng thái chỉ tiêu kỹ thuật trích xuất đều phải thể hiện rõ những trường mẫu nào được sử dụng. Định dạng này không sử dụng trường mẫu.
Khi một tệp được tạo ra là một tệp MPEG-4 nguyên bản, các trường này phải được thiết lập về các giá trị mặc định của chúng. Nếu một tệp là đa-mục đích và cũng tuân thủ các tiêu chuẩn kỹ thuật khác thì các trường đó có thể mang giá trị không-mặc định tùy theo yêu cầu của các tiêu chuẩn kỹ thuật khác.
Khi một tệp được đọc là một tệp MPEG-4, các giá trị trong các trường mẫu phải được bỏ qua.
Phụ lục A
(tham khảo)
Tuyên bố về bằng sáng chế
Tổ chức tiêu chuẩn quốc tế (ISO) và Ủy ban kỹ thuật điện quốc tế (IEC) đã lưu ý rằng việc tuân thủ tiêu chuẩn ISO/IEC này có thể liên quan đến việc sử dụng các bằng sáng chế.
ISO và IEC không có liên quan, trách nhiệm đến các chứng cứ, tính hiệu lực và phạm vi của các bản quyền sáng chế.
Chủ sở hữu các bản quyền sáng chế đã đảm bảo với ISO và IEC rằng họ sẵn sàng đàm phán cấp giấy phép theo các điều khoản và điều kiện hợp lý, không phân biệt đối xử với các đối tác trên thế giới. Các tuyên cáo liên quan đến vấn đề này của các chủ sở hữu đã được đăng ký tại ISO và IEC. Thông tin các công ty liên quan được liệt kê dưới đây.
Cuối cùng, cần chú ý, có khả năng một số yếu tố của bộ tiêu chuẩn ISO/IEC 14496 có thể là đối tượng của bản quyền sáng chế khác nằm ngoài danh mục được nêu trong phụ lục này. ISO và IEC sẽ không chịu trách nhiệm xác định tất cả hoặc bất kỳ các quyền bằng sáng chế đó.
|
Tổ chức |
1. |
Apple |
2. |
IBM |
3. |
Matsushita Electric Industrial Co., Ltd. |
4. |
Mitsubishi Electric |
Phụ lục B
(tham khảo)
Xử lý mốc thời gian âm thanh và chỉ thị thông tin hồ sơ/mức
Theo quy định trong ISO/IEC 14496-3 (âm thanh), bộ giải mã tạo đầu ra là một đơn vị thành phần cho mỗi đầu vào của đơn vị truy cập. Một danh sách-biên tập có thể được sử dụng để chỉ định đầu ra âm thanh mong muốn (tức là các mẫu hợp hợp lệ) từ tập các mẫu trong đơn vị thành phần đầu ra. Ví dụ, một danh sách biên tập có thể cho thấy rằng hệ thống dùng bộ giải mã loại bỏ 1024 mẫu âm thanh đầu tiên (có thể là kết quả của việc giải mã một đơn vị chạy trước) và cũng loại bỏ một vài mẫu cuối cùng của dạng sóng được giải mã (các mẫu này sinh ra từ việc làm tròn lên độ dài của dạng sóng để đạt giới hạn khung âm thanh). Thiết lập này cho phép xử lý ‘trọn vòng’ chính xác, theo đó, đầu ra của bộ giải mã có cùng độ dài với đầu vào của bộ mã hóa, với âm thanh ở cùng vị trí thời gian.
Các hệ thống chỉ biên tập có thể cho rằng chúng có thể loại bỏ dữ liệu không cần thiết bằng cách biên tập. Nếu tình trạng tương tự phát sinh trong hình ảnh (khi các biên tập không rơi vào các điểm truy cập ngẫu nhiên) thì chúng nhận thức được cần phải giữ cho dữ liệu trở lại điểm truy cập ngẫu nhiên trước khi bắt đầu biên tập.
Trong trường hợp này, tệp có thể chỉ thị về yêu cầu cần có “chạy trước” bằng cách sử dụng một nhóm mẫu chạy trước, ví dụ một giá trị chạy trước âm 1, để chỉ cho hệ thống sử dụng bộ giải mã rằng nó phải bắt đầu chuỗi các đơn vị truy cập đã được đưa tới bộ giải mã có đơn vị truy cập ở ngay trước khi đơn vị truy cập mà Bộ đệm thành phần tương ứng chưa điểm bắt đầu của âm thanh mong muốn. Điều này bao gồm các trường hợp xuất phát tại điểm bắt đầu của âm thanh (xuất phát của danh sách biên tập), truy cập ngẫu nhiên, hoặc trong trường hợp người sử dụng đã thực hiện biên tập thêm trong vùng mã hóa.
Ngoài ra, cần thận trọng nếu một tín hiệu âm thanh có thể được giải mã theo kiểu tương thích ngược hoặc kiểu nâng cao. Theo quy định trong ISO/IEC 14496-3, mốc thời gian (được xây dựng từ bảng thời gian mẫu) áp dụng cho giải mã tương thích ngược. Nếu mộ bộ giải mã áp dụng thêm ‘trễ’ cho dạng sóng đầu ra (ví dụ, âm thanh xuất hiện sau trong dạng sóng âm thanh đầu ra so với khi giải mã tương thích ngược được thực hiện) thì hệ thống dùng bộ mã hóa phải được thông báo về sự trễ này để nó có thể bù trễ nhằm duy trì hoạt động đúng thời gian (bao gồm cả việc đồng bộ).
Nếu muốn gắn nhãn dòng âm thanh bằng các chỉ thị về thông tin sơ lược và mức của chúng thì một bộ mô tả mức thông tin sơ lược mở rộng ExtensionProfileLeveIDescriptor có thể được đưa vào bộ mô tả ES_Descriptor, được lưu trữ trong khuôn ‘esds’ của dòng âm thanh. Điều này đặc biệt hữu ích trong trường hợp không có IOD trong tệp.
Thư mục tài liệu tham khảo
[1] ISO/IEC 14496-14:2003, Information technology – Coding of audio-visual objects – Part 14: MP4 file format;
[2] ISO/IEC 14496-14, Information technology – Coding of audio-visual objects – Part 14: MP4 file format, TECHNICAL CORRIGENDUM 1;
[3] ISO/IEC 14496-14, Information technology – Coding of audio-visual objects – Part 14: MP4 file format, AMENDMENT 1: Handling of MPEG-4 audio enhancement layers.
MỤC LỤC
Lời giới thiệu
0.1 Nguồn gốc
0.2 Sự hoán đổi
0.3 Tạo lập nội dung
0.4 Phiên trình diễn tạo dòng
1 Phạm vi áp dụng
2 Tài liệu viện dẫn
3 Lưu trữ MPEG-4
3.1 Rãnh ghi dòng cơ sở
3.1.1 Dữ liệu dòng cơ sở
3.1.2 Bộ mô tả dòng cơ sở
3.1.3 Bộ mô tả đối tượng
3.2 Định danh rãnh ghi
3.3 Đồng bộ các dòng
3.4 Thành phần
3.5 Xử lý của FlexMux
4 Định danh tệp
5 Các bổ sung đối với định dạng truyền thông cơ sở
5.1 Khuôn bộ mô tả đối tượng
5.1.1 Cú pháp
5.1.2 Giải nghĩa
5.2 Các loại Tham chiếu rãnh ghi
5.3 Khuôn tiêu đề rãnh ghi
5.4 Loại tham chiếu bộ xử lý
5.5 Khuôn tiêu đề truyền thông MPEG-4
5.5.1 Cú pháp
5.5.2 Giải nghĩa
5.6 Khuôn mô tả mẫu
5.6.1 Cú pháp
5.6.2 Giải nghĩa
5.7 Sự suy giảm các giá trị ưu tiên
6 Các trường mẫu được sử dụng
Phụ lục A (Tham khảo) Tuyên bố về bằng sáng chế
Phụ lục B (Tham khảo) Xử lý mốc thời gian âm thanh và chỉ thị thông tin hồ sơ/mức
Thư mục tài liệu tham khảo
TIÊU CHUẨN QUỐC GIA TCVN 11795-14:2017 (ISO/IEC 14496-14:2003 WITH AMENDMENT 1:2010) VỀ CÔNG NGHỆ THÔNG TIN – MÃ HÓA ĐỐI TƯỢNG HÌNH ẢNH ÂM THANH – PHẦN 14: ĐỊNH DẠNG TỆP MP4 | |||
Số, ký hiệu văn bản | TCVN11795-14:2017 | Ngày hiệu lực | |
Loại văn bản | Tiêu chuẩn Việt Nam | Ngày đăng công báo | |
Lĩnh vực |
Điện lực Giao dịch điện tử |
Ngày ban hành | |
Cơ quan ban hành | Tình trạng | Còn hiệu lực |
Các văn bản liên kết
Văn bản được hướng dẫn | Văn bản hướng dẫn | ||
Văn bản được hợp nhất | Văn bản hợp nhất | ||
Văn bản bị sửa đổi, bổ sung | Văn bản sửa đổi, bổ sung | ||
Văn bản bị đính chính | Văn bản đính chính | ||
Văn bản bị thay thế | Văn bản thay thế | ||
Văn bản được dẫn chiếu | Văn bản căn cứ |