AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

HEX und String (Bit 6 auslesen)

Ein Thema von Amnon82 · begonnen am 18. Mär 2006 · letzter Beitrag vom 2. Mai 2006
Antwort Antwort
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#1

Re: HEX und String (Bit 6 auslesen)

  Alt 2. Mai 2006, 07:25
Zitat von Amnon82:
Bit0 = $01
Bit1 = Bit0*2 > $02
Bit2 = Bit1*2 > $04
Bit3 = Bit2*2 > $10
Bit5 = Bit4*2 > $20
Bit6 = Bit5*2 > $40
Ich habe bisher immer mit Bit 1 bis Bit 8 gerechnet. Aber in der Doku gibt es, wie ich sehe, auch ein Bit 0. Demnach wäre der Wert doch nicht $20 sondern $40. Bit 0 ist das niederwertigste, wobei wir davon ausgehen, dass dies das ganz rechts stehende ist.

Offensichtlich werden die Informationen neu zusammengestellt. Denn ob ein Picture progressive ist, steht zum Beispiel in der PICTURE_CODING_EXTENSION

Delphi-Quellcode:
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//*************************** iso 13818-2 ****************************
// 32 bslbf - extension_start_code
// 4 uimsbf - extension_start_code_identifier
// picture_coding_extension()
// {
// 4 uimsbf - f_code[0][0] - forward_horizontal
// 4 uimsbf - f_code[0][1] - forward_vertical
// 4 uimsbf - f_code[1][0] - backward_horizontal
// 4 uimsbf - f_code[1][1] - backward_vertical
// 2 uimsbf - intra_dc_precision
// 2 uimsbf - picture_structure
// 1 uimsbf - top_field_first
// 1 uimsbf - frame_pred_frame_dct
// 1 uimsbf - concealment_motion_vectors
// 1 uimsbf - q_scale_type
// 1 uimsbf - intra_vlc_format
// 1 uimsbf - alternate_scan
// 1 uimsbf - repeat_first_field
// 1 uimsbf - chroma_420_type
// 1 uimsbf - progressive_frame
// 1 uimsbf - composite_display_flag
// if ( composite_display_flag )
// {
// 1 uimsbf - v_axis
// 3 uimsbf - field_sequence
// 1 uimsbf - sub_carrier
// 7 uimsbf - burst_amplitude
// 8 uimsbf - sub_carrier_phase
// }
// next_start_code()
// }
//********************************************************************
oder der SEQUENCE_EXTENSION:

Delphi-Quellcode:
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//************************** iso 13818-2 ***************************
// sequence_extension() {
// 32 - bslbf - extension_start_code
// 4 - uimsb - fextension_start_code_identifier
// 8 - uimsbf - profile_and_level_indication
// 1 - uimsbf - progressive_sequence
// 2 - uimsbf - chroma_format
// 2 - uimsbf - horizontal_size_extension
// 2 - uimsbf - vertical_size_extension
// 12 - uimsbf - bit_rate_extension
// 1 - bslbf - marker_bit
// 8 - uimsbf - vbv_buffer_size_extension
// 1 - uimsbf - low_delay
// 2 - uimsbf - frame_rate_extension_n
// 5 - uimsbf - frame_rate_extension_d
// next_start_code()
// }
//******************************************************************
während der Frametyp im PICTURE_HEADER steht:

Delphi-Quellcode:
//***************************** iso 13818-2 ******************************
// picture_header()
// {
// 32 bslbf - picture_start_code
// 10 uimsbf - temporal_reference
// 3 uimsbf - picture_coding_type
// 16 uimsbf - vbv_delay
// if ( picture_coding_type == 2 || picture_coding_type == 3)
// {
// 1 bslbf - full_pel_forward_vector
// 3 bslbf - forward_f_code
// }
// if ( picture_coding_type == 3 )
// {
// 1 bslbf - full_pel_backward_vector
// 3 bslbf - backward_f_code
// }
// while ( nextbits() == ‘1' )
// {
// 1 uimsbf - extra_bit_picture /* with the value ‘1' */
// 8 uimsbf - extra_information_picture
// }
// 1 uimsbf - extra_bit_picture /* with the value ‘0' */
// next_start_code()
// }
//************************************************************************
Allerdings ist der picture_coding_type in der Spez nicht mit 2 sondern 3 Bit angegeben:

Delphi-Quellcode:
// I_TYPE 1
// P_TYPE 2
// B_TYPE 3
// D_TYPE 4
// Frame_Type: Array [0..7] of CHAR = 'xIPBDrrr';
x = forbidden, r = reserved, D = Dropped.

Da anscheinend Dein Bit 6 trotz progressiver Quelle den Wert 0 besitzt, nehme ich an, dass Deine Quelle eine DVD vermutlich mit einem amerikanischen Film ist. Wenn Du mal in Videoforen in den Beiträgen von 2002/2003 nachsiehst, dürftest Du einige Diskussionen finden, in denen darüber diskutiert wurde, ob eine DVD interlaced oder progressive ist. Denn der Bitrateviewer gab oft interlaced an, obwohl der Sichttest progressive ergab. DVDs sind meist progressive, während das Ausgangsmaterial interlaced gewesen sein kann. Der Encoder hat dann nur das Flag nicht gesetzt.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz